| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728147291473014731147321473314734147351473614737147381473914740147411474214743147441474514746147471474814749147501475114752147531475414755147561475714758147591476014761147621476314764147651476614767147681476914770147711477214773147741477514776147771477814779147801478114782147831478414785147861478714788147891479014791147921479314794147951479614797147981479914800148011480214803148041480514806148071480814809148101481114812148131481414815148161481714818148191482014821148221482314824148251482614827148281482914830148311483214833148341483514836148371483814839148401484114842148431484414845148461484714848148491485014851148521485314854148551485614857148581485914860148611486214863148641486514866148671486814869148701487114872148731487414875148761487714878148791488014881148821488314884148851488614887148881488914890148911489214893148941489514896148971489814899149001490114902149031490414905149061490714908149091491014911149121491314914149151491614917149181491914920149211492214923149241492514926149271492814929149301493114932149331493414935149361493714938149391494014941149421494314944149451494614947149481494914950149511495214953149541495514956149571495814959149601496114962149631496414965149661496714968149691497014971149721497314974149751497614977149781497914980149811498214983149841498514986149871498814989149901499114992149931499414995149961499714998149991500015001150021500315004150051500615007150081500915010150111501215013150141501515016150171501815019150201502115022150231502415025150261502715028150291503015031150321503315034150351503615037150381503915040150411504215043150441504515046150471504815049150501505115052150531505415055150561505715058150591506015061150621506315064150651506615067150681506915070150711507215073150741507515076150771507815079150801508115082150831508415085150861508715088150891509015091150921509315094150951509615097150981509915100151011510215103151041510515106151071510815109151101511115112151131511415115151161511715118151191512015121151221512315124151251512615127151281512915130151311513215133151341513515136151371513815139151401514115142151431514415145151461514715148151491515015151151521515315154151551515615157151581515915160151611516215163151641516515166151671516815169151701517115172151731517415175151761517715178151791518015181151821518315184151851518615187151881518915190151911519215193151941519515196151971519815199152001520115202152031520415205152061520715208152091521015211152121521315214152151521615217152181521915220152211522215223152241522515226152271522815229152301523115232152331523415235152361523715238152391524015241152421524315244152451524615247152481524915250152511525215253152541525515256152571525815259152601526115262152631526415265152661526715268152691527015271152721527315274152751527615277152781527915280152811528215283152841528515286152871528815289152901529115292152931529415295152961529715298152991530015301153021530315304153051530615307153081530915310153111531215313153141531515316153171531815319153201532115322153231532415325153261532715328153291533015331153321533315334153351533615337153381533915340153411534215343153441534515346153471534815349153501535115352153531535415355153561535715358153591536015361153621536315364153651536615367153681536915370153711537215373153741537515376153771537815379153801538115382153831538415385153861538715388153891539015391153921539315394153951539615397153981539915400154011540215403154041540515406154071540815409154101541115412154131541415415154161541715418154191542015421154221542315424154251542615427154281542915430154311543215433154341543515436154371543815439154401544115442154431544415445154461544715448154491545015451154521545315454154551545615457154581545915460154611546215463154641546515466154671546815469154701547115472154731547415475154761547715478154791548015481154821548315484154851548615487154881548915490154911549215493154941549515496154971549815499155001550115502155031550415505155061550715508155091551015511155121551315514155151551615517155181551915520155211552215523155241552515526155271552815529155301553115532155331553415535155361553715538155391554015541155421554315544155451554615547155481554915550155511555215553155541555515556155571555815559155601556115562155631556415565155661556715568155691557015571155721557315574155751557615577155781557915580155811558215583155841558515586155871558815589155901559115592155931559415595155961559715598155991560015601156021560315604156051560615607156081560915610156111561215613156141561515616156171561815619156201562115622156231562415625156261562715628156291563015631156321563315634156351563615637156381563915640156411564215643156441564515646156471564815649156501565115652156531565415655156561565715658156591566015661156621566315664156651566615667156681566915670156711567215673156741567515676156771567815679156801568115682156831568415685156861568715688156891569015691156921569315694156951569615697156981569915700157011570215703157041570515706157071570815709157101571115712157131571415715157161571715718157191572015721157221572315724157251572615727157281572915730157311573215733157341573515736157371573815739157401574115742157431574415745157461574715748157491575015751157521575315754157551575615757157581575915760157611576215763157641576515766157671576815769157701577115772157731577415775157761577715778157791578015781157821578315784157851578615787157881578915790157911579215793157941579515796157971579815799158001580115802158031580415805158061580715808158091581015811158121581315814158151581615817158181581915820158211582215823158241582515826158271582815829158301583115832158331583415835158361583715838158391584015841158421584315844158451584615847158481584915850158511585215853158541585515856158571585815859158601586115862158631586415865158661586715868158691587015871158721587315874158751587615877158781587915880158811588215883158841588515886158871588815889158901589115892158931589415895158961589715898158991590015901159021590315904159051590615907159081590915910159111591215913159141591515916159171591815919159201592115922159231592415925159261592715928159291593015931159321593315934159351593615937159381593915940159411594215943159441594515946159471594815949159501595115952159531595415955159561595715958159591596015961159621596315964159651596615967159681596915970159711597215973159741597515976159771597815979159801598115982159831598415985159861598715988159891599015991159921599315994159951599615997159981599916000160011600216003160041600516006160071600816009160101601116012160131601416015160161601716018160191602016021160221602316024160251602616027160281602916030160311603216033160341603516036160371603816039160401604116042160431604416045160461604716048160491605016051160521605316054160551605616057160581605916060160611606216063160641606516066160671606816069160701607116072160731607416075160761607716078160791608016081160821608316084160851608616087160881608916090160911609216093160941609516096160971609816099161001610116102161031610416105161061610716108161091611016111161121611316114161151611616117161181611916120161211612216123161241612516126161271612816129161301613116132161331613416135161361613716138161391614016141161421614316144161451614616147161481614916150161511615216153161541615516156161571615816159161601616116162161631616416165161661616716168161691617016171161721617316174161751617616177161781617916180161811618216183161841618516186161871618816189161901619116192161931619416195161961619716198161991620016201162021620316204162051620616207162081620916210162111621216213162141621516216162171621816219162201622116222162231622416225162261622716228162291623016231162321623316234162351623616237162381623916240162411624216243162441624516246162471624816249162501625116252162531625416255162561625716258162591626016261162621626316264162651626616267162681626916270162711627216273162741627516276162771627816279162801628116282162831628416285162861628716288162891629016291162921629316294162951629616297162981629916300163011630216303163041630516306163071630816309163101631116312163131631416315163161631716318163191632016321163221632316324163251632616327163281632916330163311633216333163341633516336163371633816339163401634116342163431634416345163461634716348163491635016351163521635316354163551635616357163581635916360163611636216363163641636516366163671636816369163701637116372163731637416375163761637716378163791638016381163821638316384163851638616387163881638916390163911639216393163941639516396163971639816399164001640116402164031640416405164061640716408164091641016411164121641316414164151641616417164181641916420164211642216423164241642516426164271642816429164301643116432164331643416435164361643716438164391644016441164421644316444164451644616447164481644916450164511645216453164541645516456164571645816459164601646116462164631646416465164661646716468164691647016471164721647316474164751647616477164781647916480164811648216483164841648516486164871648816489164901649116492164931649416495164961649716498164991650016501165021650316504165051650616507165081650916510165111651216513165141651516516165171651816519165201652116522165231652416525165261652716528165291653016531165321653316534165351653616537165381653916540165411654216543165441654516546165471654816549165501655116552165531655416555165561655716558165591656016561165621656316564165651656616567165681656916570165711657216573165741657516576165771657816579165801658116582165831658416585165861658716588165891659016591165921659316594165951659616597165981659916600166011660216603166041660516606166071660816609166101661116612166131661416615166161661716618166191662016621166221662316624166251662616627166281662916630166311663216633166341663516636166371663816639166401664116642166431664416645166461664716648166491665016651166521665316654166551665616657166581665916660166611666216663166641666516666166671666816669166701667116672166731667416675166761667716678166791668016681166821668316684166851668616687166881668916690166911669216693166941669516696166971669816699167001670116702167031670416705167061670716708167091671016711167121671316714167151671616717167181671916720167211672216723167241672516726167271672816729167301673116732167331673416735167361673716738167391674016741167421674316744167451674616747167481674916750167511675216753167541675516756167571675816759167601676116762167631676416765167661676716768167691677016771167721677316774167751677616777167781677916780167811678216783167841678516786167871678816789167901679116792167931679416795167961679716798167991680016801168021680316804168051680616807168081680916810168111681216813168141681516816168171681816819168201682116822168231682416825168261682716828168291683016831168321683316834168351683616837168381683916840168411684216843168441684516846168471684816849168501685116852168531685416855168561685716858168591686016861168621686316864168651686616867168681686916870168711687216873168741687516876168771687816879168801688116882168831688416885168861688716888168891689016891168921689316894168951689616897168981689916900169011690216903169041690516906169071690816909169101691116912169131691416915169161691716918169191692016921169221692316924169251692616927169281692916930169311693216933169341693516936169371693816939169401694116942169431694416945169461694716948169491695016951169521695316954169551695616957169581695916960169611696216963169641696516966169671696816969169701697116972169731697416975169761697716978169791698016981169821698316984169851698616987169881698916990169911699216993169941699516996169971699816999170001700117002170031700417005170061700717008170091701017011170121701317014170151701617017170181701917020170211702217023170241702517026170271702817029170301703117032170331703417035170361703717038170391704017041170421704317044170451704617047170481704917050170511705217053170541705517056170571705817059170601706117062170631706417065170661706717068170691707017071170721707317074170751707617077170781707917080170811708217083170841708517086170871708817089170901709117092170931709417095170961709717098170991710017101171021710317104171051710617107171081710917110171111711217113171141711517116171171711817119171201712117122171231712417125171261712717128171291713017131171321713317134171351713617137171381713917140171411714217143171441714517146171471714817149171501715117152171531715417155171561715717158171591716017161171621716317164171651716617167171681716917170171711717217173171741717517176171771717817179171801718117182171831718417185171861718717188171891719017191171921719317194171951719617197171981719917200172011720217203172041720517206172071720817209172101721117212172131721417215172161721717218172191722017221172221722317224172251722617227172281722917230172311723217233172341723517236172371723817239172401724117242172431724417245172461724717248172491725017251172521725317254172551725617257172581725917260172611726217263172641726517266172671726817269172701727117272172731727417275172761727717278172791728017281172821728317284172851728617287172881728917290172911729217293172941729517296172971729817299173001730117302173031730417305173061730717308173091731017311173121731317314173151731617317173181731917320173211732217323173241732517326173271732817329173301733117332173331733417335173361733717338173391734017341173421734317344173451734617347173481734917350173511735217353173541735517356173571735817359173601736117362173631736417365173661736717368173691737017371173721737317374173751737617377173781737917380173811738217383173841738517386173871738817389173901739117392173931739417395173961739717398173991740017401174021740317404174051740617407174081740917410174111741217413174141741517416174171741817419174201742117422174231742417425174261742717428174291743017431174321743317434174351743617437174381743917440174411744217443174441744517446174471744817449174501745117452174531745417455174561745717458174591746017461174621746317464174651746617467174681746917470174711747217473174741747517476174771747817479174801748117482174831748417485174861748717488174891749017491174921749317494174951749617497174981749917500175011750217503175041750517506175071750817509175101751117512175131751417515175161751717518175191752017521175221752317524175251752617527175281752917530175311753217533175341753517536175371753817539175401754117542175431754417545175461754717548175491755017551175521755317554175551755617557175581755917560175611756217563175641756517566175671756817569175701757117572175731757417575175761757717578175791758017581175821758317584175851758617587175881758917590175911759217593175941759517596175971759817599176001760117602176031760417605176061760717608176091761017611176121761317614176151761617617176181761917620176211762217623176241762517626176271762817629176301763117632176331763417635176361763717638176391764017641176421764317644176451764617647176481764917650176511765217653176541765517656176571765817659176601766117662176631766417665176661766717668176691767017671176721767317674176751767617677176781767917680176811768217683176841768517686176871768817689176901769117692176931769417695176961769717698176991770017701177021770317704177051770617707177081770917710177111771217713177141771517716177171771817719177201772117722177231772417725177261772717728177291773017731177321773317734177351773617737177381773917740177411774217743177441774517746177471774817749177501775117752177531775417755177561775717758177591776017761177621776317764177651776617767177681776917770177711777217773177741777517776177771777817779177801778117782177831778417785177861778717788177891779017791177921779317794177951779617797177981779917800178011780217803178041780517806178071780817809178101781117812178131781417815178161781717818178191782017821178221782317824178251782617827178281782917830178311783217833178341783517836178371783817839178401784117842178431784417845178461784717848178491785017851178521785317854178551785617857178581785917860178611786217863178641786517866178671786817869178701787117872178731787417875178761787717878178791788017881178821788317884178851788617887178881788917890178911789217893178941789517896178971789817899179001790117902179031790417905179061790717908179091791017911179121791317914179151791617917179181791917920179211792217923179241792517926179271792817929179301793117932179331793417935179361793717938179391794017941179421794317944179451794617947179481794917950179511795217953179541795517956179571795817959179601796117962179631796417965179661796717968179691797017971179721797317974179751797617977179781797917980179811798217983179841798517986179871798817989179901799117992179931799417995179961799717998179991800018001180021800318004180051800618007180081800918010180111801218013180141801518016180171801818019180201802118022180231802418025180261802718028180291803018031180321803318034180351803618037180381803918040180411804218043180441804518046180471804818049180501805118052180531805418055180561805718058180591806018061180621806318064180651806618067180681806918070180711807218073180741807518076180771807818079180801808118082180831808418085180861808718088180891809018091180921809318094180951809618097180981809918100181011810218103181041810518106181071810818109181101811118112181131811418115181161811718118181191812018121181221812318124181251812618127181281812918130181311813218133181341813518136181371813818139181401814118142181431814418145181461814718148181491815018151181521815318154181551815618157181581815918160181611816218163181641816518166181671816818169181701817118172181731817418175181761817718178181791818018181181821818318184181851818618187181881818918190181911819218193181941819518196181971819818199182001820118202182031820418205182061820718208182091821018211182121821318214182151821618217182181821918220182211822218223182241822518226182271822818229182301823118232182331823418235182361823718238182391824018241182421824318244182451824618247182481824918250182511825218253182541825518256182571825818259182601826118262182631826418265182661826718268182691827018271182721827318274182751827618277182781827918280182811828218283182841828518286182871828818289182901829118292182931829418295182961829718298182991830018301183021830318304183051830618307183081830918310183111831218313183141831518316183171831818319183201832118322183231832418325183261832718328183291833018331183321833318334183351833618337183381833918340183411834218343183441834518346183471834818349183501835118352183531835418355183561835718358183591836018361183621836318364183651836618367183681836918370183711837218373183741837518376183771837818379183801838118382183831838418385183861838718388183891839018391183921839318394183951839618397183981839918400184011840218403184041840518406184071840818409184101841118412184131841418415184161841718418184191842018421184221842318424184251842618427184281842918430184311843218433184341843518436184371843818439184401844118442184431844418445184461844718448184491845018451184521845318454184551845618457184581845918460184611846218463184641846518466184671846818469184701847118472184731847418475184761847718478184791848018481184821848318484184851848618487184881848918490184911849218493184941849518496184971849818499185001850118502185031850418505185061850718508185091851018511185121851318514185151851618517185181851918520185211852218523185241852518526185271852818529185301853118532185331853418535185361853718538185391854018541185421854318544185451854618547185481854918550185511855218553185541855518556185571855818559185601856118562185631856418565185661856718568185691857018571185721857318574185751857618577185781857918580185811858218583185841858518586185871858818589185901859118592185931859418595185961859718598185991860018601186021860318604186051860618607186081860918610186111861218613186141861518616186171861818619186201862118622186231862418625186261862718628186291863018631186321863318634186351863618637186381863918640186411864218643186441864518646186471864818649186501865118652186531865418655186561865718658186591866018661186621866318664186651866618667186681866918670186711867218673186741867518676186771867818679186801868118682186831868418685186861868718688186891869018691186921869318694186951869618697186981869918700187011870218703187041870518706187071870818709187101871118712187131871418715187161871718718187191872018721187221872318724187251872618727187281872918730187311873218733187341873518736187371873818739187401874118742187431874418745187461874718748187491875018751187521875318754187551875618757187581875918760187611876218763187641876518766187671876818769187701877118772187731877418775187761877718778187791878018781187821878318784187851878618787187881878918790187911879218793187941879518796187971879818799188001880118802188031880418805188061880718808188091881018811188121881318814188151881618817188181881918820188211882218823188241882518826188271882818829188301883118832188331883418835188361883718838188391884018841188421884318844188451884618847188481884918850188511885218853188541885518856188571885818859188601886118862188631886418865188661886718868188691887018871188721887318874188751887618877188781887918880188811888218883188841888518886188871888818889188901889118892188931889418895188961889718898188991890018901189021890318904189051890618907189081890918910189111891218913189141891518916189171891818919189201892118922189231892418925189261892718928189291893018931189321893318934189351893618937189381893918940189411894218943189441894518946189471894818949189501895118952189531895418955189561895718958189591896018961189621896318964189651896618967189681896918970189711897218973189741897518976189771897818979189801898118982189831898418985189861898718988189891899018991189921899318994189951899618997189981899919000190011900219003190041900519006190071900819009190101901119012190131901419015190161901719018190191902019021190221902319024190251902619027190281902919030190311903219033190341903519036190371903819039190401904119042190431904419045190461904719048190491905019051190521905319054190551905619057190581905919060190611906219063190641906519066190671906819069190701907119072190731907419075190761907719078190791908019081190821908319084190851908619087190881908919090190911909219093190941909519096190971909819099191001910119102191031910419105191061910719108191091911019111191121911319114191151911619117191181911919120191211912219123191241912519126191271912819129191301913119132191331913419135191361913719138191391914019141191421914319144191451914619147191481914919150191511915219153191541915519156191571915819159191601916119162191631916419165191661916719168191691917019171191721917319174191751917619177191781917919180191811918219183191841918519186191871918819189191901919119192191931919419195191961919719198191991920019201192021920319204192051920619207192081920919210192111921219213192141921519216192171921819219192201922119222192231922419225192261922719228192291923019231192321923319234192351923619237192381923919240192411924219243192441924519246192471924819249192501925119252192531925419255192561925719258192591926019261192621926319264192651926619267192681926919270192711927219273192741927519276192771927819279192801928119282192831928419285192861928719288192891929019291192921929319294192951929619297192981929919300193011930219303193041930519306193071930819309193101931119312193131931419315193161931719318193191932019321193221932319324193251932619327193281932919330193311933219333193341933519336193371933819339193401934119342193431934419345193461934719348193491935019351193521935319354193551935619357193581935919360193611936219363193641936519366193671936819369193701937119372193731937419375193761937719378193791938019381193821938319384193851938619387193881938919390193911939219393193941939519396193971939819399194001940119402194031940419405194061940719408194091941019411194121941319414194151941619417194181941919420194211942219423194241942519426194271942819429194301943119432194331943419435194361943719438194391944019441194421944319444194451944619447194481944919450194511945219453194541945519456194571945819459194601946119462194631946419465194661946719468194691947019471194721947319474194751947619477194781947919480194811948219483194841948519486194871948819489194901949119492194931949419495194961949719498194991950019501195021950319504195051950619507195081950919510195111951219513195141951519516195171951819519195201952119522195231952419525195261952719528195291953019531195321953319534195351953619537195381953919540195411954219543195441954519546195471954819549195501955119552195531955419555195561955719558195591956019561195621956319564195651956619567195681956919570195711957219573195741957519576195771957819579195801958119582195831958419585195861958719588195891959019591195921959319594195951959619597195981959919600196011960219603196041960519606196071960819609196101961119612196131961419615196161961719618196191962019621196221962319624196251962619627196281962919630196311963219633196341963519636196371963819639196401964119642196431964419645196461964719648196491965019651196521965319654196551965619657196581965919660196611966219663196641966519666196671966819669196701967119672196731967419675196761967719678196791968019681196821968319684196851968619687196881968919690196911969219693196941969519696196971969819699197001970119702197031970419705197061970719708197091971019711197121971319714197151971619717197181971919720197211972219723197241972519726197271972819729197301973119732197331973419735197361973719738197391974019741197421974319744197451974619747197481974919750197511975219753197541975519756197571975819759197601976119762197631976419765197661976719768197691977019771197721977319774197751977619777197781977919780197811978219783197841978519786197871978819789197901979119792197931979419795197961979719798197991980019801198021980319804198051980619807198081980919810198111981219813198141981519816198171981819819198201982119822198231982419825198261982719828198291983019831198321983319834198351983619837198381983919840198411984219843198441984519846198471984819849198501985119852198531985419855198561985719858198591986019861198621986319864198651986619867198681986919870198711987219873198741987519876198771987819879198801988119882198831988419885198861988719888198891989019891198921989319894198951989619897198981989919900199011990219903199041990519906199071990819909199101991119912199131991419915199161991719918199191992019921199221992319924199251992619927199281992919930199311993219933199341993519936199371993819939199401994119942199431994419945199461994719948199491995019951199521995319954199551995619957199581995919960199611996219963199641996519966199671996819969199701997119972199731997419975199761997719978199791998019981199821998319984199851998619987199881998919990199911999219993199941999519996199971999819999200002000120002200032000420005200062000720008200092001020011200122001320014200152001620017200182001920020200212002220023200242002520026200272002820029200302003120032200332003420035200362003720038200392004020041200422004320044200452004620047200482004920050200512005220053200542005520056200572005820059200602006120062200632006420065200662006720068200692007020071200722007320074200752007620077200782007920080200812008220083200842008520086200872008820089200902009120092200932009420095200962009720098200992010020101201022010320104201052010620107201082010920110201112011220113201142011520116201172011820119201202012120122201232012420125201262012720128201292013020131201322013320134201352013620137201382013920140201412014220143201442014520146201472014820149201502015120152201532015420155201562015720158201592016020161201622016320164201652016620167201682016920170201712017220173201742017520176201772017820179201802018120182201832018420185201862018720188201892019020191201922019320194201952019620197201982019920200202012020220203202042020520206202072020820209202102021120212202132021420215202162021720218202192022020221202222022320224202252022620227202282022920230202312023220233202342023520236202372023820239202402024120242202432024420245202462024720248202492025020251202522025320254202552025620257202582025920260202612026220263202642026520266202672026820269202702027120272202732027420275202762027720278202792028020281202822028320284202852028620287202882028920290202912029220293202942029520296202972029820299203002030120302203032030420305203062030720308203092031020311203122031320314203152031620317203182031920320203212032220323203242032520326203272032820329203302033120332203332033420335203362033720338203392034020341203422034320344203452034620347203482034920350203512035220353203542035520356203572035820359203602036120362203632036420365203662036720368203692037020371203722037320374203752037620377203782037920380203812038220383203842038520386203872038820389203902039120392203932039420395203962039720398203992040020401204022040320404204052040620407204082040920410204112041220413204142041520416204172041820419204202042120422204232042420425204262042720428204292043020431204322043320434204352043620437204382043920440204412044220443204442044520446204472044820449204502045120452204532045420455204562045720458204592046020461204622046320464204652046620467204682046920470204712047220473204742047520476204772047820479204802048120482204832048420485204862048720488204892049020491204922049320494204952049620497204982049920500205012050220503205042050520506205072050820509205102051120512205132051420515205162051720518205192052020521205222052320524205252052620527205282052920530205312053220533205342053520536205372053820539205402054120542205432054420545205462054720548205492055020551205522055320554205552055620557205582055920560205612056220563205642056520566205672056820569205702057120572205732057420575205762057720578205792058020581205822058320584205852058620587205882058920590205912059220593205942059520596205972059820599206002060120602206032060420605206062060720608206092061020611206122061320614206152061620617206182061920620206212062220623206242062520626206272062820629206302063120632206332063420635206362063720638206392064020641206422064320644206452064620647206482064920650206512065220653206542065520656206572065820659206602066120662206632066420665206662066720668206692067020671206722067320674206752067620677206782067920680206812068220683206842068520686206872068820689206902069120692206932069420695206962069720698206992070020701207022070320704207052070620707207082070920710207112071220713207142071520716207172071820719207202072120722207232072420725207262072720728207292073020731207322073320734207352073620737207382073920740207412074220743207442074520746207472074820749207502075120752207532075420755207562075720758207592076020761207622076320764207652076620767207682076920770207712077220773207742077520776207772077820779207802078120782207832078420785207862078720788207892079020791207922079320794207952079620797207982079920800208012080220803208042080520806208072080820809208102081120812208132081420815208162081720818208192082020821208222082320824208252082620827208282082920830208312083220833208342083520836208372083820839208402084120842208432084420845208462084720848208492085020851208522085320854208552085620857208582085920860208612086220863208642086520866208672086820869208702087120872208732087420875208762087720878208792088020881208822088320884208852088620887208882088920890208912089220893208942089520896208972089820899209002090120902209032090420905209062090720908209092091020911209122091320914209152091620917209182091920920209212092220923209242092520926209272092820929209302093120932209332093420935209362093720938209392094020941209422094320944209452094620947209482094920950209512095220953209542095520956209572095820959209602096120962209632096420965209662096720968209692097020971209722097320974209752097620977209782097920980209812098220983209842098520986209872098820989209902099120992209932099420995209962099720998209992100021001210022100321004210052100621007210082100921010210112101221013210142101521016210172101821019210202102121022210232102421025210262102721028210292103021031210322103321034210352103621037210382103921040210412104221043210442104521046210472104821049210502105121052210532105421055210562105721058210592106021061210622106321064210652106621067210682106921070210712107221073210742107521076210772107821079210802108121082210832108421085210862108721088210892109021091210922109321094210952109621097210982109921100211012110221103211042110521106211072110821109211102111121112211132111421115211162111721118211192112021121211222112321124211252112621127211282112921130211312113221133211342113521136211372113821139211402114121142211432114421145211462114721148211492115021151211522115321154211552115621157211582115921160211612116221163211642116521166211672116821169211702117121172211732117421175211762117721178211792118021181211822118321184211852118621187211882118921190211912119221193211942119521196211972119821199212002120121202212032120421205212062120721208212092121021211212122121321214212152121621217212182121921220212212122221223212242122521226212272122821229212302123121232212332123421235212362123721238212392124021241212422124321244212452124621247212482124921250212512125221253212542125521256212572125821259212602126121262212632126421265212662126721268212692127021271212722127321274212752127621277212782127921280212812128221283212842128521286212872128821289212902129121292212932129421295212962129721298212992130021301213022130321304213052130621307213082130921310213112131221313213142131521316213172131821319213202132121322213232132421325213262132721328213292133021331213322133321334213352133621337213382133921340213412134221343213442134521346213472134821349213502135121352213532135421355213562135721358213592136021361213622136321364213652136621367213682136921370213712137221373213742137521376213772137821379213802138121382213832138421385213862138721388213892139021391213922139321394213952139621397213982139921400214012140221403214042140521406214072140821409214102141121412214132141421415214162141721418214192142021421214222142321424214252142621427214282142921430214312143221433214342143521436214372143821439214402144121442214432144421445214462144721448214492145021451214522145321454214552145621457214582145921460214612146221463214642146521466214672146821469214702147121472214732147421475214762147721478214792148021481214822148321484214852148621487214882148921490214912149221493214942149521496214972149821499215002150121502215032150421505215062150721508215092151021511215122151321514215152151621517215182151921520215212152221523215242152521526215272152821529215302153121532215332153421535215362153721538215392154021541215422154321544215452154621547215482154921550215512155221553215542155521556215572155821559215602156121562215632156421565215662156721568215692157021571215722157321574215752157621577215782157921580215812158221583215842158521586215872158821589215902159121592215932159421595215962159721598215992160021601216022160321604216052160621607216082160921610216112161221613216142161521616216172161821619216202162121622216232162421625216262162721628216292163021631216322163321634216352163621637216382163921640216412164221643216442164521646216472164821649216502165121652216532165421655216562165721658216592166021661216622166321664216652166621667216682166921670216712167221673216742167521676216772167821679216802168121682216832168421685216862168721688216892169021691216922169321694216952169621697216982169921700217012170221703217042170521706217072170821709217102171121712217132171421715217162171721718217192172021721217222172321724217252172621727217282172921730217312173221733217342173521736217372173821739217402174121742217432174421745217462174721748217492175021751217522175321754217552175621757217582175921760217612176221763217642176521766217672176821769217702177121772217732177421775217762177721778217792178021781217822178321784217852178621787217882178921790217912179221793217942179521796217972179821799218002180121802218032180421805218062180721808218092181021811218122181321814218152181621817218182181921820218212182221823218242182521826218272182821829218302183121832218332183421835218362183721838218392184021841218422184321844218452184621847218482184921850218512185221853218542185521856218572185821859218602186121862218632186421865218662186721868218692187021871218722187321874218752187621877218782187921880218812188221883218842188521886218872188821889218902189121892218932189421895218962189721898218992190021901219022190321904219052190621907219082190921910219112191221913219142191521916219172191821919219202192121922219232192421925219262192721928219292193021931219322193321934219352193621937219382193921940219412194221943219442194521946219472194821949219502195121952219532195421955219562195721958219592196021961219622196321964219652196621967219682196921970219712197221973219742197521976219772197821979219802198121982219832198421985219862198721988219892199021991219922199321994219952199621997219982199922000220012200222003220042200522006220072200822009220102201122012220132201422015220162201722018220192202022021220222202322024220252202622027220282202922030220312203222033220342203522036220372203822039220402204122042220432204422045220462204722048220492205022051220522205322054220552205622057220582205922060220612206222063220642206522066220672206822069220702207122072220732207422075220762207722078220792208022081220822208322084220852208622087220882208922090220912209222093220942209522096220972209822099221002210122102221032210422105221062210722108221092211022111221122211322114221152211622117221182211922120221212212222123221242212522126221272212822129221302213122132221332213422135221362213722138221392214022141221422214322144221452214622147221482214922150221512215222153221542215522156221572215822159221602216122162221632216422165221662216722168221692217022171221722217322174221752217622177221782217922180221812218222183221842218522186221872218822189221902219122192221932219422195221962219722198221992220022201222022220322204222052220622207222082220922210222112221222213222142221522216222172221822219222202222122222222232222422225222262222722228222292223022231222322223322234222352223622237222382223922240222412224222243222442224522246222472224822249222502225122252222532225422255222562225722258222592226022261222622226322264222652226622267222682226922270222712227222273222742227522276222772227822279222802228122282222832228422285222862228722288222892229022291222922229322294222952229622297222982229922300223012230222303223042230522306223072230822309223102231122312223132231422315223162231722318223192232022321223222232322324223252232622327223282232922330223312233222333223342233522336223372233822339223402234122342223432234422345223462234722348223492235022351223522235322354223552235622357223582235922360223612236222363223642236522366223672236822369223702237122372223732237422375223762237722378223792238022381223822238322384223852238622387223882238922390223912239222393223942239522396223972239822399224002240122402224032240422405224062240722408224092241022411224122241322414224152241622417224182241922420224212242222423224242242522426224272242822429224302243122432224332243422435224362243722438224392244022441224422244322444224452244622447224482244922450224512245222453224542245522456224572245822459224602246122462224632246422465224662246722468224692247022471224722247322474224752247622477224782247922480224812248222483224842248522486224872248822489224902249122492224932249422495224962249722498224992250022501225022250322504225052250622507225082250922510225112251222513225142251522516225172251822519225202252122522225232252422525225262252722528225292253022531225322253322534225352253622537225382253922540225412254222543225442254522546225472254822549225502255122552225532255422555225562255722558225592256022561225622256322564225652256622567225682256922570225712257222573225742257522576225772257822579225802258122582225832258422585225862258722588225892259022591225922259322594225952259622597225982259922600226012260222603226042260522606226072260822609226102261122612226132261422615226162261722618226192262022621226222262322624226252262622627226282262922630226312263222633226342263522636226372263822639226402264122642226432264422645226462264722648226492265022651226522265322654226552265622657226582265922660226612266222663226642266522666226672266822669226702267122672226732267422675226762267722678226792268022681226822268322684226852268622687226882268922690226912269222693226942269522696226972269822699227002270122702227032270422705227062270722708227092271022711227122271322714227152271622717227182271922720227212272222723227242272522726227272272822729227302273122732227332273422735227362273722738227392274022741227422274322744227452274622747227482274922750227512275222753227542275522756227572275822759227602276122762227632276422765227662276722768227692277022771227722277322774227752277622777227782277922780227812278222783227842278522786227872278822789227902279122792227932279422795227962279722798227992280022801228022280322804228052280622807228082280922810228112281222813228142281522816228172281822819228202282122822228232282422825228262282722828228292283022831228322283322834228352283622837228382283922840228412284222843228442284522846228472284822849228502285122852228532285422855228562285722858228592286022861228622286322864228652286622867228682286922870228712287222873228742287522876228772287822879228802288122882228832288422885228862288722888228892289022891228922289322894228952289622897228982289922900229012290222903229042290522906229072290822909229102291122912229132291422915229162291722918229192292022921229222292322924229252292622927229282292922930229312293222933229342293522936229372293822939229402294122942229432294422945229462294722948229492295022951229522295322954229552295622957229582295922960229612296222963229642296522966229672296822969229702297122972229732297422975229762297722978229792298022981229822298322984229852298622987229882298922990229912299222993229942299522996229972299822999230002300123002230032300423005230062300723008230092301023011230122301323014230152301623017230182301923020230212302223023230242302523026230272302823029230302303123032230332303423035230362303723038230392304023041230422304323044230452304623047230482304923050230512305223053230542305523056230572305823059230602306123062230632306423065230662306723068230692307023071230722307323074230752307623077230782307923080230812308223083230842308523086230872308823089230902309123092230932309423095230962309723098230992310023101231022310323104231052310623107231082310923110231112311223113231142311523116231172311823119231202312123122231232312423125231262312723128231292313023131231322313323134231352313623137231382313923140231412314223143231442314523146231472314823149231502315123152231532315423155231562315723158231592316023161231622316323164231652316623167231682316923170231712317223173231742317523176231772317823179231802318123182231832318423185231862318723188231892319023191231922319323194231952319623197231982319923200232012320223203232042320523206232072320823209232102321123212232132321423215232162321723218232192322023221232222322323224232252322623227232282322923230232312323223233232342323523236232372323823239232402324123242232432324423245232462324723248232492325023251232522325323254232552325623257232582325923260232612326223263232642326523266232672326823269232702327123272232732327423275232762327723278232792328023281232822328323284232852328623287232882328923290232912329223293232942329523296232972329823299233002330123302233032330423305233062330723308233092331023311233122331323314233152331623317233182331923320233212332223323233242332523326233272332823329233302333123332233332333423335233362333723338233392334023341233422334323344233452334623347233482334923350233512335223353233542335523356233572335823359233602336123362233632336423365233662336723368233692337023371233722337323374233752337623377233782337923380233812338223383233842338523386233872338823389233902339123392233932339423395233962339723398233992340023401234022340323404234052340623407234082340923410234112341223413234142341523416234172341823419234202342123422234232342423425234262342723428234292343023431234322343323434234352343623437234382343923440234412344223443234442344523446234472344823449234502345123452234532345423455234562345723458234592346023461234622346323464234652346623467234682346923470234712347223473234742347523476234772347823479234802348123482234832348423485234862348723488234892349023491234922349323494234952349623497234982349923500235012350223503235042350523506235072350823509235102351123512235132351423515235162351723518235192352023521235222352323524235252352623527235282352923530235312353223533235342353523536235372353823539235402354123542235432354423545235462354723548235492355023551235522355323554235552355623557235582355923560235612356223563235642356523566235672356823569235702357123572235732357423575235762357723578235792358023581235822358323584235852358623587235882358923590235912359223593235942359523596235972359823599236002360123602236032360423605236062360723608236092361023611236122361323614236152361623617236182361923620236212362223623236242362523626236272362823629236302363123632236332363423635236362363723638236392364023641236422364323644236452364623647236482364923650236512365223653236542365523656236572365823659236602366123662236632366423665236662366723668236692367023671236722367323674236752367623677236782367923680236812368223683236842368523686236872368823689236902369123692236932369423695236962369723698236992370023701237022370323704237052370623707237082370923710237112371223713237142371523716237172371823719237202372123722237232372423725237262372723728237292373023731237322373323734237352373623737237382373923740237412374223743237442374523746237472374823749237502375123752237532375423755237562375723758237592376023761237622376323764237652376623767237682376923770237712377223773237742377523776237772377823779237802378123782237832378423785237862378723788237892379023791237922379323794237952379623797237982379923800238012380223803238042380523806238072380823809238102381123812238132381423815238162381723818238192382023821238222382323824238252382623827238282382923830238312383223833238342383523836238372383823839238402384123842238432384423845238462384723848238492385023851238522385323854238552385623857238582385923860238612386223863238642386523866238672386823869238702387123872238732387423875238762387723878238792388023881238822388323884238852388623887238882388923890238912389223893238942389523896238972389823899239002390123902239032390423905239062390723908239092391023911239122391323914239152391623917239182391923920239212392223923239242392523926239272392823929239302393123932239332393423935239362393723938239392394023941239422394323944239452394623947239482394923950239512395223953239542395523956239572395823959239602396123962239632396423965239662396723968239692397023971239722397323974239752397623977239782397923980239812398223983239842398523986239872398823989239902399123992239932399423995239962399723998239992400024001240022400324004240052400624007240082400924010240112401224013240142401524016240172401824019240202402124022240232402424025240262402724028240292403024031240322403324034240352403624037240382403924040240412404224043240442404524046240472404824049240502405124052240532405424055240562405724058240592406024061240622406324064240652406624067240682406924070240712407224073240742407524076240772407824079240802408124082240832408424085240862408724088240892409024091240922409324094240952409624097240982409924100241012410224103241042410524106241072410824109241102411124112241132411424115241162411724118241192412024121241222412324124241252412624127241282412924130241312413224133241342413524136241372413824139241402414124142241432414424145241462414724148241492415024151241522415324154241552415624157241582415924160241612416224163241642416524166241672416824169241702417124172241732417424175241762417724178241792418024181241822418324184241852418624187241882418924190241912419224193241942419524196241972419824199242002420124202242032420424205242062420724208242092421024211242122421324214242152421624217242182421924220242212422224223242242422524226242272422824229242302423124232242332423424235242362423724238242392424024241242422424324244242452424624247242482424924250242512425224253242542425524256242572425824259242602426124262242632426424265242662426724268242692427024271242722427324274242752427624277242782427924280242812428224283242842428524286242872428824289242902429124292242932429424295242962429724298242992430024301243022430324304243052430624307243082430924310243112431224313243142431524316243172431824319243202432124322243232432424325243262432724328243292433024331243322433324334243352433624337243382433924340243412434224343243442434524346243472434824349243502435124352243532435424355243562435724358243592436024361243622436324364243652436624367243682436924370243712437224373243742437524376243772437824379243802438124382243832438424385243862438724388243892439024391243922439324394243952439624397243982439924400244012440224403244042440524406244072440824409244102441124412244132441424415244162441724418244192442024421244222442324424244252442624427244282442924430244312443224433244342443524436244372443824439244402444124442244432444424445244462444724448244492445024451244522445324454244552445624457244582445924460244612446224463244642446524466244672446824469244702447124472244732447424475244762447724478244792448024481244822448324484244852448624487244882448924490244912449224493244942449524496244972449824499245002450124502245032450424505245062450724508245092451024511245122451324514245152451624517245182451924520245212452224523245242452524526245272452824529245302453124532245332453424535245362453724538245392454024541245422454324544245452454624547245482454924550245512455224553245542455524556245572455824559245602456124562245632456424565245662456724568245692457024571245722457324574245752457624577245782457924580245812458224583245842458524586245872458824589245902459124592245932459424595245962459724598245992460024601246022460324604246052460624607246082460924610246112461224613246142461524616246172461824619246202462124622246232462424625246262462724628246292463024631246322463324634246352463624637246382463924640246412464224643246442464524646246472464824649246502465124652246532465424655246562465724658246592466024661246622466324664246652466624667246682466924670246712467224673246742467524676246772467824679246802468124682246832468424685246862468724688246892469024691246922469324694246952469624697246982469924700247012470224703247042470524706247072470824709247102471124712247132471424715247162471724718247192472024721247222472324724247252472624727247282472924730247312473224733247342473524736247372473824739247402474124742247432474424745247462474724748247492475024751247522475324754247552475624757247582475924760247612476224763247642476524766247672476824769247702477124772247732477424775247762477724778247792478024781247822478324784247852478624787247882478924790247912479224793247942479524796247972479824799248002480124802248032480424805248062480724808248092481024811248122481324814248152481624817248182481924820248212482224823248242482524826248272482824829248302483124832248332483424835248362483724838248392484024841248422484324844248452484624847248482484924850248512485224853248542485524856248572485824859248602486124862248632486424865248662486724868248692487024871248722487324874248752487624877248782487924880248812488224883248842488524886248872488824889248902489124892248932489424895248962489724898248992490024901249022490324904249052490624907249082490924910249112491224913249142491524916249172491824919249202492124922249232492424925249262492724928249292493024931249322493324934249352493624937249382493924940249412494224943249442494524946249472494824949249502495124952249532495424955249562495724958249592496024961249622496324964249652496624967249682496924970249712497224973249742497524976249772497824979249802498124982249832498424985249862498724988249892499024991249922499324994249952499624997249982499925000250012500225003250042500525006250072500825009250102501125012250132501425015250162501725018250192502025021250222502325024250252502625027250282502925030250312503225033250342503525036250372503825039250402504125042250432504425045250462504725048250492505025051250522505325054250552505625057250582505925060250612506225063250642506525066250672506825069250702507125072250732507425075250762507725078250792508025081250822508325084250852508625087250882508925090250912509225093250942509525096250972509825099251002510125102251032510425105251062510725108251092511025111251122511325114251152511625117251182511925120251212512225123251242512525126251272512825129251302513125132251332513425135251362513725138251392514025141251422514325144251452514625147251482514925150251512515225153251542515525156251572515825159251602516125162251632516425165251662516725168251692517025171251722517325174251752517625177251782517925180251812518225183251842518525186251872518825189251902519125192251932519425195251962519725198251992520025201252022520325204252052520625207252082520925210252112521225213252142521525216252172521825219252202522125222252232522425225252262522725228252292523025231252322523325234252352523625237252382523925240252412524225243252442524525246252472524825249252502525125252252532525425255252562525725258252592526025261252622526325264252652526625267252682526925270252712527225273252742527525276252772527825279252802528125282252832528425285252862528725288252892529025291252922529325294252952529625297252982529925300253012530225303253042530525306253072530825309253102531125312253132531425315253162531725318253192532025321253222532325324253252532625327253282532925330253312533225333253342533525336253372533825339253402534125342253432534425345253462534725348253492535025351253522535325354253552535625357253582535925360253612536225363253642536525366253672536825369253702537125372253732537425375253762537725378253792538025381253822538325384253852538625387253882538925390253912539225393253942539525396253972539825399254002540125402254032540425405254062540725408254092541025411254122541325414254152541625417254182541925420254212542225423254242542525426254272542825429254302543125432254332543425435254362543725438254392544025441254422544325444254452544625447254482544925450254512545225453254542545525456254572545825459254602546125462254632546425465254662546725468254692547025471254722547325474254752547625477254782547925480254812548225483254842548525486254872548825489254902549125492254932549425495254962549725498254992550025501255022550325504255052550625507255082550925510255112551225513255142551525516255172551825519255202552125522255232552425525255262552725528255292553025531255322553325534255352553625537255382553925540255412554225543255442554525546255472554825549255502555125552255532555425555255562555725558255592556025561255622556325564255652556625567255682556925570255712557225573255742557525576255772557825579255802558125582255832558425585255862558725588255892559025591255922559325594255952559625597255982559925600256012560225603256042560525606256072560825609256102561125612256132561425615256162561725618256192562025621256222562325624256252562625627256282562925630256312563225633256342563525636256372563825639256402564125642256432564425645256462564725648256492565025651256522565325654256552565625657256582565925660256612566225663256642566525666256672566825669256702567125672256732567425675256762567725678256792568025681256822568325684256852568625687256882568925690256912569225693256942569525696256972569825699257002570125702257032570425705257062570725708257092571025711257122571325714257152571625717257182571925720257212572225723257242572525726257272572825729257302573125732257332573425735257362573725738257392574025741257422574325744257452574625747257482574925750257512575225753257542575525756257572575825759257602576125762257632576425765257662576725768257692577025771257722577325774257752577625777257782577925780257812578225783257842578525786257872578825789257902579125792257932579425795257962579725798257992580025801258022580325804258052580625807258082580925810258112581225813258142581525816258172581825819258202582125822258232582425825258262582725828258292583025831258322583325834258352583625837258382583925840258412584225843258442584525846258472584825849258502585125852258532585425855258562585725858258592586025861258622586325864258652586625867258682586925870258712587225873258742587525876258772587825879258802588125882258832588425885258862588725888258892589025891258922589325894258952589625897258982589925900259012590225903259042590525906259072590825909259102591125912259132591425915259162591725918259192592025921259222592325924259252592625927259282592925930259312593225933259342593525936259372593825939259402594125942259432594425945259462594725948259492595025951259522595325954259552595625957259582595925960259612596225963259642596525966259672596825969259702597125972259732597425975259762597725978259792598025981259822598325984259852598625987259882598925990259912599225993259942599525996259972599825999260002600126002260032600426005260062600726008260092601026011260122601326014260152601626017260182601926020260212602226023260242602526026260272602826029260302603126032260332603426035260362603726038260392604026041260422604326044260452604626047260482604926050260512605226053260542605526056260572605826059260602606126062260632606426065260662606726068260692607026071260722607326074260752607626077260782607926080260812608226083260842608526086260872608826089260902609126092260932609426095260962609726098260992610026101261022610326104261052610626107261082610926110261112611226113261142611526116261172611826119261202612126122261232612426125261262612726128261292613026131261322613326134261352613626137261382613926140261412614226143261442614526146261472614826149261502615126152261532615426155261562615726158261592616026161261622616326164261652616626167261682616926170261712617226173261742617526176261772617826179261802618126182261832618426185261862618726188261892619026191261922619326194261952619626197261982619926200262012620226203262042620526206262072620826209262102621126212262132621426215262162621726218262192622026221262222622326224262252622626227262282622926230262312623226233262342623526236262372623826239262402624126242262432624426245262462624726248262492625026251262522625326254262552625626257262582625926260262612626226263262642626526266262672626826269262702627126272262732627426275262762627726278262792628026281262822628326284262852628626287262882628926290262912629226293262942629526296262972629826299263002630126302263032630426305263062630726308263092631026311263122631326314263152631626317263182631926320263212632226323263242632526326263272632826329263302633126332263332633426335263362633726338263392634026341263422634326344263452634626347263482634926350263512635226353263542635526356263572635826359263602636126362263632636426365263662636726368263692637026371263722637326374263752637626377263782637926380263812638226383263842638526386263872638826389263902639126392263932639426395263962639726398263992640026401264022640326404264052640626407264082640926410264112641226413264142641526416264172641826419264202642126422264232642426425264262642726428264292643026431264322643326434264352643626437264382643926440264412644226443264442644526446264472644826449264502645126452264532645426455264562645726458264592646026461264622646326464264652646626467264682646926470264712647226473264742647526476264772647826479264802648126482264832648426485264862648726488264892649026491264922649326494264952649626497264982649926500265012650226503265042650526506265072650826509265102651126512265132651426515265162651726518265192652026521265222652326524265252652626527265282652926530265312653226533265342653526536265372653826539265402654126542265432654426545265462654726548265492655026551265522655326554265552655626557265582655926560265612656226563265642656526566265672656826569265702657126572265732657426575265762657726578265792658026581265822658326584265852658626587265882658926590265912659226593265942659526596265972659826599266002660126602266032660426605266062660726608266092661026611266122661326614266152661626617266182661926620266212662226623266242662526626266272662826629266302663126632266332663426635266362663726638266392664026641266422664326644266452664626647266482664926650266512665226653266542665526656266572665826659266602666126662266632666426665266662666726668266692667026671266722667326674266752667626677266782667926680266812668226683266842668526686266872668826689266902669126692266932669426695266962669726698266992670026701267022670326704267052670626707267082670926710267112671226713267142671526716267172671826719267202672126722267232672426725267262672726728267292673026731267322673326734267352673626737267382673926740267412674226743267442674526746267472674826749267502675126752267532675426755267562675726758267592676026761267622676326764267652676626767267682676926770267712677226773267742677526776267772677826779267802678126782267832678426785267862678726788267892679026791267922679326794267952679626797267982679926800268012680226803268042680526806268072680826809268102681126812268132681426815268162681726818268192682026821268222682326824268252682626827268282682926830268312683226833268342683526836268372683826839268402684126842268432684426845268462684726848268492685026851268522685326854268552685626857268582685926860268612686226863268642686526866268672686826869268702687126872268732687426875268762687726878268792688026881268822688326884268852688626887268882688926890268912689226893268942689526896268972689826899269002690126902269032690426905269062690726908269092691026911269122691326914269152691626917269182691926920269212692226923269242692526926269272692826929269302693126932269332693426935269362693726938269392694026941269422694326944269452694626947269482694926950269512695226953269542695526956269572695826959269602696126962269632696426965269662696726968269692697026971269722697326974269752697626977269782697926980269812698226983269842698526986269872698826989269902699126992269932699426995269962699726998269992700027001270022700327004270052700627007270082700927010270112701227013270142701527016270172701827019270202702127022270232702427025270262702727028270292703027031270322703327034270352703627037270382703927040270412704227043270442704527046270472704827049270502705127052270532705427055270562705727058270592706027061270622706327064270652706627067270682706927070270712707227073270742707527076270772707827079270802708127082270832708427085270862708727088270892709027091270922709327094270952709627097270982709927100271012710227103271042710527106271072710827109271102711127112271132711427115271162711727118271192712027121271222712327124271252712627127271282712927130271312713227133271342713527136271372713827139271402714127142271432714427145271462714727148271492715027151271522715327154271552715627157271582715927160271612716227163271642716527166271672716827169271702717127172271732717427175271762717727178271792718027181271822718327184271852718627187271882718927190271912719227193271942719527196271972719827199272002720127202272032720427205272062720727208272092721027211272122721327214272152721627217272182721927220272212722227223272242722527226272272722827229272302723127232272332723427235272362723727238272392724027241272422724327244272452724627247272482724927250272512725227253272542725527256272572725827259272602726127262272632726427265272662726727268272692727027271272722727327274272752727627277272782727927280272812728227283272842728527286272872728827289272902729127292272932729427295272962729727298272992730027301273022730327304273052730627307273082730927310273112731227313273142731527316273172731827319273202732127322273232732427325273262732727328273292733027331273322733327334273352733627337273382733927340273412734227343273442734527346273472734827349273502735127352273532735427355273562735727358273592736027361273622736327364273652736627367273682736927370273712737227373273742737527376273772737827379273802738127382273832738427385273862738727388273892739027391273922739327394273952739627397273982739927400274012740227403274042740527406274072740827409274102741127412274132741427415274162741727418274192742027421274222742327424274252742627427274282742927430274312743227433274342743527436274372743827439274402744127442274432744427445274462744727448274492745027451274522745327454274552745627457274582745927460274612746227463274642746527466274672746827469274702747127472274732747427475274762747727478274792748027481274822748327484274852748627487274882748927490274912749227493274942749527496274972749827499275002750127502275032750427505275062750727508275092751027511275122751327514275152751627517275182751927520275212752227523275242752527526275272752827529275302753127532275332753427535275362753727538275392754027541275422754327544275452754627547275482754927550275512755227553275542755527556275572755827559275602756127562275632756427565275662756727568275692757027571275722757327574275752757627577275782757927580275812758227583275842758527586275872758827589275902759127592275932759427595275962759727598275992760027601276022760327604276052760627607276082760927610276112761227613276142761527616276172761827619276202762127622276232762427625276262762727628276292763027631276322763327634276352763627637276382763927640276412764227643276442764527646276472764827649276502765127652276532765427655276562765727658276592766027661276622766327664276652766627667276682766927670276712767227673276742767527676276772767827679276802768127682276832768427685276862768727688276892769027691276922769327694276952769627697276982769927700277012770227703277042770527706277072770827709277102771127712277132771427715277162771727718277192772027721277222772327724277252772627727277282772927730277312773227733277342773527736277372773827739277402774127742277432774427745277462774727748277492775027751277522775327754277552775627757277582775927760277612776227763277642776527766277672776827769277702777127772277732777427775277762777727778277792778027781277822778327784277852778627787277882778927790277912779227793277942779527796277972779827799278002780127802278032780427805278062780727808278092781027811278122781327814278152781627817278182781927820278212782227823278242782527826278272782827829278302783127832278332783427835278362783727838278392784027841278422784327844278452784627847278482784927850278512785227853278542785527856278572785827859278602786127862278632786427865278662786727868278692787027871278722787327874278752787627877278782787927880278812788227883278842788527886278872788827889278902789127892278932789427895278962789727898278992790027901279022790327904279052790627907279082790927910279112791227913279142791527916279172791827919279202792127922279232792427925279262792727928279292793027931279322793327934279352793627937279382793927940279412794227943279442794527946279472794827949279502795127952279532795427955279562795727958279592796027961279622796327964279652796627967279682796927970279712797227973279742797527976279772797827979279802798127982279832798427985279862798727988279892799027991279922799327994279952799627997279982799928000280012800228003280042800528006280072800828009280102801128012280132801428015280162801728018280192802028021280222802328024280252802628027280282802928030280312803228033280342803528036280372803828039280402804128042280432804428045280462804728048280492805028051280522805328054280552805628057280582805928060280612806228063280642806528066280672806828069280702807128072280732807428075280762807728078280792808028081280822808328084280852808628087280882808928090280912809228093280942809528096280972809828099281002810128102281032810428105281062810728108281092811028111281122811328114281152811628117281182811928120281212812228123281242812528126281272812828129281302813128132281332813428135281362813728138281392814028141281422814328144281452814628147281482814928150281512815228153281542815528156281572815828159281602816128162281632816428165281662816728168281692817028171281722817328174281752817628177281782817928180281812818228183281842818528186281872818828189281902819128192281932819428195281962819728198281992820028201282022820328204282052820628207282082820928210282112821228213282142821528216282172821828219282202822128222282232822428225282262822728228282292823028231282322823328234282352823628237282382823928240282412824228243282442824528246282472824828249282502825128252282532825428255282562825728258282592826028261282622826328264282652826628267282682826928270282712827228273282742827528276282772827828279282802828128282282832828428285282862828728288282892829028291282922829328294282952829628297282982829928300283012830228303283042830528306283072830828309283102831128312283132831428315283162831728318283192832028321283222832328324283252832628327283282832928330283312833228333283342833528336283372833828339283402834128342283432834428345283462834728348283492835028351283522835328354283552835628357283582835928360283612836228363283642836528366283672836828369283702837128372283732837428375283762837728378283792838028381283822838328384283852838628387283882838928390283912839228393283942839528396283972839828399284002840128402284032840428405284062840728408284092841028411284122841328414284152841628417284182841928420284212842228423284242842528426284272842828429284302843128432284332843428435284362843728438284392844028441284422844328444284452844628447284482844928450284512845228453284542845528456284572845828459284602846128462284632846428465284662846728468284692847028471284722847328474284752847628477284782847928480284812848228483284842848528486284872848828489284902849128492284932849428495284962849728498284992850028501285022850328504285052850628507285082850928510285112851228513285142851528516285172851828519285202852128522285232852428525285262852728528285292853028531285322853328534285352853628537285382853928540285412854228543285442854528546285472854828549285502855128552285532855428555285562855728558285592856028561285622856328564285652856628567285682856928570285712857228573285742857528576285772857828579285802858128582285832858428585285862858728588285892859028591285922859328594285952859628597285982859928600286012860228603286042860528606286072860828609286102861128612286132861428615286162861728618286192862028621286222862328624286252862628627286282862928630286312863228633286342863528636286372863828639286402864128642286432864428645286462864728648286492865028651286522865328654286552865628657286582865928660286612866228663286642866528666286672866828669286702867128672286732867428675286762867728678286792868028681286822868328684286852868628687286882868928690286912869228693286942869528696286972869828699287002870128702287032870428705287062870728708287092871028711287122871328714287152871628717287182871928720287212872228723287242872528726287272872828729287302873128732287332873428735287362873728738287392874028741287422874328744287452874628747287482874928750287512875228753287542875528756287572875828759287602876128762287632876428765287662876728768287692877028771287722877328774287752877628777287782877928780287812878228783287842878528786287872878828789287902879128792287932879428795287962879728798287992880028801288022880328804288052880628807288082880928810288112881228813288142881528816288172881828819288202882128822288232882428825288262882728828288292883028831288322883328834288352883628837288382883928840288412884228843288442884528846288472884828849288502885128852288532885428855288562885728858288592886028861288622886328864288652886628867288682886928870288712887228873288742887528876288772887828879288802888128882288832888428885288862888728888288892889028891288922889328894288952889628897288982889928900289012890228903289042890528906289072890828909289102891128912289132891428915289162891728918289192892028921289222892328924289252892628927289282892928930289312893228933289342893528936289372893828939289402894128942289432894428945289462894728948289492895028951289522895328954289552895628957289582895928960289612896228963289642896528966289672896828969289702897128972289732897428975289762897728978289792898028981289822898328984289852898628987289882898928990289912899228993289942899528996289972899828999290002900129002290032900429005290062900729008290092901029011290122901329014290152901629017290182901929020290212902229023290242902529026290272902829029290302903129032290332903429035290362903729038290392904029041290422904329044290452904629047290482904929050290512905229053290542905529056290572905829059290602906129062290632906429065290662906729068290692907029071290722907329074290752907629077290782907929080290812908229083290842908529086290872908829089290902909129092290932909429095290962909729098290992910029101291022910329104291052910629107291082910929110291112911229113291142911529116291172911829119291202912129122291232912429125291262912729128291292913029131291322913329134291352913629137291382913929140291412914229143291442914529146291472914829149291502915129152291532915429155291562915729158291592916029161291622916329164291652916629167291682916929170291712917229173291742917529176291772917829179291802918129182291832918429185291862918729188291892919029191291922919329194291952919629197291982919929200292012920229203292042920529206292072920829209292102921129212292132921429215292162921729218292192922029221292222922329224292252922629227292282922929230292312923229233292342923529236292372923829239292402924129242292432924429245292462924729248292492925029251292522925329254292552925629257292582925929260292612926229263292642926529266292672926829269292702927129272292732927429275292762927729278292792928029281292822928329284292852928629287292882928929290292912929229293292942929529296292972929829299293002930129302293032930429305293062930729308293092931029311293122931329314293152931629317293182931929320293212932229323293242932529326293272932829329293302933129332293332933429335293362933729338293392934029341293422934329344293452934629347293482934929350293512935229353293542935529356293572935829359293602936129362293632936429365293662936729368293692937029371293722937329374293752937629377293782937929380293812938229383293842938529386293872938829389293902939129392293932939429395293962939729398293992940029401294022940329404294052940629407294082940929410294112941229413294142941529416294172941829419294202942129422294232942429425294262942729428294292943029431294322943329434294352943629437294382943929440294412944229443294442944529446294472944829449294502945129452294532945429455294562945729458294592946029461294622946329464294652946629467294682946929470294712947229473294742947529476294772947829479294802948129482294832948429485294862948729488294892949029491294922949329494294952949629497294982949929500295012950229503295042950529506295072950829509295102951129512295132951429515295162951729518295192952029521295222952329524295252952629527295282952929530295312953229533295342953529536295372953829539295402954129542295432954429545295462954729548295492955029551295522955329554295552955629557295582955929560295612956229563295642956529566295672956829569295702957129572295732957429575295762957729578295792958029581295822958329584295852958629587295882958929590295912959229593295942959529596295972959829599296002960129602296032960429605296062960729608296092961029611296122961329614296152961629617296182961929620296212962229623296242962529626296272962829629296302963129632296332963429635296362963729638296392964029641296422964329644296452964629647296482964929650296512965229653296542965529656296572965829659296602966129662296632966429665296662966729668296692967029671296722967329674296752967629677296782967929680296812968229683296842968529686296872968829689296902969129692296932969429695296962969729698296992970029701297022970329704297052970629707297082970929710297112971229713297142971529716297172971829719297202972129722297232972429725297262972729728297292973029731297322973329734297352973629737297382973929740297412974229743297442974529746297472974829749297502975129752297532975429755297562975729758297592976029761297622976329764297652976629767297682976929770297712977229773297742977529776297772977829779297802978129782297832978429785297862978729788297892979029791297922979329794297952979629797297982979929800298012980229803298042980529806298072980829809298102981129812298132981429815298162981729818298192982029821298222982329824298252982629827298282982929830298312983229833298342983529836298372983829839298402984129842298432984429845298462984729848298492985029851298522985329854298552985629857298582985929860298612986229863298642986529866298672986829869298702987129872298732987429875298762987729878298792988029881298822988329884298852988629887298882988929890298912989229893298942989529896298972989829899299002990129902299032990429905299062990729908299092991029911299122991329914299152991629917299182991929920299212992229923299242992529926299272992829929299302993129932299332993429935299362993729938299392994029941299422994329944299452994629947299482994929950299512995229953299542995529956299572995829959299602996129962299632996429965299662996729968299692997029971299722997329974299752997629977299782997929980299812998229983299842998529986299872998829989299902999129992299932999429995299962999729998299993000030001300023000330004300053000630007300083000930010300113001230013300143001530016300173001830019300203002130022300233002430025300263002730028300293003030031300323003330034300353003630037300383003930040300413004230043300443004530046300473004830049300503005130052300533005430055300563005730058300593006030061300623006330064300653006630067300683006930070300713007230073300743007530076300773007830079300803008130082300833008430085300863008730088300893009030091300923009330094300953009630097300983009930100301013010230103301043010530106301073010830109301103011130112301133011430115301163011730118301193012030121301223012330124301253012630127301283012930130301313013230133301343013530136301373013830139301403014130142301433014430145301463014730148301493015030151301523015330154301553015630157301583015930160301613016230163301643016530166301673016830169301703017130172301733017430175301763017730178301793018030181301823018330184301853018630187301883018930190301913019230193301943019530196301973019830199302003020130202302033020430205302063020730208302093021030211302123021330214302153021630217302183021930220302213022230223302243022530226302273022830229302303023130232302333023430235302363023730238302393024030241302423024330244302453024630247302483024930250302513025230253302543025530256302573025830259302603026130262302633026430265302663026730268302693027030271302723027330274302753027630277302783027930280302813028230283302843028530286302873028830289302903029130292302933029430295302963029730298302993030030301303023030330304303053030630307303083030930310303113031230313303143031530316303173031830319303203032130322303233032430325303263032730328303293033030331303323033330334303353033630337303383033930340303413034230343303443034530346303473034830349303503035130352303533035430355303563035730358303593036030361303623036330364303653036630367303683036930370303713037230373303743037530376303773037830379303803038130382303833038430385303863038730388303893039030391303923039330394303953039630397303983039930400304013040230403304043040530406304073040830409304103041130412304133041430415304163041730418304193042030421304223042330424304253042630427304283042930430304313043230433304343043530436304373043830439304403044130442304433044430445304463044730448304493045030451304523045330454304553045630457304583045930460304613046230463304643046530466304673046830469304703047130472304733047430475304763047730478304793048030481304823048330484304853048630487304883048930490304913049230493304943049530496304973049830499305003050130502305033050430505305063050730508305093051030511305123051330514305153051630517305183051930520305213052230523305243052530526305273052830529305303053130532305333053430535305363053730538305393054030541305423054330544305453054630547305483054930550305513055230553305543055530556305573055830559305603056130562305633056430565305663056730568305693057030571305723057330574305753057630577305783057930580305813058230583305843058530586305873058830589305903059130592305933059430595305963059730598305993060030601306023060330604306053060630607306083060930610306113061230613306143061530616306173061830619306203062130622306233062430625306263062730628306293063030631306323063330634306353063630637306383063930640306413064230643306443064530646306473064830649306503065130652306533065430655306563065730658306593066030661306623066330664306653066630667306683066930670306713067230673306743067530676306773067830679306803068130682306833068430685306863068730688306893069030691306923069330694306953069630697306983069930700307013070230703307043070530706307073070830709307103071130712307133071430715307163071730718307193072030721307223072330724307253072630727307283072930730307313073230733307343073530736307373073830739307403074130742307433074430745307463074730748307493075030751307523075330754307553075630757307583075930760307613076230763307643076530766307673076830769307703077130772307733077430775307763077730778307793078030781307823078330784307853078630787307883078930790307913079230793307943079530796307973079830799308003080130802308033080430805308063080730808308093081030811308123081330814308153081630817308183081930820308213082230823308243082530826308273082830829308303083130832308333083430835308363083730838308393084030841308423084330844308453084630847308483084930850308513085230853308543085530856308573085830859308603086130862308633086430865308663086730868308693087030871308723087330874308753087630877308783087930880308813088230883308843088530886308873088830889308903089130892308933089430895308963089730898308993090030901309023090330904309053090630907309083090930910309113091230913309143091530916309173091830919309203092130922309233092430925309263092730928309293093030931309323093330934309353093630937309383093930940309413094230943309443094530946309473094830949309503095130952309533095430955309563095730958309593096030961309623096330964309653096630967309683096930970309713097230973309743097530976309773097830979309803098130982309833098430985309863098730988309893099030991309923099330994309953099630997309983099931000310013100231003310043100531006310073100831009310103101131012310133101431015310163101731018310193102031021310223102331024310253102631027310283102931030310313103231033310343103531036310373103831039310403104131042310433104431045310463104731048310493105031051310523105331054310553105631057310583105931060310613106231063310643106531066310673106831069310703107131072310733107431075310763107731078310793108031081310823108331084310853108631087310883108931090310913109231093310943109531096310973109831099311003110131102311033110431105311063110731108311093111031111311123111331114311153111631117311183111931120311213112231123311243112531126311273112831129311303113131132311333113431135311363113731138311393114031141311423114331144311453114631147311483114931150311513115231153311543115531156311573115831159311603116131162311633116431165311663116731168311693117031171311723117331174311753117631177311783117931180311813118231183311843118531186311873118831189311903119131192311933119431195311963119731198311993120031201312023120331204312053120631207312083120931210312113121231213312143121531216312173121831219312203122131222312233122431225312263122731228312293123031231312323123331234312353123631237312383123931240312413124231243312443124531246312473124831249312503125131252312533125431255312563125731258312593126031261312623126331264312653126631267312683126931270312713127231273312743127531276312773127831279312803128131282312833128431285312863128731288312893129031291312923129331294312953129631297312983129931300313013130231303313043130531306313073130831309313103131131312313133131431315313163131731318313193132031321313223132331324313253132631327313283132931330313313133231333313343133531336313373133831339313403134131342313433134431345313463134731348313493135031351313523135331354313553135631357313583135931360313613136231363313643136531366313673136831369313703137131372313733137431375313763137731378313793138031381313823138331384313853138631387313883138931390313913139231393313943139531396313973139831399314003140131402314033140431405314063140731408314093141031411314123141331414314153141631417314183141931420314213142231423314243142531426314273142831429314303143131432314333143431435314363143731438314393144031441314423144331444314453144631447314483144931450314513145231453314543145531456314573145831459314603146131462314633146431465314663146731468314693147031471314723147331474314753147631477314783147931480314813148231483314843148531486314873148831489314903149131492314933149431495314963149731498314993150031501315023150331504315053150631507315083150931510315113151231513315143151531516315173151831519315203152131522315233152431525315263152731528315293153031531315323153331534315353153631537315383153931540315413154231543315443154531546315473154831549315503155131552315533155431555315563155731558315593156031561315623156331564315653156631567315683156931570315713157231573315743157531576315773157831579315803158131582315833158431585315863158731588315893159031591315923159331594315953159631597315983159931600316013160231603316043160531606316073160831609316103161131612316133161431615316163161731618316193162031621316223162331624316253162631627316283162931630316313163231633316343163531636316373163831639316403164131642316433164431645316463164731648316493165031651316523165331654316553165631657316583165931660316613166231663316643166531666316673166831669316703167131672316733167431675316763167731678316793168031681316823168331684316853168631687316883168931690316913169231693316943169531696316973169831699317003170131702317033170431705317063170731708317093171031711317123171331714317153171631717317183171931720317213172231723317243172531726317273172831729317303173131732317333173431735317363173731738317393174031741317423174331744317453174631747317483174931750317513175231753317543175531756317573175831759317603176131762317633176431765317663176731768317693177031771317723177331774317753177631777317783177931780317813178231783317843178531786317873178831789317903179131792317933179431795317963179731798317993180031801318023180331804318053180631807318083180931810318113181231813318143181531816318173181831819318203182131822318233182431825318263182731828318293183031831318323183331834318353183631837318383183931840318413184231843318443184531846318473184831849318503185131852318533185431855318563185731858318593186031861318623186331864318653186631867318683186931870318713187231873318743187531876318773187831879318803188131882318833188431885318863188731888318893189031891318923189331894318953189631897318983189931900319013190231903319043190531906319073190831909319103191131912319133191431915319163191731918319193192031921319223192331924319253192631927319283192931930319313193231933319343193531936319373193831939319403194131942319433194431945319463194731948319493195031951319523195331954319553195631957319583195931960319613196231963319643196531966319673196831969319703197131972319733197431975319763197731978319793198031981319823198331984319853198631987319883198931990319913199231993319943199531996319973199831999320003200132002320033200432005320063200732008320093201032011320123201332014320153201632017320183201932020320213202232023320243202532026320273202832029320303203132032320333203432035320363203732038320393204032041320423204332044320453204632047320483204932050320513205232053320543205532056320573205832059320603206132062320633206432065320663206732068320693207032071320723207332074320753207632077320783207932080320813208232083320843208532086320873208832089320903209132092320933209432095320963209732098320993210032101321023210332104321053210632107321083210932110321113211232113321143211532116321173211832119321203212132122321233212432125321263212732128321293213032131321323213332134321353213632137321383213932140321413214232143321443214532146321473214832149321503215132152321533215432155321563215732158321593216032161321623216332164321653216632167321683216932170321713217232173321743217532176321773217832179321803218132182321833218432185321863218732188321893219032191321923219332194321953219632197321983219932200322013220232203322043220532206322073220832209322103221132212322133221432215322163221732218322193222032221322223222332224322253222632227322283222932230322313223232233322343223532236322373223832239322403224132242322433224432245322463224732248322493225032251322523225332254322553225632257322583225932260322613226232263322643226532266322673226832269322703227132272322733227432275322763227732278322793228032281322823228332284322853228632287322883228932290322913229232293322943229532296322973229832299323003230132302323033230432305323063230732308323093231032311323123231332314323153231632317323183231932320323213232232323323243232532326323273232832329323303233132332323333233432335323363233732338323393234032341323423234332344323453234632347323483234932350323513235232353323543235532356323573235832359323603236132362323633236432365323663236732368323693237032371323723237332374323753237632377323783237932380323813238232383323843238532386323873238832389323903239132392323933239432395323963239732398323993240032401324023240332404324053240632407324083240932410324113241232413324143241532416324173241832419324203242132422324233242432425324263242732428324293243032431324323243332434324353243632437324383243932440324413244232443324443244532446324473244832449324503245132452324533245432455324563245732458324593246032461324623246332464324653246632467324683246932470324713247232473324743247532476324773247832479324803248132482324833248432485324863248732488324893249032491324923249332494324953249632497324983249932500325013250232503325043250532506325073250832509325103251132512325133251432515325163251732518325193252032521325223252332524325253252632527325283252932530325313253232533325343253532536325373253832539325403254132542325433254432545325463254732548325493255032551325523255332554325553255632557325583255932560325613256232563325643256532566325673256832569325703257132572325733257432575325763257732578325793258032581325823258332584325853258632587325883258932590325913259232593325943259532596325973259832599326003260132602326033260432605326063260732608326093261032611326123261332614326153261632617326183261932620326213262232623326243262532626326273262832629326303263132632326333263432635326363263732638326393264032641326423264332644326453264632647326483264932650326513265232653326543265532656326573265832659326603266132662326633266432665326663266732668326693267032671326723267332674326753267632677326783267932680326813268232683326843268532686326873268832689326903269132692326933269432695326963269732698326993270032701327023270332704327053270632707327083270932710327113271232713327143271532716327173271832719327203272132722327233272432725327263272732728327293273032731327323273332734327353273632737327383273932740327413274232743327443274532746327473274832749327503275132752327533275432755327563275732758327593276032761327623276332764327653276632767327683276932770327713277232773327743277532776327773277832779327803278132782327833278432785327863278732788327893279032791327923279332794327953279632797327983279932800328013280232803328043280532806328073280832809328103281132812328133281432815328163281732818328193282032821328223282332824328253282632827328283282932830328313283232833328343283532836328373283832839328403284132842328433284432845328463284732848328493285032851328523285332854328553285632857328583285932860328613286232863328643286532866328673286832869328703287132872328733287432875328763287732878328793288032881328823288332884328853288632887328883288932890328913289232893328943289532896328973289832899329003290132902329033290432905329063290732908329093291032911329123291332914329153291632917329183291932920329213292232923329243292532926329273292832929329303293132932329333293432935329363293732938329393294032941329423294332944329453294632947329483294932950329513295232953329543295532956329573295832959329603296132962329633296432965329663296732968329693297032971329723297332974329753297632977329783297932980329813298232983329843298532986329873298832989329903299132992329933299432995329963299732998329993300033001330023300333004330053300633007330083300933010330113301233013330143301533016330173301833019330203302133022330233302433025330263302733028330293303033031330323303333034330353303633037330383303933040330413304233043330443304533046330473304833049330503305133052330533305433055330563305733058330593306033061330623306333064330653306633067330683306933070330713307233073330743307533076330773307833079330803308133082330833308433085330863308733088330893309033091330923309333094330953309633097330983309933100331013310233103331043310533106331073310833109331103311133112331133311433115331163311733118331193312033121331223312333124331253312633127331283312933130331313313233133331343313533136331373313833139331403314133142331433314433145331463314733148331493315033151331523315333154331553315633157331583315933160331613316233163331643316533166331673316833169331703317133172331733317433175331763317733178331793318033181331823318333184331853318633187331883318933190331913319233193331943319533196331973319833199332003320133202332033320433205332063320733208332093321033211332123321333214332153321633217332183321933220332213322233223332243322533226332273322833229332303323133232332333323433235332363323733238332393324033241332423324333244332453324633247332483324933250332513325233253332543325533256332573325833259332603326133262332633326433265332663326733268332693327033271332723327333274332753327633277332783327933280332813328233283332843328533286332873328833289332903329133292332933329433295332963329733298332993330033301333023330333304333053330633307333083330933310333113331233313333143331533316333173331833319333203332133322333233332433325333263332733328333293333033331333323333333334333353333633337333383333933340333413334233343333443334533346333473334833349333503335133352333533335433355333563335733358333593336033361333623336333364333653336633367333683336933370333713337233373333743337533376333773337833379333803338133382333833338433385333863338733388333893339033391333923339333394333953339633397333983339933400334013340233403334043340533406334073340833409334103341133412334133341433415334163341733418334193342033421334223342333424334253342633427334283342933430334313343233433334343343533436334373343833439334403344133442334433344433445334463344733448334493345033451334523345333454334553345633457334583345933460334613346233463334643346533466334673346833469334703347133472334733347433475334763347733478334793348033481334823348333484334853348633487334883348933490334913349233493334943349533496334973349833499335003350133502335033350433505335063350733508335093351033511335123351333514335153351633517335183351933520335213352233523335243352533526335273352833529335303353133532335333353433535335363353733538335393354033541335423354333544335453354633547335483354933550335513355233553335543355533556335573355833559335603356133562335633356433565335663356733568335693357033571335723357333574335753357633577335783357933580335813358233583335843358533586335873358833589335903359133592335933359433595335963359733598335993360033601336023360333604336053360633607336083360933610336113361233613336143361533616336173361833619336203362133622336233362433625336263362733628336293363033631336323363333634336353363633637336383363933640336413364233643336443364533646336473364833649336503365133652336533365433655336563365733658336593366033661336623366333664336653366633667336683366933670336713367233673336743367533676336773367833679336803368133682336833368433685336863368733688336893369033691336923369333694336953369633697336983369933700337013370233703337043370533706337073370833709337103371133712337133371433715337163371733718337193372033721337223372333724337253372633727337283372933730337313373233733337343373533736337373373833739337403374133742337433374433745337463374733748337493375033751337523375333754337553375633757337583375933760337613376233763337643376533766337673376833769337703377133772337733377433775337763377733778337793378033781337823378333784337853378633787337883378933790337913379233793337943379533796337973379833799338003380133802338033380433805338063380733808338093381033811338123381333814338153381633817338183381933820338213382233823338243382533826338273382833829338303383133832338333383433835338363383733838338393384033841338423384333844338453384633847338483384933850338513385233853338543385533856338573385833859338603386133862338633386433865338663386733868338693387033871338723387333874338753387633877338783387933880338813388233883338843388533886338873388833889338903389133892338933389433895338963389733898338993390033901339023390333904339053390633907339083390933910339113391233913339143391533916339173391833919339203392133922339233392433925339263392733928339293393033931339323393333934339353393633937339383393933940339413394233943339443394533946339473394833949339503395133952339533395433955339563395733958339593396033961339623396333964339653396633967339683396933970339713397233973339743397533976339773397833979339803398133982339833398433985339863398733988339893399033991339923399333994339953399633997339983399934000340013400234003340043400534006340073400834009340103401134012340133401434015340163401734018340193402034021340223402334024340253402634027340283402934030340313403234033340343403534036340373403834039340403404134042340433404434045340463404734048340493405034051340523405334054340553405634057340583405934060340613406234063340643406534066340673406834069340703407134072340733407434075340763407734078340793408034081340823408334084340853408634087340883408934090340913409234093340943409534096340973409834099341003410134102341033410434105341063410734108341093411034111341123411334114341153411634117341183411934120341213412234123341243412534126341273412834129341303413134132341333413434135341363413734138341393414034141341423414334144341453414634147341483414934150341513415234153341543415534156341573415834159341603416134162341633416434165341663416734168341693417034171341723417334174341753417634177341783417934180341813418234183341843418534186341873418834189341903419134192341933419434195341963419734198341993420034201342023420334204342053420634207342083420934210342113421234213342143421534216342173421834219342203422134222342233422434225342263422734228342293423034231342323423334234342353423634237342383423934240342413424234243342443424534246342473424834249342503425134252342533425434255342563425734258342593426034261342623426334264342653426634267342683426934270342713427234273342743427534276342773427834279342803428134282342833428434285342863428734288342893429034291342923429334294342953429634297342983429934300343013430234303343043430534306343073430834309343103431134312343133431434315343163431734318343193432034321343223432334324343253432634327343283432934330343313433234333343343433534336343373433834339343403434134342343433434434345343463434734348343493435034351343523435334354343553435634357343583435934360343613436234363343643436534366343673436834369343703437134372343733437434375343763437734378343793438034381343823438334384343853438634387343883438934390343913439234393343943439534396343973439834399344003440134402344033440434405344063440734408344093441034411344123441334414344153441634417344183441934420344213442234423344243442534426344273442834429344303443134432344333443434435344363443734438344393444034441344423444334444344453444634447344483444934450344513445234453344543445534456344573445834459344603446134462344633446434465344663446734468344693447034471344723447334474344753447634477344783447934480344813448234483344843448534486344873448834489344903449134492344933449434495344963449734498344993450034501345023450334504345053450634507345083450934510345113451234513345143451534516345173451834519345203452134522345233452434525345263452734528345293453034531345323453334534345353453634537345383453934540345413454234543345443454534546345473454834549345503455134552345533455434555345563455734558345593456034561345623456334564345653456634567345683456934570345713457234573345743457534576345773457834579345803458134582345833458434585345863458734588345893459034591345923459334594345953459634597345983459934600346013460234603346043460534606346073460834609346103461134612346133461434615346163461734618346193462034621346223462334624346253462634627346283462934630346313463234633346343463534636346373463834639346403464134642346433464434645346463464734648346493465034651346523465334654346553465634657346583465934660346613466234663346643466534666346673466834669346703467134672346733467434675346763467734678346793468034681346823468334684346853468634687346883468934690346913469234693346943469534696346973469834699347003470134702347033470434705347063470734708347093471034711347123471334714347153471634717347183471934720347213472234723347243472534726347273472834729347303473134732347333473434735347363473734738347393474034741347423474334744347453474634747347483474934750347513475234753347543475534756347573475834759347603476134762347633476434765347663476734768347693477034771347723477334774347753477634777347783477934780347813478234783347843478534786347873478834789347903479134792347933479434795347963479734798347993480034801348023480334804348053480634807348083480934810348113481234813348143481534816348173481834819348203482134822348233482434825348263482734828348293483034831348323483334834348353483634837348383483934840348413484234843348443484534846348473484834849348503485134852348533485434855348563485734858348593486034861348623486334864348653486634867348683486934870348713487234873348743487534876348773487834879348803488134882348833488434885348863488734888348893489034891348923489334894348953489634897348983489934900349013490234903349043490534906349073490834909349103491134912349133491434915349163491734918349193492034921349223492334924349253492634927349283492934930349313493234933349343493534936349373493834939349403494134942349433494434945349463494734948349493495034951349523495334954349553495634957349583495934960349613496234963349643496534966349673496834969349703497134972349733497434975349763497734978349793498034981349823498334984349853498634987349883498934990349913499234993349943499534996349973499834999350003500135002350033500435005350063500735008350093501035011350123501335014350153501635017350183501935020350213502235023350243502535026350273502835029350303503135032350333503435035350363503735038350393504035041350423504335044350453504635047350483504935050350513505235053350543505535056350573505835059350603506135062350633506435065350663506735068350693507035071350723507335074350753507635077350783507935080350813508235083350843508535086350873508835089350903509135092350933509435095350963509735098350993510035101351023510335104351053510635107351083510935110351113511235113351143511535116351173511835119351203512135122351233512435125351263512735128351293513035131351323513335134351353513635137351383513935140351413514235143351443514535146351473514835149351503515135152351533515435155351563515735158351593516035161351623516335164351653516635167351683516935170351713517235173351743517535176351773517835179351803518135182351833518435185351863518735188351893519035191351923519335194351953519635197351983519935200352013520235203352043520535206352073520835209352103521135212352133521435215352163521735218352193522035221352223522335224352253522635227352283522935230352313523235233352343523535236352373523835239352403524135242352433524435245352463524735248352493525035251352523525335254352553525635257352583525935260352613526235263352643526535266352673526835269352703527135272352733527435275352763527735278352793528035281352823528335284352853528635287352883528935290352913529235293352943529535296352973529835299353003530135302353033530435305353063530735308353093531035311353123531335314353153531635317353183531935320353213532235323353243532535326353273532835329353303533135332353333533435335353363533735338353393534035341353423534335344353453534635347353483534935350353513535235353353543535535356353573535835359353603536135362353633536435365353663536735368353693537035371353723537335374353753537635377353783537935380353813538235383353843538535386353873538835389353903539135392353933539435395353963539735398353993540035401354023540335404354053540635407354083540935410354113541235413354143541535416354173541835419354203542135422354233542435425354263542735428354293543035431354323543335434354353543635437354383543935440354413544235443354443544535446354473544835449354503545135452354533545435455354563545735458354593546035461354623546335464354653546635467354683546935470354713547235473354743547535476354773547835479354803548135482354833548435485354863548735488354893549035491354923549335494354953549635497354983549935500355013550235503355043550535506355073550835509355103551135512355133551435515355163551735518355193552035521355223552335524355253552635527355283552935530355313553235533355343553535536355373553835539355403554135542355433554435545355463554735548355493555035551355523555335554355553555635557355583555935560355613556235563355643556535566355673556835569355703557135572355733557435575355763557735578355793558035581355823558335584355853558635587355883558935590355913559235593355943559535596355973559835599356003560135602356033560435605356063560735608356093561035611356123561335614356153561635617356183561935620356213562235623356243562535626356273562835629356303563135632356333563435635356363563735638356393564035641356423564335644356453564635647356483564935650356513565235653356543565535656356573565835659356603566135662356633566435665356663566735668356693567035671356723567335674356753567635677356783567935680356813568235683356843568535686356873568835689356903569135692356933569435695356963569735698356993570035701357023570335704357053570635707357083570935710357113571235713357143571535716357173571835719357203572135722357233572435725357263572735728357293573035731357323573335734357353573635737357383573935740357413574235743357443574535746357473574835749357503575135752357533575435755357563575735758357593576035761357623576335764357653576635767357683576935770357713577235773357743577535776357773577835779357803578135782357833578435785357863578735788357893579035791357923579335794357953579635797357983579935800358013580235803358043580535806358073580835809358103581135812358133581435815358163581735818358193582035821358223582335824358253582635827358283582935830358313583235833358343583535836358373583835839358403584135842358433584435845358463584735848358493585035851358523585335854358553585635857358583585935860358613586235863358643586535866358673586835869358703587135872358733587435875358763587735878358793588035881358823588335884358853588635887358883588935890358913589235893358943589535896358973589835899359003590135902359033590435905359063590735908359093591035911359123591335914359153591635917359183591935920359213592235923359243592535926359273592835929359303593135932359333593435935359363593735938359393594035941359423594335944359453594635947359483594935950359513595235953359543595535956359573595835959359603596135962359633596435965359663596735968359693597035971359723597335974359753597635977359783597935980359813598235983359843598535986359873598835989359903599135992359933599435995359963599735998359993600036001360023600336004360053600636007360083600936010360113601236013360143601536016360173601836019360203602136022360233602436025360263602736028360293603036031360323603336034360353603636037360383603936040360413604236043360443604536046360473604836049360503605136052360533605436055360563605736058360593606036061360623606336064360653606636067360683606936070360713607236073360743607536076360773607836079360803608136082360833608436085360863608736088360893609036091360923609336094360953609636097360983609936100361013610236103361043610536106361073610836109361103611136112361133611436115361163611736118361193612036121361223612336124361253612636127361283612936130361313613236133361343613536136361373613836139361403614136142361433614436145361463614736148361493615036151361523615336154361553615636157361583615936160361613616236163361643616536166361673616836169361703617136172361733617436175361763617736178361793618036181361823618336184361853618636187361883618936190361913619236193361943619536196361973619836199362003620136202362033620436205362063620736208362093621036211362123621336214362153621636217362183621936220362213622236223362243622536226362273622836229362303623136232362333623436235362363623736238362393624036241362423624336244362453624636247362483624936250362513625236253362543625536256362573625836259362603626136262362633626436265362663626736268362693627036271362723627336274362753627636277362783627936280362813628236283362843628536286362873628836289362903629136292362933629436295362963629736298362993630036301363023630336304363053630636307363083630936310363113631236313363143631536316363173631836319363203632136322363233632436325363263632736328363293633036331363323633336334363353633636337363383633936340363413634236343363443634536346363473634836349363503635136352363533635436355363563635736358363593636036361363623636336364363653636636367363683636936370363713637236373363743637536376363773637836379363803638136382363833638436385363863638736388363893639036391363923639336394363953639636397363983639936400364013640236403364043640536406364073640836409364103641136412364133641436415364163641736418364193642036421364223642336424364253642636427364283642936430364313643236433364343643536436364373643836439364403644136442364433644436445364463644736448364493645036451364523645336454364553645636457364583645936460364613646236463364643646536466364673646836469364703647136472364733647436475364763647736478364793648036481364823648336484364853648636487364883648936490364913649236493364943649536496364973649836499365003650136502365033650436505365063650736508365093651036511365123651336514365153651636517365183651936520365213652236523365243652536526365273652836529365303653136532365333653436535365363653736538365393654036541365423654336544365453654636547365483654936550365513655236553365543655536556365573655836559365603656136562365633656436565365663656736568365693657036571365723657336574365753657636577365783657936580365813658236583365843658536586365873658836589365903659136592365933659436595365963659736598365993660036601366023660336604366053660636607366083660936610366113661236613366143661536616366173661836619366203662136622366233662436625366263662736628366293663036631366323663336634366353663636637366383663936640366413664236643366443664536646366473664836649366503665136652366533665436655366563665736658366593666036661366623666336664366653666636667366683666936670366713667236673366743667536676366773667836679366803668136682366833668436685366863668736688366893669036691366923669336694366953669636697366983669936700367013670236703367043670536706367073670836709367103671136712367133671436715367163671736718367193672036721367223672336724367253672636727367283672936730367313673236733367343673536736367373673836739367403674136742367433674436745367463674736748367493675036751367523675336754367553675636757367583675936760367613676236763367643676536766367673676836769367703677136772367733677436775367763677736778367793678036781367823678336784367853678636787367883678936790367913679236793367943679536796367973679836799368003680136802368033680436805368063680736808368093681036811368123681336814368153681636817368183681936820368213682236823368243682536826368273682836829368303683136832368333683436835368363683736838368393684036841368423684336844368453684636847368483684936850368513685236853368543685536856368573685836859368603686136862368633686436865368663686736868368693687036871368723687336874368753687636877368783687936880368813688236883368843688536886368873688836889368903689136892368933689436895368963689736898368993690036901369023690336904369053690636907369083690936910369113691236913369143691536916369173691836919369203692136922369233692436925369263692736928369293693036931369323693336934369353693636937369383693936940369413694236943369443694536946369473694836949369503695136952369533695436955369563695736958369593696036961369623696336964369653696636967369683696936970369713697236973369743697536976369773697836979369803698136982369833698436985369863698736988369893699036991369923699336994369953699636997369983699937000370013700237003370043700537006370073700837009370103701137012370133701437015370163701737018370193702037021370223702337024370253702637027370283702937030370313703237033370343703537036370373703837039370403704137042370433704437045370463704737048370493705037051370523705337054370553705637057370583705937060370613706237063370643706537066370673706837069370703707137072370733707437075370763707737078370793708037081370823708337084370853708637087370883708937090370913709237093370943709537096370973709837099371003710137102371033710437105371063710737108371093711037111371123711337114371153711637117371183711937120371213712237123371243712537126371273712837129371303713137132371333713437135371363713737138371393714037141371423714337144371453714637147371483714937150371513715237153371543715537156371573715837159371603716137162371633716437165371663716737168371693717037171371723717337174371753717637177371783717937180371813718237183371843718537186371873718837189371903719137192371933719437195371963719737198371993720037201372023720337204372053720637207372083720937210372113721237213372143721537216372173721837219372203722137222372233722437225372263722737228372293723037231372323723337234372353723637237372383723937240372413724237243372443724537246372473724837249372503725137252372533725437255372563725737258372593726037261372623726337264372653726637267372683726937270372713727237273372743727537276372773727837279372803728137282372833728437285372863728737288372893729037291372923729337294372953729637297372983729937300373013730237303373043730537306373073730837309373103731137312373133731437315373163731737318373193732037321373223732337324373253732637327373283732937330373313733237333373343733537336373373733837339373403734137342373433734437345373463734737348373493735037351373523735337354373553735637357373583735937360373613736237363373643736537366373673736837369373703737137372373733737437375373763737737378373793738037381373823738337384373853738637387373883738937390373913739237393373943739537396373973739837399374003740137402374033740437405374063740737408374093741037411374123741337414374153741637417374183741937420374213742237423374243742537426374273742837429374303743137432374333743437435374363743737438374393744037441374423744337444374453744637447374483744937450374513745237453374543745537456374573745837459374603746137462374633746437465374663746737468374693747037471374723747337474374753747637477374783747937480374813748237483374843748537486374873748837489374903749137492374933749437495374963749737498374993750037501375023750337504375053750637507375083750937510375113751237513375143751537516375173751837519375203752137522375233752437525375263752737528375293753037531375323753337534375353753637537375383753937540375413754237543375443754537546375473754837549375503755137552375533755437555375563755737558375593756037561375623756337564375653756637567375683756937570375713757237573375743757537576375773757837579375803758137582375833758437585375863758737588375893759037591375923759337594375953759637597375983759937600376013760237603376043760537606376073760837609376103761137612376133761437615376163761737618376193762037621376223762337624376253762637627376283762937630376313763237633376343763537636376373763837639376403764137642376433764437645376463764737648376493765037651376523765337654376553765637657376583765937660376613766237663376643766537666376673766837669376703767137672376733767437675376763767737678376793768037681376823768337684376853768637687376883768937690376913769237693376943769537696376973769837699377003770137702377033770437705377063770737708377093771037711377123771337714377153771637717377183771937720377213772237723377243772537726377273772837729377303773137732377333773437735377363773737738377393774037741377423774337744377453774637747377483774937750377513775237753377543775537756377573775837759377603776137762377633776437765377663776737768377693777037771377723777337774377753777637777377783777937780377813778237783377843778537786377873778837789377903779137792377933779437795377963779737798377993780037801378023780337804378053780637807378083780937810378113781237813378143781537816378173781837819378203782137822378233782437825378263782737828378293783037831378323783337834378353783637837378383783937840378413784237843378443784537846378473784837849378503785137852378533785437855378563785737858378593786037861378623786337864378653786637867378683786937870378713787237873378743787537876378773787837879378803788137882378833788437885378863788737888378893789037891378923789337894378953789637897378983789937900379013790237903379043790537906379073790837909379103791137912379133791437915379163791737918379193792037921379223792337924379253792637927379283792937930379313793237933379343793537936379373793837939379403794137942379433794437945379463794737948379493795037951379523795337954379553795637957379583795937960379613796237963379643796537966379673796837969379703797137972379733797437975379763797737978379793798037981379823798337984379853798637987379883798937990379913799237993379943799537996379973799837999380003800138002380033800438005380063800738008380093801038011380123801338014380153801638017380183801938020380213802238023380243802538026380273802838029380303803138032380333803438035380363803738038380393804038041380423804338044380453804638047380483804938050380513805238053380543805538056380573805838059380603806138062380633806438065380663806738068380693807038071380723807338074380753807638077380783807938080380813808238083380843808538086380873808838089380903809138092380933809438095380963809738098380993810038101381023810338104381053810638107381083810938110381113811238113381143811538116381173811838119381203812138122381233812438125381263812738128381293813038131381323813338134381353813638137381383813938140381413814238143381443814538146381473814838149381503815138152381533815438155381563815738158381593816038161381623816338164381653816638167381683816938170381713817238173381743817538176381773817838179381803818138182381833818438185381863818738188381893819038191381923819338194381953819638197381983819938200382013820238203382043820538206382073820838209382103821138212382133821438215382163821738218382193822038221382223822338224382253822638227382283822938230382313823238233382343823538236382373823838239382403824138242382433824438245382463824738248382493825038251382523825338254382553825638257382583825938260382613826238263382643826538266382673826838269382703827138272382733827438275382763827738278382793828038281382823828338284382853828638287382883828938290382913829238293382943829538296382973829838299383003830138302383033830438305383063830738308383093831038311383123831338314383153831638317383183831938320383213832238323383243832538326383273832838329383303833138332383333833438335383363833738338383393834038341383423834338344383453834638347383483834938350383513835238353383543835538356383573835838359383603836138362383633836438365383663836738368383693837038371383723837338374383753837638377383783837938380383813838238383383843838538386383873838838389383903839138392383933839438395383963839738398383993840038401384023840338404384053840638407384083840938410384113841238413384143841538416384173841838419384203842138422384233842438425384263842738428384293843038431384323843338434384353843638437384383843938440384413844238443384443844538446384473844838449384503845138452384533845438455384563845738458384593846038461384623846338464384653846638467384683846938470384713847238473384743847538476384773847838479384803848138482384833848438485384863848738488384893849038491384923849338494384953849638497384983849938500385013850238503385043850538506385073850838509385103851138512385133851438515385163851738518385193852038521385223852338524385253852638527385283852938530385313853238533385343853538536385373853838539385403854138542385433854438545385463854738548385493855038551385523855338554385553855638557385583855938560385613856238563385643856538566385673856838569385703857138572385733857438575385763857738578385793858038581385823858338584385853858638587385883858938590385913859238593385943859538596385973859838599386003860138602386033860438605386063860738608386093861038611386123861338614386153861638617386183861938620386213862238623386243862538626386273862838629386303863138632386333863438635386363863738638386393864038641386423864338644386453864638647386483864938650386513865238653386543865538656386573865838659386603866138662386633866438665386663866738668386693867038671386723867338674386753867638677386783867938680386813868238683386843868538686386873868838689386903869138692386933869438695386963869738698386993870038701387023870338704387053870638707387083870938710387113871238713387143871538716387173871838719387203872138722387233872438725387263872738728387293873038731387323873338734387353873638737387383873938740387413874238743387443874538746387473874838749387503875138752387533875438755387563875738758387593876038761387623876338764387653876638767387683876938770387713877238773387743877538776387773877838779387803878138782387833878438785387863878738788387893879038791387923879338794387953879638797387983879938800388013880238803388043880538806388073880838809388103881138812388133881438815388163881738818388193882038821388223882338824388253882638827388283882938830388313883238833388343883538836388373883838839388403884138842388433884438845388463884738848388493885038851388523885338854388553885638857388583885938860388613886238863388643886538866388673886838869388703887138872388733887438875388763887738878388793888038881388823888338884388853888638887388883888938890388913889238893388943889538896388973889838899389003890138902389033890438905389063890738908389093891038911389123891338914389153891638917389183891938920389213892238923389243892538926389273892838929389303893138932389333893438935389363893738938389393894038941389423894338944389453894638947389483894938950389513895238953389543895538956389573895838959389603896138962389633896438965389663896738968389693897038971389723897338974389753897638977389783897938980389813898238983389843898538986389873898838989389903899138992389933899438995389963899738998389993900039001390023900339004390053900639007390083900939010390113901239013390143901539016390173901839019390203902139022390233902439025390263902739028390293903039031390323903339034390353903639037390383903939040390413904239043390443904539046390473904839049390503905139052390533905439055390563905739058390593906039061390623906339064390653906639067390683906939070390713907239073390743907539076390773907839079390803908139082390833908439085390863908739088390893909039091390923909339094390953909639097390983909939100391013910239103391043910539106391073910839109391103911139112391133911439115391163911739118391193912039121391223912339124391253912639127391283912939130391313913239133391343913539136391373913839139391403914139142391433914439145391463914739148391493915039151391523915339154391553915639157391583915939160391613916239163391643916539166391673916839169391703917139172391733917439175391763917739178391793918039181391823918339184391853918639187391883918939190391913919239193391943919539196391973919839199392003920139202392033920439205392063920739208392093921039211392123921339214392153921639217392183921939220392213922239223392243922539226392273922839229392303923139232392333923439235392363923739238392393924039241392423924339244392453924639247392483924939250392513925239253392543925539256392573925839259392603926139262392633926439265392663926739268392693927039271392723927339274392753927639277392783927939280392813928239283392843928539286392873928839289392903929139292392933929439295392963929739298392993930039301393023930339304393053930639307393083930939310393113931239313393143931539316393173931839319393203932139322393233932439325393263932739328393293933039331393323933339334393353933639337393383933939340393413934239343393443934539346393473934839349393503935139352393533935439355393563935739358393593936039361393623936339364393653936639367393683936939370393713937239373393743937539376393773937839379393803938139382393833938439385393863938739388393893939039391393923939339394393953939639397393983939939400394013940239403394043940539406394073940839409394103941139412394133941439415394163941739418394193942039421394223942339424394253942639427394283942939430394313943239433394343943539436394373943839439394403944139442394433944439445394463944739448394493945039451394523945339454394553945639457394583945939460394613946239463394643946539466394673946839469394703947139472394733947439475394763947739478394793948039481394823948339484394853948639487394883948939490394913949239493394943949539496394973949839499395003950139502395033950439505395063950739508395093951039511395123951339514395153951639517395183951939520395213952239523395243952539526395273952839529395303953139532395333953439535395363953739538395393954039541395423954339544395453954639547395483954939550395513955239553395543955539556395573955839559395603956139562395633956439565395663956739568395693957039571395723957339574395753957639577395783957939580395813958239583395843958539586395873958839589395903959139592395933959439595395963959739598395993960039601396023960339604396053960639607396083960939610396113961239613396143961539616396173961839619396203962139622396233962439625396263962739628396293963039631396323963339634396353963639637396383963939640396413964239643396443964539646396473964839649396503965139652396533965439655396563965739658396593966039661396623966339664396653966639667396683966939670396713967239673396743967539676396773967839679396803968139682396833968439685396863968739688396893969039691396923969339694396953969639697396983969939700397013970239703397043970539706397073970839709397103971139712397133971439715397163971739718397193972039721397223972339724397253972639727397283972939730397313973239733397343973539736397373973839739397403974139742397433974439745397463974739748397493975039751397523975339754397553975639757397583975939760397613976239763397643976539766397673976839769397703977139772397733977439775397763977739778397793978039781397823978339784397853978639787397883978939790397913979239793397943979539796397973979839799398003980139802398033980439805398063980739808398093981039811398123981339814398153981639817398183981939820398213982239823398243982539826398273982839829398303983139832398333983439835398363983739838398393984039841398423984339844398453984639847398483984939850398513985239853398543985539856398573985839859398603986139862398633986439865398663986739868398693987039871398723987339874398753987639877398783987939880398813988239883398843988539886398873988839889398903989139892398933989439895398963989739898398993990039901399023990339904399053990639907399083990939910399113991239913399143991539916399173991839919399203992139922399233992439925399263992739928399293993039931399323993339934399353993639937399383993939940399413994239943399443994539946399473994839949399503995139952399533995439955399563995739958399593996039961399623996339964399653996639967399683996939970399713997239973399743997539976399773997839979399803998139982399833998439985399863998739988399893999039991399923999339994399953999639997399983999940000400014000240003400044000540006400074000840009400104001140012400134001440015400164001740018400194002040021400224002340024400254002640027400284002940030400314003240033400344003540036400374003840039400404004140042400434004440045400464004740048400494005040051400524005340054400554005640057400584005940060400614006240063400644006540066400674006840069400704007140072400734007440075400764007740078400794008040081400824008340084400854008640087400884008940090400914009240093400944009540096400974009840099401004010140102401034010440105401064010740108401094011040111401124011340114401154011640117401184011940120401214012240123401244012540126401274012840129401304013140132401334013440135401364013740138401394014040141401424014340144401454014640147401484014940150401514015240153401544015540156401574015840159401604016140162401634016440165401664016740168401694017040171401724017340174401754017640177401784017940180401814018240183401844018540186401874018840189401904019140192401934019440195401964019740198401994020040201402024020340204402054020640207402084020940210402114021240213402144021540216402174021840219402204022140222402234022440225402264022740228402294023040231402324023340234402354023640237402384023940240402414024240243402444024540246402474024840249402504025140252402534025440255402564025740258402594026040261402624026340264402654026640267402684026940270402714027240273402744027540276402774027840279402804028140282402834028440285402864028740288402894029040291402924029340294402954029640297402984029940300403014030240303403044030540306403074030840309403104031140312403134031440315403164031740318403194032040321403224032340324403254032640327403284032940330403314033240333403344033540336403374033840339403404034140342403434034440345403464034740348403494035040351403524035340354403554035640357403584035940360403614036240363403644036540366403674036840369403704037140372403734037440375403764037740378403794038040381403824038340384403854038640387403884038940390403914039240393403944039540396403974039840399404004040140402404034040440405404064040740408404094041040411404124041340414404154041640417404184041940420404214042240423404244042540426404274042840429404304043140432404334043440435404364043740438404394044040441404424044340444404454044640447404484044940450404514045240453404544045540456404574045840459404604046140462404634046440465404664046740468404694047040471404724047340474404754047640477404784047940480404814048240483404844048540486404874048840489404904049140492404934049440495404964049740498404994050040501405024050340504405054050640507405084050940510405114051240513405144051540516405174051840519405204052140522405234052440525405264052740528405294053040531405324053340534405354053640537405384053940540405414054240543405444054540546405474054840549405504055140552405534055440555405564055740558405594056040561405624056340564405654056640567405684056940570405714057240573405744057540576405774057840579405804058140582405834058440585405864058740588405894059040591405924059340594405954059640597405984059940600406014060240603406044060540606406074060840609406104061140612406134061440615406164061740618406194062040621406224062340624406254062640627406284062940630406314063240633406344063540636406374063840639406404064140642406434064440645406464064740648406494065040651406524065340654406554065640657406584065940660406614066240663406644066540666406674066840669406704067140672406734067440675406764067740678406794068040681406824068340684406854068640687406884068940690406914069240693406944069540696406974069840699407004070140702407034070440705407064070740708407094071040711407124071340714407154071640717407184071940720407214072240723407244072540726407274072840729407304073140732407334073440735407364073740738407394074040741407424074340744407454074640747407484074940750407514075240753407544075540756407574075840759407604076140762407634076440765407664076740768407694077040771407724077340774407754077640777407784077940780407814078240783407844078540786407874078840789407904079140792407934079440795407964079740798407994080040801408024080340804408054080640807408084080940810408114081240813408144081540816408174081840819408204082140822408234082440825408264082740828408294083040831408324083340834408354083640837408384083940840408414084240843408444084540846408474084840849408504085140852408534085440855408564085740858408594086040861408624086340864408654086640867408684086940870408714087240873408744087540876408774087840879408804088140882408834088440885408864088740888408894089040891408924089340894408954089640897408984089940900409014090240903409044090540906409074090840909409104091140912409134091440915409164091740918409194092040921409224092340924409254092640927409284092940930409314093240933409344093540936409374093840939409404094140942409434094440945409464094740948409494095040951409524095340954409554095640957409584095940960409614096240963409644096540966409674096840969409704097140972409734097440975409764097740978409794098040981409824098340984409854098640987409884098940990409914099240993409944099540996409974099840999410004100141002410034100441005410064100741008410094101041011410124101341014410154101641017410184101941020410214102241023410244102541026410274102841029410304103141032410334103441035410364103741038410394104041041410424104341044410454104641047410484104941050410514105241053410544105541056410574105841059410604106141062410634106441065410664106741068410694107041071410724107341074410754107641077410784107941080410814108241083410844108541086410874108841089410904109141092410934109441095410964109741098410994110041101411024110341104411054110641107411084110941110411114111241113411144111541116411174111841119411204112141122411234112441125411264112741128411294113041131411324113341134411354113641137411384113941140411414114241143411444114541146411474114841149411504115141152411534115441155411564115741158411594116041161411624116341164411654116641167411684116941170411714117241173411744117541176411774117841179411804118141182411834118441185411864118741188411894119041191411924119341194411954119641197411984119941200412014120241203412044120541206412074120841209412104121141212412134121441215412164121741218412194122041221412224122341224412254122641227412284122941230412314123241233412344123541236412374123841239412404124141242412434124441245412464124741248412494125041251412524125341254412554125641257412584125941260412614126241263412644126541266412674126841269412704127141272412734127441275412764127741278412794128041281412824128341284412854128641287412884128941290412914129241293412944129541296412974129841299413004130141302413034130441305413064130741308413094131041311413124131341314413154131641317413184131941320413214132241323413244132541326413274132841329413304133141332413334133441335413364133741338413394134041341413424134341344413454134641347413484134941350413514135241353413544135541356413574135841359413604136141362413634136441365413664136741368413694137041371413724137341374413754137641377413784137941380413814138241383413844138541386413874138841389413904139141392413934139441395413964139741398413994140041401414024140341404414054140641407414084140941410414114141241413414144141541416414174141841419414204142141422414234142441425414264142741428414294143041431414324143341434414354143641437414384143941440414414144241443414444144541446414474144841449414504145141452414534145441455414564145741458414594146041461414624146341464414654146641467414684146941470414714147241473414744147541476414774147841479414804148141482414834148441485414864148741488414894149041491414924149341494414954149641497414984149941500415014150241503415044150541506415074150841509415104151141512415134151441515415164151741518415194152041521415224152341524415254152641527415284152941530415314153241533415344153541536415374153841539415404154141542415434154441545415464154741548415494155041551415524155341554415554155641557415584155941560415614156241563415644156541566415674156841569415704157141572415734157441575415764157741578415794158041581415824158341584415854158641587415884158941590415914159241593415944159541596415974159841599416004160141602416034160441605416064160741608416094161041611416124161341614416154161641617416184161941620416214162241623416244162541626416274162841629416304163141632416334163441635416364163741638416394164041641416424164341644416454164641647416484164941650416514165241653416544165541656416574165841659416604166141662416634166441665416664166741668416694167041671416724167341674416754167641677416784167941680416814168241683416844168541686416874168841689416904169141692416934169441695416964169741698416994170041701417024170341704417054170641707417084170941710417114171241713417144171541716417174171841719417204172141722417234172441725417264172741728417294173041731417324173341734417354173641737417384173941740417414174241743417444174541746417474174841749417504175141752417534175441755417564175741758417594176041761417624176341764417654176641767417684176941770417714177241773417744177541776417774177841779417804178141782417834178441785417864178741788417894179041791417924179341794417954179641797417984179941800418014180241803418044180541806418074180841809418104181141812418134181441815418164181741818418194182041821418224182341824418254182641827418284182941830418314183241833418344183541836418374183841839418404184141842418434184441845418464184741848418494185041851418524185341854418554185641857418584185941860418614186241863418644186541866418674186841869418704187141872418734187441875418764187741878418794188041881418824188341884418854188641887418884188941890418914189241893418944189541896418974189841899419004190141902419034190441905419064190741908419094191041911419124191341914419154191641917419184191941920419214192241923419244192541926419274192841929419304193141932419334193441935419364193741938419394194041941419424194341944419454194641947419484194941950419514195241953419544195541956419574195841959419604196141962419634196441965419664196741968419694197041971419724197341974419754197641977419784197941980419814198241983419844198541986419874198841989419904199141992419934199441995419964199741998419994200042001420024200342004420054200642007420084200942010420114201242013420144201542016420174201842019420204202142022420234202442025420264202742028420294203042031420324203342034420354203642037420384203942040420414204242043420444204542046420474204842049420504205142052420534205442055420564205742058420594206042061420624206342064420654206642067420684206942070420714207242073420744207542076420774207842079420804208142082420834208442085420864208742088420894209042091420924209342094420954209642097420984209942100421014210242103421044210542106421074210842109421104211142112421134211442115421164211742118421194212042121421224212342124421254212642127421284212942130421314213242133421344213542136421374213842139421404214142142421434214442145421464214742148421494215042151421524215342154421554215642157421584215942160421614216242163421644216542166421674216842169421704217142172421734217442175421764217742178421794218042181421824218342184421854218642187421884218942190421914219242193421944219542196421974219842199422004220142202422034220442205422064220742208422094221042211422124221342214422154221642217422184221942220422214222242223422244222542226422274222842229422304223142232422334223442235422364223742238422394224042241422424224342244422454224642247422484224942250422514225242253422544225542256422574225842259422604226142262422634226442265422664226742268422694227042271422724227342274422754227642277422784227942280422814228242283422844228542286422874228842289422904229142292422934229442295422964229742298422994230042301423024230342304423054230642307423084230942310423114231242313423144231542316423174231842319423204232142322423234232442325423264232742328423294233042331423324233342334423354233642337423384233942340423414234242343423444234542346423474234842349423504235142352423534235442355423564235742358423594236042361423624236342364423654236642367423684236942370423714237242373423744237542376423774237842379423804238142382423834238442385423864238742388423894239042391423924239342394423954239642397423984239942400424014240242403424044240542406424074240842409424104241142412424134241442415424164241742418424194242042421424224242342424424254242642427424284242942430424314243242433424344243542436424374243842439424404244142442424434244442445424464244742448424494245042451424524245342454424554245642457424584245942460424614246242463424644246542466424674246842469424704247142472424734247442475424764247742478424794248042481424824248342484424854248642487424884248942490424914249242493424944249542496424974249842499425004250142502425034250442505425064250742508425094251042511425124251342514425154251642517425184251942520425214252242523425244252542526425274252842529425304253142532425334253442535425364253742538425394254042541425424254342544425454254642547425484254942550425514255242553425544255542556425574255842559425604256142562425634256442565425664256742568425694257042571425724257342574425754257642577425784257942580425814258242583425844258542586425874258842589425904259142592425934259442595425964259742598425994260042601426024260342604426054260642607426084260942610426114261242613426144261542616426174261842619426204262142622426234262442625426264262742628426294263042631426324263342634426354263642637426384263942640426414264242643426444264542646426474264842649426504265142652426534265442655426564265742658426594266042661426624266342664426654266642667426684266942670426714267242673426744267542676426774267842679426804268142682426834268442685426864268742688426894269042691426924269342694426954269642697426984269942700427014270242703427044270542706427074270842709427104271142712427134271442715427164271742718427194272042721427224272342724427254272642727427284272942730427314273242733427344273542736427374273842739427404274142742427434274442745427464274742748427494275042751427524275342754427554275642757427584275942760427614276242763427644276542766427674276842769427704277142772427734277442775427764277742778427794278042781427824278342784427854278642787427884278942790427914279242793427944279542796427974279842799428004280142802428034280442805428064280742808428094281042811428124281342814428154281642817428184281942820428214282242823428244282542826428274282842829428304283142832428334283442835428364283742838428394284042841428424284342844428454284642847428484284942850428514285242853428544285542856428574285842859428604286142862428634286442865428664286742868428694287042871428724287342874428754287642877428784287942880428814288242883428844288542886428874288842889428904289142892428934289442895428964289742898428994290042901429024290342904429054290642907429084290942910429114291242913429144291542916429174291842919429204292142922429234292442925429264292742928429294293042931429324293342934429354293642937429384293942940429414294242943429444294542946429474294842949429504295142952429534295442955429564295742958429594296042961429624296342964429654296642967429684296942970429714297242973429744297542976429774297842979429804298142982429834298442985429864298742988429894299042991429924299342994429954299642997429984299943000430014300243003430044300543006430074300843009430104301143012430134301443015430164301743018430194302043021430224302343024430254302643027430284302943030430314303243033430344303543036430374303843039430404304143042430434304443045430464304743048430494305043051430524305343054430554305643057430584305943060430614306243063430644306543066430674306843069430704307143072430734307443075430764307743078430794308043081430824308343084430854308643087430884308943090430914309243093430944309543096430974309843099431004310143102431034310443105431064310743108431094311043111431124311343114431154311643117431184311943120431214312243123431244312543126431274312843129431304313143132431334313443135431364313743138431394314043141431424314343144431454314643147431484314943150431514315243153431544315543156431574315843159431604316143162431634316443165431664316743168431694317043171431724317343174431754317643177431784317943180431814318243183431844318543186431874318843189431904319143192431934319443195431964319743198431994320043201432024320343204432054320643207432084320943210432114321243213432144321543216432174321843219432204322143222432234322443225432264322743228432294323043231432324323343234432354323643237432384323943240432414324243243432444324543246432474324843249432504325143252432534325443255432564325743258432594326043261432624326343264432654326643267432684326943270432714327243273432744327543276432774327843279432804328143282432834328443285432864328743288432894329043291432924329343294432954329643297432984329943300433014330243303433044330543306433074330843309433104331143312433134331443315433164331743318433194332043321433224332343324433254332643327433284332943330433314333243333433344333543336433374333843339433404334143342433434334443345433464334743348433494335043351433524335343354433554335643357433584335943360433614336243363433644336543366433674336843369433704337143372433734337443375433764337743378433794338043381433824338343384433854338643387433884338943390433914339243393433944339543396433974339843399434004340143402434034340443405434064340743408434094341043411434124341343414434154341643417434184341943420434214342243423434244342543426434274342843429434304343143432434334343443435434364343743438434394344043441434424344343444434454344643447434484344943450434514345243453434544345543456434574345843459434604346143462434634346443465434664346743468434694347043471434724347343474434754347643477434784347943480434814348243483434844348543486434874348843489434904349143492434934349443495434964349743498434994350043501435024350343504435054350643507435084350943510435114351243513435144351543516435174351843519435204352143522435234352443525435264352743528435294353043531435324353343534435354353643537435384353943540435414354243543435444354543546435474354843549435504355143552435534355443555435564355743558435594356043561435624356343564435654356643567435684356943570435714357243573435744357543576435774357843579435804358143582435834358443585435864358743588435894359043591435924359343594435954359643597435984359943600436014360243603436044360543606436074360843609436104361143612436134361443615436164361743618436194362043621436224362343624436254362643627436284362943630436314363243633436344363543636436374363843639436404364143642436434364443645436464364743648436494365043651436524365343654436554365643657436584365943660436614366243663436644366543666436674366843669436704367143672436734367443675436764367743678436794368043681436824368343684436854368643687436884368943690436914369243693436944369543696436974369843699437004370143702437034370443705437064370743708437094371043711437124371343714437154371643717437184371943720437214372243723437244372543726437274372843729437304373143732437334373443735437364373743738437394374043741437424374343744437454374643747437484374943750437514375243753437544375543756437574375843759437604376143762437634376443765437664376743768437694377043771437724377343774437754377643777437784377943780437814378243783437844378543786437874378843789437904379143792437934379443795437964379743798437994380043801438024380343804438054380643807438084380943810438114381243813438144381543816438174381843819438204382143822438234382443825438264382743828438294383043831438324383343834438354383643837438384383943840438414384243843438444384543846438474384843849438504385143852438534385443855438564385743858438594386043861438624386343864438654386643867438684386943870438714387243873438744387543876438774387843879438804388143882438834388443885438864388743888438894389043891438924389343894438954389643897438984389943900439014390243903439044390543906439074390843909439104391143912439134391443915439164391743918439194392043921439224392343924439254392643927439284392943930439314393243933439344393543936439374393843939439404394143942439434394443945439464394743948439494395043951439524395343954439554395643957439584395943960439614396243963439644396543966439674396843969439704397143972439734397443975439764397743978439794398043981439824398343984439854398643987439884398943990439914399243993439944399543996439974399843999440004400144002440034400444005440064400744008440094401044011440124401344014440154401644017440184401944020440214402244023440244402544026440274402844029440304403144032440334403444035440364403744038440394404044041440424404344044440454404644047440484404944050440514405244053440544405544056440574405844059440604406144062440634406444065440664406744068440694407044071440724407344074440754407644077440784407944080440814408244083440844408544086440874408844089440904409144092440934409444095440964409744098440994410044101441024410344104441054410644107441084410944110441114411244113441144411544116441174411844119441204412144122441234412444125441264412744128441294413044131441324413344134441354413644137441384413944140441414414244143441444414544146441474414844149441504415144152441534415444155441564415744158441594416044161441624416344164441654416644167441684416944170441714417244173441744417544176441774417844179441804418144182441834418444185441864418744188441894419044191441924419344194441954419644197441984419944200442014420244203442044420544206442074420844209442104421144212442134421444215442164421744218442194422044221442224422344224442254422644227442284422944230442314423244233442344423544236442374423844239442404424144242442434424444245442464424744248442494425044251442524425344254442554425644257442584425944260442614426244263442644426544266442674426844269442704427144272442734427444275442764427744278442794428044281442824428344284442854428644287442884428944290442914429244293442944429544296442974429844299443004430144302443034430444305443064430744308443094431044311443124431344314443154431644317443184431944320443214432244323443244432544326443274432844329443304433144332443334433444335443364433744338443394434044341443424434344344443454434644347443484434944350443514435244353443544435544356443574435844359443604436144362443634436444365443664436744368443694437044371443724437344374443754437644377443784437944380443814438244383443844438544386443874438844389443904439144392443934439444395443964439744398443994440044401444024440344404444054440644407444084440944410444114441244413444144441544416444174441844419444204442144422444234442444425444264442744428444294443044431444324443344434444354443644437444384443944440444414444244443444444444544446444474444844449444504445144452444534445444455444564445744458444594446044461444624446344464444654446644467444684446944470444714447244473444744447544476444774447844479444804448144482444834448444485444864448744488444894449044491444924449344494444954449644497444984449944500445014450244503445044450544506445074450844509445104451144512445134451444515445164451744518445194452044521445224452344524445254452644527445284452944530445314453244533445344453544536445374453844539445404454144542445434454444545445464454744548445494455044551445524455344554445554455644557445584455944560445614456244563445644456544566445674456844569445704457144572445734457444575445764457744578445794458044581445824458344584445854458644587445884458944590445914459244593445944459544596445974459844599446004460144602446034460444605446064460744608446094461044611446124461344614446154461644617446184461944620446214462244623446244462544626446274462844629446304463144632446334463444635446364463744638446394464044641446424464344644446454464644647446484464944650446514465244653446544465544656446574465844659446604466144662446634466444665446664466744668446694467044671446724467344674446754467644677446784467944680446814468244683446844468544686446874468844689446904469144692446934469444695446964469744698446994470044701447024470344704447054470644707447084470944710447114471244713447144471544716447174471844719447204472144722447234472444725447264472744728447294473044731447324473344734447354473644737447384473944740447414474244743447444474544746447474474844749447504475144752447534475444755447564475744758447594476044761447624476344764447654476644767447684476944770447714477244773447744477544776447774477844779447804478144782447834478444785447864478744788447894479044791447924479344794447954479644797447984479944800448014480244803448044480544806448074480844809448104481144812448134481444815448164481744818448194482044821448224482344824448254482644827448284482944830448314483244833448344483544836448374483844839448404484144842448434484444845448464484744848448494485044851448524485344854448554485644857448584485944860448614486244863448644486544866448674486844869448704487144872448734487444875448764487744878448794488044881448824488344884448854488644887448884488944890448914489244893448944489544896448974489844899449004490144902449034490444905449064490744908449094491044911449124491344914449154491644917449184491944920449214492244923449244492544926449274492844929449304493144932449334493444935449364493744938449394494044941449424494344944449454494644947449484494944950449514495244953449544495544956449574495844959449604496144962449634496444965449664496744968449694497044971449724497344974449754497644977449784497944980449814498244983449844498544986449874498844989449904499144992449934499444995449964499744998449994500045001450024500345004450054500645007450084500945010450114501245013450144501545016450174501845019450204502145022450234502445025450264502745028450294503045031450324503345034450354503645037450384503945040450414504245043450444504545046450474504845049450504505145052450534505445055450564505745058450594506045061450624506345064450654506645067450684506945070450714507245073450744507545076450774507845079450804508145082450834508445085450864508745088450894509045091450924509345094450954509645097450984509945100451014510245103451044510545106451074510845109451104511145112451134511445115451164511745118451194512045121451224512345124451254512645127451284512945130451314513245133451344513545136451374513845139451404514145142451434514445145451464514745148451494515045151451524515345154451554515645157451584515945160451614516245163451644516545166451674516845169451704517145172451734517445175451764517745178451794518045181451824518345184451854518645187451884518945190451914519245193451944519545196451974519845199452004520145202452034520445205452064520745208452094521045211452124521345214452154521645217452184521945220452214522245223452244522545226452274522845229452304523145232452334523445235452364523745238452394524045241452424524345244452454524645247452484524945250452514525245253452544525545256452574525845259452604526145262452634526445265452664526745268452694527045271452724527345274452754527645277452784527945280452814528245283452844528545286452874528845289452904529145292452934529445295452964529745298452994530045301453024530345304453054530645307453084530945310453114531245313453144531545316453174531845319453204532145322453234532445325453264532745328453294533045331453324533345334453354533645337453384533945340453414534245343453444534545346453474534845349453504535145352453534535445355453564535745358453594536045361453624536345364453654536645367453684536945370453714537245373453744537545376453774537845379453804538145382453834538445385453864538745388453894539045391453924539345394453954539645397453984539945400454014540245403454044540545406454074540845409454104541145412454134541445415454164541745418454194542045421454224542345424454254542645427454284542945430454314543245433454344543545436454374543845439454404544145442454434544445445454464544745448454494545045451454524545345454454554545645457454584545945460454614546245463454644546545466454674546845469454704547145472454734547445475454764547745478454794548045481454824548345484454854548645487454884548945490454914549245493454944549545496454974549845499455004550145502455034550445505455064550745508455094551045511455124551345514455154551645517455184551945520455214552245523455244552545526455274552845529455304553145532455334553445535455364553745538455394554045541455424554345544455454554645547455484554945550455514555245553455544555545556455574555845559455604556145562455634556445565455664556745568455694557045571455724557345574455754557645577455784557945580455814558245583455844558545586455874558845589455904559145592455934559445595455964559745598455994560045601456024560345604456054560645607456084560945610456114561245613456144561545616456174561845619456204562145622456234562445625456264562745628456294563045631456324563345634456354563645637456384563945640456414564245643456444564545646456474564845649456504565145652456534565445655456564565745658456594566045661456624566345664456654566645667456684566945670456714567245673456744567545676456774567845679456804568145682456834568445685456864568745688456894569045691456924569345694456954569645697456984569945700457014570245703457044570545706457074570845709457104571145712457134571445715457164571745718457194572045721457224572345724457254572645727457284572945730457314573245733457344573545736457374573845739457404574145742457434574445745457464574745748457494575045751457524575345754457554575645757457584575945760457614576245763457644576545766457674576845769457704577145772457734577445775457764577745778457794578045781457824578345784457854578645787457884578945790457914579245793457944579545796457974579845799458004580145802458034580445805458064580745808458094581045811458124581345814458154581645817458184581945820458214582245823458244582545826458274582845829458304583145832458334583445835458364583745838458394584045841458424584345844458454584645847458484584945850458514585245853458544585545856458574585845859458604586145862458634586445865458664586745868458694587045871458724587345874458754587645877458784587945880458814588245883458844588545886458874588845889458904589145892458934589445895458964589745898458994590045901459024590345904459054590645907459084590945910459114591245913459144591545916459174591845919459204592145922459234592445925459264592745928459294593045931459324593345934459354593645937459384593945940459414594245943459444594545946459474594845949459504595145952459534595445955459564595745958459594596045961459624596345964459654596645967459684596945970459714597245973459744597545976459774597845979459804598145982459834598445985459864598745988459894599045991459924599345994459954599645997459984599946000460014600246003460044600546006460074600846009460104601146012460134601446015460164601746018460194602046021460224602346024460254602646027460284602946030460314603246033460344603546036460374603846039460404604146042460434604446045460464604746048460494605046051460524605346054460554605646057460584605946060460614606246063460644606546066460674606846069460704607146072460734607446075460764607746078460794608046081460824608346084460854608646087460884608946090460914609246093460944609546096460974609846099461004610146102461034610446105461064610746108461094611046111461124611346114461154611646117461184611946120461214612246123461244612546126461274612846129461304613146132461334613446135461364613746138461394614046141461424614346144461454614646147461484614946150461514615246153461544615546156461574615846159461604616146162461634616446165461664616746168461694617046171461724617346174461754617646177461784617946180461814618246183461844618546186461874618846189461904619146192461934619446195461964619746198461994620046201462024620346204462054620646207462084620946210462114621246213462144621546216462174621846219462204622146222462234622446225462264622746228462294623046231462324623346234462354623646237462384623946240462414624246243462444624546246462474624846249462504625146252462534625446255462564625746258462594626046261462624626346264462654626646267462684626946270462714627246273462744627546276462774627846279462804628146282462834628446285462864628746288462894629046291462924629346294462954629646297462984629946300463014630246303463044630546306463074630846309463104631146312463134631446315463164631746318463194632046321463224632346324463254632646327463284632946330463314633246333463344633546336463374633846339463404634146342463434634446345463464634746348463494635046351463524635346354463554635646357463584635946360463614636246363463644636546366463674636846369463704637146372463734637446375463764637746378463794638046381463824638346384463854638646387463884638946390463914639246393463944639546396463974639846399464004640146402464034640446405464064640746408464094641046411464124641346414464154641646417464184641946420464214642246423464244642546426464274642846429464304643146432464334643446435464364643746438464394644046441464424644346444464454644646447464484644946450464514645246453464544645546456464574645846459464604646146462464634646446465464664646746468464694647046471464724647346474464754647646477464784647946480464814648246483464844648546486464874648846489464904649146492464934649446495464964649746498464994650046501465024650346504465054650646507465084650946510465114651246513465144651546516465174651846519465204652146522465234652446525465264652746528465294653046531465324653346534465354653646537465384653946540465414654246543465444654546546465474654846549465504655146552465534655446555465564655746558465594656046561465624656346564465654656646567465684656946570465714657246573465744657546576465774657846579465804658146582465834658446585465864658746588465894659046591465924659346594465954659646597465984659946600466014660246603466044660546606466074660846609466104661146612466134661446615466164661746618466194662046621466224662346624466254662646627466284662946630466314663246633466344663546636466374663846639466404664146642466434664446645466464664746648466494665046651466524665346654466554665646657466584665946660466614666246663466644666546666466674666846669466704667146672466734667446675466764667746678466794668046681466824668346684466854668646687466884668946690466914669246693466944669546696466974669846699467004670146702467034670446705467064670746708467094671046711467124671346714467154671646717467184671946720467214672246723467244672546726467274672846729467304673146732467334673446735467364673746738467394674046741467424674346744467454674646747467484674946750467514675246753467544675546756467574675846759467604676146762467634676446765467664676746768467694677046771467724677346774467754677646777467784677946780467814678246783467844678546786467874678846789467904679146792467934679446795467964679746798467994680046801468024680346804468054680646807468084680946810468114681246813468144681546816468174681846819468204682146822468234682446825468264682746828468294683046831468324683346834468354683646837468384683946840468414684246843468444684546846468474684846849468504685146852468534685446855468564685746858468594686046861468624686346864468654686646867468684686946870468714687246873468744687546876468774687846879468804688146882468834688446885468864688746888468894689046891468924689346894468954689646897468984689946900469014690246903469044690546906469074690846909469104691146912469134691446915469164691746918469194692046921469224692346924469254692646927469284692946930469314693246933469344693546936469374693846939469404694146942469434694446945469464694746948469494695046951469524695346954469554695646957469584695946960469614696246963469644696546966469674696846969469704697146972469734697446975469764697746978469794698046981469824698346984469854698646987469884698946990469914699246993469944699546996469974699846999470004700147002470034700447005470064700747008470094701047011470124701347014470154701647017470184701947020470214702247023470244702547026470274702847029470304703147032470334703447035470364703747038470394704047041470424704347044470454704647047470484704947050470514705247053470544705547056470574705847059470604706147062470634706447065470664706747068470694707047071470724707347074470754707647077470784707947080470814708247083470844708547086470874708847089470904709147092470934709447095470964709747098470994710047101471024710347104471054710647107471084710947110471114711247113471144711547116471174711847119471204712147122471234712447125471264712747128471294713047131471324713347134471354713647137471384713947140471414714247143471444714547146471474714847149471504715147152471534715447155471564715747158471594716047161471624716347164471654716647167471684716947170471714717247173471744717547176471774717847179471804718147182471834718447185471864718747188471894719047191471924719347194471954719647197471984719947200472014720247203472044720547206472074720847209472104721147212472134721447215472164721747218472194722047221472224722347224472254722647227472284722947230472314723247233472344723547236472374723847239472404724147242472434724447245472464724747248472494725047251472524725347254472554725647257472584725947260472614726247263472644726547266472674726847269472704727147272472734727447275472764727747278472794728047281472824728347284472854728647287472884728947290472914729247293472944729547296472974729847299473004730147302473034730447305473064730747308473094731047311473124731347314473154731647317473184731947320473214732247323473244732547326473274732847329473304733147332473334733447335473364733747338473394734047341473424734347344473454734647347473484734947350473514735247353473544735547356473574735847359473604736147362473634736447365473664736747368473694737047371473724737347374473754737647377473784737947380473814738247383473844738547386473874738847389473904739147392473934739447395473964739747398473994740047401474024740347404474054740647407474084740947410474114741247413474144741547416474174741847419474204742147422474234742447425474264742747428474294743047431474324743347434474354743647437474384743947440474414744247443474444744547446474474744847449474504745147452474534745447455474564745747458474594746047461474624746347464474654746647467474684746947470474714747247473474744747547476474774747847479474804748147482474834748447485474864748747488474894749047491474924749347494474954749647497474984749947500475014750247503475044750547506475074750847509475104751147512475134751447515475164751747518475194752047521475224752347524475254752647527475284752947530475314753247533475344753547536475374753847539475404754147542475434754447545475464754747548475494755047551475524755347554475554755647557475584755947560475614756247563475644756547566475674756847569475704757147572475734757447575475764757747578475794758047581475824758347584475854758647587475884758947590475914759247593475944759547596475974759847599476004760147602476034760447605476064760747608476094761047611476124761347614476154761647617476184761947620476214762247623476244762547626476274762847629476304763147632476334763447635476364763747638476394764047641476424764347644476454764647647476484764947650476514765247653476544765547656476574765847659476604766147662476634766447665476664766747668476694767047671476724767347674476754767647677476784767947680476814768247683476844768547686476874768847689476904769147692476934769447695476964769747698476994770047701477024770347704477054770647707477084770947710477114771247713477144771547716477174771847719477204772147722477234772447725477264772747728477294773047731477324773347734477354773647737477384773947740477414774247743477444774547746477474774847749477504775147752477534775447755477564775747758477594776047761477624776347764477654776647767477684776947770477714777247773477744777547776477774777847779477804778147782477834778447785477864778747788477894779047791477924779347794477954779647797477984779947800478014780247803478044780547806478074780847809478104781147812478134781447815478164781747818478194782047821478224782347824478254782647827478284782947830478314783247833478344783547836478374783847839478404784147842478434784447845478464784747848478494785047851478524785347854478554785647857478584785947860478614786247863478644786547866478674786847869478704787147872478734787447875478764787747878478794788047881478824788347884478854788647887478884788947890478914789247893478944789547896478974789847899479004790147902479034790447905479064790747908479094791047911479124791347914479154791647917479184791947920479214792247923479244792547926479274792847929479304793147932479334793447935479364793747938479394794047941479424794347944479454794647947479484794947950479514795247953479544795547956479574795847959479604796147962479634796447965479664796747968479694797047971479724797347974479754797647977479784797947980479814798247983479844798547986479874798847989479904799147992479934799447995479964799747998479994800048001480024800348004480054800648007480084800948010480114801248013480144801548016480174801848019480204802148022480234802448025480264802748028480294803048031480324803348034480354803648037480384803948040480414804248043480444804548046480474804848049480504805148052480534805448055480564805748058480594806048061480624806348064480654806648067480684806948070480714807248073480744807548076480774807848079480804808148082480834808448085480864808748088480894809048091480924809348094480954809648097480984809948100481014810248103481044810548106481074810848109481104811148112481134811448115481164811748118481194812048121481224812348124481254812648127481284812948130481314813248133481344813548136481374813848139481404814148142481434814448145481464814748148481494815048151481524815348154481554815648157481584815948160481614816248163481644816548166481674816848169481704817148172481734817448175481764817748178481794818048181481824818348184481854818648187481884818948190481914819248193481944819548196481974819848199482004820148202482034820448205482064820748208482094821048211482124821348214482154821648217482184821948220482214822248223482244822548226482274822848229482304823148232482334823448235482364823748238482394824048241482424824348244482454824648247482484824948250482514825248253482544825548256482574825848259482604826148262482634826448265482664826748268482694827048271482724827348274482754827648277482784827948280482814828248283482844828548286482874828848289482904829148292482934829448295482964829748298482994830048301483024830348304483054830648307483084830948310483114831248313483144831548316483174831848319483204832148322483234832448325483264832748328483294833048331483324833348334483354833648337483384833948340483414834248343483444834548346483474834848349483504835148352483534835448355483564835748358483594836048361483624836348364483654836648367483684836948370483714837248373483744837548376483774837848379483804838148382483834838448385483864838748388483894839048391483924839348394483954839648397483984839948400484014840248403484044840548406484074840848409484104841148412484134841448415484164841748418484194842048421484224842348424484254842648427484284842948430484314843248433484344843548436484374843848439484404844148442484434844448445484464844748448484494845048451484524845348454484554845648457484584845948460484614846248463484644846548466484674846848469484704847148472484734847448475484764847748478484794848048481484824848348484484854848648487484884848948490484914849248493484944849548496484974849848499485004850148502485034850448505485064850748508485094851048511485124851348514485154851648517485184851948520485214852248523485244852548526485274852848529485304853148532485334853448535485364853748538485394854048541485424854348544485454854648547485484854948550485514855248553485544855548556485574855848559485604856148562485634856448565485664856748568485694857048571485724857348574485754857648577485784857948580485814858248583485844858548586485874858848589485904859148592485934859448595485964859748598485994860048601486024860348604486054860648607486084860948610486114861248613486144861548616486174861848619486204862148622486234862448625486264862748628486294863048631486324863348634486354863648637486384863948640486414864248643486444864548646486474864848649486504865148652486534865448655486564865748658486594866048661486624866348664486654866648667486684866948670486714867248673486744867548676486774867848679486804868148682486834868448685486864868748688486894869048691486924869348694486954869648697486984869948700487014870248703487044870548706487074870848709487104871148712487134871448715487164871748718487194872048721487224872348724487254872648727487284872948730487314873248733487344873548736487374873848739487404874148742487434874448745487464874748748487494875048751487524875348754487554875648757487584875948760487614876248763487644876548766487674876848769487704877148772487734877448775487764877748778487794878048781487824878348784487854878648787487884878948790487914879248793487944879548796487974879848799488004880148802488034880448805488064880748808488094881048811488124881348814488154881648817488184881948820488214882248823488244882548826488274882848829488304883148832488334883448835488364883748838488394884048841488424884348844488454884648847488484884948850488514885248853488544885548856488574885848859488604886148862488634886448865488664886748868488694887048871488724887348874488754887648877488784887948880488814888248883488844888548886488874888848889488904889148892488934889448895488964889748898488994890048901489024890348904489054890648907489084890948910489114891248913489144891548916489174891848919489204892148922489234892448925489264892748928489294893048931489324893348934489354893648937489384893948940489414894248943489444894548946489474894848949489504895148952489534895448955489564895748958489594896048961489624896348964489654896648967489684896948970489714897248973489744897548976489774897848979489804898148982489834898448985489864898748988489894899048991489924899348994489954899648997489984899949000490014900249003490044900549006490074900849009490104901149012490134901449015490164901749018490194902049021490224902349024490254902649027490284902949030490314903249033490344903549036490374903849039490404904149042490434904449045490464904749048490494905049051490524905349054490554905649057490584905949060490614906249063490644906549066490674906849069490704907149072490734907449075490764907749078490794908049081490824908349084490854908649087490884908949090490914909249093490944909549096490974909849099491004910149102491034910449105491064910749108491094911049111491124911349114491154911649117491184911949120491214912249123491244912549126491274912849129491304913149132491334913449135491364913749138491394914049141491424914349144491454914649147491484914949150491514915249153491544915549156491574915849159491604916149162491634916449165491664916749168491694917049171491724917349174491754917649177491784917949180491814918249183491844918549186491874918849189491904919149192491934919449195491964919749198491994920049201492024920349204492054920649207492084920949210492114921249213492144921549216492174921849219492204922149222492234922449225492264922749228492294923049231492324923349234492354923649237492384923949240492414924249243492444924549246492474924849249492504925149252492534925449255492564925749258492594926049261492624926349264492654926649267492684926949270492714927249273492744927549276492774927849279492804928149282492834928449285492864928749288492894929049291492924929349294492954929649297492984929949300493014930249303493044930549306493074930849309493104931149312493134931449315493164931749318493194932049321493224932349324493254932649327493284932949330493314933249333493344933549336493374933849339493404934149342493434934449345493464934749348493494935049351493524935349354493554935649357493584935949360493614936249363493644936549366493674936849369493704937149372493734937449375493764937749378493794938049381493824938349384493854938649387493884938949390493914939249393493944939549396493974939849399494004940149402494034940449405494064940749408494094941049411494124941349414494154941649417494184941949420494214942249423494244942549426494274942849429494304943149432494334943449435494364943749438494394944049441494424944349444494454944649447494484944949450494514945249453494544945549456494574945849459494604946149462494634946449465494664946749468494694947049471494724947349474494754947649477494784947949480494814948249483494844948549486494874948849489494904949149492494934949449495494964949749498494994950049501495024950349504495054950649507495084950949510495114951249513495144951549516495174951849519495204952149522495234952449525495264952749528495294953049531495324953349534495354953649537495384953949540495414954249543495444954549546495474954849549495504955149552495534955449555495564955749558495594956049561495624956349564495654956649567495684956949570495714957249573495744957549576495774957849579495804958149582495834958449585495864958749588495894959049591495924959349594495954959649597495984959949600496014960249603496044960549606496074960849609496104961149612496134961449615496164961749618496194962049621496224962349624496254962649627496284962949630496314963249633496344963549636496374963849639496404964149642496434964449645496464964749648496494965049651496524965349654496554965649657496584965949660496614966249663496644966549666496674966849669496704967149672496734967449675496764967749678496794968049681496824968349684496854968649687496884968949690496914969249693496944969549696496974969849699497004970149702497034970449705497064970749708497094971049711497124971349714497154971649717497184971949720497214972249723497244972549726497274972849729497304973149732497334973449735497364973749738497394974049741497424974349744497454974649747497484974949750497514975249753497544975549756497574975849759497604976149762497634976449765497664976749768497694977049771497724977349774497754977649777497784977949780497814978249783497844978549786497874978849789497904979149792497934979449795497964979749798497994980049801498024980349804498054980649807498084980949810498114981249813498144981549816498174981849819498204982149822498234982449825498264982749828498294983049831498324983349834498354983649837498384983949840498414984249843498444984549846498474984849849498504985149852498534985449855498564985749858498594986049861498624986349864498654986649867498684986949870498714987249873498744987549876498774987849879498804988149882498834988449885498864988749888498894989049891498924989349894498954989649897498984989949900499014990249903499044990549906499074990849909499104991149912499134991449915499164991749918499194992049921499224992349924499254992649927499284992949930499314993249933499344993549936499374993849939499404994149942499434994449945499464994749948499494995049951499524995349954499554995649957499584995949960499614996249963499644996549966499674996849969499704997149972499734997449975499764997749978499794998049981499824998349984499854998649987499884998949990499914999249993499944999549996499974999849999500005000150002500035000450005500065000750008500095001050011500125001350014500155001650017500185001950020500215002250023500245002550026500275002850029500305003150032500335003450035500365003750038500395004050041500425004350044500455004650047500485004950050500515005250053500545005550056500575005850059500605006150062500635006450065500665006750068500695007050071500725007350074500755007650077500785007950080500815008250083500845008550086500875008850089500905009150092500935009450095500965009750098500995010050101501025010350104501055010650107501085010950110501115011250113501145011550116501175011850119501205012150122501235012450125501265012750128501295013050131501325013350134501355013650137501385013950140501415014250143501445014550146501475014850149501505015150152501535015450155501565015750158501595016050161501625016350164501655016650167501685016950170501715017250173501745017550176501775017850179501805018150182501835018450185501865018750188501895019050191501925019350194501955019650197501985019950200502015020250203502045020550206502075020850209502105021150212502135021450215502165021750218502195022050221502225022350224502255022650227502285022950230502315023250233502345023550236502375023850239502405024150242502435024450245502465024750248502495025050251502525025350254502555025650257502585025950260502615026250263502645026550266502675026850269502705027150272502735027450275502765027750278502795028050281502825028350284502855028650287502885028950290502915029250293502945029550296502975029850299503005030150302503035030450305503065030750308503095031050311503125031350314503155031650317503185031950320503215032250323503245032550326503275032850329503305033150332503335033450335503365033750338503395034050341503425034350344503455034650347503485034950350503515035250353503545035550356503575035850359503605036150362503635036450365503665036750368503695037050371503725037350374503755037650377503785037950380503815038250383503845038550386503875038850389503905039150392503935039450395503965039750398503995040050401504025040350404504055040650407504085040950410504115041250413504145041550416504175041850419504205042150422504235042450425504265042750428504295043050431504325043350434504355043650437504385043950440504415044250443504445044550446504475044850449504505045150452504535045450455504565045750458504595046050461504625046350464504655046650467504685046950470504715047250473504745047550476504775047850479504805048150482504835048450485504865048750488504895049050491504925049350494504955049650497504985049950500505015050250503505045050550506505075050850509505105051150512505135051450515505165051750518505195052050521505225052350524505255052650527505285052950530505315053250533505345053550536505375053850539505405054150542505435054450545505465054750548505495055050551505525055350554505555055650557505585055950560505615056250563505645056550566505675056850569505705057150572505735057450575505765057750578505795058050581505825058350584505855058650587505885058950590505915059250593505945059550596505975059850599506005060150602506035060450605506065060750608506095061050611506125061350614506155061650617506185061950620506215062250623506245062550626506275062850629506305063150632506335063450635506365063750638506395064050641506425064350644506455064650647506485064950650506515065250653506545065550656506575065850659506605066150662506635066450665506665066750668506695067050671506725067350674506755067650677506785067950680506815068250683506845068550686506875068850689506905069150692506935069450695506965069750698506995070050701507025070350704507055070650707507085070950710507115071250713507145071550716507175071850719507205072150722507235072450725507265072750728507295073050731507325073350734507355073650737507385073950740507415074250743507445074550746507475074850749507505075150752507535075450755507565075750758507595076050761507625076350764507655076650767507685076950770507715077250773507745077550776507775077850779507805078150782507835078450785507865078750788507895079050791507925079350794507955079650797507985079950800508015080250803508045080550806508075080850809508105081150812508135081450815508165081750818508195082050821508225082350824508255082650827508285082950830508315083250833508345083550836508375083850839508405084150842508435084450845508465084750848508495085050851508525085350854508555085650857508585085950860508615086250863508645086550866508675086850869508705087150872508735087450875508765087750878508795088050881508825088350884508855088650887508885088950890508915089250893508945089550896508975089850899509005090150902509035090450905509065090750908509095091050911509125091350914509155091650917509185091950920509215092250923509245092550926509275092850929509305093150932509335093450935509365093750938509395094050941509425094350944509455094650947509485094950950509515095250953509545095550956509575095850959509605096150962509635096450965509665096750968509695097050971509725097350974509755097650977509785097950980509815098250983509845098550986509875098850989509905099150992509935099450995509965099750998509995100051001510025100351004510055100651007510085100951010510115101251013510145101551016510175101851019510205102151022510235102451025510265102751028510295103051031510325103351034510355103651037510385103951040510415104251043510445104551046510475104851049510505105151052510535105451055510565105751058510595106051061510625106351064510655106651067510685106951070510715107251073510745107551076510775107851079510805108151082510835108451085510865108751088510895109051091510925109351094510955109651097510985109951100511015110251103511045110551106511075110851109511105111151112511135111451115511165111751118511195112051121511225112351124511255112651127511285112951130511315113251133511345113551136511375113851139511405114151142511435114451145511465114751148511495115051151511525115351154511555115651157511585115951160511615116251163511645116551166511675116851169511705117151172511735117451175511765117751178511795118051181511825118351184511855118651187511885118951190511915119251193511945119551196511975119851199512005120151202512035120451205512065120751208512095121051211512125121351214512155121651217512185121951220512215122251223512245122551226512275122851229512305123151232512335123451235512365123751238512395124051241512425124351244512455124651247512485124951250512515125251253512545125551256512575125851259512605126151262512635126451265512665126751268512695127051271512725127351274512755127651277512785127951280512815128251283512845128551286512875128851289512905129151292512935129451295512965129751298512995130051301513025130351304513055130651307513085130951310513115131251313513145131551316513175131851319513205132151322513235132451325513265132751328513295133051331513325133351334513355133651337513385133951340513415134251343513445134551346513475134851349513505135151352513535135451355513565135751358513595136051361513625136351364513655136651367513685136951370513715137251373513745137551376513775137851379513805138151382513835138451385513865138751388513895139051391513925139351394513955139651397513985139951400514015140251403514045140551406514075140851409514105141151412514135141451415514165141751418514195142051421514225142351424514255142651427514285142951430514315143251433514345143551436514375143851439514405144151442514435144451445514465144751448514495145051451514525145351454514555145651457514585145951460514615146251463514645146551466514675146851469514705147151472514735147451475514765147751478514795148051481514825148351484514855148651487514885148951490514915149251493514945149551496514975149851499515005150151502515035150451505515065150751508515095151051511515125151351514515155151651517515185151951520515215152251523515245152551526515275152851529515305153151532515335153451535515365153751538515395154051541515425154351544515455154651547515485154951550515515155251553515545155551556515575155851559515605156151562515635156451565515665156751568515695157051571515725157351574515755157651577515785157951580515815158251583515845158551586515875158851589515905159151592515935159451595515965159751598515995160051601516025160351604516055160651607516085160951610516115161251613516145161551616516175161851619516205162151622516235162451625516265162751628516295163051631516325163351634516355163651637516385163951640516415164251643516445164551646516475164851649516505165151652516535165451655516565165751658516595166051661516625166351664516655166651667516685166951670516715167251673516745167551676516775167851679516805168151682516835168451685516865168751688516895169051691516925169351694516955169651697516985169951700517015170251703517045170551706517075170851709517105171151712517135171451715517165171751718517195172051721517225172351724517255172651727517285172951730517315173251733517345173551736517375173851739517405174151742517435174451745517465174751748517495175051751517525175351754517555175651757517585175951760517615176251763517645176551766517675176851769517705177151772517735177451775517765177751778517795178051781517825178351784517855178651787517885178951790517915179251793517945179551796517975179851799518005180151802518035180451805518065180751808518095181051811518125181351814518155181651817518185181951820518215182251823518245182551826518275182851829518305183151832518335183451835518365183751838518395184051841518425184351844518455184651847518485184951850518515185251853518545185551856518575185851859518605186151862518635186451865518665186751868518695187051871518725187351874518755187651877518785187951880518815188251883518845188551886518875188851889518905189151892518935189451895518965189751898518995190051901519025190351904519055190651907519085190951910519115191251913519145191551916519175191851919519205192151922519235192451925519265192751928519295193051931519325193351934519355193651937519385193951940519415194251943519445194551946519475194851949519505195151952519535195451955519565195751958519595196051961519625196351964519655196651967519685196951970519715197251973519745197551976519775197851979519805198151982519835198451985519865198751988519895199051991519925199351994519955199651997519985199952000520015200252003520045200552006520075200852009520105201152012520135201452015520165201752018520195202052021520225202352024520255202652027520285202952030520315203252033520345203552036520375203852039520405204152042520435204452045520465204752048520495205052051520525205352054520555205652057520585205952060520615206252063520645206552066520675206852069520705207152072520735207452075520765207752078520795208052081520825208352084520855208652087520885208952090520915209252093520945209552096520975209852099521005210152102521035210452105521065210752108521095211052111521125211352114521155211652117521185211952120521215212252123521245212552126521275212852129521305213152132521335213452135521365213752138521395214052141521425214352144521455214652147521485214952150521515215252153521545215552156521575215852159521605216152162521635216452165521665216752168521695217052171521725217352174521755217652177521785217952180521815218252183521845218552186521875218852189521905219152192521935219452195521965219752198521995220052201522025220352204522055220652207522085220952210522115221252213522145221552216522175221852219522205222152222522235222452225522265222752228522295223052231522325223352234522355223652237522385223952240522415224252243522445224552246522475224852249522505225152252522535225452255522565225752258522595226052261522625226352264522655226652267522685226952270522715227252273522745227552276522775227852279522805228152282522835228452285522865228752288522895229052291522925229352294522955229652297522985229952300523015230252303523045230552306523075230852309523105231152312523135231452315523165231752318523195232052321523225232352324523255232652327523285232952330523315233252333523345233552336523375233852339523405234152342523435234452345523465234752348523495235052351523525235352354523555235652357523585235952360523615236252363523645236552366523675236852369523705237152372523735237452375523765237752378523795238052381523825238352384523855238652387523885238952390523915239252393523945239552396523975239852399524005240152402524035240452405524065240752408524095241052411524125241352414524155241652417524185241952420524215242252423524245242552426524275242852429524305243152432524335243452435524365243752438524395244052441524425244352444524455244652447524485244952450524515245252453524545245552456524575245852459524605246152462524635246452465524665246752468524695247052471524725247352474524755247652477524785247952480524815248252483524845248552486524875248852489524905249152492524935249452495524965249752498524995250052501525025250352504525055250652507525085250952510525115251252513525145251552516525175251852519525205252152522525235252452525525265252752528525295253052531525325253352534525355253652537525385253952540525415254252543525445254552546525475254852549525505255152552525535255452555525565255752558525595256052561525625256352564525655256652567525685256952570525715257252573525745257552576525775257852579525805258152582525835258452585525865258752588525895259052591525925259352594525955259652597525985259952600526015260252603526045260552606526075260852609526105261152612526135261452615526165261752618526195262052621526225262352624526255262652627526285262952630526315263252633526345263552636526375263852639526405264152642526435264452645526465264752648526495265052651526525265352654526555265652657526585265952660526615266252663526645266552666526675266852669526705267152672526735267452675526765267752678526795268052681526825268352684526855268652687526885268952690526915269252693526945269552696526975269852699527005270152702527035270452705527065270752708527095271052711527125271352714527155271652717527185271952720527215272252723527245272552726527275272852729527305273152732527335273452735527365273752738527395274052741527425274352744527455274652747527485274952750527515275252753527545275552756527575275852759527605276152762527635276452765527665276752768527695277052771527725277352774527755277652777527785277952780527815278252783527845278552786527875278852789527905279152792527935279452795527965279752798527995280052801528025280352804528055280652807528085280952810528115281252813528145281552816528175281852819528205282152822528235282452825528265282752828528295283052831528325283352834528355283652837528385283952840528415284252843528445284552846528475284852849528505285152852528535285452855528565285752858528595286052861528625286352864528655286652867528685286952870528715287252873528745287552876528775287852879528805288152882528835288452885528865288752888528895289052891528925289352894528955289652897528985289952900529015290252903529045290552906529075290852909529105291152912529135291452915529165291752918529195292052921529225292352924529255292652927529285292952930529315293252933529345293552936529375293852939529405294152942529435294452945529465294752948529495295052951529525295352954529555295652957529585295952960529615296252963529645296552966529675296852969529705297152972529735297452975529765297752978529795298052981529825298352984529855298652987529885298952990529915299252993529945299552996529975299852999530005300153002530035300453005530065300753008530095301053011530125301353014530155301653017530185301953020530215302253023530245302553026530275302853029530305303153032530335303453035530365303753038530395304053041530425304353044530455304653047530485304953050530515305253053530545305553056530575305853059530605306153062530635306453065530665306753068530695307053071530725307353074530755307653077530785307953080530815308253083530845308553086530875308853089530905309153092530935309453095530965309753098530995310053101531025310353104531055310653107531085310953110531115311253113531145311553116531175311853119531205312153122531235312453125531265312753128531295313053131531325313353134531355313653137531385313953140531415314253143531445314553146531475314853149531505315153152531535315453155531565315753158531595316053161531625316353164531655316653167531685316953170531715317253173531745317553176531775317853179531805318153182531835318453185531865318753188531895319053191531925319353194531955319653197531985319953200532015320253203532045320553206532075320853209532105321153212532135321453215532165321753218532195322053221532225322353224532255322653227532285322953230532315323253233532345323553236532375323853239532405324153242532435324453245532465324753248532495325053251532525325353254532555325653257532585325953260532615326253263532645326553266532675326853269532705327153272532735327453275532765327753278532795328053281532825328353284532855328653287532885328953290532915329253293532945329553296532975329853299533005330153302533035330453305533065330753308533095331053311533125331353314533155331653317533185331953320533215332253323533245332553326533275332853329533305333153332533335333453335533365333753338533395334053341533425334353344533455334653347533485334953350533515335253353533545335553356533575335853359533605336153362533635336453365533665336753368533695337053371533725337353374533755337653377533785337953380533815338253383533845338553386533875338853389533905339153392533935339453395533965339753398533995340053401534025340353404534055340653407534085340953410534115341253413534145341553416534175341853419534205342153422534235342453425534265342753428534295343053431534325343353434534355343653437534385343953440534415344253443534445344553446534475344853449534505345153452534535345453455534565345753458534595346053461534625346353464534655346653467534685346953470534715347253473534745347553476534775347853479534805348153482534835348453485534865348753488534895349053491534925349353494534955349653497534985349953500535015350253503535045350553506535075350853509535105351153512535135351453515535165351753518535195352053521535225352353524535255352653527535285352953530535315353253533535345353553536535375353853539535405354153542535435354453545535465354753548535495355053551535525355353554535555355653557535585355953560535615356253563535645356553566535675356853569535705357153572535735357453575535765357753578535795358053581535825358353584535855358653587535885358953590535915359253593535945359553596535975359853599536005360153602536035360453605536065360753608536095361053611536125361353614536155361653617536185361953620536215362253623536245362553626536275362853629536305363153632536335363453635536365363753638536395364053641536425364353644536455364653647536485364953650536515365253653536545365553656536575365853659536605366153662536635366453665536665366753668536695367053671536725367353674536755367653677536785367953680536815368253683536845368553686536875368853689536905369153692536935369453695536965369753698536995370053701537025370353704537055370653707537085370953710537115371253713537145371553716537175371853719537205372153722537235372453725537265372753728537295373053731537325373353734537355373653737537385373953740537415374253743537445374553746537475374853749537505375153752537535375453755537565375753758537595376053761537625376353764537655376653767537685376953770537715377253773537745377553776537775377853779537805378153782537835378453785537865378753788537895379053791537925379353794537955379653797537985379953800538015380253803538045380553806538075380853809538105381153812538135381453815538165381753818538195382053821538225382353824538255382653827538285382953830538315383253833538345383553836538375383853839538405384153842538435384453845538465384753848538495385053851538525385353854538555385653857538585385953860538615386253863538645386553866538675386853869538705387153872538735387453875538765387753878538795388053881538825388353884538855388653887538885388953890538915389253893538945389553896538975389853899539005390153902539035390453905539065390753908539095391053911539125391353914539155391653917539185391953920539215392253923539245392553926539275392853929539305393153932539335393453935539365393753938539395394053941539425394353944539455394653947539485394953950539515395253953539545395553956539575395853959539605396153962539635396453965539665396753968539695397053971539725397353974539755397653977539785397953980539815398253983539845398553986539875398853989539905399153992539935399453995539965399753998539995400054001540025400354004540055400654007540085400954010540115401254013540145401554016540175401854019540205402154022540235402454025540265402754028540295403054031540325403354034540355403654037540385403954040540415404254043540445404554046540475404854049540505405154052540535405454055540565405754058540595406054061540625406354064540655406654067540685406954070540715407254073540745407554076540775407854079540805408154082540835408454085540865408754088540895409054091540925409354094540955409654097540985409954100541015410254103541045410554106541075410854109541105411154112541135411454115541165411754118541195412054121541225412354124541255412654127541285412954130541315413254133541345413554136541375413854139541405414154142541435414454145541465414754148541495415054151541525415354154541555415654157541585415954160541615416254163541645416554166541675416854169541705417154172541735417454175541765417754178541795418054181541825418354184541855418654187541885418954190541915419254193541945419554196541975419854199542005420154202542035420454205542065420754208542095421054211542125421354214542155421654217542185421954220542215422254223542245422554226542275422854229542305423154232542335423454235542365423754238542395424054241542425424354244542455424654247542485424954250542515425254253542545425554256542575425854259542605426154262542635426454265542665426754268542695427054271542725427354274542755427654277542785427954280542815428254283542845428554286542875428854289542905429154292542935429454295542965429754298542995430054301543025430354304543055430654307543085430954310543115431254313543145431554316543175431854319543205432154322543235432454325543265432754328543295433054331543325433354334543355433654337543385433954340543415434254343543445434554346543475434854349543505435154352543535435454355543565435754358543595436054361543625436354364543655436654367543685436954370543715437254373543745437554376543775437854379543805438154382543835438454385543865438754388543895439054391543925439354394543955439654397543985439954400544015440254403544045440554406544075440854409544105441154412544135441454415544165441754418544195442054421544225442354424544255442654427544285442954430544315443254433544345443554436544375443854439544405444154442544435444454445544465444754448544495445054451544525445354454544555445654457544585445954460544615446254463544645446554466544675446854469544705447154472544735447454475544765447754478544795448054481544825448354484544855448654487544885448954490544915449254493544945449554496544975449854499545005450154502545035450454505545065450754508545095451054511545125451354514545155451654517545185451954520545215452254523545245452554526545275452854529545305453154532545335453454535545365453754538545395454054541545425454354544545455454654547545485454954550545515455254553545545455554556545575455854559545605456154562545635456454565545665456754568545695457054571545725457354574545755457654577545785457954580545815458254583545845458554586545875458854589545905459154592545935459454595545965459754598545995460054601546025460354604546055460654607546085460954610546115461254613546145461554616546175461854619546205462154622546235462454625546265462754628546295463054631546325463354634546355463654637546385463954640546415464254643546445464554646546475464854649546505465154652546535465454655546565465754658546595466054661546625466354664546655466654667546685466954670546715467254673546745467554676546775467854679546805468154682546835468454685546865468754688546895469054691546925469354694546955469654697546985469954700547015470254703547045470554706547075470854709547105471154712547135471454715547165471754718547195472054721547225472354724547255472654727547285472954730547315473254733547345473554736547375473854739547405474154742547435474454745547465474754748547495475054751547525475354754547555475654757547585475954760547615476254763547645476554766547675476854769547705477154772547735477454775547765477754778547795478054781547825478354784547855478654787547885478954790547915479254793547945479554796547975479854799548005480154802548035480454805548065480754808548095481054811548125481354814548155481654817548185481954820548215482254823548245482554826548275482854829548305483154832548335483454835548365483754838548395484054841548425484354844548455484654847548485484954850548515485254853548545485554856548575485854859548605486154862548635486454865548665486754868548695487054871548725487354874548755487654877548785487954880548815488254883548845488554886548875488854889548905489154892548935489454895548965489754898548995490054901549025490354904549055490654907549085490954910549115491254913549145491554916549175491854919549205492154922549235492454925549265492754928549295493054931549325493354934549355493654937549385493954940549415494254943549445494554946549475494854949549505495154952549535495454955549565495754958549595496054961549625496354964549655496654967549685496954970549715497254973549745497554976549775497854979549805498154982549835498454985549865498754988549895499054991549925499354994549955499654997549985499955000550015500255003550045500555006550075500855009550105501155012550135501455015550165501755018550195502055021550225502355024550255502655027550285502955030550315503255033550345503555036550375503855039550405504155042550435504455045550465504755048550495505055051550525505355054550555505655057550585505955060550615506255063550645506555066550675506855069550705507155072550735507455075550765507755078550795508055081550825508355084550855508655087550885508955090550915509255093550945509555096550975509855099551005510155102551035510455105551065510755108551095511055111551125511355114551155511655117551185511955120551215512255123551245512555126551275512855129551305513155132551335513455135551365513755138551395514055141551425514355144551455514655147551485514955150551515515255153551545515555156551575515855159551605516155162551635516455165551665516755168551695517055171551725517355174551755517655177551785517955180551815518255183551845518555186551875518855189551905519155192551935519455195551965519755198551995520055201552025520355204552055520655207552085520955210552115521255213552145521555216552175521855219552205522155222552235522455225552265522755228552295523055231552325523355234552355523655237552385523955240552415524255243552445524555246552475524855249552505525155252552535525455255552565525755258552595526055261552625526355264552655526655267552685526955270552715527255273552745527555276552775527855279552805528155282552835528455285552865528755288552895529055291552925529355294552955529655297552985529955300553015530255303553045530555306553075530855309553105531155312553135531455315553165531755318553195532055321553225532355324553255532655327553285532955330553315533255333553345533555336553375533855339553405534155342553435534455345553465534755348553495535055351553525535355354553555535655357553585535955360553615536255363553645536555366553675536855369553705537155372553735537455375553765537755378553795538055381553825538355384553855538655387553885538955390553915539255393553945539555396553975539855399554005540155402554035540455405554065540755408554095541055411554125541355414554155541655417554185541955420554215542255423554245542555426554275542855429554305543155432554335543455435554365543755438554395544055441554425544355444554455544655447554485544955450554515545255453554545545555456554575545855459554605546155462554635546455465554665546755468554695547055471554725547355474554755547655477554785547955480554815548255483554845548555486554875548855489554905549155492554935549455495554965549755498554995550055501555025550355504555055550655507555085550955510555115551255513555145551555516555175551855519555205552155522555235552455525555265552755528555295553055531555325553355534555355553655537555385553955540555415554255543555445554555546555475554855549555505555155552555535555455555555565555755558555595556055561555625556355564555655556655567555685556955570555715557255573555745557555576555775557855579555805558155582555835558455585555865558755588555895559055591555925559355594555955559655597555985559955600556015560255603556045560555606556075560855609556105561155612556135561455615556165561755618556195562055621556225562355624556255562655627556285562955630556315563255633556345563555636556375563855639556405564155642556435564455645556465564755648556495565055651556525565355654556555565655657556585565955660556615566255663556645566555666556675566855669556705567155672556735567455675556765567755678556795568055681556825568355684556855568655687556885568955690556915569255693556945569555696556975569855699557005570155702557035570455705557065570755708557095571055711557125571355714557155571655717557185571955720557215572255723557245572555726557275572855729557305573155732557335573455735557365573755738557395574055741557425574355744557455574655747557485574955750557515575255753557545575555756557575575855759557605576155762557635576455765557665576755768557695577055771557725577355774557755577655777557785577955780557815578255783557845578555786557875578855789557905579155792557935579455795557965579755798557995580055801558025580355804558055580655807558085580955810558115581255813558145581555816558175581855819558205582155822558235582455825558265582755828558295583055831558325583355834558355583655837558385583955840558415584255843558445584555846558475584855849558505585155852558535585455855558565585755858558595586055861558625586355864558655586655867558685586955870558715587255873558745587555876558775587855879558805588155882558835588455885558865588755888558895589055891558925589355894558955589655897558985589955900559015590255903559045590555906559075590855909559105591155912559135591455915559165591755918559195592055921559225592355924559255592655927559285592955930559315593255933559345593555936559375593855939559405594155942559435594455945559465594755948559495595055951559525595355954559555595655957559585595955960559615596255963559645596555966559675596855969559705597155972559735597455975559765597755978559795598055981559825598355984559855598655987559885598955990559915599255993559945599555996559975599855999560005600156002560035600456005560065600756008560095601056011560125601356014560155601656017560185601956020560215602256023560245602556026560275602856029560305603156032560335603456035560365603756038560395604056041560425604356044560455604656047560485604956050560515605256053560545605556056560575605856059560605606156062560635606456065560665606756068560695607056071560725607356074560755607656077560785607956080560815608256083560845608556086560875608856089560905609156092560935609456095560965609756098560995610056101561025610356104561055610656107561085610956110561115611256113561145611556116561175611856119561205612156122561235612456125561265612756128561295613056131561325613356134561355613656137561385613956140561415614256143561445614556146561475614856149561505615156152561535615456155561565615756158561595616056161561625616356164561655616656167561685616956170561715617256173561745617556176561775617856179561805618156182561835618456185561865618756188561895619056191561925619356194561955619656197561985619956200562015620256203562045620556206562075620856209562105621156212562135621456215562165621756218562195622056221562225622356224562255622656227562285622956230562315623256233562345623556236562375623856239562405624156242562435624456245562465624756248562495625056251562525625356254562555625656257562585625956260562615626256263562645626556266562675626856269562705627156272562735627456275562765627756278562795628056281562825628356284562855628656287562885628956290562915629256293562945629556296562975629856299563005630156302563035630456305563065630756308563095631056311563125631356314563155631656317563185631956320563215632256323563245632556326563275632856329563305633156332563335633456335563365633756338563395634056341563425634356344563455634656347563485634956350563515635256353563545635556356563575635856359563605636156362563635636456365563665636756368563695637056371563725637356374563755637656377563785637956380563815638256383563845638556386563875638856389563905639156392563935639456395563965639756398563995640056401564025640356404564055640656407564085640956410564115641256413564145641556416564175641856419564205642156422564235642456425564265642756428564295643056431564325643356434564355643656437564385643956440564415644256443564445644556446564475644856449564505645156452564535645456455564565645756458564595646056461564625646356464564655646656467564685646956470564715647256473564745647556476564775647856479564805648156482564835648456485564865648756488564895649056491564925649356494564955649656497564985649956500565015650256503565045650556506565075650856509565105651156512565135651456515565165651756518565195652056521565225652356524565255652656527565285652956530565315653256533565345653556536565375653856539565405654156542565435654456545565465654756548565495655056551565525655356554565555655656557565585655956560565615656256563565645656556566565675656856569565705657156572565735657456575565765657756578565795658056581565825658356584565855658656587565885658956590565915659256593565945659556596565975659856599566005660156602566035660456605566065660756608566095661056611566125661356614566155661656617566185661956620566215662256623566245662556626566275662856629566305663156632566335663456635566365663756638566395664056641566425664356644566455664656647566485664956650566515665256653566545665556656566575665856659566605666156662566635666456665566665666756668566695667056671566725667356674566755667656677566785667956680566815668256683566845668556686566875668856689566905669156692566935669456695566965669756698566995670056701567025670356704567055670656707567085670956710567115671256713567145671556716567175671856719567205672156722567235672456725567265672756728567295673056731567325673356734567355673656737567385673956740567415674256743567445674556746567475674856749567505675156752567535675456755567565675756758567595676056761567625676356764567655676656767567685676956770567715677256773567745677556776567775677856779567805678156782567835678456785567865678756788567895679056791567925679356794567955679656797567985679956800568015680256803568045680556806568075680856809568105681156812568135681456815568165681756818568195682056821568225682356824568255682656827568285682956830568315683256833568345683556836568375683856839568405684156842568435684456845568465684756848568495685056851568525685356854568555685656857568585685956860568615686256863568645686556866568675686856869568705687156872568735687456875568765687756878568795688056881568825688356884568855688656887568885688956890568915689256893568945689556896568975689856899569005690156902569035690456905569065690756908569095691056911569125691356914569155691656917569185691956920569215692256923569245692556926569275692856929569305693156932569335693456935569365693756938569395694056941569425694356944569455694656947569485694956950569515695256953569545695556956569575695856959569605696156962569635696456965569665696756968569695697056971569725697356974569755697656977569785697956980569815698256983569845698556986569875698856989569905699156992569935699456995569965699756998569995700057001570025700357004570055700657007570085700957010570115701257013570145701557016570175701857019570205702157022570235702457025570265702757028570295703057031570325703357034570355703657037570385703957040570415704257043570445704557046570475704857049570505705157052570535705457055570565705757058570595706057061570625706357064570655706657067570685706957070570715707257073570745707557076570775707857079570805708157082570835708457085570865708757088570895709057091570925709357094570955709657097570985709957100571015710257103571045710557106571075710857109571105711157112571135711457115571165711757118571195712057121571225712357124571255712657127571285712957130571315713257133571345713557136571375713857139571405714157142571435714457145571465714757148571495715057151571525715357154571555715657157571585715957160571615716257163571645716557166571675716857169571705717157172571735717457175571765717757178571795718057181571825718357184571855718657187571885718957190571915719257193571945719557196571975719857199572005720157202572035720457205572065720757208572095721057211572125721357214572155721657217572185721957220572215722257223572245722557226572275722857229572305723157232572335723457235572365723757238572395724057241572425724357244572455724657247572485724957250572515725257253572545725557256572575725857259572605726157262572635726457265572665726757268572695727057271572725727357274572755727657277572785727957280572815728257283572845728557286572875728857289572905729157292572935729457295572965729757298572995730057301573025730357304573055730657307573085730957310573115731257313573145731557316573175731857319573205732157322573235732457325573265732757328573295733057331573325733357334573355733657337573385733957340573415734257343573445734557346573475734857349573505735157352573535735457355573565735757358573595736057361573625736357364573655736657367573685736957370573715737257373573745737557376573775737857379573805738157382573835738457385573865738757388573895739057391573925739357394573955739657397573985739957400574015740257403574045740557406574075740857409574105741157412574135741457415574165741757418574195742057421574225742357424574255742657427574285742957430574315743257433574345743557436574375743857439574405744157442574435744457445574465744757448574495745057451574525745357454574555745657457574585745957460574615746257463574645746557466574675746857469574705747157472574735747457475574765747757478574795748057481574825748357484574855748657487574885748957490574915749257493574945749557496574975749857499575005750157502575035750457505575065750757508575095751057511575125751357514575155751657517575185751957520575215752257523575245752557526575275752857529575305753157532575335753457535575365753757538575395754057541575425754357544575455754657547575485754957550575515755257553575545755557556575575755857559575605756157562575635756457565575665756757568575695757057571575725757357574575755757657577575785757957580575815758257583575845758557586575875758857589575905759157592575935759457595575965759757598575995760057601576025760357604576055760657607576085760957610576115761257613576145761557616576175761857619576205762157622576235762457625576265762757628576295763057631576325763357634576355763657637576385763957640576415764257643576445764557646576475764857649576505765157652576535765457655576565765757658576595766057661576625766357664576655766657667576685766957670576715767257673576745767557676576775767857679576805768157682576835768457685576865768757688576895769057691576925769357694576955769657697576985769957700577015770257703577045770557706577075770857709577105771157712577135771457715577165771757718577195772057721577225772357724577255772657727577285772957730577315773257733577345773557736577375773857739577405774157742577435774457745577465774757748577495775057751577525775357754577555775657757577585775957760577615776257763577645776557766577675776857769577705777157772577735777457775577765777757778577795778057781577825778357784577855778657787577885778957790577915779257793577945779557796577975779857799578005780157802578035780457805578065780757808578095781057811578125781357814578155781657817578185781957820578215782257823578245782557826578275782857829578305783157832578335783457835578365783757838578395784057841578425784357844578455784657847578485784957850578515785257853578545785557856578575785857859578605786157862578635786457865578665786757868578695787057871578725787357874578755787657877578785787957880578815788257883578845788557886578875788857889578905789157892578935789457895578965789757898578995790057901579025790357904579055790657907579085790957910579115791257913579145791557916579175791857919579205792157922579235792457925579265792757928579295793057931579325793357934579355793657937579385793957940579415794257943579445794557946579475794857949579505795157952579535795457955579565795757958579595796057961579625796357964579655796657967579685796957970579715797257973579745797557976579775797857979579805798157982579835798457985579865798757988579895799057991579925799357994579955799657997579985799958000580015800258003580045800558006580075800858009580105801158012580135801458015580165801758018580195802058021580225802358024580255802658027580285802958030580315803258033580345803558036580375803858039580405804158042580435804458045580465804758048580495805058051580525805358054580555805658057580585805958060580615806258063580645806558066580675806858069580705807158072580735807458075580765807758078580795808058081580825808358084580855808658087580885808958090580915809258093580945809558096580975809858099581005810158102581035810458105581065810758108581095811058111581125811358114581155811658117581185811958120581215812258123581245812558126581275812858129581305813158132581335813458135581365813758138581395814058141581425814358144581455814658147581485814958150581515815258153581545815558156581575815858159581605816158162581635816458165581665816758168581695817058171581725817358174581755817658177581785817958180581815818258183581845818558186581875818858189581905819158192581935819458195581965819758198581995820058201582025820358204582055820658207582085820958210582115821258213582145821558216582175821858219582205822158222582235822458225582265822758228582295823058231582325823358234582355823658237582385823958240582415824258243582445824558246582475824858249582505825158252582535825458255582565825758258582595826058261582625826358264582655826658267582685826958270582715827258273582745827558276582775827858279582805828158282582835828458285582865828758288582895829058291582925829358294582955829658297582985829958300583015830258303583045830558306583075830858309583105831158312583135831458315583165831758318583195832058321583225832358324583255832658327583285832958330583315833258333583345833558336583375833858339583405834158342583435834458345583465834758348583495835058351583525835358354583555835658357583585835958360583615836258363583645836558366583675836858369583705837158372583735837458375583765837758378583795838058381583825838358384583855838658387583885838958390583915839258393583945839558396583975839858399584005840158402584035840458405584065840758408584095841058411584125841358414584155841658417584185841958420584215842258423584245842558426584275842858429584305843158432584335843458435584365843758438584395844058441584425844358444584455844658447584485844958450584515845258453584545845558456584575845858459584605846158462584635846458465584665846758468584695847058471584725847358474584755847658477584785847958480584815848258483584845848558486584875848858489584905849158492584935849458495584965849758498584995850058501585025850358504585055850658507585085850958510585115851258513585145851558516585175851858519585205852158522585235852458525585265852758528585295853058531585325853358534585355853658537585385853958540585415854258543585445854558546585475854858549585505855158552585535855458555585565855758558585595856058561585625856358564585655856658567585685856958570585715857258573585745857558576585775857858579585805858158582585835858458585585865858758588585895859058591585925859358594585955859658597585985859958600586015860258603586045860558606586075860858609586105861158612586135861458615586165861758618586195862058621586225862358624586255862658627586285862958630586315863258633586345863558636586375863858639586405864158642586435864458645586465864758648586495865058651586525865358654586555865658657586585865958660586615866258663586645866558666586675866858669586705867158672586735867458675586765867758678586795868058681586825868358684586855868658687586885868958690586915869258693586945869558696586975869858699587005870158702587035870458705587065870758708587095871058711587125871358714587155871658717587185871958720587215872258723587245872558726587275872858729587305873158732587335873458735587365873758738587395874058741587425874358744587455874658747587485874958750587515875258753587545875558756587575875858759587605876158762587635876458765587665876758768587695877058771587725877358774587755877658777587785877958780587815878258783587845878558786587875878858789587905879158792587935879458795587965879758798587995880058801588025880358804588055880658807588085880958810588115881258813588145881558816588175881858819588205882158822588235882458825588265882758828588295883058831588325883358834588355883658837588385883958840588415884258843588445884558846588475884858849588505885158852588535885458855588565885758858588595886058861588625886358864588655886658867588685886958870588715887258873588745887558876588775887858879588805888158882588835888458885588865888758888588895889058891588925889358894588955889658897588985889958900589015890258903589045890558906589075890858909589105891158912589135891458915589165891758918589195892058921589225892358924589255892658927589285892958930589315893258933589345893558936589375893858939589405894158942589435894458945589465894758948589495895058951589525895358954589555895658957589585895958960589615896258963589645896558966589675896858969589705897158972589735897458975589765897758978589795898058981589825898358984589855898658987589885898958990589915899258993589945899558996589975899858999590005900159002590035900459005590065900759008590095901059011590125901359014590155901659017590185901959020590215902259023590245902559026590275902859029590305903159032590335903459035590365903759038590395904059041590425904359044590455904659047590485904959050590515905259053590545905559056590575905859059590605906159062590635906459065590665906759068590695907059071590725907359074590755907659077590785907959080590815908259083590845908559086590875908859089590905909159092590935909459095590965909759098590995910059101591025910359104591055910659107591085910959110591115911259113591145911559116591175911859119591205912159122591235912459125591265912759128591295913059131591325913359134591355913659137591385913959140591415914259143591445914559146591475914859149591505915159152591535915459155591565915759158591595916059161591625916359164591655916659167591685916959170591715917259173591745917559176591775917859179591805918159182591835918459185591865918759188591895919059191591925919359194591955919659197591985919959200592015920259203592045920559206592075920859209592105921159212592135921459215592165921759218592195922059221592225922359224592255922659227592285922959230592315923259233592345923559236592375923859239592405924159242592435924459245592465924759248592495925059251592525925359254592555925659257592585925959260592615926259263592645926559266592675926859269592705927159272592735927459275592765927759278592795928059281592825928359284592855928659287592885928959290592915929259293592945929559296592975929859299593005930159302593035930459305593065930759308593095931059311593125931359314593155931659317593185931959320593215932259323593245932559326593275932859329593305933159332593335933459335593365933759338593395934059341593425934359344593455934659347593485934959350593515935259353593545935559356593575935859359593605936159362593635936459365593665936759368593695937059371593725937359374593755937659377593785937959380593815938259383593845938559386593875938859389593905939159392593935939459395593965939759398593995940059401594025940359404594055940659407594085940959410594115941259413594145941559416594175941859419594205942159422594235942459425594265942759428594295943059431594325943359434594355943659437594385943959440594415944259443594445944559446594475944859449594505945159452594535945459455594565945759458594595946059461594625946359464594655946659467594685946959470594715947259473594745947559476594775947859479594805948159482594835948459485594865948759488594895949059491594925949359494594955949659497594985949959500595015950259503595045950559506595075950859509595105951159512595135951459515595165951759518595195952059521595225952359524595255952659527595285952959530595315953259533595345953559536595375953859539595405954159542595435954459545595465954759548595495955059551595525955359554595555955659557595585955959560595615956259563595645956559566595675956859569595705957159572595735957459575595765957759578595795958059581595825958359584595855958659587595885958959590595915959259593595945959559596595975959859599596005960159602596035960459605596065960759608596095961059611596125961359614596155961659617596185961959620596215962259623596245962559626596275962859629596305963159632596335963459635596365963759638596395964059641596425964359644596455964659647596485964959650596515965259653596545965559656596575965859659596605966159662596635966459665596665966759668596695967059671596725967359674596755967659677596785967959680596815968259683596845968559686596875968859689596905969159692596935969459695596965969759698596995970059701597025970359704597055970659707597085970959710597115971259713597145971559716597175971859719597205972159722597235972459725597265972759728597295973059731597325973359734597355973659737597385973959740597415974259743597445974559746597475974859749597505975159752597535975459755597565975759758597595976059761597625976359764597655976659767597685976959770597715977259773597745977559776597775977859779597805978159782597835978459785597865978759788597895979059791597925979359794597955979659797597985979959800598015980259803598045980559806598075980859809598105981159812598135981459815598165981759818598195982059821598225982359824598255982659827598285982959830598315983259833598345983559836598375983859839598405984159842598435984459845598465984759848598495985059851598525985359854598555985659857598585985959860598615986259863598645986559866598675986859869598705987159872598735987459875598765987759878598795988059881598825988359884598855988659887598885988959890598915989259893598945989559896598975989859899599005990159902599035990459905599065990759908599095991059911599125991359914599155991659917599185991959920599215992259923599245992559926599275992859929599305993159932599335993459935599365993759938599395994059941599425994359944599455994659947599485994959950599515995259953599545995559956599575995859959599605996159962599635996459965599665996759968599695997059971599725997359974599755997659977599785997959980599815998259983599845998559986599875998859989599905999159992599935999459995599965999759998599996000060001600026000360004600056000660007600086000960010600116001260013600146001560016600176001860019600206002160022600236002460025600266002760028600296003060031600326003360034600356003660037600386003960040600416004260043600446004560046600476004860049600506005160052600536005460055600566005760058600596006060061600626006360064600656006660067600686006960070600716007260073600746007560076600776007860079600806008160082600836008460085600866008760088600896009060091600926009360094600956009660097600986009960100601016010260103601046010560106601076010860109601106011160112601136011460115601166011760118601196012060121601226012360124601256012660127601286012960130601316013260133601346013560136601376013860139601406014160142601436014460145601466014760148601496015060151601526015360154601556015660157601586015960160601616016260163601646016560166601676016860169601706017160172601736017460175601766017760178601796018060181601826018360184601856018660187601886018960190601916019260193601946019560196601976019860199602006020160202602036020460205602066020760208602096021060211602126021360214602156021660217602186021960220602216022260223602246022560226602276022860229602306023160232602336023460235602366023760238602396024060241602426024360244602456024660247602486024960250602516025260253602546025560256602576025860259602606026160262602636026460265602666026760268602696027060271602726027360274602756027660277602786027960280602816028260283602846028560286602876028860289602906029160292602936029460295602966029760298602996030060301603026030360304603056030660307603086030960310603116031260313603146031560316603176031860319603206032160322603236032460325603266032760328603296033060331603326033360334603356033660337603386033960340603416034260343603446034560346603476034860349603506035160352603536035460355603566035760358603596036060361603626036360364603656036660367603686036960370603716037260373603746037560376603776037860379603806038160382603836038460385603866038760388603896039060391603926039360394603956039660397603986039960400604016040260403604046040560406604076040860409604106041160412604136041460415604166041760418604196042060421604226042360424604256042660427604286042960430604316043260433604346043560436604376043860439604406044160442604436044460445604466044760448604496045060451604526045360454604556045660457604586045960460604616046260463604646046560466604676046860469604706047160472604736047460475604766047760478604796048060481604826048360484604856048660487604886048960490604916049260493604946049560496604976049860499605006050160502605036050460505605066050760508605096051060511605126051360514605156051660517605186051960520605216052260523605246052560526605276052860529605306053160532605336053460535605366053760538605396054060541605426054360544605456054660547605486054960550605516055260553605546055560556605576055860559605606056160562605636056460565605666056760568605696057060571605726057360574605756057660577605786057960580605816058260583605846058560586605876058860589605906059160592605936059460595605966059760598605996060060601606026060360604606056060660607606086060960610606116061260613606146061560616606176061860619606206062160622606236062460625606266062760628606296063060631606326063360634606356063660637606386063960640606416064260643606446064560646606476064860649606506065160652606536065460655606566065760658606596066060661606626066360664606656066660667606686066960670606716067260673606746067560676606776067860679606806068160682606836068460685606866068760688606896069060691606926069360694606956069660697606986069960700607016070260703607046070560706607076070860709607106071160712607136071460715607166071760718607196072060721607226072360724607256072660727607286072960730607316073260733607346073560736607376073860739607406074160742607436074460745607466074760748607496075060751607526075360754607556075660757607586075960760607616076260763607646076560766607676076860769607706077160772607736077460775607766077760778607796078060781607826078360784607856078660787607886078960790607916079260793607946079560796607976079860799608006080160802608036080460805608066080760808608096081060811608126081360814608156081660817608186081960820608216082260823608246082560826608276082860829608306083160832608336083460835608366083760838608396084060841608426084360844608456084660847608486084960850608516085260853608546085560856608576085860859608606086160862608636086460865608666086760868608696087060871608726087360874608756087660877608786087960880608816088260883608846088560886608876088860889608906089160892608936089460895608966089760898608996090060901609026090360904609056090660907609086090960910609116091260913609146091560916609176091860919609206092160922609236092460925609266092760928609296093060931609326093360934609356093660937609386093960940609416094260943609446094560946609476094860949609506095160952609536095460955609566095760958609596096060961609626096360964609656096660967609686096960970609716097260973609746097560976609776097860979609806098160982609836098460985609866098760988609896099060991609926099360994609956099660997609986099961000610016100261003610046100561006610076100861009610106101161012610136101461015610166101761018610196102061021610226102361024610256102661027610286102961030610316103261033610346103561036610376103861039610406104161042610436104461045610466104761048610496105061051610526105361054610556105661057610586105961060610616106261063610646106561066610676106861069610706107161072610736107461075610766107761078610796108061081610826108361084610856108661087610886108961090610916109261093610946109561096610976109861099611006110161102611036110461105611066110761108611096111061111611126111361114611156111661117611186111961120611216112261123611246112561126611276112861129611306113161132611336113461135611366113761138611396114061141611426114361144611456114661147611486114961150611516115261153611546115561156611576115861159611606116161162611636116461165611666116761168611696117061171611726117361174611756117661177611786117961180611816118261183611846118561186611876118861189611906119161192611936119461195611966119761198611996120061201612026120361204612056120661207612086120961210612116121261213612146121561216612176121861219612206122161222612236122461225612266122761228612296123061231612326123361234612356123661237612386123961240612416124261243612446124561246612476124861249612506125161252612536125461255612566125761258612596126061261612626126361264612656126661267612686126961270612716127261273612746127561276612776127861279612806128161282612836128461285612866128761288612896129061291612926129361294612956129661297612986129961300613016130261303613046130561306613076130861309613106131161312613136131461315613166131761318613196132061321613226132361324613256132661327613286132961330613316133261333613346133561336613376133861339613406134161342613436134461345613466134761348613496135061351613526135361354613556135661357613586135961360613616136261363613646136561366613676136861369613706137161372613736137461375613766137761378613796138061381613826138361384613856138661387613886138961390613916139261393613946139561396613976139861399614006140161402614036140461405614066140761408614096141061411614126141361414614156141661417614186141961420614216142261423614246142561426614276142861429614306143161432614336143461435614366143761438614396144061441614426144361444614456144661447614486144961450614516145261453614546145561456614576145861459614606146161462614636146461465614666146761468614696147061471614726147361474614756147661477614786147961480614816148261483614846148561486614876148861489614906149161492614936149461495614966149761498614996150061501615026150361504615056150661507615086150961510615116151261513615146151561516615176151861519615206152161522615236152461525615266152761528615296153061531615326153361534615356153661537615386153961540615416154261543615446154561546615476154861549615506155161552615536155461555615566155761558615596156061561615626156361564615656156661567615686156961570615716157261573615746157561576615776157861579615806158161582615836158461585615866158761588615896159061591615926159361594615956159661597615986159961600616016160261603616046160561606616076160861609616106161161612616136161461615616166161761618616196162061621616226162361624616256162661627616286162961630616316163261633616346163561636616376163861639616406164161642616436164461645616466164761648616496165061651616526165361654616556165661657616586165961660616616166261663616646166561666616676166861669616706167161672616736167461675616766167761678616796168061681616826168361684616856168661687616886168961690616916169261693616946169561696616976169861699617006170161702617036170461705617066170761708617096171061711617126171361714617156171661717617186171961720617216172261723617246172561726617276172861729617306173161732617336173461735617366173761738617396174061741617426174361744617456174661747617486174961750617516175261753617546175561756617576175861759617606176161762617636176461765617666176761768617696177061771617726177361774617756177661777617786177961780617816178261783617846178561786617876178861789617906179161792617936179461795617966179761798617996180061801618026180361804618056180661807618086180961810618116181261813618146181561816618176181861819618206182161822618236182461825618266182761828618296183061831618326183361834618356183661837618386183961840618416184261843618446184561846618476184861849618506185161852618536185461855618566185761858618596186061861618626186361864618656186661867618686186961870618716187261873618746187561876618776187861879618806188161882618836188461885618866188761888618896189061891618926189361894618956189661897618986189961900619016190261903619046190561906619076190861909619106191161912619136191461915619166191761918619196192061921619226192361924619256192661927619286192961930619316193261933619346193561936619376193861939619406194161942619436194461945619466194761948619496195061951619526195361954619556195661957619586195961960619616196261963619646196561966619676196861969619706197161972619736197461975619766197761978619796198061981619826198361984619856198661987619886198961990619916199261993619946199561996619976199861999620006200162002620036200462005620066200762008620096201062011620126201362014620156201662017620186201962020620216202262023620246202562026620276202862029620306203162032620336203462035620366203762038620396204062041620426204362044620456204662047620486204962050620516205262053620546205562056620576205862059620606206162062620636206462065620666206762068620696207062071620726207362074620756207662077620786207962080620816208262083620846208562086620876208862089620906209162092620936209462095620966209762098620996210062101621026210362104621056210662107621086210962110621116211262113621146211562116621176211862119621206212162122621236212462125621266212762128621296213062131621326213362134621356213662137621386213962140621416214262143621446214562146621476214862149621506215162152621536215462155621566215762158621596216062161621626216362164621656216662167621686216962170621716217262173621746217562176621776217862179621806218162182621836218462185621866218762188621896219062191621926219362194621956219662197621986219962200622016220262203622046220562206622076220862209622106221162212622136221462215622166221762218622196222062221622226222362224622256222662227622286222962230622316223262233622346223562236622376223862239622406224162242622436224462245622466224762248622496225062251622526225362254622556225662257622586225962260622616226262263622646226562266622676226862269622706227162272622736227462275622766227762278622796228062281622826228362284622856228662287622886228962290622916229262293622946229562296622976229862299623006230162302623036230462305623066230762308623096231062311623126231362314623156231662317623186231962320623216232262323623246232562326623276232862329623306233162332623336233462335623366233762338623396234062341623426234362344623456234662347623486234962350623516235262353623546235562356623576235862359623606236162362623636236462365623666236762368623696237062371623726237362374623756237662377623786237962380623816238262383623846238562386623876238862389623906239162392623936239462395623966239762398623996240062401624026240362404624056240662407624086240962410624116241262413624146241562416624176241862419624206242162422624236242462425624266242762428624296243062431624326243362434624356243662437624386243962440624416244262443624446244562446624476244862449624506245162452624536245462455624566245762458624596246062461624626246362464624656246662467624686246962470624716247262473624746247562476624776247862479624806248162482624836248462485624866248762488624896249062491624926249362494624956249662497624986249962500625016250262503625046250562506625076250862509625106251162512625136251462515625166251762518625196252062521625226252362524625256252662527625286252962530625316253262533625346253562536625376253862539625406254162542625436254462545625466254762548625496255062551625526255362554625556255662557625586255962560625616256262563625646256562566625676256862569625706257162572625736257462575625766257762578625796258062581625826258362584625856258662587625886258962590625916259262593625946259562596625976259862599626006260162602626036260462605626066260762608626096261062611626126261362614626156261662617626186261962620626216262262623626246262562626626276262862629626306263162632626336263462635626366263762638626396264062641626426264362644626456264662647626486264962650626516265262653626546265562656626576265862659626606266162662626636266462665626666266762668626696267062671626726267362674626756267662677626786267962680626816268262683626846268562686626876268862689626906269162692626936269462695626966269762698626996270062701627026270362704627056270662707627086270962710627116271262713627146271562716627176271862719627206272162722627236272462725627266272762728627296273062731627326273362734627356273662737627386273962740627416274262743627446274562746627476274862749627506275162752627536275462755627566275762758627596276062761627626276362764627656276662767627686276962770627716277262773627746277562776627776277862779627806278162782627836278462785627866278762788627896279062791627926279362794627956279662797627986279962800628016280262803628046280562806628076280862809628106281162812628136281462815628166281762818628196282062821628226282362824628256282662827628286282962830628316283262833628346283562836628376283862839628406284162842628436284462845628466284762848628496285062851628526285362854628556285662857628586285962860628616286262863628646286562866628676286862869628706287162872628736287462875628766287762878628796288062881628826288362884628856288662887628886288962890628916289262893628946289562896628976289862899629006290162902629036290462905629066290762908629096291062911629126291362914629156291662917629186291962920629216292262923629246292562926629276292862929629306293162932629336293462935629366293762938629396294062941629426294362944629456294662947629486294962950629516295262953629546295562956629576295862959629606296162962629636296462965629666296762968629696297062971629726297362974629756297662977629786297962980629816298262983629846298562986629876298862989629906299162992629936299462995629966299762998629996300063001630026300363004630056300663007630086300963010630116301263013630146301563016630176301863019630206302163022630236302463025630266302763028630296303063031630326303363034630356303663037630386303963040630416304263043630446304563046630476304863049630506305163052630536305463055630566305763058630596306063061630626306363064630656306663067630686306963070630716307263073630746307563076630776307863079630806308163082630836308463085630866308763088630896309063091630926309363094630956309663097630986309963100631016310263103631046310563106631076310863109631106311163112631136311463115631166311763118631196312063121631226312363124631256312663127631286312963130631316313263133631346313563136631376313863139631406314163142631436314463145631466314763148631496315063151631526315363154631556315663157631586315963160631616316263163631646316563166631676316863169631706317163172631736317463175631766317763178631796318063181631826318363184631856318663187631886318963190631916319263193631946319563196631976319863199632006320163202632036320463205632066320763208632096321063211632126321363214632156321663217632186321963220632216322263223632246322563226632276322863229632306323163232632336323463235632366323763238632396324063241632426324363244632456324663247632486324963250632516325263253632546325563256632576325863259632606326163262632636326463265632666326763268632696327063271632726327363274632756327663277632786327963280632816328263283632846328563286632876328863289632906329163292632936329463295632966329763298632996330063301633026330363304633056330663307633086330963310633116331263313633146331563316633176331863319633206332163322633236332463325633266332763328633296333063331633326333363334633356333663337633386333963340633416334263343633446334563346633476334863349633506335163352633536335463355633566335763358633596336063361633626336363364633656336663367633686336963370633716337263373633746337563376633776337863379633806338163382633836338463385633866338763388633896339063391633926339363394633956339663397633986339963400634016340263403634046340563406634076340863409634106341163412634136341463415634166341763418634196342063421634226342363424634256342663427634286342963430634316343263433634346343563436634376343863439634406344163442634436344463445634466344763448634496345063451634526345363454634556345663457634586345963460634616346263463634646346563466634676346863469634706347163472634736347463475634766347763478634796348063481634826348363484634856348663487634886348963490634916349263493634946349563496634976349863499635006350163502635036350463505635066350763508635096351063511635126351363514635156351663517635186351963520635216352263523635246352563526635276352863529635306353163532635336353463535635366353763538635396354063541635426354363544635456354663547635486354963550635516355263553635546355563556635576355863559635606356163562635636356463565635666356763568635696357063571635726357363574635756357663577635786357963580635816358263583635846358563586635876358863589635906359163592635936359463595635966359763598635996360063601636026360363604636056360663607636086360963610636116361263613636146361563616636176361863619636206362163622636236362463625636266362763628636296363063631636326363363634636356363663637636386363963640636416364263643636446364563646636476364863649636506365163652636536365463655636566365763658636596366063661636626366363664636656366663667636686366963670636716367263673636746367563676636776367863679636806368163682636836368463685636866368763688636896369063691636926369363694636956369663697636986369963700637016370263703637046370563706637076370863709637106371163712637136371463715637166371763718637196372063721637226372363724637256372663727637286372963730637316373263733637346373563736637376373863739637406374163742637436374463745637466374763748637496375063751637526375363754637556375663757637586375963760637616376263763637646376563766637676376863769637706377163772637736377463775637766377763778637796378063781637826378363784637856378663787637886378963790637916379263793637946379563796637976379863799638006380163802638036380463805638066380763808638096381063811638126381363814638156381663817638186381963820638216382263823638246382563826638276382863829638306383163832638336383463835638366383763838638396384063841638426384363844638456384663847638486384963850638516385263853638546385563856638576385863859638606386163862638636386463865638666386763868638696387063871638726387363874638756387663877638786387963880638816388263883638846388563886638876388863889638906389163892638936389463895638966389763898638996390063901639026390363904639056390663907639086390963910639116391263913639146391563916639176391863919639206392163922639236392463925639266392763928639296393063931639326393363934639356393663937639386393963940639416394263943639446394563946639476394863949639506395163952639536395463955639566395763958639596396063961639626396363964639656396663967639686396963970639716397263973639746397563976639776397863979639806398163982639836398463985639866398763988639896399063991639926399363994639956399663997639986399964000640016400264003640046400564006640076400864009640106401164012640136401464015640166401764018640196402064021640226402364024640256402664027640286402964030640316403264033640346403564036640376403864039640406404164042640436404464045640466404764048640496405064051640526405364054640556405664057640586405964060640616406264063640646406564066640676406864069640706407164072640736407464075640766407764078640796408064081640826408364084640856408664087640886408964090640916409264093640946409564096640976409864099641006410164102641036410464105641066410764108641096411064111641126411364114641156411664117641186411964120641216412264123641246412564126641276412864129641306413164132641336413464135641366413764138641396414064141641426414364144641456414664147641486414964150641516415264153641546415564156641576415864159641606416164162641636416464165641666416764168641696417064171641726417364174641756417664177641786417964180641816418264183641846418564186641876418864189641906419164192641936419464195641966419764198641996420064201642026420364204642056420664207642086420964210642116421264213642146421564216642176421864219642206422164222642236422464225642266422764228642296423064231642326423364234642356423664237642386423964240642416424264243642446424564246642476424864249642506425164252642536425464255642566425764258642596426064261642626426364264642656426664267642686426964270642716427264273642746427564276642776427864279642806428164282642836428464285642866428764288642896429064291642926429364294642956429664297642986429964300643016430264303643046430564306643076430864309643106431164312643136431464315643166431764318643196432064321643226432364324643256432664327643286432964330643316433264333643346433564336643376433864339643406434164342643436434464345643466434764348643496435064351643526435364354643556435664357643586435964360643616436264363643646436564366643676436864369643706437164372643736437464375643766437764378643796438064381643826438364384643856438664387643886438964390643916439264393643946439564396643976439864399644006440164402644036440464405644066440764408644096441064411644126441364414644156441664417644186441964420644216442264423644246442564426644276442864429644306443164432644336443464435644366443764438644396444064441644426444364444644456444664447644486444964450644516445264453644546445564456644576445864459644606446164462644636446464465644666446764468644696447064471644726447364474644756447664477644786447964480644816448264483644846448564486644876448864489644906449164492644936449464495644966449764498644996450064501645026450364504645056450664507645086450964510645116451264513645146451564516645176451864519645206452164522645236452464525645266452764528645296453064531645326453364534645356453664537645386453964540645416454264543645446454564546645476454864549645506455164552645536455464555645566455764558645596456064561645626456364564645656456664567645686456964570645716457264573645746457564576645776457864579645806458164582645836458464585645866458764588645896459064591645926459364594645956459664597645986459964600646016460264603646046460564606646076460864609646106461164612646136461464615646166461764618646196462064621646226462364624646256462664627646286462964630646316463264633646346463564636646376463864639646406464164642646436464464645646466464764648646496465064651646526465364654646556465664657646586465964660646616466264663646646466564666646676466864669646706467164672646736467464675646766467764678646796468064681646826468364684646856468664687646886468964690646916469264693646946469564696646976469864699647006470164702647036470464705647066470764708647096471064711647126471364714647156471664717647186471964720647216472264723647246472564726647276472864729647306473164732647336473464735647366473764738647396474064741647426474364744647456474664747647486474964750647516475264753647546475564756647576475864759647606476164762647636476464765647666476764768647696477064771647726477364774647756477664777647786477964780647816478264783647846478564786647876478864789647906479164792647936479464795647966479764798647996480064801648026480364804648056480664807648086480964810648116481264813648146481564816648176481864819648206482164822648236482464825648266482764828648296483064831648326483364834648356483664837648386483964840648416484264843648446484564846648476484864849648506485164852648536485464855648566485764858648596486064861648626486364864648656486664867648686486964870648716487264873648746487564876648776487864879648806488164882648836488464885648866488764888648896489064891648926489364894648956489664897648986489964900649016490264903649046490564906649076490864909649106491164912649136491464915649166491764918649196492064921649226492364924649256492664927649286492964930649316493264933649346493564936649376493864939649406494164942649436494464945649466494764948649496495064951649526495364954649556495664957649586495964960649616496264963649646496564966649676496864969649706497164972649736497464975649766497764978649796498064981649826498364984649856498664987649886498964990649916499264993649946499564996649976499864999650006500165002650036500465005650066500765008650096501065011650126501365014650156501665017650186501965020650216502265023650246502565026650276502865029650306503165032650336503465035650366503765038650396504065041650426504365044650456504665047650486504965050650516505265053650546505565056650576505865059650606506165062650636506465065650666506765068650696507065071650726507365074650756507665077650786507965080650816508265083650846508565086650876508865089650906509165092650936509465095650966509765098650996510065101651026510365104651056510665107651086510965110651116511265113651146511565116651176511865119651206512165122651236512465125651266512765128651296513065131651326513365134651356513665137651386513965140651416514265143651446514565146651476514865149651506515165152651536515465155651566515765158651596516065161651626516365164651656516665167651686516965170651716517265173651746517565176651776517865179651806518165182651836518465185651866518765188651896519065191651926519365194651956519665197651986519965200652016520265203652046520565206652076520865209652106521165212652136521465215652166521765218652196522065221652226522365224652256522665227652286522965230652316523265233652346523565236652376523865239652406524165242652436524465245652466524765248652496525065251652526525365254652556525665257652586525965260652616526265263652646526565266652676526865269652706527165272652736527465275652766527765278652796528065281652826528365284652856528665287652886528965290652916529265293652946529565296652976529865299653006530165302653036530465305653066530765308653096531065311653126531365314653156531665317653186531965320653216532265323653246532565326653276532865329653306533165332653336533465335653366533765338653396534065341653426534365344653456534665347653486534965350653516535265353653546535565356653576535865359653606536165362653636536465365653666536765368653696537065371653726537365374653756537665377653786537965380653816538265383653846538565386653876538865389653906539165392653936539465395653966539765398653996540065401654026540365404654056540665407654086540965410654116541265413654146541565416654176541865419654206542165422654236542465425654266542765428654296543065431654326543365434654356543665437654386543965440654416544265443654446544565446654476544865449654506545165452654536545465455654566545765458654596546065461654626546365464654656546665467654686546965470654716547265473654746547565476654776547865479654806548165482654836548465485654866548765488654896549065491654926549365494654956549665497654986549965500655016550265503655046550565506655076550865509655106551165512655136551465515655166551765518655196552065521655226552365524655256552665527655286552965530655316553265533655346553565536655376553865539655406554165542655436554465545655466554765548655496555065551655526555365554655556555665557655586555965560655616556265563655646556565566655676556865569655706557165572655736557465575655766557765578655796558065581655826558365584655856558665587655886558965590655916559265593655946559565596655976559865599656006560165602656036560465605656066560765608656096561065611656126561365614656156561665617656186561965620656216562265623656246562565626656276562865629656306563165632656336563465635656366563765638656396564065641656426564365644656456564665647656486564965650656516565265653656546565565656656576565865659656606566165662656636566465665656666566765668656696567065671656726567365674656756567665677656786567965680656816568265683656846568565686656876568865689656906569165692656936569465695656966569765698656996570065701657026570365704657056570665707657086570965710657116571265713657146571565716657176571865719657206572165722657236572465725657266572765728657296573065731657326573365734657356573665737657386573965740657416574265743657446574565746657476574865749657506575165752657536575465755657566575765758657596576065761657626576365764657656576665767657686576965770657716577265773657746577565776657776577865779657806578165782657836578465785657866578765788657896579065791657926579365794657956579665797657986579965800658016580265803658046580565806658076580865809658106581165812658136581465815658166581765818658196582065821658226582365824658256582665827658286582965830658316583265833658346583565836658376583865839658406584165842658436584465845658466584765848658496585065851658526585365854658556585665857658586585965860658616586265863658646586565866658676586865869658706587165872658736587465875658766587765878658796588065881658826588365884658856588665887658886588965890658916589265893658946589565896658976589865899659006590165902659036590465905659066590765908659096591065911659126591365914659156591665917659186591965920659216592265923659246592565926659276592865929659306593165932659336593465935659366593765938659396594065941659426594365944659456594665947659486594965950659516595265953659546595565956659576595865959659606596165962659636596465965659666596765968659696597065971659726597365974659756597665977659786597965980659816598265983659846598565986659876598865989659906599165992659936599465995659966599765998659996600066001660026600366004660056600666007660086600966010660116601266013660146601566016660176601866019660206602166022660236602466025660266602766028660296603066031660326603366034660356603666037660386603966040660416604266043660446604566046660476604866049660506605166052660536605466055660566605766058660596606066061660626606366064660656606666067660686606966070660716607266073660746607566076660776607866079660806608166082660836608466085660866608766088660896609066091660926609366094660956609666097660986609966100661016610266103661046610566106661076610866109661106611166112661136611466115661166611766118661196612066121661226612366124661256612666127661286612966130661316613266133661346613566136661376613866139661406614166142661436614466145661466614766148661496615066151661526615366154661556615666157661586615966160661616616266163661646616566166661676616866169661706617166172661736617466175661766617766178661796618066181661826618366184661856618666187661886618966190661916619266193661946619566196661976619866199662006620166202662036620466205662066620766208662096621066211662126621366214662156621666217662186621966220662216622266223662246622566226662276622866229662306623166232662336623466235662366623766238662396624066241662426624366244662456624666247662486624966250662516625266253662546625566256662576625866259662606626166262662636626466265662666626766268662696627066271662726627366274662756627666277662786627966280662816628266283662846628566286662876628866289662906629166292662936629466295662966629766298662996630066301663026630366304663056630666307663086630966310663116631266313663146631566316663176631866319663206632166322663236632466325663266632766328663296633066331663326633366334663356633666337663386633966340663416634266343663446634566346663476634866349663506635166352663536635466355663566635766358663596636066361663626636366364663656636666367663686636966370663716637266373663746637566376663776637866379663806638166382663836638466385663866638766388663896639066391663926639366394663956639666397663986639966400664016640266403664046640566406664076640866409664106641166412664136641466415664166641766418664196642066421664226642366424664256642666427664286642966430664316643266433664346643566436664376643866439664406644166442664436644466445664466644766448664496645066451664526645366454664556645666457664586645966460664616646266463664646646566466664676646866469664706647166472664736647466475664766647766478664796648066481664826648366484664856648666487664886648966490664916649266493664946649566496664976649866499665006650166502665036650466505665066650766508665096651066511665126651366514665156651666517665186651966520665216652266523665246652566526665276652866529665306653166532665336653466535665366653766538665396654066541665426654366544665456654666547665486654966550665516655266553665546655566556665576655866559665606656166562665636656466565665666656766568665696657066571665726657366574665756657666577665786657966580665816658266583665846658566586665876658866589665906659166592665936659466595665966659766598665996660066601666026660366604666056660666607666086660966610666116661266613666146661566616666176661866619666206662166622666236662466625666266662766628666296663066631666326663366634666356663666637666386663966640666416664266643666446664566646666476664866649666506665166652666536665466655666566665766658666596666066661666626666366664666656666666667666686666966670666716667266673666746667566676666776667866679666806668166682666836668466685666866668766688666896669066691666926669366694666956669666697666986669966700667016670266703667046670566706667076670866709667106671166712667136671466715667166671766718667196672066721667226672366724667256672666727667286672966730667316673266733667346673566736667376673866739667406674166742667436674466745667466674766748667496675066751667526675366754667556675666757667586675966760667616676266763667646676566766667676676866769667706677166772667736677466775667766677766778667796678066781667826678366784667856678666787667886678966790667916679266793667946679566796667976679866799668006680166802668036680466805668066680766808668096681066811668126681366814668156681666817668186681966820668216682266823668246682566826668276682866829668306683166832668336683466835668366683766838668396684066841668426684366844668456684666847668486684966850668516685266853668546685566856668576685866859668606686166862668636686466865668666686766868668696687066871668726687366874668756687666877668786687966880668816688266883668846688566886668876688866889668906689166892668936689466895668966689766898668996690066901669026690366904669056690666907669086690966910669116691266913669146691566916669176691866919669206692166922669236692466925669266692766928669296693066931669326693366934669356693666937669386693966940669416694266943669446694566946669476694866949669506695166952669536695466955669566695766958669596696066961669626696366964669656696666967669686696966970669716697266973669746697566976669776697866979669806698166982669836698466985669866698766988669896699066991669926699366994669956699666997669986699967000670016700267003670046700567006670076700867009670106701167012670136701467015670166701767018670196702067021670226702367024670256702667027670286702967030670316703267033670346703567036670376703867039670406704167042670436704467045670466704767048670496705067051670526705367054670556705667057670586705967060670616706267063670646706567066670676706867069670706707167072670736707467075670766707767078670796708067081670826708367084670856708667087670886708967090670916709267093670946709567096670976709867099671006710167102671036710467105671066710767108671096711067111671126711367114671156711667117671186711967120671216712267123671246712567126671276712867129671306713167132671336713467135671366713767138671396714067141671426714367144671456714667147671486714967150671516715267153671546715567156671576715867159671606716167162671636716467165671666716767168671696717067171671726717367174671756717667177671786717967180671816718267183671846718567186671876718867189671906719167192671936719467195671966719767198671996720067201672026720367204672056720667207672086720967210672116721267213672146721567216672176721867219672206722167222672236722467225672266722767228672296723067231672326723367234672356723667237672386723967240672416724267243672446724567246672476724867249672506725167252672536725467255672566725767258672596726067261672626726367264672656726667267672686726967270672716727267273672746727567276672776727867279672806728167282672836728467285672866728767288672896729067291672926729367294672956729667297672986729967300673016730267303673046730567306673076730867309673106731167312673136731467315673166731767318673196732067321673226732367324673256732667327673286732967330673316733267333673346733567336673376733867339673406734167342673436734467345673466734767348673496735067351673526735367354673556735667357673586735967360673616736267363673646736567366673676736867369673706737167372673736737467375673766737767378673796738067381673826738367384673856738667387673886738967390673916739267393673946739567396673976739867399674006740167402674036740467405674066740767408674096741067411674126741367414674156741667417674186741967420674216742267423674246742567426674276742867429674306743167432674336743467435674366743767438674396744067441674426744367444674456744667447674486744967450674516745267453674546745567456674576745867459674606746167462674636746467465674666746767468674696747067471674726747367474674756747667477674786747967480674816748267483674846748567486674876748867489674906749167492674936749467495674966749767498674996750067501675026750367504675056750667507675086750967510675116751267513675146751567516675176751867519675206752167522675236752467525675266752767528675296753067531675326753367534675356753667537675386753967540675416754267543675446754567546675476754867549675506755167552675536755467555675566755767558675596756067561675626756367564675656756667567675686756967570675716757267573675746757567576675776757867579675806758167582675836758467585675866758767588675896759067591675926759367594675956759667597675986759967600676016760267603676046760567606676076760867609676106761167612676136761467615676166761767618676196762067621676226762367624676256762667627676286762967630676316763267633676346763567636676376763867639676406764167642676436764467645676466764767648676496765067651676526765367654676556765667657676586765967660676616766267663676646766567666676676766867669676706767167672676736767467675676766767767678676796768067681676826768367684676856768667687676886768967690676916769267693676946769567696676976769867699677006770167702677036770467705677066770767708677096771067711677126771367714677156771667717677186771967720677216772267723677246772567726677276772867729677306773167732677336773467735677366773767738677396774067741677426774367744677456774667747677486774967750677516775267753677546775567756677576775867759677606776167762677636776467765677666776767768677696777067771677726777367774677756777667777677786777967780677816778267783677846778567786677876778867789677906779167792677936779467795677966779767798677996780067801678026780367804678056780667807678086780967810678116781267813678146781567816678176781867819678206782167822678236782467825678266782767828678296783067831678326783367834678356783667837678386783967840678416784267843678446784567846678476784867849678506785167852678536785467855678566785767858678596786067861678626786367864678656786667867678686786967870678716787267873678746787567876678776787867879678806788167882678836788467885678866788767888678896789067891678926789367894678956789667897678986789967900679016790267903679046790567906679076790867909679106791167912679136791467915679166791767918679196792067921679226792367924679256792667927679286792967930679316793267933679346793567936679376793867939679406794167942679436794467945679466794767948679496795067951679526795367954679556795667957679586795967960679616796267963679646796567966679676796867969679706797167972679736797467975679766797767978679796798067981679826798367984679856798667987679886798967990679916799267993679946799567996679976799867999680006800168002680036800468005680066800768008680096801068011680126801368014680156801668017680186801968020680216802268023680246802568026680276802868029680306803168032680336803468035680366803768038680396804068041680426804368044680456804668047680486804968050680516805268053680546805568056680576805868059680606806168062680636806468065680666806768068680696807068071680726807368074680756807668077680786807968080680816808268083680846808568086680876808868089680906809168092680936809468095680966809768098680996810068101681026810368104681056810668107681086810968110681116811268113681146811568116681176811868119681206812168122681236812468125681266812768128681296813068131681326813368134681356813668137681386813968140681416814268143681446814568146681476814868149681506815168152681536815468155681566815768158681596816068161681626816368164681656816668167681686816968170681716817268173681746817568176681776817868179681806818168182681836818468185681866818768188681896819068191681926819368194681956819668197681986819968200682016820268203682046820568206682076820868209682106821168212682136821468215682166821768218682196822068221682226822368224682256822668227682286822968230682316823268233682346823568236682376823868239682406824168242682436824468245682466824768248682496825068251682526825368254682556825668257682586825968260682616826268263682646826568266682676826868269682706827168272682736827468275682766827768278682796828068281682826828368284682856828668287682886828968290682916829268293682946829568296682976829868299683006830168302683036830468305683066830768308683096831068311683126831368314683156831668317683186831968320683216832268323683246832568326683276832868329683306833168332683336833468335683366833768338683396834068341683426834368344683456834668347683486834968350683516835268353683546835568356683576835868359683606836168362683636836468365683666836768368683696837068371683726837368374683756837668377683786837968380683816838268383683846838568386683876838868389683906839168392683936839468395683966839768398683996840068401684026840368404684056840668407684086840968410684116841268413684146841568416684176841868419684206842168422684236842468425684266842768428684296843068431684326843368434684356843668437684386843968440684416844268443684446844568446684476844868449684506845168452684536845468455684566845768458684596846068461684626846368464684656846668467684686846968470684716847268473684746847568476684776847868479684806848168482684836848468485684866848768488684896849068491684926849368494684956849668497684986849968500685016850268503685046850568506685076850868509685106851168512685136851468515685166851768518685196852068521685226852368524685256852668527685286852968530685316853268533685346853568536685376853868539685406854168542685436854468545685466854768548685496855068551685526855368554685556855668557685586855968560685616856268563685646856568566685676856868569685706857168572685736857468575685766857768578685796858068581685826858368584685856858668587685886858968590685916859268593685946859568596685976859868599686006860168602686036860468605686066860768608686096861068611686126861368614686156861668617686186861968620686216862268623686246862568626686276862868629686306863168632686336863468635686366863768638686396864068641686426864368644686456864668647686486864968650686516865268653686546865568656686576865868659686606866168662686636866468665686666866768668686696867068671686726867368674686756867668677686786867968680686816868268683686846868568686686876868868689686906869168692686936869468695686966869768698686996870068701687026870368704687056870668707687086870968710687116871268713687146871568716687176871868719687206872168722687236872468725687266872768728687296873068731687326873368734687356873668737687386873968740687416874268743687446874568746687476874868749687506875168752687536875468755687566875768758687596876068761687626876368764687656876668767687686876968770687716877268773687746877568776687776877868779687806878168782687836878468785687866878768788687896879068791687926879368794687956879668797687986879968800688016880268803688046880568806688076880868809688106881168812688136881468815688166881768818688196882068821688226882368824688256882668827688286882968830688316883268833688346883568836688376883868839688406884168842688436884468845688466884768848688496885068851688526885368854688556885668857688586885968860688616886268863688646886568866688676886868869688706887168872688736887468875688766887768878688796888068881688826888368884688856888668887688886888968890688916889268893688946889568896688976889868899689006890168902689036890468905689066890768908689096891068911689126891368914689156891668917689186891968920689216892268923689246892568926689276892868929689306893168932689336893468935689366893768938689396894068941689426894368944689456894668947689486894968950689516895268953689546895568956689576895868959689606896168962689636896468965689666896768968689696897068971689726897368974689756897668977689786897968980689816898268983689846898568986689876898868989689906899168992689936899468995689966899768998689996900069001690026900369004690056900669007690086900969010690116901269013690146901569016690176901869019690206902169022690236902469025690266902769028690296903069031690326903369034690356903669037690386903969040690416904269043690446904569046690476904869049690506905169052690536905469055690566905769058690596906069061690626906369064690656906669067690686906969070690716907269073690746907569076690776907869079690806908169082690836908469085690866908769088690896909069091690926909369094690956909669097690986909969100691016910269103691046910569106691076910869109691106911169112691136911469115691166911769118691196912069121691226912369124691256912669127691286912969130691316913269133691346913569136691376913869139691406914169142691436914469145691466914769148691496915069151691526915369154691556915669157691586915969160691616916269163691646916569166691676916869169691706917169172691736917469175691766917769178691796918069181691826918369184691856918669187691886918969190691916919269193691946919569196691976919869199692006920169202692036920469205692066920769208692096921069211692126921369214692156921669217692186921969220692216922269223692246922569226692276922869229692306923169232692336923469235692366923769238692396924069241692426924369244692456924669247692486924969250692516925269253692546925569256692576925869259692606926169262692636926469265692666926769268692696927069271692726927369274692756927669277692786927969280692816928269283692846928569286692876928869289692906929169292692936929469295692966929769298692996930069301693026930369304693056930669307693086930969310693116931269313693146931569316693176931869319693206932169322693236932469325693266932769328693296933069331693326933369334693356933669337693386933969340693416934269343693446934569346693476934869349693506935169352693536935469355693566935769358693596936069361693626936369364693656936669367693686936969370693716937269373693746937569376693776937869379693806938169382693836938469385693866938769388693896939069391693926939369394693956939669397693986939969400694016940269403694046940569406694076940869409694106941169412694136941469415694166941769418694196942069421694226942369424694256942669427694286942969430694316943269433694346943569436694376943869439694406944169442694436944469445694466944769448694496945069451694526945369454694556945669457694586945969460694616946269463694646946569466694676946869469694706947169472694736947469475694766947769478694796948069481694826948369484694856948669487694886948969490694916949269493694946949569496694976949869499695006950169502695036950469505695066950769508695096951069511695126951369514695156951669517695186951969520695216952269523695246952569526695276952869529695306953169532695336953469535695366953769538695396954069541695426954369544695456954669547695486954969550695516955269553695546955569556695576955869559695606956169562695636956469565695666956769568695696957069571695726957369574695756957669577695786957969580695816958269583695846958569586695876958869589695906959169592695936959469595695966959769598695996960069601696026960369604696056960669607696086960969610696116961269613696146961569616696176961869619696206962169622696236962469625696266962769628696296963069631696326963369634696356963669637696386963969640696416964269643696446964569646696476964869649696506965169652696536965469655696566965769658696596966069661696626966369664696656966669667696686966969670696716967269673696746967569676696776967869679696806968169682696836968469685696866968769688696896969069691696926969369694696956969669697696986969969700697016970269703697046970569706697076970869709697106971169712697136971469715697166971769718697196972069721697226972369724697256972669727697286972969730697316973269733697346973569736697376973869739697406974169742697436974469745697466974769748697496975069751697526975369754697556975669757697586975969760697616976269763697646976569766697676976869769697706977169772697736977469775697766977769778697796978069781697826978369784697856978669787697886978969790697916979269793697946979569796697976979869799698006980169802698036980469805698066980769808698096981069811698126981369814698156981669817698186981969820698216982269823698246982569826698276982869829698306983169832698336983469835698366983769838698396984069841698426984369844698456984669847698486984969850698516985269853698546985569856698576985869859698606986169862698636986469865698666986769868698696987069871698726987369874698756987669877698786987969880698816988269883698846988569886698876988869889698906989169892698936989469895698966989769898698996990069901699026990369904699056990669907699086990969910699116991269913699146991569916699176991869919699206992169922699236992469925699266992769928699296993069931699326993369934699356993669937699386993969940699416994269943699446994569946699476994869949699506995169952699536995469955699566995769958699596996069961699626996369964699656996669967699686996969970699716997269973699746997569976699776997869979699806998169982699836998469985699866998769988699896999069991699926999369994699956999669997699986999970000700017000270003700047000570006700077000870009700107001170012700137001470015700167001770018700197002070021700227002370024700257002670027700287002970030700317003270033700347003570036700377003870039700407004170042700437004470045700467004770048700497005070051700527005370054700557005670057700587005970060700617006270063700647006570066700677006870069700707007170072700737007470075700767007770078700797008070081700827008370084700857008670087700887008970090700917009270093700947009570096700977009870099701007010170102701037010470105701067010770108701097011070111701127011370114701157011670117701187011970120701217012270123701247012570126701277012870129701307013170132701337013470135701367013770138701397014070141701427014370144701457014670147701487014970150701517015270153701547015570156701577015870159701607016170162701637016470165701667016770168701697017070171701727017370174701757017670177701787017970180701817018270183701847018570186701877018870189701907019170192701937019470195701967019770198701997020070201702027020370204702057020670207702087020970210702117021270213702147021570216702177021870219702207022170222702237022470225702267022770228702297023070231702327023370234702357023670237702387023970240702417024270243702447024570246702477024870249702507025170252702537025470255702567025770258702597026070261702627026370264702657026670267702687026970270702717027270273702747027570276702777027870279702807028170282702837028470285702867028770288702897029070291702927029370294702957029670297702987029970300703017030270303703047030570306703077030870309703107031170312703137031470315703167031770318703197032070321703227032370324703257032670327703287032970330703317033270333703347033570336703377033870339703407034170342703437034470345703467034770348703497035070351703527035370354703557035670357703587035970360703617036270363703647036570366703677036870369703707037170372703737037470375703767037770378703797038070381703827038370384703857038670387703887038970390703917039270393703947039570396703977039870399704007040170402704037040470405704067040770408704097041070411704127041370414704157041670417704187041970420704217042270423704247042570426704277042870429704307043170432704337043470435704367043770438704397044070441704427044370444704457044670447704487044970450704517045270453704547045570456704577045870459704607046170462704637046470465704667046770468704697047070471704727047370474704757047670477704787047970480704817048270483704847048570486704877048870489704907049170492704937049470495704967049770498704997050070501705027050370504705057050670507705087050970510705117051270513705147051570516705177051870519705207052170522705237052470525705267052770528705297053070531705327053370534705357053670537705387053970540705417054270543705447054570546705477054870549705507055170552705537055470555705567055770558705597056070561705627056370564705657056670567705687056970570705717057270573705747057570576705777057870579705807058170582705837058470585705867058770588705897059070591705927059370594705957059670597705987059970600706017060270603706047060570606706077060870609706107061170612706137061470615706167061770618706197062070621706227062370624706257062670627706287062970630706317063270633706347063570636706377063870639706407064170642706437064470645706467064770648706497065070651706527065370654706557065670657706587065970660706617066270663706647066570666706677066870669706707067170672706737067470675706767067770678706797068070681706827068370684706857068670687706887068970690706917069270693706947069570696706977069870699707007070170702707037070470705707067070770708707097071070711707127071370714707157071670717707187071970720707217072270723707247072570726707277072870729707307073170732707337073470735707367073770738707397074070741707427074370744707457074670747707487074970750707517075270753707547075570756707577075870759707607076170762707637076470765707667076770768707697077070771707727077370774707757077670777707787077970780707817078270783707847078570786707877078870789707907079170792707937079470795707967079770798707997080070801708027080370804708057080670807708087080970810708117081270813708147081570816708177081870819708207082170822708237082470825708267082770828708297083070831708327083370834708357083670837708387083970840708417084270843708447084570846708477084870849708507085170852708537085470855708567085770858708597086070861708627086370864708657086670867708687086970870708717087270873708747087570876708777087870879708807088170882708837088470885708867088770888708897089070891708927089370894708957089670897708987089970900709017090270903709047090570906709077090870909709107091170912709137091470915709167091770918709197092070921709227092370924709257092670927709287092970930709317093270933709347093570936709377093870939709407094170942709437094470945709467094770948709497095070951709527095370954709557095670957709587095970960709617096270963709647096570966709677096870969709707097170972709737097470975709767097770978709797098070981709827098370984709857098670987709887098970990709917099270993709947099570996709977099870999710007100171002710037100471005710067100771008710097101071011710127101371014710157101671017710187101971020710217102271023710247102571026710277102871029710307103171032710337103471035710367103771038710397104071041710427104371044710457104671047710487104971050710517105271053710547105571056710577105871059710607106171062710637106471065710667106771068710697107071071710727107371074710757107671077710787107971080710817108271083710847108571086710877108871089710907109171092710937109471095710967109771098710997110071101711027110371104711057110671107711087110971110711117111271113711147111571116711177111871119711207112171122711237112471125711267112771128711297113071131711327113371134711357113671137711387113971140711417114271143711447114571146711477114871149711507115171152711537115471155711567115771158711597116071161711627116371164711657116671167711687116971170711717117271173711747117571176711777117871179711807118171182711837118471185711867118771188711897119071191711927119371194711957119671197711987119971200712017120271203712047120571206712077120871209712107121171212712137121471215712167121771218712197122071221712227122371224712257122671227712287122971230712317123271233712347123571236712377123871239712407124171242712437124471245712467124771248712497125071251712527125371254712557125671257712587125971260712617126271263712647126571266712677126871269712707127171272712737127471275712767127771278712797128071281712827128371284712857128671287712887128971290712917129271293712947129571296712977129871299713007130171302713037130471305713067130771308713097131071311713127131371314713157131671317713187131971320713217132271323713247132571326713277132871329713307133171332713337133471335713367133771338713397134071341713427134371344713457134671347713487134971350713517135271353713547135571356713577135871359713607136171362713637136471365713667136771368713697137071371713727137371374713757137671377713787137971380713817138271383713847138571386713877138871389713907139171392713937139471395713967139771398713997140071401714027140371404714057140671407714087140971410714117141271413714147141571416714177141871419714207142171422714237142471425714267142771428714297143071431714327143371434714357143671437714387143971440714417144271443714447144571446714477144871449714507145171452714537145471455714567145771458714597146071461714627146371464714657146671467714687146971470714717147271473714747147571476714777147871479714807148171482714837148471485714867148771488714897149071491714927149371494714957149671497714987149971500715017150271503715047150571506715077150871509715107151171512715137151471515715167151771518715197152071521715227152371524715257152671527715287152971530715317153271533715347153571536715377153871539715407154171542715437154471545715467154771548715497155071551715527155371554715557155671557715587155971560715617156271563715647156571566715677156871569715707157171572715737157471575715767157771578715797158071581715827158371584715857158671587715887158971590715917159271593715947159571596715977159871599716007160171602716037160471605716067160771608716097161071611716127161371614716157161671617716187161971620716217162271623716247162571626716277162871629716307163171632716337163471635716367163771638716397164071641716427164371644716457164671647716487164971650716517165271653716547165571656716577165871659716607166171662716637166471665716667166771668716697167071671716727167371674716757167671677716787167971680716817168271683716847168571686716877168871689716907169171692716937169471695716967169771698716997170071701717027170371704717057170671707717087170971710717117171271713717147171571716717177171871719717207172171722717237172471725717267172771728717297173071731717327173371734717357173671737717387173971740717417174271743717447174571746717477174871749717507175171752717537175471755717567175771758717597176071761717627176371764717657176671767717687176971770717717177271773717747177571776717777177871779717807178171782717837178471785717867178771788717897179071791717927179371794717957179671797717987179971800718017180271803718047180571806718077180871809718107181171812718137181471815718167181771818718197182071821718227182371824718257182671827718287182971830718317183271833718347183571836718377183871839718407184171842718437184471845718467184771848718497185071851718527185371854718557185671857718587185971860718617186271863718647186571866718677186871869718707187171872718737187471875718767187771878718797188071881718827188371884718857188671887718887188971890718917189271893718947189571896718977189871899719007190171902719037190471905719067190771908719097191071911719127191371914719157191671917719187191971920719217192271923719247192571926719277192871929719307193171932719337193471935719367193771938719397194071941719427194371944719457194671947719487194971950719517195271953719547195571956719577195871959719607196171962719637196471965719667196771968719697197071971719727197371974719757197671977719787197971980719817198271983719847198571986719877198871989719907199171992719937199471995719967199771998719997200072001720027200372004720057200672007720087200972010720117201272013720147201572016720177201872019720207202172022720237202472025720267202772028720297203072031720327203372034720357203672037720387203972040720417204272043720447204572046720477204872049720507205172052720537205472055720567205772058720597206072061720627206372064720657206672067720687206972070720717207272073720747207572076720777207872079720807208172082720837208472085720867208772088720897209072091720927209372094720957209672097720987209972100721017210272103721047210572106721077210872109721107211172112721137211472115721167211772118721197212072121721227212372124721257212672127721287212972130721317213272133721347213572136721377213872139721407214172142721437214472145721467214772148721497215072151721527215372154721557215672157721587215972160721617216272163721647216572166721677216872169721707217172172721737217472175721767217772178721797218072181721827218372184721857218672187721887218972190721917219272193721947219572196721977219872199722007220172202722037220472205722067220772208722097221072211722127221372214722157221672217722187221972220722217222272223722247222572226722277222872229722307223172232722337223472235722367223772238722397224072241722427224372244722457224672247722487224972250722517225272253722547225572256722577225872259722607226172262722637226472265722667226772268722697227072271722727227372274722757227672277722787227972280722817228272283722847228572286722877228872289722907229172292722937229472295722967229772298722997230072301723027230372304723057230672307723087230972310723117231272313723147231572316723177231872319723207232172322723237232472325723267232772328723297233072331723327233372334723357233672337723387233972340723417234272343723447234572346723477234872349723507235172352723537235472355723567235772358723597236072361723627236372364723657236672367723687236972370723717237272373723747237572376723777237872379723807238172382723837238472385723867238772388723897239072391723927239372394723957239672397723987239972400724017240272403724047240572406724077240872409724107241172412724137241472415724167241772418724197242072421724227242372424724257242672427724287242972430724317243272433724347243572436724377243872439724407244172442724437244472445724467244772448724497245072451724527245372454724557245672457724587245972460724617246272463724647246572466724677246872469724707247172472724737247472475724767247772478724797248072481724827248372484724857248672487724887248972490724917249272493724947249572496724977249872499725007250172502725037250472505725067250772508725097251072511725127251372514725157251672517725187251972520725217252272523725247252572526725277252872529725307253172532725337253472535725367253772538725397254072541725427254372544725457254672547725487254972550725517255272553725547255572556725577255872559725607256172562725637256472565725667256772568725697257072571725727257372574725757257672577725787257972580725817258272583725847258572586725877258872589725907259172592725937259472595725967259772598725997260072601726027260372604726057260672607726087260972610726117261272613726147261572616726177261872619726207262172622726237262472625726267262772628726297263072631726327263372634726357263672637726387263972640726417264272643726447264572646726477264872649726507265172652726537265472655726567265772658726597266072661726627266372664726657266672667726687266972670726717267272673726747267572676726777267872679726807268172682726837268472685726867268772688726897269072691726927269372694726957269672697726987269972700727017270272703727047270572706727077270872709727107271172712727137271472715727167271772718727197272072721727227272372724727257272672727727287272972730727317273272733727347273572736727377273872739727407274172742727437274472745727467274772748727497275072751727527275372754727557275672757727587275972760727617276272763727647276572766727677276872769727707277172772727737277472775727767277772778727797278072781727827278372784727857278672787727887278972790727917279272793727947279572796727977279872799728007280172802728037280472805728067280772808728097281072811728127281372814728157281672817728187281972820728217282272823728247282572826728277282872829728307283172832728337283472835728367283772838728397284072841728427284372844728457284672847728487284972850728517285272853728547285572856728577285872859728607286172862728637286472865728667286772868728697287072871728727287372874728757287672877728787287972880728817288272883728847288572886728877288872889728907289172892728937289472895728967289772898728997290072901729027290372904729057290672907729087290972910729117291272913729147291572916729177291872919729207292172922729237292472925729267292772928729297293072931729327293372934729357293672937729387293972940729417294272943729447294572946729477294872949729507295172952729537295472955729567295772958729597296072961729627296372964729657296672967729687296972970729717297272973729747297572976729777297872979729807298172982729837298472985729867298772988729897299072991729927299372994729957299672997729987299973000730017300273003730047300573006730077300873009730107301173012730137301473015730167301773018730197302073021730227302373024730257302673027730287302973030730317303273033730347303573036730377303873039730407304173042730437304473045730467304773048730497305073051730527305373054730557305673057730587305973060730617306273063730647306573066730677306873069730707307173072730737307473075730767307773078730797308073081730827308373084730857308673087730887308973090730917309273093730947309573096730977309873099731007310173102731037310473105731067310773108731097311073111731127311373114731157311673117731187311973120731217312273123731247312573126731277312873129731307313173132731337313473135731367313773138731397314073141731427314373144731457314673147731487314973150731517315273153731547315573156731577315873159731607316173162731637316473165731667316773168731697317073171731727317373174731757317673177731787317973180731817318273183731847318573186731877318873189731907319173192731937319473195731967319773198731997320073201732027320373204732057320673207732087320973210732117321273213732147321573216732177321873219732207322173222732237322473225732267322773228732297323073231732327323373234732357323673237732387323973240732417324273243732447324573246732477324873249732507325173252732537325473255732567325773258732597326073261732627326373264732657326673267732687326973270732717327273273732747327573276732777327873279732807328173282732837328473285732867328773288732897329073291732927329373294732957329673297732987329973300733017330273303733047330573306733077330873309733107331173312733137331473315733167331773318733197332073321733227332373324733257332673327733287332973330733317333273333733347333573336733377333873339733407334173342733437334473345733467334773348733497335073351733527335373354733557335673357733587335973360733617336273363733647336573366733677336873369733707337173372733737337473375733767337773378733797338073381733827338373384733857338673387733887338973390733917339273393733947339573396733977339873399734007340173402734037340473405734067340773408734097341073411734127341373414734157341673417734187341973420734217342273423734247342573426734277342873429734307343173432734337343473435734367343773438734397344073441734427344373444734457344673447734487344973450734517345273453734547345573456734577345873459734607346173462734637346473465734667346773468734697347073471734727347373474734757347673477734787347973480734817348273483734847348573486734877348873489734907349173492734937349473495734967349773498734997350073501735027350373504735057350673507735087350973510735117351273513735147351573516735177351873519735207352173522735237352473525735267352773528735297353073531735327353373534735357353673537735387353973540735417354273543735447354573546735477354873549735507355173552735537355473555735567355773558735597356073561735627356373564735657356673567735687356973570735717357273573735747357573576735777357873579735807358173582735837358473585735867358773588735897359073591735927359373594735957359673597735987359973600736017360273603736047360573606736077360873609736107361173612736137361473615736167361773618736197362073621736227362373624736257362673627736287362973630736317363273633736347363573636736377363873639736407364173642736437364473645736467364773648736497365073651736527365373654736557365673657736587365973660736617366273663736647366573666736677366873669736707367173672736737367473675736767367773678736797368073681736827368373684736857368673687736887368973690736917369273693736947369573696736977369873699737007370173702737037370473705737067370773708737097371073711737127371373714737157371673717737187371973720737217372273723737247372573726737277372873729737307373173732737337373473735737367373773738737397374073741737427374373744737457374673747737487374973750737517375273753737547375573756737577375873759737607376173762737637376473765737667376773768737697377073771737727377373774737757377673777737787377973780737817378273783737847378573786737877378873789737907379173792737937379473795737967379773798737997380073801738027380373804738057380673807738087380973810738117381273813738147381573816738177381873819738207382173822738237382473825738267382773828738297383073831738327383373834738357383673837738387383973840738417384273843738447384573846738477384873849738507385173852738537385473855738567385773858738597386073861738627386373864738657386673867738687386973870738717387273873738747387573876738777387873879738807388173882738837388473885738867388773888738897389073891738927389373894738957389673897738987389973900739017390273903739047390573906739077390873909739107391173912739137391473915739167391773918739197392073921739227392373924739257392673927739287392973930739317393273933739347393573936739377393873939739407394173942739437394473945739467394773948739497395073951739527395373954739557395673957739587395973960739617396273963739647396573966739677396873969739707397173972739737397473975739767397773978739797398073981739827398373984739857398673987739887398973990739917399273993739947399573996739977399873999740007400174002740037400474005740067400774008740097401074011740127401374014740157401674017740187401974020740217402274023740247402574026740277402874029740307403174032740337403474035740367403774038740397404074041740427404374044740457404674047740487404974050740517405274053740547405574056740577405874059740607406174062740637406474065740667406774068740697407074071740727407374074740757407674077740787407974080740817408274083740847408574086740877408874089740907409174092740937409474095740967409774098740997410074101741027410374104741057410674107741087410974110741117411274113741147411574116741177411874119741207412174122741237412474125741267412774128741297413074131741327413374134741357413674137741387413974140741417414274143741447414574146741477414874149741507415174152741537415474155741567415774158741597416074161741627416374164741657416674167741687416974170741717417274173741747417574176741777417874179741807418174182741837418474185741867418774188741897419074191741927419374194741957419674197741987419974200742017420274203742047420574206742077420874209742107421174212742137421474215742167421774218742197422074221742227422374224742257422674227742287422974230742317423274233742347423574236742377423874239742407424174242742437424474245742467424774248742497425074251742527425374254742557425674257742587425974260742617426274263742647426574266742677426874269742707427174272742737427474275742767427774278742797428074281742827428374284742857428674287742887428974290742917429274293742947429574296742977429874299743007430174302743037430474305743067430774308743097431074311743127431374314743157431674317743187431974320743217432274323743247432574326743277432874329743307433174332743337433474335743367433774338743397434074341743427434374344743457434674347743487434974350743517435274353743547435574356743577435874359743607436174362743637436474365743667436774368743697437074371743727437374374743757437674377743787437974380743817438274383743847438574386743877438874389743907439174392743937439474395743967439774398743997440074401744027440374404744057440674407744087440974410744117441274413744147441574416744177441874419744207442174422744237442474425744267442774428744297443074431744327443374434744357443674437744387443974440744417444274443744447444574446744477444874449744507445174452744537445474455744567445774458744597446074461744627446374464744657446674467744687446974470744717447274473744747447574476744777447874479744807448174482744837448474485744867448774488744897449074491744927449374494744957449674497744987449974500745017450274503745047450574506745077450874509745107451174512745137451474515745167451774518745197452074521745227452374524745257452674527745287452974530745317453274533745347453574536745377453874539745407454174542745437454474545745467454774548745497455074551745527455374554745557455674557745587455974560745617456274563745647456574566745677456874569745707457174572745737457474575745767457774578745797458074581745827458374584745857458674587745887458974590745917459274593745947459574596745977459874599746007460174602746037460474605746067460774608746097461074611746127461374614746157461674617746187461974620746217462274623746247462574626746277462874629746307463174632746337463474635746367463774638746397464074641746427464374644746457464674647746487464974650746517465274653746547465574656746577465874659746607466174662746637466474665746667466774668746697467074671746727467374674746757467674677746787467974680746817468274683746847468574686746877468874689746907469174692746937469474695746967469774698746997470074701747027470374704747057470674707747087470974710747117471274713747147471574716747177471874719747207472174722747237472474725747267472774728747297473074731747327473374734747357473674737747387473974740747417474274743747447474574746747477474874749747507475174752747537475474755747567475774758747597476074761747627476374764747657476674767747687476974770747717477274773747747477574776747777477874779747807478174782747837478474785747867478774788747897479074791747927479374794747957479674797747987479974800748017480274803748047480574806748077480874809748107481174812748137481474815748167481774818748197482074821748227482374824748257482674827748287482974830748317483274833748347483574836748377483874839748407484174842748437484474845748467484774848748497485074851748527485374854748557485674857748587485974860748617486274863748647486574866748677486874869748707487174872748737487474875748767487774878748797488074881748827488374884748857488674887748887488974890748917489274893748947489574896748977489874899749007490174902749037490474905749067490774908749097491074911749127491374914749157491674917749187491974920749217492274923749247492574926749277492874929749307493174932749337493474935749367493774938749397494074941749427494374944749457494674947749487494974950749517495274953749547495574956749577495874959749607496174962749637496474965749667496774968749697497074971749727497374974749757497674977749787497974980749817498274983749847498574986749877498874989749907499174992749937499474995749967499774998749997500075001750027500375004750057500675007750087500975010750117501275013750147501575016750177501875019750207502175022750237502475025750267502775028750297503075031750327503375034750357503675037750387503975040750417504275043750447504575046750477504875049750507505175052750537505475055750567505775058750597506075061750627506375064750657506675067750687506975070750717507275073750747507575076750777507875079750807508175082750837508475085750867508775088750897509075091750927509375094750957509675097750987509975100751017510275103751047510575106751077510875109751107511175112751137511475115751167511775118751197512075121751227512375124751257512675127751287512975130751317513275133751347513575136751377513875139751407514175142751437514475145751467514775148751497515075151751527515375154751557515675157751587515975160751617516275163751647516575166751677516875169751707517175172751737517475175751767517775178751797518075181751827518375184751857518675187751887518975190751917519275193751947519575196751977519875199752007520175202752037520475205752067520775208752097521075211752127521375214752157521675217752187521975220752217522275223752247522575226752277522875229752307523175232752337523475235752367523775238752397524075241752427524375244752457524675247752487524975250752517525275253752547525575256752577525875259752607526175262752637526475265752667526775268752697527075271752727527375274752757527675277752787527975280752817528275283752847528575286752877528875289752907529175292752937529475295752967529775298752997530075301753027530375304753057530675307753087530975310753117531275313753147531575316753177531875319753207532175322753237532475325753267532775328753297533075331753327533375334753357533675337753387533975340753417534275343753447534575346753477534875349753507535175352753537535475355753567535775358753597536075361753627536375364753657536675367753687536975370753717537275373753747537575376753777537875379753807538175382753837538475385753867538775388753897539075391753927539375394753957539675397753987539975400754017540275403754047540575406754077540875409754107541175412754137541475415754167541775418754197542075421754227542375424754257542675427754287542975430754317543275433754347543575436754377543875439754407544175442754437544475445754467544775448754497545075451754527545375454754557545675457754587545975460754617546275463754647546575466754677546875469754707547175472754737547475475754767547775478754797548075481754827548375484754857548675487754887548975490754917549275493754947549575496754977549875499755007550175502755037550475505755067550775508755097551075511755127551375514755157551675517755187551975520755217552275523755247552575526755277552875529755307553175532755337553475535755367553775538755397554075541755427554375544755457554675547755487554975550755517555275553755547555575556755577555875559755607556175562755637556475565755667556775568755697557075571755727557375574755757557675577755787557975580755817558275583755847558575586755877558875589755907559175592755937559475595755967559775598755997560075601756027560375604756057560675607756087560975610756117561275613756147561575616756177561875619756207562175622756237562475625756267562775628756297563075631756327563375634756357563675637756387563975640756417564275643756447564575646756477564875649756507565175652756537565475655756567565775658756597566075661756627566375664756657566675667756687566975670756717567275673756747567575676756777567875679756807568175682756837568475685756867568775688756897569075691756927569375694756957569675697756987569975700757017570275703757047570575706757077570875709757107571175712757137571475715757167571775718757197572075721757227572375724757257572675727757287572975730757317573275733757347573575736757377573875739757407574175742757437574475745757467574775748757497575075751757527575375754757557575675757757587575975760757617576275763757647576575766757677576875769757707577175772757737577475775757767577775778757797578075781757827578375784757857578675787757887578975790757917579275793757947579575796757977579875799758007580175802758037580475805758067580775808758097581075811758127581375814758157581675817758187581975820758217582275823758247582575826758277582875829758307583175832758337583475835758367583775838758397584075841758427584375844758457584675847758487584975850758517585275853758547585575856758577585875859758607586175862758637586475865758667586775868758697587075871758727587375874758757587675877758787587975880758817588275883758847588575886758877588875889758907589175892758937589475895758967589775898758997590075901759027590375904759057590675907759087590975910759117591275913759147591575916759177591875919759207592175922759237592475925759267592775928759297593075931759327593375934759357593675937759387593975940759417594275943759447594575946759477594875949759507595175952759537595475955759567595775958759597596075961759627596375964759657596675967759687596975970759717597275973759747597575976759777597875979759807598175982759837598475985759867598775988759897599075991759927599375994759957599675997759987599976000760017600276003760047600576006760077600876009760107601176012760137601476015760167601776018760197602076021760227602376024760257602676027760287602976030760317603276033760347603576036760377603876039760407604176042760437604476045760467604776048760497605076051760527605376054760557605676057760587605976060760617606276063760647606576066760677606876069760707607176072760737607476075760767607776078760797608076081760827608376084760857608676087760887608976090760917609276093760947609576096760977609876099761007610176102761037610476105761067610776108761097611076111761127611376114761157611676117761187611976120761217612276123761247612576126761277612876129761307613176132761337613476135761367613776138761397614076141761427614376144761457614676147761487614976150761517615276153761547615576156761577615876159761607616176162761637616476165761667616776168761697617076171761727617376174761757617676177761787617976180761817618276183761847618576186761877618876189761907619176192761937619476195761967619776198761997620076201762027620376204762057620676207762087620976210762117621276213762147621576216762177621876219762207622176222762237622476225762267622776228762297623076231762327623376234762357623676237762387623976240762417624276243762447624576246762477624876249762507625176252762537625476255762567625776258762597626076261762627626376264762657626676267762687626976270762717627276273762747627576276762777627876279762807628176282762837628476285762867628776288762897629076291762927629376294762957629676297762987629976300763017630276303763047630576306763077630876309763107631176312763137631476315763167631776318763197632076321763227632376324763257632676327763287632976330763317633276333763347633576336763377633876339763407634176342763437634476345763467634776348763497635076351763527635376354763557635676357763587635976360763617636276363763647636576366763677636876369763707637176372763737637476375763767637776378763797638076381763827638376384763857638676387763887638976390763917639276393763947639576396763977639876399764007640176402764037640476405764067640776408764097641076411764127641376414764157641676417764187641976420764217642276423764247642576426764277642876429764307643176432764337643476435764367643776438764397644076441764427644376444764457644676447764487644976450764517645276453764547645576456764577645876459764607646176462764637646476465764667646776468764697647076471764727647376474764757647676477764787647976480764817648276483764847648576486764877648876489764907649176492764937649476495764967649776498764997650076501765027650376504765057650676507765087650976510765117651276513765147651576516765177651876519765207652176522765237652476525765267652776528765297653076531765327653376534765357653676537765387653976540765417654276543765447654576546765477654876549765507655176552765537655476555765567655776558765597656076561765627656376564765657656676567765687656976570765717657276573765747657576576765777657876579765807658176582765837658476585765867658776588765897659076591765927659376594765957659676597765987659976600766017660276603766047660576606766077660876609766107661176612766137661476615766167661776618766197662076621766227662376624766257662676627766287662976630766317663276633766347663576636766377663876639766407664176642766437664476645766467664776648766497665076651766527665376654766557665676657766587665976660766617666276663766647666576666766677666876669766707667176672766737667476675766767667776678766797668076681766827668376684766857668676687766887668976690766917669276693766947669576696766977669876699767007670176702767037670476705767067670776708767097671076711767127671376714767157671676717767187671976720767217672276723767247672576726767277672876729767307673176732767337673476735767367673776738767397674076741767427674376744767457674676747767487674976750767517675276753767547675576756767577675876759767607676176762767637676476765767667676776768767697677076771767727677376774767757677676777767787677976780767817678276783767847678576786767877678876789767907679176792767937679476795767967679776798767997680076801768027680376804768057680676807768087680976810768117681276813768147681576816768177681876819768207682176822768237682476825768267682776828768297683076831768327683376834768357683676837768387683976840768417684276843768447684576846768477684876849768507685176852768537685476855768567685776858768597686076861768627686376864768657686676867768687686976870768717687276873768747687576876768777687876879768807688176882768837688476885768867688776888768897689076891768927689376894768957689676897768987689976900769017690276903769047690576906769077690876909769107691176912769137691476915769167691776918769197692076921769227692376924769257692676927769287692976930769317693276933769347693576936769377693876939769407694176942769437694476945769467694776948769497695076951769527695376954769557695676957769587695976960769617696276963769647696576966769677696876969769707697176972769737697476975769767697776978769797698076981769827698376984769857698676987769887698976990769917699276993769947699576996769977699876999770007700177002770037700477005770067700777008770097701077011770127701377014770157701677017770187701977020770217702277023770247702577026770277702877029770307703177032770337703477035770367703777038770397704077041770427704377044770457704677047770487704977050770517705277053770547705577056770577705877059770607706177062770637706477065770667706777068770697707077071770727707377074770757707677077770787707977080770817708277083770847708577086770877708877089770907709177092770937709477095770967709777098770997710077101771027710377104771057710677107771087710977110771117711277113771147711577116771177711877119771207712177122771237712477125771267712777128771297713077131771327713377134771357713677137771387713977140771417714277143771447714577146771477714877149771507715177152771537715477155771567715777158771597716077161771627716377164771657716677167771687716977170771717717277173771747717577176771777717877179771807718177182771837718477185771867718777188771897719077191771927719377194771957719677197771987719977200772017720277203772047720577206772077720877209772107721177212772137721477215772167721777218772197722077221772227722377224772257722677227772287722977230772317723277233772347723577236772377723877239772407724177242772437724477245772467724777248772497725077251772527725377254772557725677257772587725977260772617726277263772647726577266772677726877269772707727177272772737727477275772767727777278772797728077281772827728377284772857728677287772887728977290772917729277293772947729577296772977729877299773007730177302773037730477305773067730777308773097731077311773127731377314773157731677317773187731977320773217732277323773247732577326773277732877329773307733177332773337733477335773367733777338773397734077341773427734377344773457734677347773487734977350773517735277353773547735577356773577735877359773607736177362773637736477365773667736777368773697737077371773727737377374773757737677377773787737977380773817738277383773847738577386773877738877389773907739177392773937739477395773967739777398773997740077401774027740377404774057740677407774087740977410774117741277413774147741577416774177741877419774207742177422774237742477425774267742777428774297743077431774327743377434774357743677437774387743977440774417744277443774447744577446774477744877449774507745177452774537745477455774567745777458774597746077461774627746377464774657746677467774687746977470774717747277473774747747577476774777747877479774807748177482774837748477485774867748777488774897749077491774927749377494774957749677497774987749977500775017750277503775047750577506775077750877509775107751177512775137751477515775167751777518775197752077521775227752377524775257752677527775287752977530775317753277533775347753577536775377753877539775407754177542775437754477545775467754777548775497755077551775527755377554775557755677557775587755977560775617756277563775647756577566775677756877569775707757177572775737757477575775767757777578775797758077581775827758377584775857758677587775887758977590775917759277593775947759577596775977759877599776007760177602776037760477605776067760777608776097761077611776127761377614776157761677617776187761977620776217762277623776247762577626776277762877629776307763177632776337763477635776367763777638776397764077641776427764377644776457764677647776487764977650776517765277653776547765577656776577765877659776607766177662776637766477665776667766777668776697767077671776727767377674776757767677677776787767977680776817768277683776847768577686776877768877689776907769177692776937769477695776967769777698776997770077701777027770377704777057770677707777087770977710777117771277713777147771577716777177771877719777207772177722777237772477725777267772777728777297773077731777327773377734777357773677737777387773977740777417774277743777447774577746777477774877749777507775177752777537775477755777567775777758777597776077761777627776377764777657776677767777687776977770777717777277773777747777577776777777777877779777807778177782777837778477785777867778777788777897779077791777927779377794777957779677797777987779977800778017780277803778047780577806778077780877809778107781177812778137781477815778167781777818778197782077821778227782377824778257782677827778287782977830778317783277833778347783577836778377783877839778407784177842778437784477845778467784777848778497785077851778527785377854778557785677857778587785977860778617786277863778647786577866778677786877869778707787177872778737787477875778767787777878778797788077881778827788377884778857788677887778887788977890778917789277893778947789577896778977789877899779007790177902779037790477905779067790777908779097791077911779127791377914779157791677917779187791977920779217792277923779247792577926779277792877929779307793177932779337793477935779367793777938779397794077941779427794377944779457794677947779487794977950779517795277953779547795577956779577795877959779607796177962779637796477965779667796777968779697797077971779727797377974779757797677977779787797977980779817798277983779847798577986779877798877989779907799177992779937799477995779967799777998779997800078001780027800378004780057800678007780087800978010780117801278013780147801578016780177801878019780207802178022780237802478025780267802778028780297803078031780327803378034780357803678037780387803978040780417804278043780447804578046780477804878049780507805178052780537805478055780567805778058780597806078061780627806378064780657806678067780687806978070780717807278073780747807578076780777807878079780807808178082780837808478085780867808778088780897809078091780927809378094780957809678097780987809978100781017810278103781047810578106781077810878109781107811178112781137811478115781167811778118781197812078121781227812378124781257812678127781287812978130781317813278133781347813578136781377813878139781407814178142781437814478145781467814778148781497815078151781527815378154781557815678157781587815978160781617816278163781647816578166781677816878169781707817178172781737817478175781767817778178781797818078181781827818378184781857818678187781887818978190781917819278193781947819578196781977819878199782007820178202782037820478205782067820778208782097821078211782127821378214782157821678217782187821978220782217822278223782247822578226782277822878229782307823178232782337823478235782367823778238782397824078241782427824378244782457824678247782487824978250782517825278253782547825578256782577825878259782607826178262782637826478265782667826778268782697827078271782727827378274782757827678277782787827978280782817828278283782847828578286782877828878289782907829178292782937829478295782967829778298782997830078301783027830378304783057830678307783087830978310783117831278313783147831578316783177831878319783207832178322783237832478325783267832778328783297833078331783327833378334783357833678337783387833978340783417834278343783447834578346783477834878349783507835178352783537835478355783567835778358783597836078361783627836378364783657836678367783687836978370783717837278373783747837578376783777837878379783807838178382783837838478385783867838778388783897839078391783927839378394783957839678397783987839978400784017840278403784047840578406784077840878409784107841178412784137841478415784167841778418784197842078421784227842378424784257842678427784287842978430784317843278433784347843578436784377843878439784407844178442784437844478445784467844778448784497845078451784527845378454784557845678457784587845978460784617846278463784647846578466784677846878469784707847178472784737847478475784767847778478784797848078481784827848378484784857848678487784887848978490784917849278493784947849578496784977849878499785007850178502785037850478505785067850778508785097851078511785127851378514785157851678517785187851978520785217852278523785247852578526785277852878529785307853178532785337853478535785367853778538785397854078541785427854378544785457854678547785487854978550785517855278553785547855578556785577855878559785607856178562785637856478565785667856778568785697857078571785727857378574785757857678577785787857978580785817858278583785847858578586785877858878589785907859178592785937859478595785967859778598785997860078601786027860378604786057860678607786087860978610786117861278613786147861578616786177861878619786207862178622786237862478625786267862778628786297863078631786327863378634786357863678637786387863978640786417864278643786447864578646786477864878649786507865178652786537865478655786567865778658786597866078661786627866378664786657866678667786687866978670786717867278673786747867578676786777867878679786807868178682786837868478685786867868778688786897869078691786927869378694786957869678697786987869978700787017870278703787047870578706787077870878709787107871178712787137871478715787167871778718787197872078721787227872378724787257872678727787287872978730787317873278733787347873578736787377873878739787407874178742787437874478745787467874778748787497875078751787527875378754787557875678757787587875978760787617876278763787647876578766787677876878769787707877178772787737877478775787767877778778787797878078781787827878378784787857878678787787887878978790787917879278793787947879578796787977879878799788007880178802788037880478805788067880778808788097881078811788127881378814788157881678817788187881978820788217882278823788247882578826788277882878829788307883178832788337883478835788367883778838788397884078841788427884378844788457884678847788487884978850788517885278853788547885578856788577885878859788607886178862788637886478865788667886778868788697887078871788727887378874788757887678877788787887978880788817888278883788847888578886788877888878889788907889178892788937889478895788967889778898788997890078901789027890378904789057890678907789087890978910789117891278913789147891578916789177891878919789207892178922789237892478925789267892778928789297893078931789327893378934789357893678937789387893978940789417894278943789447894578946789477894878949789507895178952789537895478955789567895778958789597896078961789627896378964789657896678967789687896978970789717897278973789747897578976789777897878979789807898178982789837898478985789867898778988789897899078991789927899378994789957899678997789987899979000790017900279003790047900579006790077900879009790107901179012790137901479015790167901779018790197902079021790227902379024790257902679027790287902979030790317903279033790347903579036790377903879039790407904179042790437904479045790467904779048790497905079051790527905379054790557905679057790587905979060790617906279063790647906579066790677906879069790707907179072790737907479075790767907779078790797908079081790827908379084790857908679087790887908979090790917909279093790947909579096790977909879099791007910179102791037910479105791067910779108791097911079111791127911379114791157911679117791187911979120791217912279123791247912579126791277912879129791307913179132791337913479135791367913779138791397914079141791427914379144791457914679147791487914979150791517915279153791547915579156791577915879159791607916179162791637916479165791667916779168791697917079171791727917379174791757917679177791787917979180791817918279183791847918579186791877918879189791907919179192791937919479195791967919779198791997920079201792027920379204792057920679207792087920979210792117921279213792147921579216792177921879219792207922179222792237922479225792267922779228792297923079231792327923379234792357923679237792387923979240792417924279243792447924579246792477924879249792507925179252792537925479255792567925779258792597926079261792627926379264792657926679267792687926979270792717927279273792747927579276792777927879279792807928179282792837928479285792867928779288792897929079291792927929379294792957929679297792987929979300793017930279303793047930579306793077930879309793107931179312793137931479315793167931779318793197932079321793227932379324793257932679327793287932979330793317933279333793347933579336793377933879339793407934179342793437934479345793467934779348793497935079351793527935379354793557935679357793587935979360793617936279363793647936579366793677936879369793707937179372793737937479375793767937779378793797938079381793827938379384793857938679387793887938979390793917939279393793947939579396793977939879399794007940179402794037940479405794067940779408794097941079411794127941379414794157941679417794187941979420794217942279423794247942579426794277942879429794307943179432794337943479435794367943779438794397944079441794427944379444794457944679447794487944979450794517945279453794547945579456794577945879459794607946179462794637946479465794667946779468794697947079471794727947379474794757947679477794787947979480794817948279483794847948579486794877948879489794907949179492794937949479495794967949779498794997950079501795027950379504795057950679507795087950979510795117951279513795147951579516795177951879519795207952179522795237952479525795267952779528795297953079531795327953379534795357953679537795387953979540795417954279543795447954579546795477954879549795507955179552795537955479555795567955779558795597956079561795627956379564795657956679567795687956979570795717957279573795747957579576795777957879579795807958179582795837958479585795867958779588795897959079591795927959379594795957959679597795987959979600796017960279603796047960579606796077960879609796107961179612796137961479615796167961779618796197962079621796227962379624796257962679627796287962979630796317963279633796347963579636796377963879639796407964179642796437964479645796467964779648796497965079651796527965379654796557965679657796587965979660796617966279663796647966579666796677966879669796707967179672796737967479675796767967779678796797968079681796827968379684796857968679687796887968979690796917969279693796947969579696796977969879699797007970179702797037970479705797067970779708797097971079711797127971379714797157971679717797187971979720797217972279723797247972579726797277972879729797307973179732797337973479735797367973779738797397974079741797427974379744797457974679747797487974979750797517975279753797547975579756797577975879759797607976179762797637976479765797667976779768797697977079771797727977379774797757977679777797787977979780797817978279783797847978579786797877978879789797907979179792797937979479795797967979779798797997980079801798027980379804798057980679807798087980979810798117981279813798147981579816798177981879819798207982179822798237982479825798267982779828798297983079831798327983379834798357983679837798387983979840798417984279843798447984579846798477984879849798507985179852798537985479855798567985779858798597986079861798627986379864798657986679867798687986979870798717987279873798747987579876798777987879879798807988179882798837988479885798867988779888798897989079891798927989379894798957989679897798987989979900799017990279903799047990579906799077990879909799107991179912799137991479915799167991779918799197992079921799227992379924799257992679927799287992979930799317993279933799347993579936799377993879939799407994179942799437994479945799467994779948799497995079951799527995379954799557995679957799587995979960799617996279963799647996579966799677996879969799707997179972799737997479975799767997779978799797998079981799827998379984799857998679987799887998979990799917999279993799947999579996799977999879999800008000180002800038000480005800068000780008800098001080011800128001380014800158001680017800188001980020800218002280023800248002580026800278002880029800308003180032800338003480035800368003780038800398004080041800428004380044800458004680047800488004980050800518005280053800548005580056800578005880059800608006180062800638006480065800668006780068800698007080071800728007380074800758007680077800788007980080800818008280083800848008580086800878008880089800908009180092800938009480095800968009780098800998010080101801028010380104801058010680107801088010980110801118011280113801148011580116801178011880119801208012180122801238012480125801268012780128801298013080131801328013380134801358013680137801388013980140801418014280143801448014580146801478014880149801508015180152801538015480155801568015780158801598016080161801628016380164801658016680167801688016980170801718017280173801748017580176801778017880179801808018180182801838018480185801868018780188801898019080191801928019380194801958019680197801988019980200802018020280203802048020580206802078020880209802108021180212802138021480215802168021780218802198022080221802228022380224802258022680227802288022980230802318023280233802348023580236802378023880239802408024180242802438024480245802468024780248802498025080251802528025380254802558025680257802588025980260802618026280263802648026580266802678026880269802708027180272802738027480275802768027780278802798028080281802828028380284802858028680287802888028980290802918029280293802948029580296802978029880299803008030180302803038030480305803068030780308803098031080311803128031380314803158031680317803188031980320803218032280323803248032580326803278032880329803308033180332803338033480335803368033780338803398034080341803428034380344803458034680347803488034980350803518035280353803548035580356803578035880359803608036180362803638036480365803668036780368803698037080371803728037380374803758037680377803788037980380803818038280383803848038580386803878038880389803908039180392803938039480395803968039780398803998040080401804028040380404804058040680407804088040980410804118041280413804148041580416804178041880419804208042180422804238042480425804268042780428804298043080431804328043380434804358043680437804388043980440804418044280443804448044580446804478044880449804508045180452804538045480455804568045780458804598046080461804628046380464804658046680467804688046980470804718047280473804748047580476804778047880479804808048180482804838048480485804868048780488804898049080491804928049380494804958049680497804988049980500805018050280503805048050580506805078050880509805108051180512805138051480515805168051780518805198052080521805228052380524805258052680527805288052980530805318053280533805348053580536805378053880539805408054180542805438054480545805468054780548805498055080551805528055380554805558055680557805588055980560805618056280563805648056580566805678056880569805708057180572805738057480575805768057780578805798058080581805828058380584805858058680587805888058980590805918059280593805948059580596805978059880599806008060180602806038060480605806068060780608806098061080611806128061380614806158061680617806188061980620806218062280623806248062580626806278062880629806308063180632806338063480635806368063780638806398064080641806428064380644806458064680647806488064980650806518065280653806548065580656806578065880659806608066180662806638066480665806668066780668806698067080671806728067380674806758067680677806788067980680806818068280683806848068580686806878068880689806908069180692806938069480695806968069780698806998070080701807028070380704807058070680707807088070980710807118071280713807148071580716807178071880719807208072180722807238072480725807268072780728807298073080731807328073380734807358073680737807388073980740807418074280743807448074580746807478074880749807508075180752807538075480755807568075780758807598076080761807628076380764807658076680767807688076980770807718077280773807748077580776807778077880779807808078180782807838078480785807868078780788807898079080791807928079380794807958079680797807988079980800808018080280803808048080580806808078080880809808108081180812808138081480815808168081780818808198082080821808228082380824808258082680827808288082980830808318083280833808348083580836808378083880839808408084180842808438084480845808468084780848808498085080851808528085380854808558085680857808588085980860808618086280863808648086580866808678086880869808708087180872808738087480875808768087780878808798088080881808828088380884808858088680887808888088980890808918089280893808948089580896808978089880899809008090180902809038090480905809068090780908809098091080911809128091380914809158091680917809188091980920809218092280923809248092580926809278092880929809308093180932809338093480935809368093780938809398094080941809428094380944809458094680947809488094980950809518095280953809548095580956809578095880959809608096180962809638096480965809668096780968809698097080971809728097380974809758097680977809788097980980809818098280983809848098580986809878098880989809908099180992809938099480995809968099780998809998100081001810028100381004810058100681007810088100981010810118101281013810148101581016810178101881019810208102181022810238102481025810268102781028810298103081031810328103381034810358103681037810388103981040810418104281043810448104581046810478104881049810508105181052810538105481055810568105781058810598106081061810628106381064810658106681067810688106981070810718107281073810748107581076810778107881079810808108181082810838108481085810868108781088810898109081091810928109381094810958109681097810988109981100811018110281103811048110581106811078110881109811108111181112811138111481115811168111781118811198112081121811228112381124811258112681127811288112981130811318113281133811348113581136811378113881139811408114181142811438114481145811468114781148811498115081151811528115381154811558115681157811588115981160811618116281163811648116581166811678116881169811708117181172811738117481175811768117781178811798118081181811828118381184811858118681187811888118981190811918119281193811948119581196811978119881199812008120181202812038120481205812068120781208812098121081211812128121381214812158121681217812188121981220812218122281223812248122581226812278122881229812308123181232812338123481235812368123781238812398124081241812428124381244812458124681247812488124981250812518125281253812548125581256812578125881259812608126181262812638126481265812668126781268812698127081271812728127381274812758127681277812788127981280812818128281283812848128581286812878128881289812908129181292812938129481295812968129781298812998130081301813028130381304813058130681307813088130981310813118131281313813148131581316813178131881319813208132181322813238132481325813268132781328813298133081331813328133381334813358133681337813388133981340813418134281343813448134581346813478134881349813508135181352813538135481355813568135781358813598136081361813628136381364813658136681367813688136981370813718137281373813748137581376813778137881379813808138181382813838138481385813868138781388813898139081391813928139381394813958139681397813988139981400814018140281403814048140581406814078140881409814108141181412814138141481415814168141781418814198142081421814228142381424814258142681427814288142981430814318143281433814348143581436814378143881439814408144181442814438144481445814468144781448814498145081451814528145381454814558145681457814588145981460814618146281463814648146581466814678146881469814708147181472814738147481475814768147781478814798148081481814828148381484814858148681487814888148981490814918149281493814948149581496814978149881499815008150181502815038150481505815068150781508815098151081511815128151381514815158151681517815188151981520815218152281523815248152581526815278152881529815308153181532815338153481535815368153781538815398154081541815428154381544815458154681547815488154981550815518155281553815548155581556815578155881559815608156181562815638156481565815668156781568815698157081571815728157381574815758157681577815788157981580815818158281583815848158581586815878158881589815908159181592815938159481595815968159781598815998160081601816028160381604816058160681607816088160981610816118161281613816148161581616816178161881619816208162181622816238162481625816268162781628816298163081631816328163381634816358163681637816388163981640816418164281643816448164581646816478164881649816508165181652816538165481655816568165781658816598166081661816628166381664816658166681667816688166981670816718167281673816748167581676816778167881679816808168181682816838168481685816868168781688816898169081691816928169381694816958169681697816988169981700817018170281703817048170581706817078170881709817108171181712817138171481715817168171781718817198172081721817228172381724817258172681727817288172981730817318173281733817348173581736817378173881739817408174181742817438174481745817468174781748817498175081751817528175381754817558175681757817588175981760817618176281763817648176581766817678176881769817708177181772817738177481775817768177781778817798178081781817828178381784817858178681787817888178981790817918179281793817948179581796817978179881799818008180181802818038180481805818068180781808818098181081811818128181381814818158181681817818188181981820818218182281823818248182581826818278182881829818308183181832818338183481835818368183781838818398184081841818428184381844818458184681847818488184981850818518185281853818548185581856818578185881859818608186181862818638186481865818668186781868818698187081871818728187381874818758187681877818788187981880818818188281883818848188581886818878188881889818908189181892818938189481895818968189781898818998190081901819028190381904819058190681907819088190981910819118191281913819148191581916819178191881919819208192181922819238192481925819268192781928819298193081931819328193381934819358193681937819388193981940819418194281943819448194581946819478194881949819508195181952819538195481955819568195781958819598196081961819628196381964819658196681967819688196981970819718197281973819748197581976819778197881979819808198181982819838198481985819868198781988819898199081991819928199381994819958199681997819988199982000820018200282003820048200582006820078200882009820108201182012820138201482015820168201782018820198202082021820228202382024820258202682027820288202982030820318203282033820348203582036820378203882039820408204182042820438204482045820468204782048820498205082051820528205382054820558205682057820588205982060820618206282063820648206582066820678206882069820708207182072820738207482075820768207782078820798208082081820828208382084820858208682087820888208982090820918209282093820948209582096820978209882099821008210182102821038210482105821068210782108821098211082111821128211382114821158211682117821188211982120821218212282123821248212582126821278212882129821308213182132821338213482135821368213782138821398214082141821428214382144821458214682147821488214982150821518215282153821548215582156821578215882159821608216182162821638216482165821668216782168821698217082171821728217382174821758217682177821788217982180821818218282183821848218582186821878218882189821908219182192821938219482195821968219782198821998220082201822028220382204822058220682207822088220982210822118221282213822148221582216822178221882219822208222182222822238222482225822268222782228822298223082231822328223382234822358223682237822388223982240822418224282243822448224582246822478224882249822508225182252822538225482255822568225782258822598226082261822628226382264822658226682267822688226982270822718227282273822748227582276822778227882279822808228182282822838228482285822868228782288822898229082291822928229382294822958229682297822988229982300823018230282303823048230582306823078230882309823108231182312823138231482315823168231782318823198232082321823228232382324823258232682327823288232982330823318233282333823348233582336823378233882339823408234182342823438234482345823468234782348823498235082351823528235382354823558235682357823588235982360823618236282363823648236582366823678236882369823708237182372823738237482375823768237782378823798238082381823828238382384823858238682387823888238982390823918239282393823948239582396823978239882399824008240182402824038240482405824068240782408824098241082411824128241382414824158241682417824188241982420824218242282423824248242582426824278242882429824308243182432824338243482435824368243782438824398244082441824428244382444824458244682447824488244982450824518245282453824548245582456824578245882459824608246182462824638246482465824668246782468824698247082471824728247382474824758247682477824788247982480824818248282483824848248582486824878248882489824908249182492824938249482495824968249782498824998250082501825028250382504825058250682507825088250982510825118251282513825148251582516825178251882519825208252182522825238252482525825268252782528825298253082531825328253382534825358253682537825388253982540825418254282543825448254582546825478254882549825508255182552825538255482555825568255782558825598256082561825628256382564825658256682567825688256982570825718257282573825748257582576825778257882579825808258182582825838258482585825868258782588825898259082591825928259382594825958259682597825988259982600826018260282603826048260582606826078260882609826108261182612826138261482615826168261782618826198262082621826228262382624826258262682627826288262982630826318263282633826348263582636826378263882639826408264182642826438264482645826468264782648826498265082651826528265382654826558265682657826588265982660826618266282663826648266582666826678266882669826708267182672826738267482675826768267782678826798268082681826828268382684826858268682687826888268982690826918269282693826948269582696826978269882699827008270182702827038270482705827068270782708827098271082711827128271382714827158271682717827188271982720827218272282723827248272582726827278272882729827308273182732827338273482735827368273782738827398274082741827428274382744827458274682747827488274982750827518275282753827548275582756827578275882759827608276182762827638276482765827668276782768827698277082771827728277382774827758277682777827788277982780827818278282783827848278582786827878278882789827908279182792827938279482795827968279782798827998280082801828028280382804828058280682807828088280982810828118281282813828148281582816828178281882819828208282182822828238282482825828268282782828828298283082831828328283382834828358283682837828388283982840828418284282843828448284582846828478284882849828508285182852828538285482855828568285782858828598286082861828628286382864828658286682867828688286982870828718287282873828748287582876828778287882879828808288182882828838288482885828868288782888828898289082891828928289382894828958289682897828988289982900829018290282903829048290582906829078290882909829108291182912829138291482915829168291782918829198292082921829228292382924829258292682927829288292982930829318293282933829348293582936829378293882939829408294182942829438294482945829468294782948829498295082951829528295382954829558295682957829588295982960829618296282963829648296582966829678296882969829708297182972829738297482975829768297782978829798298082981829828298382984829858298682987829888298982990829918299282993829948299582996829978299882999830008300183002830038300483005830068300783008830098301083011830128301383014830158301683017830188301983020830218302283023830248302583026830278302883029830308303183032830338303483035830368303783038830398304083041830428304383044830458304683047830488304983050830518305283053830548305583056830578305883059830608306183062830638306483065830668306783068830698307083071830728307383074830758307683077830788307983080830818308283083830848308583086830878308883089830908309183092830938309483095830968309783098830998310083101831028310383104831058310683107831088310983110831118311283113831148311583116831178311883119831208312183122831238312483125831268312783128831298313083131831328313383134831358313683137831388313983140831418314283143831448314583146831478314883149831508315183152831538315483155831568315783158831598316083161831628316383164831658316683167831688316983170831718317283173831748317583176831778317883179831808318183182831838318483185831868318783188831898319083191831928319383194831958319683197831988319983200832018320283203832048320583206832078320883209832108321183212832138321483215832168321783218832198322083221832228322383224832258322683227832288322983230832318323283233832348323583236832378323883239832408324183242832438324483245832468324783248832498325083251832528325383254832558325683257832588325983260832618326283263832648326583266832678326883269832708327183272832738327483275832768327783278832798328083281832828328383284832858328683287832888328983290832918329283293832948329583296832978329883299833008330183302833038330483305833068330783308833098331083311833128331383314833158331683317833188331983320833218332283323833248332583326833278332883329833308333183332833338333483335833368333783338833398334083341833428334383344833458334683347833488334983350833518335283353833548335583356833578335883359833608336183362833638336483365833668336783368833698337083371833728337383374833758337683377833788337983380833818338283383833848338583386833878338883389833908339183392833938339483395833968339783398833998340083401834028340383404834058340683407834088340983410834118341283413834148341583416834178341883419834208342183422834238342483425834268342783428834298343083431834328343383434834358343683437834388343983440834418344283443834448344583446834478344883449834508345183452834538345483455834568345783458834598346083461834628346383464834658346683467834688346983470834718347283473834748347583476834778347883479834808348183482834838348483485834868348783488834898349083491834928349383494834958349683497834988349983500835018350283503835048350583506835078350883509835108351183512835138351483515835168351783518835198352083521835228352383524835258352683527835288352983530835318353283533835348353583536835378353883539835408354183542835438354483545835468354783548835498355083551835528355383554835558355683557835588355983560835618356283563835648356583566835678356883569835708357183572835738357483575835768357783578835798358083581835828358383584835858358683587835888358983590835918359283593835948359583596835978359883599836008360183602836038360483605836068360783608836098361083611836128361383614836158361683617836188361983620836218362283623836248362583626836278362883629836308363183632836338363483635836368363783638836398364083641836428364383644836458364683647836488364983650836518365283653836548365583656836578365883659836608366183662836638366483665836668366783668836698367083671836728367383674836758367683677836788367983680836818368283683836848368583686836878368883689836908369183692836938369483695836968369783698836998370083701837028370383704837058370683707837088370983710837118371283713837148371583716837178371883719837208372183722837238372483725837268372783728837298373083731837328373383734837358373683737837388373983740837418374283743837448374583746837478374883749837508375183752837538375483755837568375783758837598376083761837628376383764837658376683767837688376983770837718377283773837748377583776837778377883779837808378183782837838378483785837868378783788837898379083791837928379383794837958379683797837988379983800838018380283803838048380583806838078380883809838108381183812838138381483815838168381783818838198382083821838228382383824838258382683827838288382983830838318383283833838348383583836838378383883839838408384183842838438384483845838468384783848838498385083851838528385383854838558385683857838588385983860838618386283863838648386583866838678386883869838708387183872838738387483875838768387783878838798388083881838828388383884838858388683887838888388983890838918389283893838948389583896838978389883899839008390183902839038390483905839068390783908839098391083911839128391383914839158391683917839188391983920839218392283923839248392583926839278392883929839308393183932839338393483935839368393783938839398394083941839428394383944839458394683947839488394983950839518395283953839548395583956839578395883959839608396183962839638396483965839668396783968839698397083971839728397383974839758397683977839788397983980839818398283983839848398583986839878398883989839908399183992839938399483995839968399783998839998400084001840028400384004840058400684007840088400984010840118401284013840148401584016840178401884019840208402184022840238402484025840268402784028840298403084031840328403384034840358403684037840388403984040840418404284043840448404584046840478404884049840508405184052840538405484055840568405784058840598406084061840628406384064840658406684067840688406984070840718407284073840748407584076840778407884079840808408184082840838408484085840868408784088840898409084091840928409384094840958409684097840988409984100841018410284103841048410584106841078410884109841108411184112841138411484115841168411784118841198412084121841228412384124841258412684127841288412984130841318413284133841348413584136841378413884139841408414184142841438414484145841468414784148841498415084151841528415384154841558415684157841588415984160841618416284163841648416584166841678416884169841708417184172841738417484175841768417784178841798418084181841828418384184841858418684187841888418984190841918419284193841948419584196841978419884199842008420184202842038420484205842068420784208842098421084211842128421384214842158421684217842188421984220842218422284223842248422584226842278422884229842308423184232842338423484235842368423784238842398424084241842428424384244842458424684247842488424984250842518425284253842548425584256842578425884259842608426184262842638426484265842668426784268842698427084271842728427384274842758427684277842788427984280842818428284283842848428584286842878428884289842908429184292842938429484295842968429784298842998430084301843028430384304843058430684307843088430984310843118431284313843148431584316843178431884319843208432184322843238432484325843268432784328843298433084331843328433384334843358433684337843388433984340843418434284343843448434584346843478434884349843508435184352843538435484355843568435784358843598436084361843628436384364843658436684367843688436984370843718437284373843748437584376843778437884379843808438184382843838438484385843868438784388843898439084391843928439384394843958439684397843988439984400844018440284403844048440584406844078440884409844108441184412844138441484415844168441784418844198442084421844228442384424844258442684427844288442984430844318443284433844348443584436844378443884439844408444184442844438444484445844468444784448844498445084451844528445384454844558445684457844588445984460844618446284463844648446584466844678446884469844708447184472844738447484475844768447784478844798448084481844828448384484844858448684487844888448984490844918449284493844948449584496844978449884499845008450184502845038450484505845068450784508845098451084511845128451384514845158451684517845188451984520845218452284523845248452584526845278452884529845308453184532845338453484535845368453784538845398454084541845428454384544845458454684547845488454984550845518455284553845548455584556845578455884559845608456184562845638456484565845668456784568845698457084571845728457384574845758457684577845788457984580845818458284583845848458584586845878458884589845908459184592845938459484595845968459784598845998460084601846028460384604846058460684607846088460984610846118461284613846148461584616846178461884619846208462184622846238462484625846268462784628846298463084631846328463384634846358463684637846388463984640846418464284643846448464584646846478464884649846508465184652846538465484655846568465784658846598466084661846628466384664846658466684667846688466984670846718467284673846748467584676846778467884679846808468184682846838468484685846868468784688846898469084691846928469384694846958469684697846988469984700847018470284703847048470584706847078470884709847108471184712847138471484715847168471784718847198472084721847228472384724847258472684727847288472984730847318473284733847348473584736847378473884739847408474184742847438474484745847468474784748847498475084751847528475384754847558475684757847588475984760847618476284763847648476584766847678476884769847708477184772847738477484775847768477784778847798478084781847828478384784847858478684787847888478984790847918479284793847948479584796847978479884799848008480184802848038480484805848068480784808848098481084811848128481384814848158481684817848188481984820848218482284823848248482584826848278482884829848308483184832848338483484835848368483784838848398484084841848428484384844848458484684847848488484984850848518485284853848548485584856848578485884859848608486184862848638486484865848668486784868848698487084871848728487384874848758487684877848788487984880848818488284883848848488584886848878488884889848908489184892848938489484895848968489784898848998490084901849028490384904849058490684907849088490984910849118491284913849148491584916849178491884919849208492184922849238492484925849268492784928849298493084931849328493384934849358493684937849388493984940849418494284943849448494584946849478494884949849508495184952849538495484955849568495784958849598496084961849628496384964849658496684967849688496984970849718497284973849748497584976849778497884979849808498184982849838498484985849868498784988849898499084991849928499384994849958499684997849988499985000850018500285003850048500585006850078500885009850108501185012850138501485015850168501785018850198502085021850228502385024850258502685027850288502985030850318503285033850348503585036850378503885039850408504185042850438504485045850468504785048850498505085051850528505385054850558505685057850588505985060850618506285063850648506585066850678506885069850708507185072850738507485075850768507785078850798508085081850828508385084850858508685087850888508985090850918509285093850948509585096850978509885099851008510185102851038510485105851068510785108851098511085111851128511385114851158511685117851188511985120851218512285123851248512585126851278512885129851308513185132851338513485135851368513785138851398514085141851428514385144851458514685147851488514985150851518515285153851548515585156851578515885159851608516185162851638516485165851668516785168851698517085171851728517385174851758517685177851788517985180851818518285183851848518585186851878518885189851908519185192851938519485195851968519785198851998520085201852028520385204852058520685207852088520985210852118521285213852148521585216852178521885219852208522185222852238522485225852268522785228852298523085231852328523385234852358523685237852388523985240852418524285243852448524585246852478524885249852508525185252852538525485255852568525785258852598526085261852628526385264852658526685267852688526985270852718527285273852748527585276852778527885279852808528185282852838528485285852868528785288852898529085291852928529385294852958529685297852988529985300853018530285303853048530585306853078530885309853108531185312853138531485315853168531785318853198532085321853228532385324853258532685327853288532985330853318533285333853348533585336853378533885339853408534185342853438534485345853468534785348853498535085351853528535385354853558535685357853588535985360853618536285363853648536585366853678536885369853708537185372853738537485375853768537785378853798538085381853828538385384853858538685387853888538985390853918539285393853948539585396853978539885399854008540185402854038540485405854068540785408854098541085411854128541385414854158541685417854188541985420854218542285423854248542585426854278542885429854308543185432854338543485435854368543785438854398544085441854428544385444854458544685447854488544985450854518545285453854548545585456854578545885459854608546185462854638546485465854668546785468854698547085471854728547385474854758547685477854788547985480854818548285483854848548585486854878548885489854908549185492854938549485495854968549785498854998550085501855028550385504855058550685507855088550985510855118551285513855148551585516855178551885519855208552185522855238552485525855268552785528855298553085531855328553385534855358553685537855388553985540855418554285543855448554585546855478554885549855508555185552855538555485555855568555785558855598556085561855628556385564855658556685567855688556985570855718557285573855748557585576855778557885579855808558185582855838558485585855868558785588855898559085591855928559385594855958559685597855988559985600856018560285603856048560585606856078560885609856108561185612856138561485615856168561785618856198562085621856228562385624856258562685627856288562985630856318563285633856348563585636856378563885639856408564185642856438564485645856468564785648856498565085651856528565385654856558565685657856588565985660856618566285663856648566585666856678566885669856708567185672856738567485675856768567785678856798568085681856828568385684856858568685687856888568985690856918569285693856948569585696856978569885699857008570185702857038570485705857068570785708857098571085711857128571385714857158571685717857188571985720857218572285723857248572585726857278572885729857308573185732857338573485735857368573785738857398574085741857428574385744857458574685747857488574985750857518575285753857548575585756857578575885759857608576185762857638576485765857668576785768857698577085771857728577385774857758577685777857788577985780857818578285783857848578585786857878578885789857908579185792857938579485795857968579785798857998580085801858028580385804858058580685807858088580985810858118581285813858148581585816858178581885819858208582185822858238582485825858268582785828858298583085831858328583385834858358583685837858388583985840858418584285843858448584585846858478584885849858508585185852858538585485855858568585785858858598586085861858628586385864858658586685867858688586985870858718587285873858748587585876858778587885879858808588185882858838588485885858868588785888858898589085891858928589385894858958589685897858988589985900859018590285903859048590585906859078590885909859108591185912859138591485915859168591785918859198592085921859228592385924859258592685927859288592985930859318593285933859348593585936859378593885939859408594185942859438594485945859468594785948859498595085951859528595385954859558595685957859588595985960859618596285963859648596585966859678596885969859708597185972859738597485975859768597785978859798598085981859828598385984859858598685987859888598985990859918599285993859948599585996859978599885999860008600186002860038600486005860068600786008860098601086011860128601386014860158601686017860188601986020860218602286023860248602586026860278602886029860308603186032860338603486035860368603786038860398604086041860428604386044860458604686047860488604986050860518605286053860548605586056860578605886059860608606186062860638606486065860668606786068860698607086071860728607386074860758607686077860788607986080860818608286083860848608586086860878608886089860908609186092860938609486095860968609786098860998610086101861028610386104861058610686107861088610986110861118611286113861148611586116861178611886119861208612186122861238612486125861268612786128861298613086131861328613386134861358613686137861388613986140861418614286143861448614586146861478614886149861508615186152861538615486155861568615786158861598616086161861628616386164861658616686167861688616986170861718617286173861748617586176861778617886179861808618186182861838618486185861868618786188861898619086191861928619386194861958619686197861988619986200862018620286203862048620586206862078620886209862108621186212862138621486215862168621786218862198622086221862228622386224862258622686227862288622986230862318623286233862348623586236862378623886239862408624186242862438624486245862468624786248862498625086251862528625386254862558625686257862588625986260862618626286263862648626586266862678626886269862708627186272862738627486275862768627786278862798628086281862828628386284862858628686287862888628986290862918629286293862948629586296862978629886299863008630186302863038630486305863068630786308863098631086311863128631386314863158631686317863188631986320863218632286323863248632586326863278632886329863308633186332863338633486335863368633786338863398634086341863428634386344863458634686347863488634986350863518635286353863548635586356863578635886359863608636186362863638636486365863668636786368863698637086371863728637386374863758637686377863788637986380863818638286383863848638586386863878638886389863908639186392863938639486395863968639786398863998640086401864028640386404864058640686407864088640986410864118641286413864148641586416864178641886419864208642186422864238642486425864268642786428864298643086431864328643386434864358643686437864388643986440864418644286443864448644586446864478644886449864508645186452864538645486455864568645786458864598646086461864628646386464864658646686467864688646986470864718647286473864748647586476864778647886479864808648186482864838648486485864868648786488864898649086491864928649386494864958649686497864988649986500865018650286503865048650586506865078650886509865108651186512865138651486515865168651786518865198652086521865228652386524865258652686527865288652986530865318653286533865348653586536865378653886539865408654186542865438654486545865468654786548865498655086551865528655386554865558655686557865588655986560865618656286563865648656586566865678656886569865708657186572865738657486575865768657786578865798658086581865828658386584865858658686587865888658986590865918659286593865948659586596865978659886599866008660186602866038660486605866068660786608866098661086611866128661386614866158661686617866188661986620866218662286623866248662586626866278662886629866308663186632866338663486635866368663786638866398664086641866428664386644866458664686647866488664986650866518665286653866548665586656866578665886659866608666186662866638666486665866668666786668866698667086671866728667386674866758667686677866788667986680866818668286683866848668586686866878668886689866908669186692866938669486695866968669786698866998670086701867028670386704867058670686707867088670986710867118671286713867148671586716867178671886719867208672186722867238672486725867268672786728867298673086731867328673386734867358673686737867388673986740867418674286743867448674586746867478674886749867508675186752867538675486755867568675786758867598676086761867628676386764867658676686767867688676986770867718677286773867748677586776867778677886779867808678186782867838678486785867868678786788867898679086791867928679386794867958679686797867988679986800868018680286803868048680586806868078680886809868108681186812868138681486815868168681786818868198682086821868228682386824868258682686827868288682986830868318683286833868348683586836868378683886839868408684186842868438684486845868468684786848868498685086851868528685386854868558685686857868588685986860868618686286863868648686586866868678686886869868708687186872868738687486875868768687786878868798688086881868828688386884868858688686887868888688986890868918689286893868948689586896868978689886899869008690186902869038690486905869068690786908869098691086911869128691386914869158691686917869188691986920869218692286923869248692586926869278692886929869308693186932869338693486935869368693786938869398694086941869428694386944869458694686947869488694986950869518695286953869548695586956869578695886959869608696186962869638696486965869668696786968869698697086971869728697386974869758697686977869788697986980869818698286983869848698586986869878698886989869908699186992869938699486995869968699786998869998700087001870028700387004870058700687007870088700987010870118701287013870148701587016870178701887019870208702187022870238702487025870268702787028870298703087031870328703387034870358703687037870388703987040870418704287043870448704587046870478704887049870508705187052870538705487055870568705787058870598706087061870628706387064870658706687067870688706987070870718707287073870748707587076870778707887079870808708187082870838708487085870868708787088870898709087091870928709387094870958709687097870988709987100871018710287103871048710587106871078710887109871108711187112871138711487115871168711787118871198712087121871228712387124871258712687127871288712987130871318713287133871348713587136871378713887139871408714187142871438714487145871468714787148871498715087151871528715387154871558715687157871588715987160871618716287163871648716587166871678716887169871708717187172871738717487175871768717787178871798718087181871828718387184871858718687187871888718987190871918719287193871948719587196871978719887199872008720187202872038720487205872068720787208872098721087211872128721387214872158721687217872188721987220872218722287223872248722587226872278722887229872308723187232872338723487235872368723787238872398724087241872428724387244872458724687247872488724987250872518725287253872548725587256872578725887259872608726187262872638726487265872668726787268872698727087271872728727387274872758727687277872788727987280872818728287283872848728587286872878728887289872908729187292872938729487295872968729787298872998730087301873028730387304873058730687307873088730987310873118731287313873148731587316873178731887319873208732187322873238732487325873268732787328873298733087331873328733387334873358733687337873388733987340873418734287343873448734587346873478734887349873508735187352873538735487355873568735787358873598736087361873628736387364873658736687367873688736987370873718737287373873748737587376873778737887379873808738187382873838738487385873868738787388873898739087391873928739387394873958739687397873988739987400874018740287403874048740587406874078740887409874108741187412874138741487415874168741787418874198742087421874228742387424874258742687427874288742987430874318743287433874348743587436874378743887439874408744187442874438744487445874468744787448874498745087451874528745387454874558745687457874588745987460874618746287463874648746587466874678746887469874708747187472874738747487475874768747787478874798748087481874828748387484874858748687487874888748987490874918749287493874948749587496874978749887499875008750187502875038750487505875068750787508875098751087511875128751387514875158751687517875188751987520875218752287523875248752587526875278752887529875308753187532875338753487535875368753787538875398754087541875428754387544875458754687547875488754987550875518755287553875548755587556875578755887559875608756187562875638756487565875668756787568875698757087571875728757387574875758757687577875788757987580875818758287583875848758587586875878758887589875908759187592875938759487595875968759787598875998760087601876028760387604876058760687607876088760987610876118761287613876148761587616876178761887619876208762187622876238762487625876268762787628876298763087631876328763387634876358763687637876388763987640876418764287643876448764587646876478764887649876508765187652876538765487655876568765787658876598766087661876628766387664876658766687667876688766987670876718767287673876748767587676876778767887679876808768187682876838768487685876868768787688876898769087691876928769387694876958769687697876988769987700877018770287703877048770587706877078770887709877108771187712877138771487715877168771787718877198772087721877228772387724877258772687727877288772987730877318773287733877348773587736877378773887739877408774187742877438774487745877468774787748877498775087751877528775387754877558775687757877588775987760877618776287763877648776587766877678776887769877708777187772877738777487775877768777787778877798778087781877828778387784877858778687787877888778987790877918779287793877948779587796877978779887799878008780187802878038780487805878068780787808878098781087811878128781387814878158781687817878188781987820878218782287823878248782587826878278782887829878308783187832878338783487835878368783787838878398784087841878428784387844878458784687847878488784987850878518785287853878548785587856878578785887859878608786187862878638786487865878668786787868878698787087871878728787387874878758787687877878788787987880878818788287883878848788587886878878788887889878908789187892878938789487895878968789787898878998790087901879028790387904879058790687907879088790987910879118791287913879148791587916879178791887919879208792187922879238792487925879268792787928879298793087931879328793387934879358793687937879388793987940879418794287943879448794587946879478794887949879508795187952879538795487955879568795787958879598796087961879628796387964879658796687967879688796987970879718797287973879748797587976879778797887979879808798187982879838798487985879868798787988879898799087991879928799387994879958799687997879988799988000880018800288003880048800588006880078800888009880108801188012880138801488015880168801788018880198802088021880228802388024880258802688027880288802988030880318803288033880348803588036880378803888039880408804188042880438804488045880468804788048880498805088051880528805388054880558805688057880588805988060880618806288063880648806588066880678806888069880708807188072880738807488075880768807788078880798808088081880828808388084880858808688087880888808988090880918809288093880948809588096880978809888099881008810188102881038810488105881068810788108881098811088111881128811388114881158811688117881188811988120881218812288123881248812588126881278812888129881308813188132881338813488135881368813788138881398814088141881428814388144881458814688147881488814988150881518815288153881548815588156881578815888159881608816188162881638816488165881668816788168881698817088171881728817388174881758817688177881788817988180881818818288183881848818588186881878818888189881908819188192881938819488195881968819788198881998820088201882028820388204882058820688207882088820988210882118821288213882148821588216882178821888219882208822188222882238822488225882268822788228882298823088231882328823388234882358823688237882388823988240882418824288243882448824588246882478824888249882508825188252882538825488255882568825788258882598826088261882628826388264882658826688267882688826988270882718827288273882748827588276882778827888279882808828188282882838828488285882868828788288882898829088291882928829388294882958829688297882988829988300883018830288303883048830588306883078830888309883108831188312883138831488315883168831788318883198832088321883228832388324883258832688327883288832988330883318833288333883348833588336883378833888339883408834188342883438834488345883468834788348883498835088351883528835388354883558835688357883588835988360883618836288363883648836588366883678836888369883708837188372883738837488375883768837788378883798838088381883828838388384883858838688387883888838988390883918839288393883948839588396883978839888399884008840188402884038840488405884068840788408884098841088411884128841388414884158841688417884188841988420884218842288423884248842588426884278842888429884308843188432884338843488435884368843788438884398844088441884428844388444884458844688447884488844988450884518845288453884548845588456884578845888459884608846188462884638846488465884668846788468884698847088471884728847388474884758847688477884788847988480884818848288483884848848588486884878848888489884908849188492884938849488495884968849788498884998850088501885028850388504885058850688507885088850988510885118851288513885148851588516885178851888519885208852188522885238852488525885268852788528885298853088531885328853388534885358853688537885388853988540885418854288543885448854588546885478854888549885508855188552885538855488555885568855788558885598856088561885628856388564885658856688567885688856988570885718857288573885748857588576885778857888579885808858188582885838858488585885868858788588885898859088591885928859388594885958859688597885988859988600886018860288603886048860588606886078860888609886108861188612886138861488615886168861788618886198862088621886228862388624886258862688627886288862988630886318863288633886348863588636886378863888639886408864188642886438864488645886468864788648886498865088651886528865388654886558865688657886588865988660886618866288663886648866588666886678866888669886708867188672886738867488675886768867788678886798868088681886828868388684886858868688687886888868988690886918869288693886948869588696886978869888699887008870188702887038870488705887068870788708887098871088711887128871388714887158871688717887188871988720887218872288723887248872588726887278872888729887308873188732887338873488735887368873788738887398874088741887428874388744887458874688747887488874988750887518875288753887548875588756887578875888759887608876188762887638876488765887668876788768887698877088771887728877388774887758877688777887788877988780887818878288783887848878588786887878878888789887908879188792887938879488795887968879788798887998880088801888028880388804888058880688807888088880988810888118881288813888148881588816888178881888819888208882188822888238882488825888268882788828888298883088831888328883388834888358883688837888388883988840888418884288843888448884588846888478884888849888508885188852888538885488855888568885788858888598886088861888628886388864888658886688867888688886988870888718887288873888748887588876888778887888879888808888188882888838888488885888868888788888888898889088891888928889388894888958889688897888988889988900889018890288903889048890588906889078890888909889108891188912889138891488915889168891788918889198892088921889228892388924889258892688927889288892988930889318893288933889348893588936889378893888939889408894188942889438894488945889468894788948889498895088951889528895388954889558895688957889588895988960889618896288963889648896588966889678896888969889708897188972889738897488975889768897788978889798898088981889828898388984889858898688987889888898988990889918899288993889948899588996889978899888999890008900189002890038900489005890068900789008890098901089011890128901389014890158901689017890188901989020890218902289023890248902589026890278902889029890308903189032890338903489035890368903789038890398904089041890428904389044890458904689047890488904989050890518905289053890548905589056890578905889059890608906189062890638906489065890668906789068890698907089071890728907389074890758907689077890788907989080890818908289083890848908589086890878908889089890908909189092890938909489095890968909789098890998910089101891028910389104891058910689107891088910989110891118911289113891148911589116891178911889119891208912189122891238912489125891268912789128891298913089131891328913389134891358913689137891388913989140891418914289143891448914589146891478914889149891508915189152891538915489155891568915789158891598916089161891628916389164891658916689167891688916989170891718917289173891748917589176891778917889179891808918189182891838918489185891868918789188891898919089191891928919389194891958919689197891988919989200892018920289203892048920589206892078920889209892108921189212892138921489215892168921789218892198922089221892228922389224892258922689227892288922989230892318923289233892348923589236892378923889239892408924189242892438924489245892468924789248892498925089251892528925389254892558925689257892588925989260892618926289263892648926589266892678926889269892708927189272892738927489275892768927789278892798928089281892828928389284892858928689287892888928989290892918929289293892948929589296892978929889299893008930189302893038930489305893068930789308893098931089311893128931389314893158931689317893188931989320893218932289323893248932589326893278932889329893308933189332893338933489335893368933789338893398934089341893428934389344893458934689347893488934989350893518935289353893548935589356893578935889359893608936189362893638936489365893668936789368893698937089371893728937389374893758937689377893788937989380893818938289383893848938589386893878938889389893908939189392893938939489395893968939789398893998940089401894028940389404894058940689407894088940989410894118941289413894148941589416894178941889419894208942189422894238942489425894268942789428894298943089431894328943389434894358943689437894388943989440894418944289443894448944589446894478944889449894508945189452894538945489455894568945789458894598946089461894628946389464894658946689467894688946989470894718947289473894748947589476894778947889479894808948189482894838948489485894868948789488894898949089491894928949389494894958949689497894988949989500895018950289503895048950589506895078950889509895108951189512895138951489515895168951789518895198952089521895228952389524895258952689527895288952989530895318953289533895348953589536895378953889539895408954189542895438954489545895468954789548895498955089551895528955389554895558955689557895588955989560895618956289563895648956589566895678956889569895708957189572895738957489575895768957789578895798958089581895828958389584895858958689587895888958989590895918959289593895948959589596895978959889599896008960189602896038960489605896068960789608896098961089611896128961389614896158961689617896188961989620896218962289623896248962589626896278962889629896308963189632896338963489635896368963789638896398964089641896428964389644896458964689647896488964989650896518965289653896548965589656896578965889659896608966189662896638966489665896668966789668896698967089671896728967389674896758967689677896788967989680896818968289683896848968589686896878968889689896908969189692896938969489695896968969789698896998970089701897028970389704897058970689707897088970989710897118971289713897148971589716897178971889719897208972189722897238972489725897268972789728897298973089731897328973389734897358973689737897388973989740897418974289743897448974589746897478974889749897508975189752897538975489755897568975789758897598976089761897628976389764897658976689767897688976989770897718977289773897748977589776897778977889779897808978189782897838978489785897868978789788897898979089791897928979389794897958979689797897988979989800898018980289803898048980589806898078980889809898108981189812898138981489815898168981789818898198982089821898228982389824898258982689827898288982989830898318983289833898348983589836898378983889839898408984189842898438984489845898468984789848898498985089851898528985389854898558985689857898588985989860898618986289863898648986589866898678986889869898708987189872898738987489875898768987789878898798988089881898828988389884898858988689887898888988989890898918989289893898948989589896898978989889899899008990189902899038990489905899068990789908899098991089911899128991389914899158991689917899188991989920899218992289923899248992589926899278992889929899308993189932899338993489935899368993789938899398994089941899428994389944899458994689947899488994989950899518995289953899548995589956899578995889959899608996189962899638996489965899668996789968899698997089971899728997389974899758997689977899788997989980899818998289983899848998589986899878998889989899908999189992899938999489995899968999789998899999000090001900029000390004900059000690007900089000990010900119001290013900149001590016900179001890019900209002190022900239002490025900269002790028900299003090031900329003390034900359003690037900389003990040900419004290043900449004590046900479004890049900509005190052900539005490055900569005790058900599006090061900629006390064900659006690067900689006990070900719007290073900749007590076900779007890079900809008190082900839008490085900869008790088900899009090091900929009390094900959009690097900989009990100901019010290103901049010590106901079010890109901109011190112901139011490115901169011790118901199012090121901229012390124901259012690127901289012990130901319013290133901349013590136901379013890139901409014190142901439014490145901469014790148901499015090151901529015390154901559015690157901589015990160901619016290163901649016590166901679016890169901709017190172901739017490175901769017790178901799018090181901829018390184901859018690187901889018990190901919019290193901949019590196901979019890199902009020190202902039020490205902069020790208902099021090211902129021390214902159021690217902189021990220902219022290223902249022590226902279022890229902309023190232902339023490235902369023790238902399024090241902429024390244902459024690247902489024990250902519025290253902549025590256902579025890259902609026190262902639026490265902669026790268902699027090271902729027390274902759027690277902789027990280902819028290283902849028590286902879028890289902909029190292902939029490295902969029790298902999030090301903029030390304903059030690307903089030990310903119031290313903149031590316903179031890319903209032190322903239032490325903269032790328903299033090331903329033390334903359033690337903389033990340903419034290343903449034590346903479034890349903509035190352903539035490355903569035790358903599036090361903629036390364903659036690367903689036990370903719037290373903749037590376903779037890379903809038190382903839038490385903869038790388903899039090391903929039390394903959039690397903989039990400904019040290403904049040590406904079040890409904109041190412904139041490415904169041790418904199042090421904229042390424904259042690427904289042990430904319043290433904349043590436904379043890439904409044190442904439044490445904469044790448904499045090451904529045390454904559045690457904589045990460904619046290463904649046590466904679046890469904709047190472904739047490475904769047790478904799048090481904829048390484904859048690487904889048990490904919049290493904949049590496904979049890499905009050190502905039050490505905069050790508905099051090511905129051390514905159051690517905189051990520905219052290523905249052590526905279052890529905309053190532905339053490535905369053790538905399054090541905429054390544905459054690547905489054990550905519055290553905549055590556905579055890559905609056190562905639056490565905669056790568905699057090571905729057390574905759057690577905789057990580905819058290583905849058590586905879058890589905909059190592905939059490595905969059790598905999060090601906029060390604906059060690607906089060990610906119061290613906149061590616906179061890619906209062190622906239062490625906269062790628906299063090631906329063390634906359063690637906389063990640906419064290643906449064590646906479064890649906509065190652906539065490655906569065790658906599066090661906629066390664906659066690667906689066990670906719067290673906749067590676906779067890679906809068190682906839068490685906869068790688906899069090691906929069390694906959069690697906989069990700907019070290703907049070590706907079070890709907109071190712907139071490715907169071790718907199072090721907229072390724907259072690727907289072990730907319073290733907349073590736907379073890739907409074190742907439074490745907469074790748907499075090751907529075390754907559075690757907589075990760907619076290763907649076590766907679076890769907709077190772907739077490775907769077790778907799078090781907829078390784907859078690787907889078990790907919079290793907949079590796907979079890799908009080190802908039080490805908069080790808908099081090811908129081390814908159081690817908189081990820908219082290823908249082590826908279082890829908309083190832908339083490835908369083790838908399084090841908429084390844908459084690847908489084990850908519085290853908549085590856908579085890859908609086190862908639086490865908669086790868908699087090871908729087390874908759087690877908789087990880908819088290883908849088590886908879088890889908909089190892908939089490895908969089790898908999090090901909029090390904909059090690907909089090990910909119091290913909149091590916909179091890919909209092190922909239092490925909269092790928909299093090931909329093390934909359093690937909389093990940909419094290943909449094590946909479094890949909509095190952909539095490955909569095790958909599096090961909629096390964909659096690967909689096990970909719097290973909749097590976909779097890979909809098190982909839098490985909869098790988909899099090991909929099390994909959099690997909989099991000910019100291003910049100591006910079100891009910109101191012910139101491015910169101791018910199102091021910229102391024910259102691027910289102991030910319103291033910349103591036910379103891039910409104191042910439104491045910469104791048910499105091051910529105391054910559105691057910589105991060910619106291063910649106591066910679106891069910709107191072910739107491075910769107791078910799108091081910829108391084910859108691087910889108991090910919109291093910949109591096910979109891099911009110191102911039110491105911069110791108911099111091111911129111391114911159111691117911189111991120911219112291123911249112591126911279112891129911309113191132911339113491135911369113791138911399114091141911429114391144911459114691147911489114991150911519115291153911549115591156911579115891159911609116191162911639116491165911669116791168911699117091171911729117391174911759117691177911789117991180911819118291183911849118591186911879118891189911909119191192911939119491195911969119791198911999120091201912029120391204912059120691207912089120991210912119121291213912149121591216912179121891219912209122191222912239122491225912269122791228912299123091231912329123391234912359123691237912389123991240912419124291243912449124591246912479124891249912509125191252912539125491255912569125791258912599126091261912629126391264912659126691267912689126991270912719127291273912749127591276912779127891279912809128191282912839128491285912869128791288912899129091291912929129391294912959129691297912989129991300913019130291303913049130591306913079130891309913109131191312913139131491315913169131791318913199132091321913229132391324913259132691327913289132991330913319133291333913349133591336913379133891339913409134191342913439134491345913469134791348913499135091351913529135391354913559135691357913589135991360913619136291363913649136591366913679136891369913709137191372913739137491375913769137791378913799138091381913829138391384913859138691387913889138991390913919139291393913949139591396913979139891399914009140191402914039140491405914069140791408914099141091411914129141391414914159141691417914189141991420914219142291423914249142591426914279142891429914309143191432914339143491435914369143791438914399144091441914429144391444914459144691447914489144991450914519145291453914549145591456914579145891459914609146191462914639146491465914669146791468914699147091471914729147391474914759147691477914789147991480914819148291483914849148591486914879148891489914909149191492914939149491495914969149791498914999150091501915029150391504915059150691507915089150991510915119151291513915149151591516915179151891519915209152191522915239152491525915269152791528915299153091531915329153391534915359153691537915389153991540915419154291543915449154591546915479154891549915509155191552915539155491555915569155791558915599156091561915629156391564915659156691567915689156991570915719157291573915749157591576915779157891579915809158191582915839158491585915869158791588915899159091591915929159391594915959159691597915989159991600916019160291603916049160591606916079160891609916109161191612916139161491615916169161791618916199162091621916229162391624916259162691627916289162991630916319163291633916349163591636916379163891639916409164191642916439164491645916469164791648916499165091651916529165391654916559165691657916589165991660916619166291663916649166591666916679166891669916709167191672916739167491675916769167791678916799168091681916829168391684916859168691687916889168991690916919169291693916949169591696916979169891699917009170191702917039170491705917069170791708917099171091711917129171391714917159171691717917189171991720917219172291723917249172591726917279172891729917309173191732917339173491735917369173791738917399174091741917429174391744917459174691747917489174991750917519175291753917549175591756917579175891759917609176191762917639176491765917669176791768917699177091771917729177391774917759177691777917789177991780917819178291783917849178591786917879178891789917909179191792917939179491795917969179791798917999180091801918029180391804918059180691807918089180991810918119181291813918149181591816918179181891819918209182191822918239182491825918269182791828918299183091831918329183391834918359183691837918389183991840918419184291843918449184591846918479184891849918509185191852918539185491855918569185791858918599186091861918629186391864918659186691867918689186991870918719187291873918749187591876918779187891879918809188191882918839188491885918869188791888918899189091891918929189391894918959189691897918989189991900919019190291903919049190591906919079190891909919109191191912919139191491915919169191791918919199192091921919229192391924919259192691927919289192991930919319193291933919349193591936919379193891939919409194191942919439194491945919469194791948919499195091951919529195391954919559195691957919589195991960919619196291963919649196591966919679196891969919709197191972919739197491975919769197791978919799198091981919829198391984919859198691987919889198991990919919199291993919949199591996919979199891999920009200192002920039200492005920069200792008920099201092011920129201392014920159201692017920189201992020920219202292023920249202592026920279202892029920309203192032920339203492035920369203792038920399204092041920429204392044920459204692047920489204992050920519205292053920549205592056920579205892059920609206192062920639206492065920669206792068920699207092071920729207392074920759207692077920789207992080920819208292083920849208592086920879208892089920909209192092920939209492095920969209792098920999210092101921029210392104921059210692107921089210992110921119211292113921149211592116921179211892119921209212192122921239212492125921269212792128921299213092131921329213392134921359213692137921389213992140921419214292143921449214592146921479214892149921509215192152921539215492155921569215792158921599216092161921629216392164921659216692167921689216992170921719217292173921749217592176921779217892179921809218192182921839218492185921869218792188921899219092191921929219392194921959219692197921989219992200922019220292203922049220592206922079220892209922109221192212922139221492215922169221792218922199222092221922229222392224922259222692227922289222992230922319223292233922349223592236922379223892239922409224192242922439224492245922469224792248922499225092251922529225392254922559225692257922589225992260922619226292263922649226592266922679226892269922709227192272922739227492275922769227792278922799228092281922829228392284922859228692287922889228992290922919229292293922949229592296922979229892299923009230192302923039230492305923069230792308923099231092311923129231392314923159231692317923189231992320923219232292323923249232592326923279232892329923309233192332923339233492335923369233792338923399234092341923429234392344923459234692347923489234992350923519235292353923549235592356923579235892359923609236192362923639236492365923669236792368923699237092371923729237392374923759237692377923789237992380923819238292383923849238592386923879238892389923909239192392923939239492395923969239792398923999240092401924029240392404924059240692407924089240992410924119241292413924149241592416924179241892419924209242192422924239242492425924269242792428924299243092431924329243392434924359243692437924389243992440924419244292443924449244592446924479244892449924509245192452924539245492455924569245792458924599246092461924629246392464924659246692467924689246992470924719247292473924749247592476924779247892479924809248192482924839248492485924869248792488924899249092491924929249392494924959249692497924989249992500925019250292503925049250592506925079250892509925109251192512925139251492515925169251792518925199252092521925229252392524925259252692527925289252992530925319253292533925349253592536925379253892539925409254192542925439254492545925469254792548925499255092551925529255392554925559255692557925589255992560925619256292563925649256592566925679256892569925709257192572925739257492575925769257792578925799258092581925829258392584925859258692587925889258992590925919259292593925949259592596925979259892599926009260192602926039260492605926069260792608926099261092611926129261392614926159261692617926189261992620926219262292623926249262592626926279262892629926309263192632926339263492635926369263792638926399264092641926429264392644926459264692647926489264992650926519265292653926549265592656926579265892659926609266192662926639266492665926669266792668926699267092671926729267392674926759267692677926789267992680926819268292683926849268592686926879268892689926909269192692926939269492695926969269792698926999270092701927029270392704927059270692707927089270992710927119271292713927149271592716927179271892719927209272192722927239272492725927269272792728927299273092731927329273392734927359273692737927389273992740927419274292743927449274592746927479274892749927509275192752927539275492755927569275792758927599276092761927629276392764927659276692767927689276992770927719277292773927749277592776927779277892779927809278192782927839278492785927869278792788927899279092791927929279392794927959279692797927989279992800928019280292803928049280592806928079280892809928109281192812928139281492815928169281792818928199282092821928229282392824928259282692827928289282992830928319283292833928349283592836928379283892839928409284192842928439284492845928469284792848928499285092851928529285392854928559285692857928589285992860928619286292863928649286592866928679286892869928709287192872928739287492875928769287792878928799288092881928829288392884928859288692887928889288992890928919289292893928949289592896928979289892899929009290192902929039290492905929069290792908929099291092911929129291392914929159291692917929189291992920929219292292923929249292592926929279292892929929309293192932929339293492935929369293792938929399294092941929429294392944929459294692947929489294992950929519295292953929549295592956929579295892959929609296192962929639296492965929669296792968929699297092971929729297392974929759297692977929789297992980929819298292983929849298592986929879298892989929909299192992929939299492995929969299792998929999300093001930029300393004930059300693007930089300993010930119301293013930149301593016930179301893019930209302193022930239302493025930269302793028930299303093031930329303393034930359303693037930389303993040930419304293043930449304593046930479304893049930509305193052930539305493055930569305793058930599306093061930629306393064930659306693067930689306993070930719307293073930749307593076930779307893079930809308193082930839308493085930869308793088930899309093091930929309393094930959309693097930989309993100931019310293103931049310593106931079310893109931109311193112931139311493115931169311793118931199312093121931229312393124931259312693127931289312993130931319313293133931349313593136931379313893139931409314193142931439314493145931469314793148931499315093151931529315393154931559315693157931589315993160931619316293163931649316593166931679316893169931709317193172931739317493175931769317793178931799318093181931829318393184931859318693187931889318993190931919319293193931949319593196931979319893199932009320193202932039320493205932069320793208932099321093211932129321393214932159321693217932189321993220932219322293223932249322593226932279322893229932309323193232932339323493235932369323793238932399324093241932429324393244932459324693247932489324993250932519325293253932549325593256932579325893259932609326193262932639326493265932669326793268932699327093271932729327393274932759327693277932789327993280932819328293283932849328593286932879328893289932909329193292932939329493295932969329793298932999330093301933029330393304933059330693307933089330993310933119331293313933149331593316933179331893319933209332193322933239332493325933269332793328933299333093331933329333393334933359333693337933389333993340933419334293343933449334593346933479334893349933509335193352933539335493355933569335793358933599336093361933629336393364933659336693367933689336993370933719337293373933749337593376933779337893379933809338193382933839338493385933869338793388933899339093391933929339393394933959339693397933989339993400934019340293403934049340593406934079340893409934109341193412934139341493415934169341793418934199342093421934229342393424934259342693427934289342993430934319343293433934349343593436934379343893439934409344193442934439344493445934469344793448934499345093451934529345393454934559345693457934589345993460934619346293463934649346593466934679346893469934709347193472934739347493475934769347793478934799348093481934829348393484934859348693487934889348993490934919349293493934949349593496934979349893499935009350193502935039350493505935069350793508935099351093511935129351393514935159351693517935189351993520935219352293523935249352593526935279352893529935309353193532935339353493535935369353793538935399354093541935429354393544935459354693547935489354993550935519355293553935549355593556935579355893559935609356193562935639356493565935669356793568935699357093571935729357393574935759357693577935789357993580935819358293583935849358593586935879358893589935909359193592935939359493595935969359793598935999360093601936029360393604936059360693607936089360993610936119361293613936149361593616936179361893619936209362193622936239362493625936269362793628936299363093631936329363393634936359363693637936389363993640936419364293643936449364593646936479364893649936509365193652936539365493655936569365793658936599366093661936629366393664936659366693667936689366993670936719367293673936749367593676936779367893679936809368193682936839368493685936869368793688936899369093691936929369393694936959369693697936989369993700937019370293703937049370593706937079370893709937109371193712937139371493715937169371793718937199372093721937229372393724937259372693727937289372993730937319373293733937349373593736937379373893739937409374193742937439374493745937469374793748937499375093751937529375393754937559375693757937589375993760937619376293763937649376593766937679376893769937709377193772937739377493775937769377793778937799378093781937829378393784937859378693787937889378993790937919379293793937949379593796937979379893799938009380193802938039380493805938069380793808938099381093811938129381393814938159381693817938189381993820938219382293823938249382593826938279382893829938309383193832938339383493835938369383793838938399384093841938429384393844938459384693847938489384993850938519385293853938549385593856938579385893859938609386193862938639386493865938669386793868938699387093871938729387393874938759387693877938789387993880938819388293883938849388593886938879388893889938909389193892938939389493895938969389793898938999390093901939029390393904939059390693907939089390993910939119391293913939149391593916939179391893919939209392193922939239392493925939269392793928939299393093931939329393393934939359393693937939389393993940939419394293943939449394593946939479394893949939509395193952939539395493955939569395793958939599396093961939629396393964939659396693967939689396993970939719397293973939749397593976939779397893979939809398193982939839398493985939869398793988939899399093991939929399393994939959399693997939989399994000940019400294003940049400594006940079400894009940109401194012940139401494015940169401794018940199402094021940229402394024940259402694027940289402994030940319403294033940349403594036940379403894039940409404194042940439404494045940469404794048940499405094051940529405394054940559405694057940589405994060940619406294063940649406594066940679406894069940709407194072940739407494075940769407794078940799408094081940829408394084940859408694087940889408994090940919409294093940949409594096940979409894099941009410194102941039410494105941069410794108941099411094111941129411394114941159411694117941189411994120941219412294123941249412594126941279412894129941309413194132941339413494135941369413794138941399414094141941429414394144941459414694147941489414994150941519415294153941549415594156941579415894159941609416194162941639416494165941669416794168941699417094171941729417394174941759417694177941789417994180941819418294183941849418594186941879418894189941909419194192941939419494195941969419794198941999420094201942029420394204942059420694207942089420994210942119421294213942149421594216942179421894219942209422194222942239422494225942269422794228942299423094231942329423394234942359423694237942389423994240942419424294243942449424594246942479424894249942509425194252942539425494255942569425794258942599426094261942629426394264942659426694267942689426994270942719427294273942749427594276942779427894279942809428194282942839428494285942869428794288942899429094291942929429394294942959429694297942989429994300 | 
							
- ../build/bt6702/stm32bt6702/stm32bt6702.elf:     file format elf32-littlearm
 
- Sections:
 
- Idx Name          Size      VMA       LMA       File off  Algn
 
-   0 .isr_vector   00000188  08020000  08020000  00008000  2**0
 
-                   CONTENTS, ALLOC, LOAD, READONLY, DATA
 
-   1 .text         00025a6c  08020188  08020188  00008188  2**3
 
-                   CONTENTS, ALLOC, LOAD, READONLY, CODE
 
-   2 .ARM          00000008  08045bf4  08045bf4  0002dbf4  2**2
 
-                   CONTENTS, ALLOC, LOAD, READONLY, DATA
 
-   3 .init_array   00000004  08045bfc  08045bfc  0002dbfc  2**2
 
-                   CONTENTS, ALLOC, LOAD, DATA
 
-   4 .fini_array   00000004  08045c00  08045c00  0002dc00  2**2
 
-                   CONTENTS, ALLOC, LOAD, DATA
 
-   5 .data         00000ab4  20000000  08045c04  00030000  2**2
 
-                   CONTENTS, ALLOC, LOAD, DATA
 
-   6 .fill         00079944  080466b8  080466b8  000366b8  2**0
 
-                   CONTENTS, ALLOC, LOAD, DATA
 
-   7 .crc          00000004  080bfffc  080bfffc  000afffc  2**2
 
-                   CONTENTS, ALLOC, LOAD, DATA
 
-   8 .bss          00012f98  20000ab4  080466b8  000b0ab4  2**2
 
-                   ALLOC
 
-   9 ._user_heap_stack 00000200  20013a4c  08059650  000b0ab4  2**0
 
-                   ALLOC
 
-  10 .memory_b1_text 0000f000  10000000  10000000  000b0000  2**0
 
-                   ALLOC
 
-  11 .ARM.attributes 0000002f  00000000  00000000  000b0000  2**0
 
-                   CONTENTS, READONLY
 
-  12 .debug_info   00055307  00000000  00000000  000b002f  2**0
 
-                   CONTENTS, READONLY, DEBUGGING
 
-  13 .debug_abbrev 0000d6d4  00000000  00000000  00105336  2**0
 
-                   CONTENTS, READONLY, DEBUGGING
 
-  14 .debug_loc    0002810c  00000000  00000000  00112a0a  2**0
 
-                   CONTENTS, READONLY, DEBUGGING
 
-  15 .debug_aranges 000032e0  00000000  00000000  0013ab18  2**3
 
-                   CONTENTS, READONLY, DEBUGGING
 
-  16 .debug_ranges 00003c40  00000000  00000000  0013ddf8  2**3
 
-                   CONTENTS, READONLY, DEBUGGING
 
-  17 .debug_macro  00021afa  00000000  00000000  00141a38  2**0
 
-                   CONTENTS, READONLY, DEBUGGING
 
-  18 .debug_line   00028106  00000000  00000000  00163532  2**0
 
-                   CONTENTS, READONLY, DEBUGGING
 
-  19 .debug_str    000823cc  00000000  00000000  0018b638  2**0
 
-                   CONTENTS, READONLY, DEBUGGING
 
-  20 .comment      00000030  00000000  00000000  0020da04  2**0
 
-                   CONTENTS, READONLY
 
-  21 .debug_frame  000089c0  00000000  00000000  0020da34  2**2
 
-                   CONTENTS, READONLY, DEBUGGING
 
- Disassembly of section .text:
 
- 08020188 <deregister_tm_clones>:
 
-  8020188:	b508      	push	{r3, lr}
 
-  802018a:	f640 20b4 	movw	r0, #2740	; 0xab4
 
-  802018e:	4b07      	ldr	r3, [pc, #28]	; (80201ac <deregister_tm_clones+0x24>)
 
-  8020190:	f2c2 0000 	movt	r0, #8192	; 0x2000
 
-  8020194:	1a1b      	subs	r3, r3, r0
 
-  8020196:	2b06      	cmp	r3, #6
 
-  8020198:	d800      	bhi.n	802019c <deregister_tm_clones+0x14>
 
-  802019a:	bd08      	pop	{r3, pc}
 
-  802019c:	f240 0300 	movw	r3, #0
 
-  80201a0:	f2c0 0300 	movt	r3, #0
 
-  80201a4:	2b00      	cmp	r3, #0
 
-  80201a6:	d0f8      	beq.n	802019a <deregister_tm_clones+0x12>
 
-  80201a8:	4798      	blx	r3
 
-  80201aa:	e7f6      	b.n	802019a <deregister_tm_clones+0x12>
 
-  80201ac:	20000ab7 	.word	0x20000ab7
 
- 080201b0 <register_tm_clones>:
 
-  80201b0:	b508      	push	{r3, lr}
 
-  80201b2:	f640 20b4 	movw	r0, #2740	; 0xab4
 
-  80201b6:	f640 23b4 	movw	r3, #2740	; 0xab4
 
-  80201ba:	f2c2 0000 	movt	r0, #8192	; 0x2000
 
-  80201be:	f2c2 0300 	movt	r3, #8192	; 0x2000
 
-  80201c2:	1a1b      	subs	r3, r3, r0
 
-  80201c4:	109b      	asrs	r3, r3, #2
 
-  80201c6:	eb03 73d3 	add.w	r3, r3, r3, lsr #31
 
-  80201ca:	1059      	asrs	r1, r3, #1
 
-  80201cc:	d100      	bne.n	80201d0 <register_tm_clones+0x20>
 
-  80201ce:	bd08      	pop	{r3, pc}
 
-  80201d0:	f240 0200 	movw	r2, #0
 
-  80201d4:	f2c0 0200 	movt	r2, #0
 
-  80201d8:	2a00      	cmp	r2, #0
 
-  80201da:	d0f8      	beq.n	80201ce <register_tm_clones+0x1e>
 
-  80201dc:	4790      	blx	r2
 
-  80201de:	e7f6      	b.n	80201ce <register_tm_clones+0x1e>
 
- 080201e0 <__do_global_dtors_aux>:
 
-  80201e0:	b510      	push	{r4, lr}
 
-  80201e2:	f640 24b4 	movw	r4, #2740	; 0xab4
 
-  80201e6:	f2c2 0400 	movt	r4, #8192	; 0x2000
 
-  80201ea:	7823      	ldrb	r3, [r4, #0]
 
-  80201ec:	b973      	cbnz	r3, 802020c <__do_global_dtors_aux+0x2c>
 
-  80201ee:	f7ff ffcb 	bl	8020188 <deregister_tm_clones>
 
-  80201f2:	f240 0300 	movw	r3, #0
 
-  80201f6:	f2c0 0300 	movt	r3, #0
 
-  80201fa:	b12b      	cbz	r3, 8020208 <__do_global_dtors_aux+0x28>
 
-  80201fc:	f645 30dc 	movw	r0, #23516	; 0x5bdc
 
-  8020200:	f6c0 0004 	movt	r0, #2052	; 0x804
 
-  8020204:	f3af 8000 	nop.w
 
-  8020208:	2301      	movs	r3, #1
 
-  802020a:	7023      	strb	r3, [r4, #0]
 
-  802020c:	bd10      	pop	{r4, pc}
 
-  802020e:	bf00      	nop
 
- 08020210 <frame_dummy>:
 
-  8020210:	b508      	push	{r3, lr}
 
-  8020212:	f240 0300 	movw	r3, #0
 
-  8020216:	f2c0 0300 	movt	r3, #0
 
-  802021a:	b14b      	cbz	r3, 8020230 <frame_dummy+0x20>
 
-  802021c:	f645 30dc 	movw	r0, #23516	; 0x5bdc
 
-  8020220:	f640 21b8 	movw	r1, #2744	; 0xab8
 
-  8020224:	f6c0 0004 	movt	r0, #2052	; 0x804
 
-  8020228:	f2c2 0100 	movt	r1, #8192	; 0x2000
 
-  802022c:	f3af 8000 	nop.w
 
-  8020230:	f640 20b4 	movw	r0, #2740	; 0xab4
 
-  8020234:	f2c2 0000 	movt	r0, #8192	; 0x2000
 
-  8020238:	6803      	ldr	r3, [r0, #0]
 
-  802023a:	b12b      	cbz	r3, 8020248 <frame_dummy+0x38>
 
-  802023c:	f240 0300 	movw	r3, #0
 
-  8020240:	f2c0 0300 	movt	r3, #0
 
-  8020244:	b103      	cbz	r3, 8020248 <frame_dummy+0x38>
 
-  8020246:	4798      	blx	r3
 
-  8020248:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
 
-  802024c:	f7ff bfb0 	b.w	80201b0 <register_tm_clones>
 
- 08020250 <__aeabi_drsub>:
 
-  8020250:	f081 4100 	eor.w	r1, r1, #2147483648	; 0x80000000
 
-  8020254:	e002      	b.n	802025c <__adddf3>
 
-  8020256:	bf00      	nop
 
- 08020258 <__aeabi_dsub>:
 
-  8020258:	f083 4300 	eor.w	r3, r3, #2147483648	; 0x80000000
 
- 0802025c <__adddf3>:
 
-  802025c:	b530      	push	{r4, r5, lr}
 
-  802025e:	ea4f 0441 	mov.w	r4, r1, lsl #1
 
-  8020262:	ea4f 0543 	mov.w	r5, r3, lsl #1
 
-  8020266:	ea94 0f05 	teq	r4, r5
 
-  802026a:	bf08      	it	eq
 
-  802026c:	ea90 0f02 	teqeq	r0, r2
 
-  8020270:	bf1f      	itttt	ne
 
-  8020272:	ea54 0c00 	orrsne.w	ip, r4, r0
 
-  8020276:	ea55 0c02 	orrsne.w	ip, r5, r2
 
-  802027a:	ea7f 5c64 	mvnsne.w	ip, r4, asr #21
 
-  802027e:	ea7f 5c65 	mvnsne.w	ip, r5, asr #21
 
-  8020282:	f000 80e2 	beq.w	802044a <__adddf3+0x1ee>
 
-  8020286:	ea4f 5454 	mov.w	r4, r4, lsr #21
 
-  802028a:	ebd4 5555 	rsbs	r5, r4, r5, lsr #21
 
-  802028e:	bfb8      	it	lt
 
-  8020290:	426d      	neglt	r5, r5
 
-  8020292:	dd0c      	ble.n	80202ae <__adddf3+0x52>
 
-  8020294:	442c      	add	r4, r5
 
-  8020296:	ea80 0202 	eor.w	r2, r0, r2
 
-  802029a:	ea81 0303 	eor.w	r3, r1, r3
 
-  802029e:	ea82 0000 	eor.w	r0, r2, r0
 
-  80202a2:	ea83 0101 	eor.w	r1, r3, r1
 
-  80202a6:	ea80 0202 	eor.w	r2, r0, r2
 
-  80202aa:	ea81 0303 	eor.w	r3, r1, r3
 
-  80202ae:	2d36      	cmp	r5, #54	; 0x36
 
-  80202b0:	bf88      	it	hi
 
-  80202b2:	bd30      	pophi	{r4, r5, pc}
 
-  80202b4:	f011 4f00 	tst.w	r1, #2147483648	; 0x80000000
 
-  80202b8:	ea4f 3101 	mov.w	r1, r1, lsl #12
 
-  80202bc:	f44f 1c80 	mov.w	ip, #1048576	; 0x100000
 
-  80202c0:	ea4c 3111 	orr.w	r1, ip, r1, lsr #12
 
-  80202c4:	d002      	beq.n	80202cc <__adddf3+0x70>
 
-  80202c6:	4240      	negs	r0, r0
 
-  80202c8:	eb61 0141 	sbc.w	r1, r1, r1, lsl #1
 
-  80202cc:	f013 4f00 	tst.w	r3, #2147483648	; 0x80000000
 
-  80202d0:	ea4f 3303 	mov.w	r3, r3, lsl #12
 
-  80202d4:	ea4c 3313 	orr.w	r3, ip, r3, lsr #12
 
-  80202d8:	d002      	beq.n	80202e0 <__adddf3+0x84>
 
-  80202da:	4252      	negs	r2, r2
 
-  80202dc:	eb63 0343 	sbc.w	r3, r3, r3, lsl #1
 
-  80202e0:	ea94 0f05 	teq	r4, r5
 
-  80202e4:	f000 80a7 	beq.w	8020436 <__adddf3+0x1da>
 
-  80202e8:	f1a4 0401 	sub.w	r4, r4, #1
 
-  80202ec:	f1d5 0e20 	rsbs	lr, r5, #32
 
-  80202f0:	db0d      	blt.n	802030e <__adddf3+0xb2>
 
-  80202f2:	fa02 fc0e 	lsl.w	ip, r2, lr
 
-  80202f6:	fa22 f205 	lsr.w	r2, r2, r5
 
-  80202fa:	1880      	adds	r0, r0, r2
 
-  80202fc:	f141 0100 	adc.w	r1, r1, #0
 
-  8020300:	fa03 f20e 	lsl.w	r2, r3, lr
 
-  8020304:	1880      	adds	r0, r0, r2
 
-  8020306:	fa43 f305 	asr.w	r3, r3, r5
 
-  802030a:	4159      	adcs	r1, r3
 
-  802030c:	e00e      	b.n	802032c <__adddf3+0xd0>
 
-  802030e:	f1a5 0520 	sub.w	r5, r5, #32
 
-  8020312:	f10e 0e20 	add.w	lr, lr, #32
 
-  8020316:	2a01      	cmp	r2, #1
 
-  8020318:	fa03 fc0e 	lsl.w	ip, r3, lr
 
-  802031c:	bf28      	it	cs
 
-  802031e:	f04c 0c02 	orrcs.w	ip, ip, #2
 
-  8020322:	fa43 f305 	asr.w	r3, r3, r5
 
-  8020326:	18c0      	adds	r0, r0, r3
 
-  8020328:	eb51 71e3 	adcs.w	r1, r1, r3, asr #31
 
-  802032c:	f001 4500 	and.w	r5, r1, #2147483648	; 0x80000000
 
-  8020330:	d507      	bpl.n	8020342 <__adddf3+0xe6>
 
-  8020332:	f04f 0e00 	mov.w	lr, #0
 
-  8020336:	f1dc 0c00 	rsbs	ip, ip, #0
 
-  802033a:	eb7e 0000 	sbcs.w	r0, lr, r0
 
-  802033e:	eb6e 0101 	sbc.w	r1, lr, r1
 
-  8020342:	f5b1 1f80 	cmp.w	r1, #1048576	; 0x100000
 
-  8020346:	d31b      	bcc.n	8020380 <__adddf3+0x124>
 
-  8020348:	f5b1 1f00 	cmp.w	r1, #2097152	; 0x200000
 
-  802034c:	d30c      	bcc.n	8020368 <__adddf3+0x10c>
 
-  802034e:	0849      	lsrs	r1, r1, #1
 
-  8020350:	ea5f 0030 	movs.w	r0, r0, rrx
 
-  8020354:	ea4f 0c3c 	mov.w	ip, ip, rrx
 
-  8020358:	f104 0401 	add.w	r4, r4, #1
 
-  802035c:	ea4f 5244 	mov.w	r2, r4, lsl #21
 
-  8020360:	f512 0f80 	cmn.w	r2, #4194304	; 0x400000
 
-  8020364:	f080 809a 	bcs.w	802049c <__adddf3+0x240>
 
-  8020368:	f1bc 4f00 	cmp.w	ip, #2147483648	; 0x80000000
 
-  802036c:	bf08      	it	eq
 
-  802036e:	ea5f 0c50 	movseq.w	ip, r0, lsr #1
 
-  8020372:	f150 0000 	adcs.w	r0, r0, #0
 
-  8020376:	eb41 5104 	adc.w	r1, r1, r4, lsl #20
 
-  802037a:	ea41 0105 	orr.w	r1, r1, r5
 
-  802037e:	bd30      	pop	{r4, r5, pc}
 
-  8020380:	ea5f 0c4c 	movs.w	ip, ip, lsl #1
 
-  8020384:	4140      	adcs	r0, r0
 
-  8020386:	eb41 0101 	adc.w	r1, r1, r1
 
-  802038a:	f411 1f80 	tst.w	r1, #1048576	; 0x100000
 
-  802038e:	f1a4 0401 	sub.w	r4, r4, #1
 
-  8020392:	d1e9      	bne.n	8020368 <__adddf3+0x10c>
 
-  8020394:	f091 0f00 	teq	r1, #0
 
-  8020398:	bf04      	itt	eq
 
-  802039a:	4601      	moveq	r1, r0
 
-  802039c:	2000      	moveq	r0, #0
 
-  802039e:	fab1 f381 	clz	r3, r1
 
-  80203a2:	bf08      	it	eq
 
-  80203a4:	3320      	addeq	r3, #32
 
-  80203a6:	f1a3 030b 	sub.w	r3, r3, #11
 
-  80203aa:	f1b3 0220 	subs.w	r2, r3, #32
 
-  80203ae:	da0c      	bge.n	80203ca <__adddf3+0x16e>
 
-  80203b0:	320c      	adds	r2, #12
 
-  80203b2:	dd08      	ble.n	80203c6 <__adddf3+0x16a>
 
-  80203b4:	f102 0c14 	add.w	ip, r2, #20
 
-  80203b8:	f1c2 020c 	rsb	r2, r2, #12
 
-  80203bc:	fa01 f00c 	lsl.w	r0, r1, ip
 
-  80203c0:	fa21 f102 	lsr.w	r1, r1, r2
 
-  80203c4:	e00c      	b.n	80203e0 <__adddf3+0x184>
 
-  80203c6:	f102 0214 	add.w	r2, r2, #20
 
-  80203ca:	bfd8      	it	le
 
-  80203cc:	f1c2 0c20 	rsble	ip, r2, #32
 
-  80203d0:	fa01 f102 	lsl.w	r1, r1, r2
 
-  80203d4:	fa20 fc0c 	lsr.w	ip, r0, ip
 
-  80203d8:	bfdc      	itt	le
 
-  80203da:	ea41 010c 	orrle.w	r1, r1, ip
 
-  80203de:	4090      	lslle	r0, r2
 
-  80203e0:	1ae4      	subs	r4, r4, r3
 
-  80203e2:	bfa2      	ittt	ge
 
-  80203e4:	eb01 5104 	addge.w	r1, r1, r4, lsl #20
 
-  80203e8:	4329      	orrge	r1, r5
 
-  80203ea:	bd30      	popge	{r4, r5, pc}
 
-  80203ec:	ea6f 0404 	mvn.w	r4, r4
 
-  80203f0:	3c1f      	subs	r4, #31
 
-  80203f2:	da1c      	bge.n	802042e <__adddf3+0x1d2>
 
-  80203f4:	340c      	adds	r4, #12
 
-  80203f6:	dc0e      	bgt.n	8020416 <__adddf3+0x1ba>
 
-  80203f8:	f104 0414 	add.w	r4, r4, #20
 
-  80203fc:	f1c4 0220 	rsb	r2, r4, #32
 
-  8020400:	fa20 f004 	lsr.w	r0, r0, r4
 
-  8020404:	fa01 f302 	lsl.w	r3, r1, r2
 
-  8020408:	ea40 0003 	orr.w	r0, r0, r3
 
-  802040c:	fa21 f304 	lsr.w	r3, r1, r4
 
-  8020410:	ea45 0103 	orr.w	r1, r5, r3
 
-  8020414:	bd30      	pop	{r4, r5, pc}
 
-  8020416:	f1c4 040c 	rsb	r4, r4, #12
 
-  802041a:	f1c4 0220 	rsb	r2, r4, #32
 
-  802041e:	fa20 f002 	lsr.w	r0, r0, r2
 
-  8020422:	fa01 f304 	lsl.w	r3, r1, r4
 
-  8020426:	ea40 0003 	orr.w	r0, r0, r3
 
-  802042a:	4629      	mov	r1, r5
 
-  802042c:	bd30      	pop	{r4, r5, pc}
 
-  802042e:	fa21 f004 	lsr.w	r0, r1, r4
 
-  8020432:	4629      	mov	r1, r5
 
-  8020434:	bd30      	pop	{r4, r5, pc}
 
-  8020436:	f094 0f00 	teq	r4, #0
 
-  802043a:	f483 1380 	eor.w	r3, r3, #1048576	; 0x100000
 
-  802043e:	bf06      	itte	eq
 
-  8020440:	f481 1180 	eoreq.w	r1, r1, #1048576	; 0x100000
 
-  8020444:	3401      	addeq	r4, #1
 
-  8020446:	3d01      	subne	r5, #1
 
-  8020448:	e74e      	b.n	80202e8 <__adddf3+0x8c>
 
-  802044a:	ea7f 5c64 	mvns.w	ip, r4, asr #21
 
-  802044e:	bf18      	it	ne
 
-  8020450:	ea7f 5c65 	mvnsne.w	ip, r5, asr #21
 
-  8020454:	d029      	beq.n	80204aa <__adddf3+0x24e>
 
-  8020456:	ea94 0f05 	teq	r4, r5
 
-  802045a:	bf08      	it	eq
 
-  802045c:	ea90 0f02 	teqeq	r0, r2
 
-  8020460:	d005      	beq.n	802046e <__adddf3+0x212>
 
-  8020462:	ea54 0c00 	orrs.w	ip, r4, r0
 
-  8020466:	bf04      	itt	eq
 
-  8020468:	4619      	moveq	r1, r3
 
-  802046a:	4610      	moveq	r0, r2
 
-  802046c:	bd30      	pop	{r4, r5, pc}
 
-  802046e:	ea91 0f03 	teq	r1, r3
 
-  8020472:	bf1e      	ittt	ne
 
-  8020474:	2100      	movne	r1, #0
 
-  8020476:	2000      	movne	r0, #0
 
-  8020478:	bd30      	popne	{r4, r5, pc}
 
-  802047a:	ea5f 5c54 	movs.w	ip, r4, lsr #21
 
-  802047e:	d105      	bne.n	802048c <__adddf3+0x230>
 
-  8020480:	0040      	lsls	r0, r0, #1
 
-  8020482:	4149      	adcs	r1, r1
 
-  8020484:	bf28      	it	cs
 
-  8020486:	f041 4100 	orrcs.w	r1, r1, #2147483648	; 0x80000000
 
-  802048a:	bd30      	pop	{r4, r5, pc}
 
-  802048c:	f514 0480 	adds.w	r4, r4, #4194304	; 0x400000
 
-  8020490:	bf3c      	itt	cc
 
-  8020492:	f501 1180 	addcc.w	r1, r1, #1048576	; 0x100000
 
-  8020496:	bd30      	popcc	{r4, r5, pc}
 
-  8020498:	f001 4500 	and.w	r5, r1, #2147483648	; 0x80000000
 
-  802049c:	f045 41fe 	orr.w	r1, r5, #2130706432	; 0x7f000000
 
-  80204a0:	f441 0170 	orr.w	r1, r1, #15728640	; 0xf00000
 
-  80204a4:	f04f 0000 	mov.w	r0, #0
 
-  80204a8:	bd30      	pop	{r4, r5, pc}
 
-  80204aa:	ea7f 5c64 	mvns.w	ip, r4, asr #21
 
-  80204ae:	bf1a      	itte	ne
 
-  80204b0:	4619      	movne	r1, r3
 
-  80204b2:	4610      	movne	r0, r2
 
-  80204b4:	ea7f 5c65 	mvnseq.w	ip, r5, asr #21
 
-  80204b8:	bf1c      	itt	ne
 
-  80204ba:	460b      	movne	r3, r1
 
-  80204bc:	4602      	movne	r2, r0
 
-  80204be:	ea50 3401 	orrs.w	r4, r0, r1, lsl #12
 
-  80204c2:	bf06      	itte	eq
 
-  80204c4:	ea52 3503 	orrseq.w	r5, r2, r3, lsl #12
 
-  80204c8:	ea91 0f03 	teqeq	r1, r3
 
-  80204cc:	f441 2100 	orrne.w	r1, r1, #524288	; 0x80000
 
-  80204d0:	bd30      	pop	{r4, r5, pc}
 
-  80204d2:	bf00      	nop
 
- 080204d4 <__aeabi_ui2d>:
 
-  80204d4:	f090 0f00 	teq	r0, #0
 
-  80204d8:	bf04      	itt	eq
 
-  80204da:	2100      	moveq	r1, #0
 
-  80204dc:	4770      	bxeq	lr
 
-  80204de:	b530      	push	{r4, r5, lr}
 
-  80204e0:	f44f 6480 	mov.w	r4, #1024	; 0x400
 
-  80204e4:	f104 0432 	add.w	r4, r4, #50	; 0x32
 
-  80204e8:	f04f 0500 	mov.w	r5, #0
 
-  80204ec:	f04f 0100 	mov.w	r1, #0
 
-  80204f0:	e750      	b.n	8020394 <__adddf3+0x138>
 
-  80204f2:	bf00      	nop
 
- 080204f4 <__aeabi_i2d>:
 
-  80204f4:	f090 0f00 	teq	r0, #0
 
-  80204f8:	bf04      	itt	eq
 
-  80204fa:	2100      	moveq	r1, #0
 
-  80204fc:	4770      	bxeq	lr
 
-  80204fe:	b530      	push	{r4, r5, lr}
 
-  8020500:	f44f 6480 	mov.w	r4, #1024	; 0x400
 
-  8020504:	f104 0432 	add.w	r4, r4, #50	; 0x32
 
-  8020508:	f010 4500 	ands.w	r5, r0, #2147483648	; 0x80000000
 
-  802050c:	bf48      	it	mi
 
-  802050e:	4240      	negmi	r0, r0
 
-  8020510:	f04f 0100 	mov.w	r1, #0
 
-  8020514:	e73e      	b.n	8020394 <__adddf3+0x138>
 
-  8020516:	bf00      	nop
 
- 08020518 <__aeabi_f2d>:
 
-  8020518:	0042      	lsls	r2, r0, #1
 
-  802051a:	ea4f 01e2 	mov.w	r1, r2, asr #3
 
-  802051e:	ea4f 0131 	mov.w	r1, r1, rrx
 
-  8020522:	ea4f 7002 	mov.w	r0, r2, lsl #28
 
-  8020526:	bf1f      	itttt	ne
 
-  8020528:	f012 437f 	andsne.w	r3, r2, #4278190080	; 0xff000000
 
-  802052c:	f093 4f7f 	teqne	r3, #4278190080	; 0xff000000
 
-  8020530:	f081 5160 	eorne.w	r1, r1, #939524096	; 0x38000000
 
-  8020534:	4770      	bxne	lr
 
-  8020536:	f092 0f00 	teq	r2, #0
 
-  802053a:	bf14      	ite	ne
 
-  802053c:	f093 4f7f 	teqne	r3, #4278190080	; 0xff000000
 
-  8020540:	4770      	bxeq	lr
 
-  8020542:	b530      	push	{r4, r5, lr}
 
-  8020544:	f44f 7460 	mov.w	r4, #896	; 0x380
 
-  8020548:	f001 4500 	and.w	r5, r1, #2147483648	; 0x80000000
 
-  802054c:	f021 4100 	bic.w	r1, r1, #2147483648	; 0x80000000
 
-  8020550:	e720      	b.n	8020394 <__adddf3+0x138>
 
-  8020552:	bf00      	nop
 
- 08020554 <__aeabi_ul2d>:
 
-  8020554:	ea50 0201 	orrs.w	r2, r0, r1
 
-  8020558:	bf08      	it	eq
 
-  802055a:	4770      	bxeq	lr
 
-  802055c:	b530      	push	{r4, r5, lr}
 
-  802055e:	f04f 0500 	mov.w	r5, #0
 
-  8020562:	e00a      	b.n	802057a <__aeabi_l2d+0x16>
 
- 08020564 <__aeabi_l2d>:
 
-  8020564:	ea50 0201 	orrs.w	r2, r0, r1
 
-  8020568:	bf08      	it	eq
 
-  802056a:	4770      	bxeq	lr
 
-  802056c:	b530      	push	{r4, r5, lr}
 
-  802056e:	f011 4500 	ands.w	r5, r1, #2147483648	; 0x80000000
 
-  8020572:	d502      	bpl.n	802057a <__aeabi_l2d+0x16>
 
-  8020574:	4240      	negs	r0, r0
 
-  8020576:	eb61 0141 	sbc.w	r1, r1, r1, lsl #1
 
-  802057a:	f44f 6480 	mov.w	r4, #1024	; 0x400
 
-  802057e:	f104 0432 	add.w	r4, r4, #50	; 0x32
 
-  8020582:	ea5f 5c91 	movs.w	ip, r1, lsr #22
 
-  8020586:	f43f aedc 	beq.w	8020342 <__adddf3+0xe6>
 
-  802058a:	f04f 0203 	mov.w	r2, #3
 
-  802058e:	ea5f 0cdc 	movs.w	ip, ip, lsr #3
 
-  8020592:	bf18      	it	ne
 
-  8020594:	3203      	addne	r2, #3
 
-  8020596:	ea5f 0cdc 	movs.w	ip, ip, lsr #3
 
-  802059a:	bf18      	it	ne
 
-  802059c:	3203      	addne	r2, #3
 
-  802059e:	eb02 02dc 	add.w	r2, r2, ip, lsr #3
 
-  80205a2:	f1c2 0320 	rsb	r3, r2, #32
 
-  80205a6:	fa00 fc03 	lsl.w	ip, r0, r3
 
-  80205aa:	fa20 f002 	lsr.w	r0, r0, r2
 
-  80205ae:	fa01 fe03 	lsl.w	lr, r1, r3
 
-  80205b2:	ea40 000e 	orr.w	r0, r0, lr
 
-  80205b6:	fa21 f102 	lsr.w	r1, r1, r2
 
-  80205ba:	4414      	add	r4, r2
 
-  80205bc:	e6c1      	b.n	8020342 <__adddf3+0xe6>
 
-  80205be:	bf00      	nop
 
- 080205c0 <__aeabi_dmul>:
 
-  80205c0:	b570      	push	{r4, r5, r6, lr}
 
-  80205c2:	f04f 0cff 	mov.w	ip, #255	; 0xff
 
-  80205c6:	f44c 6ce0 	orr.w	ip, ip, #1792	; 0x700
 
-  80205ca:	ea1c 5411 	ands.w	r4, ip, r1, lsr #20
 
-  80205ce:	bf1d      	ittte	ne
 
-  80205d0:	ea1c 5513 	andsne.w	r5, ip, r3, lsr #20
 
-  80205d4:	ea94 0f0c 	teqne	r4, ip
 
-  80205d8:	ea95 0f0c 	teqne	r5, ip
 
-  80205dc:	f000 f8de 	bleq	802079c <__aeabi_dmul+0x1dc>
 
-  80205e0:	442c      	add	r4, r5
 
-  80205e2:	ea81 0603 	eor.w	r6, r1, r3
 
-  80205e6:	ea21 514c 	bic.w	r1, r1, ip, lsl #21
 
-  80205ea:	ea23 534c 	bic.w	r3, r3, ip, lsl #21
 
-  80205ee:	ea50 3501 	orrs.w	r5, r0, r1, lsl #12
 
-  80205f2:	bf18      	it	ne
 
-  80205f4:	ea52 3503 	orrsne.w	r5, r2, r3, lsl #12
 
-  80205f8:	f441 1180 	orr.w	r1, r1, #1048576	; 0x100000
 
-  80205fc:	f443 1380 	orr.w	r3, r3, #1048576	; 0x100000
 
-  8020600:	d038      	beq.n	8020674 <__aeabi_dmul+0xb4>
 
-  8020602:	fba0 ce02 	umull	ip, lr, r0, r2
 
-  8020606:	f04f 0500 	mov.w	r5, #0
 
-  802060a:	fbe1 e502 	umlal	lr, r5, r1, r2
 
-  802060e:	f006 4200 	and.w	r2, r6, #2147483648	; 0x80000000
 
-  8020612:	fbe0 e503 	umlal	lr, r5, r0, r3
 
-  8020616:	f04f 0600 	mov.w	r6, #0
 
-  802061a:	fbe1 5603 	umlal	r5, r6, r1, r3
 
-  802061e:	f09c 0f00 	teq	ip, #0
 
-  8020622:	bf18      	it	ne
 
-  8020624:	f04e 0e01 	orrne.w	lr, lr, #1
 
-  8020628:	f1a4 04ff 	sub.w	r4, r4, #255	; 0xff
 
-  802062c:	f5b6 7f00 	cmp.w	r6, #512	; 0x200
 
-  8020630:	f564 7440 	sbc.w	r4, r4, #768	; 0x300
 
-  8020634:	d204      	bcs.n	8020640 <__aeabi_dmul+0x80>
 
-  8020636:	ea5f 0e4e 	movs.w	lr, lr, lsl #1
 
-  802063a:	416d      	adcs	r5, r5
 
-  802063c:	eb46 0606 	adc.w	r6, r6, r6
 
-  8020640:	ea42 21c6 	orr.w	r1, r2, r6, lsl #11
 
-  8020644:	ea41 5155 	orr.w	r1, r1, r5, lsr #21
 
-  8020648:	ea4f 20c5 	mov.w	r0, r5, lsl #11
 
-  802064c:	ea40 505e 	orr.w	r0, r0, lr, lsr #21
 
-  8020650:	ea4f 2ece 	mov.w	lr, lr, lsl #11
 
-  8020654:	f1b4 0cfd 	subs.w	ip, r4, #253	; 0xfd
 
-  8020658:	bf88      	it	hi
 
-  802065a:	f5bc 6fe0 	cmphi.w	ip, #1792	; 0x700
 
-  802065e:	d81e      	bhi.n	802069e <__aeabi_dmul+0xde>
 
-  8020660:	f1be 4f00 	cmp.w	lr, #2147483648	; 0x80000000
 
-  8020664:	bf08      	it	eq
 
-  8020666:	ea5f 0e50 	movseq.w	lr, r0, lsr #1
 
-  802066a:	f150 0000 	adcs.w	r0, r0, #0
 
-  802066e:	eb41 5104 	adc.w	r1, r1, r4, lsl #20
 
-  8020672:	bd70      	pop	{r4, r5, r6, pc}
 
-  8020674:	f006 4600 	and.w	r6, r6, #2147483648	; 0x80000000
 
-  8020678:	ea46 0101 	orr.w	r1, r6, r1
 
-  802067c:	ea40 0002 	orr.w	r0, r0, r2
 
-  8020680:	ea81 0103 	eor.w	r1, r1, r3
 
-  8020684:	ebb4 045c 	subs.w	r4, r4, ip, lsr #1
 
-  8020688:	bfc2      	ittt	gt
 
-  802068a:	ebd4 050c 	rsbsgt	r5, r4, ip
 
-  802068e:	ea41 5104 	orrgt.w	r1, r1, r4, lsl #20
 
-  8020692:	bd70      	popgt	{r4, r5, r6, pc}
 
-  8020694:	f441 1180 	orr.w	r1, r1, #1048576	; 0x100000
 
-  8020698:	f04f 0e00 	mov.w	lr, #0
 
-  802069c:	3c01      	subs	r4, #1
 
-  802069e:	f300 80ab 	bgt.w	80207f8 <__aeabi_dmul+0x238>
 
-  80206a2:	f114 0f36 	cmn.w	r4, #54	; 0x36
 
-  80206a6:	bfde      	ittt	le
 
-  80206a8:	2000      	movle	r0, #0
 
-  80206aa:	f001 4100 	andle.w	r1, r1, #2147483648	; 0x80000000
 
-  80206ae:	bd70      	pople	{r4, r5, r6, pc}
 
-  80206b0:	f1c4 0400 	rsb	r4, r4, #0
 
-  80206b4:	3c20      	subs	r4, #32
 
-  80206b6:	da35      	bge.n	8020724 <__aeabi_dmul+0x164>
 
-  80206b8:	340c      	adds	r4, #12
 
-  80206ba:	dc1b      	bgt.n	80206f4 <__aeabi_dmul+0x134>
 
-  80206bc:	f104 0414 	add.w	r4, r4, #20
 
-  80206c0:	f1c4 0520 	rsb	r5, r4, #32
 
-  80206c4:	fa00 f305 	lsl.w	r3, r0, r5
 
-  80206c8:	fa20 f004 	lsr.w	r0, r0, r4
 
-  80206cc:	fa01 f205 	lsl.w	r2, r1, r5
 
-  80206d0:	ea40 0002 	orr.w	r0, r0, r2
 
-  80206d4:	f001 4200 	and.w	r2, r1, #2147483648	; 0x80000000
 
-  80206d8:	f021 4100 	bic.w	r1, r1, #2147483648	; 0x80000000
 
-  80206dc:	eb10 70d3 	adds.w	r0, r0, r3, lsr #31
 
-  80206e0:	fa21 f604 	lsr.w	r6, r1, r4
 
-  80206e4:	eb42 0106 	adc.w	r1, r2, r6
 
-  80206e8:	ea5e 0e43 	orrs.w	lr, lr, r3, lsl #1
 
-  80206ec:	bf08      	it	eq
 
-  80206ee:	ea20 70d3 	biceq.w	r0, r0, r3, lsr #31
 
-  80206f2:	bd70      	pop	{r4, r5, r6, pc}
 
-  80206f4:	f1c4 040c 	rsb	r4, r4, #12
 
-  80206f8:	f1c4 0520 	rsb	r5, r4, #32
 
-  80206fc:	fa00 f304 	lsl.w	r3, r0, r4
 
-  8020700:	fa20 f005 	lsr.w	r0, r0, r5
 
-  8020704:	fa01 f204 	lsl.w	r2, r1, r4
 
-  8020708:	ea40 0002 	orr.w	r0, r0, r2
 
-  802070c:	f001 4100 	and.w	r1, r1, #2147483648	; 0x80000000
 
-  8020710:	eb10 70d3 	adds.w	r0, r0, r3, lsr #31
 
-  8020714:	f141 0100 	adc.w	r1, r1, #0
 
-  8020718:	ea5e 0e43 	orrs.w	lr, lr, r3, lsl #1
 
-  802071c:	bf08      	it	eq
 
-  802071e:	ea20 70d3 	biceq.w	r0, r0, r3, lsr #31
 
-  8020722:	bd70      	pop	{r4, r5, r6, pc}
 
-  8020724:	f1c4 0520 	rsb	r5, r4, #32
 
-  8020728:	fa00 f205 	lsl.w	r2, r0, r5
 
-  802072c:	ea4e 0e02 	orr.w	lr, lr, r2
 
-  8020730:	fa20 f304 	lsr.w	r3, r0, r4
 
-  8020734:	fa01 f205 	lsl.w	r2, r1, r5
 
-  8020738:	ea43 0302 	orr.w	r3, r3, r2
 
-  802073c:	fa21 f004 	lsr.w	r0, r1, r4
 
-  8020740:	f001 4100 	and.w	r1, r1, #2147483648	; 0x80000000
 
-  8020744:	fa21 f204 	lsr.w	r2, r1, r4
 
-  8020748:	ea20 0002 	bic.w	r0, r0, r2
 
-  802074c:	eb00 70d3 	add.w	r0, r0, r3, lsr #31
 
-  8020750:	ea5e 0e43 	orrs.w	lr, lr, r3, lsl #1
 
-  8020754:	bf08      	it	eq
 
-  8020756:	ea20 70d3 	biceq.w	r0, r0, r3, lsr #31
 
-  802075a:	bd70      	pop	{r4, r5, r6, pc}
 
-  802075c:	f094 0f00 	teq	r4, #0
 
-  8020760:	d10f      	bne.n	8020782 <__aeabi_dmul+0x1c2>
 
-  8020762:	f001 4600 	and.w	r6, r1, #2147483648	; 0x80000000
 
-  8020766:	0040      	lsls	r0, r0, #1
 
-  8020768:	eb41 0101 	adc.w	r1, r1, r1
 
-  802076c:	f411 1f80 	tst.w	r1, #1048576	; 0x100000
 
-  8020770:	bf08      	it	eq
 
-  8020772:	3c01      	subeq	r4, #1
 
-  8020774:	d0f7      	beq.n	8020766 <__aeabi_dmul+0x1a6>
 
-  8020776:	ea41 0106 	orr.w	r1, r1, r6
 
-  802077a:	f095 0f00 	teq	r5, #0
 
-  802077e:	bf18      	it	ne
 
-  8020780:	4770      	bxne	lr
 
-  8020782:	f003 4600 	and.w	r6, r3, #2147483648	; 0x80000000
 
-  8020786:	0052      	lsls	r2, r2, #1
 
-  8020788:	eb43 0303 	adc.w	r3, r3, r3
 
-  802078c:	f413 1f80 	tst.w	r3, #1048576	; 0x100000
 
-  8020790:	bf08      	it	eq
 
-  8020792:	3d01      	subeq	r5, #1
 
-  8020794:	d0f7      	beq.n	8020786 <__aeabi_dmul+0x1c6>
 
-  8020796:	ea43 0306 	orr.w	r3, r3, r6
 
-  802079a:	4770      	bx	lr
 
-  802079c:	ea94 0f0c 	teq	r4, ip
 
-  80207a0:	ea0c 5513 	and.w	r5, ip, r3, lsr #20
 
-  80207a4:	bf18      	it	ne
 
-  80207a6:	ea95 0f0c 	teqne	r5, ip
 
-  80207aa:	d00c      	beq.n	80207c6 <__aeabi_dmul+0x206>
 
-  80207ac:	ea50 0641 	orrs.w	r6, r0, r1, lsl #1
 
-  80207b0:	bf18      	it	ne
 
-  80207b2:	ea52 0643 	orrsne.w	r6, r2, r3, lsl #1
 
-  80207b6:	d1d1      	bne.n	802075c <__aeabi_dmul+0x19c>
 
-  80207b8:	ea81 0103 	eor.w	r1, r1, r3
 
-  80207bc:	f001 4100 	and.w	r1, r1, #2147483648	; 0x80000000
 
-  80207c0:	f04f 0000 	mov.w	r0, #0
 
-  80207c4:	bd70      	pop	{r4, r5, r6, pc}
 
-  80207c6:	ea50 0641 	orrs.w	r6, r0, r1, lsl #1
 
-  80207ca:	bf06      	itte	eq
 
-  80207cc:	4610      	moveq	r0, r2
 
-  80207ce:	4619      	moveq	r1, r3
 
-  80207d0:	ea52 0643 	orrsne.w	r6, r2, r3, lsl #1
 
-  80207d4:	d019      	beq.n	802080a <__aeabi_dmul+0x24a>
 
-  80207d6:	ea94 0f0c 	teq	r4, ip
 
-  80207da:	d102      	bne.n	80207e2 <__aeabi_dmul+0x222>
 
-  80207dc:	ea50 3601 	orrs.w	r6, r0, r1, lsl #12
 
-  80207e0:	d113      	bne.n	802080a <__aeabi_dmul+0x24a>
 
-  80207e2:	ea95 0f0c 	teq	r5, ip
 
-  80207e6:	d105      	bne.n	80207f4 <__aeabi_dmul+0x234>
 
-  80207e8:	ea52 3603 	orrs.w	r6, r2, r3, lsl #12
 
-  80207ec:	bf1c      	itt	ne
 
-  80207ee:	4610      	movne	r0, r2
 
-  80207f0:	4619      	movne	r1, r3
 
-  80207f2:	d10a      	bne.n	802080a <__aeabi_dmul+0x24a>
 
-  80207f4:	ea81 0103 	eor.w	r1, r1, r3
 
-  80207f8:	f001 4100 	and.w	r1, r1, #2147483648	; 0x80000000
 
-  80207fc:	f041 41fe 	orr.w	r1, r1, #2130706432	; 0x7f000000
 
-  8020800:	f441 0170 	orr.w	r1, r1, #15728640	; 0xf00000
 
-  8020804:	f04f 0000 	mov.w	r0, #0
 
-  8020808:	bd70      	pop	{r4, r5, r6, pc}
 
-  802080a:	f041 41fe 	orr.w	r1, r1, #2130706432	; 0x7f000000
 
-  802080e:	f441 0178 	orr.w	r1, r1, #16252928	; 0xf80000
 
-  8020812:	bd70      	pop	{r4, r5, r6, pc}
 
- 08020814 <__aeabi_ddiv>:
 
-  8020814:	b570      	push	{r4, r5, r6, lr}
 
-  8020816:	f04f 0cff 	mov.w	ip, #255	; 0xff
 
-  802081a:	f44c 6ce0 	orr.w	ip, ip, #1792	; 0x700
 
-  802081e:	ea1c 5411 	ands.w	r4, ip, r1, lsr #20
 
-  8020822:	bf1d      	ittte	ne
 
-  8020824:	ea1c 5513 	andsne.w	r5, ip, r3, lsr #20
 
-  8020828:	ea94 0f0c 	teqne	r4, ip
 
-  802082c:	ea95 0f0c 	teqne	r5, ip
 
-  8020830:	f000 f8a7 	bleq	8020982 <__aeabi_ddiv+0x16e>
 
-  8020834:	eba4 0405 	sub.w	r4, r4, r5
 
-  8020838:	ea81 0e03 	eor.w	lr, r1, r3
 
-  802083c:	ea52 3503 	orrs.w	r5, r2, r3, lsl #12
 
-  8020840:	ea4f 3101 	mov.w	r1, r1, lsl #12
 
-  8020844:	f000 8088 	beq.w	8020958 <__aeabi_ddiv+0x144>
 
-  8020848:	ea4f 3303 	mov.w	r3, r3, lsl #12
 
-  802084c:	f04f 5580 	mov.w	r5, #268435456	; 0x10000000
 
-  8020850:	ea45 1313 	orr.w	r3, r5, r3, lsr #4
 
-  8020854:	ea43 6312 	orr.w	r3, r3, r2, lsr #24
 
-  8020858:	ea4f 2202 	mov.w	r2, r2, lsl #8
 
-  802085c:	ea45 1511 	orr.w	r5, r5, r1, lsr #4
 
-  8020860:	ea45 6510 	orr.w	r5, r5, r0, lsr #24
 
-  8020864:	ea4f 2600 	mov.w	r6, r0, lsl #8
 
-  8020868:	f00e 4100 	and.w	r1, lr, #2147483648	; 0x80000000
 
-  802086c:	429d      	cmp	r5, r3
 
-  802086e:	bf08      	it	eq
 
-  8020870:	4296      	cmpeq	r6, r2
 
-  8020872:	f144 04fd 	adc.w	r4, r4, #253	; 0xfd
 
-  8020876:	f504 7440 	add.w	r4, r4, #768	; 0x300
 
-  802087a:	d202      	bcs.n	8020882 <__aeabi_ddiv+0x6e>
 
-  802087c:	085b      	lsrs	r3, r3, #1
 
-  802087e:	ea4f 0232 	mov.w	r2, r2, rrx
 
-  8020882:	1ab6      	subs	r6, r6, r2
 
-  8020884:	eb65 0503 	sbc.w	r5, r5, r3
 
-  8020888:	085b      	lsrs	r3, r3, #1
 
-  802088a:	ea4f 0232 	mov.w	r2, r2, rrx
 
-  802088e:	f44f 1080 	mov.w	r0, #1048576	; 0x100000
 
-  8020892:	f44f 2c00 	mov.w	ip, #524288	; 0x80000
 
-  8020896:	ebb6 0e02 	subs.w	lr, r6, r2
 
-  802089a:	eb75 0e03 	sbcs.w	lr, r5, r3
 
-  802089e:	bf22      	ittt	cs
 
-  80208a0:	1ab6      	subcs	r6, r6, r2
 
-  80208a2:	4675      	movcs	r5, lr
 
-  80208a4:	ea40 000c 	orrcs.w	r0, r0, ip
 
-  80208a8:	085b      	lsrs	r3, r3, #1
 
-  80208aa:	ea4f 0232 	mov.w	r2, r2, rrx
 
-  80208ae:	ebb6 0e02 	subs.w	lr, r6, r2
 
-  80208b2:	eb75 0e03 	sbcs.w	lr, r5, r3
 
-  80208b6:	bf22      	ittt	cs
 
-  80208b8:	1ab6      	subcs	r6, r6, r2
 
-  80208ba:	4675      	movcs	r5, lr
 
-  80208bc:	ea40 005c 	orrcs.w	r0, r0, ip, lsr #1
 
-  80208c0:	085b      	lsrs	r3, r3, #1
 
-  80208c2:	ea4f 0232 	mov.w	r2, r2, rrx
 
-  80208c6:	ebb6 0e02 	subs.w	lr, r6, r2
 
-  80208ca:	eb75 0e03 	sbcs.w	lr, r5, r3
 
-  80208ce:	bf22      	ittt	cs
 
-  80208d0:	1ab6      	subcs	r6, r6, r2
 
-  80208d2:	4675      	movcs	r5, lr
 
-  80208d4:	ea40 009c 	orrcs.w	r0, r0, ip, lsr #2
 
-  80208d8:	085b      	lsrs	r3, r3, #1
 
-  80208da:	ea4f 0232 	mov.w	r2, r2, rrx
 
-  80208de:	ebb6 0e02 	subs.w	lr, r6, r2
 
-  80208e2:	eb75 0e03 	sbcs.w	lr, r5, r3
 
-  80208e6:	bf22      	ittt	cs
 
-  80208e8:	1ab6      	subcs	r6, r6, r2
 
-  80208ea:	4675      	movcs	r5, lr
 
-  80208ec:	ea40 00dc 	orrcs.w	r0, r0, ip, lsr #3
 
-  80208f0:	ea55 0e06 	orrs.w	lr, r5, r6
 
-  80208f4:	d018      	beq.n	8020928 <__aeabi_ddiv+0x114>
 
-  80208f6:	ea4f 1505 	mov.w	r5, r5, lsl #4
 
-  80208fa:	ea45 7516 	orr.w	r5, r5, r6, lsr #28
 
-  80208fe:	ea4f 1606 	mov.w	r6, r6, lsl #4
 
-  8020902:	ea4f 03c3 	mov.w	r3, r3, lsl #3
 
-  8020906:	ea43 7352 	orr.w	r3, r3, r2, lsr #29
 
-  802090a:	ea4f 02c2 	mov.w	r2, r2, lsl #3
 
-  802090e:	ea5f 1c1c 	movs.w	ip, ip, lsr #4
 
-  8020912:	d1c0      	bne.n	8020896 <__aeabi_ddiv+0x82>
 
-  8020914:	f411 1f80 	tst.w	r1, #1048576	; 0x100000
 
-  8020918:	d10b      	bne.n	8020932 <__aeabi_ddiv+0x11e>
 
-  802091a:	ea41 0100 	orr.w	r1, r1, r0
 
-  802091e:	f04f 0000 	mov.w	r0, #0
 
-  8020922:	f04f 4c00 	mov.w	ip, #2147483648	; 0x80000000
 
-  8020926:	e7b6      	b.n	8020896 <__aeabi_ddiv+0x82>
 
-  8020928:	f411 1f80 	tst.w	r1, #1048576	; 0x100000
 
-  802092c:	bf04      	itt	eq
 
-  802092e:	4301      	orreq	r1, r0
 
-  8020930:	2000      	moveq	r0, #0
 
-  8020932:	f1b4 0cfd 	subs.w	ip, r4, #253	; 0xfd
 
-  8020936:	bf88      	it	hi
 
-  8020938:	f5bc 6fe0 	cmphi.w	ip, #1792	; 0x700
 
-  802093c:	f63f aeaf 	bhi.w	802069e <__aeabi_dmul+0xde>
 
-  8020940:	ebb5 0c03 	subs.w	ip, r5, r3
 
-  8020944:	bf04      	itt	eq
 
-  8020946:	ebb6 0c02 	subseq.w	ip, r6, r2
 
-  802094a:	ea5f 0c50 	movseq.w	ip, r0, lsr #1
 
-  802094e:	f150 0000 	adcs.w	r0, r0, #0
 
-  8020952:	eb41 5104 	adc.w	r1, r1, r4, lsl #20
 
-  8020956:	bd70      	pop	{r4, r5, r6, pc}
 
-  8020958:	f00e 4e00 	and.w	lr, lr, #2147483648	; 0x80000000
 
-  802095c:	ea4e 3111 	orr.w	r1, lr, r1, lsr #12
 
-  8020960:	eb14 045c 	adds.w	r4, r4, ip, lsr #1
 
-  8020964:	bfc2      	ittt	gt
 
-  8020966:	ebd4 050c 	rsbsgt	r5, r4, ip
 
-  802096a:	ea41 5104 	orrgt.w	r1, r1, r4, lsl #20
 
-  802096e:	bd70      	popgt	{r4, r5, r6, pc}
 
-  8020970:	f441 1180 	orr.w	r1, r1, #1048576	; 0x100000
 
-  8020974:	f04f 0e00 	mov.w	lr, #0
 
-  8020978:	3c01      	subs	r4, #1
 
-  802097a:	e690      	b.n	802069e <__aeabi_dmul+0xde>
 
-  802097c:	ea45 0e06 	orr.w	lr, r5, r6
 
-  8020980:	e68d      	b.n	802069e <__aeabi_dmul+0xde>
 
-  8020982:	ea0c 5513 	and.w	r5, ip, r3, lsr #20
 
-  8020986:	ea94 0f0c 	teq	r4, ip
 
-  802098a:	bf08      	it	eq
 
-  802098c:	ea95 0f0c 	teqeq	r5, ip
 
-  8020990:	f43f af3b 	beq.w	802080a <__aeabi_dmul+0x24a>
 
-  8020994:	ea94 0f0c 	teq	r4, ip
 
-  8020998:	d10a      	bne.n	80209b0 <__aeabi_ddiv+0x19c>
 
-  802099a:	ea50 3401 	orrs.w	r4, r0, r1, lsl #12
 
-  802099e:	f47f af34 	bne.w	802080a <__aeabi_dmul+0x24a>
 
-  80209a2:	ea95 0f0c 	teq	r5, ip
 
-  80209a6:	f47f af25 	bne.w	80207f4 <__aeabi_dmul+0x234>
 
-  80209aa:	4610      	mov	r0, r2
 
-  80209ac:	4619      	mov	r1, r3
 
-  80209ae:	e72c      	b.n	802080a <__aeabi_dmul+0x24a>
 
-  80209b0:	ea95 0f0c 	teq	r5, ip
 
-  80209b4:	d106      	bne.n	80209c4 <__aeabi_ddiv+0x1b0>
 
-  80209b6:	ea52 3503 	orrs.w	r5, r2, r3, lsl #12
 
-  80209ba:	f43f aefd 	beq.w	80207b8 <__aeabi_dmul+0x1f8>
 
-  80209be:	4610      	mov	r0, r2
 
-  80209c0:	4619      	mov	r1, r3
 
-  80209c2:	e722      	b.n	802080a <__aeabi_dmul+0x24a>
 
-  80209c4:	ea50 0641 	orrs.w	r6, r0, r1, lsl #1
 
-  80209c8:	bf18      	it	ne
 
-  80209ca:	ea52 0643 	orrsne.w	r6, r2, r3, lsl #1
 
-  80209ce:	f47f aec5 	bne.w	802075c <__aeabi_dmul+0x19c>
 
-  80209d2:	ea50 0441 	orrs.w	r4, r0, r1, lsl #1
 
-  80209d6:	f47f af0d 	bne.w	80207f4 <__aeabi_dmul+0x234>
 
-  80209da:	ea52 0543 	orrs.w	r5, r2, r3, lsl #1
 
-  80209de:	f47f aeeb 	bne.w	80207b8 <__aeabi_dmul+0x1f8>
 
-  80209e2:	e712      	b.n	802080a <__aeabi_dmul+0x24a>
 
- 080209e4 <__gedf2>:
 
-  80209e4:	f04f 3cff 	mov.w	ip, #4294967295
 
-  80209e8:	e006      	b.n	80209f8 <__cmpdf2+0x4>
 
-  80209ea:	bf00      	nop
 
- 080209ec <__ledf2>:
 
-  80209ec:	f04f 0c01 	mov.w	ip, #1
 
-  80209f0:	e002      	b.n	80209f8 <__cmpdf2+0x4>
 
-  80209f2:	bf00      	nop
 
- 080209f4 <__cmpdf2>:
 
-  80209f4:	f04f 0c01 	mov.w	ip, #1
 
-  80209f8:	f84d cd04 	str.w	ip, [sp, #-4]!
 
-  80209fc:	ea4f 0c41 	mov.w	ip, r1, lsl #1
 
-  8020a00:	ea7f 5c6c 	mvns.w	ip, ip, asr #21
 
-  8020a04:	ea4f 0c43 	mov.w	ip, r3, lsl #1
 
-  8020a08:	bf18      	it	ne
 
-  8020a0a:	ea7f 5c6c 	mvnsne.w	ip, ip, asr #21
 
-  8020a0e:	d01b      	beq.n	8020a48 <__cmpdf2+0x54>
 
-  8020a10:	b001      	add	sp, #4
 
-  8020a12:	ea50 0c41 	orrs.w	ip, r0, r1, lsl #1
 
-  8020a16:	bf0c      	ite	eq
 
-  8020a18:	ea52 0c43 	orrseq.w	ip, r2, r3, lsl #1
 
-  8020a1c:	ea91 0f03 	teqne	r1, r3
 
-  8020a20:	bf02      	ittt	eq
 
-  8020a22:	ea90 0f02 	teqeq	r0, r2
 
-  8020a26:	2000      	moveq	r0, #0
 
-  8020a28:	4770      	bxeq	lr
 
-  8020a2a:	f110 0f00 	cmn.w	r0, #0
 
-  8020a2e:	ea91 0f03 	teq	r1, r3
 
-  8020a32:	bf58      	it	pl
 
-  8020a34:	4299      	cmppl	r1, r3
 
-  8020a36:	bf08      	it	eq
 
-  8020a38:	4290      	cmpeq	r0, r2
 
-  8020a3a:	bf2c      	ite	cs
 
-  8020a3c:	17d8      	asrcs	r0, r3, #31
 
-  8020a3e:	ea6f 70e3 	mvncc.w	r0, r3, asr #31
 
-  8020a42:	f040 0001 	orr.w	r0, r0, #1
 
-  8020a46:	4770      	bx	lr
 
-  8020a48:	ea4f 0c41 	mov.w	ip, r1, lsl #1
 
-  8020a4c:	ea7f 5c6c 	mvns.w	ip, ip, asr #21
 
-  8020a50:	d102      	bne.n	8020a58 <__cmpdf2+0x64>
 
-  8020a52:	ea50 3c01 	orrs.w	ip, r0, r1, lsl #12
 
-  8020a56:	d107      	bne.n	8020a68 <__cmpdf2+0x74>
 
-  8020a58:	ea4f 0c43 	mov.w	ip, r3, lsl #1
 
-  8020a5c:	ea7f 5c6c 	mvns.w	ip, ip, asr #21
 
-  8020a60:	d1d6      	bne.n	8020a10 <__cmpdf2+0x1c>
 
-  8020a62:	ea52 3c03 	orrs.w	ip, r2, r3, lsl #12
 
-  8020a66:	d0d3      	beq.n	8020a10 <__cmpdf2+0x1c>
 
-  8020a68:	f85d 0b04 	ldr.w	r0, [sp], #4
 
-  8020a6c:	4770      	bx	lr
 
-  8020a6e:	bf00      	nop
 
- 08020a70 <__aeabi_cdrcmple>:
 
-  8020a70:	4684      	mov	ip, r0
 
-  8020a72:	4610      	mov	r0, r2
 
-  8020a74:	4662      	mov	r2, ip
 
-  8020a76:	468c      	mov	ip, r1
 
-  8020a78:	4619      	mov	r1, r3
 
-  8020a7a:	4663      	mov	r3, ip
 
-  8020a7c:	e000      	b.n	8020a80 <__aeabi_cdcmpeq>
 
-  8020a7e:	bf00      	nop
 
- 08020a80 <__aeabi_cdcmpeq>:
 
-  8020a80:	b501      	push	{r0, lr}
 
-  8020a82:	f7ff ffb7 	bl	80209f4 <__cmpdf2>
 
-  8020a86:	2800      	cmp	r0, #0
 
-  8020a88:	bf48      	it	mi
 
-  8020a8a:	f110 0f00 	cmnmi.w	r0, #0
 
-  8020a8e:	bd01      	pop	{r0, pc}
 
- 08020a90 <__aeabi_dcmpeq>:
 
-  8020a90:	f84d ed08 	str.w	lr, [sp, #-8]!
 
-  8020a94:	f7ff fff4 	bl	8020a80 <__aeabi_cdcmpeq>
 
-  8020a98:	bf0c      	ite	eq
 
-  8020a9a:	2001      	moveq	r0, #1
 
-  8020a9c:	2000      	movne	r0, #0
 
-  8020a9e:	f85d fb08 	ldr.w	pc, [sp], #8
 
-  8020aa2:	bf00      	nop
 
- 08020aa4 <__aeabi_dcmplt>:
 
-  8020aa4:	f84d ed08 	str.w	lr, [sp, #-8]!
 
-  8020aa8:	f7ff ffea 	bl	8020a80 <__aeabi_cdcmpeq>
 
-  8020aac:	bf34      	ite	cc
 
-  8020aae:	2001      	movcc	r0, #1
 
-  8020ab0:	2000      	movcs	r0, #0
 
-  8020ab2:	f85d fb08 	ldr.w	pc, [sp], #8
 
-  8020ab6:	bf00      	nop
 
- 08020ab8 <__aeabi_dcmple>:
 
-  8020ab8:	f84d ed08 	str.w	lr, [sp, #-8]!
 
-  8020abc:	f7ff ffe0 	bl	8020a80 <__aeabi_cdcmpeq>
 
-  8020ac0:	bf94      	ite	ls
 
-  8020ac2:	2001      	movls	r0, #1
 
-  8020ac4:	2000      	movhi	r0, #0
 
-  8020ac6:	f85d fb08 	ldr.w	pc, [sp], #8
 
-  8020aca:	bf00      	nop
 
- 08020acc <__aeabi_dcmpge>:
 
-  8020acc:	f84d ed08 	str.w	lr, [sp, #-8]!
 
-  8020ad0:	f7ff ffce 	bl	8020a70 <__aeabi_cdrcmple>
 
-  8020ad4:	bf94      	ite	ls
 
-  8020ad6:	2001      	movls	r0, #1
 
-  8020ad8:	2000      	movhi	r0, #0
 
-  8020ada:	f85d fb08 	ldr.w	pc, [sp], #8
 
-  8020ade:	bf00      	nop
 
- 08020ae0 <__aeabi_dcmpgt>:
 
-  8020ae0:	f84d ed08 	str.w	lr, [sp, #-8]!
 
-  8020ae4:	f7ff ffc4 	bl	8020a70 <__aeabi_cdrcmple>
 
-  8020ae8:	bf34      	ite	cc
 
-  8020aea:	2001      	movcc	r0, #1
 
-  8020aec:	2000      	movcs	r0, #0
 
-  8020aee:	f85d fb08 	ldr.w	pc, [sp], #8
 
-  8020af2:	bf00      	nop
 
- 08020af4 <__aeabi_d2iz>:
 
-  8020af4:	ea4f 0241 	mov.w	r2, r1, lsl #1
 
-  8020af8:	f512 1200 	adds.w	r2, r2, #2097152	; 0x200000
 
-  8020afc:	d215      	bcs.n	8020b2a <__aeabi_d2iz+0x36>
 
-  8020afe:	d511      	bpl.n	8020b24 <__aeabi_d2iz+0x30>
 
-  8020b00:	f46f 7378 	mvn.w	r3, #992	; 0x3e0
 
-  8020b04:	ebb3 5262 	subs.w	r2, r3, r2, asr #21
 
-  8020b08:	d912      	bls.n	8020b30 <__aeabi_d2iz+0x3c>
 
-  8020b0a:	ea4f 23c1 	mov.w	r3, r1, lsl #11
 
-  8020b0e:	f043 4300 	orr.w	r3, r3, #2147483648	; 0x80000000
 
-  8020b12:	ea43 5350 	orr.w	r3, r3, r0, lsr #21
 
-  8020b16:	f011 4f00 	tst.w	r1, #2147483648	; 0x80000000
 
-  8020b1a:	fa23 f002 	lsr.w	r0, r3, r2
 
-  8020b1e:	bf18      	it	ne
 
-  8020b20:	4240      	negne	r0, r0
 
-  8020b22:	4770      	bx	lr
 
-  8020b24:	f04f 0000 	mov.w	r0, #0
 
-  8020b28:	4770      	bx	lr
 
-  8020b2a:	ea50 3001 	orrs.w	r0, r0, r1, lsl #12
 
-  8020b2e:	d105      	bne.n	8020b3c <__aeabi_d2iz+0x48>
 
-  8020b30:	f011 4000 	ands.w	r0, r1, #2147483648	; 0x80000000
 
-  8020b34:	bf08      	it	eq
 
-  8020b36:	f06f 4000 	mvneq.w	r0, #2147483648	; 0x80000000
 
-  8020b3a:	4770      	bx	lr
 
-  8020b3c:	f04f 0000 	mov.w	r0, #0
 
-  8020b40:	4770      	bx	lr
 
-  8020b42:	bf00      	nop
 
- 08020b44 <__aeabi_d2uiz>:
 
-  8020b44:	004a      	lsls	r2, r1, #1
 
-  8020b46:	d211      	bcs.n	8020b6c <__aeabi_d2uiz+0x28>
 
-  8020b48:	f512 1200 	adds.w	r2, r2, #2097152	; 0x200000
 
-  8020b4c:	d211      	bcs.n	8020b72 <__aeabi_d2uiz+0x2e>
 
-  8020b4e:	d50d      	bpl.n	8020b6c <__aeabi_d2uiz+0x28>
 
-  8020b50:	f46f 7378 	mvn.w	r3, #992	; 0x3e0
 
-  8020b54:	ebb3 5262 	subs.w	r2, r3, r2, asr #21
 
-  8020b58:	d40e      	bmi.n	8020b78 <__aeabi_d2uiz+0x34>
 
-  8020b5a:	ea4f 23c1 	mov.w	r3, r1, lsl #11
 
-  8020b5e:	f043 4300 	orr.w	r3, r3, #2147483648	; 0x80000000
 
-  8020b62:	ea43 5350 	orr.w	r3, r3, r0, lsr #21
 
-  8020b66:	fa23 f002 	lsr.w	r0, r3, r2
 
-  8020b6a:	4770      	bx	lr
 
-  8020b6c:	f04f 0000 	mov.w	r0, #0
 
-  8020b70:	4770      	bx	lr
 
-  8020b72:	ea50 3001 	orrs.w	r0, r0, r1, lsl #12
 
-  8020b76:	d102      	bne.n	8020b7e <__aeabi_d2uiz+0x3a>
 
-  8020b78:	f04f 30ff 	mov.w	r0, #4294967295
 
-  8020b7c:	4770      	bx	lr
 
-  8020b7e:	f04f 0000 	mov.w	r0, #0
 
-  8020b82:	4770      	bx	lr
 
- 08020b84 <__aeabi_d2f>:
 
-  8020b84:	ea4f 0241 	mov.w	r2, r1, lsl #1
 
-  8020b88:	f1b2 43e0 	subs.w	r3, r2, #1879048192	; 0x70000000
 
-  8020b8c:	bf24      	itt	cs
 
-  8020b8e:	f5b3 1c00 	subscs.w	ip, r3, #2097152	; 0x200000
 
-  8020b92:	f1dc 5cfe 	rsbscs	ip, ip, #532676608	; 0x1fc00000
 
-  8020b96:	d90d      	bls.n	8020bb4 <__aeabi_d2f+0x30>
 
-  8020b98:	f001 4c00 	and.w	ip, r1, #2147483648	; 0x80000000
 
-  8020b9c:	ea4f 02c0 	mov.w	r2, r0, lsl #3
 
-  8020ba0:	ea4c 7050 	orr.w	r0, ip, r0, lsr #29
 
-  8020ba4:	f1b2 4f00 	cmp.w	r2, #2147483648	; 0x80000000
 
-  8020ba8:	eb40 0083 	adc.w	r0, r0, r3, lsl #2
 
-  8020bac:	bf08      	it	eq
 
-  8020bae:	f020 0001 	biceq.w	r0, r0, #1
 
-  8020bb2:	4770      	bx	lr
 
-  8020bb4:	f011 4f80 	tst.w	r1, #1073741824	; 0x40000000
 
-  8020bb8:	d121      	bne.n	8020bfe <__aeabi_d2f+0x7a>
 
-  8020bba:	f113 7238 	adds.w	r2, r3, #48234496	; 0x2e00000
 
-  8020bbe:	bfbc      	itt	lt
 
-  8020bc0:	f001 4000 	andlt.w	r0, r1, #2147483648	; 0x80000000
 
-  8020bc4:	4770      	bxlt	lr
 
-  8020bc6:	f441 1180 	orr.w	r1, r1, #1048576	; 0x100000
 
-  8020bca:	ea4f 5252 	mov.w	r2, r2, lsr #21
 
-  8020bce:	f1c2 0218 	rsb	r2, r2, #24
 
-  8020bd2:	f1c2 0c20 	rsb	ip, r2, #32
 
-  8020bd6:	fa10 f30c 	lsls.w	r3, r0, ip
 
-  8020bda:	fa20 f002 	lsr.w	r0, r0, r2
 
-  8020bde:	bf18      	it	ne
 
-  8020be0:	f040 0001 	orrne.w	r0, r0, #1
 
-  8020be4:	ea4f 23c1 	mov.w	r3, r1, lsl #11
 
-  8020be8:	ea4f 23d3 	mov.w	r3, r3, lsr #11
 
-  8020bec:	fa03 fc0c 	lsl.w	ip, r3, ip
 
-  8020bf0:	ea40 000c 	orr.w	r0, r0, ip
 
-  8020bf4:	fa23 f302 	lsr.w	r3, r3, r2
 
-  8020bf8:	ea4f 0343 	mov.w	r3, r3, lsl #1
 
-  8020bfc:	e7cc      	b.n	8020b98 <__aeabi_d2f+0x14>
 
-  8020bfe:	ea7f 5362 	mvns.w	r3, r2, asr #21
 
-  8020c02:	d107      	bne.n	8020c14 <__aeabi_d2f+0x90>
 
-  8020c04:	ea50 3301 	orrs.w	r3, r0, r1, lsl #12
 
-  8020c08:	bf1e      	ittt	ne
 
-  8020c0a:	f04f 40fe 	movne.w	r0, #2130706432	; 0x7f000000
 
-  8020c0e:	f440 0040 	orrne.w	r0, r0, #12582912	; 0xc00000
 
-  8020c12:	4770      	bxne	lr
 
-  8020c14:	f001 4000 	and.w	r0, r1, #2147483648	; 0x80000000
 
-  8020c18:	f040 40fe 	orr.w	r0, r0, #2130706432	; 0x7f000000
 
-  8020c1c:	f440 0000 	orr.w	r0, r0, #8388608	; 0x800000
 
-  8020c20:	4770      	bx	lr
 
-  8020c22:	bf00      	nop
 
- 08020c24 <__aeabi_frsub>:
 
-  8020c24:	f080 4000 	eor.w	r0, r0, #2147483648	; 0x80000000
 
-  8020c28:	e002      	b.n	8020c30 <__addsf3>
 
-  8020c2a:	bf00      	nop
 
- 08020c2c <__aeabi_fsub>:
 
-  8020c2c:	f081 4100 	eor.w	r1, r1, #2147483648	; 0x80000000
 
- 08020c30 <__addsf3>:
 
-  8020c30:	0042      	lsls	r2, r0, #1
 
-  8020c32:	bf1f      	itttt	ne
 
-  8020c34:	ea5f 0341 	movsne.w	r3, r1, lsl #1
 
-  8020c38:	ea92 0f03 	teqne	r2, r3
 
-  8020c3c:	ea7f 6c22 	mvnsne.w	ip, r2, asr #24
 
-  8020c40:	ea7f 6c23 	mvnsne.w	ip, r3, asr #24
 
-  8020c44:	d06a      	beq.n	8020d1c <__addsf3+0xec>
 
-  8020c46:	ea4f 6212 	mov.w	r2, r2, lsr #24
 
-  8020c4a:	ebd2 6313 	rsbs	r3, r2, r3, lsr #24
 
-  8020c4e:	bfc1      	itttt	gt
 
-  8020c50:	18d2      	addgt	r2, r2, r3
 
-  8020c52:	4041      	eorgt	r1, r0
 
-  8020c54:	4048      	eorgt	r0, r1
 
-  8020c56:	4041      	eorgt	r1, r0
 
-  8020c58:	bfb8      	it	lt
 
-  8020c5a:	425b      	neglt	r3, r3
 
-  8020c5c:	2b19      	cmp	r3, #25
 
-  8020c5e:	bf88      	it	hi
 
-  8020c60:	4770      	bxhi	lr
 
-  8020c62:	f010 4f00 	tst.w	r0, #2147483648	; 0x80000000
 
-  8020c66:	f440 0000 	orr.w	r0, r0, #8388608	; 0x800000
 
-  8020c6a:	f020 407f 	bic.w	r0, r0, #4278190080	; 0xff000000
 
-  8020c6e:	bf18      	it	ne
 
-  8020c70:	4240      	negne	r0, r0
 
-  8020c72:	f011 4f00 	tst.w	r1, #2147483648	; 0x80000000
 
-  8020c76:	f441 0100 	orr.w	r1, r1, #8388608	; 0x800000
 
-  8020c7a:	f021 417f 	bic.w	r1, r1, #4278190080	; 0xff000000
 
-  8020c7e:	bf18      	it	ne
 
-  8020c80:	4249      	negne	r1, r1
 
-  8020c82:	ea92 0f03 	teq	r2, r3
 
-  8020c86:	d03f      	beq.n	8020d08 <__addsf3+0xd8>
 
-  8020c88:	f1a2 0201 	sub.w	r2, r2, #1
 
-  8020c8c:	fa41 fc03 	asr.w	ip, r1, r3
 
-  8020c90:	eb10 000c 	adds.w	r0, r0, ip
 
-  8020c94:	f1c3 0320 	rsb	r3, r3, #32
 
-  8020c98:	fa01 f103 	lsl.w	r1, r1, r3
 
-  8020c9c:	f000 4300 	and.w	r3, r0, #2147483648	; 0x80000000
 
-  8020ca0:	d502      	bpl.n	8020ca8 <__addsf3+0x78>
 
-  8020ca2:	4249      	negs	r1, r1
 
-  8020ca4:	eb60 0040 	sbc.w	r0, r0, r0, lsl #1
 
-  8020ca8:	f5b0 0f00 	cmp.w	r0, #8388608	; 0x800000
 
-  8020cac:	d313      	bcc.n	8020cd6 <__addsf3+0xa6>
 
-  8020cae:	f1b0 7f80 	cmp.w	r0, #16777216	; 0x1000000
 
-  8020cb2:	d306      	bcc.n	8020cc2 <__addsf3+0x92>
 
-  8020cb4:	0840      	lsrs	r0, r0, #1
 
-  8020cb6:	ea4f 0131 	mov.w	r1, r1, rrx
 
-  8020cba:	f102 0201 	add.w	r2, r2, #1
 
-  8020cbe:	2afe      	cmp	r2, #254	; 0xfe
 
-  8020cc0:	d251      	bcs.n	8020d66 <__addsf3+0x136>
 
-  8020cc2:	f1b1 4f00 	cmp.w	r1, #2147483648	; 0x80000000
 
-  8020cc6:	eb40 50c2 	adc.w	r0, r0, r2, lsl #23
 
-  8020cca:	bf08      	it	eq
 
-  8020ccc:	f020 0001 	biceq.w	r0, r0, #1
 
-  8020cd0:	ea40 0003 	orr.w	r0, r0, r3
 
-  8020cd4:	4770      	bx	lr
 
-  8020cd6:	0049      	lsls	r1, r1, #1
 
-  8020cd8:	eb40 0000 	adc.w	r0, r0, r0
 
-  8020cdc:	f410 0f00 	tst.w	r0, #8388608	; 0x800000
 
-  8020ce0:	f1a2 0201 	sub.w	r2, r2, #1
 
-  8020ce4:	d1ed      	bne.n	8020cc2 <__addsf3+0x92>
 
-  8020ce6:	fab0 fc80 	clz	ip, r0
 
-  8020cea:	f1ac 0c08 	sub.w	ip, ip, #8
 
-  8020cee:	ebb2 020c 	subs.w	r2, r2, ip
 
-  8020cf2:	fa00 f00c 	lsl.w	r0, r0, ip
 
-  8020cf6:	bfaa      	itet	ge
 
-  8020cf8:	eb00 50c2 	addge.w	r0, r0, r2, lsl #23
 
-  8020cfc:	4252      	neglt	r2, r2
 
-  8020cfe:	4318      	orrge	r0, r3
 
-  8020d00:	bfbc      	itt	lt
 
-  8020d02:	40d0      	lsrlt	r0, r2
 
-  8020d04:	4318      	orrlt	r0, r3
 
-  8020d06:	4770      	bx	lr
 
-  8020d08:	f092 0f00 	teq	r2, #0
 
-  8020d0c:	f481 0100 	eor.w	r1, r1, #8388608	; 0x800000
 
-  8020d10:	bf06      	itte	eq
 
-  8020d12:	f480 0000 	eoreq.w	r0, r0, #8388608	; 0x800000
 
-  8020d16:	3201      	addeq	r2, #1
 
-  8020d18:	3b01      	subne	r3, #1
 
-  8020d1a:	e7b5      	b.n	8020c88 <__addsf3+0x58>
 
-  8020d1c:	ea4f 0341 	mov.w	r3, r1, lsl #1
 
-  8020d20:	ea7f 6c22 	mvns.w	ip, r2, asr #24
 
-  8020d24:	bf18      	it	ne
 
-  8020d26:	ea7f 6c23 	mvnsne.w	ip, r3, asr #24
 
-  8020d2a:	d021      	beq.n	8020d70 <__addsf3+0x140>
 
-  8020d2c:	ea92 0f03 	teq	r2, r3
 
-  8020d30:	d004      	beq.n	8020d3c <__addsf3+0x10c>
 
-  8020d32:	f092 0f00 	teq	r2, #0
 
-  8020d36:	bf08      	it	eq
 
-  8020d38:	4608      	moveq	r0, r1
 
-  8020d3a:	4770      	bx	lr
 
-  8020d3c:	ea90 0f01 	teq	r0, r1
 
-  8020d40:	bf1c      	itt	ne
 
-  8020d42:	2000      	movne	r0, #0
 
-  8020d44:	4770      	bxne	lr
 
-  8020d46:	f012 4f7f 	tst.w	r2, #4278190080	; 0xff000000
 
-  8020d4a:	d104      	bne.n	8020d56 <__addsf3+0x126>
 
-  8020d4c:	0040      	lsls	r0, r0, #1
 
-  8020d4e:	bf28      	it	cs
 
-  8020d50:	f040 4000 	orrcs.w	r0, r0, #2147483648	; 0x80000000
 
-  8020d54:	4770      	bx	lr
 
-  8020d56:	f112 7200 	adds.w	r2, r2, #33554432	; 0x2000000
 
-  8020d5a:	bf3c      	itt	cc
 
-  8020d5c:	f500 0000 	addcc.w	r0, r0, #8388608	; 0x800000
 
-  8020d60:	4770      	bxcc	lr
 
-  8020d62:	f000 4300 	and.w	r3, r0, #2147483648	; 0x80000000
 
-  8020d66:	f043 40fe 	orr.w	r0, r3, #2130706432	; 0x7f000000
 
-  8020d6a:	f440 0000 	orr.w	r0, r0, #8388608	; 0x800000
 
-  8020d6e:	4770      	bx	lr
 
-  8020d70:	ea7f 6222 	mvns.w	r2, r2, asr #24
 
-  8020d74:	bf16      	itet	ne
 
-  8020d76:	4608      	movne	r0, r1
 
-  8020d78:	ea7f 6323 	mvnseq.w	r3, r3, asr #24
 
-  8020d7c:	4601      	movne	r1, r0
 
-  8020d7e:	0242      	lsls	r2, r0, #9
 
-  8020d80:	bf06      	itte	eq
 
-  8020d82:	ea5f 2341 	movseq.w	r3, r1, lsl #9
 
-  8020d86:	ea90 0f01 	teqeq	r0, r1
 
-  8020d8a:	f440 0080 	orrne.w	r0, r0, #4194304	; 0x400000
 
-  8020d8e:	4770      	bx	lr
 
- 08020d90 <__aeabi_ui2f>:
 
-  8020d90:	f04f 0300 	mov.w	r3, #0
 
-  8020d94:	e004      	b.n	8020da0 <__aeabi_i2f+0x8>
 
-  8020d96:	bf00      	nop
 
- 08020d98 <__aeabi_i2f>:
 
-  8020d98:	f010 4300 	ands.w	r3, r0, #2147483648	; 0x80000000
 
-  8020d9c:	bf48      	it	mi
 
-  8020d9e:	4240      	negmi	r0, r0
 
-  8020da0:	ea5f 0c00 	movs.w	ip, r0
 
-  8020da4:	bf08      	it	eq
 
-  8020da6:	4770      	bxeq	lr
 
-  8020da8:	f043 4396 	orr.w	r3, r3, #1258291200	; 0x4b000000
 
-  8020dac:	4601      	mov	r1, r0
 
-  8020dae:	f04f 0000 	mov.w	r0, #0
 
-  8020db2:	e01c      	b.n	8020dee <__aeabi_l2f+0x2a>
 
- 08020db4 <__aeabi_ul2f>:
 
-  8020db4:	ea50 0201 	orrs.w	r2, r0, r1
 
-  8020db8:	bf08      	it	eq
 
-  8020dba:	4770      	bxeq	lr
 
-  8020dbc:	f04f 0300 	mov.w	r3, #0
 
-  8020dc0:	e00a      	b.n	8020dd8 <__aeabi_l2f+0x14>
 
-  8020dc2:	bf00      	nop
 
- 08020dc4 <__aeabi_l2f>:
 
-  8020dc4:	ea50 0201 	orrs.w	r2, r0, r1
 
-  8020dc8:	bf08      	it	eq
 
-  8020dca:	4770      	bxeq	lr
 
-  8020dcc:	f011 4300 	ands.w	r3, r1, #2147483648	; 0x80000000
 
-  8020dd0:	d502      	bpl.n	8020dd8 <__aeabi_l2f+0x14>
 
-  8020dd2:	4240      	negs	r0, r0
 
-  8020dd4:	eb61 0141 	sbc.w	r1, r1, r1, lsl #1
 
-  8020dd8:	ea5f 0c01 	movs.w	ip, r1
 
-  8020ddc:	bf02      	ittt	eq
 
-  8020dde:	4684      	moveq	ip, r0
 
-  8020de0:	4601      	moveq	r1, r0
 
-  8020de2:	2000      	moveq	r0, #0
 
-  8020de4:	f043 43b6 	orr.w	r3, r3, #1526726656	; 0x5b000000
 
-  8020de8:	bf08      	it	eq
 
-  8020dea:	f1a3 5380 	subeq.w	r3, r3, #268435456	; 0x10000000
 
-  8020dee:	f5a3 0300 	sub.w	r3, r3, #8388608	; 0x800000
 
-  8020df2:	fabc f28c 	clz	r2, ip
 
-  8020df6:	3a08      	subs	r2, #8
 
-  8020df8:	eba3 53c2 	sub.w	r3, r3, r2, lsl #23
 
-  8020dfc:	db10      	blt.n	8020e20 <__aeabi_l2f+0x5c>
 
-  8020dfe:	fa01 fc02 	lsl.w	ip, r1, r2
 
-  8020e02:	4463      	add	r3, ip
 
-  8020e04:	fa00 fc02 	lsl.w	ip, r0, r2
 
-  8020e08:	f1c2 0220 	rsb	r2, r2, #32
 
-  8020e0c:	f1bc 4f00 	cmp.w	ip, #2147483648	; 0x80000000
 
-  8020e10:	fa20 f202 	lsr.w	r2, r0, r2
 
-  8020e14:	eb43 0002 	adc.w	r0, r3, r2
 
-  8020e18:	bf08      	it	eq
 
-  8020e1a:	f020 0001 	biceq.w	r0, r0, #1
 
-  8020e1e:	4770      	bx	lr
 
-  8020e20:	f102 0220 	add.w	r2, r2, #32
 
-  8020e24:	fa01 fc02 	lsl.w	ip, r1, r2
 
-  8020e28:	f1c2 0220 	rsb	r2, r2, #32
 
-  8020e2c:	ea50 004c 	orrs.w	r0, r0, ip, lsl #1
 
-  8020e30:	fa21 f202 	lsr.w	r2, r1, r2
 
-  8020e34:	eb43 0002 	adc.w	r0, r3, r2
 
-  8020e38:	bf08      	it	eq
 
-  8020e3a:	ea20 70dc 	biceq.w	r0, r0, ip, lsr #31
 
-  8020e3e:	4770      	bx	lr
 
- 08020e40 <__gesf2>:
 
-  8020e40:	f04f 3cff 	mov.w	ip, #4294967295
 
-  8020e44:	e006      	b.n	8020e54 <__cmpsf2+0x4>
 
-  8020e46:	bf00      	nop
 
- 08020e48 <__lesf2>:
 
-  8020e48:	f04f 0c01 	mov.w	ip, #1
 
-  8020e4c:	e002      	b.n	8020e54 <__cmpsf2+0x4>
 
-  8020e4e:	bf00      	nop
 
- 08020e50 <__cmpsf2>:
 
-  8020e50:	f04f 0c01 	mov.w	ip, #1
 
-  8020e54:	f84d cd04 	str.w	ip, [sp, #-4]!
 
-  8020e58:	ea4f 0240 	mov.w	r2, r0, lsl #1
 
-  8020e5c:	ea4f 0341 	mov.w	r3, r1, lsl #1
 
-  8020e60:	ea7f 6c22 	mvns.w	ip, r2, asr #24
 
-  8020e64:	bf18      	it	ne
 
-  8020e66:	ea7f 6c23 	mvnsne.w	ip, r3, asr #24
 
-  8020e6a:	d011      	beq.n	8020e90 <__cmpsf2+0x40>
 
-  8020e6c:	b001      	add	sp, #4
 
-  8020e6e:	ea52 0c53 	orrs.w	ip, r2, r3, lsr #1
 
-  8020e72:	bf18      	it	ne
 
-  8020e74:	ea90 0f01 	teqne	r0, r1
 
-  8020e78:	bf58      	it	pl
 
-  8020e7a:	ebb2 0003 	subspl.w	r0, r2, r3
 
-  8020e7e:	bf88      	it	hi
 
-  8020e80:	17c8      	asrhi	r0, r1, #31
 
-  8020e82:	bf38      	it	cc
 
-  8020e84:	ea6f 70e1 	mvncc.w	r0, r1, asr #31
 
-  8020e88:	bf18      	it	ne
 
-  8020e8a:	f040 0001 	orrne.w	r0, r0, #1
 
-  8020e8e:	4770      	bx	lr
 
-  8020e90:	ea7f 6c22 	mvns.w	ip, r2, asr #24
 
-  8020e94:	d102      	bne.n	8020e9c <__cmpsf2+0x4c>
 
-  8020e96:	ea5f 2c40 	movs.w	ip, r0, lsl #9
 
-  8020e9a:	d105      	bne.n	8020ea8 <__cmpsf2+0x58>
 
-  8020e9c:	ea7f 6c23 	mvns.w	ip, r3, asr #24
 
-  8020ea0:	d1e4      	bne.n	8020e6c <__cmpsf2+0x1c>
 
-  8020ea2:	ea5f 2c41 	movs.w	ip, r1, lsl #9
 
-  8020ea6:	d0e1      	beq.n	8020e6c <__cmpsf2+0x1c>
 
-  8020ea8:	f85d 0b04 	ldr.w	r0, [sp], #4
 
-  8020eac:	4770      	bx	lr
 
-  8020eae:	bf00      	nop
 
- 08020eb0 <__aeabi_cfrcmple>:
 
-  8020eb0:	4684      	mov	ip, r0
 
-  8020eb2:	4608      	mov	r0, r1
 
-  8020eb4:	4661      	mov	r1, ip
 
-  8020eb6:	e7ff      	b.n	8020eb8 <__aeabi_cfcmpeq>
 
- 08020eb8 <__aeabi_cfcmpeq>:
 
-  8020eb8:	b50f      	push	{r0, r1, r2, r3, lr}
 
-  8020eba:	f7ff ffc9 	bl	8020e50 <__cmpsf2>
 
-  8020ebe:	2800      	cmp	r0, #0
 
-  8020ec0:	bf48      	it	mi
 
-  8020ec2:	f110 0f00 	cmnmi.w	r0, #0
 
-  8020ec6:	bd0f      	pop	{r0, r1, r2, r3, pc}
 
- 08020ec8 <__aeabi_fcmpeq>:
 
-  8020ec8:	f84d ed08 	str.w	lr, [sp, #-8]!
 
-  8020ecc:	f7ff fff4 	bl	8020eb8 <__aeabi_cfcmpeq>
 
-  8020ed0:	bf0c      	ite	eq
 
-  8020ed2:	2001      	moveq	r0, #1
 
-  8020ed4:	2000      	movne	r0, #0
 
-  8020ed6:	f85d fb08 	ldr.w	pc, [sp], #8
 
-  8020eda:	bf00      	nop
 
- 08020edc <__aeabi_fcmplt>:
 
-  8020edc:	f84d ed08 	str.w	lr, [sp, #-8]!
 
-  8020ee0:	f7ff ffea 	bl	8020eb8 <__aeabi_cfcmpeq>
 
-  8020ee4:	bf34      	ite	cc
 
-  8020ee6:	2001      	movcc	r0, #1
 
-  8020ee8:	2000      	movcs	r0, #0
 
-  8020eea:	f85d fb08 	ldr.w	pc, [sp], #8
 
-  8020eee:	bf00      	nop
 
- 08020ef0 <__aeabi_fcmple>:
 
-  8020ef0:	f84d ed08 	str.w	lr, [sp, #-8]!
 
-  8020ef4:	f7ff ffe0 	bl	8020eb8 <__aeabi_cfcmpeq>
 
-  8020ef8:	bf94      	ite	ls
 
-  8020efa:	2001      	movls	r0, #1
 
-  8020efc:	2000      	movhi	r0, #0
 
-  8020efe:	f85d fb08 	ldr.w	pc, [sp], #8
 
-  8020f02:	bf00      	nop
 
- 08020f04 <__aeabi_fcmpge>:
 
-  8020f04:	f84d ed08 	str.w	lr, [sp, #-8]!
 
-  8020f08:	f7ff ffd2 	bl	8020eb0 <__aeabi_cfrcmple>
 
-  8020f0c:	bf94      	ite	ls
 
-  8020f0e:	2001      	movls	r0, #1
 
-  8020f10:	2000      	movhi	r0, #0
 
-  8020f12:	f85d fb08 	ldr.w	pc, [sp], #8
 
-  8020f16:	bf00      	nop
 
- 08020f18 <__aeabi_fcmpgt>:
 
-  8020f18:	f84d ed08 	str.w	lr, [sp, #-8]!
 
-  8020f1c:	f7ff ffc8 	bl	8020eb0 <__aeabi_cfrcmple>
 
-  8020f20:	bf34      	ite	cc
 
-  8020f22:	2001      	movcc	r0, #1
 
-  8020f24:	2000      	movcs	r0, #0
 
-  8020f26:	f85d fb08 	ldr.w	pc, [sp], #8
 
-  8020f2a:	bf00      	nop
 
- 08020f2c <__aeabi_uldivmod>:
 
-  8020f2c:	b94b      	cbnz	r3, 8020f42 <__aeabi_uldivmod+0x16>
 
-  8020f2e:	b942      	cbnz	r2, 8020f42 <__aeabi_uldivmod+0x16>
 
-  8020f30:	2900      	cmp	r1, #0
 
-  8020f32:	bf08      	it	eq
 
-  8020f34:	2800      	cmpeq	r0, #0
 
-  8020f36:	d002      	beq.n	8020f3e <__aeabi_uldivmod+0x12>
 
-  8020f38:	f04f 31ff 	mov.w	r1, #4294967295
 
-  8020f3c:	4608      	mov	r0, r1
 
-  8020f3e:	f000 b83b 	b.w	8020fb8 <__aeabi_idiv0>
 
-  8020f42:	b082      	sub	sp, #8
 
-  8020f44:	46ec      	mov	ip, sp
 
-  8020f46:	e92d 5000 	stmdb	sp!, {ip, lr}
 
-  8020f4a:	f000 f81d 	bl	8020f88 <__gnu_uldivmod_helper>
 
-  8020f4e:	f8dd e004 	ldr.w	lr, [sp, #4]
 
-  8020f52:	b002      	add	sp, #8
 
-  8020f54:	bc0c      	pop	{r2, r3}
 
-  8020f56:	4770      	bx	lr
 
- 08020f58 <__gnu_ldivmod_helper>:
 
-  8020f58:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
 
-  8020f5c:	4690      	mov	r8, r2
 
-  8020f5e:	4699      	mov	r9, r3
 
-  8020f60:	4606      	mov	r6, r0
 
-  8020f62:	460f      	mov	r7, r1
 
-  8020f64:	f000 f82a 	bl	8020fbc <__divdi3>
 
-  8020f68:	9b08      	ldr	r3, [sp, #32]
 
-  8020f6a:	fba8 4500 	umull	r4, r5, r8, r0
 
-  8020f6e:	fb08 f801 	mul.w	r8, r8, r1
 
-  8020f72:	fb00 8209 	mla	r2, r0, r9, r8
 
-  8020f76:	1955      	adds	r5, r2, r5
 
-  8020f78:	1b34      	subs	r4, r6, r4
 
-  8020f7a:	eb67 0505 	sbc.w	r5, r7, r5
 
-  8020f7e:	e9c3 4500 	strd	r4, r5, [r3]
 
-  8020f82:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
 
-  8020f86:	bf00      	nop
 
- 08020f88 <__gnu_uldivmod_helper>:
 
-  8020f88:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
 
-  8020f8c:	4690      	mov	r8, r2
 
-  8020f8e:	4606      	mov	r6, r0
 
-  8020f90:	460f      	mov	r7, r1
 
-  8020f92:	461d      	mov	r5, r3
 
-  8020f94:	f000 f9c8 	bl	8021328 <__udivdi3>
 
-  8020f98:	fb00 f305 	mul.w	r3, r0, r5
 
-  8020f9c:	fba0 4508 	umull	r4, r5, r0, r8
 
-  8020fa0:	fb08 3801 	mla	r8, r8, r1, r3
 
-  8020fa4:	9b06      	ldr	r3, [sp, #24]
 
-  8020fa6:	4445      	add	r5, r8
 
-  8020fa8:	1b34      	subs	r4, r6, r4
 
-  8020faa:	eb67 0505 	sbc.w	r5, r7, r5
 
-  8020fae:	e9c3 4500 	strd	r4, r5, [r3]
 
-  8020fb2:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 
-  8020fb6:	bf00      	nop
 
- 08020fb8 <__aeabi_idiv0>:
 
-  8020fb8:	4770      	bx	lr
 
-  8020fba:	bf00      	nop
 
- 08020fbc <__divdi3>:
 
-  8020fbc:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-  8020fc0:	2500      	movs	r5, #0
 
-  8020fc2:	2900      	cmp	r1, #0
 
-  8020fc4:	b085      	sub	sp, #20
 
-  8020fc6:	461c      	mov	r4, r3
 
-  8020fc8:	f2c0 8149 	blt.w	802125e <__divdi3+0x2a2>
 
-  8020fcc:	2c00      	cmp	r4, #0
 
-  8020fce:	f2c0 8141 	blt.w	8021254 <__divdi3+0x298>
 
-  8020fd2:	468c      	mov	ip, r1
 
-  8020fd4:	460f      	mov	r7, r1
 
-  8020fd6:	4682      	mov	sl, r0
 
-  8020fd8:	4691      	mov	r9, r2
 
-  8020fda:	4614      	mov	r4, r2
 
-  8020fdc:	4606      	mov	r6, r0
 
-  8020fde:	4619      	mov	r1, r3
 
-  8020fe0:	2b00      	cmp	r3, #0
 
-  8020fe2:	d14b      	bne.n	802107c <__divdi3+0xc0>
 
-  8020fe4:	4562      	cmp	r2, ip
 
-  8020fe6:	d959      	bls.n	802109c <__divdi3+0xe0>
 
-  8020fe8:	fab2 f382 	clz	r3, r2
 
-  8020fec:	b143      	cbz	r3, 8021000 <__divdi3+0x44>
 
-  8020fee:	f1c3 0220 	rsb	r2, r3, #32
 
-  8020ff2:	fa0c f703 	lsl.w	r7, ip, r3
 
-  8020ff6:	fa20 f202 	lsr.w	r2, r0, r2
 
-  8020ffa:	409c      	lsls	r4, r3
 
-  8020ffc:	4317      	orrs	r7, r2
 
-  8020ffe:	409e      	lsls	r6, r3
 
-  8021000:	ea4f 4814 	mov.w	r8, r4, lsr #16
 
-  8021004:	4638      	mov	r0, r7
 
-  8021006:	4641      	mov	r1, r8
 
-  8021008:	fa1f f984 	uxth.w	r9, r4
 
-  802100c:	f000 fb18 	bl	8021640 <__aeabi_uidiv>
 
-  8021010:	4641      	mov	r1, r8
 
-  8021012:	4682      	mov	sl, r0
 
-  8021014:	4638      	mov	r0, r7
 
-  8021016:	f000 fc41 	bl	802189c <__aeabi_uidivmod>
 
-  802101a:	0c33      	lsrs	r3, r6, #16
 
-  802101c:	fb09 f00a 	mul.w	r0, r9, sl
 
-  8021020:	ea43 4101 	orr.w	r1, r3, r1, lsl #16
 
-  8021024:	4288      	cmp	r0, r1
 
-  8021026:	d90a      	bls.n	802103e <__divdi3+0x82>
 
-  8021028:	1909      	adds	r1, r1, r4
 
-  802102a:	f10a 32ff 	add.w	r2, sl, #4294967295
 
-  802102e:	d205      	bcs.n	802103c <__divdi3+0x80>
 
-  8021030:	4288      	cmp	r0, r1
 
-  8021032:	bf84      	itt	hi
 
-  8021034:	f1aa 0a02 	subhi.w	sl, sl, #2
 
-  8021038:	1909      	addhi	r1, r1, r4
 
-  802103a:	d800      	bhi.n	802103e <__divdi3+0x82>
 
-  802103c:	4692      	mov	sl, r2
 
-  802103e:	ebc0 0b01 	rsb	fp, r0, r1
 
-  8021042:	4641      	mov	r1, r8
 
-  8021044:	4658      	mov	r0, fp
 
-  8021046:	b2b6      	uxth	r6, r6
 
-  8021048:	f000 fafa 	bl	8021640 <__aeabi_uidiv>
 
-  802104c:	4641      	mov	r1, r8
 
-  802104e:	4607      	mov	r7, r0
 
-  8021050:	4658      	mov	r0, fp
 
-  8021052:	f000 fc23 	bl	802189c <__aeabi_uidivmod>
 
-  8021056:	fb09 f907 	mul.w	r9, r9, r7
 
-  802105a:	ea46 4101 	orr.w	r1, r6, r1, lsl #16
 
-  802105e:	4589      	cmp	r9, r1
 
-  8021060:	d907      	bls.n	8021072 <__divdi3+0xb6>
 
-  8021062:	1e7b      	subs	r3, r7, #1
 
-  8021064:	190c      	adds	r4, r1, r4
 
-  8021066:	f080 8157 	bcs.w	8021318 <__divdi3+0x35c>
 
-  802106a:	3f02      	subs	r7, #2
 
-  802106c:	45a1      	cmp	r9, r4
 
-  802106e:	f240 8153 	bls.w	8021318 <__divdi3+0x35c>
 
-  8021072:	ea47 400a 	orr.w	r0, r7, sl, lsl #16
 
-  8021076:	f04f 0800 	mov.w	r8, #0
 
-  802107a:	e004      	b.n	8021086 <__divdi3+0xca>
 
-  802107c:	4563      	cmp	r3, ip
 
-  802107e:	d958      	bls.n	8021132 <__divdi3+0x176>
 
-  8021080:	f04f 0800 	mov.w	r8, #0
 
-  8021084:	4640      	mov	r0, r8
 
-  8021086:	4602      	mov	r2, r0
 
-  8021088:	4643      	mov	r3, r8
 
-  802108a:	b115      	cbz	r5, 8021092 <__divdi3+0xd6>
 
-  802108c:	4252      	negs	r2, r2
 
-  802108e:	eb63 0343 	sbc.w	r3, r3, r3, lsl #1
 
-  8021092:	4610      	mov	r0, r2
 
-  8021094:	4619      	mov	r1, r3
 
-  8021096:	b005      	add	sp, #20
 
-  8021098:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
-  802109c:	b922      	cbnz	r2, 80210a8 <__divdi3+0xec>
 
-  802109e:	2001      	movs	r0, #1
 
-  80210a0:	4611      	mov	r1, r2
 
-  80210a2:	f000 facd 	bl	8021640 <__aeabi_uidiv>
 
-  80210a6:	4604      	mov	r4, r0
 
-  80210a8:	fab4 f384 	clz	r3, r4
 
-  80210ac:	2b00      	cmp	r3, #0
 
-  80210ae:	f040 80dc 	bne.w	802126a <__divdi3+0x2ae>
 
-  80210b2:	1b3f      	subs	r7, r7, r4
 
-  80210b4:	ea4f 4914 	mov.w	r9, r4, lsr #16
 
-  80210b8:	fa1f fa84 	uxth.w	sl, r4
 
-  80210bc:	f04f 0801 	mov.w	r8, #1
 
-  80210c0:	4649      	mov	r1, r9
 
-  80210c2:	4638      	mov	r0, r7
 
-  80210c4:	f000 fabc 	bl	8021640 <__aeabi_uidiv>
 
-  80210c8:	4649      	mov	r1, r9
 
-  80210ca:	4683      	mov	fp, r0
 
-  80210cc:	4638      	mov	r0, r7
 
-  80210ce:	f000 fbe5 	bl	802189c <__aeabi_uidivmod>
 
-  80210d2:	0c33      	lsrs	r3, r6, #16
 
-  80210d4:	fb0a f00b 	mul.w	r0, sl, fp
 
-  80210d8:	ea43 4101 	orr.w	r1, r3, r1, lsl #16
 
-  80210dc:	4288      	cmp	r0, r1
 
-  80210de:	d90b      	bls.n	80210f8 <__divdi3+0x13c>
 
-  80210e0:	1909      	adds	r1, r1, r4
 
-  80210e2:	f10b 33ff 	add.w	r3, fp, #4294967295
 
-  80210e6:	f080 8115 	bcs.w	8021314 <__divdi3+0x358>
 
-  80210ea:	4288      	cmp	r0, r1
 
-  80210ec:	bf84      	itt	hi
 
-  80210ee:	f1ab 0b02 	subhi.w	fp, fp, #2
 
-  80210f2:	1909      	addhi	r1, r1, r4
 
-  80210f4:	f240 810e 	bls.w	8021314 <__divdi3+0x358>
 
-  80210f8:	1a0b      	subs	r3, r1, r0
 
-  80210fa:	4649      	mov	r1, r9
 
-  80210fc:	4618      	mov	r0, r3
 
-  80210fe:	9301      	str	r3, [sp, #4]
 
-  8021100:	f000 fa9e 	bl	8021640 <__aeabi_uidiv>
 
-  8021104:	9b01      	ldr	r3, [sp, #4]
 
-  8021106:	4649      	mov	r1, r9
 
-  8021108:	b2b6      	uxth	r6, r6
 
-  802110a:	4607      	mov	r7, r0
 
-  802110c:	4618      	mov	r0, r3
 
-  802110e:	f000 fbc5 	bl	802189c <__aeabi_uidivmod>
 
-  8021112:	fb0a fa07 	mul.w	sl, sl, r7
 
-  8021116:	ea46 4101 	orr.w	r1, r6, r1, lsl #16
 
-  802111a:	458a      	cmp	sl, r1
 
-  802111c:	d906      	bls.n	802112c <__divdi3+0x170>
 
-  802111e:	1e7b      	subs	r3, r7, #1
 
-  8021120:	190c      	adds	r4, r1, r4
 
-  8021122:	d202      	bcs.n	802112a <__divdi3+0x16e>
 
-  8021124:	3f02      	subs	r7, #2
 
-  8021126:	45a2      	cmp	sl, r4
 
-  8021128:	d800      	bhi.n	802112c <__divdi3+0x170>
 
-  802112a:	461f      	mov	r7, r3
 
-  802112c:	ea47 400b 	orr.w	r0, r7, fp, lsl #16
 
-  8021130:	e7a9      	b.n	8021086 <__divdi3+0xca>
 
-  8021132:	fab3 f483 	clz	r4, r3
 
-  8021136:	2c00      	cmp	r4, #0
 
-  8021138:	f000 80e4 	beq.w	8021304 <__divdi3+0x348>
 
-  802113c:	f1c4 0320 	rsb	r3, r4, #32
 
-  8021140:	fa01 f104 	lsl.w	r1, r1, r4
 
-  8021144:	fa22 fa03 	lsr.w	sl, r2, r3
 
-  8021148:	fa2c fb03 	lsr.w	fp, ip, r3
 
-  802114c:	ea4a 0a01 	orr.w	sl, sl, r1
 
-  8021150:	fa20 f803 	lsr.w	r8, r0, r3
 
-  8021154:	fa0c fc04 	lsl.w	ip, ip, r4
 
-  8021158:	4658      	mov	r0, fp
 
-  802115a:	ea4f 471a 	mov.w	r7, sl, lsr #16
 
-  802115e:	ea48 080c 	orr.w	r8, r8, ip
 
-  8021162:	4639      	mov	r1, r7
 
-  8021164:	fa02 f904 	lsl.w	r9, r2, r4
 
-  8021168:	f8cd 900c 	str.w	r9, [sp, #12]
 
-  802116c:	f000 fa68 	bl	8021640 <__aeabi_uidiv>
 
-  8021170:	4639      	mov	r1, r7
 
-  8021172:	4681      	mov	r9, r0
 
-  8021174:	4658      	mov	r0, fp
 
-  8021176:	f000 fb91 	bl	802189c <__aeabi_uidivmod>
 
-  802117a:	fa1f fc8a 	uxth.w	ip, sl
 
-  802117e:	ea4f 4318 	mov.w	r3, r8, lsr #16
 
-  8021182:	fb0c f009 	mul.w	r0, ip, r9
 
-  8021186:	ea43 4301 	orr.w	r3, r3, r1, lsl #16
 
-  802118a:	4298      	cmp	r0, r3
 
-  802118c:	d90c      	bls.n	80211a8 <__divdi3+0x1ec>
 
-  802118e:	eb13 030a 	adds.w	r3, r3, sl
 
-  8021192:	f109 31ff 	add.w	r1, r9, #4294967295
 
-  8021196:	f080 80c3 	bcs.w	8021320 <__divdi3+0x364>
 
-  802119a:	4298      	cmp	r0, r3
 
-  802119c:	bf84      	itt	hi
 
-  802119e:	f1a9 0902 	subhi.w	r9, r9, #2
 
-  80211a2:	4453      	addhi	r3, sl
 
-  80211a4:	f240 80bc 	bls.w	8021320 <__divdi3+0x364>
 
-  80211a8:	1a1b      	subs	r3, r3, r0
 
-  80211aa:	4639      	mov	r1, r7
 
-  80211ac:	4618      	mov	r0, r3
 
-  80211ae:	f8cd c008 	str.w	ip, [sp, #8]
 
-  80211b2:	9301      	str	r3, [sp, #4]
 
-  80211b4:	f000 fa44 	bl	8021640 <__aeabi_uidiv>
 
-  80211b8:	9b01      	ldr	r3, [sp, #4]
 
-  80211ba:	4639      	mov	r1, r7
 
-  80211bc:	fa1f f888 	uxth.w	r8, r8
 
-  80211c0:	4683      	mov	fp, r0
 
-  80211c2:	4618      	mov	r0, r3
 
-  80211c4:	f000 fb6a 	bl	802189c <__aeabi_uidivmod>
 
-  80211c8:	f8dd c008 	ldr.w	ip, [sp, #8]
 
-  80211cc:	fb0c f30b 	mul.w	r3, ip, fp
 
-  80211d0:	ea48 4101 	orr.w	r1, r8, r1, lsl #16
 
-  80211d4:	428b      	cmp	r3, r1
 
-  80211d6:	d90c      	bls.n	80211f2 <__divdi3+0x236>
 
-  80211d8:	eb11 010a 	adds.w	r1, r1, sl
 
-  80211dc:	f10b 30ff 	add.w	r0, fp, #4294967295
 
-  80211e0:	f080 809c 	bcs.w	802131c <__divdi3+0x360>
 
-  80211e4:	428b      	cmp	r3, r1
 
-  80211e6:	bf84      	itt	hi
 
-  80211e8:	f1ab 0b02 	subhi.w	fp, fp, #2
 
-  80211ec:	4451      	addhi	r1, sl
 
-  80211ee:	f240 8095 	bls.w	802131c <__divdi3+0x360>
 
-  80211f2:	9f03      	ldr	r7, [sp, #12]
 
-  80211f4:	ea4b 4009 	orr.w	r0, fp, r9, lsl #16
 
-  80211f8:	1ac9      	subs	r1, r1, r3
 
-  80211fa:	fa1f fc80 	uxth.w	ip, r0
 
-  80211fe:	b2ba      	uxth	r2, r7
 
-  8021200:	ea4f 4917 	mov.w	r9, r7, lsr #16
 
-  8021204:	0c07      	lsrs	r7, r0, #16
 
-  8021206:	fb02 f80c 	mul.w	r8, r2, ip
 
-  802120a:	fb02 f207 	mul.w	r2, r2, r7
 
-  802120e:	fb09 230c 	mla	r3, r9, ip, r2
 
-  8021212:	fb09 f907 	mul.w	r9, r9, r7
 
-  8021216:	eb03 4318 	add.w	r3, r3, r8, lsr #16
 
-  802121a:	429a      	cmp	r2, r3
 
-  802121c:	bf88      	it	hi
 
-  802121e:	f509 3980 	addhi.w	r9, r9, #65536	; 0x10000
 
-  8021222:	eb09 4913 	add.w	r9, r9, r3, lsr #16
 
-  8021226:	4549      	cmp	r1, r9
 
-  8021228:	d310      	bcc.n	802124c <__divdi3+0x290>
 
-  802122a:	fa1f f888 	uxth.w	r8, r8
 
-  802122e:	bf14      	ite	ne
 
-  8021230:	2200      	movne	r2, #0
 
-  8021232:	2201      	moveq	r2, #1
 
-  8021234:	fa06 f404 	lsl.w	r4, r6, r4
 
-  8021238:	eb08 4303 	add.w	r3, r8, r3, lsl #16
 
-  802123c:	429c      	cmp	r4, r3
 
-  802123e:	bf2c      	ite	cs
 
-  8021240:	2300      	movcs	r3, #0
 
-  8021242:	f002 0301 	andcc.w	r3, r2, #1
 
-  8021246:	2b00      	cmp	r3, #0
 
-  8021248:	f43f af15 	beq.w	8021076 <__divdi3+0xba>
 
-  802124c:	3801      	subs	r0, #1
 
-  802124e:	f04f 0800 	mov.w	r8, #0
 
-  8021252:	e718      	b.n	8021086 <__divdi3+0xca>
 
-  8021254:	4252      	negs	r2, r2
 
-  8021256:	eb63 0343 	sbc.w	r3, r3, r3, lsl #1
 
-  802125a:	43ed      	mvns	r5, r5
 
-  802125c:	e6b9      	b.n	8020fd2 <__divdi3+0x16>
 
-  802125e:	4240      	negs	r0, r0
 
-  8021260:	eb61 0141 	sbc.w	r1, r1, r1, lsl #1
 
-  8021264:	f04f 35ff 	mov.w	r5, #4294967295
 
-  8021268:	e6b0      	b.n	8020fcc <__divdi3+0x10>
 
-  802126a:	409c      	lsls	r4, r3
 
-  802126c:	f1c3 0b20 	rsb	fp, r3, #32
 
-  8021270:	fa27 f80b 	lsr.w	r8, r7, fp
 
-  8021274:	fa07 f703 	lsl.w	r7, r7, r3
 
-  8021278:	ea4f 4914 	mov.w	r9, r4, lsr #16
 
-  802127c:	4640      	mov	r0, r8
 
-  802127e:	4649      	mov	r1, r9
 
-  8021280:	fa26 fb0b 	lsr.w	fp, r6, fp
 
-  8021284:	409e      	lsls	r6, r3
 
-  8021286:	f000 f9db 	bl	8021640 <__aeabi_uidiv>
 
-  802128a:	4649      	mov	r1, r9
 
-  802128c:	fa1f fa84 	uxth.w	sl, r4
 
-  8021290:	ea4b 0b07 	orr.w	fp, fp, r7
 
-  8021294:	4603      	mov	r3, r0
 
-  8021296:	4640      	mov	r0, r8
 
-  8021298:	9301      	str	r3, [sp, #4]
 
-  802129a:	f000 faff 	bl	802189c <__aeabi_uidivmod>
 
-  802129e:	9b01      	ldr	r3, [sp, #4]
 
-  80212a0:	ea4f 421b 	mov.w	r2, fp, lsr #16
 
-  80212a4:	fb0a f003 	mul.w	r0, sl, r3
 
-  80212a8:	ea42 4101 	orr.w	r1, r2, r1, lsl #16
 
-  80212ac:	4288      	cmp	r0, r1
 
-  80212ae:	d906      	bls.n	80212be <__divdi3+0x302>
 
-  80212b0:	1e5a      	subs	r2, r3, #1
 
-  80212b2:	1909      	adds	r1, r1, r4
 
-  80212b4:	d236      	bcs.n	8021324 <__divdi3+0x368>
 
-  80212b6:	4288      	cmp	r0, r1
 
-  80212b8:	d934      	bls.n	8021324 <__divdi3+0x368>
 
-  80212ba:	3b02      	subs	r3, #2
 
-  80212bc:	1909      	adds	r1, r1, r4
 
-  80212be:	1a0f      	subs	r7, r1, r0
 
-  80212c0:	4649      	mov	r1, r9
 
-  80212c2:	4638      	mov	r0, r7
 
-  80212c4:	9301      	str	r3, [sp, #4]
 
-  80212c6:	f000 f9bb 	bl	8021640 <__aeabi_uidiv>
 
-  80212ca:	4649      	mov	r1, r9
 
-  80212cc:	fa1f fb8b 	uxth.w	fp, fp
 
-  80212d0:	4680      	mov	r8, r0
 
-  80212d2:	4638      	mov	r0, r7
 
-  80212d4:	f000 fae2 	bl	802189c <__aeabi_uidivmod>
 
-  80212d8:	9b01      	ldr	r3, [sp, #4]
 
-  80212da:	fb0a f708 	mul.w	r7, sl, r8
 
-  80212de:	ea4b 4101 	orr.w	r1, fp, r1, lsl #16
 
-  80212e2:	428f      	cmp	r7, r1
 
-  80212e4:	d90a      	bls.n	80212fc <__divdi3+0x340>
 
-  80212e6:	1909      	adds	r1, r1, r4
 
-  80212e8:	f108 32ff 	add.w	r2, r8, #4294967295
 
-  80212ec:	d205      	bcs.n	80212fa <__divdi3+0x33e>
 
-  80212ee:	428f      	cmp	r7, r1
 
-  80212f0:	bf84      	itt	hi
 
-  80212f2:	f1a8 0802 	subhi.w	r8, r8, #2
 
-  80212f6:	1909      	addhi	r1, r1, r4
 
-  80212f8:	d800      	bhi.n	80212fc <__divdi3+0x340>
 
-  80212fa:	4690      	mov	r8, r2
 
-  80212fc:	1bcf      	subs	r7, r1, r7
 
-  80212fe:	ea48 4803 	orr.w	r8, r8, r3, lsl #16
 
-  8021302:	e6dd      	b.n	80210c0 <__divdi3+0x104>
 
-  8021304:	2001      	movs	r0, #1
 
-  8021306:	4563      	cmp	r3, ip
 
-  8021308:	bf28      	it	cs
 
-  802130a:	4552      	cmpcs	r2, sl
 
-  802130c:	46a0      	mov	r8, r4
 
-  802130e:	f67f aeba 	bls.w	8021086 <__divdi3+0xca>
 
-  8021312:	e6b5      	b.n	8021080 <__divdi3+0xc4>
 
-  8021314:	469b      	mov	fp, r3
 
-  8021316:	e6ef      	b.n	80210f8 <__divdi3+0x13c>
 
-  8021318:	461f      	mov	r7, r3
 
-  802131a:	e6aa      	b.n	8021072 <__divdi3+0xb6>
 
-  802131c:	4683      	mov	fp, r0
 
-  802131e:	e768      	b.n	80211f2 <__divdi3+0x236>
 
-  8021320:	4689      	mov	r9, r1
 
-  8021322:	e741      	b.n	80211a8 <__divdi3+0x1ec>
 
-  8021324:	4613      	mov	r3, r2
 
-  8021326:	e7ca      	b.n	80212be <__divdi3+0x302>
 
- 08021328 <__udivdi3>:
 
-  8021328:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-  802132c:	4606      	mov	r6, r0
 
-  802132e:	b083      	sub	sp, #12
 
-  8021330:	460d      	mov	r5, r1
 
-  8021332:	4614      	mov	r4, r2
 
-  8021334:	4607      	mov	r7, r0
 
-  8021336:	4688      	mov	r8, r1
 
-  8021338:	2b00      	cmp	r3, #0
 
-  802133a:	d14a      	bne.n	80213d2 <__udivdi3+0xaa>
 
-  802133c:	428a      	cmp	r2, r1
 
-  802133e:	d955      	bls.n	80213ec <__udivdi3+0xc4>
 
-  8021340:	fab2 f382 	clz	r3, r2
 
-  8021344:	b14b      	cbz	r3, 802135a <__udivdi3+0x32>
 
-  8021346:	f1c3 0220 	rsb	r2, r3, #32
 
-  802134a:	fa01 f803 	lsl.w	r8, r1, r3
 
-  802134e:	fa20 f202 	lsr.w	r2, r0, r2
 
-  8021352:	409c      	lsls	r4, r3
 
-  8021354:	ea42 0808 	orr.w	r8, r2, r8
 
-  8021358:	409f      	lsls	r7, r3
 
-  802135a:	0c25      	lsrs	r5, r4, #16
 
-  802135c:	4640      	mov	r0, r8
 
-  802135e:	4629      	mov	r1, r5
 
-  8021360:	fa1f fa84 	uxth.w	sl, r4
 
-  8021364:	f000 f96c 	bl	8021640 <__aeabi_uidiv>
 
-  8021368:	4629      	mov	r1, r5
 
-  802136a:	4681      	mov	r9, r0
 
-  802136c:	4640      	mov	r0, r8
 
-  802136e:	f000 fa95 	bl	802189c <__aeabi_uidivmod>
 
-  8021372:	0c3b      	lsrs	r3, r7, #16
 
-  8021374:	fb0a f009 	mul.w	r0, sl, r9
 
-  8021378:	ea43 4101 	orr.w	r1, r3, r1, lsl #16
 
-  802137c:	4288      	cmp	r0, r1
 
-  802137e:	d90a      	bls.n	8021396 <__udivdi3+0x6e>
 
-  8021380:	1909      	adds	r1, r1, r4
 
-  8021382:	f109 32ff 	add.w	r2, r9, #4294967295
 
-  8021386:	d205      	bcs.n	8021394 <__udivdi3+0x6c>
 
-  8021388:	4288      	cmp	r0, r1
 
-  802138a:	bf84      	itt	hi
 
-  802138c:	f1a9 0902 	subhi.w	r9, r9, #2
 
-  8021390:	1909      	addhi	r1, r1, r4
 
-  8021392:	d800      	bhi.n	8021396 <__udivdi3+0x6e>
 
-  8021394:	4691      	mov	r9, r2
 
-  8021396:	ebc0 0801 	rsb	r8, r0, r1
 
-  802139a:	4629      	mov	r1, r5
 
-  802139c:	4640      	mov	r0, r8
 
-  802139e:	b2bf      	uxth	r7, r7
 
-  80213a0:	f000 f94e 	bl	8021640 <__aeabi_uidiv>
 
-  80213a4:	4629      	mov	r1, r5
 
-  80213a6:	4606      	mov	r6, r0
 
-  80213a8:	4640      	mov	r0, r8
 
-  80213aa:	f000 fa77 	bl	802189c <__aeabi_uidivmod>
 
-  80213ae:	fb0a fa06 	mul.w	sl, sl, r6
 
-  80213b2:	ea47 4101 	orr.w	r1, r7, r1, lsl #16
 
-  80213b6:	458a      	cmp	sl, r1
 
-  80213b8:	d907      	bls.n	80213ca <__udivdi3+0xa2>
 
-  80213ba:	1e73      	subs	r3, r6, #1
 
-  80213bc:	190c      	adds	r4, r1, r4
 
-  80213be:	f080 8122 	bcs.w	8021606 <__udivdi3+0x2de>
 
-  80213c2:	3e02      	subs	r6, #2
 
-  80213c4:	45a2      	cmp	sl, r4
 
-  80213c6:	f240 811e 	bls.w	8021606 <__udivdi3+0x2de>
 
-  80213ca:	ea46 4009 	orr.w	r0, r6, r9, lsl #16
 
-  80213ce:	2600      	movs	r6, #0
 
-  80213d0:	e058      	b.n	8021484 <__udivdi3+0x15c>
 
-  80213d2:	428b      	cmp	r3, r1
 
-  80213d4:	d854      	bhi.n	8021480 <__udivdi3+0x158>
 
-  80213d6:	fab3 f483 	clz	r4, r3
 
-  80213da:	2c00      	cmp	r4, #0
 
-  80213dc:	d156      	bne.n	802148c <__udivdi3+0x164>
 
-  80213de:	428b      	cmp	r3, r1
 
-  80213e0:	bf28      	it	cs
 
-  80213e2:	4282      	cmpcs	r2, r0
 
-  80213e4:	d84c      	bhi.n	8021480 <__udivdi3+0x158>
 
-  80213e6:	4626      	mov	r6, r4
 
-  80213e8:	2001      	movs	r0, #1
 
-  80213ea:	e04b      	b.n	8021484 <__udivdi3+0x15c>
 
-  80213ec:	b922      	cbnz	r2, 80213f8 <__udivdi3+0xd0>
 
-  80213ee:	2001      	movs	r0, #1
 
-  80213f0:	4611      	mov	r1, r2
 
-  80213f2:	f000 f925 	bl	8021640 <__aeabi_uidiv>
 
-  80213f6:	4604      	mov	r4, r0
 
-  80213f8:	fab4 f384 	clz	r3, r4
 
-  80213fc:	2b00      	cmp	r3, #0
 
-  80213fe:	f040 80b9 	bne.w	8021574 <__udivdi3+0x24c>
 
-  8021402:	1b2d      	subs	r5, r5, r4
 
-  8021404:	ea4f 4814 	mov.w	r8, r4, lsr #16
 
-  8021408:	fa1f fa84 	uxth.w	sl, r4
 
-  802140c:	2601      	movs	r6, #1
 
-  802140e:	4641      	mov	r1, r8
 
-  8021410:	4628      	mov	r0, r5
 
-  8021412:	f000 f915 	bl	8021640 <__aeabi_uidiv>
 
-  8021416:	4641      	mov	r1, r8
 
-  8021418:	4681      	mov	r9, r0
 
-  802141a:	4628      	mov	r0, r5
 
-  802141c:	f000 fa3e 	bl	802189c <__aeabi_uidivmod>
 
-  8021420:	0c3b      	lsrs	r3, r7, #16
 
-  8021422:	fb0a f009 	mul.w	r0, sl, r9
 
-  8021426:	ea43 4101 	orr.w	r1, r3, r1, lsl #16
 
-  802142a:	4288      	cmp	r0, r1
 
-  802142c:	d90b      	bls.n	8021446 <__udivdi3+0x11e>
 
-  802142e:	1909      	adds	r1, r1, r4
 
-  8021430:	f109 33ff 	add.w	r3, r9, #4294967295
 
-  8021434:	f080 80e9 	bcs.w	802160a <__udivdi3+0x2e2>
 
-  8021438:	4288      	cmp	r0, r1
 
-  802143a:	bf84      	itt	hi
 
-  802143c:	f1a9 0902 	subhi.w	r9, r9, #2
 
-  8021440:	1909      	addhi	r1, r1, r4
 
-  8021442:	f240 80e2 	bls.w	802160a <__udivdi3+0x2e2>
 
-  8021446:	ebc0 0b01 	rsb	fp, r0, r1
 
-  802144a:	4641      	mov	r1, r8
 
-  802144c:	4658      	mov	r0, fp
 
-  802144e:	b2bf      	uxth	r7, r7
 
-  8021450:	f000 f8f6 	bl	8021640 <__aeabi_uidiv>
 
-  8021454:	4641      	mov	r1, r8
 
-  8021456:	4605      	mov	r5, r0
 
-  8021458:	4658      	mov	r0, fp
 
-  802145a:	f000 fa1f 	bl	802189c <__aeabi_uidivmod>
 
-  802145e:	fb0a fa05 	mul.w	sl, sl, r5
 
-  8021462:	ea47 4101 	orr.w	r1, r7, r1, lsl #16
 
-  8021466:	458a      	cmp	sl, r1
 
-  8021468:	d907      	bls.n	802147a <__udivdi3+0x152>
 
-  802146a:	1e6b      	subs	r3, r5, #1
 
-  802146c:	190c      	adds	r4, r1, r4
 
-  802146e:	f080 80ce 	bcs.w	802160e <__udivdi3+0x2e6>
 
-  8021472:	3d02      	subs	r5, #2
 
-  8021474:	45a2      	cmp	sl, r4
 
-  8021476:	f240 80ca 	bls.w	802160e <__udivdi3+0x2e6>
 
-  802147a:	ea45 4009 	orr.w	r0, r5, r9, lsl #16
 
-  802147e:	e001      	b.n	8021484 <__udivdi3+0x15c>
 
-  8021480:	2600      	movs	r6, #0
 
-  8021482:	4630      	mov	r0, r6
 
-  8021484:	4631      	mov	r1, r6
 
-  8021486:	b003      	add	sp, #12
 
-  8021488:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
-  802148c:	f1c4 0120 	rsb	r1, r4, #32
 
-  8021490:	fa03 f304 	lsl.w	r3, r3, r4
 
-  8021494:	fa22 f801 	lsr.w	r8, r2, r1
 
-  8021498:	fa25 f701 	lsr.w	r7, r5, r1
 
-  802149c:	ea48 0803 	orr.w	r8, r8, r3
 
-  80214a0:	fa20 f101 	lsr.w	r1, r0, r1
 
-  80214a4:	fa05 f504 	lsl.w	r5, r5, r4
 
-  80214a8:	4638      	mov	r0, r7
 
-  80214aa:	ea4f 4918 	mov.w	r9, r8, lsr #16
 
-  80214ae:	430d      	orrs	r5, r1
 
-  80214b0:	4649      	mov	r1, r9
 
-  80214b2:	fa02 f204 	lsl.w	r2, r2, r4
 
-  80214b6:	9201      	str	r2, [sp, #4]
 
-  80214b8:	f000 f8c2 	bl	8021640 <__aeabi_uidiv>
 
-  80214bc:	4649      	mov	r1, r9
 
-  80214be:	4682      	mov	sl, r0
 
-  80214c0:	4638      	mov	r0, r7
 
-  80214c2:	f000 f9eb 	bl	802189c <__aeabi_uidivmod>
 
-  80214c6:	fa1f f288 	uxth.w	r2, r8
 
-  80214ca:	0c2f      	lsrs	r7, r5, #16
 
-  80214cc:	fb02 f00a 	mul.w	r0, r2, sl
 
-  80214d0:	ea47 4701 	orr.w	r7, r7, r1, lsl #16
 
-  80214d4:	42b8      	cmp	r0, r7
 
-  80214d6:	d906      	bls.n	80214e6 <__udivdi3+0x1be>
 
-  80214d8:	eb17 0708 	adds.w	r7, r7, r8
 
-  80214dc:	f10a 31ff 	add.w	r1, sl, #4294967295
 
-  80214e0:	f0c0 809f 	bcc.w	8021622 <__udivdi3+0x2fa>
 
-  80214e4:	468a      	mov	sl, r1
 
-  80214e6:	1a3f      	subs	r7, r7, r0
 
-  80214e8:	4649      	mov	r1, r9
 
-  80214ea:	4638      	mov	r0, r7
 
-  80214ec:	9200      	str	r2, [sp, #0]
 
-  80214ee:	f000 f8a7 	bl	8021640 <__aeabi_uidiv>
 
-  80214f2:	4649      	mov	r1, r9
 
-  80214f4:	b2ad      	uxth	r5, r5
 
-  80214f6:	4683      	mov	fp, r0
 
-  80214f8:	4638      	mov	r0, r7
 
-  80214fa:	f000 f9cf 	bl	802189c <__aeabi_uidivmod>
 
-  80214fe:	9a00      	ldr	r2, [sp, #0]
 
-  8021500:	fb02 f70b 	mul.w	r7, r2, fp
 
-  8021504:	ea45 4101 	orr.w	r1, r5, r1, lsl #16
 
-  8021508:	428f      	cmp	r7, r1
 
-  802150a:	d905      	bls.n	8021518 <__udivdi3+0x1f0>
 
-  802150c:	eb11 0108 	adds.w	r1, r1, r8
 
-  8021510:	f10b 32ff 	add.w	r2, fp, #4294967295
 
-  8021514:	d37d      	bcc.n	8021612 <__udivdi3+0x2ea>
 
-  8021516:	4693      	mov	fp, r2
 
-  8021518:	9b01      	ldr	r3, [sp, #4]
 
-  802151a:	ea4b 400a 	orr.w	r0, fp, sl, lsl #16
 
-  802151e:	1bc9      	subs	r1, r1, r7
 
-  8021520:	ea4f 4c10 	mov.w	ip, r0, lsr #16
 
-  8021524:	b29d      	uxth	r5, r3
 
-  8021526:	ea4f 4a13 	mov.w	sl, r3, lsr #16
 
-  802152a:	b283      	uxth	r3, r0
 
-  802152c:	fb05 f203 	mul.w	r2, r5, r3
 
-  8021530:	fb05 f50c 	mul.w	r5, r5, ip
 
-  8021534:	fb0a 5303 	mla	r3, sl, r3, r5
 
-  8021538:	fb0a fa0c 	mul.w	sl, sl, ip
 
-  802153c:	eb03 4312 	add.w	r3, r3, r2, lsr #16
 
-  8021540:	429d      	cmp	r5, r3
 
-  8021542:	bf88      	it	hi
 
-  8021544:	f50a 3a80 	addhi.w	sl, sl, #65536	; 0x10000
 
-  8021548:	eb0a 4a13 	add.w	sl, sl, r3, lsr #16
 
-  802154c:	4551      	cmp	r1, sl
 
-  802154e:	d30e      	bcc.n	802156e <__udivdi3+0x246>
 
-  8021550:	b292      	uxth	r2, r2
 
-  8021552:	bf14      	ite	ne
 
-  8021554:	2100      	movne	r1, #0
 
-  8021556:	2101      	moveq	r1, #1
 
-  8021558:	fa06 f604 	lsl.w	r6, r6, r4
 
-  802155c:	eb02 4303 	add.w	r3, r2, r3, lsl #16
 
-  8021560:	429e      	cmp	r6, r3
 
-  8021562:	bf2c      	ite	cs
 
-  8021564:	2600      	movcs	r6, #0
 
-  8021566:	f001 0601 	andcc.w	r6, r1, #1
 
-  802156a:	2e00      	cmp	r6, #0
 
-  802156c:	d08a      	beq.n	8021484 <__udivdi3+0x15c>
 
-  802156e:	3801      	subs	r0, #1
 
-  8021570:	2600      	movs	r6, #0
 
-  8021572:	e787      	b.n	8021484 <__udivdi3+0x15c>
 
-  8021574:	409c      	lsls	r4, r3
 
-  8021576:	f1c3 0220 	rsb	r2, r3, #32
 
-  802157a:	fa25 fa02 	lsr.w	sl, r5, r2
 
-  802157e:	fa26 f902 	lsr.w	r9, r6, r2
 
-  8021582:	ea4f 4814 	mov.w	r8, r4, lsr #16
 
-  8021586:	4650      	mov	r0, sl
 
-  8021588:	4641      	mov	r1, r8
 
-  802158a:	fa05 f503 	lsl.w	r5, r5, r3
 
-  802158e:	fa06 f703 	lsl.w	r7, r6, r3
 
-  8021592:	f000 f855 	bl	8021640 <__aeabi_uidiv>
 
-  8021596:	4641      	mov	r1, r8
 
-  8021598:	ea49 0905 	orr.w	r9, r9, r5
 
-  802159c:	4683      	mov	fp, r0
 
-  802159e:	4650      	mov	r0, sl
 
-  80215a0:	f000 f97c 	bl	802189c <__aeabi_uidivmod>
 
-  80215a4:	fa1f fa84 	uxth.w	sl, r4
 
-  80215a8:	ea4f 4319 	mov.w	r3, r9, lsr #16
 
-  80215ac:	fb0a f00b 	mul.w	r0, sl, fp
 
-  80215b0:	ea43 4101 	orr.w	r1, r3, r1, lsl #16
 
-  80215b4:	4288      	cmp	r0, r1
 
-  80215b6:	d909      	bls.n	80215cc <__udivdi3+0x2a4>
 
-  80215b8:	1909      	adds	r1, r1, r4
 
-  80215ba:	f10b 33ff 	add.w	r3, fp, #4294967295
 
-  80215be:	d238      	bcs.n	8021632 <__udivdi3+0x30a>
 
-  80215c0:	4288      	cmp	r0, r1
 
-  80215c2:	bf84      	itt	hi
 
-  80215c4:	f1ab 0b02 	subhi.w	fp, fp, #2
 
-  80215c8:	1909      	addhi	r1, r1, r4
 
-  80215ca:	d932      	bls.n	8021632 <__udivdi3+0x30a>
 
-  80215cc:	1a0d      	subs	r5, r1, r0
 
-  80215ce:	4641      	mov	r1, r8
 
-  80215d0:	4628      	mov	r0, r5
 
-  80215d2:	fa1f f989 	uxth.w	r9, r9
 
-  80215d6:	f000 f833 	bl	8021640 <__aeabi_uidiv>
 
-  80215da:	4641      	mov	r1, r8
 
-  80215dc:	4606      	mov	r6, r0
 
-  80215de:	4628      	mov	r0, r5
 
-  80215e0:	f000 f95c 	bl	802189c <__aeabi_uidivmod>
 
-  80215e4:	fb0a f506 	mul.w	r5, sl, r6
 
-  80215e8:	ea49 4101 	orr.w	r1, r9, r1, lsl #16
 
-  80215ec:	428d      	cmp	r5, r1
 
-  80215ee:	d906      	bls.n	80215fe <__udivdi3+0x2d6>
 
-  80215f0:	1e73      	subs	r3, r6, #1
 
-  80215f2:	1909      	adds	r1, r1, r4
 
-  80215f4:	d21f      	bcs.n	8021636 <__udivdi3+0x30e>
 
-  80215f6:	428d      	cmp	r5, r1
 
-  80215f8:	d91d      	bls.n	8021636 <__udivdi3+0x30e>
 
-  80215fa:	3e02      	subs	r6, #2
 
-  80215fc:	1909      	adds	r1, r1, r4
 
-  80215fe:	1b4d      	subs	r5, r1, r5
 
-  8021600:	ea46 460b 	orr.w	r6, r6, fp, lsl #16
 
-  8021604:	e703      	b.n	802140e <__udivdi3+0xe6>
 
-  8021606:	461e      	mov	r6, r3
 
-  8021608:	e6df      	b.n	80213ca <__udivdi3+0xa2>
 
-  802160a:	4699      	mov	r9, r3
 
-  802160c:	e71b      	b.n	8021446 <__udivdi3+0x11e>
 
-  802160e:	461d      	mov	r5, r3
 
-  8021610:	e733      	b.n	802147a <__udivdi3+0x152>
 
-  8021612:	428f      	cmp	r7, r1
 
-  8021614:	bf84      	itt	hi
 
-  8021616:	f1ab 0b02 	subhi.w	fp, fp, #2
 
-  802161a:	4441      	addhi	r1, r8
 
-  802161c:	f63f af7c 	bhi.w	8021518 <__udivdi3+0x1f0>
 
-  8021620:	e779      	b.n	8021516 <__udivdi3+0x1ee>
 
-  8021622:	42b8      	cmp	r0, r7
 
-  8021624:	bf84      	itt	hi
 
-  8021626:	f1aa 0a02 	subhi.w	sl, sl, #2
 
-  802162a:	4447      	addhi	r7, r8
 
-  802162c:	f63f af5b 	bhi.w	80214e6 <__udivdi3+0x1be>
 
-  8021630:	e758      	b.n	80214e4 <__udivdi3+0x1bc>
 
-  8021632:	469b      	mov	fp, r3
 
-  8021634:	e7ca      	b.n	80215cc <__udivdi3+0x2a4>
 
-  8021636:	461e      	mov	r6, r3
 
-  8021638:	e7e1      	b.n	80215fe <__udivdi3+0x2d6>
 
-  802163a:	bf00      	nop
 
-  802163c:	0000      	movs	r0, r0
 
-  802163e:	0000      	movs	r0, r0
 
- 08021640 <__aeabi_uidiv>:
 
-  8021640:	1e4a      	subs	r2, r1, #1
 
-  8021642:	bf08      	it	eq
 
-  8021644:	4770      	bxeq	lr
 
-  8021646:	f0c0 8124 	bcc.w	8021892 <__aeabi_uidiv+0x252>
 
-  802164a:	4288      	cmp	r0, r1
 
-  802164c:	f240 8116 	bls.w	802187c <__aeabi_uidiv+0x23c>
 
-  8021650:	4211      	tst	r1, r2
 
-  8021652:	f000 8117 	beq.w	8021884 <__aeabi_uidiv+0x244>
 
-  8021656:	fab0 f380 	clz	r3, r0
 
-  802165a:	fab1 f281 	clz	r2, r1
 
-  802165e:	eba2 0303 	sub.w	r3, r2, r3
 
-  8021662:	f1c3 031f 	rsb	r3, r3, #31
 
-  8021666:	a204      	add	r2, pc, #16	; (adr r2, 8021678 <__aeabi_uidiv+0x38>)
 
-  8021668:	eb02 1303 	add.w	r3, r2, r3, lsl #4
 
-  802166c:	f04f 0200 	mov.w	r2, #0
 
-  8021670:	469f      	mov	pc, r3
 
-  8021672:	bf00      	nop
 
-  8021674:	f3af 8000 	nop.w
 
-  8021678:	ebb0 7fc1 	cmp.w	r0, r1, lsl #31
 
-  802167c:	bf00      	nop
 
-  802167e:	eb42 0202 	adc.w	r2, r2, r2
 
-  8021682:	bf28      	it	cs
 
-  8021684:	eba0 70c1 	subcs.w	r0, r0, r1, lsl #31
 
-  8021688:	ebb0 7f81 	cmp.w	r0, r1, lsl #30
 
-  802168c:	bf00      	nop
 
-  802168e:	eb42 0202 	adc.w	r2, r2, r2
 
-  8021692:	bf28      	it	cs
 
-  8021694:	eba0 7081 	subcs.w	r0, r0, r1, lsl #30
 
-  8021698:	ebb0 7f41 	cmp.w	r0, r1, lsl #29
 
-  802169c:	bf00      	nop
 
-  802169e:	eb42 0202 	adc.w	r2, r2, r2
 
-  80216a2:	bf28      	it	cs
 
-  80216a4:	eba0 7041 	subcs.w	r0, r0, r1, lsl #29
 
-  80216a8:	ebb0 7f01 	cmp.w	r0, r1, lsl #28
 
-  80216ac:	bf00      	nop
 
-  80216ae:	eb42 0202 	adc.w	r2, r2, r2
 
-  80216b2:	bf28      	it	cs
 
-  80216b4:	eba0 7001 	subcs.w	r0, r0, r1, lsl #28
 
-  80216b8:	ebb0 6fc1 	cmp.w	r0, r1, lsl #27
 
-  80216bc:	bf00      	nop
 
-  80216be:	eb42 0202 	adc.w	r2, r2, r2
 
-  80216c2:	bf28      	it	cs
 
-  80216c4:	eba0 60c1 	subcs.w	r0, r0, r1, lsl #27
 
-  80216c8:	ebb0 6f81 	cmp.w	r0, r1, lsl #26
 
-  80216cc:	bf00      	nop
 
-  80216ce:	eb42 0202 	adc.w	r2, r2, r2
 
-  80216d2:	bf28      	it	cs
 
-  80216d4:	eba0 6081 	subcs.w	r0, r0, r1, lsl #26
 
-  80216d8:	ebb0 6f41 	cmp.w	r0, r1, lsl #25
 
-  80216dc:	bf00      	nop
 
-  80216de:	eb42 0202 	adc.w	r2, r2, r2
 
-  80216e2:	bf28      	it	cs
 
-  80216e4:	eba0 6041 	subcs.w	r0, r0, r1, lsl #25
 
-  80216e8:	ebb0 6f01 	cmp.w	r0, r1, lsl #24
 
-  80216ec:	bf00      	nop
 
-  80216ee:	eb42 0202 	adc.w	r2, r2, r2
 
-  80216f2:	bf28      	it	cs
 
-  80216f4:	eba0 6001 	subcs.w	r0, r0, r1, lsl #24
 
-  80216f8:	ebb0 5fc1 	cmp.w	r0, r1, lsl #23
 
-  80216fc:	bf00      	nop
 
-  80216fe:	eb42 0202 	adc.w	r2, r2, r2
 
-  8021702:	bf28      	it	cs
 
-  8021704:	eba0 50c1 	subcs.w	r0, r0, r1, lsl #23
 
-  8021708:	ebb0 5f81 	cmp.w	r0, r1, lsl #22
 
-  802170c:	bf00      	nop
 
-  802170e:	eb42 0202 	adc.w	r2, r2, r2
 
-  8021712:	bf28      	it	cs
 
-  8021714:	eba0 5081 	subcs.w	r0, r0, r1, lsl #22
 
-  8021718:	ebb0 5f41 	cmp.w	r0, r1, lsl #21
 
-  802171c:	bf00      	nop
 
-  802171e:	eb42 0202 	adc.w	r2, r2, r2
 
-  8021722:	bf28      	it	cs
 
-  8021724:	eba0 5041 	subcs.w	r0, r0, r1, lsl #21
 
-  8021728:	ebb0 5f01 	cmp.w	r0, r1, lsl #20
 
-  802172c:	bf00      	nop
 
-  802172e:	eb42 0202 	adc.w	r2, r2, r2
 
-  8021732:	bf28      	it	cs
 
-  8021734:	eba0 5001 	subcs.w	r0, r0, r1, lsl #20
 
-  8021738:	ebb0 4fc1 	cmp.w	r0, r1, lsl #19
 
-  802173c:	bf00      	nop
 
-  802173e:	eb42 0202 	adc.w	r2, r2, r2
 
-  8021742:	bf28      	it	cs
 
-  8021744:	eba0 40c1 	subcs.w	r0, r0, r1, lsl #19
 
-  8021748:	ebb0 4f81 	cmp.w	r0, r1, lsl #18
 
-  802174c:	bf00      	nop
 
-  802174e:	eb42 0202 	adc.w	r2, r2, r2
 
-  8021752:	bf28      	it	cs
 
-  8021754:	eba0 4081 	subcs.w	r0, r0, r1, lsl #18
 
-  8021758:	ebb0 4f41 	cmp.w	r0, r1, lsl #17
 
-  802175c:	bf00      	nop
 
-  802175e:	eb42 0202 	adc.w	r2, r2, r2
 
-  8021762:	bf28      	it	cs
 
-  8021764:	eba0 4041 	subcs.w	r0, r0, r1, lsl #17
 
-  8021768:	ebb0 4f01 	cmp.w	r0, r1, lsl #16
 
-  802176c:	bf00      	nop
 
-  802176e:	eb42 0202 	adc.w	r2, r2, r2
 
-  8021772:	bf28      	it	cs
 
-  8021774:	eba0 4001 	subcs.w	r0, r0, r1, lsl #16
 
-  8021778:	ebb0 3fc1 	cmp.w	r0, r1, lsl #15
 
-  802177c:	bf00      	nop
 
-  802177e:	eb42 0202 	adc.w	r2, r2, r2
 
-  8021782:	bf28      	it	cs
 
-  8021784:	eba0 30c1 	subcs.w	r0, r0, r1, lsl #15
 
-  8021788:	ebb0 3f81 	cmp.w	r0, r1, lsl #14
 
-  802178c:	bf00      	nop
 
-  802178e:	eb42 0202 	adc.w	r2, r2, r2
 
-  8021792:	bf28      	it	cs
 
-  8021794:	eba0 3081 	subcs.w	r0, r0, r1, lsl #14
 
-  8021798:	ebb0 3f41 	cmp.w	r0, r1, lsl #13
 
-  802179c:	bf00      	nop
 
-  802179e:	eb42 0202 	adc.w	r2, r2, r2
 
-  80217a2:	bf28      	it	cs
 
-  80217a4:	eba0 3041 	subcs.w	r0, r0, r1, lsl #13
 
-  80217a8:	ebb0 3f01 	cmp.w	r0, r1, lsl #12
 
-  80217ac:	bf00      	nop
 
-  80217ae:	eb42 0202 	adc.w	r2, r2, r2
 
-  80217b2:	bf28      	it	cs
 
-  80217b4:	eba0 3001 	subcs.w	r0, r0, r1, lsl #12
 
-  80217b8:	ebb0 2fc1 	cmp.w	r0, r1, lsl #11
 
-  80217bc:	bf00      	nop
 
-  80217be:	eb42 0202 	adc.w	r2, r2, r2
 
-  80217c2:	bf28      	it	cs
 
-  80217c4:	eba0 20c1 	subcs.w	r0, r0, r1, lsl #11
 
-  80217c8:	ebb0 2f81 	cmp.w	r0, r1, lsl #10
 
-  80217cc:	bf00      	nop
 
-  80217ce:	eb42 0202 	adc.w	r2, r2, r2
 
-  80217d2:	bf28      	it	cs
 
-  80217d4:	eba0 2081 	subcs.w	r0, r0, r1, lsl #10
 
-  80217d8:	ebb0 2f41 	cmp.w	r0, r1, lsl #9
 
-  80217dc:	bf00      	nop
 
-  80217de:	eb42 0202 	adc.w	r2, r2, r2
 
-  80217e2:	bf28      	it	cs
 
-  80217e4:	eba0 2041 	subcs.w	r0, r0, r1, lsl #9
 
-  80217e8:	ebb0 2f01 	cmp.w	r0, r1, lsl #8
 
-  80217ec:	bf00      	nop
 
-  80217ee:	eb42 0202 	adc.w	r2, r2, r2
 
-  80217f2:	bf28      	it	cs
 
-  80217f4:	eba0 2001 	subcs.w	r0, r0, r1, lsl #8
 
-  80217f8:	ebb0 1fc1 	cmp.w	r0, r1, lsl #7
 
-  80217fc:	bf00      	nop
 
-  80217fe:	eb42 0202 	adc.w	r2, r2, r2
 
-  8021802:	bf28      	it	cs
 
-  8021804:	eba0 10c1 	subcs.w	r0, r0, r1, lsl #7
 
-  8021808:	ebb0 1f81 	cmp.w	r0, r1, lsl #6
 
-  802180c:	bf00      	nop
 
-  802180e:	eb42 0202 	adc.w	r2, r2, r2
 
-  8021812:	bf28      	it	cs
 
-  8021814:	eba0 1081 	subcs.w	r0, r0, r1, lsl #6
 
-  8021818:	ebb0 1f41 	cmp.w	r0, r1, lsl #5
 
-  802181c:	bf00      	nop
 
-  802181e:	eb42 0202 	adc.w	r2, r2, r2
 
-  8021822:	bf28      	it	cs
 
-  8021824:	eba0 1041 	subcs.w	r0, r0, r1, lsl #5
 
-  8021828:	ebb0 1f01 	cmp.w	r0, r1, lsl #4
 
-  802182c:	bf00      	nop
 
-  802182e:	eb42 0202 	adc.w	r2, r2, r2
 
-  8021832:	bf28      	it	cs
 
-  8021834:	eba0 1001 	subcs.w	r0, r0, r1, lsl #4
 
-  8021838:	ebb0 0fc1 	cmp.w	r0, r1, lsl #3
 
-  802183c:	bf00      	nop
 
-  802183e:	eb42 0202 	adc.w	r2, r2, r2
 
-  8021842:	bf28      	it	cs
 
-  8021844:	eba0 00c1 	subcs.w	r0, r0, r1, lsl #3
 
-  8021848:	ebb0 0f81 	cmp.w	r0, r1, lsl #2
 
-  802184c:	bf00      	nop
 
-  802184e:	eb42 0202 	adc.w	r2, r2, r2
 
-  8021852:	bf28      	it	cs
 
-  8021854:	eba0 0081 	subcs.w	r0, r0, r1, lsl #2
 
-  8021858:	ebb0 0f41 	cmp.w	r0, r1, lsl #1
 
-  802185c:	bf00      	nop
 
-  802185e:	eb42 0202 	adc.w	r2, r2, r2
 
-  8021862:	bf28      	it	cs
 
-  8021864:	eba0 0041 	subcs.w	r0, r0, r1, lsl #1
 
-  8021868:	ebb0 0f01 	cmp.w	r0, r1
 
-  802186c:	bf00      	nop
 
-  802186e:	eb42 0202 	adc.w	r2, r2, r2
 
-  8021872:	bf28      	it	cs
 
-  8021874:	eba0 0001 	subcs.w	r0, r0, r1
 
-  8021878:	4610      	mov	r0, r2
 
-  802187a:	4770      	bx	lr
 
-  802187c:	bf0c      	ite	eq
 
-  802187e:	2001      	moveq	r0, #1
 
-  8021880:	2000      	movne	r0, #0
 
-  8021882:	4770      	bx	lr
 
-  8021884:	fab1 f281 	clz	r2, r1
 
-  8021888:	f1c2 021f 	rsb	r2, r2, #31
 
-  802188c:	fa20 f002 	lsr.w	r0, r0, r2
 
-  8021890:	4770      	bx	lr
 
-  8021892:	b108      	cbz	r0, 8021898 <__aeabi_uidiv+0x258>
 
-  8021894:	f04f 30ff 	mov.w	r0, #4294967295
 
-  8021898:	f7ff bb8e 	b.w	8020fb8 <__aeabi_idiv0>
 
- 0802189c <__aeabi_uidivmod>:
 
-  802189c:	2900      	cmp	r1, #0
 
-  802189e:	d0f8      	beq.n	8021892 <__aeabi_uidiv+0x252>
 
-  80218a0:	e92d 4003 	stmdb	sp!, {r0, r1, lr}
 
-  80218a4:	f7ff fecc 	bl	8021640 <__aeabi_uidiv>
 
-  80218a8:	e8bd 4006 	ldmia.w	sp!, {r1, r2, lr}
 
-  80218ac:	fb02 f300 	mul.w	r3, r2, r0
 
-  80218b0:	eba1 0103 	sub.w	r1, r1, r3
 
-  80218b4:	4770      	bx	lr
 
-  80218b6:	bf00      	nop
 
- 080218b8 <atof>:
 
-  80218b8:	2100      	movs	r1, #0
 
-  80218ba:	f001 bde7 	b.w	802348c <strtod>
 
-  80218be:	bf00      	nop
 
- 080218c0 <atoi>:
 
-  80218c0:	2100      	movs	r1, #0
 
-  80218c2:	220a      	movs	r2, #10
 
-  80218c4:	f001 bee2 	b.w	802368c <strtol>
 
- 080218c8 <_atoi_r>:
 
-  80218c8:	2200      	movs	r2, #0
 
-  80218ca:	230a      	movs	r3, #10
 
-  80218cc:	f001 be3c 	b.w	8023548 <_strtol_r>
 
- 080218d0 <__libc_init_array>:
 
-  80218d0:	b570      	push	{r4, r5, r6, lr}
 
-  80218d2:	f645 36fc 	movw	r6, #23548	; 0x5bfc
 
-  80218d6:	f645 35fc 	movw	r5, #23548	; 0x5bfc
 
-  80218da:	f6c0 0604 	movt	r6, #2052	; 0x804
 
-  80218de:	f6c0 0504 	movt	r5, #2052	; 0x804
 
-  80218e2:	1b76      	subs	r6, r6, r5
 
-  80218e4:	10b6      	asrs	r6, r6, #2
 
-  80218e6:	d007      	beq.n	80218f8 <__libc_init_array+0x28>
 
-  80218e8:	3d04      	subs	r5, #4
 
-  80218ea:	2400      	movs	r4, #0
 
-  80218ec:	f855 3f04 	ldr.w	r3, [r5, #4]!
 
-  80218f0:	3401      	adds	r4, #1
 
-  80218f2:	4798      	blx	r3
 
-  80218f4:	42a6      	cmp	r6, r4
 
-  80218f6:	d1f9      	bne.n	80218ec <__libc_init_array+0x1c>
 
-  80218f8:	f645 4600 	movw	r6, #23552	; 0x5c00
 
-  80218fc:	f645 35fc 	movw	r5, #23548	; 0x5bfc
 
-  8021900:	f6c0 0604 	movt	r6, #2052	; 0x804
 
-  8021904:	f6c0 0504 	movt	r5, #2052	; 0x804
 
-  8021908:	1b76      	subs	r6, r6, r5
 
-  802190a:	f024 f967 	bl	8045bdc <_init>
 
-  802190e:	10b6      	asrs	r6, r6, #2
 
-  8021910:	d008      	beq.n	8021924 <__libc_init_array+0x54>
 
-  8021912:	3d04      	subs	r5, #4
 
-  8021914:	2400      	movs	r4, #0
 
-  8021916:	f855 3f04 	ldr.w	r3, [r5, #4]!
 
-  802191a:	3401      	adds	r4, #1
 
-  802191c:	4798      	blx	r3
 
-  802191e:	42a6      	cmp	r6, r4
 
-  8021920:	d1f9      	bne.n	8021916 <__libc_init_array+0x46>
 
-  8021922:	bd70      	pop	{r4, r5, r6, pc}
 
-  8021924:	bd70      	pop	{r4, r5, r6, pc}
 
-  8021926:	bf00      	nop
 
- 08021928 <memcmp>:
 
-  8021928:	2a03      	cmp	r2, #3
 
-  802192a:	b470      	push	{r4, r5, r6}
 
-  802192c:	d922      	bls.n	8021974 <memcmp+0x4c>
 
-  802192e:	ea41 0300 	orr.w	r3, r1, r0
 
-  8021932:	079b      	lsls	r3, r3, #30
 
-  8021934:	d013      	beq.n	802195e <memcmp+0x36>
 
-  8021936:	7805      	ldrb	r5, [r0, #0]
 
-  8021938:	3a01      	subs	r2, #1
 
-  802193a:	780c      	ldrb	r4, [r1, #0]
 
-  802193c:	2300      	movs	r3, #0
 
-  802193e:	42a5      	cmp	r5, r4
 
-  8021940:	d006      	beq.n	8021950 <memcmp+0x28>
 
-  8021942:	e01b      	b.n	802197c <memcmp+0x54>
 
-  8021944:	f810 5f01 	ldrb.w	r5, [r0, #1]!
 
-  8021948:	f811 4f01 	ldrb.w	r4, [r1, #1]!
 
-  802194c:	42a5      	cmp	r5, r4
 
-  802194e:	d115      	bne.n	802197c <memcmp+0x54>
 
-  8021950:	4293      	cmp	r3, r2
 
-  8021952:	f103 0301 	add.w	r3, r3, #1
 
-  8021956:	d1f5      	bne.n	8021944 <memcmp+0x1c>
 
-  8021958:	2000      	movs	r0, #0
 
-  802195a:	bc70      	pop	{r4, r5, r6}
 
-  802195c:	4770      	bx	lr
 
-  802195e:	460c      	mov	r4, r1
 
-  8021960:	4603      	mov	r3, r0
 
-  8021962:	3104      	adds	r1, #4
 
-  8021964:	3004      	adds	r0, #4
 
-  8021966:	681e      	ldr	r6, [r3, #0]
 
-  8021968:	6825      	ldr	r5, [r4, #0]
 
-  802196a:	42ae      	cmp	r6, r5
 
-  802196c:	d108      	bne.n	8021980 <memcmp+0x58>
 
-  802196e:	3a04      	subs	r2, #4
 
-  8021970:	2a03      	cmp	r2, #3
 
-  8021972:	d8f4      	bhi.n	802195e <memcmp+0x36>
 
-  8021974:	2a00      	cmp	r2, #0
 
-  8021976:	d1de      	bne.n	8021936 <memcmp+0xe>
 
-  8021978:	4610      	mov	r0, r2
 
-  802197a:	e7ee      	b.n	802195a <memcmp+0x32>
 
-  802197c:	1b28      	subs	r0, r5, r4
 
-  802197e:	e7ec      	b.n	802195a <memcmp+0x32>
 
-  8021980:	4621      	mov	r1, r4
 
-  8021982:	4618      	mov	r0, r3
 
-  8021984:	2a00      	cmp	r2, #0
 
-  8021986:	d1d6      	bne.n	8021936 <memcmp+0xe>
 
-  8021988:	e7f6      	b.n	8021978 <memcmp+0x50>
 
-  802198a:	bf00      	nop
 
- 0802198c <memcpy>:
 
-  802198c:	2a03      	cmp	r2, #3
 
-  802198e:	e92d 0ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp}
 
-  8021992:	d809      	bhi.n	80219a8 <memcpy+0x1c>
 
-  8021994:	b12a      	cbz	r2, 80219a2 <memcpy+0x16>
 
-  8021996:	2300      	movs	r3, #0
 
-  8021998:	5ccc      	ldrb	r4, [r1, r3]
 
-  802199a:	54c4      	strb	r4, [r0, r3]
 
-  802199c:	3301      	adds	r3, #1
 
-  802199e:	4293      	cmp	r3, r2
 
-  80219a0:	d1fa      	bne.n	8021998 <memcpy+0xc>
 
-  80219a2:	e8bd 0ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp}
 
-  80219a6:	4770      	bx	lr
 
-  80219a8:	0783      	lsls	r3, r0, #30
 
-  80219aa:	4402      	add	r2, r0
 
-  80219ac:	d00e      	beq.n	80219cc <memcpy+0x40>
 
-  80219ae:	1c44      	adds	r4, r0, #1
 
-  80219b0:	1c4d      	adds	r5, r1, #1
 
-  80219b2:	f815 7c01 	ldrb.w	r7, [r5, #-1]
 
-  80219b6:	f004 0603 	and.w	r6, r4, #3
 
-  80219ba:	4623      	mov	r3, r4
 
-  80219bc:	3401      	adds	r4, #1
 
-  80219be:	4629      	mov	r1, r5
 
-  80219c0:	3501      	adds	r5, #1
 
-  80219c2:	f804 7c02 	strb.w	r7, [r4, #-2]
 
-  80219c6:	2e00      	cmp	r6, #0
 
-  80219c8:	d1f3      	bne.n	80219b2 <memcpy+0x26>
 
-  80219ca:	e000      	b.n	80219ce <memcpy+0x42>
 
-  80219cc:	4603      	mov	r3, r0
 
-  80219ce:	f011 0403 	ands.w	r4, r1, #3
 
-  80219d2:	d06d      	beq.n	8021ab0 <memcpy+0x124>
 
-  80219d4:	1ad7      	subs	r7, r2, r3
 
-  80219d6:	1b0d      	subs	r5, r1, r4
 
-  80219d8:	2f03      	cmp	r7, #3
 
-  80219da:	682e      	ldr	r6, [r5, #0]
 
-  80219dc:	dd19      	ble.n	8021a12 <memcpy+0x86>
 
-  80219de:	f1c4 0c04 	rsb	ip, r4, #4
 
-  80219e2:	ea4f 08c4 	mov.w	r8, r4, lsl #3
 
-  80219e6:	1d1c      	adds	r4, r3, #4
 
-  80219e8:	ea4f 0ccc 	mov.w	ip, ip, lsl #3
 
-  80219ec:	f855 7f04 	ldr.w	r7, [r5, #4]!
 
-  80219f0:	ebc4 0902 	rsb	r9, r4, r2
 
-  80219f4:	4623      	mov	r3, r4
 
-  80219f6:	3104      	adds	r1, #4
 
-  80219f8:	3404      	adds	r4, #4
 
-  80219fa:	f1b9 0f03 	cmp.w	r9, #3
 
-  80219fe:	fa26 fa08 	lsr.w	sl, r6, r8
 
-  8021a02:	fa07 fb0c 	lsl.w	fp, r7, ip
 
-  8021a06:	463e      	mov	r6, r7
 
-  8021a08:	ea4b 070a 	orr.w	r7, fp, sl
 
-  8021a0c:	f844 7c08 	str.w	r7, [r4, #-8]
 
-  8021a10:	dcec      	bgt.n	80219ec <memcpy+0x60>
 
-  8021a12:	429a      	cmp	r2, r3
 
-  8021a14:	d9c5      	bls.n	80219a2 <memcpy+0x16>
 
-  8021a16:	3301      	adds	r3, #1
 
-  8021a18:	3101      	adds	r1, #1
 
-  8021a1a:	3201      	adds	r2, #1
 
-  8021a1c:	f811 4c01 	ldrb.w	r4, [r1, #-1]
 
-  8021a20:	3301      	adds	r3, #1
 
-  8021a22:	3101      	adds	r1, #1
 
-  8021a24:	4293      	cmp	r3, r2
 
-  8021a26:	f803 4c02 	strb.w	r4, [r3, #-2]
 
-  8021a2a:	d1f7      	bne.n	8021a1c <memcpy+0x90>
 
-  8021a2c:	e7b9      	b.n	80219a2 <memcpy+0x16>
 
-  8021a2e:	680c      	ldr	r4, [r1, #0]
 
-  8021a30:	3340      	adds	r3, #64	; 0x40
 
-  8021a32:	3140      	adds	r1, #64	; 0x40
 
-  8021a34:	f843 4c40 	str.w	r4, [r3, #-64]
 
-  8021a38:	f851 4c3c 	ldr.w	r4, [r1, #-60]
 
-  8021a3c:	f843 4c3c 	str.w	r4, [r3, #-60]
 
-  8021a40:	f851 4c38 	ldr.w	r4, [r1, #-56]
 
-  8021a44:	f843 4c38 	str.w	r4, [r3, #-56]
 
-  8021a48:	f851 4c34 	ldr.w	r4, [r1, #-52]
 
-  8021a4c:	f843 4c34 	str.w	r4, [r3, #-52]
 
-  8021a50:	f851 4c30 	ldr.w	r4, [r1, #-48]
 
-  8021a54:	f843 4c30 	str.w	r4, [r3, #-48]
 
-  8021a58:	f851 4c2c 	ldr.w	r4, [r1, #-44]
 
-  8021a5c:	f843 4c2c 	str.w	r4, [r3, #-44]
 
-  8021a60:	f851 4c28 	ldr.w	r4, [r1, #-40]
 
-  8021a64:	f843 4c28 	str.w	r4, [r3, #-40]
 
-  8021a68:	f851 4c24 	ldr.w	r4, [r1, #-36]
 
-  8021a6c:	f843 4c24 	str.w	r4, [r3, #-36]
 
-  8021a70:	f851 4c20 	ldr.w	r4, [r1, #-32]
 
-  8021a74:	f843 4c20 	str.w	r4, [r3, #-32]
 
-  8021a78:	f851 4c1c 	ldr.w	r4, [r1, #-28]
 
-  8021a7c:	f843 4c1c 	str.w	r4, [r3, #-28]
 
-  8021a80:	f851 4c18 	ldr.w	r4, [r1, #-24]
 
-  8021a84:	f843 4c18 	str.w	r4, [r3, #-24]
 
-  8021a88:	f851 4c14 	ldr.w	r4, [r1, #-20]
 
-  8021a8c:	f843 4c14 	str.w	r4, [r3, #-20]
 
-  8021a90:	f851 4c10 	ldr.w	r4, [r1, #-16]
 
-  8021a94:	f843 4c10 	str.w	r4, [r3, #-16]
 
-  8021a98:	f851 4c0c 	ldr.w	r4, [r1, #-12]
 
-  8021a9c:	f843 4c0c 	str.w	r4, [r3, #-12]
 
-  8021aa0:	f851 4c08 	ldr.w	r4, [r1, #-8]
 
-  8021aa4:	f843 4c08 	str.w	r4, [r3, #-8]
 
-  8021aa8:	f851 4c04 	ldr.w	r4, [r1, #-4]
 
-  8021aac:	f843 4c04 	str.w	r4, [r3, #-4]
 
-  8021ab0:	1ad4      	subs	r4, r2, r3
 
-  8021ab2:	2c3f      	cmp	r4, #63	; 0x3f
 
-  8021ab4:	dcbb      	bgt.n	8021a2e <memcpy+0xa2>
 
-  8021ab6:	e011      	b.n	8021adc <memcpy+0x150>
 
-  8021ab8:	680c      	ldr	r4, [r1, #0]
 
-  8021aba:	3310      	adds	r3, #16
 
-  8021abc:	3110      	adds	r1, #16
 
-  8021abe:	f843 4c10 	str.w	r4, [r3, #-16]
 
-  8021ac2:	f851 4c0c 	ldr.w	r4, [r1, #-12]
 
-  8021ac6:	f843 4c0c 	str.w	r4, [r3, #-12]
 
-  8021aca:	f851 4c08 	ldr.w	r4, [r1, #-8]
 
-  8021ace:	f843 4c08 	str.w	r4, [r3, #-8]
 
-  8021ad2:	f851 4c04 	ldr.w	r4, [r1, #-4]
 
-  8021ad6:	f843 4c04 	str.w	r4, [r3, #-4]
 
-  8021ada:	1ad4      	subs	r4, r2, r3
 
-  8021adc:	2c0f      	cmp	r4, #15
 
-  8021ade:	dceb      	bgt.n	8021ab8 <memcpy+0x12c>
 
-  8021ae0:	2c03      	cmp	r4, #3
 
-  8021ae2:	dd96      	ble.n	8021a12 <memcpy+0x86>
 
-  8021ae4:	1d1c      	adds	r4, r3, #4
 
-  8021ae6:	1d0d      	adds	r5, r1, #4
 
-  8021ae8:	f855 7c04 	ldr.w	r7, [r5, #-4]
 
-  8021aec:	1b16      	subs	r6, r2, r4
 
-  8021aee:	4623      	mov	r3, r4
 
-  8021af0:	4629      	mov	r1, r5
 
-  8021af2:	3404      	adds	r4, #4
 
-  8021af4:	3504      	adds	r5, #4
 
-  8021af6:	2e03      	cmp	r6, #3
 
-  8021af8:	f844 7c08 	str.w	r7, [r4, #-8]
 
-  8021afc:	dcf4      	bgt.n	8021ae8 <memcpy+0x15c>
 
-  8021afe:	e788      	b.n	8021a12 <memcpy+0x86>
 
- 08021b00 <memset>:
 
-  8021b00:	2a03      	cmp	r2, #3
 
-  8021b02:	b2c9      	uxtb	r1, r1
 
-  8021b04:	b470      	push	{r4, r5, r6}
 
-  8021b06:	d808      	bhi.n	8021b1a <memset+0x1a>
 
-  8021b08:	b12a      	cbz	r2, 8021b16 <memset+0x16>
 
-  8021b0a:	4603      	mov	r3, r0
 
-  8021b0c:	1812      	adds	r2, r2, r0
 
-  8021b0e:	f803 1b01 	strb.w	r1, [r3], #1
 
-  8021b12:	4293      	cmp	r3, r2
 
-  8021b14:	d1fb      	bne.n	8021b0e <memset+0xe>
 
-  8021b16:	bc70      	pop	{r4, r5, r6}
 
-  8021b18:	4770      	bx	lr
 
-  8021b1a:	0783      	lsls	r3, r0, #30
 
-  8021b1c:	4402      	add	r2, r0
 
-  8021b1e:	d009      	beq.n	8021b34 <memset+0x34>
 
-  8021b20:	1c44      	adds	r4, r0, #1
 
-  8021b22:	f004 0503 	and.w	r5, r4, #3
 
-  8021b26:	4623      	mov	r3, r4
 
-  8021b28:	f804 1c01 	strb.w	r1, [r4, #-1]
 
-  8021b2c:	3401      	adds	r4, #1
 
-  8021b2e:	2d00      	cmp	r5, #0
 
-  8021b30:	d1f7      	bne.n	8021b22 <memset+0x22>
 
-  8021b32:	e000      	b.n	8021b36 <memset+0x36>
 
-  8021b34:	4603      	mov	r3, r0
 
-  8021b36:	1ad5      	subs	r5, r2, r3
 
-  8021b38:	eb01 2401 	add.w	r4, r1, r1, lsl #8
 
-  8021b3c:	2d3f      	cmp	r5, #63	; 0x3f
 
-  8021b3e:	eb04 4404 	add.w	r4, r4, r4, lsl #16
 
-  8021b42:	dd2c      	ble.n	8021b9e <memset+0x9e>
 
-  8021b44:	601c      	str	r4, [r3, #0]
 
-  8021b46:	3340      	adds	r3, #64	; 0x40
 
-  8021b48:	1ad5      	subs	r5, r2, r3
 
-  8021b4a:	f843 4c3c 	str.w	r4, [r3, #-60]
 
-  8021b4e:	2d3f      	cmp	r5, #63	; 0x3f
 
-  8021b50:	f843 4c38 	str.w	r4, [r3, #-56]
 
-  8021b54:	f843 4c34 	str.w	r4, [r3, #-52]
 
-  8021b58:	f843 4c30 	str.w	r4, [r3, #-48]
 
-  8021b5c:	f843 4c2c 	str.w	r4, [r3, #-44]
 
-  8021b60:	f843 4c28 	str.w	r4, [r3, #-40]
 
-  8021b64:	f843 4c24 	str.w	r4, [r3, #-36]
 
-  8021b68:	f843 4c20 	str.w	r4, [r3, #-32]
 
-  8021b6c:	f843 4c1c 	str.w	r4, [r3, #-28]
 
-  8021b70:	f843 4c18 	str.w	r4, [r3, #-24]
 
-  8021b74:	f843 4c14 	str.w	r4, [r3, #-20]
 
-  8021b78:	f843 4c10 	str.w	r4, [r3, #-16]
 
-  8021b7c:	f843 4c0c 	str.w	r4, [r3, #-12]
 
-  8021b80:	f843 4c08 	str.w	r4, [r3, #-8]
 
-  8021b84:	f843 4c04 	str.w	r4, [r3, #-4]
 
-  8021b88:	dcdc      	bgt.n	8021b44 <memset+0x44>
 
-  8021b8a:	e008      	b.n	8021b9e <memset+0x9e>
 
-  8021b8c:	601c      	str	r4, [r3, #0]
 
-  8021b8e:	3310      	adds	r3, #16
 
-  8021b90:	1ad5      	subs	r5, r2, r3
 
-  8021b92:	f843 4c0c 	str.w	r4, [r3, #-12]
 
-  8021b96:	f843 4c08 	str.w	r4, [r3, #-8]
 
-  8021b9a:	f843 4c04 	str.w	r4, [r3, #-4]
 
-  8021b9e:	2d0f      	cmp	r5, #15
 
-  8021ba0:	dcf4      	bgt.n	8021b8c <memset+0x8c>
 
-  8021ba2:	2d03      	cmp	r5, #3
 
-  8021ba4:	dd08      	ble.n	8021bb8 <memset+0xb8>
 
-  8021ba6:	1d1d      	adds	r5, r3, #4
 
-  8021ba8:	1b56      	subs	r6, r2, r5
 
-  8021baa:	f845 4c04 	str.w	r4, [r5, #-4]
 
-  8021bae:	2e03      	cmp	r6, #3
 
-  8021bb0:	462b      	mov	r3, r5
 
-  8021bb2:	f105 0504 	add.w	r5, r5, #4
 
-  8021bb6:	dcf7      	bgt.n	8021ba8 <memset+0xa8>
 
-  8021bb8:	429a      	cmp	r2, r3
 
-  8021bba:	d9ac      	bls.n	8021b16 <memset+0x16>
 
-  8021bbc:	3301      	adds	r3, #1
 
-  8021bbe:	3201      	adds	r2, #1
 
-  8021bc0:	f803 1c01 	strb.w	r1, [r3, #-1]
 
-  8021bc4:	3301      	adds	r3, #1
 
-  8021bc6:	4293      	cmp	r3, r2
 
-  8021bc8:	d1fa      	bne.n	8021bc0 <memset+0xc0>
 
-  8021bca:	e7a4      	b.n	8021b16 <memset+0x16>
 
- 08021bcc <strcat>:
 
-  8021bcc:	0783      	lsls	r3, r0, #30
 
-  8021bce:	b570      	push	{r4, r5, r6, lr}
 
-  8021bd0:	4606      	mov	r6, r0
 
-  8021bd2:	d114      	bne.n	8021bfe <strcat+0x32>
 
-  8021bd4:	6803      	ldr	r3, [r0, #0]
 
-  8021bd6:	f1a3 3201 	sub.w	r2, r3, #16843009	; 0x1010101
 
-  8021bda:	ea22 0303 	bic.w	r3, r2, r3
 
-  8021bde:	f013 3f80 	tst.w	r3, #2155905152	; 0x80808080
 
-  8021be2:	d10c      	bne.n	8021bfe <strcat+0x32>
 
-  8021be4:	1d03      	adds	r3, r0, #4
 
-  8021be6:	461a      	mov	r2, r3
 
-  8021be8:	f853 4b04 	ldr.w	r4, [r3], #4
 
-  8021bec:	f1a4 3501 	sub.w	r5, r4, #16843009	; 0x1010101
 
-  8021bf0:	ea25 0404 	bic.w	r4, r5, r4
 
-  8021bf4:	f014 3f80 	tst.w	r4, #2155905152	; 0x80808080
 
-  8021bf8:	d0f5      	beq.n	8021be6 <strcat+0x1a>
 
-  8021bfa:	4610      	mov	r0, r2
 
-  8021bfc:	e000      	b.n	8021c00 <strcat+0x34>
 
-  8021bfe:	4630      	mov	r0, r6
 
-  8021c00:	7803      	ldrb	r3, [r0, #0]
 
-  8021c02:	b12b      	cbz	r3, 8021c10 <strcat+0x44>
 
-  8021c04:	1c43      	adds	r3, r0, #1
 
-  8021c06:	4618      	mov	r0, r3
 
-  8021c08:	3301      	adds	r3, #1
 
-  8021c0a:	7804      	ldrb	r4, [r0, #0]
 
-  8021c0c:	2c00      	cmp	r4, #0
 
-  8021c0e:	d1fa      	bne.n	8021c06 <strcat+0x3a>
 
-  8021c10:	f000 f8f0 	bl	8021df4 <strcpy>
 
-  8021c14:	4630      	mov	r0, r6
 
-  8021c16:	bd70      	pop	{r4, r5, r6, pc}
 
- 08021c18 <strcmp>:
 
-  8021c18:	ea80 0201 	eor.w	r2, r0, r1
 
-  8021c1c:	f012 0f03 	tst.w	r2, #3
 
-  8021c20:	f040 803a 	bne.w	8021c98 <strcmp_unaligned>
 
-  8021c24:	f010 0203 	ands.w	r2, r0, #3
 
-  8021c28:	f020 0003 	bic.w	r0, r0, #3
 
-  8021c2c:	f021 0103 	bic.w	r1, r1, #3
 
-  8021c30:	f850 cb04 	ldr.w	ip, [r0], #4
 
-  8021c34:	bf08      	it	eq
 
-  8021c36:	f851 3b04 	ldreq.w	r3, [r1], #4
 
-  8021c3a:	d00d      	beq.n	8021c58 <strcmp+0x40>
 
-  8021c3c:	f082 0203 	eor.w	r2, r2, #3
 
-  8021c40:	ea4f 02c2 	mov.w	r2, r2, lsl #3
 
-  8021c44:	f06f 437f 	mvn.w	r3, #4278190080	; 0xff000000
 
-  8021c48:	fa23 f202 	lsr.w	r2, r3, r2
 
-  8021c4c:	f851 3b04 	ldr.w	r3, [r1], #4
 
-  8021c50:	ea4c 0c02 	orr.w	ip, ip, r2
 
-  8021c54:	ea43 0302 	orr.w	r3, r3, r2
 
-  8021c58:	f1ac 3201 	sub.w	r2, ip, #16843009	; 0x1010101
 
-  8021c5c:	459c      	cmp	ip, r3
 
-  8021c5e:	bf01      	itttt	eq
 
-  8021c60:	ea22 020c 	biceq.w	r2, r2, ip
 
-  8021c64:	f012 3f80 	tsteq.w	r2, #2155905152	; 0x80808080
 
-  8021c68:	f850 cb04 	ldreq.w	ip, [r0], #4
 
-  8021c6c:	f851 3b04 	ldreq.w	r3, [r1], #4
 
-  8021c70:	d0f2      	beq.n	8021c58 <strcmp+0x40>
 
-  8021c72:	ea4f 600c 	mov.w	r0, ip, lsl #24
 
-  8021c76:	ea4f 2c1c 	mov.w	ip, ip, lsr #8
 
-  8021c7a:	2801      	cmp	r0, #1
 
-  8021c7c:	bf28      	it	cs
 
-  8021c7e:	ebb0 6f03 	cmpcs.w	r0, r3, lsl #24
 
-  8021c82:	bf08      	it	eq
 
-  8021c84:	0a1b      	lsreq	r3, r3, #8
 
-  8021c86:	d0f4      	beq.n	8021c72 <strcmp+0x5a>
 
-  8021c88:	f003 03ff 	and.w	r3, r3, #255	; 0xff
 
-  8021c8c:	ea4f 6010 	mov.w	r0, r0, lsr #24
 
-  8021c90:	eba0 0003 	sub.w	r0, r0, r3
 
-  8021c94:	4770      	bx	lr
 
-  8021c96:	bf00      	nop
 
- 08021c98 <strcmp_unaligned>:
 
-  8021c98:	f010 0f03 	tst.w	r0, #3
 
-  8021c9c:	d00a      	beq.n	8021cb4 <strcmp_unaligned+0x1c>
 
-  8021c9e:	f810 2b01 	ldrb.w	r2, [r0], #1
 
-  8021ca2:	f811 3b01 	ldrb.w	r3, [r1], #1
 
-  8021ca6:	2a01      	cmp	r2, #1
 
-  8021ca8:	bf28      	it	cs
 
-  8021caa:	429a      	cmpcs	r2, r3
 
-  8021cac:	d0f4      	beq.n	8021c98 <strcmp_unaligned>
 
-  8021cae:	eba2 0003 	sub.w	r0, r2, r3
 
-  8021cb2:	4770      	bx	lr
 
-  8021cb4:	f84d 5d04 	str.w	r5, [sp, #-4]!
 
-  8021cb8:	f84d 4d04 	str.w	r4, [sp, #-4]!
 
-  8021cbc:	f04f 0201 	mov.w	r2, #1
 
-  8021cc0:	ea42 2202 	orr.w	r2, r2, r2, lsl #8
 
-  8021cc4:	ea42 4202 	orr.w	r2, r2, r2, lsl #16
 
-  8021cc8:	f001 0c03 	and.w	ip, r1, #3
 
-  8021ccc:	f021 0103 	bic.w	r1, r1, #3
 
-  8021cd0:	f850 4b04 	ldr.w	r4, [r0], #4
 
-  8021cd4:	f851 5b04 	ldr.w	r5, [r1], #4
 
-  8021cd8:	f1bc 0f02 	cmp.w	ip, #2
 
-  8021cdc:	d026      	beq.n	8021d2c <strcmp_unaligned+0x94>
 
-  8021cde:	d84b      	bhi.n	8021d78 <strcmp_unaligned+0xe0>
 
-  8021ce0:	f024 4c7f 	bic.w	ip, r4, #4278190080	; 0xff000000
 
-  8021ce4:	ebbc 2f15 	cmp.w	ip, r5, lsr #8
 
-  8021ce8:	eba4 0302 	sub.w	r3, r4, r2
 
-  8021cec:	ea23 0304 	bic.w	r3, r3, r4
 
-  8021cf0:	d10d      	bne.n	8021d0e <strcmp_unaligned+0x76>
 
-  8021cf2:	ea13 13c2 	ands.w	r3, r3, r2, lsl #7
 
-  8021cf6:	bf08      	it	eq
 
-  8021cf8:	f851 5b04 	ldreq.w	r5, [r1], #4
 
-  8021cfc:	d10a      	bne.n	8021d14 <strcmp_unaligned+0x7c>
 
-  8021cfe:	ea8c 0c04 	eor.w	ip, ip, r4
 
-  8021d02:	ebbc 6f05 	cmp.w	ip, r5, lsl #24
 
-  8021d06:	d10c      	bne.n	8021d22 <strcmp_unaligned+0x8a>
 
-  8021d08:	f850 4b04 	ldr.w	r4, [r0], #4
 
-  8021d0c:	e7e8      	b.n	8021ce0 <strcmp_unaligned+0x48>
 
-  8021d0e:	ea4f 2515 	mov.w	r5, r5, lsr #8
 
-  8021d12:	e05c      	b.n	8021dce <strcmp_unaligned+0x136>
 
-  8021d14:	f033 437f 	bics.w	r3, r3, #4278190080	; 0xff000000
 
-  8021d18:	d152      	bne.n	8021dc0 <strcmp_unaligned+0x128>
 
-  8021d1a:	780d      	ldrb	r5, [r1, #0]
 
-  8021d1c:	ea4f 6c14 	mov.w	ip, r4, lsr #24
 
-  8021d20:	e055      	b.n	8021dce <strcmp_unaligned+0x136>
 
-  8021d22:	ea4f 6c14 	mov.w	ip, r4, lsr #24
 
-  8021d26:	f005 05ff 	and.w	r5, r5, #255	; 0xff
 
-  8021d2a:	e050      	b.n	8021dce <strcmp_unaligned+0x136>
 
-  8021d2c:	ea4f 4c04 	mov.w	ip, r4, lsl #16
 
-  8021d30:	eba4 0302 	sub.w	r3, r4, r2
 
-  8021d34:	ea4f 4c1c 	mov.w	ip, ip, lsr #16
 
-  8021d38:	ea23 0304 	bic.w	r3, r3, r4
 
-  8021d3c:	ebbc 4f15 	cmp.w	ip, r5, lsr #16
 
-  8021d40:	d117      	bne.n	8021d72 <strcmp_unaligned+0xda>
 
-  8021d42:	ea13 13c2 	ands.w	r3, r3, r2, lsl #7
 
-  8021d46:	bf08      	it	eq
 
-  8021d48:	f851 5b04 	ldreq.w	r5, [r1], #4
 
-  8021d4c:	d107      	bne.n	8021d5e <strcmp_unaligned+0xc6>
 
-  8021d4e:	ea8c 0c04 	eor.w	ip, ip, r4
 
-  8021d52:	ebbc 4f05 	cmp.w	ip, r5, lsl #16
 
-  8021d56:	d108      	bne.n	8021d6a <strcmp_unaligned+0xd2>
 
-  8021d58:	f850 4b04 	ldr.w	r4, [r0], #4
 
-  8021d5c:	e7e6      	b.n	8021d2c <strcmp_unaligned+0x94>
 
-  8021d5e:	041b      	lsls	r3, r3, #16
 
-  8021d60:	d12e      	bne.n	8021dc0 <strcmp_unaligned+0x128>
 
-  8021d62:	880d      	ldrh	r5, [r1, #0]
 
-  8021d64:	ea4f 4c14 	mov.w	ip, r4, lsr #16
 
-  8021d68:	e031      	b.n	8021dce <strcmp_unaligned+0x136>
 
-  8021d6a:	ea4f 4505 	mov.w	r5, r5, lsl #16
 
-  8021d6e:	ea4f 4c14 	mov.w	ip, r4, lsr #16
 
-  8021d72:	ea4f 4515 	mov.w	r5, r5, lsr #16
 
-  8021d76:	e02a      	b.n	8021dce <strcmp_unaligned+0x136>
 
-  8021d78:	f004 0cff 	and.w	ip, r4, #255	; 0xff
 
-  8021d7c:	ebbc 6f15 	cmp.w	ip, r5, lsr #24
 
-  8021d80:	eba4 0302 	sub.w	r3, r4, r2
 
-  8021d84:	ea23 0304 	bic.w	r3, r3, r4
 
-  8021d88:	d10d      	bne.n	8021da6 <strcmp_unaligned+0x10e>
 
-  8021d8a:	ea13 13c2 	ands.w	r3, r3, r2, lsl #7
 
-  8021d8e:	bf08      	it	eq
 
-  8021d90:	f851 5b04 	ldreq.w	r5, [r1], #4
 
-  8021d94:	d10a      	bne.n	8021dac <strcmp_unaligned+0x114>
 
-  8021d96:	ea8c 0c04 	eor.w	ip, ip, r4
 
-  8021d9a:	ebbc 2f05 	cmp.w	ip, r5, lsl #8
 
-  8021d9e:	d10a      	bne.n	8021db6 <strcmp_unaligned+0x11e>
 
-  8021da0:	f850 4b04 	ldr.w	r4, [r0], #4
 
-  8021da4:	e7e8      	b.n	8021d78 <strcmp_unaligned+0xe0>
 
-  8021da6:	ea4f 6515 	mov.w	r5, r5, lsr #24
 
-  8021daa:	e010      	b.n	8021dce <strcmp_unaligned+0x136>
 
-  8021dac:	f014 0fff 	tst.w	r4, #255	; 0xff
 
-  8021db0:	d006      	beq.n	8021dc0 <strcmp_unaligned+0x128>
 
-  8021db2:	f851 5b04 	ldr.w	r5, [r1], #4
 
-  8021db6:	ea4f 2c14 	mov.w	ip, r4, lsr #8
 
-  8021dba:	f025 457f 	bic.w	r5, r5, #4278190080	; 0xff000000
 
-  8021dbe:	e006      	b.n	8021dce <strcmp_unaligned+0x136>
 
-  8021dc0:	f04f 0000 	mov.w	r0, #0
 
-  8021dc4:	f85d 4b04 	ldr.w	r4, [sp], #4
 
-  8021dc8:	f85d 5b04 	ldr.w	r5, [sp], #4
 
-  8021dcc:	4770      	bx	lr
 
-  8021dce:	f00c 02ff 	and.w	r2, ip, #255	; 0xff
 
-  8021dd2:	f005 00ff 	and.w	r0, r5, #255	; 0xff
 
-  8021dd6:	2801      	cmp	r0, #1
 
-  8021dd8:	bf28      	it	cs
 
-  8021dda:	4290      	cmpcs	r0, r2
 
-  8021ddc:	bf04      	itt	eq
 
-  8021dde:	ea4f 2c1c 	moveq.w	ip, ip, lsr #8
 
-  8021de2:	0a2d      	lsreq	r5, r5, #8
 
-  8021de4:	d0f3      	beq.n	8021dce <strcmp_unaligned+0x136>
 
-  8021de6:	eba2 0000 	sub.w	r0, r2, r0
 
-  8021dea:	f85d 4b04 	ldr.w	r4, [sp], #4
 
-  8021dee:	f85d 5b04 	ldr.w	r5, [sp], #4
 
-  8021df2:	4770      	bx	lr
 
- 08021df4 <strcpy>:
 
-  8021df4:	ea80 0201 	eor.w	r2, r0, r1
 
-  8021df8:	4684      	mov	ip, r0
 
-  8021dfa:	f012 0f03 	tst.w	r2, #3
 
-  8021dfe:	d14f      	bne.n	8021ea0 <strcpy+0xac>
 
-  8021e00:	f011 0f03 	tst.w	r1, #3
 
-  8021e04:	d132      	bne.n	8021e6c <strcpy+0x78>
 
-  8021e06:	f84d 4d04 	str.w	r4, [sp, #-4]!
 
-  8021e0a:	f011 0f04 	tst.w	r1, #4
 
-  8021e0e:	f851 3b04 	ldr.w	r3, [r1], #4
 
-  8021e12:	d00b      	beq.n	8021e2c <strcpy+0x38>
 
-  8021e14:	f1a3 3201 	sub.w	r2, r3, #16843009	; 0x1010101
 
-  8021e18:	439a      	bics	r2, r3
 
-  8021e1a:	f012 3f80 	tst.w	r2, #2155905152	; 0x80808080
 
-  8021e1e:	bf04      	itt	eq
 
-  8021e20:	f84c 3b04 	streq.w	r3, [ip], #4
 
-  8021e24:	f851 3b04 	ldreq.w	r3, [r1], #4
 
-  8021e28:	d116      	bne.n	8021e58 <strcpy+0x64>
 
-  8021e2a:	bf00      	nop
 
-  8021e2c:	f851 4b04 	ldr.w	r4, [r1], #4
 
-  8021e30:	f1a3 3201 	sub.w	r2, r3, #16843009	; 0x1010101
 
-  8021e34:	439a      	bics	r2, r3
 
-  8021e36:	f012 3f80 	tst.w	r2, #2155905152	; 0x80808080
 
-  8021e3a:	f1a4 3201 	sub.w	r2, r4, #16843009	; 0x1010101
 
-  8021e3e:	d10b      	bne.n	8021e58 <strcpy+0x64>
 
-  8021e40:	f84c 3b04 	str.w	r3, [ip], #4
 
-  8021e44:	43a2      	bics	r2, r4
 
-  8021e46:	f012 3f80 	tst.w	r2, #2155905152	; 0x80808080
 
-  8021e4a:	bf04      	itt	eq
 
-  8021e4c:	f851 3b04 	ldreq.w	r3, [r1], #4
 
-  8021e50:	f84c 4b04 	streq.w	r4, [ip], #4
 
-  8021e54:	d0ea      	beq.n	8021e2c <strcpy+0x38>
 
-  8021e56:	4623      	mov	r3, r4
 
-  8021e58:	f80c 3b01 	strb.w	r3, [ip], #1
 
-  8021e5c:	f013 0fff 	tst.w	r3, #255	; 0xff
 
-  8021e60:	ea4f 2333 	mov.w	r3, r3, ror #8
 
-  8021e64:	d1f8      	bne.n	8021e58 <strcpy+0x64>
 
-  8021e66:	f85d 4b04 	ldr.w	r4, [sp], #4
 
-  8021e6a:	4770      	bx	lr
 
-  8021e6c:	f011 0f01 	tst.w	r1, #1
 
-  8021e70:	d006      	beq.n	8021e80 <strcpy+0x8c>
 
-  8021e72:	f811 2b01 	ldrb.w	r2, [r1], #1
 
-  8021e76:	f80c 2b01 	strb.w	r2, [ip], #1
 
-  8021e7a:	2a00      	cmp	r2, #0
 
-  8021e7c:	bf08      	it	eq
 
-  8021e7e:	4770      	bxeq	lr
 
-  8021e80:	f011 0f02 	tst.w	r1, #2
 
-  8021e84:	d0bf      	beq.n	8021e06 <strcpy+0x12>
 
-  8021e86:	f831 2b02 	ldrh.w	r2, [r1], #2
 
-  8021e8a:	f012 0fff 	tst.w	r2, #255	; 0xff
 
-  8021e8e:	bf16      	itet	ne
 
-  8021e90:	f82c 2b02 	strhne.w	r2, [ip], #2
 
-  8021e94:	f88c 2000 	strbeq.w	r2, [ip]
 
-  8021e98:	f412 4f7f 	tstne.w	r2, #65280	; 0xff00
 
-  8021e9c:	d1b3      	bne.n	8021e06 <strcpy+0x12>
 
-  8021e9e:	4770      	bx	lr
 
-  8021ea0:	f811 2b01 	ldrb.w	r2, [r1], #1
 
-  8021ea4:	f80c 2b01 	strb.w	r2, [ip], #1
 
-  8021ea8:	2a00      	cmp	r2, #0
 
-  8021eaa:	d1f9      	bne.n	8021ea0 <strcpy+0xac>
 
-  8021eac:	4770      	bx	lr
 
-  8021eae:	bf00      	nop
 
- 08021eb0 <strlen>:
 
-  8021eb0:	f020 0103 	bic.w	r1, r0, #3
 
-  8021eb4:	f010 0003 	ands.w	r0, r0, #3
 
-  8021eb8:	f1c0 0000 	rsb	r0, r0, #0
 
-  8021ebc:	f851 3b04 	ldr.w	r3, [r1], #4
 
-  8021ec0:	f100 0c04 	add.w	ip, r0, #4
 
-  8021ec4:	ea4f 0ccc 	mov.w	ip, ip, lsl #3
 
-  8021ec8:	f06f 0200 	mvn.w	r2, #0
 
-  8021ecc:	bf1c      	itt	ne
 
-  8021ece:	fa22 f20c 	lsrne.w	r2, r2, ip
 
-  8021ed2:	4313      	orrne	r3, r2
 
-  8021ed4:	f04f 0c01 	mov.w	ip, #1
 
-  8021ed8:	ea4c 2c0c 	orr.w	ip, ip, ip, lsl #8
 
-  8021edc:	ea4c 4c0c 	orr.w	ip, ip, ip, lsl #16
 
-  8021ee0:	eba3 020c 	sub.w	r2, r3, ip
 
-  8021ee4:	ea22 0203 	bic.w	r2, r2, r3
 
-  8021ee8:	ea12 12cc 	ands.w	r2, r2, ip, lsl #7
 
-  8021eec:	bf04      	itt	eq
 
-  8021eee:	f851 3b04 	ldreq.w	r3, [r1], #4
 
-  8021ef2:	3004      	addeq	r0, #4
 
-  8021ef4:	d0f4      	beq.n	8021ee0 <strlen+0x30>
 
-  8021ef6:	f013 0fff 	tst.w	r3, #255	; 0xff
 
-  8021efa:	bf1f      	itttt	ne
 
-  8021efc:	3001      	addne	r0, #1
 
-  8021efe:	f413 4f7f 	tstne.w	r3, #65280	; 0xff00
 
-  8021f02:	3001      	addne	r0, #1
 
-  8021f04:	f413 0f7f 	tstne.w	r3, #16711680	; 0xff0000
 
-  8021f08:	bf18      	it	ne
 
-  8021f0a:	3001      	addne	r0, #1
 
-  8021f0c:	4770      	bx	lr
 
-  8021f0e:	bf00      	nop
 
- 08021f10 <strncat>:
 
-  8021f10:	0783      	lsls	r3, r0, #30
 
-  8021f12:	b470      	push	{r4, r5, r6}
 
-  8021f14:	d113      	bne.n	8021f3e <strncat+0x2e>
 
-  8021f16:	6803      	ldr	r3, [r0, #0]
 
-  8021f18:	f1a3 3401 	sub.w	r4, r3, #16843009	; 0x1010101
 
-  8021f1c:	ea24 0303 	bic.w	r3, r4, r3
 
-  8021f20:	f013 3f80 	tst.w	r3, #2155905152	; 0x80808080
 
-  8021f24:	d10b      	bne.n	8021f3e <strncat+0x2e>
 
-  8021f26:	1d03      	adds	r3, r0, #4
 
-  8021f28:	461d      	mov	r5, r3
 
-  8021f2a:	f853 4b04 	ldr.w	r4, [r3], #4
 
-  8021f2e:	f1a4 3601 	sub.w	r6, r4, #16843009	; 0x1010101
 
-  8021f32:	ea26 0404 	bic.w	r4, r6, r4
 
-  8021f36:	f014 3f80 	tst.w	r4, #2155905152	; 0x80808080
 
-  8021f3a:	d0f5      	beq.n	8021f28 <strncat+0x18>
 
-  8021f3c:	e000      	b.n	8021f40 <strncat+0x30>
 
-  8021f3e:	4605      	mov	r5, r0
 
-  8021f40:	782b      	ldrb	r3, [r5, #0]
 
-  8021f42:	b12b      	cbz	r3, 8021f50 <strncat+0x40>
 
-  8021f44:	1c6b      	adds	r3, r5, #1
 
-  8021f46:	461d      	mov	r5, r3
 
-  8021f48:	3301      	adds	r3, #1
 
-  8021f4a:	782c      	ldrb	r4, [r5, #0]
 
-  8021f4c:	2c00      	cmp	r4, #0
 
-  8021f4e:	d1fa      	bne.n	8021f46 <strncat+0x36>
 
-  8021f50:	3901      	subs	r1, #1
 
-  8021f52:	3d01      	subs	r5, #1
 
-  8021f54:	1e53      	subs	r3, r2, #1
 
-  8021f56:	b15a      	cbz	r2, 8021f70 <strncat+0x60>
 
-  8021f58:	f811 4f01 	ldrb.w	r4, [r1, #1]!
 
-  8021f5c:	461a      	mov	r2, r3
 
-  8021f5e:	f805 4f01 	strb.w	r4, [r5, #1]!
 
-  8021f62:	b12c      	cbz	r4, 8021f70 <strncat+0x60>
 
-  8021f64:	2b00      	cmp	r3, #0
 
-  8021f66:	d1f5      	bne.n	8021f54 <strncat+0x44>
 
-  8021f68:	706b      	strb	r3, [r5, #1]
 
-  8021f6a:	1e53      	subs	r3, r2, #1
 
-  8021f6c:	2a00      	cmp	r2, #0
 
-  8021f6e:	d1f3      	bne.n	8021f58 <strncat+0x48>
 
-  8021f70:	bc70      	pop	{r4, r5, r6}
 
-  8021f72:	4770      	bx	lr
 
- 08021f74 <strncmp>:
 
-  8021f74:	b470      	push	{r4, r5, r6}
 
-  8021f76:	2a00      	cmp	r2, #0
 
-  8021f78:	d045      	beq.n	8022006 <strncmp+0x92>
 
-  8021f7a:	ea41 0300 	orr.w	r3, r1, r0
 
-  8021f7e:	f013 0303 	ands.w	r3, r3, #3
 
-  8021f82:	d129      	bne.n	8021fd8 <strncmp+0x64>
 
-  8021f84:	2a03      	cmp	r2, #3
 
-  8021f86:	d927      	bls.n	8021fd8 <strncmp+0x64>
 
-  8021f88:	6805      	ldr	r5, [r0, #0]
 
-  8021f8a:	680c      	ldr	r4, [r1, #0]
 
-  8021f8c:	42a5      	cmp	r5, r4
 
-  8021f8e:	d123      	bne.n	8021fd8 <strncmp+0x64>
 
-  8021f90:	1f14      	subs	r4, r2, #4
 
-  8021f92:	d03a      	beq.n	802200a <strncmp+0x96>
 
-  8021f94:	f1a5 3201 	sub.w	r2, r5, #16843009	; 0x1010101
 
-  8021f98:	ea22 0505 	bic.w	r5, r2, r5
 
-  8021f9c:	f015 3f80 	tst.w	r5, #2155905152	; 0x80808080
 
-  8021fa0:	d00d      	beq.n	8021fbe <strncmp+0x4a>
 
-  8021fa2:	e03a      	b.n	802201a <strncmp+0xa6>
 
-  8021fa4:	685b      	ldr	r3, [r3, #4]
 
-  8021fa6:	686a      	ldr	r2, [r5, #4]
 
-  8021fa8:	f1a3 3501 	sub.w	r5, r3, #16843009	; 0x1010101
 
-  8021fac:	4293      	cmp	r3, r2
 
-  8021fae:	ea25 0503 	bic.w	r5, r5, r3
 
-  8021fb2:	d12e      	bne.n	8022012 <strncmp+0x9e>
 
-  8021fb4:	3c04      	subs	r4, #4
 
-  8021fb6:	d028      	beq.n	802200a <strncmp+0x96>
 
-  8021fb8:	f015 3f80 	tst.w	r5, #2155905152	; 0x80808080
 
-  8021fbc:	d127      	bne.n	802200e <strncmp+0x9a>
 
-  8021fbe:	460d      	mov	r5, r1
 
-  8021fc0:	4603      	mov	r3, r0
 
-  8021fc2:	3104      	adds	r1, #4
 
-  8021fc4:	3004      	adds	r0, #4
 
-  8021fc6:	2c03      	cmp	r4, #3
 
-  8021fc8:	d8ec      	bhi.n	8021fa4 <strncmp+0x30>
 
-  8021fca:	1e66      	subs	r6, r4, #1
 
-  8021fcc:	b92c      	cbnz	r4, 8021fda <strncmp+0x66>
 
-  8021fce:	791c      	ldrb	r4, [r3, #4]
 
-  8021fd0:	792a      	ldrb	r2, [r5, #4]
 
-  8021fd2:	1aa0      	subs	r0, r4, r2
 
-  8021fd4:	bc70      	pop	{r4, r5, r6}
 
-  8021fd6:	4770      	bx	lr
 
-  8021fd8:	1e56      	subs	r6, r2, #1
 
-  8021fda:	7804      	ldrb	r4, [r0, #0]
 
-  8021fdc:	780a      	ldrb	r2, [r1, #0]
 
-  8021fde:	4294      	cmp	r4, r2
 
-  8021fe0:	d1f7      	bne.n	8021fd2 <strncmp+0x5e>
 
-  8021fe2:	b1c6      	cbz	r6, 8022016 <strncmp+0xa2>
 
-  8021fe4:	b18c      	cbz	r4, 802200a <strncmp+0x96>
 
-  8021fe6:	3601      	adds	r6, #1
 
-  8021fe8:	1c8b      	adds	r3, r1, #2
 
-  8021fea:	1989      	adds	r1, r1, r6
 
-  8021fec:	e004      	b.n	8021ff8 <strncmp+0x84>
 
-  8021fee:	428b      	cmp	r3, r1
 
-  8021ff0:	f103 0301 	add.w	r3, r3, #1
 
-  8021ff4:	d00b      	beq.n	802200e <strncmp+0x9a>
 
-  8021ff6:	b144      	cbz	r4, 802200a <strncmp+0x96>
 
-  8021ff8:	f813 2c01 	ldrb.w	r2, [r3, #-1]
 
-  8021ffc:	f810 4f01 	ldrb.w	r4, [r0, #1]!
 
-  8022000:	4294      	cmp	r4, r2
 
-  8022002:	d0f4      	beq.n	8021fee <strncmp+0x7a>
 
-  8022004:	e7e5      	b.n	8021fd2 <strncmp+0x5e>
 
-  8022006:	4610      	mov	r0, r2
 
-  8022008:	e7e4      	b.n	8021fd4 <strncmp+0x60>
 
-  802200a:	4620      	mov	r0, r4
 
-  802200c:	e7e2      	b.n	8021fd4 <strncmp+0x60>
 
-  802200e:	2000      	movs	r0, #0
 
-  8022010:	e7e0      	b.n	8021fd4 <strncmp+0x60>
 
-  8022012:	1e66      	subs	r6, r4, #1
 
-  8022014:	e7e1      	b.n	8021fda <strncmp+0x66>
 
-  8022016:	4630      	mov	r0, r6
 
-  8022018:	e7dc      	b.n	8021fd4 <strncmp+0x60>
 
-  802201a:	4618      	mov	r0, r3
 
-  802201c:	e7da      	b.n	8021fd4 <strncmp+0x60>
 
-  802201e:	bf00      	nop
 
- 08022020 <strncpy>:
 
-  8022020:	ea41 0300 	orr.w	r3, r1, r0
 
-  8022024:	f013 0f03 	tst.w	r3, #3
 
-  8022028:	4603      	mov	r3, r0
 
-  802202a:	b470      	push	{r4, r5, r6}
 
-  802202c:	d025      	beq.n	802207a <strncpy+0x5a>
 
-  802202e:	b1aa      	cbz	r2, 802205c <strncpy+0x3c>
 
-  8022030:	780c      	ldrb	r4, [r1, #0]
 
-  8022032:	3a01      	subs	r2, #1
 
-  8022034:	f803 4b01 	strb.w	r4, [r3], #1
 
-  8022038:	b14c      	cbz	r4, 802204e <strncpy+0x2e>
 
-  802203a:	461c      	mov	r4, r3
 
-  802203c:	b172      	cbz	r2, 802205c <strncpy+0x3c>
 
-  802203e:	f811 5f01 	ldrb.w	r5, [r1, #1]!
 
-  8022042:	3a01      	subs	r2, #1
 
-  8022044:	f804 5b01 	strb.w	r5, [r4], #1
 
-  8022048:	4623      	mov	r3, r4
 
-  802204a:	2d00      	cmp	r5, #0
 
-  802204c:	d1f6      	bne.n	802203c <strncpy+0x1c>
 
-  802204e:	b12a      	cbz	r2, 802205c <strncpy+0x3c>
 
-  8022050:	189a      	adds	r2, r3, r2
 
-  8022052:	2100      	movs	r1, #0
 
-  8022054:	f803 1b01 	strb.w	r1, [r3], #1
 
-  8022058:	4293      	cmp	r3, r2
 
-  802205a:	d1fb      	bne.n	8022054 <strncpy+0x34>
 
-  802205c:	bc70      	pop	{r4, r5, r6}
 
-  802205e:	4770      	bx	lr
 
-  8022060:	460e      	mov	r6, r1
 
-  8022062:	f851 4b04 	ldr.w	r4, [r1], #4
 
-  8022066:	f1a4 3501 	sub.w	r5, r4, #16843009	; 0x1010101
 
-  802206a:	ea25 0504 	bic.w	r5, r5, r4
 
-  802206e:	f015 3f80 	tst.w	r5, #2155905152	; 0x80808080
 
-  8022072:	d105      	bne.n	8022080 <strncpy+0x60>
 
-  8022074:	3a04      	subs	r2, #4
 
-  8022076:	f843 4b04 	str.w	r4, [r3], #4
 
-  802207a:	2a03      	cmp	r2, #3
 
-  802207c:	d8f0      	bhi.n	8022060 <strncpy+0x40>
 
-  802207e:	e7d6      	b.n	802202e <strncpy+0xe>
 
-  8022080:	4631      	mov	r1, r6
 
-  8022082:	e7d4      	b.n	802202e <strncpy+0xe>
 
- 08022084 <strpbrk>:
 
-  8022084:	b4f0      	push	{r4, r5, r6, r7}
 
-  8022086:	7804      	ldrb	r4, [r0, #0]
 
-  8022088:	2c00      	cmp	r4, #0
 
-  802208a:	d021      	beq.n	80220d0 <strpbrk+0x4c>
 
-  802208c:	780f      	ldrb	r7, [r1, #0]
 
-  802208e:	4606      	mov	r6, r0
 
-  8022090:	4630      	mov	r0, r6
 
-  8022092:	b1af      	cbz	r7, 80220c0 <strpbrk+0x3c>
 
-  8022094:	42a7      	cmp	r7, r4
 
-  8022096:	d019      	beq.n	80220cc <strpbrk+0x48>
 
-  8022098:	1c4b      	adds	r3, r1, #1
 
-  802209a:	e001      	b.n	80220a0 <strpbrk+0x1c>
 
-  802209c:	4294      	cmp	r4, r2
 
-  802209e:	d009      	beq.n	80220b4 <strpbrk+0x30>
 
-  80220a0:	461d      	mov	r5, r3
 
-  80220a2:	f813 2b01 	ldrb.w	r2, [r3], #1
 
-  80220a6:	2a00      	cmp	r2, #0
 
-  80220a8:	d1f8      	bne.n	802209c <strpbrk+0x18>
 
-  80220aa:	7844      	ldrb	r4, [r0, #1]
 
-  80220ac:	3601      	adds	r6, #1
 
-  80220ae:	2c00      	cmp	r4, #0
 
-  80220b0:	d1ee      	bne.n	8022090 <strpbrk+0xc>
 
-  80220b2:	782a      	ldrb	r2, [r5, #0]
 
-  80220b4:	2a00      	cmp	r2, #0
 
-  80220b6:	bf14      	ite	ne
 
-  80220b8:	4630      	movne	r0, r6
 
-  80220ba:	2000      	moveq	r0, #0
 
-  80220bc:	bcf0      	pop	{r4, r5, r6, r7}
 
-  80220be:	4770      	bx	lr
 
-  80220c0:	7844      	ldrb	r4, [r0, #1]
 
-  80220c2:	460d      	mov	r5, r1
 
-  80220c4:	3601      	adds	r6, #1
 
-  80220c6:	2c00      	cmp	r4, #0
 
-  80220c8:	d1e2      	bne.n	8022090 <strpbrk+0xc>
 
-  80220ca:	e7f2      	b.n	80220b2 <strpbrk+0x2e>
 
-  80220cc:	463a      	mov	r2, r7
 
-  80220ce:	e7f1      	b.n	80220b4 <strpbrk+0x30>
 
-  80220d0:	4620      	mov	r0, r4
 
-  80220d2:	e7f3      	b.n	80220bc <strpbrk+0x38>
 
- 080220d4 <critical_factorization>:
 
-  80220d4:	e92d 07f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl}
 
-  80220d8:	2701      	movs	r7, #1
 
-  80220da:	463c      	mov	r4, r7
 
-  80220dc:	2500      	movs	r5, #0
 
-  80220de:	f04f 36ff 	mov.w	r6, #4294967295
 
-  80220e2:	1963      	adds	r3, r4, r5
 
-  80220e4:	eb00 0c06 	add.w	ip, r0, r6
 
-  80220e8:	428b      	cmp	r3, r1
 
-  80220ea:	d20d      	bcs.n	8022108 <critical_factorization+0x34>
 
-  80220ec:	f81c c004 	ldrb.w	ip, [ip, r4]
 
-  80220f0:	f810 8003 	ldrb.w	r8, [r0, r3]
 
-  80220f4:	45e0      	cmp	r8, ip
 
-  80220f6:	d22e      	bcs.n	8022156 <critical_factorization+0x82>
 
-  80220f8:	2401      	movs	r4, #1
 
-  80220fa:	461d      	mov	r5, r3
 
-  80220fc:	1b9f      	subs	r7, r3, r6
 
-  80220fe:	1963      	adds	r3, r4, r5
 
-  8022100:	428b      	cmp	r3, r1
 
-  8022102:	eb00 0c06 	add.w	ip, r0, r6
 
-  8022106:	d3f1      	bcc.n	80220ec <critical_factorization+0x18>
 
-  8022108:	f04f 0a01 	mov.w	sl, #1
 
-  802210c:	2500      	movs	r5, #0
 
-  802210e:	4654      	mov	r4, sl
 
-  8022110:	f04f 3cff 	mov.w	ip, #4294967295
 
-  8022114:	6017      	str	r7, [r2, #0]
 
-  8022116:	1963      	adds	r3, r4, r5
 
-  8022118:	eb00 080c 	add.w	r8, r0, ip
 
-  802211c:	4299      	cmp	r1, r3
 
-  802211e:	d90e      	bls.n	802213e <critical_factorization+0x6a>
 
-  8022120:	f818 8004 	ldrb.w	r8, [r8, r4]
 
-  8022124:	f810 9003 	ldrb.w	r9, [r0, r3]
 
-  8022128:	45c1      	cmp	r9, r8
 
-  802212a:	d91a      	bls.n	8022162 <critical_factorization+0x8e>
 
-  802212c:	2401      	movs	r4, #1
 
-  802212e:	461d      	mov	r5, r3
 
-  8022130:	ebcc 0a03 	rsb	sl, ip, r3
 
-  8022134:	1963      	adds	r3, r4, r5
 
-  8022136:	4299      	cmp	r1, r3
 
-  8022138:	eb00 080c 	add.w	r8, r0, ip
 
-  802213c:	d8f0      	bhi.n	8022120 <critical_factorization+0x4c>
 
-  802213e:	f10c 0001 	add.w	r0, ip, #1
 
-  8022142:	3601      	adds	r6, #1
 
-  8022144:	42b0      	cmp	r0, r6
 
-  8022146:	bf3c      	itt	cc
 
-  8022148:	46ba      	movcc	sl, r7
 
-  802214a:	4630      	movcc	r0, r6
 
-  802214c:	f8c2 a000 	str.w	sl, [r2]
 
-  8022150:	e8bd 07f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl}
 
-  8022154:	4770      	bx	lr
 
-  8022156:	d00b      	beq.n	8022170 <critical_factorization+0x9c>
 
-  8022158:	2701      	movs	r7, #1
 
-  802215a:	462e      	mov	r6, r5
 
-  802215c:	463c      	mov	r4, r7
 
-  802215e:	19ed      	adds	r5, r5, r7
 
-  8022160:	e7bf      	b.n	80220e2 <critical_factorization+0xe>
 
-  8022162:	d009      	beq.n	8022178 <critical_factorization+0xa4>
 
-  8022164:	f04f 0a01 	mov.w	sl, #1
 
-  8022168:	46ac      	mov	ip, r5
 
-  802216a:	4654      	mov	r4, sl
 
-  802216c:	4455      	add	r5, sl
 
-  802216e:	e7d2      	b.n	8022116 <critical_factorization+0x42>
 
-  8022170:	42bc      	cmp	r4, r7
 
-  8022172:	d005      	beq.n	8022180 <critical_factorization+0xac>
 
-  8022174:	3401      	adds	r4, #1
 
-  8022176:	e7b4      	b.n	80220e2 <critical_factorization+0xe>
 
-  8022178:	4554      	cmp	r4, sl
 
-  802217a:	d005      	beq.n	8022188 <critical_factorization+0xb4>
 
-  802217c:	3401      	adds	r4, #1
 
-  802217e:	e7ca      	b.n	8022116 <critical_factorization+0x42>
 
-  8022180:	4627      	mov	r7, r4
 
-  8022182:	461d      	mov	r5, r3
 
-  8022184:	2401      	movs	r4, #1
 
-  8022186:	e7ac      	b.n	80220e2 <critical_factorization+0xe>
 
-  8022188:	46a2      	mov	sl, r4
 
-  802218a:	461d      	mov	r5, r3
 
-  802218c:	2401      	movs	r4, #1
 
-  802218e:	e7c2      	b.n	8022116 <critical_factorization+0x42>
 
- 08022190 <two_way_long_needle>:
 
-  8022190:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-  8022194:	f2ad 4d24 	subw	sp, sp, #1060	; 0x424
 
-  8022198:	4616      	mov	r6, r2
 
-  802219a:	4680      	mov	r8, r0
 
-  802219c:	460c      	mov	r4, r1
 
-  802219e:	4610      	mov	r0, r2
 
-  80221a0:	4619      	mov	r1, r3
 
-  80221a2:	aa07      	add	r2, sp, #28
 
-  80221a4:	461d      	mov	r5, r3
 
-  80221a6:	f7ff ff95 	bl	80220d4 <critical_factorization>
 
-  80221aa:	ab07      	add	r3, sp, #28
 
-  80221ac:	f20d 421c 	addw	r2, sp, #1052	; 0x41c
 
-  80221b0:	9003      	str	r0, [sp, #12]
 
-  80221b2:	f843 5f04 	str.w	r5, [r3, #4]!
 
-  80221b6:	4293      	cmp	r3, r2
 
-  80221b8:	d1fb      	bne.n	80221b2 <two_way_long_needle+0x22>
 
-  80221ba:	1e6f      	subs	r7, r5, #1
 
-  80221bc:	2300      	movs	r3, #0
 
-  80221be:	a808      	add	r0, sp, #32
 
-  80221c0:	b135      	cbz	r5, 80221d0 <two_way_long_needle+0x40>
 
-  80221c2:	5cf2      	ldrb	r2, [r6, r3]
 
-  80221c4:	1af9      	subs	r1, r7, r3
 
-  80221c6:	3301      	adds	r3, #1
 
-  80221c8:	42ab      	cmp	r3, r5
 
-  80221ca:	f840 1022 	str.w	r1, [r0, r2, lsl #2]
 
-  80221ce:	d1f8      	bne.n	80221c2 <two_way_long_needle+0x32>
 
-  80221d0:	9907      	ldr	r1, [sp, #28]
 
-  80221d2:	4630      	mov	r0, r6
 
-  80221d4:	9a03      	ldr	r2, [sp, #12]
 
-  80221d6:	1871      	adds	r1, r6, r1
 
-  80221d8:	f7ff fba6 	bl	8021928 <memcmp>
 
-  80221dc:	2800      	cmp	r0, #0
 
-  80221de:	d17f      	bne.n	80222e0 <two_way_long_needle+0x150>
 
-  80221e0:	f8dd c00c 	ldr.w	ip, [sp, #12]
 
-  80221e4:	4622      	mov	r2, r4
 
-  80221e6:	4682      	mov	sl, r0
 
-  80221e8:	1e6f      	subs	r7, r5, #1
 
-  80221ea:	f10c 3cff 	add.w	ip, ip, #4294967295
 
-  80221ee:	f8cd c008 	str.w	ip, [sp, #8]
 
-  80221f2:	44b4      	add	ip, r6
 
-  80221f4:	f8cd c014 	str.w	ip, [sp, #20]
 
-  80221f8:	f8dd c00c 	ldr.w	ip, [sp, #12]
 
-  80221fc:	4604      	mov	r4, r0
 
-  80221fe:	9501      	str	r5, [sp, #4]
 
-  8022200:	f1cc 0c01 	rsb	ip, ip, #1
 
-  8022204:	f8cd c010 	str.w	ip, [sp, #16]
 
-  8022208:	e009      	b.n	802221e <two_way_long_needle+0x8e>
 
-  802220a:	b134      	cbz	r4, 802221a <two_way_long_needle+0x8a>
 
-  802220c:	9a07      	ldr	r2, [sp, #28]
 
-  802220e:	4293      	cmp	r3, r2
 
-  8022210:	bf3e      	ittt	cc
 
-  8022212:	4604      	movcc	r4, r0
 
-  8022214:	9901      	ldrcc	r1, [sp, #4]
 
-  8022216:	ebc2 0301 	rsbcc	r3, r2, r1
 
-  802221a:	449a      	add	sl, r3
 
-  802221c:	462a      	mov	r2, r5
 
-  802221e:	9b01      	ldr	r3, [sp, #4]
 
-  8022220:	eb08 0002 	add.w	r0, r8, r2
 
-  8022224:	2100      	movs	r1, #0
 
-  8022226:	eb0a 0503 	add.w	r5, sl, r3
 
-  802222a:	1aaa      	subs	r2, r5, r2
 
-  802222c:	f002 fa90 	bl	8024750 <memchr>
 
-  8022230:	2800      	cmp	r0, #0
 
-  8022232:	d14f      	bne.n	80222d4 <two_way_long_needle+0x144>
 
-  8022234:	2d00      	cmp	r5, #0
 
-  8022236:	d04d      	beq.n	80222d4 <two_way_long_needle+0x144>
 
-  8022238:	eb08 0305 	add.w	r3, r8, r5
 
-  802223c:	a908      	add	r1, sp, #32
 
-  802223e:	f813 3c01 	ldrb.w	r3, [r3, #-1]
 
-  8022242:	f851 3023 	ldr.w	r3, [r1, r3, lsl #2]
 
-  8022246:	2b00      	cmp	r3, #0
 
-  8022248:	d1df      	bne.n	802220a <two_way_long_needle+0x7a>
 
-  802224a:	9a03      	ldr	r2, [sp, #12]
 
-  802224c:	4294      	cmp	r4, r2
 
-  802224e:	bf28      	it	cs
 
-  8022250:	4622      	movcs	r2, r4
 
-  8022252:	42ba      	cmp	r2, r7
 
-  8022254:	d211      	bcs.n	802227a <two_way_long_needle+0xea>
 
-  8022256:	eb08 030a 	add.w	r3, r8, sl
 
-  802225a:	f816 c002 	ldrb.w	ip, [r6, r2]
 
-  802225e:	18b1      	adds	r1, r6, r2
 
-  8022260:	5c98      	ldrb	r0, [r3, r2]
 
-  8022262:	4584      	cmp	ip, r0
 
-  8022264:	d006      	beq.n	8022274 <two_way_long_needle+0xe4>
 
-  8022266:	e02f      	b.n	80222c8 <two_way_long_needle+0x138>
 
-  8022268:	f811 0f01 	ldrb.w	r0, [r1, #1]!
 
-  802226c:	f813 c002 	ldrb.w	ip, [r3, r2]
 
-  8022270:	4584      	cmp	ip, r0
 
-  8022272:	d129      	bne.n	80222c8 <two_way_long_needle+0x138>
 
-  8022274:	3201      	adds	r2, #1
 
-  8022276:	42ba      	cmp	r2, r7
 
-  8022278:	d3f6      	bcc.n	8022268 <two_way_long_needle+0xd8>
 
-  802227a:	9b03      	ldr	r3, [sp, #12]
 
-  802227c:	9802      	ldr	r0, [sp, #8]
 
-  802227e:	429c      	cmp	r4, r3
 
-  8022280:	bf28      	it	cs
 
-  8022282:	4618      	movcs	r0, r3
 
-  8022284:	d218      	bcs.n	80222b8 <two_way_long_needle+0x128>
 
-  8022286:	f8dd c008 	ldr.w	ip, [sp, #8]
 
-  802228a:	eb08 030a 	add.w	r3, r8, sl
 
-  802228e:	f816 100c 	ldrb.w	r1, [r6, ip]
 
-  8022292:	f813 200c 	ldrb.w	r2, [r3, ip]
 
-  8022296:	4291      	cmp	r1, r2
 
-  8022298:	f040 8085 	bne.w	80223a6 <two_way_long_needle+0x216>
 
-  802229c:	9a05      	ldr	r2, [sp, #20]
 
-  802229e:	eb06 0b04 	add.w	fp, r6, r4
 
-  80222a2:	e006      	b.n	80222b2 <two_way_long_needle+0x122>
 
-  80222a4:	f813 c001 	ldrb.w	ip, [r3, r1]
 
-  80222a8:	f812 9d01 	ldrb.w	r9, [r2, #-1]!
 
-  80222ac:	45e1      	cmp	r9, ip
 
-  80222ae:	d103      	bne.n	80222b8 <two_way_long_needle+0x128>
 
-  80222b0:	4608      	mov	r0, r1
 
-  80222b2:	1e41      	subs	r1, r0, #1
 
-  80222b4:	455a      	cmp	r2, fp
 
-  80222b6:	d1f5      	bne.n	80222a4 <two_way_long_needle+0x114>
 
-  80222b8:	3401      	adds	r4, #1
 
-  80222ba:	4284      	cmp	r4, r0
 
-  80222bc:	d875      	bhi.n	80223aa <two_way_long_needle+0x21a>
 
-  80222be:	9c07      	ldr	r4, [sp, #28]
 
-  80222c0:	9b01      	ldr	r3, [sp, #4]
 
-  80222c2:	44a2      	add	sl, r4
 
-  80222c4:	1b1c      	subs	r4, r3, r4
 
-  80222c6:	e7a9      	b.n	802221c <two_way_long_needle+0x8c>
 
-  80222c8:	f8dd c010 	ldr.w	ip, [sp, #16]
 
-  80222cc:	2400      	movs	r4, #0
 
-  80222ce:	44e2      	add	sl, ip
 
-  80222d0:	4492      	add	sl, r2
 
-  80222d2:	e7a3      	b.n	802221c <two_way_long_needle+0x8c>
 
-  80222d4:	2000      	movs	r0, #0
 
-  80222d6:	b009      	add	sp, #36	; 0x24
 
-  80222d8:	f50d 6d80 	add.w	sp, sp, #1024	; 0x400
 
-  80222dc:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
-  80222e0:	f8dd c00c 	ldr.w	ip, [sp, #12]
 
-  80222e4:	f04f 0a00 	mov.w	sl, #0
 
-  80222e8:	f8dd b00c 	ldr.w	fp, [sp, #12]
 
-  80222ec:	f10d 0920 	add.w	r9, sp, #32
 
-  80222f0:	ebcc 0305 	rsb	r3, ip, r5
 
-  80222f4:	1e6f      	subs	r7, r5, #1
 
-  80222f6:	4563      	cmp	r3, ip
 
-  80222f8:	bf38      	it	cc
 
-  80222fa:	4663      	movcc	r3, ip
 
-  80222fc:	4622      	mov	r2, r4
 
-  80222fe:	3301      	adds	r3, #1
 
-  8022300:	9307      	str	r3, [sp, #28]
 
-  8022302:	f10c 33ff 	add.w	r3, ip, #4294967295
 
-  8022306:	9301      	str	r3, [sp, #4]
 
-  8022308:	9b03      	ldr	r3, [sp, #12]
 
-  802230a:	44b4      	add	ip, r6
 
-  802230c:	f8cd c008 	str.w	ip, [sp, #8]
 
-  8022310:	f1c3 0301 	rsb	r3, r3, #1
 
-  8022314:	9304      	str	r3, [sp, #16]
 
-  8022316:	eb0a 0405 	add.w	r4, sl, r5
 
-  802231a:	eb08 0002 	add.w	r0, r8, r2
 
-  802231e:	2100      	movs	r1, #0
 
-  8022320:	1aa2      	subs	r2, r4, r2
 
-  8022322:	f002 fa15 	bl	8024750 <memchr>
 
-  8022326:	2800      	cmp	r0, #0
 
-  8022328:	d1d4      	bne.n	80222d4 <two_way_long_needle+0x144>
 
-  802232a:	2c00      	cmp	r4, #0
 
-  802232c:	d0d2      	beq.n	80222d4 <two_way_long_needle+0x144>
 
-  802232e:	eb08 0304 	add.w	r3, r8, r4
 
-  8022332:	f813 3c01 	ldrb.w	r3, [r3, #-1]
 
-  8022336:	f859 3023 	ldr.w	r3, [r9, r3, lsl #2]
 
-  802233a:	bb63      	cbnz	r3, 8022396 <two_way_long_needle+0x206>
 
-  802233c:	45bb      	cmp	fp, r7
 
-  802233e:	eb08 000a 	add.w	r0, r8, sl
 
-  8022342:	d215      	bcs.n	8022370 <two_way_long_needle+0x1e0>
 
-  8022344:	f8dd c008 	ldr.w	ip, [sp, #8]
 
-  8022348:	f810 300b 	ldrb.w	r3, [r0, fp]
 
-  802234c:	f89c 2000 	ldrb.w	r2, [ip]
 
-  8022350:	429a      	cmp	r2, r3
 
-  8022352:	bf18      	it	ne
 
-  8022354:	465b      	movne	r3, fp
 
-  8022356:	d121      	bne.n	802239c <two_way_long_needle+0x20c>
 
-  8022358:	9a02      	ldr	r2, [sp, #8]
 
-  802235a:	465b      	mov	r3, fp
 
-  802235c:	e005      	b.n	802236a <two_way_long_needle+0x1da>
 
-  802235e:	f812 1f01 	ldrb.w	r1, [r2, #1]!
 
-  8022362:	f810 c003 	ldrb.w	ip, [r0, r3]
 
-  8022366:	458c      	cmp	ip, r1
 
-  8022368:	d118      	bne.n	802239c <two_way_long_needle+0x20c>
 
-  802236a:	3301      	adds	r3, #1
 
-  802236c:	42bb      	cmp	r3, r7
 
-  802236e:	d3f6      	bcc.n	802235e <two_way_long_needle+0x1ce>
 
-  8022370:	9b01      	ldr	r3, [sp, #4]
 
-  8022372:	1c5a      	adds	r2, r3, #1
 
-  8022374:	d0af      	beq.n	80222d6 <two_way_long_needle+0x146>
 
-  8022376:	f8dd c004 	ldr.w	ip, [sp, #4]
 
-  802237a:	f816 100c 	ldrb.w	r1, [r6, ip]
 
-  802237e:	f810 200c 	ldrb.w	r2, [r0, ip]
 
-  8022382:	4291      	cmp	r1, r2
 
-  8022384:	d106      	bne.n	8022394 <two_way_long_needle+0x204>
 
-  8022386:	f113 33ff 	adds.w	r3, r3, #4294967295
 
-  802238a:	d3a4      	bcc.n	80222d6 <two_way_long_needle+0x146>
 
-  802238c:	5cf1      	ldrb	r1, [r6, r3]
 
-  802238e:	5cc2      	ldrb	r2, [r0, r3]
 
-  8022390:	4291      	cmp	r1, r2
 
-  8022392:	d0f8      	beq.n	8022386 <two_way_long_needle+0x1f6>
 
-  8022394:	9b07      	ldr	r3, [sp, #28]
 
-  8022396:	449a      	add	sl, r3
 
-  8022398:	4622      	mov	r2, r4
 
-  802239a:	e7bc      	b.n	8022316 <two_way_long_needle+0x186>
 
-  802239c:	f8dd c010 	ldr.w	ip, [sp, #16]
 
-  80223a0:	44e2      	add	sl, ip
 
-  80223a2:	449a      	add	sl, r3
 
-  80223a4:	e7f8      	b.n	8022398 <two_way_long_needle+0x208>
 
-  80223a6:	9803      	ldr	r0, [sp, #12]
 
-  80223a8:	e786      	b.n	80222b8 <two_way_long_needle+0x128>
 
-  80223aa:	eb08 000a 	add.w	r0, r8, sl
 
-  80223ae:	e792      	b.n	80222d6 <two_way_long_needle+0x146>
 
- 080223b0 <strstr>:
 
-  80223b0:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-  80223b4:	4680      	mov	r8, r0
 
-  80223b6:	7803      	ldrb	r3, [r0, #0]
 
-  80223b8:	b087      	sub	sp, #28
 
-  80223ba:	460e      	mov	r6, r1
 
-  80223bc:	2b00      	cmp	r3, #0
 
-  80223be:	f000 80f7 	beq.w	80225b0 <strstr+0x200>
 
-  80223c2:	780a      	ldrb	r2, [r1, #0]
 
-  80223c4:	b19a      	cbz	r2, 80223ee <strstr+0x3e>
 
-  80223c6:	4684      	mov	ip, r0
 
-  80223c8:	3101      	adds	r1, #1
 
-  80223ca:	2701      	movs	r7, #1
 
-  80223cc:	e002      	b.n	80223d4 <strstr+0x24>
 
-  80223ce:	f811 2b01 	ldrb.w	r2, [r1], #1
 
-  80223d2:	b15a      	cbz	r2, 80223ec <strstr+0x3c>
 
-  80223d4:	4293      	cmp	r3, r2
 
-  80223d6:	bf14      	ite	ne
 
-  80223d8:	2700      	movne	r7, #0
 
-  80223da:	f007 0701 	andeq.w	r7, r7, #1
 
-  80223de:	f81c 3f01 	ldrb.w	r3, [ip, #1]!
 
-  80223e2:	460d      	mov	r5, r1
 
-  80223e4:	2b00      	cmp	r3, #0
 
-  80223e6:	d1f2      	bne.n	80223ce <strstr+0x1e>
 
-  80223e8:	782b      	ldrb	r3, [r5, #0]
 
-  80223ea:	bb03      	cbnz	r3, 802242e <strstr+0x7e>
 
-  80223ec:	b11f      	cbz	r7, 80223f6 <strstr+0x46>
 
-  80223ee:	4640      	mov	r0, r8
 
-  80223f0:	b007      	add	sp, #28
 
-  80223f2:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
-  80223f6:	f108 0001 	add.w	r0, r8, #1
 
-  80223fa:	7831      	ldrb	r1, [r6, #0]
 
-  80223fc:	f002 fe92 	bl	8025124 <strchr>
 
-  8022400:	1bad      	subs	r5, r5, r6
 
-  8022402:	2d01      	cmp	r5, #1
 
-  8022404:	bf18      	it	ne
 
-  8022406:	2800      	cmpne	r0, #0
 
-  8022408:	4607      	mov	r7, r0
 
-  802240a:	bf08      	it	eq
 
-  802240c:	4680      	moveq	r8, r0
 
-  802240e:	d0ee      	beq.n	80223ee <strstr+0x3e>
 
-  8022410:	44a8      	add	r8, r5
 
-  8022412:	4540      	cmp	r0, r8
 
-  8022414:	bf94      	ite	ls
 
-  8022416:	ebc0 0408 	rsbls	r4, r0, r8
 
-  802241a:	2401      	movhi	r4, #1
 
-  802241c:	2d1f      	cmp	r5, #31
 
-  802241e:	d909      	bls.n	8022434 <strstr+0x84>
 
-  8022420:	4621      	mov	r1, r4
 
-  8022422:	4632      	mov	r2, r6
 
-  8022424:	462b      	mov	r3, r5
 
-  8022426:	f7ff feb3 	bl	8022190 <two_way_long_needle>
 
-  802242a:	4680      	mov	r8, r0
 
-  802242c:	e7df      	b.n	80223ee <strstr+0x3e>
 
-  802242e:	f04f 0800 	mov.w	r8, #0
 
-  8022432:	e7dc      	b.n	80223ee <strstr+0x3e>
 
-  8022434:	4629      	mov	r1, r5
 
-  8022436:	aa05      	add	r2, sp, #20
 
-  8022438:	4630      	mov	r0, r6
 
-  802243a:	f7ff fe4b 	bl	80220d4 <critical_factorization>
 
-  802243e:	9905      	ldr	r1, [sp, #20]
 
-  8022440:	1871      	adds	r1, r6, r1
 
-  8022442:	9001      	str	r0, [sp, #4]
 
-  8022444:	4630      	mov	r0, r6
 
-  8022446:	9a01      	ldr	r2, [sp, #4]
 
-  8022448:	f7ff fa6e 	bl	8021928 <memcmp>
 
-  802244c:	2800      	cmp	r0, #0
 
-  802244e:	d152      	bne.n	80224f6 <strstr+0x146>
 
-  8022450:	9b01      	ldr	r3, [sp, #4]
 
-  8022452:	4683      	mov	fp, r0
 
-  8022454:	4680      	mov	r8, r0
 
-  8022456:	3b01      	subs	r3, #1
 
-  8022458:	9300      	str	r3, [sp, #0]
 
-  802245a:	18f3      	adds	r3, r6, r3
 
-  802245c:	9303      	str	r3, [sp, #12]
 
-  802245e:	9b01      	ldr	r3, [sp, #4]
 
-  8022460:	f1c3 0301 	rsb	r3, r3, #1
 
-  8022464:	9302      	str	r3, [sp, #8]
 
-  8022466:	4622      	mov	r2, r4
 
-  8022468:	eb08 0405 	add.w	r4, r8, r5
 
-  802246c:	18b8      	adds	r0, r7, r2
 
-  802246e:	2100      	movs	r1, #0
 
-  8022470:	1aa2      	subs	r2, r4, r2
 
-  8022472:	f002 f96d 	bl	8024750 <memchr>
 
-  8022476:	2800      	cmp	r0, #0
 
-  8022478:	d1d9      	bne.n	802242e <strstr+0x7e>
 
-  802247a:	2c00      	cmp	r4, #0
 
-  802247c:	d0d7      	beq.n	802242e <strstr+0x7e>
 
-  802247e:	9b01      	ldr	r3, [sp, #4]
 
-  8022480:	459b      	cmp	fp, r3
 
-  8022482:	bf28      	it	cs
 
-  8022484:	465b      	movcs	r3, fp
 
-  8022486:	429d      	cmp	r5, r3
 
-  8022488:	d913      	bls.n	80224b2 <strstr+0x102>
 
-  802248a:	18f9      	adds	r1, r7, r3
 
-  802248c:	5cf0      	ldrb	r0, [r6, r3]
 
-  802248e:	18f2      	adds	r2, r6, r3
 
-  8022490:	f811 1008 	ldrb.w	r1, [r1, r8]
 
-  8022494:	4288      	cmp	r0, r1
 
-  8022496:	f040 8085 	bne.w	80225a4 <strstr+0x1f4>
 
-  802249a:	eb07 0c08 	add.w	ip, r7, r8
 
-  802249e:	e005      	b.n	80224ac <strstr+0xfc>
 
-  80224a0:	f812 1f01 	ldrb.w	r1, [r2, #1]!
 
-  80224a4:	f81c 0003 	ldrb.w	r0, [ip, r3]
 
-  80224a8:	4288      	cmp	r0, r1
 
-  80224aa:	d17b      	bne.n	80225a4 <strstr+0x1f4>
 
-  80224ac:	3301      	adds	r3, #1
 
-  80224ae:	429d      	cmp	r5, r3
 
-  80224b0:	d8f6      	bhi.n	80224a0 <strstr+0xf0>
 
-  80224b2:	e89d 000a 	ldmia.w	sp, {r1, r3}
 
-  80224b6:	455b      	cmp	r3, fp
 
-  80224b8:	d97d      	bls.n	80225b6 <strstr+0x206>
 
-  80224ba:	eb07 0908 	add.w	r9, r7, r8
 
-  80224be:	5c72      	ldrb	r2, [r6, r1]
 
-  80224c0:	f819 3001 	ldrb.w	r3, [r9, r1]
 
-  80224c4:	429a      	cmp	r2, r3
 
-  80224c6:	d176      	bne.n	80225b6 <strstr+0x206>
 
-  80224c8:	9b03      	ldr	r3, [sp, #12]
 
-  80224ca:	eb06 0a0b 	add.w	sl, r6, fp
 
-  80224ce:	e006      	b.n	80224de <strstr+0x12e>
 
-  80224d0:	f819 0002 	ldrb.w	r0, [r9, r2]
 
-  80224d4:	f813 cd01 	ldrb.w	ip, [r3, #-1]!
 
-  80224d8:	4584      	cmp	ip, r0
 
-  80224da:	d103      	bne.n	80224e4 <strstr+0x134>
 
-  80224dc:	4611      	mov	r1, r2
 
-  80224de:	1e4a      	subs	r2, r1, #1
 
-  80224e0:	4553      	cmp	r3, sl
 
-  80224e2:	d1f5      	bne.n	80224d0 <strstr+0x120>
 
-  80224e4:	f10b 0b01 	add.w	fp, fp, #1
 
-  80224e8:	458b      	cmp	fp, r1
 
-  80224ea:	d866      	bhi.n	80225ba <strstr+0x20a>
 
-  80224ec:	9b05      	ldr	r3, [sp, #20]
 
-  80224ee:	4498      	add	r8, r3
 
-  80224f0:	ebc3 0b05 	rsb	fp, r3, r5
 
-  80224f4:	e7b7      	b.n	8022466 <strstr+0xb6>
 
-  80224f6:	9801      	ldr	r0, [sp, #4]
 
-  80224f8:	f04f 0b00 	mov.w	fp, #0
 
-  80224fc:	4622      	mov	r2, r4
 
-  80224fe:	1a2b      	subs	r3, r5, r0
 
-  8022500:	eb06 0900 	add.w	r9, r6, r0
 
-  8022504:	f100 38ff 	add.w	r8, r0, #4294967295
 
-  8022508:	4682      	mov	sl, r0
 
-  802250a:	4283      	cmp	r3, r0
 
-  802250c:	bf38      	it	cc
 
-  802250e:	4603      	movcc	r3, r0
 
-  8022510:	1839      	adds	r1, r7, r0
 
-  8022512:	3301      	adds	r3, #1
 
-  8022514:	9100      	str	r1, [sp, #0]
 
-  8022516:	9305      	str	r3, [sp, #20]
 
-  8022518:	f1c0 0301 	rsb	r3, r0, #1
 
-  802251c:	9302      	str	r3, [sp, #8]
 
-  802251e:	eb0b 0405 	add.w	r4, fp, r5
 
-  8022522:	18b8      	adds	r0, r7, r2
 
-  8022524:	2100      	movs	r1, #0
 
-  8022526:	1aa2      	subs	r2, r4, r2
 
-  8022528:	f002 f912 	bl	8024750 <memchr>
 
-  802252c:	2800      	cmp	r0, #0
 
-  802252e:	f47f af7e 	bne.w	802242e <strstr+0x7e>
 
-  8022532:	2c00      	cmp	r4, #0
 
-  8022534:	f43f af7b 	beq.w	802242e <strstr+0x7e>
 
-  8022538:	4555      	cmp	r5, sl
 
-  802253a:	bf98      	it	ls
 
-  802253c:	eb07 000b 	addls.w	r0, r7, fp
 
-  8022540:	d914      	bls.n	802256c <strstr+0x1bc>
 
-  8022542:	9800      	ldr	r0, [sp, #0]
 
-  8022544:	f899 2000 	ldrb.w	r2, [r9]
 
-  8022548:	f810 300b 	ldrb.w	r3, [r0, fp]
 
-  802254c:	429a      	cmp	r2, r3
 
-  802254e:	d124      	bne.n	802259a <strstr+0x1ea>
 
-  8022550:	464a      	mov	r2, r9
 
-  8022552:	4653      	mov	r3, sl
 
-  8022554:	eb07 000b 	add.w	r0, r7, fp
 
-  8022558:	e005      	b.n	8022566 <strstr+0x1b6>
 
-  802255a:	f812 1f01 	ldrb.w	r1, [r2, #1]!
 
-  802255e:	f810 c003 	ldrb.w	ip, [r0, r3]
 
-  8022562:	458c      	cmp	ip, r1
 
-  8022564:	d11a      	bne.n	802259c <strstr+0x1ec>
 
-  8022566:	3301      	adds	r3, #1
 
-  8022568:	429d      	cmp	r5, r3
 
-  802256a:	d8f6      	bhi.n	802255a <strstr+0x1aa>
 
-  802256c:	f1b8 3fff 	cmp.w	r8, #4294967295
 
-  8022570:	4643      	mov	r3, r8
 
-  8022572:	f43f af5a 	beq.w	802242a <strstr+0x7a>
 
-  8022576:	f816 1008 	ldrb.w	r1, [r6, r8]
 
-  802257a:	f810 2008 	ldrb.w	r2, [r0, r8]
 
-  802257e:	4291      	cmp	r1, r2
 
-  8022580:	d107      	bne.n	8022592 <strstr+0x1e2>
 
-  8022582:	f113 33ff 	adds.w	r3, r3, #4294967295
 
-  8022586:	f4ff af50 	bcc.w	802242a <strstr+0x7a>
 
-  802258a:	5cf1      	ldrb	r1, [r6, r3]
 
-  802258c:	5cc2      	ldrb	r2, [r0, r3]
 
-  802258e:	4291      	cmp	r1, r2
 
-  8022590:	d0f7      	beq.n	8022582 <strstr+0x1d2>
 
-  8022592:	9b05      	ldr	r3, [sp, #20]
 
-  8022594:	449b      	add	fp, r3
 
-  8022596:	4622      	mov	r2, r4
 
-  8022598:	e7c1      	b.n	802251e <strstr+0x16e>
 
-  802259a:	4653      	mov	r3, sl
 
-  802259c:	9a02      	ldr	r2, [sp, #8]
 
-  802259e:	4493      	add	fp, r2
 
-  80225a0:	449b      	add	fp, r3
 
-  80225a2:	e7f8      	b.n	8022596 <strstr+0x1e6>
 
-  80225a4:	9902      	ldr	r1, [sp, #8]
 
-  80225a6:	f04f 0b00 	mov.w	fp, #0
 
-  80225aa:	4488      	add	r8, r1
 
-  80225ac:	4498      	add	r8, r3
 
-  80225ae:	e75a      	b.n	8022466 <strstr+0xb6>
 
-  80225b0:	460d      	mov	r5, r1
 
-  80225b2:	2701      	movs	r7, #1
 
-  80225b4:	e718      	b.n	80223e8 <strstr+0x38>
 
-  80225b6:	9901      	ldr	r1, [sp, #4]
 
-  80225b8:	e794      	b.n	80224e4 <strstr+0x134>
 
-  80225ba:	44b8      	add	r8, r7
 
-  80225bc:	e717      	b.n	80223ee <strstr+0x3e>
 
-  80225be:	bf00      	nop
 
- 080225c0 <_strtod_r>:
 
-  80225c0:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-  80225c4:	b09d      	sub	sp, #116	; 0x74
 
-  80225c6:	468c      	mov	ip, r1
 
-  80225c8:	4683      	mov	fp, r0
 
-  80225ca:	9210      	str	r2, [sp, #64]	; 0x40
 
-  80225cc:	4662      	mov	r2, ip
 
-  80225ce:	2000      	movs	r0, #0
 
-  80225d0:	2100      	movs	r1, #0
 
-  80225d2:	f8cd c05c 	str.w	ip, [sp, #92]	; 0x5c
 
-  80225d6:	e9cd 0106 	strd	r0, r1, [sp, #24]
 
-  80225da:	4611      	mov	r1, r2
 
-  80225dc:	f812 3b01 	ldrb.w	r3, [r2], #1
 
-  80225e0:	2b2d      	cmp	r3, #45	; 0x2d
 
-  80225e2:	f200 8147 	bhi.w	8022874 <_strtod_r+0x2b4>
 
-  80225e6:	e8df f013 	tbh	[pc, r3, lsl #1]
 
-  80225ea:	0131      	.short	0x0131
 
-  80225ec:	01450145 	.word	0x01450145
 
-  80225f0:	01450145 	.word	0x01450145
 
-  80225f4:	01450145 	.word	0x01450145
 
-  80225f8:	01450145 	.word	0x01450145
 
-  80225fc:	01640164 	.word	0x01640164
 
-  8022600:	01640164 	.word	0x01640164
 
-  8022604:	01450164 	.word	0x01450164
 
-  8022608:	01450145 	.word	0x01450145
 
-  802260c:	01450145 	.word	0x01450145
 
-  8022610:	01450145 	.word	0x01450145
 
-  8022614:	01450145 	.word	0x01450145
 
-  8022618:	01450145 	.word	0x01450145
 
-  802261c:	01450145 	.word	0x01450145
 
-  8022620:	01450145 	.word	0x01450145
 
-  8022624:	01450145 	.word	0x01450145
 
-  8022628:	01640145 	.word	0x01640145
 
-  802262c:	01450145 	.word	0x01450145
 
-  8022630:	01450145 	.word	0x01450145
 
-  8022634:	01450145 	.word	0x01450145
 
-  8022638:	01450145 	.word	0x01450145
 
-  802263c:	01450145 	.word	0x01450145
 
-  8022640:	0145012e 	.word	0x0145012e
 
-  8022644:	002e      	.short	0x002e
 
-  8022646:	2501      	movs	r5, #1
 
-  8022648:	9512      	str	r5, [sp, #72]	; 0x48
 
-  802264a:	1c4e      	adds	r6, r1, #1
 
-  802264c:	9617      	str	r6, [sp, #92]	; 0x5c
 
-  802264e:	784b      	ldrb	r3, [r1, #1]
 
-  8022650:	4699      	mov	r9, r3
 
-  8022652:	469a      	mov	sl, r3
 
-  8022654:	2b00      	cmp	r3, #0
 
-  8022656:	f000 80fc 	beq.w	8022852 <_strtod_r+0x292>
 
-  802265a:	2b30      	cmp	r3, #48	; 0x30
 
-  802265c:	bf18      	it	ne
 
-  802265e:	f04f 0900 	movne.w	r9, #0
 
-  8022662:	f000 8110 	beq.w	8022886 <_strtod_r+0x2c6>
 
-  8022666:	2b2f      	cmp	r3, #47	; 0x2f
 
-  8022668:	461d      	mov	r5, r3
 
-  802266a:	f04f 0a00 	mov.w	sl, #0
 
-  802266e:	f340 84f9 	ble.w	8023064 <_strtod_r+0xaa4>
 
-  8022672:	2b39      	cmp	r3, #57	; 0x39
 
-  8022674:	f300 84f6 	bgt.w	8023064 <_strtod_r+0xaa4>
 
-  8022678:	1c72      	adds	r2, r6, #1
 
-  802267a:	4657      	mov	r7, sl
 
-  802267c:	4654      	mov	r4, sl
 
-  802267e:	e001      	b.n	8022684 <_strtod_r+0xc4>
 
-  8022680:	2b39      	cmp	r3, #57	; 0x39
 
-  8022682:	dc18      	bgt.n	80226b6 <_strtod_r+0xf6>
 
-  8022684:	eb07 0187 	add.w	r1, r7, r7, lsl #2
 
-  8022688:	2c08      	cmp	r4, #8
 
-  802268a:	eb03 0141 	add.w	r1, r3, r1, lsl #1
 
-  802268e:	bfd8      	it	le
 
-  8022690:	f1a1 0730 	suble.w	r7, r1, #48	; 0x30
 
-  8022694:	dd07      	ble.n	80226a6 <_strtod_r+0xe6>
 
-  8022696:	eb0a 018a 	add.w	r1, sl, sl, lsl #2
 
-  802269a:	2c0f      	cmp	r4, #15
 
-  802269c:	eb03 0341 	add.w	r3, r3, r1, lsl #1
 
-  80226a0:	bfd8      	it	le
 
-  80226a2:	f1a3 0a30 	suble.w	sl, r3, #48	; 0x30
 
-  80226a6:	9217      	str	r2, [sp, #92]	; 0x5c
 
-  80226a8:	4690      	mov	r8, r2
 
-  80226aa:	f812 3b01 	ldrb.w	r3, [r2], #1
 
-  80226ae:	3401      	adds	r4, #1
 
-  80226b0:	2b2f      	cmp	r3, #47	; 0x2f
 
-  80226b2:	461d      	mov	r5, r3
 
-  80226b4:	dce4      	bgt.n	8022680 <_strtod_r+0xc0>
 
-  80226b6:	4658      	mov	r0, fp
 
-  80226b8:	f8cd c010 	str.w	ip, [sp, #16]
 
-  80226bc:	f001 fd5a 	bl	8024174 <_localeconv_r>
 
-  80226c0:	6801      	ldr	r1, [r0, #0]
 
-  80226c2:	4658      	mov	r0, fp
 
-  80226c4:	9105      	str	r1, [sp, #20]
 
-  80226c6:	f001 fd55 	bl	8024174 <_localeconv_r>
 
-  80226ca:	6800      	ldr	r0, [r0, #0]
 
-  80226cc:	f7ff fbf0 	bl	8021eb0 <strlen>
 
-  80226d0:	9905      	ldr	r1, [sp, #20]
 
-  80226d2:	4602      	mov	r2, r0
 
-  80226d4:	4640      	mov	r0, r8
 
-  80226d6:	f7ff fc4d 	bl	8021f74 <strncmp>
 
-  80226da:	f8dd c010 	ldr.w	ip, [sp, #16]
 
-  80226de:	4680      	mov	r8, r0
 
-  80226e0:	2800      	cmp	r0, #0
 
-  80226e2:	f000 8142 	beq.w	802296a <_strtod_r+0x3aa>
 
-  80226e6:	2000      	movs	r0, #0
 
-  80226e8:	46a0      	mov	r8, r4
 
-  80226ea:	4601      	mov	r1, r0
 
-  80226ec:	9009      	str	r0, [sp, #36]	; 0x24
 
-  80226ee:	f025 0320 	bic.w	r3, r5, #32
 
-  80226f2:	2b45      	cmp	r3, #69	; 0x45
 
-  80226f4:	f040 80df 	bne.w	80228b6 <_strtod_r+0x2f6>
 
-  80226f8:	ea48 0300 	orr.w	r3, r8, r0
 
-  80226fc:	ea53 0309 	orrs.w	r3, r3, r9
 
-  8022700:	f000 811d 	beq.w	802293e <_strtod_r+0x37e>
 
-  8022704:	f8dd c05c 	ldr.w	ip, [sp, #92]	; 0x5c
 
-  8022708:	f10c 0301 	add.w	r3, ip, #1
 
-  802270c:	9317      	str	r3, [sp, #92]	; 0x5c
 
-  802270e:	f89c 5001 	ldrb.w	r5, [ip, #1]
 
-  8022712:	2d2b      	cmp	r5, #43	; 0x2b
 
-  8022714:	f000 84ab 	beq.w	802306e <_strtod_r+0xaae>
 
-  8022718:	2d2d      	cmp	r5, #45	; 0x2d
 
-  802271a:	f000 833d 	beq.w	8022d98 <_strtod_r+0x7d8>
 
-  802271e:	2200      	movs	r2, #0
 
-  8022720:	920a      	str	r2, [sp, #40]	; 0x28
 
-  8022722:	f1a5 0330 	sub.w	r3, r5, #48	; 0x30
 
-  8022726:	2b09      	cmp	r3, #9
 
-  8022728:	f200 842c 	bhi.w	8022f84 <_strtod_r+0x9c4>
 
-  802272c:	2d30      	cmp	r5, #48	; 0x30
 
-  802272e:	d106      	bne.n	802273e <_strtod_r+0x17e>
 
-  8022730:	9b17      	ldr	r3, [sp, #92]	; 0x5c
 
-  8022732:	3301      	adds	r3, #1
 
-  8022734:	9317      	str	r3, [sp, #92]	; 0x5c
 
-  8022736:	f813 5b01 	ldrb.w	r5, [r3], #1
 
-  802273a:	2d30      	cmp	r5, #48	; 0x30
 
-  802273c:	d0fa      	beq.n	8022734 <_strtod_r+0x174>
 
-  802273e:	f1a5 0331 	sub.w	r3, r5, #49	; 0x31
 
-  8022742:	2b08      	cmp	r3, #8
 
-  8022744:	f200 80b7 	bhi.w	80228b6 <_strtod_r+0x2f6>
 
-  8022748:	9a17      	ldr	r2, [sp, #92]	; 0x5c
 
-  802274a:	3d30      	subs	r5, #48	; 0x30
 
-  802274c:	950d      	str	r5, [sp, #52]	; 0x34
 
-  802274e:	1c53      	adds	r3, r2, #1
 
-  8022750:	9317      	str	r3, [sp, #92]	; 0x5c
 
-  8022752:	7855      	ldrb	r5, [r2, #1]
 
-  8022754:	920b      	str	r2, [sp, #44]	; 0x2c
 
-  8022756:	2d2f      	cmp	r5, #47	; 0x2f
 
-  8022758:	dd16      	ble.n	8022788 <_strtod_r+0x1c8>
 
-  802275a:	2d39      	cmp	r5, #57	; 0x39
 
-  802275c:	dc14      	bgt.n	8022788 <_strtod_r+0x1c8>
 
-  802275e:	1c93      	adds	r3, r2, #2
 
-  8022760:	910c      	str	r1, [sp, #48]	; 0x30
 
-  8022762:	9a0d      	ldr	r2, [sp, #52]	; 0x34
 
-  8022764:	e001      	b.n	802276a <_strtod_r+0x1aa>
 
-  8022766:	2d39      	cmp	r5, #57	; 0x39
 
-  8022768:	dc0b      	bgt.n	8022782 <_strtod_r+0x1c2>
 
-  802276a:	9317      	str	r3, [sp, #92]	; 0x5c
 
-  802276c:	4619      	mov	r1, r3
 
-  802276e:	eb02 0282 	add.w	r2, r2, r2, lsl #2
 
-  8022772:	3301      	adds	r3, #1
 
-  8022774:	eb05 0242 	add.w	r2, r5, r2, lsl #1
 
-  8022778:	f813 5c01 	ldrb.w	r5, [r3, #-1]
 
-  802277c:	3a30      	subs	r2, #48	; 0x30
 
-  802277e:	2d2f      	cmp	r5, #47	; 0x2f
 
-  8022780:	dcf1      	bgt.n	8022766 <_strtod_r+0x1a6>
 
-  8022782:	460b      	mov	r3, r1
 
-  8022784:	990c      	ldr	r1, [sp, #48]	; 0x30
 
-  8022786:	920d      	str	r2, [sp, #52]	; 0x34
 
-  8022788:	9a0b      	ldr	r2, [sp, #44]	; 0x2c
 
-  802278a:	1a9b      	subs	r3, r3, r2
 
-  802278c:	2b08      	cmp	r3, #8
 
-  802278e:	bfc8      	it	gt
 
-  8022790:	f644 621f 	movwgt	r2, #19999	; 0x4e1f
 
-  8022794:	dc05      	bgt.n	80227a2 <_strtod_r+0x1e2>
 
-  8022796:	9a0d      	ldr	r2, [sp, #52]	; 0x34
 
-  8022798:	f644 631f 	movw	r3, #19999	; 0x4e1f
 
-  802279c:	429a      	cmp	r2, r3
 
-  802279e:	bfa8      	it	ge
 
-  80227a0:	461a      	movge	r2, r3
 
-  80227a2:	9b0a      	ldr	r3, [sp, #40]	; 0x28
 
-  80227a4:	b103      	cbz	r3, 80227a8 <_strtod_r+0x1e8>
 
-  80227a6:	4252      	negs	r2, r2
 
-  80227a8:	f1b8 0f00 	cmp.w	r8, #0
 
-  80227ac:	f000 8088 	beq.w	80228c0 <_strtod_r+0x300>
 
-  80227b0:	9d09      	ldr	r5, [sp, #36]	; 0x24
 
-  80227b2:	4638      	mov	r0, r7
 
-  80227b4:	2c00      	cmp	r4, #0
 
-  80227b6:	bf08      	it	eq
 
-  80227b8:	4644      	moveq	r4, r8
 
-  80227ba:	940a      	str	r4, [sp, #40]	; 0x28
 
-  80227bc:	1b52      	subs	r2, r2, r5
 
-  80227be:	9209      	str	r2, [sp, #36]	; 0x24
 
-  80227c0:	f7fd fe88 	bl	80204d4 <__aeabi_ui2d>
 
-  80227c4:	f1b8 0f10 	cmp.w	r8, #16
 
-  80227c8:	bfb4      	ite	lt
 
-  80227ca:	46c1      	movlt	r9, r8
 
-  80227cc:	f04f 0910 	movge.w	r9, #16
 
-  80227d0:	f1b9 0f09 	cmp.w	r9, #9
 
-  80227d4:	4602      	mov	r2, r0
 
-  80227d6:	460b      	mov	r3, r1
 
-  80227d8:	e9cd 2306 	strd	r2, r3, [sp, #24]
 
-  80227dc:	dd16      	ble.n	802280c <_strtod_r+0x24c>
 
-  80227de:	f249 7340 	movw	r3, #38720	; 0x9740
 
-  80227e2:	f6c0 0303 	movt	r3, #2051	; 0x803
 
-  80227e6:	eb03 03c9 	add.w	r3, r3, r9, lsl #3
 
-  80227ea:	e953 2312 	ldrd	r2, r3, [r3, #-72]	; 0x48
 
-  80227ee:	f7fd fee7 	bl	80205c0 <__aeabi_dmul>
 
-  80227f2:	4604      	mov	r4, r0
 
-  80227f4:	4650      	mov	r0, sl
 
-  80227f6:	460d      	mov	r5, r1
 
-  80227f8:	f7fd fe6c 	bl	80204d4 <__aeabi_ui2d>
 
-  80227fc:	4602      	mov	r2, r0
 
-  80227fe:	460b      	mov	r3, r1
 
-  8022800:	4620      	mov	r0, r4
 
-  8022802:	4629      	mov	r1, r5
 
-  8022804:	f7fd fd2a 	bl	802025c <__adddf3>
 
-  8022808:	e9cd 0106 	strd	r0, r1, [sp, #24]
 
-  802280c:	f1b8 0f0f 	cmp.w	r8, #15
 
-  8022810:	f300 80f2 	bgt.w	80229f8 <_strtod_r+0x438>
 
-  8022814:	9c09      	ldr	r4, [sp, #36]	; 0x24
 
-  8022816:	2c00      	cmp	r4, #0
 
-  8022818:	f000 80a2 	beq.w	8022960 <_strtod_r+0x3a0>
 
-  802281c:	f340 8591 	ble.w	8023342 <_strtod_r+0xd82>
 
-  8022820:	9d09      	ldr	r5, [sp, #36]	; 0x24
 
-  8022822:	2d16      	cmp	r5, #22
 
-  8022824:	f300 8545 	bgt.w	80232b2 <_strtod_r+0xcf2>
 
-  8022828:	f249 7140 	movw	r1, #38720	; 0x9740
 
-  802282c:	e9dd 2306 	ldrd	r2, r3, [sp, #24]
 
-  8022830:	f6c0 0103 	movt	r1, #2051	; 0x803
 
-  8022834:	eb01 01c5 	add.w	r1, r1, r5, lsl #3
 
-  8022838:	e9d1 0100 	ldrd	r0, r1, [r1]
 
-  802283c:	f7fd fec0 	bl	80205c0 <__aeabi_dmul>
 
-  8022840:	4681      	mov	r9, r0
 
-  8022842:	468a      	mov	sl, r1
 
-  8022844:	e009      	b.n	802285a <_strtod_r+0x29a>
 
-  8022846:	2400      	movs	r4, #0
 
-  8022848:	9412      	str	r4, [sp, #72]	; 0x48
 
-  802284a:	e6fe      	b.n	802264a <_strtod_r+0x8a>
 
-  802284c:	f04f 0900 	mov.w	r9, #0
 
-  8022850:	46ca      	mov	sl, r9
 
-  8022852:	2400      	movs	r4, #0
 
-  8022854:	f8cd c05c 	str.w	ip, [sp, #92]	; 0x5c
 
-  8022858:	9412      	str	r4, [sp, #72]	; 0x48
 
-  802285a:	9c10      	ldr	r4, [sp, #64]	; 0x40
 
-  802285c:	b10c      	cbz	r4, 8022862 <_strtod_r+0x2a2>
 
-  802285e:	9b17      	ldr	r3, [sp, #92]	; 0x5c
 
-  8022860:	6023      	str	r3, [r4, #0]
 
-  8022862:	9d12      	ldr	r5, [sp, #72]	; 0x48
 
-  8022864:	b10d      	cbz	r5, 802286a <_strtod_r+0x2aa>
 
-  8022866:	f10a 4a00 	add.w	sl, sl, #2147483648	; 0x80000000
 
-  802286a:	4648      	mov	r0, r9
 
-  802286c:	4651      	mov	r1, sl
 
-  802286e:	b01d      	add	sp, #116	; 0x74
 
-  8022870:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
-  8022874:	2500      	movs	r5, #0
 
-  8022876:	2b30      	cmp	r3, #48	; 0x30
 
-  8022878:	460e      	mov	r6, r1
 
-  802287a:	9512      	str	r5, [sp, #72]	; 0x48
 
-  802287c:	bf18      	it	ne
 
-  802287e:	f04f 0900 	movne.w	r9, #0
 
-  8022882:	f47f aef0 	bne.w	8022666 <_strtod_r+0xa6>
 
-  8022886:	7873      	ldrb	r3, [r6, #1]
 
-  8022888:	2b58      	cmp	r3, #88	; 0x58
 
-  802288a:	f000 8383 	beq.w	8022f94 <_strtod_r+0x9d4>
 
-  802288e:	1c72      	adds	r2, r6, #1
 
-  8022890:	2b78      	cmp	r3, #120	; 0x78
 
-  8022892:	f000 837f 	beq.w	8022f94 <_strtod_r+0x9d4>
 
-  8022896:	4616      	mov	r6, r2
 
-  8022898:	9217      	str	r2, [sp, #92]	; 0x5c
 
-  802289a:	f812 3b01 	ldrb.w	r3, [r2], #1
 
-  802289e:	2b30      	cmp	r3, #48	; 0x30
 
-  80228a0:	d0f9      	beq.n	8022896 <_strtod_r+0x2d6>
 
-  80228a2:	f04f 0901 	mov.w	r9, #1
 
-  80228a6:	2b00      	cmp	r3, #0
 
-  80228a8:	f47f aedd 	bne.w	8022666 <_strtod_r+0xa6>
 
-  80228ac:	4699      	mov	r9, r3
 
-  80228ae:	469a      	mov	sl, r3
 
-  80228b0:	e7d3      	b.n	802285a <_strtod_r+0x29a>
 
-  80228b2:	9217      	str	r2, [sp, #92]	; 0x5c
 
-  80228b4:	e691      	b.n	80225da <_strtod_r+0x1a>
 
-  80228b6:	2200      	movs	r2, #0
 
-  80228b8:	f1b8 0f00 	cmp.w	r8, #0
 
-  80228bc:	f47f af78 	bne.w	80227b0 <_strtod_r+0x1f0>
 
-  80228c0:	ea50 0009 	orrs.w	r0, r0, r9
 
-  80228c4:	d14c      	bne.n	8022960 <_strtod_r+0x3a0>
 
-  80228c6:	2900      	cmp	r1, #0
 
-  80228c8:	d139      	bne.n	802293e <_strtod_r+0x37e>
 
-  80228ca:	3d49      	subs	r5, #73	; 0x49
 
-  80228cc:	2d25      	cmp	r5, #37	; 0x25
 
-  80228ce:	d836      	bhi.n	802293e <_strtod_r+0x37e>
 
-  80228d0:	e8df f015 	tbh	[pc, r5, lsl #1]
 
-  80228d4:	0035026a 	.word	0x0035026a
 
-  80228d8:	00350035 	.word	0x00350035
 
-  80228dc:	00260035 	.word	0x00260035
 
-  80228e0:	00350035 	.word	0x00350035
 
-  80228e4:	00350035 	.word	0x00350035
 
-  80228e8:	00350035 	.word	0x00350035
 
-  80228ec:	00350035 	.word	0x00350035
 
-  80228f0:	00350035 	.word	0x00350035
 
-  80228f4:	00350035 	.word	0x00350035
 
-  80228f8:	00350035 	.word	0x00350035
 
-  80228fc:	00350035 	.word	0x00350035
 
-  8022900:	00350035 	.word	0x00350035
 
-  8022904:	00350035 	.word	0x00350035
 
-  8022908:	00350035 	.word	0x00350035
 
-  802290c:	00350035 	.word	0x00350035
 
-  8022910:	00350035 	.word	0x00350035
 
-  8022914:	0035026a 	.word	0x0035026a
 
-  8022918:	00350035 	.word	0x00350035
 
-  802291c:	00260035 	.word	0x00260035
 
-  8022920:	4853      	ldr	r0, [pc, #332]	; (8022a70 <_strtod_r+0x4b0>)
 
-  8022922:	9a17      	ldr	r2, [sp, #92]	; 0x5c
 
-  8022924:	f810 1f01 	ldrb.w	r1, [r0, #1]!
 
-  8022928:	4613      	mov	r3, r2
 
-  802292a:	b169      	cbz	r1, 8022948 <_strtod_r+0x388>
 
-  802292c:	785b      	ldrb	r3, [r3, #1]
 
-  802292e:	3201      	adds	r2, #1
 
-  8022930:	2b40      	cmp	r3, #64	; 0x40
 
-  8022932:	dd02      	ble.n	802293a <_strtod_r+0x37a>
 
-  8022934:	2b5a      	cmp	r3, #90	; 0x5a
 
-  8022936:	bfd8      	it	le
 
-  8022938:	3320      	addle	r3, #32
 
-  802293a:	428b      	cmp	r3, r1
 
-  802293c:	d0f2      	beq.n	8022924 <_strtod_r+0x364>
 
-  802293e:	f8dd 9018 	ldr.w	r9, [sp, #24]
 
-  8022942:	f8dd a01c 	ldr.w	sl, [sp, #28]
 
-  8022946:	e784      	b.n	8022852 <_strtod_r+0x292>
 
-  8022948:	1c53      	adds	r3, r2, #1
 
-  802294a:	9317      	str	r3, [sp, #92]	; 0x5c
 
-  802294c:	7853      	ldrb	r3, [r2, #1]
 
-  802294e:	2b28      	cmp	r3, #40	; 0x28
 
-  8022950:	f000 8575 	beq.w	802343e <_strtod_r+0xe7e>
 
-  8022954:	2300      	movs	r3, #0
 
-  8022956:	9306      	str	r3, [sp, #24]
 
-  8022958:	461c      	mov	r4, r3
 
-  802295a:	f6cf 74f8 	movt	r4, #65528	; 0xfff8
 
-  802295e:	9407      	str	r4, [sp, #28]
 
-  8022960:	f8dd 9018 	ldr.w	r9, [sp, #24]
 
-  8022964:	f8dd a01c 	ldr.w	sl, [sp, #28]
 
-  8022968:	e777      	b.n	802285a <_strtod_r+0x29a>
 
-  802296a:	4658      	mov	r0, fp
 
-  802296c:	9d17      	ldr	r5, [sp, #92]	; 0x5c
 
-  802296e:	f001 fc01 	bl	8024174 <_localeconv_r>
 
-  8022972:	6800      	ldr	r0, [r0, #0]
 
-  8022974:	f7ff fa9c 	bl	8021eb0 <strlen>
 
-  8022978:	f8dd c010 	ldr.w	ip, [sp, #16]
 
-  802297c:	182b      	adds	r3, r5, r0
 
-  802297e:	9317      	str	r3, [sp, #92]	; 0x5c
 
-  8022980:	5c2d      	ldrb	r5, [r5, r0]
 
-  8022982:	2c00      	cmp	r4, #0
 
-  8022984:	f040 819b 	bne.w	8022cbe <_strtod_r+0x6fe>
 
-  8022988:	2d30      	cmp	r5, #48	; 0x30
 
-  802298a:	4620      	mov	r0, r4
 
-  802298c:	d105      	bne.n	802299a <_strtod_r+0x3da>
 
-  802298e:	3301      	adds	r3, #1
 
-  8022990:	9317      	str	r3, [sp, #92]	; 0x5c
 
-  8022992:	3001      	adds	r0, #1
 
-  8022994:	781d      	ldrb	r5, [r3, #0]
 
-  8022996:	2d30      	cmp	r5, #48	; 0x30
 
-  8022998:	d0f9      	beq.n	802298e <_strtod_r+0x3ce>
 
-  802299a:	f1a5 0331 	sub.w	r3, r5, #49	; 0x31
 
-  802299e:	2b08      	cmp	r3, #8
 
-  80229a0:	f200 819a 	bhi.w	8022cd8 <_strtod_r+0x718>
 
-  80229a4:	9e17      	ldr	r6, [sp, #92]	; 0x5c
 
-  80229a6:	f04f 0800 	mov.w	r8, #0
 
-  80229aa:	9009      	str	r0, [sp, #36]	; 0x24
 
-  80229ac:	f1a5 0130 	sub.w	r1, r5, #48	; 0x30
 
-  80229b0:	2001      	movs	r0, #1
 
-  80229b2:	960a      	str	r6, [sp, #40]	; 0x28
 
-  80229b4:	2900      	cmp	r1, #0
 
-  80229b6:	f000 836c 	beq.w	8023092 <_strtod_r+0xad2>
 
-  80229ba:	9a09      	ldr	r2, [sp, #36]	; 0x24
 
-  80229bc:	2801      	cmp	r0, #1
 
-  80229be:	4402      	add	r2, r0
 
-  80229c0:	9209      	str	r2, [sp, #36]	; 0x24
 
-  80229c2:	f000 8532 	beq.w	802342a <_strtod_r+0xe6a>
 
-  80229c6:	eb08 0200 	add.w	r2, r8, r0
 
-  80229ca:	4643      	mov	r3, r8
 
-  80229cc:	3a01      	subs	r2, #1
 
-  80229ce:	f8cd 802c 	str.w	r8, [sp, #44]	; 0x2c
 
-  80229d2:	4690      	mov	r8, r2
 
-  80229d4:	e003      	b.n	80229de <_strtod_r+0x41e>
 
-  80229d6:	006f      	lsls	r7, r5, #1
 
-  80229d8:	4543      	cmp	r3, r8
 
-  80229da:	f000 834b 	beq.w	8023074 <_strtod_r+0xab4>
 
-  80229de:	3301      	adds	r3, #1
 
-  80229e0:	eb07 0587 	add.w	r5, r7, r7, lsl #2
 
-  80229e4:	1e5a      	subs	r2, r3, #1
 
-  80229e6:	2a08      	cmp	r2, #8
 
-  80229e8:	ddf5      	ble.n	80229d6 <_strtod_r+0x416>
 
-  80229ea:	eb0a 028a 	add.w	r2, sl, sl, lsl #2
 
-  80229ee:	2b10      	cmp	r3, #16
 
-  80229f0:	bfd8      	it	le
 
-  80229f2:	ea4f 0a42 	movle.w	sl, r2, lsl #1
 
-  80229f6:	e7ef      	b.n	80229d8 <_strtod_r+0x418>
 
-  80229f8:	9d09      	ldr	r5, [sp, #36]	; 0x24
 
-  80229fa:	ebc9 0908 	rsb	r9, r9, r8
 
-  80229fe:	eb05 0409 	add.w	r4, r5, r9
 
-  8022a02:	2c00      	cmp	r4, #0
 
-  8022a04:	f340 83de 	ble.w	80231c4 <_strtod_r+0xc04>
 
-  8022a08:	f014 000f 	ands.w	r0, r4, #15
 
-  8022a0c:	d00d      	beq.n	8022a2a <_strtod_r+0x46a>
 
-  8022a0e:	f249 7140 	movw	r1, #38720	; 0x9740
 
-  8022a12:	e9dd 2306 	ldrd	r2, r3, [sp, #24]
 
-  8022a16:	f6c0 0103 	movt	r1, #2051	; 0x803
 
-  8022a1a:	eb01 01c0 	add.w	r1, r1, r0, lsl #3
 
-  8022a1e:	e9d1 0100 	ldrd	r0, r1, [r1]
 
-  8022a22:	f7fd fdcd 	bl	80205c0 <__aeabi_dmul>
 
-  8022a26:	e9cd 0106 	strd	r0, r1, [sp, #24]
 
-  8022a2a:	f034 040f 	bics.w	r4, r4, #15
 
-  8022a2e:	f040 815f 	bne.w	8022cf0 <_strtod_r+0x730>
 
-  8022a32:	f8dd 9018 	ldr.w	r9, [sp, #24]
 
-  8022a36:	f8dd a01c 	ldr.w	sl, [sp, #28]
 
-  8022a3a:	940b      	str	r4, [sp, #44]	; 0x2c
 
-  8022a3c:	9700      	str	r7, [sp, #0]
 
-  8022a3e:	4658      	mov	r0, fp
 
-  8022a40:	4631      	mov	r1, r6
 
-  8022a42:	9a0a      	ldr	r2, [sp, #40]	; 0x28
 
-  8022a44:	4643      	mov	r3, r8
 
-  8022a46:	f001 ff67 	bl	8024918 <__s2b>
 
-  8022a4a:	9d09      	ldr	r5, [sp, #36]	; 0x24
 
-  8022a4c:	2d00      	cmp	r5, #0
 
-  8022a4e:	9011      	str	r0, [sp, #68]	; 0x44
 
-  8022a50:	f2c0 8472 	blt.w	8023338 <_strtod_r+0xd78>
 
-  8022a54:	2400      	movs	r4, #0
 
-  8022a56:	940d      	str	r4, [sp, #52]	; 0x34
 
-  8022a58:	9d09      	ldr	r5, [sp, #36]	; 0x24
 
-  8022a5a:	9c11      	ldr	r4, [sp, #68]	; 0x44
 
-  8022a5c:	ea25 75e5 	bic.w	r5, r5, r5, asr #31
 
-  8022a60:	f8cd 9024 	str.w	r9, [sp, #36]	; 0x24
 
-  8022a64:	340c      	adds	r4, #12
 
-  8022a66:	950e      	str	r5, [sp, #56]	; 0x38
 
-  8022a68:	9413      	str	r4, [sp, #76]	; 0x4c
 
-  8022a6a:	f8cd a028 	str.w	sl, [sp, #40]	; 0x28
 
-  8022a6e:	e073      	b.n	8022b58 <_strtod_r+0x598>
 
-  8022a70:	08045ba7 	.word	0x08045ba7
 
-  8022a74:	9b0f      	ldr	r3, [sp, #60]	; 0x3c
 
-  8022a76:	2b00      	cmp	r3, #0
 
-  8022a78:	f000 81a8 	beq.w	8022dcc <_strtod_r+0x80c>
 
-  8022a7c:	f04f 0900 	mov.w	r9, #0
 
-  8022a80:	2500      	movs	r5, #0
 
-  8022a82:	f8dd c01c 	ldr.w	ip, [sp, #28]
 
-  8022a86:	2400      	movs	r4, #0
 
-  8022a88:	f6c3 75f0 	movt	r5, #16368	; 0x3ff0
 
-  8022a8c:	f6c3 79f0 	movt	r9, #16368	; 0x3ff0
 
-  8022a90:	f8cd 8030 	str.w	r8, [sp, #48]	; 0x30
 
-  8022a94:	f04f 0800 	mov.w	r8, #0
 
-  8022a98:	4643      	mov	r3, r8
 
-  8022a9a:	f6c7 78f0 	movt	r8, #32752	; 0x7ff0
 
-  8022a9e:	f6c7 73e0 	movt	r3, #32736	; 0x7fe0
 
-  8022aa2:	ea0c 0808 	and.w	r8, ip, r8
 
-  8022aa6:	4598      	cmp	r8, r3
 
-  8022aa8:	f000 81c5 	beq.w	8022e36 <_strtod_r+0x876>
 
-  8022aac:	9a0b      	ldr	r2, [sp, #44]	; 0x2c
 
-  8022aae:	f1b8 6fd4 	cmp.w	r8, #111149056	; 0x6a00000
 
-  8022ab2:	bf8c      	ite	hi
 
-  8022ab4:	2300      	movhi	r3, #0
 
-  8022ab6:	2301      	movls	r3, #1
 
-  8022ab8:	2a00      	cmp	r2, #0
 
-  8022aba:	bf08      	it	eq
 
-  8022abc:	2300      	moveq	r3, #0
 
-  8022abe:	b1eb      	cbz	r3, 8022afc <_strtod_r+0x53c>
 
-  8022ac0:	980c      	ldr	r0, [sp, #48]	; 0x30
 
-  8022ac2:	4649      	mov	r1, r9
 
-  8022ac4:	a388      	add	r3, pc, #544	; (adr r3, 8022ce8 <_strtod_r+0x728>)
 
-  8022ac6:	e9d3 2300 	ldrd	r2, r3, [r3]
 
-  8022aca:	f7fd fff5 	bl	8020ab8 <__aeabi_dcmple>
 
-  8022ace:	b188      	cbz	r0, 8022af4 <_strtod_r+0x534>
 
-  8022ad0:	980c      	ldr	r0, [sp, #48]	; 0x30
 
-  8022ad2:	4649      	mov	r1, r9
 
-  8022ad4:	f7fe f836 	bl	8020b44 <__aeabi_d2uiz>
 
-  8022ad8:	2800      	cmp	r0, #0
 
-  8022ada:	f000 8246 	beq.w	8022f6a <_strtod_r+0x9aa>
 
-  8022ade:	f7fd fcf9 	bl	80204d4 <__aeabi_ui2d>
 
-  8022ae2:	4689      	mov	r9, r1
 
-  8022ae4:	900c      	str	r0, [sp, #48]	; 0x30
 
-  8022ae6:	9c0f      	ldr	r4, [sp, #60]	; 0x3c
 
-  8022ae8:	f109 4300 	add.w	r3, r9, #2147483648	; 0x80000000
 
-  8022aec:	b104      	cbz	r4, 8022af0 <_strtod_r+0x530>
 
-  8022aee:	464b      	mov	r3, r9
 
-  8022af0:	9c0c      	ldr	r4, [sp, #48]	; 0x30
 
-  8022af2:	461d      	mov	r5, r3
 
-  8022af4:	f105 63d6 	add.w	r3, r5, #112197632	; 0x6b00000
 
-  8022af8:	ebc8 0503 	rsb	r5, r8, r3
 
-  8022afc:	9809      	ldr	r0, [sp, #36]	; 0x24
 
-  8022afe:	990a      	ldr	r1, [sp, #40]	; 0x28
 
-  8022b00:	f002 f98a 	bl	8024e18 <__ulp>
 
-  8022b04:	4602      	mov	r2, r0
 
-  8022b06:	460b      	mov	r3, r1
 
-  8022b08:	4620      	mov	r0, r4
 
-  8022b0a:	4629      	mov	r1, r5
 
-  8022b0c:	f7fd fd58 	bl	80205c0 <__aeabi_dmul>
 
-  8022b10:	4602      	mov	r2, r0
 
-  8022b12:	460b      	mov	r3, r1
 
-  8022b14:	9809      	ldr	r0, [sp, #36]	; 0x24
 
-  8022b16:	990a      	ldr	r1, [sp, #40]	; 0x28
 
-  8022b18:	f7fd fba0 	bl	802025c <__adddf3>
 
-  8022b1c:	e9cd 0106 	strd	r0, r1, [sp, #24]
 
-  8022b20:	9c07      	ldr	r4, [sp, #28]
 
-  8022b22:	9009      	str	r0, [sp, #36]	; 0x24
 
-  8022b24:	910a      	str	r1, [sp, #40]	; 0x28
 
-  8022b26:	9d0b      	ldr	r5, [sp, #44]	; 0x2c
 
-  8022b28:	b935      	cbnz	r5, 8022b38 <_strtod_r+0x578>
 
-  8022b2a:	2300      	movs	r3, #0
 
-  8022b2c:	f6c7 73f0 	movt	r3, #32752	; 0x7ff0
 
-  8022b30:	4023      	ands	r3, r4
 
-  8022b32:	4598      	cmp	r8, r3
 
-  8022b34:	f000 81bc 	beq.w	8022eb0 <_strtod_r+0x8f0>
 
-  8022b38:	4658      	mov	r0, fp
 
-  8022b3a:	9918      	ldr	r1, [sp, #96]	; 0x60
 
-  8022b3c:	f001 fe8c 	bl	8024858 <_Bfree>
 
-  8022b40:	4658      	mov	r0, fp
 
-  8022b42:	4651      	mov	r1, sl
 
-  8022b44:	f001 fe88 	bl	8024858 <_Bfree>
 
-  8022b48:	4658      	mov	r0, fp
 
-  8022b4a:	4639      	mov	r1, r7
 
-  8022b4c:	f001 fe84 	bl	8024858 <_Bfree>
 
-  8022b50:	4658      	mov	r0, fp
 
-  8022b52:	4631      	mov	r1, r6
 
-  8022b54:	f001 fe80 	bl	8024858 <_Bfree>
 
-  8022b58:	9c11      	ldr	r4, [sp, #68]	; 0x44
 
-  8022b5a:	4658      	mov	r0, fp
 
-  8022b5c:	ad16      	add	r5, sp, #88	; 0x58
 
-  8022b5e:	6861      	ldr	r1, [r4, #4]
 
-  8022b60:	f001 fe44 	bl	80247ec <_Balloc>
 
-  8022b64:	6923      	ldr	r3, [r4, #16]
 
-  8022b66:	9913      	ldr	r1, [sp, #76]	; 0x4c
 
-  8022b68:	1c9a      	adds	r2, r3, #2
 
-  8022b6a:	0092      	lsls	r2, r2, #2
 
-  8022b6c:	4682      	mov	sl, r0
 
-  8022b6e:	300c      	adds	r0, #12
 
-  8022b70:	f7fe ff0c 	bl	802198c <memcpy>
 
-  8022b74:	9a09      	ldr	r2, [sp, #36]	; 0x24
 
-  8022b76:	9b0a      	ldr	r3, [sp, #40]	; 0x28
 
-  8022b78:	a819      	add	r0, sp, #100	; 0x64
 
-  8022b7a:	9500      	str	r5, [sp, #0]
 
-  8022b7c:	9001      	str	r0, [sp, #4]
 
-  8022b7e:	4658      	mov	r0, fp
 
-  8022b80:	f002 f9c4 	bl	8024f0c <__d2b>
 
-  8022b84:	2101      	movs	r1, #1
 
-  8022b86:	9018      	str	r0, [sp, #96]	; 0x60
 
-  8022b88:	4658      	mov	r0, fp
 
-  8022b8a:	f001 ff5d 	bl	8024a48 <__i2b>
 
-  8022b8e:	9a16      	ldr	r2, [sp, #88]	; 0x58
 
-  8022b90:	9b19      	ldr	r3, [sp, #100]	; 0x64
 
-  8022b92:	f46f 717f 	mvn.w	r1, #1020	; 0x3fc
 
-  8022b96:	2a00      	cmp	r2, #0
 
-  8022b98:	bfaa      	itet	ge
 
-  8022b9a:	9d0d      	ldrge	r5, [sp, #52]	; 0x34
 
-  8022b9c:	9c0e      	ldrlt	r4, [sp, #56]	; 0x38
 
-  8022b9e:	18ac      	addge	r4, r5, r2
 
-  8022ba0:	9d0b      	ldr	r5, [sp, #44]	; 0x2c
 
-  8022ba2:	4607      	mov	r7, r0
 
-  8022ba4:	bfb8      	it	lt
 
-  8022ba6:	ebc2 0004 	rsblt	r0, r2, r4
 
-  8022baa:	ebc5 0202 	rsb	r2, r5, r2
 
-  8022bae:	bfb8      	it	lt
 
-  8022bb0:	9c0d      	ldrlt	r4, [sp, #52]	; 0x34
 
-  8022bb2:	eb02 0503 	add.w	r5, r2, r3
 
-  8022bb6:	bfa8      	it	ge
 
-  8022bb8:	980e      	ldrge	r0, [sp, #56]	; 0x38
 
-  8022bba:	428d      	cmp	r5, r1
 
-  8022bbc:	990d      	ldr	r1, [sp, #52]	; 0x34
 
-  8022bbe:	bfb4      	ite	lt
 
-  8022bc0:	f202 4333 	addwlt	r3, r2, #1075	; 0x433
 
-  8022bc4:	f1c3 0336 	rsbge	r3, r3, #54	; 0x36
 
-  8022bc8:	18e6      	adds	r6, r4, r3
 
-  8022bca:	18c3      	adds	r3, r0, r3
 
-  8022bcc:	980b      	ldr	r0, [sp, #44]	; 0x2c
 
-  8022bce:	181d      	adds	r5, r3, r0
 
-  8022bd0:	42a6      	cmp	r6, r4
 
-  8022bd2:	bfb4      	ite	lt
 
-  8022bd4:	4633      	movlt	r3, r6
 
-  8022bd6:	4623      	movge	r3, r4
 
-  8022bd8:	42ab      	cmp	r3, r5
 
-  8022bda:	bfa8      	it	ge
 
-  8022bdc:	462b      	movge	r3, r5
 
-  8022bde:	2b00      	cmp	r3, #0
 
-  8022be0:	bfc2      	ittt	gt
 
-  8022be2:	ebc3 0606 	rsbgt	r6, r3, r6
 
-  8022be6:	ebc3 0505 	rsbgt	r5, r3, r5
 
-  8022bea:	ebc3 0404 	rsbgt	r4, r3, r4
 
-  8022bee:	b189      	cbz	r1, 8022c14 <_strtod_r+0x654>
 
-  8022bf0:	460a      	mov	r2, r1
 
-  8022bf2:	4658      	mov	r0, fp
 
-  8022bf4:	4639      	mov	r1, r7
 
-  8022bf6:	f001 ffcf 	bl	8024b98 <__pow5mult>
 
-  8022bfa:	9a18      	ldr	r2, [sp, #96]	; 0x60
 
-  8022bfc:	4607      	mov	r7, r0
 
-  8022bfe:	4658      	mov	r0, fp
 
-  8022c00:	4639      	mov	r1, r7
 
-  8022c02:	f001 ff2b 	bl	8024a5c <__multiply>
 
-  8022c06:	9918      	ldr	r1, [sp, #96]	; 0x60
 
-  8022c08:	4680      	mov	r8, r0
 
-  8022c0a:	4658      	mov	r0, fp
 
-  8022c0c:	f001 fe24 	bl	8024858 <_Bfree>
 
-  8022c10:	f8cd 8060 	str.w	r8, [sp, #96]	; 0x60
 
-  8022c14:	2e00      	cmp	r6, #0
 
-  8022c16:	dd05      	ble.n	8022c24 <_strtod_r+0x664>
 
-  8022c18:	4658      	mov	r0, fp
 
-  8022c1a:	9918      	ldr	r1, [sp, #96]	; 0x60
 
-  8022c1c:	4632      	mov	r2, r6
 
-  8022c1e:	f002 f80d 	bl	8024c3c <__lshift>
 
-  8022c22:	9018      	str	r0, [sp, #96]	; 0x60
 
-  8022c24:	9a0e      	ldr	r2, [sp, #56]	; 0x38
 
-  8022c26:	b122      	cbz	r2, 8022c32 <_strtod_r+0x672>
 
-  8022c28:	4651      	mov	r1, sl
 
-  8022c2a:	4658      	mov	r0, fp
 
-  8022c2c:	f001 ffb4 	bl	8024b98 <__pow5mult>
 
-  8022c30:	4682      	mov	sl, r0
 
-  8022c32:	2d00      	cmp	r5, #0
 
-  8022c34:	dd05      	ble.n	8022c42 <_strtod_r+0x682>
 
-  8022c36:	4651      	mov	r1, sl
 
-  8022c38:	4658      	mov	r0, fp
 
-  8022c3a:	462a      	mov	r2, r5
 
-  8022c3c:	f001 fffe 	bl	8024c3c <__lshift>
 
-  8022c40:	4682      	mov	sl, r0
 
-  8022c42:	2c00      	cmp	r4, #0
 
-  8022c44:	dd05      	ble.n	8022c52 <_strtod_r+0x692>
 
-  8022c46:	4639      	mov	r1, r7
 
-  8022c48:	4658      	mov	r0, fp
 
-  8022c4a:	4622      	mov	r2, r4
 
-  8022c4c:	f001 fff6 	bl	8024c3c <__lshift>
 
-  8022c50:	4607      	mov	r7, r0
 
-  8022c52:	9918      	ldr	r1, [sp, #96]	; 0x60
 
-  8022c54:	4652      	mov	r2, sl
 
-  8022c56:	4658      	mov	r0, fp
 
-  8022c58:	f04f 0800 	mov.w	r8, #0
 
-  8022c5c:	f002 f866 	bl	8024d2c <__mdiff>
 
-  8022c60:	4639      	mov	r1, r7
 
-  8022c62:	68c4      	ldr	r4, [r0, #12]
 
-  8022c64:	4606      	mov	r6, r0
 
-  8022c66:	f8c0 800c 	str.w	r8, [r0, #12]
 
-  8022c6a:	940f      	str	r4, [sp, #60]	; 0x3c
 
-  8022c6c:	f002 f840 	bl	8024cf0 <__mcmp>
 
-  8022c70:	4540      	cmp	r0, r8
 
-  8022c72:	f2c0 8213 	blt.w	802309c <_strtod_r+0xadc>
 
-  8022c76:	f000 8261 	beq.w	802313c <_strtod_r+0xb7c>
 
-  8022c7a:	4630      	mov	r0, r6
 
-  8022c7c:	4639      	mov	r1, r7
 
-  8022c7e:	f002 f9a3 	bl	8024fc8 <__ratio>
 
-  8022c82:	2200      	movs	r2, #0
 
-  8022c84:	f04f 4380 	mov.w	r3, #1073741824	; 0x40000000
 
-  8022c88:	4604      	mov	r4, r0
 
-  8022c8a:	460d      	mov	r5, r1
 
-  8022c8c:	f7fd ff14 	bl	8020ab8 <__aeabi_dcmple>
 
-  8022c90:	2800      	cmp	r0, #0
 
-  8022c92:	f47f aeef 	bne.w	8022a74 <_strtod_r+0x4b4>
 
-  8022c96:	2300      	movs	r3, #0
 
-  8022c98:	4620      	mov	r0, r4
 
-  8022c9a:	f6c3 73e0 	movt	r3, #16352	; 0x3fe0
 
-  8022c9e:	4629      	mov	r1, r5
 
-  8022ca0:	2200      	movs	r2, #0
 
-  8022ca2:	f7fd fc8d 	bl	80205c0 <__aeabi_dmul>
 
-  8022ca6:	9c0f      	ldr	r4, [sp, #60]	; 0x3c
 
-  8022ca8:	900c      	str	r0, [sp, #48]	; 0x30
 
-  8022caa:	4689      	mov	r9, r1
 
-  8022cac:	f101 4300 	add.w	r3, r1, #2147483648	; 0x80000000
 
-  8022cb0:	b104      	cbz	r4, 8022cb4 <_strtod_r+0x6f4>
 
-  8022cb2:	460b      	mov	r3, r1
 
-  8022cb4:	9c0c      	ldr	r4, [sp, #48]	; 0x30
 
-  8022cb6:	461d      	mov	r5, r3
 
-  8022cb8:	f8dd c01c 	ldr.w	ip, [sp, #28]
 
-  8022cbc:	e6ea      	b.n	8022a94 <_strtod_r+0x4d4>
 
-  8022cbe:	4640      	mov	r0, r8
 
-  8022cc0:	46a0      	mov	r8, r4
 
-  8022cc2:	9009      	str	r0, [sp, #36]	; 0x24
 
-  8022cc4:	f1a5 0130 	sub.w	r1, r5, #48	; 0x30
 
-  8022cc8:	2909      	cmp	r1, #9
 
-  8022cca:	d803      	bhi.n	8022cd4 <_strtod_r+0x714>
 
-  8022ccc:	9a17      	ldr	r2, [sp, #92]	; 0x5c
 
-  8022cce:	3001      	adds	r0, #1
 
-  8022cd0:	920a      	str	r2, [sp, #40]	; 0x28
 
-  8022cd2:	e66f      	b.n	80229b4 <_strtod_r+0x3f4>
 
-  8022cd4:	2101      	movs	r1, #1
 
-  8022cd6:	e50a      	b.n	80226ee <_strtod_r+0x12e>
 
-  8022cd8:	f04f 0800 	mov.w	r8, #0
 
-  8022cdc:	2101      	movs	r1, #1
 
-  8022cde:	f8cd 8024 	str.w	r8, [sp, #36]	; 0x24
 
-  8022ce2:	e504      	b.n	80226ee <_strtod_r+0x12e>
 
-  8022ce4:	f3af 8000 	nop.w
 
-  8022ce8:	ffc00000 	.word	0xffc00000
 
-  8022cec:	41dfffff 	.word	0x41dfffff
 
-  8022cf0:	f5b4 7f9a 	cmp.w	r4, #308	; 0x134
 
-  8022cf4:	f300 8258 	bgt.w	80231a8 <_strtod_r+0xbe8>
 
-  8022cf8:	1124      	asrs	r4, r4, #4
 
-  8022cfa:	f649 0a30 	movw	sl, #38960	; 0x9830
 
-  8022cfe:	2c01      	cmp	r4, #1
 
-  8022d00:	f340 8398 	ble.w	8023434 <_strtod_r+0xe74>
 
-  8022d04:	f6c0 0a03 	movt	sl, #2051	; 0x803
 
-  8022d08:	e9dd 2306 	ldrd	r2, r3, [sp, #24]
 
-  8022d0c:	f04f 0900 	mov.w	r9, #0
 
-  8022d10:	4655      	mov	r5, sl
 
-  8022d12:	f014 0f01 	tst.w	r4, #1
 
-  8022d16:	4610      	mov	r0, r2
 
-  8022d18:	4619      	mov	r1, r3
 
-  8022d1a:	ea4f 0464 	mov.w	r4, r4, asr #1
 
-  8022d1e:	f109 0901 	add.w	r9, r9, #1
 
-  8022d22:	d005      	beq.n	8022d30 <_strtod_r+0x770>
 
-  8022d24:	e9d5 2300 	ldrd	r2, r3, [r5]
 
-  8022d28:	f7fd fc4a 	bl	80205c0 <__aeabi_dmul>
 
-  8022d2c:	4602      	mov	r2, r0
 
-  8022d2e:	460b      	mov	r3, r1
 
-  8022d30:	3508      	adds	r5, #8
 
-  8022d32:	2c01      	cmp	r4, #1
 
-  8022d34:	dced      	bgt.n	8022d12 <_strtod_r+0x752>
 
-  8022d36:	4610      	mov	r0, r2
 
-  8022d38:	4619      	mov	r1, r3
 
-  8022d3a:	e9cd 0106 	strd	r0, r1, [sp, #24]
 
-  8022d3e:	9907      	ldr	r1, [sp, #28]
 
-  8022d40:	eb0a 09c9 	add.w	r9, sl, r9, lsl #3
 
-  8022d44:	f1a1 7154 	sub.w	r1, r1, #55574528	; 0x3500000
 
-  8022d48:	9107      	str	r1, [sp, #28]
 
-  8022d4a:	e9dd 2306 	ldrd	r2, r3, [sp, #24]
 
-  8022d4e:	e9d9 0100 	ldrd	r0, r1, [r9]
 
-  8022d52:	f7fd fc35 	bl	80205c0 <__aeabi_dmul>
 
-  8022d56:	2300      	movs	r3, #0
 
-  8022d58:	2200      	movs	r2, #0
 
-  8022d5a:	f6c7 73f0 	movt	r3, #32752	; 0x7ff0
 
-  8022d5e:	f6c7 42a0 	movt	r2, #31904	; 0x7ca0
 
-  8022d62:	e9cd 0106 	strd	r0, r1, [sp, #24]
 
-  8022d66:	9907      	ldr	r1, [sp, #28]
 
-  8022d68:	400b      	ands	r3, r1
 
-  8022d6a:	4293      	cmp	r3, r2
 
-  8022d6c:	f200 821c 	bhi.w	80231a8 <_strtod_r+0xbe8>
 
-  8022d70:	2200      	movs	r2, #0
 
-  8022d72:	f6c7 4290 	movt	r2, #31888	; 0x7c90
 
-  8022d76:	4293      	cmp	r3, r2
 
-  8022d78:	f240 8305 	bls.w	8023386 <_strtod_r+0xdc6>
 
-  8022d7c:	f64f 72ff 	movw	r2, #65535	; 0xffff
 
-  8022d80:	f04f 30ff 	mov.w	r0, #4294967295
 
-  8022d84:	4615      	mov	r5, r2
 
-  8022d86:	2400      	movs	r4, #0
 
-  8022d88:	f6c7 75ef 	movt	r5, #32751	; 0x7fef
 
-  8022d8c:	940b      	str	r4, [sp, #44]	; 0x2c
 
-  8022d8e:	9507      	str	r5, [sp, #28]
 
-  8022d90:	4681      	mov	r9, r0
 
-  8022d92:	9006      	str	r0, [sp, #24]
 
-  8022d94:	46aa      	mov	sl, r5
 
-  8022d96:	e651      	b.n	8022a3c <_strtod_r+0x47c>
 
-  8022d98:	2301      	movs	r3, #1
 
-  8022d9a:	930a      	str	r3, [sp, #40]	; 0x28
 
-  8022d9c:	f10c 0302 	add.w	r3, ip, #2
 
-  8022da0:	9317      	str	r3, [sp, #92]	; 0x5c
 
-  8022da2:	f89c 5002 	ldrb.w	r5, [ip, #2]
 
-  8022da6:	e4bc      	b.n	8022722 <_strtod_r+0x162>
 
-  8022da8:	48ab      	ldr	r0, [pc, #684]	; (8023058 <_strtod_r+0xa98>)
 
-  8022daa:	9a17      	ldr	r2, [sp, #92]	; 0x5c
 
-  8022dac:	f810 1f01 	ldrb.w	r1, [r0, #1]!
 
-  8022db0:	4613      	mov	r3, r2
 
-  8022db2:	2900      	cmp	r1, #0
 
-  8022db4:	f000 8311 	beq.w	80233da <_strtod_r+0xe1a>
 
-  8022db8:	785b      	ldrb	r3, [r3, #1]
 
-  8022dba:	3201      	adds	r2, #1
 
-  8022dbc:	2b40      	cmp	r3, #64	; 0x40
 
-  8022dbe:	dd02      	ble.n	8022dc6 <_strtod_r+0x806>
 
-  8022dc0:	2b5a      	cmp	r3, #90	; 0x5a
 
-  8022dc2:	bfd8      	it	le
 
-  8022dc4:	3320      	addle	r3, #32
 
-  8022dc6:	428b      	cmp	r3, r1
 
-  8022dc8:	d0f0      	beq.n	8022dac <_strtod_r+0x7ec>
 
-  8022dca:	e5b8      	b.n	802293e <_strtod_r+0x37e>
 
-  8022dcc:	9b06      	ldr	r3, [sp, #24]
 
-  8022dce:	f8dd c01c 	ldr.w	ip, [sp, #28]
 
-  8022dd2:	2b00      	cmp	r3, #0
 
-  8022dd4:	f040 80a6 	bne.w	8022f24 <_strtod_r+0x964>
 
-  8022dd8:	f3cc 0313 	ubfx	r3, ip, #0, #20
 
-  8022ddc:	bb03      	cbnz	r3, 8022e20 <_strtod_r+0x860>
 
-  8022dde:	2300      	movs	r3, #0
 
-  8022de0:	4620      	mov	r0, r4
 
-  8022de2:	4629      	mov	r1, r5
 
-  8022de4:	2200      	movs	r2, #0
 
-  8022de6:	f6c3 73f0 	movt	r3, #16368	; 0x3ff0
 
-  8022dea:	f8cd c010 	str.w	ip, [sp, #16]
 
-  8022dee:	f7fd fe59 	bl	8020aa4 <__aeabi_dcmplt>
 
-  8022df2:	f8dd c010 	ldr.w	ip, [sp, #16]
 
-  8022df6:	2800      	cmp	r0, #0
 
-  8022df8:	f040 8246 	bne.w	8023288 <_strtod_r+0xcc8>
 
-  8022dfc:	2300      	movs	r3, #0
 
-  8022dfe:	2200      	movs	r2, #0
 
-  8022e00:	f6c3 73e0 	movt	r3, #16352	; 0x3fe0
 
-  8022e04:	4620      	mov	r0, r4
 
-  8022e06:	4629      	mov	r1, r5
 
-  8022e08:	f7fd fbda 	bl	80205c0 <__aeabi_dmul>
 
-  8022e0c:	f8dd c010 	ldr.w	ip, [sp, #16]
 
-  8022e10:	4689      	mov	r9, r1
 
-  8022e12:	4602      	mov	r2, r0
 
-  8022e14:	f101 4300 	add.w	r3, r1, #2147483648	; 0x80000000
 
-  8022e18:	900c      	str	r0, [sp, #48]	; 0x30
 
-  8022e1a:	4614      	mov	r4, r2
 
-  8022e1c:	461d      	mov	r5, r3
 
-  8022e1e:	e639      	b.n	8022a94 <_strtod_r+0x4d4>
 
-  8022e20:	f04f 0900 	mov.w	r9, #0
 
-  8022e24:	2500      	movs	r5, #0
 
-  8022e26:	f8cd 9030 	str.w	r9, [sp, #48]	; 0x30
 
-  8022e2a:	2400      	movs	r4, #0
 
-  8022e2c:	f6cb 75f0 	movt	r5, #49136	; 0xbff0
 
-  8022e30:	f6c3 79f0 	movt	r9, #16368	; 0x3ff0
 
-  8022e34:	e62e      	b.n	8022a94 <_strtod_r+0x4d4>
 
-  8022e36:	f1ac 7c54 	sub.w	ip, ip, #55574528	; 0x3500000
 
-  8022e3a:	9a09      	ldr	r2, [sp, #36]	; 0x24
 
-  8022e3c:	f8cd c01c 	str.w	ip, [sp, #28]
 
-  8022e40:	9b0a      	ldr	r3, [sp, #40]	; 0x28
 
-  8022e42:	e9dd 0106 	ldrd	r0, r1, [sp, #24]
 
-  8022e46:	e9cd 4502 	strd	r4, r5, [sp, #8]
 
-  8022e4a:	4614      	mov	r4, r2
 
-  8022e4c:	461d      	mov	r5, r3
 
-  8022e4e:	e9cd 4514 	strd	r4, r5, [sp, #80]	; 0x50
 
-  8022e52:	f001 ffe1 	bl	8024e18 <__ulp>
 
-  8022e56:	4602      	mov	r2, r0
 
-  8022e58:	460b      	mov	r3, r1
 
-  8022e5a:	e9dd 0102 	ldrd	r0, r1, [sp, #8]
 
-  8022e5e:	f7fd fbaf 	bl	80205c0 <__aeabi_dmul>
 
-  8022e62:	4602      	mov	r2, r0
 
-  8022e64:	460b      	mov	r3, r1
 
-  8022e66:	e9dd 0106 	ldrd	r0, r1, [sp, #24]
 
-  8022e6a:	f7fd f9f7 	bl	802025c <__adddf3>
 
-  8022e6e:	2300      	movs	r3, #0
 
-  8022e70:	f6c7 73f0 	movt	r3, #32752	; 0x7ff0
 
-  8022e74:	f64f 72ff 	movw	r2, #65535	; 0xffff
 
-  8022e78:	f6c7 429f 	movt	r2, #31903	; 0x7c9f
 
-  8022e7c:	e9cd 0106 	strd	r0, r1, [sp, #24]
 
-  8022e80:	9c07      	ldr	r4, [sp, #28]
 
-  8022e82:	4023      	ands	r3, r4
 
-  8022e84:	4293      	cmp	r3, r2
 
-  8022e86:	d976      	bls.n	8022f76 <_strtod_r+0x9b6>
 
-  8022e88:	f64f 73ff 	movw	r3, #65535	; 0xffff
 
-  8022e8c:	9d15      	ldr	r5, [sp, #84]	; 0x54
 
-  8022e8e:	f6c7 73ef 	movt	r3, #32751	; 0x7fef
 
-  8022e92:	429d      	cmp	r5, r3
 
-  8022e94:	f000 8177 	beq.w	8023186 <_strtod_r+0xbc6>
 
-  8022e98:	f64f 71ff 	movw	r1, #65535	; 0xffff
 
-  8022e9c:	f04f 33ff 	mov.w	r3, #4294967295
 
-  8022ea0:	460a      	mov	r2, r1
 
-  8022ea2:	9306      	str	r3, [sp, #24]
 
-  8022ea4:	f6c7 72ef 	movt	r2, #32751	; 0x7fef
 
-  8022ea8:	9309      	str	r3, [sp, #36]	; 0x24
 
-  8022eaa:	9207      	str	r2, [sp, #28]
 
-  8022eac:	920a      	str	r2, [sp, #40]	; 0x28
 
-  8022eae:	e643      	b.n	8022b38 <_strtod_r+0x578>
 
-  8022eb0:	4649      	mov	r1, r9
 
-  8022eb2:	980c      	ldr	r0, [sp, #48]	; 0x30
 
-  8022eb4:	f7fd fe1e 	bl	8020af4 <__aeabi_d2iz>
 
-  8022eb8:	f7fd fb1c 	bl	80204f4 <__aeabi_i2d>
 
-  8022ebc:	4602      	mov	r2, r0
 
-  8022ebe:	460b      	mov	r3, r1
 
-  8022ec0:	980c      	ldr	r0, [sp, #48]	; 0x30
 
-  8022ec2:	4649      	mov	r1, r9
 
-  8022ec4:	f7fd f9c8 	bl	8020258 <__aeabi_dsub>
 
-  8022ec8:	9d0f      	ldr	r5, [sp, #60]	; 0x3c
 
-  8022eca:	4680      	mov	r8, r0
 
-  8022ecc:	4689      	mov	r9, r1
 
-  8022ece:	2d00      	cmp	r5, #0
 
-  8022ed0:	d137      	bne.n	8022f42 <_strtod_r+0x982>
 
-  8022ed2:	9a06      	ldr	r2, [sp, #24]
 
-  8022ed4:	2a00      	cmp	r2, #0
 
-  8022ed6:	d134      	bne.n	8022f42 <_strtod_r+0x982>
 
-  8022ed8:	f3c4 0413 	ubfx	r4, r4, #0, #20
 
-  8022edc:	2c00      	cmp	r4, #0
 
-  8022ede:	d130      	bne.n	8022f42 <_strtod_r+0x982>
 
-  8022ee0:	a357      	add	r3, pc, #348	; (adr r3, 8023040 <_strtod_r+0xa80>)
 
-  8022ee2:	e9d3 2300 	ldrd	r2, r3, [r3]
 
-  8022ee6:	f7fd fddd 	bl	8020aa4 <__aeabi_dcmplt>
 
-  8022eea:	2800      	cmp	r0, #0
 
-  8022eec:	f43f ae24 	beq.w	8022b38 <_strtod_r+0x578>
 
-  8022ef0:	4654      	mov	r4, sl
 
-  8022ef2:	f8dd 9024 	ldr.w	r9, [sp, #36]	; 0x24
 
-  8022ef6:	f8dd a028 	ldr.w	sl, [sp, #40]	; 0x28
 
-  8022efa:	4658      	mov	r0, fp
 
-  8022efc:	9918      	ldr	r1, [sp, #96]	; 0x60
 
-  8022efe:	f001 fcab 	bl	8024858 <_Bfree>
 
-  8022f02:	4658      	mov	r0, fp
 
-  8022f04:	4621      	mov	r1, r4
 
-  8022f06:	f001 fca7 	bl	8024858 <_Bfree>
 
-  8022f0a:	4658      	mov	r0, fp
 
-  8022f0c:	4639      	mov	r1, r7
 
-  8022f0e:	f001 fca3 	bl	8024858 <_Bfree>
 
-  8022f12:	4658      	mov	r0, fp
 
-  8022f14:	9911      	ldr	r1, [sp, #68]	; 0x44
 
-  8022f16:	f001 fc9f 	bl	8024858 <_Bfree>
 
-  8022f1a:	4658      	mov	r0, fp
 
-  8022f1c:	4631      	mov	r1, r6
 
-  8022f1e:	f001 fc9b 	bl	8024858 <_Bfree>
 
-  8022f22:	e49a      	b.n	802285a <_strtod_r+0x29a>
 
-  8022f24:	2b01      	cmp	r3, #1
 
-  8022f26:	f47f af7b 	bne.w	8022e20 <_strtod_r+0x860>
 
-  8022f2a:	4661      	mov	r1, ip
 
-  8022f2c:	2900      	cmp	r1, #0
 
-  8022f2e:	f47f af77 	bne.w	8022e20 <_strtod_r+0x860>
 
-  8022f32:	4654      	mov	r4, sl
 
-  8022f34:	f04f 0900 	mov.w	r9, #0
 
-  8022f38:	46ca      	mov	sl, r9
 
-  8022f3a:	2322      	movs	r3, #34	; 0x22
 
-  8022f3c:	f8cb 3000 	str.w	r3, [fp]
 
-  8022f40:	e7db      	b.n	8022efa <_strtod_r+0x93a>
 
-  8022f42:	4640      	mov	r0, r8
 
-  8022f44:	4649      	mov	r1, r9
 
-  8022f46:	a340      	add	r3, pc, #256	; (adr r3, 8023048 <_strtod_r+0xa88>)
 
-  8022f48:	e9d3 2300 	ldrd	r2, r3, [r3]
 
-  8022f4c:	f7fd fdaa 	bl	8020aa4 <__aeabi_dcmplt>
 
-  8022f50:	2800      	cmp	r0, #0
 
-  8022f52:	d1cd      	bne.n	8022ef0 <_strtod_r+0x930>
 
-  8022f54:	4640      	mov	r0, r8
 
-  8022f56:	4649      	mov	r1, r9
 
-  8022f58:	a33d      	add	r3, pc, #244	; (adr r3, 8023050 <_strtod_r+0xa90>)
 
-  8022f5a:	e9d3 2300 	ldrd	r2, r3, [r3]
 
-  8022f5e:	f7fd fdbf 	bl	8020ae0 <__aeabi_dcmpgt>
 
-  8022f62:	2800      	cmp	r0, #0
 
-  8022f64:	f43f ade8 	beq.w	8022b38 <_strtod_r+0x578>
 
-  8022f68:	e7c2      	b.n	8022ef0 <_strtod_r+0x930>
 
-  8022f6a:	f04f 0900 	mov.w	r9, #0
 
-  8022f6e:	900c      	str	r0, [sp, #48]	; 0x30
 
-  8022f70:	f6c3 79f0 	movt	r9, #16368	; 0x3ff0
 
-  8022f74:	e5b7      	b.n	8022ae6 <_strtod_r+0x526>
 
-  8022f76:	9906      	ldr	r1, [sp, #24]
 
-  8022f78:	f104 7454 	add.w	r4, r4, #55574528	; 0x3500000
 
-  8022f7c:	9407      	str	r4, [sp, #28]
 
-  8022f7e:	940a      	str	r4, [sp, #40]	; 0x28
 
-  8022f80:	9109      	str	r1, [sp, #36]	; 0x24
 
-  8022f82:	e5d0      	b.n	8022b26 <_strtod_r+0x566>
 
-  8022f84:	f8cd c05c 	str.w	ip, [sp, #92]	; 0x5c
 
-  8022f88:	2200      	movs	r2, #0
 
-  8022f8a:	f1b8 0f00 	cmp.w	r8, #0
 
-  8022f8e:	f47f ac0f 	bne.w	80227b0 <_strtod_r+0x1f0>
 
-  8022f92:	e495      	b.n	80228c0 <_strtod_r+0x300>
 
-  8022f94:	9d12      	ldr	r5, [sp, #72]	; 0x48
 
-  8022f96:	f240 0404 	movw	r4, #4
 
-  8022f9a:	f2c2 0400 	movt	r4, #8192	; 0x2000
 
-  8022f9e:	ab18      	add	r3, sp, #96	; 0x60
 
-  8022fa0:	4658      	mov	r0, fp
 
-  8022fa2:	e88d 0028 	stmia.w	sp, {r3, r5}
 
-  8022fa6:	a917      	add	r1, sp, #92	; 0x5c
 
-  8022fa8:	4622      	mov	r2, r4
 
-  8022faa:	ab19      	add	r3, sp, #100	; 0x64
 
-  8022fac:	f000 fd1c 	bl	80239e8 <__gethex>
 
-  8022fb0:	f010 0707 	ands.w	r7, r0, #7
 
-  8022fb4:	4605      	mov	r5, r0
 
-  8022fb6:	bf04      	itt	eq
 
-  8022fb8:	46b9      	moveq	r9, r7
 
-  8022fba:	46ca      	moveq	sl, r9
 
-  8022fbc:	f43f ac4d 	beq.w	802285a <_strtod_r+0x29a>
 
-  8022fc0:	2f06      	cmp	r7, #6
 
-  8022fc2:	f000 816f 	beq.w	80232a4 <_strtod_r+0xce4>
 
-  8022fc6:	9a18      	ldr	r2, [sp, #96]	; 0x60
 
-  8022fc8:	b13a      	cbz	r2, 8022fda <_strtod_r+0xa1a>
 
-  8022fca:	6821      	ldr	r1, [r4, #0]
 
-  8022fcc:	a81a      	add	r0, sp, #104	; 0x68
 
-  8022fce:	f002 f845 	bl	802505c <__copybits>
 
-  8022fd2:	4658      	mov	r0, fp
 
-  8022fd4:	9918      	ldr	r1, [sp, #96]	; 0x60
 
-  8022fd6:	f001 fc3f 	bl	8024858 <_Bfree>
 
-  8022fda:	9b19      	ldr	r3, [sp, #100]	; 0x64
 
-  8022fdc:	2f06      	cmp	r7, #6
 
-  8022fde:	d80b      	bhi.n	8022ff8 <_strtod_r+0xa38>
 
-  8022fe0:	e8df f007 	tbb	[pc, r7]
 
-  8022fe4:	141b203c 	.word	0x141b203c
 
-  8022fe8:	2004      	.short	0x2004
 
-  8022fea:	3c          	.byte	0x3c
 
-  8022feb:	00          	.byte	0x00
 
-  8022fec:	f06f 4400 	mvn.w	r4, #2147483648	; 0x80000000
 
-  8022ff0:	f04f 30ff 	mov.w	r0, #4294967295
 
-  8022ff4:	9407      	str	r4, [sp, #28]
 
-  8022ff6:	9006      	str	r0, [sp, #24]
 
-  8022ff8:	072b      	lsls	r3, r5, #28
 
-  8022ffa:	f57f acb1 	bpl.w	8022960 <_strtod_r+0x3a0>
 
-  8022ffe:	9907      	ldr	r1, [sp, #28]
 
-  8023000:	f8dd 9018 	ldr.w	r9, [sp, #24]
 
-  8023004:	f041 4300 	orr.w	r3, r1, #2147483648	; 0x80000000
 
-  8023008:	469a      	mov	sl, r3
 
-  802300a:	e426      	b.n	802285a <_strtod_r+0x29a>
 
-  802300c:	2100      	movs	r1, #0
 
-  802300e:	9106      	str	r1, [sp, #24]
 
-  8023010:	460a      	mov	r2, r1
 
-  8023012:	f6c7 72f0 	movt	r2, #32752	; 0x7ff0
 
-  8023016:	9207      	str	r2, [sp, #28]
 
-  8023018:	e7ee      	b.n	8022ff8 <_strtod_r+0xa38>
 
-  802301a:	9b1a      	ldr	r3, [sp, #104]	; 0x68
 
-  802301c:	9c1b      	ldr	r4, [sp, #108]	; 0x6c
 
-  802301e:	9306      	str	r3, [sp, #24]
 
-  8023020:	9407      	str	r4, [sp, #28]
 
-  8023022:	e7e9      	b.n	8022ff8 <_strtod_r+0xa38>
 
-  8023024:	981a      	ldr	r0, [sp, #104]	; 0x68
 
-  8023026:	f203 4333 	addw	r3, r3, #1075	; 0x433
 
-  802302a:	9a1b      	ldr	r2, [sp, #108]	; 0x6c
 
-  802302c:	f422 1280 	bic.w	r2, r2, #1048576	; 0x100000
 
-  8023030:	9006      	str	r0, [sp, #24]
 
-  8023032:	ea42 5203 	orr.w	r2, r2, r3, lsl #20
 
-  8023036:	9207      	str	r2, [sp, #28]
 
-  8023038:	e7de      	b.n	8022ff8 <_strtod_r+0xa38>
 
-  802303a:	bf00      	nop
 
-  802303c:	f3af 8000 	nop.w
 
-  8023040:	94a03595 	.word	0x94a03595
 
-  8023044:	3fcfffff 	.word	0x3fcfffff
 
-  8023048:	94a03595 	.word	0x94a03595
 
-  802304c:	3fdfffff 	.word	0x3fdfffff
 
-  8023050:	35afe535 	.word	0x35afe535
 
-  8023054:	3fe00000 	.word	0x3fe00000
 
-  8023058:	08045b9b 	.word	0x08045b9b
 
-  802305c:	2100      	movs	r1, #0
 
-  802305e:	9107      	str	r1, [sp, #28]
 
-  8023060:	9106      	str	r1, [sp, #24]
 
-  8023062:	e7c9      	b.n	8022ff8 <_strtod_r+0xa38>
 
-  8023064:	46b0      	mov	r8, r6
 
-  8023066:	4657      	mov	r7, sl
 
-  8023068:	4654      	mov	r4, sl
 
-  802306a:	f7ff bb24 	b.w	80226b6 <_strtod_r+0xf6>
 
-  802306e:	2300      	movs	r3, #0
 
-  8023070:	930a      	str	r3, [sp, #40]	; 0x28
 
-  8023072:	e693      	b.n	8022d9c <_strtod_r+0x7dc>
 
-  8023074:	f8dd 802c 	ldr.w	r8, [sp, #44]	; 0x2c
 
-  8023078:	eb08 0300 	add.w	r3, r8, r0
 
-  802307c:	3b01      	subs	r3, #1
 
-  802307e:	2b08      	cmp	r3, #8
 
-  8023080:	f103 0801 	add.w	r8, r3, #1
 
-  8023084:	f300 8172 	bgt.w	802336c <_strtod_r+0xdac>
 
-  8023088:	eb07 0787 	add.w	r7, r7, r7, lsl #2
 
-  802308c:	2000      	movs	r0, #0
 
-  802308e:	eb01 0747 	add.w	r7, r1, r7, lsl #1
 
-  8023092:	9d0a      	ldr	r5, [sp, #40]	; 0x28
 
-  8023094:	1c6b      	adds	r3, r5, #1
 
-  8023096:	9317      	str	r3, [sp, #92]	; 0x5c
 
-  8023098:	786d      	ldrb	r5, [r5, #1]
 
-  802309a:	e613      	b.n	8022cc4 <_strtod_r+0x704>
 
-  802309c:	9d0f      	ldr	r5, [sp, #60]	; 0x3c
 
-  802309e:	4654      	mov	r4, sl
 
-  80230a0:	bb7d      	cbnz	r5, 8023102 <_strtod_r+0xb42>
 
-  80230a2:	9806      	ldr	r0, [sp, #24]
 
-  80230a4:	bb68      	cbnz	r0, 8023102 <_strtod_r+0xb42>
 
-  80230a6:	9a07      	ldr	r2, [sp, #28]
 
-  80230a8:	f3c2 0313 	ubfx	r3, r2, #0, #20
 
-  80230ac:	bb4b      	cbnz	r3, 8023102 <_strtod_r+0xb42>
 
-  80230ae:	4643      	mov	r3, r8
 
-  80230b0:	f6c7 73f0 	movt	r3, #32752	; 0x7ff0
 
-  80230b4:	4013      	ands	r3, r2
 
-  80230b6:	f1b3 6fd6 	cmp.w	r3, #112197632	; 0x6b00000
 
-  80230ba:	d922      	bls.n	8023102 <_strtod_r+0xb42>
 
-  80230bc:	6973      	ldr	r3, [r6, #20]
 
-  80230be:	b913      	cbnz	r3, 80230c6 <_strtod_r+0xb06>
 
-  80230c0:	6933      	ldr	r3, [r6, #16]
 
-  80230c2:	2b01      	cmp	r3, #1
 
-  80230c4:	dd1d      	ble.n	8023102 <_strtod_r+0xb42>
 
-  80230c6:	4631      	mov	r1, r6
 
-  80230c8:	2201      	movs	r2, #1
 
-  80230ca:	4658      	mov	r0, fp
 
-  80230cc:	f001 fdb6 	bl	8024c3c <__lshift>
 
-  80230d0:	4639      	mov	r1, r7
 
-  80230d2:	4606      	mov	r6, r0
 
-  80230d4:	f001 fe0c 	bl	8024cf0 <__mcmp>
 
-  80230d8:	2800      	cmp	r0, #0
 
-  80230da:	dd12      	ble.n	8023102 <_strtod_r+0xb42>
 
-  80230dc:	9d0b      	ldr	r5, [sp, #44]	; 0x2c
 
-  80230de:	2d00      	cmp	r5, #0
 
-  80230e0:	f040 8195 	bne.w	802340e <_strtod_r+0xe4e>
 
-  80230e4:	9807      	ldr	r0, [sp, #28]
 
-  80230e6:	f020 4300 	bic.w	r3, r0, #2147483648	; 0x80000000
 
-  80230ea:	0d1b      	lsrs	r3, r3, #20
 
-  80230ec:	051b      	lsls	r3, r3, #20
 
-  80230ee:	f5a3 1380 	sub.w	r3, r3, #1048576	; 0x100000
 
-  80230f2:	f04f 32ff 	mov.w	r2, #4294967295
 
-  80230f6:	9206      	str	r2, [sp, #24]
 
-  80230f8:	ea6f 5313 	mvn.w	r3, r3, lsr #20
 
-  80230fc:	ea6f 5303 	mvn.w	r3, r3, lsl #20
 
-  8023100:	9307      	str	r3, [sp, #28]
 
-  8023102:	9d0b      	ldr	r5, [sp, #44]	; 0x2c
 
-  8023104:	2d00      	cmp	r5, #0
 
-  8023106:	f000 80c8 	beq.w	802329a <_strtod_r+0xcda>
 
-  802310a:	2200      	movs	r2, #0
 
-  802310c:	2300      	movs	r3, #0
 
-  802310e:	f6c3 1250 	movt	r2, #14672	; 0x3950
 
-  8023112:	9314      	str	r3, [sp, #80]	; 0x50
 
-  8023114:	9215      	str	r2, [sp, #84]	; 0x54
 
-  8023116:	e9dd 0106 	ldrd	r0, r1, [sp, #24]
 
-  802311a:	e9dd 2314 	ldrd	r2, r3, [sp, #80]	; 0x50
 
-  802311e:	f7fd fa4f 	bl	80205c0 <__aeabi_dmul>
 
-  8023122:	e9cd 0106 	strd	r0, r1, [sp, #24]
 
-  8023126:	468a      	mov	sl, r1
 
-  8023128:	9907      	ldr	r1, [sp, #28]
 
-  802312a:	4681      	mov	r9, r0
 
-  802312c:	2900      	cmp	r1, #0
 
-  802312e:	f47f aee4 	bne.w	8022efa <_strtod_r+0x93a>
 
-  8023132:	9a06      	ldr	r2, [sp, #24]
 
-  8023134:	2a00      	cmp	r2, #0
 
-  8023136:	f47f aee0 	bne.w	8022efa <_strtod_r+0x93a>
 
-  802313a:	e6fe      	b.n	8022f3a <_strtod_r+0x97a>
 
-  802313c:	9d0f      	ldr	r5, [sp, #60]	; 0x3c
 
-  802313e:	4654      	mov	r4, sl
 
-  8023140:	f8dd 9024 	ldr.w	r9, [sp, #36]	; 0x24
 
-  8023144:	f8dd a028 	ldr.w	sl, [sp, #40]	; 0x28
 
-  8023148:	2d00      	cmp	r5, #0
 
-  802314a:	f000 80d3 	beq.w	80232f4 <_strtod_r+0xd34>
 
-  802314e:	9b07      	ldr	r3, [sp, #28]
 
-  8023150:	f64f 72ff 	movw	r2, #65535	; 0xffff
 
-  8023154:	f2c0 020f 	movt	r2, #15
 
-  8023158:	f023 417f 	bic.w	r1, r3, #4278190080	; 0xff000000
 
-  802315c:	f421 0170 	bic.w	r1, r1, #15728640	; 0xf00000
 
-  8023160:	4291      	cmp	r1, r2
 
-  8023162:	9906      	ldr	r1, [sp, #24]
 
-  8023164:	f000 8119 	beq.w	802339a <_strtod_r+0xdda>
 
-  8023168:	07cb      	lsls	r3, r1, #31
 
-  802316a:	d5ca      	bpl.n	8023102 <_strtod_r+0xb42>
 
-  802316c:	4648      	mov	r0, r9
 
-  802316e:	4651      	mov	r1, sl
 
-  8023170:	f001 fe52 	bl	8024e18 <__ulp>
 
-  8023174:	4602      	mov	r2, r0
 
-  8023176:	460b      	mov	r3, r1
 
-  8023178:	4648      	mov	r0, r9
 
-  802317a:	4651      	mov	r1, sl
 
-  802317c:	f7fd f86e 	bl	802025c <__adddf3>
 
-  8023180:	e9cd 0106 	strd	r0, r1, [sp, #24]
 
-  8023184:	e7bd      	b.n	8023102 <_strtod_r+0xb42>
 
-  8023186:	9814      	ldr	r0, [sp, #80]	; 0x50
 
-  8023188:	3001      	adds	r0, #1
 
-  802318a:	f47f ae85 	bne.w	8022e98 <_strtod_r+0x8d8>
 
-  802318e:	2000      	movs	r0, #0
 
-  8023190:	4654      	mov	r4, sl
 
-  8023192:	4601      	mov	r1, r0
 
-  8023194:	2322      	movs	r3, #34	; 0x22
 
-  8023196:	f6c7 71f0 	movt	r1, #32752	; 0x7ff0
 
-  802319a:	f8cb 3000 	str.w	r3, [fp]
 
-  802319e:	9107      	str	r1, [sp, #28]
 
-  80231a0:	4681      	mov	r9, r0
 
-  80231a2:	9006      	str	r0, [sp, #24]
 
-  80231a4:	468a      	mov	sl, r1
 
-  80231a6:	e6a8      	b.n	8022efa <_strtod_r+0x93a>
 
-  80231a8:	2300      	movs	r3, #0
 
-  80231aa:	2500      	movs	r5, #0
 
-  80231ac:	461c      	mov	r4, r3
 
-  80231ae:	9506      	str	r5, [sp, #24]
 
-  80231b0:	f6c7 74f0 	movt	r4, #32752	; 0x7ff0
 
-  80231b4:	2322      	movs	r3, #34	; 0x22
 
-  80231b6:	9407      	str	r4, [sp, #28]
 
-  80231b8:	46a9      	mov	r9, r5
 
-  80231ba:	f8cb 3000 	str.w	r3, [fp]
 
-  80231be:	46a2      	mov	sl, r4
 
-  80231c0:	f7ff bb4b 	b.w	802285a <_strtod_r+0x29a>
 
-  80231c4:	f43f ac35 	beq.w	8022a32 <_strtod_r+0x472>
 
-  80231c8:	4264      	negs	r4, r4
 
-  80231ca:	f014 020f 	ands.w	r2, r4, #15
 
-  80231ce:	d00d      	beq.n	80231ec <_strtod_r+0xc2c>
 
-  80231d0:	f249 7340 	movw	r3, #38720	; 0x9740
 
-  80231d4:	e9dd 0106 	ldrd	r0, r1, [sp, #24]
 
-  80231d8:	f6c0 0303 	movt	r3, #2051	; 0x803
 
-  80231dc:	eb03 03c2 	add.w	r3, r3, r2, lsl #3
 
-  80231e0:	e9d3 2300 	ldrd	r2, r3, [r3]
 
-  80231e4:	f7fd fb16 	bl	8020814 <__aeabi_ddiv>
 
-  80231e8:	e9cd 0106 	strd	r0, r1, [sp, #24]
 
-  80231ec:	1124      	asrs	r4, r4, #4
 
-  80231ee:	f43f ac20 	beq.w	8022a32 <_strtod_r+0x472>
 
-  80231f2:	2c1f      	cmp	r4, #31
 
-  80231f4:	dc40      	bgt.n	8023278 <_strtod_r+0xcb8>
 
-  80231f6:	f014 0f10 	tst.w	r4, #16
 
-  80231fa:	bf14      	ite	ne
 
-  80231fc:	256a      	movne	r5, #106	; 0x6a
 
-  80231fe:	2500      	moveq	r5, #0
 
-  8023200:	2c00      	cmp	r4, #0
 
-  8023202:	950b      	str	r5, [sp, #44]	; 0x2c
 
-  8023204:	dd17      	ble.n	8023236 <_strtod_r+0xc76>
 
-  8023206:	f249 7508 	movw	r5, #38664	; 0x9708
 
-  802320a:	e9dd 2306 	ldrd	r2, r3, [sp, #24]
 
-  802320e:	f6c0 0503 	movt	r5, #2051	; 0x803
 
-  8023212:	f014 0f01 	tst.w	r4, #1
 
-  8023216:	4610      	mov	r0, r2
 
-  8023218:	4619      	mov	r1, r3
 
-  802321a:	d005      	beq.n	8023228 <_strtod_r+0xc68>
 
-  802321c:	e9d5 2300 	ldrd	r2, r3, [r5]
 
-  8023220:	f7fd f9ce 	bl	80205c0 <__aeabi_dmul>
 
-  8023224:	4602      	mov	r2, r0
 
-  8023226:	460b      	mov	r3, r1
 
-  8023228:	3508      	adds	r5, #8
 
-  802322a:	1064      	asrs	r4, r4, #1
 
-  802322c:	d1f1      	bne.n	8023212 <_strtod_r+0xc52>
 
-  802322e:	4610      	mov	r0, r2
 
-  8023230:	4619      	mov	r1, r3
 
-  8023232:	e9cd 0106 	strd	r0, r1, [sp, #24]
 
-  8023236:	9c0b      	ldr	r4, [sp, #44]	; 0x2c
 
-  8023238:	b18c      	cbz	r4, 802325e <_strtod_r+0xc9e>
 
-  802323a:	9a07      	ldr	r2, [sp, #28]
 
-  802323c:	f3c2 530a 	ubfx	r3, r2, #20, #11
 
-  8023240:	f1c3 036b 	rsb	r3, r3, #107	; 0x6b
 
-  8023244:	2b00      	cmp	r3, #0
 
-  8023246:	dd0a      	ble.n	802325e <_strtod_r+0xc9e>
 
-  8023248:	2b1f      	cmp	r3, #31
 
-  802324a:	f340 810a 	ble.w	8023462 <_strtod_r+0xea2>
 
-  802324e:	2100      	movs	r1, #0
 
-  8023250:	2b34      	cmp	r3, #52	; 0x34
 
-  8023252:	9106      	str	r1, [sp, #24]
 
-  8023254:	f340 810d 	ble.w	8023472 <_strtod_r+0xeb2>
 
-  8023258:	f04f 725c 	mov.w	r2, #57671680	; 0x3700000
 
-  802325c:	9207      	str	r2, [sp, #28]
 
-  802325e:	9d06      	ldr	r5, [sp, #24]
 
-  8023260:	2200      	movs	r2, #0
 
-  8023262:	9c07      	ldr	r4, [sp, #28]
 
-  8023264:	2300      	movs	r3, #0
 
-  8023266:	4628      	mov	r0, r5
 
-  8023268:	46a9      	mov	r9, r5
 
-  802326a:	4621      	mov	r1, r4
 
-  802326c:	46a2      	mov	sl, r4
 
-  802326e:	f7fd fc0f 	bl	8020a90 <__aeabi_dcmpeq>
 
-  8023272:	2800      	cmp	r0, #0
 
-  8023274:	f43f abe2 	beq.w	8022a3c <_strtod_r+0x47c>
 
-  8023278:	f04f 0900 	mov.w	r9, #0
 
-  802327c:	2322      	movs	r3, #34	; 0x22
 
-  802327e:	46ca      	mov	sl, r9
 
-  8023280:	f8cb 3000 	str.w	r3, [fp]
 
-  8023284:	f7ff bae9 	b.w	802285a <_strtod_r+0x29a>
 
-  8023288:	9a0f      	ldr	r2, [sp, #60]	; 0x3c
 
-  802328a:	2300      	movs	r3, #0
 
-  802328c:	4699      	mov	r9, r3
 
-  802328e:	f6cb 73e0 	movt	r3, #49120	; 0xbfe0
 
-  8023292:	f6c3 79e0 	movt	r9, #16352	; 0x3fe0
 
-  8023296:	920c      	str	r2, [sp, #48]	; 0x30
 
-  8023298:	e5bf      	b.n	8022e1a <_strtod_r+0x85a>
 
-  802329a:	f8dd 9018 	ldr.w	r9, [sp, #24]
 
-  802329e:	f8dd a01c 	ldr.w	sl, [sp, #28]
 
-  80232a2:	e62a      	b.n	8022efa <_strtod_r+0x93a>
 
-  80232a4:	f04f 0900 	mov.w	r9, #0
 
-  80232a8:	3601      	adds	r6, #1
 
-  80232aa:	46ca      	mov	sl, r9
 
-  80232ac:	9617      	str	r6, [sp, #92]	; 0x5c
 
-  80232ae:	f7ff bad4 	b.w	802285a <_strtod_r+0x29a>
 
-  80232b2:	9c09      	ldr	r4, [sp, #36]	; 0x24
 
-  80232b4:	f1c8 0325 	rsb	r3, r8, #37	; 0x25
 
-  80232b8:	429c      	cmp	r4, r3
 
-  80232ba:	f73f ab9d 	bgt.w	80229f8 <_strtod_r+0x438>
 
-  80232be:	f1c8 080f 	rsb	r8, r8, #15
 
-  80232c2:	f249 7440 	movw	r4, #38720	; 0x9740
 
-  80232c6:	f6c0 0403 	movt	r4, #2051	; 0x803
 
-  80232ca:	e9dd 2306 	ldrd	r2, r3, [sp, #24]
 
-  80232ce:	eb04 01c8 	add.w	r1, r4, r8, lsl #3
 
-  80232d2:	e9d1 0100 	ldrd	r0, r1, [r1]
 
-  80232d6:	f7fd f973 	bl	80205c0 <__aeabi_dmul>
 
-  80232da:	9d09      	ldr	r5, [sp, #36]	; 0x24
 
-  80232dc:	ebc8 0805 	rsb	r8, r8, r5
 
-  80232e0:	eb04 04c8 	add.w	r4, r4, r8, lsl #3
 
-  80232e4:	e9d4 2300 	ldrd	r2, r3, [r4]
 
-  80232e8:	f7fd f96a 	bl	80205c0 <__aeabi_dmul>
 
-  80232ec:	4681      	mov	r9, r0
 
-  80232ee:	468a      	mov	sl, r1
 
-  80232f0:	f7ff bab3 	b.w	802285a <_strtod_r+0x29a>
 
-  80232f4:	9907      	ldr	r1, [sp, #28]
 
-  80232f6:	f3c1 0313 	ubfx	r3, r1, #0, #20
 
-  80232fa:	2b00      	cmp	r3, #0
 
-  80232fc:	d141      	bne.n	8023382 <_strtod_r+0xdc2>
 
-  80232fe:	9b06      	ldr	r3, [sp, #24]
 
-  8023300:	2b00      	cmp	r3, #0
 
-  8023302:	f43f aeeb 	beq.w	80230dc <_strtod_r+0xb1c>
 
-  8023306:	07da      	lsls	r2, r3, #31
 
-  8023308:	f57f aefb 	bpl.w	8023102 <_strtod_r+0xb42>
 
-  802330c:	4648      	mov	r0, r9
 
-  802330e:	4651      	mov	r1, sl
 
-  8023310:	f001 fd82 	bl	8024e18 <__ulp>
 
-  8023314:	4602      	mov	r2, r0
 
-  8023316:	460b      	mov	r3, r1
 
-  8023318:	4648      	mov	r0, r9
 
-  802331a:	4651      	mov	r1, sl
 
-  802331c:	f7fc ff9c 	bl	8020258 <__aeabi_dsub>
 
-  8023320:	4602      	mov	r2, r0
 
-  8023322:	460b      	mov	r3, r1
 
-  8023324:	e9cd 2306 	strd	r2, r3, [sp, #24]
 
-  8023328:	2200      	movs	r2, #0
 
-  802332a:	2300      	movs	r3, #0
 
-  802332c:	f7fd fbb0 	bl	8020a90 <__aeabi_dcmpeq>
 
-  8023330:	2800      	cmp	r0, #0
 
-  8023332:	f47f adff 	bne.w	8022f34 <_strtod_r+0x974>
 
-  8023336:	e6e4      	b.n	8023102 <_strtod_r+0xb42>
 
-  8023338:	9d09      	ldr	r5, [sp, #36]	; 0x24
 
-  802333a:	426d      	negs	r5, r5
 
-  802333c:	950d      	str	r5, [sp, #52]	; 0x34
 
-  802333e:	f7ff bb8b 	b.w	8022a58 <_strtod_r+0x498>
 
-  8023342:	9c09      	ldr	r4, [sp, #36]	; 0x24
 
-  8023344:	f114 0f16 	cmn.w	r4, #22
 
-  8023348:	f6ff ab56 	blt.w	80229f8 <_strtod_r+0x438>
 
-  802334c:	f249 7340 	movw	r3, #38720	; 0x9740
 
-  8023350:	e9dd 0106 	ldrd	r0, r1, [sp, #24]
 
-  8023354:	f6c0 0303 	movt	r3, #2051	; 0x803
 
-  8023358:	eba3 03c4 	sub.w	r3, r3, r4, lsl #3
 
-  802335c:	e9d3 2300 	ldrd	r2, r3, [r3]
 
-  8023360:	f7fd fa58 	bl	8020814 <__aeabi_ddiv>
 
-  8023364:	4681      	mov	r9, r0
 
-  8023366:	468a      	mov	sl, r1
 
-  8023368:	f7ff ba77 	b.w	802285a <_strtod_r+0x29a>
 
-  802336c:	2000      	movs	r0, #0
 
-  802336e:	f1b8 0f10 	cmp.w	r8, #16
 
-  8023372:	f73f ae8e 	bgt.w	8023092 <_strtod_r+0xad2>
 
-  8023376:	eb0a 0a8a 	add.w	sl, sl, sl, lsl #2
 
-  802337a:	2000      	movs	r0, #0
 
-  802337c:	eb01 0a4a 	add.w	sl, r1, sl, lsl #1
 
-  8023380:	e687      	b.n	8023092 <_strtod_r+0xad2>
 
-  8023382:	9b06      	ldr	r3, [sp, #24]
 
-  8023384:	e7bf      	b.n	8023306 <_strtod_r+0xd46>
 
-  8023386:	f101 7154 	add.w	r1, r1, #55574528	; 0x3500000
 
-  802338a:	2400      	movs	r4, #0
 
-  802338c:	9107      	str	r1, [sp, #28]
 
-  802338e:	468a      	mov	sl, r1
 
-  8023390:	940b      	str	r4, [sp, #44]	; 0x2c
 
-  8023392:	f8dd 9018 	ldr.w	r9, [sp, #24]
 
-  8023396:	f7ff bb51 	b.w	8022a3c <_strtod_r+0x47c>
 
-  802339a:	9d0b      	ldr	r5, [sp, #44]	; 0x2c
 
-  802339c:	b1d5      	cbz	r5, 80233d4 <_strtod_r+0xe14>
 
-  802339e:	2200      	movs	r2, #0
 
-  80233a0:	f6c7 72f0 	movt	r2, #32752	; 0x7ff0
 
-  80233a4:	401a      	ands	r2, r3
 
-  80233a6:	f1b2 6fd4 	cmp.w	r2, #111149056	; 0x6a00000
 
-  80233aa:	d813      	bhi.n	80233d4 <_strtod_r+0xe14>
 
-  80233ac:	0d12      	lsrs	r2, r2, #20
 
-  80233ae:	f04f 30ff 	mov.w	r0, #4294967295
 
-  80233b2:	f1c2 026b 	rsb	r2, r2, #107	; 0x6b
 
-  80233b6:	fa00 f202 	lsl.w	r2, r0, r2
 
-  80233ba:	4291      	cmp	r1, r2
 
-  80233bc:	f47f aed4 	bne.w	8023168 <_strtod_r+0xba8>
 
-  80233c0:	2200      	movs	r2, #0
 
-  80233c2:	2000      	movs	r0, #0
 
-  80233c4:	f6c7 72f0 	movt	r2, #32752	; 0x7ff0
 
-  80233c8:	9006      	str	r0, [sp, #24]
 
-  80233ca:	401a      	ands	r2, r3
 
-  80233cc:	f502 1280 	add.w	r2, r2, #1048576	; 0x100000
 
-  80233d0:	9207      	str	r2, [sp, #28]
 
-  80233d2:	e696      	b.n	8023102 <_strtod_r+0xb42>
 
-  80233d4:	f04f 32ff 	mov.w	r2, #4294967295
 
-  80233d8:	e7ef      	b.n	80233ba <_strtod_r+0xdfa>
 
-  80233da:	4c2a      	ldr	r4, [pc, #168]	; (8023484 <_strtod_r+0xec4>)
 
-  80233dc:	4611      	mov	r1, r2
 
-  80233de:	9217      	str	r2, [sp, #92]	; 0x5c
 
-  80233e0:	f814 0f01 	ldrb.w	r0, [r4, #1]!
 
-  80233e4:	460b      	mov	r3, r1
 
-  80233e6:	b310      	cbz	r0, 802342e <_strtod_r+0xe6e>
 
-  80233e8:	785b      	ldrb	r3, [r3, #1]
 
-  80233ea:	3101      	adds	r1, #1
 
-  80233ec:	2b40      	cmp	r3, #64	; 0x40
 
-  80233ee:	dd02      	ble.n	80233f6 <_strtod_r+0xe36>
 
-  80233f0:	2b5a      	cmp	r3, #90	; 0x5a
 
-  80233f2:	bfd8      	it	le
 
-  80233f4:	3320      	addle	r3, #32
 
-  80233f6:	4283      	cmp	r3, r0
 
-  80233f8:	d0f2      	beq.n	80233e0 <_strtod_r+0xe20>
 
-  80233fa:	3201      	adds	r2, #1
 
-  80233fc:	9217      	str	r2, [sp, #92]	; 0x5c
 
-  80233fe:	2500      	movs	r5, #0
 
-  8023400:	9506      	str	r5, [sp, #24]
 
-  8023402:	4628      	mov	r0, r5
 
-  8023404:	f6c7 70f0 	movt	r0, #32752	; 0x7ff0
 
-  8023408:	9007      	str	r0, [sp, #28]
 
-  802340a:	f7ff baa9 	b.w	8022960 <_strtod_r+0x3a0>
 
-  802340e:	9907      	ldr	r1, [sp, #28]
 
-  8023410:	f021 4300 	bic.w	r3, r1, #2147483648	; 0x80000000
 
-  8023414:	0d1b      	lsrs	r3, r3, #20
 
-  8023416:	051b      	lsls	r3, r3, #20
 
-  8023418:	f1b3 6fd6 	cmp.w	r3, #112197632	; 0x6b00000
 
-  802341c:	f63f ae67 	bhi.w	80230ee <_strtod_r+0xb2e>
 
-  8023420:	f1b3 7f5c 	cmp.w	r3, #57671680	; 0x3700000
 
-  8023424:	f63f ae71 	bhi.w	802310a <_strtod_r+0xb4a>
 
-  8023428:	e584      	b.n	8022f34 <_strtod_r+0x974>
 
-  802342a:	4643      	mov	r3, r8
 
-  802342c:	e627      	b.n	802307e <_strtod_r+0xabe>
 
-  802342e:	3101      	adds	r1, #1
 
-  8023430:	9117      	str	r1, [sp, #92]	; 0x5c
 
-  8023432:	e7e4      	b.n	80233fe <_strtod_r+0xe3e>
 
-  8023434:	f04f 0900 	mov.w	r9, #0
 
-  8023438:	f6c0 0a03 	movt	sl, #2051	; 0x803
 
-  802343c:	e47f      	b.n	8022d3e <_strtod_r+0x77e>
 
-  802343e:	a817      	add	r0, sp, #92	; 0x5c
 
-  8023440:	4911      	ldr	r1, [pc, #68]	; (8023488 <_strtod_r+0xec8>)
 
-  8023442:	aa1a      	add	r2, sp, #104	; 0x68
 
-  8023444:	f000 fd7e 	bl	8023f44 <__hexnan>
 
-  8023448:	2805      	cmp	r0, #5
 
-  802344a:	f47f aa83 	bne.w	8022954 <_strtod_r+0x394>
 
-  802344e:	9b1b      	ldr	r3, [sp, #108]	; 0x6c
 
-  8023450:	9a1a      	ldr	r2, [sp, #104]	; 0x68
 
-  8023452:	f043 43ff 	orr.w	r3, r3, #2139095040	; 0x7f800000
 
-  8023456:	f443 03e0 	orr.w	r3, r3, #7340032	; 0x700000
 
-  802345a:	9307      	str	r3, [sp, #28]
 
-  802345c:	9206      	str	r2, [sp, #24]
 
-  802345e:	f7ff ba7f 	b.w	8022960 <_strtod_r+0x3a0>
 
-  8023462:	f04f 32ff 	mov.w	r2, #4294967295
 
-  8023466:	9c06      	ldr	r4, [sp, #24]
 
-  8023468:	fa02 f303 	lsl.w	r3, r2, r3
 
-  802346c:	401c      	ands	r4, r3
 
-  802346e:	9406      	str	r4, [sp, #24]
 
-  8023470:	e6f5      	b.n	802325e <_strtod_r+0xc9e>
 
-  8023472:	f04f 31ff 	mov.w	r1, #4294967295
 
-  8023476:	3b20      	subs	r3, #32
 
-  8023478:	fa01 f303 	lsl.w	r3, r1, r3
 
-  802347c:	4013      	ands	r3, r2
 
-  802347e:	9307      	str	r3, [sp, #28]
 
-  8023480:	e6ed      	b.n	802325e <_strtod_r+0xc9e>
 
-  8023482:	bf00      	nop
 
-  8023484:	08045b9f 	.word	0x08045b9f
 
-  8023488:	20000018 	.word	0x20000018
 
- 0802348c <strtod>:
 
-  802348c:	f240 032c 	movw	r3, #44	; 0x2c
 
-  8023490:	460a      	mov	r2, r1
 
-  8023492:	f2c2 0300 	movt	r3, #8192	; 0x2000
 
-  8023496:	4601      	mov	r1, r0
 
-  8023498:	6818      	ldr	r0, [r3, #0]
 
-  802349a:	f7ff b891 	b.w	80225c0 <_strtod_r>
 
-  802349e:	bf00      	nop
 
- 080234a0 <strtof>:
 
-  80234a0:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
 
-  80234a4:	f240 062c 	movw	r6, #44	; 0x2c
 
-  80234a8:	f2c2 0600 	movt	r6, #8192	; 0x2000
 
-  80234ac:	460a      	mov	r2, r1
 
-  80234ae:	4601      	mov	r1, r0
 
-  80234b0:	f04f 0801 	mov.w	r8, #1
 
-  80234b4:	6830      	ldr	r0, [r6, #0]
 
-  80234b6:	f7ff f883 	bl	80225c0 <_strtod_r>
 
-  80234ba:	460d      	mov	r5, r1
 
-  80234bc:	4604      	mov	r4, r0
 
-  80234be:	f7fd fb61 	bl	8020b84 <__aeabi_d2f>
 
-  80234c2:	2100      	movs	r1, #0
 
-  80234c4:	4607      	mov	r7, r0
 
-  80234c6:	f7fd fcff 	bl	8020ec8 <__aeabi_fcmpeq>
 
-  80234ca:	b908      	cbnz	r0, 80234d0 <strtof+0x30>
 
-  80234cc:	f04f 0800 	mov.w	r8, #0
 
-  80234d0:	4620      	mov	r0, r4
 
-  80234d2:	4629      	mov	r1, r5
 
-  80234d4:	2200      	movs	r2, #0
 
-  80234d6:	2300      	movs	r3, #0
 
-  80234d8:	f04f 0901 	mov.w	r9, #1
 
-  80234dc:	f7fd fad8 	bl	8020a90 <__aeabi_dcmpeq>
 
-  80234e0:	b108      	cbz	r0, 80234e6 <strtof+0x46>
 
-  80234e2:	f04f 0900 	mov.w	r9, #0
 
-  80234e6:	ea08 0809 	and.w	r8, r8, r9
 
-  80234ea:	f018 0fff 	tst.w	r8, #255	; 0xff
 
-  80234ee:	d116      	bne.n	802351e <strtof+0x7e>
 
-  80234f0:	f64f 71ff 	movw	r1, #65535	; 0xffff
 
-  80234f4:	4638      	mov	r0, r7
 
-  80234f6:	f6c7 717f 	movt	r1, #32639	; 0x7f7f
 
-  80234fa:	f7fd fd0d 	bl	8020f18 <__aeabi_fcmpgt>
 
-  80234fe:	b9a0      	cbnz	r0, 802352a <strtof+0x8a>
 
-  8023500:	4638      	mov	r0, r7
 
-  8023502:	f46f 0100 	mvn.w	r1, #8388608	; 0x800000
 
-  8023506:	f7fd fce9 	bl	8020edc <__aeabi_fcmplt>
 
-  802350a:	b158      	cbz	r0, 8023524 <strtof+0x84>
 
-  802350c:	4620      	mov	r0, r4
 
-  802350e:	4629      	mov	r1, r5
 
-  8023510:	f04f 32ff 	mov.w	r2, #4294967295
 
-  8023514:	f46f 1380 	mvn.w	r3, #1048576	; 0x100000
 
-  8023518:	f7fd fac4 	bl	8020aa4 <__aeabi_dcmplt>
 
-  802351c:	b910      	cbnz	r0, 8023524 <strtof+0x84>
 
-  802351e:	6833      	ldr	r3, [r6, #0]
 
-  8023520:	2222      	movs	r2, #34	; 0x22
 
-  8023522:	601a      	str	r2, [r3, #0]
 
-  8023524:	4638      	mov	r0, r7
 
-  8023526:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
 
-  802352a:	f64f 73ff 	movw	r3, #65535	; 0xffff
 
-  802352e:	4620      	mov	r0, r4
 
-  8023530:	4629      	mov	r1, r5
 
-  8023532:	f04f 32ff 	mov.w	r2, #4294967295
 
-  8023536:	f6c7 73ef 	movt	r3, #32751	; 0x7fef
 
-  802353a:	f7fd fad1 	bl	8020ae0 <__aeabi_dcmpgt>
 
-  802353e:	2800      	cmp	r0, #0
 
-  8023540:	d0ed      	beq.n	802351e <strtof+0x7e>
 
-  8023542:	e7dd      	b.n	8023500 <strtof+0x60>
 
-  8023544:	f3af 8000 	nop.w
 
- 08023548 <_strtol_r>:
 
-  8023548:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-  802354c:	f240 0400 	movw	r4, #0
 
-  8023550:	f2c2 0400 	movt	r4, #8192	; 0x2000
 
-  8023554:	b085      	sub	sp, #20
 
-  8023556:	4699      	mov	r9, r3
 
-  8023558:	460b      	mov	r3, r1
 
-  802355a:	f8d4 8000 	ldr.w	r8, [r4]
 
-  802355e:	9102      	str	r1, [sp, #8]
 
-  8023560:	9003      	str	r0, [sp, #12]
 
-  8023562:	461c      	mov	r4, r3
 
-  8023564:	f814 5b01 	ldrb.w	r5, [r4], #1
 
-  8023568:	eb08 0105 	add.w	r1, r8, r5
 
-  802356c:	4623      	mov	r3, r4
 
-  802356e:	7849      	ldrb	r1, [r1, #1]
 
-  8023570:	f001 0108 	and.w	r1, r1, #8
 
-  8023574:	b2c9      	uxtb	r1, r1
 
-  8023576:	2900      	cmp	r1, #0
 
-  8023578:	d1f3      	bne.n	8023562 <_strtol_r+0x1a>
 
-  802357a:	2d2d      	cmp	r5, #45	; 0x2d
 
-  802357c:	d07b      	beq.n	8023676 <_strtol_r+0x12e>
 
-  802357e:	2d2b      	cmp	r5, #43	; 0x2b
 
-  8023580:	bf05      	ittet	eq
 
-  8023582:	4624      	moveq	r4, r4
 
-  8023584:	460b      	moveq	r3, r1
 
-  8023586:	460b      	movne	r3, r1
 
-  8023588:	f814 5b01 	ldrbeq.w	r5, [r4], #1
 
-  802358c:	f039 0110 	bics.w	r1, r9, #16
 
-  8023590:	d112      	bne.n	80235b8 <_strtol_r+0x70>
 
-  8023592:	f1d9 0001 	rsbs	r0, r9, #1
 
-  8023596:	bf38      	it	cc
 
-  8023598:	2000      	movcc	r0, #0
 
-  802359a:	2d30      	cmp	r5, #48	; 0x30
 
-  802359c:	d004      	beq.n	80235a8 <_strtol_r+0x60>
 
-  802359e:	b158      	cbz	r0, 80235b8 <_strtol_r+0x70>
 
-  80235a0:	f04f 090a 	mov.w	r9, #10
 
-  80235a4:	46cb      	mov	fp, r9
 
-  80235a6:	e008      	b.n	80235ba <_strtol_r+0x72>
 
-  80235a8:	7821      	ldrb	r1, [r4, #0]
 
-  80235aa:	f001 01df 	and.w	r1, r1, #223	; 0xdf
 
-  80235ae:	2958      	cmp	r1, #88	; 0x58
 
-  80235b0:	d065      	beq.n	802367e <_strtol_r+0x136>
 
-  80235b2:	b108      	cbz	r0, 80235b8 <_strtol_r+0x70>
 
-  80235b4:	f04f 0908 	mov.w	r9, #8
 
-  80235b8:	46cb      	mov	fp, r9
 
-  80235ba:	2b00      	cmp	r3, #0
 
-  80235bc:	4659      	mov	r1, fp
 
-  80235be:	bf0c      	ite	eq
 
-  80235c0:	f06f 4600 	mvneq.w	r6, #2147483648	; 0x80000000
 
-  80235c4:	f04f 4600 	movne.w	r6, #2147483648	; 0x80000000
 
-  80235c8:	e88d 000c 	stmia.w	sp, {r2, r3}
 
-  80235cc:	4630      	mov	r0, r6
 
-  80235ce:	2700      	movs	r7, #0
 
-  80235d0:	f7fe f964 	bl	802189c <__aeabi_uidivmod>
 
-  80235d4:	4630      	mov	r0, r6
 
-  80235d6:	468a      	mov	sl, r1
 
-  80235d8:	4659      	mov	r1, fp
 
-  80235da:	f7fe f831 	bl	8021640 <__aeabi_uidiv>
 
-  80235de:	46bc      	mov	ip, r7
 
-  80235e0:	e89d 000c 	ldmia.w	sp, {r2, r3}
 
-  80235e4:	e016      	b.n	8023614 <_strtol_r+0xcc>
 
-  80235e6:	3d30      	subs	r5, #48	; 0x30
 
-  80235e8:	45a9      	cmp	r9, r5
 
-  80235ea:	dd25      	ble.n	8023638 <_strtol_r+0xf0>
 
-  80235ec:	4584      	cmp	ip, r0
 
-  80235ee:	bf94      	ite	ls
 
-  80235f0:	2100      	movls	r1, #0
 
-  80235f2:	2101      	movhi	r1, #1
 
-  80235f4:	ea51 77d7 	orrs.w	r7, r1, r7, lsr #31
 
-  80235f8:	d129      	bne.n	802364e <_strtol_r+0x106>
 
-  80235fa:	4555      	cmp	r5, sl
 
-  80235fc:	bfd4      	ite	le
 
-  80235fe:	2100      	movle	r1, #0
 
-  8023600:	2101      	movgt	r1, #1
 
-  8023602:	4584      	cmp	ip, r0
 
-  8023604:	bf18      	it	ne
 
-  8023606:	2100      	movne	r1, #0
 
-  8023608:	bb09      	cbnz	r1, 802364e <_strtol_r+0x106>
 
-  802360a:	fb0b 5c0c 	mla	ip, fp, ip, r5
 
-  802360e:	2701      	movs	r7, #1
 
-  8023610:	f814 5b01 	ldrb.w	r5, [r4], #1
 
-  8023614:	eb08 0105 	add.w	r1, r8, r5
 
-  8023618:	7849      	ldrb	r1, [r1, #1]
 
-  802361a:	f001 0604 	and.w	r6, r1, #4
 
-  802361e:	b2f6      	uxtb	r6, r6
 
-  8023620:	2e00      	cmp	r6, #0
 
-  8023622:	d1e0      	bne.n	80235e6 <_strtol_r+0x9e>
 
-  8023624:	f011 0103 	ands.w	r1, r1, #3
 
-  8023628:	d006      	beq.n	8023638 <_strtol_r+0xf0>
 
-  802362a:	2901      	cmp	r1, #1
 
-  802362c:	bf14      	ite	ne
 
-  802362e:	2157      	movne	r1, #87	; 0x57
 
-  8023630:	2137      	moveq	r1, #55	; 0x37
 
-  8023632:	1a6d      	subs	r5, r5, r1
 
-  8023634:	45a9      	cmp	r9, r5
 
-  8023636:	dcd9      	bgt.n	80235ec <_strtol_r+0xa4>
 
-  8023638:	1c79      	adds	r1, r7, #1
 
-  802363a:	d00b      	beq.n	8023654 <_strtol_r+0x10c>
 
-  802363c:	b9c3      	cbnz	r3, 8023670 <_strtol_r+0x128>
 
-  802363e:	4660      	mov	r0, ip
 
-  8023640:	b112      	cbz	r2, 8023648 <_strtol_r+0x100>
 
-  8023642:	b997      	cbnz	r7, 802366a <_strtol_r+0x122>
 
-  8023644:	9b02      	ldr	r3, [sp, #8]
 
-  8023646:	6013      	str	r3, [r2, #0]
 
-  8023648:	b005      	add	sp, #20
 
-  802364a:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
-  802364e:	f04f 37ff 	mov.w	r7, #4294967295
 
-  8023652:	e7dd      	b.n	8023610 <_strtol_r+0xc8>
 
-  8023654:	9903      	ldr	r1, [sp, #12]
 
-  8023656:	2b00      	cmp	r3, #0
 
-  8023658:	bf0c      	ite	eq
 
-  802365a:	f06f 4000 	mvneq.w	r0, #2147483648	; 0x80000000
 
-  802365e:	f04f 4000 	movne.w	r0, #2147483648	; 0x80000000
 
-  8023662:	2322      	movs	r3, #34	; 0x22
 
-  8023664:	600b      	str	r3, [r1, #0]
 
-  8023666:	2a00      	cmp	r2, #0
 
-  8023668:	d0ee      	beq.n	8023648 <_strtol_r+0x100>
 
-  802366a:	3c01      	subs	r4, #1
 
-  802366c:	9402      	str	r4, [sp, #8]
 
-  802366e:	e7e9      	b.n	8023644 <_strtol_r+0xfc>
 
-  8023670:	f1cc 0c00 	rsb	ip, ip, #0
 
-  8023674:	e7e3      	b.n	802363e <_strtol_r+0xf6>
 
-  8023676:	f814 5b01 	ldrb.w	r5, [r4], #1
 
-  802367a:	2301      	movs	r3, #1
 
-  802367c:	e786      	b.n	802358c <_strtol_r+0x44>
 
-  802367e:	f04f 0910 	mov.w	r9, #16
 
-  8023682:	7865      	ldrb	r5, [r4, #1]
 
-  8023684:	46cb      	mov	fp, r9
 
-  8023686:	3402      	adds	r4, #2
 
-  8023688:	e797      	b.n	80235ba <_strtol_r+0x72>
 
-  802368a:	bf00      	nop
 
- 0802368c <strtol>:
 
-  802368c:	b430      	push	{r4, r5}
 
-  802368e:	f240 042c 	movw	r4, #44	; 0x2c
 
-  8023692:	f2c2 0400 	movt	r4, #8192	; 0x2000
 
-  8023696:	460d      	mov	r5, r1
 
-  8023698:	4613      	mov	r3, r2
 
-  802369a:	4601      	mov	r1, r0
 
-  802369c:	462a      	mov	r2, r5
 
-  802369e:	6820      	ldr	r0, [r4, #0]
 
-  80236a0:	bc30      	pop	{r4, r5}
 
-  80236a2:	f7ff bf51 	b.w	8023548 <_strtol_r>
 
-  80236a6:	bf00      	nop
 
- 080236a8 <_malloc_trim_r>:
 
-  80236a8:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
-  80236aa:	f240 149c 	movw	r4, #412	; 0x19c
 
-  80236ae:	f2c2 0400 	movt	r4, #8192	; 0x2000
 
-  80236b2:	460f      	mov	r7, r1
 
-  80236b4:	4605      	mov	r5, r0
 
-  80236b6:	f001 f895 	bl	80247e4 <__malloc_lock>
 
-  80236ba:	68a3      	ldr	r3, [r4, #8]
 
-  80236bc:	685e      	ldr	r6, [r3, #4]
 
-  80236be:	f026 0603 	bic.w	r6, r6, #3
 
-  80236c2:	f606 73ef 	addw	r3, r6, #4079	; 0xfef
 
-  80236c6:	1bdf      	subs	r7, r3, r7
 
-  80236c8:	0b3f      	lsrs	r7, r7, #12
 
-  80236ca:	3f01      	subs	r7, #1
 
-  80236cc:	033f      	lsls	r7, r7, #12
 
-  80236ce:	f5b7 5f80 	cmp.w	r7, #4096	; 0x1000
 
-  80236d2:	db07      	blt.n	80236e4 <_malloc_trim_r+0x3c>
 
-  80236d4:	2100      	movs	r1, #0
 
-  80236d6:	4628      	mov	r0, r5
 
-  80236d8:	f001 fd10 	bl	80250fc <_sbrk_r>
 
-  80236dc:	68a3      	ldr	r3, [r4, #8]
 
-  80236de:	199b      	adds	r3, r3, r6
 
-  80236e0:	4298      	cmp	r0, r3
 
-  80236e2:	d004      	beq.n	80236ee <_malloc_trim_r+0x46>
 
-  80236e4:	4628      	mov	r0, r5
 
-  80236e6:	f001 f87f 	bl	80247e8 <__malloc_unlock>
 
-  80236ea:	2000      	movs	r0, #0
 
-  80236ec:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 
-  80236ee:	4279      	negs	r1, r7
 
-  80236f0:	4628      	mov	r0, r5
 
-  80236f2:	f001 fd03 	bl	80250fc <_sbrk_r>
 
-  80236f6:	3001      	adds	r0, #1
 
-  80236f8:	d010      	beq.n	802371c <_malloc_trim_r+0x74>
 
-  80236fa:	f640 23d4 	movw	r3, #2772	; 0xad4
 
-  80236fe:	68a1      	ldr	r1, [r4, #8]
 
-  8023700:	f2c2 0300 	movt	r3, #8192	; 0x2000
 
-  8023704:	1bf6      	subs	r6, r6, r7
 
-  8023706:	4628      	mov	r0, r5
 
-  8023708:	f046 0601 	orr.w	r6, r6, #1
 
-  802370c:	681a      	ldr	r2, [r3, #0]
 
-  802370e:	604e      	str	r6, [r1, #4]
 
-  8023710:	1bd7      	subs	r7, r2, r7
 
-  8023712:	601f      	str	r7, [r3, #0]
 
-  8023714:	f001 f868 	bl	80247e8 <__malloc_unlock>
 
-  8023718:	2001      	movs	r0, #1
 
-  802371a:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 
-  802371c:	2100      	movs	r1, #0
 
-  802371e:	4628      	mov	r0, r5
 
-  8023720:	f001 fcec 	bl	80250fc <_sbrk_r>
 
-  8023724:	68a3      	ldr	r3, [r4, #8]
 
-  8023726:	1ac2      	subs	r2, r0, r3
 
-  8023728:	2a0f      	cmp	r2, #15
 
-  802372a:	dddb      	ble.n	80236e4 <_malloc_trim_r+0x3c>
 
-  802372c:	f240 54a4 	movw	r4, #1444	; 0x5a4
 
-  8023730:	f640 21d4 	movw	r1, #2772	; 0xad4
 
-  8023734:	f2c2 0400 	movt	r4, #8192	; 0x2000
 
-  8023738:	f2c2 0100 	movt	r1, #8192	; 0x2000
 
-  802373c:	f042 0201 	orr.w	r2, r2, #1
 
-  8023740:	605a      	str	r2, [r3, #4]
 
-  8023742:	6823      	ldr	r3, [r4, #0]
 
-  8023744:	1ac0      	subs	r0, r0, r3
 
-  8023746:	6008      	str	r0, [r1, #0]
 
-  8023748:	e7cc      	b.n	80236e4 <_malloc_trim_r+0x3c>
 
-  802374a:	bf00      	nop
 
- 0802374c <_free_r>:
 
-  802374c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
 
-  8023750:	460e      	mov	r6, r1
 
-  8023752:	4680      	mov	r8, r0
 
-  8023754:	2900      	cmp	r1, #0
 
-  8023756:	d05c      	beq.n	8023812 <_free_r+0xc6>
 
-  8023758:	f001 f844 	bl	80247e4 <__malloc_lock>
 
-  802375c:	f240 159c 	movw	r5, #412	; 0x19c
 
-  8023760:	f856 1c04 	ldr.w	r1, [r6, #-4]
 
-  8023764:	f2c2 0500 	movt	r5, #8192	; 0x2000
 
-  8023768:	f1a6 0408 	sub.w	r4, r6, #8
 
-  802376c:	f021 0301 	bic.w	r3, r1, #1
 
-  8023770:	68af      	ldr	r7, [r5, #8]
 
-  8023772:	18e2      	adds	r2, r4, r3
 
-  8023774:	4297      	cmp	r7, r2
 
-  8023776:	6850      	ldr	r0, [r2, #4]
 
-  8023778:	f020 0003 	bic.w	r0, r0, #3
 
-  802377c:	d067      	beq.n	802384e <_free_r+0x102>
 
-  802377e:	f011 0101 	ands.w	r1, r1, #1
 
-  8023782:	6050      	str	r0, [r2, #4]
 
-  8023784:	d035      	beq.n	80237f2 <_free_r+0xa6>
 
-  8023786:	2100      	movs	r1, #0
 
-  8023788:	1816      	adds	r6, r2, r0
 
-  802378a:	6876      	ldr	r6, [r6, #4]
 
-  802378c:	f016 0f01 	tst.w	r6, #1
 
-  8023790:	d106      	bne.n	80237a0 <_free_r+0x54>
 
-  8023792:	181b      	adds	r3, r3, r0
 
-  8023794:	6890      	ldr	r0, [r2, #8]
 
-  8023796:	2900      	cmp	r1, #0
 
-  8023798:	d04d      	beq.n	8023836 <_free_r+0xea>
 
-  802379a:	68d2      	ldr	r2, [r2, #12]
 
-  802379c:	60c2      	str	r2, [r0, #12]
 
-  802379e:	6090      	str	r0, [r2, #8]
 
-  80237a0:	f043 0201 	orr.w	r2, r3, #1
 
-  80237a4:	50e3      	str	r3, [r4, r3]
 
-  80237a6:	6062      	str	r2, [r4, #4]
 
-  80237a8:	b9f1      	cbnz	r1, 80237e8 <_free_r+0x9c>
 
-  80237aa:	f5b3 7f00 	cmp.w	r3, #512	; 0x200
 
-  80237ae:	d332      	bcc.n	8023816 <_free_r+0xca>
 
-  80237b0:	0a5a      	lsrs	r2, r3, #9
 
-  80237b2:	2a04      	cmp	r2, #4
 
-  80237b4:	d86c      	bhi.n	8023890 <_free_r+0x144>
 
-  80237b6:	0998      	lsrs	r0, r3, #6
 
-  80237b8:	3038      	adds	r0, #56	; 0x38
 
-  80237ba:	0041      	lsls	r1, r0, #1
 
-  80237bc:	eb05 0581 	add.w	r5, r5, r1, lsl #2
 
-  80237c0:	f240 119c 	movw	r1, #412	; 0x19c
 
-  80237c4:	f2c2 0100 	movt	r1, #8192	; 0x2000
 
-  80237c8:	68aa      	ldr	r2, [r5, #8]
 
-  80237ca:	42aa      	cmp	r2, r5
 
-  80237cc:	d06b      	beq.n	80238a6 <_free_r+0x15a>
 
-  80237ce:	6851      	ldr	r1, [r2, #4]
 
-  80237d0:	f021 0103 	bic.w	r1, r1, #3
 
-  80237d4:	428b      	cmp	r3, r1
 
-  80237d6:	d202      	bcs.n	80237de <_free_r+0x92>
 
-  80237d8:	6892      	ldr	r2, [r2, #8]
 
-  80237da:	4295      	cmp	r5, r2
 
-  80237dc:	d1f7      	bne.n	80237ce <_free_r+0x82>
 
-  80237de:	68d3      	ldr	r3, [r2, #12]
 
-  80237e0:	60e3      	str	r3, [r4, #12]
 
-  80237e2:	60a2      	str	r2, [r4, #8]
 
-  80237e4:	60d4      	str	r4, [r2, #12]
 
-  80237e6:	609c      	str	r4, [r3, #8]
 
-  80237e8:	4640      	mov	r0, r8
 
-  80237ea:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
 
-  80237ee:	f000 bffb 	b.w	80247e8 <__malloc_unlock>
 
-  80237f2:	f856 6c08 	ldr.w	r6, [r6, #-8]
 
-  80237f6:	f105 0c08 	add.w	ip, r5, #8
 
-  80237fa:	1ba4      	subs	r4, r4, r6
 
-  80237fc:	199b      	adds	r3, r3, r6
 
-  80237fe:	68a6      	ldr	r6, [r4, #8]
 
-  8023800:	4566      	cmp	r6, ip
 
-  8023802:	d043      	beq.n	802388c <_free_r+0x140>
 
-  8023804:	f8d4 c00c 	ldr.w	ip, [r4, #12]
 
-  8023808:	f8c6 c00c 	str.w	ip, [r6, #12]
 
-  802380c:	f8cc 6008 	str.w	r6, [ip, #8]
 
-  8023810:	e7ba      	b.n	8023788 <_free_r+0x3c>
 
-  8023812:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 
-  8023816:	08db      	lsrs	r3, r3, #3
 
-  8023818:	2101      	movs	r1, #1
 
-  802381a:	6868      	ldr	r0, [r5, #4]
 
-  802381c:	eb05 02c3 	add.w	r2, r5, r3, lsl #3
 
-  8023820:	109b      	asrs	r3, r3, #2
 
-  8023822:	fa01 f303 	lsl.w	r3, r1, r3
 
-  8023826:	60e2      	str	r2, [r4, #12]
 
-  8023828:	6891      	ldr	r1, [r2, #8]
 
-  802382a:	4318      	orrs	r0, r3
 
-  802382c:	6068      	str	r0, [r5, #4]
 
-  802382e:	60a1      	str	r1, [r4, #8]
 
-  8023830:	60cc      	str	r4, [r1, #12]
 
-  8023832:	6094      	str	r4, [r2, #8]
 
-  8023834:	e7d8      	b.n	80237e8 <_free_r+0x9c>
 
-  8023836:	4e29      	ldr	r6, [pc, #164]	; (80238dc <_free_r+0x190>)
 
-  8023838:	42b0      	cmp	r0, r6
 
-  802383a:	d1ae      	bne.n	802379a <_free_r+0x4e>
 
-  802383c:	616c      	str	r4, [r5, #20]
 
-  802383e:	f043 0201 	orr.w	r2, r3, #1
 
-  8023842:	612c      	str	r4, [r5, #16]
 
-  8023844:	60e0      	str	r0, [r4, #12]
 
-  8023846:	60a0      	str	r0, [r4, #8]
 
-  8023848:	6062      	str	r2, [r4, #4]
 
-  802384a:	50e3      	str	r3, [r4, r3]
 
-  802384c:	e7cc      	b.n	80237e8 <_free_r+0x9c>
 
-  802384e:	18c0      	adds	r0, r0, r3
 
-  8023850:	07cb      	lsls	r3, r1, #31
 
-  8023852:	d407      	bmi.n	8023864 <_free_r+0x118>
 
-  8023854:	f856 3c08 	ldr.w	r3, [r6, #-8]
 
-  8023858:	1ae4      	subs	r4, r4, r3
 
-  802385a:	18c0      	adds	r0, r0, r3
 
-  802385c:	68a2      	ldr	r2, [r4, #8]
 
-  802385e:	68e3      	ldr	r3, [r4, #12]
 
-  8023860:	60d3      	str	r3, [r2, #12]
 
-  8023862:	609a      	str	r2, [r3, #8]
 
-  8023864:	f240 52a8 	movw	r2, #1448	; 0x5a8
 
-  8023868:	f040 0301 	orr.w	r3, r0, #1
 
-  802386c:	f2c2 0200 	movt	r2, #8192	; 0x2000
 
-  8023870:	6063      	str	r3, [r4, #4]
 
-  8023872:	60ac      	str	r4, [r5, #8]
 
-  8023874:	6813      	ldr	r3, [r2, #0]
 
-  8023876:	4298      	cmp	r0, r3
 
-  8023878:	d3b6      	bcc.n	80237e8 <_free_r+0x9c>
 
-  802387a:	f640 23d0 	movw	r3, #2768	; 0xad0
 
-  802387e:	4640      	mov	r0, r8
 
-  8023880:	f2c2 0300 	movt	r3, #8192	; 0x2000
 
-  8023884:	6819      	ldr	r1, [r3, #0]
 
-  8023886:	f7ff ff0f 	bl	80236a8 <_malloc_trim_r>
 
-  802388a:	e7ad      	b.n	80237e8 <_free_r+0x9c>
 
-  802388c:	2101      	movs	r1, #1
 
-  802388e:	e77b      	b.n	8023788 <_free_r+0x3c>
 
-  8023890:	f102 005b 	add.w	r0, r2, #91	; 0x5b
 
-  8023894:	0041      	lsls	r1, r0, #1
 
-  8023896:	2a14      	cmp	r2, #20
 
-  8023898:	d990      	bls.n	80237bc <_free_r+0x70>
 
-  802389a:	2a54      	cmp	r2, #84	; 0x54
 
-  802389c:	d80c      	bhi.n	80238b8 <_free_r+0x16c>
 
-  802389e:	0b18      	lsrs	r0, r3, #12
 
-  80238a0:	306e      	adds	r0, #110	; 0x6e
 
-  80238a2:	0041      	lsls	r1, r0, #1
 
-  80238a4:	e78a      	b.n	80237bc <_free_r+0x70>
 
-  80238a6:	2601      	movs	r6, #1
 
-  80238a8:	684d      	ldr	r5, [r1, #4]
 
-  80238aa:	1080      	asrs	r0, r0, #2
 
-  80238ac:	4613      	mov	r3, r2
 
-  80238ae:	fa06 f000 	lsl.w	r0, r6, r0
 
-  80238b2:	4305      	orrs	r5, r0
 
-  80238b4:	604d      	str	r5, [r1, #4]
 
-  80238b6:	e793      	b.n	80237e0 <_free_r+0x94>
 
-  80238b8:	f5b2 7faa 	cmp.w	r2, #340	; 0x154
 
-  80238bc:	d803      	bhi.n	80238c6 <_free_r+0x17a>
 
-  80238be:	0bd8      	lsrs	r0, r3, #15
 
-  80238c0:	3077      	adds	r0, #119	; 0x77
 
-  80238c2:	0041      	lsls	r1, r0, #1
 
-  80238c4:	e77a      	b.n	80237bc <_free_r+0x70>
 
-  80238c6:	f240 5154 	movw	r1, #1364	; 0x554
 
-  80238ca:	428a      	cmp	r2, r1
 
-  80238cc:	d803      	bhi.n	80238d6 <_free_r+0x18a>
 
-  80238ce:	0c98      	lsrs	r0, r3, #18
 
-  80238d0:	307c      	adds	r0, #124	; 0x7c
 
-  80238d2:	0041      	lsls	r1, r0, #1
 
-  80238d4:	e772      	b.n	80237bc <_free_r+0x70>
 
-  80238d6:	21fc      	movs	r1, #252	; 0xfc
 
-  80238d8:	207e      	movs	r0, #126	; 0x7e
 
-  80238da:	e76f      	b.n	80237bc <_free_r+0x70>
 
-  80238dc:	200001a4 	.word	0x200001a4
 
- 080238e0 <rshift>:
 
-  80238e0:	6902      	ldr	r2, [r0, #16]
 
-  80238e2:	114b      	asrs	r3, r1, #5
 
-  80238e4:	e92d 01f0 	stmdb	sp!, {r4, r5, r6, r7, r8}
 
-  80238e8:	4293      	cmp	r3, r2
 
-  80238ea:	f100 0714 	add.w	r7, r0, #20
 
-  80238ee:	da2d      	bge.n	802394c <rshift+0x6c>
 
-  80238f0:	3304      	adds	r3, #4
 
-  80238f2:	eb00 0282 	add.w	r2, r0, r2, lsl #2
 
-  80238f6:	3214      	adds	r2, #20
 
-  80238f8:	f011 011f 	ands.w	r1, r1, #31
 
-  80238fc:	eb00 0383 	add.w	r3, r0, r3, lsl #2
 
-  8023900:	f103 0c04 	add.w	ip, r3, #4
 
-  8023904:	d029      	beq.n	802395a <rshift+0x7a>
 
-  8023906:	685c      	ldr	r4, [r3, #4]
 
-  8023908:	f10c 0304 	add.w	r3, ip, #4
 
-  802390c:	429a      	cmp	r2, r3
 
-  802390e:	f1c1 0820 	rsb	r8, r1, #32
 
-  8023912:	fa24 f401 	lsr.w	r4, r4, r1
 
-  8023916:	d938      	bls.n	802398a <rshift+0xaa>
 
-  8023918:	463d      	mov	r5, r7
 
-  802391a:	681e      	ldr	r6, [r3, #0]
 
-  802391c:	fa06 f608 	lsl.w	r6, r6, r8
 
-  8023920:	4334      	orrs	r4, r6
 
-  8023922:	f845 4b04 	str.w	r4, [r5], #4
 
-  8023926:	f853 4b04 	ldr.w	r4, [r3], #4
 
-  802392a:	429a      	cmp	r2, r3
 
-  802392c:	fa24 f401 	lsr.w	r4, r4, r1
 
-  8023930:	d8f3      	bhi.n	802391a <rshift+0x3a>
 
-  8023932:	ebcc 0302 	rsb	r3, ip, r2
 
-  8023936:	3b05      	subs	r3, #5
 
-  8023938:	f023 0303 	bic.w	r3, r3, #3
 
-  802393c:	18c3      	adds	r3, r0, r3
 
-  802393e:	3318      	adds	r3, #24
 
-  8023940:	601c      	str	r4, [r3, #0]
 
-  8023942:	b1e4      	cbz	r4, 802397e <rshift+0x9e>
 
-  8023944:	3304      	adds	r3, #4
 
-  8023946:	1bdf      	subs	r7, r3, r7
 
-  8023948:	10bf      	asrs	r7, r7, #2
 
-  802394a:	e01a      	b.n	8023982 <rshift+0xa2>
 
-  802394c:	2300      	movs	r3, #0
 
-  802394e:	6103      	str	r3, [r0, #16]
 
-  8023950:	2300      	movs	r3, #0
 
-  8023952:	6143      	str	r3, [r0, #20]
 
-  8023954:	e8bd 01f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8}
 
-  8023958:	4770      	bx	lr
 
-  802395a:	4562      	cmp	r2, ip
 
-  802395c:	bf84      	itt	hi
 
-  802395e:	4663      	movhi	r3, ip
 
-  8023960:	4639      	movhi	r1, r7
 
-  8023962:	d9f3      	bls.n	802394c <rshift+0x6c>
 
-  8023964:	f853 4b04 	ldr.w	r4, [r3], #4
 
-  8023968:	429a      	cmp	r2, r3
 
-  802396a:	f841 4b04 	str.w	r4, [r1], #4
 
-  802396e:	d8f9      	bhi.n	8023964 <rshift+0x84>
 
-  8023970:	ea6f 030c 	mvn.w	r3, ip
 
-  8023974:	189b      	adds	r3, r3, r2
 
-  8023976:	f023 0303 	bic.w	r3, r3, #3
 
-  802397a:	18c3      	adds	r3, r0, r3
 
-  802397c:	3318      	adds	r3, #24
 
-  802397e:	1bdf      	subs	r7, r3, r7
 
-  8023980:	10bf      	asrs	r7, r7, #2
 
-  8023982:	6107      	str	r7, [r0, #16]
 
-  8023984:	2f00      	cmp	r7, #0
 
-  8023986:	d1e5      	bne.n	8023954 <rshift+0x74>
 
-  8023988:	e7e2      	b.n	8023950 <rshift+0x70>
 
-  802398a:	463b      	mov	r3, r7
 
-  802398c:	e7d8      	b.n	8023940 <rshift+0x60>
 
-  802398e:	bf00      	nop
 
- 08023990 <__hexdig_init>:
 
-  8023990:	f645 30bc 	movw	r0, #23484	; 0x5bbc
 
-  8023994:	f643 134c 	movw	r3, #14668	; 0x394c
 
-  8023998:	f6c0 0004 	movt	r0, #2052	; 0x804
 
-  802399c:	2110      	movs	r1, #16
 
-  802399e:	2230      	movs	r2, #48	; 0x30
 
-  80239a0:	f2c2 0301 	movt	r3, #8193	; 0x2001
 
-  80239a4:	5499      	strb	r1, [r3, r2]
 
-  80239a6:	3101      	adds	r1, #1
 
-  80239a8:	f810 2f01 	ldrb.w	r2, [r0, #1]!
 
-  80239ac:	b2c9      	uxtb	r1, r1
 
-  80239ae:	2a00      	cmp	r2, #0
 
-  80239b0:	d1f8      	bne.n	80239a4 <__hexdig_init+0x14>
 
-  80239b2:	f645 30b4 	movw	r0, #23476	; 0x5bb4
 
-  80239b6:	211a      	movs	r1, #26
 
-  80239b8:	f6c0 0004 	movt	r0, #2052	; 0x804
 
-  80239bc:	2261      	movs	r2, #97	; 0x61
 
-  80239be:	5499      	strb	r1, [r3, r2]
 
-  80239c0:	3101      	adds	r1, #1
 
-  80239c2:	f810 2f01 	ldrb.w	r2, [r0, #1]!
 
-  80239c6:	b2c9      	uxtb	r1, r1
 
-  80239c8:	2a00      	cmp	r2, #0
 
-  80239ca:	d1f8      	bne.n	80239be <__hexdig_init+0x2e>
 
-  80239cc:	f645 30ac 	movw	r0, #23468	; 0x5bac
 
-  80239d0:	211a      	movs	r1, #26
 
-  80239d2:	f6c0 0004 	movt	r0, #2052	; 0x804
 
-  80239d6:	2241      	movs	r2, #65	; 0x41
 
-  80239d8:	5499      	strb	r1, [r3, r2]
 
-  80239da:	3101      	adds	r1, #1
 
-  80239dc:	f810 2f01 	ldrb.w	r2, [r0, #1]!
 
-  80239e0:	b2c9      	uxtb	r1, r1
 
-  80239e2:	2a00      	cmp	r2, #0
 
-  80239e4:	d1f8      	bne.n	80239d8 <__hexdig_init+0x48>
 
-  80239e6:	4770      	bx	lr
 
- 080239e8 <__gethex>:
 
-  80239e8:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-  80239ec:	b08b      	sub	sp, #44	; 0x2c
 
-  80239ee:	4688      	mov	r8, r1
 
-  80239f0:	f643 164c 	movw	r6, #14668	; 0x394c
 
-  80239f4:	9206      	str	r2, [sp, #24]
 
-  80239f6:	f2c2 0601 	movt	r6, #8193	; 0x2001
 
-  80239fa:	9309      	str	r3, [sp, #36]	; 0x24
 
-  80239fc:	9007      	str	r0, [sp, #28]
 
-  80239fe:	f000 fbb9 	bl	8024174 <_localeconv_r>
 
-  8023a02:	6800      	ldr	r0, [r0, #0]
 
-  8023a04:	9002      	str	r0, [sp, #8]
 
-  8023a06:	f7fe fa53 	bl	8021eb0 <strlen>
 
-  8023a0a:	9b02      	ldr	r3, [sp, #8]
 
-  8023a0c:	181a      	adds	r2, r3, r0
 
-  8023a0e:	f896 3030 	ldrb.w	r3, [r6, #48]	; 0x30
 
-  8023a12:	9003      	str	r0, [sp, #12]
 
-  8023a14:	f812 ac01 	ldrb.w	sl, [r2, #-1]
 
-  8023a18:	2b00      	cmp	r3, #0
 
-  8023a1a:	f000 810e 	beq.w	8023c3a <__gethex+0x252>
 
-  8023a1e:	f8d8 3000 	ldr.w	r3, [r8]
 
-  8023a22:	1c9d      	adds	r5, r3, #2
 
-  8023a24:	789a      	ldrb	r2, [r3, #2]
 
-  8023a26:	2a30      	cmp	r2, #48	; 0x30
 
-  8023a28:	f040 8200 	bne.w	8023e2c <__gethex+0x444>
 
-  8023a2c:	3303      	adds	r3, #3
 
-  8023a2e:	2700      	movs	r7, #0
 
-  8023a30:	461d      	mov	r5, r3
 
-  8023a32:	f813 2b01 	ldrb.w	r2, [r3], #1
 
-  8023a36:	3701      	adds	r7, #1
 
-  8023a38:	2a30      	cmp	r2, #48	; 0x30
 
-  8023a3a:	d0f9      	beq.n	8023a30 <__gethex+0x48>
 
-  8023a3c:	f816 b002 	ldrb.w	fp, [r6, r2]
 
-  8023a40:	f643 194c 	movw	r9, #14668	; 0x394c
 
-  8023a44:	f2c2 0901 	movt	r9, #8193	; 0x2001
 
-  8023a48:	f1bb 0f00 	cmp.w	fp, #0
 
-  8023a4c:	f000 80f8 	beq.w	8023c40 <__gethex+0x258>
 
-  8023a50:	782b      	ldrb	r3, [r5, #0]
 
-  8023a52:	f04f 0b00 	mov.w	fp, #0
 
-  8023a56:	f819 4003 	ldrb.w	r4, [r9, r3]
 
-  8023a5a:	2c00      	cmp	r4, #0
 
-  8023a5c:	f000 8200 	beq.w	8023e60 <__gethex+0x478>
 
-  8023a60:	1c6a      	adds	r2, r5, #1
 
-  8023a62:	4614      	mov	r4, r2
 
-  8023a64:	3201      	adds	r2, #1
 
-  8023a66:	7823      	ldrb	r3, [r4, #0]
 
-  8023a68:	5cf3      	ldrb	r3, [r6, r3]
 
-  8023a6a:	2b00      	cmp	r3, #0
 
-  8023a6c:	d1f9      	bne.n	8023a62 <__gethex+0x7a>
 
-  8023a6e:	4699      	mov	r9, r3
 
-  8023a70:	4620      	mov	r0, r4
 
-  8023a72:	9902      	ldr	r1, [sp, #8]
 
-  8023a74:	9a03      	ldr	r2, [sp, #12]
 
-  8023a76:	f7fe fa7d 	bl	8021f74 <strncmp>
 
-  8023a7a:	b1e8      	cbz	r0, 8023ab8 <__gethex+0xd0>
 
-  8023a7c:	7823      	ldrb	r3, [r4, #0]
 
-  8023a7e:	f1bb 0f00 	cmp.w	fp, #0
 
-  8023a82:	f000 81c1 	beq.w	8023e08 <__gethex+0x420>
 
-  8023a86:	ebc4 0b0b 	rsb	fp, r4, fp
 
-  8023a8a:	ea4f 028b 	mov.w	r2, fp, lsl #2
 
-  8023a8e:	9205      	str	r2, [sp, #20]
 
-  8023a90:	2b50      	cmp	r3, #80	; 0x50
 
-  8023a92:	f000 809b 	beq.w	8023bcc <__gethex+0x1e4>
 
-  8023a96:	2b70      	cmp	r3, #112	; 0x70
 
-  8023a98:	f000 8098 	beq.w	8023bcc <__gethex+0x1e4>
 
-  8023a9c:	4622      	mov	r2, r4
 
-  8023a9e:	f8c8 2000 	str.w	r2, [r8]
 
-  8023aa2:	f1b9 0f00 	cmp.w	r9, #0
 
-  8023aa6:	d00d      	beq.n	8023ac4 <__gethex+0xdc>
 
-  8023aa8:	2f00      	cmp	r7, #0
 
-  8023aaa:	bf0c      	ite	eq
 
-  8023aac:	2706      	moveq	r7, #6
 
-  8023aae:	2700      	movne	r7, #0
 
-  8023ab0:	4638      	mov	r0, r7
 
-  8023ab2:	b00b      	add	sp, #44	; 0x2c
 
-  8023ab4:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
-  8023ab8:	f1bb 0f00 	cmp.w	fp, #0
 
-  8023abc:	f000 81be 	beq.w	8023e3c <__gethex+0x454>
 
-  8023ac0:	7823      	ldrb	r3, [r4, #0]
 
-  8023ac2:	e7e0      	b.n	8023a86 <__gethex+0x9e>
 
-  8023ac4:	1b63      	subs	r3, r4, r5
 
-  8023ac6:	4649      	mov	r1, r9
 
-  8023ac8:	3b01      	subs	r3, #1
 
-  8023aca:	2b07      	cmp	r3, #7
 
-  8023acc:	dd03      	ble.n	8023ad6 <__gethex+0xee>
 
-  8023ace:	105b      	asrs	r3, r3, #1
 
-  8023ad0:	3101      	adds	r1, #1
 
-  8023ad2:	2b07      	cmp	r3, #7
 
-  8023ad4:	dcfb      	bgt.n	8023ace <__gethex+0xe6>
 
-  8023ad6:	9807      	ldr	r0, [sp, #28]
 
-  8023ad8:	f000 fe88 	bl	80247ec <_Balloc>
 
-  8023adc:	42a5      	cmp	r5, r4
 
-  8023ade:	f100 0314 	add.w	r3, r0, #20
 
-  8023ae2:	9004      	str	r0, [sp, #16]
 
-  8023ae4:	9308      	str	r3, [sp, #32]
 
-  8023ae6:	f080 81db 	bcs.w	8023ea0 <__gethex+0x4b8>
 
-  8023aea:	469b      	mov	fp, r3
 
-  8023aec:	9b03      	ldr	r3, [sp, #12]
 
-  8023aee:	f04f 0800 	mov.w	r8, #0
 
-  8023af2:	4647      	mov	r7, r8
 
-  8023af4:	f1c3 0c01 	rsb	ip, r3, #1
 
-  8023af8:	e00f      	b.n	8023b1a <__gethex+0x132>
 
-  8023afa:	2f20      	cmp	r7, #32
 
-  8023afc:	d05f      	beq.n	8023bbe <__gethex+0x1d6>
 
-  8023afe:	463a      	mov	r2, r7
 
-  8023b00:	3704      	adds	r7, #4
 
-  8023b02:	f814 3c01 	ldrb.w	r3, [r4, #-1]
 
-  8023b06:	464c      	mov	r4, r9
 
-  8023b08:	42a5      	cmp	r5, r4
 
-  8023b0a:	5cf3      	ldrb	r3, [r6, r3]
 
-  8023b0c:	f003 030f 	and.w	r3, r3, #15
 
-  8023b10:	fa03 f302 	lsl.w	r3, r3, r2
 
-  8023b14:	ea48 0803 	orr.w	r8, r8, r3
 
-  8023b18:	d219      	bcs.n	8023b4e <__gethex+0x166>
 
-  8023b1a:	f814 3c01 	ldrb.w	r3, [r4, #-1]
 
-  8023b1e:	f104 39ff 	add.w	r9, r4, #4294967295
 
-  8023b22:	4553      	cmp	r3, sl
 
-  8023b24:	d1e9      	bne.n	8023afa <__gethex+0x112>
 
-  8023b26:	eb09 030c 	add.w	r3, r9, ip
 
-  8023b2a:	429d      	cmp	r5, r3
 
-  8023b2c:	d8e5      	bhi.n	8023afa <__gethex+0x112>
 
-  8023b2e:	4618      	mov	r0, r3
 
-  8023b30:	9902      	ldr	r1, [sp, #8]
 
-  8023b32:	9a03      	ldr	r2, [sp, #12]
 
-  8023b34:	9301      	str	r3, [sp, #4]
 
-  8023b36:	f8cd c000 	str.w	ip, [sp]
 
-  8023b3a:	f7fe fa1b 	bl	8021f74 <strncmp>
 
-  8023b3e:	9b01      	ldr	r3, [sp, #4]
 
-  8023b40:	f8dd c000 	ldr.w	ip, [sp]
 
-  8023b44:	2800      	cmp	r0, #0
 
-  8023b46:	d1d8      	bne.n	8023afa <__gethex+0x112>
 
-  8023b48:	461c      	mov	r4, r3
 
-  8023b4a:	42a5      	cmp	r5, r4
 
-  8023b4c:	d3e5      	bcc.n	8023b1a <__gethex+0x132>
 
-  8023b4e:	9b08      	ldr	r3, [sp, #32]
 
-  8023b50:	4640      	mov	r0, r8
 
-  8023b52:	f84b 8b04 	str.w	r8, [fp], #4
 
-  8023b56:	9904      	ldr	r1, [sp, #16]
 
-  8023b58:	ebc3 0b0b 	rsb	fp, r3, fp
 
-  8023b5c:	ea4f 03ab 	mov.w	r3, fp, asr #2
 
-  8023b60:	610b      	str	r3, [r1, #16]
 
-  8023b62:	015d      	lsls	r5, r3, #5
 
-  8023b64:	f000 ff24 	bl	80249b0 <__hi0bits>
 
-  8023b68:	9a06      	ldr	r2, [sp, #24]
 
-  8023b6a:	6814      	ldr	r4, [r2, #0]
 
-  8023b6c:	1a28      	subs	r0, r5, r0
 
-  8023b6e:	42a0      	cmp	r0, r4
 
-  8023b70:	f300 8125 	bgt.w	8023dbe <__gethex+0x3d6>
 
-  8023b74:	f2c0 814b 	blt.w	8023e0e <__gethex+0x426>
 
-  8023b78:	2500      	movs	r5, #0
 
-  8023b7a:	9806      	ldr	r0, [sp, #24]
 
-  8023b7c:	9905      	ldr	r1, [sp, #20]
 
-  8023b7e:	6883      	ldr	r3, [r0, #8]
 
-  8023b80:	4299      	cmp	r1, r3
 
-  8023b82:	f300 80f6 	bgt.w	8023d72 <__gethex+0x38a>
 
-  8023b86:	9806      	ldr	r0, [sp, #24]
 
-  8023b88:	9905      	ldr	r1, [sp, #20]
 
-  8023b8a:	6843      	ldr	r3, [r0, #4]
 
-  8023b8c:	4299      	cmp	r1, r3
 
-  8023b8e:	f280 8100 	bge.w	8023d92 <__gethex+0x3aa>
 
-  8023b92:	1a5e      	subs	r6, r3, r1
 
-  8023b94:	42b4      	cmp	r4, r6
 
-  8023b96:	dc76      	bgt.n	8023c86 <__gethex+0x29e>
 
-  8023b98:	68c2      	ldr	r2, [r0, #12]
 
-  8023b9a:	2a02      	cmp	r2, #2
 
-  8023b9c:	f000 816f 	beq.w	8023e7e <__gethex+0x496>
 
-  8023ba0:	2a03      	cmp	r2, #3
 
-  8023ba2:	f000 8198 	beq.w	8023ed6 <__gethex+0x4ee>
 
-  8023ba6:	2a01      	cmp	r2, #1
 
-  8023ba8:	f000 8186 	beq.w	8023eb8 <__gethex+0x4d0>
 
-  8023bac:	9807      	ldr	r0, [sp, #28]
 
-  8023bae:	2750      	movs	r7, #80	; 0x50
 
-  8023bb0:	9904      	ldr	r1, [sp, #16]
 
-  8023bb2:	f000 fe51 	bl	8024858 <_Bfree>
 
-  8023bb6:	9814      	ldr	r0, [sp, #80]	; 0x50
 
-  8023bb8:	2300      	movs	r3, #0
 
-  8023bba:	6003      	str	r3, [r0, #0]
 
-  8023bbc:	e778      	b.n	8023ab0 <__gethex+0xc8>
 
-  8023bbe:	f84b 8b04 	str.w	r8, [fp], #4
 
-  8023bc2:	f04f 0800 	mov.w	r8, #0
 
-  8023bc6:	2704      	movs	r7, #4
 
-  8023bc8:	4642      	mov	r2, r8
 
-  8023bca:	e79a      	b.n	8023b02 <__gethex+0x11a>
 
-  8023bcc:	7863      	ldrb	r3, [r4, #1]
 
-  8023bce:	2b2b      	cmp	r3, #43	; 0x2b
 
-  8023bd0:	f000 80f2 	beq.w	8023db8 <__gethex+0x3d0>
 
-  8023bd4:	2b2d      	cmp	r3, #45	; 0x2d
 
-  8023bd6:	f000 80ea 	beq.w	8023dae <__gethex+0x3c6>
 
-  8023bda:	1c60      	adds	r0, r4, #1
 
-  8023bdc:	f04f 0b00 	mov.w	fp, #0
 
-  8023be0:	5cf1      	ldrb	r1, [r6, r3]
 
-  8023be2:	f643 134c 	movw	r3, #14668	; 0x394c
 
-  8023be6:	f2c2 0301 	movt	r3, #8193	; 0x2001
 
-  8023bea:	2900      	cmp	r1, #0
 
-  8023bec:	f43f af56 	beq.w	8023a9c <__gethex+0xb4>
 
-  8023bf0:	2919      	cmp	r1, #25
 
-  8023bf2:	f73f af53 	bgt.w	8023a9c <__gethex+0xb4>
 
-  8023bf6:	f890 c001 	ldrb.w	ip, [r0, #1]
 
-  8023bfa:	3910      	subs	r1, #16
 
-  8023bfc:	1c42      	adds	r2, r0, #1
 
-  8023bfe:	f813 300c 	ldrb.w	r3, [r3, ip]
 
-  8023c02:	b193      	cbz	r3, 8023c2a <__gethex+0x242>
 
-  8023c04:	2b19      	cmp	r3, #25
 
-  8023c06:	dc10      	bgt.n	8023c2a <__gethex+0x242>
 
-  8023c08:	3002      	adds	r0, #2
 
-  8023c0a:	e001      	b.n	8023c10 <__gethex+0x228>
 
-  8023c0c:	2b19      	cmp	r3, #25
 
-  8023c0e:	dc0c      	bgt.n	8023c2a <__gethex+0x242>
 
-  8023c10:	4602      	mov	r2, r0
 
-  8023c12:	eb01 0181 	add.w	r1, r1, r1, lsl #2
 
-  8023c16:	3001      	adds	r0, #1
 
-  8023c18:	f892 c000 	ldrb.w	ip, [r2]
 
-  8023c1c:	eb03 0141 	add.w	r1, r3, r1, lsl #1
 
-  8023c20:	3910      	subs	r1, #16
 
-  8023c22:	f816 300c 	ldrb.w	r3, [r6, ip]
 
-  8023c26:	2b00      	cmp	r3, #0
 
-  8023c28:	d1f0      	bne.n	8023c0c <__gethex+0x224>
 
-  8023c2a:	f1bb 0f00 	cmp.w	fp, #0
 
-  8023c2e:	d000      	beq.n	8023c32 <__gethex+0x24a>
 
-  8023c30:	4249      	negs	r1, r1
 
-  8023c32:	9b05      	ldr	r3, [sp, #20]
 
-  8023c34:	185b      	adds	r3, r3, r1
 
-  8023c36:	9305      	str	r3, [sp, #20]
 
-  8023c38:	e731      	b.n	8023a9e <__gethex+0xb6>
 
-  8023c3a:	f7ff fea9 	bl	8023990 <__hexdig_init>
 
-  8023c3e:	e6ee      	b.n	8023a1e <__gethex+0x36>
 
-  8023c40:	4628      	mov	r0, r5
 
-  8023c42:	9902      	ldr	r1, [sp, #8]
 
-  8023c44:	9a03      	ldr	r2, [sp, #12]
 
-  8023c46:	f7fe f995 	bl	8021f74 <strncmp>
 
-  8023c4a:	2800      	cmp	r0, #0
 
-  8023c4c:	f040 809a 	bne.w	8023d84 <__gethex+0x39c>
 
-  8023c50:	9803      	ldr	r0, [sp, #12]
 
-  8023c52:	182c      	adds	r4, r5, r0
 
-  8023c54:	5c2b      	ldrb	r3, [r5, r0]
 
-  8023c56:	f819 2003 	ldrb.w	r2, [r9, r3]
 
-  8023c5a:	2a00      	cmp	r2, #0
 
-  8023c5c:	f000 80e8 	beq.w	8023e30 <__gethex+0x448>
 
-  8023c60:	2b30      	cmp	r3, #48	; 0x30
 
-  8023c62:	f040 8108 	bne.w	8023e76 <__gethex+0x48e>
 
-  8023c66:	1c63      	adds	r3, r4, #1
 
-  8023c68:	461d      	mov	r5, r3
 
-  8023c6a:	f813 2b01 	ldrb.w	r2, [r3], #1
 
-  8023c6e:	2a30      	cmp	r2, #48	; 0x30
 
-  8023c70:	d0fa      	beq.n	8023c68 <__gethex+0x280>
 
-  8023c72:	5cb3      	ldrb	r3, [r6, r2]
 
-  8023c74:	2b00      	cmp	r3, #0
 
-  8023c76:	f040 80ff 	bne.w	8023e78 <__gethex+0x490>
 
-  8023c7a:	f04f 0901 	mov.w	r9, #1
 
-  8023c7e:	46a3      	mov	fp, r4
 
-  8023c80:	464f      	mov	r7, r9
 
-  8023c82:	462c      	mov	r4, r5
 
-  8023c84:	e6f4      	b.n	8023a70 <__gethex+0x88>
 
-  8023c86:	1e77      	subs	r7, r6, #1
 
-  8023c88:	2d00      	cmp	r5, #0
 
-  8023c8a:	f040 80e7 	bne.w	8023e5c <__gethex+0x474>
 
-  8023c8e:	2f00      	cmp	r7, #0
 
-  8023c90:	dd04      	ble.n	8023c9c <__gethex+0x2b4>
 
-  8023c92:	9804      	ldr	r0, [sp, #16]
 
-  8023c94:	4639      	mov	r1, r7
 
-  8023c96:	f001 fa05 	bl	80250a4 <__any_on>
 
-  8023c9a:	4605      	mov	r5, r0
 
-  8023c9c:	9908      	ldr	r1, [sp, #32]
 
-  8023c9e:	117b      	asrs	r3, r7, #5
 
-  8023ca0:	2201      	movs	r2, #1
 
-  8023ca2:	f007 071f 	and.w	r7, r7, #31
 
-  8023ca6:	9804      	ldr	r0, [sp, #16]
 
-  8023ca8:	1ba4      	subs	r4, r4, r6
 
-  8023caa:	f851 3023 	ldr.w	r3, [r1, r3, lsl #2]
 
-  8023cae:	fa02 f207 	lsl.w	r2, r2, r7
 
-  8023cb2:	4631      	mov	r1, r6
 
-  8023cb4:	421a      	tst	r2, r3
 
-  8023cb6:	bf18      	it	ne
 
-  8023cb8:	f045 0502 	orrne.w	r5, r5, #2
 
-  8023cbc:	f7ff fe10 	bl	80238e0 <rshift>
 
-  8023cc0:	9b06      	ldr	r3, [sp, #24]
 
-  8023cc2:	2702      	movs	r7, #2
 
-  8023cc4:	685b      	ldr	r3, [r3, #4]
 
-  8023cc6:	9305      	str	r3, [sp, #20]
 
-  8023cc8:	2d00      	cmp	r5, #0
 
-  8023cca:	d069      	beq.n	8023da0 <__gethex+0x3b8>
 
-  8023ccc:	9806      	ldr	r0, [sp, #24]
 
-  8023cce:	68c3      	ldr	r3, [r0, #12]
 
-  8023cd0:	2b02      	cmp	r3, #2
 
-  8023cd2:	f000 80ea 	beq.w	8023eaa <__gethex+0x4c2>
 
-  8023cd6:	2b03      	cmp	r3, #3
 
-  8023cd8:	d05d      	beq.n	8023d96 <__gethex+0x3ae>
 
-  8023cda:	2b01      	cmp	r3, #1
 
-  8023cdc:	d15e      	bne.n	8023d9c <__gethex+0x3b4>
 
-  8023cde:	07aa      	lsls	r2, r5, #30
 
-  8023ce0:	d55c      	bpl.n	8023d9c <__gethex+0x3b4>
 
-  8023ce2:	9908      	ldr	r1, [sp, #32]
 
-  8023ce4:	680b      	ldr	r3, [r1, #0]
 
-  8023ce6:	432b      	orrs	r3, r5
 
-  8023ce8:	07db      	lsls	r3, r3, #31
 
-  8023cea:	d557      	bpl.n	8023d9c <__gethex+0x3b4>
 
-  8023cec:	9b04      	ldr	r3, [sp, #16]
 
-  8023cee:	2600      	movs	r6, #0
 
-  8023cf0:	9904      	ldr	r1, [sp, #16]
 
-  8023cf2:	691d      	ldr	r5, [r3, #16]
 
-  8023cf4:	9b08      	ldr	r3, [sp, #32]
 
-  8023cf6:	eb01 0085 	add.w	r0, r1, r5, lsl #2
 
-  8023cfa:	3014      	adds	r0, #20
 
-  8023cfc:	4619      	mov	r1, r3
 
-  8023cfe:	f853 2b04 	ldr.w	r2, [r3], #4
 
-  8023d02:	f1b2 3fff 	cmp.w	r2, #4294967295
 
-  8023d06:	f040 80eb 	bne.w	8023ee0 <__gethex+0x4f8>
 
-  8023d0a:	4298      	cmp	r0, r3
 
-  8023d0c:	f843 6c04 	str.w	r6, [r3, #-4]
 
-  8023d10:	d8f4      	bhi.n	8023cfc <__gethex+0x314>
 
-  8023d12:	9a04      	ldr	r2, [sp, #16]
 
-  8023d14:	6893      	ldr	r3, [r2, #8]
 
-  8023d16:	429d      	cmp	r5, r3
 
-  8023d18:	bfb8      	it	lt
 
-  8023d1a:	462b      	movlt	r3, r5
 
-  8023d1c:	f280 80f9 	bge.w	8023f12 <__gethex+0x52a>
 
-  8023d20:	9904      	ldr	r1, [sp, #16]
 
-  8023d22:	eb01 0283 	add.w	r2, r1, r3, lsl #2
 
-  8023d26:	3301      	adds	r3, #1
 
-  8023d28:	610b      	str	r3, [r1, #16]
 
-  8023d2a:	2301      	movs	r3, #1
 
-  8023d2c:	6153      	str	r3, [r2, #20]
 
-  8023d2e:	2f02      	cmp	r7, #2
 
-  8023d30:	f000 80d9 	beq.w	8023ee6 <__gethex+0x4fe>
 
-  8023d34:	9904      	ldr	r1, [sp, #16]
 
-  8023d36:	690b      	ldr	r3, [r1, #16]
 
-  8023d38:	429d      	cmp	r5, r3
 
-  8023d3a:	db0e      	blt.n	8023d5a <__gethex+0x372>
 
-  8023d3c:	f014 041f 	ands.w	r4, r4, #31
 
-  8023d40:	f000 80ac 	beq.w	8023e9c <__gethex+0x4b4>
 
-  8023d44:	9b04      	ldr	r3, [sp, #16]
 
-  8023d46:	eb03 0585 	add.w	r5, r3, r5, lsl #2
 
-  8023d4a:	6928      	ldr	r0, [r5, #16]
 
-  8023d4c:	f000 fe30 	bl	80249b0 <__hi0bits>
 
-  8023d50:	f1c4 0320 	rsb	r3, r4, #32
 
-  8023d54:	4298      	cmp	r0, r3
 
-  8023d56:	f280 80a1 	bge.w	8023e9c <__gethex+0x4b4>
 
-  8023d5a:	9804      	ldr	r0, [sp, #16]
 
-  8023d5c:	2101      	movs	r1, #1
 
-  8023d5e:	f7ff fdbf 	bl	80238e0 <rshift>
 
-  8023d62:	9a06      	ldr	r2, [sp, #24]
 
-  8023d64:	9805      	ldr	r0, [sp, #20]
 
-  8023d66:	6893      	ldr	r3, [r2, #8]
 
-  8023d68:	3001      	adds	r0, #1
 
-  8023d6a:	9005      	str	r0, [sp, #20]
 
-  8023d6c:	4298      	cmp	r0, r3
 
-  8023d6e:	f340 8095 	ble.w	8023e9c <__gethex+0x4b4>
 
-  8023d72:	9807      	ldr	r0, [sp, #28]
 
-  8023d74:	27a3      	movs	r7, #163	; 0xa3
 
-  8023d76:	9904      	ldr	r1, [sp, #16]
 
-  8023d78:	f000 fd6e 	bl	8024858 <_Bfree>
 
-  8023d7c:	9a14      	ldr	r2, [sp, #80]	; 0x50
 
-  8023d7e:	2300      	movs	r3, #0
 
-  8023d80:	6013      	str	r3, [r2, #0]
 
-  8023d82:	e695      	b.n	8023ab0 <__gethex+0xc8>
 
-  8023d84:	782b      	ldrb	r3, [r5, #0]
 
-  8023d86:	462c      	mov	r4, r5
 
-  8023d88:	f8cd b014 	str.w	fp, [sp, #20]
 
-  8023d8c:	f04f 0901 	mov.w	r9, #1
 
-  8023d90:	e67e      	b.n	8023a90 <__gethex+0xa8>
 
-  8023d92:	2701      	movs	r7, #1
 
-  8023d94:	e798      	b.n	8023cc8 <__gethex+0x2e0>
 
-  8023d96:	9b15      	ldr	r3, [sp, #84]	; 0x54
 
-  8023d98:	2b00      	cmp	r3, #0
 
-  8023d9a:	d1a7      	bne.n	8023cec <__gethex+0x304>
 
-  8023d9c:	f047 0710 	orr.w	r7, r7, #16
 
-  8023da0:	9b04      	ldr	r3, [sp, #16]
 
-  8023da2:	9814      	ldr	r0, [sp, #80]	; 0x50
 
-  8023da4:	6003      	str	r3, [r0, #0]
 
-  8023da6:	9b05      	ldr	r3, [sp, #20]
 
-  8023da8:	9809      	ldr	r0, [sp, #36]	; 0x24
 
-  8023daa:	6003      	str	r3, [r0, #0]
 
-  8023dac:	e680      	b.n	8023ab0 <__gethex+0xc8>
 
-  8023dae:	f04f 0b01 	mov.w	fp, #1
 
-  8023db2:	78a3      	ldrb	r3, [r4, #2]
 
-  8023db4:	1ca0      	adds	r0, r4, #2
 
-  8023db6:	e713      	b.n	8023be0 <__gethex+0x1f8>
 
-  8023db8:	f04f 0b00 	mov.w	fp, #0
 
-  8023dbc:	e7f9      	b.n	8023db2 <__gethex+0x3ca>
 
-  8023dbe:	1b06      	subs	r6, r0, r4
 
-  8023dc0:	9804      	ldr	r0, [sp, #16]
 
-  8023dc2:	4631      	mov	r1, r6
 
-  8023dc4:	f001 f96e 	bl	80250a4 <__any_on>
 
-  8023dc8:	4605      	mov	r5, r0
 
-  8023dca:	b1a8      	cbz	r0, 8023df8 <__gethex+0x410>
 
-  8023dcc:	1e73      	subs	r3, r6, #1
 
-  8023dce:	9804      	ldr	r0, [sp, #16]
 
-  8023dd0:	2501      	movs	r5, #1
 
-  8023dd2:	f003 011f 	and.w	r1, r3, #31
 
-  8023dd6:	115a      	asrs	r2, r3, #5
 
-  8023dd8:	fa05 f101 	lsl.w	r1, r5, r1
 
-  8023ddc:	eb00 0282 	add.w	r2, r0, r2, lsl #2
 
-  8023de0:	6952      	ldr	r2, [r2, #20]
 
-  8023de2:	4211      	tst	r1, r2
 
-  8023de4:	d008      	beq.n	8023df8 <__gethex+0x410>
 
-  8023de6:	42ab      	cmp	r3, r5
 
-  8023de8:	dd05      	ble.n	8023df6 <__gethex+0x40e>
 
-  8023dea:	9804      	ldr	r0, [sp, #16]
 
-  8023dec:	1eb1      	subs	r1, r6, #2
 
-  8023dee:	f001 f959 	bl	80250a4 <__any_on>
 
-  8023df2:	2503      	movs	r5, #3
 
-  8023df4:	b900      	cbnz	r0, 8023df8 <__gethex+0x410>
 
-  8023df6:	2502      	movs	r5, #2
 
-  8023df8:	9804      	ldr	r0, [sp, #16]
 
-  8023dfa:	4631      	mov	r1, r6
 
-  8023dfc:	f7ff fd70 	bl	80238e0 <rshift>
 
-  8023e00:	9b05      	ldr	r3, [sp, #20]
 
-  8023e02:	199b      	adds	r3, r3, r6
 
-  8023e04:	9305      	str	r3, [sp, #20]
 
-  8023e06:	e6b8      	b.n	8023b7a <__gethex+0x192>
 
-  8023e08:	f8cd b014 	str.w	fp, [sp, #20]
 
-  8023e0c:	e640      	b.n	8023a90 <__gethex+0xa8>
 
-  8023e0e:	1a25      	subs	r5, r4, r0
 
-  8023e10:	9904      	ldr	r1, [sp, #16]
 
-  8023e12:	462a      	mov	r2, r5
 
-  8023e14:	9807      	ldr	r0, [sp, #28]
 
-  8023e16:	f000 ff11 	bl	8024c3c <__lshift>
 
-  8023e1a:	9b05      	ldr	r3, [sp, #20]
 
-  8023e1c:	1b5b      	subs	r3, r3, r5
 
-  8023e1e:	2500      	movs	r5, #0
 
-  8023e20:	9305      	str	r3, [sp, #20]
 
-  8023e22:	9004      	str	r0, [sp, #16]
 
-  8023e24:	f100 0314 	add.w	r3, r0, #20
 
-  8023e28:	9308      	str	r3, [sp, #32]
 
-  8023e2a:	e6a6      	b.n	8023b7a <__gethex+0x192>
 
-  8023e2c:	2700      	movs	r7, #0
 
-  8023e2e:	e605      	b.n	8023a3c <__gethex+0x54>
 
-  8023e30:	9205      	str	r2, [sp, #20]
 
-  8023e32:	f04f 0901 	mov.w	r9, #1
 
-  8023e36:	e62b      	b.n	8023a90 <__gethex+0xa8>
 
-  8023e38:	462c      	mov	r4, r5
 
-  8023e3a:	4681      	mov	r9, r0
 
-  8023e3c:	9903      	ldr	r1, [sp, #12]
 
-  8023e3e:	eb04 0b01 	add.w	fp, r4, r1
 
-  8023e42:	5c63      	ldrb	r3, [r4, r1]
 
-  8023e44:	5cf2      	ldrb	r2, [r6, r3]
 
-  8023e46:	2a00      	cmp	r2, #0
 
-  8023e48:	d07a      	beq.n	8023f40 <__gethex+0x558>
 
-  8023e4a:	f10b 0201 	add.w	r2, fp, #1
 
-  8023e4e:	4614      	mov	r4, r2
 
-  8023e50:	f812 3b01 	ldrb.w	r3, [r2], #1
 
-  8023e54:	5cf1      	ldrb	r1, [r6, r3]
 
-  8023e56:	2900      	cmp	r1, #0
 
-  8023e58:	d1f9      	bne.n	8023e4e <__gethex+0x466>
 
-  8023e5a:	e614      	b.n	8023a86 <__gethex+0x9e>
 
-  8023e5c:	2501      	movs	r5, #1
 
-  8023e5e:	e71d      	b.n	8023c9c <__gethex+0x2b4>
 
-  8023e60:	4628      	mov	r0, r5
 
-  8023e62:	9902      	ldr	r1, [sp, #8]
 
-  8023e64:	9a03      	ldr	r2, [sp, #12]
 
-  8023e66:	f7fe f885 	bl	8021f74 <strncmp>
 
-  8023e6a:	2800      	cmp	r0, #0
 
-  8023e6c:	d0e4      	beq.n	8023e38 <__gethex+0x450>
 
-  8023e6e:	46a1      	mov	r9, r4
 
-  8023e70:	462c      	mov	r4, r5
 
-  8023e72:	46cb      	mov	fp, r9
 
-  8023e74:	e602      	b.n	8023a7c <__gethex+0x94>
 
-  8023e76:	4625      	mov	r5, r4
 
-  8023e78:	46a3      	mov	fp, r4
 
-  8023e7a:	2701      	movs	r7, #1
 
-  8023e7c:	e5f0      	b.n	8023a60 <__gethex+0x78>
 
-  8023e7e:	9815      	ldr	r0, [sp, #84]	; 0x54
 
-  8023e80:	2800      	cmp	r0, #0
 
-  8023e82:	f47f ae93 	bne.w	8023bac <__gethex+0x1c4>
 
-  8023e86:	9a09      	ldr	r2, [sp, #36]	; 0x24
 
-  8023e88:	2762      	movs	r7, #98	; 0x62
 
-  8023e8a:	9804      	ldr	r0, [sp, #16]
 
-  8023e8c:	9908      	ldr	r1, [sp, #32]
 
-  8023e8e:	6013      	str	r3, [r2, #0]
 
-  8023e90:	2301      	movs	r3, #1
 
-  8023e92:	9a14      	ldr	r2, [sp, #80]	; 0x50
 
-  8023e94:	6103      	str	r3, [r0, #16]
 
-  8023e96:	600b      	str	r3, [r1, #0]
 
-  8023e98:	6010      	str	r0, [r2, #0]
 
-  8023e9a:	e609      	b.n	8023ab0 <__gethex+0xc8>
 
-  8023e9c:	2721      	movs	r7, #33	; 0x21
 
-  8023e9e:	e77f      	b.n	8023da0 <__gethex+0x3b8>
 
-  8023ea0:	f8dd b020 	ldr.w	fp, [sp, #32]
 
-  8023ea4:	f04f 0800 	mov.w	r8, #0
 
-  8023ea8:	e651      	b.n	8023b4e <__gethex+0x166>
 
-  8023eaa:	9a15      	ldr	r2, [sp, #84]	; 0x54
 
-  8023eac:	f1c2 0301 	rsb	r3, r2, #1
 
-  8023eb0:	2b00      	cmp	r3, #0
 
-  8023eb2:	f43f af73 	beq.w	8023d9c <__gethex+0x3b4>
 
-  8023eb6:	e719      	b.n	8023cec <__gethex+0x304>
 
-  8023eb8:	42a6      	cmp	r6, r4
 
-  8023eba:	f47f ae77 	bne.w	8023bac <__gethex+0x1c4>
 
-  8023ebe:	2c01      	cmp	r4, #1
 
-  8023ec0:	dde1      	ble.n	8023e86 <__gethex+0x49e>
 
-  8023ec2:	9804      	ldr	r0, [sp, #16]
 
-  8023ec4:	1e61      	subs	r1, r4, #1
 
-  8023ec6:	f001 f8ed 	bl	80250a4 <__any_on>
 
-  8023eca:	2800      	cmp	r0, #0
 
-  8023ecc:	f43f ae6e 	beq.w	8023bac <__gethex+0x1c4>
 
-  8023ed0:	9a06      	ldr	r2, [sp, #24]
 
-  8023ed2:	6853      	ldr	r3, [r2, #4]
 
-  8023ed4:	e7d7      	b.n	8023e86 <__gethex+0x49e>
 
-  8023ed6:	9915      	ldr	r1, [sp, #84]	; 0x54
 
-  8023ed8:	2900      	cmp	r1, #0
 
-  8023eda:	f43f ae67 	beq.w	8023bac <__gethex+0x1c4>
 
-  8023ede:	e7d2      	b.n	8023e86 <__gethex+0x49e>
 
-  8023ee0:	3201      	adds	r2, #1
 
-  8023ee2:	600a      	str	r2, [r1, #0]
 
-  8023ee4:	e723      	b.n	8023d2e <__gethex+0x346>
 
-  8023ee6:	9a06      	ldr	r2, [sp, #24]
 
-  8023ee8:	2722      	movs	r7, #34	; 0x22
 
-  8023eea:	6813      	ldr	r3, [r2, #0]
 
-  8023eec:	3b01      	subs	r3, #1
 
-  8023eee:	42a3      	cmp	r3, r4
 
-  8023ef0:	f47f af56 	bne.w	8023da0 <__gethex+0x3b8>
 
-  8023ef4:	1163      	asrs	r3, r4, #5
 
-  8023ef6:	9804      	ldr	r0, [sp, #16]
 
-  8023ef8:	2201      	movs	r2, #1
 
-  8023efa:	f004 041f 	and.w	r4, r4, #31
 
-  8023efe:	eb00 0383 	add.w	r3, r0, r3, lsl #2
 
-  8023f02:	fa02 f204 	lsl.w	r2, r2, r4
 
-  8023f06:	695b      	ldr	r3, [r3, #20]
 
-  8023f08:	421a      	tst	r2, r3
 
-  8023f0a:	bf14      	ite	ne
 
-  8023f0c:	2721      	movne	r7, #33	; 0x21
 
-  8023f0e:	2722      	moveq	r7, #34	; 0x22
 
-  8023f10:	e746      	b.n	8023da0 <__gethex+0x3b8>
 
-  8023f12:	6851      	ldr	r1, [r2, #4]
 
-  8023f14:	9807      	ldr	r0, [sp, #28]
 
-  8023f16:	3101      	adds	r1, #1
 
-  8023f18:	f000 fc68 	bl	80247ec <_Balloc>
 
-  8023f1c:	4606      	mov	r6, r0
 
-  8023f1e:	9804      	ldr	r0, [sp, #16]
 
-  8023f20:	f100 010c 	add.w	r1, r0, #12
 
-  8023f24:	6903      	ldr	r3, [r0, #16]
 
-  8023f26:	f106 000c 	add.w	r0, r6, #12
 
-  8023f2a:	1c9a      	adds	r2, r3, #2
 
-  8023f2c:	0092      	lsls	r2, r2, #2
 
-  8023f2e:	f7fd fd2d 	bl	802198c <memcpy>
 
-  8023f32:	9904      	ldr	r1, [sp, #16]
 
-  8023f34:	9807      	ldr	r0, [sp, #28]
 
-  8023f36:	9604      	str	r6, [sp, #16]
 
-  8023f38:	f000 fc8e 	bl	8024858 <_Bfree>
 
-  8023f3c:	6933      	ldr	r3, [r6, #16]
 
-  8023f3e:	e6ef      	b.n	8023d20 <__gethex+0x338>
 
-  8023f40:	465c      	mov	r4, fp
 
-  8023f42:	e5a0      	b.n	8023a86 <__gethex+0x9e>
 
- 08023f44 <__hexnan>:
 
-  8023f44:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-  8023f48:	f643 184c 	movw	r8, #14668	; 0x394c
 
-  8023f4c:	f2c2 0801 	movt	r8, #8193	; 0x2001
 
-  8023f50:	b085      	sub	sp, #20
 
-  8023f52:	460c      	mov	r4, r1
 
-  8023f54:	4692      	mov	sl, r2
 
-  8023f56:	f898 3030 	ldrb.w	r3, [r8, #48]	; 0x30
 
-  8023f5a:	9002      	str	r0, [sp, #8]
 
-  8023f5c:	2b00      	cmp	r3, #0
 
-  8023f5e:	f000 80ad 	beq.w	80240bc <__hexnan+0x178>
 
-  8023f62:	6823      	ldr	r3, [r4, #0]
 
-  8023f64:	115a      	asrs	r2, r3, #5
 
-  8023f66:	f013 031f 	ands.w	r3, r3, #31
 
-  8023f6a:	9303      	str	r3, [sp, #12]
 
-  8023f6c:	eb0a 0282 	add.w	r2, sl, r2, lsl #2
 
-  8023f70:	9200      	str	r2, [sp, #0]
 
-  8023f72:	d001      	beq.n	8023f78 <__hexnan+0x34>
 
-  8023f74:	3204      	adds	r2, #4
 
-  8023f76:	9200      	str	r2, [sp, #0]
 
-  8023f78:	9a00      	ldr	r2, [sp, #0]
 
-  8023f7a:	2300      	movs	r3, #0
 
-  8023f7c:	4699      	mov	r9, r3
 
-  8023f7e:	9900      	ldr	r1, [sp, #0]
 
-  8023f80:	46cb      	mov	fp, r9
 
-  8023f82:	464e      	mov	r6, r9
 
-  8023f84:	f842 3c04 	str.w	r3, [r2, #-4]
 
-  8023f88:	3904      	subs	r1, #4
 
-  8023f8a:	9b02      	ldr	r3, [sp, #8]
 
-  8023f8c:	9101      	str	r1, [sp, #4]
 
-  8023f8e:	f8dd c004 	ldr.w	ip, [sp, #4]
 
-  8023f92:	6819      	ldr	r1, [r3, #0]
 
-  8023f94:	4664      	mov	r4, ip
 
-  8023f96:	784b      	ldrb	r3, [r1, #1]
 
-  8023f98:	2b00      	cmp	r3, #0
 
-  8023f9a:	d033      	beq.n	8024004 <__hexnan+0xc0>
 
-  8023f9c:	f818 2003 	ldrb.w	r2, [r8, r3]
 
-  8023fa0:	2a00      	cmp	r2, #0
 
-  8023fa2:	d16f      	bne.n	8024084 <__hexnan+0x140>
 
-  8023fa4:	2b20      	cmp	r3, #32
 
-  8023fa6:	f200 8083 	bhi.w	80240b0 <__hexnan+0x16c>
 
-  8023faa:	455e      	cmp	r6, fp
 
-  8023fac:	dd26      	ble.n	8023ffc <__hexnan+0xb8>
 
-  8023fae:	f1b9 0f07 	cmp.w	r9, #7
 
-  8023fb2:	bfcc      	ite	gt
 
-  8023fb4:	2300      	movgt	r3, #0
 
-  8023fb6:	2301      	movle	r3, #1
 
-  8023fb8:	4564      	cmp	r4, ip
 
-  8023fba:	bf28      	it	cs
 
-  8023fbc:	2300      	movcs	r3, #0
 
-  8023fbe:	b193      	cbz	r3, 8023fe6 <__hexnan+0xa2>
 
-  8023fc0:	f1c9 0908 	rsb	r9, r9, #8
 
-  8023fc4:	6822      	ldr	r2, [r4, #0]
 
-  8023fc6:	4623      	mov	r3, r4
 
-  8023fc8:	ea4f 0989 	mov.w	r9, r9, lsl #2
 
-  8023fcc:	f1c9 0720 	rsb	r7, r9, #32
 
-  8023fd0:	6858      	ldr	r0, [r3, #4]
 
-  8023fd2:	fa00 f507 	lsl.w	r5, r0, r7
 
-  8023fd6:	4315      	orrs	r5, r2
 
-  8023fd8:	fa20 f209 	lsr.w	r2, r0, r9
 
-  8023fdc:	601d      	str	r5, [r3, #0]
 
-  8023fde:	f843 2f04 	str.w	r2, [r3, #4]!
 
-  8023fe2:	459c      	cmp	ip, r3
 
-  8023fe4:	d8f4      	bhi.n	8023fd0 <__hexnan+0x8c>
 
-  8023fe6:	4554      	cmp	r4, sl
 
-  8023fe8:	bf98      	it	ls
 
-  8023fea:	f04f 0908 	movls.w	r9, #8
 
-  8023fee:	d905      	bls.n	8023ffc <__hexnan+0xb8>
 
-  8023ff0:	2200      	movs	r2, #0
 
-  8023ff2:	3c04      	subs	r4, #4
 
-  8023ff4:	6022      	str	r2, [r4, #0]
 
-  8023ff6:	46b3      	mov	fp, r6
 
-  8023ff8:	46a4      	mov	ip, r4
 
-  8023ffa:	4691      	mov	r9, r2
 
-  8023ffc:	3101      	adds	r1, #1
 
-  8023ffe:	784b      	ldrb	r3, [r1, #1]
 
-  8024000:	2b00      	cmp	r3, #0
 
-  8024002:	d1cb      	bne.n	8023f9c <__hexnan+0x58>
 
-  8024004:	2e00      	cmp	r6, #0
 
-  8024006:	d055      	beq.n	80240b4 <__hexnan+0x170>
 
-  8024008:	f1b9 0f07 	cmp.w	r9, #7
 
-  802400c:	bfcc      	ite	gt
 
-  802400e:	2300      	movgt	r3, #0
 
-  8024010:	2301      	movle	r3, #1
 
-  8024012:	4564      	cmp	r4, ip
 
-  8024014:	bf28      	it	cs
 
-  8024016:	2300      	movcs	r3, #0
 
-  8024018:	b193      	cbz	r3, 8024040 <__hexnan+0xfc>
 
-  802401a:	f1c9 0908 	rsb	r9, r9, #8
 
-  802401e:	6822      	ldr	r2, [r4, #0]
 
-  8024020:	4623      	mov	r3, r4
 
-  8024022:	ea4f 0989 	mov.w	r9, r9, lsl #2
 
-  8024026:	f1c9 0520 	rsb	r5, r9, #32
 
-  802402a:	6859      	ldr	r1, [r3, #4]
 
-  802402c:	fa01 f005 	lsl.w	r0, r1, r5
 
-  8024030:	4310      	orrs	r0, r2
 
-  8024032:	fa21 f209 	lsr.w	r2, r1, r9
 
-  8024036:	6018      	str	r0, [r3, #0]
 
-  8024038:	f843 2f04 	str.w	r2, [r3, #4]!
 
-  802403c:	4563      	cmp	r3, ip
 
-  802403e:	d3f4      	bcc.n	802402a <__hexnan+0xe6>
 
-  8024040:	45a2      	cmp	sl, r4
 
-  8024042:	d23e      	bcs.n	80240c2 <__hexnan+0x17e>
 
-  8024044:	9801      	ldr	r0, [sp, #4]
 
-  8024046:	4652      	mov	r2, sl
 
-  8024048:	f854 1b04 	ldr.w	r1, [r4], #4
 
-  802404c:	4613      	mov	r3, r2
 
-  802404e:	42a0      	cmp	r0, r4
 
-  8024050:	f843 1b04 	str.w	r1, [r3], #4
 
-  8024054:	461a      	mov	r2, r3
 
-  8024056:	d2f7      	bcs.n	8024048 <__hexnan+0x104>
 
-  8024058:	9901      	ldr	r1, [sp, #4]
 
-  802405a:	2200      	movs	r2, #0
 
-  802405c:	f843 2b04 	str.w	r2, [r3], #4
 
-  8024060:	4299      	cmp	r1, r3
 
-  8024062:	d2fb      	bcs.n	802405c <__hexnan+0x118>
 
-  8024064:	9900      	ldr	r1, [sp, #0]
 
-  8024066:	f851 3c04 	ldr.w	r3, [r1, #-4]
 
-  802406a:	b94b      	cbnz	r3, 8024080 <__hexnan+0x13c>
 
-  802406c:	9b01      	ldr	r3, [sp, #4]
 
-  802406e:	459a      	cmp	sl, r3
 
-  8024070:	d102      	bne.n	8024078 <__hexnan+0x134>
 
-  8024072:	e038      	b.n	80240e6 <__hexnan+0x1a2>
 
-  8024074:	459a      	cmp	sl, r3
 
-  8024076:	d037      	beq.n	80240e8 <__hexnan+0x1a4>
 
-  8024078:	f853 2d04 	ldr.w	r2, [r3, #-4]!
 
-  802407c:	2a00      	cmp	r2, #0
 
-  802407e:	d0f9      	beq.n	8024074 <__hexnan+0x130>
 
-  8024080:	2005      	movs	r0, #5
 
-  8024082:	e018      	b.n	80240b6 <__hexnan+0x172>
 
-  8024084:	f109 0901 	add.w	r9, r9, #1
 
-  8024088:	3601      	adds	r6, #1
 
-  802408a:	f1b9 0f08 	cmp.w	r9, #8
 
-  802408e:	dc07      	bgt.n	80240a0 <__hexnan+0x15c>
 
-  8024090:	6823      	ldr	r3, [r4, #0]
 
-  8024092:	011b      	lsls	r3, r3, #4
 
-  8024094:	f002 020f 	and.w	r2, r2, #15
 
-  8024098:	3101      	adds	r1, #1
 
-  802409a:	431a      	orrs	r2, r3
 
-  802409c:	6022      	str	r2, [r4, #0]
 
-  802409e:	e7ae      	b.n	8023ffe <__hexnan+0xba>
 
-  80240a0:	4554      	cmp	r4, sl
 
-  80240a2:	d9ab      	bls.n	8023ffc <__hexnan+0xb8>
 
-  80240a4:	2300      	movs	r3, #0
 
-  80240a6:	3c04      	subs	r4, #4
 
-  80240a8:	6023      	str	r3, [r4, #0]
 
-  80240aa:	f04f 0901 	mov.w	r9, #1
 
-  80240ae:	e7f1      	b.n	8024094 <__hexnan+0x150>
 
-  80240b0:	2b29      	cmp	r3, #41	; 0x29
 
-  80240b2:	d01d      	beq.n	80240f0 <__hexnan+0x1ac>
 
-  80240b4:	2004      	movs	r0, #4
 
-  80240b6:	b005      	add	sp, #20
 
-  80240b8:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
-  80240bc:	f7ff fc68 	bl	8023990 <__hexdig_init>
 
-  80240c0:	e74f      	b.n	8023f62 <__hexnan+0x1e>
 
-  80240c2:	9a03      	ldr	r2, [sp, #12]
 
-  80240c4:	2a00      	cmp	r2, #0
 
-  80240c6:	d0cd      	beq.n	8024064 <__hexnan+0x120>
 
-  80240c8:	9a00      	ldr	r2, [sp, #0]
 
-  80240ca:	9903      	ldr	r1, [sp, #12]
 
-  80240cc:	f852 3c04 	ldr.w	r3, [r2, #-4]
 
-  80240d0:	f1c1 0220 	rsb	r2, r1, #32
 
-  80240d4:	f04f 31ff 	mov.w	r1, #4294967295
 
-  80240d8:	fa21 f202 	lsr.w	r2, r1, r2
 
-  80240dc:	4013      	ands	r3, r2
 
-  80240de:	9a00      	ldr	r2, [sp, #0]
 
-  80240e0:	f842 3c04 	str.w	r3, [r2, #-4]
 
-  80240e4:	e7c1      	b.n	802406a <__hexnan+0x126>
 
-  80240e6:	4653      	mov	r3, sl
 
-  80240e8:	2201      	movs	r2, #1
 
-  80240ea:	2005      	movs	r0, #5
 
-  80240ec:	601a      	str	r2, [r3, #0]
 
-  80240ee:	e7e2      	b.n	80240b6 <__hexnan+0x172>
 
-  80240f0:	9b02      	ldr	r3, [sp, #8]
 
-  80240f2:	3102      	adds	r1, #2
 
-  80240f4:	6019      	str	r1, [r3, #0]
 
-  80240f6:	2e00      	cmp	r6, #0
 
-  80240f8:	d186      	bne.n	8024008 <__hexnan+0xc4>
 
-  80240fa:	e7db      	b.n	80240b4 <__hexnan+0x170>
 
- 080240fc <_setlocale_r>:
 
-  80240fc:	b510      	push	{r4, lr}
 
-  80240fe:	4614      	mov	r4, r2
 
-  8024100:	b13a      	cbz	r2, 8024112 <_setlocale_r+0x16>
 
-  8024102:	f645 31cc 	movw	r1, #23500	; 0x5bcc
 
-  8024106:	4610      	mov	r0, r2
 
-  8024108:	f6c0 0104 	movt	r1, #2052	; 0x804
 
-  802410c:	f7fd fd84 	bl	8021c18 <strcmp>
 
-  8024110:	b920      	cbnz	r0, 802411c <_setlocale_r+0x20>
 
-  8024112:	f645 30c8 	movw	r0, #23496	; 0x5bc8
 
-  8024116:	f6c0 0004 	movt	r0, #2052	; 0x804
 
-  802411a:	bd10      	pop	{r4, pc}
 
-  802411c:	f645 31c8 	movw	r1, #23496	; 0x5bc8
 
-  8024120:	4620      	mov	r0, r4
 
-  8024122:	f6c0 0104 	movt	r1, #2052	; 0x804
 
-  8024126:	f7fd fd77 	bl	8021c18 <strcmp>
 
-  802412a:	2800      	cmp	r0, #0
 
-  802412c:	d0f1      	beq.n	8024112 <_setlocale_r+0x16>
 
-  802412e:	f645 31d4 	movw	r1, #23508	; 0x5bd4
 
-  8024132:	4620      	mov	r0, r4
 
-  8024134:	f6c0 0104 	movt	r1, #2052	; 0x804
 
-  8024138:	f7fd fd6e 	bl	8021c18 <strcmp>
 
-  802413c:	f645 33c8 	movw	r3, #23496	; 0x5bc8
 
-  8024140:	f6c0 0304 	movt	r3, #2052	; 0x804
 
-  8024144:	2800      	cmp	r0, #0
 
-  8024146:	bf0c      	ite	eq
 
-  8024148:	4618      	moveq	r0, r3
 
-  802414a:	2000      	movne	r0, #0
 
-  802414c:	bd10      	pop	{r4, pc}
 
-  802414e:	bf00      	nop
 
- 08024150 <__locale_charset>:
 
-  8024150:	f240 1020 	movw	r0, #288	; 0x120
 
-  8024154:	f2c2 0000 	movt	r0, #8192	; 0x2000
 
-  8024158:	4770      	bx	lr
 
-  802415a:	bf00      	nop
 
- 0802415c <__locale_mb_cur_max>:
 
-  802415c:	f240 1320 	movw	r3, #288	; 0x120
 
-  8024160:	f2c2 0300 	movt	r3, #8192	; 0x2000
 
-  8024164:	6a18      	ldr	r0, [r3, #32]
 
-  8024166:	4770      	bx	lr
 
- 08024168 <__locale_msgcharset>:
 
-  8024168:	4800      	ldr	r0, [pc, #0]	; (802416c <__locale_msgcharset+0x4>)
 
-  802416a:	4770      	bx	lr
 
-  802416c:	20000144 	.word	0x20000144
 
- 08024170 <__locale_cjk_lang>:
 
-  8024170:	2000      	movs	r0, #0
 
-  8024172:	4770      	bx	lr
 
- 08024174 <_localeconv_r>:
 
-  8024174:	4800      	ldr	r0, [pc, #0]	; (8024178 <_localeconv_r+0x4>)
 
-  8024176:	4770      	bx	lr
 
-  8024178:	20000164 	.word	0x20000164
 
- 0802417c <setlocale>:
 
-  802417c:	f240 032c 	movw	r3, #44	; 0x2c
 
-  8024180:	460a      	mov	r2, r1
 
-  8024182:	f2c2 0300 	movt	r3, #8192	; 0x2000
 
-  8024186:	4601      	mov	r1, r0
 
-  8024188:	6818      	ldr	r0, [r3, #0]
 
-  802418a:	f7ff bfb7 	b.w	80240fc <_setlocale_r>
 
-  802418e:	bf00      	nop
 
- 08024190 <localeconv>:
 
-  8024190:	4800      	ldr	r0, [pc, #0]	; (8024194 <localeconv+0x4>)
 
-  8024192:	4770      	bx	lr
 
-  8024194:	20000164 	.word	0x20000164
 
- 08024198 <malloc>:
 
-  8024198:	f240 032c 	movw	r3, #44	; 0x2c
 
-  802419c:	4601      	mov	r1, r0
 
-  802419e:	f2c2 0300 	movt	r3, #8192	; 0x2000
 
-  80241a2:	6818      	ldr	r0, [r3, #0]
 
-  80241a4:	f000 b808 	b.w	80241b8 <_malloc_r>
 
- 080241a8 <free>:
 
-  80241a8:	f240 032c 	movw	r3, #44	; 0x2c
 
-  80241ac:	4601      	mov	r1, r0
 
-  80241ae:	f2c2 0300 	movt	r3, #8192	; 0x2000
 
-  80241b2:	6818      	ldr	r0, [r3, #0]
 
-  80241b4:	f7ff baca 	b.w	802374c <_free_r>
 
- 080241b8 <_malloc_r>:
 
-  80241b8:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-  80241bc:	f101 040b 	add.w	r4, r1, #11
 
-  80241c0:	2c16      	cmp	r4, #22
 
-  80241c2:	b083      	sub	sp, #12
 
-  80241c4:	4607      	mov	r7, r0
 
-  80241c6:	d930      	bls.n	802422a <_malloc_r+0x72>
 
-  80241c8:	f024 0407 	bic.w	r4, r4, #7
 
-  80241cc:	0fe3      	lsrs	r3, r4, #31
 
-  80241ce:	428c      	cmp	r4, r1
 
-  80241d0:	bf2c      	ite	cs
 
-  80241d2:	4619      	movcs	r1, r3
 
-  80241d4:	f043 0101 	orrcc.w	r1, r3, #1
 
-  80241d8:	2900      	cmp	r1, #0
 
-  80241da:	d12f      	bne.n	802423c <_malloc_r+0x84>
 
-  80241dc:	4638      	mov	r0, r7
 
-  80241de:	f000 fb01 	bl	80247e4 <__malloc_lock>
 
-  80241e2:	f5b4 7ffc 	cmp.w	r4, #504	; 0x1f8
 
-  80241e6:	d22e      	bcs.n	8024246 <_malloc_r+0x8e>
 
-  80241e8:	ea4f 0cd4 	mov.w	ip, r4, lsr #3
 
-  80241ec:	f240 169c 	movw	r6, #412	; 0x19c
 
-  80241f0:	f2c2 0600 	movt	r6, #8192	; 0x2000
 
-  80241f4:	eb06 02cc 	add.w	r2, r6, ip, lsl #3
 
-  80241f8:	68d3      	ldr	r3, [r2, #12]
 
-  80241fa:	4293      	cmp	r3, r2
 
-  80241fc:	f000 8211 	beq.w	8024622 <_malloc_r+0x46a>
 
-  8024200:	6859      	ldr	r1, [r3, #4]
 
-  8024202:	f103 0808 	add.w	r8, r3, #8
 
-  8024206:	68da      	ldr	r2, [r3, #12]
 
-  8024208:	4638      	mov	r0, r7
 
-  802420a:	f021 0403 	bic.w	r4, r1, #3
 
-  802420e:	6899      	ldr	r1, [r3, #8]
 
-  8024210:	191b      	adds	r3, r3, r4
 
-  8024212:	685c      	ldr	r4, [r3, #4]
 
-  8024214:	60ca      	str	r2, [r1, #12]
 
-  8024216:	f044 0401 	orr.w	r4, r4, #1
 
-  802421a:	6091      	str	r1, [r2, #8]
 
-  802421c:	605c      	str	r4, [r3, #4]
 
-  802421e:	f000 fae3 	bl	80247e8 <__malloc_unlock>
 
-  8024222:	4640      	mov	r0, r8
 
-  8024224:	b003      	add	sp, #12
 
-  8024226:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
-  802422a:	2300      	movs	r3, #0
 
-  802422c:	2410      	movs	r4, #16
 
-  802422e:	428c      	cmp	r4, r1
 
-  8024230:	bf2c      	ite	cs
 
-  8024232:	4619      	movcs	r1, r3
 
-  8024234:	f043 0101 	orrcc.w	r1, r3, #1
 
-  8024238:	2900      	cmp	r1, #0
 
-  802423a:	d0cf      	beq.n	80241dc <_malloc_r+0x24>
 
-  802423c:	230c      	movs	r3, #12
 
-  802423e:	f04f 0800 	mov.w	r8, #0
 
-  8024242:	603b      	str	r3, [r7, #0]
 
-  8024244:	e7ed      	b.n	8024222 <_malloc_r+0x6a>
 
-  8024246:	ea5f 2c54 	movs.w	ip, r4, lsr #9
 
-  802424a:	bf04      	itt	eq
 
-  802424c:	ea4f 0cd4 	moveq.w	ip, r4, lsr #3
 
-  8024250:	ea4f 054c 	moveq.w	r5, ip, lsl #1
 
-  8024254:	f040 808f 	bne.w	8024376 <_malloc_r+0x1be>
 
-  8024258:	f240 169c 	movw	r6, #412	; 0x19c
 
-  802425c:	f2c2 0600 	movt	r6, #8192	; 0x2000
 
-  8024260:	eb06 0585 	add.w	r5, r6, r5, lsl #2
 
-  8024264:	68eb      	ldr	r3, [r5, #12]
 
-  8024266:	429d      	cmp	r5, r3
 
-  8024268:	d106      	bne.n	8024278 <_malloc_r+0xc0>
 
-  802426a:	e00d      	b.n	8024288 <_malloc_r+0xd0>
 
-  802426c:	2a00      	cmp	r2, #0
 
-  802426e:	f280 8155 	bge.w	802451c <_malloc_r+0x364>
 
-  8024272:	68db      	ldr	r3, [r3, #12]
 
-  8024274:	429d      	cmp	r5, r3
 
-  8024276:	d007      	beq.n	8024288 <_malloc_r+0xd0>
 
-  8024278:	6859      	ldr	r1, [r3, #4]
 
-  802427a:	f021 0103 	bic.w	r1, r1, #3
 
-  802427e:	1b0a      	subs	r2, r1, r4
 
-  8024280:	2a0f      	cmp	r2, #15
 
-  8024282:	ddf3      	ble.n	802426c <_malloc_r+0xb4>
 
-  8024284:	f10c 3cff 	add.w	ip, ip, #4294967295
 
-  8024288:	f10c 0c01 	add.w	ip, ip, #1
 
-  802428c:	f240 129c 	movw	r2, #412	; 0x19c
 
-  8024290:	6933      	ldr	r3, [r6, #16]
 
-  8024292:	f2c2 0200 	movt	r2, #8192	; 0x2000
 
-  8024296:	f102 0e08 	add.w	lr, r2, #8
 
-  802429a:	4573      	cmp	r3, lr
 
-  802429c:	bf08      	it	eq
 
-  802429e:	f8d2 9004 	ldreq.w	r9, [r2, #4]
 
-  80242a2:	d022      	beq.n	80242ea <_malloc_r+0x132>
 
-  80242a4:	6858      	ldr	r0, [r3, #4]
 
-  80242a6:	f020 0003 	bic.w	r0, r0, #3
 
-  80242aa:	1b01      	subs	r1, r0, r4
 
-  80242ac:	290f      	cmp	r1, #15
 
-  80242ae:	f300 8184 	bgt.w	80245ba <_malloc_r+0x402>
 
-  80242b2:	2900      	cmp	r1, #0
 
-  80242b4:	f8c2 e014 	str.w	lr, [r2, #20]
 
-  80242b8:	f8c2 e010 	str.w	lr, [r2, #16]
 
-  80242bc:	da66      	bge.n	802438c <_malloc_r+0x1d4>
 
-  80242be:	f5b0 7f00 	cmp.w	r0, #512	; 0x200
 
-  80242c2:	f080 814e 	bcs.w	8024562 <_malloc_r+0x3aa>
 
-  80242c6:	08c1      	lsrs	r1, r0, #3
 
-  80242c8:	f04f 0801 	mov.w	r8, #1
 
-  80242cc:	eb02 00c1 	add.w	r0, r2, r1, lsl #3
 
-  80242d0:	1089      	asrs	r1, r1, #2
 
-  80242d2:	fa08 f801 	lsl.w	r8, r8, r1
 
-  80242d6:	6851      	ldr	r1, [r2, #4]
 
-  80242d8:	6885      	ldr	r5, [r0, #8]
 
-  80242da:	60d8      	str	r0, [r3, #12]
 
-  80242dc:	ea48 0901 	orr.w	r9, r8, r1
 
-  80242e0:	f8c2 9004 	str.w	r9, [r2, #4]
 
-  80242e4:	609d      	str	r5, [r3, #8]
 
-  80242e6:	60eb      	str	r3, [r5, #12]
 
-  80242e8:	6083      	str	r3, [r0, #8]
 
-  80242ea:	2201      	movs	r2, #1
 
-  80242ec:	ea4f 03ac 	mov.w	r3, ip, asr #2
 
-  80242f0:	fa02 f303 	lsl.w	r3, r2, r3
 
-  80242f4:	454b      	cmp	r3, r9
 
-  80242f6:	d854      	bhi.n	80243a2 <_malloc_r+0x1ea>
 
-  80242f8:	ea19 0f03 	tst.w	r9, r3
 
-  80242fc:	d10d      	bne.n	802431a <_malloc_r+0x162>
 
-  80242fe:	4093      	lsls	r3, r2
 
-  8024300:	f02c 0c03 	bic.w	ip, ip, #3
 
-  8024304:	ea19 0f03 	tst.w	r9, r3
 
-  8024308:	f10c 0c04 	add.w	ip, ip, #4
 
-  802430c:	d105      	bne.n	802431a <_malloc_r+0x162>
 
-  802430e:	005b      	lsls	r3, r3, #1
 
-  8024310:	f10c 0c04 	add.w	ip, ip, #4
 
-  8024314:	ea19 0f03 	tst.w	r9, r3
 
-  8024318:	d0f9      	beq.n	802430e <_malloc_r+0x156>
 
-  802431a:	eb06 09cc 	add.w	r9, r6, ip, lsl #3
 
-  802431e:	46e0      	mov	r8, ip
 
-  8024320:	4648      	mov	r0, r9
 
-  8024322:	68c2      	ldr	r2, [r0, #12]
 
-  8024324:	4290      	cmp	r0, r2
 
-  8024326:	d107      	bne.n	8024338 <_malloc_r+0x180>
 
-  8024328:	e15b      	b.n	80245e2 <_malloc_r+0x42a>
 
-  802432a:	2900      	cmp	r1, #0
 
-  802432c:	f280 8183 	bge.w	8024636 <_malloc_r+0x47e>
 
-  8024330:	68d2      	ldr	r2, [r2, #12]
 
-  8024332:	4290      	cmp	r0, r2
 
-  8024334:	f000 8155 	beq.w	80245e2 <_malloc_r+0x42a>
 
-  8024338:	6855      	ldr	r5, [r2, #4]
 
-  802433a:	f025 0503 	bic.w	r5, r5, #3
 
-  802433e:	1b29      	subs	r1, r5, r4
 
-  8024340:	290f      	cmp	r1, #15
 
-  8024342:	ddf2      	ble.n	802432a <_malloc_r+0x172>
 
-  8024344:	4690      	mov	r8, r2
 
-  8024346:	1913      	adds	r3, r2, r4
 
-  8024348:	68d5      	ldr	r5, [r2, #12]
 
-  802434a:	f044 0001 	orr.w	r0, r4, #1
 
-  802434e:	f858 4f08 	ldr.w	r4, [r8, #8]!
 
-  8024352:	f041 0c01 	orr.w	ip, r1, #1
 
-  8024356:	6050      	str	r0, [r2, #4]
 
-  8024358:	4638      	mov	r0, r7
 
-  802435a:	f8c3 c004 	str.w	ip, [r3, #4]
 
-  802435e:	60e5      	str	r5, [r4, #12]
 
-  8024360:	60ac      	str	r4, [r5, #8]
 
-  8024362:	6173      	str	r3, [r6, #20]
 
-  8024364:	6133      	str	r3, [r6, #16]
 
-  8024366:	f8c3 e00c 	str.w	lr, [r3, #12]
 
-  802436a:	f8c3 e008 	str.w	lr, [r3, #8]
 
-  802436e:	5059      	str	r1, [r3, r1]
 
-  8024370:	f000 fa3a 	bl	80247e8 <__malloc_unlock>
 
-  8024374:	e755      	b.n	8024222 <_malloc_r+0x6a>
 
-  8024376:	f1bc 0f04 	cmp.w	ip, #4
 
-  802437a:	f200 80de 	bhi.w	802453a <_malloc_r+0x382>
 
-  802437e:	ea4f 1c94 	mov.w	ip, r4, lsr #6
 
-  8024382:	f10c 0c38 	add.w	ip, ip, #56	; 0x38
 
-  8024386:	ea4f 054c 	mov.w	r5, ip, lsl #1
 
-  802438a:	e765      	b.n	8024258 <_malloc_r+0xa0>
 
-  802438c:	181a      	adds	r2, r3, r0
 
-  802438e:	f103 0808 	add.w	r8, r3, #8
 
-  8024392:	4638      	mov	r0, r7
 
-  8024394:	6853      	ldr	r3, [r2, #4]
 
-  8024396:	f043 0301 	orr.w	r3, r3, #1
 
-  802439a:	6053      	str	r3, [r2, #4]
 
-  802439c:	f000 fa24 	bl	80247e8 <__malloc_unlock>
 
-  80243a0:	e73f      	b.n	8024222 <_malloc_r+0x6a>
 
-  80243a2:	68b5      	ldr	r5, [r6, #8]
 
-  80243a4:	686b      	ldr	r3, [r5, #4]
 
-  80243a6:	f023 0a03 	bic.w	sl, r3, #3
 
-  80243aa:	4554      	cmp	r4, sl
 
-  80243ac:	d804      	bhi.n	80243b8 <_malloc_r+0x200>
 
-  80243ae:	ebc4 030a 	rsb	r3, r4, sl
 
-  80243b2:	2b0f      	cmp	r3, #15
 
-  80243b4:	f300 80a4 	bgt.w	8024500 <_malloc_r+0x348>
 
-  80243b8:	f640 29d0 	movw	r9, #2768	; 0xad0
 
-  80243bc:	f8d6 1408 	ldr.w	r1, [r6, #1032]	; 0x408
 
-  80243c0:	f2c2 0900 	movt	r9, #8192	; 0x2000
 
-  80243c4:	eb05 020a 	add.w	r2, r5, sl
 
-  80243c8:	3101      	adds	r1, #1
 
-  80243ca:	f8d9 3000 	ldr.w	r3, [r9]
 
-  80243ce:	4423      	add	r3, r4
 
-  80243d0:	bf08      	it	eq
 
-  80243d2:	f103 0b10 	addeq.w	fp, r3, #16
 
-  80243d6:	d006      	beq.n	80243e6 <_malloc_r+0x22e>
 
-  80243d8:	f503 5380 	add.w	r3, r3, #4096	; 0x1000
 
-  80243dc:	330f      	adds	r3, #15
 
-  80243de:	f423 637f 	bic.w	r3, r3, #4080	; 0xff0
 
-  80243e2:	f023 0b0f 	bic.w	fp, r3, #15
 
-  80243e6:	4638      	mov	r0, r7
 
-  80243e8:	4659      	mov	r1, fp
 
-  80243ea:	9201      	str	r2, [sp, #4]
 
-  80243ec:	f000 fe86 	bl	80250fc <_sbrk_r>
 
-  80243f0:	9a01      	ldr	r2, [sp, #4]
 
-  80243f2:	1c41      	adds	r1, r0, #1
 
-  80243f4:	4680      	mov	r8, r0
 
-  80243f6:	f000 8168 	beq.w	80246ca <_malloc_r+0x512>
 
-  80243fa:	4282      	cmp	r2, r0
 
-  80243fc:	f200 8131 	bhi.w	8024662 <_malloc_r+0x4aa>
 
-  8024400:	f8d9 3004 	ldr.w	r3, [r9, #4]
 
-  8024404:	4542      	cmp	r2, r8
 
-  8024406:	445b      	add	r3, fp
 
-  8024408:	f8c9 3004 	str.w	r3, [r9, #4]
 
-  802440c:	f000 8166 	beq.w	80246dc <_malloc_r+0x524>
 
-  8024410:	f8d6 1408 	ldr.w	r1, [r6, #1032]	; 0x408
 
-  8024414:	f240 109c 	movw	r0, #412	; 0x19c
 
-  8024418:	f2c2 0000 	movt	r0, #8192	; 0x2000
 
-  802441c:	3101      	adds	r1, #1
 
-  802441e:	bf17      	itett	ne
 
-  8024420:	ebc2 0208 	rsbne	r2, r2, r8
 
-  8024424:	f8c0 8408 	streq.w	r8, [r0, #1032]	; 0x408
 
-  8024428:	189b      	addne	r3, r3, r2
 
-  802442a:	f8c9 3004 	strne.w	r3, [r9, #4]
 
-  802442e:	f018 0307 	ands.w	r3, r8, #7
 
-  8024432:	4638      	mov	r0, r7
 
-  8024434:	bf1f      	itttt	ne
 
-  8024436:	f1c3 0208 	rsbne	r2, r3, #8
 
-  802443a:	f5c3 5380 	rsbne	r3, r3, #4096	; 0x1000
 
-  802443e:	4490      	addne	r8, r2
 
-  8024440:	f103 0208 	addne.w	r2, r3, #8
 
-  8024444:	eb08 030b 	add.w	r3, r8, fp
 
-  8024448:	bf08      	it	eq
 
-  802444a:	f44f 5280 	moveq.w	r2, #4096	; 0x1000
 
-  802444e:	051b      	lsls	r3, r3, #20
 
-  8024450:	0d1b      	lsrs	r3, r3, #20
 
-  8024452:	ebc3 0b02 	rsb	fp, r3, r2
 
-  8024456:	4659      	mov	r1, fp
 
-  8024458:	f000 fe50 	bl	80250fc <_sbrk_r>
 
-  802445c:	1c43      	adds	r3, r0, #1
 
-  802445e:	f000 8149 	beq.w	80246f4 <_malloc_r+0x53c>
 
-  8024462:	ebc8 0100 	rsb	r1, r8, r0
 
-  8024466:	4459      	add	r1, fp
 
-  8024468:	f041 0101 	orr.w	r1, r1, #1
 
-  802446c:	f8d9 3004 	ldr.w	r3, [r9, #4]
 
-  8024470:	42b5      	cmp	r5, r6
 
-  8024472:	f640 22d0 	movw	r2, #2768	; 0xad0
 
-  8024476:	f8c6 8008 	str.w	r8, [r6, #8]
 
-  802447a:	445b      	add	r3, fp
 
-  802447c:	f2c2 0200 	movt	r2, #8192	; 0x2000
 
-  8024480:	f8c8 1004 	str.w	r1, [r8, #4]
 
-  8024484:	f8c9 3004 	str.w	r3, [r9, #4]
 
-  8024488:	d018      	beq.n	80244bc <_malloc_r+0x304>
 
-  802448a:	f1ba 0f0f 	cmp.w	sl, #15
 
-  802448e:	f240 810b 	bls.w	80246a8 <_malloc_r+0x4f0>
 
-  8024492:	f1aa 000c 	sub.w	r0, sl, #12
 
-  8024496:	6869      	ldr	r1, [r5, #4]
 
-  8024498:	f020 0007 	bic.w	r0, r0, #7
 
-  802449c:	f04f 0c05 	mov.w	ip, #5
 
-  80244a0:	eb05 0e00 	add.w	lr, r5, r0
 
-  80244a4:	280f      	cmp	r0, #15
 
-  80244a6:	f001 0101 	and.w	r1, r1, #1
 
-  80244aa:	ea40 0101 	orr.w	r1, r0, r1
 
-  80244ae:	6069      	str	r1, [r5, #4]
 
-  80244b0:	f8ce c004 	str.w	ip, [lr, #4]
 
-  80244b4:	f8ce c008 	str.w	ip, [lr, #8]
 
-  80244b8:	f200 8120 	bhi.w	80246fc <_malloc_r+0x544>
 
-  80244bc:	f640 22d0 	movw	r2, #2768	; 0xad0
 
-  80244c0:	f8d9 102c 	ldr.w	r1, [r9, #44]	; 0x2c
 
-  80244c4:	f2c2 0200 	movt	r2, #8192	; 0x2000
 
-  80244c8:	68b5      	ldr	r5, [r6, #8]
 
-  80244ca:	428b      	cmp	r3, r1
 
-  80244cc:	f8d9 1030 	ldr.w	r1, [r9, #48]	; 0x30
 
-  80244d0:	bf88      	it	hi
 
-  80244d2:	62d3      	strhi	r3, [r2, #44]	; 0x2c
 
-  80244d4:	f640 22d0 	movw	r2, #2768	; 0xad0
 
-  80244d8:	f2c2 0200 	movt	r2, #8192	; 0x2000
 
-  80244dc:	428b      	cmp	r3, r1
 
-  80244de:	bf88      	it	hi
 
-  80244e0:	6313      	strhi	r3, [r2, #48]	; 0x30
 
-  80244e2:	686a      	ldr	r2, [r5, #4]
 
-  80244e4:	f022 0203 	bic.w	r2, r2, #3
 
-  80244e8:	4294      	cmp	r4, r2
 
-  80244ea:	ebc4 0302 	rsb	r3, r4, r2
 
-  80244ee:	d801      	bhi.n	80244f4 <_malloc_r+0x33c>
 
-  80244f0:	2b0f      	cmp	r3, #15
 
-  80244f2:	dc05      	bgt.n	8024500 <_malloc_r+0x348>
 
-  80244f4:	4638      	mov	r0, r7
 
-  80244f6:	f04f 0800 	mov.w	r8, #0
 
-  80244fa:	f000 f975 	bl	80247e8 <__malloc_unlock>
 
-  80244fe:	e690      	b.n	8024222 <_malloc_r+0x6a>
 
-  8024500:	192a      	adds	r2, r5, r4
 
-  8024502:	f043 0301 	orr.w	r3, r3, #1
 
-  8024506:	f044 0401 	orr.w	r4, r4, #1
 
-  802450a:	4638      	mov	r0, r7
 
-  802450c:	606c      	str	r4, [r5, #4]
 
-  802450e:	f105 0808 	add.w	r8, r5, #8
 
-  8024512:	6053      	str	r3, [r2, #4]
 
-  8024514:	60b2      	str	r2, [r6, #8]
 
-  8024516:	f000 f967 	bl	80247e8 <__malloc_unlock>
 
-  802451a:	e682      	b.n	8024222 <_malloc_r+0x6a>
 
-  802451c:	1859      	adds	r1, r3, r1
 
-  802451e:	68da      	ldr	r2, [r3, #12]
 
-  8024520:	689c      	ldr	r4, [r3, #8]
 
-  8024522:	4638      	mov	r0, r7
 
-  8024524:	684d      	ldr	r5, [r1, #4]
 
-  8024526:	f103 0808 	add.w	r8, r3, #8
 
-  802452a:	f045 0501 	orr.w	r5, r5, #1
 
-  802452e:	60e2      	str	r2, [r4, #12]
 
-  8024530:	6094      	str	r4, [r2, #8]
 
-  8024532:	604d      	str	r5, [r1, #4]
 
-  8024534:	f000 f958 	bl	80247e8 <__malloc_unlock>
 
-  8024538:	e673      	b.n	8024222 <_malloc_r+0x6a>
 
-  802453a:	f1bc 0f14 	cmp.w	ip, #20
 
-  802453e:	bf9c      	itt	ls
 
-  8024540:	f10c 0c5b 	addls.w	ip, ip, #91	; 0x5b
 
-  8024544:	ea4f 054c 	movls.w	r5, ip, lsl #1
 
-  8024548:	f67f ae86 	bls.w	8024258 <_malloc_r+0xa0>
 
-  802454c:	f1bc 0f54 	cmp.w	ip, #84	; 0x54
 
-  8024550:	f200 8093 	bhi.w	802467a <_malloc_r+0x4c2>
 
-  8024554:	ea4f 3c14 	mov.w	ip, r4, lsr #12
 
-  8024558:	f10c 0c6e 	add.w	ip, ip, #110	; 0x6e
 
-  802455c:	ea4f 054c 	mov.w	r5, ip, lsl #1
 
-  8024560:	e67a      	b.n	8024258 <_malloc_r+0xa0>
 
-  8024562:	0a42      	lsrs	r2, r0, #9
 
-  8024564:	2a04      	cmp	r2, #4
 
-  8024566:	d975      	bls.n	8024654 <_malloc_r+0x49c>
 
-  8024568:	2a14      	cmp	r2, #20
 
-  802456a:	bf9c      	itt	ls
 
-  802456c:	f102 095b 	addls.w	r9, r2, #91	; 0x5b
 
-  8024570:	ea4f 0549 	movls.w	r5, r9, lsl #1
 
-  8024574:	d908      	bls.n	8024588 <_malloc_r+0x3d0>
 
-  8024576:	2a54      	cmp	r2, #84	; 0x54
 
-  8024578:	f200 80c9 	bhi.w	802470e <_malloc_r+0x556>
 
-  802457c:	ea4f 3910 	mov.w	r9, r0, lsr #12
 
-  8024580:	f109 096e 	add.w	r9, r9, #110	; 0x6e
 
-  8024584:	ea4f 0549 	mov.w	r5, r9, lsl #1
 
-  8024588:	eb06 0585 	add.w	r5, r6, r5, lsl #2
 
-  802458c:	f240 189c 	movw	r8, #412	; 0x19c
 
-  8024590:	f2c2 0800 	movt	r8, #8192	; 0x2000
 
-  8024594:	68aa      	ldr	r2, [r5, #8]
 
-  8024596:	42aa      	cmp	r2, r5
 
-  8024598:	d079      	beq.n	802468e <_malloc_r+0x4d6>
 
-  802459a:	6851      	ldr	r1, [r2, #4]
 
-  802459c:	f021 0103 	bic.w	r1, r1, #3
 
-  80245a0:	4288      	cmp	r0, r1
 
-  80245a2:	d202      	bcs.n	80245aa <_malloc_r+0x3f2>
 
-  80245a4:	6892      	ldr	r2, [r2, #8]
 
-  80245a6:	4295      	cmp	r5, r2
 
-  80245a8:	d1f7      	bne.n	802459a <_malloc_r+0x3e2>
 
-  80245aa:	68d0      	ldr	r0, [r2, #12]
 
-  80245ac:	f8d6 9004 	ldr.w	r9, [r6, #4]
 
-  80245b0:	60d8      	str	r0, [r3, #12]
 
-  80245b2:	609a      	str	r2, [r3, #8]
 
-  80245b4:	60d3      	str	r3, [r2, #12]
 
-  80245b6:	6083      	str	r3, [r0, #8]
 
-  80245b8:	e697      	b.n	80242ea <_malloc_r+0x132>
 
-  80245ba:	191d      	adds	r5, r3, r4
 
-  80245bc:	f041 0601 	orr.w	r6, r1, #1
 
-  80245c0:	6155      	str	r5, [r2, #20]
 
-  80245c2:	f044 0401 	orr.w	r4, r4, #1
 
-  80245c6:	6115      	str	r5, [r2, #16]
 
-  80245c8:	4638      	mov	r0, r7
 
-  80245ca:	605c      	str	r4, [r3, #4]
 
-  80245cc:	f103 0808 	add.w	r8, r3, #8
 
-  80245d0:	f8c5 e00c 	str.w	lr, [r5, #12]
 
-  80245d4:	f8c5 e008 	str.w	lr, [r5, #8]
 
-  80245d8:	606e      	str	r6, [r5, #4]
 
-  80245da:	5069      	str	r1, [r5, r1]
 
-  80245dc:	f000 f904 	bl	80247e8 <__malloc_unlock>
 
-  80245e0:	e61f      	b.n	8024222 <_malloc_r+0x6a>
 
-  80245e2:	f108 0801 	add.w	r8, r8, #1
 
-  80245e6:	3008      	adds	r0, #8
 
-  80245e8:	f018 0f03 	tst.w	r8, #3
 
-  80245ec:	f47f ae99 	bne.w	8024322 <_malloc_r+0x16a>
 
-  80245f0:	464a      	mov	r2, r9
 
-  80245f2:	f01c 0f03 	tst.w	ip, #3
 
-  80245f6:	f1a2 0108 	sub.w	r1, r2, #8
 
-  80245fa:	f10c 3cff 	add.w	ip, ip, #4294967295
 
-  80245fe:	f000 809e 	beq.w	802473e <_malloc_r+0x586>
 
-  8024602:	6812      	ldr	r2, [r2, #0]
 
-  8024604:	428a      	cmp	r2, r1
 
-  8024606:	d0f4      	beq.n	80245f2 <_malloc_r+0x43a>
 
-  8024608:	6872      	ldr	r2, [r6, #4]
 
-  802460a:	005b      	lsls	r3, r3, #1
 
-  802460c:	4293      	cmp	r3, r2
 
-  802460e:	f63f aec8 	bhi.w	80243a2 <_malloc_r+0x1ea>
 
-  8024612:	2b00      	cmp	r3, #0
 
-  8024614:	f43f aec5 	beq.w	80243a2 <_malloc_r+0x1ea>
 
-  8024618:	421a      	tst	r2, r3
 
-  802461a:	f000 8095 	beq.w	8024748 <_malloc_r+0x590>
 
-  802461e:	46c4      	mov	ip, r8
 
-  8024620:	e67b      	b.n	802431a <_malloc_r+0x162>
 
-  8024622:	f103 0208 	add.w	r2, r3, #8
 
-  8024626:	695b      	ldr	r3, [r3, #20]
 
-  8024628:	429a      	cmp	r2, r3
 
-  802462a:	bf08      	it	eq
 
-  802462c:	f10c 0c02 	addeq.w	ip, ip, #2
 
-  8024630:	f43f ae2c 	beq.w	802428c <_malloc_r+0xd4>
 
-  8024634:	e5e4      	b.n	8024200 <_malloc_r+0x48>
 
-  8024636:	4690      	mov	r8, r2
 
-  8024638:	1955      	adds	r5, r2, r5
 
-  802463a:	68d3      	ldr	r3, [r2, #12]
 
-  802463c:	4638      	mov	r0, r7
 
-  802463e:	f858 2f08 	ldr.w	r2, [r8, #8]!
 
-  8024642:	6869      	ldr	r1, [r5, #4]
 
-  8024644:	60d3      	str	r3, [r2, #12]
 
-  8024646:	f041 0101 	orr.w	r1, r1, #1
 
-  802464a:	609a      	str	r2, [r3, #8]
 
-  802464c:	6069      	str	r1, [r5, #4]
 
-  802464e:	f000 f8cb 	bl	80247e8 <__malloc_unlock>
 
-  8024652:	e5e6      	b.n	8024222 <_malloc_r+0x6a>
 
-  8024654:	ea4f 1990 	mov.w	r9, r0, lsr #6
 
-  8024658:	f109 0938 	add.w	r9, r9, #56	; 0x38
 
-  802465c:	ea4f 0549 	mov.w	r5, r9, lsl #1
 
-  8024660:	e792      	b.n	8024588 <_malloc_r+0x3d0>
 
-  8024662:	42b5      	cmp	r5, r6
 
-  8024664:	f240 139c 	movw	r3, #412	; 0x19c
 
-  8024668:	f2c2 0300 	movt	r3, #8192	; 0x2000
 
-  802466c:	f43f aec8 	beq.w	8024400 <_malloc_r+0x248>
 
-  8024670:	689d      	ldr	r5, [r3, #8]
 
-  8024672:	686a      	ldr	r2, [r5, #4]
 
-  8024674:	f022 0203 	bic.w	r2, r2, #3
 
-  8024678:	e736      	b.n	80244e8 <_malloc_r+0x330>
 
-  802467a:	f5bc 7faa 	cmp.w	ip, #340	; 0x154
 
-  802467e:	d819      	bhi.n	80246b4 <_malloc_r+0x4fc>
 
-  8024680:	ea4f 3cd4 	mov.w	ip, r4, lsr #15
 
-  8024684:	f10c 0c77 	add.w	ip, ip, #119	; 0x77
 
-  8024688:	ea4f 054c 	mov.w	r5, ip, lsl #1
 
-  802468c:	e5e4      	b.n	8024258 <_malloc_r+0xa0>
 
-  802468e:	2501      	movs	r5, #1
 
-  8024690:	f8d8 1004 	ldr.w	r1, [r8, #4]
 
-  8024694:	ea4f 09a9 	mov.w	r9, r9, asr #2
 
-  8024698:	4610      	mov	r0, r2
 
-  802469a:	fa05 f509 	lsl.w	r5, r5, r9
 
-  802469e:	ea45 0901 	orr.w	r9, r5, r1
 
-  80246a2:	f8c8 9004 	str.w	r9, [r8, #4]
 
-  80246a6:	e783      	b.n	80245b0 <_malloc_r+0x3f8>
 
-  80246a8:	2301      	movs	r3, #1
 
-  80246aa:	4645      	mov	r5, r8
 
-  80246ac:	f8c8 3004 	str.w	r3, [r8, #4]
 
-  80246b0:	2200      	movs	r2, #0
 
-  80246b2:	e719      	b.n	80244e8 <_malloc_r+0x330>
 
-  80246b4:	f240 5354 	movw	r3, #1364	; 0x554
 
-  80246b8:	459c      	cmp	ip, r3
 
-  80246ba:	d80b      	bhi.n	80246d4 <_malloc_r+0x51c>
 
-  80246bc:	ea4f 4c94 	mov.w	ip, r4, lsr #18
 
-  80246c0:	f10c 0c7c 	add.w	ip, ip, #124	; 0x7c
 
-  80246c4:	ea4f 054c 	mov.w	r5, ip, lsl #1
 
-  80246c8:	e5c6      	b.n	8024258 <_malloc_r+0xa0>
 
-  80246ca:	68b5      	ldr	r5, [r6, #8]
 
-  80246cc:	686a      	ldr	r2, [r5, #4]
 
-  80246ce:	f022 0203 	bic.w	r2, r2, #3
 
-  80246d2:	e709      	b.n	80244e8 <_malloc_r+0x330>
 
-  80246d4:	25fc      	movs	r5, #252	; 0xfc
 
-  80246d6:	f04f 0c7e 	mov.w	ip, #126	; 0x7e
 
-  80246da:	e5bd      	b.n	8024258 <_malloc_r+0xa0>
 
-  80246dc:	0511      	lsls	r1, r2, #20
 
-  80246de:	0d09      	lsrs	r1, r1, #20
 
-  80246e0:	2900      	cmp	r1, #0
 
-  80246e2:	f47f ae95 	bne.w	8024410 <_malloc_r+0x258>
 
-  80246e6:	68b2      	ldr	r2, [r6, #8]
 
-  80246e8:	eb0b 010a 	add.w	r1, fp, sl
 
-  80246ec:	f041 0101 	orr.w	r1, r1, #1
 
-  80246f0:	6051      	str	r1, [r2, #4]
 
-  80246f2:	e6e3      	b.n	80244bc <_malloc_r+0x304>
 
-  80246f4:	2101      	movs	r1, #1
 
-  80246f6:	f04f 0b00 	mov.w	fp, #0
 
-  80246fa:	e6b7      	b.n	802446c <_malloc_r+0x2b4>
 
-  80246fc:	4638      	mov	r0, r7
 
-  80246fe:	f105 0108 	add.w	r1, r5, #8
 
-  8024702:	9201      	str	r2, [sp, #4]
 
-  8024704:	f7ff f822 	bl	802374c <_free_r>
 
-  8024708:	9a01      	ldr	r2, [sp, #4]
 
-  802470a:	6853      	ldr	r3, [r2, #4]
 
-  802470c:	e6d6      	b.n	80244bc <_malloc_r+0x304>
 
-  802470e:	f5b2 7faa 	cmp.w	r2, #340	; 0x154
 
-  8024712:	d806      	bhi.n	8024722 <_malloc_r+0x56a>
 
-  8024714:	ea4f 39d0 	mov.w	r9, r0, lsr #15
 
-  8024718:	f109 0977 	add.w	r9, r9, #119	; 0x77
 
-  802471c:	ea4f 0549 	mov.w	r5, r9, lsl #1
 
-  8024720:	e732      	b.n	8024588 <_malloc_r+0x3d0>
 
-  8024722:	f240 5154 	movw	r1, #1364	; 0x554
 
-  8024726:	25fc      	movs	r5, #252	; 0xfc
 
-  8024728:	428a      	cmp	r2, r1
 
-  802472a:	f04f 097e 	mov.w	r9, #126	; 0x7e
 
-  802472e:	bf9e      	ittt	ls
 
-  8024730:	ea4f 4990 	movls.w	r9, r0, lsr #18
 
-  8024734:	f109 097c 	addls.w	r9, r9, #124	; 0x7c
 
-  8024738:	ea4f 0549 	movls.w	r5, r9, lsl #1
 
-  802473c:	e724      	b.n	8024588 <_malloc_r+0x3d0>
 
-  802473e:	6872      	ldr	r2, [r6, #4]
 
-  8024740:	ea22 0203 	bic.w	r2, r2, r3
 
-  8024744:	6072      	str	r2, [r6, #4]
 
-  8024746:	e760      	b.n	802460a <_malloc_r+0x452>
 
-  8024748:	005b      	lsls	r3, r3, #1
 
-  802474a:	f108 0804 	add.w	r8, r8, #4
 
-  802474e:	e763      	b.n	8024618 <_malloc_r+0x460>
 
- 08024750 <memchr>:
 
-  8024750:	0783      	lsls	r3, r0, #30
 
-  8024752:	b2c9      	uxtb	r1, r1
 
-  8024754:	b470      	push	{r4, r5, r6}
 
-  8024756:	d040      	beq.n	80247da <memchr+0x8a>
 
-  8024758:	1e54      	subs	r4, r2, #1
 
-  802475a:	2a00      	cmp	r2, #0
 
-  802475c:	d03f      	beq.n	80247de <memchr+0x8e>
 
-  802475e:	7803      	ldrb	r3, [r0, #0]
 
-  8024760:	428b      	cmp	r3, r1
 
-  8024762:	d021      	beq.n	80247a8 <memchr+0x58>
 
-  8024764:	1c43      	adds	r3, r0, #1
 
-  8024766:	e004      	b.n	8024772 <memchr+0x22>
 
-  8024768:	b304      	cbz	r4, 80247ac <memchr+0x5c>
 
-  802476a:	7802      	ldrb	r2, [r0, #0]
 
-  802476c:	3c01      	subs	r4, #1
 
-  802476e:	428a      	cmp	r2, r1
 
-  8024770:	d01a      	beq.n	80247a8 <memchr+0x58>
 
-  8024772:	f013 0f03 	tst.w	r3, #3
 
-  8024776:	4618      	mov	r0, r3
 
-  8024778:	f103 0301 	add.w	r3, r3, #1
 
-  802477c:	d1f4      	bne.n	8024768 <memchr+0x18>
 
-  802477e:	2c03      	cmp	r4, #3
 
-  8024780:	d816      	bhi.n	80247b0 <memchr+0x60>
 
-  8024782:	1e65      	subs	r5, r4, #1
 
-  8024784:	b194      	cbz	r4, 80247ac <memchr+0x5c>
 
-  8024786:	7803      	ldrb	r3, [r0, #0]
 
-  8024788:	428b      	cmp	r3, r1
 
-  802478a:	d00d      	beq.n	80247a8 <memchr+0x58>
 
-  802478c:	1c42      	adds	r2, r0, #1
 
-  802478e:	2300      	movs	r3, #0
 
-  8024790:	e002      	b.n	8024798 <memchr+0x48>
 
-  8024792:	7804      	ldrb	r4, [r0, #0]
 
-  8024794:	428c      	cmp	r4, r1
 
-  8024796:	d007      	beq.n	80247a8 <memchr+0x58>
 
-  8024798:	429d      	cmp	r5, r3
 
-  802479a:	4610      	mov	r0, r2
 
-  802479c:	f103 0301 	add.w	r3, r3, #1
 
-  80247a0:	f102 0201 	add.w	r2, r2, #1
 
-  80247a4:	d1f5      	bne.n	8024792 <memchr+0x42>
 
-  80247a6:	2000      	movs	r0, #0
 
-  80247a8:	bc70      	pop	{r4, r5, r6}
 
-  80247aa:	4770      	bx	lr
 
-  80247ac:	4620      	mov	r0, r4
 
-  80247ae:	e7fb      	b.n	80247a8 <memchr+0x58>
 
-  80247b0:	ea41 2601 	orr.w	r6, r1, r1, lsl #8
 
-  80247b4:	ea46 4606 	orr.w	r6, r6, r6, lsl #16
 
-  80247b8:	4602      	mov	r2, r0
 
-  80247ba:	3004      	adds	r0, #4
 
-  80247bc:	6813      	ldr	r3, [r2, #0]
 
-  80247be:	4073      	eors	r3, r6
 
-  80247c0:	f1a3 3501 	sub.w	r5, r3, #16843009	; 0x1010101
 
-  80247c4:	ea25 0303 	bic.w	r3, r5, r3
 
-  80247c8:	f013 3f80 	tst.w	r3, #2155905152	; 0x80808080
 
-  80247cc:	d103      	bne.n	80247d6 <memchr+0x86>
 
-  80247ce:	3c04      	subs	r4, #4
 
-  80247d0:	2c03      	cmp	r4, #3
 
-  80247d2:	d8f1      	bhi.n	80247b8 <memchr+0x68>
 
-  80247d4:	e7d5      	b.n	8024782 <memchr+0x32>
 
-  80247d6:	4610      	mov	r0, r2
 
-  80247d8:	e7d3      	b.n	8024782 <memchr+0x32>
 
-  80247da:	4614      	mov	r4, r2
 
-  80247dc:	e7cf      	b.n	802477e <memchr+0x2e>
 
-  80247de:	4610      	mov	r0, r2
 
-  80247e0:	e7e2      	b.n	80247a8 <memchr+0x58>
 
-  80247e2:	bf00      	nop
 
- 080247e4 <__malloc_lock>:
 
-  80247e4:	4770      	bx	lr
 
-  80247e6:	bf00      	nop
 
- 080247e8 <__malloc_unlock>:
 
-  80247e8:	4770      	bx	lr
 
-  80247ea:	bf00      	nop
 
- 080247ec <_Balloc>:
 
-  80247ec:	b570      	push	{r4, r5, r6, lr}
 
-  80247ee:	4606      	mov	r6, r0
 
-  80247f0:	6a44      	ldr	r4, [r0, #36]	; 0x24
 
-  80247f2:	460d      	mov	r5, r1
 
-  80247f4:	b15c      	cbz	r4, 802480e <_Balloc+0x22>
 
-  80247f6:	68e2      	ldr	r2, [r4, #12]
 
-  80247f8:	b19a      	cbz	r2, 8024822 <_Balloc+0x36>
 
-  80247fa:	f852 0025 	ldr.w	r0, [r2, r5, lsl #2]
 
-  80247fe:	b1e0      	cbz	r0, 802483a <_Balloc+0x4e>
 
-  8024800:	6801      	ldr	r1, [r0, #0]
 
-  8024802:	f842 1025 	str.w	r1, [r2, r5, lsl #2]
 
-  8024806:	2200      	movs	r2, #0
 
-  8024808:	6102      	str	r2, [r0, #16]
 
-  802480a:	60c2      	str	r2, [r0, #12]
 
-  802480c:	bd70      	pop	{r4, r5, r6, pc}
 
-  802480e:	2010      	movs	r0, #16
 
-  8024810:	f7ff fcc2 	bl	8024198 <malloc>
 
-  8024814:	2300      	movs	r3, #0
 
-  8024816:	4604      	mov	r4, r0
 
-  8024818:	6270      	str	r0, [r6, #36]	; 0x24
 
-  802481a:	6043      	str	r3, [r0, #4]
 
-  802481c:	6083      	str	r3, [r0, #8]
 
-  802481e:	6003      	str	r3, [r0, #0]
 
-  8024820:	60c3      	str	r3, [r0, #12]
 
-  8024822:	2221      	movs	r2, #33	; 0x21
 
-  8024824:	4630      	mov	r0, r6
 
-  8024826:	2104      	movs	r1, #4
 
-  8024828:	f000 fcfc 	bl	8025224 <_calloc_r>
 
-  802482c:	6a73      	ldr	r3, [r6, #36]	; 0x24
 
-  802482e:	60e0      	str	r0, [r4, #12]
 
-  8024830:	68da      	ldr	r2, [r3, #12]
 
-  8024832:	2a00      	cmp	r2, #0
 
-  8024834:	d1e1      	bne.n	80247fa <_Balloc+0xe>
 
-  8024836:	2000      	movs	r0, #0
 
-  8024838:	bd70      	pop	{r4, r5, r6, pc}
 
-  802483a:	2301      	movs	r3, #1
 
-  802483c:	4630      	mov	r0, r6
 
-  802483e:	4619      	mov	r1, r3
 
-  8024840:	fa03 f405 	lsl.w	r4, r3, r5
 
-  8024844:	1d62      	adds	r2, r4, #5
 
-  8024846:	0092      	lsls	r2, r2, #2
 
-  8024848:	f000 fcec 	bl	8025224 <_calloc_r>
 
-  802484c:	2800      	cmp	r0, #0
 
-  802484e:	d0f2      	beq.n	8024836 <_Balloc+0x4a>
 
-  8024850:	6045      	str	r5, [r0, #4]
 
-  8024852:	6084      	str	r4, [r0, #8]
 
-  8024854:	e7d7      	b.n	8024806 <_Balloc+0x1a>
 
-  8024856:	bf00      	nop
 
- 08024858 <_Bfree>:
 
-  8024858:	b530      	push	{r4, r5, lr}
 
-  802485a:	4604      	mov	r4, r0
 
-  802485c:	6a45      	ldr	r5, [r0, #36]	; 0x24
 
-  802485e:	b083      	sub	sp, #12
 
-  8024860:	b155      	cbz	r5, 8024878 <_Bfree+0x20>
 
-  8024862:	b139      	cbz	r1, 8024874 <_Bfree+0x1c>
 
-  8024864:	6a63      	ldr	r3, [r4, #36]	; 0x24
 
-  8024866:	684a      	ldr	r2, [r1, #4]
 
-  8024868:	68db      	ldr	r3, [r3, #12]
 
-  802486a:	f853 0022 	ldr.w	r0, [r3, r2, lsl #2]
 
-  802486e:	6008      	str	r0, [r1, #0]
 
-  8024870:	f843 1022 	str.w	r1, [r3, r2, lsl #2]
 
-  8024874:	b003      	add	sp, #12
 
-  8024876:	bd30      	pop	{r4, r5, pc}
 
-  8024878:	2010      	movs	r0, #16
 
-  802487a:	9101      	str	r1, [sp, #4]
 
-  802487c:	f7ff fc8c 	bl	8024198 <malloc>
 
-  8024880:	9901      	ldr	r1, [sp, #4]
 
-  8024882:	6260      	str	r0, [r4, #36]	; 0x24
 
-  8024884:	6045      	str	r5, [r0, #4]
 
-  8024886:	6085      	str	r5, [r0, #8]
 
-  8024888:	6005      	str	r5, [r0, #0]
 
-  802488a:	60c5      	str	r5, [r0, #12]
 
-  802488c:	e7e9      	b.n	8024862 <_Bfree+0xa>
 
-  802488e:	bf00      	nop
 
- 08024890 <__multadd>:
 
-  8024890:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
 
-  8024894:	4688      	mov	r8, r1
 
-  8024896:	f8d1 a010 	ldr.w	sl, [r1, #16]
 
-  802489a:	b082      	sub	sp, #8
 
-  802489c:	4681      	mov	r9, r0
 
-  802489e:	f101 0514 	add.w	r5, r1, #20
 
-  80248a2:	2400      	movs	r4, #0
 
-  80248a4:	682f      	ldr	r7, [r5, #0]
 
-  80248a6:	3401      	adds	r4, #1
 
-  80248a8:	b2be      	uxth	r6, r7
 
-  80248aa:	0c3f      	lsrs	r7, r7, #16
 
-  80248ac:	fb02 3606 	mla	r6, r2, r6, r3
 
-  80248b0:	fb02 f307 	mul.w	r3, r2, r7
 
-  80248b4:	eb03 4316 	add.w	r3, r3, r6, lsr #16
 
-  80248b8:	b2b6      	uxth	r6, r6
 
-  80248ba:	eb06 4603 	add.w	r6, r6, r3, lsl #16
 
-  80248be:	0c1b      	lsrs	r3, r3, #16
 
-  80248c0:	45a2      	cmp	sl, r4
 
-  80248c2:	f845 6b04 	str.w	r6, [r5], #4
 
-  80248c6:	dced      	bgt.n	80248a4 <__multadd+0x14>
 
-  80248c8:	b153      	cbz	r3, 80248e0 <__multadd+0x50>
 
-  80248ca:	f8d8 2008 	ldr.w	r2, [r8, #8]
 
-  80248ce:	4592      	cmp	sl, r2
 
-  80248d0:	da0a      	bge.n	80248e8 <__multadd+0x58>
 
-  80248d2:	eb08 028a 	add.w	r2, r8, sl, lsl #2
 
-  80248d6:	f10a 0101 	add.w	r1, sl, #1
 
-  80248da:	f8c8 1010 	str.w	r1, [r8, #16]
 
-  80248de:	6153      	str	r3, [r2, #20]
 
-  80248e0:	4640      	mov	r0, r8
 
-  80248e2:	b002      	add	sp, #8
 
-  80248e4:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
 
-  80248e8:	f8d8 1004 	ldr.w	r1, [r8, #4]
 
-  80248ec:	4648      	mov	r0, r9
 
-  80248ee:	9301      	str	r3, [sp, #4]
 
-  80248f0:	3101      	adds	r1, #1
 
-  80248f2:	f7ff ff7b 	bl	80247ec <_Balloc>
 
-  80248f6:	f8d8 2010 	ldr.w	r2, [r8, #16]
 
-  80248fa:	f108 010c 	add.w	r1, r8, #12
 
-  80248fe:	3202      	adds	r2, #2
 
-  8024900:	0092      	lsls	r2, r2, #2
 
-  8024902:	4604      	mov	r4, r0
 
-  8024904:	300c      	adds	r0, #12
 
-  8024906:	f7fd f841 	bl	802198c <memcpy>
 
-  802490a:	4641      	mov	r1, r8
 
-  802490c:	4648      	mov	r0, r9
 
-  802490e:	46a0      	mov	r8, r4
 
-  8024910:	f7ff ffa2 	bl	8024858 <_Bfree>
 
-  8024914:	9b01      	ldr	r3, [sp, #4]
 
-  8024916:	e7dc      	b.n	80248d2 <__multadd+0x42>
 
- 08024918 <__s2b>:
 
-  8024918:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
 
-  802491c:	f648 6539 	movw	r5, #36409	; 0x8e39
 
-  8024920:	461f      	mov	r7, r3
 
-  8024922:	f6c3 05e3 	movt	r5, #14563	; 0x38e3
 
-  8024926:	3308      	adds	r3, #8
 
-  8024928:	4606      	mov	r6, r0
 
-  802492a:	460c      	mov	r4, r1
 
-  802492c:	4690      	mov	r8, r2
 
-  802492e:	fb85 1003 	smull	r1, r0, r5, r3
 
-  8024932:	17db      	asrs	r3, r3, #31
 
-  8024934:	ebc3 0060 	rsb	r0, r3, r0, asr #1
 
-  8024938:	2801      	cmp	r0, #1
 
-  802493a:	dd37      	ble.n	80249ac <__s2b+0x94>
 
-  802493c:	2501      	movs	r5, #1
 
-  802493e:	2100      	movs	r1, #0
 
-  8024940:	006d      	lsls	r5, r5, #1
 
-  8024942:	3101      	adds	r1, #1
 
-  8024944:	42a8      	cmp	r0, r5
 
-  8024946:	dcfb      	bgt.n	8024940 <__s2b+0x28>
 
-  8024948:	4630      	mov	r0, r6
 
-  802494a:	f7ff ff4f 	bl	80247ec <_Balloc>
 
-  802494e:	9b08      	ldr	r3, [sp, #32]
 
-  8024950:	6143      	str	r3, [r0, #20]
 
-  8024952:	2301      	movs	r3, #1
 
-  8024954:	f1b8 0f09 	cmp.w	r8, #9
 
-  8024958:	4601      	mov	r1, r0
 
-  802495a:	6103      	str	r3, [r0, #16]
 
-  802495c:	dd22      	ble.n	80249a4 <__s2b+0x8c>
 
-  802495e:	f104 0909 	add.w	r9, r4, #9
 
-  8024962:	4444      	add	r4, r8
 
-  8024964:	464d      	mov	r5, r9
 
-  8024966:	f815 3b01 	ldrb.w	r3, [r5], #1
 
-  802496a:	220a      	movs	r2, #10
 
-  802496c:	4630      	mov	r0, r6
 
-  802496e:	3b30      	subs	r3, #48	; 0x30
 
-  8024970:	f7ff ff8e 	bl	8024890 <__multadd>
 
-  8024974:	42a5      	cmp	r5, r4
 
-  8024976:	4601      	mov	r1, r0
 
-  8024978:	d1f5      	bne.n	8024966 <__s2b+0x4e>
 
-  802497a:	eb09 0408 	add.w	r4, r9, r8
 
-  802497e:	3c08      	subs	r4, #8
 
-  8024980:	4547      	cmp	r7, r8
 
-  8024982:	dd0c      	ble.n	802499e <__s2b+0x86>
 
-  8024984:	ebc8 0707 	rsb	r7, r8, r7
 
-  8024988:	19e7      	adds	r7, r4, r7
 
-  802498a:	f814 3b01 	ldrb.w	r3, [r4], #1
 
-  802498e:	220a      	movs	r2, #10
 
-  8024990:	4630      	mov	r0, r6
 
-  8024992:	3b30      	subs	r3, #48	; 0x30
 
-  8024994:	f7ff ff7c 	bl	8024890 <__multadd>
 
-  8024998:	42bc      	cmp	r4, r7
 
-  802499a:	4601      	mov	r1, r0
 
-  802499c:	d1f5      	bne.n	802498a <__s2b+0x72>
 
-  802499e:	4608      	mov	r0, r1
 
-  80249a0:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
 
-  80249a4:	340a      	adds	r4, #10
 
-  80249a6:	f04f 0809 	mov.w	r8, #9
 
-  80249aa:	e7e9      	b.n	8024980 <__s2b+0x68>
 
-  80249ac:	2100      	movs	r1, #0
 
-  80249ae:	e7cb      	b.n	8024948 <__s2b+0x30>
 
- 080249b0 <__hi0bits>:
 
-  80249b0:	4603      	mov	r3, r0
 
-  80249b2:	2000      	movs	r0, #0
 
-  80249b4:	0c1a      	lsrs	r2, r3, #16
 
-  80249b6:	d101      	bne.n	80249bc <__hi0bits+0xc>
 
-  80249b8:	041b      	lsls	r3, r3, #16
 
-  80249ba:	2010      	movs	r0, #16
 
-  80249bc:	f013 4f7f 	tst.w	r3, #4278190080	; 0xff000000
 
-  80249c0:	d101      	bne.n	80249c6 <__hi0bits+0x16>
 
-  80249c2:	3008      	adds	r0, #8
 
-  80249c4:	021b      	lsls	r3, r3, #8
 
-  80249c6:	f013 4f70 	tst.w	r3, #4026531840	; 0xf0000000
 
-  80249ca:	d101      	bne.n	80249d0 <__hi0bits+0x20>
 
-  80249cc:	3004      	adds	r0, #4
 
-  80249ce:	011b      	lsls	r3, r3, #4
 
-  80249d0:	f013 4f40 	tst.w	r3, #3221225472	; 0xc0000000
 
-  80249d4:	d101      	bne.n	80249da <__hi0bits+0x2a>
 
-  80249d6:	3002      	adds	r0, #2
 
-  80249d8:	009b      	lsls	r3, r3, #2
 
-  80249da:	2b00      	cmp	r3, #0
 
-  80249dc:	db02      	blt.n	80249e4 <__hi0bits+0x34>
 
-  80249de:	005b      	lsls	r3, r3, #1
 
-  80249e0:	d401      	bmi.n	80249e6 <__hi0bits+0x36>
 
-  80249e2:	2020      	movs	r0, #32
 
-  80249e4:	4770      	bx	lr
 
-  80249e6:	3001      	adds	r0, #1
 
-  80249e8:	4770      	bx	lr
 
-  80249ea:	bf00      	nop
 
- 080249ec <__lo0bits>:
 
-  80249ec:	6803      	ldr	r3, [r0, #0]
 
-  80249ee:	4602      	mov	r2, r0
 
-  80249f0:	f013 0007 	ands.w	r0, r3, #7
 
-  80249f4:	d007      	beq.n	8024a06 <__lo0bits+0x1a>
 
-  80249f6:	07d9      	lsls	r1, r3, #31
 
-  80249f8:	d41f      	bmi.n	8024a3a <__lo0bits+0x4e>
 
-  80249fa:	0798      	lsls	r0, r3, #30
 
-  80249fc:	d41f      	bmi.n	8024a3e <__lo0bits+0x52>
 
-  80249fe:	089b      	lsrs	r3, r3, #2
 
-  8024a00:	2002      	movs	r0, #2
 
-  8024a02:	6013      	str	r3, [r2, #0]
 
-  8024a04:	4770      	bx	lr
 
-  8024a06:	b299      	uxth	r1, r3
 
-  8024a08:	b909      	cbnz	r1, 8024a0e <__lo0bits+0x22>
 
-  8024a0a:	0c1b      	lsrs	r3, r3, #16
 
-  8024a0c:	2010      	movs	r0, #16
 
-  8024a0e:	f013 0fff 	tst.w	r3, #255	; 0xff
 
-  8024a12:	d101      	bne.n	8024a18 <__lo0bits+0x2c>
 
-  8024a14:	3008      	adds	r0, #8
 
-  8024a16:	0a1b      	lsrs	r3, r3, #8
 
-  8024a18:	0719      	lsls	r1, r3, #28
 
-  8024a1a:	d101      	bne.n	8024a20 <__lo0bits+0x34>
 
-  8024a1c:	3004      	adds	r0, #4
 
-  8024a1e:	091b      	lsrs	r3, r3, #4
 
-  8024a20:	0799      	lsls	r1, r3, #30
 
-  8024a22:	d101      	bne.n	8024a28 <__lo0bits+0x3c>
 
-  8024a24:	3002      	adds	r0, #2
 
-  8024a26:	089b      	lsrs	r3, r3, #2
 
-  8024a28:	07d9      	lsls	r1, r3, #31
 
-  8024a2a:	d404      	bmi.n	8024a36 <__lo0bits+0x4a>
 
-  8024a2c:	085b      	lsrs	r3, r3, #1
 
-  8024a2e:	d101      	bne.n	8024a34 <__lo0bits+0x48>
 
-  8024a30:	2020      	movs	r0, #32
 
-  8024a32:	4770      	bx	lr
 
-  8024a34:	3001      	adds	r0, #1
 
-  8024a36:	6013      	str	r3, [r2, #0]
 
-  8024a38:	4770      	bx	lr
 
-  8024a3a:	2000      	movs	r0, #0
 
-  8024a3c:	4770      	bx	lr
 
-  8024a3e:	085b      	lsrs	r3, r3, #1
 
-  8024a40:	2001      	movs	r0, #1
 
-  8024a42:	6013      	str	r3, [r2, #0]
 
-  8024a44:	4770      	bx	lr
 
-  8024a46:	bf00      	nop
 
- 08024a48 <__i2b>:
 
-  8024a48:	b510      	push	{r4, lr}
 
-  8024a4a:	460c      	mov	r4, r1
 
-  8024a4c:	2101      	movs	r1, #1
 
-  8024a4e:	f7ff fecd 	bl	80247ec <_Balloc>
 
-  8024a52:	2201      	movs	r2, #1
 
-  8024a54:	6144      	str	r4, [r0, #20]
 
-  8024a56:	6102      	str	r2, [r0, #16]
 
-  8024a58:	bd10      	pop	{r4, pc}
 
-  8024a5a:	bf00      	nop
 
- 08024a5c <__multiply>:
 
-  8024a5c:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-  8024a60:	460c      	mov	r4, r1
 
-  8024a62:	690e      	ldr	r6, [r1, #16]
 
-  8024a64:	b085      	sub	sp, #20
 
-  8024a66:	6915      	ldr	r5, [r2, #16]
 
-  8024a68:	4617      	mov	r7, r2
 
-  8024a6a:	42ae      	cmp	r6, r5
 
-  8024a6c:	da04      	bge.n	8024a78 <__multiply+0x1c>
 
-  8024a6e:	4632      	mov	r2, r6
 
-  8024a70:	463c      	mov	r4, r7
 
-  8024a72:	462e      	mov	r6, r5
 
-  8024a74:	460f      	mov	r7, r1
 
-  8024a76:	4615      	mov	r5, r2
 
-  8024a78:	68a3      	ldr	r3, [r4, #8]
 
-  8024a7a:	eb06 0805 	add.w	r8, r6, r5
 
-  8024a7e:	6861      	ldr	r1, [r4, #4]
 
-  8024a80:	4598      	cmp	r8, r3
 
-  8024a82:	bfc8      	it	gt
 
-  8024a84:	3101      	addgt	r1, #1
 
-  8024a86:	f7ff feb1 	bl	80247ec <_Balloc>
 
-  8024a8a:	eb00 0988 	add.w	r9, r0, r8, lsl #2
 
-  8024a8e:	f100 0314 	add.w	r3, r0, #20
 
-  8024a92:	f109 0914 	add.w	r9, r9, #20
 
-  8024a96:	9001      	str	r0, [sp, #4]
 
-  8024a98:	2000      	movs	r0, #0
 
-  8024a9a:	454b      	cmp	r3, r9
 
-  8024a9c:	d203      	bcs.n	8024aa6 <__multiply+0x4a>
 
-  8024a9e:	f843 0b04 	str.w	r0, [r3], #4
 
-  8024aa2:	4599      	cmp	r9, r3
 
-  8024aa4:	d8fb      	bhi.n	8024a9e <__multiply+0x42>
 
-  8024aa6:	eb07 0585 	add.w	r5, r7, r5, lsl #2
 
-  8024aaa:	eb04 0686 	add.w	r6, r4, r6, lsl #2
 
-  8024aae:	3714      	adds	r7, #20
 
-  8024ab0:	3514      	adds	r5, #20
 
-  8024ab2:	3414      	adds	r4, #20
 
-  8024ab4:	3614      	adds	r6, #20
 
-  8024ab6:	42af      	cmp	r7, r5
 
-  8024ab8:	d257      	bcs.n	8024b6a <__multiply+0x10e>
 
-  8024aba:	9a01      	ldr	r2, [sp, #4]
 
-  8024abc:	f8cd 9008 	str.w	r9, [sp, #8]
 
-  8024ac0:	46a9      	mov	r9, r5
 
-  8024ac2:	f8cd 800c 	str.w	r8, [sp, #12]
 
-  8024ac6:	f102 0c18 	add.w	ip, r2, #24
 
-  8024aca:	46a0      	mov	r8, r4
 
-  8024acc:	f857 4b04 	ldr.w	r4, [r7], #4
 
-  8024ad0:	b2a0      	uxth	r0, r4
 
-  8024ad2:	b1f0      	cbz	r0, 8024b12 <__multiply+0xb6>
 
-  8024ad4:	4642      	mov	r2, r8
 
-  8024ad6:	f1ac 0304 	sub.w	r3, ip, #4
 
-  8024ada:	2400      	movs	r4, #0
 
-  8024adc:	f852 1b04 	ldr.w	r1, [r2], #4
 
-  8024ae0:	681d      	ldr	r5, [r3, #0]
 
-  8024ae2:	fa1f fa81 	uxth.w	sl, r1
 
-  8024ae6:	0c09      	lsrs	r1, r1, #16
 
-  8024ae8:	fa1f fb85 	uxth.w	fp, r5
 
-  8024aec:	0c2d      	lsrs	r5, r5, #16
 
-  8024aee:	fb00 ba0a 	mla	sl, r0, sl, fp
 
-  8024af2:	fb00 5101 	mla	r1, r0, r1, r5
 
-  8024af6:	4454      	add	r4, sl
 
-  8024af8:	eb01 4114 	add.w	r1, r1, r4, lsr #16
 
-  8024afc:	b2a4      	uxth	r4, r4
 
-  8024afe:	ea44 4501 	orr.w	r5, r4, r1, lsl #16
 
-  8024b02:	0c0c      	lsrs	r4, r1, #16
 
-  8024b04:	4296      	cmp	r6, r2
 
-  8024b06:	f843 5b04 	str.w	r5, [r3], #4
 
-  8024b0a:	d8e7      	bhi.n	8024adc <__multiply+0x80>
 
-  8024b0c:	601c      	str	r4, [r3, #0]
 
-  8024b0e:	f857 4c04 	ldr.w	r4, [r7, #-4]
 
-  8024b12:	0c24      	lsrs	r4, r4, #16
 
-  8024b14:	d021      	beq.n	8024b5a <__multiply+0xfe>
 
-  8024b16:	f85c 1c04 	ldr.w	r1, [ip, #-4]
 
-  8024b1a:	4642      	mov	r2, r8
 
-  8024b1c:	4663      	mov	r3, ip
 
-  8024b1e:	2500      	movs	r5, #0
 
-  8024b20:	4608      	mov	r0, r1
 
-  8024b22:	f8b2 a000 	ldrh.w	sl, [r2]
 
-  8024b26:	0c00      	lsrs	r0, r0, #16
 
-  8024b28:	b289      	uxth	r1, r1
 
-  8024b2a:	469b      	mov	fp, r3
 
-  8024b2c:	fb04 000a 	mla	r0, r4, sl, r0
 
-  8024b30:	1945      	adds	r5, r0, r5
 
-  8024b32:	ea41 4105 	orr.w	r1, r1, r5, lsl #16
 
-  8024b36:	f843 1c04 	str.w	r1, [r3, #-4]
 
-  8024b3a:	f853 0b04 	ldr.w	r0, [r3], #4
 
-  8024b3e:	f852 1b04 	ldr.w	r1, [r2], #4
 
-  8024b42:	fa1f fa80 	uxth.w	sl, r0
 
-  8024b46:	0c09      	lsrs	r1, r1, #16
 
-  8024b48:	fb04 a101 	mla	r1, r4, r1, sl
 
-  8024b4c:	eb01 4115 	add.w	r1, r1, r5, lsr #16
 
-  8024b50:	0c0d      	lsrs	r5, r1, #16
 
-  8024b52:	4296      	cmp	r6, r2
 
-  8024b54:	d8e5      	bhi.n	8024b22 <__multiply+0xc6>
 
-  8024b56:	f8cb 1000 	str.w	r1, [fp]
 
-  8024b5a:	45b9      	cmp	r9, r7
 
-  8024b5c:	f10c 0c04 	add.w	ip, ip, #4
 
-  8024b60:	d8b4      	bhi.n	8024acc <__multiply+0x70>
 
-  8024b62:	f8dd 9008 	ldr.w	r9, [sp, #8]
 
-  8024b66:	f8dd 800c 	ldr.w	r8, [sp, #12]
 
-  8024b6a:	f1b8 0f00 	cmp.w	r8, #0
 
-  8024b6e:	dd0b      	ble.n	8024b88 <__multiply+0x12c>
 
-  8024b70:	f859 3c04 	ldr.w	r3, [r9, #-4]
 
-  8024b74:	f1a9 0904 	sub.w	r9, r9, #4
 
-  8024b78:	b11b      	cbz	r3, 8024b82 <__multiply+0x126>
 
-  8024b7a:	e005      	b.n	8024b88 <__multiply+0x12c>
 
-  8024b7c:	f859 3d04 	ldr.w	r3, [r9, #-4]!
 
-  8024b80:	b913      	cbnz	r3, 8024b88 <__multiply+0x12c>
 
-  8024b82:	f1b8 0801 	subs.w	r8, r8, #1
 
-  8024b86:	d1f9      	bne.n	8024b7c <__multiply+0x120>
 
-  8024b88:	9b01      	ldr	r3, [sp, #4]
 
-  8024b8a:	4618      	mov	r0, r3
 
-  8024b8c:	f8c3 8010 	str.w	r8, [r3, #16]
 
-  8024b90:	b005      	add	sp, #20
 
-  8024b92:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
-  8024b96:	bf00      	nop
 
- 08024b98 <__pow5mult>:
 
-  8024b98:	f012 0303 	ands.w	r3, r2, #3
 
-  8024b9c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
 
-  8024ba0:	4614      	mov	r4, r2
 
-  8024ba2:	4680      	mov	r8, r0
 
-  8024ba4:	460f      	mov	r7, r1
 
-  8024ba6:	d128      	bne.n	8024bfa <__pow5mult+0x62>
 
-  8024ba8:	10a4      	asrs	r4, r4, #2
 
-  8024baa:	d01a      	beq.n	8024be2 <__pow5mult+0x4a>
 
-  8024bac:	f8d8 5024 	ldr.w	r5, [r8, #36]	; 0x24
 
-  8024bb0:	2d00      	cmp	r5, #0
 
-  8024bb2:	d02e      	beq.n	8024c12 <__pow5mult+0x7a>
 
-  8024bb4:	68ae      	ldr	r6, [r5, #8]
 
-  8024bb6:	b92e      	cbnz	r6, 8024bc4 <__pow5mult+0x2c>
 
-  8024bb8:	e036      	b.n	8024c28 <__pow5mult+0x90>
 
-  8024bba:	1064      	asrs	r4, r4, #1
 
-  8024bbc:	d011      	beq.n	8024be2 <__pow5mult+0x4a>
 
-  8024bbe:	6835      	ldr	r5, [r6, #0]
 
-  8024bc0:	b195      	cbz	r5, 8024be8 <__pow5mult+0x50>
 
-  8024bc2:	462e      	mov	r6, r5
 
-  8024bc4:	07e0      	lsls	r0, r4, #31
 
-  8024bc6:	d5f8      	bpl.n	8024bba <__pow5mult+0x22>
 
-  8024bc8:	4639      	mov	r1, r7
 
-  8024bca:	4632      	mov	r2, r6
 
-  8024bcc:	4640      	mov	r0, r8
 
-  8024bce:	f7ff ff45 	bl	8024a5c <__multiply>
 
-  8024bd2:	4639      	mov	r1, r7
 
-  8024bd4:	4605      	mov	r5, r0
 
-  8024bd6:	4640      	mov	r0, r8
 
-  8024bd8:	f7ff fe3e 	bl	8024858 <_Bfree>
 
-  8024bdc:	1064      	asrs	r4, r4, #1
 
-  8024bde:	462f      	mov	r7, r5
 
-  8024be0:	d1ed      	bne.n	8024bbe <__pow5mult+0x26>
 
-  8024be2:	4638      	mov	r0, r7
 
-  8024be4:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 
-  8024be8:	4631      	mov	r1, r6
 
-  8024bea:	4632      	mov	r2, r6
 
-  8024bec:	4640      	mov	r0, r8
 
-  8024bee:	f7ff ff35 	bl	8024a5c <__multiply>
 
-  8024bf2:	6030      	str	r0, [r6, #0]
 
-  8024bf4:	4606      	mov	r6, r0
 
-  8024bf6:	6005      	str	r5, [r0, #0]
 
-  8024bf8:	e7e4      	b.n	8024bc4 <__pow5mult+0x2c>
 
-  8024bfa:	f249 7230 	movw	r2, #38704	; 0x9730
 
-  8024bfe:	1e5d      	subs	r5, r3, #1
 
-  8024c00:	f6c0 0203 	movt	r2, #2051	; 0x803
 
-  8024c04:	2300      	movs	r3, #0
 
-  8024c06:	f852 2025 	ldr.w	r2, [r2, r5, lsl #2]
 
-  8024c0a:	f7ff fe41 	bl	8024890 <__multadd>
 
-  8024c0e:	4607      	mov	r7, r0
 
-  8024c10:	e7ca      	b.n	8024ba8 <__pow5mult+0x10>
 
-  8024c12:	2010      	movs	r0, #16
 
-  8024c14:	f7ff fac0 	bl	8024198 <malloc>
 
-  8024c18:	2300      	movs	r3, #0
 
-  8024c1a:	4605      	mov	r5, r0
 
-  8024c1c:	f8c8 0024 	str.w	r0, [r8, #36]	; 0x24
 
-  8024c20:	6043      	str	r3, [r0, #4]
 
-  8024c22:	6083      	str	r3, [r0, #8]
 
-  8024c24:	6003      	str	r3, [r0, #0]
 
-  8024c26:	60c3      	str	r3, [r0, #12]
 
-  8024c28:	4640      	mov	r0, r8
 
-  8024c2a:	f240 2171 	movw	r1, #625	; 0x271
 
-  8024c2e:	f7ff ff0b 	bl	8024a48 <__i2b>
 
-  8024c32:	2300      	movs	r3, #0
 
-  8024c34:	60a8      	str	r0, [r5, #8]
 
-  8024c36:	4606      	mov	r6, r0
 
-  8024c38:	6003      	str	r3, [r0, #0]
 
-  8024c3a:	e7c3      	b.n	8024bc4 <__pow5mult+0x2c>
 
- 08024c3c <__lshift>:
 
-  8024c3c:	e92d 4ff8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-  8024c40:	4693      	mov	fp, r2
 
-  8024c42:	690a      	ldr	r2, [r1, #16]
 
-  8024c44:	460f      	mov	r7, r1
 
-  8024c46:	ea4f 156b 	mov.w	r5, fp, asr #5
 
-  8024c4a:	688b      	ldr	r3, [r1, #8]
 
-  8024c4c:	eb05 0a02 	add.w	sl, r5, r2
 
-  8024c50:	4681      	mov	r9, r0
 
-  8024c52:	f10a 0601 	add.w	r6, sl, #1
 
-  8024c56:	6849      	ldr	r1, [r1, #4]
 
-  8024c58:	429e      	cmp	r6, r3
 
-  8024c5a:	dd03      	ble.n	8024c64 <__lshift+0x28>
 
-  8024c5c:	005b      	lsls	r3, r3, #1
 
-  8024c5e:	3101      	adds	r1, #1
 
-  8024c60:	429e      	cmp	r6, r3
 
-  8024c62:	dcfb      	bgt.n	8024c5c <__lshift+0x20>
 
-  8024c64:	4648      	mov	r0, r9
 
-  8024c66:	f7ff fdc1 	bl	80247ec <_Balloc>
 
-  8024c6a:	2d00      	cmp	r5, #0
 
-  8024c6c:	4680      	mov	r8, r0
 
-  8024c6e:	f100 0414 	add.w	r4, r0, #20
 
-  8024c72:	dd0a      	ble.n	8024c8a <__lshift+0x4e>
 
-  8024c74:	2300      	movs	r3, #0
 
-  8024c76:	461a      	mov	r2, r3
 
-  8024c78:	3301      	adds	r3, #1
 
-  8024c7a:	f844 2b04 	str.w	r2, [r4], #4
 
-  8024c7e:	42ab      	cmp	r3, r5
 
-  8024c80:	d1fa      	bne.n	8024c78 <__lshift+0x3c>
 
-  8024c82:	eb08 0383 	add.w	r3, r8, r3, lsl #2
 
-  8024c86:	f103 0414 	add.w	r4, r3, #20
 
-  8024c8a:	6938      	ldr	r0, [r7, #16]
 
-  8024c8c:	f107 0514 	add.w	r5, r7, #20
 
-  8024c90:	eb07 0080 	add.w	r0, r7, r0, lsl #2
 
-  8024c94:	3014      	adds	r0, #20
 
-  8024c96:	f01b 0b1f 	ands.w	fp, fp, #31
 
-  8024c9a:	d01c      	beq.n	8024cd6 <__lshift+0x9a>
 
-  8024c9c:	f1cb 0320 	rsb	r3, fp, #32
 
-  8024ca0:	2200      	movs	r2, #0
 
-  8024ca2:	6829      	ldr	r1, [r5, #0]
 
-  8024ca4:	fa01 f10b 	lsl.w	r1, r1, fp
 
-  8024ca8:	430a      	orrs	r2, r1
 
-  8024caa:	f844 2b04 	str.w	r2, [r4], #4
 
-  8024cae:	f855 2b04 	ldr.w	r2, [r5], #4
 
-  8024cb2:	42a8      	cmp	r0, r5
 
-  8024cb4:	fa22 f203 	lsr.w	r2, r2, r3
 
-  8024cb8:	d8f3      	bhi.n	8024ca2 <__lshift+0x66>
 
-  8024cba:	6022      	str	r2, [r4, #0]
 
-  8024cbc:	b10a      	cbz	r2, 8024cc2 <__lshift+0x86>
 
-  8024cbe:	f10a 0602 	add.w	r6, sl, #2
 
-  8024cc2:	4648      	mov	r0, r9
 
-  8024cc4:	3e01      	subs	r6, #1
 
-  8024cc6:	4639      	mov	r1, r7
 
-  8024cc8:	f8c8 6010 	str.w	r6, [r8, #16]
 
-  8024ccc:	f7ff fdc4 	bl	8024858 <_Bfree>
 
-  8024cd0:	4640      	mov	r0, r8
 
-  8024cd2:	e8bd 8ff8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
-  8024cd6:	f855 3b04 	ldr.w	r3, [r5], #4
 
-  8024cda:	42a8      	cmp	r0, r5
 
-  8024cdc:	f844 3b04 	str.w	r3, [r4], #4
 
-  8024ce0:	d9ef      	bls.n	8024cc2 <__lshift+0x86>
 
-  8024ce2:	f855 3b04 	ldr.w	r3, [r5], #4
 
-  8024ce6:	42a8      	cmp	r0, r5
 
-  8024ce8:	f844 3b04 	str.w	r3, [r4], #4
 
-  8024cec:	d8f3      	bhi.n	8024cd6 <__lshift+0x9a>
 
-  8024cee:	e7e8      	b.n	8024cc2 <__lshift+0x86>
 
- 08024cf0 <__mcmp>:
 
-  8024cf0:	4603      	mov	r3, r0
 
-  8024cf2:	690a      	ldr	r2, [r1, #16]
 
-  8024cf4:	6900      	ldr	r0, [r0, #16]
 
-  8024cf6:	b430      	push	{r4, r5}
 
-  8024cf8:	1a80      	subs	r0, r0, r2
 
-  8024cfa:	d10f      	bne.n	8024d1c <__mcmp+0x2c>
 
-  8024cfc:	3204      	adds	r2, #4
 
-  8024cfe:	f103 0514 	add.w	r5, r3, #20
 
-  8024d02:	0092      	lsls	r2, r2, #2
 
-  8024d04:	189b      	adds	r3, r3, r2
 
-  8024d06:	1889      	adds	r1, r1, r2
 
-  8024d08:	3304      	adds	r3, #4
 
-  8024d0a:	3104      	adds	r1, #4
 
-  8024d0c:	f853 2d04 	ldr.w	r2, [r3, #-4]!
 
-  8024d10:	f851 4d04 	ldr.w	r4, [r1, #-4]!
 
-  8024d14:	42a2      	cmp	r2, r4
 
-  8024d16:	d103      	bne.n	8024d20 <__mcmp+0x30>
 
-  8024d18:	429d      	cmp	r5, r3
 
-  8024d1a:	d3f7      	bcc.n	8024d0c <__mcmp+0x1c>
 
-  8024d1c:	bc30      	pop	{r4, r5}
 
-  8024d1e:	4770      	bx	lr
 
-  8024d20:	4294      	cmp	r4, r2
 
-  8024d22:	bf94      	ite	ls
 
-  8024d24:	2001      	movls	r0, #1
 
-  8024d26:	f04f 30ff 	movhi.w	r0, #4294967295
 
-  8024d2a:	e7f7      	b.n	8024d1c <__mcmp+0x2c>
 
- 08024d2c <__mdiff>:
 
-  8024d2c:	e92d 4ff8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-  8024d30:	468b      	mov	fp, r1
 
-  8024d32:	4604      	mov	r4, r0
 
-  8024d34:	4611      	mov	r1, r2
 
-  8024d36:	4658      	mov	r0, fp
 
-  8024d38:	4691      	mov	r9, r2
 
-  8024d3a:	f7ff ffd9 	bl	8024cf0 <__mcmp>
 
-  8024d3e:	1e05      	subs	r5, r0, #0
 
-  8024d40:	d061      	beq.n	8024e06 <__mdiff+0xda>
 
-  8024d42:	bfbc      	itt	lt
 
-  8024d44:	465b      	movlt	r3, fp
 
-  8024d46:	46cb      	movlt	fp, r9
 
-  8024d48:	4620      	mov	r0, r4
 
-  8024d4a:	bfb8      	it	lt
 
-  8024d4c:	4699      	movlt	r9, r3
 
-  8024d4e:	f8db 1004 	ldr.w	r1, [fp, #4]
 
-  8024d52:	bfac      	ite	ge
 
-  8024d54:	f04f 0800 	movge.w	r8, #0
 
-  8024d58:	f04f 0801 	movlt.w	r8, #1
 
-  8024d5c:	f7ff fd46 	bl	80247ec <_Balloc>
 
-  8024d60:	f8db 7010 	ldr.w	r7, [fp, #16]
 
-  8024d64:	f109 0514 	add.w	r5, r9, #20
 
-  8024d68:	f8d9 3010 	ldr.w	r3, [r9, #16]
 
-  8024d6c:	f10b 0614 	add.w	r6, fp, #20
 
-  8024d70:	2400      	movs	r4, #0
 
-  8024d72:	eb0b 0c87 	add.w	ip, fp, r7, lsl #2
 
-  8024d76:	eb09 0983 	add.w	r9, r9, r3, lsl #2
 
-  8024d7a:	f10c 0c14 	add.w	ip, ip, #20
 
-  8024d7e:	f109 0914 	add.w	r9, r9, #20
 
-  8024d82:	f100 0a14 	add.w	sl, r0, #20
 
-  8024d86:	f8c0 800c 	str.w	r8, [r0, #12]
 
-  8024d8a:	f856 8b04 	ldr.w	r8, [r6], #4
 
-  8024d8e:	4653      	mov	r3, sl
 
-  8024d90:	f855 ab04 	ldr.w	sl, [r5], #4
 
-  8024d94:	4632      	mov	r2, r6
 
-  8024d96:	fa1f f188 	uxth.w	r1, r8
 
-  8024d9a:	1909      	adds	r1, r1, r4
 
-  8024d9c:	fa1f fb8a 	uxth.w	fp, sl
 
-  8024da0:	ebcb 0101 	rsb	r1, fp, r1
 
-  8024da4:	ea4f 441a 	mov.w	r4, sl, lsr #16
 
-  8024da8:	ebc4 4418 	rsb	r4, r4, r8, lsr #16
 
-  8024dac:	eb04 4421 	add.w	r4, r4, r1, asr #16
 
-  8024db0:	b289      	uxth	r1, r1
 
-  8024db2:	ea41 4104 	orr.w	r1, r1, r4, lsl #16
 
-  8024db6:	1424      	asrs	r4, r4, #16
 
-  8024db8:	45a9      	cmp	r9, r5
 
-  8024dba:	f843 1b04 	str.w	r1, [r3], #4
 
-  8024dbe:	469a      	mov	sl, r3
 
-  8024dc0:	d8e3      	bhi.n	8024d8a <__mdiff+0x5e>
 
-  8024dc2:	45b4      	cmp	ip, r6
 
-  8024dc4:	4698      	mov	r8, r3
 
-  8024dc6:	d914      	bls.n	8024df2 <__mdiff+0xc6>
 
-  8024dc8:	f852 5b04 	ldr.w	r5, [r2], #4
 
-  8024dcc:	b2a9      	uxth	r1, r5
 
-  8024dce:	0c2d      	lsrs	r5, r5, #16
 
-  8024dd0:	190c      	adds	r4, r1, r4
 
-  8024dd2:	eb05 4524 	add.w	r5, r5, r4, asr #16
 
-  8024dd6:	b2a4      	uxth	r4, r4
 
-  8024dd8:	ea44 4105 	orr.w	r1, r4, r5, lsl #16
 
-  8024ddc:	142c      	asrs	r4, r5, #16
 
-  8024dde:	4594      	cmp	ip, r2
 
-  8024de0:	f843 1b04 	str.w	r1, [r3], #4
 
-  8024de4:	d8f0      	bhi.n	8024dc8 <__mdiff+0x9c>
 
-  8024de6:	43f3      	mvns	r3, r6
 
-  8024de8:	4463      	add	r3, ip
 
-  8024dea:	f023 0303 	bic.w	r3, r3, #3
 
-  8024dee:	3304      	adds	r3, #4
 
-  8024df0:	4443      	add	r3, r8
 
-  8024df2:	3b04      	subs	r3, #4
 
-  8024df4:	b921      	cbnz	r1, 8024e00 <__mdiff+0xd4>
 
-  8024df6:	f853 2d04 	ldr.w	r2, [r3, #-4]!
 
-  8024dfa:	3f01      	subs	r7, #1
 
-  8024dfc:	2a00      	cmp	r2, #0
 
-  8024dfe:	d0fa      	beq.n	8024df6 <__mdiff+0xca>
 
-  8024e00:	6107      	str	r7, [r0, #16]
 
-  8024e02:	e8bd 8ff8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
-  8024e06:	4620      	mov	r0, r4
 
-  8024e08:	4629      	mov	r1, r5
 
-  8024e0a:	f7ff fcef 	bl	80247ec <_Balloc>
 
-  8024e0e:	2301      	movs	r3, #1
 
-  8024e10:	6145      	str	r5, [r0, #20]
 
-  8024e12:	6103      	str	r3, [r0, #16]
 
-  8024e14:	e8bd 8ff8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
- 08024e18 <__ulp>:
 
-  8024e18:	2300      	movs	r3, #0
 
-  8024e1a:	f6c7 73f0 	movt	r3, #32752	; 0x7ff0
 
-  8024e1e:	400b      	ands	r3, r1
 
-  8024e20:	f1a3 7350 	sub.w	r3, r3, #54525952	; 0x3400000
 
-  8024e24:	2b00      	cmp	r3, #0
 
-  8024e26:	dd02      	ble.n	8024e2e <__ulp+0x16>
 
-  8024e28:	4619      	mov	r1, r3
 
-  8024e2a:	2000      	movs	r0, #0
 
-  8024e2c:	4770      	bx	lr
 
-  8024e2e:	425b      	negs	r3, r3
 
-  8024e30:	2100      	movs	r1, #0
 
-  8024e32:	151b      	asrs	r3, r3, #20
 
-  8024e34:	2b13      	cmp	r3, #19
 
-  8024e36:	dd0b      	ble.n	8024e50 <__ulp+0x38>
 
-  8024e38:	2b32      	cmp	r3, #50	; 0x32
 
-  8024e3a:	dd02      	ble.n	8024e42 <__ulp+0x2a>
 
-  8024e3c:	2301      	movs	r3, #1
 
-  8024e3e:	4618      	mov	r0, r3
 
-  8024e40:	4770      	bx	lr
 
-  8024e42:	2201      	movs	r2, #1
 
-  8024e44:	f1c3 0333 	rsb	r3, r3, #51	; 0x33
 
-  8024e48:	fa02 f303 	lsl.w	r3, r2, r3
 
-  8024e4c:	4618      	mov	r0, r3
 
-  8024e4e:	4770      	bx	lr
 
-  8024e50:	f44f 2200 	mov.w	r2, #524288	; 0x80000
 
-  8024e54:	2000      	movs	r0, #0
 
-  8024e56:	fa42 f103 	asr.w	r1, r2, r3
 
-  8024e5a:	4770      	bx	lr
 
- 08024e5c <__b2d>:
 
-  8024e5c:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
 
-  8024e60:	f100 0814 	add.w	r8, r0, #20
 
-  8024e64:	6906      	ldr	r6, [r0, #16]
 
-  8024e66:	4689      	mov	r9, r1
 
-  8024e68:	3604      	adds	r6, #4
 
-  8024e6a:	eb00 0686 	add.w	r6, r0, r6, lsl #2
 
-  8024e6e:	4634      	mov	r4, r6
 
-  8024e70:	4637      	mov	r7, r6
 
-  8024e72:	f854 5b04 	ldr.w	r5, [r4], #4
 
-  8024e76:	4628      	mov	r0, r5
 
-  8024e78:	f7ff fd9a 	bl	80249b0 <__hi0bits>
 
-  8024e7c:	280a      	cmp	r0, #10
 
-  8024e7e:	f1c0 0320 	rsb	r3, r0, #32
 
-  8024e82:	f8c9 3000 	str.w	r3, [r9]
 
-  8024e86:	dc18      	bgt.n	8024eba <__b2d+0x5e>
 
-  8024e88:	45b0      	cmp	r8, r6
 
-  8024e8a:	f1c0 010b 	rsb	r1, r0, #11
 
-  8024e8e:	fa25 f701 	lsr.w	r7, r5, r1
 
-  8024e92:	bf38      	it	cc
 
-  8024e94:	f854 4c08 	ldrcc.w	r4, [r4, #-8]
 
-  8024e98:	f047 577f 	orr.w	r7, r7, #1069547520	; 0x3fc00000
 
-  8024e9c:	f447 1340 	orr.w	r3, r7, #3145728	; 0x300000
 
-  8024ea0:	bf34      	ite	cc
 
-  8024ea2:	fa24 f101 	lsrcc.w	r1, r4, r1
 
-  8024ea6:	2100      	movcs	r1, #0
 
-  8024ea8:	3015      	adds	r0, #21
 
-  8024eaa:	fa05 f500 	lsl.w	r5, r5, r0
 
-  8024eae:	ea41 0205 	orr.w	r2, r1, r5
 
-  8024eb2:	4610      	mov	r0, r2
 
-  8024eb4:	4619      	mov	r1, r3
 
-  8024eb6:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
 
-  8024eba:	2100      	movs	r1, #0
 
-  8024ebc:	45b0      	cmp	r8, r6
 
-  8024ebe:	d202      	bcs.n	8024ec6 <__b2d+0x6a>
 
-  8024ec0:	f854 1c08 	ldr.w	r1, [r4, #-8]
 
-  8024ec4:	1f37      	subs	r7, r6, #4
 
-  8024ec6:	f1b0 040b 	subs.w	r4, r0, #11
 
-  8024eca:	d018      	beq.n	8024efe <__b2d+0xa2>
 
-  8024ecc:	fa05 f504 	lsl.w	r5, r5, r4
 
-  8024ed0:	f1c0 002b 	rsb	r0, r0, #43	; 0x2b
 
-  8024ed4:	4547      	cmp	r7, r8
 
-  8024ed6:	f045 557f 	orr.w	r5, r5, #1069547520	; 0x3fc00000
 
-  8024eda:	fa21 f600 	lsr.w	r6, r1, r0
 
-  8024ede:	f445 1540 	orr.w	r5, r5, #3145728	; 0x300000
 
-  8024ee2:	ea45 0306 	orr.w	r3, r5, r6
 
-  8024ee6:	bf88      	it	hi
 
-  8024ee8:	f857 5c04 	ldrhi.w	r5, [r7, #-4]
 
-  8024eec:	fa01 f104 	lsl.w	r1, r1, r4
 
-  8024ef0:	bf8c      	ite	hi
 
-  8024ef2:	fa25 f000 	lsrhi.w	r0, r5, r0
 
-  8024ef6:	2000      	movls	r0, #0
 
-  8024ef8:	ea40 0201 	orr.w	r2, r0, r1
 
-  8024efc:	e7d9      	b.n	8024eb2 <__b2d+0x56>
 
-  8024efe:	f045 557f 	orr.w	r5, r5, #1069547520	; 0x3fc00000
 
-  8024f02:	460a      	mov	r2, r1
 
-  8024f04:	f445 1340 	orr.w	r3, r5, #3145728	; 0x300000
 
-  8024f08:	e7d3      	b.n	8024eb2 <__b2d+0x56>
 
-  8024f0a:	bf00      	nop
 
- 08024f0c <__d2b>:
 
-  8024f0c:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
 
-  8024f10:	b083      	sub	sp, #12
 
-  8024f12:	2101      	movs	r1, #1
 
-  8024f14:	461d      	mov	r5, r3
 
-  8024f16:	4614      	mov	r4, r2
 
-  8024f18:	9f0a      	ldr	r7, [sp, #40]	; 0x28
 
-  8024f1a:	f7ff fc67 	bl	80247ec <_Balloc>
 
-  8024f1e:	f3c5 560a 	ubfx	r6, r5, #20, #11
 
-  8024f22:	f025 437f 	bic.w	r3, r5, #4278190080	; 0xff000000
 
-  8024f26:	46a9      	mov	r9, r5
 
-  8024f28:	f423 0370 	bic.w	r3, r3, #15728640	; 0xf00000
 
-  8024f2c:	4680      	mov	r8, r0
 
-  8024f2e:	b10e      	cbz	r6, 8024f34 <__d2b+0x28>
 
-  8024f30:	f443 1380 	orr.w	r3, r3, #1048576	; 0x100000
 
-  8024f34:	9301      	str	r3, [sp, #4]
 
-  8024f36:	2c00      	cmp	r4, #0
 
-  8024f38:	d024      	beq.n	8024f84 <__d2b+0x78>
 
-  8024f3a:	a802      	add	r0, sp, #8
 
-  8024f3c:	f840 4d08 	str.w	r4, [r0, #-8]!
 
-  8024f40:	4668      	mov	r0, sp
 
-  8024f42:	f7ff fd53 	bl	80249ec <__lo0bits>
 
-  8024f46:	9b01      	ldr	r3, [sp, #4]
 
-  8024f48:	2800      	cmp	r0, #0
 
-  8024f4a:	d131      	bne.n	8024fb0 <__d2b+0xa4>
 
-  8024f4c:	9a00      	ldr	r2, [sp, #0]
 
-  8024f4e:	f8c8 2014 	str.w	r2, [r8, #20]
 
-  8024f52:	2b00      	cmp	r3, #0
 
-  8024f54:	bf0c      	ite	eq
 
-  8024f56:	2401      	moveq	r4, #1
 
-  8024f58:	2402      	movne	r4, #2
 
-  8024f5a:	f8c8 3018 	str.w	r3, [r8, #24]
 
-  8024f5e:	f8c8 4010 	str.w	r4, [r8, #16]
 
-  8024f62:	b9e6      	cbnz	r6, 8024f9e <__d2b+0x92>
 
-  8024f64:	eb08 0384 	add.w	r3, r8, r4, lsl #2
 
-  8024f68:	f2a0 4032 	subw	r0, r0, #1074	; 0x432
 
-  8024f6c:	6038      	str	r0, [r7, #0]
 
-  8024f6e:	6918      	ldr	r0, [r3, #16]
 
-  8024f70:	f7ff fd1e 	bl	80249b0 <__hi0bits>
 
-  8024f74:	9b0b      	ldr	r3, [sp, #44]	; 0x2c
 
-  8024f76:	ebc0 1044 	rsb	r0, r0, r4, lsl #5
 
-  8024f7a:	6018      	str	r0, [r3, #0]
 
-  8024f7c:	4640      	mov	r0, r8
 
-  8024f7e:	b003      	add	sp, #12
 
-  8024f80:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
 
-  8024f84:	a801      	add	r0, sp, #4
 
-  8024f86:	f7ff fd31 	bl	80249ec <__lo0bits>
 
-  8024f8a:	2301      	movs	r3, #1
 
-  8024f8c:	461c      	mov	r4, r3
 
-  8024f8e:	f8c8 3010 	str.w	r3, [r8, #16]
 
-  8024f92:	9b01      	ldr	r3, [sp, #4]
 
-  8024f94:	f8c8 3014 	str.w	r3, [r8, #20]
 
-  8024f98:	3020      	adds	r0, #32
 
-  8024f9a:	2e00      	cmp	r6, #0
 
-  8024f9c:	d0e2      	beq.n	8024f64 <__d2b+0x58>
 
-  8024f9e:	9a0b      	ldr	r2, [sp, #44]	; 0x2c
 
-  8024fa0:	f2a6 4933 	subw	r9, r6, #1075	; 0x433
 
-  8024fa4:	f1c0 0335 	rsb	r3, r0, #53	; 0x35
 
-  8024fa8:	4448      	add	r0, r9
 
-  8024faa:	6038      	str	r0, [r7, #0]
 
-  8024fac:	6013      	str	r3, [r2, #0]
 
-  8024fae:	e7e5      	b.n	8024f7c <__d2b+0x70>
 
-  8024fb0:	f1c0 0120 	rsb	r1, r0, #32
 
-  8024fb4:	9a00      	ldr	r2, [sp, #0]
 
-  8024fb6:	fa03 f101 	lsl.w	r1, r3, r1
 
-  8024fba:	fa23 f300 	lsr.w	r3, r3, r0
 
-  8024fbe:	430a      	orrs	r2, r1
 
-  8024fc0:	9301      	str	r3, [sp, #4]
 
-  8024fc2:	f8c8 2014 	str.w	r2, [r8, #20]
 
-  8024fc6:	e7c4      	b.n	8024f52 <__d2b+0x46>
 
- 08024fc8 <__ratio>:
 
-  8024fc8:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
 
-  8024fcc:	b083      	sub	sp, #12
 
-  8024fce:	4688      	mov	r8, r1
 
-  8024fd0:	4669      	mov	r1, sp
 
-  8024fd2:	4606      	mov	r6, r0
 
-  8024fd4:	f7ff ff42 	bl	8024e5c <__b2d>
 
-  8024fd8:	460d      	mov	r5, r1
 
-  8024fda:	4604      	mov	r4, r0
 
-  8024fdc:	a901      	add	r1, sp, #4
 
-  8024fde:	4640      	mov	r0, r8
 
-  8024fe0:	f7ff ff3c 	bl	8024e5c <__b2d>
 
-  8024fe4:	462f      	mov	r7, r5
 
-  8024fe6:	460b      	mov	r3, r1
 
-  8024fe8:	4602      	mov	r2, r0
 
-  8024fea:	f8d8 1010 	ldr.w	r1, [r8, #16]
 
-  8024fee:	4699      	mov	r9, r3
 
-  8024ff0:	6930      	ldr	r0, [r6, #16]
 
-  8024ff2:	4626      	mov	r6, r4
 
-  8024ff4:	4690      	mov	r8, r2
 
-  8024ff6:	ebc1 0e00 	rsb	lr, r1, r0
 
-  8024ffa:	e89d 0003 	ldmia.w	sp, {r0, r1}
 
-  8024ffe:	1a40      	subs	r0, r0, r1
 
-  8025000:	eb00 114e 	add.w	r1, r0, lr, lsl #5
 
-  8025004:	2900      	cmp	r1, #0
 
-  8025006:	bfc9      	itett	gt
 
-  8025008:	eb05 5701 	addgt.w	r7, r5, r1, lsl #20
 
-  802500c:	eba3 5901 	suble.w	r9, r3, r1, lsl #20
 
-  8025010:	4624      	movgt	r4, r4
 
-  8025012:	463d      	movgt	r5, r7
 
-  8025014:	bfdc      	itt	le
 
-  8025016:	4612      	movle	r2, r2
 
-  8025018:	464b      	movle	r3, r9
 
-  802501a:	4620      	mov	r0, r4
 
-  802501c:	4629      	mov	r1, r5
 
-  802501e:	f7fb fbf9 	bl	8020814 <__aeabi_ddiv>
 
-  8025022:	b003      	add	sp, #12
 
-  8025024:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
 
- 08025028 <_mprec_log10>:
 
-  8025028:	2817      	cmp	r0, #23
 
-  802502a:	b510      	push	{r4, lr}
 
-  802502c:	4604      	mov	r4, r0
 
-  802502e:	dd0c      	ble.n	802504a <_mprec_log10+0x22>
 
-  8025030:	2100      	movs	r1, #0
 
-  8025032:	2000      	movs	r0, #0
 
-  8025034:	f6c3 71f0 	movt	r1, #16368	; 0x3ff0
 
-  8025038:	2300      	movs	r3, #0
 
-  802503a:	2200      	movs	r2, #0
 
-  802503c:	f2c4 0324 	movt	r3, #16420	; 0x4024
 
-  8025040:	f7fb fabe 	bl	80205c0 <__aeabi_dmul>
 
-  8025044:	3c01      	subs	r4, #1
 
-  8025046:	d1f7      	bne.n	8025038 <_mprec_log10+0x10>
 
-  8025048:	bd10      	pop	{r4, pc}
 
-  802504a:	f249 7330 	movw	r3, #38704	; 0x9730
 
-  802504e:	f6c0 0303 	movt	r3, #2051	; 0x803
 
-  8025052:	eb03 03c0 	add.w	r3, r3, r0, lsl #3
 
-  8025056:	e9d3 0104 	ldrd	r0, r1, [r3, #16]
 
-  802505a:	bd10      	pop	{r4, pc}
 
- 0802505c <__copybits>:
 
-  802505c:	b470      	push	{r4, r5, r6}
 
-  802505e:	3901      	subs	r1, #1
 
-  8025060:	6915      	ldr	r5, [r2, #16]
 
-  8025062:	f102 0314 	add.w	r3, r2, #20
 
-  8025066:	114e      	asrs	r6, r1, #5
 
-  8025068:	3601      	adds	r6, #1
 
-  802506a:	eb02 0585 	add.w	r5, r2, r5, lsl #2
 
-  802506e:	3514      	adds	r5, #20
 
-  8025070:	eb00 0686 	add.w	r6, r0, r6, lsl #2
 
-  8025074:	42ab      	cmp	r3, r5
 
-  8025076:	d20c      	bcs.n	8025092 <__copybits+0x36>
 
-  8025078:	4601      	mov	r1, r0
 
-  802507a:	f853 4b04 	ldr.w	r4, [r3], #4
 
-  802507e:	429d      	cmp	r5, r3
 
-  8025080:	f841 4b04 	str.w	r4, [r1], #4
 
-  8025084:	d8f9      	bhi.n	802507a <__copybits+0x1e>
 
-  8025086:	1aab      	subs	r3, r5, r2
 
-  8025088:	3b15      	subs	r3, #21
 
-  802508a:	f023 0303 	bic.w	r3, r3, #3
 
-  802508e:	3304      	adds	r3, #4
 
-  8025090:	18c0      	adds	r0, r0, r3
 
-  8025092:	4286      	cmp	r6, r0
 
-  8025094:	d904      	bls.n	80250a0 <__copybits+0x44>
 
-  8025096:	2300      	movs	r3, #0
 
-  8025098:	f840 3b04 	str.w	r3, [r0], #4
 
-  802509c:	4286      	cmp	r6, r0
 
-  802509e:	d8fb      	bhi.n	8025098 <__copybits+0x3c>
 
-  80250a0:	bc70      	pop	{r4, r5, r6}
 
-  80250a2:	4770      	bx	lr
 
- 080250a4 <__any_on>:
 
-  80250a4:	b430      	push	{r4, r5}
 
-  80250a6:	114b      	asrs	r3, r1, #5
 
-  80250a8:	6904      	ldr	r4, [r0, #16]
 
-  80250aa:	f100 0214 	add.w	r2, r0, #20
 
-  80250ae:	429c      	cmp	r4, r3
 
-  80250b0:	bfb8      	it	lt
 
-  80250b2:	4623      	movlt	r3, r4
 
-  80250b4:	db00      	blt.n	80250b8 <__any_on+0x14>
 
-  80250b6:	dc11      	bgt.n	80250dc <__any_on+0x38>
 
-  80250b8:	3304      	adds	r3, #4
 
-  80250ba:	eb00 0083 	add.w	r0, r0, r3, lsl #2
 
-  80250be:	1d03      	adds	r3, r0, #4
 
-  80250c0:	429a      	cmp	r2, r3
 
-  80250c2:	d218      	bcs.n	80250f6 <__any_on+0x52>
 
-  80250c4:	f853 3c04 	ldr.w	r3, [r3, #-4]
 
-  80250c8:	b92b      	cbnz	r3, 80250d6 <__any_on+0x32>
 
-  80250ca:	4282      	cmp	r2, r0
 
-  80250cc:	d213      	bcs.n	80250f6 <__any_on+0x52>
 
-  80250ce:	f850 3d04 	ldr.w	r3, [r0, #-4]!
 
-  80250d2:	2b00      	cmp	r3, #0
 
-  80250d4:	d0f9      	beq.n	80250ca <__any_on+0x26>
 
-  80250d6:	2001      	movs	r0, #1
 
-  80250d8:	bc30      	pop	{r4, r5}
 
-  80250da:	4770      	bx	lr
 
-  80250dc:	f011 011f 	ands.w	r1, r1, #31
 
-  80250e0:	d0ea      	beq.n	80250b8 <__any_on+0x14>
 
-  80250e2:	eb00 0483 	add.w	r4, r0, r3, lsl #2
 
-  80250e6:	6964      	ldr	r4, [r4, #20]
 
-  80250e8:	fa24 f501 	lsr.w	r5, r4, r1
 
-  80250ec:	fa05 f101 	lsl.w	r1, r5, r1
 
-  80250f0:	42a1      	cmp	r1, r4
 
-  80250f2:	d1f0      	bne.n	80250d6 <__any_on+0x32>
 
-  80250f4:	e7e0      	b.n	80250b8 <__any_on+0x14>
 
-  80250f6:	2000      	movs	r0, #0
 
-  80250f8:	e7ee      	b.n	80250d8 <__any_on+0x34>
 
-  80250fa:	bf00      	nop
 
- 080250fc <_sbrk_r>:
 
-  80250fc:	b538      	push	{r3, r4, r5, lr}
 
-  80250fe:	f643 1448 	movw	r4, #14664	; 0x3948
 
-  8025102:	f2c2 0401 	movt	r4, #8193	; 0x2001
 
-  8025106:	4605      	mov	r5, r0
 
-  8025108:	4608      	mov	r0, r1
 
-  802510a:	2300      	movs	r3, #0
 
-  802510c:	6023      	str	r3, [r4, #0]
 
-  802510e:	f014 fa33 	bl	8039578 <_sbrk>
 
-  8025112:	1c43      	adds	r3, r0, #1
 
-  8025114:	d000      	beq.n	8025118 <_sbrk_r+0x1c>
 
-  8025116:	bd38      	pop	{r3, r4, r5, pc}
 
-  8025118:	6823      	ldr	r3, [r4, #0]
 
-  802511a:	2b00      	cmp	r3, #0
 
-  802511c:	d0fb      	beq.n	8025116 <_sbrk_r+0x1a>
 
-  802511e:	602b      	str	r3, [r5, #0]
 
-  8025120:	bd38      	pop	{r3, r4, r5, pc}
 
-  8025122:	bf00      	nop
 
- 08025124 <strchr>:
 
-  8025124:	b2c9      	uxtb	r1, r1
 
-  8025126:	b4f0      	push	{r4, r5, r6, r7}
 
-  8025128:	2900      	cmp	r1, #0
 
-  802512a:	d04b      	beq.n	80251c4 <strchr+0xa0>
 
-  802512c:	0783      	lsls	r3, r0, #30
 
-  802512e:	d00f      	beq.n	8025150 <strchr+0x2c>
 
-  8025130:	7803      	ldrb	r3, [r0, #0]
 
-  8025132:	2b00      	cmp	r3, #0
 
-  8025134:	d073      	beq.n	802521e <strchr+0xfa>
 
-  8025136:	4299      	cmp	r1, r3
 
-  8025138:	d042      	beq.n	80251c0 <strchr+0x9c>
 
-  802513a:	1c43      	adds	r3, r0, #1
 
-  802513c:	e005      	b.n	802514a <strchr+0x26>
 
-  802513e:	f813 2b01 	ldrb.w	r2, [r3], #1
 
-  8025142:	2a00      	cmp	r2, #0
 
-  8025144:	d03b      	beq.n	80251be <strchr+0x9a>
 
-  8025146:	4291      	cmp	r1, r2
 
-  8025148:	d03a      	beq.n	80251c0 <strchr+0x9c>
 
-  802514a:	079a      	lsls	r2, r3, #30
 
-  802514c:	4618      	mov	r0, r3
 
-  802514e:	d1f6      	bne.n	802513e <strchr+0x1a>
 
-  8025150:	6803      	ldr	r3, [r0, #0]
 
-  8025152:	ea41 2701 	orr.w	r7, r1, r1, lsl #8
 
-  8025156:	f1a3 3201 	sub.w	r2, r3, #16843009	; 0x1010101
 
-  802515a:	ea47 4707 	orr.w	r7, r7, r7, lsl #16
 
-  802515e:	ea22 0203 	bic.w	r2, r2, r3
 
-  8025162:	f012 3f80 	tst.w	r2, #2155905152	; 0x80808080
 
-  8025166:	d11c      	bne.n	80251a2 <strchr+0x7e>
 
-  8025168:	407b      	eors	r3, r7
 
-  802516a:	f1a3 3201 	sub.w	r2, r3, #16843009	; 0x1010101
 
-  802516e:	ea22 0303 	bic.w	r3, r2, r3
 
-  8025172:	f013 3f80 	tst.w	r3, #2155905152	; 0x80808080
 
-  8025176:	d114      	bne.n	80251a2 <strchr+0x7e>
 
-  8025178:	1d02      	adds	r2, r0, #4
 
-  802517a:	e002      	b.n	8025182 <strchr+0x5e>
 
-  802517c:	f014 3f80 	tst.w	r4, #2155905152	; 0x80808080
 
-  8025180:	d10f      	bne.n	80251a2 <strchr+0x7e>
 
-  8025182:	4610      	mov	r0, r2
 
-  8025184:	f852 3b04 	ldr.w	r3, [r2], #4
 
-  8025188:	f1a3 3601 	sub.w	r6, r3, #16843009	; 0x1010101
 
-  802518c:	ea87 0403 	eor.w	r4, r7, r3
 
-  8025190:	ea26 0303 	bic.w	r3, r6, r3
 
-  8025194:	f1a4 3501 	sub.w	r5, r4, #16843009	; 0x1010101
 
-  8025198:	f013 3f80 	tst.w	r3, #2155905152	; 0x80808080
 
-  802519c:	ea25 0404 	bic.w	r4, r5, r4
 
-  80251a0:	d0ec      	beq.n	802517c <strchr+0x58>
 
-  80251a2:	7803      	ldrb	r3, [r0, #0]
 
-  80251a4:	2b00      	cmp	r3, #0
 
-  80251a6:	d03a      	beq.n	802521e <strchr+0xfa>
 
-  80251a8:	4299      	cmp	r1, r3
 
-  80251aa:	d009      	beq.n	80251c0 <strchr+0x9c>
 
-  80251ac:	1c43      	adds	r3, r0, #1
 
-  80251ae:	e001      	b.n	80251b4 <strchr+0x90>
 
-  80251b0:	4291      	cmp	r1, r2
 
-  80251b2:	d005      	beq.n	80251c0 <strchr+0x9c>
 
-  80251b4:	4618      	mov	r0, r3
 
-  80251b6:	f813 2b01 	ldrb.w	r2, [r3], #1
 
-  80251ba:	2a00      	cmp	r2, #0
 
-  80251bc:	d1f8      	bne.n	80251b0 <strchr+0x8c>
 
-  80251be:	4610      	mov	r0, r2
 
-  80251c0:	bcf0      	pop	{r4, r5, r6, r7}
 
-  80251c2:	4770      	bx	lr
 
-  80251c4:	0781      	lsls	r1, r0, #30
 
-  80251c6:	d00d      	beq.n	80251e4 <strchr+0xc0>
 
-  80251c8:	7803      	ldrb	r3, [r0, #0]
 
-  80251ca:	2b00      	cmp	r3, #0
 
-  80251cc:	d0f8      	beq.n	80251c0 <strchr+0x9c>
 
-  80251ce:	1c43      	adds	r3, r0, #1
 
-  80251d0:	e002      	b.n	80251d8 <strchr+0xb4>
 
-  80251d2:	7802      	ldrb	r2, [r0, #0]
 
-  80251d4:	2a00      	cmp	r2, #0
 
-  80251d6:	d0f3      	beq.n	80251c0 <strchr+0x9c>
 
-  80251d8:	f013 0f03 	tst.w	r3, #3
 
-  80251dc:	4618      	mov	r0, r3
 
-  80251de:	f103 0301 	add.w	r3, r3, #1
 
-  80251e2:	d1f6      	bne.n	80251d2 <strchr+0xae>
 
-  80251e4:	6803      	ldr	r3, [r0, #0]
 
-  80251e6:	f1a3 3201 	sub.w	r2, r3, #16843009	; 0x1010101
 
-  80251ea:	ea22 0303 	bic.w	r3, r2, r3
 
-  80251ee:	f013 3f80 	tst.w	r3, #2155905152	; 0x80808080
 
-  80251f2:	d10a      	bne.n	802520a <strchr+0xe6>
 
-  80251f4:	1d02      	adds	r2, r0, #4
 
-  80251f6:	4610      	mov	r0, r2
 
-  80251f8:	f852 1b04 	ldr.w	r1, [r2], #4
 
-  80251fc:	f1a1 3401 	sub.w	r4, r1, #16843009	; 0x1010101
 
-  8025200:	ea24 0101 	bic.w	r1, r4, r1
 
-  8025204:	f011 3f80 	tst.w	r1, #2155905152	; 0x80808080
 
-  8025208:	d0f5      	beq.n	80251f6 <strchr+0xd2>
 
-  802520a:	7803      	ldrb	r3, [r0, #0]
 
-  802520c:	2b00      	cmp	r3, #0
 
-  802520e:	d0d7      	beq.n	80251c0 <strchr+0x9c>
 
-  8025210:	1c43      	adds	r3, r0, #1
 
-  8025212:	4618      	mov	r0, r3
 
-  8025214:	3301      	adds	r3, #1
 
-  8025216:	7802      	ldrb	r2, [r0, #0]
 
-  8025218:	2a00      	cmp	r2, #0
 
-  802521a:	d1fa      	bne.n	8025212 <strchr+0xee>
 
-  802521c:	e7d0      	b.n	80251c0 <strchr+0x9c>
 
-  802521e:	4618      	mov	r0, r3
 
-  8025220:	e7ce      	b.n	80251c0 <strchr+0x9c>
 
-  8025222:	bf00      	nop
 
- 08025224 <_calloc_r>:
 
-  8025224:	b510      	push	{r4, lr}
 
-  8025226:	fb01 f102 	mul.w	r1, r1, r2
 
-  802522a:	f7fe ffc5 	bl	80241b8 <_malloc_r>
 
-  802522e:	4604      	mov	r4, r0
 
-  8025230:	b170      	cbz	r0, 8025250 <_calloc_r+0x2c>
 
-  8025232:	f850 2c04 	ldr.w	r2, [r0, #-4]
 
-  8025236:	f022 0203 	bic.w	r2, r2, #3
 
-  802523a:	3a04      	subs	r2, #4
 
-  802523c:	2a24      	cmp	r2, #36	; 0x24
 
-  802523e:	d81c      	bhi.n	802527a <_calloc_r+0x56>
 
-  8025240:	2a13      	cmp	r2, #19
 
-  8025242:	bf98      	it	ls
 
-  8025244:	4603      	movls	r3, r0
 
-  8025246:	d805      	bhi.n	8025254 <_calloc_r+0x30>
 
-  8025248:	2200      	movs	r2, #0
 
-  802524a:	601a      	str	r2, [r3, #0]
 
-  802524c:	605a      	str	r2, [r3, #4]
 
-  802524e:	609a      	str	r2, [r3, #8]
 
-  8025250:	4620      	mov	r0, r4
 
-  8025252:	bd10      	pop	{r4, pc}
 
-  8025254:	2100      	movs	r1, #0
 
-  8025256:	2a1b      	cmp	r2, #27
 
-  8025258:	6001      	str	r1, [r0, #0]
 
-  802525a:	bf98      	it	ls
 
-  802525c:	f100 0308 	addls.w	r3, r0, #8
 
-  8025260:	6041      	str	r1, [r0, #4]
 
-  8025262:	d9f1      	bls.n	8025248 <_calloc_r+0x24>
 
-  8025264:	2a24      	cmp	r2, #36	; 0x24
 
-  8025266:	6081      	str	r1, [r0, #8]
 
-  8025268:	60c1      	str	r1, [r0, #12]
 
-  802526a:	bf11      	iteee	ne
 
-  802526c:	f100 0310 	addne.w	r3, r0, #16
 
-  8025270:	6101      	streq	r1, [r0, #16]
 
-  8025272:	f100 0318 	addeq.w	r3, r0, #24
 
-  8025276:	6141      	streq	r1, [r0, #20]
 
-  8025278:	e7e6      	b.n	8025248 <_calloc_r+0x24>
 
-  802527a:	2100      	movs	r1, #0
 
-  802527c:	f7fc fc40 	bl	8021b00 <memset>
 
-  8025280:	4620      	mov	r0, r4
 
-  8025282:	bd10      	pop	{r4, pc}
 
- 08025284 <fabs>:
 
-  8025284:	f021 4100 	bic.w	r1, r1, #2147483648	; 0x80000000
 
-  8025288:	4770      	bx	lr
 
-  802528a:	bf00      	nop
 
- 0802528c <NVIC_PriorityGroupConfig>:
 
- {
 
-   /* Check the parameters */
 
-   assert_param(IS_NVIC_PRIORITY_GROUP(NVIC_PriorityGroup));
 
-   
 
-   /* Set the PRIGROUP[10:8] bits according to NVIC_PriorityGroup value */
 
-   SCB->AIRCR = AIRCR_VECTKEY_MASK | NVIC_PriorityGroup;
 
-  802528c:	f040 60bf 	orr.w	r0, r0, #100139008	; 0x5f80000
 
-  8025290:	4b02      	ldr	r3, [pc, #8]	; (802529c <NVIC_PriorityGroupConfig+0x10>)
 
-  8025292:	f440 3000 	orr.w	r0, r0, #131072	; 0x20000
 
-  8025296:	60d8      	str	r0, [r3, #12]
 
-  8025298:	4770      	bx	lr
 
-  802529a:	bf00      	nop
 
-  802529c:	e000ed00 	.word	0xe000ed00
 
- 080252a0 <NVIC_Init>:
 
-   /* Check the parameters */
 
-   assert_param(IS_FUNCTIONAL_STATE(NVIC_InitStruct->NVIC_IRQChannelCmd));
 
-   assert_param(IS_NVIC_PREEMPTION_PRIORITY(NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority));  
 
-   assert_param(IS_NVIC_SUB_PRIORITY(NVIC_InitStruct->NVIC_IRQChannelSubPriority));
 
-     
 
-   if (NVIC_InitStruct->NVIC_IRQChannelCmd != DISABLE)
 
-  80252a0:	78c3      	ldrb	r3, [r0, #3]
 
-  80252a2:	b30b      	cbz	r3, 80252e8 <NVIC_Init+0x48>
 
-   {
 
-     /* Compute the Corresponding IRQ Priority --------------------------------*/    
 
-     tmppriority = (0x700 - ((SCB->AIRCR) & (uint32_t)0x700))>> 0x08;
 
-  80252a4:	4b16      	ldr	r3, [pc, #88]	; (8025300 <NVIC_Init+0x60>)
 
-     tmppre = (0x4 - tmppriority);
 
-     tmpsub = tmpsub >> tmppriority;
 
-     tmppriority = NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority << tmppre;
 
-  80252a6:	7841      	ldrb	r1, [r0, #1]
 
-   assert_param(IS_NVIC_SUB_PRIORITY(NVIC_InitStruct->NVIC_IRQChannelSubPriority));
 
-     
 
-   if (NVIC_InitStruct->NVIC_IRQChannelCmd != DISABLE)
 
-   {
 
-     /* Compute the Corresponding IRQ Priority --------------------------------*/    
 
-     tmppriority = (0x700 - ((SCB->AIRCR) & (uint32_t)0x700))>> 0x08;
 
-  80252a8:	68db      	ldr	r3, [r3, #12]
 
-  80252aa:	43db      	mvns	r3, r3
 
-  80252ac:	f3c3 2302 	ubfx	r3, r3, #8, #3
 
-     tmppre = (0x4 - tmppriority);
 
-  80252b0:	f1c3 0204 	rsb	r2, r3, #4
 
-     tmpsub = tmpsub >> tmppriority;
 
-     tmppriority = NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority << tmppre;
 
-  80252b4:	b2d2      	uxtb	r2, r2
 
-  80252b6:	fa01 f202 	lsl.w	r2, r1, r2
 
-   if (NVIC_InitStruct->NVIC_IRQChannelCmd != DISABLE)
 
-   {
 
-     /* Compute the Corresponding IRQ Priority --------------------------------*/    
 
-     tmppriority = (0x700 - ((SCB->AIRCR) & (uint32_t)0x700))>> 0x08;
 
-     tmppre = (0x4 - tmppriority);
 
-     tmpsub = tmpsub >> tmppriority;
 
-  80252ba:	210f      	movs	r1, #15
 
-  80252bc:	fa41 f303 	asr.w	r3, r1, r3
 
-     tmppriority = NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority << tmppre;
 
-     tmppriority |=  (uint8_t)(NVIC_InitStruct->NVIC_IRQChannelSubPriority & tmpsub);
 
-  80252c0:	7881      	ldrb	r1, [r0, #2]
 
-     /* Compute the Corresponding IRQ Priority --------------------------------*/    
 
-     tmppriority = (0x700 - ((SCB->AIRCR) & (uint32_t)0x700))>> 0x08;
 
-     tmppre = (0x4 - tmppriority);
 
-     tmpsub = tmpsub >> tmppriority;
 
-     tmppriority = NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority << tmppre;
 
-  80252c2:	b2d2      	uxtb	r2, r2
 
-     tmppriority |=  (uint8_t)(NVIC_InitStruct->NVIC_IRQChannelSubPriority & tmpsub);
 
-  80252c4:	400b      	ands	r3, r1
 
-  80252c6:	431a      	orrs	r2, r3
 
-         
 
-     tmppriority = tmppriority << 0x04;
 
-         
 
-     NVIC->IP[NVIC_InitStruct->NVIC_IRQChannel] = tmppriority;
 
-  80252c8:	7803      	ldrb	r3, [r0, #0]
 
-  80252ca:	f103 4360 	add.w	r3, r3, #3758096384	; 0xe0000000
 
-  80252ce:	f503 4361 	add.w	r3, r3, #57600	; 0xe100
 
-     tmpsub = tmpsub >> tmppriority;
 
-     tmppriority = NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority << tmppre;
 
-     tmppriority |=  (uint8_t)(NVIC_InitStruct->NVIC_IRQChannelSubPriority & tmpsub);
 
-         
 
-     tmppriority = tmppriority << 0x04;
 
-  80252d2:	0112      	lsls	r2, r2, #4
 
-         
 
-     NVIC->IP[NVIC_InitStruct->NVIC_IRQChannel] = tmppriority;
 
-  80252d4:	f883 2300 	strb.w	r2, [r3, #768]	; 0x300
 
-     
 
-     /* Enable the Selected IRQ Channels --------------------------------------*/
 
-     NVIC->ISER[NVIC_InitStruct->NVIC_IRQChannel >> 0x05] =
 
-  80252d8:	7803      	ldrb	r3, [r0, #0]
 
-       (uint32_t)0x01 << (NVIC_InitStruct->NVIC_IRQChannel & (uint8_t)0x1F);
 
-  80252da:	2201      	movs	r2, #1
 
-     tmppriority = tmppriority << 0x04;
 
-         
 
-     NVIC->IP[NVIC_InitStruct->NVIC_IRQChannel] = tmppriority;
 
-     
 
-     /* Enable the Selected IRQ Channels --------------------------------------*/
 
-     NVIC->ISER[NVIC_InitStruct->NVIC_IRQChannel >> 0x05] =
 
-  80252dc:	0959      	lsrs	r1, r3, #5
 
-       (uint32_t)0x01 << (NVIC_InitStruct->NVIC_IRQChannel & (uint8_t)0x1F);
 
-  80252de:	f003 031f 	and.w	r3, r3, #31
 
-  80252e2:	fa02 f303 	lsl.w	r3, r2, r3
 
-  80252e6:	e007      	b.n	80252f8 <NVIC_Init+0x58>
 
-   }
 
-   else
 
-   {
 
-     /* Disable the Selected IRQ Channels -------------------------------------*/
 
-     NVIC->ICER[NVIC_InitStruct->NVIC_IRQChannel >> 0x05] =
 
-  80252e8:	7803      	ldrb	r3, [r0, #0]
 
-       (uint32_t)0x01 << (NVIC_InitStruct->NVIC_IRQChannel & (uint8_t)0x1F);
 
-  80252ea:	2201      	movs	r2, #1
 
-       (uint32_t)0x01 << (NVIC_InitStruct->NVIC_IRQChannel & (uint8_t)0x1F);
 
-   }
 
-   else
 
-   {
 
-     /* Disable the Selected IRQ Channels -------------------------------------*/
 
-     NVIC->ICER[NVIC_InitStruct->NVIC_IRQChannel >> 0x05] =
 
-  80252ec:	0959      	lsrs	r1, r3, #5
 
-       (uint32_t)0x01 << (NVIC_InitStruct->NVIC_IRQChannel & (uint8_t)0x1F);
 
-  80252ee:	f003 031f 	and.w	r3, r3, #31
 
-  80252f2:	fa02 f303 	lsl.w	r3, r2, r3
 
-       (uint32_t)0x01 << (NVIC_InitStruct->NVIC_IRQChannel & (uint8_t)0x1F);
 
-   }
 
-   else
 
-   {
 
-     /* Disable the Selected IRQ Channels -------------------------------------*/
 
-     NVIC->ICER[NVIC_InitStruct->NVIC_IRQChannel >> 0x05] =
 
-  80252f6:	3120      	adds	r1, #32
 
-  80252f8:	4a02      	ldr	r2, [pc, #8]	; (8025304 <NVIC_Init+0x64>)
 
-  80252fa:	f842 3021 	str.w	r3, [r2, r1, lsl #2]
 
-  80252fe:	4770      	bx	lr
 
-  8025300:	e000ed00 	.word	0xe000ed00
 
-  8025304:	e000e100 	.word	0xe000e100
 
- 08025308 <NVIC_SetVectorTable>:
 
- { 
 
-   /* Check the parameters */
 
-   assert_param(IS_NVIC_VECTTAB(NVIC_VectTab));
 
-   assert_param(IS_NVIC_OFFSET(Offset));  
 
-    
 
-   SCB->VTOR = NVIC_VectTab | (Offset & (uint32_t)0x1FFFFF80);
 
-  8025308:	f021 4160 	bic.w	r1, r1, #3758096384	; 0xe0000000
 
-  802530c:	f021 017f 	bic.w	r1, r1, #127	; 0x7f
 
-  8025310:	4b01      	ldr	r3, [pc, #4]	; (8025318 <NVIC_SetVectorTable+0x10>)
 
-  8025312:	4308      	orrs	r0, r1
 
-  8025314:	6098      	str	r0, [r3, #8]
 
-  8025316:	4770      	bx	lr
 
-  8025318:	e000ed00 	.word	0xe000ed00
 
- 0802531c <CRC_ResetDR>:
 
-   * @retval None
 
-   */
 
- void CRC_ResetDR(void)
 
- {
 
-   /* Reset CRC generator */
 
-   CRC->CR = CRC_CR_RESET;
 
-  802531c:	4b01      	ldr	r3, [pc, #4]	; (8025324 <CRC_ResetDR+0x8>)
 
-  802531e:	2201      	movs	r2, #1
 
-  8025320:	609a      	str	r2, [r3, #8]
 
-  8025322:	4770      	bx	lr
 
-  8025324:	40023000 	.word	0x40023000
 
- 08025328 <CRC_CalcBlockCRC>:
 
-   * @param  pBuffer: pointer to the buffer containing the data to be computed
 
-   * @param  BufferLength: length of the buffer to be computed					
 
-   * @retval 32-bit CRC
 
-   */
 
- uint32_t CRC_CalcBlockCRC(uint32_t pBuffer[], uint32_t BufferLength)
 
- {
 
-  8025328:	b510      	push	{r4, lr}
 
-   uint32_t index = 0;
 
-   
 
-   for(index = 0; index < BufferLength; index++)
 
-  802532a:	2300      	movs	r3, #0
 
-  802532c:	4c05      	ldr	r4, [pc, #20]	; (8025344 <CRC_CalcBlockCRC+0x1c>)
 
-  802532e:	e003      	b.n	8025338 <CRC_CalcBlockCRC+0x10>
 
-   {
 
-     CRC->DR = pBuffer[index];
 
-  8025330:	f850 2023 	ldr.w	r2, [r0, r3, lsl #2]
 
-   */
 
- uint32_t CRC_CalcBlockCRC(uint32_t pBuffer[], uint32_t BufferLength)
 
- {
 
-   uint32_t index = 0;
 
-   
 
-   for(index = 0; index < BufferLength; index++)
 
-  8025334:	3301      	adds	r3, #1
 
-   {
 
-     CRC->DR = pBuffer[index];
 
-  8025336:	6022      	str	r2, [r4, #0]
 
-   */
 
- uint32_t CRC_CalcBlockCRC(uint32_t pBuffer[], uint32_t BufferLength)
 
- {
 
-   uint32_t index = 0;
 
-   
 
-   for(index = 0; index < BufferLength; index++)
 
-  8025338:	428b      	cmp	r3, r1
 
-  802533a:	d1f9      	bne.n	8025330 <CRC_CalcBlockCRC+0x8>
 
-   {
 
-     CRC->DR = pBuffer[index];
 
-   }
 
-   return (CRC->DR);
 
-  802533c:	4b01      	ldr	r3, [pc, #4]	; (8025344 <CRC_CalcBlockCRC+0x1c>)
 
-  802533e:	6818      	ldr	r0, [r3, #0]
 
- }
 
-  8025340:	bd10      	pop	{r4, pc}
 
-  8025342:	bf00      	nop
 
-  8025344:	40023000 	.word	0x40023000
 
- 08025348 <FLASH_Unlock>:
 
-   * @param  None
 
-   * @retval None
 
-   */
 
- void FLASH_Unlock(void)
 
- {
 
-   if((FLASH->CR & FLASH_CR_LOCK) != RESET)
 
-  8025348:	4b04      	ldr	r3, [pc, #16]	; (802535c <FLASH_Unlock+0x14>)
 
-  802534a:	691a      	ldr	r2, [r3, #16]
 
-  802534c:	2a00      	cmp	r2, #0
 
-  802534e:	da04      	bge.n	802535a <FLASH_Unlock+0x12>
 
-   {
 
-     /* Authorize the FLASH Registers access */
 
-     FLASH->KEYR = FLASH_KEY1;
 
-  8025350:	4a03      	ldr	r2, [pc, #12]	; (8025360 <FLASH_Unlock+0x18>)
 
-  8025352:	605a      	str	r2, [r3, #4]
 
-     FLASH->KEYR = FLASH_KEY2;
 
-  8025354:	f102 3288 	add.w	r2, r2, #2290649224	; 0x88888888
 
-  8025358:	605a      	str	r2, [r3, #4]
 
-  802535a:	4770      	bx	lr
 
-  802535c:	40023c00 	.word	0x40023c00
 
-  8025360:	45670123 	.word	0x45670123
 
- 08025364 <FLASH_Lock>:
 
-   * @retval None
 
-   */
 
- void FLASH_Lock(void)
 
- {
 
-   /* Set the LOCK Bit to lock the FLASH Registers access */
 
-   FLASH->CR |= FLASH_CR_LOCK;
 
-  8025364:	4b02      	ldr	r3, [pc, #8]	; (8025370 <FLASH_Lock+0xc>)
 
-  8025366:	691a      	ldr	r2, [r3, #16]
 
-  8025368:	f042 4200 	orr.w	r2, r2, #2147483648	; 0x80000000
 
-  802536c:	611a      	str	r2, [r3, #16]
 
-  802536e:	4770      	bx	lr
 
-  8025370:	40023c00 	.word	0x40023c00
 
- 08025374 <FLASH_ClearFlag>:
 
- {
 
-   /* Check the parameters */
 
-   assert_param(IS_FLASH_CLEAR_FLAG(FLASH_FLAG));
 
-   
 
-   /* Clear the flags */
 
-   FLASH->SR = FLASH_FLAG;
 
-  8025374:	4b01      	ldr	r3, [pc, #4]	; (802537c <FLASH_ClearFlag+0x8>)
 
-  8025376:	60d8      	str	r0, [r3, #12]
 
-  8025378:	4770      	bx	lr
 
-  802537a:	bf00      	nop
 
-  802537c:	40023c00 	.word	0x40023c00
 
- 08025380 <FLASH_GetStatus>:
 
-   */
 
- FLASH_Status FLASH_GetStatus(void)
 
- {
 
-   FLASH_Status flashstatus = FLASH_COMPLETE;
 
-   
 
-   if((FLASH->SR & FLASH_FLAG_BSY) == FLASH_FLAG_BSY) 
 
-  8025380:	4b0b      	ldr	r3, [pc, #44]	; (80253b0 <FLASH_GetStatus+0x30>)
 
-  8025382:	68da      	ldr	r2, [r3, #12]
 
-  8025384:	03d0      	lsls	r0, r2, #15
 
-  8025386:	d40d      	bmi.n	80253a4 <FLASH_GetStatus+0x24>
 
-   {
 
-     flashstatus = FLASH_BUSY;
 
-   }
 
-   else 
 
-   {  
 
-     if((FLASH->SR & FLASH_FLAG_WRPERR) != (uint32_t)0x00)
 
-  8025388:	68da      	ldr	r2, [r3, #12]
 
-  802538a:	06d1      	lsls	r1, r2, #27
 
-  802538c:	d40c      	bmi.n	80253a8 <FLASH_GetStatus+0x28>
 
-     { 
 
-       flashstatus = FLASH_ERROR_WRP;
 
-     }
 
-     else 
 
-     {
 
-       if((FLASH->SR & (uint32_t)0xEF) != (uint32_t)0x00)
 
-  802538e:	68da      	ldr	r2, [r3, #12]
 
-  8025390:	f012 0fef 	tst.w	r2, #239	; 0xef
 
-  8025394:	d10a      	bne.n	80253ac <FLASH_GetStatus+0x2c>
 
-       {
 
-         flashstatus = FLASH_ERROR_PROGRAM; 
 
-       }
 
-       else
 
-       {
 
-         if((FLASH->SR & FLASH_FLAG_OPERR) != (uint32_t)0x00)
 
-  8025396:	68db      	ldr	r3, [r3, #12]
 
-  8025398:	f013 0f02 	tst.w	r3, #2
 
-         {
 
-           flashstatus = FLASH_ERROR_OPERATION;
 
-  802539c:	bf0c      	ite	eq
 
-  802539e:	2008      	moveq	r0, #8
 
-  80253a0:	2007      	movne	r0, #7
 
-  80253a2:	4770      	bx	lr
 
- {
 
-   FLASH_Status flashstatus = FLASH_COMPLETE;
 
-   
 
-   if((FLASH->SR & FLASH_FLAG_BSY) == FLASH_FLAG_BSY) 
 
-   {
 
-     flashstatus = FLASH_BUSY;
 
-  80253a4:	2001      	movs	r0, #1
 
-  80253a6:	4770      	bx	lr
 
-   }
 
-   else 
 
-   {  
 
-     if((FLASH->SR & FLASH_FLAG_WRPERR) != (uint32_t)0x00)
 
-     { 
 
-       flashstatus = FLASH_ERROR_WRP;
 
-  80253a8:	2005      	movs	r0, #5
 
-  80253aa:	4770      	bx	lr
 
-     }
 
-     else 
 
-     {
 
-       if((FLASH->SR & (uint32_t)0xEF) != (uint32_t)0x00)
 
-       {
 
-         flashstatus = FLASH_ERROR_PROGRAM; 
 
-  80253ac:	2006      	movs	r0, #6
 
-       }
 
-     }
 
-   }
 
-   /* Return the FLASH Status */
 
-   return flashstatus;
 
- }
 
-  80253ae:	4770      	bx	lr
 
-  80253b0:	40023c00 	.word	0x40023c00
 
- 080253b4 <FLASH_WaitForLastOperation>:
 
-   * @param  None
 
-   * @retval FLASH Status: The returned value can be: FLASH_BUSY, FLASH_ERROR_PROGRAM,
 
-   *                       FLASH_ERROR_WRP, FLASH_ERROR_OPERATION or FLASH_COMPLETE.
 
-   */
 
- FLASH_Status FLASH_WaitForLastOperation(void)
 
- { 
 
-  80253b4:	b507      	push	{r0, r1, r2, lr}
 
-   __IO FLASH_Status status = FLASH_COMPLETE;
 
-  80253b6:	2308      	movs	r3, #8
 
-  80253b8:	f88d 3007 	strb.w	r3, [sp, #7]
 
-   /* Wait for the FLASH operation to complete by polling on BUSY flag to be reset.
 
-      Even if the FLASH operation fails, the BUSY flag will be reset and an error
 
-      flag will be set */
 
-   while(status == FLASH_BUSY)
 
-   {
 
-     status = FLASH_GetStatus();
 
-  80253bc:	f7ff ffe0 	bl	8025380 <FLASH_GetStatus>
 
-  80253c0:	f88d 0007 	strb.w	r0, [sp, #7]
 
-   status = FLASH_GetStatus();
 
-   /* Wait for the FLASH operation to complete by polling on BUSY flag to be reset.
 
-      Even if the FLASH operation fails, the BUSY flag will be reset and an error
 
-      flag will be set */
 
-   while(status == FLASH_BUSY)
 
-  80253c4:	f89d 3007 	ldrb.w	r3, [sp, #7]
 
-  80253c8:	2b01      	cmp	r3, #1
 
-  80253ca:	d0f7      	beq.n	80253bc <FLASH_WaitForLastOperation+0x8>
 
-   {
 
-     status = FLASH_GetStatus();
 
-   }
 
-   /* Return the operation status */
 
-   return status;
 
-  80253cc:	f89d 0007 	ldrb.w	r0, [sp, #7]
 
- }
 
-  80253d0:	bd0e      	pop	{r1, r2, r3, pc}
 
-  80253d2:	0000      	movs	r0, r0
 
- 080253d4 <FLASH_ProgramByte>:
 
-   * @param  Data: specifies the data to be programmed.
 
-   * @retval FLASH Status: The returned value can be: FLASH_BUSY, FLASH_ERROR_PROGRAM,
 
-   *                       FLASH_ERROR_WRP, FLASH_ERROR_OPERATION or FLASH_COMPLETE.
 
-   */
 
- FLASH_Status FLASH_ProgramByte(uint32_t Address, uint8_t Data)
 
- {
 
-  80253d4:	b570      	push	{r4, r5, r6, lr}
 
-  80253d6:	4605      	mov	r5, r0
 
-  80253d8:	460e      	mov	r6, r1
 
-   /* Check the parameters */
 
-   assert_param(IS_FLASH_ADDRESS(Address));
 
-   /* Wait for last operation to be completed */
 
-   status = FLASH_WaitForLastOperation();
 
-  80253da:	f7ff ffeb 	bl	80253b4 <FLASH_WaitForLastOperation>
 
-   
 
-   if(status == FLASH_COMPLETE)
 
-  80253de:	2808      	cmp	r0, #8
 
-  80253e0:	d111      	bne.n	8025406 <FLASH_ProgramByte+0x32>
 
-   {
 
-     /* if the previous operation is completed, proceed to program the new data */
 
-     FLASH->CR &= CR_PSIZE_MASK;
 
-  80253e2:	4c09      	ldr	r4, [pc, #36]	; (8025408 <FLASH_ProgramByte+0x34>)
 
-  80253e4:	6923      	ldr	r3, [r4, #16]
 
-  80253e6:	f423 7340 	bic.w	r3, r3, #768	; 0x300
 
-  80253ea:	6123      	str	r3, [r4, #16]
 
-     FLASH->CR |= FLASH_PSIZE_BYTE;
 
-  80253ec:	6923      	ldr	r3, [r4, #16]
 
-  80253ee:	6123      	str	r3, [r4, #16]
 
-     FLASH->CR |= FLASH_CR_PG;
 
-  80253f0:	6923      	ldr	r3, [r4, #16]
 
-  80253f2:	f043 0301 	orr.w	r3, r3, #1
 
-  80253f6:	6123      	str	r3, [r4, #16]
 
-   
 
-     *(__IO uint8_t*)Address = Data;
 
-  80253f8:	702e      	strb	r6, [r5, #0]
 
-         
 
-     /* Wait for last operation to be completed */
 
-     status = FLASH_WaitForLastOperation();
 
-  80253fa:	f7ff ffdb 	bl	80253b4 <FLASH_WaitForLastOperation>
 
-     /* if the program operation is completed, disable the PG Bit */
 
-     FLASH->CR &= (~FLASH_CR_PG);
 
-  80253fe:	6923      	ldr	r3, [r4, #16]
 
-  8025400:	f023 0301 	bic.w	r3, r3, #1
 
-  8025404:	6123      	str	r3, [r4, #16]
 
-   } 
 
-   /* Return the Program Status */
 
-   return status;
 
- }
 
-  8025406:	bd70      	pop	{r4, r5, r6, pc}
 
-  8025408:	40023c00 	.word	0x40023c00
 
- 0802540c <FLASH_ProgramWord>:
 
-   * @param  Data: specifies the data to be programmed.
 
-   * @retval FLASH Status: The returned value can be: FLASH_BUSY, FLASH_ERROR_PROGRAM,
 
-   *                       FLASH_ERROR_WRP, FLASH_ERROR_OPERATION or FLASH_COMPLETE.
 
-   */
 
- FLASH_Status FLASH_ProgramWord(uint32_t Address, uint32_t Data)
 
- {
 
-  802540c:	b570      	push	{r4, r5, r6, lr}
 
-  802540e:	4605      	mov	r5, r0
 
-  8025410:	460e      	mov	r6, r1
 
-   /* Check the parameters */
 
-   assert_param(IS_FLASH_ADDRESS(Address));
 
-   /* Wait for last operation to be completed */
 
-   status = FLASH_WaitForLastOperation();
 
-  8025412:	f7ff ffcf 	bl	80253b4 <FLASH_WaitForLastOperation>
 
-   
 
-   if(status == FLASH_COMPLETE)
 
-  8025416:	2808      	cmp	r0, #8
 
-  8025418:	d113      	bne.n	8025442 <FLASH_ProgramWord+0x36>
 
-   {
 
-     /* if the previous operation is completed, proceed to program the new data */
 
-     FLASH->CR &= CR_PSIZE_MASK;
 
-  802541a:	4c0a      	ldr	r4, [pc, #40]	; (8025444 <FLASH_ProgramWord+0x38>)
 
-  802541c:	6923      	ldr	r3, [r4, #16]
 
-  802541e:	f423 7340 	bic.w	r3, r3, #768	; 0x300
 
-  8025422:	6123      	str	r3, [r4, #16]
 
-     FLASH->CR |= FLASH_PSIZE_WORD;
 
-  8025424:	6923      	ldr	r3, [r4, #16]
 
-  8025426:	f443 7300 	orr.w	r3, r3, #512	; 0x200
 
-  802542a:	6123      	str	r3, [r4, #16]
 
-     FLASH->CR |= FLASH_CR_PG;
 
-  802542c:	6923      	ldr	r3, [r4, #16]
 
-  802542e:	f043 0301 	orr.w	r3, r3, #1
 
-  8025432:	6123      	str	r3, [r4, #16]
 
-   
 
-     *(__IO uint32_t*)Address = Data;
 
-  8025434:	602e      	str	r6, [r5, #0]
 
-         
 
-     /* Wait for last operation to be completed */
 
-     status = FLASH_WaitForLastOperation();
 
-  8025436:	f7ff ffbd 	bl	80253b4 <FLASH_WaitForLastOperation>
 
-     /* if the program operation is completed, disable the PG Bit */
 
-     FLASH->CR &= (~FLASH_CR_PG);
 
-  802543a:	6923      	ldr	r3, [r4, #16]
 
-  802543c:	f023 0301 	bic.w	r3, r3, #1
 
-  8025440:	6123      	str	r3, [r4, #16]
 
-   } 
 
-   /* Return the Program Status */
 
-   return status;
 
- }
 
-  8025442:	bd70      	pop	{r4, r5, r6, pc}
 
-  8025444:	40023c00 	.word	0x40023c00
 
- 08025448 <FLASH_EraseSector>:
 
-   *       
 
-   * @retval FLASH Status: The returned value can be: FLASH_BUSY, FLASH_ERROR_PROGRAM,
 
-   *                       FLASH_ERROR_WRP, FLASH_ERROR_OPERATION or FLASH_COMPLETE.
 
-   */
 
- FLASH_Status FLASH_EraseSector(uint32_t FLASH_Sector, uint8_t VoltageRange)
 
- {
 
-  8025448:	b570      	push	{r4, r5, r6, lr}
 
-  802544a:	4606      	mov	r6, r0
 
-   /* Check the parameters */
 
-   assert_param(IS_FLASH_SECTOR(FLASH_Sector));
 
-   assert_param(IS_VOLTAGERANGE(VoltageRange));
 
-   
 
-   if(VoltageRange == VoltageRange_1)
 
-  802544c:	b141      	cbz	r1, 8025460 <FLASH_EraseSector+0x18>
 
-   {
 
-      tmp_psize = FLASH_PSIZE_BYTE;
 
-   }
 
-   else if(VoltageRange == VoltageRange_2)
 
-  802544e:	2901      	cmp	r1, #1
 
-  8025450:	d008      	beq.n	8025464 <FLASH_EraseSector+0x1c>
 
-   {
 
-     tmp_psize = FLASH_PSIZE_HALF_WORD;
 
-   }
 
-   else if(VoltageRange == VoltageRange_3)
 
-   {
 
-     tmp_psize = FLASH_PSIZE_WORD;
 
-  8025452:	2902      	cmp	r1, #2
 
-  8025454:	bf14      	ite	ne
 
-  8025456:	f44f 7540 	movne.w	r5, #768	; 0x300
 
-  802545a:	f44f 7500 	moveq.w	r5, #512	; 0x200
 
-  802545e:	e003      	b.n	8025468 <FLASH_EraseSector+0x20>
 
-   assert_param(IS_FLASH_SECTOR(FLASH_Sector));
 
-   assert_param(IS_VOLTAGERANGE(VoltageRange));
 
-   
 
-   if(VoltageRange == VoltageRange_1)
 
-   {
 
-      tmp_psize = FLASH_PSIZE_BYTE;
 
-  8025460:	460d      	mov	r5, r1
 
-  8025462:	e001      	b.n	8025468 <FLASH_EraseSector+0x20>
 
-   }
 
-   else if(VoltageRange == VoltageRange_2)
 
-   {
 
-     tmp_psize = FLASH_PSIZE_HALF_WORD;
 
-  8025464:	f44f 7580 	mov.w	r5, #256	; 0x100
 
-   else
 
-   {
 
-     tmp_psize = FLASH_PSIZE_DOUBLE_WORD;
 
-   }
 
-   /* Wait for last operation to be completed */
 
-   status = FLASH_WaitForLastOperation();
 
-  8025468:	f7ff ffa4 	bl	80253b4 <FLASH_WaitForLastOperation>
 
-   
 
-   if(status == FLASH_COMPLETE)
 
-  802546c:	2808      	cmp	r0, #8
 
-  802546e:	d11e      	bne.n	80254ae <FLASH_EraseSector+0x66>
 
-   { 
 
-     /* if the previous operation is completed, proceed to erase the sector */
 
-     FLASH->CR &= CR_PSIZE_MASK;
 
-  8025470:	4c0f      	ldr	r4, [pc, #60]	; (80254b0 <FLASH_EraseSector+0x68>)
 
-  8025472:	6923      	ldr	r3, [r4, #16]
 
-  8025474:	f423 7340 	bic.w	r3, r3, #768	; 0x300
 
-  8025478:	6123      	str	r3, [r4, #16]
 
-     FLASH->CR |= tmp_psize;
 
-  802547a:	6921      	ldr	r1, [r4, #16]
 
-  802547c:	430d      	orrs	r5, r1
 
-  802547e:	6125      	str	r5, [r4, #16]
 
-     FLASH->CR &= SECTOR_MASK;
 
-  8025480:	6923      	ldr	r3, [r4, #16]
 
-  8025482:	f023 03f8 	bic.w	r3, r3, #248	; 0xf8
 
-  8025486:	6123      	str	r3, [r4, #16]
 
-     FLASH->CR |= FLASH_CR_SER | FLASH_Sector;
 
-  8025488:	6923      	ldr	r3, [r4, #16]
 
-  802548a:	f043 0302 	orr.w	r3, r3, #2
 
-  802548e:	431e      	orrs	r6, r3
 
-  8025490:	6126      	str	r6, [r4, #16]
 
-     FLASH->CR |= FLASH_CR_STRT;
 
-  8025492:	6923      	ldr	r3, [r4, #16]
 
-  8025494:	f443 3380 	orr.w	r3, r3, #65536	; 0x10000
 
-  8025498:	6123      	str	r3, [r4, #16]
 
-     
 
-     /* Wait for last operation to be completed */
 
-     status = FLASH_WaitForLastOperation();
 
-  802549a:	f7ff ff8b 	bl	80253b4 <FLASH_WaitForLastOperation>
 
-     
 
-     /* if the erase operation is completed, disable the SER Bit */
 
-     FLASH->CR &= (~FLASH_CR_SER);
 
-  802549e:	6923      	ldr	r3, [r4, #16]
 
-  80254a0:	f023 0302 	bic.w	r3, r3, #2
 
-  80254a4:	6123      	str	r3, [r4, #16]
 
-     FLASH->CR &= SECTOR_MASK; 
 
-  80254a6:	6923      	ldr	r3, [r4, #16]
 
-  80254a8:	f023 03f8 	bic.w	r3, r3, #248	; 0xf8
 
-  80254ac:	6123      	str	r3, [r4, #16]
 
-   }
 
-   /* Return the Erase Status */
 
-   return status;
 
- }
 
-  80254ae:	bd70      	pop	{r4, r5, r6, pc}
 
-  80254b0:	40023c00 	.word	0x40023c00
 
- 080254b4 <GPIO_DeInit>:
 
-   * @note   By default, The GPIO pins are configured in input floating mode (except JTAG pins).
 
-   * @param  GPIOx: where x can be (A..I) to select the GPIO peripheral.
 
-   * @retval None
 
-   */
 
- void GPIO_DeInit(GPIO_TypeDef* GPIOx)
 
- {
 
-  80254b4:	b508      	push	{r3, lr}
 
-   /* Check the parameters */
 
-   assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
 
-   if (GPIOx == GPIOA)
 
-  80254b6:	4b2c      	ldr	r3, [pc, #176]	; (8025568 <GPIO_DeInit+0xb4>)
 
-  80254b8:	4298      	cmp	r0, r3
 
-  80254ba:	d105      	bne.n	80254c8 <GPIO_DeInit+0x14>
 
-   {
 
-     RCC_AHB1PeriphResetCmd(RCC_AHB1Periph_GPIOA, ENABLE);
 
-  80254bc:	2001      	movs	r0, #1
 
-  80254be:	4601      	mov	r1, r0
 
-  80254c0:	f000 f974 	bl	80257ac <RCC_AHB1PeriphResetCmd>
 
-     RCC_AHB1PeriphResetCmd(RCC_AHB1Periph_GPIOA, DISABLE);
 
-  80254c4:	2001      	movs	r0, #1
 
-  80254c6:	e048      	b.n	802555a <GPIO_DeInit+0xa6>
 
-   }
 
-   else if (GPIOx == GPIOB)
 
-  80254c8:	4b28      	ldr	r3, [pc, #160]	; (802556c <GPIO_DeInit+0xb8>)
 
-  80254ca:	4298      	cmp	r0, r3
 
-  80254cc:	d105      	bne.n	80254da <GPIO_DeInit+0x26>
 
-   {
 
-     RCC_AHB1PeriphResetCmd(RCC_AHB1Periph_GPIOB, ENABLE);
 
-  80254ce:	2002      	movs	r0, #2
 
-  80254d0:	2101      	movs	r1, #1
 
-  80254d2:	f000 f96b 	bl	80257ac <RCC_AHB1PeriphResetCmd>
 
-     RCC_AHB1PeriphResetCmd(RCC_AHB1Periph_GPIOB, DISABLE);
 
-  80254d6:	2002      	movs	r0, #2
 
-  80254d8:	e03f      	b.n	802555a <GPIO_DeInit+0xa6>
 
-   }
 
-   else if (GPIOx == GPIOC)
 
-  80254da:	4b25      	ldr	r3, [pc, #148]	; (8025570 <GPIO_DeInit+0xbc>)
 
-  80254dc:	4298      	cmp	r0, r3
 
-  80254de:	d105      	bne.n	80254ec <GPIO_DeInit+0x38>
 
-   {
 
-     RCC_AHB1PeriphResetCmd(RCC_AHB1Periph_GPIOC, ENABLE);
 
-  80254e0:	2004      	movs	r0, #4
 
-  80254e2:	2101      	movs	r1, #1
 
-  80254e4:	f000 f962 	bl	80257ac <RCC_AHB1PeriphResetCmd>
 
-     RCC_AHB1PeriphResetCmd(RCC_AHB1Periph_GPIOC, DISABLE);
 
-  80254e8:	2004      	movs	r0, #4
 
-  80254ea:	e036      	b.n	802555a <GPIO_DeInit+0xa6>
 
-   }
 
-   else if (GPIOx == GPIOD)
 
-  80254ec:	4b21      	ldr	r3, [pc, #132]	; (8025574 <GPIO_DeInit+0xc0>)
 
-  80254ee:	4298      	cmp	r0, r3
 
-  80254f0:	d105      	bne.n	80254fe <GPIO_DeInit+0x4a>
 
-   {
 
-     RCC_AHB1PeriphResetCmd(RCC_AHB1Periph_GPIOD, ENABLE);
 
-  80254f2:	2008      	movs	r0, #8
 
-  80254f4:	2101      	movs	r1, #1
 
-  80254f6:	f000 f959 	bl	80257ac <RCC_AHB1PeriphResetCmd>
 
-     RCC_AHB1PeriphResetCmd(RCC_AHB1Periph_GPIOD, DISABLE);
 
-  80254fa:	2008      	movs	r0, #8
 
-  80254fc:	e02d      	b.n	802555a <GPIO_DeInit+0xa6>
 
-   }
 
-   else if (GPIOx == GPIOE)
 
-  80254fe:	4b1e      	ldr	r3, [pc, #120]	; (8025578 <GPIO_DeInit+0xc4>)
 
-  8025500:	4298      	cmp	r0, r3
 
-  8025502:	d105      	bne.n	8025510 <GPIO_DeInit+0x5c>
 
-   {
 
-     RCC_AHB1PeriphResetCmd(RCC_AHB1Periph_GPIOE, ENABLE);
 
-  8025504:	2010      	movs	r0, #16
 
-  8025506:	2101      	movs	r1, #1
 
-  8025508:	f000 f950 	bl	80257ac <RCC_AHB1PeriphResetCmd>
 
-     RCC_AHB1PeriphResetCmd(RCC_AHB1Periph_GPIOE, DISABLE);
 
-  802550c:	2010      	movs	r0, #16
 
-  802550e:	e024      	b.n	802555a <GPIO_DeInit+0xa6>
 
-   }
 
-   else if (GPIOx == GPIOF)
 
-  8025510:	4b1a      	ldr	r3, [pc, #104]	; (802557c <GPIO_DeInit+0xc8>)
 
-  8025512:	4298      	cmp	r0, r3
 
-  8025514:	d105      	bne.n	8025522 <GPIO_DeInit+0x6e>
 
-   {
 
-     RCC_AHB1PeriphResetCmd(RCC_AHB1Periph_GPIOF, ENABLE);
 
-  8025516:	2020      	movs	r0, #32
 
-  8025518:	2101      	movs	r1, #1
 
-  802551a:	f000 f947 	bl	80257ac <RCC_AHB1PeriphResetCmd>
 
-     RCC_AHB1PeriphResetCmd(RCC_AHB1Periph_GPIOF, DISABLE);
 
-  802551e:	2020      	movs	r0, #32
 
-  8025520:	e01b      	b.n	802555a <GPIO_DeInit+0xa6>
 
-   }
 
-   else if (GPIOx == GPIOG)
 
-  8025522:	4b17      	ldr	r3, [pc, #92]	; (8025580 <GPIO_DeInit+0xcc>)
 
-  8025524:	4298      	cmp	r0, r3
 
-  8025526:	d105      	bne.n	8025534 <GPIO_DeInit+0x80>
 
-   {
 
-     RCC_AHB1PeriphResetCmd(RCC_AHB1Periph_GPIOG, ENABLE);
 
-  8025528:	2040      	movs	r0, #64	; 0x40
 
-  802552a:	2101      	movs	r1, #1
 
-  802552c:	f000 f93e 	bl	80257ac <RCC_AHB1PeriphResetCmd>
 
-     RCC_AHB1PeriphResetCmd(RCC_AHB1Periph_GPIOG, DISABLE);
 
-  8025530:	2040      	movs	r0, #64	; 0x40
 
-  8025532:	e012      	b.n	802555a <GPIO_DeInit+0xa6>
 
-   }
 
-   else if (GPIOx == GPIOH)
 
-  8025534:	4b13      	ldr	r3, [pc, #76]	; (8025584 <GPIO_DeInit+0xd0>)
 
-  8025536:	4298      	cmp	r0, r3
 
-  8025538:	d105      	bne.n	8025546 <GPIO_DeInit+0x92>
 
-   {
 
-     RCC_AHB1PeriphResetCmd(RCC_AHB1Periph_GPIOH, ENABLE);
 
-  802553a:	2080      	movs	r0, #128	; 0x80
 
-  802553c:	2101      	movs	r1, #1
 
-  802553e:	f000 f935 	bl	80257ac <RCC_AHB1PeriphResetCmd>
 
-     RCC_AHB1PeriphResetCmd(RCC_AHB1Periph_GPIOH, DISABLE);
 
-  8025542:	2080      	movs	r0, #128	; 0x80
 
-  8025544:	e009      	b.n	802555a <GPIO_DeInit+0xa6>
 
-   }
 
-   else
 
-   {
 
-     if (GPIOx == GPIOI)
 
-  8025546:	4b10      	ldr	r3, [pc, #64]	; (8025588 <GPIO_DeInit+0xd4>)
 
-  8025548:	4298      	cmp	r0, r3
 
-  802554a:	d10b      	bne.n	8025564 <GPIO_DeInit+0xb0>
 
-     {
 
-       RCC_AHB1PeriphResetCmd(RCC_AHB1Periph_GPIOI, ENABLE);
 
-  802554c:	f44f 7080 	mov.w	r0, #256	; 0x100
 
-  8025550:	2101      	movs	r1, #1
 
-  8025552:	f000 f92b 	bl	80257ac <RCC_AHB1PeriphResetCmd>
 
-       RCC_AHB1PeriphResetCmd(RCC_AHB1Periph_GPIOI, DISABLE);
 
-  8025556:	f44f 7080 	mov.w	r0, #256	; 0x100
 
-  802555a:	2100      	movs	r1, #0
 
-     }
 
-   }
 
- }
 
-  802555c:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
 
-   else
 
-   {
 
-     if (GPIOx == GPIOI)
 
-     {
 
-       RCC_AHB1PeriphResetCmd(RCC_AHB1Periph_GPIOI, ENABLE);
 
-       RCC_AHB1PeriphResetCmd(RCC_AHB1Periph_GPIOI, DISABLE);
 
-  8025560:	f000 b924 	b.w	80257ac <RCC_AHB1PeriphResetCmd>
 
-  8025564:	bd08      	pop	{r3, pc}
 
-  8025566:	bf00      	nop
 
-  8025568:	40020000 	.word	0x40020000
 
-  802556c:	40020400 	.word	0x40020400
 
-  8025570:	40020800 	.word	0x40020800
 
-  8025574:	40020c00 	.word	0x40020c00
 
-  8025578:	40021000 	.word	0x40021000
 
-  802557c:	40021400 	.word	0x40021400
 
-  8025580:	40021800 	.word	0x40021800
 
-  8025584:	40021c00 	.word	0x40021c00
 
-  8025588:	40022000 	.word	0x40022000
 
- 0802558c <GPIO_Init>:
 
-   * @param  GPIO_InitStruct: pointer to a GPIO_InitTypeDef structure that contains
 
-   *         the configuration information for the specified GPIO peripheral.
 
-   * @retval None
 
-   */
 
- void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)
 
- {
 
-  802558c:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
 
-   /*-- GPIO Mode Configuration --*/
 
-   for (pinpos = 0x00; pinpos < 0x10; pinpos++)
 
-   {
 
-     pos = ((uint32_t)0x01) << pinpos;
 
-     /* Get the port pins position */
 
-     currentpin = (GPIO_InitStruct->GPIO_Pin) & pos;
 
-  8025590:	680f      	ldr	r7, [r1, #0]
 
-   assert_param(IS_GPIO_MODE(GPIO_InitStruct->GPIO_Mode));
 
-   assert_param(IS_GPIO_PUPD(GPIO_InitStruct->GPIO_PuPd));
 
-   /* -------------------------Configure the port pins---------------- */
 
-   /*-- GPIO Mode Configuration --*/
 
-   for (pinpos = 0x00; pinpos < 0x10; pinpos++)
 
-  8025592:	2300      	movs	r3, #0
 
-   {
 
-     pos = ((uint32_t)0x01) << pinpos;
 
-  8025594:	f04f 0c01 	mov.w	ip, #1
 
-     /* Get the port pins position */
 
-     currentpin = (GPIO_InitStruct->GPIO_Pin) & pos;
 
-     if (currentpin == pos)
 
-     {
 
-       GPIOx->MODER  &= ~(GPIO_MODER_MODER0 << (pinpos * 2));
 
-  8025598:	f04f 0803 	mov.w	r8, #3
 
-   /* -------------------------Configure the port pins---------------- */
 
-   /*-- GPIO Mode Configuration --*/
 
-   for (pinpos = 0x00; pinpos < 0x10; pinpos++)
 
-   {
 
-     pos = ((uint32_t)0x01) << pinpos;
 
-  802559c:	fa0c f203 	lsl.w	r2, ip, r3
 
-     /* Get the port pins position */
 
-     currentpin = (GPIO_InitStruct->GPIO_Pin) & pos;
 
-  80255a0:	ea02 0507 	and.w	r5, r2, r7
 
-     if (currentpin == pos)
 
-  80255a4:	4295      	cmp	r5, r2
 
-  80255a6:	d131      	bne.n	802560c <GPIO_Init+0x80>
 
-   * @param  GPIOx: where x can be (A..I) to select the GPIO peripheral.
 
-   * @param  GPIO_InitStruct: pointer to a GPIO_InitTypeDef structure that contains
 
-   *         the configuration information for the specified GPIO peripheral.
 
-   * @retval None
 
-   */
 
- void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)
 
-  80255a8:	005a      	lsls	r2, r3, #1
 
-     /* Get the port pins position */
 
-     currentpin = (GPIO_InitStruct->GPIO_Pin) & pos;
 
-     if (currentpin == pos)
 
-     {
 
-       GPIOx->MODER  &= ~(GPIO_MODER_MODER0 << (pinpos * 2));
 
-  80255aa:	6806      	ldr	r6, [r0, #0]
 
-  80255ac:	fa08 f402 	lsl.w	r4, r8, r2
 
-  80255b0:	43e4      	mvns	r4, r4
 
-  80255b2:	4026      	ands	r6, r4
 
-  80255b4:	6006      	str	r6, [r0, #0]
 
-       GPIOx->MODER |= (((uint32_t)GPIO_InitStruct->GPIO_Mode) << (pinpos * 2));
 
-  80255b6:	790e      	ldrb	r6, [r1, #4]
 
-  80255b8:	f8d0 9000 	ldr.w	r9, [r0]
 
-  80255bc:	fa06 fa02 	lsl.w	sl, r6, r2
 
-       if ((GPIO_InitStruct->GPIO_Mode == GPIO_Mode_OUT) || (GPIO_InitStruct->GPIO_Mode == GPIO_Mode_AF))
 
-  80255c0:	3e01      	subs	r6, #1
 
-     currentpin = (GPIO_InitStruct->GPIO_Pin) & pos;
 
-     if (currentpin == pos)
 
-     {
 
-       GPIOx->MODER  &= ~(GPIO_MODER_MODER0 << (pinpos * 2));
 
-       GPIOx->MODER |= (((uint32_t)GPIO_InitStruct->GPIO_Mode) << (pinpos * 2));
 
-  80255c2:	ea4a 0909 	orr.w	r9, sl, r9
 
-       if ((GPIO_InitStruct->GPIO_Mode == GPIO_Mode_OUT) || (GPIO_InitStruct->GPIO_Mode == GPIO_Mode_AF))
 
-  80255c6:	2e01      	cmp	r6, #1
 
-     currentpin = (GPIO_InitStruct->GPIO_Pin) & pos;
 
-     if (currentpin == pos)
 
-     {
 
-       GPIOx->MODER  &= ~(GPIO_MODER_MODER0 << (pinpos * 2));
 
-       GPIOx->MODER |= (((uint32_t)GPIO_InitStruct->GPIO_Mode) << (pinpos * 2));
 
-  80255c8:	f8c0 9000 	str.w	r9, [r0]
 
-       if ((GPIO_InitStruct->GPIO_Mode == GPIO_Mode_OUT) || (GPIO_InitStruct->GPIO_Mode == GPIO_Mode_AF))
 
-  80255cc:	d815      	bhi.n	80255fa <GPIO_Init+0x6e>
 
-       {
 
-         /* Check Speed mode parameters */
 
-         assert_param(IS_GPIO_SPEED(GPIO_InitStruct->GPIO_Speed));
 
-         /* Speed mode configuration */
 
-         GPIOx->OSPEEDR &= ~(GPIO_OSPEEDER_OSPEEDR0 << (pinpos * 2));
 
-  80255ce:	6886      	ldr	r6, [r0, #8]
 
-         GPIOx->OSPEEDR |= ((uint32_t)(GPIO_InitStruct->GPIO_Speed) << (pinpos * 2));
 
-  80255d0:	f891 9005 	ldrb.w	r9, [r1, #5]
 
-       {
 
-         /* Check Speed mode parameters */
 
-         assert_param(IS_GPIO_SPEED(GPIO_InitStruct->GPIO_Speed));
 
-         /* Speed mode configuration */
 
-         GPIOx->OSPEEDR &= ~(GPIO_OSPEEDER_OSPEEDR0 << (pinpos * 2));
 
-  80255d4:	4026      	ands	r6, r4
 
-  80255d6:	6086      	str	r6, [r0, #8]
 
-         GPIOx->OSPEEDR |= ((uint32_t)(GPIO_InitStruct->GPIO_Speed) << (pinpos * 2));
 
-  80255d8:	6886      	ldr	r6, [r0, #8]
 
-  80255da:	fa09 f902 	lsl.w	r9, r9, r2
 
-  80255de:	ea49 0606 	orr.w	r6, r9, r6
 
-  80255e2:	6086      	str	r6, [r0, #8]
 
-         /* Check Output mode parameters */
 
-         assert_param(IS_GPIO_OTYPE(GPIO_InitStruct->GPIO_OType));
 
-         /* Output mode configuration*/
 
-         GPIOx->OTYPER  &= ~((GPIO_OTYPER_OT_0) << ((uint16_t)pinpos)) ;
 
-  80255e4:	6846      	ldr	r6, [r0, #4]
 
-  80255e6:	ea26 0505 	bic.w	r5, r6, r5
 
-  80255ea:	6045      	str	r5, [r0, #4]
 
-         GPIOx->OTYPER |= (uint16_t)(((uint16_t)GPIO_InitStruct->GPIO_OType) << ((uint16_t)pinpos));
 
-  80255ec:	798d      	ldrb	r5, [r1, #6]
 
-  80255ee:	6846      	ldr	r6, [r0, #4]
 
-  80255f0:	fa05 f503 	lsl.w	r5, r5, r3
 
-   
 
-   temp = ((uint32_t)(GPIO_AF) << ((uint32_t)((uint32_t)GPIO_PinSource & (uint32_t)0x07) * 4)) ;
 
-   GPIOx->AFR[GPIO_PinSource >> 0x03] &= ~((uint32_t)0xF << ((uint32_t)((uint32_t)GPIO_PinSource & (uint32_t)0x07) * 4)) ;
 
-   temp_2 = GPIOx->AFR[GPIO_PinSource >> 0x03] | temp;
 
-   GPIOx->AFR[GPIO_PinSource >> 0x03] = temp_2;
 
- }
 
-  80255f4:	b2ad      	uxth	r5, r5
 
-         /* Check Output mode parameters */
 
-         assert_param(IS_GPIO_OTYPE(GPIO_InitStruct->GPIO_OType));
 
-         /* Output mode configuration*/
 
-         GPIOx->OTYPER  &= ~((GPIO_OTYPER_OT_0) << ((uint16_t)pinpos)) ;
 
-         GPIOx->OTYPER |= (uint16_t)(((uint16_t)GPIO_InitStruct->GPIO_OType) << ((uint16_t)pinpos));
 
-  80255f6:	4335      	orrs	r5, r6
 
-  80255f8:	6045      	str	r5, [r0, #4]
 
-       }
 
-       /* Pull-up Pull down resistor configuration*/
 
-       GPIOx->PUPDR &= ~(GPIO_PUPDR_PUPDR0 << ((uint16_t)pinpos * 2));
 
-  80255fa:	68c5      	ldr	r5, [r0, #12]
 
-  80255fc:	402c      	ands	r4, r5
 
-  80255fe:	60c4      	str	r4, [r0, #12]
 
-       GPIOx->PUPDR |= (((uint32_t)GPIO_InitStruct->GPIO_PuPd) << (pinpos * 2));
 
-  8025600:	79cd      	ldrb	r5, [r1, #7]
 
-  8025602:	68c4      	ldr	r4, [r0, #12]
 
-  8025604:	fa05 f202 	lsl.w	r2, r5, r2
 
-  8025608:	4322      	orrs	r2, r4
 
-  802560a:	60c2      	str	r2, [r0, #12]
 
-   assert_param(IS_GPIO_MODE(GPIO_InitStruct->GPIO_Mode));
 
-   assert_param(IS_GPIO_PUPD(GPIO_InitStruct->GPIO_PuPd));
 
-   /* -------------------------Configure the port pins---------------- */
 
-   /*-- GPIO Mode Configuration --*/
 
-   for (pinpos = 0x00; pinpos < 0x10; pinpos++)
 
-  802560c:	3301      	adds	r3, #1
 
-  802560e:	2b10      	cmp	r3, #16
 
-  8025610:	d1c4      	bne.n	802559c <GPIO_Init+0x10>
 
-       /* Pull-up Pull down resistor configuration*/
 
-       GPIOx->PUPDR &= ~(GPIO_PUPDR_PUPDR0 << ((uint16_t)pinpos * 2));
 
-       GPIOx->PUPDR |= (((uint32_t)GPIO_InitStruct->GPIO_PuPd) << (pinpos * 2));
 
-     }
 
-   }
 
- }
 
-  8025612:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
 
- 08025616 <GPIO_SetBits>:
 
- {
 
-   /* Check the parameters */
 
-   assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
 
-   assert_param(IS_GPIO_PIN(GPIO_Pin));
 
-   GPIOx->BSRRL = GPIO_Pin;
 
-  8025616:	8301      	strh	r1, [r0, #24]
 
-  8025618:	4770      	bx	lr
 
- 0802561a <GPIO_ResetBits>:
 
- {
 
-   /* Check the parameters */
 
-   assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
 
-   assert_param(IS_GPIO_PIN(GPIO_Pin));
 
-   GPIOx->BSRRH = GPIO_Pin;
 
-  802561a:	8341      	strh	r1, [r0, #26]
 
-  802561c:	4770      	bx	lr
 
- 0802561e <GPIO_PinAFConfig>:
 
-   /* Check the parameters */
 
-   assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
 
-   assert_param(IS_GPIO_PIN_SOURCE(GPIO_PinSource));
 
-   assert_param(IS_GPIO_AF(GPIO_AF));
 
-   
 
-   temp = ((uint32_t)(GPIO_AF) << ((uint32_t)((uint32_t)GPIO_PinSource & (uint32_t)0x07) * 4)) ;
 
-  802561e:	f001 0307 	and.w	r3, r1, #7
 
-   GPIOx->AFR[GPIO_PinSource >> 0x03] &= ~((uint32_t)0xF << ((uint32_t)((uint32_t)GPIO_PinSource & (uint32_t)0x07) * 4)) ;
 
-  8025622:	08c9      	lsrs	r1, r1, #3
 
-  8025624:	3108      	adds	r1, #8
 
-   *            @arg GPIO_AF_DCMI: Connect DCMI pins to AF13
 
-   *            @arg GPIO_AF_EVENTOUT: Connect EVENTOUT pins to AF15
 
-   * @retval None
 
-   */
 
- void GPIO_PinAFConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_PinSource, uint8_t GPIO_AF)
 
- {
 
-  8025626:	b530      	push	{r4, r5, lr}
 
-   /* Check the parameters */
 
-   assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
 
-   assert_param(IS_GPIO_PIN_SOURCE(GPIO_PinSource));
 
-   assert_param(IS_GPIO_AF(GPIO_AF));
 
-   
 
-   temp = ((uint32_t)(GPIO_AF) << ((uint32_t)((uint32_t)GPIO_PinSource & (uint32_t)0x07) * 4)) ;
 
-  8025628:	009b      	lsls	r3, r3, #2
 
-   GPIOx->AFR[GPIO_PinSource >> 0x03] &= ~((uint32_t)0xF << ((uint32_t)((uint32_t)GPIO_PinSource & (uint32_t)0x07) * 4)) ;
 
-  802562a:	f850 5021 	ldr.w	r5, [r0, r1, lsl #2]
 
-  802562e:	240f      	movs	r4, #15
 
-  8025630:	fa04 f403 	lsl.w	r4, r4, r3
 
-  8025634:	ea25 0404 	bic.w	r4, r5, r4
 
-  8025638:	f840 4021 	str.w	r4, [r0, r1, lsl #2]
 
-   temp_2 = GPIOx->AFR[GPIO_PinSource >> 0x03] | temp;
 
-  802563c:	f850 4021 	ldr.w	r4, [r0, r1, lsl #2]
 
-   /* Check the parameters */
 
-   assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
 
-   assert_param(IS_GPIO_PIN_SOURCE(GPIO_PinSource));
 
-   assert_param(IS_GPIO_AF(GPIO_AF));
 
-   
 
-   temp = ((uint32_t)(GPIO_AF) << ((uint32_t)((uint32_t)GPIO_PinSource & (uint32_t)0x07) * 4)) ;
 
-  8025640:	fa02 f203 	lsl.w	r2, r2, r3
 
-   GPIOx->AFR[GPIO_PinSource >> 0x03] &= ~((uint32_t)0xF << ((uint32_t)((uint32_t)GPIO_PinSource & (uint32_t)0x07) * 4)) ;
 
-   temp_2 = GPIOx->AFR[GPIO_PinSource >> 0x03] | temp;
 
-  8025644:	4314      	orrs	r4, r2
 
-   GPIOx->AFR[GPIO_PinSource >> 0x03] = temp_2;
 
-  8025646:	f840 4021 	str.w	r4, [r0, r1, lsl #2]
 
-  802564a:	bd30      	pop	{r4, r5, pc}
 
- 0802564c <PWR_BackupAccessCmd>:
 
- void PWR_BackupAccessCmd(FunctionalState NewState)
 
- {
 
-   /* Check the parameters */
 
-   assert_param(IS_FUNCTIONAL_STATE(NewState));
 
-   
 
-   *(__IO uint32_t *) CR_DBP_BB = (uint32_t)NewState;
 
-  802564c:	4b01      	ldr	r3, [pc, #4]	; (8025654 <PWR_BackupAccessCmd+0x8>)
 
-  802564e:	6018      	str	r0, [r3, #0]
 
-  8025650:	4770      	bx	lr
 
-  8025652:	bf00      	nop
 
-  8025654:	420e0020 	.word	0x420e0020
 
- 08025658 <RCC_LSEConfig>:
 
-   /* Check the parameters */
 
-   assert_param(IS_RCC_LSE(RCC_LSE));
 
-   /* Reset LSEON and LSEBYP bits before configuring the LSE ------------------*/
 
-   /* Reset LSEON bit */
 
-   *(__IO uint8_t *) BDCR_ADDRESS = RCC_LSE_OFF;
 
-  8025658:	4b06      	ldr	r3, [pc, #24]	; (8025674 <RCC_LSEConfig+0x1c>)
 
-  802565a:	2200      	movs	r2, #0
 
-   /* Reset LSEBYP bit */
 
-   *(__IO uint8_t *) BDCR_ADDRESS = RCC_LSE_OFF;
 
-   /* Configure LSE (RCC_LSE_OFF is already covered by the code section above) */
 
-   switch (RCC_LSE)
 
-  802565c:	2801      	cmp	r0, #1
 
-   /* Check the parameters */
 
-   assert_param(IS_RCC_LSE(RCC_LSE));
 
-   /* Reset LSEON and LSEBYP bits before configuring the LSE ------------------*/
 
-   /* Reset LSEON bit */
 
-   *(__IO uint8_t *) BDCR_ADDRESS = RCC_LSE_OFF;
 
-  802565e:	701a      	strb	r2, [r3, #0]
 
-   /* Reset LSEBYP bit */
 
-   *(__IO uint8_t *) BDCR_ADDRESS = RCC_LSE_OFF;
 
-  8025660:	701a      	strb	r2, [r3, #0]
 
-   /* Configure LSE (RCC_LSE_OFF is already covered by the code section above) */
 
-   switch (RCC_LSE)
 
-  8025662:	d002      	beq.n	802566a <RCC_LSEConfig+0x12>
 
-  8025664:	2804      	cmp	r0, #4
 
-  8025666:	d104      	bne.n	8025672 <RCC_LSEConfig+0x1a>
 
-  8025668:	e001      	b.n	802566e <RCC_LSEConfig+0x16>
 
-   {
 
-     case RCC_LSE_ON:
 
-       /* Set LSEON bit */
 
-       *(__IO uint8_t *) BDCR_ADDRESS = RCC_LSE_ON;
 
-  802566a:	7018      	strb	r0, [r3, #0]
 
-       break;
 
-  802566c:	4770      	bx	lr
 
-     case RCC_LSE_Bypass:
 
-       /* Set LSEBYP and LSEON bits */
 
-       *(__IO uint8_t *) BDCR_ADDRESS = RCC_LSE_Bypass | RCC_LSE_ON;
 
-  802566e:	2205      	movs	r2, #5
 
-  8025670:	701a      	strb	r2, [r3, #0]
 
-  8025672:	4770      	bx	lr
 
-  8025674:	40023870 	.word	0x40023870
 
- 08025678 <RCC_LSICmd>:
 
- void RCC_LSICmd(FunctionalState NewState)
 
- {
 
-   /* Check the parameters */
 
-   assert_param(IS_FUNCTIONAL_STATE(NewState));
 
-   *(__IO uint32_t *) CSR_LSION_BB = (uint32_t)NewState;
 
-  8025678:	4b01      	ldr	r3, [pc, #4]	; (8025680 <RCC_LSICmd+0x8>)
 
-  802567a:	6018      	str	r0, [r3, #0]
 
-  802567c:	4770      	bx	lr
 
-  802567e:	bf00      	nop
 
-  8025680:	42470e80 	.word	0x42470e80
 
- 08025684 <RCC_GetClocksFreq>:
 
- void RCC_GetClocksFreq(RCC_ClocksTypeDef* RCC_Clocks)
 
- {
 
-   uint32_t tmp = 0, presc = 0, pllvco = 0, pllp = 2, pllsource = 0, pllm = 2;
 
-   /* Get SYSCLK source -------------------------------------------------------*/
 
-   tmp = RCC->CFGR & RCC_CFGR_SWS;
 
-  8025684:	4b1e      	ldr	r3, [pc, #120]	; (8025700 <RCC_GetClocksFreq+0x7c>)
 
-  8025686:	689a      	ldr	r2, [r3, #8]
 
-  8025688:	f002 020c 	and.w	r2, r2, #12
 
-   switch (tmp)
 
-  802568c:	2a04      	cmp	r2, #4
 
-   *         configuration based on this function will be incorrect.
 
-   *    
 
-   * @retval None
 
-   */
 
- void RCC_GetClocksFreq(RCC_ClocksTypeDef* RCC_Clocks)
 
- {
 
-  802568e:	b510      	push	{r4, lr}
 
-   uint32_t tmp = 0, presc = 0, pllvco = 0, pllp = 2, pllsource = 0, pllm = 2;
 
-   /* Get SYSCLK source -------------------------------------------------------*/
 
-   tmp = RCC->CFGR & RCC_CFGR_SWS;
 
-   switch (tmp)
 
-  8025690:	d003      	beq.n	802569a <RCC_GetClocksFreq+0x16>
 
-  8025692:	2a08      	cmp	r2, #8
 
-  8025694:	d003      	beq.n	802569e <RCC_GetClocksFreq+0x1a>
 
-  8025696:	4b1b      	ldr	r3, [pc, #108]	; (8025704 <RCC_GetClocksFreq+0x80>)
 
-  8025698:	e018      	b.n	80256cc <RCC_GetClocksFreq+0x48>
 
-   {
 
-     case 0x00:  /* HSI used as system clock source */
 
-       RCC_Clocks->SYSCLK_Frequency = HSI_VALUE;
 
-       break;
 
-     case 0x04:  /* HSE used as system clock  source */
 
-       RCC_Clocks->SYSCLK_Frequency = HSE_VALUE;
 
-  802569a:	4b1b      	ldr	r3, [pc, #108]	; (8025708 <RCC_GetClocksFreq+0x84>)
 
-  802569c:	e016      	b.n	80256cc <RCC_GetClocksFreq+0x48>
 
-     case 0x08:  /* PLL used as system clock  source */
 
-       /* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLLM) * PLLN
 
-          SYSCLK = PLL_VCO / PLLP
 
-          */    
 
-       pllsource = (RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) >> 22;
 
-  802569e:	6859      	ldr	r1, [r3, #4]
 
-       pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM;
 
-  80256a0:	685a      	ldr	r2, [r3, #4]
 
-       
 
-       if (pllsource != 0)
 
-  80256a2:	f411 0f80 	tst.w	r1, #4194304	; 0x400000
 
-       {
 
-         /* HSE used as PLL clock source */
 
-         pllvco = (HSE_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6);
 
-  80256a6:	6859      	ldr	r1, [r3, #4]
 
-  80256a8:	bf14      	ite	ne
 
-  80256aa:	4b17      	ldrne	r3, [pc, #92]	; (8025708 <RCC_GetClocksFreq+0x84>)
 
-       }
 
-       else
 
-       {
 
-         /* HSI used as PLL clock source */
 
-         pllvco = (HSI_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6);      
 
-  80256ac:	4b15      	ldreq	r3, [pc, #84]	; (8025704 <RCC_GetClocksFreq+0x80>)
 
-       /* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLLM) * PLLN
 
-          SYSCLK = PLL_VCO / PLLP
 
-          */    
 
-       pllsource = (RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) >> 22;
 
-       pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM;
 
-  80256ae:	f002 023f 	and.w	r2, r2, #63	; 0x3f
 
-         pllvco = (HSE_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6);
 
-       }
 
-       else
 
-       {
 
-         /* HSI used as PLL clock source */
 
-         pllvco = (HSI_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6);      
 
-  80256b2:	fbb3 f3f2 	udiv	r3, r3, r2
 
-       }
 
-       pllp = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >>16) + 1 ) *2;
 
-  80256b6:	4a12      	ldr	r2, [pc, #72]	; (8025700 <RCC_GetClocksFreq+0x7c>)
 
-  80256b8:	6852      	ldr	r2, [r2, #4]
 
-  80256ba:	f3c2 4201 	ubfx	r2, r2, #16, #2
 
-       pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM;
 
-       
 
-       if (pllsource != 0)
 
-       {
 
-         /* HSE used as PLL clock source */
 
-         pllvco = (HSE_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6);
 
-  80256be:	f3c1 1188 	ubfx	r1, r1, #6, #9
 
-       {
 
-         /* HSI used as PLL clock source */
 
-         pllvco = (HSI_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6);      
 
-       }
 
-       pllp = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >>16) + 1 ) *2;
 
-  80256c2:	3201      	adds	r2, #1
 
-         pllvco = (HSE_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6);
 
-       }
 
-       else
 
-       {
 
-         /* HSI used as PLL clock source */
 
-         pllvco = (HSI_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6);      
 
-  80256c4:	434b      	muls	r3, r1
 
-       }
 
-       pllp = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >>16) + 1 ) *2;
 
-  80256c6:	0052      	lsls	r2, r2, #1
 
-       RCC_Clocks->SYSCLK_Frequency = pllvco/pllp;
 
-  80256c8:	fbb3 f3f2 	udiv	r3, r3, r2
 
-       break;
 
-   }
 
-   /* Compute HCLK, PCLK1 and PCLK2 clocks frequencies ------------------------*/
 
-   /* Get HCLK prescaler */
 
-   tmp = RCC->CFGR & RCC_CFGR_HPRE;
 
-  80256cc:	490c      	ldr	r1, [pc, #48]	; (8025700 <RCC_GetClocksFreq+0x7c>)
 
-         /* HSI used as PLL clock source */
 
-         pllvco = (HSI_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6);      
 
-       }
 
-       pllp = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >>16) + 1 ) *2;
 
-       RCC_Clocks->SYSCLK_Frequency = pllvco/pllp;
 
-  80256ce:	6003      	str	r3, [r0, #0]
 
-       break;
 
-   }
 
-   /* Compute HCLK, PCLK1 and PCLK2 clocks frequencies ------------------------*/
 
-   /* Get HCLK prescaler */
 
-   tmp = RCC->CFGR & RCC_CFGR_HPRE;
 
-  80256d0:	688b      	ldr	r3, [r1, #8]
 
-   tmp = tmp >> 4;
 
-   presc = APBAHBPrescTable[tmp];
 
-  80256d2:	4a0e      	ldr	r2, [pc, #56]	; (802570c <RCC_GetClocksFreq+0x88>)
 
-   }
 
-   /* Compute HCLK, PCLK1 and PCLK2 clocks frequencies ------------------------*/
 
-   /* Get HCLK prescaler */
 
-   tmp = RCC->CFGR & RCC_CFGR_HPRE;
 
-   tmp = tmp >> 4;
 
-  80256d4:	f3c3 1303 	ubfx	r3, r3, #4, #4
 
-   presc = APBAHBPrescTable[tmp];
 
-  80256d8:	5cd4      	ldrb	r4, [r2, r3]
 
-   /* HCLK clock frequency */
 
-   RCC_Clocks->HCLK_Frequency = RCC_Clocks->SYSCLK_Frequency >> presc;
 
-  80256da:	6803      	ldr	r3, [r0, #0]
 
-  80256dc:	fa23 f304 	lsr.w	r3, r3, r4
 
-  80256e0:	6043      	str	r3, [r0, #4]
 
-   /* Get PCLK1 prescaler */
 
-   tmp = RCC->CFGR & RCC_CFGR_PPRE1;
 
-  80256e2:	688c      	ldr	r4, [r1, #8]
 
-   tmp = tmp >> 10;
 
-  80256e4:	f3c4 2482 	ubfx	r4, r4, #10, #3
 
-   presc = APBAHBPrescTable[tmp];
 
-  80256e8:	5d14      	ldrb	r4, [r2, r4]
 
-   /* PCLK1 clock frequency */
 
-   RCC_Clocks->PCLK1_Frequency = RCC_Clocks->HCLK_Frequency >> presc;
 
-  80256ea:	fa23 f404 	lsr.w	r4, r3, r4
 
-  80256ee:	6084      	str	r4, [r0, #8]
 
-   /* Get PCLK2 prescaler */
 
-   tmp = RCC->CFGR & RCC_CFGR_PPRE2;
 
-  80256f0:	6889      	ldr	r1, [r1, #8]
 
-   tmp = tmp >> 13;
 
-  80256f2:	f3c1 3142 	ubfx	r1, r1, #13, #3
 
-   presc = APBAHBPrescTable[tmp];
 
-  80256f6:	5c52      	ldrb	r2, [r2, r1]
 
-   /* PCLK2 clock frequency */
 
-   RCC_Clocks->PCLK2_Frequency = RCC_Clocks->HCLK_Frequency >> presc;
 
-  80256f8:	fa23 f302 	lsr.w	r3, r3, r2
 
-  80256fc:	60c3      	str	r3, [r0, #12]
 
-  80256fe:	bd10      	pop	{r4, pc}
 
-  8025700:	40023800 	.word	0x40023800
 
-  8025704:	00f42400 	.word	0x00f42400
 
-  8025708:	017d7840 	.word	0x017d7840
 
-  802570c:	200005ac 	.word	0x200005ac
 
- 08025710 <RCC_RTCCLKConfig>:
 
-   uint32_t tmpreg = 0;
 
-   /* Check the parameters */
 
-   assert_param(IS_RCC_RTCCLK_SOURCE(RCC_RTCCLKSource));
 
-   if ((RCC_RTCCLKSource & 0x00000300) == 0x00000300)
 
-  8025710:	f400 7340 	and.w	r3, r0, #768	; 0x300
 
-  8025714:	f5b3 7f40 	cmp.w	r3, #768	; 0x300
 
-  8025718:	4b08      	ldr	r3, [pc, #32]	; (802573c <RCC_RTCCLKConfig+0x2c>)
 
-  802571a:	d108      	bne.n	802572e <RCC_RTCCLKConfig+0x1e>
 
-   { /* If HSE is selected as RTC clock source, configure HSE division factor for RTC clock */
 
-     tmpreg = RCC->CFGR;
 
-  802571c:	6899      	ldr	r1, [r3, #8]
 
-     /* Clear RTCPRE[4:0] bits */
 
-     tmpreg &= ~RCC_CFGR_RTCPRE;
 
-     /* Configure HSE division factor for RTC clock */
 
-     tmpreg |= (RCC_RTCCLKSource & 0xFFFFCFF);
 
-  802571e:	f020 4270 	bic.w	r2, r0, #4026531840	; 0xf0000000
 
-   if ((RCC_RTCCLKSource & 0x00000300) == 0x00000300)
 
-   { /* If HSE is selected as RTC clock source, configure HSE division factor for RTC clock */
 
-     tmpreg = RCC->CFGR;
 
-     /* Clear RTCPRE[4:0] bits */
 
-     tmpreg &= ~RCC_CFGR_RTCPRE;
 
-  8025722:	f421 11f8 	bic.w	r1, r1, #2031616	; 0x1f0000
 
-     /* Configure HSE division factor for RTC clock */
 
-     tmpreg |= (RCC_RTCCLKSource & 0xFFFFCFF);
 
-  8025726:	f422 7240 	bic.w	r2, r2, #768	; 0x300
 
-  802572a:	430a      	orrs	r2, r1
 
-     /* Store the new value */
 
-     RCC->CFGR = tmpreg;
 
-  802572c:	609a      	str	r2, [r3, #8]
 
-   }
 
-     
 
-   /* Select the RTC clock source */
 
-   RCC->BDCR |= (RCC_RTCCLKSource & 0x00000FFF);
 
-  802572e:	6f1a      	ldr	r2, [r3, #112]	; 0x70
 
-  8025730:	0500      	lsls	r0, r0, #20
 
-  8025732:	ea42 5010 	orr.w	r0, r2, r0, lsr #20
 
-  8025736:	6718      	str	r0, [r3, #112]	; 0x70
 
-  8025738:	4770      	bx	lr
 
-  802573a:	bf00      	nop
 
-  802573c:	40023800 	.word	0x40023800
 
- 08025740 <RCC_RTCCLKCmd>:
 
- void RCC_RTCCLKCmd(FunctionalState NewState)
 
- {
 
-   /* Check the parameters */
 
-   assert_param(IS_FUNCTIONAL_STATE(NewState));
 
-   *(__IO uint32_t *) BDCR_RTCEN_BB = (uint32_t)NewState;
 
-  8025740:	4b01      	ldr	r3, [pc, #4]	; (8025748 <RCC_RTCCLKCmd+0x8>)
 
-  8025742:	6018      	str	r0, [r3, #0]
 
-  8025744:	4770      	bx	lr
 
-  8025746:	bf00      	nop
 
-  8025748:	42470e3c 	.word	0x42470e3c
 
- 0802574c <RCC_AHB1PeriphClockCmd>:
 
-   * @param  NewState: new state of the specified peripheral clock.
 
-   *          This parameter can be: ENABLE or DISABLE.
 
-   * @retval None
 
-   */
 
- void RCC_AHB1PeriphClockCmd(uint32_t RCC_AHB1Periph, FunctionalState NewState)
 
- {
 
-  802574c:	4b04      	ldr	r3, [pc, #16]	; (8025760 <RCC_AHB1PeriphClockCmd+0x14>)
 
-   assert_param(IS_RCC_AHB1_CLOCK_PERIPH(RCC_AHB1Periph));
 
-   assert_param(IS_FUNCTIONAL_STATE(NewState));
 
-   if (NewState != DISABLE)
 
-   {
 
-     RCC->AHB1ENR |= RCC_AHB1Periph;
 
-  802574e:	6b1a      	ldr	r2, [r3, #48]	; 0x30
 
- {
 
-   /* Check the parameters */
 
-   assert_param(IS_RCC_AHB1_CLOCK_PERIPH(RCC_AHB1Periph));
 
-   assert_param(IS_FUNCTIONAL_STATE(NewState));
 
-   if (NewState != DISABLE)
 
-  8025750:	b109      	cbz	r1, 8025756 <RCC_AHB1PeriphClockCmd+0xa>
 
-   {
 
-     RCC->AHB1ENR |= RCC_AHB1Periph;
 
-  8025752:	4310      	orrs	r0, r2
 
-  8025754:	e001      	b.n	802575a <RCC_AHB1PeriphClockCmd+0xe>
 
-   }
 
-   else
 
-   {
 
-     RCC->AHB1ENR &= ~RCC_AHB1Periph;
 
-  8025756:	ea22 0000 	bic.w	r0, r2, r0
 
-  802575a:	6318      	str	r0, [r3, #48]	; 0x30
 
-  802575c:	4770      	bx	lr
 
-  802575e:	bf00      	nop
 
-  8025760:	40023800 	.word	0x40023800
 
- 08025764 <RCC_AHB2PeriphClockCmd>:
 
-   * @param  NewState: new state of the specified peripheral clock.
 
-   *          This parameter can be: ENABLE or DISABLE.
 
-   * @retval None
 
-   */
 
- void RCC_AHB2PeriphClockCmd(uint32_t RCC_AHB2Periph, FunctionalState NewState)
 
- {
 
-  8025764:	4b04      	ldr	r3, [pc, #16]	; (8025778 <RCC_AHB2PeriphClockCmd+0x14>)
 
-   assert_param(IS_RCC_AHB2_PERIPH(RCC_AHB2Periph));
 
-   assert_param(IS_FUNCTIONAL_STATE(NewState));
 
-   if (NewState != DISABLE)
 
-   {
 
-     RCC->AHB2ENR |= RCC_AHB2Periph;
 
-  8025766:	6b5a      	ldr	r2, [r3, #52]	; 0x34
 
- {
 
-   /* Check the parameters */
 
-   assert_param(IS_RCC_AHB2_PERIPH(RCC_AHB2Periph));
 
-   assert_param(IS_FUNCTIONAL_STATE(NewState));
 
-   if (NewState != DISABLE)
 
-  8025768:	b109      	cbz	r1, 802576e <RCC_AHB2PeriphClockCmd+0xa>
 
-   {
 
-     RCC->AHB2ENR |= RCC_AHB2Periph;
 
-  802576a:	4310      	orrs	r0, r2
 
-  802576c:	e001      	b.n	8025772 <RCC_AHB2PeriphClockCmd+0xe>
 
-   }
 
-   else
 
-   {
 
-     RCC->AHB2ENR &= ~RCC_AHB2Periph;
 
-  802576e:	ea22 0000 	bic.w	r0, r2, r0
 
-  8025772:	6358      	str	r0, [r3, #52]	; 0x34
 
-  8025774:	4770      	bx	lr
 
-  8025776:	bf00      	nop
 
-  8025778:	40023800 	.word	0x40023800
 
- 0802577c <RCC_APB1PeriphClockCmd>:
 
-   * @param  NewState: new state of the specified peripheral clock.
 
-   *          This parameter can be: ENABLE or DISABLE.
 
-   * @retval None
 
-   */
 
- void RCC_APB1PeriphClockCmd(uint32_t RCC_APB1Periph, FunctionalState NewState)
 
- {
 
-  802577c:	4b04      	ldr	r3, [pc, #16]	; (8025790 <RCC_APB1PeriphClockCmd+0x14>)
 
-   assert_param(IS_RCC_APB1_PERIPH(RCC_APB1Periph));  
 
-   assert_param(IS_FUNCTIONAL_STATE(NewState));
 
-   if (NewState != DISABLE)
 
-   {
 
-     RCC->APB1ENR |= RCC_APB1Periph;
 
-  802577e:	6c1a      	ldr	r2, [r3, #64]	; 0x40
 
- {
 
-   /* Check the parameters */
 
-   assert_param(IS_RCC_APB1_PERIPH(RCC_APB1Periph));  
 
-   assert_param(IS_FUNCTIONAL_STATE(NewState));
 
-   if (NewState != DISABLE)
 
-  8025780:	b109      	cbz	r1, 8025786 <RCC_APB1PeriphClockCmd+0xa>
 
-   {
 
-     RCC->APB1ENR |= RCC_APB1Periph;
 
-  8025782:	4310      	orrs	r0, r2
 
-  8025784:	e001      	b.n	802578a <RCC_APB1PeriphClockCmd+0xe>
 
-   }
 
-   else
 
-   {
 
-     RCC->APB1ENR &= ~RCC_APB1Periph;
 
-  8025786:	ea22 0000 	bic.w	r0, r2, r0
 
-  802578a:	6418      	str	r0, [r3, #64]	; 0x40
 
-  802578c:	4770      	bx	lr
 
-  802578e:	bf00      	nop
 
-  8025790:	40023800 	.word	0x40023800
 
- 08025794 <RCC_APB2PeriphClockCmd>:
 
-   * @param  NewState: new state of the specified peripheral clock.
 
-   *          This parameter can be: ENABLE or DISABLE.
 
-   * @retval None
 
-   */
 
- void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState)
 
- {
 
-  8025794:	4b04      	ldr	r3, [pc, #16]	; (80257a8 <RCC_APB2PeriphClockCmd+0x14>)
 
-   assert_param(IS_RCC_APB2_PERIPH(RCC_APB2Periph));
 
-   assert_param(IS_FUNCTIONAL_STATE(NewState));
 
-   if (NewState != DISABLE)
 
-   {
 
-     RCC->APB2ENR |= RCC_APB2Periph;
 
-  8025796:	6c5a      	ldr	r2, [r3, #68]	; 0x44
 
- {
 
-   /* Check the parameters */
 
-   assert_param(IS_RCC_APB2_PERIPH(RCC_APB2Periph));
 
-   assert_param(IS_FUNCTIONAL_STATE(NewState));
 
-   if (NewState != DISABLE)
 
-  8025798:	b109      	cbz	r1, 802579e <RCC_APB2PeriphClockCmd+0xa>
 
-   {
 
-     RCC->APB2ENR |= RCC_APB2Periph;
 
-  802579a:	4310      	orrs	r0, r2
 
-  802579c:	e001      	b.n	80257a2 <RCC_APB2PeriphClockCmd+0xe>
 
-   }
 
-   else
 
-   {
 
-     RCC->APB2ENR &= ~RCC_APB2Periph;
 
-  802579e:	ea22 0000 	bic.w	r0, r2, r0
 
-  80257a2:	6458      	str	r0, [r3, #68]	; 0x44
 
-  80257a4:	4770      	bx	lr
 
-  80257a6:	bf00      	nop
 
-  80257a8:	40023800 	.word	0x40023800
 
- 080257ac <RCC_AHB1PeriphResetCmd>:
 
-   * @param  NewState: new state of the specified peripheral reset.
 
-   *          This parameter can be: ENABLE or DISABLE.
 
-   * @retval None
 
-   */
 
- void RCC_AHB1PeriphResetCmd(uint32_t RCC_AHB1Periph, FunctionalState NewState)
 
- {
 
-  80257ac:	4b04      	ldr	r3, [pc, #16]	; (80257c0 <RCC_AHB1PeriphResetCmd+0x14>)
 
-   assert_param(IS_RCC_AHB1_RESET_PERIPH(RCC_AHB1Periph));
 
-   assert_param(IS_FUNCTIONAL_STATE(NewState));
 
-   if (NewState != DISABLE)
 
-   {
 
-     RCC->AHB1RSTR |= RCC_AHB1Periph;
 
-  80257ae:	691a      	ldr	r2, [r3, #16]
 
- {
 
-   /* Check the parameters */
 
-   assert_param(IS_RCC_AHB1_RESET_PERIPH(RCC_AHB1Periph));
 
-   assert_param(IS_FUNCTIONAL_STATE(NewState));
 
-   if (NewState != DISABLE)
 
-  80257b0:	b109      	cbz	r1, 80257b6 <RCC_AHB1PeriphResetCmd+0xa>
 
-   {
 
-     RCC->AHB1RSTR |= RCC_AHB1Periph;
 
-  80257b2:	4310      	orrs	r0, r2
 
-  80257b4:	e001      	b.n	80257ba <RCC_AHB1PeriphResetCmd+0xe>
 
-   }
 
-   else
 
-   {
 
-     RCC->AHB1RSTR &= ~RCC_AHB1Periph;
 
-  80257b6:	ea22 0000 	bic.w	r0, r2, r0
 
-  80257ba:	6118      	str	r0, [r3, #16]
 
-  80257bc:	4770      	bx	lr
 
-  80257be:	bf00      	nop
 
-  80257c0:	40023800 	.word	0x40023800
 
- 080257c4 <RCC_APB1PeriphResetCmd>:
 
-   * @param  NewState: new state of the specified peripheral reset.
 
-   *          This parameter can be: ENABLE or DISABLE.
 
-   * @retval None
 
-   */
 
- void RCC_APB1PeriphResetCmd(uint32_t RCC_APB1Periph, FunctionalState NewState)
 
- {
 
-  80257c4:	4b04      	ldr	r3, [pc, #16]	; (80257d8 <RCC_APB1PeriphResetCmd+0x14>)
 
-   /* Check the parameters */
 
-   assert_param(IS_RCC_APB1_PERIPH(RCC_APB1Periph));
 
-   assert_param(IS_FUNCTIONAL_STATE(NewState));
 
-   if (NewState != DISABLE)
 
-   {
 
-     RCC->APB1RSTR |= RCC_APB1Periph;
 
-  80257c6:	6a1a      	ldr	r2, [r3, #32]
 
- void RCC_APB1PeriphResetCmd(uint32_t RCC_APB1Periph, FunctionalState NewState)
 
- {
 
-   /* Check the parameters */
 
-   assert_param(IS_RCC_APB1_PERIPH(RCC_APB1Periph));
 
-   assert_param(IS_FUNCTIONAL_STATE(NewState));
 
-   if (NewState != DISABLE)
 
-  80257c8:	b109      	cbz	r1, 80257ce <RCC_APB1PeriphResetCmd+0xa>
 
-   {
 
-     RCC->APB1RSTR |= RCC_APB1Periph;
 
-  80257ca:	4310      	orrs	r0, r2
 
-  80257cc:	e001      	b.n	80257d2 <RCC_APB1PeriphResetCmd+0xe>
 
-   }
 
-   else
 
-   {
 
-     RCC->APB1RSTR &= ~RCC_APB1Periph;
 
-  80257ce:	ea22 0000 	bic.w	r0, r2, r0
 
-  80257d2:	6218      	str	r0, [r3, #32]
 
-  80257d4:	4770      	bx	lr
 
-  80257d6:	bf00      	nop
 
-  80257d8:	40023800 	.word	0x40023800
 
- 080257dc <RCC_APB2PeriphResetCmd>:
 
-   * @param  NewState: new state of the specified peripheral reset.
 
-   *          This parameter can be: ENABLE or DISABLE.
 
-   * @retval None
 
-   */
 
- void RCC_APB2PeriphResetCmd(uint32_t RCC_APB2Periph, FunctionalState NewState)
 
- {
 
-  80257dc:	4b04      	ldr	r3, [pc, #16]	; (80257f0 <RCC_APB2PeriphResetCmd+0x14>)
 
-   /* Check the parameters */
 
-   assert_param(IS_RCC_APB2_RESET_PERIPH(RCC_APB2Periph));
 
-   assert_param(IS_FUNCTIONAL_STATE(NewState));
 
-   if (NewState != DISABLE)
 
-   {
 
-     RCC->APB2RSTR |= RCC_APB2Periph;
 
-  80257de:	6a5a      	ldr	r2, [r3, #36]	; 0x24
 
- void RCC_APB2PeriphResetCmd(uint32_t RCC_APB2Periph, FunctionalState NewState)
 
- {
 
-   /* Check the parameters */
 
-   assert_param(IS_RCC_APB2_RESET_PERIPH(RCC_APB2Periph));
 
-   assert_param(IS_FUNCTIONAL_STATE(NewState));
 
-   if (NewState != DISABLE)
 
-  80257e0:	b109      	cbz	r1, 80257e6 <RCC_APB2PeriphResetCmd+0xa>
 
-   {
 
-     RCC->APB2RSTR |= RCC_APB2Periph;
 
-  80257e2:	4310      	orrs	r0, r2
 
-  80257e4:	e001      	b.n	80257ea <RCC_APB2PeriphResetCmd+0xe>
 
-   }
 
-   else
 
-   {
 
-     RCC->APB2RSTR &= ~RCC_APB2Periph;
 
-  80257e6:	ea22 0000 	bic.w	r0, r2, r0
 
-  80257ea:	6258      	str	r0, [r3, #36]	; 0x24
 
-  80257ec:	4770      	bx	lr
 
-  80257ee:	bf00      	nop
 
-  80257f0:	40023800 	.word	0x40023800
 
- 080257f4 <RCC_GetFlagStatus>:
 
-   /* Check the parameters */
 
-   assert_param(IS_RCC_FLAG(RCC_FLAG));
 
-   /* Get the RCC register index */
 
-   tmp = RCC_FLAG >> 5;
 
-  80257f4:	0943      	lsrs	r3, r0, #5
 
-   if (tmp == 1)               /* The flag to check is in CR register */
 
-  80257f6:	2b01      	cmp	r3, #1
 
-  80257f8:	4a07      	ldr	r2, [pc, #28]	; (8025818 <RCC_GetFlagStatus+0x24>)
 
-  80257fa:	d101      	bne.n	8025800 <RCC_GetFlagStatus+0xc>
 
-   {
 
-     statusreg = RCC->CR;
 
-  80257fc:	6813      	ldr	r3, [r2, #0]
 
-  80257fe:	e003      	b.n	8025808 <RCC_GetFlagStatus+0x14>
 
-   }
 
-   else if (tmp == 2)          /* The flag to check is in BDCR register */
 
-  8025800:	2b02      	cmp	r3, #2
 
-   {
 
-     statusreg = RCC->BDCR;
 
-  8025802:	bf0c      	ite	eq
 
-  8025804:	6f13      	ldreq	r3, [r2, #112]	; 0x70
 
-   }
 
-   else                       /* The flag to check is in CSR register */
 
-   {
 
-     statusreg = RCC->CSR;
 
-  8025806:	6f53      	ldrne	r3, [r2, #116]	; 0x74
 
-   }
 
-   /* Get the flag position */
 
-   tmp = RCC_FLAG & FLAG_MASK;
 
-   if ((statusreg & ((uint32_t)1 << tmp)) != (uint32_t)RESET)
 
-  8025808:	f000 001f 	and.w	r0, r0, #31
 
-  802580c:	fa23 f000 	lsr.w	r0, r3, r0
 
-   {
 
-     bitstatus = RESET;
 
-   }
 
-   /* Return the flag status */
 
-   return bitstatus;
 
- }
 
-  8025810:	f000 0001 	and.w	r0, r0, #1
 
-  8025814:	4770      	bx	lr
 
-  8025816:	bf00      	nop
 
-  8025818:	40023800 	.word	0x40023800
 
- 0802581c <RNG_Cmd>:
 
-   * @param  NewState: new state of the RNG peripheral.
 
-   *          This parameter can be: ENABLE or DISABLE.
 
-   * @retval None
 
-   */
 
- void RNG_Cmd(FunctionalState NewState)
 
- {
 
-  802581c:	4b04      	ldr	r3, [pc, #16]	; (8025830 <RNG_Cmd+0x14>)
 
-   assert_param(IS_FUNCTIONAL_STATE(NewState));
 
-   if (NewState != DISABLE)
 
-   {
 
-     /* Enable the RNG */
 
-     RNG->CR |= RNG_CR_RNGEN;
 
-  802581e:	681a      	ldr	r2, [r3, #0]
 
- void RNG_Cmd(FunctionalState NewState)
 
- {
 
-   /* Check the parameters */
 
-   assert_param(IS_FUNCTIONAL_STATE(NewState));
 
-   if (NewState != DISABLE)
 
-  8025820:	b110      	cbz	r0, 8025828 <RNG_Cmd+0xc>
 
-   {
 
-     /* Enable the RNG */
 
-     RNG->CR |= RNG_CR_RNGEN;
 
-  8025822:	f042 0204 	orr.w	r2, r2, #4
 
-  8025826:	e001      	b.n	802582c <RNG_Cmd+0x10>
 
-   }
 
-   else
 
-   {
 
-     /* Disable the RNG */
 
-     RNG->CR &= ~RNG_CR_RNGEN;
 
-  8025828:	f022 0204 	bic.w	r2, r2, #4
 
-  802582c:	601a      	str	r2, [r3, #0]
 
-  802582e:	4770      	bx	lr
 
-  8025830:	50060800 	.word	0x50060800
 
- 08025834 <RNG_GetRandomNumber>:
 
-   * @retval 32-bit random number.
 
-   */
 
- uint32_t RNG_GetRandomNumber(void)
 
- {
 
-   /* Return the 32 bit random number from the DR register */
 
-   return RNG->DR;
 
-  8025834:	4b01      	ldr	r3, [pc, #4]	; (802583c <RNG_GetRandomNumber+0x8>)
 
-  8025836:	6898      	ldr	r0, [r3, #8]
 
- }
 
-  8025838:	4770      	bx	lr
 
-  802583a:	bf00      	nop
 
-  802583c:	50060800 	.word	0x50060800
 
- 08025840 <RTC_ByteToBcd2>:
 
-   * @param  Value: Byte to be converted.
 
-   * @retval Converted byte
 
-   */
 
- static uint8_t RTC_ByteToBcd2(uint8_t Value)
 
- {
 
-   uint8_t bcdhigh = 0;
 
-  8025840:	2300      	movs	r3, #0
 
-   
 
-   while (Value >= 10)
 
-  8025842:	e003      	b.n	802584c <RTC_ByteToBcd2+0xc>
 
-   {
 
-     bcdhigh++;
 
-  8025844:	3301      	adds	r3, #1
 
-     Value -= 10;
 
-  8025846:	380a      	subs	r0, #10
 
- {
 
-   uint8_t bcdhigh = 0;
 
-   
 
-   while (Value >= 10)
 
-   {
 
-     bcdhigh++;
 
-  8025848:	b2db      	uxtb	r3, r3
 
-     Value -= 10;
 
-  802584a:	b2c0      	uxtb	r0, r0
 
-   */
 
- static uint8_t RTC_ByteToBcd2(uint8_t Value)
 
- {
 
-   uint8_t bcdhigh = 0;
 
-   
 
-   while (Value >= 10)
 
-  802584c:	2809      	cmp	r0, #9
 
-  802584e:	d8f9      	bhi.n	8025844 <RTC_ByteToBcd2+0x4>
 
-   {
 
-     bcdhigh++;
 
-     Value -= 10;
 
-   }
 
-   
 
-   return  ((uint8_t)(bcdhigh << 4) | Value);
 
-  8025850:	ea40 1003 	orr.w	r0, r0, r3, lsl #4
 
- }
 
-  8025854:	b2c0      	uxtb	r0, r0
 
-  8025856:	4770      	bx	lr
 
- 08025858 <RTC_Bcd2ToByte>:
 
-   * @retval Converted word
 
-   */
 
- static uint8_t RTC_Bcd2ToByte(uint8_t Value)
 
- {
 
-   uint8_t tmp = 0;
 
-   tmp = ((uint8_t)(Value & (uint8_t)0xF0) >> (uint8_t)0x4) * 10;
 
-  8025858:	0902      	lsrs	r2, r0, #4
 
-   return (tmp + (Value & (uint8_t)0x0F));
 
-  802585a:	f000 030f 	and.w	r3, r0, #15
 
-  802585e:	200a      	movs	r0, #10
 
-  8025860:	fb00 3002 	mla	r0, r0, r2, r3
 
- }
 
-  8025864:	b2c0      	uxtb	r0, r0
 
-  8025866:	4770      	bx	lr
 
- 08025868 <RTC_EnterInitMode>:
 
-   * @retval An ErrorStatus enumeration value:
 
-   *          - SUCCESS: RTC is in Init mode
 
-   *          - ERROR: RTC is not in Init mode  
 
-   */
 
- ErrorStatus RTC_EnterInitMode(void)
 
- {
 
-  8025868:	b082      	sub	sp, #8
 
-   __IO uint32_t initcounter = 0x00;
 
-  802586a:	2300      	movs	r3, #0
 
-  802586c:	9301      	str	r3, [sp, #4]
 
-   ErrorStatus status = ERROR;
 
-   uint32_t initstatus = 0x00;
 
-      
 
-   /* Check if the Initialization mode is set */
 
-   if ((RTC->ISR & RTC_ISR_INITF) == (uint32_t)RESET)
 
-  802586e:	4b0d      	ldr	r3, [pc, #52]	; (80258a4 <RTC_EnterInitMode+0x3c>)
 
-  8025870:	68da      	ldr	r2, [r3, #12]
 
-  8025872:	0650      	lsls	r0, r2, #25
 
-  8025874:	d413      	bmi.n	802589e <RTC_EnterInitMode+0x36>
 
-   {
 
-     /* Set the Initialization mode */
 
-     RTC->ISR = (uint32_t)RTC_INIT_MASK;
 
-  8025876:	f04f 32ff 	mov.w	r2, #4294967295
 
-  802587a:	60da      	str	r2, [r3, #12]
 
-     
 
-     /* Wait till RTC is in INIT state and if Time out is reached exit */
 
-     do
 
-     {
 
-       initstatus = RTC->ISR & RTC_ISR_INITF;
 
-  802587c:	68da      	ldr	r2, [r3, #12]
 
-       initcounter++;  
 
-  802587e:	9901      	ldr	r1, [sp, #4]
 
-  8025880:	3101      	adds	r1, #1
 
-  8025882:	9101      	str	r1, [sp, #4]
 
-     } while((initcounter != INITMODE_TIMEOUT) && (initstatus == 0x00));
 
-  8025884:	9901      	ldr	r1, [sp, #4]
 
-  8025886:	f5b1 3f80 	cmp.w	r1, #65536	; 0x10000
 
-     RTC->ISR = (uint32_t)RTC_INIT_MASK;
 
-     
 
-     /* Wait till RTC is in INIT state and if Time out is reached exit */
 
-     do
 
-     {
 
-       initstatus = RTC->ISR & RTC_ISR_INITF;
 
-  802588a:	f002 0240 	and.w	r2, r2, #64	; 0x40
 
-       initcounter++;  
 
-     } while((initcounter != INITMODE_TIMEOUT) && (initstatus == 0x00));
 
-  802588e:	d001      	beq.n	8025894 <RTC_EnterInitMode+0x2c>
 
-  8025890:	2a00      	cmp	r2, #0
 
-  8025892:	d0f3      	beq.n	802587c <RTC_EnterInitMode+0x14>
 
-     
 
-     if ((RTC->ISR & RTC_ISR_INITF) != RESET)
 
-  8025894:	4b03      	ldr	r3, [pc, #12]	; (80258a4 <RTC_EnterInitMode+0x3c>)
 
-  8025896:	68d8      	ldr	r0, [r3, #12]
 
-     {
 
-       status = SUCCESS;
 
-  8025898:	f3c0 1080 	ubfx	r0, r0, #6, #1
 
-  802589c:	e000      	b.n	80258a0 <RTC_EnterInitMode+0x38>
 
-       status = ERROR;
 
-     }        
 
-   }
 
-   else
 
-   {
 
-     status = SUCCESS;  
 
-  802589e:	2001      	movs	r0, #1
 
-   } 
 
-     
 
-   return (status);  
 
- }
 
-  80258a0:	b002      	add	sp, #8
 
-  80258a2:	4770      	bx	lr
 
-  80258a4:	40002800 	.word	0x40002800
 
- 080258a8 <RTC_ExitInitMode>:
 
-   * @retval None
 
-   */
 
- void RTC_ExitInitMode(void)
 
- { 
 
-   /* Exit Initialization mode */
 
-   RTC->ISR &= (uint32_t)~RTC_ISR_INIT;  
 
-  80258a8:	4b02      	ldr	r3, [pc, #8]	; (80258b4 <RTC_ExitInitMode+0xc>)
 
-  80258aa:	68da      	ldr	r2, [r3, #12]
 
-  80258ac:	f022 0280 	bic.w	r2, r2, #128	; 0x80
 
-  80258b0:	60da      	str	r2, [r3, #12]
 
-  80258b2:	4770      	bx	lr
 
-  80258b4:	40002800 	.word	0x40002800
 
- 080258b8 <RTC_Init>:
 
-   * @retval An ErrorStatus enumeration value:
 
-   *          - SUCCESS: RTC registers are initialized
 
-   *          - ERROR: RTC registers are not initialized  
 
-   */
 
- ErrorStatus RTC_Init(RTC_InitTypeDef* RTC_InitStruct)
 
- {
 
-  80258b8:	b538      	push	{r3, r4, r5, lr}
 
-   assert_param(IS_RTC_HOUR_FORMAT(RTC_InitStruct->RTC_HourFormat));
 
-   assert_param(IS_RTC_ASYNCH_PREDIV(RTC_InitStruct->RTC_AsynchPrediv));
 
-   assert_param(IS_RTC_SYNCH_PREDIV(RTC_InitStruct->RTC_SynchPrediv));
 
-   /* Disable the write protection for RTC registers */
 
-   RTC->WPR = 0xCA;
 
-  80258ba:	4c0f      	ldr	r4, [pc, #60]	; (80258f8 <RTC_Init+0x40>)
 
-  80258bc:	23ca      	movs	r3, #202	; 0xca
 
-  80258be:	6263      	str	r3, [r4, #36]	; 0x24
 
-   RTC->WPR = 0x53;
 
-  80258c0:	2353      	movs	r3, #83	; 0x53
 
-  80258c2:	6263      	str	r3, [r4, #36]	; 0x24
 
-   * @retval An ErrorStatus enumeration value:
 
-   *          - SUCCESS: RTC registers are initialized
 
-   *          - ERROR: RTC registers are not initialized  
 
-   */
 
- ErrorStatus RTC_Init(RTC_InitTypeDef* RTC_InitStruct)
 
- {
 
-  80258c4:	4605      	mov	r5, r0
 
-   /* Disable the write protection for RTC registers */
 
-   RTC->WPR = 0xCA;
 
-   RTC->WPR = 0x53;
 
-   /* Set Initialization mode */
 
-   if (RTC_EnterInitMode() == ERROR)
 
-  80258c6:	f7ff ffcf 	bl	8025868 <RTC_EnterInitMode>
 
-  80258ca:	b188      	cbz	r0, 80258f0 <RTC_Init+0x38>
 
-     status = ERROR;
 
-   } 
 
-   else
 
-   {
 
-     /* Clear RTC CR FMT Bit */
 
-     RTC->CR &= ((uint32_t)~(RTC_CR_FMT));
 
-  80258cc:	68a3      	ldr	r3, [r4, #8]
 
-  80258ce:	f023 0340 	bic.w	r3, r3, #64	; 0x40
 
-  80258d2:	60a3      	str	r3, [r4, #8]
 
-     /* Set RTC_CR register */
 
-     RTC->CR |=  ((uint32_t)(RTC_InitStruct->RTC_HourFormat));
 
-  80258d4:	68a2      	ldr	r2, [r4, #8]
 
-  80258d6:	682b      	ldr	r3, [r5, #0]
 
-  80258d8:	4313      	orrs	r3, r2
 
-  80258da:	60a3      	str	r3, [r4, #8]
 
-   
 
-     /* Configure the RTC PRER */
 
-     RTC->PRER = (uint32_t)(RTC_InitStruct->RTC_SynchPrediv);
 
-  80258dc:	68ab      	ldr	r3, [r5, #8]
 
-  80258de:	6123      	str	r3, [r4, #16]
 
-     RTC->PRER |= (uint32_t)(RTC_InitStruct->RTC_AsynchPrediv << 16);
 
-  80258e0:	6923      	ldr	r3, [r4, #16]
 
-  80258e2:	686a      	ldr	r2, [r5, #4]
 
-  80258e4:	ea43 4302 	orr.w	r3, r3, r2, lsl #16
 
-  80258e8:	6123      	str	r3, [r4, #16]
 
-     /* Exit Initialization mode */
 
-     RTC_ExitInitMode();
 
-  80258ea:	f7ff ffdd 	bl	80258a8 <RTC_ExitInitMode>
 
-     status = SUCCESS;    
 
-  80258ee:	2001      	movs	r0, #1
 
-   }
 
-   /* Enable the write protection for RTC registers */
 
-   RTC->WPR = 0xFF; 
 
-  80258f0:	4b01      	ldr	r3, [pc, #4]	; (80258f8 <RTC_Init+0x40>)
 
-  80258f2:	22ff      	movs	r2, #255	; 0xff
 
-  80258f4:	625a      	str	r2, [r3, #36]	; 0x24
 
-   
 
-   return status;
 
- }
 
-  80258f6:	bd38      	pop	{r3, r4, r5, pc}
 
-  80258f8:	40002800 	.word	0x40002800
 
- 080258fc <RTC_WaitForSynchro>:
 
-   * @retval An ErrorStatus enumeration value:
 
-   *          - SUCCESS: RTC registers are synchronised
 
-   *          - ERROR: RTC registers are not synchronised
 
-   */
 
- ErrorStatus RTC_WaitForSynchro(void)
 
- {
 
-  80258fc:	b082      	sub	sp, #8
 
-   __IO uint32_t synchrocounter = 0;
 
-  80258fe:	2300      	movs	r3, #0
 
-  8025900:	9301      	str	r3, [sp, #4]
 
-   ErrorStatus status = ERROR;
 
-   uint32_t synchrostatus = 0x00;
 
-   /* Disable the write protection for RTC registers */
 
-   RTC->WPR = 0xCA;
 
-  8025902:	4b0e      	ldr	r3, [pc, #56]	; (802593c <RTC_WaitForSynchro+0x40>)
 
-  8025904:	22ca      	movs	r2, #202	; 0xca
 
-  8025906:	625a      	str	r2, [r3, #36]	; 0x24
 
-   RTC->WPR = 0x53;
 
-  8025908:	2253      	movs	r2, #83	; 0x53
 
-  802590a:	625a      	str	r2, [r3, #36]	; 0x24
 
-     
 
-   /* Clear RSF flag */
 
-   RTC->ISR &= (uint32_t)RTC_RSF_MASK;
 
-  802590c:	68da      	ldr	r2, [r3, #12]
 
-  802590e:	f022 02a0 	bic.w	r2, r2, #160	; 0xa0
 
-  8025912:	60da      	str	r2, [r3, #12]
 
-     
 
-   /* Wait the registers to be synchronised */
 
-   do
 
-   {
 
-     synchrostatus = RTC->ISR & RTC_ISR_RSF;
 
-  8025914:	68d9      	ldr	r1, [r3, #12]
 
-     synchrocounter++;  
 
-  8025916:	9a01      	ldr	r2, [sp, #4]
 
-  8025918:	3201      	adds	r2, #1
 
-  802591a:	9201      	str	r2, [sp, #4]
 
-   } while((synchrocounter != SYNCHRO_TIMEOUT) && (synchrostatus == 0x00));
 
-  802591c:	9a01      	ldr	r2, [sp, #4]
 
-  802591e:	f5b2 3f00 	cmp.w	r2, #131072	; 0x20000
 
-   RTC->ISR &= (uint32_t)RTC_RSF_MASK;
 
-     
 
-   /* Wait the registers to be synchronised */
 
-   do
 
-   {
 
-     synchrostatus = RTC->ISR & RTC_ISR_RSF;
 
-  8025922:	f001 0120 	and.w	r1, r1, #32
 
-  8025926:	4a05      	ldr	r2, [pc, #20]	; (802593c <RTC_WaitForSynchro+0x40>)
 
-     synchrocounter++;  
 
-   } while((synchrocounter != SYNCHRO_TIMEOUT) && (synchrostatus == 0x00));
 
-  8025928:	d001      	beq.n	802592e <RTC_WaitForSynchro+0x32>
 
-  802592a:	2900      	cmp	r1, #0
 
-  802592c:	d0f2      	beq.n	8025914 <RTC_WaitForSynchro+0x18>
 
-     
 
-   if ((RTC->ISR & RTC_ISR_RSF) != RESET)
 
-  802592e:	68d0      	ldr	r0, [r2, #12]
 
-   {
 
-     status = ERROR;
 
-   }        
 
-   /* Enable the write protection for RTC registers */
 
-   RTC->WPR = 0xFF; 
 
-  8025930:	23ff      	movs	r3, #255	; 0xff
 
-  8025932:	6253      	str	r3, [r2, #36]	; 0x24
 
-     
 
-   return (status); 
 
- }
 
-  8025934:	f3c0 1040 	ubfx	r0, r0, #5, #1
 
-  8025938:	b002      	add	sp, #8
 
-  802593a:	4770      	bx	lr
 
-  802593c:	40002800 	.word	0x40002800
 
- 08025940 <RTC_SetTime>:
 
-   * @retval An ErrorStatus enumeration value:
 
-   *          - SUCCESS: RTC Time register is configured
 
-   *          - ERROR: RTC Time register is not configured
 
-   */
 
- ErrorStatus RTC_SetTime(uint32_t RTC_Format, RTC_TimeTypeDef* RTC_TimeStruct)
 
- {
 
-  8025940:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
-  8025942:	4b24      	ldr	r3, [pc, #144]	; (80259d4 <RTC_SetTime+0x94>)
 
-  8025944:	460c      	mov	r4, r1
 
-   /* Check the parameters */
 
-   assert_param(IS_RTC_FORMAT(RTC_Format));
 
-   
 
-   if (RTC_Format == RTC_Format_BIN)
 
-   {
 
-     if ((RTC->CR & RTC_CR_FMT) != (uint32_t)RESET)
 
-  8025946:	689b      	ldr	r3, [r3, #8]
 
-   ErrorStatus status = ERROR;
 
-     
 
-   /* Check the parameters */
 
-   assert_param(IS_RTC_FORMAT(RTC_Format));
 
-   
 
-   if (RTC_Format == RTC_Format_BIN)
 
-  8025948:	b920      	cbnz	r0, 8025954 <RTC_SetTime+0x14>
 
-   {
 
-     if ((RTC->CR & RTC_CR_FMT) != (uint32_t)RESET)
 
-  802594a:	f013 0340 	ands.w	r3, r3, #64	; 0x40
 
-  802594e:	d12e      	bne.n	80259ae <RTC_SetTime+0x6e>
 
-       assert_param(IS_RTC_HOUR12(RTC_TimeStruct->RTC_Hours));
 
-       assert_param(IS_RTC_H12(RTC_TimeStruct->RTC_H12));
 
-     } 
 
-     else
 
-     {
 
-       RTC_TimeStruct->RTC_H12 = 0x00;
 
-  8025950:	70cb      	strb	r3, [r1, #3]
 
-  8025952:	e02c      	b.n	80259ae <RTC_SetTime+0x6e>
 
-     assert_param(IS_RTC_MINUTES(RTC_TimeStruct->RTC_Minutes));
 
-     assert_param(IS_RTC_SECONDS(RTC_TimeStruct->RTC_Seconds));
 
-   }
 
-   else
 
-   {
 
-     if ((RTC->CR & RTC_CR_FMT) != (uint32_t)RESET)
 
-  8025954:	f013 0340 	ands.w	r3, r3, #64	; 0x40
 
-  8025958:	d11e      	bne.n	8025998 <RTC_SetTime+0x58>
 
-       assert_param(IS_RTC_HOUR12(tmpreg));
 
-       assert_param(IS_RTC_H12(RTC_TimeStruct->RTC_H12)); 
 
-     } 
 
-     else
 
-     {
 
-       RTC_TimeStruct->RTC_H12 = 0x00;
 
-  802595a:	70cb      	strb	r3, [r1, #3]
 
-  802595c:	e01c      	b.n	8025998 <RTC_SetTime+0x58>
 
-                    ((uint32_t)RTC_ByteToBcd2(RTC_TimeStruct->RTC_Seconds)) | \
 
-                    (((uint32_t)RTC_TimeStruct->RTC_H12) << 16));
 
-   }  
 
-   /* Disable the write protection for RTC registers */
 
-   RTC->WPR = 0xCA;
 
-  802595e:	4c1d      	ldr	r4, [pc, #116]	; (80259d4 <RTC_SetTime+0x94>)
 
-  8025960:	23ca      	movs	r3, #202	; 0xca
 
-  8025962:	6263      	str	r3, [r4, #36]	; 0x24
 
-   RTC->WPR = 0x53;
 
-  8025964:	2353      	movs	r3, #83	; 0x53
 
-  8025966:	6263      	str	r3, [r4, #36]	; 0x24
 
-   /* Set Initialization mode */
 
-   if (RTC_EnterInitMode() == ERROR)
 
-  8025968:	f7ff ff7e 	bl	8025868 <RTC_EnterInitMode>
 
-  802596c:	b180      	cbz	r0, 8025990 <RTC_SetTime+0x50>
 
-     status = ERROR;
 
-   } 
 
-   else
 
-   {
 
-     /* Set the RTC_TR register */
 
-     RTC->TR = (uint32_t)(tmpreg & RTC_TR_RESERVED_MASK);
 
-  802596e:	f005 357f 	and.w	r5, r5, #2139062143	; 0x7f7f7f7f
 
-  8025972:	f025 45fe 	bic.w	r5, r5, #2130706432	; 0x7f000000
 
-  8025976:	6025      	str	r5, [r4, #0]
 
-     /* Exit Initialization mode */
 
-     RTC_ExitInitMode(); 
 
-  8025978:	f7ff ff96 	bl	80258a8 <RTC_ExitInitMode>
 
-     /* If  RTC_CR_BYPSHAD bit = 0, wait for synchro else this check is not needed */
 
-     if ((RTC->CR & RTC_CR_BYPSHAD) == RESET)
 
-  802597c:	68a3      	ldr	r3, [r4, #8]
 
-  802597e:	0699      	lsls	r1, r3, #26
 
-  8025980:	d405      	bmi.n	802598e <RTC_SetTime+0x4e>
 
-     {
 
-       if (RTC_WaitForSynchro() == ERROR)
 
-  8025982:	f7ff ffbb 	bl	80258fc <RTC_WaitForSynchro>
 
-   RTC->WPR = 0x53;
 
-   /* Set Initialization mode */
 
-   if (RTC_EnterInitMode() == ERROR)
 
-   {
 
-     status = ERROR;
 
-  8025986:	3000      	adds	r0, #0
 
-  8025988:	bf18      	it	ne
 
-  802598a:	2001      	movne	r0, #1
 
-  802598c:	e000      	b.n	8025990 <RTC_SetTime+0x50>
 
-         status = SUCCESS;
 
-       }
 
-     }
 
-     else
 
-     {
 
-       status = SUCCESS;
 
-  802598e:	2001      	movs	r0, #1
 
-     }
 
-   }
 
-   /* Enable the write protection for RTC registers */
 
-   RTC->WPR = 0xFF; 
 
-  8025990:	4b10      	ldr	r3, [pc, #64]	; (80259d4 <RTC_SetTime+0x94>)
 
-  8025992:	22ff      	movs	r2, #255	; 0xff
 
-  8025994:	625a      	str	r2, [r3, #36]	; 0x24
 
-  8025996:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 
-   
 
-   /* Check the input parameters format */
 
-   if (RTC_Format != RTC_Format_BIN)
 
-   {
 
-     tmpreg = (((uint32_t)(RTC_TimeStruct->RTC_Hours) << 16) | \
 
-              ((uint32_t)(RTC_TimeStruct->RTC_Minutes) << 8) | \
 
-  8025998:	7865      	ldrb	r5, [r4, #1]
 
-   }
 
-   
 
-   /* Check the input parameters format */
 
-   if (RTC_Format != RTC_Format_BIN)
 
-   {
 
-     tmpreg = (((uint32_t)(RTC_TimeStruct->RTC_Hours) << 16) | \
 
-  802599a:	7823      	ldrb	r3, [r4, #0]
 
-              ((uint32_t)(RTC_TimeStruct->RTC_Minutes) << 8) | \
 
-  802599c:	022d      	lsls	r5, r5, #8
 
-   }
 
-   
 
-   /* Check the input parameters format */
 
-   if (RTC_Format != RTC_Format_BIN)
 
-   {
 
-     tmpreg = (((uint32_t)(RTC_TimeStruct->RTC_Hours) << 16) | \
 
-  802599e:	ea45 4503 	orr.w	r5, r5, r3, lsl #16
 
-              ((uint32_t)(RTC_TimeStruct->RTC_Minutes) << 8) | \
 
-              ((uint32_t)RTC_TimeStruct->RTC_Seconds) | \
 
-  80259a2:	78a3      	ldrb	r3, [r4, #2]
 
-   
 
-   /* Check the input parameters format */
 
-   if (RTC_Format != RTC_Format_BIN)
 
-   {
 
-     tmpreg = (((uint32_t)(RTC_TimeStruct->RTC_Hours) << 16) | \
 
-              ((uint32_t)(RTC_TimeStruct->RTC_Minutes) << 8) | \
 
-  80259a4:	431d      	orrs	r5, r3
 
-              ((uint32_t)RTC_TimeStruct->RTC_Seconds) | \
 
-              ((uint32_t)(RTC_TimeStruct->RTC_H12) << 16)); 
 
-  80259a6:	78e3      	ldrb	r3, [r4, #3]
 
-   }
 
-   
 
-   /* Check the input parameters format */
 
-   if (RTC_Format != RTC_Format_BIN)
 
-   {
 
-     tmpreg = (((uint32_t)(RTC_TimeStruct->RTC_Hours) << 16) | \
 
-  80259a8:	ea45 4503 	orr.w	r5, r5, r3, lsl #16
 
-  80259ac:	e7d7      	b.n	802595e <RTC_SetTime+0x1e>
 
-              ((uint32_t)RTC_TimeStruct->RTC_Seconds) | \
 
-              ((uint32_t)(RTC_TimeStruct->RTC_H12) << 16)); 
 
-   }  
 
-   else
 
-   {
 
-     tmpreg = (uint32_t)(((uint32_t)RTC_ByteToBcd2(RTC_TimeStruct->RTC_Hours) << 16) | \
 
-  80259ae:	7820      	ldrb	r0, [r4, #0]
 
-  80259b0:	f7ff ff46 	bl	8025840 <RTC_ByteToBcd2>
 
-  80259b4:	4607      	mov	r7, r0
 
-                    ((uint32_t)RTC_ByteToBcd2(RTC_TimeStruct->RTC_Minutes) << 8) | \
 
-  80259b6:	7860      	ldrb	r0, [r4, #1]
 
-  80259b8:	f7ff ff42 	bl	8025840 <RTC_ByteToBcd2>
 
-  80259bc:	4606      	mov	r6, r0
 
-                    ((uint32_t)RTC_ByteToBcd2(RTC_TimeStruct->RTC_Seconds)) | \
 
-  80259be:	78a0      	ldrb	r0, [r4, #2]
 
-  80259c0:	f7ff ff3e 	bl	8025840 <RTC_ByteToBcd2>
 
-                    (((uint32_t)RTC_TimeStruct->RTC_H12) << 16));
 
-  80259c4:	78e5      	ldrb	r5, [r4, #3]
 
-              ((uint32_t)RTC_TimeStruct->RTC_Seconds) | \
 
-              ((uint32_t)(RTC_TimeStruct->RTC_H12) << 16)); 
 
-   }  
 
-   else
 
-   {
 
-     tmpreg = (uint32_t)(((uint32_t)RTC_ByteToBcd2(RTC_TimeStruct->RTC_Hours) << 16) | \
 
-  80259c6:	ea40 4005 	orr.w	r0, r0, r5, lsl #16
 
-                    ((uint32_t)RTC_ByteToBcd2(RTC_TimeStruct->RTC_Minutes) << 8) | \
 
-  80259ca:	ea40 4507 	orr.w	r5, r0, r7, lsl #16
 
-              ((uint32_t)RTC_TimeStruct->RTC_Seconds) | \
 
-              ((uint32_t)(RTC_TimeStruct->RTC_H12) << 16)); 
 
-   }  
 
-   else
 
-   {
 
-     tmpreg = (uint32_t)(((uint32_t)RTC_ByteToBcd2(RTC_TimeStruct->RTC_Hours) << 16) | \
 
-  80259ce:	ea45 2506 	orr.w	r5, r5, r6, lsl #8
 
-  80259d2:	e7c4      	b.n	802595e <RTC_SetTime+0x1e>
 
-  80259d4:	40002800 	.word	0x40002800
 
- 080259d8 <RTC_GetTime>:
 
-   /* Check the parameters */
 
-   assert_param(IS_RTC_FORMAT(RTC_Format));
 
-   /* Get the RTC_TR register */
 
-   tmpreg = (uint32_t)(RTC->TR & RTC_TR_RESERVED_MASK); 
 
-  80259d8:	4b0f      	ldr	r3, [pc, #60]	; (8025a18 <RTC_GetTime+0x40>)
 
-  80259da:	681b      	ldr	r3, [r3, #0]
 
-   * @param  RTC_TimeStruct: pointer to a RTC_TimeTypeDef structure that will 
 
-   *                        contain the returned current time configuration.     
 
-   * @retval None
 
-   */
 
- void RTC_GetTime(uint32_t RTC_Format, RTC_TimeTypeDef* RTC_TimeStruct)
 
- {
 
-  80259dc:	b570      	push	{r4, r5, r6, lr}
 
-   /* Get the RTC_TR register */
 
-   tmpreg = (uint32_t)(RTC->TR & RTC_TR_RESERVED_MASK); 
 
-   
 
-   /* Fill the structure fields with the read parameters */
 
-   RTC_TimeStruct->RTC_Hours = (uint8_t)((tmpreg & (RTC_TR_HT | RTC_TR_HU)) >> 16);
 
-  80259de:	f3c3 4205 	ubfx	r2, r3, #16, #6
 
-   RTC_TimeStruct->RTC_Minutes = (uint8_t)((tmpreg & (RTC_TR_MNT | RTC_TR_MNU)) >>8);
 
-  80259e2:	f3c3 2606 	ubfx	r6, r3, #8, #7
 
-   RTC_TimeStruct->RTC_Seconds = (uint8_t)(tmpreg & (RTC_TR_ST | RTC_TR_SU));
 
-  80259e6:	f003 057f 	and.w	r5, r3, #127	; 0x7f
 
-   RTC_TimeStruct->RTC_H12 = (uint8_t)((tmpreg & (RTC_TR_PM)) >> 16);  
 
-  80259ea:	f403 0380 	and.w	r3, r3, #4194304	; 0x400000
 
-  80259ee:	0c1b      	lsrs	r3, r3, #16
 
-   * @param  RTC_TimeStruct: pointer to a RTC_TimeTypeDef structure that will 
 
-   *                        contain the returned current time configuration.     
 
-   * @retval None
 
-   */
 
- void RTC_GetTime(uint32_t RTC_Format, RTC_TimeTypeDef* RTC_TimeStruct)
 
- {
 
-  80259f0:	460c      	mov	r4, r1
 
-   /* Get the RTC_TR register */
 
-   tmpreg = (uint32_t)(RTC->TR & RTC_TR_RESERVED_MASK); 
 
-   
 
-   /* Fill the structure fields with the read parameters */
 
-   RTC_TimeStruct->RTC_Hours = (uint8_t)((tmpreg & (RTC_TR_HT | RTC_TR_HU)) >> 16);
 
-  80259f2:	700a      	strb	r2, [r1, #0]
 
-   RTC_TimeStruct->RTC_Minutes = (uint8_t)((tmpreg & (RTC_TR_MNT | RTC_TR_MNU)) >>8);
 
-  80259f4:	704e      	strb	r6, [r1, #1]
 
-   RTC_TimeStruct->RTC_Seconds = (uint8_t)(tmpreg & (RTC_TR_ST | RTC_TR_SU));
 
-  80259f6:	708d      	strb	r5, [r1, #2]
 
-   RTC_TimeStruct->RTC_H12 = (uint8_t)((tmpreg & (RTC_TR_PM)) >> 16);  
 
-  80259f8:	70cb      	strb	r3, [r1, #3]
 
-   /* Check the input parameters format */
 
-   if (RTC_Format == RTC_Format_BIN)
 
-  80259fa:	b958      	cbnz	r0, 8025a14 <RTC_GetTime+0x3c>
 
-   {
 
-     /* Convert the structure parameters to Binary format */
 
-     RTC_TimeStruct->RTC_Hours = (uint8_t)RTC_Bcd2ToByte(RTC_TimeStruct->RTC_Hours);
 
-  80259fc:	4610      	mov	r0, r2
 
-  80259fe:	f7ff ff2b 	bl	8025858 <RTC_Bcd2ToByte>
 
-  8025a02:	7020      	strb	r0, [r4, #0]
 
-     RTC_TimeStruct->RTC_Minutes = (uint8_t)RTC_Bcd2ToByte(RTC_TimeStruct->RTC_Minutes);
 
-  8025a04:	4630      	mov	r0, r6
 
-  8025a06:	f7ff ff27 	bl	8025858 <RTC_Bcd2ToByte>
 
-  8025a0a:	7060      	strb	r0, [r4, #1]
 
-     RTC_TimeStruct->RTC_Seconds = (uint8_t)RTC_Bcd2ToByte(RTC_TimeStruct->RTC_Seconds);   
 
-  8025a0c:	4628      	mov	r0, r5
 
-  8025a0e:	f7ff ff23 	bl	8025858 <RTC_Bcd2ToByte>
 
-  8025a12:	70a0      	strb	r0, [r4, #2]
 
-  8025a14:	bd70      	pop	{r4, r5, r6, pc}
 
-  8025a16:	bf00      	nop
 
-  8025a18:	40002800 	.word	0x40002800
 
- 08025a1c <RTC_SetDate>:
 
-   * @retval An ErrorStatus enumeration value:
 
-   *          - SUCCESS: RTC Date register is configured
 
-   *          - ERROR: RTC Date register is not configured
 
-   */
 
- ErrorStatus RTC_SetDate(uint32_t RTC_Format, RTC_DateTypeDef* RTC_DateStruct)
 
- {
 
-  8025a1c:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
-  8025a1e:	460c      	mov	r4, r1
 
-  8025a20:	784b      	ldrb	r3, [r1, #1]
 
-   ErrorStatus status = ERROR;
 
-   
 
-   /* Check the parameters */
 
-   assert_param(IS_RTC_FORMAT(RTC_Format));
 
-   if ((RTC_Format == RTC_Format_BIN) && ((RTC_DateStruct->RTC_Month & 0x10) == 0x10))
 
-  8025a22:	2800      	cmp	r0, #0
 
-  8025a24:	d138      	bne.n	8025a98 <RTC_SetDate+0x7c>
 
-  8025a26:	f003 0210 	and.w	r2, r3, #16
 
-  8025a2a:	b2d2      	uxtb	r2, r2
 
-  8025a2c:	b30a      	cbz	r2, 8025a72 <RTC_SetDate+0x56>
 
-   {
 
-     RTC_DateStruct->RTC_Month = (RTC_DateStruct->RTC_Month & (uint32_t)~(0x10)) + 0x0A;
 
-  8025a2e:	f023 0310 	bic.w	r3, r3, #16
 
-  8025a32:	330a      	adds	r3, #10
 
-  8025a34:	704b      	strb	r3, [r1, #1]
 
-  8025a36:	e01c      	b.n	8025a72 <RTC_SetDate+0x56>
 
-               ((uint32_t)RTC_ByteToBcd2(RTC_DateStruct->RTC_Date)) | \
 
-               ((uint32_t)RTC_DateStruct->RTC_WeekDay << 13));
 
-   }
 
-   /* Disable the write protection for RTC registers */
 
-   RTC->WPR = 0xCA;
 
-  8025a38:	4c1c      	ldr	r4, [pc, #112]	; (8025aac <RTC_SetDate+0x90>)
 
-  8025a3a:	23ca      	movs	r3, #202	; 0xca
 
-  8025a3c:	6263      	str	r3, [r4, #36]	; 0x24
 
-   RTC->WPR = 0x53;
 
-  8025a3e:	2353      	movs	r3, #83	; 0x53
 
-  8025a40:	6263      	str	r3, [r4, #36]	; 0x24
 
-   /* Set Initialization mode */
 
-   if (RTC_EnterInitMode() == ERROR)
 
-  8025a42:	f7ff ff11 	bl	8025868 <RTC_EnterInitMode>
 
-  8025a46:	b180      	cbz	r0, 8025a6a <RTC_SetDate+0x4e>
 
-     status = ERROR;
 
-   } 
 
-   else
 
-   {
 
-     /* Set the RTC_DR register */
 
-     RTC->DR = (uint32_t)(tmpreg & RTC_DR_RESERVED_MASK);
 
-  8025a48:	f025 457f 	bic.w	r5, r5, #4278190080	; 0xff000000
 
-  8025a4c:	f025 05c0 	bic.w	r5, r5, #192	; 0xc0
 
-  8025a50:	6065      	str	r5, [r4, #4]
 
-     /* Exit Initialization mode */
 
-     RTC_ExitInitMode(); 
 
-  8025a52:	f7ff ff29 	bl	80258a8 <RTC_ExitInitMode>
 
-     /* If  RTC_CR_BYPSHAD bit = 0, wait for synchro else this check is not needed */
 
-     if ((RTC->CR & RTC_CR_BYPSHAD) == RESET)
 
-  8025a56:	68a3      	ldr	r3, [r4, #8]
 
-  8025a58:	0698      	lsls	r0, r3, #26
 
-  8025a5a:	d405      	bmi.n	8025a68 <RTC_SetDate+0x4c>
 
-     {
 
-       if (RTC_WaitForSynchro() == ERROR)
 
-  8025a5c:	f7ff ff4e 	bl	80258fc <RTC_WaitForSynchro>
 
-   RTC->WPR = 0x53;
 
-   /* Set Initialization mode */
 
-   if (RTC_EnterInitMode() == ERROR)
 
-   {
 
-     status = ERROR;
 
-  8025a60:	3000      	adds	r0, #0
 
-  8025a62:	bf18      	it	ne
 
-  8025a64:	2001      	movne	r0, #1
 
-  8025a66:	e000      	b.n	8025a6a <RTC_SetDate+0x4e>
 
-         status = SUCCESS;
 
-       }
 
-     }
 
-     else
 
-     {
 
-       status = SUCCESS;
 
-  8025a68:	2001      	movs	r0, #1
 
-     }
 
-   }
 
-   /* Enable the write protection for RTC registers */
 
-   RTC->WPR = 0xFF;   
 
-  8025a6a:	4b10      	ldr	r3, [pc, #64]	; (8025aac <RTC_SetDate+0x90>)
 
-  8025a6c:	22ff      	movs	r2, #255	; 0xff
 
-  8025a6e:	625a      	str	r2, [r3, #36]	; 0x24
 
-  8025a70:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 
-               ((uint32_t)RTC_DateStruct->RTC_Date) | \
 
-               (((uint32_t)RTC_DateStruct->RTC_WeekDay) << 13)); 
 
-   }  
 
-   else
 
-   {
 
-     tmpreg = (((uint32_t)RTC_ByteToBcd2(RTC_DateStruct->RTC_Year) << 16) | \
 
-  8025a72:	78e0      	ldrb	r0, [r4, #3]
 
-  8025a74:	f7ff fee4 	bl	8025840 <RTC_ByteToBcd2>
 
-  8025a78:	4607      	mov	r7, r0
 
-               ((uint32_t)RTC_ByteToBcd2(RTC_DateStruct->RTC_Month) << 8) | \
 
-  8025a7a:	7860      	ldrb	r0, [r4, #1]
 
-  8025a7c:	f7ff fee0 	bl	8025840 <RTC_ByteToBcd2>
 
-  8025a80:	4606      	mov	r6, r0
 
-               ((uint32_t)RTC_ByteToBcd2(RTC_DateStruct->RTC_Date)) | \
 
-  8025a82:	78a0      	ldrb	r0, [r4, #2]
 
-  8025a84:	f7ff fedc 	bl	8025840 <RTC_ByteToBcd2>
 
-               ((uint32_t)RTC_DateStruct->RTC_WeekDay << 13));
 
-  8025a88:	7825      	ldrb	r5, [r4, #0]
 
-               ((uint32_t)RTC_DateStruct->RTC_Date) | \
 
-               (((uint32_t)RTC_DateStruct->RTC_WeekDay) << 13)); 
 
-   }  
 
-   else
 
-   {
 
-     tmpreg = (((uint32_t)RTC_ByteToBcd2(RTC_DateStruct->RTC_Year) << 16) | \
 
-  8025a8a:	ea40 3045 	orr.w	r0, r0, r5, lsl #13
 
-               ((uint32_t)RTC_ByteToBcd2(RTC_DateStruct->RTC_Month) << 8) | \
 
-  8025a8e:	ea40 4507 	orr.w	r5, r0, r7, lsl #16
 
-               ((uint32_t)RTC_DateStruct->RTC_Date) | \
 
-               (((uint32_t)RTC_DateStruct->RTC_WeekDay) << 13)); 
 
-   }  
 
-   else
 
-   {
 
-     tmpreg = (((uint32_t)RTC_ByteToBcd2(RTC_DateStruct->RTC_Year) << 16) | \
 
-  8025a92:	ea45 2506 	orr.w	r5, r5, r6, lsl #8
 
-  8025a96:	e7cf      	b.n	8025a38 <RTC_SetDate+0x1c>
 
-   assert_param(IS_RTC_WEEKDAY(RTC_DateStruct->RTC_WeekDay));
 
-   /* Check the input parameters format */
 
-   if (RTC_Format != RTC_Format_BIN)
 
-   {
 
-     tmpreg = ((((uint32_t)RTC_DateStruct->RTC_Year) << 16) | \
 
-  8025a98:	78cd      	ldrb	r5, [r1, #3]
 
-               (((uint32_t)RTC_DateStruct->RTC_Month) << 8) | \
 
-               ((uint32_t)RTC_DateStruct->RTC_Date) | \
 
-  8025a9a:	788a      	ldrb	r2, [r1, #2]
 
-   /* Check the input parameters format */
 
-   if (RTC_Format != RTC_Format_BIN)
 
-   {
 
-     tmpreg = ((((uint32_t)RTC_DateStruct->RTC_Year) << 16) | \
 
-               (((uint32_t)RTC_DateStruct->RTC_Month) << 8) | \
 
-  8025a9c:	021b      	lsls	r3, r3, #8
 
-   assert_param(IS_RTC_WEEKDAY(RTC_DateStruct->RTC_WeekDay));
 
-   /* Check the input parameters format */
 
-   if (RTC_Format != RTC_Format_BIN)
 
-   {
 
-     tmpreg = ((((uint32_t)RTC_DateStruct->RTC_Year) << 16) | \
 
-  8025a9e:	ea43 4505 	orr.w	r5, r3, r5, lsl #16
 
-               (((uint32_t)RTC_DateStruct->RTC_Month) << 8) | \
 
-               ((uint32_t)RTC_DateStruct->RTC_Date) | \
 
-               (((uint32_t)RTC_DateStruct->RTC_WeekDay) << 13)); 
 
-  8025aa2:	780b      	ldrb	r3, [r1, #0]
 
-   /* Check the input parameters format */
 
-   if (RTC_Format != RTC_Format_BIN)
 
-   {
 
-     tmpreg = ((((uint32_t)RTC_DateStruct->RTC_Year) << 16) | \
 
-               (((uint32_t)RTC_DateStruct->RTC_Month) << 8) | \
 
-  8025aa4:	4315      	orrs	r5, r2
 
-   assert_param(IS_RTC_WEEKDAY(RTC_DateStruct->RTC_WeekDay));
 
-   /* Check the input parameters format */
 
-   if (RTC_Format != RTC_Format_BIN)
 
-   {
 
-     tmpreg = ((((uint32_t)RTC_DateStruct->RTC_Year) << 16) | \
 
-  8025aa6:	ea45 3543 	orr.w	r5, r5, r3, lsl #13
 
-  8025aaa:	e7c5      	b.n	8025a38 <RTC_SetDate+0x1c>
 
-  8025aac:	40002800 	.word	0x40002800
 
- 08025ab0 <RTC_GetDate>:
 
-   /* Check the parameters */
 
-   assert_param(IS_RTC_FORMAT(RTC_Format));
 
-   
 
-   /* Get the RTC_TR register */
 
-   tmpreg = (uint32_t)(RTC->DR & RTC_DR_RESERVED_MASK); 
 
-  8025ab0:	4b0e      	ldr	r3, [pc, #56]	; (8025aec <RTC_GetDate+0x3c>)
 
-  8025ab2:	685b      	ldr	r3, [r3, #4]
 
-   * @param RTC_DateStruct: pointer to a RTC_DateTypeDef structure that will 
 
-   *                        contain the returned current date configuration.     
 
-   * @retval None
 
-   */
 
- void RTC_GetDate(uint32_t RTC_Format, RTC_DateTypeDef* RTC_DateStruct)
 
- {
 
-  8025ab4:	b570      	push	{r4, r5, r6, lr}
 
-   
 
-   /* Get the RTC_TR register */
 
-   tmpreg = (uint32_t)(RTC->DR & RTC_DR_RESERVED_MASK); 
 
-   /* Fill the structure fields with the read parameters */
 
-   RTC_DateStruct->RTC_Year = (uint8_t)((tmpreg & (RTC_DR_YT | RTC_DR_YU)) >> 16);
 
-  8025ab6:	f3c3 4207 	ubfx	r2, r3, #16, #8
 
-   RTC_DateStruct->RTC_Month = (uint8_t)((tmpreg & (RTC_DR_MT | RTC_DR_MU)) >> 8);
 
-  8025aba:	f3c3 2604 	ubfx	r6, r3, #8, #5
 
-   RTC_DateStruct->RTC_Date = (uint8_t)(tmpreg & (RTC_DR_DT | RTC_DR_DU));
 
-  8025abe:	f003 053f 	and.w	r5, r3, #63	; 0x3f
 
-   RTC_DateStruct->RTC_WeekDay = (uint8_t)((tmpreg & (RTC_DR_WDU)) >> 13);
 
-  8025ac2:	f3c3 3342 	ubfx	r3, r3, #13, #3
 
-   * @param RTC_DateStruct: pointer to a RTC_DateTypeDef structure that will 
 
-   *                        contain the returned current date configuration.     
 
-   * @retval None
 
-   */
 
- void RTC_GetDate(uint32_t RTC_Format, RTC_DateTypeDef* RTC_DateStruct)
 
- {
 
-  8025ac6:	460c      	mov	r4, r1
 
-   
 
-   /* Get the RTC_TR register */
 
-   tmpreg = (uint32_t)(RTC->DR & RTC_DR_RESERVED_MASK); 
 
-   /* Fill the structure fields with the read parameters */
 
-   RTC_DateStruct->RTC_Year = (uint8_t)((tmpreg & (RTC_DR_YT | RTC_DR_YU)) >> 16);
 
-  8025ac8:	70ca      	strb	r2, [r1, #3]
 
-   RTC_DateStruct->RTC_Month = (uint8_t)((tmpreg & (RTC_DR_MT | RTC_DR_MU)) >> 8);
 
-  8025aca:	704e      	strb	r6, [r1, #1]
 
-   RTC_DateStruct->RTC_Date = (uint8_t)(tmpreg & (RTC_DR_DT | RTC_DR_DU));
 
-  8025acc:	708d      	strb	r5, [r1, #2]
 
-   RTC_DateStruct->RTC_WeekDay = (uint8_t)((tmpreg & (RTC_DR_WDU)) >> 13);
 
-  8025ace:	700b      	strb	r3, [r1, #0]
 
-   /* Check the input parameters format */
 
-   if (RTC_Format == RTC_Format_BIN)
 
-  8025ad0:	b958      	cbnz	r0, 8025aea <RTC_GetDate+0x3a>
 
-   {
 
-     /* Convert the structure parameters to Binary format */
 
-     RTC_DateStruct->RTC_Year = (uint8_t)RTC_Bcd2ToByte(RTC_DateStruct->RTC_Year);
 
-  8025ad2:	4610      	mov	r0, r2
 
-  8025ad4:	f7ff fec0 	bl	8025858 <RTC_Bcd2ToByte>
 
-  8025ad8:	70e0      	strb	r0, [r4, #3]
 
-     RTC_DateStruct->RTC_Month = (uint8_t)RTC_Bcd2ToByte(RTC_DateStruct->RTC_Month);
 
-  8025ada:	4630      	mov	r0, r6
 
-  8025adc:	f7ff febc 	bl	8025858 <RTC_Bcd2ToByte>
 
-  8025ae0:	7060      	strb	r0, [r4, #1]
 
-     RTC_DateStruct->RTC_Date = (uint8_t)RTC_Bcd2ToByte(RTC_DateStruct->RTC_Date);
 
-  8025ae2:	4628      	mov	r0, r5
 
-  8025ae4:	f7ff feb8 	bl	8025858 <RTC_Bcd2ToByte>
 
-  8025ae8:	70a0      	strb	r0, [r4, #2]
 
-  8025aea:	bd70      	pop	{r4, r5, r6, pc}
 
-  8025aec:	40002800 	.word	0x40002800
 
- 08025af0 <RTC_WriteBackupRegister>:
 
-   *                          specify the register.
 
-   * @param  Data: Data to be written in the specified RTC Backup data register.                     
 
-   * @retval None
 
-   */
 
- void RTC_WriteBackupRegister(uint32_t RTC_BKP_DR, uint32_t Data)
 
- {
 
-  8025af0:	b082      	sub	sp, #8
 
-   __IO uint32_t tmp = 0;
 
-  8025af2:	2300      	movs	r3, #0
 
-  8025af4:	9301      	str	r3, [sp, #4]
 
-   
 
-   /* Check the parameters */
 
-   assert_param(IS_RTC_BKP(RTC_BKP_DR));
 
-   tmp = RTC_BASE + 0x50;
 
-  8025af6:	4b05      	ldr	r3, [pc, #20]	; (8025b0c <RTC_WriteBackupRegister+0x1c>)
 
-  8025af8:	9301      	str	r3, [sp, #4]
 
-   tmp += (RTC_BKP_DR * 4);
 
-  8025afa:	9b01      	ldr	r3, [sp, #4]
 
-  8025afc:	eb03 0080 	add.w	r0, r3, r0, lsl #2
 
-  8025b00:	9001      	str	r0, [sp, #4]
 
-   /* Write the specified register */
 
-   *(__IO uint32_t *)tmp = (uint32_t)Data;
 
-  8025b02:	9b01      	ldr	r3, [sp, #4]
 
-  8025b04:	6019      	str	r1, [r3, #0]
 
- }
 
-  8025b06:	b002      	add	sp, #8
 
-  8025b08:	4770      	bx	lr
 
-  8025b0a:	bf00      	nop
 
-  8025b0c:	40002850 	.word	0x40002850
 
- 08025b10 <RTC_ReadBackupRegister>:
 
-   *          This parameter can be: RTC_BKP_DRx where x can be from 0 to 19 to 
 
-   *                          specify the register.                   
 
-   * @retval None
 
-   */
 
- uint32_t RTC_ReadBackupRegister(uint32_t RTC_BKP_DR)
 
- {
 
-  8025b10:	b082      	sub	sp, #8
 
-   __IO uint32_t tmp = 0;
 
-  8025b12:	2300      	movs	r3, #0
 
-  8025b14:	9301      	str	r3, [sp, #4]
 
-   
 
-   /* Check the parameters */
 
-   assert_param(IS_RTC_BKP(RTC_BKP_DR));
 
-   tmp = RTC_BASE + 0x50;
 
-  8025b16:	4b05      	ldr	r3, [pc, #20]	; (8025b2c <RTC_ReadBackupRegister+0x1c>)
 
-  8025b18:	9301      	str	r3, [sp, #4]
 
-   tmp += (RTC_BKP_DR * 4);
 
-  8025b1a:	9b01      	ldr	r3, [sp, #4]
 
-  8025b1c:	eb03 0080 	add.w	r0, r3, r0, lsl #2
 
-  8025b20:	9001      	str	r0, [sp, #4]
 
-   
 
-   /* Read the specified register */
 
-   return (*(__IO uint32_t *)tmp);
 
-  8025b22:	9b01      	ldr	r3, [sp, #4]
 
-  8025b24:	6818      	ldr	r0, [r3, #0]
 
- }
 
-  8025b26:	b002      	add	sp, #8
 
-  8025b28:	4770      	bx	lr
 
-  8025b2a:	bf00      	nop
 
-  8025b2c:	40002850 	.word	0x40002850
 
- 08025b30 <RTC_GetITStatus>:
 
-  
 
-   /* Check the parameters */
 
-   assert_param(IS_RTC_GET_IT(RTC_IT));
 
-   
 
-   /* Get the TAMPER Interrupt enable bit and pending bit */
 
-   tmpreg = (uint32_t)(RTC->TAFCR & (RTC_TAFCR_TAMPIE));
 
-  8025b30:	4b0a      	ldr	r3, [pc, #40]	; (8025b5c <RTC_GetITStatus+0x2c>)
 
-  8025b32:	6c1a      	ldr	r2, [r3, #64]	; 0x40
 
-   *            @arg RTC_IT_ALRA: Alarm A interrupt 
 
-   *            @arg RTC_IT_TAMP1: Tamper 1 event interrupt 
 
-   * @retval The new state of RTC_IT (SET or RESET).
 
-   */
 
- ITStatus RTC_GetITStatus(uint32_t RTC_IT)
 
- {
 
-  8025b34:	b510      	push	{r4, lr}
 
-   
 
-   /* Get the TAMPER Interrupt enable bit and pending bit */
 
-   tmpreg = (uint32_t)(RTC->TAFCR & (RTC_TAFCR_TAMPIE));
 
-  
 
-   /* Get the Interrupt enable Status */
 
-   enablestatus = (uint32_t)((RTC->CR & RTC_IT) | (tmpreg & (RTC_IT >> 15)));
 
-  8025b36:	689c      	ldr	r4, [r3, #8]
 
-   
 
-   /* Get the Interrupt pending bit */
 
-   tmpreg = (uint32_t)((RTC->ISR & (uint32_t)(RTC_IT >> 4)));
 
-  8025b38:	68d9      	ldr	r1, [r3, #12]
 
-  
 
-   /* Check the parameters */
 
-   assert_param(IS_RTC_GET_IT(RTC_IT));
 
-   
 
-   /* Get the TAMPER Interrupt enable bit and pending bit */
 
-   tmpreg = (uint32_t)(RTC->TAFCR & (RTC_TAFCR_TAMPIE));
 
-  8025b3a:	f002 0204 	and.w	r2, r2, #4
 
-  
 
-   /* Get the Interrupt enable Status */
 
-   enablestatus = (uint32_t)((RTC->CR & RTC_IT) | (tmpreg & (RTC_IT >> 15)));
 
-  8025b3e:	ea02 32d0 	and.w	r2, r2, r0, lsr #15
 
-  8025b42:	ea00 0304 	and.w	r3, r0, r4
 
-   
 
-   /* Get the Interrupt pending bit */
 
-   tmpreg = (uint32_t)((RTC->ISR & (uint32_t)(RTC_IT >> 4)));
 
-   
 
-   /* Get the status of the Interrupt */
 
-   if ((enablestatus != (uint32_t)RESET) && ((tmpreg & 0x0000FFFF) != (uint32_t)RESET))
 
-  8025b46:	4313      	orrs	r3, r2
 
-  8025b48:	d006      	beq.n	8025b58 <RTC_GetITStatus+0x28>
 
-  
 
-   /* Get the Interrupt enable Status */
 
-   enablestatus = (uint32_t)((RTC->CR & RTC_IT) | (tmpreg & (RTC_IT >> 15)));
 
-   
 
-   /* Get the Interrupt pending bit */
 
-   tmpreg = (uint32_t)((RTC->ISR & (uint32_t)(RTC_IT >> 4)));
 
-  8025b4a:	b28b      	uxth	r3, r1
 
-   
 
-   /* Get the status of the Interrupt */
 
-   if ((enablestatus != (uint32_t)RESET) && ((tmpreg & 0x0000FFFF) != (uint32_t)RESET))
 
-  8025b4c:	ea13 1310 	ands.w	r3, r3, r0, lsr #4
 
-   {
 
-     bitstatus = SET;
 
-  8025b50:	bf0c      	ite	eq
 
-  8025b52:	2000      	moveq	r0, #0
 
-  8025b54:	2001      	movne	r0, #1
 
-  8025b56:	bd10      	pop	{r4, pc}
 
-   }
 
-   else
 
-   {
 
-     bitstatus = RESET;
 
-  8025b58:	4618      	mov	r0, r3
 
-   }
 
-   return bitstatus;
 
- }
 
-  8025b5a:	bd10      	pop	{r4, pc}
 
-  8025b5c:	40002800 	.word	0x40002800
 
- 08025b60 <RTC_ClearITPendingBit>:
 
-   /* Get the RTC_ISR Interrupt pending bits mask */
 
-   tmpreg = (uint32_t)(RTC_IT >> 4);
 
-   /* Clear the interrupt pending bits in the RTC_ISR register */
 
-   RTC->ISR = (uint32_t)((uint32_t)(~((tmpreg | RTC_ISR_INIT)& 0x0000FFFF) | (uint32_t)(RTC->ISR & RTC_ISR_INIT))); 
 
-  8025b60:	4b05      	ldr	r3, [pc, #20]	; (8025b78 <RTC_ClearITPendingBit+0x18>)
 
-  8025b62:	68da      	ldr	r2, [r3, #12]
 
-  8025b64:	f3c0 100f 	ubfx	r0, r0, #4, #16
 
-  8025b68:	f040 0080 	orr.w	r0, r0, #128	; 0x80
 
-  8025b6c:	f002 0280 	and.w	r2, r2, #128	; 0x80
 
-  8025b70:	ea62 0200 	orn	r2, r2, r0
 
-  8025b74:	60da      	str	r2, [r3, #12]
 
-  8025b76:	4770      	bx	lr
 
-  8025b78:	40002800 	.word	0x40002800
 
- 08025b7c <SYSCFG_ETH_MediaInterfaceConfig>:
 
-   */
 
- void SYSCFG_ETH_MediaInterfaceConfig(uint32_t SYSCFG_ETH_MediaInterface) 
 
- { 
 
-   assert_param(IS_SYSCFG_ETH_MEDIA_INTERFACE(SYSCFG_ETH_MediaInterface)); 
 
-   /* Configure MII_RMII selection bit */ 
 
-   *(__IO uint32_t *) PMC_MII_RMII_SEL_BB = SYSCFG_ETH_MediaInterface; 
 
-  8025b7c:	4b01      	ldr	r3, [pc, #4]	; (8025b84 <SYSCFG_ETH_MediaInterfaceConfig+0x8>)
 
-  8025b7e:	6018      	str	r0, [r3, #0]
 
-  8025b80:	4770      	bx	lr
 
-  8025b82:	bf00      	nop
 
-  8025b84:	422700dc 	.word	0x422700dc
 
- 08025b88 <TIM_ClearITPendingBit>:
 
- {
 
-   /* Check the parameters */
 
-   assert_param(IS_TIM_ALL_PERIPH(TIMx));
 
-   /* Clear the IT pending Bit */
 
-   TIMx->SR = (uint16_t)~TIM_IT;
 
-  8025b88:	43c9      	mvns	r1, r1
 
-  8025b8a:	8201      	strh	r1, [r0, #16]
 
-  8025b8c:	4770      	bx	lr
 
-  8025b8e:	0000      	movs	r0, r0
 
- 08025b90 <USART_DeInit>:
 
-   * @param  USARTx: where x can be 1, 2, 3, 4, 5 or 6 to select the USART or 
 
-   *         UART peripheral.
 
-   * @retval None
 
-   */
 
- void USART_DeInit(USART_TypeDef* USARTx)
 
- {
 
-  8025b90:	b508      	push	{r3, lr}
 
-   /* Check the parameters */
 
-   assert_param(IS_USART_ALL_PERIPH(USARTx));
 
-   if (USARTx == USART1)
 
-  8025b92:	4b23      	ldr	r3, [pc, #140]	; (8025c20 <USART_DeInit+0x90>)
 
-  8025b94:	4298      	cmp	r0, r3
 
-  8025b96:	d105      	bne.n	8025ba4 <USART_DeInit+0x14>
 
-   {
 
-     RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1, ENABLE);
 
-  8025b98:	2010      	movs	r0, #16
 
-  8025b9a:	2101      	movs	r1, #1
 
-  8025b9c:	f7ff fe1e 	bl	80257dc <RCC_APB2PeriphResetCmd>
 
-     RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1, DISABLE);
 
-  8025ba0:	2010      	movs	r0, #16
 
-  8025ba2:	e037      	b.n	8025c14 <USART_DeInit+0x84>
 
-   }
 
-   else if (USARTx == USART2)
 
-  8025ba4:	4b1f      	ldr	r3, [pc, #124]	; (8025c24 <USART_DeInit+0x94>)
 
-  8025ba6:	4298      	cmp	r0, r3
 
-  8025ba8:	d107      	bne.n	8025bba <USART_DeInit+0x2a>
 
-   {
 
-     RCC_APB1PeriphResetCmd(RCC_APB1Periph_USART2, ENABLE);
 
-  8025baa:	f44f 3000 	mov.w	r0, #131072	; 0x20000
 
-  8025bae:	2101      	movs	r1, #1
 
-  8025bb0:	f7ff fe08 	bl	80257c4 <RCC_APB1PeriphResetCmd>
 
-     RCC_APB1PeriphResetCmd(RCC_APB1Periph_USART2, DISABLE);
 
-  8025bb4:	f44f 3000 	mov.w	r0, #131072	; 0x20000
 
-  8025bb8:	e009      	b.n	8025bce <USART_DeInit+0x3e>
 
-   }
 
-   else if (USARTx == USART3)
 
-  8025bba:	4b1b      	ldr	r3, [pc, #108]	; (8025c28 <USART_DeInit+0x98>)
 
-  8025bbc:	4298      	cmp	r0, r3
 
-  8025bbe:	d10b      	bne.n	8025bd8 <USART_DeInit+0x48>
 
-   {
 
-     RCC_APB1PeriphResetCmd(RCC_APB1Periph_USART3, ENABLE);
 
-  8025bc0:	f44f 2080 	mov.w	r0, #262144	; 0x40000
 
-  8025bc4:	2101      	movs	r1, #1
 
-  8025bc6:	f7ff fdfd 	bl	80257c4 <RCC_APB1PeriphResetCmd>
 
-     RCC_APB1PeriphResetCmd(RCC_APB1Periph_USART3, DISABLE);
 
-  8025bca:	f44f 2080 	mov.w	r0, #262144	; 0x40000
 
-  8025bce:	2100      	movs	r1, #0
 
-     { 
 
-       RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART6, ENABLE);
 
-       RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART6, DISABLE);
 
-     }
 
-   }
 
- }
 
-  8025bd0:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
 
-     RCC_APB1PeriphResetCmd(RCC_APB1Periph_USART2, DISABLE);
 
-   }
 
-   else if (USARTx == USART3)
 
-   {
 
-     RCC_APB1PeriphResetCmd(RCC_APB1Periph_USART3, ENABLE);
 
-     RCC_APB1PeriphResetCmd(RCC_APB1Periph_USART3, DISABLE);
 
-  8025bd4:	f7ff bdf6 	b.w	80257c4 <RCC_APB1PeriphResetCmd>
 
-   }    
 
-   else if (USARTx == UART4)
 
-  8025bd8:	4b14      	ldr	r3, [pc, #80]	; (8025c2c <USART_DeInit+0x9c>)
 
-  8025bda:	4298      	cmp	r0, r3
 
-  8025bdc:	d107      	bne.n	8025bee <USART_DeInit+0x5e>
 
-   {
 
-     RCC_APB1PeriphResetCmd(RCC_APB1Periph_UART4, ENABLE);
 
-  8025bde:	f44f 2000 	mov.w	r0, #524288	; 0x80000
 
-  8025be2:	2101      	movs	r1, #1
 
-  8025be4:	f7ff fdee 	bl	80257c4 <RCC_APB1PeriphResetCmd>
 
-     RCC_APB1PeriphResetCmd(RCC_APB1Periph_UART4, DISABLE);
 
-  8025be8:	f44f 2000 	mov.w	r0, #524288	; 0x80000
 
-  8025bec:	e7ef      	b.n	8025bce <USART_DeInit+0x3e>
 
-   }
 
-   else if (USARTx == UART5)
 
-  8025bee:	4b10      	ldr	r3, [pc, #64]	; (8025c30 <USART_DeInit+0xa0>)
 
-  8025bf0:	4298      	cmp	r0, r3
 
-  8025bf2:	d107      	bne.n	8025c04 <USART_DeInit+0x74>
 
-   {
 
-     RCC_APB1PeriphResetCmd(RCC_APB1Periph_UART5, ENABLE);
 
-  8025bf4:	f44f 1080 	mov.w	r0, #1048576	; 0x100000
 
-  8025bf8:	2101      	movs	r1, #1
 
-  8025bfa:	f7ff fde3 	bl	80257c4 <RCC_APB1PeriphResetCmd>
 
-     RCC_APB1PeriphResetCmd(RCC_APB1Periph_UART5, DISABLE);
 
-  8025bfe:	f44f 1080 	mov.w	r0, #1048576	; 0x100000
 
-  8025c02:	e7e4      	b.n	8025bce <USART_DeInit+0x3e>
 
-   }     
 
-   else
 
-   {
 
-     if (USARTx == USART6)
 
-  8025c04:	4b0b      	ldr	r3, [pc, #44]	; (8025c34 <USART_DeInit+0xa4>)
 
-  8025c06:	4298      	cmp	r0, r3
 
-  8025c08:	d109      	bne.n	8025c1e <USART_DeInit+0x8e>
 
-     { 
 
-       RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART6, ENABLE);
 
-  8025c0a:	2020      	movs	r0, #32
 
-  8025c0c:	2101      	movs	r1, #1
 
-  8025c0e:	f7ff fde5 	bl	80257dc <RCC_APB2PeriphResetCmd>
 
-       RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART6, DISABLE);
 
-  8025c12:	2020      	movs	r0, #32
 
-  8025c14:	2100      	movs	r1, #0
 
-     }
 
-   }
 
- }
 
-  8025c16:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
 
-   else
 
-   {
 
-     if (USARTx == USART6)
 
-     { 
 
-       RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART6, ENABLE);
 
-       RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART6, DISABLE);
 
-  8025c1a:	f7ff bddf 	b.w	80257dc <RCC_APB2PeriphResetCmd>
 
-  8025c1e:	bd08      	pop	{r3, pc}
 
-  8025c20:	40011000 	.word	0x40011000
 
-  8025c24:	40004400 	.word	0x40004400
 
-  8025c28:	40004800 	.word	0x40004800
 
-  8025c2c:	40004c00 	.word	0x40004c00
 
-  8025c30:	40005000 	.word	0x40005000
 
-  8025c34:	40011400 	.word	0x40011400
 
- 08025c38 <USART_Init>:
 
-   {
 
-     assert_param(IS_USART_1236_PERIPH(USARTx));
 
-   }
 
- /*---------------------------- USART CR2 Configuration -----------------------*/
 
-   tmpreg = USARTx->CR2;
 
-  8025c38:	8a03      	ldrh	r3, [r0, #16]
 
-   /* Clear STOP[13:12] bits */
 
-   tmpreg &= (uint32_t)~((uint32_t)USART_CR2_STOP);
 
-   /* Configure the USART Stop Bits, Clock, CPOL, CPHA and LastBit :
 
-       Set STOP[13:12] bits according to USART_StopBits value */
 
-   tmpreg |= (uint32_t)USART_InitStruct->USART_StopBits;
 
-  8025c3a:	88ca      	ldrh	r2, [r1, #6]
 
-   {
 
-     assert_param(IS_USART_1236_PERIPH(USARTx));
 
-   }
 
- /*---------------------------- USART CR2 Configuration -----------------------*/
 
-   tmpreg = USARTx->CR2;
 
-  8025c3c:	b29b      	uxth	r3, r3
 
-   /* Clear STOP[13:12] bits */
 
-   tmpreg &= (uint32_t)~((uint32_t)USART_CR2_STOP);
 
-  8025c3e:	f423 5340 	bic.w	r3, r3, #12288	; 0x3000
 
-   * @param  USART_InitStruct: pointer to a USART_InitTypeDef structure that contains
 
-   *         the configuration information for the specified USART peripheral.
 
-   * @retval None
 
-   */
 
- void USART_Init(USART_TypeDef* USARTx, USART_InitTypeDef* USART_InitStruct)
 
- {
 
-  8025c42:	b530      	push	{r4, r5, lr}
 
-   /* Configure the USART Stop Bits, Clock, CPOL, CPHA and LastBit :
 
-       Set STOP[13:12] bits according to USART_StopBits value */
 
-   tmpreg |= (uint32_t)USART_InitStruct->USART_StopBits;
 
-   
 
-   /* Write to USART CR2 */
 
-   USARTx->CR2 = (uint16_t)tmpreg;
 
-  8025c44:	4313      	orrs	r3, r2
 
-   * @param  USART_InitStruct: pointer to a USART_InitTypeDef structure that contains
 
-   *         the configuration information for the specified USART peripheral.
 
-   * @retval None
 
-   */
 
- void USART_Init(USART_TypeDef* USARTx, USART_InitTypeDef* USART_InitStruct)
 
- {
 
-  8025c46:	460d      	mov	r5, r1
 
-   /* Configure the USART Stop Bits, Clock, CPOL, CPHA and LastBit :
 
-       Set STOP[13:12] bits according to USART_StopBits value */
 
-   tmpreg |= (uint32_t)USART_InitStruct->USART_StopBits;
 
-   
 
-   /* Write to USART CR2 */
 
-   USARTx->CR2 = (uint16_t)tmpreg;
 
-  8025c48:	8203      	strh	r3, [r0, #16]
 
- /*---------------------------- USART CR1 Configuration -----------------------*/
 
-   tmpreg = USARTx->CR1;
 
-  8025c4a:	8983      	ldrh	r3, [r0, #12]
 
-   /* Configure the USART Word Length, Parity and mode: 
 
-      Set the M bits according to USART_WordLength value 
 
-      Set PCE and PS bits according to USART_Parity value
 
-      Set TE and RE bits according to USART_Mode value */
 
-   tmpreg |= (uint32_t)USART_InitStruct->USART_WordLength | USART_InitStruct->USART_Parity |
 
-  8025c4c:	8909      	ldrh	r1, [r1, #8]
 
-  8025c4e:	88aa      	ldrh	r2, [r5, #4]
 
- /*---------------------------- USART CR1 Configuration -----------------------*/
 
-   tmpreg = USARTx->CR1;
 
-   /* Clear M, PCE, PS, TE and RE bits */
 
-   tmpreg &= (uint32_t)~((uint32_t)CR1_CLEAR_MASK);
 
-  8025c50:	f423 53b0 	bic.w	r3, r3, #5632	; 0x1600
 
-   /* Configure the USART Word Length, Parity and mode: 
 
-      Set the M bits according to USART_WordLength value 
 
-      Set PCE and PS bits according to USART_Parity value
 
-      Set TE and RE bits according to USART_Mode value */
 
-   tmpreg |= (uint32_t)USART_InitStruct->USART_WordLength | USART_InitStruct->USART_Parity |
 
-  8025c54:	430a      	orrs	r2, r1
 
-  8025c56:	8969      	ldrh	r1, [r5, #10]
 
- /*---------------------------- USART CR1 Configuration -----------------------*/
 
-   tmpreg = USARTx->CR1;
 
-   /* Clear M, PCE, PS, TE and RE bits */
 
-   tmpreg &= (uint32_t)~((uint32_t)CR1_CLEAR_MASK);
 
-  8025c58:	f023 030c 	bic.w	r3, r3, #12
 
-  8025c5c:	041b      	lsls	r3, r3, #16
 
-   /* Configure the USART Word Length, Parity and mode: 
 
-      Set the M bits according to USART_WordLength value 
 
-      Set PCE and PS bits according to USART_Parity value
 
-      Set TE and RE bits according to USART_Mode value */
 
-   tmpreg |= (uint32_t)USART_InitStruct->USART_WordLength | USART_InitStruct->USART_Parity |
 
-  8025c5e:	430a      	orrs	r2, r1
 
- /*---------------------------- USART CR1 Configuration -----------------------*/
 
-   tmpreg = USARTx->CR1;
 
-   /* Clear M, PCE, PS, TE and RE bits */
 
-   tmpreg &= (uint32_t)~((uint32_t)CR1_CLEAR_MASK);
 
-  8025c60:	0c1b      	lsrs	r3, r3, #16
 
-   /* Configure the USART Word Length, Parity and mode: 
 
-      Set the M bits according to USART_WordLength value 
 
-      Set PCE and PS bits according to USART_Parity value
 
-      Set TE and RE bits according to USART_Mode value */
 
-   tmpreg |= (uint32_t)USART_InitStruct->USART_WordLength | USART_InitStruct->USART_Parity |
 
-  8025c62:	b292      	uxth	r2, r2
 
-             USART_InitStruct->USART_Mode;
 
-   /* Write to USART CR1 */
 
-   USARTx->CR1 = (uint16_t)tmpreg;
 
-  8025c64:	4313      	orrs	r3, r2
 
-  8025c66:	8183      	strh	r3, [r0, #12]
 
- /*---------------------------- USART CR3 Configuration -----------------------*/  
 
-   tmpreg = USARTx->CR3;
 
-  8025c68:	8a83      	ldrh	r3, [r0, #20]
 
-   /* Clear CTSE and RTSE bits */
 
-   tmpreg &= (uint32_t)~((uint32_t)CR3_CLEAR_MASK);
 
-   /* Configure the USART HFC : 
 
-       Set CTSE and RTSE bits according to USART_HardwareFlowControl value */
 
-   tmpreg |= USART_InitStruct->USART_HardwareFlowControl;
 
-  8025c6a:	89aa      	ldrh	r2, [r5, #12]
 
-   /* Write to USART CR1 */
 
-   USARTx->CR1 = (uint16_t)tmpreg;
 
- /*---------------------------- USART CR3 Configuration -----------------------*/  
 
-   tmpreg = USARTx->CR3;
 
-  8025c6c:	b29b      	uxth	r3, r3
 
-   /* Clear CTSE and RTSE bits */
 
-   tmpreg &= (uint32_t)~((uint32_t)CR3_CLEAR_MASK);
 
-  8025c6e:	f423 7340 	bic.w	r3, r3, #768	; 0x300
 
-   /* Configure the USART HFC : 
 
-       Set CTSE and RTSE bits according to USART_HardwareFlowControl value */
 
-   tmpreg |= USART_InitStruct->USART_HardwareFlowControl;
 
-   /* Write to USART CR3 */
 
-   USARTx->CR3 = (uint16_t)tmpreg;
 
-  8025c72:	4313      	orrs	r3, r2
 
-   * @param  USART_InitStruct: pointer to a USART_InitTypeDef structure that contains
 
-   *         the configuration information for the specified USART peripheral.
 
-   * @retval None
 
-   */
 
- void USART_Init(USART_TypeDef* USARTx, USART_InitTypeDef* USART_InitStruct)
 
- {
 
-  8025c74:	b085      	sub	sp, #20
 
-   /* Configure the USART HFC : 
 
-       Set CTSE and RTSE bits according to USART_HardwareFlowControl value */
 
-   tmpreg |= USART_InitStruct->USART_HardwareFlowControl;
 
-   /* Write to USART CR3 */
 
-   USARTx->CR3 = (uint16_t)tmpreg;
 
-  8025c76:	8283      	strh	r3, [r0, #20]
 
-   * @param  USART_InitStruct: pointer to a USART_InitTypeDef structure that contains
 
-   *         the configuration information for the specified USART peripheral.
 
-   * @retval None
 
-   */
 
- void USART_Init(USART_TypeDef* USARTx, USART_InitTypeDef* USART_InitStruct)
 
- {
 
-  8025c78:	4604      	mov	r4, r0
 
-   /* Write to USART CR3 */
 
-   USARTx->CR3 = (uint16_t)tmpreg;
 
- /*---------------------------- USART BRR Configuration -----------------------*/
 
-   /* Configure the USART Baud Rate */
 
-   RCC_GetClocksFreq(&RCC_ClocksStatus);
 
-  8025c7a:	4668      	mov	r0, sp
 
-  8025c7c:	f7ff fd02 	bl	8025684 <RCC_GetClocksFreq>
 
-   if ((USARTx == USART1) || (USARTx == USART6))
 
-  8025c80:	4b19      	ldr	r3, [pc, #100]	; (8025ce8 <USART_Init+0xb0>)
 
-  8025c82:	429c      	cmp	r4, r3
 
-  8025c84:	d003      	beq.n	8025c8e <USART_Init+0x56>
 
-  8025c86:	f503 6380 	add.w	r3, r3, #1024	; 0x400
 
-  8025c8a:	429c      	cmp	r4, r3
 
-  8025c8c:	d101      	bne.n	8025c92 <USART_Init+0x5a>
 
-   {
 
-     apbclock = RCC_ClocksStatus.PCLK2_Frequency;
 
-  8025c8e:	9b03      	ldr	r3, [sp, #12]
 
-  8025c90:	e000      	b.n	8025c94 <USART_Init+0x5c>
 
-   }
 
-   else
 
-   {
 
-     apbclock = RCC_ClocksStatus.PCLK1_Frequency;
 
-  8025c92:	9b02      	ldr	r3, [sp, #8]
 
-   }
 
-   
 
-   /* Determine the integer part */
 
-   if ((USARTx->CR1 & USART_CR1_OVER8) != 0)
 
-  8025c94:	89a2      	ldrh	r2, [r4, #12]
 
-  8025c96:	b212      	sxth	r2, r2
 
-  8025c98:	2a00      	cmp	r2, #0
 
-  8025c9a:	f04f 0119 	mov.w	r1, #25
 
-  8025c9e:	682a      	ldr	r2, [r5, #0]
 
-   {
 
-     /* Integer part computing in case Oversampling mode is 8 Samples */
 
-     integerdivider = ((25 * apbclock) / (2 * (USART_InitStruct->USART_BaudRate)));    
 
-  8025ca0:	fb01 f103 	mul.w	r1, r1, r3
 
-   {
 
-     apbclock = RCC_ClocksStatus.PCLK1_Frequency;
 
-   }
 
-   
 
-   /* Determine the integer part */
 
-   if ((USARTx->CR1 & USART_CR1_OVER8) != 0)
 
-  8025ca4:	da01      	bge.n	8025caa <USART_Init+0x72>
 
-   {
 
-     /* Integer part computing in case Oversampling mode is 8 Samples */
 
-     integerdivider = ((25 * apbclock) / (2 * (USART_InitStruct->USART_BaudRate)));    
 
-  8025ca6:	0052      	lsls	r2, r2, #1
 
-  8025ca8:	e000      	b.n	8025cac <USART_Init+0x74>
 
-   }
 
-   else /* if ((USARTx->CR1 & USART_CR1_OVER8) == 0) */
 
-   {
 
-     /* Integer part computing in case Oversampling mode is 16 Samples */
 
-     integerdivider = ((25 * apbclock) / (4 * (USART_InitStruct->USART_BaudRate)));    
 
-  8025caa:	0092      	lsls	r2, r2, #2
 
-   }
 
-   tmpreg = (integerdivider / 100) << 4;
 
-  8025cac:	2364      	movs	r3, #100	; 0x64
 
-     integerdivider = ((25 * apbclock) / (2 * (USART_InitStruct->USART_BaudRate)));    
 
-   }
 
-   else /* if ((USARTx->CR1 & USART_CR1_OVER8) == 0) */
 
-   {
 
-     /* Integer part computing in case Oversampling mode is 16 Samples */
 
-     integerdivider = ((25 * apbclock) / (4 * (USART_InitStruct->USART_BaudRate)));    
 
-  8025cae:	fbb1 f1f2 	udiv	r1, r1, r2
 
-   }
 
-   tmpreg = (integerdivider / 100) << 4;
 
-  8025cb2:	fbb1 f2f3 	udiv	r2, r1, r3
 
-  8025cb6:	0112      	lsls	r2, r2, #4
 
-   /* Determine the fractional part */
 
-   fractionaldivider = integerdivider - (100 * (tmpreg >> 4));
 
-  8025cb8:	0910      	lsrs	r0, r2, #4
 
-  8025cba:	fb03 1110 	mls	r1, r3, r0, r1
 
-   /* Implement the fractional part in the register */
 
-   if ((USARTx->CR1 & USART_CR1_OVER8) != 0)
 
-  8025cbe:	89a0      	ldrh	r0, [r4, #12]
 
-  8025cc0:	b200      	sxth	r0, r0
 
-  8025cc2:	2800      	cmp	r0, #0
 
-  8025cc4:	da06      	bge.n	8025cd4 <USART_Init+0x9c>
 
-   {
 
-     tmpreg |= ((((fractionaldivider * 8) + 50) / 100)) & ((uint8_t)0x07);
 
-  8025cc6:	00c9      	lsls	r1, r1, #3
 
-  8025cc8:	3132      	adds	r1, #50	; 0x32
 
-  8025cca:	fbb1 f3f3 	udiv	r3, r1, r3
 
-  8025cce:	f003 0307 	and.w	r3, r3, #7
 
-  8025cd2:	e005      	b.n	8025ce0 <USART_Init+0xa8>
 
-   }
 
-   else /* if ((USARTx->CR1 & USART_CR1_OVER8) == 0) */
 
-   {
 
-     tmpreg |= ((((fractionaldivider * 16) + 50) / 100)) & ((uint8_t)0x0F);
 
-  8025cd4:	0109      	lsls	r1, r1, #4
 
-  8025cd6:	3132      	adds	r1, #50	; 0x32
 
-  8025cd8:	fbb1 f3f3 	udiv	r3, r1, r3
 
-  8025cdc:	f003 030f 	and.w	r3, r3, #15
 
-  8025ce0:	431a      	orrs	r2, r3
 
-   }
 
-   
 
-   /* Write to USART BRR register */
 
-   USARTx->BRR = (uint16_t)tmpreg;
 
-  8025ce2:	8122      	strh	r2, [r4, #8]
 
- }
 
-  8025ce4:	b005      	add	sp, #20
 
-  8025ce6:	bd30      	pop	{r4, r5, pc}
 
-  8025ce8:	40011000 	.word	0x40011000
 
- 08025cec <USART_Cmd>:
 
-   assert_param(IS_FUNCTIONAL_STATE(NewState));
 
-   
 
-   if (NewState != DISABLE)
 
-   {
 
-     /* Enable the selected USART by setting the UE bit in the CR1 register */
 
-     USARTx->CR1 |= USART_CR1_UE;
 
-  8025cec:	8983      	ldrh	r3, [r0, #12]
 
- {
 
-   /* Check the parameters */
 
-   assert_param(IS_USART_ALL_PERIPH(USARTx));
 
-   assert_param(IS_FUNCTIONAL_STATE(NewState));
 
-   
 
-   if (NewState != DISABLE)
 
-  8025cee:	b119      	cbz	r1, 8025cf8 <USART_Cmd+0xc>
 
-   {
 
-     /* Enable the selected USART by setting the UE bit in the CR1 register */
 
-     USARTx->CR1 |= USART_CR1_UE;
 
-  8025cf0:	b29b      	uxth	r3, r3
 
-  8025cf2:	f443 5300 	orr.w	r3, r3, #8192	; 0x2000
 
-  8025cf6:	e003      	b.n	8025d00 <USART_Cmd+0x14>
 
-   }
 
-   else
 
-   {
 
-     /* Disable the selected USART by clearing the UE bit in the CR1 register */
 
-     USARTx->CR1 &= (uint16_t)~((uint16_t)USART_CR1_UE);
 
-  8025cf8:	f423 5300 	bic.w	r3, r3, #8192	; 0x2000
 
-  8025cfc:	041b      	lsls	r3, r3, #16
 
-  8025cfe:	0c1b      	lsrs	r3, r3, #16
 
-  8025d00:	8183      	strh	r3, [r0, #12]
 
-  8025d02:	4770      	bx	lr
 
- 08025d04 <USART_ITConfig>:
 
-   } 
 
-     
 
-   usartxbase = (uint32_t)USARTx;
 
-   /* Get the USART register index */
 
-   usartreg = (((uint8_t)USART_IT) >> 0x05);
 
-  8025d04:	f3c1 1342 	ubfx	r3, r1, #5, #3
 
-   * @param  NewState: new state of the specified USARTx interrupts.
 
-   *          This parameter can be: ENABLE or DISABLE.
 
-   * @retval None
 
-   */
 
- void USART_ITConfig(USART_TypeDef* USARTx, uint16_t USART_IT, FunctionalState NewState)
 
- {
 
-  8025d08:	b510      	push	{r4, lr}
 
-   /* Get the USART register index */
 
-   usartreg = (((uint8_t)USART_IT) >> 0x05);
 
-   /* Get the interrupt position */
 
-   itpos = USART_IT & IT_MASK;
 
-   itmask = (((uint32_t)0x01) << itpos);
 
-  8025d0a:	2401      	movs	r4, #1
 
-  8025d0c:	f001 011f 	and.w	r1, r1, #31
 
-     
 
-   if (usartreg == 0x01) /* The IT is in CR1 register */
 
-  8025d10:	42a3      	cmp	r3, r4
 
-   /* Get the USART register index */
 
-   usartreg = (((uint8_t)USART_IT) >> 0x05);
 
-   /* Get the interrupt position */
 
-   itpos = USART_IT & IT_MASK;
 
-   itmask = (((uint32_t)0x01) << itpos);
 
-  8025d12:	fa04 f101 	lsl.w	r1, r4, r1
 
-     
 
-   if (usartreg == 0x01) /* The IT is in CR1 register */
 
-  8025d16:	d101      	bne.n	8025d1c <USART_ITConfig+0x18>
 
-   {
 
-     usartxbase += 0x0C;
 
-  8025d18:	300c      	adds	r0, #12
 
-  8025d1a:	e004      	b.n	8025d26 <USART_ITConfig+0x22>
 
-   }
 
-   else if (usartreg == 0x02) /* The IT is in CR2 register */
 
-  8025d1c:	2b02      	cmp	r3, #2
 
-  8025d1e:	d101      	bne.n	8025d24 <USART_ITConfig+0x20>
 
-   {
 
-     usartxbase += 0x10;
 
-  8025d20:	3010      	adds	r0, #16
 
-  8025d22:	e000      	b.n	8025d26 <USART_ITConfig+0x22>
 
-   }
 
-   else /* The IT is in CR3 register */
 
-   {
 
-     usartxbase += 0x14; 
 
-  8025d24:	3014      	adds	r0, #20
 
-   }
 
-   if (NewState != DISABLE)
 
-   {
 
-     *(__IO uint32_t*)usartxbase  |= itmask;
 
-  8025d26:	6803      	ldr	r3, [r0, #0]
 
-   }
 
-   else /* The IT is in CR3 register */
 
-   {
 
-     usartxbase += 0x14; 
 
-   }
 
-   if (NewState != DISABLE)
 
-  8025d28:	b10a      	cbz	r2, 8025d2e <USART_ITConfig+0x2a>
 
-   {
 
-     *(__IO uint32_t*)usartxbase  |= itmask;
 
-  8025d2a:	4319      	orrs	r1, r3
 
-  8025d2c:	e001      	b.n	8025d32 <USART_ITConfig+0x2e>
 
-   }
 
-   else
 
-   {
 
-     *(__IO uint32_t*)usartxbase &= ~itmask;
 
-  8025d2e:	ea23 0101 	bic.w	r1, r3, r1
 
-  8025d32:	6001      	str	r1, [r0, #0]
 
-  8025d34:	bd10      	pop	{r4, pc}
 
- 08025d36 <USART_GetITStatus>:
 
-   *            @arg USART_IT_FE:   Framing Error interrupt
 
-   *            @arg USART_IT_PE:   Parity Error interrupt
 
-   * @retval The new state of USART_IT (SET or RESET).
 
-   */
 
- ITStatus USART_GetITStatus(USART_TypeDef* USARTx, uint16_t USART_IT)
 
- {
 
-  8025d36:	b510      	push	{r4, lr}
 
-   {
 
-     assert_param(IS_USART_1236_PERIPH(USARTx));
 
-   } 
 
-     
 
-   /* Get the USART register index */
 
-   usartreg = (((uint8_t)USART_IT) >> 0x05);
 
-  8025d38:	f3c1 1442 	ubfx	r4, r1, #5, #3
 
-   /* Get the interrupt position */
 
-   itmask = USART_IT & IT_MASK;
 
-   itmask = (uint32_t)0x01 << itmask;
 
-  8025d3c:	2201      	movs	r2, #1
 
-  8025d3e:	f001 031f 	and.w	r3, r1, #31
 
-   
 
-   if (usartreg == 0x01) /* The IT  is in CR1 register */
 
-  8025d42:	2c01      	cmp	r4, #1
 
-     
 
-   /* Get the USART register index */
 
-   usartreg = (((uint8_t)USART_IT) >> 0x05);
 
-   /* Get the interrupt position */
 
-   itmask = USART_IT & IT_MASK;
 
-   itmask = (uint32_t)0x01 << itmask;
 
-  8025d44:	fa02 f203 	lsl.w	r2, r2, r3
 
-   
 
-   if (usartreg == 0x01) /* The IT  is in CR1 register */
 
-  8025d48:	d101      	bne.n	8025d4e <USART_GetITStatus+0x18>
 
-   {
 
-     itmask &= USARTx->CR1;
 
-  8025d4a:	8983      	ldrh	r3, [r0, #12]
 
-  8025d4c:	e003      	b.n	8025d56 <USART_GetITStatus+0x20>
 
-   }
 
-   else if (usartreg == 0x02) /* The IT  is in CR2 register */
 
-  8025d4e:	2c02      	cmp	r4, #2
 
-   {
 
-     itmask &= USARTx->CR2;
 
-  8025d50:	bf0c      	ite	eq
 
-  8025d52:	8a03      	ldrheq	r3, [r0, #16]
 
-   }
 
-   else /* The IT  is in CR3 register */
 
-   {
 
-     itmask &= USARTx->CR3;
 
-  8025d54:	8a83      	ldrhne	r3, [r0, #20]
 
-  8025d56:	b29b      	uxth	r3, r3
 
-  8025d58:	4013      	ands	r3, r2
 
-   }
 
-   
 
-   bitpos = USART_IT >> 0x08;
 
-   bitpos = (uint32_t)0x01 << bitpos;
 
-   bitpos &= USARTx->SR;
 
-  8025d5a:	8802      	ldrh	r2, [r0, #0]
 
-  8025d5c:	b292      	uxth	r2, r2
 
-   if ((itmask != (uint16_t)RESET)&&(bitpos != (uint16_t)RESET))
 
-  8025d5e:	b143      	cbz	r3, 8025d72 <USART_GetITStatus+0x3c>
 
-   {
 
-     itmask &= USARTx->CR3;
 
-   }
 
-   
 
-   bitpos = USART_IT >> 0x08;
 
-   bitpos = (uint32_t)0x01 << bitpos;
 
-  8025d60:	2301      	movs	r3, #1
 
-  8025d62:	0a09      	lsrs	r1, r1, #8
 
-  8025d64:	fa03 f101 	lsl.w	r1, r3, r1
 
-   bitpos &= USARTx->SR;
 
-   if ((itmask != (uint16_t)RESET)&&(bitpos != (uint16_t)RESET))
 
-  8025d68:	4211      	tst	r1, r2
 
-   {
 
-     bitstatus = SET;
 
-  8025d6a:	bf0c      	ite	eq
 
-  8025d6c:	2000      	moveq	r0, #0
 
-  8025d6e:	2001      	movne	r0, #1
 
-  8025d70:	bd10      	pop	{r4, pc}
 
-   }
 
-   else
 
-   {
 
-     bitstatus = RESET;
 
-  8025d72:	4618      	mov	r0, r3
 
-   }
 
-   
 
-   return bitstatus;  
 
- }
 
-  8025d74:	bd10      	pop	{r4, pc}
 
- 08025d76 <USART_ClearITPendingBit>:
 
-   {
 
-     assert_param(IS_USART_1236_PERIPH(USARTx));
 
-   } 
 
-     
 
-   bitpos = USART_IT >> 0x08;
 
-   itmask = ((uint16_t)0x01 << (uint16_t)bitpos);
 
-  8025d76:	0a09      	lsrs	r1, r1, #8
 
-  8025d78:	2301      	movs	r3, #1
 
-  8025d7a:	fa03 f301 	lsl.w	r3, r3, r1
 
-   USARTx->SR = (uint16_t)~itmask;
 
-  8025d7e:	43db      	mvns	r3, r3
 
-  8025d80:	8003      	strh	r3, [r0, #0]
 
-  8025d82:	4770      	bx	lr
 
- 08025d84 <SystemInit>:
 
-     SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2));  /* set CP10 and CP11 Full Access */
 
-   #endif
 
-   /* Reset the RCC clock configuration to the default reset state ------------*/
 
-   /* Set HSION bit */
 
-   RCC->CR |= (uint32_t)0x00000001;
 
-  8025d84:	4b35      	ldr	r3, [pc, #212]	; (8025e5c <SystemInit+0xd8>)
 
-  8025d86:	681a      	ldr	r2, [r3, #0]
 
-  8025d88:	f042 0201 	orr.w	r2, r2, #1
 
-  8025d8c:	601a      	str	r2, [r3, #0]
 
-   /* Reset CFGR register */
 
-   RCC->CFGR = 0x00000000;
 
-  8025d8e:	2200      	movs	r2, #0
 
-  8025d90:	609a      	str	r2, [r3, #8]
 
-   /* Reset HSEON, CSSON and PLLON bits */
 
-   RCC->CR &= (uint32_t)0xFEF6FFFF;
 
-  8025d92:	6819      	ldr	r1, [r3, #0]
 
-  8025d94:	f021 7184 	bic.w	r1, r1, #17301504	; 0x1080000
 
-  8025d98:	f421 3180 	bic.w	r1, r1, #65536	; 0x10000
 
-  8025d9c:	6019      	str	r1, [r3, #0]
 
-   /* Reset PLLCFGR register */
 
-   RCC->PLLCFGR = 0x24003010;
 
-  8025d9e:	4930      	ldr	r1, [pc, #192]	; (8025e60 <SystemInit+0xdc>)
 
-  8025da0:	6059      	str	r1, [r3, #4]
 
-   /* Reset HSEBYP bit */
 
-   RCC->CR &= (uint32_t)0xFFFBFFFF;
 
-  8025da2:	6819      	ldr	r1, [r3, #0]
 
-   *         SystemFrequency variable.
 
-   * @param  None
 
-   * @retval None
 
-   */
 
- void SystemInit(void)
 
- {
 
-  8025da4:	b082      	sub	sp, #8
 
-   /* Reset PLLCFGR register */
 
-   RCC->PLLCFGR = 0x24003010;
 
-   /* Reset HSEBYP bit */
 
-   RCC->CR &= (uint32_t)0xFFFBFFFF;
 
-  8025da6:	f421 2180 	bic.w	r1, r1, #262144	; 0x40000
 
-  8025daa:	6019      	str	r1, [r3, #0]
 
-   /* Disable all interrupts */
 
-   RCC->CIR = 0x00000000;
 
-  8025dac:	60da      	str	r2, [r3, #12]
 
- static void SetSysClock(void)
 
- {
 
- /******************************************************************************/
 
- /*            PLL (clocked by HSE) used as System clock source                */
 
- /******************************************************************************/
 
-   __IO uint32_t StartUpCounter = 0, HSEStatus = 0;
 
-  8025dae:	9200      	str	r2, [sp, #0]
 
-  8025db0:	9201      	str	r2, [sp, #4]
 
-   
 
-   /* Enable HSE */
 
-   RCC->CR |= ((uint32_t)RCC_CR_HSEON);
 
-  8025db2:	681a      	ldr	r2, [r3, #0]
 
-  8025db4:	f442 3280 	orr.w	r2, r2, #65536	; 0x10000
 
-  8025db8:	601a      	str	r2, [r3, #0]
 
-  
 
-   /* Wait till HSE is ready and if Time out is reached exit */
 
-   do
 
-   {
 
-     HSEStatus = RCC->CR & RCC_CR_HSERDY;
 
-  8025dba:	681a      	ldr	r2, [r3, #0]
 
-  8025dbc:	f402 3200 	and.w	r2, r2, #131072	; 0x20000
 
-  8025dc0:	9201      	str	r2, [sp, #4]
 
-     StartUpCounter++;
 
-  8025dc2:	9a00      	ldr	r2, [sp, #0]
 
-  8025dc4:	3201      	adds	r2, #1
 
-  8025dc6:	9200      	str	r2, [sp, #0]
 
-   } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT));
 
-  8025dc8:	9a01      	ldr	r2, [sp, #4]
 
-  8025dca:	b91a      	cbnz	r2, 8025dd4 <SystemInit+0x50>
 
-  8025dcc:	9a00      	ldr	r2, [sp, #0]
 
-  8025dce:	f5b2 6fa0 	cmp.w	r2, #1280	; 0x500
 
-  8025dd2:	d1f2      	bne.n	8025dba <SystemInit+0x36>
 
-   if ((RCC->CR & RCC_CR_HSERDY) != RESET)
 
-  8025dd4:	4b21      	ldr	r3, [pc, #132]	; (8025e5c <SystemInit+0xd8>)
 
-  8025dd6:	681b      	ldr	r3, [r3, #0]
 
-  8025dd8:	f413 3300 	ands.w	r3, r3, #131072	; 0x20000
 
-   {
 
-     HSEStatus = (uint32_t)0x01;
 
-  8025ddc:	bf18      	it	ne
 
-  8025dde:	2301      	movne	r3, #1
 
-   }
 
-   else
 
-   {
 
-     HSEStatus = (uint32_t)0x00;
 
-  8025de0:	9301      	str	r3, [sp, #4]
 
-   }
 
-   if (HSEStatus == (uint32_t)0x01)
 
-  8025de2:	9b01      	ldr	r3, [sp, #4]
 
-  8025de4:	2b01      	cmp	r3, #1
 
-  8025de6:	d133      	bne.n	8025e50 <SystemInit+0xcc>
 
-   {
 
-     /* Select regulator voltage output Scale 1 mode, System frequency up to 168 MHz */
 
-     RCC->APB1ENR |= RCC_APB1ENR_PWREN;
 
-  8025de8:	4b1c      	ldr	r3, [pc, #112]	; (8025e5c <SystemInit+0xd8>)
 
-  8025dea:	6c1a      	ldr	r2, [r3, #64]	; 0x40
 
-  8025dec:	f042 5280 	orr.w	r2, r2, #268435456	; 0x10000000
 
-  8025df0:	641a      	str	r2, [r3, #64]	; 0x40
 
-     PWR->CR |= PWR_CR_VOS;
 
-  8025df2:	4a1c      	ldr	r2, [pc, #112]	; (8025e64 <SystemInit+0xe0>)
 
-  8025df4:	6811      	ldr	r1, [r2, #0]
 
-  8025df6:	f441 4180 	orr.w	r1, r1, #16384	; 0x4000
 
-  8025dfa:	6011      	str	r1, [r2, #0]
 
-     /* HCLK = SYSCLK / 1*/
 
-     RCC->CFGR |= RCC_CFGR_HPRE_DIV1;
 
-  8025dfc:	689a      	ldr	r2, [r3, #8]
 
-  8025dfe:	609a      	str	r2, [r3, #8]
 
-       
 
-     /* PCLK2 = HCLK / 2*/
 
-     RCC->CFGR |= RCC_CFGR_PPRE2_DIV2;
 
-  8025e00:	689a      	ldr	r2, [r3, #8]
 
-  8025e02:	f442 4200 	orr.w	r2, r2, #32768	; 0x8000
 
-  8025e06:	609a      	str	r2, [r3, #8]
 
-     
 
-     /* PCLK1 = HCLK / 4*/
 
-     RCC->CFGR |= RCC_CFGR_PPRE1_DIV4;
 
-  8025e08:	689a      	ldr	r2, [r3, #8]
 
-  8025e0a:	f442 52a0 	orr.w	r2, r2, #5120	; 0x1400
 
-  8025e0e:	609a      	str	r2, [r3, #8]
 
-     /* Configure the main PLL */
 
-     RCC->PLLCFGR = PLL_M | (PLL_N << 6) | (((PLL_P >> 1) -1) << 16) |
 
-  8025e10:	4a15      	ldr	r2, [pc, #84]	; (8025e68 <SystemInit+0xe4>)
 
-  8025e12:	605a      	str	r2, [r3, #4]
 
-                    (RCC_PLLCFGR_PLLSRC_HSE) | (PLL_Q << 24);
 
-     /* Enable the main PLL */
 
-     RCC->CR |= RCC_CR_PLLON;
 
-  8025e14:	681a      	ldr	r2, [r3, #0]
 
-  8025e16:	f042 7280 	orr.w	r2, r2, #16777216	; 0x1000000
 
-  8025e1a:	601a      	str	r2, [r3, #0]
 
-     /* Wait till the main PLL is ready */
 
-     while((RCC->CR & RCC_CR_PLLRDY) == 0)
 
-  8025e1c:	6819      	ldr	r1, [r3, #0]
 
-  8025e1e:	4a0f      	ldr	r2, [pc, #60]	; (8025e5c <SystemInit+0xd8>)
 
-  8025e20:	0189      	lsls	r1, r1, #6
 
-  8025e22:	d5fb      	bpl.n	8025e1c <SystemInit+0x98>
 
-     {
 
-     }
 
-    
 
-     /* Configure Flash prefetch, Instruction cache, Data cache and wait state */
 
-     FLASH->ACR = FLASH_ACR_ICEN |FLASH_ACR_DCEN |FLASH_ACR_LATENCY_5WS;
 
-  8025e24:	4b11      	ldr	r3, [pc, #68]	; (8025e6c <SystemInit+0xe8>)
 
-  8025e26:	f240 6105 	movw	r1, #1541	; 0x605
 
-  8025e2a:	6019      	str	r1, [r3, #0]
 
-     /* Select the main PLL as system clock source */
 
-     RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW));
 
-  8025e2c:	6893      	ldr	r3, [r2, #8]
 
-  8025e2e:	f023 0303 	bic.w	r3, r3, #3
 
-  8025e32:	6093      	str	r3, [r2, #8]
 
-     RCC->CFGR |= RCC_CFGR_SW_PLL;
 
-  8025e34:	6893      	ldr	r3, [r2, #8]
 
-  8025e36:	f043 0302 	orr.w	r3, r3, #2
 
-  8025e3a:	6093      	str	r3, [r2, #8]
 
-     /* Wait till the main PLL is used as system clock source */
 
-     while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS ) != RCC_CFGR_SWS_PLL);
 
-  8025e3c:	6891      	ldr	r1, [r2, #8]
 
-  8025e3e:	4b07      	ldr	r3, [pc, #28]	; (8025e5c <SystemInit+0xd8>)
 
-  8025e40:	f001 010c 	and.w	r1, r1, #12
 
-  8025e44:	2908      	cmp	r1, #8
 
-  8025e46:	d1f9      	bne.n	8025e3c <SystemInit+0xb8>
 
-     {
 
-     }
 
- 	
 
- 	/* Добавил переход на внутренний генератор в случае отказа HSE */ 
 
- 	RCC->CR|=RCC_CR_CSSON; 
 
-  8025e48:	681a      	ldr	r2, [r3, #0]
 
-  8025e4a:	f442 2200 	orr.w	r2, r2, #524288	; 0x80000
 
-  8025e4e:	601a      	str	r2, [r3, #0]
 
-   /* Configure the Vector Table location add offset address ------------------*/
 
- #ifdef VECT_TAB_SRAM
 
-   SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */
 
- #else
 
-   SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH */
 
-  8025e50:	4b07      	ldr	r3, [pc, #28]	; (8025e70 <SystemInit+0xec>)
 
-  8025e52:	f04f 6200 	mov.w	r2, #134217728	; 0x8000000
 
-  8025e56:	609a      	str	r2, [r3, #8]
 
- #endif
 
- }
 
-  8025e58:	b002      	add	sp, #8
 
-  8025e5a:	4770      	bx	lr
 
-  8025e5c:	40023800 	.word	0x40023800
 
-  8025e60:	24003010 	.word	0x24003010
 
-  8025e64:	40007000 	.word	0x40007000
 
-  8025e68:	07405419 	.word	0x07405419
 
-  8025e6c:	40023c00 	.word	0x40023c00
 
-  8025e70:	e000ed00 	.word	0xe000ed00
 
- 08025e74 <gpio_hw_config_pin>:
 
- 	GPIO_TABLE(EXPAND_AS_DEFS)
 
- };
 
- void gpio_hw_config_pin(GPIO_TypeDef *port, uint8_t pin, uint16_t conf) {
 
- 	uint8_t shift;
 
- 	shift = pin * 2;
 
-  8025e74:	004b      	lsls	r3, r1, #1
 
- 	port->MODER &= ~(GPIO_MODER_MASK << shift);
 
-  8025e76:	b2db      	uxtb	r3, r3
 
- gpio_pindef_t gpio_pins[] = {
 
- 	GPIO_TABLE(EXPAND_AS_DEFS)
 
- };
 
- void gpio_hw_config_pin(GPIO_TypeDef *port, uint8_t pin, uint16_t conf) {
 
-  8025e78:	b570      	push	{r4, r5, r6, lr}
 
- 	uint8_t shift;
 
- 	shift = pin * 2;
 
- 	port->MODER &= ~(GPIO_MODER_MASK << shift);
 
-  8025e7a:	2403      	movs	r4, #3
 
-  8025e7c:	6805      	ldr	r5, [r0, #0]
 
-  8025e7e:	fa04 f403 	lsl.w	r4, r4, r3
 
-  8025e82:	43e4      	mvns	r4, r4
 
-  8025e84:	4025      	ands	r5, r4
 
-  8025e86:	6005      	str	r5, [r0, #0]
 
- 	port->MODER |= (uint32_t)((conf >> GPIO_MODE_CFG_SHIFT) & GPIO_MODER_MASK) << shift;
 
-  8025e88:	6806      	ldr	r6, [r0, #0]
 
-  8025e8a:	f002 0503 	and.w	r5, r2, #3
 
-  8025e8e:	fa05 f503 	lsl.w	r5, r5, r3
 
-  8025e92:	4335      	orrs	r5, r6
 
-  8025e94:	6005      	str	r5, [r0, #0]
 
- 	port->OTYPER &= ~(GPIO_TYPER_MASK << pin);
 
-  8025e96:	6846      	ldr	r6, [r0, #4]
 
-  8025e98:	2501      	movs	r5, #1
 
-  8025e9a:	fa05 f501 	lsl.w	r5, r5, r1
 
-  8025e9e:	ea26 0505 	bic.w	r5, r6, r5
 
-  8025ea2:	6045      	str	r5, [r0, #4]
 
- 	port->OTYPER |= (uint32_t)((conf >> GPIO_TYPE_CFG_SHIFT) & GPIO_TYPER_MASK) << pin;
 
-  8025ea4:	6845      	ldr	r5, [r0, #4]
 
-  8025ea6:	f3c2 0680 	ubfx	r6, r2, #2, #1
 
-  8025eaa:	fa06 f101 	lsl.w	r1, r6, r1
 
-  8025eae:	4329      	orrs	r1, r5
 
-  8025eb0:	6041      	str	r1, [r0, #4]
 
- 	port->OSPEEDR &= ~(GPIO_SPEEDR_MASK << shift);
 
-  8025eb2:	6881      	ldr	r1, [r0, #8]
 
-  8025eb4:	4021      	ands	r1, r4
 
-  8025eb6:	6081      	str	r1, [r0, #8]
 
- 	port->OSPEEDR |= (uint32_t)((conf >> GPIO_SPEED_CFG_SHIFT) & GPIO_SPEEDR_MASK) << shift;
 
-  8025eb8:	6885      	ldr	r5, [r0, #8]
 
-  8025eba:	f3c2 1101 	ubfx	r1, r2, #4, #2
 
-  8025ebe:	fa01 f103 	lsl.w	r1, r1, r3
 
-  8025ec2:	4329      	orrs	r1, r5
 
-  8025ec4:	6081      	str	r1, [r0, #8]
 
- 	port->PUPDR &= ~(GPIO_PUPDR_MASK << shift);
 
-  8025ec6:	68c1      	ldr	r1, [r0, #12]
 
-  8025ec8:	400c      	ands	r4, r1
 
-  8025eca:	60c4      	str	r4, [r0, #12]
 
- 	port->PUPDR |= (uint32_t)((conf >> GPIO_PUPD_CFG_SHIFT) & GPIO_PUPDR_MASK) << shift;
 
-  8025ecc:	68c1      	ldr	r1, [r0, #12]
 
-  8025ece:	f3c2 1281 	ubfx	r2, r2, #6, #2
 
-  8025ed2:	fa02 f303 	lsl.w	r3, r2, r3
 
-  8025ed6:	430b      	orrs	r3, r1
 
-  8025ed8:	60c3      	str	r3, [r0, #12]
 
-  8025eda:	bd70      	pop	{r4, r5, r6, pc}
 
- 08025edc <gpio_connect_af>:
 
- }
 
- void gpio_connect_af(gpio_t id, uint8_t af_n) {
 
-  8025edc:	b510      	push	{r4, lr}
 
- 	gpio_pindef_t *pin = &gpio_pins[id];
 
-  8025ede:	4b13      	ldr	r3, [pc, #76]	; (8025f2c <gpio_connect_af+0x50>)
 
-  8025ee0:	eb03 02c0 	add.w	r2, r3, r0, lsl #3
 
- 	uint8_t shift;
 
- 	if (pin->pin < 8) {
 
- 		shift = pin->pin * 4;
 
- 		pin->port->AFR[0] &= ~((uint32_t)GPIO_AFR_MASK << shift);
 
-  8025ee4:	f853 3030 	ldr.w	r3, [r3, r0, lsl #3]
 
- }
 
- void gpio_connect_af(gpio_t id, uint8_t af_n) {
 
- 	gpio_pindef_t *pin = &gpio_pins[id];
 
- 	uint8_t shift;
 
- 	if (pin->pin < 8) {
 
-  8025ee8:	7912      	ldrb	r2, [r2, #4]
 
-  8025eea:	2a07      	cmp	r2, #7
 
-  8025eec:	d80e      	bhi.n	8025f0c <gpio_connect_af+0x30>
 
- 		shift = pin->pin * 4;
 
-  8025eee:	0092      	lsls	r2, r2, #2
 
- 		pin->port->AFR[0] &= ~((uint32_t)GPIO_AFR_MASK << shift);
 
-  8025ef0:	6a1c      	ldr	r4, [r3, #32]
 
-  8025ef2:	b2d2      	uxtb	r2, r2
 
-  8025ef4:	200f      	movs	r0, #15
 
-  8025ef6:	fa00 f002 	lsl.w	r0, r0, r2
 
-  8025efa:	ea24 0000 	bic.w	r0, r4, r0
 
-  8025efe:	6218      	str	r0, [r3, #32]
 
- 		pin->port->AFR[0] |= af_n << shift;
 
-  8025f00:	6a18      	ldr	r0, [r3, #32]
 
-  8025f02:	fa01 f202 	lsl.w	r2, r1, r2
 
-  8025f06:	4302      	orrs	r2, r0
 
-  8025f08:	621a      	str	r2, [r3, #32]
 
-  8025f0a:	bd10      	pop	{r4, pc}
 
- 	}
 
- 	else {
 
- 		shift = (pin->pin - 8) * 4;
 
-  8025f0c:	3a08      	subs	r2, #8
 
-  8025f0e:	0092      	lsls	r2, r2, #2
 
- 		pin->port->AFR[1] &= ~((uint32_t)GPIO_AFR_MASK << shift);
 
-  8025f10:	6a5c      	ldr	r4, [r3, #36]	; 0x24
 
-  8025f12:	b2d2      	uxtb	r2, r2
 
-  8025f14:	200f      	movs	r0, #15
 
-  8025f16:	fa00 f002 	lsl.w	r0, r0, r2
 
-  8025f1a:	ea24 0000 	bic.w	r0, r4, r0
 
-  8025f1e:	6258      	str	r0, [r3, #36]	; 0x24
 
- 		pin->port->AFR[1] |= af_n << shift;
 
-  8025f20:	6a58      	ldr	r0, [r3, #36]	; 0x24
 
-  8025f22:	fa01 f202 	lsl.w	r2, r1, r2
 
-  8025f26:	4302      	orrs	r2, r0
 
-  8025f28:	625a      	str	r2, [r3, #36]	; 0x24
 
-  8025f2a:	bd10      	pop	{r4, pc}
 
-  8025f2c:	200005c0 	.word	0x200005c0
 
- 08025f30 <gpio_set>:
 
- 		}
 
- 	}
 
- }
 
- void gpio_set(gpio_t pin, bool value) {
 
- 	if (gpio_pins[pin].flags & GPIO_INV)
 
-  8025f30:	4b0e      	ldr	r3, [pc, #56]	; (8025f6c <gpio_set+0x3c>)
 
-  8025f32:	eb03 02c0 	add.w	r2, r3, r0, lsl #3
 
-  8025f36:	88d2      	ldrh	r2, [r2, #6]
 
-  8025f38:	f002 0210 	and.w	r2, r2, #16
 
-  8025f3c:	b292      	uxth	r2, r2
 
-  8025f3e:	b10a      	cbz	r2, 8025f44 <gpio_set+0x14>
 
- 		value = !value;
 
-  8025f40:	f081 0101 	eor.w	r1, r1, #1
 
-  8025f44:	00c2      	lsls	r2, r0, #3
 
- 	if (value)
 
-  8025f46:	b141      	cbz	r1, 8025f5a <gpio_set+0x2a>
 
- 		gpio_pins[pin].port->BSRRL = 1 << gpio_pins[pin].pin;
 
-  8025f48:	f853 1030 	ldr.w	r1, [r3, r0, lsl #3]
 
-  8025f4c:	189b      	adds	r3, r3, r2
 
-  8025f4e:	2201      	movs	r2, #1
 
-  8025f50:	791b      	ldrb	r3, [r3, #4]
 
-  8025f52:	fa02 f303 	lsl.w	r3, r2, r3
 
-  8025f56:	830b      	strh	r3, [r1, #24]
 
-  8025f58:	4770      	bx	lr
 
- 	else
 
- 		gpio_pins[pin].port->BSRRH = 1 << gpio_pins[pin].pin;
 
-  8025f5a:	f853 1030 	ldr.w	r1, [r3, r0, lsl #3]
 
-  8025f5e:	189b      	adds	r3, r3, r2
 
-  8025f60:	2201      	movs	r2, #1
 
-  8025f62:	791b      	ldrb	r3, [r3, #4]
 
-  8025f64:	fa02 f303 	lsl.w	r3, r2, r3
 
-  8025f68:	834b      	strh	r3, [r1, #26]
 
-  8025f6a:	4770      	bx	lr
 
-  8025f6c:	200005c0 	.word	0x200005c0
 
- 08025f70 <gpio_set_config>:
 
- }
 
- /*
 
-  * TODO add analog flag and setup ADC pins in a proper way
 
-  */
 
- static void gpio_set_config(gpio_t id) {
 
-  8025f70:	b570      	push	{r4, r5, r6, lr}
 
- 	gpio_pindef_t *pin = &gpio_pins[id];
 
-  8025f72:	4e1e      	ldr	r6, [pc, #120]	; (8025fec <gpio_set_config+0x7c>)
 
-  8025f74:	eb06 05c0 	add.w	r5, r6, r0, lsl #3
 
- }
 
- /*
 
-  * TODO add analog flag and setup ADC pins in a proper way
 
-  */
 
- static void gpio_set_config(gpio_t id) {
 
-  8025f78:	4604      	mov	r4, r0
 
- 	gpio_pindef_t *pin = &gpio_pins[id];
 
- 	if (pin->flags & GPIO_AF) {
 
-  8025f7a:	88e9      	ldrh	r1, [r5, #6]
 
-  8025f7c:	f401 7300 	and.w	r3, r1, #512	; 0x200
 
-  8025f80:	b29b      	uxth	r3, r3
 
-  8025f82:	b13b      	cbz	r3, 8025f94 <gpio_set_config+0x24>
 
- 		uint8_t af_n = (uint8_t)(pin->flags >> _GPIO_AF_SHIFT);
 
- 		gpio_connect_af(id, af_n);
 
-  8025f84:	0a89      	lsrs	r1, r1, #10
 
-  8025f86:	f7ff ffa9 	bl	8025edc <gpio_connect_af>
 
- 		gpio_hw_config_pin(pin->port, pin->pin, GPIO_MODE_AF_CFG | 
 
-  8025f8a:	f856 0034 	ldr.w	r0, [r6, r4, lsl #3]
 
-  8025f8e:	7929      	ldrb	r1, [r5, #4]
 
-  8025f90:	2232      	movs	r2, #50	; 0x32
 
-  8025f92:	e005      	b.n	8025fa0 <gpio_set_config+0x30>
 
- 				GPIO_SPEED_HIGH_CFG);
 
- 	}
 
- 	else if (pin->flags & GPIO_IN)
 
-  8025f94:	07cb      	lsls	r3, r1, #31
 
-  8025f96:	d507      	bpl.n	8025fa8 <gpio_set_config+0x38>
 
- 		gpio_hw_config_pin(pin->port, pin->pin, GPIO_MODE_IN_CFG | 
 
-  8025f98:	f856 0030 	ldr.w	r0, [r6, r0, lsl #3]
 
-  8025f9c:	7929      	ldrb	r1, [r5, #4]
 
-  8025f9e:	2230      	movs	r2, #48	; 0x30
 
- 				((pin->flags & GPIO_OD) ? 
 
- 				 GPIO_TYPE_OD_CFG : GPIO_TYPE_PP_CFG) |
 
- 				GPIO_SPEED_HIGH_CFG);
 
- 		gpio_set(id, pin->flags & GPIO_SET);
 
- 	}
 
- }
 
-  8025fa0:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
 
- 		gpio_connect_af(id, af_n);
 
- 		gpio_hw_config_pin(pin->port, pin->pin, GPIO_MODE_AF_CFG | 
 
- 				GPIO_SPEED_HIGH_CFG);
 
- 	}
 
- 	else if (pin->flags & GPIO_IN)
 
- 		gpio_hw_config_pin(pin->port, pin->pin, GPIO_MODE_IN_CFG | 
 
-  8025fa4:	f7ff bf66 	b.w	8025e74 <gpio_hw_config_pin>
 
- 				GPIO_SPEED_HIGH_CFG);
 
- 	else if (pin->flags & GPIO_IN_PU) {
 
-  8025fa8:	f001 0302 	and.w	r3, r1, #2
 
-  8025fac:	b29b      	uxth	r3, r3
 
-  8025fae:	b123      	cbz	r3, 8025fba <gpio_set_config+0x4a>
 
- 		gpio_hw_config_pin(pin->port, pin->pin, GPIO_MODE_IN_CFG | GPIO_PU_CFG |
 
-  8025fb0:	f856 0030 	ldr.w	r0, [r6, r0, lsl #3]
 
-  8025fb4:	7929      	ldrb	r1, [r5, #4]
 
-  8025fb6:	2270      	movs	r2, #112	; 0x70
 
-  8025fb8:	e00d      	b.n	8025fd6 <gpio_set_config+0x66>
 
- 				GPIO_SPEED_HIGH_CFG);
 
- 		gpio_set(id, pin->flags & GPIO_SET);
 
- 	}
 
- 	else if (pin->flags & GPIO_OUT) {
 
-  8025fba:	f001 0304 	and.w	r3, r1, #4
 
-  8025fbe:	b29b      	uxth	r3, r3
 
-  8025fc0:	b19b      	cbz	r3, 8025fea <gpio_set_config+0x7a>
 
- 		gpio_hw_config_pin(pin->port, pin->pin, GPIO_MODE_OUT_CFG |
 
-  8025fc2:	f001 0120 	and.w	r1, r1, #32
 
-  8025fc6:	b28a      	uxth	r2, r1
 
-  8025fc8:	f856 0030 	ldr.w	r0, [r6, r0, lsl #3]
 
-  8025fcc:	7929      	ldrb	r1, [r5, #4]
 
-  8025fce:	2a00      	cmp	r2, #0
 
-  8025fd0:	bf0c      	ite	eq
 
-  8025fd2:	2231      	moveq	r2, #49	; 0x31
 
-  8025fd4:	2235      	movne	r2, #53	; 0x35
 
-  8025fd6:	f7ff ff4d 	bl	8025e74 <gpio_hw_config_pin>
 
- 				((pin->flags & GPIO_OD) ? 
 
- 				 GPIO_TYPE_OD_CFG : GPIO_TYPE_PP_CFG) |
 
- 				GPIO_SPEED_HIGH_CFG);
 
- 		gpio_set(id, pin->flags & GPIO_SET);
 
-  8025fda:	88e9      	ldrh	r1, [r5, #6]
 
-  8025fdc:	4620      	mov	r0, r4
 
-  8025fde:	f3c1 01c0 	ubfx	r1, r1, #3, #1
 
- 	}
 
- }
 
-  8025fe2:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
 
- 	else if (pin->flags & GPIO_OUT) {
 
- 		gpio_hw_config_pin(pin->port, pin->pin, GPIO_MODE_OUT_CFG |
 
- 				((pin->flags & GPIO_OD) ? 
 
- 				 GPIO_TYPE_OD_CFG : GPIO_TYPE_PP_CFG) |
 
- 				GPIO_SPEED_HIGH_CFG);
 
- 		gpio_set(id, pin->flags & GPIO_SET);
 
-  8025fe6:	f7ff bfa3 	b.w	8025f30 <gpio_set>
 
-  8025fea:	bd70      	pop	{r4, r5, r6, pc}
 
-  8025fec:	200005c0 	.word	0x200005c0
 
- 08025ff0 <gpio_init>:
 
- 	}
 
- }
 
- void gpio_init(void) {
 
-  8025ff0:	b538      	push	{r3, r4, r5, lr}
 
- 	uint32_t i;
 
- 	GPIO_DeInit(GPIOA);
 
-  8025ff2:	4812      	ldr	r0, [pc, #72]	; (802603c <gpio_init+0x4c>)
 
- 				GPIO_SPEED_HIGH_CFG);
 
- 		gpio_set(id, pin->flags & GPIO_SET);
 
- 	}
 
- }
 
- void gpio_init(void) {
 
-  8025ff4:	4d12      	ldr	r5, [pc, #72]	; (8026040 <gpio_init+0x50>)
 
- 	uint32_t i;
 
- 	GPIO_DeInit(GPIOA);
 
-  8025ff6:	f7ff fa5d 	bl	80254b4 <GPIO_DeInit>
 
- 	GPIO_DeInit(GPIOB);
 
-  8025ffa:	4812      	ldr	r0, [pc, #72]	; (8026044 <gpio_init+0x54>)
 
-  8025ffc:	f7ff fa5a 	bl	80254b4 <GPIO_DeInit>
 
- 	GPIO_DeInit(GPIOC);
 
-  8026000:	4811      	ldr	r0, [pc, #68]	; (8026048 <gpio_init+0x58>)
 
-  8026002:	f7ff fa57 	bl	80254b4 <GPIO_DeInit>
 
- 	GPIO_DeInit(GPIOD);
 
-  8026006:	4811      	ldr	r0, [pc, #68]	; (802604c <gpio_init+0x5c>)
 
-  8026008:	f7ff fa54 	bl	80254b4 <GPIO_DeInit>
 
- 	GPIO_DeInit(GPIOE);
 
-  802600c:	4810      	ldr	r0, [pc, #64]	; (8026050 <gpio_init+0x60>)
 
-  802600e:	f7ff fa51 	bl	80254b4 <GPIO_DeInit>
 
- 	// configure clocks
 
- 	RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN | RCC_AHB1ENR_GPIOBEN |
 
-  8026012:	4b10      	ldr	r3, [pc, #64]	; (8026054 <gpio_init+0x64>)
 
-  8026014:	6b1a      	ldr	r2, [r3, #48]	; 0x30
 
-  8026016:	f042 021f 	orr.w	r2, r2, #31
 
-  802601a:	631a      	str	r2, [r3, #48]	; 0x30
 
- 			RCC_AHB1ENR_GPIOCEN | RCC_AHB1ENR_GPIODEN |
 
- 			RCC_AHB1ENR_GPIOEEN;
 
- 	// configure gpios
 
- 	for (i = 0; i < GPIO_TOTAL_COUNT; i++) {
 
-  802601c:	2400      	movs	r4, #0
 
- 				GPIO_SPEED_HIGH_CFG);
 
- 		gpio_set(id, pin->flags & GPIO_SET);
 
- 	}
 
- }
 
- void gpio_init(void) {
 
-  802601e:	eb05 03c4 	add.w	r3, r5, r4, lsl #3
 
- 			RCC_AHB1ENR_GPIOCEN | RCC_AHB1ENR_GPIODEN |
 
- 			RCC_AHB1ENR_GPIOEEN;
 
- 	// configure gpios
 
- 	for (i = 0; i < GPIO_TOTAL_COUNT; i++) {
 
- 		if (gpio_pins[i].flags & GPIO_NOINIT)
 
-  8026022:	88db      	ldrh	r3, [r3, #6]
 
-  8026024:	f003 0380 	and.w	r3, r3, #128	; 0x80
 
-  8026028:	b29b      	uxth	r3, r3
 
-  802602a:	b913      	cbnz	r3, 8026032 <gpio_init+0x42>
 
- 			continue;
 
- 		else {
 
- 			gpio_set_config(i);
 
-  802602c:	b2e0      	uxtb	r0, r4
 
-  802602e:	f7ff ff9f 	bl	8025f70 <gpio_set_config>
 
- 	RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN | RCC_AHB1ENR_GPIOBEN |
 
- 			RCC_AHB1ENR_GPIOCEN | RCC_AHB1ENR_GPIODEN |
 
- 			RCC_AHB1ENR_GPIOEEN;
 
- 	// configure gpios
 
- 	for (i = 0; i < GPIO_TOTAL_COUNT; i++) {
 
-  8026032:	3401      	adds	r4, #1
 
-  8026034:	2c11      	cmp	r4, #17
 
-  8026036:	d1f2      	bne.n	802601e <gpio_init+0x2e>
 
- 			continue;
 
- 		else {
 
- 			gpio_set_config(i);
 
- 		}
 
- 	}
 
- }
 
-  8026038:	bd38      	pop	{r3, r4, r5, pc}
 
-  802603a:	bf00      	nop
 
-  802603c:	40020000 	.word	0x40020000
 
-  8026040:	200005c0 	.word	0x200005c0
 
-  8026044:	40020400 	.word	0x40020400
 
-  8026048:	40020800 	.word	0x40020800
 
-  802604c:	40020c00 	.word	0x40020c00
 
-  8026050:	40021000 	.word	0x40021000
 
-  8026054:	40023800 	.word	0x40023800
 
- 08026058 <gpio_invert_output>:
 
- 		gpio_pins[pin].port->BSRRH = 1 << gpio_pins[pin].pin;
 
- }
 
- void gpio_invert_output(gpio_t pin) {
 
- 	gpio_pins[pin].port->ODR ^= 1 << gpio_pins[pin].pin;
 
-  8026058:	4a06      	ldr	r2, [pc, #24]	; (8026074 <gpio_invert_output+0x1c>)
 
-  802605a:	f852 3030 	ldr.w	r3, [r2, r0, lsl #3]
 
-  802605e:	eb02 02c0 	add.w	r2, r2, r0, lsl #3
 
-  8026062:	6959      	ldr	r1, [r3, #20]
 
-  8026064:	7912      	ldrb	r2, [r2, #4]
 
-  8026066:	2001      	movs	r0, #1
 
-  8026068:	fa00 f202 	lsl.w	r2, r0, r2
 
-  802606c:	404a      	eors	r2, r1
 
-  802606e:	615a      	str	r2, [r3, #20]
 
-  8026070:	4770      	bx	lr
 
-  8026072:	bf00      	nop
 
-  8026074:	200005c0 	.word	0x200005c0
 
- 08026078 <gpio_get>:
 
- }
 
- bool gpio_get(gpio_t pin) {
 
- 	bool value;
 
- 	if (gpio_pins[pin].flags & GPIO_NOINIT) {
 
-  8026078:	490e      	ldr	r1, [pc, #56]	; (80260b4 <gpio_get+0x3c>)
 
-  802607a:	eb01 02c0 	add.w	r2, r1, r0, lsl #3
 
- void gpio_invert_output(gpio_t pin) {
 
- 	gpio_pins[pin].port->ODR ^= 1 << gpio_pins[pin].pin;
 
- }
 
- bool gpio_get(gpio_t pin) {
 
-  802607e:	b510      	push	{r4, lr}
 
- 	bool value;
 
- 	if (gpio_pins[pin].flags & GPIO_NOINIT) {
 
-  8026080:	88d3      	ldrh	r3, [r2, #6]
 
-  8026082:	f003 0480 	and.w	r4, r3, #128	; 0x80
 
-  8026086:	b2a4      	uxth	r4, r4
 
-  8026088:	b994      	cbnz	r4, 80260b0 <gpio_get+0x38>
 
- 		return false;
 
- 	}
 
- 	else {
 
- 		value = (gpio_pins[pin].port->IDR & (1 << gpio_pins[pin].pin)) >> gpio_pins[pin].pin;
 
-  802608a:	f851 1030 	ldr.w	r1, [r1, r0, lsl #3]
 
-  802608e:	7912      	ldrb	r2, [r2, #4]
 
-  8026090:	6908      	ldr	r0, [r1, #16]
 
-  8026092:	2101      	movs	r1, #1
 
-  8026094:	fa01 f102 	lsl.w	r1, r1, r2
 
-  8026098:	4001      	ands	r1, r0
 
- 		return (gpio_pins[pin].flags & GPIO_INV) ? !value : value;
 
-  802609a:	f003 0310 	and.w	r3, r3, #16
 
- 	bool value;
 
- 	if (gpio_pins[pin].flags & GPIO_NOINIT) {
 
- 		return false;
 
- 	}
 
- 	else {
 
- 		value = (gpio_pins[pin].port->IDR & (1 << gpio_pins[pin].pin)) >> gpio_pins[pin].pin;
 
-  802609e:	40d1      	lsrs	r1, r2
 
- 		return (gpio_pins[pin].flags & GPIO_INV) ? !value : value;
 
-  80260a0:	b29b      	uxth	r3, r3
 
- 	bool value;
 
- 	if (gpio_pins[pin].flags & GPIO_NOINIT) {
 
- 		return false;
 
- 	}
 
- 	else {
 
- 		value = (gpio_pins[pin].port->IDR & (1 << gpio_pins[pin].pin)) >> gpio_pins[pin].pin;
 
-  80260a2:	bf0c      	ite	eq
 
-  80260a4:	2000      	moveq	r0, #0
 
-  80260a6:	2001      	movne	r0, #1
 
- 		return (gpio_pins[pin].flags & GPIO_INV) ? !value : value;
 
-  80260a8:	b11b      	cbz	r3, 80260b2 <gpio_get+0x3a>
 
-  80260aa:	f080 0001 	eor.w	r0, r0, #1
 
-  80260ae:	bd10      	pop	{r4, pc}
 
- }
 
- bool gpio_get(gpio_t pin) {
 
- 	bool value;
 
- 	if (gpio_pins[pin].flags & GPIO_NOINIT) {
 
- 		return false;
 
-  80260b0:	2000      	movs	r0, #0
 
- 	}
 
- 	else {
 
- 		value = (gpio_pins[pin].port->IDR & (1 << gpio_pins[pin].pin)) >> gpio_pins[pin].pin;
 
- 		return (gpio_pins[pin].flags & GPIO_INV) ? !value : value;
 
- 	}
 
- }
 
-  80260b2:	bd10      	pop	{r4, pc}
 
-  80260b4:	200005c0 	.word	0x200005c0
 
- 080260b8 <RNG_Init>:
 
- #include "rng.h"
 
- #include "stm32f4xx.h"
 
- void RNG_Init(void)
 
- {
 
-  80260b8:	b508      	push	{r3, lr}
 
-     RCC_AHB2PeriphClockCmd(RCC_AHB2Periph_RNG,ENABLE);
 
-  80260ba:	2040      	movs	r0, #64	; 0x40
 
-  80260bc:	2101      	movs	r1, #1
 
-  80260be:	f7ff fb51 	bl	8025764 <RCC_AHB2PeriphClockCmd>
 
-     RNG_Cmd(ENABLE);
 
-  80260c2:	2001      	movs	r0, #1
 
- }
 
-  80260c4:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
 
- void RNG_Init(void)
 
- {
 
-     RCC_AHB2PeriphClockCmd(RCC_AHB2Periph_RNG,ENABLE);
 
-     RNG_Cmd(ENABLE);
 
-  80260c8:	f7ff bba8 	b.w	802581c <RNG_Cmd>
 
- 080260cc <GetRandomNumber>:
 
- }
 
- uint32_t GetRandomNumber(void) {
 
-     return RNG_GetRandomNumber();;
 
-  80260cc:	f7ff bbb2 	b.w	8025834 <RNG_GetRandomNumber>
 
- 080260d0 <TM_RTC_SetDateTime>:
 
-   /* Устанавливаем новое время */
 
-   TM_RTC_GetDateTimeFromUnix(&newData, unixTime);
 
-   TM_RTC_SetDateTime(&newData, TM_RTC_Format_BIN);
 
- }
 
- TM_RTC_Result_t TM_RTC_SetDateTime(TM_RTC_t* data, TM_RTC_Format_t format) {
 
-  80260d0:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
 
- 	TM_RTC_t tmp;
 
- 	
 
- 	/* Check date and time validation */
 
- 	if (format == TM_RTC_Format_BCD) {
 
-  80260d4:	2901      	cmp	r1, #1
 
-   /* Устанавливаем новое время */
 
-   TM_RTC_GetDateTimeFromUnix(&newData, unixTime);
 
-   TM_RTC_SetDateTime(&newData, TM_RTC_Format_BIN);
 
- }
 
- TM_RTC_Result_t TM_RTC_SetDateTime(TM_RTC_t* data, TM_RTC_Format_t format) {
 
-  80260d6:	4603      	mov	r3, r0
 
-  80260d8:	460e      	mov	r6, r1
 
-  80260da:	79c0      	ldrb	r0, [r0, #7]
 
- 	TM_RTC_t tmp;
 
- 	
 
- 	/* Check date and time validation */
 
- 	if (format == TM_RTC_Format_BCD) {
 
-  80260dc:	d137      	bne.n	802614e <TM_RTC_SetDateTime+0x7e>
 
- 		tmp.date = TM_RTC_BCD2BIN(data->date);
 
- 		tmp.month = TM_RTC_BCD2BIN(data->month);
 
-  80260de:	7a1c      	ldrb	r4, [r3, #8]
 
- 		tmp.year = TM_RTC_BCD2BIN(data->year);
 
-  80260e0:	7a5d      	ldrb	r5, [r3, #9]
 
- 		tmp.hours = TM_RTC_BCD2BIN(data->hours);
 
- 		tmp.minutes = TM_RTC_BCD2BIN(data->minutes);
 
- 		tmp.seconds = TM_RTC_BCD2BIN(data->seconds);
 
-  80260e2:	f893 8000 	ldrb.w	r8, [r3]
 
- TM_RTC_Result_t TM_RTC_SetDateTime(TM_RTC_t* data, TM_RTC_Format_t format) {
 
- 	TM_RTC_t tmp;
 
- 	
 
- 	/* Check date and time validation */
 
- 	if (format == TM_RTC_Format_BCD) {
 
- 		tmp.date = TM_RTC_BCD2BIN(data->date);
 
-  80260e6:	220a      	movs	r2, #10
 
-  80260e8:	0901      	lsrs	r1, r0, #4
 
-  80260ea:	f000 000f 	and.w	r0, r0, #15
 
-  80260ee:	fb02 0001 	mla	r0, r2, r1, r0
 
- 		tmp.month = TM_RTC_BCD2BIN(data->month);
 
-  80260f2:	0921      	lsrs	r1, r4, #4
 
-  80260f4:	f004 040f 	and.w	r4, r4, #15
 
-  80260f8:	fb02 4101 	mla	r1, r2, r1, r4
 
- 		tmp.year = TM_RTC_BCD2BIN(data->year);
 
-  80260fc:	092c      	lsrs	r4, r5, #4
 
-  80260fe:	f005 050f 	and.w	r5, r5, #15
 
-  8026102:	fb02 5404 	mla	r4, r2, r4, r5
 
- 		tmp.hours = TM_RTC_BCD2BIN(data->hours);
 
-  8026106:	795d      	ldrb	r5, [r3, #5]
 
-  8026108:	ea4f 1c15 	mov.w	ip, r5, lsr #4
 
-  802610c:	f005 050f 	and.w	r5, r5, #15
 
-  8026110:	fb02 5c0c 	mla	ip, r2, ip, r5
 
- 		tmp.minutes = TM_RTC_BCD2BIN(data->minutes);
 
-  8026114:	791d      	ldrb	r5, [r3, #4]
 
-  8026116:	092f      	lsrs	r7, r5, #4
 
-  8026118:	f005 050f 	and.w	r5, r5, #15
 
-  802611c:	fb02 5707 	mla	r7, r2, r7, r5
 
- 		tmp.seconds = TM_RTC_BCD2BIN(data->seconds);
 
-  8026120:	ea4f 1518 	mov.w	r5, r8, lsr #4
 
-  8026124:	f008 080f 	and.w	r8, r8, #15
 
-  8026128:	fb02 8505 	mla	r5, r2, r5, r8
 
- 		tmp.day = TM_RTC_BCD2BIN(data->day);
 
-  802612c:	f893 8006 	ldrb.w	r8, [r3, #6]
 
-  8026130:	ea4f 1918 	mov.w	r9, r8, lsr #4
 
-  8026134:	f008 080f 	and.w	r8, r8, #15
 
-  8026138:	fb02 8209 	mla	r2, r2, r9, r8
 
- TM_RTC_Result_t TM_RTC_SetDateTime(TM_RTC_t* data, TM_RTC_Format_t format) {
 
- 	TM_RTC_t tmp;
 
- 	
 
- 	/* Check date and time validation */
 
- 	if (format == TM_RTC_Format_BCD) {
 
- 		tmp.date = TM_RTC_BCD2BIN(data->date);
 
-  802613c:	b2c0      	uxtb	r0, r0
 
- 		tmp.month = TM_RTC_BCD2BIN(data->month);
 
-  802613e:	b2c9      	uxtb	r1, r1
 
- 		tmp.year = TM_RTC_BCD2BIN(data->year);
 
-  8026140:	b2e4      	uxtb	r4, r4
 
- 		tmp.hours = TM_RTC_BCD2BIN(data->hours);
 
-  8026142:	fa5f fc8c 	uxtb.w	ip, ip
 
- 		tmp.minutes = TM_RTC_BCD2BIN(data->minutes);
 
-  8026146:	b2ff      	uxtb	r7, r7
 
- 		tmp.seconds = TM_RTC_BCD2BIN(data->seconds);
 
-  8026148:	b2ed      	uxtb	r5, r5
 
- 		tmp.day = TM_RTC_BCD2BIN(data->day);
 
-  802614a:	b2d2      	uxtb	r2, r2
 
-  802614c:	e006      	b.n	802615c <TM_RTC_SetDateTime+0x8c>
 
- 	} else {
 
- 		tmp.date = data->date;
 
- 		tmp.month = data->month;
 
-  802614e:	7a19      	ldrb	r1, [r3, #8]
 
- 		tmp.year = data->year;
 
-  8026150:	7a5c      	ldrb	r4, [r3, #9]
 
- 		tmp.hours = data->hours;
 
-  8026152:	f893 c005 	ldrb.w	ip, [r3, #5]
 
- 		tmp.minutes = data->minutes;
 
-  8026156:	791f      	ldrb	r7, [r3, #4]
 
- 		tmp.seconds = data->seconds;
 
-  8026158:	781d      	ldrb	r5, [r3, #0]
 
- 		tmp.day = data->day;
 
-  802615a:	799a      	ldrb	r2, [r3, #6]
 
- 	}
 
- 	
 
- 	/* Check year and month */
 
- 	if (
 
-  802615c:	2c63      	cmp	r4, #99	; 0x63
 
-  802615e:	d86c      	bhi.n	802623a <TM_RTC_SetDateTime+0x16a>
 
- 		tmp.year > 99 || 
 
-  8026160:	2900      	cmp	r1, #0
 
-  8026162:	d06a      	beq.n	802623a <TM_RTC_SetDateTime+0x16a>
 
- 		tmp.month == 0 || 
 
-  8026164:	290c      	cmp	r1, #12
 
-  8026166:	d868      	bhi.n	802623a <TM_RTC_SetDateTime+0x16a>
 
- 		tmp.month > 12 ||
 
-  8026168:	2800      	cmp	r0, #0
 
-  802616a:	d066      	beq.n	802623a <TM_RTC_SetDateTime+0x16a>
 
- 		tmp.date == 0 ||
 
- 		tmp.date > TM_RTC_Months[TM_RTC_LEAP_YEAR(2000 + tmp.year) ? 1 : 0][tmp.month - 1] ||
 
-  802616c:	f014 0f03 	tst.w	r4, #3
 
-  8026170:	d10a      	bne.n	8026188 <TM_RTC_SetDateTime+0xb8>
 
-  8026172:	f504 69fa 	add.w	r9, r4, #2000	; 0x7d0
 
-  8026176:	f04f 0864 	mov.w	r8, #100	; 0x64
 
-  802617a:	fb99 faf8 	sdiv	sl, r9, r8
 
-  802617e:	fb08 981a 	mls	r8, r8, sl, r9
 
-  8026182:	f1b8 0f00 	cmp.w	r8, #0
 
-  8026186:	d10c      	bne.n	80261a2 <TM_RTC_SetDateTime+0xd2>
 
-  8026188:	f504 64fa 	add.w	r4, r4, #2000	; 0x7d0
 
-  802618c:	f44f 78c8 	mov.w	r8, #400	; 0x190
 
-  8026190:	fb94 f9f8 	sdiv	r9, r4, r8
 
-  8026194:	fb08 4419 	mls	r4, r8, r9, r4
 
-  8026198:	f1d4 0401 	rsbs	r4, r4, #1
 
-  802619c:	bf38      	it	cc
 
-  802619e:	2400      	movcc	r4, #0
 
-  80261a0:	e000      	b.n	80261a4 <TM_RTC_SetDateTime+0xd4>
 
-  80261a2:	2401      	movs	r4, #1
 
-  80261a4:	f8df 80a8 	ldr.w	r8, [pc, #168]	; 8026250 <TM_RTC_SetDateTime+0x180>
 
-  80261a8:	f04f 090c 	mov.w	r9, #12
 
-  80261ac:	fb09 8404 	mla	r4, r9, r4, r8
 
-  80261b0:	1861      	adds	r1, r4, r1
 
- 	/* Check year and month */
 
- 	if (
 
- 		tmp.year > 99 || 
 
- 		tmp.month == 0 || 
 
- 		tmp.month > 12 ||
 
- 		tmp.date == 0 ||
 
-  80261b2:	f811 1c01 	ldrb.w	r1, [r1, #-1]
 
-  80261b6:	4281      	cmp	r1, r0
 
-  80261b8:	d33f      	bcc.n	802623a <TM_RTC_SetDateTime+0x16a>
 
- 		tmp.date > TM_RTC_Months[TM_RTC_LEAP_YEAR(2000 + tmp.year) ? 1 : 0][tmp.month - 1] ||
 
-  80261ba:	f1bc 0f17 	cmp.w	ip, #23
 
-  80261be:	d83c      	bhi.n	802623a <TM_RTC_SetDateTime+0x16a>
 
- 		tmp.hours > 23 ||
 
-  80261c0:	2f3b      	cmp	r7, #59	; 0x3b
 
-  80261c2:	d83a      	bhi.n	802623a <TM_RTC_SetDateTime+0x16a>
 
- 		tmp.minutes > 59 ||
 
-  80261c4:	2d3b      	cmp	r5, #59	; 0x3b
 
-  80261c6:	d838      	bhi.n	802623a <TM_RTC_SetDateTime+0x16a>
 
- 		tmp.seconds > 59 ||
 
-  80261c8:	2a00      	cmp	r2, #0
 
-  80261ca:	d036      	beq.n	802623a <TM_RTC_SetDateTime+0x16a>
 
- 		tmp.day == 0 ||
 
-  80261cc:	2a07      	cmp	r2, #7
 
-  80261ce:	d834      	bhi.n	802623a <TM_RTC_SetDateTime+0x16a>
 
- 		/* Invalid date */
 
- 		return TM_RTC_Result_Error; 
 
- 	}
 
- 	
 
- 	/* Fill time */
 
- 	RTC_TimeStruct.RTC_Hours = data->hours;
 
-  80261d0:	795a      	ldrb	r2, [r3, #5]
 
-  80261d2:	4d1b      	ldr	r5, [pc, #108]	; (8026240 <TM_RTC_SetDateTime+0x170>)
 
- 	RTC_TimeStruct.RTC_Minutes = data->minutes;
 
- 	RTC_TimeStruct.RTC_Seconds = data->seconds;
 
- 	/* Fill date */
 
- 	RTC_DateStruct.RTC_Date = data->date;
 
-  80261d4:	4c1b      	ldr	r4, [pc, #108]	; (8026244 <TM_RTC_SetDateTime+0x174>)
 
- 		/* Invalid date */
 
- 		return TM_RTC_Result_Error; 
 
- 	}
 
- 	
 
- 	/* Fill time */
 
- 	RTC_TimeStruct.RTC_Hours = data->hours;
 
-  80261d6:	702a      	strb	r2, [r5, #0]
 
- 	RTC_TimeStruct.RTC_Minutes = data->minutes;
 
-  80261d8:	791a      	ldrb	r2, [r3, #4]
 
- 	RTC_DateStruct.RTC_Month = data->month;
 
- 	RTC_DateStruct.RTC_Year = data->year;
 
- 	RTC_DateStruct.RTC_WeekDay = data->day;
 
- 	
 
- 	/* Set the RTC time base to 1s and hours format to 24h */
 
- 	RTC_InitStruct.RTC_HourFormat = RTC_HourFormat_24;
 
-  80261da:	481b      	ldr	r0, [pc, #108]	; (8026248 <TM_RTC_SetDateTime+0x178>)
 
- 		return TM_RTC_Result_Error; 
 
- 	}
 
- 	
 
- 	/* Fill time */
 
- 	RTC_TimeStruct.RTC_Hours = data->hours;
 
- 	RTC_TimeStruct.RTC_Minutes = data->minutes;
 
-  80261dc:	706a      	strb	r2, [r5, #1]
 
- 	RTC_TimeStruct.RTC_Seconds = data->seconds;
 
-  80261de:	781a      	ldrb	r2, [r3, #0]
 
-  80261e0:	70aa      	strb	r2, [r5, #2]
 
- 	/* Fill date */
 
- 	RTC_DateStruct.RTC_Date = data->date;
 
-  80261e2:	79da      	ldrb	r2, [r3, #7]
 
-  80261e4:	70a2      	strb	r2, [r4, #2]
 
- 	RTC_DateStruct.RTC_Month = data->month;
 
-  80261e6:	7a1a      	ldrb	r2, [r3, #8]
 
-  80261e8:	7062      	strb	r2, [r4, #1]
 
- 	RTC_DateStruct.RTC_Year = data->year;
 
-  80261ea:	7a5a      	ldrb	r2, [r3, #9]
 
- 	RTC_DateStruct.RTC_WeekDay = data->day;
 
-  80261ec:	799b      	ldrb	r3, [r3, #6]
 
- 	RTC_TimeStruct.RTC_Minutes = data->minutes;
 
- 	RTC_TimeStruct.RTC_Seconds = data->seconds;
 
- 	/* Fill date */
 
- 	RTC_DateStruct.RTC_Date = data->date;
 
- 	RTC_DateStruct.RTC_Month = data->month;
 
- 	RTC_DateStruct.RTC_Year = data->year;
 
-  80261ee:	70e2      	strb	r2, [r4, #3]
 
- 	RTC_DateStruct.RTC_WeekDay = data->day;
 
- 	
 
- 	/* Set the RTC time base to 1s and hours format to 24h */
 
- 	RTC_InitStruct.RTC_HourFormat = RTC_HourFormat_24;
 
- 	RTC_InitStruct.RTC_AsynchPrediv = RTC_ASYNC_PREDIV;
 
-  80261f0:	221f      	movs	r2, #31
 
- 	RTC_DateStruct.RTC_Month = data->month;
 
- 	RTC_DateStruct.RTC_Year = data->year;
 
- 	RTC_DateStruct.RTC_WeekDay = data->day;
 
- 	
 
- 	/* Set the RTC time base to 1s and hours format to 24h */
 
- 	RTC_InitStruct.RTC_HourFormat = RTC_HourFormat_24;
 
-  80261f2:	2700      	movs	r7, #0
 
- 	RTC_InitStruct.RTC_AsynchPrediv = RTC_ASYNC_PREDIV;
 
-  80261f4:	6042      	str	r2, [r0, #4]
 
- 	RTC_InitStruct.RTC_SynchPrediv = RTC_SYNC_PREDIV;
 
-  80261f6:	f502 7278 	add.w	r2, r2, #992	; 0x3e0
 
- 	RTC_TimeStruct.RTC_Seconds = data->seconds;
 
- 	/* Fill date */
 
- 	RTC_DateStruct.RTC_Date = data->date;
 
- 	RTC_DateStruct.RTC_Month = data->month;
 
- 	RTC_DateStruct.RTC_Year = data->year;
 
- 	RTC_DateStruct.RTC_WeekDay = data->day;
 
-  80261fa:	7023      	strb	r3, [r4, #0]
 
- 	
 
- 	/* Set the RTC time base to 1s and hours format to 24h */
 
- 	RTC_InitStruct.RTC_HourFormat = RTC_HourFormat_24;
 
-  80261fc:	6007      	str	r7, [r0, #0]
 
- 	RTC_InitStruct.RTC_AsynchPrediv = RTC_ASYNC_PREDIV;
 
- 	RTC_InitStruct.RTC_SynchPrediv = RTC_SYNC_PREDIV;
 
-  80261fe:	6082      	str	r2, [r0, #8]
 
- 	RTC_Init(&RTC_InitStruct);
 
-  8026200:	f7ff fb5a 	bl	80258b8 <RTC_Init>
 
- 	/* Set time */
 
- 	if (format == TM_RTC_Format_BCD) {
 
-  8026204:	2e01      	cmp	r6, #1
 
-  8026206:	d105      	bne.n	8026214 <TM_RTC_SetDateTime+0x144>
 
- 		RTC_SetTime(RTC_Format_BCD, &RTC_TimeStruct);
 
-  8026208:	4630      	mov	r0, r6
 
-  802620a:	4629      	mov	r1, r5
 
-  802620c:	f7ff fb98 	bl	8025940 <RTC_SetTime>
 
- 		RTC_SetTime(RTC_Format_BIN, &RTC_TimeStruct);
 
- 	}
 
- 	
 
- 	/* Set date */
 
- 	if (format == TM_RTC_Format_BCD) {
 
- 		RTC_SetDate(RTC_Format_BCD, &RTC_DateStruct);
 
-  8026210:	4630      	mov	r0, r6
 
-  8026212:	e004      	b.n	802621e <TM_RTC_SetDateTime+0x14e>
 
- 	/* Set time */
 
- 	if (format == TM_RTC_Format_BCD) {
 
- 		RTC_SetTime(RTC_Format_BCD, &RTC_TimeStruct);
 
- 	} else {
 
- 		RTC_SetTime(RTC_Format_BIN, &RTC_TimeStruct);
 
-  8026214:	4638      	mov	r0, r7
 
-  8026216:	4629      	mov	r1, r5
 
-  8026218:	f7ff fb92 	bl	8025940 <RTC_SetTime>
 
- 	
 
- 	/* Set date */
 
- 	if (format == TM_RTC_Format_BCD) {
 
- 		RTC_SetDate(RTC_Format_BCD, &RTC_DateStruct);
 
- 	} else {
 
- 		RTC_SetDate(RTC_Format_BIN, &RTC_DateStruct);
 
-  802621c:	4638      	mov	r0, r7
 
-  802621e:	4621      	mov	r1, r4
 
-  8026220:	f7ff fbfc 	bl	8025a1c <RTC_SetDate>
 
- 	}	
 
- 	
 
- 	if (TM_RTC_Status != RTC_STATUS_ZERO) {
 
-  8026224:	4b09      	ldr	r3, [pc, #36]	; (802624c <TM_RTC_SetDateTime+0x17c>)
 
-  8026226:	6818      	ldr	r0, [r3, #0]
 
-  8026228:	b140      	cbz	r0, 802623c <TM_RTC_SetDateTime+0x16c>
 
- 		/* Write backup registers */
 
- 		RTC_WriteBackupRegister(RTC_STATUS_REG, RTC_STATUS_TIME_OK);
 
-  802622a:	2013      	movs	r0, #19
 
-  802622c:	f244 3121 	movw	r1, #17185	; 0x4321
 
-  8026230:	f7ff fc5e 	bl	8025af0 <RTC_WriteBackupRegister>
 
- 	}
 
- 	
 
- 	/* Return OK */
 
- 	return TM_RTC_Result_Ok;
 
-  8026234:	2000      	movs	r0, #0
 
-  8026236:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
 
- 		tmp.seconds > 59 ||
 
- 		tmp.day == 0 ||
 
- 		tmp.day > 7
 
- 	) {
 
- 		/* Invalid date */
 
- 		return TM_RTC_Result_Error; 
 
-  802623a:	2001      	movs	r0, #1
 
- 		RTC_WriteBackupRegister(RTC_STATUS_REG, RTC_STATUS_TIME_OK);
 
- 	}
 
- 	
 
- 	/* Return OK */
 
- 	return TM_RTC_Result_Ok;
 
- }
 
-  802623c:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
 
-  8026240:	2000c810 	.word	0x2000c810
 
-  8026244:	2000c820 	.word	0x2000c820
 
-  8026248:	2000c814 	.word	0x2000c814
 
-  802624c:	20000b04 	.word	0x20000b04
 
-  8026250:	20000648 	.word	0x20000648
 
- 08026254 <TM_RTC_SetDateTimeString>:
 
- TM_RTC_Result_t TM_RTC_SetDateTimeString(char* str) {
 
-  8026254:	b530      	push	{r4, r5, lr}
 
- 	TM_RTC_t tmp;
 
- 	uint8_t i = 0;
 
- 	
 
- 	/* Get date */
 
- 	tmp.date = 0;
 
- 	while (TM_RTC_CHARISNUM(*(str + i))) {
 
-  8026256:	2200      	movs	r2, #0
 
- 	
 
- 	/* Return OK */
 
- 	return TM_RTC_Result_Ok;
 
- }
 
- TM_RTC_Result_t TM_RTC_SetDateTimeString(char* str) {
 
-  8026258:	b085      	sub	sp, #20
 
- 	TM_RTC_t tmp;
 
- 	uint8_t i = 0;
 
-  802625a:	4613      	mov	r3, r2
 
- 	
 
- 	/* Get date */
 
- 	tmp.date = 0;
 
- 	while (TM_RTC_CHARISNUM(*(str + i))) {
 
- 		tmp.date = tmp.date * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
-  802625c:	250a      	movs	r5, #10
 
- 	TM_RTC_t tmp;
 
- 	uint8_t i = 0;
 
- 	
 
- 	/* Get date */
 
- 	tmp.date = 0;
 
- 	while (TM_RTC_CHARISNUM(*(str + i))) {
 
-  802625e:	e006      	b.n	802626e <TM_RTC_SetDateTimeString+0x1a>
 
- 		tmp.date = tmp.date * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
-  8026260:	fb05 1202 	mla	r2, r5, r2, r1
 
-  8026264:	3a30      	subs	r2, #48	; 0x30
 
- 		i++;
 
-  8026266:	3301      	adds	r3, #1
 
- 	uint8_t i = 0;
 
- 	
 
- 	/* Get date */
 
- 	tmp.date = 0;
 
- 	while (TM_RTC_CHARISNUM(*(str + i))) {
 
- 		tmp.date = tmp.date * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
-  8026268:	f002 02ff 	and.w	r2, r2, #255	; 0xff
 
- 		i++;
 
-  802626c:	b2db      	uxtb	r3, r3
 
- 	TM_RTC_t tmp;
 
- 	uint8_t i = 0;
 
- 	
 
- 	/* Get date */
 
- 	tmp.date = 0;
 
- 	while (TM_RTC_CHARISNUM(*(str + i))) {
 
-  802626e:	5cc1      	ldrb	r1, [r0, r3]
 
-  8026270:	f1a1 0430 	sub.w	r4, r1, #48	; 0x30
 
-  8026274:	2c09      	cmp	r4, #9
 
-  8026276:	d9f3      	bls.n	8026260 <TM_RTC_SetDateTimeString+0xc>
 
- 		tmp.date = tmp.date * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
- 		i++;
 
- 	}
 
- 	i++;
 
-  8026278:	3301      	adds	r3, #1
 
-  802627a:	f88d 2007 	strb.w	r2, [sp, #7]
 
-  802627e:	b2db      	uxtb	r3, r3
 
- 	
 
- 	/* Get month */
 
- 	tmp.month = 0;
 
- 	while (TM_RTC_CHARISNUM(*(str + i))) {
 
-  8026280:	2200      	movs	r2, #0
 
- 		tmp.month = tmp.month * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
-  8026282:	250a      	movs	r5, #10
 
- 	}
 
- 	i++;
 
- 	
 
- 	/* Get month */
 
- 	tmp.month = 0;
 
- 	while (TM_RTC_CHARISNUM(*(str + i))) {
 
-  8026284:	e006      	b.n	8026294 <TM_RTC_SetDateTimeString+0x40>
 
- 		tmp.month = tmp.month * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
-  8026286:	fb05 1202 	mla	r2, r5, r2, r1
 
-  802628a:	3a30      	subs	r2, #48	; 0x30
 
- 		i++;
 
-  802628c:	3301      	adds	r3, #1
 
- 	i++;
 
- 	
 
- 	/* Get month */
 
- 	tmp.month = 0;
 
- 	while (TM_RTC_CHARISNUM(*(str + i))) {
 
- 		tmp.month = tmp.month * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
-  802628e:	f002 02ff 	and.w	r2, r2, #255	; 0xff
 
- 		i++;
 
-  8026292:	b2db      	uxtb	r3, r3
 
- 	}
 
- 	i++;
 
- 	
 
- 	/* Get month */
 
- 	tmp.month = 0;
 
- 	while (TM_RTC_CHARISNUM(*(str + i))) {
 
-  8026294:	5cc1      	ldrb	r1, [r0, r3]
 
-  8026296:	f1a1 0430 	sub.w	r4, r1, #48	; 0x30
 
-  802629a:	2c09      	cmp	r4, #9
 
-  802629c:	d9f3      	bls.n	8026286 <TM_RTC_SetDateTimeString+0x32>
 
- 		tmp.month = tmp.month * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
- 		i++;
 
- 	}
 
- 	i++;
 
-  802629e:	3301      	adds	r3, #1
 
-  80262a0:	f88d 2008 	strb.w	r2, [sp, #8]
 
-  80262a4:	b2db      	uxtb	r3, r3
 
- 	
 
- 	/* Get year */
 
- 	tmp.year = 0;
 
- 	while (TM_RTC_CHARISNUM(*(str + i))) {
 
-  80262a6:	2200      	movs	r2, #0
 
- 		tmp.year = tmp.year * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
-  80262a8:	250a      	movs	r5, #10
 
- 	}
 
- 	i++;
 
- 	
 
- 	/* Get year */
 
- 	tmp.year = 0;
 
- 	while (TM_RTC_CHARISNUM(*(str + i))) {
 
-  80262aa:	e006      	b.n	80262ba <TM_RTC_SetDateTimeString+0x66>
 
- 		tmp.year = tmp.year * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
-  80262ac:	fb05 1202 	mla	r2, r5, r2, r1
 
-  80262b0:	3a30      	subs	r2, #48	; 0x30
 
- 		i++;
 
-  80262b2:	3301      	adds	r3, #1
 
- 	i++;
 
- 	
 
- 	/* Get year */
 
- 	tmp.year = 0;
 
- 	while (TM_RTC_CHARISNUM(*(str + i))) {
 
- 		tmp.year = tmp.year * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
-  80262b4:	f002 02ff 	and.w	r2, r2, #255	; 0xff
 
- 		i++;
 
-  80262b8:	b2db      	uxtb	r3, r3
 
- 	}
 
- 	i++;
 
- 	
 
- 	/* Get year */
 
- 	tmp.year = 0;
 
- 	while (TM_RTC_CHARISNUM(*(str + i))) {
 
-  80262ba:	5cc1      	ldrb	r1, [r0, r3]
 
-  80262bc:	f1a1 0430 	sub.w	r4, r1, #48	; 0x30
 
-  80262c0:	2c09      	cmp	r4, #9
 
-  80262c2:	d9f3      	bls.n	80262ac <TM_RTC_SetDateTimeString+0x58>
 
- 		tmp.year = tmp.year * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
- 		i++;
 
- 	}
 
- 	i++;
 
-  80262c4:	3301      	adds	r3, #1
 
-  80262c6:	f88d 2009 	strb.w	r2, [sp, #9]
 
-  80262ca:	b2db      	uxtb	r3, r3
 
- 	
 
- 	/* Get day in a week */
 
- 	tmp.day = 0;
 
- 	while (TM_RTC_CHARISNUM(*(str + i))) {
 
-  80262cc:	2200      	movs	r2, #0
 
- 		tmp.day = tmp.day * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
-  80262ce:	250a      	movs	r5, #10
 
- 	}
 
- 	i++;
 
- 	
 
- 	/* Get day in a week */
 
- 	tmp.day = 0;
 
- 	while (TM_RTC_CHARISNUM(*(str + i))) {
 
-  80262d0:	e006      	b.n	80262e0 <TM_RTC_SetDateTimeString+0x8c>
 
- 		tmp.day = tmp.day * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
-  80262d2:	fb05 1202 	mla	r2, r5, r2, r1
 
-  80262d6:	3a30      	subs	r2, #48	; 0x30
 
- 		i++;
 
-  80262d8:	3301      	adds	r3, #1
 
- 	i++;
 
- 	
 
- 	/* Get day in a week */
 
- 	tmp.day = 0;
 
- 	while (TM_RTC_CHARISNUM(*(str + i))) {
 
- 		tmp.day = tmp.day * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
-  80262da:	f002 02ff 	and.w	r2, r2, #255	; 0xff
 
- 		i++;
 
-  80262de:	b2db      	uxtb	r3, r3
 
- 	}
 
- 	i++;
 
- 	
 
- 	/* Get day in a week */
 
- 	tmp.day = 0;
 
- 	while (TM_RTC_CHARISNUM(*(str + i))) {
 
-  80262e0:	5cc1      	ldrb	r1, [r0, r3]
 
-  80262e2:	f1a1 0430 	sub.w	r4, r1, #48	; 0x30
 
-  80262e6:	2c09      	cmp	r4, #9
 
-  80262e8:	d9f3      	bls.n	80262d2 <TM_RTC_SetDateTimeString+0x7e>
 
- 		tmp.day = tmp.day * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
- 		i++;
 
- 	}
 
- 	i++;
 
-  80262ea:	3301      	adds	r3, #1
 
-  80262ec:	f88d 2006 	strb.w	r2, [sp, #6]
 
-  80262f0:	b2db      	uxtb	r3, r3
 
- 	
 
- 	/* Get hours */
 
- 	tmp.hours = 0;
 
- 	while (TM_RTC_CHARISNUM(*(str + i))) {
 
-  80262f2:	2200      	movs	r2, #0
 
- 		tmp.hours = tmp.hours * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
-  80262f4:	250a      	movs	r5, #10
 
- 	}
 
- 	i++;
 
- 	
 
- 	/* Get hours */
 
- 	tmp.hours = 0;
 
- 	while (TM_RTC_CHARISNUM(*(str + i))) {
 
-  80262f6:	e006      	b.n	8026306 <TM_RTC_SetDateTimeString+0xb2>
 
- 		tmp.hours = tmp.hours * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
-  80262f8:	fb05 1202 	mla	r2, r5, r2, r1
 
-  80262fc:	3a30      	subs	r2, #48	; 0x30
 
- 		i++;
 
-  80262fe:	3301      	adds	r3, #1
 
- 	i++;
 
- 	
 
- 	/* Get hours */
 
- 	tmp.hours = 0;
 
- 	while (TM_RTC_CHARISNUM(*(str + i))) {
 
- 		tmp.hours = tmp.hours * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
-  8026300:	f002 02ff 	and.w	r2, r2, #255	; 0xff
 
- 		i++;
 
-  8026304:	b2db      	uxtb	r3, r3
 
- 	}
 
- 	i++;
 
- 	
 
- 	/* Get hours */
 
- 	tmp.hours = 0;
 
- 	while (TM_RTC_CHARISNUM(*(str + i))) {
 
-  8026306:	5cc1      	ldrb	r1, [r0, r3]
 
-  8026308:	f1a1 0430 	sub.w	r4, r1, #48	; 0x30
 
-  802630c:	2c09      	cmp	r4, #9
 
-  802630e:	d9f3      	bls.n	80262f8 <TM_RTC_SetDateTimeString+0xa4>
 
- 		tmp.hours = tmp.hours * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
- 		i++;
 
- 	}
 
- 	i++;
 
-  8026310:	3301      	adds	r3, #1
 
-  8026312:	f88d 2005 	strb.w	r2, [sp, #5]
 
-  8026316:	b2db      	uxtb	r3, r3
 
- 	
 
- 	/* Get minutes */
 
- 	tmp.minutes = 0;
 
- 	while (TM_RTC_CHARISNUM(*(str + i))) {
 
-  8026318:	2200      	movs	r2, #0
 
- 		tmp.minutes = tmp.minutes * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
-  802631a:	250a      	movs	r5, #10
 
- 	}
 
- 	i++;
 
- 	
 
- 	/* Get minutes */
 
- 	tmp.minutes = 0;
 
- 	while (TM_RTC_CHARISNUM(*(str + i))) {
 
-  802631c:	e006      	b.n	802632c <TM_RTC_SetDateTimeString+0xd8>
 
- 		tmp.minutes = tmp.minutes * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
-  802631e:	fb05 1202 	mla	r2, r5, r2, r1
 
-  8026322:	3a30      	subs	r2, #48	; 0x30
 
- 		i++;
 
-  8026324:	3301      	adds	r3, #1
 
- 	i++;
 
- 	
 
- 	/* Get minutes */
 
- 	tmp.minutes = 0;
 
- 	while (TM_RTC_CHARISNUM(*(str + i))) {
 
- 		tmp.minutes = tmp.minutes * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
-  8026326:	f002 02ff 	and.w	r2, r2, #255	; 0xff
 
- 		i++;
 
-  802632a:	b2db      	uxtb	r3, r3
 
- 	}
 
- 	i++;
 
- 	
 
- 	/* Get minutes */
 
- 	tmp.minutes = 0;
 
- 	while (TM_RTC_CHARISNUM(*(str + i))) {
 
-  802632c:	5cc1      	ldrb	r1, [r0, r3]
 
-  802632e:	f1a1 0430 	sub.w	r4, r1, #48	; 0x30
 
-  8026332:	2c09      	cmp	r4, #9
 
-  8026334:	d9f3      	bls.n	802631e <TM_RTC_SetDateTimeString+0xca>
 
- 		tmp.minutes = tmp.minutes * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
- 		i++;
 
- 	}
 
- 	i++;
 
-  8026336:	3301      	adds	r3, #1
 
-  8026338:	f88d 2004 	strb.w	r2, [sp, #4]
 
-  802633c:	b2db      	uxtb	r3, r3
 
- 	
 
- 	/* Get seconds */
 
- 	tmp.seconds = 0;
 
- 	while (TM_RTC_CHARISNUM(*(str + i))) {
 
-  802633e:	2200      	movs	r2, #0
 
- 		tmp.seconds = tmp.seconds * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
-  8026340:	250a      	movs	r5, #10
 
- 	}
 
- 	i++;
 
- 	
 
- 	/* Get seconds */
 
- 	tmp.seconds = 0;
 
- 	while (TM_RTC_CHARISNUM(*(str + i))) {
 
-  8026342:	e006      	b.n	8026352 <TM_RTC_SetDateTimeString+0xfe>
 
- 		tmp.seconds = tmp.seconds * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
-  8026344:	fb05 1202 	mla	r2, r5, r2, r1
 
-  8026348:	3a30      	subs	r2, #48	; 0x30
 
- 		i++;
 
-  802634a:	3301      	adds	r3, #1
 
- 	i++;
 
- 	
 
- 	/* Get seconds */
 
- 	tmp.seconds = 0;
 
- 	while (TM_RTC_CHARISNUM(*(str + i))) {
 
- 		tmp.seconds = tmp.seconds * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
-  802634c:	f002 02ff 	and.w	r2, r2, #255	; 0xff
 
- 		i++;
 
-  8026350:	b2db      	uxtb	r3, r3
 
- 	}
 
- 	i++;
 
- 	
 
- 	/* Get seconds */
 
- 	tmp.seconds = 0;
 
- 	while (TM_RTC_CHARISNUM(*(str + i))) {
 
-  8026352:	5cc1      	ldrb	r1, [r0, r3]
 
-  8026354:	f1a1 0430 	sub.w	r4, r1, #48	; 0x30
 
-  8026358:	2c09      	cmp	r4, #9
 
-  802635a:	d9f3      	bls.n	8026344 <TM_RTC_SetDateTimeString+0xf0>
 
-  802635c:	a804      	add	r0, sp, #16
 
- 		i++;
 
- 	}
 
- 	i++;
 
- 	
 
- 	/* Return status from set date time function */
 
- 	return TM_RTC_SetDateTime(&tmp, TM_RTC_Format_BIN);
 
-  802635e:	2100      	movs	r1, #0
 
-  8026360:	f800 2d10 	strb.w	r2, [r0, #-16]!
 
-  8026364:	4668      	mov	r0, sp
 
-  8026366:	f7ff feb3 	bl	80260d0 <TM_RTC_SetDateTime>
 
- }
 
-  802636a:	b005      	add	sp, #20
 
-  802636c:	bd30      	pop	{r4, r5, pc}
 
- 0802636e <TM_RTC_Config>:
 
- uint16_t TM_RTC_GetDaysInYear(uint8_t year) {
 
- 	/* Return days in year */
 
- 	return TM_RTC_DAYS_IN_YEAR(2000 + year);
 
- }
 
- void TM_RTC_Config(TM_RTC_ClockSource_t source) {
 
-  802636e:	b508      	push	{r3, lr}
 
- 	if (source == TM_RTC_ClockSource_Internal) {
 
-  8026370:	b950      	cbnz	r0, 8026388 <TM_RTC_Config+0x1a>
 
- 		/* Enable the LSI OSC */
 
- 		RCC_LSICmd(ENABLE);
 
-  8026372:	2001      	movs	r0, #1
 
-  8026374:	f7ff f980 	bl	8025678 <RCC_LSICmd>
 
- 		/* Wait till LSI is ready */
 
- 		while (RCC_GetFlagStatus(RCC_FLAG_LSIRDY) == RESET);
 
-  8026378:	2061      	movs	r0, #97	; 0x61
 
-  802637a:	f7ff fa3b 	bl	80257f4 <RCC_GetFlagStatus>
 
-  802637e:	2800      	cmp	r0, #0
 
-  8026380:	d0fa      	beq.n	8026378 <TM_RTC_Config+0xa>
 
- 		/* Select the RTC Clock Source */
 
- 		RCC_RTCCLKConfig(RCC_RTCCLKSource_LSI);
 
-  8026382:	f44f 7000 	mov.w	r0, #512	; 0x200
 
-  8026386:	e00a      	b.n	802639e <TM_RTC_Config+0x30>
 
- 	} else if (source == TM_RTC_ClockSource_External) {
 
-  8026388:	2801      	cmp	r0, #1
 
-  802638a:	d10a      	bne.n	80263a2 <TM_RTC_Config+0x34>
 
- 		/* Enable the LSE OSC */
 
- 		RCC_LSEConfig(RCC_LSE_ON);
 
-  802638c:	f7ff f964 	bl	8025658 <RCC_LSEConfig>
 
- 		/* Wait till LSE is ready */ 
 
- 		while (RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET);
 
-  8026390:	2041      	movs	r0, #65	; 0x41
 
-  8026392:	f7ff fa2f 	bl	80257f4 <RCC_GetFlagStatus>
 
-  8026396:	2800      	cmp	r0, #0
 
-  8026398:	d0fa      	beq.n	8026390 <TM_RTC_Config+0x22>
 
- 		/* Select the RTC Clock Source */
 
- 		RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);
 
-  802639a:	f44f 7080 	mov.w	r0, #256	; 0x100
 
-  802639e:	f7ff f9b7 	bl	8025710 <RCC_RTCCLKConfig>
 
- 	}
 
- 	
 
- 	/* Enable the RTC Clock */
 
- 	RCC_RTCCLKCmd(ENABLE);
 
-  80263a2:	2001      	movs	r0, #1
 
-  80263a4:	f7ff f9cc 	bl	8025740 <RCC_RTCCLKCmd>
 
- 	
 
- 	/* Wait for register synchronization */
 
- 	RTC_WaitForSynchro();
 
-  80263a8:	f7ff faa8 	bl	80258fc <RTC_WaitForSynchro>
 
- 	/* Write status */
 
- 	RTC_WriteBackupRegister(RTC_STATUS_REG, RTC_STATUS_INIT_OK);
 
-  80263ac:	2013      	movs	r0, #19
 
-  80263ae:	f241 2134 	movw	r1, #4660	; 0x1234
 
- }
 
-  80263b2:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
 
- 	
 
- 	/* Wait for register synchronization */
 
- 	RTC_WaitForSynchro();
 
- 	/* Write status */
 
- 	RTC_WriteBackupRegister(RTC_STATUS_REG, RTC_STATUS_INIT_OK);
 
-  80263b6:	f7ff bb9b 	b.w	8025af0 <RTC_WriteBackupRegister>
 
-  80263ba:	0000      	movs	r0, r0
 
- 080263bc <TM_RTC_GetUnixTimeStamp>:
 
- 		/* Enable wakeup command */
 
- 		RTC_WakeUpCmd(ENABLE);
 
- 	}
 
- }
 
- uint32_t TM_RTC_GetUnixTimeStamp(TM_RTC_t* data) {
 
-  80263bc:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
 
- 	uint32_t days = 0, seconds = 0;
 
- 	uint16_t i;
 
- 	uint16_t year = (uint16_t) (data->year + 2000);
 
-  80263c0:	7a42      	ldrb	r2, [r0, #9]
 
-  80263c2:	f240 73b2 	movw	r3, #1970	; 0x7b2
 
-  80263c6:	f502 62fa 	add.w	r2, r2, #2000	; 0x7d0
 
-  80263ca:	2100      	movs	r1, #0
 
- 	if (year < TM_RTC_OFFSET_YEAR) {
 
- 		return 0;
 
- 	}
 
- 	/* Days in back years */
 
- 	for (i = TM_RTC_OFFSET_YEAR; i < year; i++) {
 
- 		days += TM_RTC_DAYS_IN_YEAR(i);
 
-  80263cc:	f44f 75c8 	mov.w	r5, #400	; 0x190
 
-  80263d0:	2664      	movs	r6, #100	; 0x64
 
-  80263d2:	079c      	lsls	r4, r3, #30
 
-  80263d4:	d108      	bne.n	80263e8 <TM_RTC_GetUnixTimeStamp+0x2c>
 
-  80263d6:	fbb3 f4f6 	udiv	r4, r3, r6
 
-  80263da:	fb06 3414 	mls	r4, r6, r4, r3
 
-  80263de:	b2a4      	uxth	r4, r4
 
-  80263e0:	b114      	cbz	r4, 80263e8 <TM_RTC_GetUnixTimeStamp+0x2c>
 
-  80263e2:	f44f 74b7 	mov.w	r4, #366	; 0x16e
 
-  80263e6:	e008      	b.n	80263fa <TM_RTC_GetUnixTimeStamp+0x3e>
 
-  80263e8:	fbb3 f4f5 	udiv	r4, r3, r5
 
-  80263ec:	fb05 3414 	mls	r4, r5, r4, r3
 
-  80263f0:	b2a4      	uxth	r4, r4
 
-  80263f2:	2c00      	cmp	r4, #0
 
-  80263f4:	d0f5      	beq.n	80263e2 <TM_RTC_GetUnixTimeStamp+0x26>
 
-  80263f6:	f240 146d 	movw	r4, #365	; 0x16d
 
- 	/* Year is below offset year */
 
- 	if (year < TM_RTC_OFFSET_YEAR) {
 
- 		return 0;
 
- 	}
 
- 	/* Days in back years */
 
- 	for (i = TM_RTC_OFFSET_YEAR; i < year; i++) {
 
-  80263fa:	3301      	adds	r3, #1
 
-  80263fc:	b29b      	uxth	r3, r3
 
-  80263fe:	4293      	cmp	r3, r2
 
- 		days += TM_RTC_DAYS_IN_YEAR(i);
 
-  8026400:	4421      	add	r1, r4
 
- 	/* Year is below offset year */
 
- 	if (year < TM_RTC_OFFSET_YEAR) {
 
- 		return 0;
 
- 	}
 
- 	/* Days in back years */
 
- 	for (i = TM_RTC_OFFSET_YEAR; i < year; i++) {
 
-  8026402:	d3e6      	bcc.n	80263d2 <TM_RTC_GetUnixTimeStamp+0x16>
 
- 		days += TM_RTC_DAYS_IN_YEAR(i);
 
- 	}
 
- 	/* Days in current year */
 
- 	for (i = 1; i < data->month; i++) {
 
- 		days += TM_RTC_Months[TM_RTC_LEAP_YEAR(year)][i - 1];
 
-  8026404:	2364      	movs	r3, #100	; 0x64
 
-  8026406:	fbb2 f7f3 	udiv	r7, r2, r3
 
-  802640a:	fb03 2317 	mls	r3, r3, r7, r2
 
-  802640e:	b29f      	uxth	r7, r3
 
-  8026410:	f44f 73c8 	mov.w	r3, #400	; 0x190
 
-  8026414:	fbb2 f4f3 	udiv	r4, r2, r3
 
-  8026418:	fb03 2414 	mls	r4, r3, r4, r2
 
-  802641c:	b2a4      	uxth	r4, r4
 
-  802641e:	f1d4 0401 	rsbs	r4, r4, #1
 
-  8026422:	bf38      	it	cc
 
-  8026424:	2400      	movcc	r4, #0
 
- 	/* Days in back years */
 
- 	for (i = TM_RTC_OFFSET_YEAR; i < year; i++) {
 
- 		days += TM_RTC_DAYS_IN_YEAR(i);
 
- 	}
 
- 	/* Days in current year */
 
- 	for (i = 1; i < data->month; i++) {
 
-  8026426:	7a06      	ldrb	r6, [r0, #8]
 
- 		days += TM_RTC_Months[TM_RTC_LEAP_YEAR(year)][i - 1];
 
-  8026428:	f8df c058 	ldr.w	ip, [pc, #88]	; 8026484 <TM_RTC_GetUnixTimeStamp+0xc8>
 
-  802642c:	2300      	movs	r3, #0
 
-  802642e:	f002 0203 	and.w	r2, r2, #3
 
-  8026432:	f04f 080c 	mov.w	r8, #12
 
-  8026436:	e00c      	b.n	8026452 <TM_RTC_GetUnixTimeStamp+0x96>
 
-  8026438:	b922      	cbnz	r2, 8026444 <TM_RTC_GetUnixTimeStamp+0x88>
 
-  802643a:	2f00      	cmp	r7, #0
 
-  802643c:	bf0c      	ite	eq
 
-  802643e:	4625      	moveq	r5, r4
 
-  8026440:	2501      	movne	r5, #1
 
-  8026442:	e000      	b.n	8026446 <TM_RTC_GetUnixTimeStamp+0x8a>
 
-  8026444:	4625      	mov	r5, r4
 
-  8026446:	fb08 3505 	mla	r5, r8, r5, r3
 
-  802644a:	3301      	adds	r3, #1
 
-  802644c:	f81c 5005 	ldrb.w	r5, [ip, r5]
 
-  8026450:	1949      	adds	r1, r1, r5
 
- 	/* Days in back years */
 
- 	for (i = TM_RTC_OFFSET_YEAR; i < year; i++) {
 
- 		days += TM_RTC_DAYS_IN_YEAR(i);
 
- 	}
 
- 	/* Days in current year */
 
- 	for (i = 1; i < data->month; i++) {
 
-  8026452:	1c5d      	adds	r5, r3, #1
 
-  8026454:	b2ad      	uxth	r5, r5
 
-  8026456:	42b5      	cmp	r5, r6
 
-  8026458:	d3ee      	bcc.n	8026438 <TM_RTC_GetUnixTimeStamp+0x7c>
 
- 		days += TM_RTC_Months[TM_RTC_LEAP_YEAR(year)][i - 1];
 
- 	}
 
- 	/* Day starts with 1 */
 
- 	days += data->date - 1;
 
-  802645a:	79c3      	ldrb	r3, [r0, #7]
 
- 	seconds = days * TM_RTC_SECONDS_PER_DAY;
 
- 	seconds += data->hours * TM_RTC_SECONDS_PER_HOUR;
 
-  802645c:	7944      	ldrb	r4, [r0, #5]
 
- 	/* Days in current year */
 
- 	for (i = 1; i < data->month; i++) {
 
- 		days += TM_RTC_Months[TM_RTC_LEAP_YEAR(year)][i - 1];
 
- 	}
 
- 	/* Day starts with 1 */
 
- 	days += data->date - 1;
 
-  802645e:	3b01      	subs	r3, #1
 
-  8026460:	1859      	adds	r1, r3, r1
 
- 	seconds = days * TM_RTC_SECONDS_PER_DAY;
 
- 	seconds += data->hours * TM_RTC_SECONDS_PER_HOUR;
 
- 	seconds += data->minutes * TM_RTC_SECONDS_PER_MINUTE;
 
-  8026462:	7903      	ldrb	r3, [r0, #4]
 
-  8026464:	009a      	lsls	r2, r3, #2
 
-  8026466:	019b      	lsls	r3, r3, #6
 
-  8026468:	1a9a      	subs	r2, r3, r2
 
- 		days += TM_RTC_Months[TM_RTC_LEAP_YEAR(year)][i - 1];
 
- 	}
 
- 	/* Day starts with 1 */
 
- 	days += data->date - 1;
 
- 	seconds = days * TM_RTC_SECONDS_PER_DAY;
 
- 	seconds += data->hours * TM_RTC_SECONDS_PER_HOUR;
 
-  802646a:	f44f 6361 	mov.w	r3, #3600	; 0xe10
 
-  802646e:	fb03 2304 	mla	r3, r3, r4, r2
 
- 	seconds += data->minutes * TM_RTC_SECONDS_PER_MINUTE;
 
- 	seconds += data->seconds;
 
-  8026472:	7802      	ldrb	r2, [r0, #0]
 
- 	
 
- 	/* seconds = days * 86400; */
 
- 	return seconds;
 
- }
 
-  8026474:	4802      	ldr	r0, [pc, #8]	; (8026480 <TM_RTC_GetUnixTimeStamp+0xc4>)
 
- 	}
 
- 	/* Day starts with 1 */
 
- 	days += data->date - 1;
 
- 	seconds = days * TM_RTC_SECONDS_PER_DAY;
 
- 	seconds += data->hours * TM_RTC_SECONDS_PER_HOUR;
 
- 	seconds += data->minutes * TM_RTC_SECONDS_PER_MINUTE;
 
-  8026476:	189b      	adds	r3, r3, r2
 
- 	seconds += data->seconds;
 
- 	
 
- 	/* seconds = days * 86400; */
 
- 	return seconds;
 
- }
 
-  8026478:	fb00 3001 	mla	r0, r0, r1, r3
 
-  802647c:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 
-  8026480:	00015180 	.word	0x00015180
 
-  8026484:	20000648 	.word	0x20000648
 
- 08026488 <TM_RTC_GetDateTime>:
 
- 	
 
- 	/* Return status from set date time function */
 
- 	return TM_RTC_SetDateTime(&tmp, TM_RTC_Format_BIN);
 
- }
 
- void TM_RTC_GetDateTime(TM_RTC_t* data, TM_RTC_Format_t format) {
 
-  8026488:	b538      	push	{r3, r4, r5, lr}
 
-  802648a:	4604      	mov	r4, r0
 
- 	uint32_t unix;
 
- 	/* Get time */
 
- 	if (format == TM_RTC_Format_BIN) {
 
-  802648c:	460d      	mov	r5, r1
 
-  802648e:	b909      	cbnz	r1, 8026494 <TM_RTC_GetDateTime+0xc>
 
- 		RTC_GetTime(RTC_Format_BIN, &RTC_TimeStruct);
 
-  8026490:	4608      	mov	r0, r1
 
-  8026492:	e000      	b.n	8026496 <TM_RTC_GetDateTime+0xe>
 
- 	} else {
 
- 		RTC_GetTime(RTC_Format_BCD, &RTC_TimeStruct);
 
-  8026494:	2001      	movs	r0, #1
 
-  8026496:	4911      	ldr	r1, [pc, #68]	; (80264dc <TM_RTC_GetDateTime+0x54>)
 
-  8026498:	f7ff fa9e 	bl	80259d8 <RTC_GetTime>
 
- 	}
 
- 	
 
- 	/* Format hours */
 
- 	data->hours = RTC_TimeStruct.RTC_Hours;
 
-  802649c:	4b0f      	ldr	r3, [pc, #60]	; (80264dc <TM_RTC_GetDateTime+0x54>)
 
-  802649e:	781a      	ldrb	r2, [r3, #0]
 
-  80264a0:	7162      	strb	r2, [r4, #5]
 
- 	data->minutes = RTC_TimeStruct.RTC_Minutes;
 
-  80264a2:	785a      	ldrb	r2, [r3, #1]
 
- 	data->seconds = RTC_TimeStruct.RTC_Seconds;
 
-  80264a4:	789b      	ldrb	r3, [r3, #2]
 
- 		RTC_GetTime(RTC_Format_BCD, &RTC_TimeStruct);
 
- 	}
 
- 	
 
- 	/* Format hours */
 
- 	data->hours = RTC_TimeStruct.RTC_Hours;
 
- 	data->minutes = RTC_TimeStruct.RTC_Minutes;
 
-  80264a6:	7122      	strb	r2, [r4, #4]
 
- 	data->seconds = RTC_TimeStruct.RTC_Seconds;
 
-  80264a8:	7023      	strb	r3, [r4, #0]
 
- 	
 
- 	/* Get subseconds */
 
- 	data->subseconds = RTC->SSR;
 
-  80264aa:	4b0d      	ldr	r3, [pc, #52]	; (80264e0 <TM_RTC_GetDateTime+0x58>)
 
-  80264ac:	6a9b      	ldr	r3, [r3, #40]	; 0x28
 
-  80264ae:	8063      	strh	r3, [r4, #2]
 
- 	
 
- 	/* Get date */
 
- 	if (format == TM_RTC_Format_BIN) {
 
-  80264b0:	b90d      	cbnz	r5, 80264b6 <TM_RTC_GetDateTime+0x2e>
 
- 		RTC_GetDate(RTC_Format_BIN, &RTC_DateStruct);
 
-  80264b2:	4628      	mov	r0, r5
 
-  80264b4:	e000      	b.n	80264b8 <TM_RTC_GetDateTime+0x30>
 
- 	} else {
 
- 		RTC_GetDate(RTC_Format_BCD, &RTC_DateStruct);
 
-  80264b6:	2001      	movs	r0, #1
 
-  80264b8:	490a      	ldr	r1, [pc, #40]	; (80264e4 <TM_RTC_GetDateTime+0x5c>)
 
-  80264ba:	f7ff faf9 	bl	8025ab0 <RTC_GetDate>
 
- 	}
 
- 	
 
- 	/* Format date */
 
- 	data->year = RTC_DateStruct.RTC_Year;
 
-  80264be:	4b09      	ldr	r3, [pc, #36]	; (80264e4 <TM_RTC_GetDateTime+0x5c>)
 
-  80264c0:	78da      	ldrb	r2, [r3, #3]
 
-  80264c2:	7262      	strb	r2, [r4, #9]
 
- 	data->month = RTC_DateStruct.RTC_Month;
 
-  80264c4:	785a      	ldrb	r2, [r3, #1]
 
-  80264c6:	7222      	strb	r2, [r4, #8]
 
- 	data->date = RTC_DateStruct.RTC_Date;
 
-  80264c8:	789a      	ldrb	r2, [r3, #2]
 
- 	data->day = RTC_DateStruct.RTC_WeekDay;
 
-  80264ca:	781b      	ldrb	r3, [r3, #0]
 
- 	}
 
- 	
 
- 	/* Format date */
 
- 	data->year = RTC_DateStruct.RTC_Year;
 
- 	data->month = RTC_DateStruct.RTC_Month;
 
- 	data->date = RTC_DateStruct.RTC_Date;
 
-  80264cc:	71e2      	strb	r2, [r4, #7]
 
- 	data->day = RTC_DateStruct.RTC_WeekDay;
 
-  80264ce:	71a3      	strb	r3, [r4, #6]
 
- 	
 
- 	/* Calculate unix offset */
 
- 	unix = TM_RTC_GetUnixTimeStamp(data);
 
-  80264d0:	4620      	mov	r0, r4
 
-  80264d2:	f7ff ff73 	bl	80263bc <TM_RTC_GetUnixTimeStamp>
 
- 	data->unix = unix;
 
-  80264d6:	60e0      	str	r0, [r4, #12]
 
-  80264d8:	bd38      	pop	{r3, r4, r5, pc}
 
-  80264da:	bf00      	nop
 
-  80264dc:	2000c810 	.word	0x2000c810
 
-  80264e0:	40002800 	.word	0x40002800
 
-  80264e4:	2000c820 	.word	0x2000c820
 
- 080264e8 <TM_RTC_Init>:
 
-   }
 
- }
 
- uint32_t TM_RTC_Init(TM_RTC_ClockSource_t source) 
 
- {
 
-  80264e8:	b5f0      	push	{r4, r5, r6, r7, lr}
 
-   uint32_t status;
 
-   uint8_t stat = 1;
 
-   TM_RTC_t datatime;
 
- 	
 
-   /* Enable PWR peripheral clock */
 
-   RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);
 
-  80264ea:	2101      	movs	r1, #1
 
-   }
 
- }
 
- uint32_t TM_RTC_Init(TM_RTC_ClockSource_t source) 
 
- {
 
-  80264ec:	b085      	sub	sp, #20
 
-  80264ee:	4605      	mov	r5, r0
 
-   uint32_t status;
 
-   uint8_t stat = 1;
 
-   TM_RTC_t datatime;
 
- 	
 
-   /* Enable PWR peripheral clock */
 
-   RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);
 
-  80264f0:	f04f 5080 	mov.w	r0, #268435456	; 0x10000000
 
-  80264f4:	f7ff f942 	bl	802577c <RCC_APB1PeriphClockCmd>
 
-   /* Allow access to BKP Domain */
 
-   PWR_BackupAccessCmd(ENABLE);
 
-  80264f8:	2001      	movs	r0, #1
 
-  80264fa:	f7ff f8a7 	bl	802564c <PWR_BackupAccessCmd>
 
- 	
 
-   /* Get RTC status */
 
-   status = RTC_ReadBackupRegister(RTC_STATUS_REG);
 
-  80264fe:	2013      	movs	r0, #19
 
-  8026500:	f7ff fb06 	bl	8025b10 <RTC_ReadBackupRegister>
 
- 	
 
-   if (status == RTC_STATUS_TIME_OK) 
 
-  8026504:	f244 3321 	movw	r3, #17185	; 0x4321
 
-  8026508:	4298      	cmp	r0, r3
 
-  802650a:	4e25      	ldr	r6, [pc, #148]	; (80265a0 <TM_RTC_Init+0xb8>)
 
-  802650c:	d113      	bne.n	8026536 <TM_RTC_Init+0x4e>
 
-   {
 
-     TM_RTC_Status = RTC_STATUS_TIME_OK;
 
-  802650e:	6030      	str	r0, [r6, #0]
 
- 		
 
-     /* Start internal clock if we choose internal clock */
 
-     if (source == TM_RTC_ClockSource_Internal)
 
-  8026510:	b915      	cbnz	r5, 8026518 <TM_RTC_Init+0x30>
 
-       TM_RTC_Config(TM_RTC_ClockSource_Internal);
 
-  8026512:	4628      	mov	r0, r5
 
-  8026514:	f7ff ff2b 	bl	802636e <TM_RTC_Config>
 
-     /* Wait for RTC APB registers synchronisation (needed after start-up from Reset) */
 
-     RTC_WaitForSynchro();
 
-  8026518:	f7ff f9f0 	bl	80258fc <RTC_WaitForSynchro>
 
- 		
 
-     /* Clear interrupt flags */
 
-     RTC_ClearITPendingBit(RTC_IT_WUT);
 
-  802651c:	f44f 4080 	mov.w	r0, #16384	; 0x4000
 
-  8026520:	f7ff fb1e 	bl	8025b60 <RTC_ClearITPendingBit>
 
-     EXTI->PR = 0x00400000;
 
-  8026524:	4b1f      	ldr	r3, [pc, #124]	; (80265a4 <TM_RTC_Init+0xbc>)
 
-  8026526:	f44f 0280 	mov.w	r2, #4194304	; 0x400000
 
-  802652a:	615a      	str	r2, [r3, #20]
 
- 		
 
-     /* Get date and time */
 
-     TM_RTC_GetDateTime(&datatime, TM_RTC_Format_BIN);
 
-  802652c:	4668      	mov	r0, sp
 
-  802652e:	2100      	movs	r1, #0
 
-  8026530:	f7ff ffaa 	bl	8026488 <TM_RTC_GetDateTime>
 
-  8026534:	e02f      	b.n	8026596 <TM_RTC_Init+0xae>
 
-   } 
 
-   else if (status == RTC_STATUS_INIT_OK) 
 
-  8026536:	f241 2734 	movw	r7, #4660	; 0x1234
 
-  802653a:	42b8      	cmp	r0, r7
 
-  802653c:	d10f      	bne.n	802655e <TM_RTC_Init+0x76>
 
-   {
 
-     TM_RTC_Status = RTC_STATUS_INIT_OK;
 
-  802653e:	6030      	str	r0, [r6, #0]
 
- 		
 
-     /* Start internal clock if we choose internal clock */
 
-     if (source == TM_RTC_ClockSource_Internal)
 
-  8026540:	b915      	cbnz	r5, 8026548 <TM_RTC_Init+0x60>
 
-       TM_RTC_Config(TM_RTC_ClockSource_Internal);
 
-  8026542:	4628      	mov	r0, r5
 
-  8026544:	f7ff ff13 	bl	802636e <TM_RTC_Config>
 
-     /* Wait for RTC APB registers synchronisation (needed after start-up from Reset) */
 
-     RTC_WaitForSynchro();
 
-  8026548:	f7ff f9d8 	bl	80258fc <RTC_WaitForSynchro>
 
- 		
 
-     /* Clear interrupt flags */
 
-     RTC_ClearITPendingBit(RTC_IT_WUT);
 
-  802654c:	f44f 4080 	mov.w	r0, #16384	; 0x4000
 
-  8026550:	f7ff fb06 	bl	8025b60 <RTC_ClearITPendingBit>
 
-     EXTI->PR = 0x00400000;
 
-  8026554:	4b13      	ldr	r3, [pc, #76]	; (80265a4 <TM_RTC_Init+0xbc>)
 
-  8026556:	f44f 0280 	mov.w	r2, #4194304	; 0x400000
 
-  802655a:	615a      	str	r2, [r3, #20]
 
-  802655c:	e01b      	b.n	8026596 <TM_RTC_Init+0xae>
 
-     /* Get date and time */
 
-     //TM_RTC_GetDateTime(&datatime, TM_RTC_Format_BIN);
 
-   } 
 
-   else 
 
-   {
 
-     TM_RTC_Status = RTC_STATUS_ZERO;
 
-  802655e:	2400      	movs	r4, #0
 
-     /* Return status = 0 -> RTC Never initialized before */
 
-     stat = RTC_STATUS_ZERO;
 
-     /* Config RTC */
 
- 	TM_RTC_Config(source);
 
-  8026560:	4628      	mov	r0, r5
 
-     /* Get date and time */
 
-     //TM_RTC_GetDateTime(&datatime, TM_RTC_Format_BIN);
 
-   } 
 
-   else 
 
-   {
 
-     TM_RTC_Status = RTC_STATUS_ZERO;
 
-  8026562:	6034      	str	r4, [r6, #0]
 
-     /* Return status = 0 -> RTC Never initialized before */
 
-     stat = RTC_STATUS_ZERO;
 
-     /* Config RTC */
 
- 	TM_RTC_Config(source);
 
-  8026564:	f7ff ff03 	bl	802636e <TM_RTC_Config>
 
-     datatime.day = 1;
 
-     datatime.month = 1;
 
-     datatime.year = 0;
 
-     datatime.hours = 0;
 
-     datatime.minutes = 0;
 
-     datatime.seconds = 0;
 
-  8026568:	a804      	add	r0, sp, #16
 
-     stat = RTC_STATUS_ZERO;
 
-     /* Config RTC */
 
- 	TM_RTC_Config(source);
 
- 		
 
-     /* Set date and time */
 
-     datatime.date = 1;
 
-  802656a:	2301      	movs	r3, #1
 
-     datatime.day = 1;
 
-     datatime.month = 1;
 
-     datatime.year = 0;
 
-     datatime.hours = 0;
 
-     datatime.minutes = 0;
 
-     datatime.seconds = 0;
 
-  802656c:	f800 4d10 	strb.w	r4, [r0, #-16]!
 
-     /* Set date and time */
 
-     TM_RTC_SetDateTime(&datatime, TM_RTC_Format_BIN);
 
-  8026570:	4621      	mov	r1, r4
 
-  8026572:	4668      	mov	r0, sp
 
-     stat = RTC_STATUS_ZERO;
 
-     /* Config RTC */
 
- 	TM_RTC_Config(source);
 
- 		
 
-     /* Set date and time */
 
-     datatime.date = 1;
 
-  8026574:	f88d 3007 	strb.w	r3, [sp, #7]
 
-     datatime.day = 1;
 
-  8026578:	f88d 3006 	strb.w	r3, [sp, #6]
 
-     datatime.month = 1;
 
-  802657c:	f88d 3008 	strb.w	r3, [sp, #8]
 
-     datatime.year = 0;
 
-  8026580:	f88d 4009 	strb.w	r4, [sp, #9]
 
-     datatime.hours = 0;
 
-  8026584:	f88d 4005 	strb.w	r4, [sp, #5]
 
-     datatime.minutes = 0;
 
-  8026588:	f88d 4004 	strb.w	r4, [sp, #4]
 
-     datatime.seconds = 0;
 
-     /* Set date and time */
 
-     TM_RTC_SetDateTime(&datatime, TM_RTC_Format_BIN);
 
-  802658c:	f7ff fda0 	bl	80260d0 <TM_RTC_SetDateTime>
 
- 		
 
-     /* Initialized OK */
 
-     TM_RTC_Status = RTC_STATUS_INIT_OK;
 
-  8026590:	6037      	str	r7, [r6, #0]
 
-   }
 
-   /* If first time initialized */
 
-   if (stat == RTC_STATUS_ZERO) 
 
- 	return 0;
 
-  8026592:	4620      	mov	r0, r4
 
-  8026594:	e001      	b.n	802659a <TM_RTC_Init+0xb2>
 
-   
 
-   return TM_RTC_Status;  
 
-  8026596:	4b02      	ldr	r3, [pc, #8]	; (80265a0 <TM_RTC_Init+0xb8>)
 
-  8026598:	6818      	ldr	r0, [r3, #0]
 
- }
 
-  802659a:	b005      	add	sp, #20
 
-  802659c:	bdf0      	pop	{r4, r5, r6, r7, pc}
 
-  802659e:	bf00      	nop
 
-  80265a0:	20000b04 	.word	0x20000b04
 
-  80265a4:	40013c00 	.word	0x40013c00
 
- 080265a8 <TM_RTC_GetDateTimeFromUnix>:
 
- 	uint16_t year;
 
- 	
 
- 	/* Store unix time to unix in struct */
 
- 	data->unix = unix;
 
- 	/* Get seconds from unix */
 
- 	data->seconds = unix % 60;
 
-  80265a8:	233c      	movs	r3, #60	; 0x3c
 
- 	
 
- 	/* seconds = days * 86400; */
 
- 	return seconds;
 
- }
 
- void TM_RTC_GetDateTimeFromUnix(TM_RTC_t* data, uint32_t unix) {
 
-  80265aa:	b5f0      	push	{r4, r5, r6, r7, lr}
 
- 	uint16_t year;
 
- 	
 
- 	/* Store unix time to unix in struct */
 
- 	data->unix = unix;
 
- 	/* Get seconds from unix */
 
- 	data->seconds = unix % 60;
 
-  80265ac:	fbb1 f4f3 	udiv	r4, r1, r3
 
- 	/* Go to minutes */
 
- 	unix /= 60;
 
- 	/* Get minutes */
 
- 	data->minutes = unix % 60;
 
-  80265b0:	fbb4 f2f3 	udiv	r2, r4, r3
 
- void TM_RTC_GetDateTimeFromUnix(TM_RTC_t* data, uint32_t unix) {
 
- 	uint16_t year;
 
- 	
 
- 	/* Store unix time to unix in struct */
 
- 	data->unix = unix;
 
-  80265b4:	60c1      	str	r1, [r0, #12]
 
- 	/* Get seconds from unix */
 
- 	data->seconds = unix % 60;
 
-  80265b6:	fb03 1114 	mls	r1, r3, r4, r1
 
-  80265ba:	7001      	strb	r1, [r0, #0]
 
- 	/* Go to minutes */
 
- 	unix /= 60;
 
- 	/* Get minutes */
 
- 	data->minutes = unix % 60;
 
-  80265bc:	fb03 4312 	mls	r3, r3, r2, r4
 
- 	/* Go to hours */
 
- 	unix /= 60;
 
- 	/* Get hours */
 
- 	data->hours = unix % 24;
 
-  80265c0:	2118      	movs	r1, #24
 
- 	/* Get seconds from unix */
 
- 	data->seconds = unix % 60;
 
- 	/* Go to minutes */
 
- 	unix /= 60;
 
- 	/* Get minutes */
 
- 	data->minutes = unix % 60;
 
-  80265c2:	7103      	strb	r3, [r0, #4]
 
- 	/* Go to hours */
 
- 	unix /= 60;
 
- 	/* Get hours */
 
- 	data->hours = unix % 24;
 
-  80265c4:	fbb2 f3f1 	udiv	r3, r2, r1
 
-  80265c8:	fb01 2213 	mls	r2, r1, r3, r2
 
-  80265cc:	7142      	strb	r2, [r0, #5]
 
- 	/* Go to days */
 
- 	unix /= 24;
 
- 	
 
- 	/* Get week day */
 
- 	/* Monday is day one */
 
- 	data->day = (unix + 3) % 7 + 1;
 
-  80265ce:	1cd9      	adds	r1, r3, #3
 
-  80265d0:	2207      	movs	r2, #7
 
-  80265d2:	fbb1 f4f2 	udiv	r4, r1, r2
 
-  80265d6:	fb02 1214 	mls	r2, r2, r4, r1
 
-  80265da:	3201      	adds	r2, #1
 
-  80265dc:	7182      	strb	r2, [r0, #6]
 
- 	/* Get year */
 
- 	year = 1970;
 
- 	while (1) {
 
- 		if (TM_RTC_LEAP_YEAR(year)) {
 
- 			if (unix >= 366) {
 
-  80265de:	f240 156d 	movw	r5, #365	; 0x16d
 
- 	/* Get week day */
 
- 	/* Monday is day one */
 
- 	data->day = (unix + 3) % 7 + 1;
 
- 	/* Get year */
 
- 	year = 1970;
 
-  80265e2:	f240 72b2 	movw	r2, #1970	; 0x7b2
 
- 	while (1) {
 
- 		if (TM_RTC_LEAP_YEAR(year)) {
 
-  80265e6:	f44f 71c8 	mov.w	r1, #400	; 0x190
 
-  80265ea:	2464      	movs	r4, #100	; 0x64
 
-  80265ec:	f012 0603 	ands.w	r6, r2, #3
 
-  80265f0:	d105      	bne.n	80265fe <TM_RTC_GetDateTimeFromUnix+0x56>
 
-  80265f2:	fbb2 f7f4 	udiv	r7, r2, r4
 
-  80265f6:	fb04 2717 	mls	r7, r4, r7, r2
 
-  80265fa:	b2bf      	uxth	r7, r7
 
-  80265fc:	b92f      	cbnz	r7, 802660a <TM_RTC_GetDateTimeFromUnix+0x62>
 
-  80265fe:	fbb2 f7f1 	udiv	r7, r2, r1
 
-  8026602:	fb01 2717 	mls	r7, r1, r7, r2
 
-  8026606:	b2bf      	uxth	r7, r7
 
-  8026608:	b927      	cbnz	r7, 8026614 <TM_RTC_GetDateTimeFromUnix+0x6c>
 
- 			if (unix >= 366) {
 
-  802660a:	42ab      	cmp	r3, r5
 
-  802660c:	d90b      	bls.n	8026626 <TM_RTC_GetDateTimeFromUnix+0x7e>
 
- 				unix -= 366;
 
-  802660e:	f5a3 73b7 	sub.w	r3, r3, #366	; 0x16e
 
- 	/* Get year */
 
- 	year = 1970;
 
- 	while (1) {
 
- 		if (TM_RTC_LEAP_YEAR(year)) {
 
- 			if (unix >= 366) {
 
-  8026612:	e005      	b.n	8026620 <TM_RTC_GetDateTimeFromUnix+0x78>
 
- 				unix -= 366;
 
- 			} else {
 
- 				break;
 
- 			}
 
- 		} else if (unix >= 365) {
 
-  8026614:	f5b3 7fb6 	cmp.w	r3, #364	; 0x16c
 
-  8026618:	d905      	bls.n	8026626 <TM_RTC_GetDateTimeFromUnix+0x7e>
 
- 			unix -= 365;
 
-  802661a:	f46f 76b6 	mvn.w	r6, #364	; 0x16c
 
-  802661e:	199b      	adds	r3, r3, r6
 
- 		} else {
 
- 			break;
 
- 		}
 
- 		year++;
 
-  8026620:	3201      	adds	r2, #1
 
-  8026622:	b292      	uxth	r2, r2
 
- 	}
 
-  8026624:	e7e2      	b.n	80265ec <TM_RTC_GetDateTimeFromUnix+0x44>
 
- 	/* Get year in xx format */
 
- 	data->year = (uint8_t) (year - 2000);
 
-  8026626:	f102 0130 	add.w	r1, r2, #48	; 0x30
 
-  802662a:	7241      	strb	r1, [r0, #9]
 
- 	/* Get month */
 
- 	for (data->month = 0; data->month < 12; data->month++) {
 
-  802662c:	2100      	movs	r1, #0
 
-  802662e:	7201      	strb	r1, [r0, #8]
 
- 		if (TM_RTC_LEAP_YEAR(year) && unix >= (uint32_t)TM_RTC_Months[1][data->month]) {
 
-  8026630:	2164      	movs	r1, #100	; 0x64
 
-  8026632:	fbb2 f7f1 	udiv	r7, r2, r1
 
-  8026636:	fb01 2117 	mls	r1, r1, r7, r2
 
-  802663a:	b28f      	uxth	r7, r1
 
-  802663c:	f44f 71c8 	mov.w	r1, #400	; 0x190
 
-  8026640:	fbb2 f4f1 	udiv	r4, r2, r1
 
-  8026644:	fb01 2214 	mls	r2, r1, r4, r2
 
-  8026648:	b292      	uxth	r2, r2
 
- 			unix -= TM_RTC_Months[1][data->month];
 
- 		} else if (unix >= (uint32_t)TM_RTC_Months[0][data->month]) {
 
-  802664a:	4c0c      	ldr	r4, [pc, #48]	; (802667c <TM_RTC_GetDateTimeFromUnix+0xd4>)
 
- 		year++;
 
- 	}
 
- 	/* Get year in xx format */
 
- 	data->year = (uint8_t) (year - 2000);
 
- 	/* Get month */
 
- 	for (data->month = 0; data->month < 12; data->month++) {
 
-  802664c:	e012      	b.n	8026674 <TM_RTC_GetDateTimeFromUnix+0xcc>
 
- 		if (TM_RTC_LEAP_YEAR(year) && unix >= (uint32_t)TM_RTC_Months[1][data->month]) {
 
-  802664e:	b906      	cbnz	r6, 8026652 <TM_RTC_GetDateTimeFromUnix+0xaa>
 
-  8026650:	b907      	cbnz	r7, 8026654 <TM_RTC_GetDateTimeFromUnix+0xac>
 
-  8026652:	b922      	cbnz	r2, 802665e <TM_RTC_GetDateTimeFromUnix+0xb6>
 
-  8026654:	1865      	adds	r5, r4, r1
 
-  8026656:	7b2d      	ldrb	r5, [r5, #12]
 
-  8026658:	42ab      	cmp	r3, r5
 
-  802665a:	d300      	bcc.n	802665e <TM_RTC_GetDateTimeFromUnix+0xb6>
 
-  802665c:	e007      	b.n	802666e <TM_RTC_GetDateTimeFromUnix+0xc6>
 
- 			unix -= TM_RTC_Months[1][data->month];
 
- 		} else if (unix >= (uint32_t)TM_RTC_Months[0][data->month]) {
 
-  802665e:	5c65      	ldrb	r5, [r4, r1]
 
-  8026660:	42ab      	cmp	r3, r5
 
-  8026662:	d204      	bcs.n	802666e <TM_RTC_GetDateTimeFromUnix+0xc6>
 
- 			break;
 
- 		}
 
- 	}
 
- 	/* Get month */
 
- 	/* Month starts with 1 */
 
- 	data->month++;
 
-  8026664:	3101      	adds	r1, #1
 
- 	/* Get date */
 
- 	/* Date starts with 1 */
 
- 	data->date = unix + 1;
 
-  8026666:	3301      	adds	r3, #1
 
- 			break;
 
- 		}
 
- 	}
 
- 	/* Get month */
 
- 	/* Month starts with 1 */
 
- 	data->month++;
 
-  8026668:	7201      	strb	r1, [r0, #8]
 
- 	/* Get date */
 
- 	/* Date starts with 1 */
 
- 	data->date = unix + 1;
 
-  802666a:	71c3      	strb	r3, [r0, #7]
 
-  802666c:	bdf0      	pop	{r4, r5, r6, r7, pc}
 
- 		year++;
 
- 	}
 
- 	/* Get year in xx format */
 
- 	data->year = (uint8_t) (year - 2000);
 
- 	/* Get month */
 
- 	for (data->month = 0; data->month < 12; data->month++) {
 
-  802666e:	3101      	adds	r1, #1
 
- 		if (TM_RTC_LEAP_YEAR(year) && unix >= (uint32_t)TM_RTC_Months[1][data->month]) {
 
- 			unix -= TM_RTC_Months[1][data->month];
 
- 		} else if (unix >= (uint32_t)TM_RTC_Months[0][data->month]) {
 
- 			unix -= TM_RTC_Months[0][data->month];
 
-  8026670:	1b5b      	subs	r3, r3, r5
 
- 		year++;
 
- 	}
 
- 	/* Get year in xx format */
 
- 	data->year = (uint8_t) (year - 2000);
 
- 	/* Get month */
 
- 	for (data->month = 0; data->month < 12; data->month++) {
 
-  8026672:	7201      	strb	r1, [r0, #8]
 
-  8026674:	7a01      	ldrb	r1, [r0, #8]
 
-  8026676:	290b      	cmp	r1, #11
 
-  8026678:	d9e9      	bls.n	802664e <TM_RTC_GetDateTimeFromUnix+0xa6>
 
-  802667a:	e7f3      	b.n	8026664 <TM_RTC_GetDateTimeFromUnix+0xbc>
 
-  802667c:	20000648 	.word	0x20000648
 
- 08026680 <TM_RTC_Correction>:
 
-   * @brief  Кореектировака времени.
 
-   * @param  Часовой пояс
 
-   * @retval 
 
-   */
 
- void TM_RTC_Correction(float utc)
 
- {
 
-  8026680:	b510      	push	{r4, lr}
 
-  8026682:	b088      	sub	sp, #32
 
-  8026684:	4604      	mov	r4, r0
 
-   TM_RTC_t newData;
 
-   int      utcSec;
 
-   uint32_t unixTime;
 
-   
 
-   /* Получаем текущее время */
 
-   TM_RTC_GetDateTime(&data, TM_RTC_Format_BIN);
 
-  8026686:	2100      	movs	r1, #0
 
-  8026688:	4668      	mov	r0, sp
 
-  802668a:	f7ff fefd 	bl	8026488 <TM_RTC_GetDateTime>
 
-   
 
-   /* Рассчитываем поправку */
 
-   utcSec = (int)(3600.0*utc);
 
-  802668e:	4620      	mov	r0, r4
 
-  8026690:	f7f9 ff42 	bl	8020518 <__aeabi_f2d>
 
-  8026694:	a308      	add	r3, pc, #32	; (adr r3, 80266b8 <TM_RTC_Correction+0x38>)
 
-  8026696:	e9d3 2300 	ldrd	r2, r3, [r3]
 
-  802669a:	f7f9 ff91 	bl	80205c0 <__aeabi_dmul>
 
-  802669e:	f7fa fa29 	bl	8020af4 <__aeabi_d2iz>
 
-   unixTime = data.unix + utcSec;
 
-  80266a2:	9903      	ldr	r1, [sp, #12]
 
-  80266a4:	1841      	adds	r1, r0, r1
 
-   
 
-   /* Устанавливаем новое время */
 
-   TM_RTC_GetDateTimeFromUnix(&newData, unixTime);
 
-  80266a6:	a804      	add	r0, sp, #16
 
-  80266a8:	f7ff ff7e 	bl	80265a8 <TM_RTC_GetDateTimeFromUnix>
 
-   TM_RTC_SetDateTime(&newData, TM_RTC_Format_BIN);
 
-  80266ac:	a804      	add	r0, sp, #16
 
-  80266ae:	2100      	movs	r1, #0
 
-  80266b0:	f7ff fd0e 	bl	80260d0 <TM_RTC_SetDateTime>
 
- }
 
-  80266b4:	b008      	add	sp, #32
 
-  80266b6:	bd10      	pop	{r4, pc}
 
-  80266b8:	00000000 	.word	0x00000000
 
-  80266bc:	40ac2000 	.word	0x40ac2000
 
- 080266c0 <TM_RTC_SetDataTimeUnix>:
 
-   return TM_RTC_Status;  
 
- }
 
- void TM_RTC_SetDataTimeUnix(uint32_t unixTime)
 
- {
 
-  80266c0:	b51f      	push	{r0, r1, r2, r3, r4, lr}
 
-  80266c2:	4601      	mov	r1, r0
 
-   TM_RTC_t data;
 
-   
 
-   TM_RTC_GetDateTimeFromUnix(&data, unixTime);
 
-  80266c4:	4668      	mov	r0, sp
 
-  80266c6:	f7ff ff6f 	bl	80265a8 <TM_RTC_GetDateTimeFromUnix>
 
-   TM_RTC_SetDateTime(&data, TM_RTC_Format_BIN);
 
-  80266ca:	4668      	mov	r0, sp
 
-  80266cc:	2100      	movs	r1, #0
 
-  80266ce:	f7ff fcff 	bl	80260d0 <TM_RTC_SetDateTime>
 
- }
 
-  80266d2:	b005      	add	sp, #20
 
-  80266d4:	bd00      	pop	{pc}
 
- 080266d6 <TM_RTC_RequestHandler>:
 
- 	/* Read data from backup register */
 
- 	return *(uint32_t *)((&RTC->BKP0R) + 4 * location);
 
- }
 
- /* Callbacks */
 
- __weak void TM_RTC_RequestHandler(void) {
 
-  80266d6:	4770      	bx	lr
 
- 080266d8 <TM_RTC_AlarmAHandler>:
 
- 	/* If user needs this function, then they should be defined separatelly in your project */
 
- }
 
- __weak void TM_RTC_AlarmAHandler(void) {
 
-  80266d8:	4770      	bx	lr
 
- 080266da <TM_RTC_AlarmBHandler>:
 
- 	/* If user needs this function, then they should be defined separatelly in your project */
 
- }
 
- __weak void TM_RTC_AlarmBHandler(void) {
 
-  80266da:	4770      	bx	lr
 
- 080266dc <RTC_WKUP_IRQHandler>:
 
- 	/* If user needs this function, then they should be defined separatelly in your project */
 
- }
 
- /* Private RTC IRQ handlers */
 
- void RTC_WKUP_IRQHandler(void) {
 
-  80266dc:	b508      	push	{r3, lr}
 
- 	/* Check for RTC interrupt */
 
- 	if (RTC_GetITStatus(RTC_IT_WUT) != RESET) {
 
-  80266de:	f44f 4080 	mov.w	r0, #16384	; 0x4000
 
-  80266e2:	f7ff fa25 	bl	8025b30 <RTC_GetITStatus>
 
-  80266e6:	b128      	cbz	r0, 80266f4 <RTC_WKUP_IRQHandler+0x18>
 
- 		/* Clear interrupt flags */
 
- 		RTC_ClearITPendingBit(RTC_IT_WUT);
 
-  80266e8:	f44f 4080 	mov.w	r0, #16384	; 0x4000
 
-  80266ec:	f7ff fa38 	bl	8025b60 <RTC_ClearITPendingBit>
 
- 		
 
- 		/* Call user function */
 
- 		TM_RTC_RequestHandler();
 
-  80266f0:	f7ff fff1 	bl	80266d6 <TM_RTC_RequestHandler>
 
- 	}
 
- 	
 
- 	/* Clear EXTI line 22 bit */
 
- 	EXTI->PR = 0x00400000;
 
-  80266f4:	4b02      	ldr	r3, [pc, #8]	; (8026700 <RTC_WKUP_IRQHandler+0x24>)
 
-  80266f6:	f44f 0280 	mov.w	r2, #4194304	; 0x400000
 
-  80266fa:	615a      	str	r2, [r3, #20]
 
-  80266fc:	bd08      	pop	{r3, pc}
 
-  80266fe:	bf00      	nop
 
-  8026700:	40013c00 	.word	0x40013c00
 
- 08026704 <RTC_Alarm_IRQHandler>:
 
- }
 
- void RTC_Alarm_IRQHandler(void) {
 
-  8026704:	b508      	push	{r3, lr}
 
- 	/* RTC Alarm A check */
 
- 	if (RTC_GetITStatus(RTC_IT_ALRA) != RESET) {
 
-  8026706:	f44f 5080 	mov.w	r0, #4096	; 0x1000
 
-  802670a:	f7ff fa11 	bl	8025b30 <RTC_GetITStatus>
 
-  802670e:	b128      	cbz	r0, 802671c <RTC_Alarm_IRQHandler+0x18>
 
- 		/* Clear RTC Alarm A interrupt flag */
 
- 		RTC_ClearITPendingBit(RTC_IT_ALRA);
 
-  8026710:	f44f 5080 	mov.w	r0, #4096	; 0x1000
 
-  8026714:	f7ff fa24 	bl	8025b60 <RTC_ClearITPendingBit>
 
- 		
 
- 		/* Call user function for Alarm A */
 
- 		TM_RTC_AlarmAHandler();
 
-  8026718:	f7ff ffde 	bl	80266d8 <TM_RTC_AlarmAHandler>
 
- 	}
 
- 	
 
- 	/* RTC Alarm B check */
 
- 	if (RTC_GetITStatus(RTC_IT_ALRB) != RESET) {
 
-  802671c:	f44f 5000 	mov.w	r0, #8192	; 0x2000
 
-  8026720:	f7ff fa06 	bl	8025b30 <RTC_GetITStatus>
 
-  8026724:	b128      	cbz	r0, 8026732 <RTC_Alarm_IRQHandler+0x2e>
 
- 		/* Clear RTC Alarm A interrupt flag */
 
- 		RTC_ClearITPendingBit(RTC_IT_ALRB);
 
-  8026726:	f44f 5000 	mov.w	r0, #8192	; 0x2000
 
-  802672a:	f7ff fa19 	bl	8025b60 <RTC_ClearITPendingBit>
 
- 		
 
- 		/* Call user function for Alarm B */
 
- 		TM_RTC_AlarmBHandler();
 
-  802672e:	f7ff ffd4 	bl	80266da <TM_RTC_AlarmBHandler>
 
- 	}
 
- 	
 
- 	/* Clear EXTI line 17 bit */
 
- 	EXTI->PR = 0x00020000;
 
-  8026732:	4b02      	ldr	r3, [pc, #8]	; (802673c <RTC_Alarm_IRQHandler+0x38>)
 
-  8026734:	f44f 3200 	mov.w	r2, #131072	; 0x20000
 
-  8026738:	615a      	str	r2, [r3, #20]
 
-  802673a:	bd08      	pop	{r3, pc}
 
-  802673c:	40013c00 	.word	0x40013c00
 
- 08026740 <RTC_SetProfTime>:
 
- /**
 
-   * @brief  Установливает время срабатывания профилактики сульфатации
 
-   */
 
- void RTC_SetProfTime(char *str)
 
- {
 
-  8026740:	b530      	push	{r4, r5, lr}
 
-   uint32_t unixTime;
 
-   uint8_t i = 0;
 
- 	
 
-   /* Get date */
 
-   tmp.date = 0;
 
-   while (TM_RTC_CHARISNUM(*(str + i))) {
 
-  8026742:	2200      	movs	r2, #0
 
- /**
 
-   * @brief  Установливает время срабатывания профилактики сульфатации
 
-   */
 
- void RTC_SetProfTime(char *str)
 
- {
 
-  8026744:	b085      	sub	sp, #20
 
-   TM_RTC_t tmp;
 
-   uint32_t unixTime;
 
-   uint8_t i = 0;
 
-  8026746:	4613      	mov	r3, r2
 
- 	
 
-   /* Get date */
 
-   tmp.date = 0;
 
-   while (TM_RTC_CHARISNUM(*(str + i))) {
 
- 	tmp.date = tmp.date * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
-  8026748:	250a      	movs	r5, #10
 
-   uint32_t unixTime;
 
-   uint8_t i = 0;
 
- 	
 
-   /* Get date */
 
-   tmp.date = 0;
 
-   while (TM_RTC_CHARISNUM(*(str + i))) {
 
-  802674a:	e006      	b.n	802675a <RTC_SetProfTime+0x1a>
 
- 	tmp.date = tmp.date * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
-  802674c:	fb05 1202 	mla	r2, r5, r2, r1
 
-  8026750:	3a30      	subs	r2, #48	; 0x30
 
- 	i++;
 
-  8026752:	3301      	adds	r3, #1
 
-   uint8_t i = 0;
 
- 	
 
-   /* Get date */
 
-   tmp.date = 0;
 
-   while (TM_RTC_CHARISNUM(*(str + i))) {
 
- 	tmp.date = tmp.date * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
-  8026754:	f002 02ff 	and.w	r2, r2, #255	; 0xff
 
- 	i++;
 
-  8026758:	b2db      	uxtb	r3, r3
 
-   uint32_t unixTime;
 
-   uint8_t i = 0;
 
- 	
 
-   /* Get date */
 
-   tmp.date = 0;
 
-   while (TM_RTC_CHARISNUM(*(str + i))) {
 
-  802675a:	5cc1      	ldrb	r1, [r0, r3]
 
-  802675c:	f1a1 0430 	sub.w	r4, r1, #48	; 0x30
 
-  8026760:	2c09      	cmp	r4, #9
 
-  8026762:	d9f3      	bls.n	802674c <RTC_SetProfTime+0xc>
 
- 	tmp.date = tmp.date * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
- 	i++;
 
-   }
 
-   i++;
 
-  8026764:	3301      	adds	r3, #1
 
-  8026766:	f88d 2007 	strb.w	r2, [sp, #7]
 
-  802676a:	b2db      	uxtb	r3, r3
 
- 	
 
-   /* Get month */
 
-   tmp.month = 0;
 
-   while (TM_RTC_CHARISNUM(*(str + i))) {
 
-  802676c:	2200      	movs	r2, #0
 
- 	tmp.month = tmp.month * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
-  802676e:	250a      	movs	r5, #10
 
-   }
 
-   i++;
 
- 	
 
-   /* Get month */
 
-   tmp.month = 0;
 
-   while (TM_RTC_CHARISNUM(*(str + i))) {
 
-  8026770:	e006      	b.n	8026780 <RTC_SetProfTime+0x40>
 
- 	tmp.month = tmp.month * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
-  8026772:	fb05 1202 	mla	r2, r5, r2, r1
 
-  8026776:	3a30      	subs	r2, #48	; 0x30
 
- 	i++;
 
-  8026778:	3301      	adds	r3, #1
 
-   i++;
 
- 	
 
-   /* Get month */
 
-   tmp.month = 0;
 
-   while (TM_RTC_CHARISNUM(*(str + i))) {
 
- 	tmp.month = tmp.month * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
-  802677a:	f002 02ff 	and.w	r2, r2, #255	; 0xff
 
- 	i++;
 
-  802677e:	b2db      	uxtb	r3, r3
 
-   }
 
-   i++;
 
- 	
 
-   /* Get month */
 
-   tmp.month = 0;
 
-   while (TM_RTC_CHARISNUM(*(str + i))) {
 
-  8026780:	5cc1      	ldrb	r1, [r0, r3]
 
-  8026782:	f1a1 0430 	sub.w	r4, r1, #48	; 0x30
 
-  8026786:	2c09      	cmp	r4, #9
 
-  8026788:	d9f3      	bls.n	8026772 <RTC_SetProfTime+0x32>
 
- 	tmp.month = tmp.month * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
- 	i++;
 
-   }
 
-   //i++;
 
-   i+=3;
 
-  802678a:	3303      	adds	r3, #3
 
-  802678c:	f88d 2008 	strb.w	r2, [sp, #8]
 
-  8026790:	b2db      	uxtb	r3, r3
 
-   
 
-   /* Get year */
 
-   tmp.year = 0;
 
-   while (TM_RTC_CHARISNUM(*(str + i))) {
 
-  8026792:	2200      	movs	r2, #0
 
- 	tmp.year = tmp.year * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
-  8026794:	250a      	movs	r5, #10
 
-   //i++;
 
-   i+=3;
 
-   
 
-   /* Get year */
 
-   tmp.year = 0;
 
-   while (TM_RTC_CHARISNUM(*(str + i))) {
 
-  8026796:	e006      	b.n	80267a6 <RTC_SetProfTime+0x66>
 
- 	tmp.year = tmp.year * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
-  8026798:	fb05 1202 	mla	r2, r5, r2, r1
 
-  802679c:	3a30      	subs	r2, #48	; 0x30
 
- 	i++;
 
-  802679e:	3301      	adds	r3, #1
 
-   i+=3;
 
-   
 
-   /* Get year */
 
-   tmp.year = 0;
 
-   while (TM_RTC_CHARISNUM(*(str + i))) {
 
- 	tmp.year = tmp.year * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
-  80267a0:	f002 02ff 	and.w	r2, r2, #255	; 0xff
 
- 	i++;
 
-  80267a4:	b2db      	uxtb	r3, r3
 
-   //i++;
 
-   i+=3;
 
-   
 
-   /* Get year */
 
-   tmp.year = 0;
 
-   while (TM_RTC_CHARISNUM(*(str + i))) {
 
-  80267a6:	5cc1      	ldrb	r1, [r0, r3]
 
-  80267a8:	f1a1 0430 	sub.w	r4, r1, #48	; 0x30
 
-  80267ac:	2c09      	cmp	r4, #9
 
-  80267ae:	d9f3      	bls.n	8026798 <RTC_SetProfTime+0x58>
 
- 	tmp.year = tmp.year * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
- 	i++;
 
-   }
 
-   i++;
 
-   i++;
 
-  80267b0:	3302      	adds	r3, #2
 
-  80267b2:	f88d 2009 	strb.w	r2, [sp, #9]
 
-  80267b6:	b2db      	uxtb	r3, r3
 
- 	
 
-   /* Get hours */
 
-   tmp.hours = 0;
 
-   while (TM_RTC_CHARISNUM(*(str + i))) {
 
-  80267b8:	2200      	movs	r2, #0
 
- 	tmp.hours = tmp.hours * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
-  80267ba:	250a      	movs	r5, #10
 
-   i++;
 
-   i++;
 
- 	
 
-   /* Get hours */
 
-   tmp.hours = 0;
 
-   while (TM_RTC_CHARISNUM(*(str + i))) {
 
-  80267bc:	e006      	b.n	80267cc <RTC_SetProfTime+0x8c>
 
- 	tmp.hours = tmp.hours * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
-  80267be:	fb05 1202 	mla	r2, r5, r2, r1
 
-  80267c2:	3a30      	subs	r2, #48	; 0x30
 
- 	i++;
 
-  80267c4:	3301      	adds	r3, #1
 
-   i++;
 
- 	
 
-   /* Get hours */
 
-   tmp.hours = 0;
 
-   while (TM_RTC_CHARISNUM(*(str + i))) {
 
- 	tmp.hours = tmp.hours * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
-  80267c6:	f002 02ff 	and.w	r2, r2, #255	; 0xff
 
- 	i++;
 
-  80267ca:	b2db      	uxtb	r3, r3
 
-   i++;
 
-   i++;
 
- 	
 
-   /* Get hours */
 
-   tmp.hours = 0;
 
-   while (TM_RTC_CHARISNUM(*(str + i))) {
 
-  80267cc:	5cc1      	ldrb	r1, [r0, r3]
 
-  80267ce:	f1a1 0430 	sub.w	r4, r1, #48	; 0x30
 
-  80267d2:	2c09      	cmp	r4, #9
 
-  80267d4:	d9f3      	bls.n	80267be <RTC_SetProfTime+0x7e>
 
- 	tmp.hours = tmp.hours * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
- 	i++;
 
-   }
 
-   i++;
 
-  80267d6:	3301      	adds	r3, #1
 
-  80267d8:	f88d 2005 	strb.w	r2, [sp, #5]
 
-  80267dc:	b2db      	uxtb	r3, r3
 
- 	
 
-   /* Get minutes */
 
-   tmp.minutes = 0;
 
-   while (TM_RTC_CHARISNUM(*(str + i))) {
 
-  80267de:	2200      	movs	r2, #0
 
- 	tmp.minutes = tmp.minutes * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
-  80267e0:	250a      	movs	r5, #10
 
-   }
 
-   i++;
 
- 	
 
-   /* Get minutes */
 
-   tmp.minutes = 0;
 
-   while (TM_RTC_CHARISNUM(*(str + i))) {
 
-  80267e2:	e006      	b.n	80267f2 <RTC_SetProfTime+0xb2>
 
- 	tmp.minutes = tmp.minutes * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
-  80267e4:	fb05 1202 	mla	r2, r5, r2, r1
 
-  80267e8:	3a30      	subs	r2, #48	; 0x30
 
- 	i++;
 
-  80267ea:	3301      	adds	r3, #1
 
-   i++;
 
- 	
 
-   /* Get minutes */
 
-   tmp.minutes = 0;
 
-   while (TM_RTC_CHARISNUM(*(str + i))) {
 
- 	tmp.minutes = tmp.minutes * 10 + TM_RTC_CHAR2NUM(*(str + i));
 
-  80267ec:	f002 02ff 	and.w	r2, r2, #255	; 0xff
 
- 	i++;
 
-  80267f0:	b2db      	uxtb	r3, r3
 
-   }
 
-   i++;
 
- 	
 
-   /* Get minutes */
 
-   tmp.minutes = 0;
 
-   while (TM_RTC_CHARISNUM(*(str + i))) {
 
-  80267f2:	5cc1      	ldrb	r1, [r0, r3]
 
-  80267f4:	f1a1 0430 	sub.w	r4, r1, #48	; 0x30
 
-  80267f8:	2c09      	cmp	r4, #9
 
-  80267fa:	d9f3      	bls.n	80267e4 <RTC_SetProfTime+0xa4>
 
- 	i++;
 
-   }
 
-   i++;
 
- 	
 
-   /* Get seconds */
 
-   tmp.seconds = 0;
 
-  80267fc:	2300      	movs	r3, #0
 
-  80267fe:	f88d 3000 	strb.w	r3, [sp]
 
- 	
 
-   /* Устанавливаем +1 для профилактики */
 
-   tmp.year += 1;
 
-  8026802:	f89d 3009 	ldrb.w	r3, [sp, #9]
 
-  8026806:	f88d 2004 	strb.w	r2, [sp, #4]
 
-  802680a:	3301      	adds	r3, #1
 
-   unixTime = TM_RTC_GetUnixTimeStamp(&tmp);  
 
-  802680c:	4668      	mov	r0, sp
 
- 	
 
-   /* Get seconds */
 
-   tmp.seconds = 0;
 
- 	
 
-   /* Устанавливаем +1 для профилактики */
 
-   tmp.year += 1;
 
-  802680e:	f88d 3009 	strb.w	r3, [sp, #9]
 
-   unixTime = TM_RTC_GetUnixTimeStamp(&tmp);  
 
-  8026812:	f7ff fdd3 	bl	80263bc <TM_RTC_GetUnixTimeStamp>
 
- 	if (location > 18) {
 
- 		return;
 
- 	}
 
- 	
 
- 	/* Write data to backup register */
 
- 	*(uint32_t *)((&RTC->BKP0R) + 4 * location) = value;
 
-  8026816:	4b02      	ldr	r3, [pc, #8]	; (8026820 <RTC_SetProfTime+0xe0>)
 
-  8026818:	6018      	str	r0, [r3, #0]
 
- 	
 
-   /* Устанавливаем +1 для профилактики */
 
-   tmp.year += 1;
 
-   unixTime = TM_RTC_GetUnixTimeStamp(&tmp);  
 
-   TM_RTC_WriteBackupRegister(RTC_BKP_DR0, unixTime);
 
-  802681a:	b005      	add	sp, #20
 
-  802681c:	bd30      	pop	{r4, r5, pc}
 
-  802681e:	bf00      	nop
 
-  8026820:	40002850 	.word	0x40002850
 
- 08026824 <spi_tx_rx>:
 
- //static TN_MUTEX spi_mutex;
 
- static uint8_t spi_tx_rx(uint8_t byte) {
 
- 	while (!(SPI2->SR & SPI_SR_TXE)) {}
 
-  8026824:	4907      	ldr	r1, [pc, #28]	; (8026844 <spi_tx_rx+0x20>)
 
-  8026826:	890a      	ldrh	r2, [r1, #8]
 
-  8026828:	4b06      	ldr	r3, [pc, #24]	; (8026844 <spi_tx_rx+0x20>)
 
-  802682a:	f002 0202 	and.w	r2, r2, #2
 
-  802682e:	b292      	uxth	r2, r2
 
-  8026830:	2a00      	cmp	r2, #0
 
-  8026832:	d0f8      	beq.n	8026826 <spi_tx_rx+0x2>
 
- 	SPI2->DR = byte;
 
-  8026834:	8198      	strh	r0, [r3, #12]
 
- 		
 
- 	while (!(SPI2->SR & SPI_SR_RXNE)) {}
 
-  8026836:	891a      	ldrh	r2, [r3, #8]
 
-  8026838:	07d2      	lsls	r2, r2, #31
 
-  802683a:	d5fc      	bpl.n	8026836 <spi_tx_rx+0x12>
 
- 	return SPI2->DR;
 
-  802683c:	4b01      	ldr	r3, [pc, #4]	; (8026844 <spi_tx_rx+0x20>)
 
-  802683e:	8998      	ldrh	r0, [r3, #12]
 
- }
 
-  8026840:	b2c0      	uxtb	r0, r0
 
-  8026842:	4770      	bx	lr
 
-  8026844:	40003800 	.word	0x40003800
 
- 08026848 <send_addr>:
 
- 		status = spi_tx_rx(0);
 
- 	} while (status & SR_WIP);
 
- 	SPI_FLASH_CS_H();
 
- }
 
- static inline void send_addr(int addr) {
 
-  8026848:	b510      	push	{r4, lr}
 
-  802684a:	4604      	mov	r4, r0
 
- 	spi_tx_rx((addr >> 16) & 0xFF);
 
-  802684c:	f3c0 4007 	ubfx	r0, r0, #16, #8
 
-  8026850:	f7ff ffe8 	bl	8026824 <spi_tx_rx>
 
- 	spi_tx_rx((addr >> 8) & 0xFF);
 
-  8026854:	f3c4 2007 	ubfx	r0, r4, #8, #8
 
-  8026858:	f7ff ffe4 	bl	8026824 <spi_tx_rx>
 
- 	spi_tx_rx(addr & 0xFF);
 
-  802685c:	b2e0      	uxtb	r0, r4
 
- }
 
-  802685e:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
- }
 
- static inline void send_addr(int addr) {
 
- 	spi_tx_rx((addr >> 16) & 0xFF);
 
- 	spi_tx_rx((addr >> 8) & 0xFF);
 
- 	spi_tx_rx(addr & 0xFF);
 
-  8026862:	f7ff bfdf 	b.w	8026824 <spi_tx_rx>
 
- 08026866 <spi_flash_read_sfdp>:
 
- }
 
- static int spi_flash_read_sfdp(int addr, void *buf, size_t len) {
 
-  8026866:	b570      	push	{r4, r5, r6, lr}
 
-  8026868:	4605      	mov	r5, r0
 
-  802686a:	460c      	mov	r4, r1
 
- 	SPI_FLASH_CS_L();
 
-  802686c:	2005      	movs	r0, #5
 
-  802686e:	2100      	movs	r1, #0
 
- 	spi_tx_rx((addr >> 16) & 0xFF);
 
- 	spi_tx_rx((addr >> 8) & 0xFF);
 
- 	spi_tx_rx(addr & 0xFF);
 
- }
 
- static int spi_flash_read_sfdp(int addr, void *buf, size_t len) {
 
-  8026870:	4616      	mov	r6, r2
 
- 	SPI_FLASH_CS_L();
 
-  8026872:	f7ff fb5d 	bl	8025f30 <gpio_set>
 
- 	spi_tx_rx(CMD_RDSFDP);
 
-  8026876:	205a      	movs	r0, #90	; 0x5a
 
-  8026878:	f7ff ffd4 	bl	8026824 <spi_tx_rx>
 
- 	send_addr(addr);
 
-  802687c:	4628      	mov	r0, r5
 
-  802687e:	f7ff ffe3 	bl	8026848 <send_addr>
 
- 	spi_tx_rx(0);
 
-  8026882:	2000      	movs	r0, #0
 
-  8026884:	f7ff ffce 	bl	8026824 <spi_tx_rx>
 
- 	spi_tx_rx((addr >> 16) & 0xFF);
 
- 	spi_tx_rx((addr >> 8) & 0xFF);
 
- 	spi_tx_rx(addr & 0xFF);
 
- }
 
- static int spi_flash_read_sfdp(int addr, void *buf, size_t len) {
 
-  8026888:	19a6      	adds	r6, r4, r6
 
- 	SPI_FLASH_CS_L();
 
- 	spi_tx_rx(CMD_RDSFDP);
 
- 	send_addr(addr);
 
- 	spi_tx_rx(0);
 
- 	while (len--)
 
-  802688a:	e004      	b.n	8026896 <spi_flash_read_sfdp+0x30>
 
- 		*((uint8_t *)buf++) = spi_tx_rx(0);
 
-  802688c:	2000      	movs	r0, #0
 
-  802688e:	f7ff ffc9 	bl	8026824 <spi_tx_rx>
 
-  8026892:	f804 0b01 	strb.w	r0, [r4], #1
 
- static int spi_flash_read_sfdp(int addr, void *buf, size_t len) {
 
- 	SPI_FLASH_CS_L();
 
- 	spi_tx_rx(CMD_RDSFDP);
 
- 	send_addr(addr);
 
- 	spi_tx_rx(0);
 
- 	while (len--)
 
-  8026896:	42b4      	cmp	r4, r6
 
-  8026898:	d1f8      	bne.n	802688c <spi_flash_read_sfdp+0x26>
 
- 		*((uint8_t *)buf++) = spi_tx_rx(0);
 
- 	SPI_FLASH_CS_H();
 
-  802689a:	2005      	movs	r0, #5
 
-  802689c:	2101      	movs	r1, #1
 
-  802689e:	f7ff fb47 	bl	8025f30 <gpio_set>
 
- 	return 0;
 
- }
 
-  80268a2:	2000      	movs	r0, #0
 
-  80268a4:	bd70      	pop	{r4, r5, r6, pc}
 
- 080268a6 <wait_write_enable>:
 
- spi_flash_desc_t spi_flash_desc;
 
- static inline void wait_write_enable(void) {
 
- 	uint8_t status;
 
- //	spi_cs_down();
 
- 	SPI_FLASH_CS_L();
 
-  80268a6:	2005      	movs	r0, #5
 
- #define SR_WEL	(1 << 1)
 
- #define SR_SRWD	(1 << 7)
 
- spi_flash_desc_t spi_flash_desc;
 
- static inline void wait_write_enable(void) {
 
-  80268a8:	b508      	push	{r3, lr}
 
- 	uint8_t status;
 
- //	spi_cs_down();
 
- 	SPI_FLASH_CS_L();
 
-  80268aa:	2100      	movs	r1, #0
 
-  80268ac:	f7ff fb40 	bl	8025f30 <gpio_set>
 
- 	spi_tx_rx(CMD_RDSR);
 
-  80268b0:	2005      	movs	r0, #5
 
-  80268b2:	f7ff ffb7 	bl	8026824 <spi_tx_rx>
 
- 	do {
 
- 		status = spi_tx_rx(0);
 
-  80268b6:	2000      	movs	r0, #0
 
-  80268b8:	f7ff ffb4 	bl	8026824 <spi_tx_rx>
 
- 	} while (!(status & SR_WEL));
 
-  80268bc:	f000 0002 	and.w	r0, r0, #2
 
-  80268c0:	b2c0      	uxtb	r0, r0
 
-  80268c2:	2800      	cmp	r0, #0
 
-  80268c4:	d0f7      	beq.n	80268b6 <wait_write_enable+0x10>
 
- //	spi_cs_up();
 
- 	SPI_FLASH_CS_H();
 
-  80268c6:	2005      	movs	r0, #5
 
-  80268c8:	2101      	movs	r1, #1
 
- }
 
-  80268ca:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
 
- 	spi_tx_rx(CMD_RDSR);
 
- 	do {
 
- 		status = spi_tx_rx(0);
 
- 	} while (!(status & SR_WEL));
 
- //	spi_cs_up();
 
- 	SPI_FLASH_CS_H();
 
-  80268ce:	f7ff bb2f 	b.w	8025f30 <gpio_set>
 
- 080268d2 <wait_write_end>:
 
- }
 
- static inline void wait_write_end(void) {
 
- 	uint8_t status;
 
- 	SPI_FLASH_CS_L();
 
-  80268d2:	2005      	movs	r0, #5
 
- 	} while (!(status & SR_WEL));
 
- //	spi_cs_up();
 
- 	SPI_FLASH_CS_H();
 
- }
 
- static inline void wait_write_end(void) {
 
-  80268d4:	b508      	push	{r3, lr}
 
- 	uint8_t status;
 
- 	SPI_FLASH_CS_L();
 
-  80268d6:	2100      	movs	r1, #0
 
-  80268d8:	f7ff fb2a 	bl	8025f30 <gpio_set>
 
- 	spi_tx_rx(CMD_RDSR);
 
-  80268dc:	2005      	movs	r0, #5
 
-  80268de:	f7ff ffa1 	bl	8026824 <spi_tx_rx>
 
- 	do {
 
- 		status = spi_tx_rx(0);
 
-  80268e2:	2000      	movs	r0, #0
 
-  80268e4:	f7ff ff9e 	bl	8026824 <spi_tx_rx>
 
- 	} while (status & SR_WIP);
 
-  80268e8:	07c1      	lsls	r1, r0, #31
 
-  80268ea:	d4fa      	bmi.n	80268e2 <wait_write_end+0x10>
 
- 	SPI_FLASH_CS_H();
 
-  80268ec:	2005      	movs	r0, #5
 
-  80268ee:	2101      	movs	r1, #1
 
- }
 
-  80268f0:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
 
- 	SPI_FLASH_CS_L();
 
- 	spi_tx_rx(CMD_RDSR);
 
- 	do {
 
- 		status = spi_tx_rx(0);
 
- 	} while (status & SR_WIP);
 
- 	SPI_FLASH_CS_H();
 
-  80268f4:	f7ff bb1c 	b.w	8025f30 <gpio_set>
 
- 080268f8 <spi_flash_read>:
 
- 		*((uint8_t *)buf++) = spi_tx_rx(0);
 
- 	SPI_FLASH_CS_H();
 
- 	return 0;
 
- }
 
- ssize_t spi_flash_read(int addr, void *buf, size_t len, uint32_t timeout) {
 
-  80268f8:	b570      	push	{r4, r5, r6, lr}
 
-  80268fa:	4605      	mov	r5, r0
 
-  80268fc:	460c      	mov	r4, r1
 
- 	ssize_t ret = 0;
 
- //	ret = tn_mutex_lock(&spi_mutex, timeout);
 
- //	if (ret != TERR_NO_ERR)
 
- //		return ret;
 
- 	SPI_FLASH_CS_L();
 
-  80268fe:	2005      	movs	r0, #5
 
-  8026900:	2100      	movs	r1, #0
 
- 		*((uint8_t *)buf++) = spi_tx_rx(0);
 
- 	SPI_FLASH_CS_H();
 
- 	return 0;
 
- }
 
- ssize_t spi_flash_read(int addr, void *buf, size_t len, uint32_t timeout) {
 
-  8026902:	4616      	mov	r6, r2
 
- 	ssize_t ret = 0;
 
- //	ret = tn_mutex_lock(&spi_mutex, timeout);
 
- //	if (ret != TERR_NO_ERR)
 
- //		return ret;
 
- 	SPI_FLASH_CS_L();
 
-  8026904:	f7ff fb14 	bl	8025f30 <gpio_set>
 
- 	spi_tx_rx(CMD_READ);
 
-  8026908:	2003      	movs	r0, #3
 
-  802690a:	f7ff ff8b 	bl	8026824 <spi_tx_rx>
 
- 	send_addr(addr);
 
-  802690e:	4628      	mov	r0, r5
 
-  8026910:	f7ff ff9a 	bl	8026848 <send_addr>
 
- 		*((uint8_t *)buf++) = spi_tx_rx(0);
 
- 	SPI_FLASH_CS_H();
 
- 	return 0;
 
- }
 
- ssize_t spi_flash_read(int addr, void *buf, size_t len, uint32_t timeout) {
 
-  8026914:	19a6      	adds	r6, r4, r6
 
- //		return ret;
 
- 	SPI_FLASH_CS_L();
 
- 	spi_tx_rx(CMD_READ);
 
- 	send_addr(addr);
 
- 	while (len--)
 
-  8026916:	e004      	b.n	8026922 <spi_flash_read+0x2a>
 
- 		*((uint8_t *)buf++) = spi_tx_rx(0);
 
-  8026918:	2000      	movs	r0, #0
 
-  802691a:	f7ff ff83 	bl	8026824 <spi_tx_rx>
 
-  802691e:	f804 0b01 	strb.w	r0, [r4], #1
 
- //		return ret;
 
- 	SPI_FLASH_CS_L();
 
- 	spi_tx_rx(CMD_READ);
 
- 	send_addr(addr);
 
- 	while (len--)
 
-  8026922:	42b4      	cmp	r4, r6
 
-  8026924:	d1f8      	bne.n	8026918 <spi_flash_read+0x20>
 
- 		*((uint8_t *)buf++) = spi_tx_rx(0);
 
- 	SPI_FLASH_CS_H();
 
-  8026926:	2005      	movs	r0, #5
 
-  8026928:	2101      	movs	r1, #1
 
-  802692a:	f7ff fb01 	bl	8025f30 <gpio_set>
 
- //	tn_mutex_unlock(&spi_mutex);
 
- 	return len;
 
- }
 
-  802692e:	f04f 30ff 	mov.w	r0, #4294967295
 
-  8026932:	bd70      	pop	{r4, r5, r6, pc}
 
- 08026934 <spi_flash_pp>:
 
- //	ret = tn_mutex_lock(&spi_mutex, timeout);
 
- //	if (ret != TERR_NO_ERR)
 
- //		return ret;
 
- 	// don't allow page wrapping
 
- 	ssize_t ret = 0;
 
- 	if ((addr & 0xFF) + len > 0xFF)
 
-  8026934:	b2c3      	uxtb	r3, r0
 
- 	return len;
 
- }
 
- #define TIMEOUT 10000
 
- uint16_t spi_flash_pp(int addr, const void *buf, size_t len, uint32_t timeout) {
 
-  8026936:	b570      	push	{r4, r5, r6, lr}
 
-  8026938:	4615      	mov	r5, r2
 
- //	ret = tn_mutex_lock(&spi_mutex, timeout);
 
- //	if (ret != TERR_NO_ERR)
 
- //		return ret;
 
- 	// don't allow page wrapping
 
- 	ssize_t ret = 0;
 
- 	if ((addr & 0xFF) + len > 0xFF)
 
-  802693a:	18d2      	adds	r2, r2, r3
 
-  802693c:	2aff      	cmp	r2, #255	; 0xff
 
- 	    len = 0x100 - (addr & 0xFF);
 
-  802693e:	bf88      	it	hi
 
-  8026940:	f5c3 7580 	rsbhi	r5, r3, #256	; 0x100
 
- 	return len;
 
- }
 
- #define TIMEOUT 10000
 
- uint16_t spi_flash_pp(int addr, const void *buf, size_t len, uint32_t timeout) {
 
-  8026944:	4604      	mov	r4, r0
 
-  8026946:	460e      	mov	r6, r1
 
- 	ssize_t ret = 0;
 
- 	if ((addr & 0xFF) + len > 0xFF)
 
- 	    len = 0x100 - (addr & 0xFF);
 
- 	ret = len;
 
- 	SPI_FLASH_CS_L();
 
-  8026948:	2005      	movs	r0, #5
 
-  802694a:	2100      	movs	r1, #0
 
-  802694c:	f7ff faf0 	bl	8025f30 <gpio_set>
 
- 	spi_tx_rx(CMD_WREN);
 
-  8026950:	2006      	movs	r0, #6
 
-  8026952:	f7ff ff67 	bl	8026824 <spi_tx_rx>
 
- 	SPI_FLASH_CS_H();
 
-  8026956:	2005      	movs	r0, #5
 
-  8026958:	2101      	movs	r1, #1
 
-  802695a:	f7ff fae9 	bl	8025f30 <gpio_set>
 
- 	wait_write_enable();
 
-  802695e:	f7ff ffa2 	bl	80268a6 <wait_write_enable>
 
- 	SPI_FLASH_CS_L();
 
-  8026962:	2100      	movs	r1, #0
 
-  8026964:	2005      	movs	r0, #5
 
-  8026966:	f7ff fae3 	bl	8025f30 <gpio_set>
 
- 	spi_tx_rx(CMD_PP);
 
-  802696a:	2002      	movs	r0, #2
 
-  802696c:	f7ff ff5a 	bl	8026824 <spi_tx_rx>
 
- 	send_addr(addr);
 
-  8026970:	4620      	mov	r0, r4
 
-  8026972:	f7ff ff69 	bl	8026848 <send_addr>
 
- 	while (len--)
 
-  8026976:	2400      	movs	r4, #0
 
-  8026978:	e003      	b.n	8026982 <spi_flash_pp+0x4e>
 
- 	    spi_tx_rx(*((uint8_t *)buf++));
 
-  802697a:	5d30      	ldrb	r0, [r6, r4]
 
-  802697c:	f7ff ff52 	bl	8026824 <spi_tx_rx>
 
-  8026980:	3401      	adds	r4, #1
 
- 	wait_write_enable();
 
- 	SPI_FLASH_CS_L();
 
- 	spi_tx_rx(CMD_PP);
 
- 	send_addr(addr);
 
- 	while (len--)
 
-  8026982:	42ac      	cmp	r4, r5
 
-  8026984:	d1f9      	bne.n	802697a <spi_flash_pp+0x46>
 
- 	    spi_tx_rx(*((uint8_t *)buf++));
 
- 	SPI_FLASH_CS_H();
 
-  8026986:	2005      	movs	r0, #5
 
-  8026988:	2101      	movs	r1, #1
 
-  802698a:	f7ff fad1 	bl	8025f30 <gpio_set>
 
- 	wait_write_end();
 
-  802698e:	f7ff ffa0 	bl	80268d2 <wait_write_end>
 
- //	tn_mutex_unlock(&spi_mutex);
 
- 	return ret;
 
- }
 
-  8026992:	b2a0      	uxth	r0, r4
 
-  8026994:	bd70      	pop	{r4, r5, r6, pc}
 
- 08026996 <spi_flash_write>:
 
- ssize_t spi_flash_write(int addr, const void *buf, size_t len, uint32_t timeout) {
 
-  8026996:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
-  8026998:	4607      	mov	r7, r0
 
-  802699a:	460e      	mov	r6, r1
 
-  802699c:	4615      	mov	r5, r2
 
- 	int ret = 0, offset = 0;
 
-  802699e:	2400      	movs	r4, #0
 
- 	do {
 
- 	    ret = spi_flash_pp(addr + offset, buf + offset, len - offset, 0);
 
-  80269a0:	1938      	adds	r0, r7, r4
 
-  80269a2:	1931      	adds	r1, r6, r4
 
-  80269a4:	1b2a      	subs	r2, r5, r4
 
-  80269a6:	2300      	movs	r3, #0
 
-  80269a8:	f7ff ffc4 	bl	8026934 <spi_flash_pp>
 
- 	    offset += ret;
 
-  80269ac:	1824      	adds	r4, r4, r0
 
- 	} while (len - offset);
 
-  80269ae:	42a5      	cmp	r5, r4
 
-  80269b0:	d1f6      	bne.n	80269a0 <spi_flash_write+0xa>
 
- 	return 0;
 
- }
 
-  80269b2:	2000      	movs	r0, #0
 
-  80269b4:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 
- 080269b6 <spi_flash_erase_sector>:
 
- 	wait_write_end();
 
- 	return 0;
 
- }
 
- int spi_flash_erase_sector(int addr, uint32_t timeout) {
 
-  80269b6:	b510      	push	{r4, lr}
 
- 	int ret = 0;
 
- //	ret = tn_mutex_lock(&spi_mutex, timeout);
 
- //	if (ret != TERR_NO_ERR)
 
- //		return ret;
 
- 	SPI_FLASH_CS_L();
 
-  80269b8:	2100      	movs	r1, #0
 
- 	wait_write_end();
 
- 	return 0;
 
- }
 
- int spi_flash_erase_sector(int addr, uint32_t timeout) {
 
-  80269ba:	4604      	mov	r4, r0
 
- 	int ret = 0;
 
- //	ret = tn_mutex_lock(&spi_mutex, timeout);
 
- //	if (ret != TERR_NO_ERR)
 
- //		return ret;
 
- 	SPI_FLASH_CS_L();
 
-  80269bc:	2005      	movs	r0, #5
 
-  80269be:	f7ff fab7 	bl	8025f30 <gpio_set>
 
- 	spi_tx_rx(CMD_WREN);
 
-  80269c2:	2006      	movs	r0, #6
 
-  80269c4:	f7ff ff2e 	bl	8026824 <spi_tx_rx>
 
- 	SPI_FLASH_CS_H();
 
-  80269c8:	2005      	movs	r0, #5
 
-  80269ca:	2101      	movs	r1, #1
 
-  80269cc:	f7ff fab0 	bl	8025f30 <gpio_set>
 
- 	wait_write_enable();
 
-  80269d0:	f7ff ff69 	bl	80268a6 <wait_write_enable>
 
- 	SPI_FLASH_CS_L();
 
-  80269d4:	2100      	movs	r1, #0
 
-  80269d6:	2005      	movs	r0, #5
 
-  80269d8:	f7ff faaa 	bl	8025f30 <gpio_set>
 
- 	spi_tx_rx(CMD_SE);
 
-  80269dc:	2020      	movs	r0, #32
 
-  80269de:	f7ff ff21 	bl	8026824 <spi_tx_rx>
 
- 	send_addr(addr);
 
-  80269e2:	4620      	mov	r0, r4
 
-  80269e4:	f7ff ff30 	bl	8026848 <send_addr>
 
- 	SPI_FLASH_CS_H();
 
-  80269e8:	2005      	movs	r0, #5
 
-  80269ea:	2101      	movs	r1, #1
 
-  80269ec:	f7ff faa0 	bl	8025f30 <gpio_set>
 
- 	wait_write_end();
 
-  80269f0:	f7ff ff6f 	bl	80268d2 <wait_write_end>
 
- //	tn_mutex_unlock(&spi_mutex);
 
- 	return 0;
 
- }
 
-  80269f4:	2000      	movs	r0, #0
 
-  80269f6:	bd10      	pop	{r4, pc}
 
- 080269f8 <spi_flash_init>:
 
- bool spi_flash_init(void) {
 
-  80269f8:	b530      	push	{r4, r5, lr}
 
- 	uint32_t i, ptable, bitsize = 0;
 
- 	uint8_t tmp[4];
 
- 	spi_flash_desc.present = false;
 
-  80269fa:	4b48      	ldr	r3, [pc, #288]	; (8026b1c <spi_flash_init+0x124>)
 
- //	tn_mutex_unlock(&spi_mutex);
 
- 	return 0;
 
- }
 
- bool spi_flash_init(void) {
 
- 	uint32_t i, ptable, bitsize = 0;
 
-  80269fc:	2400      	movs	r4, #0
 
- //	tn_mutex_unlock(&spi_mutex);
 
- 	return 0;
 
- }
 
- bool spi_flash_init(void) {
 
-  80269fe:	b085      	sub	sp, #20
 
- 	uint32_t i, ptable, bitsize = 0;
 
- 	uint8_t tmp[4];
 
- 	spi_flash_desc.present = false;
 
-  8026a00:	701c      	strb	r4, [r3, #0]
 
- static void spi_init_(void) {
 
- //	tn_mutex_create(&spi_mutex, TN_MUTEX_ATTR_INHERIT, 0);
 
- 	//tn_sem_create(&xact.ready, 0, 1);
 
- 	RCC->APB1ENR |= RCC_APB1ENR_SPI2EN;
 
-  8026a02:	4b47      	ldr	r3, [pc, #284]	; (8026b20 <spi_flash_init+0x128>)
 
- //	tn_mutex_unlock(&spi_mutex);
 
- 	return 0;
 
- }
 
- bool spi_flash_init(void) {
 
- 	uint32_t i, ptable, bitsize = 0;
 
-  8026a04:	9402      	str	r4, [sp, #8]
 
- static void spi_init_(void) {
 
- //	tn_mutex_create(&spi_mutex, TN_MUTEX_ATTR_INHERIT, 0);
 
- 	//tn_sem_create(&xact.ready, 0, 1);
 
- 	RCC->APB1ENR |= RCC_APB1ENR_SPI2EN;
 
-  8026a06:	6c1a      	ldr	r2, [r3, #64]	; 0x40
 
-  8026a08:	f442 4280 	orr.w	r2, r2, #16384	; 0x4000
 
-  8026a0c:	641a      	str	r2, [r3, #64]	; 0x40
 
- 	RCC->APB1RSTR |= RCC_APB1RSTR_SPI2RST;
 
-  8026a0e:	6a1a      	ldr	r2, [r3, #32]
 
-  8026a10:	f442 4200 	orr.w	r2, r2, #32768	; 0x8000
 
-  8026a14:	621a      	str	r2, [r3, #32]
 
- 	RCC->APB1RSTR &= ~RCC_APB1RSTR_SPI2RST;
 
-  8026a16:	6a1a      	ldr	r2, [r3, #32]
 
-  8026a18:	f422 4200 	bic.w	r2, r2, #32768	; 0x8000
 
-  8026a1c:	621a      	str	r2, [r3, #32]
 
- 	SPI2->CR1 &= ~SPI_CR1_SPE;
 
-  8026a1e:	f5a3 3300 	sub.w	r3, r3, #131072	; 0x20000
 
- 	spi_flash_desc.present = false;
 
- 	spi_init_();
 
- 	// check SFDP magic
 
- 	spi_flash_read_sfdp(0, tmp, 4);
 
-  8026a22:	ad03      	add	r5, sp, #12
 
- 	RCC->APB1ENR |= RCC_APB1ENR_SPI2EN;
 
- 	RCC->APB1RSTR |= RCC_APB1RSTR_SPI2RST;
 
- 	RCC->APB1RSTR &= ~RCC_APB1RSTR_SPI2RST;
 
- 	SPI2->CR1 &= ~SPI_CR1_SPE;
 
-  8026a24:	881a      	ldrh	r2, [r3, #0]
 
-  8026a26:	f022 0240 	bic.w	r2, r2, #64	; 0x40
 
-  8026a2a:	0412      	lsls	r2, r2, #16
 
-  8026a2c:	0c12      	lsrs	r2, r2, #16
 
-  8026a2e:	801a      	strh	r2, [r3, #0]
 
- 	//SPI2->CR1 = SPI_CR1_MSTR | SPI_CR1_BR_1 | SPI_CR1_SSM | SPI_CR1_SSI;
 
- 	SPI2->CR1 = SPI_CR1_MSTR | SPI_CR1_SSM | SPI_CR1_SSI;
 
-  8026a30:	f44f 7241 	mov.w	r2, #772	; 0x304
 
-  8026a34:	801a      	strh	r2, [r3, #0]
 
- 	SPI2->CR2 = 0;//SPI_CR2_SSOE;
 
-  8026a36:	809c      	strh	r4, [r3, #4]
 
- 	SPI2->CR1 |= SPI_CR1_SPE;
 
-  8026a38:	881a      	ldrh	r2, [r3, #0]
 
-  8026a3a:	b292      	uxth	r2, r2
 
-  8026a3c:	f042 0240 	orr.w	r2, r2, #64	; 0x40
 
-  8026a40:	801a      	strh	r2, [r3, #0]
 
- 	spi_flash_desc.present = false;
 
- 	spi_init_();
 
- 	// check SFDP magic
 
- 	spi_flash_read_sfdp(0, tmp, 4);
 
-  8026a42:	4620      	mov	r0, r4
 
-  8026a44:	2204      	movs	r2, #4
 
-  8026a46:	4629      	mov	r1, r5
 
-  8026a48:	f7ff ff0d 	bl	8026866 <spi_flash_read_sfdp>
 
- 	if (!(tmp[0] == 0x53 && tmp[1] == 0x46 && 
 
-  8026a4c:	f89d 300c 	ldrb.w	r3, [sp, #12]
 
-  8026a50:	2b53      	cmp	r3, #83	; 0x53
 
-  8026a52:	d001      	beq.n	8026a58 <spi_flash_init+0x60>
 
- 		tmp[2] == 0x44 && tmp[3] == 0x50))
 
- 		return 0;
 
-  8026a54:	2000      	movs	r0, #0
 
-  8026a56:	e05e      	b.n	8026b16 <spi_flash_init+0x11e>
 
- 	spi_init_();
 
- 	// check SFDP magic
 
- 	spi_flash_read_sfdp(0, tmp, 4);
 
- 	if (!(tmp[0] == 0x53 && tmp[1] == 0x46 && 
 
-  8026a58:	f89d 300d 	ldrb.w	r3, [sp, #13]
 
-  8026a5c:	2b46      	cmp	r3, #70	; 0x46
 
-  8026a5e:	d1f9      	bne.n	8026a54 <spi_flash_init+0x5c>
 
-  8026a60:	f89d 300e 	ldrb.w	r3, [sp, #14]
 
-  8026a64:	2b44      	cmp	r3, #68	; 0x44
 
-  8026a66:	d1f5      	bne.n	8026a54 <spi_flash_init+0x5c>
 
-  8026a68:	f89d 300f 	ldrb.w	r3, [sp, #15]
 
-  8026a6c:	2b50      	cmp	r3, #80	; 0x50
 
-  8026a6e:	d1f1      	bne.n	8026a54 <spi_flash_init+0x5c>
 
- 		tmp[2] == 0x44 && tmp[3] == 0x50))
 
- 		return 0;
 
- 	// get parameter headers count
 
- 	spi_flash_read_sfdp(0x06, tmp, 1);
 
-  8026a70:	2006      	movs	r0, #6
 
-  8026a72:	4629      	mov	r1, r5
 
-  8026a74:	2201      	movs	r2, #1
 
-  8026a76:	f7ff fef6 	bl	8026866 <spi_flash_read_sfdp>
 
- 	// find first jedec pheader (with ID == 0)
 
- 	for (ptable = 0x08, i = 0; i <= tmp[0]; i++, ptable += 8) {
 
-  8026a7a:	2308      	movs	r3, #8
 
-  8026a7c:	e01a      	b.n	8026ab4 <spi_flash_init+0xbc>
 
- 		spi_flash_read_sfdp(ptable, tmp, 1);
 
-  8026a7e:	9801      	ldr	r0, [sp, #4]
 
-  8026a80:	4629      	mov	r1, r5
 
-  8026a82:	2201      	movs	r2, #1
 
-  8026a84:	f7ff feef 	bl	8026866 <spi_flash_read_sfdp>
 
- 		if (tmp[0] == 0)
 
-  8026a88:	f89d 300c 	ldrb.w	r3, [sp, #12]
 
-  8026a8c:	b97b      	cbnz	r3, 8026aae <spi_flash_init+0xb6>
 
- 			break;
 
- 	}
 
- 	// read ptable pointer from pheader
 
- 	spi_flash_read_sfdp(ptable + 4, &ptable, 3);
 
-  8026a8e:	a904      	add	r1, sp, #16
 
-  8026a90:	2203      	movs	r2, #3
 
-  8026a92:	f851 0d0c 	ldr.w	r0, [r1, #-12]!
 
-  8026a96:	3004      	adds	r0, #4
 
-  8026a98:	f7ff fee5 	bl	8026866 <spi_flash_read_sfdp>
 
- 	// get flash density (size in bits)
 
- 	if (spi_flash_read_sfdp(ptable + 4, &bitsize, 4) < 0 || !bitsize)
 
-  8026a9c:	9801      	ldr	r0, [sp, #4]
 
-  8026a9e:	2204      	movs	r2, #4
 
-  8026aa0:	3004      	adds	r0, #4
 
-  8026aa2:	a902      	add	r1, sp, #8
 
-  8026aa4:	f7ff fedf 	bl	8026866 <spi_flash_read_sfdp>
 
-  8026aa8:	2800      	cmp	r0, #0
 
-  8026aaa:	da09      	bge.n	8026ac0 <spi_flash_init+0xc8>
 
-  8026aac:	e7d2      	b.n	8026a54 <spi_flash_init+0x5c>
 
- 	// get parameter headers count
 
- 	spi_flash_read_sfdp(0x06, tmp, 1);
 
- 	// find first jedec pheader (with ID == 0)
 
- 	for (ptable = 0x08, i = 0; i <= tmp[0]; i++, ptable += 8) {
 
-  8026aae:	9b01      	ldr	r3, [sp, #4]
 
-  8026ab0:	3401      	adds	r4, #1
 
-  8026ab2:	3308      	adds	r3, #8
 
-  8026ab4:	9301      	str	r3, [sp, #4]
 
-  8026ab6:	f89d 300c 	ldrb.w	r3, [sp, #12]
 
-  8026aba:	429c      	cmp	r4, r3
 
-  8026abc:	d9df      	bls.n	8026a7e <spi_flash_init+0x86>
 
-  8026abe:	e7e6      	b.n	8026a8e <spi_flash_init+0x96>
 
- 	// read ptable pointer from pheader
 
- 	spi_flash_read_sfdp(ptable + 4, &ptable, 3);
 
- 	// get flash density (size in bits)
 
- 	if (spi_flash_read_sfdp(ptable + 4, &bitsize, 4) < 0 || !bitsize)
 
-  8026ac0:	9b02      	ldr	r3, [sp, #8]
 
-  8026ac2:	2b00      	cmp	r3, #0
 
-  8026ac4:	d0c6      	beq.n	8026a54 <spi_flash_init+0x5c>
 
-  8026ac6:	2400      	movs	r4, #0
 
- 		return 0;
 
- 	// find smallest available sector
 
- 	for (i = 0; i < 4; i++) {
 
- 		tmp[0] = 0;
 
-  8026ac8:	4625      	mov	r5, r4
 
- 		if (spi_flash_read_sfdp(ptable + 0x1C + i*2, &tmp, 2) >= 0 &&
 
-  8026aca:	9801      	ldr	r0, [sp, #4]
 
- 	if (spi_flash_read_sfdp(ptable + 4, &bitsize, 4) < 0 || !bitsize)
 
- 		return 0;
 
- 	// find smallest available sector
 
- 	for (i = 0; i < 4; i++) {
 
- 		tmp[0] = 0;
 
-  8026acc:	f88d 500c 	strb.w	r5, [sp, #12]
 
- 		if (spi_flash_read_sfdp(ptable + 0x1C + i*2, &tmp, 2) >= 0 &&
 
-  8026ad0:	301c      	adds	r0, #28
 
-  8026ad2:	2202      	movs	r2, #2
 
-  8026ad4:	1900      	adds	r0, r0, r4
 
-  8026ad6:	a903      	add	r1, sp, #12
 
-  8026ad8:	f7ff fec5 	bl	8026866 <spi_flash_read_sfdp>
 
-  8026adc:	2800      	cmp	r0, #0
 
-  8026ade:	db11      	blt.n	8026b04 <spi_flash_init+0x10c>
 
- 				tmp[0]) {
 
-  8026ae0:	f89d 200c 	ldrb.w	r2, [sp, #12]
 
- 		return 0;
 
- 	// find smallest available sector
 
- 	for (i = 0; i < 4; i++) {
 
- 		tmp[0] = 0;
 
- 		if (spi_flash_read_sfdp(ptable + 0x1C + i*2, &tmp, 2) >= 0 &&
 
-  8026ae4:	b172      	cbz	r2, 8026b04 <spi_flash_init+0x10c>
 
- 				tmp[0]) {
 
- 			spi_flash_desc.sector_size = 1 << tmp[0];
 
-  8026ae6:	4b0d      	ldr	r3, [pc, #52]	; (8026b1c <spi_flash_init+0x124>)
 
-  8026ae8:	2101      	movs	r1, #1
 
-  8026aea:	fa01 f102 	lsl.w	r1, r1, r2
 
-  8026aee:	6059      	str	r1, [r3, #4]
 
- 			spi_flash_desc.sector_erase_op = tmp[1];
 
-  8026af0:	f89d 100d 	ldrb.w	r1, [sp, #13]
 
-  8026af4:	7219      	strb	r1, [r3, #8]
 
- 			spi_flash_desc.sector_count = (bitsize + 1) >> (3 + tmp[0]);
 
-  8026af6:	9902      	ldr	r1, [sp, #8]
 
-  8026af8:	3203      	adds	r2, #3
 
-  8026afa:	3101      	adds	r1, #1
 
-  8026afc:	fa21 f202 	lsr.w	r2, r1, r2
 
-  8026b00:	815a      	strh	r2, [r3, #10]
 
- 			break;
 
-  8026b02:	e002      	b.n	8026b0a <spi_flash_init+0x112>
 
-  8026b04:	3402      	adds	r4, #2
 
- 	// get flash density (size in bits)
 
- 	if (spi_flash_read_sfdp(ptable + 4, &bitsize, 4) < 0 || !bitsize)
 
- 		return 0;
 
- 	// find smallest available sector
 
- 	for (i = 0; i < 4; i++) {
 
-  8026b06:	2c08      	cmp	r4, #8
 
-  8026b08:	d1df      	bne.n	8026aca <spi_flash_init+0xd2>
 
- 			spi_flash_desc.sector_erase_op = tmp[1];
 
- 			spi_flash_desc.sector_count = (bitsize + 1) >> (3 + tmp[0]);
 
- 			break;
 
- 		}
 
- 	}
 
- 	if (!spi_flash_desc.sector_size)
 
-  8026b0a:	4b04      	ldr	r3, [pc, #16]	; (8026b1c <spi_flash_init+0x124>)
 
-  8026b0c:	685a      	ldr	r2, [r3, #4]
 
-  8026b0e:	2a00      	cmp	r2, #0
 
-  8026b10:	d0a0      	beq.n	8026a54 <spi_flash_init+0x5c>
 
- 		return 0;
 
- 	spi_flash_desc.present = true;
 
-  8026b12:	2001      	movs	r0, #1
 
-  8026b14:	7018      	strb	r0, [r3, #0]
 
- 	return 1;
 
- }
 
-  8026b16:	b005      	add	sp, #20
 
-  8026b18:	bd30      	pop	{r4, r5, pc}
 
-  8026b1a:	bf00      	nop
 
-  8026b1c:	2000c840 	.word	0x2000c840
 
-  8026b20:	40023800 	.word	0x40023800
 
- 08026b24 <GetSTM32IDStr>:
 
- #include <string.h>
 
- void GetSTM32IDStr(char* str, uint8_t* len)
 
- {
 
-  8026b24:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
 
-  8026b28:	b08a      	sub	sp, #40	; 0x28
 
- 	uint8_t i;
 
- 	char TempStr[33];
 
- 	memset(TempStr, 0, 33);
 
-  8026b2a:	ac01      	add	r4, sp, #4
 
- #include <string.h>
 
- void GetSTM32IDStr(char* str, uint8_t* len)
 
- {
 
-  8026b2c:	4607      	mov	r7, r0
 
-  8026b2e:	460e      	mov	r6, r1
 
- 	uint8_t i;
 
- 	char TempStr[33];
 
- 	memset(TempStr, 0, 33);
 
-  8026b30:	4620      	mov	r0, r4
 
-  8026b32:	2100      	movs	r1, #0
 
-  8026b34:	2221      	movs	r2, #33	; 0x21
 
-  8026b36:	f7fa ffe3 	bl	8021b00 <memset>
 
-  8026b3a:	4d0e      	ldr	r5, [pc, #56]	; (8026b74 <GetSTM32IDStr+0x50>)
 
- 	for(i = 0; i < 12; i++)
 
-  8026b3c:	f8df 803c 	ldr.w	r8, [pc, #60]	; 8026b7c <GetSTM32IDStr+0x58>
 
- 	{
 
- 		sprintf(TempStr, "%02X", STM32_UUID[i]);
 
-  8026b40:	f815 2f01 	ldrb.w	r2, [r5, #1]!
 
-  8026b44:	490c      	ldr	r1, [pc, #48]	; (8026b78 <GetSTM32IDStr+0x54>)
 
-  8026b46:	4620      	mov	r0, r4
 
-  8026b48:	f000 fe64 	bl	8027814 <tfp_sprintf>
 
- 		*len = strlen(TempStr);
 
-  8026b4c:	4620      	mov	r0, r4
 
-  8026b4e:	f7fb f9af 	bl	8021eb0 <strlen>
 
-  8026b52:	4602      	mov	r2, r0
 
-  8026b54:	7030      	strb	r0, [r6, #0]
 
- 		strncat(str, TempStr, *len);
 
-  8026b56:	4621      	mov	r1, r4
 
-  8026b58:	4638      	mov	r0, r7
 
-  8026b5a:	b2d2      	uxtb	r2, r2
 
-  8026b5c:	f7fb f9d8 	bl	8021f10 <strncat>
 
- {
 
- 	uint8_t i;
 
- 	char TempStr[33];
 
- 	memset(TempStr, 0, 33);
 
- 	for(i = 0; i < 12; i++)
 
-  8026b60:	4545      	cmp	r5, r8
 
-  8026b62:	d1ed      	bne.n	8026b40 <GetSTM32IDStr+0x1c>
 
- 	{
 
- 		sprintf(TempStr, "%02X", STM32_UUID[i]);
 
- 		*len = strlen(TempStr);
 
- 		strncat(str, TempStr, *len);
 
- 	}
 
- 	*len = strlen(str);
 
-  8026b64:	4638      	mov	r0, r7
 
-  8026b66:	f7fb f9a3 	bl	8021eb0 <strlen>
 
-  8026b6a:	7030      	strb	r0, [r6, #0]
 
- }
 
-  8026b6c:	b00a      	add	sp, #40	; 0x28
 
-  8026b6e:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 
-  8026b72:	bf00      	nop
 
-  8026b74:	1fff7a0f 	.word	0x1fff7a0f
 
-  8026b78:	08039858 	.word	0x08039858
 
-  8026b7c:	1fff7a1b 	.word	0x1fff7a1b
 
- 08026b80 <NVIC_EncodePriority.constprop.0>:
 
-     \param [in]       SubPriority  Subpriority value (starting from 0).
 
-     \return                        Encoded priority. Value can be used in the function \ref NVIC_SetPriority().
 
-  */
 
- __STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority)
 
- {
 
-   uint32_t PriorityGroupTmp = (PriorityGroup & 0x07);          /* only values 0..7 are used          */
 
-  8026b80:	f000 0007 	and.w	r0, r0, #7
 
-   uint32_t PreemptPriorityBits;
 
-   uint32_t SubPriorityBits;
 
-   PreemptPriorityBits = ((7 - PriorityGroupTmp) > __NVIC_PRIO_BITS) ? __NVIC_PRIO_BITS : 7 - PriorityGroupTmp;
 
-  8026b84:	f1c0 0307 	rsb	r3, r0, #7
 
-   SubPriorityBits     = ((PriorityGroupTmp + __NVIC_PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + __NVIC_PRIO_BITS;
 
-  8026b88:	1d02      	adds	r2, r0, #4
 
- {
 
-   uint32_t PriorityGroupTmp = (PriorityGroup & 0x07);          /* only values 0..7 are used          */
 
-   uint32_t PreemptPriorityBits;
 
-   uint32_t SubPriorityBits;
 
-   PreemptPriorityBits = ((7 - PriorityGroupTmp) > __NVIC_PRIO_BITS) ? __NVIC_PRIO_BITS : 7 - PriorityGroupTmp;
 
-  8026b8a:	2b04      	cmp	r3, #4
 
-  8026b8c:	bf28      	it	cs
 
-  8026b8e:	2304      	movcs	r3, #4
 
-   SubPriorityBits     = ((PriorityGroupTmp + __NVIC_PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + __NVIC_PRIO_BITS;
 
-  8026b90:	2a06      	cmp	r2, #6
 
-  8026b92:	d901      	bls.n	8026b98 <NVIC_EncodePriority.constprop.0+0x18>
 
-  8026b94:	3803      	subs	r0, #3
 
-  8026b96:	e000      	b.n	8026b9a <NVIC_EncodePriority.constprop.0+0x1a>
 
-  8026b98:	2000      	movs	r0, #0
 
-   return (
 
-            ((PreemptPriority & ((1 << (PreemptPriorityBits)) - 1)) << SubPriorityBits) |
 
-  8026b9a:	2201      	movs	r2, #1
 
-  8026b9c:	fa02 f303 	lsl.w	r3, r2, r3
 
-  8026ba0:	3b01      	subs	r3, #1
 
-  8026ba2:	f003 0305 	and.w	r3, r3, #5
 
-            ((SubPriority     & ((1 << (SubPriorityBits    )) - 1)))
 
-          );
 
- }
 
-  8026ba6:	fa03 f000 	lsl.w	r0, r3, r0
 
-  8026baa:	4770      	bx	lr
 
- 08026bac <uart_hw_init>:
 
- uint32_t ups_tx_fifo[UPS_RBUF_SIZE];
 
- SemaphoreHandle_t xSem_rx_buf;
 
- USART_InitTypeDef USART_InitStructure;
 
- void uart_hw_init(USART_TypeDef *uart, uint32_t baud, uint16_t wordlen, uint16_t parity, uint16_t stop) {
 
-  8026bac:	b570      	push	{r4, r5, r6, lr}
 
- 	if (wordlen == 8)
 
- 		wordlen_tmp = USART_WordLength_8b;
 
- 	if (wordlen == 9)
 
- 		wordlen_tmp = USART_WordLength_9b;
 
- 	USART_InitStructure.USART_BaudRate = baud;
 
-  8026bae:	4d34      	ldr	r5, [pc, #208]	; (8026c80 <uart_hw_init+0xd4>)
 
- uint32_t ups_tx_fifo[UPS_RBUF_SIZE];
 
- SemaphoreHandle_t xSem_rx_buf;
 
- USART_InitTypeDef USART_InitStructure;
 
- void uart_hw_init(USART_TypeDef *uart, uint32_t baud, uint16_t wordlen, uint16_t parity, uint16_t stop) {
 
-  8026bb0:	f8bd 6010 	ldrh.w	r6, [sp, #16]
 
- 		wordlen_tmp = USART_WordLength_9b;
 
- 	USART_InitStructure.USART_BaudRate = baud;
 
- 	USART_InitStructure.USART_WordLength = wordlen_tmp;
 
- 	USART_InitStructure.USART_StopBits = stop;
 
- 	USART_InitStructure.USART_Parity = parity;
 
-  8026bb4:	812b      	strh	r3, [r5, #8]
 
- void uart_hw_init(USART_TypeDef *uart, uint32_t baud, uint16_t wordlen, uint16_t parity, uint16_t stop) {
 
- 	uint16_t wordlen_tmp;
 
- 	if (wordlen == 8)
 
- 		wordlen_tmp = USART_WordLength_8b;
 
- 	if (wordlen == 9)
 
-  8026bb6:	2a09      	cmp	r2, #9
 
-  8026bb8:	bf0c      	ite	eq
 
-  8026bba:	f44f 5280 	moveq.w	r2, #4096	; 0x1000
 
-  8026bbe:	2200      	movne	r2, #0
 
- 	USART_InitStructure.USART_BaudRate = baud;
 
- 	USART_InitStructure.USART_WordLength = wordlen_tmp;
 
- 	USART_InitStructure.USART_StopBits = stop;
 
- 	USART_InitStructure.USART_Parity = parity;
 
- 	USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
 
- 	USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
 
-  8026bc0:	230c      	movs	r3, #12
 
- 	if (wordlen == 9)
 
- 		wordlen_tmp = USART_WordLength_9b;
 
- 	USART_InitStructure.USART_BaudRate = baud;
 
- 	USART_InitStructure.USART_WordLength = wordlen_tmp;
 
- 	USART_InitStructure.USART_StopBits = stop;
 
-  8026bc2:	80ee      	strh	r6, [r5, #6]
 
- 	USART_InitStructure.USART_Parity = parity;
 
- 	USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
 
-  8026bc4:	2600      	movs	r6, #0
 
- uint32_t ups_tx_fifo[UPS_RBUF_SIZE];
 
- SemaphoreHandle_t xSem_rx_buf;
 
- USART_InitTypeDef USART_InitStructure;
 
- void uart_hw_init(USART_TypeDef *uart, uint32_t baud, uint16_t wordlen, uint16_t parity, uint16_t stop) {
 
-  8026bc6:	4604      	mov	r4, r0
 
- 	USART_InitStructure.USART_BaudRate = baud;
 
- 	USART_InitStructure.USART_WordLength = wordlen_tmp;
 
- 	USART_InitStructure.USART_StopBits = stop;
 
- 	USART_InitStructure.USART_Parity = parity;
 
- 	USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
 
- 	USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
 
-  8026bc8:	816b      	strh	r3, [r5, #10]
 
- 	if (wordlen == 8)
 
- 		wordlen_tmp = USART_WordLength_8b;
 
- 	if (wordlen == 9)
 
- 		wordlen_tmp = USART_WordLength_9b;
 
- 	USART_InitStructure.USART_BaudRate = baud;
 
-  8026bca:	6029      	str	r1, [r5, #0]
 
- 	USART_InitStructure.USART_WordLength = wordlen_tmp;
 
-  8026bcc:	80aa      	strh	r2, [r5, #4]
 
- 	USART_InitStructure.USART_StopBits = stop;
 
- 	USART_InitStructure.USART_Parity = parity;
 
- 	USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
 
-  8026bce:	81ae      	strh	r6, [r5, #12]
 
- 	USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
 
- 	USART_DeInit(uart);
 
-  8026bd0:	f7fe ffde 	bl	8025b90 <USART_DeInit>
 
- 	if (uart == USART1) {
 
-  8026bd4:	4b2b      	ldr	r3, [pc, #172]	; (8026c84 <uart_hw_init+0xd8>)
 
-  8026bd6:	429c      	cmp	r4, r3
 
-  8026bd8:	d111      	bne.n	8026bfe <uart_hw_init+0x52>
 
- 		RCC->APB2ENR |= RCC_APB2Periph_USART1;
 
-  8026bda:	f503 3394 	add.w	r3, r3, #75776	; 0x12800
 
-  8026bde:	6c5a      	ldr	r2, [r3, #68]	; 0x44
 
-  8026be0:	f042 0210 	orr.w	r2, r2, #16
 
-  8026be4:	645a      	str	r2, [r3, #68]	; 0x44
 
-     \return                Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field).
 
-  */
 
- __STATIC_INLINE uint32_t NVIC_GetPriorityGrouping(void)
 
- {
 
-   return ((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos);   /* read priority grouping field */
 
-  8026be6:	4b28      	ldr	r3, [pc, #160]	; (8026c88 <uart_hw_init+0xdc>)
 
-  8026be8:	68d8      	ldr	r0, [r3, #12]
 
- 		NVIC_SetPriority(USART1_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(), 0x05, 0));
 
-  8026bea:	f3c0 2002 	ubfx	r0, r0, #8, #3
 
-  8026bee:	f7ff ffc7 	bl	8026b80 <NVIC_EncodePriority.constprop.0>
 
- __STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
 
- {
 
-   if(IRQn < 0) {
 
-     SCB->SHP[((uint32_t)(IRQn) & 0xF)-4] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); } /* set Priority for Cortex-M  System Interrupts */
 
-   else {
 
-     NVIC->IP[(uint32_t)(IRQn)] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff);    }        /* set Priority for device specific Interrupts  */
 
-  8026bf2:	4b26      	ldr	r3, [pc, #152]	; (8026c8c <uart_hw_init+0xe0>)
 
-  8026bf4:	0100      	lsls	r0, r0, #4
 
-  8026bf6:	f883 0325 	strb.w	r0, [r3, #805]	; 0x325
 
-     \param [in]      IRQn  External interrupt number. Value cannot be negative.
 
-  */
 
- __STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn)
 
- {
 
- /*  NVIC->ISER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F));  enable interrupt */
 
-   NVIC->ISER[(uint32_t)((int32_t)IRQn) >> 5] = (uint32_t)(1 << ((uint32_t)((int32_t)IRQn) & (uint32_t)0x1F)); /* enable interrupt */
 
-  8026bfa:	2220      	movs	r2, #32
 
-  8026bfc:	e028      	b.n	8026c50 <uart_hw_init+0xa4>
 
- 		USART_Cmd(USART1, ENABLE);
 
- 		USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
 
- 		USART_ITConfig(USART1, USART_IT_TXE, DISABLE);
 
- 	}
 
- 	if (uart == USART2) {
 
-  8026bfe:	4b24      	ldr	r3, [pc, #144]	; (8026c90 <uart_hw_init+0xe4>)
 
-  8026c00:	429c      	cmp	r4, r3
 
-  8026c02:	d111      	bne.n	8026c28 <uart_hw_init+0x7c>
 
- 		RCC->APB1ENR |= RCC_APB1Periph_USART2;
 
-  8026c04:	f503 33fa 	add.w	r3, r3, #128000	; 0x1f400
 
-  8026c08:	6c1a      	ldr	r2, [r3, #64]	; 0x40
 
-  8026c0a:	f442 3200 	orr.w	r2, r2, #131072	; 0x20000
 
-  8026c0e:	641a      	str	r2, [r3, #64]	; 0x40
 
-     \return                Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field).
 
-  */
 
- __STATIC_INLINE uint32_t NVIC_GetPriorityGrouping(void)
 
- {
 
-   return ((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos);   /* read priority grouping field */
 
-  8026c10:	4b1d      	ldr	r3, [pc, #116]	; (8026c88 <uart_hw_init+0xdc>)
 
-  8026c12:	68d8      	ldr	r0, [r3, #12]
 
- 		NVIC_SetPriority(USART2_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(), 0x05, 0));
 
-  8026c14:	f3c0 2002 	ubfx	r0, r0, #8, #3
 
-  8026c18:	f7ff ffb2 	bl	8026b80 <NVIC_EncodePriority.constprop.0>
 
- __STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
 
- {
 
-   if(IRQn < 0) {
 
-     SCB->SHP[((uint32_t)(IRQn) & 0xF)-4] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); } /* set Priority for Cortex-M  System Interrupts */
 
-   else {
 
-     NVIC->IP[(uint32_t)(IRQn)] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff);    }        /* set Priority for device specific Interrupts  */
 
-  8026c1c:	4b1b      	ldr	r3, [pc, #108]	; (8026c8c <uart_hw_init+0xe0>)
 
-  8026c1e:	0100      	lsls	r0, r0, #4
 
-  8026c20:	f883 0326 	strb.w	r0, [r3, #806]	; 0x326
 
-     \param [in]      IRQn  External interrupt number. Value cannot be negative.
 
-  */
 
- __STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn)
 
- {
 
- /*  NVIC->ISER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F));  enable interrupt */
 
-   NVIC->ISER[(uint32_t)((int32_t)IRQn) >> 5] = (uint32_t)(1 << ((uint32_t)((int32_t)IRQn) & (uint32_t)0x1F)); /* enable interrupt */
 
-  8026c24:	2240      	movs	r2, #64	; 0x40
 
-  8026c26:	e013      	b.n	8026c50 <uart_hw_init+0xa4>
 
- 		USART_Cmd(USART2, ENABLE);
 
- 		USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);
 
- 		USART_ITConfig(USART2, USART_IT_TXE, DISABLE);
 
- 	}
 
-     if (uart == USART3) {
 
-  8026c28:	4b1a      	ldr	r3, [pc, #104]	; (8026c94 <uart_hw_init+0xe8>)
 
-  8026c2a:	429c      	cmp	r4, r3
 
-  8026c2c:	d127      	bne.n	8026c7e <uart_hw_init+0xd2>
 
-         RCC->APB1ENR |= RCC_APB1Periph_USART3;
 
-  8026c2e:	f503 33f8 	add.w	r3, r3, #126976	; 0x1f000
 
-  8026c32:	6c1a      	ldr	r2, [r3, #64]	; 0x40
 
-  8026c34:	f442 2280 	orr.w	r2, r2, #262144	; 0x40000
 
-  8026c38:	641a      	str	r2, [r3, #64]	; 0x40
 
-     \return                Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field).
 
-  */
 
- __STATIC_INLINE uint32_t NVIC_GetPriorityGrouping(void)
 
- {
 
-   return ((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos);   /* read priority grouping field */
 
-  8026c3a:	4b13      	ldr	r3, [pc, #76]	; (8026c88 <uart_hw_init+0xdc>)
 
-  8026c3c:	68d8      	ldr	r0, [r3, #12]
 
-         NVIC_SetPriority(USART3_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(), 0x05, 0));
 
-  8026c3e:	f3c0 2002 	ubfx	r0, r0, #8, #3
 
-  8026c42:	f7ff ff9d 	bl	8026b80 <NVIC_EncodePriority.constprop.0>
 
- __STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
 
- {
 
-   if(IRQn < 0) {
 
-     SCB->SHP[((uint32_t)(IRQn) & 0xF)-4] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); } /* set Priority for Cortex-M  System Interrupts */
 
-   else {
 
-     NVIC->IP[(uint32_t)(IRQn)] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff);    }        /* set Priority for device specific Interrupts  */
 
-  8026c46:	4b11      	ldr	r3, [pc, #68]	; (8026c8c <uart_hw_init+0xe0>)
 
-  8026c48:	0100      	lsls	r0, r0, #4
 
-  8026c4a:	f883 0327 	strb.w	r0, [r3, #807]	; 0x327
 
-     \param [in]      IRQn  External interrupt number. Value cannot be negative.
 
-  */
 
- __STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn)
 
- {
 
- /*  NVIC->ISER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F));  enable interrupt */
 
-   NVIC->ISER[(uint32_t)((int32_t)IRQn) >> 5] = (uint32_t)(1 << ((uint32_t)((int32_t)IRQn) & (uint32_t)0x1F)); /* enable interrupt */
 
-  8026c4e:	2280      	movs	r2, #128	; 0x80
 
-  8026c50:	605a      	str	r2, [r3, #4]
 
-         NVIC_EnableIRQ(USART3_IRQn);
 
-         USART_Init(USART3, &USART_InitStructure);
 
-  8026c52:	4620      	mov	r0, r4
 
-  8026c54:	4629      	mov	r1, r5
 
-  8026c56:	f7fe ffef 	bl	8025c38 <USART_Init>
 
-         USART_Cmd(USART3, ENABLE);
 
-  8026c5a:	4620      	mov	r0, r4
 
-  8026c5c:	2101      	movs	r1, #1
 
-  8026c5e:	f7ff f845 	bl	8025cec <USART_Cmd>
 
-     USART_ITConfig(USART3, USART_IT_RXNE, ENABLE);
 
-  8026c62:	4620      	mov	r0, r4
 
-  8026c64:	2201      	movs	r2, #1
 
-  8026c66:	f240 5125 	movw	r1, #1317	; 0x525
 
-  8026c6a:	f7ff f84b 	bl	8025d04 <USART_ITConfig>
 
-     USART_ITConfig(USART3, USART_IT_TXE, DISABLE);
 
-  8026c6e:	4620      	mov	r0, r4
 
-  8026c70:	f240 7127 	movw	r1, #1831	; 0x727
 
-  8026c74:	4632      	mov	r2, r6
 
-     }
 
- }
 
-  8026c76:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
 
-         NVIC_SetPriority(USART3_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(), 0x05, 0));
 
-         NVIC_EnableIRQ(USART3_IRQn);
 
-         USART_Init(USART3, &USART_InitStructure);
 
-         USART_Cmd(USART3, ENABLE);
 
-     USART_ITConfig(USART3, USART_IT_RXNE, ENABLE);
 
-     USART_ITConfig(USART3, USART_IT_TXE, DISABLE);
 
-  8026c7a:	f7ff b843 	b.w	8025d04 <USART_ITConfig>
 
-  8026c7e:	bd70      	pop	{r4, r5, r6, pc}
 
-  8026c80:	2000cb8c 	.word	0x2000cb8c
 
-  8026c84:	40011000 	.word	0x40011000
 
-  8026c88:	e000ed00 	.word	0xe000ed00
 
-  8026c8c:	e000e100 	.word	0xe000e100
 
-  8026c90:	40004400 	.word	0x40004400
 
-  8026c94:	40004800 	.word	0x40004800
 
- 08026c98 <InitUSART>:
 
-     }
 
- }
 
- void InitUSART(void) {
 
-  8026c98:	b507      	push	{r0, r1, r2, lr}
 
- 	xSem_rx_buf = xSemaphoreCreateCounting( UPS_RBUF_SIZE, 0 );
 
-  8026c9a:	2100      	movs	r1, #0
 
-  8026c9c:	2064      	movs	r0, #100	; 0x64
 
-  8026c9e:	f003 fc4c 	bl	802a53a <xQueueCreateCountingSemaphore>
 
-  8026ca2:	4b0a      	ldr	r3, [pc, #40]	; (8026ccc <InitUSART+0x34>)
 
- 	rbuf32_init(&ups_tx_rbuf, ups_tx_fifo, UPS_RBUF_SIZE);
 
-  8026ca4:	490a      	ldr	r1, [pc, #40]	; (8026cd0 <InitUSART+0x38>)
 
-     USART_ITConfig(USART3, USART_IT_TXE, DISABLE);
 
-     }
 
- }
 
- void InitUSART(void) {
 
- 	xSem_rx_buf = xSemaphoreCreateCounting( UPS_RBUF_SIZE, 0 );
 
-  8026ca6:	6018      	str	r0, [r3, #0]
 
- 	rbuf32_init(&ups_tx_rbuf, ups_tx_fifo, UPS_RBUF_SIZE);
 
-  8026ca8:	2264      	movs	r2, #100	; 0x64
 
-  8026caa:	480a      	ldr	r0, [pc, #40]	; (8026cd4 <InitUSART+0x3c>)
 
-  8026cac:	f002 fa48 	bl	8029140 <rbuf32_init>
 
- 	rbuf32_init(&ups_rx_rbuf, ups_rx_fifo, UPS_RBUF_SIZE);
 
-  8026cb0:	2264      	movs	r2, #100	; 0x64
 
-  8026cb2:	4809      	ldr	r0, [pc, #36]	; (8026cd8 <InitUSART+0x40>)
 
-  8026cb4:	4909      	ldr	r1, [pc, #36]	; (8026cdc <InitUSART+0x44>)
 
-  8026cb6:	f002 fa43 	bl	8029140 <rbuf32_init>
 
- 	uart_hw_init(UPS_USART, UPS_USART_BAUD, UPS_USART_WORD_LEN, UPS_USART_PARITY, UPS_USART_STOP_BIT);
 
-  8026cba:	2300      	movs	r3, #0
 
-  8026cbc:	9300      	str	r3, [sp, #0]
 
-  8026cbe:	4808      	ldr	r0, [pc, #32]	; (8026ce0 <InitUSART+0x48>)
 
-  8026cc0:	f44f 6116 	mov.w	r1, #2400	; 0x960
 
-  8026cc4:	2208      	movs	r2, #8
 
-  8026cc6:	f7ff ff71 	bl	8026bac <uart_hw_init>
 
- }
 
-  8026cca:	bd0e      	pop	{r1, r2, r3, pc}
 
-  8026ccc:	2000cb9c 	.word	0x2000cb9c
 
-  8026cd0:	2000c85c 	.word	0x2000c85c
 
-  8026cd4:	2000cb7c 	.word	0x2000cb7c
 
-  8026cd8:	2000c84c 	.word	0x2000c84c
 
-  8026cdc:	2000c9ec 	.word	0x2000c9ec
 
-  8026ce0:	40004400 	.word	0x40004400
 
- 08026ce4 <ups_send_block>:
 
- }
 
- int ups_send_block(void *data, uint8_t len) {
 
- 	int i = 0;
 
- 	uint32_t s_temp = 0;
 
- 	UPS_USART->CR1 &= ~USART_CR1_TXEIE;
 
-  8026ce4:	4a0f      	ldr	r2, [pc, #60]	; (8026d24 <ups_send_block+0x40>)
 
-  8026ce6:	8993      	ldrh	r3, [r2, #12]
 
-  8026ce8:	f023 0380 	bic.w	r3, r3, #128	; 0x80
 
-  8026cec:	041b      	lsls	r3, r3, #16
 
-  8026cee:	0c1b      	lsrs	r3, r3, #16
 
- 		rbuf32_put(&ups_tx_rbuf, (uint32_t)(byte));
 
- 	}
 
- 	UPS_USART->CR1 |= USART_CR1_TXEIE;
 
- }
 
- int ups_send_block(void *data, uint8_t len) {
 
-  8026cf0:	b570      	push	{r4, r5, r6, lr}
 
-  8026cf2:	4606      	mov	r6, r0
 
-  8026cf4:	460d      	mov	r5, r1
 
- 	int i = 0;
 
- 	uint32_t s_temp = 0;
 
- 	UPS_USART->CR1 &= ~USART_CR1_TXEIE;
 
-  8026cf6:	8193      	strh	r3, [r2, #12]
 
- 	}
 
- 	UPS_USART->CR1 |= USART_CR1_TXEIE;
 
- }
 
- int ups_send_block(void *data, uint8_t len) {
 
- 	int i = 0;
 
-  8026cf8:	2400      	movs	r4, #0
 
- 	uint32_t s_temp = 0;
 
- 	UPS_USART->CR1 &= ~USART_CR1_TXEIE;
 
- 	//DBG printf("STOP \r\n");
 
- 	while (i < len) {
 
-  8026cfa:	e008      	b.n	8026d0e <ups_send_block+0x2a>
 
- 		if (!rbuf_isfull(&ups_tx_rbuf)) {
 
-  8026cfc:	480a      	ldr	r0, [pc, #40]	; (8026d28 <ups_send_block+0x44>)
 
-  8026cfe:	f002 fa25 	bl	802914c <rbuf_isfull>
 
-  8026d02:	b930      	cbnz	r0, 8026d12 <ups_send_block+0x2e>
 
- 			s_temp = ((uint8_t *)data)[i++];
 
-  8026d04:	5d31      	ldrb	r1, [r6, r4]
 
- 			rbuf32_put(&ups_tx_rbuf, s_temp);
 
-  8026d06:	4808      	ldr	r0, [pc, #32]	; (8026d28 <ups_send_block+0x44>)
 
- 	uint32_t s_temp = 0;
 
- 	UPS_USART->CR1 &= ~USART_CR1_TXEIE;
 
- 	//DBG printf("STOP \r\n");
 
- 	while (i < len) {
 
- 		if (!rbuf_isfull(&ups_tx_rbuf)) {
 
- 			s_temp = ((uint8_t *)data)[i++];
 
-  8026d08:	3401      	adds	r4, #1
 
- 			rbuf32_put(&ups_tx_rbuf, s_temp);
 
-  8026d0a:	f002 fa40 	bl	802918e <rbuf32_put>
 
- int ups_send_block(void *data, uint8_t len) {
 
- 	int i = 0;
 
- 	uint32_t s_temp = 0;
 
- 	UPS_USART->CR1 &= ~USART_CR1_TXEIE;
 
- 	//DBG printf("STOP \r\n");
 
- 	while (i < len) {
 
-  8026d0e:	42ac      	cmp	r4, r5
 
-  8026d10:	dbf4      	blt.n	8026cfc <ups_send_block+0x18>
 
- 			rbuf32_put(&ups_tx_rbuf, s_temp);
 
- 		}
 
- 		else
 
- 			break;
 
- 	}
 
- 	UPS_USART->CR1 |= USART_CR1_TXEIE;
 
-  8026d12:	4b04      	ldr	r3, [pc, #16]	; (8026d24 <ups_send_block+0x40>)
 
-  8026d14:	899a      	ldrh	r2, [r3, #12]
 
-  8026d16:	b292      	uxth	r2, r2
 
-  8026d18:	f042 0280 	orr.w	r2, r2, #128	; 0x80
 
-  8026d1c:	819a      	strh	r2, [r3, #12]
 
- 	return i;
 
- }
 
-  8026d1e:	4620      	mov	r0, r4
 
-  8026d20:	bd70      	pop	{r4, r5, r6, pc}
 
-  8026d22:	bf00      	nop
 
-  8026d24:	40004400 	.word	0x40004400
 
-  8026d28:	2000cb7c 	.word	0x2000cb7c
 
- 08026d2c <ups_getchar>:
 
- int ups_getchar(unsigned int timeout) {
 
- 	int res;
 
- 	res = xSemaphoreTake( xSem_rx_buf, (TickType_t)timeout );
 
-  8026d2c:	4b09      	ldr	r3, [pc, #36]	; (8026d54 <ups_getchar+0x28>)
 
- 	}
 
- 	UPS_USART->CR1 |= USART_CR1_TXEIE;
 
- 	return i;
 
- }
 
- int ups_getchar(unsigned int timeout) {
 
-  8026d2e:	b507      	push	{r0, r1, r2, lr}
 
- 	int res;
 
- 	res = xSemaphoreTake( xSem_rx_buf, (TickType_t)timeout );
 
-  8026d30:	2100      	movs	r1, #0
 
- 	}
 
- 	UPS_USART->CR1 |= USART_CR1_TXEIE;
 
- 	return i;
 
- }
 
- int ups_getchar(unsigned int timeout) {
 
-  8026d32:	4602      	mov	r2, r0
 
- 	int res;
 
- 	res = xSemaphoreTake( xSem_rx_buf, (TickType_t)timeout );
 
-  8026d34:	6818      	ldr	r0, [r3, #0]
 
-  8026d36:	460b      	mov	r3, r1
 
-  8026d38:	f003 fd55 	bl	802a7e6 <xQueueGenericReceive>
 
-  8026d3c:	9001      	str	r0, [sp, #4]
 
- 	if (res == pdFALSE) {
 
-  8026d3e:	b128      	cbz	r0, 8026d4c <ups_getchar+0x20>
 
- 		return -1;
 
- 	}
 
- 	rbuf32_get(&ups_rx_rbuf, &res);
 
-  8026d40:	4805      	ldr	r0, [pc, #20]	; (8026d58 <ups_getchar+0x2c>)
 
-  8026d42:	a901      	add	r1, sp, #4
 
-  8026d44:	f002 fa0e 	bl	8029164 <rbuf32_get>
 
- //	DBG printf("STOP \r\n");
 
- //	DBG printf("wr: %d 0x%x\r\n", rs485_rx_rbuf.read_index,res);
 
- 	return res;
 
-  8026d48:	9801      	ldr	r0, [sp, #4]
 
-  8026d4a:	e001      	b.n	8026d50 <ups_getchar+0x24>
 
- int ups_getchar(unsigned int timeout) {
 
- 	int res;
 
- 	res = xSemaphoreTake( xSem_rx_buf, (TickType_t)timeout );
 
- 	if (res == pdFALSE) {
 
- 		return -1;
 
-  8026d4c:	f04f 30ff 	mov.w	r0, #4294967295
 
- 	}
 
- 	rbuf32_get(&ups_rx_rbuf, &res);
 
- //	DBG printf("STOP \r\n");
 
- //	DBG printf("wr: %d 0x%x\r\n", rs485_rx_rbuf.read_index,res);
 
- 	return res;
 
- }
 
-  8026d50:	bd0e      	pop	{r1, r2, r3, pc}
 
-  8026d52:	bf00      	nop
 
-  8026d54:	2000cb9c 	.word	0x2000cb9c
 
-  8026d58:	2000c84c 	.word	0x2000c84c
 
- 08026d5c <USART1_IRQHandler>:
 
- 		portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
 
- 	}
 
- }
 
- void USART1_IRQHandler(void) {
 
-  8026d5c:	4770      	bx	lr
 
-  8026d5e:	0000      	movs	r0, r0
 
- 08026d60 <USART2_IRQHandler>:
 
- }
 
- void USART2_IRQHandler(void) {
 
-  8026d60:	b513      	push	{r0, r1, r4, lr}
 
- inline void rs232_irq_handler(void)
 
- {
 
- 	uint32_t c = 0;
 
-  8026d62:	2300      	movs	r3, #0
 
-  8026d64:	9301      	str	r3, [sp, #4]
 
- 	static BaseType_t xHigherPriorityTaskWoken = pdFALSE;
 
- 	if ((UPS_USART->SR & USART_SR_ORE)) {
 
-  8026d66:	4b26      	ldr	r3, [pc, #152]	; (8026e00 <USART2_IRQHandler+0xa0>)
 
-  8026d68:	881a      	ldrh	r2, [r3, #0]
 
-  8026d6a:	f002 0208 	and.w	r2, r2, #8
 
-  8026d6e:	b292      	uxth	r2, r2
 
-  8026d70:	b112      	cbz	r2, 8026d78 <USART2_IRQHandler+0x18>
 
- 		c = (uint32_t)UPS_USART->DR;
 
-  8026d72:	889b      	ldrh	r3, [r3, #4]
 
-  8026d74:	b29b      	uxth	r3, r3
 
-  8026d76:	9301      	str	r3, [sp, #4]
 
- 		//DBG printf("overrunRS485\r\n");
 
- 	}
 
- 	if (USART_GetITStatus(UPS_USART, USART_IT_TXE) != RESET) {
 
-  8026d78:	4c21      	ldr	r4, [pc, #132]	; (8026e00 <USART2_IRQHandler+0xa0>)
 
-  8026d7a:	f240 7127 	movw	r1, #1831	; 0x727
 
-  8026d7e:	4620      	mov	r0, r4
 
-  8026d80:	f7fe ffd9 	bl	8025d36 <USART_GetITStatus>
 
-  8026d84:	b1c0      	cbz	r0, 8026db8 <USART2_IRQHandler+0x58>
 
- 		if(rbuf32_get(&ups_tx_rbuf, &c)) {
 
-  8026d86:	481f      	ldr	r0, [pc, #124]	; (8026e04 <USART2_IRQHandler+0xa4>)
 
-  8026d88:	a901      	add	r1, sp, #4
 
-  8026d8a:	f002 f9eb 	bl	8029164 <rbuf32_get>
 
-  8026d8e:	b118      	cbz	r0, 8026d98 <USART2_IRQHandler+0x38>
 
- 			UPS_USART->DR = (uint16_t)c;
 
-  8026d90:	f8bd 3004 	ldrh.w	r3, [sp, #4]
 
-  8026d94:	80a3      	strh	r3, [r4, #4]
 
-  8026d96:	e00a      	b.n	8026dae <USART2_IRQHandler+0x4e>
 
- 			//DBG printf("wr: %d 0x%x\r\n", rs485_tx_rbuf.read_index,c);
 
- 		}
 
- 		else {
 
- 			UPS_USART->CR1 &= ~USART_CR1_TXEIE;
 
-  8026d98:	89a3      	ldrh	r3, [r4, #12]
 
-  8026d9a:	f023 0380 	bic.w	r3, r3, #128	; 0x80
 
-  8026d9e:	041b      	lsls	r3, r3, #16
 
-  8026da0:	0c1b      	lsrs	r3, r3, #16
 
-  8026da2:	81a3      	strh	r3, [r4, #12]
 
- 			UPS_USART->CR1 |= USART_CR1_RXNEIE;
 
-  8026da4:	89a3      	ldrh	r3, [r4, #12]
 
-  8026da6:	b29b      	uxth	r3, r3
 
-  8026da8:	f043 0320 	orr.w	r3, r3, #32
 
-  8026dac:	81a3      	strh	r3, [r4, #12]
 
- 		}
 
- 			USART_ClearITPendingBit(UPS_USART, USART_IT_TXE);
 
-  8026dae:	4814      	ldr	r0, [pc, #80]	; (8026e00 <USART2_IRQHandler+0xa0>)
 
-  8026db0:	f240 7127 	movw	r1, #1831	; 0x727
 
-  8026db4:	f7fe ffdf 	bl	8025d76 <USART_ClearITPendingBit>
 
- 	}
 
- 	if(USART_GetITStatus(UPS_USART, USART_IT_RXNE) != RESET)
 
-  8026db8:	4c11      	ldr	r4, [pc, #68]	; (8026e00 <USART2_IRQHandler+0xa0>)
 
-  8026dba:	f240 5125 	movw	r1, #1317	; 0x525
 
-  8026dbe:	4620      	mov	r0, r4
 
-  8026dc0:	f7fe ffb9 	bl	8025d36 <USART_GetITStatus>
 
-  8026dc4:	b1d8      	cbz	r0, 8026dfe <USART2_IRQHandler+0x9e>
 
- 	{
 
- 		c = (uint32_t)UPS_USART->DR;
 
-  8026dc6:	88a3      	ldrh	r3, [r4, #4]
 
- 		//DBG printf("read: %d 0x%x\r\n", rs485_rx_rbuf.write_index,c);
 
- 		if (!rbuf_isfull(&ups_rx_rbuf))
 
-  8026dc8:	480f      	ldr	r0, [pc, #60]	; (8026e08 <USART2_IRQHandler+0xa8>)
 
- 		}
 
- 			USART_ClearITPendingBit(UPS_USART, USART_IT_TXE);
 
- 	}
 
- 	if(USART_GetITStatus(UPS_USART, USART_IT_RXNE) != RESET)
 
- 	{
 
- 		c = (uint32_t)UPS_USART->DR;
 
-  8026dca:	b29b      	uxth	r3, r3
 
-  8026dcc:	9301      	str	r3, [sp, #4]
 
- 		//DBG printf("read: %d 0x%x\r\n", rs485_rx_rbuf.write_index,c);
 
- 		if (!rbuf_isfull(&ups_rx_rbuf))
 
-  8026dce:	f002 f9bd 	bl	802914c <rbuf_isfull>
 
-  8026dd2:	b918      	cbnz	r0, 8026ddc <USART2_IRQHandler+0x7c>
 
- 			rbuf32_put(&ups_rx_rbuf, c);
 
-  8026dd4:	480c      	ldr	r0, [pc, #48]	; (8026e08 <USART2_IRQHandler+0xa8>)
 
-  8026dd6:	9901      	ldr	r1, [sp, #4]
 
-  8026dd8:	f002 f9d9 	bl	802918e <rbuf32_put>
 
- 		USART_ClearITPendingBit(UPS_USART, USART_IT_RXNE);
 
-  8026ddc:	4808      	ldr	r0, [pc, #32]	; (8026e00 <USART2_IRQHandler+0xa0>)
 
- 		xSemaphoreGiveFromISR(xSem_rx_buf, &xHigherPriorityTaskWoken);
 
-  8026dde:	4c0b      	ldr	r4, [pc, #44]	; (8026e0c <USART2_IRQHandler+0xac>)
 
- 	{
 
- 		c = (uint32_t)UPS_USART->DR;
 
- 		//DBG printf("read: %d 0x%x\r\n", rs485_rx_rbuf.write_index,c);
 
- 		if (!rbuf_isfull(&ups_rx_rbuf))
 
- 			rbuf32_put(&ups_rx_rbuf, c);
 
- 		USART_ClearITPendingBit(UPS_USART, USART_IT_RXNE);
 
-  8026de0:	f240 5125 	movw	r1, #1317	; 0x525
 
-  8026de4:	f7fe ffc7 	bl	8025d76 <USART_ClearITPendingBit>
 
- 		xSemaphoreGiveFromISR(xSem_rx_buf, &xHigherPriorityTaskWoken);
 
-  8026de8:	4b09      	ldr	r3, [pc, #36]	; (8026e10 <USART2_IRQHandler+0xb0>)
 
-  8026dea:	4621      	mov	r1, r4
 
-  8026dec:	6818      	ldr	r0, [r3, #0]
 
-  8026dee:	f003 fcc8 	bl	802a782 <xQueueGiveFromISR>
 
- 		portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
 
-  8026df2:	6823      	ldr	r3, [r4, #0]
 
-  8026df4:	b11b      	cbz	r3, 8026dfe <USART2_IRQHandler+0x9e>
 
-  8026df6:	4b07      	ldr	r3, [pc, #28]	; (8026e14 <USART2_IRQHandler+0xb4>)
 
-  8026df8:	f04f 5280 	mov.w	r2, #268435456	; 0x10000000
 
-  8026dfc:	601a      	str	r2, [r3, #0]
 
- }
 
- void USART2_IRQHandler(void) {
 
- 	rs232_irq_handler();
 
- }
 
-  8026dfe:	bd1c      	pop	{r2, r3, r4, pc}
 
-  8026e00:	40004400 	.word	0x40004400
 
-  8026e04:	2000cb7c 	.word	0x2000cb7c
 
-  8026e08:	2000c84c 	.word	0x2000c84c
 
-  8026e0c:	20000b08 	.word	0x20000b08
 
-  8026e10:	2000cb9c 	.word	0x2000cb9c
 
-  8026e14:	e000ed04 	.word	0xe000ed04
 
- 08026e18 <USART3_IRQHandler>:
 
- void USART3_IRQHandler(void) {
 
-  8026e18:	4770      	bx	lr
 
-  8026e1a:	0000      	movs	r0, r0
 
- 08026e1c <InitTask>:
 
- /**
 
-   * @brief  Задача инициализации. Запускает основные задачи девайса и умирает.
 
-   * @retval 
 
-   */
 
- void InitTask(void *params)
 
- {
 
-  8026e1c:	b51f      	push	{r0, r1, r2, r3, r4, lr}
 
- // -----------------------------------------------------------------------------  
 
- #ifdef LED_ENABLE
 
-   LED_Init();
 
-   /* Простая мигалка для подтверждения живучести контроллера */
 
-   xTaskCreate(vTaskLedBlink, "LED_Blink", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);//&xTaskToKill
 
-  8026e1e:	2400      	movs	r4, #0
 
- void InitTask(void *params)
 
- {
 
- // -----------------------------------------------------------------------------    
 
-  // xTaskCreate(vTaskWdt, "WDT", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
 
- // -----------------------------------------------------------------------------    
 
-   InitUSART();
 
-  8026e20:	f7ff ff3a 	bl	8026c98 <InitUSART>
 
-   ups_megatec_init();
 
-  8026e24:	f002 f954 	bl	80290d0 <ups_megatec_init>
 
- // -----------------------------------------------------------------------------    
 
-  // RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_CRC, ENABLE);
 
- /*  SETTINGS_SetDefaultDebug();
 
-   SETTINGS_Save();*/
 
-   SETTINGS_Load();
 
-  8026e28:	f001 fd84 	bl	8028934 <SETTINGS_Load>
 
-   set_mode_jumper();
 
-  8026e2c:	f001 feaa 	bl	8028b84 <set_mode_jumper>
 
- #endif  
 
- // -----------------------------------------------------------------------------    
 
- // -----------------------------------------------------------------------------  
 
- #ifdef LED_ENABLE
 
-   LED_Init();
 
-  8026e30:	f001 fe04 	bl	8028a3c <LED_Init>
 
-   /* Простая мигалка для подтверждения живучести контроллера */
 
-   xTaskCreate(vTaskLedBlink, "LED_Blink", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);//&xTaskToKill
 
-  8026e34:	2280      	movs	r2, #128	; 0x80
 
-  8026e36:	4623      	mov	r3, r4
 
-  8026e38:	4934      	ldr	r1, [pc, #208]	; (8026f0c <InitTask+0xf0>)
 
-  8026e3a:	9400      	str	r4, [sp, #0]
 
-  8026e3c:	9401      	str	r4, [sp, #4]
 
-  8026e3e:	9402      	str	r4, [sp, #8]
 
-  8026e40:	9403      	str	r4, [sp, #12]
 
-  8026e42:	4833      	ldr	r0, [pc, #204]	; (8026f10 <InitTask+0xf4>)
 
-  8026e44:	f003 fe28 	bl	802aa98 <xTaskGenericCreate>
 
- #endif  
 
- // -----------------------------------------------------------------------------    
 
-   
 
- // -----------------------------------------------------------------------------  
 
- #ifdef BUTTON_ENABLE  
 
-   BUTTON_Init();
 
-  8026e48:	f001 fe54 	bl	8028af4 <BUTTON_Init>
 
-   xTaskCreate(vTaskButtons, "Buttons", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
 
-  8026e4c:	2280      	movs	r2, #128	; 0x80
 
-  8026e4e:	4623      	mov	r3, r4
 
-  8026e50:	4930      	ldr	r1, [pc, #192]	; (8026f14 <InitTask+0xf8>)
 
-  8026e52:	9400      	str	r4, [sp, #0]
 
-  8026e54:	9401      	str	r4, [sp, #4]
 
-  8026e56:	9402      	str	r4, [sp, #8]
 
-  8026e58:	9403      	str	r4, [sp, #12]
 
-  8026e5a:	482f      	ldr	r0, [pc, #188]	; (8026f18 <InitTask+0xfc>)
 
-  8026e5c:	f003 fe1c 	bl	802aa98 <xTaskGenericCreate>
 
-   //xTaskCreate( d_inouts_task,  "inouts_task", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
 
-  // 	xTaskCreate( d_inouts_test, "d_inouts_test", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
 
- // -----------------------------------------------------------------------------    
 
- #ifdef RTC_ENABLE  
 
-   TM_RTC_Init(TM_RTC_ClockSource_External);  // Так было
 
-  8026e60:	2001      	movs	r0, #1
 
-  8026e62:	f7ff fb41 	bl	80264e8 <TM_RTC_Init>
 
-  // TM_RTC_Init(TM_RTC_ClockSource_Internal);  // TODO Уточнить источинк тактирования
 
- #endif
 
- // -----------------------------------------------------------------------------      
 
-   
 
-   /* UDP for net settings */
 
-   UDP_netsetting_init();
 
-  8026e66:	f011 fef5 	bl	8038c54 <UDP_netsetting_init>
 
- // -----------------------------------------------------------------------------
 
- #ifdef UPS_ENABLE
 
-  /* UPS_Init();
 
-   xTaskCreate(UPS_TaskParsing, "UPS_Parsing", 2*configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
 
-   xTaskCreate(UPS_TaskState, "UPS_State", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);*/
 
-   xTaskCreate(UPS_Monitor, "UPS_Monitor", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
 
-  8026e6a:	2280      	movs	r2, #128	; 0x80
 
-  8026e6c:	4623      	mov	r3, r4
 
-  8026e6e:	492b      	ldr	r1, [pc, #172]	; (8026f1c <InitTask+0x100>)
 
-  8026e70:	9400      	str	r4, [sp, #0]
 
-  8026e72:	9401      	str	r4, [sp, #4]
 
-  8026e74:	9402      	str	r4, [sp, #8]
 
-  8026e76:	9403      	str	r4, [sp, #12]
 
-  8026e78:	4829      	ldr	r0, [pc, #164]	; (8026f20 <InitTask+0x104>)
 
-  8026e7a:	f003 fe0d 	bl	802aa98 <xTaskGenericCreate>
 
- #endif
 
- // -----------------------------------------------------------------------------    
 
-   /* Random number generator */
 
-   RNG_Init();
 
-  8026e7e:	f7ff f91b 	bl	80260b8 <RNG_Init>
 
- // -----------------------------------------------------------------------------  
 
- #ifdef NET_ENABLE
 
-   ETH_BSP_Config();
 
-  8026e82:	f011 fef9 	bl	8038c78 <ETH_BSP_Config>
 
-   LwIP_Init();
 
-  8026e86:	f010 ff1d 	bl	8037cc4 <LwIP_Init>
 
-   
 
- #ifdef WEB_SERVER_ENABLE
 
-   HTTP_Init();
 
-  8026e8a:	f004 ffcd 	bl	802be28 <HTTP_Init>
 
- #endif
 
-   
 
- #ifdef SNMP_ENABLE
 
-   SNMP_Init();
 
-  8026e8e:	f011 fa7b 	bl	8038388 <SNMP_Init>
 
- 	  
 
- 	xTaskCreate(SNMP_SysUpTimeTask, "snmpSysUpTime", configMINIMAL_STACK_SIZE,
 
-  8026e92:	2280      	movs	r2, #128	; 0x80
 
-  8026e94:	4623      	mov	r3, r4
 
-  8026e96:	9400      	str	r4, [sp, #0]
 
-  8026e98:	9401      	str	r4, [sp, #4]
 
-  8026e9a:	9402      	str	r4, [sp, #8]
 
-  8026e9c:	9403      	str	r4, [sp, #12]
 
-  8026e9e:	4921      	ldr	r1, [pc, #132]	; (8026f24 <InitTask+0x108>)
 
-  8026ea0:	4821      	ldr	r0, [pc, #132]	; (8026f28 <InitTask+0x10c>)
 
-  8026ea2:	f003 fdf9 	bl	802aa98 <xTaskGenericCreate>
 
-               NULL, tskIDLE_PRIORITY, NULL);
 
- 	
 
- 	xTaskCreate(snmp_trap_tread, "snmpTrapTest", 3*configMINIMAL_STACK_SIZE,
 
-  8026ea6:	4623      	mov	r3, r4
 
-  8026ea8:	4920      	ldr	r1, [pc, #128]	; (8026f2c <InitTask+0x110>)
 
-  8026eaa:	9400      	str	r4, [sp, #0]
 
-  8026eac:	f44f 72c0 	mov.w	r2, #384	; 0x180
 
-  8026eb0:	9401      	str	r4, [sp, #4]
 
-  8026eb2:	9402      	str	r4, [sp, #8]
 
-  8026eb4:	9403      	str	r4, [sp, #12]
 
-  8026eb6:	481e      	ldr	r0, [pc, #120]	; (8026f30 <InitTask+0x114>)
 
-  8026eb8:	f003 fdee 	bl	802aa98 <xTaskGenericCreate>
 
- #endif	
 
-     
 
- #endif  
 
- // -----------------------------------------------------------------------------      
 
- 	 /* SNTP */
 
- 	 SNTP_Init();
 
-  8026ebc:	f011 fb02 	bl	80384c4 <SNTP_Init>
 
- 	 xTaskCreate(vTaskOnceSynchro, "sntpOnceSinhro", 2*configMINIMAL_STACK_SIZE,
 
-  8026ec0:	4b1c      	ldr	r3, [pc, #112]	; (8026f34 <InitTask+0x118>)
 
-  8026ec2:	9400      	str	r4, [sp, #0]
 
-  8026ec4:	9301      	str	r3, [sp, #4]
 
-  8026ec6:	9402      	str	r4, [sp, #8]
 
-  8026ec8:	4623      	mov	r3, r4
 
-  8026eca:	9403      	str	r4, [sp, #12]
 
-  8026ecc:	491a      	ldr	r1, [pc, #104]	; (8026f38 <InitTask+0x11c>)
 
-  8026ece:	481b      	ldr	r0, [pc, #108]	; (8026f3c <InitTask+0x120>)
 
-  8026ed0:	f44f 7280 	mov.w	r2, #256	; 0x100
 
-  8026ed4:	f003 fde0 	bl	802aa98 <xTaskGenericCreate>
 
- 				 NULL, tskIDLE_PRIORITY, &xHandleSntpOnceSinhro);
 
- 	 xTaskCreate(vTaskPeriodicSynchro, "sntpPeriodicSinhro", 2*configMINIMAL_STACK_SIZE,
 
-  8026ed8:	4919      	ldr	r1, [pc, #100]	; (8026f40 <InitTask+0x124>)
 
-  8026eda:	9400      	str	r4, [sp, #0]
 
-  8026edc:	f44f 7280 	mov.w	r2, #256	; 0x100
 
-  8026ee0:	4623      	mov	r3, r4
 
-  8026ee2:	9401      	str	r4, [sp, #4]
 
-  8026ee4:	9402      	str	r4, [sp, #8]
 
-  8026ee6:	9403      	str	r4, [sp, #12]
 
-  8026ee8:	4816      	ldr	r0, [pc, #88]	; (8026f44 <InitTask+0x128>)
 
-  8026eea:	f003 fdd5 	bl	802aa98 <xTaskGenericCreate>
 
-   //TEST_IO();
 
-   
 
-   /* Контроль успешной загрузки. Сброс флага bootry */
 
-   /* Сброс флага и сохранение нового значения во флеш памяти происходт после
 
-      некоторой задержки для запуска всех задач */
 
-   vTaskDelay(4000);
 
-  8026eee:	f44f 607a 	mov.w	r0, #4000	; 0xfa0
 
-  8026ef2:	f004 f86b 	bl	802afcc <vTaskDelay>
 
-  
 
-   SETTINGS_ResetBootTry();
 
-  8026ef6:	f001 fd51 	bl	802899c <SETTINGS_ResetBootTry>
 
-  /* if (!dhcp)
 
-     SNMP_SendUserTrap(DEVICE_REBOOTED);
 
-   
 
-   printf("Hello world\r\n");*/
 
-   
 
-   vTaskDelete(NULL);
 
-  8026efa:	4620      	mov	r0, r4
 
-  8026efc:	f003 fea4 	bl	802ac48 <vTaskDelete>
 
-      taskYIELD();
 
- }
 
-  8026f00:	b004      	add	sp, #16
 
-  8026f02:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
-     SNMP_SendUserTrap(DEVICE_REBOOTED);
 
-   
 
-   printf("Hello world\r\n");*/
 
-   
 
-   vTaskDelete(NULL);
 
-      taskYIELD();
 
-  8026f06:	f004 bc63 	b.w	802b7d0 <vPortYield>
 
-  8026f0a:	bf00      	nop
 
-  8026f0c:	0803985d 	.word	0x0803985d
 
-  8026f10:	08028a61 	.word	0x08028a61
 
-  8026f14:	08039867 	.word	0x08039867
 
-  8026f18:	08028b71 	.word	0x08028b71
 
-  8026f1c:	0803986f 	.word	0x0803986f
 
-  8026f20:	0802983d 	.word	0x0802983d
 
-  8026f24:	0803987b 	.word	0x0803987b
 
-  8026f28:	08038121 	.word	0x08038121
 
-  8026f2c:	08039889 	.word	0x08039889
 
-  8026f30:	08038281 	.word	0x08038281
 
-  8026f34:	20000b0c 	.word	0x20000b0c
 
-  8026f38:	08039896 	.word	0x08039896
 
-  8026f3c:	08038591 	.word	0x08038591
 
-  8026f40:	080398a5 	.word	0x080398a5
 
-  8026f44:	08038549 	.word	0x08038549
 
- 08026f48 <main>:
 
- void vApplicationTickHook(void) {
 
- }
 
-  
 
- int main()
 
- {
 
-  8026f48:	b51f      	push	{r0, r1, r2, r3, r4, lr}
 
-   This function disables IRQ interrupts by setting the I-bit in the CPSR.
 
-   Can only be executed in Privileged modes.
 
-  */
 
- __attribute__( ( always_inline ) ) __STATIC_INLINE void __disable_irq(void)
 
- {
 
-   __ASM volatile ("cpsid i" : : : "memory");
 
-  8026f4a:	b672      	cpsid	i
 
-   //TIM_Cmd(TIM13, DISABLE);
 
-   //TIM_ClearITPendingBit(TIM13, TIM_IT_Update);
 
-   
 
- 	__disable_irq();
 
- 	NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x20000);
 
-  8026f4c:	f04f 6000 	mov.w	r0, #134217728	; 0x8000000
 
-  8026f50:	f44f 3100 	mov.w	r1, #131072	; 0x20000
 
-  8026f54:	f7fe f9d8 	bl	8025308 <NVIC_SetVectorTable>
 
- __STATIC_INLINE void NVIC_SetPriorityGrouping(uint32_t PriorityGroup)
 
- {
 
-   uint32_t reg_value;
 
-   uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07);               /* only values 0..7 are used          */
 
-   reg_value  =  SCB->AIRCR;                                                   /* read old register configuration    */
 
-  8026f58:	4a18      	ldr	r2, [pc, #96]	; (8026fbc <main+0x74>)
 
-  8026f5a:	68d1      	ldr	r1, [r2, #12]
 
-   reg_value &= ~(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk);             /* clear bits to change               */
 
-  8026f5c:	f64f 03ff 	movw	r3, #63743	; 0xf8ff
 
-  8026f60:	400b      	ands	r3, r1
 
-   reg_value  =  (reg_value                                 |
 
-  8026f62:	f043 63bf 	orr.w	r3, r3, #100139008	; 0x5f80000
 
-  8026f66:	f443 3300 	orr.w	r3, r3, #131072	; 0x20000
 
-                 ((uint32_t)0x5FA << SCB_AIRCR_VECTKEY_Pos) |
 
-                 (PriorityGroupTmp << 8));                                     /* Insert write key and priorty group */
 
-   SCB->AIRCR =  reg_value;
 
-  8026f6a:	60d3      	str	r3, [r2, #12]
 
- 	NVIC_SetPriorityGrouping(0);
 
- 	NVIC_PriorityGroupConfig( NVIC_PriorityGroup_4 );
 
-  8026f6c:	f44f 7040 	mov.w	r0, #768	; 0x300
 
-  8026f70:	f7fe f98c 	bl	802528c <NVIC_PriorityGroupConfig>
 
-   This function enables IRQ interrupts by clearing the I-bit in the CPSR.
 
-   Can only be executed in Privileged modes.
 
-  */
 
- __attribute__( ( always_inline ) ) __STATIC_INLINE void __enable_irq(void)
 
- {
 
-   __ASM volatile ("cpsie i" : : : "memory");
 
-  8026f74:	b662      	cpsie	i
 
- 	__enable_irq();
 
- 	//WDG_Init();
 
- 	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_CRC, ENABLE);
 
-  8026f76:	2101      	movs	r1, #1
 
-  8026f78:	f44f 5080 	mov.w	r0, #4096	; 0x1000
 
-  8026f7c:	f7fe fbe6 	bl	802574c <RCC_AHB1PeriphClockCmd>
 
- 	/* Clear flash error flags if were set */
 
- 	FLASH_ClearFlag(FLASH_FLAG_PGPERR);
 
-  8026f80:	2040      	movs	r0, #64	; 0x40
 
-  8026f82:	f7fe f9f7 	bl	8025374 <FLASH_ClearFlag>
 
- 	FLASH_ClearFlag(FLASH_FLAG_PGSERR);
 
-  8026f86:	2080      	movs	r0, #128	; 0x80
 
- 	log_init(false);
 
- 	//log_test();
 
- 	//spi_flash_test();
 
- //  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);
 
-   
 
-   xTaskCreate( InitTask, "InitTask", 1000, NULL, tskIDLE_PRIORITY, NULL);
 
-  8026f88:	2400      	movs	r4, #0
 
- 	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_CRC, ENABLE);
 
- 	/* Clear flash error flags if were set */
 
- 	FLASH_ClearFlag(FLASH_FLAG_PGPERR);
 
- 	FLASH_ClearFlag(FLASH_FLAG_PGSERR);
 
-  8026f8a:	f7fe f9f3 	bl	8025374 <FLASH_ClearFlag>
 
- 	gpio_init();
 
-  8026f8e:	f7ff f82f 	bl	8025ff0 <gpio_init>
 
- 	spi_flash_init();
 
-  8026f92:	f7ff fd31 	bl	80269f8 <spi_flash_init>
 
- 	log_init(false);
 
-  8026f96:	2000      	movs	r0, #0
 
-  8026f98:	f002 fc98 	bl	80298cc <log_init>
 
- 	//log_test();
 
- 	//spi_flash_test();
 
- //  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);
 
-   
 
-   xTaskCreate( InitTask, "InitTask", 1000, NULL, tskIDLE_PRIORITY, NULL);
 
-  8026f9c:	4908      	ldr	r1, [pc, #32]	; (8026fc0 <main+0x78>)
 
-  8026f9e:	9400      	str	r4, [sp, #0]
 
-  8026fa0:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
 
-  8026fa4:	4623      	mov	r3, r4
 
-  8026fa6:	9401      	str	r4, [sp, #4]
 
-  8026fa8:	9402      	str	r4, [sp, #8]
 
-  8026faa:	9403      	str	r4, [sp, #12]
 
-  8026fac:	4805      	ldr	r0, [pc, #20]	; (8026fc4 <main+0x7c>)
 
-  8026fae:	f003 fd73 	bl	802aa98 <xTaskGenericCreate>
 
-   
 
-   vTaskStartScheduler();
 
-  8026fb2:	f003 fea3 	bl	802acfc <vTaskStartScheduler>
 
- 	/*while(1)
 
- 	{
 
- 	}*/
 
- }
 
-  8026fb6:	4620      	mov	r0, r4
 
-  8026fb8:	b004      	add	sp, #16
 
-  8026fba:	bd10      	pop	{r4, pc}
 
-  8026fbc:	e000ed00 	.word	0xe000ed00
 
-  8026fc0:	080398b8 	.word	0x080398b8
 
-  8026fc4:	08026e1d 	.word	0x08026e1d
 
- 08026fc8 <NMI_Handler>:
 
-   * @brief  This function handles NMI exception.
 
-   * @param  None
 
-   * @retval None
 
-   */
 
- void NMI_Handler(void)
 
- {
 
-  8026fc8:	4770      	bx	lr
 
-  8026fca:	0000      	movs	r0, r0
 
- 08026fcc <HardFault_Output>:
 
- }
 
- void HardFault_Output(uint32_t *sp)
 
- {
 
-  8026fcc:	e92d 4ff7 	stmdb	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-     uint32_t r0  = sp[0];
 
-     uint32_t r1  = sp[1];
 
-  8026fd0:	e890 0808 	ldmia.w	r0, {r3, fp}
 
-     uint32_t r2  = sp[2];
 
-  8026fd4:	f8d0 a008 	ldr.w	sl, [r0, #8]
 
-     uint32_t r3  = sp[3];
 
-  8026fd8:	f8d0 900c 	ldr.w	r9, [r0, #12]
 
-     uint32_t r12 = sp[4];
 
-  8026fdc:	f8d0 8010 	ldr.w	r8, [r0, #16]
 
-     uint32_t lr  = sp[5];
 
-  8026fe0:	6947      	ldr	r7, [r0, #20]
 
-     uint32_t pc  = sp[6];
 
-  8026fe2:	6986      	ldr	r6, [r0, #24]
 
-     uint32_t psr = sp[7];
 
-  8026fe4:	69c5      	ldr	r5, [r0, #28]
 
-     printf("HardFault:\n\r");
 
-  8026fe6:	9301      	str	r3, [sp, #4]
 
- void NMI_Handler(void)
 
- {
 
- }
 
- void HardFault_Output(uint32_t *sp)
 
- {
 
-  8026fe8:	4604      	mov	r4, r0
 
-     uint32_t r12 = sp[4];
 
-     uint32_t lr  = sp[5];
 
-     uint32_t pc  = sp[6];
 
-     uint32_t psr = sp[7];
 
-     printf("HardFault:\n\r");
 
-  8026fea:	4816      	ldr	r0, [pc, #88]	; (8027044 <HardFault_Output+0x78>)
 
-  8026fec:	f000 fbc6 	bl	802777c <tfp_printf>
 
-     /* Print CFSR register */
 
-     /* Print CPU registers */
 
-     printf("\n\rRegisters:\n\r");
 
-  8026ff0:	4815      	ldr	r0, [pc, #84]	; (8027048 <HardFault_Output+0x7c>)
 
-  8026ff2:	f000 fbc3 	bl	802777c <tfp_printf>
 
-     printf("SP          0x%08lx\n\r", (uint32_t)sp);
 
-  8026ff6:	4815      	ldr	r0, [pc, #84]	; (802704c <HardFault_Output+0x80>)
 
-  8026ff8:	4621      	mov	r1, r4
 
-  8026ffa:	f000 fbbf 	bl	802777c <tfp_printf>
 
-     printf("R0          0x%08lx\n\r", r0);
 
-  8026ffe:	9b01      	ldr	r3, [sp, #4]
 
-  8027000:	4813      	ldr	r0, [pc, #76]	; (8027050 <HardFault_Output+0x84>)
 
-  8027002:	4619      	mov	r1, r3
 
-  8027004:	f000 fbba 	bl	802777c <tfp_printf>
 
-     printf("R1          0x%08lx\n\r", r1);
 
-  8027008:	4812      	ldr	r0, [pc, #72]	; (8027054 <HardFault_Output+0x88>)
 
-  802700a:	4659      	mov	r1, fp
 
-  802700c:	f000 fbb6 	bl	802777c <tfp_printf>
 
-     printf("R2          0x%08lx\n\r", r2);
 
-  8027010:	4811      	ldr	r0, [pc, #68]	; (8027058 <HardFault_Output+0x8c>)
 
-  8027012:	4651      	mov	r1, sl
 
-  8027014:	f000 fbb2 	bl	802777c <tfp_printf>
 
-     printf("R3          0x%08lx\n\r", r3);
 
-  8027018:	4810      	ldr	r0, [pc, #64]	; (802705c <HardFault_Output+0x90>)
 
-  802701a:	4649      	mov	r1, r9
 
-  802701c:	f000 fbae 	bl	802777c <tfp_printf>
 
-     printf("R12         0x%08lx\n\r", r12);
 
-  8027020:	480f      	ldr	r0, [pc, #60]	; (8027060 <HardFault_Output+0x94>)
 
-  8027022:	4641      	mov	r1, r8
 
-  8027024:	f000 fbaa 	bl	802777c <tfp_printf>
 
-     printf("LR          0x%08lx\n\r", lr);
 
-  8027028:	480e      	ldr	r0, [pc, #56]	; (8027064 <HardFault_Output+0x98>)
 
-  802702a:	4639      	mov	r1, r7
 
-  802702c:	f000 fba6 	bl	802777c <tfp_printf>
 
-     printf("PC          0x%08lx\n\r", pc);
 
-  8027030:	480d      	ldr	r0, [pc, #52]	; (8027068 <HardFault_Output+0x9c>)
 
-  8027032:	4631      	mov	r1, r6
 
-  8027034:	f000 fba2 	bl	802777c <tfp_printf>
 
-     printf("PSR         0x%08lx\n\r", psr);
 
-  8027038:	480c      	ldr	r0, [pc, #48]	; (802706c <HardFault_Output+0xa0>)
 
-  802703a:	4629      	mov	r1, r5
 
-  802703c:	f000 fb9e 	bl	802777c <tfp_printf>
 
-  8027040:	e7fe      	b.n	8027040 <HardFault_Output+0x74>
 
-  8027042:	bf00      	nop
 
-  8027044:	080398c1 	.word	0x080398c1
 
-  8027048:	080398ce 	.word	0x080398ce
 
-  802704c:	080398dd 	.word	0x080398dd
 
-  8027050:	080398f3 	.word	0x080398f3
 
-  8027054:	08039909 	.word	0x08039909
 
-  8027058:	0803991f 	.word	0x0803991f
 
-  802705c:	08039935 	.word	0x08039935
 
-  8027060:	0803994b 	.word	0x0803994b
 
-  8027064:	08039961 	.word	0x08039961
 
-  8027068:	08039977 	.word	0x08039977
 
-  802706c:	0803998d 	.word	0x0803998d
 
- 08027070 <HardFault_Handler>:
 
-   * @retval None
 
-   */
 
- __attribute__( (naked) )
 
- void HardFault_Handler(void)
 
- {
 
- __asm volatile
 
-  8027070:	f01e 0f04 	tst.w	lr, #4
 
-  8027074:	bf0c      	ite	eq
 
-  8027076:	f3ef 8008 	mrseq	r0, MSP
 
-  802707a:	f3ef 8009 	mrsne	r0, PSP
 
-  802707e:	f8df 1004 	ldr.w	r1, [pc, #4]	; 8027084 <debugHardfault_address>
 
-  8027082:	4708      	bx	r1
 
- 08027084 <debugHardfault_address>:
 
-  8027084:	08026fcd 	.word	0x08026fcd
 
- 08027088 <MemManage_Handler>:
 
-   * @brief  This function handles Memory Manage exception.
 
-   * @param  None
 
-   * @retval None
 
-   */
 
- void MemManage_Handler(void)
 
- {
 
-  8027088:	e7fe      	b.n	8027088 <MemManage_Handler>
 
-  802708a:	0000      	movs	r0, r0
 
- 0802708c <TIM8_UP_TIM13_IRQHandler>:
 
-   }
 
- }
 
- void TIM8_UP_TIM13_IRQHandler(void)
 
- {
 
- 	TIM_ClearITPendingBit(TIM13, TIM_IT_Update);
 
-  802708c:	4801      	ldr	r0, [pc, #4]	; (8027094 <TIM8_UP_TIM13_IRQHandler+0x8>)
 
-  802708e:	2101      	movs	r1, #1
 
-  8027090:	f7fe bd7a 	b.w	8025b88 <TIM_ClearITPendingBit>
 
-  8027094:	40001c00 	.word	0x40001c00
 
- 08027098 <BusFault_Handler>:
 
-   * @brief  This function handles Bus Fault exception.
 
-   * @param  None
 
-   * @retval None
 
-   */
 
- void BusFault_Handler(void)
 
- {
 
-  8027098:	e7fe      	b.n	8027098 <BusFault_Handler>
 
- 0802709a <UsageFault_Handler>:
 
-   * @brief  This function handles Usage Fault exception.
 
-   * @param  None
 
-   * @retval None
 
-   */
 
- void UsageFault_Handler(void)
 
- {
 
-  802709a:	e7fe      	b.n	802709a <UsageFault_Handler>
 
- 0802709c <DebugMon_Handler>:
 
-   * @brief  This function handles Debug Monitor exception.
 
-   * @param  None
 
-   * @retval None
 
-   */
 
- void DebugMon_Handler(void)
 
- {
 
-  802709c:	4770      	bx	lr
 
- 0802709e <SDIO_IRQHandler>:
 
- /*void PPP_IRQHandler(void)
 
- {
 
- }*/
 
- void SDIO_IRQHandler(void)
 
- {
 
-  802709e:	4770      	bx	lr
 
- 080270a0 <ETH_IRQHandler>:
 
-   * @brief  This function handles ethernet DMA interrupt request.
 
-   * @param  None
 
-   * @retval None
 
-   */
 
- void ETH_IRQHandler(void)
 
- {
 
-  80270a0:	b507      	push	{r0, r1, r2, lr}
 
-   portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
 
-  80270a2:	2300      	movs	r3, #0
 
-   /* Frame received */
 
-   if ( ETH_GetDMAFlagStatus(ETH_DMA_FLAG_R) == SET)
 
-  80270a4:	2040      	movs	r0, #64	; 0x40
 
-   * @param  None
 
-   * @retval None
 
-   */
 
- void ETH_IRQHandler(void)
 
- {
 
-   portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
 
-  80270a6:	9301      	str	r3, [sp, #4]
 
-   /* Frame received */
 
-   if ( ETH_GetDMAFlagStatus(ETH_DMA_FLAG_R) == SET)
 
-  80270a8:	f012 f884 	bl	80391b4 <ETH_GetDMAFlagStatus>
 
-  80270ac:	2801      	cmp	r0, #1
 
-  80270ae:	d104      	bne.n	80270ba <ETH_IRQHandler+0x1a>
 
-   {
 
-     /* Give the semaphore to wakeup LwIP task */
 
-     xSemaphoreGiveFromISR( s_xSemaphore, &xHigherPriorityTaskWoken );
 
-  80270b0:	4b09      	ldr	r3, [pc, #36]	; (80270d8 <ETH_IRQHandler+0x38>)
 
-  80270b2:	a901      	add	r1, sp, #4
 
-  80270b4:	6818      	ldr	r0, [r3, #0]
 
-  80270b6:	f003 fb64 	bl	802a782 <xQueueGiveFromISR>
 
-   }
 
-   /* Clear the interrupt flags. */
 
-   /* Clear the Eth DMA Rx IT pending bits */
 
-   ETH_DMAClearITPendingBit(ETH_DMA_IT_R);
 
-  80270ba:	2040      	movs	r0, #64	; 0x40
 
-  80270bc:	f012 f890 	bl	80391e0 <ETH_DMAClearITPendingBit>
 
-   ETH_DMAClearITPendingBit(ETH_DMA_IT_NIS);
 
-  80270c0:	f44f 3080 	mov.w	r0, #65536	; 0x10000
 
-  80270c4:	f012 f88c 	bl	80391e0 <ETH_DMAClearITPendingBit>
 
-   // Switch tasks if necessary. */
 
-   if( xHigherPriorityTaskWoken != pdFALSE )
 
-  80270c8:	9b01      	ldr	r3, [sp, #4]
 
-  80270ca:	b11b      	cbz	r3, 80270d4 <ETH_IRQHandler+0x34>
 
-   {
 
-     portEND_SWITCHING_ISR( xHigherPriorityTaskWoken );
 
-  80270cc:	4b03      	ldr	r3, [pc, #12]	; (80270dc <ETH_IRQHandler+0x3c>)
 
-  80270ce:	f04f 5280 	mov.w	r2, #268435456	; 0x10000000
 
-  80270d2:	601a      	str	r2, [r3, #0]
 
-   }
 
- }
 
-  80270d4:	bd0e      	pop	{r1, r2, r3, pc}
 
-  80270d6:	bf00      	nop
 
-  80270d8:	2000c7cc 	.word	0x2000c7cc
 
-  80270dc:	e000ed04 	.word	0xe000ed04
 
- 080270e0 <ulli2a>:
 
- #ifdef PRINTF_LONG_LONG_SUPPORT
 
- static void _TFP_GCC_NO_INLINE_ ulli2a(
 
-     unsigned long long int num, struct param *p)
 
- {
 
-  80270e0:	e92d 4ff8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-     int n = 0;
 
-     unsigned long long int d = 1;
 
-     char *bf = p->bf;
 
-     while (num / d >= p->base)
 
-  80270e4:	68d3      	ldr	r3, [r2, #12]
 
- static void _TFP_GCC_NO_INLINE_ ulli2a(
 
-     unsigned long long int num, struct param *p)
 
- {
 
-     int n = 0;
 
-     unsigned long long int d = 1;
 
-     char *bf = p->bf;
 
-  80270e6:	f8d2 b010 	ldr.w	fp, [r2, #16]
 
- #ifdef PRINTF_LONG_LONG_SUPPORT
 
- static void _TFP_GCC_NO_INLINE_ ulli2a(
 
-     unsigned long long int num, struct param *p)
 
- {
 
-  80270ea:	4681      	mov	r9, r0
 
-  80270ec:	468a      	mov	sl, r1
 
-  80270ee:	4690      	mov	r8, r2
 
-     int n = 0;
 
-     unsigned long long int d = 1;
 
-     char *bf = p->bf;
 
-     while (num / d >= p->base)
 
-  80270f0:	461e      	mov	r6, r3
 
-  80270f2:	2700      	movs	r7, #0
 
- #ifdef PRINTF_LONG_LONG_SUPPORT
 
- static void _TFP_GCC_NO_INLINE_ ulli2a(
 
-     unsigned long long int num, struct param *p)
 
- {
 
-     int n = 0;
 
-     unsigned long long int d = 1;
 
-  80270f4:	2401      	movs	r4, #1
 
-  80270f6:	2500      	movs	r5, #0
 
-     char *bf = p->bf;
 
-     while (num / d >= p->base)
 
-  80270f8:	e006      	b.n	8027108 <ulli2a+0x28>
 
-         d *= p->base;
 
-  80270fa:	fb04 f307 	mul.w	r3, r4, r7
 
-  80270fe:	fb06 3305 	mla	r3, r6, r5, r3
 
-  8027102:	fba4 4506 	umull	r4, r5, r4, r6
 
-  8027106:	195d      	adds	r5, r3, r5
 
-     unsigned long long int num, struct param *p)
 
- {
 
-     int n = 0;
 
-     unsigned long long int d = 1;
 
-     char *bf = p->bf;
 
-     while (num / d >= p->base)
 
-  8027108:	4648      	mov	r0, r9
 
-  802710a:	4651      	mov	r1, sl
 
-  802710c:	4622      	mov	r2, r4
 
-  802710e:	462b      	mov	r3, r5
 
-  8027110:	f7f9 ff0c 	bl	8020f2c <__aeabi_uldivmod>
 
-  8027114:	42b9      	cmp	r1, r7
 
-  8027116:	bf08      	it	eq
 
-  8027118:	42b0      	cmpeq	r0, r6
 
-  802711a:	d2ee      	bcs.n	80270fa <ulli2a+0x1a>
 
-  802711c:	2600      	movs	r6, #0
 
-  802711e:	e02d      	b.n	802717c <ulli2a+0x9c>
 
-         d *= p->base;
 
-     while (d != 0) {
 
-         int dgt = num / d;
 
-  8027120:	4622      	mov	r2, r4
 
-  8027122:	462b      	mov	r3, r5
 
-  8027124:	4648      	mov	r0, r9
 
-  8027126:	4651      	mov	r1, sl
 
-  8027128:	f7f9 ff00 	bl	8020f2c <__aeabi_uldivmod>
 
-         num %= d;
 
-  802712c:	4651      	mov	r1, sl
 
-  802712e:	4622      	mov	r2, r4
 
-  8027130:	462b      	mov	r3, r5
 
-     unsigned long long int d = 1;
 
-     char *bf = p->bf;
 
-     while (num / d >= p->base)
 
-         d *= p->base;
 
-     while (d != 0) {
 
-         int dgt = num / d;
 
-  8027132:	4607      	mov	r7, r0
 
-         num %= d;
 
-  8027134:	4648      	mov	r0, r9
 
-  8027136:	f7f9 fef9 	bl	8020f2c <__aeabi_uldivmod>
 
-         d /= p->base;
 
-  802713a:	4620      	mov	r0, r4
 
-  802713c:	4629      	mov	r1, r5
 
-     char *bf = p->bf;
 
-     while (num / d >= p->base)
 
-         d *= p->base;
 
-     while (d != 0) {
 
-         int dgt = num / d;
 
-         num %= d;
 
-  802713e:	4691      	mov	r9, r2
 
-  8027140:	469a      	mov	sl, r3
 
-         d /= p->base;
 
-  8027142:	f8d8 200c 	ldr.w	r2, [r8, #12]
 
-  8027146:	2300      	movs	r3, #0
 
-  8027148:	f7f9 fef0 	bl	8020f2c <__aeabi_uldivmod>
 
-  802714c:	4604      	mov	r4, r0
 
-  802714e:	460d      	mov	r5, r1
 
-         if (n || dgt > 0 || d == 0) {
 
-  8027150:	b926      	cbnz	r6, 802715c <ulli2a+0x7c>
 
-  8027152:	2f00      	cmp	r7, #0
 
-  8027154:	dc02      	bgt.n	802715c <ulli2a+0x7c>
 
-  8027156:	ea54 0305 	orrs.w	r3, r4, r5
 
-  802715a:	d1e1      	bne.n	8027120 <ulli2a+0x40>
 
-             *bf++ = dgt + (dgt < 10 ? '0' : (p->uc ? 'A' : 'a') - 10);
 
-  802715c:	2f09      	cmp	r7, #9
 
-  802715e:	b2fa      	uxtb	r2, r7
 
-  8027160:	dd07      	ble.n	8027172 <ulli2a+0x92>
 
-  8027162:	f898 3000 	ldrb.w	r3, [r8]
 
-  8027166:	f013 0f04 	tst.w	r3, #4
 
-  802716a:	bf0c      	ite	eq
 
-  802716c:	2357      	moveq	r3, #87	; 0x57
 
-  802716e:	2337      	movne	r3, #55	; 0x37
 
-  8027170:	e000      	b.n	8027174 <ulli2a+0x94>
 
-  8027172:	2330      	movs	r3, #48	; 0x30
 
-  8027174:	189b      	adds	r3, r3, r2
 
-  8027176:	f80b 3b01 	strb.w	r3, [fp], #1
 
-             ++n;
 
-  802717a:	3601      	adds	r6, #1
 
-     int n = 0;
 
-     unsigned long long int d = 1;
 
-     char *bf = p->bf;
 
-     while (num / d >= p->base)
 
-         d *= p->base;
 
-     while (d != 0) {
 
-  802717c:	ea54 0305 	orrs.w	r3, r4, r5
 
-  8027180:	d1ce      	bne.n	8027120 <ulli2a+0x40>
 
-         if (n || dgt > 0 || d == 0) {
 
-             *bf++ = dgt + (dgt < 10 ? '0' : (p->uc ? 'A' : 'a') - 10);
 
-             ++n;
 
-         }
 
-     }
 
-     *bf = 0;
 
-  8027182:	2300      	movs	r3, #0
 
-  8027184:	f88b 3000 	strb.w	r3, [fp]
 
-  8027188:	e8bd 8ff8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
- 0802718c <uli2a>:
 
- }
 
- #endif
 
- #ifdef PRINTF_LONG_SUPPORT
 
- static void uli2a(unsigned long int num, struct param *p)
 
- {
 
-  802718c:	b570      	push	{r4, r5, r6, lr}
 
-     int n = 0;
 
-     unsigned long int d = 1;
 
-     char *bf = p->bf;
 
-     while (num / d >= p->base)
 
-  802718e:	68ca      	ldr	r2, [r1, #12]
 
- #ifdef PRINTF_LONG_SUPPORT
 
- static void uli2a(unsigned long int num, struct param *p)
 
- {
 
-     int n = 0;
 
-     unsigned long int d = 1;
 
-     char *bf = p->bf;
 
-  8027190:	690c      	ldr	r4, [r1, #16]
 
- #ifdef PRINTF_LONG_SUPPORT
 
- static void uli2a(unsigned long int num, struct param *p)
 
- {
 
-     int n = 0;
 
-     unsigned long int d = 1;
 
-  8027192:	2301      	movs	r3, #1
 
-     char *bf = p->bf;
 
-     while (num / d >= p->base)
 
-  8027194:	e000      	b.n	8027198 <uli2a+0xc>
 
-         d *= p->base;
 
-  8027196:	4353      	muls	r3, r2
 
- static void uli2a(unsigned long int num, struct param *p)
 
- {
 
-     int n = 0;
 
-     unsigned long int d = 1;
 
-     char *bf = p->bf;
 
-     while (num / d >= p->base)
 
-  8027198:	fbb0 f5f3 	udiv	r5, r0, r3
 
-  802719c:	4295      	cmp	r5, r2
 
-  802719e:	d2fa      	bcs.n	8027196 <uli2a+0xa>
 
-  80271a0:	2500      	movs	r5, #0
 
-  80271a2:	e01a      	b.n	80271da <uli2a+0x4e>
 
-         d *= p->base;
 
-     while (d != 0) {
 
-         int dgt = num / d;
 
-         num %= d;
 
-         d /= p->base;
 
-  80271a4:	68ce      	ldr	r6, [r1, #12]
 
-     unsigned long int d = 1;
 
-     char *bf = p->bf;
 
-     while (num / d >= p->base)
 
-         d *= p->base;
 
-     while (d != 0) {
 
-         int dgt = num / d;
 
-  80271a6:	fbb0 f2f3 	udiv	r2, r0, r3
 
-         num %= d;
 
-  80271aa:	fb03 0012 	mls	r0, r3, r2, r0
 
-         d /= p->base;
 
-  80271ae:	fbb3 f3f6 	udiv	r3, r3, r6
 
-         if (n || dgt > 0 || d == 0) {
 
-  80271b2:	b91d      	cbnz	r5, 80271bc <uli2a+0x30>
 
-  80271b4:	2a00      	cmp	r2, #0
 
-  80271b6:	dc01      	bgt.n	80271bc <uli2a+0x30>
 
-  80271b8:	2b00      	cmp	r3, #0
 
-  80271ba:	d1f3      	bne.n	80271a4 <uli2a+0x18>
 
-             *bf++ = dgt + (dgt < 10 ? '0' : (p->uc ? 'A' : 'a') - 10);
 
-  80271bc:	2a09      	cmp	r2, #9
 
-  80271be:	b2d6      	uxtb	r6, r2
 
-  80271c0:	dd06      	ble.n	80271d0 <uli2a+0x44>
 
-  80271c2:	780a      	ldrb	r2, [r1, #0]
 
-  80271c4:	f012 0f04 	tst.w	r2, #4
 
-  80271c8:	bf0c      	ite	eq
 
-  80271ca:	2257      	moveq	r2, #87	; 0x57
 
-  80271cc:	2237      	movne	r2, #55	; 0x37
 
-  80271ce:	e000      	b.n	80271d2 <uli2a+0x46>
 
-  80271d0:	2230      	movs	r2, #48	; 0x30
 
-  80271d2:	1992      	adds	r2, r2, r6
 
-  80271d4:	f804 2b01 	strb.w	r2, [r4], #1
 
-             ++n;
 
-  80271d8:	3501      	adds	r5, #1
 
-     int n = 0;
 
-     unsigned long int d = 1;
 
-     char *bf = p->bf;
 
-     while (num / d >= p->base)
 
-         d *= p->base;
 
-     while (d != 0) {
 
-  80271da:	2b00      	cmp	r3, #0
 
-  80271dc:	d1e2      	bne.n	80271a4 <uli2a+0x18>
 
-         if (n || dgt > 0 || d == 0) {
 
-             *bf++ = dgt + (dgt < 10 ? '0' : (p->uc ? 'A' : 'a') - 10);
 
-             ++n;
 
-         }
 
-     }
 
-     *bf = 0;
 
-  80271de:	7023      	strb	r3, [r4, #0]
 
-  80271e0:	bd70      	pop	{r4, r5, r6, pc}
 
- 080271e2 <ui2a>:
 
-     uli2a(num, p);
 
- }
 
- #endif
 
- static void ui2a(unsigned int num, struct param *p)
 
- {
 
-  80271e2:	b570      	push	{r4, r5, r6, lr}
 
-     int n = 0;
 
-     unsigned int d = 1;
 
-     char *bf = p->bf;
 
-     while (num / d >= p->base)
 
-  80271e4:	68ca      	ldr	r2, [r1, #12]
 
- static void ui2a(unsigned int num, struct param *p)
 
- {
 
-     int n = 0;
 
-     unsigned int d = 1;
 
-     char *bf = p->bf;
 
-  80271e6:	690c      	ldr	r4, [r1, #16]
 
- #endif
 
- static void ui2a(unsigned int num, struct param *p)
 
- {
 
-     int n = 0;
 
-     unsigned int d = 1;
 
-  80271e8:	2301      	movs	r3, #1
 
-     char *bf = p->bf;
 
-     while (num / d >= p->base)
 
-  80271ea:	e000      	b.n	80271ee <ui2a+0xc>
 
-         d *= p->base;
 
-  80271ec:	4353      	muls	r3, r2
 
- static void ui2a(unsigned int num, struct param *p)
 
- {
 
-     int n = 0;
 
-     unsigned int d = 1;
 
-     char *bf = p->bf;
 
-     while (num / d >= p->base)
 
-  80271ee:	fbb0 f5f3 	udiv	r5, r0, r3
 
-  80271f2:	4295      	cmp	r5, r2
 
-  80271f4:	d2fa      	bcs.n	80271ec <ui2a+0xa>
 
-  80271f6:	2500      	movs	r5, #0
 
-  80271f8:	e01a      	b.n	8027230 <ui2a+0x4e>
 
-         d *= p->base;
 
-     while (d != 0) {
 
-         int dgt = num / d;
 
-         num %= d;
 
-         d /= p->base;
 
-  80271fa:	68ce      	ldr	r6, [r1, #12]
 
-     unsigned int d = 1;
 
-     char *bf = p->bf;
 
-     while (num / d >= p->base)
 
-         d *= p->base;
 
-     while (d != 0) {
 
-         int dgt = num / d;
 
-  80271fc:	fbb0 f2f3 	udiv	r2, r0, r3
 
-         num %= d;
 
-  8027200:	fb03 0012 	mls	r0, r3, r2, r0
 
-         d /= p->base;
 
-  8027204:	fbb3 f3f6 	udiv	r3, r3, r6
 
-         if (n || dgt > 0 || d == 0) {
 
-  8027208:	b91d      	cbnz	r5, 8027212 <ui2a+0x30>
 
-  802720a:	2a00      	cmp	r2, #0
 
-  802720c:	dc01      	bgt.n	8027212 <ui2a+0x30>
 
-  802720e:	2b00      	cmp	r3, #0
 
-  8027210:	d1f3      	bne.n	80271fa <ui2a+0x18>
 
-             *bf++ = dgt + (dgt < 10 ? '0' : (p->uc ? 'A' : 'a') - 10);
 
-  8027212:	2a09      	cmp	r2, #9
 
-  8027214:	b2d6      	uxtb	r6, r2
 
-  8027216:	dd06      	ble.n	8027226 <ui2a+0x44>
 
-  8027218:	780a      	ldrb	r2, [r1, #0]
 
-  802721a:	f012 0f04 	tst.w	r2, #4
 
-  802721e:	bf0c      	ite	eq
 
-  8027220:	2257      	moveq	r2, #87	; 0x57
 
-  8027222:	2237      	movne	r2, #55	; 0x37
 
-  8027224:	e000      	b.n	8027228 <ui2a+0x46>
 
-  8027226:	2230      	movs	r2, #48	; 0x30
 
-  8027228:	1992      	adds	r2, r2, r6
 
-  802722a:	f804 2b01 	strb.w	r2, [r4], #1
 
-             ++n;
 
-  802722e:	3501      	adds	r5, #1
 
-     int n = 0;
 
-     unsigned int d = 1;
 
-     char *bf = p->bf;
 
-     while (num / d >= p->base)
 
-         d *= p->base;
 
-     while (d != 0) {
 
-  8027230:	2b00      	cmp	r3, #0
 
-  8027232:	d1e2      	bne.n	80271fa <ui2a+0x18>
 
-         if (n || dgt > 0 || d == 0) {
 
-             *bf++ = dgt + (dgt < 10 ? '0' : (p->uc ? 'A' : 'a') - 10);
 
-             ++n;
 
-         }
 
-     }
 
-     *bf = 0;
 
-  8027234:	7023      	strb	r3, [r4, #0]
 
-  8027236:	bd70      	pop	{r4, r5, r6, pc}
 
- 08027238 <putchw>:
 
- }
 
- static void putchw(void *putp, putcf putf, struct param *p)
 
- {
 
-  8027238:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
 
-     char ch;
 
-     int n = p->width;
 
-     char *bf = p->bf;
 
-  802723c:	6913      	ldr	r3, [r2, #16]
 
- }
 
- static void putchw(void *putp, putcf putf, struct param *p)
 
- {
 
-     char ch;
 
-     int n = p->width;
 
-  802723e:	6854      	ldr	r4, [r2, #4]
 
- }
 
- static void putchw(void *putp, putcf putf, struct param *p)
 
- {
 
-  8027240:	4606      	mov	r6, r0
 
-  8027242:	460f      	mov	r7, r1
 
-  8027244:	4615      	mov	r5, r2
 
-     char ch;
 
-     int n = p->width;
 
-     char *bf = p->bf;
 
-     /* Number of filling characters */
 
-     while (*bf++ && n > 0)
 
-  8027246:	e000      	b.n	802724a <putchw+0x12>
 
-         n--;
 
-  8027248:	3c01      	subs	r4, #1
 
-     char ch;
 
-     int n = p->width;
 
-     char *bf = p->bf;
 
-     /* Number of filling characters */
 
-     while (*bf++ && n > 0)
 
-  802724a:	f813 2b01 	ldrb.w	r2, [r3], #1
 
-  802724e:	b912      	cbnz	r2, 8027256 <putchw+0x1e>
 
-         n--;
 
-     if (p->sign)
 
-  8027250:	7a2b      	ldrb	r3, [r5, #8]
 
-  8027252:	b91b      	cbnz	r3, 802725c <putchw+0x24>
 
-  8027254:	e003      	b.n	802725e <putchw+0x26>
 
-     char ch;
 
-     int n = p->width;
 
-     char *bf = p->bf;
 
-     /* Number of filling characters */
 
-     while (*bf++ && n > 0)
 
-  8027256:	2c00      	cmp	r4, #0
 
-  8027258:	dcf6      	bgt.n	8027248 <putchw+0x10>
 
-  802725a:	e7f9      	b.n	8027250 <putchw+0x18>
 
-         n--;
 
-     if (p->sign)
 
-         n--;
 
-  802725c:	3c01      	subs	r4, #1
 
-     if (p->alt && p->base == 16)
 
-  802725e:	782b      	ldrb	r3, [r5, #0]
 
-  8027260:	0799      	lsls	r1, r3, #30
 
-  8027262:	d507      	bpl.n	8027274 <putchw+0x3c>
 
-  8027264:	68eb      	ldr	r3, [r5, #12]
 
-  8027266:	2b10      	cmp	r3, #16
 
-  8027268:	d101      	bne.n	802726e <putchw+0x36>
 
-         n -= 2;
 
-  802726a:	3c02      	subs	r4, #2
 
-  802726c:	e002      	b.n	8027274 <putchw+0x3c>
 
-     else if (p->alt && p->base == 8)
 
-  802726e:	2b08      	cmp	r3, #8
 
-         n--;
 
-  8027270:	bf08      	it	eq
 
-  8027272:	3c01      	subeq	r4, #1
 
-     /* Fill with space to align to the right, before alternate or sign */
 
-     if (!p->lz && !p->align_left) {
 
-  8027274:	782b      	ldrb	r3, [r5, #0]
 
-  8027276:	f013 0f09 	tst.w	r3, #9
 
-  802727a:	d10d      	bne.n	8027298 <putchw+0x60>
 
-  802727c:	46a0      	mov	r8, r4
 
-  802727e:	e004      	b.n	802728a <putchw+0x52>
 
-         while (n-- > 0)
 
-             putf(putp, ' ');
 
-  8027280:	4630      	mov	r0, r6
 
-  8027282:	2120      	movs	r1, #32
 
-  8027284:	47b8      	blx	r7
 
-  8027286:	f108 38ff 	add.w	r8, r8, #4294967295
 
-     else if (p->alt && p->base == 8)
 
-         n--;
 
-     /* Fill with space to align to the right, before alternate or sign */
 
-     if (!p->lz && !p->align_left) {
 
-         while (n-- > 0)
 
-  802728a:	f1b8 0f00 	cmp.w	r8, #0
 
-  802728e:	dcf7      	bgt.n	8027280 <putchw+0x48>
 
-     return neg ? -fvalue : fvalue;
 
- }
 
- static void putchw(void *putp, putcf putf, struct param *p)
 
-  8027290:	1e63      	subs	r3, r4, #1
 
-  8027292:	ea24 74e4 	bic.w	r4, r4, r4, asr #31
 
-  8027296:	1b1c      	subs	r4, r3, r4
 
-         while (n-- > 0)
 
-             putf(putp, ' ');
 
-     }
 
-     /* print sign */
 
-     if (p->sign)
 
-  8027298:	7a29      	ldrb	r1, [r5, #8]
 
-  802729a:	b109      	cbz	r1, 80272a0 <putchw+0x68>
 
-         putf(putp, p->sign);
 
-  802729c:	4630      	mov	r0, r6
 
-  802729e:	47b8      	blx	r7
 
-     /* Alternate */
 
-     if (p->alt && p->base == 16) {
 
-  80272a0:	782b      	ldrb	r3, [r5, #0]
 
-  80272a2:	079a      	lsls	r2, r3, #30
 
-  80272a4:	d512      	bpl.n	80272cc <putchw+0x94>
 
-  80272a6:	68eb      	ldr	r3, [r5, #12]
 
-  80272a8:	2b10      	cmp	r3, #16
 
-  80272aa:	d10a      	bne.n	80272c2 <putchw+0x8a>
 
-         putf(putp, '0');
 
-  80272ac:	2130      	movs	r1, #48	; 0x30
 
-  80272ae:	4630      	mov	r0, r6
 
-  80272b0:	47b8      	blx	r7
 
-         putf(putp, (p->uc ? 'X' : 'x'));
 
-  80272b2:	782b      	ldrb	r3, [r5, #0]
 
-  80272b4:	f013 0f04 	tst.w	r3, #4
 
-  80272b8:	4630      	mov	r0, r6
 
-  80272ba:	bf0c      	ite	eq
 
-  80272bc:	2178      	moveq	r1, #120	; 0x78
 
-  80272be:	2158      	movne	r1, #88	; 0x58
 
-  80272c0:	e003      	b.n	80272ca <putchw+0x92>
 
-     } else if (p->alt && p->base == 8) {
 
-  80272c2:	2b08      	cmp	r3, #8
 
-  80272c4:	d102      	bne.n	80272cc <putchw+0x94>
 
-         putf(putp, '0');
 
-  80272c6:	4630      	mov	r0, r6
 
-  80272c8:	2130      	movs	r1, #48	; 0x30
 
-  80272ca:	47b8      	blx	r7
 
-     }
 
-     /* Fill with zeros, after alternate or sign */
 
-     if (p->lz) {
 
-  80272cc:	782b      	ldrb	r3, [r5, #0]
 
-  80272ce:	07db      	lsls	r3, r3, #31
 
-  80272d0:	d50d      	bpl.n	80272ee <putchw+0xb6>
 
-  80272d2:	46a0      	mov	r8, r4
 
-  80272d4:	e004      	b.n	80272e0 <putchw+0xa8>
 
-         while (n-- > 0)
 
-             putf(putp, '0');
 
-  80272d6:	4630      	mov	r0, r6
 
-  80272d8:	2130      	movs	r1, #48	; 0x30
 
-  80272da:	47b8      	blx	r7
 
-  80272dc:	f108 38ff 	add.w	r8, r8, #4294967295
 
-         putf(putp, '0');
 
-     }
 
-     /* Fill with zeros, after alternate or sign */
 
-     if (p->lz) {
 
-         while (n-- > 0)
 
-  80272e0:	f1b8 0f00 	cmp.w	r8, #0
 
-  80272e4:	dcf7      	bgt.n	80272d6 <putchw+0x9e>
 
-     return neg ? -fvalue : fvalue;
 
- }
 
- static void putchw(void *putp, putcf putf, struct param *p)
 
-  80272e6:	1e63      	subs	r3, r4, #1
 
-  80272e8:	ea24 74e4 	bic.w	r4, r4, r4, asr #31
 
-  80272ec:	1b1c      	subs	r4, r3, r4
 
-         while (n-- > 0)
 
-             putf(putp, '0');
 
-     }
 
-     /* Put actual buffer */
 
-     bf = p->bf;
 
-  80272ee:	f8d5 8010 	ldr.w	r8, [r5, #16]
 
-     while ((ch = *bf++))
 
-  80272f2:	e001      	b.n	80272f8 <putchw+0xc0>
 
-         putf(putp, ch);
 
-  80272f4:	4630      	mov	r0, r6
 
-  80272f6:	47b8      	blx	r7
 
-             putf(putp, '0');
 
-     }
 
-     /* Put actual buffer */
 
-     bf = p->bf;
 
-     while ((ch = *bf++))
 
-  80272f8:	f818 1b01 	ldrb.w	r1, [r8], #1
 
-  80272fc:	2900      	cmp	r1, #0
 
-  80272fe:	d1f9      	bne.n	80272f4 <putchw+0xbc>
 
-         putf(putp, ch);
 
-     /* Fill with space to align to the left, after string */
 
-     if (!p->lz && p->align_left) {
 
-  8027300:	782b      	ldrb	r3, [r5, #0]
 
-  8027302:	f003 0309 	and.w	r3, r3, #9
 
-  8027306:	2b08      	cmp	r3, #8
 
-  8027308:	d106      	bne.n	8027318 <putchw+0xe0>
 
-  802730a:	e003      	b.n	8027314 <putchw+0xdc>
 
-         while (n-- > 0)
 
-             putf(putp, ' ');
 
-  802730c:	4630      	mov	r0, r6
 
-  802730e:	2120      	movs	r1, #32
 
-  8027310:	47b8      	blx	r7
 
-  8027312:	3c01      	subs	r4, #1
 
-     while ((ch = *bf++))
 
-         putf(putp, ch);
 
-     /* Fill with space to align to the left, after string */
 
-     if (!p->lz && p->align_left) {
 
-         while (n-- > 0)
 
-  8027314:	2c00      	cmp	r4, #0
 
-  8027316:	dcf9      	bgt.n	802730c <putchw+0xd4>
 
-  8027318:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 
- 0802731c <_vsnprintf_putcf>:
 
- };
 
- static void _vsnprintf_putcf(void *p, char c)
 
- {
 
-   struct _vsnprintf_putcf_data *data = (struct _vsnprintf_putcf_data*)p;
 
-   if (data->num_chars < data->dest_capacity)
 
-  802731c:	6883      	ldr	r3, [r0, #8]
 
-  802731e:	6802      	ldr	r2, [r0, #0]
 
-  8027320:	4293      	cmp	r3, r2
 
-     data->dest[data->num_chars] = c;
 
-  8027322:	bf3c      	itt	cc
 
-  8027324:	6842      	ldrcc	r2, [r0, #4]
 
-  8027326:	54d1      	strbcc	r1, [r2, r3]
 
-   data->num_chars ++;
 
-  8027328:	6883      	ldr	r3, [r0, #8]
 
-  802732a:	3301      	adds	r3, #1
 
-  802732c:	6083      	str	r3, [r0, #8]
 
-  802732e:	4770      	bx	lr
 
- 08027330 <_vsprintf_putcf>:
 
- };
 
- static void _vsprintf_putcf(void *p, char c)
 
- {
 
-   struct _vsprintf_putcf_data *data = (struct _vsprintf_putcf_data*)p;
 
-   data->dest[data->num_chars++] = c;
 
-  8027330:	e890 000c 	ldmia.w	r0, {r2, r3}
 
-  8027334:	54d1      	strb	r1, [r2, r3]
 
-  8027336:	3301      	adds	r3, #1
 
-  8027338:	6043      	str	r3, [r0, #4]
 
-  802733a:	4770      	bx	lr
 
- 0802733c <tfp_format>:
 
-             putf(putp, ' ');
 
-     }
 
- }
 
- void tfp_format(void *putp, putcf putf, const char *fmt, va_list va)
 
- {
 
-  802733c:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-  8027340:	b09b      	sub	sp, #108	; 0x6c
 
-  8027342:	4617      	mov	r7, r2
 
-     char bf[23];  /* long = 64b on some architectures */
 
- #else
 
-     char bf[12];  /* int = 32b on some architectures */
 
- #endif
 
-     char ch;
 
-     p.bf = bf;
 
-  8027344:	aa04      	add	r2, sp, #16
 
-             putf(putp, ' ');
 
-     }
 
- }
 
- void tfp_format(void *putp, putcf putf, const char *fmt, va_list va)
 
- {
 
-  8027346:	4605      	mov	r5, r0
 
-  8027348:	460e      	mov	r6, r1
 
-  802734a:	461c      	mov	r4, r3
 
-     char bf[23];  /* long = 64b on some architectures */
 
- #else
 
-     char bf[12];  /* int = 32b on some architectures */
 
- #endif
 
-     char ch;
 
-     p.bf = bf;
 
-  802734c:	920e      	str	r2, [sp, #56]	; 0x38
 
-     while ((ch = *(fmt++))) {
 
-  802734e:	e208      	b.n	8027762 <tfp_format+0x426>
 
-         if (ch != '%') {
 
-  8027350:	2925      	cmp	r1, #37	; 0x25
 
-  8027352:	d000      	beq.n	8027356 <tfp_format+0x1a>
 
-  8027354:	e13a      	b.n	80275cc <tfp_format+0x290>
 
- #endif
 
-             /* Init parameter struct */
 
-             p.lz = 0;
 
-             p.alt = 0;
 
-             p.width = 0;
 
-             p.align_left = 0;
 
-  8027356:	f89d 2028 	ldrb.w	r2, [sp, #40]	; 0x28
 
-             char lng = 0;  /* 1 for long, 2 for long long */
 
- #endif
 
-             /* Init parameter struct */
 
-             p.lz = 0;
 
-             p.alt = 0;
 
-             p.width = 0;
 
-  802735a:	2300      	movs	r3, #0
 
-             p.align_left = 0;
 
-  802735c:	f002 02fc 	and.w	r2, r2, #252	; 0xfc
 
-  8027360:	f363 02c3 	bfi	r2, r3, #3, #1
 
-  8027364:	f88d 2028 	strb.w	r2, [sp, #40]	; 0x28
 
-             p.sign = 0;
 
-             p.prec = 2;
 
-  8027368:	2102      	movs	r1, #2
 
-         } else {
 
- #ifdef PRINTF_LONG_SUPPORT
 
-             char lng = 0;  /* 1 for long, 2 for long long */
 
- #endif
 
-             /* Init parameter struct */
 
-             p.lz = 0;
 
-  802736a:	b2d2      	uxtb	r2, r2
 
-  802736c:	f002 0c01 	and.w	ip, r2, #1
 
-  8027370:	f3c2 0040 	ubfx	r0, r2, #1, #1
 
-             p.alt = 0;
 
-             p.width = 0;
 
-  8027374:	930b      	str	r3, [sp, #44]	; 0x2c
 
-             p.align_left = 0;
 
-             p.sign = 0;
 
-  8027376:	f88d 3030 	strb.w	r3, [sp, #48]	; 0x30
 
-             p.prec = 2;
 
-  802737a:	f88d 103c 	strb.w	r1, [sp, #60]	; 0x3c
 
-  802737e:	f3c2 02c0 	ubfx	r2, r2, #3, #1
 
-             /* Flags */
 
-             while ((ch = *(fmt++))) {
 
-  8027382:	e012      	b.n	80273aa <tfp_format+0x6e>
 
-                 switch (ch) {
 
-  8027384:	292d      	cmp	r1, #45	; 0x2d
 
-  8027386:	d00f      	beq.n	80273a8 <tfp_format+0x6c>
 
-  8027388:	d804      	bhi.n	8027394 <tfp_format+0x58>
 
-  802738a:	2923      	cmp	r1, #35	; 0x23
 
-  802738c:	d008      	beq.n	80273a0 <tfp_format+0x64>
 
-  802738e:	292b      	cmp	r1, #43	; 0x2b
 
-  8027390:	d10f      	bne.n	80273b2 <tfp_format+0x76>
 
-  8027392:	e007      	b.n	80273a4 <tfp_format+0x68>
 
-  8027394:	2930      	cmp	r1, #48	; 0x30
 
-  8027396:	d000      	beq.n	802739a <tfp_format+0x5e>
 
-  8027398:	e00b      	b.n	80273b2 <tfp_format+0x76>
 
-                 case '-':
 
-                     p.align_left = 1;
 
-                     continue;
 
-                 case '0':
 
-                     p.lz = 1;
 
-  802739a:	f04f 0c01 	mov.w	ip, #1
 
-                     continue;
 
-  802739e:	e004      	b.n	80273aa <tfp_format+0x6e>
 
-                 case '#':
 
-                     p.alt = 1;
 
-  80273a0:	2001      	movs	r0, #1
 
-                     continue;
 
-  80273a2:	e002      	b.n	80273aa <tfp_format+0x6e>
 
-                 case '+':
 
-                 	p.sign = 1;
 
-  80273a4:	2301      	movs	r3, #1
 
-                 	continue;
 
-  80273a6:	e000      	b.n	80273aa <tfp_format+0x6e>
 
-             /* Flags */
 
-             while ((ch = *(fmt++))) {
 
-                 switch (ch) {
 
-                 case '-':
 
-                     p.align_left = 1;
 
-  80273a8:	2201      	movs	r2, #1
 
-             p.align_left = 0;
 
-             p.sign = 0;
 
-             p.prec = 2;
 
-             /* Flags */
 
-             while ((ch = *(fmt++))) {
 
-  80273aa:	f817 1b01 	ldrb.w	r1, [r7], #1
 
-  80273ae:	2900      	cmp	r1, #0
 
-  80273b0:	d1e8      	bne.n	8027384 <tfp_format+0x48>
 
-  80273b2:	f89d 8028 	ldrb.w	r8, [sp, #40]	; 0x28
 
-  80273b6:	f88d 3030 	strb.w	r3, [sp, #48]	; 0x30
 
-  80273ba:	f36c 0800 	bfi	r8, ip, #0, #1
 
-  80273be:	46c4      	mov	ip, r8
 
-  80273c0:	f360 0c41 	bfi	ip, r0, #1, #1
 
-  80273c4:	4660      	mov	r0, ip
 
-                 }
 
-                 break;
 
-             }
 
-             /* Width */
 
-             if (ch >= '0' && ch <= '9') {
 
-  80273c6:	f1a1 0330 	sub.w	r3, r1, #48	; 0x30
 
-  80273ca:	f362 00c3 	bfi	r0, r2, #3, #1
 
-  80273ce:	2b09      	cmp	r3, #9
 
-  80273d0:	f88d 0028 	strb.w	r0, [sp, #40]	; 0x28
 
-  80273d4:	d81d      	bhi.n	8027412 <tfp_format+0xd6>
 
-  80273d6:	e004      	b.n	80273e2 <tfp_format+0xa6>
 
-     unsigned int num = 0;
 
-     int digit;
 
-     while ((digit = a2d(ch)) >= 0) {
 
-         if (digit > base)
 
-             break;
 
-         num = num * base + digit;
 
-  80273d8:	fb00 3202 	mla	r2, r0, r2, r3
 
-         ch = *p++;
 
-  80273dc:	f817 1b01 	ldrb.w	r1, [r7], #1
 
-  80273e0:	e001      	b.n	80273e6 <tfp_format+0xaa>
 
-                 }
 
-                 break;
 
-             }
 
-             /* Width */
 
-             if (ch >= '0' && ch <= '9') {
 
-  80273e2:	2200      	movs	r2, #0
 
-     unsigned int num = 0;
 
-     int digit;
 
-     while ((digit = a2d(ch)) >= 0) {
 
-         if (digit > base)
 
-             break;
 
-         num = num * base + digit;
 
-  80273e4:	200a      	movs	r0, #10
 
-     ui2a(num, p);
 
- }
 
- static int a2d(char ch)
 
- {
 
-     if (ch >= '0' && ch <= '9')
 
-  80273e6:	f1a1 0330 	sub.w	r3, r1, #48	; 0x30
 
-  80273ea:	fa5f fc83 	uxtb.w	ip, r3
 
-  80273ee:	f1bc 0f09 	cmp.w	ip, #9
 
-  80273f2:	d9f1      	bls.n	80273d8 <tfp_format+0x9c>
 
-         return ch - '0';
 
-     else if (ch >= 'a' && ch <= 'f')
 
-  80273f4:	f1a1 0361 	sub.w	r3, r1, #97	; 0x61
 
-  80273f8:	2b05      	cmp	r3, #5
 
-  80273fa:	d802      	bhi.n	8027402 <tfp_format+0xc6>
 
-         return ch - 'a' + 10;
 
-  80273fc:	f1a1 0357 	sub.w	r3, r1, #87	; 0x57
 
-  8027400:	e1b5      	b.n	802776e <tfp_format+0x432>
 
-     else if (ch >= 'A' && ch <= 'F')
 
-  8027402:	f1a1 0341 	sub.w	r3, r1, #65	; 0x41
 
-  8027406:	2b05      	cmp	r3, #5
 
-  8027408:	d802      	bhi.n	8027410 <tfp_format+0xd4>
 
-         return ch - 'A' + 10;
 
-  802740a:	f1a1 0337 	sub.w	r3, r1, #55	; 0x37
 
-  802740e:	e1ae      	b.n	802776e <tfp_format+0x432>
 
-             break;
 
-         num = num * base + digit;
 
-         ch = *p++;
 
-     }
 
-     *src = p;
 
-     *nump = num;
 
-  8027410:	920b      	str	r2, [sp, #44]	; 0x2c
 
-             }
 
-             /* We accept 'x.y' format but don't support it completely:
 
-              * we ignore the 'y' digit => this ignores 0-fill
 
-              * size and makes it == width (ie. 'x') */
 
-             if (ch == '.') {
 
-  8027412:	292e      	cmp	r1, #46	; 0x2e
 
-  8027414:	d10e      	bne.n	8027434 <tfp_format+0xf8>
 
-               //p.lz = 1;  /* zero-padding */
 
-               /* ignore actual 0-fill size: */
 
-                ch = *(fmt++);
 
-                if (ch >= '0' && ch <= '9')
 
-  8027416:	783a      	ldrb	r2, [r7, #0]
 
-  8027418:	3a30      	subs	r2, #48	; 0x30
 
-  802741a:	b2d2      	uxtb	r2, r2
 
-              * we ignore the 'y' digit => this ignores 0-fill
 
-              * size and makes it == width (ie. 'x') */
 
-             if (ch == '.') {
 
-               //p.lz = 1;  /* zero-padding */
 
-               /* ignore actual 0-fill size: */
 
-                ch = *(fmt++);
 
-  802741c:	1c7b      	adds	r3, r7, #1
 
-                if (ch >= '0' && ch <= '9')
 
-  802741e:	2a09      	cmp	r2, #9
 
-             	   p.prec = ch - '0';
 
-  8027420:	bf98      	it	ls
 
-  8027422:	f88d 203c 	strbls.w	r2, [sp, #60]	; 0x3c
 
-                do
 
-                {
 
-             	   ch = *(fmt++);
 
-  8027426:	f813 1b01 	ldrb.w	r1, [r3], #1
 
-                }   while (ch >= '0' && ch <= '9');
 
-  802742a:	f1a1 0230 	sub.w	r2, r1, #48	; 0x30
 
-  802742e:	2a09      	cmp	r2, #9
 
-                ch = *(fmt++);
 
-                if (ch >= '0' && ch <= '9')
 
-             	   p.prec = ch - '0';
 
-                do
 
-                {
 
-             	   ch = *(fmt++);
 
-  8027430:	461f      	mov	r7, r3
 
-                }   while (ch >= '0' && ch <= '9');
 
-  8027432:	d9f8      	bls.n	8027426 <tfp_format+0xea>
 
-             }
 
- #ifdef PRINTF_SIZE_T_SUPPORT
 
- # ifdef PRINTF_LONG_SUPPORT
 
-             if (ch == 'z') {
 
-  8027434:	297a      	cmp	r1, #122	; 0x7a
 
-  8027436:	d102      	bne.n	802743e <tfp_format+0x102>
 
-                 ch = *(fmt++);
 
-  8027438:	f817 1b01 	ldrb.w	r1, [r7], #1
 
-  802743c:	e005      	b.n	802744a <tfp_format+0x10e>
 
-             } else
 
- # endif
 
- #endif
 
- #ifdef PRINTF_LONG_SUPPORT
 
-             if (ch == 'l') {
 
-  802743e:	296c      	cmp	r1, #108	; 0x6c
 
-  8027440:	d109      	bne.n	8027456 <tfp_format+0x11a>
 
-                 ch = *(fmt++);
 
-  8027442:	7839      	ldrb	r1, [r7, #0]
 
-                 lng = 1;
 
- #ifdef PRINTF_LONG_LONG_SUPPORT
 
-                 if (ch == 'l') {
 
-  8027444:	296c      	cmp	r1, #108	; 0x6c
 
-  8027446:	d002      	beq.n	802744e <tfp_format+0x112>
 
- # endif
 
- #endif
 
- #ifdef PRINTF_LONG_SUPPORT
 
-             if (ch == 'l') {
 
-                 ch = *(fmt++);
 
-  8027448:	3701      	adds	r7, #1
 
-                 lng = 1;
 
-  802744a:	2301      	movs	r3, #1
 
-  802744c:	e004      	b.n	8027458 <tfp_format+0x11c>
 
- #ifdef PRINTF_LONG_LONG_SUPPORT
 
-                 if (ch == 'l') {
 
-                   ch = *(fmt++);
 
-  802744e:	7879      	ldrb	r1, [r7, #1]
 
-                   lng = 2;
 
-  8027450:	2302      	movs	r3, #2
 
-             if (ch == 'l') {
 
-                 ch = *(fmt++);
 
-                 lng = 1;
 
- #ifdef PRINTF_LONG_LONG_SUPPORT
 
-                 if (ch == 'l') {
 
-                   ch = *(fmt++);
 
-  8027452:	3702      	adds	r7, #2
 
-  8027454:	e000      	b.n	8027458 <tfp_format+0x11c>
 
-     while ((ch = *(fmt++))) {
 
-         if (ch != '%') {
 
-             putf(putp, ch);
 
-         } else {
 
- #ifdef PRINTF_LONG_SUPPORT
 
-             char lng = 0;  /* 1 for long, 2 for long long */
 
-  8027456:	2300      	movs	r3, #0
 
-                   lng = 2;
 
-                 }
 
- #endif
 
-             }
 
- #endif
 
-             switch (ch) {
 
-  8027458:	2969      	cmp	r1, #105	; 0x69
 
-  802745a:	d036      	beq.n	80274ca <tfp_format+0x18e>
 
-  802745c:	d816      	bhi.n	802748c <tfp_format+0x150>
 
-  802745e:	2963      	cmp	r1, #99	; 0x63
 
-  8027460:	f000 80a1 	beq.w	80275a6 <tfp_format+0x26a>
 
-  8027464:	d80c      	bhi.n	8027480 <tfp_format+0x144>
 
-  8027466:	2946      	cmp	r1, #70	; 0x46
 
-  8027468:	f000 80b3 	beq.w	80275d2 <tfp_format+0x296>
 
-  802746c:	d806      	bhi.n	802747c <tfp_format+0x140>
 
-  802746e:	2900      	cmp	r1, #0
 
-  8027470:	f000 8181 	beq.w	8027776 <tfp_format+0x43a>
 
-  8027474:	2925      	cmp	r1, #37	; 0x25
 
-  8027476:	f040 8174 	bne.w	8027762 <tfp_format+0x426>
 
-  802747a:	e0a7      	b.n	80275cc <tfp_format+0x290>
 
-  802747c:	2958      	cmp	r1, #88	; 0x58
 
-  802747e:	e012      	b.n	80274a6 <tfp_format+0x16a>
 
-  8027480:	2964      	cmp	r1, #100	; 0x64
 
-  8027482:	d022      	beq.n	80274ca <tfp_format+0x18e>
 
-  8027484:	2966      	cmp	r1, #102	; 0x66
 
-  8027486:	f040 816c 	bne.w	8027762 <tfp_format+0x426>
 
-  802748a:	e0a2      	b.n	80275d2 <tfp_format+0x296>
 
-  802748c:	2973      	cmp	r1, #115	; 0x73
 
-  802748e:	f000 8090 	beq.w	80275b2 <tfp_format+0x276>
 
-  8027492:	d805      	bhi.n	80274a0 <tfp_format+0x164>
 
-  8027494:	296f      	cmp	r1, #111	; 0x6f
 
-  8027496:	d078      	beq.n	802758a <tfp_format+0x24e>
 
-  8027498:	2970      	cmp	r1, #112	; 0x70
 
-  802749a:	f040 8162 	bne.w	8027762 <tfp_format+0x426>
 
-  802749e:	e040      	b.n	8027522 <tfp_format+0x1e6>
 
-  80274a0:	2975      	cmp	r1, #117	; 0x75
 
-  80274a2:	d003      	beq.n	80274ac <tfp_format+0x170>
 
-  80274a4:	2978      	cmp	r1, #120	; 0x78
 
-  80274a6:	f040 815c 	bne.w	8027762 <tfp_format+0x426>
 
-  80274aa:	e041      	b.n	8027530 <tfp_format+0x1f4>
 
-             case 0:
 
-                 goto abort;
 
-             case 'u':
 
-                 p.base = 10;
 
-  80274ac:	220a      	movs	r2, #10
 
- #ifdef PRINTF_LONG_SUPPORT
 
- #ifdef PRINTF_LONG_LONG_SUPPORT
 
-                 if (2 == lng)
 
-  80274ae:	2b02      	cmp	r3, #2
 
- #endif
 
-             switch (ch) {
 
-             case 0:
 
-                 goto abort;
 
-             case 'u':
 
-                 p.base = 10;
 
-  80274b0:	920d      	str	r2, [sp, #52]	; 0x34
 
- #ifdef PRINTF_LONG_SUPPORT
 
- #ifdef PRINTF_LONG_LONG_SUPPORT
 
-                 if (2 == lng)
 
-  80274b2:	d107      	bne.n	80274c4 <tfp_format+0x188>
 
-                     ulli2a(va_arg(va, unsigned long long int), &p);
 
-  80274b4:	3407      	adds	r4, #7
 
-  80274b6:	f024 0307 	bic.w	r3, r4, #7
 
-  80274ba:	f103 0408 	add.w	r4, r3, #8
 
-  80274be:	e9d3 0100 	ldrd	r0, r1, [r3]
 
-  80274c2:	e017      	b.n	80274f4 <tfp_format+0x1b8>
 
-                 else
 
- #endif
 
-                   if (1 == lng)
 
-                     uli2a(va_arg(va, unsigned long int), &p);
 
-  80274c4:	6820      	ldr	r0, [r4, #0]
 
-  80274c6:	a90a      	add	r1, sp, #40	; 0x28
 
-  80274c8:	e04f      	b.n	802756a <tfp_format+0x22e>
 
-                     ui2a(va_arg(va, unsigned int), &p);
 
-                 putchw(putp, putf, &p);
 
-                 break;
 
-             case 'd':
 
-             case 'i':
 
-                 p.base = 10;
 
-  80274ca:	220a      	movs	r2, #10
 
- #ifdef PRINTF_LONG_SUPPORT
 
- #ifdef PRINTF_LONG_LONG_SUPPORT
 
-                 if (2 == lng)
 
-  80274cc:	2b02      	cmp	r3, #2
 
-                     ui2a(va_arg(va, unsigned int), &p);
 
-                 putchw(putp, putf, &p);
 
-                 break;
 
-             case 'd':
 
-             case 'i':
 
-                 p.base = 10;
 
-  80274ce:	920d      	str	r2, [sp, #52]	; 0x34
 
- #ifdef PRINTF_LONG_SUPPORT
 
- #ifdef PRINTF_LONG_LONG_SUPPORT
 
-                 if (2 == lng)
 
-  80274d0:	d112      	bne.n	80274f8 <tfp_format+0x1bc>
 
-                     lli2a(va_arg(va, long long int), &p);
 
-  80274d2:	3407      	adds	r4, #7
 
-  80274d4:	f024 0307 	bic.w	r3, r4, #7
 
-  80274d8:	e9d3 0100 	ldrd	r0, r1, [r3]
 
-  80274dc:	f103 0408 	add.w	r4, r3, #8
 
-     *bf = 0;
 
- }
 
- static void lli2a(long long int num, struct param *p)
 
- {
 
-     if (num < 0) {
 
-  80274e0:	2800      	cmp	r0, #0
 
-  80274e2:	f171 0300 	sbcs.w	r3, r1, #0
 
-  80274e6:	da05      	bge.n	80274f4 <tfp_format+0x1b8>
 
-         num = -num;
 
-         p->sign = '-';
 
-  80274e8:	232d      	movs	r3, #45	; 0x2d
 
- }
 
- static void lli2a(long long int num, struct param *p)
 
- {
 
-     if (num < 0) {
 
-         num = -num;
 
-  80274ea:	4240      	negs	r0, r0
 
-  80274ec:	eb61 0141 	sbc.w	r1, r1, r1, lsl #1
 
-         p->sign = '-';
 
-  80274f0:	f88d 3030 	strb.w	r3, [sp, #48]	; 0x30
 
-     }
 
-     ulli2a(num, p);
 
-  80274f4:	aa0a      	add	r2, sp, #40	; 0x28
 
-  80274f6:	e033      	b.n	8027560 <tfp_format+0x224>
 
- #ifdef PRINTF_LONG_LONG_SUPPORT
 
-                 if (2 == lng)
 
-                     lli2a(va_arg(va, long long int), &p);
 
-                 else
 
- #endif
 
-                   if (1 == lng)
 
-  80274f8:	2b01      	cmp	r3, #1
 
-                     li2a(va_arg(va, long int), &p);
 
-  80274fa:	6820      	ldr	r0, [r4, #0]
 
-  80274fc:	f104 0804 	add.w	r8, r4, #4
 
- #ifdef PRINTF_LONG_LONG_SUPPORT
 
-                 if (2 == lng)
 
-                     lli2a(va_arg(va, long long int), &p);
 
-                 else
 
- #endif
 
-                   if (1 == lng)
 
-  8027500:	d107      	bne.n	8027512 <tfp_format+0x1d6>
 
-     *bf = 0;
 
- }
 
- static void li2a(long num, struct param *p)
 
- {
 
-     if (num < 0) {
 
-  8027502:	2800      	cmp	r0, #0
 
-  8027504:	da03      	bge.n	802750e <tfp_format+0x1d2>
 
-         num = -num;
 
-         p->sign = '-';
 
-  8027506:	232d      	movs	r3, #45	; 0x2d
 
- }
 
- static void li2a(long num, struct param *p)
 
- {
 
-     if (num < 0) {
 
-         num = -num;
 
-  8027508:	4240      	negs	r0, r0
 
-         p->sign = '-';
 
-  802750a:	f88d 3030 	strb.w	r3, [sp, #48]	; 0x30
 
-     }
 
-     uli2a(num, p);
 
-  802750e:	a90a      	add	r1, sp, #40	; 0x28
 
-  8027510:	e02f      	b.n	8027572 <tfp_format+0x236>
 
-     *bf = 0;
 
- }
 
- static void i2a(int num, struct param *p)
 
- {
 
-     if (num < 0) {
 
-  8027512:	2800      	cmp	r0, #0
 
-  8027514:	da03      	bge.n	802751e <tfp_format+0x1e2>
 
-         num = -num;
 
-         p->sign = '-';
 
-  8027516:	232d      	movs	r3, #45	; 0x2d
 
- }
 
- static void i2a(int num, struct param *p)
 
- {
 
-     if (num < 0) {
 
-         num = -num;
 
-  8027518:	4240      	negs	r0, r0
 
-         p->sign = '-';
 
-  802751a:	f88d 3030 	strb.w	r3, [sp, #48]	; 0x30
 
-     }
 
-     ui2a(num, p);
 
-  802751e:	a90a      	add	r1, sp, #40	; 0x28
 
-  8027520:	e02a      	b.n	8027578 <tfp_format+0x23c>
 
-                     i2a(va_arg(va, int), &p);
 
-                 putchw(putp, putf, &p);
 
-                 break;
 
- #ifdef SIZEOF_POINTER
 
-             case 'p':
 
-                 p.alt = 1;
 
-  8027522:	f89d 3028 	ldrb.w	r3, [sp, #40]	; 0x28
 
-  8027526:	f043 0302 	orr.w	r3, r3, #2
 
-  802752a:	f88d 3028 	strb.w	r3, [sp, #40]	; 0x28
 
- # if defined(SIZEOF_INT) && SIZEOF_POINTER <= SIZEOF_INT
 
-                 lng = 0;
 
-  802752e:	2300      	movs	r3, #0
 
-                 lng = 2;
 
- # endif
 
- #endif
 
-             case 'x':
 
-             case 'X':
 
-                 p.base = 16;
 
-  8027530:	2210      	movs	r2, #16
 
-                 p.uc = (ch == 'X')?1:0;
 
-  8027532:	f1b1 0e58 	subs.w	lr, r1, #88	; 0x58
 
-  8027536:	f1de 0100 	rsbs	r1, lr, #0
 
-  802753a:	f89d 0028 	ldrb.w	r0, [sp, #40]	; 0x28
 
-                 lng = 2;
 
- # endif
 
- #endif
 
-             case 'x':
 
-             case 'X':
 
-                 p.base = 16;
 
-  802753e:	920d      	str	r2, [sp, #52]	; 0x34
 
-                 p.uc = (ch == 'X')?1:0;
 
-  8027540:	eb51 010e 	adcs.w	r1, r1, lr
 
-  8027544:	aa1a      	add	r2, sp, #104	; 0x68
 
-  8027546:	f361 0082 	bfi	r0, r1, #2, #1
 
- #ifdef PRINTF_LONG_SUPPORT
 
- #ifdef PRINTF_LONG_LONG_SUPPORT
 
-                 if (2 == lng)
 
-  802754a:	2b02      	cmp	r3, #2
 
- # endif
 
- #endif
 
-             case 'x':
 
-             case 'X':
 
-                 p.base = 16;
 
-                 p.uc = (ch == 'X')?1:0;
 
-  802754c:	f802 0d40 	strb.w	r0, [r2, #-64]!
 
- #ifdef PRINTF_LONG_SUPPORT
 
- #ifdef PRINTF_LONG_LONG_SUPPORT
 
-                 if (2 == lng)
 
-  8027550:	d109      	bne.n	8027566 <tfp_format+0x22a>
 
-                     ulli2a(va_arg(va, unsigned long long int), &p);
 
-  8027552:	3407      	adds	r4, #7
 
-  8027554:	f024 0307 	bic.w	r3, r4, #7
 
-  8027558:	e9d3 0100 	ldrd	r0, r1, [r3]
 
-  802755c:	f103 0408 	add.w	r4, r3, #8
 
-  8027560:	f7ff fdbe 	bl	80270e0 <ulli2a>
 
-  8027564:	e00b      	b.n	802757e <tfp_format+0x242>
 
-                 else
 
- #endif
 
-                   if (1 == lng)
 
-                     uli2a(va_arg(va, unsigned long int), &p);
 
-  8027566:	6820      	ldr	r0, [r4, #0]
 
-  8027568:	4611      	mov	r1, r2
 
- #ifdef PRINTF_LONG_LONG_SUPPORT
 
-                 if (2 == lng)
 
-                     ulli2a(va_arg(va, unsigned long long int), &p);
 
-                 else
 
- #endif
 
-                   if (1 == lng)
 
-  802756a:	2b01      	cmp	r3, #1
 
-  802756c:	f104 0804 	add.w	r8, r4, #4
 
-  8027570:	d102      	bne.n	8027578 <tfp_format+0x23c>
 
-                     uli2a(va_arg(va, unsigned long int), &p);
 
-  8027572:	f7ff fe0b 	bl	802718c <uli2a>
 
-  8027576:	e001      	b.n	802757c <tfp_format+0x240>
 
-                 else
 
- #endif
 
-                     ui2a(va_arg(va, unsigned int), &p);
 
-  8027578:	f7ff fe33 	bl	80271e2 <ui2a>
 
-  802757c:	4644      	mov	r4, r8
 
-                 putchw(putp, putf, &p);
 
-  802757e:	4628      	mov	r0, r5
 
-  8027580:	4631      	mov	r1, r6
 
-  8027582:	aa0a      	add	r2, sp, #40	; 0x28
 
-  8027584:	f7ff fe58 	bl	8027238 <putchw>
 
-                 break;
 
-  8027588:	e0eb      	b.n	8027762 <tfp_format+0x426>
 
-             case 'o':
 
-                 p.base = 8;
 
-  802758a:	2308      	movs	r3, #8
 
-                 ui2a(va_arg(va, unsigned int), &p);
 
-  802758c:	6820      	ldr	r0, [r4, #0]
 
- #endif
 
-                     ui2a(va_arg(va, unsigned int), &p);
 
-                 putchw(putp, putf, &p);
 
-                 break;
 
-             case 'o':
 
-                 p.base = 8;
 
-  802758e:	930d      	str	r3, [sp, #52]	; 0x34
 
-                 ui2a(va_arg(va, unsigned int), &p);
 
-  8027590:	a90a      	add	r1, sp, #40	; 0x28
 
-  8027592:	f7ff fe26 	bl	80271e2 <ui2a>
 
-                 putchw(putp, putf, &p);
 
-  8027596:	4628      	mov	r0, r5
 
-  8027598:	4631      	mov	r1, r6
 
-  802759a:	aa0a      	add	r2, sp, #40	; 0x28
 
-                     ui2a(va_arg(va, unsigned int), &p);
 
-                 putchw(putp, putf, &p);
 
-                 break;
 
-             case 'o':
 
-                 p.base = 8;
 
-                 ui2a(va_arg(va, unsigned int), &p);
 
-  802759c:	f104 0804 	add.w	r8, r4, #4
 
-                 putchw(putp, putf, &p);
 
-  80275a0:	f7ff fe4a 	bl	8027238 <putchw>
 
-  80275a4:	e010      	b.n	80275c8 <tfp_format+0x28c>
 
-                 break;
 
-             case 'c':
 
-                 putf(putp, (char)(va_arg(va, int)));
 
-  80275a6:	4628      	mov	r0, r5
 
-  80275a8:	7821      	ldrb	r1, [r4, #0]
 
-  80275aa:	f104 0804 	add.w	r8, r4, #4
 
-  80275ae:	47b0      	blx	r6
 
-  80275b0:	e00a      	b.n	80275c8 <tfp_format+0x28c>
 
-                 break;
 
-             case 's':
 
-                 p.bf = va_arg(va, char *);
 
-  80275b2:	6823      	ldr	r3, [r4, #0]
 
-                 putchw(putp, putf, &p);
 
-  80275b4:	aa0a      	add	r2, sp, #40	; 0x28
 
-  80275b6:	4628      	mov	r0, r5
 
-  80275b8:	4631      	mov	r1, r6
 
-                 break;
 
-             case 'c':
 
-                 putf(putp, (char)(va_arg(va, int)));
 
-                 break;
 
-             case 's':
 
-                 p.bf = va_arg(va, char *);
 
-  80275ba:	930e      	str	r3, [sp, #56]	; 0x38
 
-                 putchw(putp, putf, &p);
 
-  80275bc:	f7ff fe3c 	bl	8027238 <putchw>
 
-                 p.bf = bf;
 
-  80275c0:	aa04      	add	r2, sp, #16
 
-                 break;
 
-             case 'c':
 
-                 putf(putp, (char)(va_arg(va, int)));
 
-                 break;
 
-             case 's':
 
-                 p.bf = va_arg(va, char *);
 
-  80275c2:	f104 0804 	add.w	r8, r4, #4
 
-                 putchw(putp, putf, &p);
 
-                 p.bf = bf;
 
-  80275c6:	920e      	str	r2, [sp, #56]	; 0x38
 
-                 break;
 
-             case 'c':
 
-                 putf(putp, (char)(va_arg(va, int)));
 
-                 break;
 
-             case 's':
 
-                 p.bf = va_arg(va, char *);
 
-  80275c8:	4644      	mov	r4, r8
 
-                 putchw(putp, putf, &p);
 
-                 p.bf = bf;
 
-                 break;
 
-  80275ca:	e0ca      	b.n	8027762 <tfp_format+0x426>
 
-             case '%':
 
-                 putf(putp, ch);
 
-  80275cc:	4628      	mov	r0, r5
 
-  80275ce:	47b0      	blx	r6
 
-                 break;
 
-  80275d0:	e0c7      	b.n	8027762 <tfp_format+0x426>
 
-             case 'f':
 
-             case 'F':
 
-                 fval  = va_arg(va, double);
 
-  80275d2:	3407      	adds	r4, #7
 
-  80275d4:	f024 0307 	bic.w	r3, r4, #7
 
-  80275d8:	f103 0408 	add.w	r4, r3, #8
 
-  80275dc:	e893 0404 	ldmia.w	r3, {r2, sl}
 
-  80275e0:	9200      	str	r2, [sp, #0]
 
-                 sign = 0;
 
-                 if (fval < 0)
 
-  80275e2:	4610      	mov	r0, r2
 
-  80275e4:	4651      	mov	r1, sl
 
-  80275e6:	2200      	movs	r2, #0
 
-  80275e8:	2300      	movs	r3, #0
 
-  80275ea:	f7f9 fa5b 	bl	8020aa4 <__aeabi_dcmplt>
 
-  80275ee:	b138      	cbz	r0, 8027600 <tfp_format+0x2c4>
 
- 				   {
 
-                 	   sign    = 1;
 
- 					   p.width--;
 
-  80275f0:	9b0b      	ldr	r3, [sp, #44]	; 0x2c
 
-  80275f2:	3b01      	subs	r3, #1
 
-  80275f4:	930b      	str	r3, [sp, #44]	; 0x2c
 
- 					   fval    = - fval;
 
-  80275f6:	f10a 4a00 	add.w	sl, sl, #2147483648	; 0x80000000
 
-             case 'F':
 
-                 fval  = va_arg(va, double);
 
-                 sign = 0;
 
-                 if (fval < 0)
 
- 				   {
 
-                 	   sign    = 1;
 
-  80275fa:	f04f 0b01 	mov.w	fp, #1
 
-  80275fe:	e009      	b.n	8027614 <tfp_format+0x2d8>
 
- 					   p.width--;
 
- 					   fval    = - fval;
 
- 				   }
 
- 				   else if (p.sign) {
 
-  8027600:	f89d 3030 	ldrb.w	r3, [sp, #48]	; 0x30
 
-  8027604:	b12b      	cbz	r3, 8027612 <tfp_format+0x2d6>
 
- 					   sign = 2;
 
- 					   p.width--;
 
-  8027606:	9b0b      	ldr	r3, [sp, #44]	; 0x2c
 
-  8027608:	3b01      	subs	r3, #1
 
-  802760a:	930b      	str	r3, [sp, #44]	; 0x2c
 
-                 	   sign    = 1;
 
- 					   p.width--;
 
- 					   fval    = - fval;
 
- 				   }
 
- 				   else if (p.sign) {
 
- 					   sign = 2;
 
-  802760c:	f04f 0b02 	mov.w	fp, #2
 
-  8027610:	e000      	b.n	8027614 <tfp_format+0x2d8>
 
-                 putf(putp, ch);
 
-                 break;
 
-             case 'f':
 
-             case 'F':
 
-                 fval  = va_arg(va, double);
 
-                 sign = 0;
 
-  8027612:	469b      	mov	fp, r3
 
- 				   else if (p.sign) {
 
- 					   sign = 2;
 
- 					   p.width--;
 
- 				   }
 
-                 fpart = (int)fval;
 
-  8027614:	4651      	mov	r1, sl
 
-  8027616:	9800      	ldr	r0, [sp, #0]
 
-  8027618:	f7f9 fa6c 	bl	8020af4 <__aeabi_d2iz>
 
-                 fiter = 0;
 
-  802761c:	2200      	movs	r2, #0
 
- 				   else if (p.sign) {
 
- 					   sign = 2;
 
- 					   p.width--;
 
- 				   }
 
-                 fpart = (int)fval;
 
-  802761e:	9001      	str	r0, [sp, #4]
 
-  8027620:	4680      	mov	r8, r0
 
-                 fiter = 0;
 
-                 while (fpart != 0)
 
-                 {
 
-                     temp_buffer[fiter++] = fpart % 10;
 
-  8027622:	210a      	movs	r1, #10
 
- 				   }
 
-                 fpart = (int)fval;
 
-                 fiter = 0;
 
-                 while (fpart != 0)
 
-  8027624:	e008      	b.n	8027638 <tfp_format+0x2fc>
 
-                 {
 
-                     temp_buffer[fiter++] = fpart % 10;
 
-  8027626:	fb98 f0f1 	sdiv	r0, r8, r1
 
-  802762a:	ab10      	add	r3, sp, #64	; 0x40
 
-  802762c:	fb01 8810 	mls	r8, r1, r0, r8
 
-  8027630:	f843 8022 	str.w	r8, [r3, r2, lsl #2]
 
-  8027634:	3201      	adds	r2, #1
 
-                     fpart = fpart / 10;
 
-  8027636:	4680      	mov	r8, r0
 
- 				   }
 
-                 fpart = (int)fval;
 
-                 fiter = 0;
 
-                 while (fpart != 0)
 
-  8027638:	f1b8 0f00 	cmp.w	r8, #0
 
-  802763c:	d1f3      	bne.n	8027626 <tfp_format+0x2ea>
 
-                     temp_buffer[fiter++] = fpart % 10;
 
-                     fpart = fpart / 10;
 
-                 }
 
-                 fiter--;
 
-                 if (fiter == -1)
 
-  802763e:	f102 39ff 	add.w	r9, r2, #4294967295
 
-  8027642:	b912      	cbnz	r2, 802764a <tfp_format+0x30e>
 
-                 	p.width--;
 
-  8027644:	9a0b      	ldr	r2, [sp, #44]	; 0x2c
 
-  8027646:	3a01      	subs	r2, #1
 
-  8027648:	920b      	str	r2, [sp, #44]	; 0x2c
 
-                 /* Leading zeros */
 
-                 if (p.lz) {
 
-  802764a:	f89d 2028 	ldrb.w	r2, [sp, #40]	; 0x28
 
-  802764e:	07d0      	lsls	r0, r2, #31
 
-  8027650:	d51b      	bpl.n	802768a <tfp_format+0x34e>
 
-                 	if (sign == 1)
 
-  8027652:	f1bb 0f01 	cmp.w	fp, #1
 
-  8027656:	d102      	bne.n	802765e <tfp_format+0x322>
 
-  					   putf(putp, '-');
 
-  8027658:	4628      	mov	r0, r5
 
-  802765a:	212d      	movs	r1, #45	; 0x2d
 
-  802765c:	e007      	b.n	802766e <tfp_format+0x332>
 
-                 	else if (sign == 2)
 
-  802765e:	f1bb 0f02 	cmp.w	fp, #2
 
-  8027662:	d105      	bne.n	8027670 <tfp_format+0x334>
 
-                 	   putf(putp, '+');
 
-  8027664:	4628      	mov	r0, r5
 
-  8027666:	212b      	movs	r1, #43	; 0x2b
 
-  8027668:	e001      	b.n	802766e <tfp_format+0x332>
 
- 					while (p.width-- > p.prec + fiter + 2)
 
- 					{
 
- 						putf(putp, '0');
 
-  802766a:	4628      	mov	r0, r5
 
-  802766c:	2130      	movs	r1, #48	; 0x30
 
-  802766e:	47b0      	blx	r6
 
-                 	if (sign == 1)
 
-  					   putf(putp, '-');
 
-                 	else if (sign == 2)
 
-                 	   putf(putp, '+');
 
- 					while (p.width-- > p.prec + fiter + 2)
 
-  8027670:	f89d 203c 	ldrb.w	r2, [sp, #60]	; 0x3c
 
-  8027674:	9b0b      	ldr	r3, [sp, #44]	; 0x2c
 
-  8027676:	444a      	add	r2, r9
 
-  8027678:	3202      	adds	r2, #2
 
-  802767a:	1e59      	subs	r1, r3, #1
 
-  802767c:	4293      	cmp	r3, r2
 
-  802767e:	910b      	str	r1, [sp, #44]	; 0x2c
 
-  8027680:	dcf3      	bgt.n	802766a <tfp_format+0x32e>
 
-  8027682:	e017      	b.n	80276b4 <tfp_format+0x378>
 
-                 else
 
-                 {
 
- 					while (p.width-- > p.prec + fiter + 2)
 
- 					{
 
- 						putf(putp, ' ');
 
-  8027684:	4628      	mov	r0, r5
 
-  8027686:	2120      	movs	r1, #32
 
-  8027688:	47b0      	blx	r6
 
- 					}
 
-                 }
 
-                 else
 
-                 {
 
- 					while (p.width-- > p.prec + fiter + 2)
 
-  802768a:	f89d 103c 	ldrb.w	r1, [sp, #60]	; 0x3c
 
-  802768e:	9a0b      	ldr	r2, [sp, #44]	; 0x2c
 
-  8027690:	4449      	add	r1, r9
 
-  8027692:	3102      	adds	r1, #2
 
-  8027694:	1e50      	subs	r0, r2, #1
 
-  8027696:	428a      	cmp	r2, r1
 
-  8027698:	900b      	str	r0, [sp, #44]	; 0x2c
 
-  802769a:	dcf3      	bgt.n	8027684 <tfp_format+0x348>
 
- 					{
 
- 						putf(putp, ' ');
 
- 					}
 
-                 	if (sign == 1)
 
-  802769c:	f1bb 0f01 	cmp.w	fp, #1
 
-  80276a0:	d102      	bne.n	80276a8 <tfp_format+0x36c>
 
-  					   putf(putp, '-');
 
-  80276a2:	4628      	mov	r0, r5
 
-  80276a4:	212d      	movs	r1, #45	; 0x2d
 
-  80276a6:	e004      	b.n	80276b2 <tfp_format+0x376>
 
-                 	else if (sign == 2)
 
-  80276a8:	f1bb 0f02 	cmp.w	fp, #2
 
-  80276ac:	d102      	bne.n	80276b4 <tfp_format+0x378>
 
-                 	   putf(putp, '+');
 
-  80276ae:	4628      	mov	r0, r5
 
-  80276b0:	212b      	movs	r1, #43	; 0x2b
 
-  80276b2:	47b0      	blx	r6
 
-                 }
 
-                 if (fiter == -1)
 
-  80276b4:	f1b9 3fff 	cmp.w	r9, #4294967295
 
-  80276b8:	d102      	bne.n	80276c0 <tfp_format+0x384>
 
-                 	putf(putp, '0');
 
-  80276ba:	4628      	mov	r0, r5
 
-  80276bc:	2130      	movs	r1, #48	; 0x30
 
-  80276be:	e007      	b.n	80276d0 <tfp_format+0x394>
 
-                 while (fiter > -1)
 
-                 {
 
-                     putf(putp, '0' + (temp_buffer[fiter--]));
 
-  80276c0:	ab10      	add	r3, sp, #64	; 0x40
 
-  80276c2:	4628      	mov	r0, r5
 
-  80276c4:	f853 1029 	ldr.w	r1, [r3, r9, lsl #2]
 
-  80276c8:	3130      	adds	r1, #48	; 0x30
 
-  80276ca:	f109 39ff 	add.w	r9, r9, #4294967295
 
-  80276ce:	b2c9      	uxtb	r1, r1
 
-  80276d0:	47b0      	blx	r6
 
-                 }
 
-                 if (fiter == -1)
 
-                 	putf(putp, '0');
 
-                 while (fiter > -1)
 
-  80276d2:	f1b9 3fff 	cmp.w	r9, #4294967295
 
-  80276d6:	d1f3      	bne.n	80276c0 <tfp_format+0x384>
 
-                 {
 
-                     putf(putp, '0' + (temp_buffer[fiter--]));
 
-                 }
 
-                 putf(putp, '.');
 
-  80276d8:	4628      	mov	r0, r5
 
-  80276da:	212e      	movs	r1, #46	; 0x2e
 
-  80276dc:	47b0      	blx	r6
 
-                 ffactor = 1;
 
-  80276de:	f04f 0901 	mov.w	r9, #1
 
-                 while (p.prec-- > 0)
 
-  80276e2:	e01d      	b.n	8027720 <tfp_format+0x3e4>
 
-                 {
 
-                 	ffactor *= 10;
 
-  80276e4:	230a      	movs	r3, #10
 
-                 	fpart = (int)((fval - (int)fval)*ffactor);
 
-  80276e6:	9801      	ldr	r0, [sp, #4]
 
-                 putf(putp, '.');
 
-                 ffactor = 1;
 
-                 while (p.prec-- > 0)
 
-                 {
 
-                 	ffactor *= 10;
 
-  80276e8:	fb03 f909 	mul.w	r9, r3, r9
 
-                 	fpart = (int)((fval - (int)fval)*ffactor);
 
-  80276ec:	f7f8 ff02 	bl	80204f4 <__aeabi_i2d>
 
-  80276f0:	4602      	mov	r2, r0
 
-  80276f2:	460b      	mov	r3, r1
 
-  80276f4:	9800      	ldr	r0, [sp, #0]
 
-  80276f6:	4651      	mov	r1, sl
 
-  80276f8:	f7f8 fdae 	bl	8020258 <__aeabi_dsub>
 
-  80276fc:	e9cd 0102 	strd	r0, r1, [sp, #8]
 
-  8027700:	4648      	mov	r0, r9
 
-  8027702:	f7f8 fef7 	bl	80204f4 <__aeabi_i2d>
 
-  8027706:	4602      	mov	r2, r0
 
-  8027708:	460b      	mov	r3, r1
 
-  802770a:	e9dd 0102 	ldrd	r0, r1, [sp, #8]
 
-  802770e:	f7f8 ff57 	bl	80205c0 <__aeabi_dmul>
 
-  8027712:	f7f9 f9ef 	bl	8020af4 <__aeabi_d2iz>
 
-                 	if (fpart == 0)
 
-  8027716:	4680      	mov	r8, r0
 
-  8027718:	b910      	cbnz	r0, 8027720 <tfp_format+0x3e4>
 
- 						putf(putp, '0');
 
-  802771a:	4628      	mov	r0, r5
 
-  802771c:	2130      	movs	r1, #48	; 0x30
 
-  802771e:	47b0      	blx	r6
 
-                     putf(putp, '0' + (temp_buffer[fiter--]));
 
-                 }
 
-                 putf(putp, '.');
 
-                 ffactor = 1;
 
-                 while (p.prec-- > 0)
 
-  8027720:	f89d 303c 	ldrb.w	r3, [sp, #60]	; 0x3c
 
-  8027724:	1e5a      	subs	r2, r3, #1
 
-  8027726:	f88d 203c 	strb.w	r2, [sp, #60]	; 0x3c
 
-  802772a:	2b00      	cmp	r3, #0
 
-  802772c:	d1da      	bne.n	80276e4 <tfp_format+0x3a8>
 
- 						putf(putp, '0');
 
-                 }
 
-                 fiter = 0;
 
-                 while (fpart != 0)
 
-                 {
 
-                     temp_buffer[fiter++] = fpart % 10;
 
-  802772e:	220a      	movs	r2, #10
 
-  8027730:	e008      	b.n	8027744 <tfp_format+0x408>
 
-  8027732:	fb98 f1f2 	sdiv	r1, r8, r2
 
-  8027736:	a810      	add	r0, sp, #64	; 0x40
 
-  8027738:	fb02 8811 	mls	r8, r2, r1, r8
 
-  802773c:	f840 8023 	str.w	r8, [r0, r3, lsl #2]
 
-  8027740:	3301      	adds	r3, #1
 
-                     fpart = fpart / 10;
 
-  8027742:	4688      	mov	r8, r1
 
-                 	fpart = (int)((fval - (int)fval)*ffactor);
 
-                 	if (fpart == 0)
 
- 						putf(putp, '0');
 
-                 }
 
-                 fiter = 0;
 
-                 while (fpart != 0)
 
-  8027744:	f1b8 0f00 	cmp.w	r8, #0
 
-  8027748:	d1f3      	bne.n	8027732 <tfp_format+0x3f6>
 
-  802774a:	4698      	mov	r8, r3
 
-                     temp_buffer[fiter++] = fpart % 10;
 
-                     fpart = fpart / 10;
 
-                 }
 
-                 fiter--;
 
-                 while (fiter > -1)
 
-  802774c:	e006      	b.n	802775c <tfp_format+0x420>
 
-                 {
 
-                     putf(putp, '0' + (temp_buffer[fiter--]));
 
-  802774e:	ab10      	add	r3, sp, #64	; 0x40
 
-  8027750:	4628      	mov	r0, r5
 
-  8027752:	f853 1028 	ldr.w	r1, [r3, r8, lsl #2]
 
-  8027756:	3130      	adds	r1, #48	; 0x30
 
-  8027758:	b2c9      	uxtb	r1, r1
 
-  802775a:	47b0      	blx	r6
 
-                     temp_buffer[fiter++] = fpart % 10;
 
-                     fpart = fpart / 10;
 
-                 }
 
-                 fiter--;
 
-                 while (fiter > -1)
 
-  802775c:	f118 38ff 	adds.w	r8, r8, #4294967295
 
-  8027760:	d2f5      	bcs.n	802774e <tfp_format+0x412>
 
-     char bf[12];  /* int = 32b on some architectures */
 
- #endif
 
-     char ch;
 
-     p.bf = bf;
 
-     while ((ch = *(fmt++))) {
 
-  8027762:	f817 1b01 	ldrb.w	r1, [r7], #1
 
-  8027766:	2900      	cmp	r1, #0
 
-  8027768:	f47f adf2 	bne.w	8027350 <tfp_format+0x14>
 
-  802776c:	e003      	b.n	8027776 <tfp_format+0x43a>
 
- {
 
-     const char *p = *src;
 
-     unsigned int num = 0;
 
-     int digit;
 
-     while ((digit = a2d(ch)) >= 0) {
 
-         if (digit > base)
 
-  802776e:	2b0a      	cmp	r3, #10
 
-  8027770:	f77f ae32 	ble.w	80273d8 <tfp_format+0x9c>
 
-  8027774:	e64c      	b.n	8027410 <tfp_format+0xd4>
 
-                 break;
 
-             }
 
-         }
 
-     }
 
-  abort:;
 
- }
 
-  8027776:	b01b      	add	sp, #108	; 0x6c
 
-  8027778:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
- 0802777c <tfp_printf>:
 
-     stdout_putf = putf;
 
-     stdout_putp = putp;
 
- }
 
- void tfp_printf(char *fmt, ...)
 
- {
 
-  802777c:	b40f      	push	{r0, r1, r2, r3}
 
-  802777e:	b507      	push	{r0, r1, r2, lr}
 
-     va_list va;
 
-     va_start(va, fmt);
 
-     tfp_format(stdout_putp, stdout_putf, fmt, va);
 
-  8027780:	4906      	ldr	r1, [pc, #24]	; (802779c <tfp_printf+0x20>)
 
-     stdout_putf = putf;
 
-     stdout_putp = putp;
 
- }
 
- void tfp_printf(char *fmt, ...)
 
- {
 
-  8027782:	ab04      	add	r3, sp, #16
 
-     va_list va;
 
-     va_start(va, fmt);
 
-     tfp_format(stdout_putp, stdout_putf, fmt, va);
 
-  8027784:	6808      	ldr	r0, [r1, #0]
 
-  8027786:	4906      	ldr	r1, [pc, #24]	; (80277a0 <tfp_printf+0x24>)
 
-     stdout_putf = putf;
 
-     stdout_putp = putp;
 
- }
 
- void tfp_printf(char *fmt, ...)
 
- {
 
-  8027788:	f853 2b04 	ldr.w	r2, [r3], #4
 
-     va_list va;
 
-     va_start(va, fmt);
 
-     tfp_format(stdout_putp, stdout_putf, fmt, va);
 
-  802778c:	6809      	ldr	r1, [r1, #0]
 
- }
 
- void tfp_printf(char *fmt, ...)
 
- {
 
-     va_list va;
 
-     va_start(va, fmt);
 
-  802778e:	9301      	str	r3, [sp, #4]
 
-     tfp_format(stdout_putp, stdout_putf, fmt, va);
 
-  8027790:	f7ff fdd4 	bl	802733c <tfp_format>
 
-     va_end(va);
 
- }
 
-  8027794:	e8bd 400e 	ldmia.w	sp!, {r1, r2, r3, lr}
 
-  8027798:	b004      	add	sp, #16
 
-  802779a:	4770      	bx	lr
 
-  802779c:	20000b14 	.word	0x20000b14
 
-  80277a0:	20000b10 	.word	0x20000b10
 
- 080277a4 <tfp_vsnprintf>:
 
-     data->dest[data->num_chars] = c;
 
-   data->num_chars ++;
 
- }
 
- int tfp_vsnprintf(char *str, size_t size, const char *format, va_list ap)
 
- {
 
-  80277a4:	b51f      	push	{r0, r1, r2, r3, r4, lr}
 
-  80277a6:	2400      	movs	r4, #0
 
-   struct _vsnprintf_putcf_data data;
 
-   if (size < 1)
 
-  80277a8:	b181      	cbz	r1, 80277cc <tfp_vsnprintf+0x28>
 
-     return 0;
 
-   data.dest = str;
 
-   data.dest_capacity = size-1;
 
-  80277aa:	3901      	subs	r1, #1
 
-   struct _vsnprintf_putcf_data data;
 
-   if (size < 1)
 
-     return 0;
 
-   data.dest = str;
 
-  80277ac:	9002      	str	r0, [sp, #8]
 
-   data.dest_capacity = size-1;
 
-  80277ae:	9101      	str	r1, [sp, #4]
 
-   data.num_chars = 0;
 
-   tfp_format(&data, _vsnprintf_putcf, format, ap);
 
-  80277b0:	a801      	add	r0, sp, #4
 
-  80277b2:	4908      	ldr	r1, [pc, #32]	; (80277d4 <tfp_vsnprintf+0x30>)
 
-   if (size < 1)
 
-     return 0;
 
-   data.dest = str;
 
-   data.dest_capacity = size-1;
 
-   data.num_chars = 0;
 
-  80277b4:	9403      	str	r4, [sp, #12]
 
-   tfp_format(&data, _vsnprintf_putcf, format, ap);
 
-  80277b6:	f7ff fdc1 	bl	802733c <tfp_format>
 
-   if (data.num_chars < data.dest_capacity)
 
-  80277ba:	9903      	ldr	r1, [sp, #12]
 
-  80277bc:	9b01      	ldr	r3, [sp, #4]
 
-  80277be:	9a02      	ldr	r2, [sp, #8]
 
-  80277c0:	4299      	cmp	r1, r3
 
-     data.dest[data.num_chars] = '\0';
 
-  80277c2:	bf34      	ite	cc
 
-  80277c4:	5454      	strbcc	r4, [r2, r1]
 
-   else
 
-     data.dest[data.dest_capacity] = '\0';
 
-  80277c6:	54d4      	strbcs	r4, [r2, r3]
 
-   return data.num_chars;
 
-  80277c8:	9803      	ldr	r0, [sp, #12]
 
-  80277ca:	e000      	b.n	80277ce <tfp_vsnprintf+0x2a>
 
- int tfp_vsnprintf(char *str, size_t size, const char *format, va_list ap)
 
- {
 
-   struct _vsnprintf_putcf_data data;
 
-   if (size < 1)
 
-     return 0;
 
-  80277cc:	4608      	mov	r0, r1
 
-     data.dest[data.num_chars] = '\0';
 
-   else
 
-     data.dest[data.dest_capacity] = '\0';
 
-   return data.num_chars;
 
- }
 
-  80277ce:	b004      	add	sp, #16
 
-  80277d0:	bd10      	pop	{r4, pc}
 
-  80277d2:	bf00      	nop
 
-  80277d4:	0802731d 	.word	0x0802731d
 
- 080277d8 <tfp_snprintf>:
 
- int tfp_snprintf(char *str, size_t size, const char *format, ...)
 
- {
 
-  80277d8:	b40c      	push	{r2, r3}
 
-  80277da:	b507      	push	{r0, r1, r2, lr}
 
-  80277dc:	ab04      	add	r3, sp, #16
 
-  80277de:	f853 2b04 	ldr.w	r2, [r3], #4
 
-   va_list ap;
 
-   int retval;
 
-   va_start(ap, format);
 
-  80277e2:	9301      	str	r3, [sp, #4]
 
-   retval = tfp_vsnprintf(str, size, format, ap);
 
-  80277e4:	f7ff ffde 	bl	80277a4 <tfp_vsnprintf>
 
-   va_end(ap);
 
-   return retval;
 
- }
 
-  80277e8:	e8bd 400e 	ldmia.w	sp!, {r1, r2, r3, lr}
 
-  80277ec:	b002      	add	sp, #8
 
-  80277ee:	4770      	bx	lr
 
- 080277f0 <tfp_vsprintf>:
 
-   struct _vsprintf_putcf_data *data = (struct _vsprintf_putcf_data*)p;
 
-   data->dest[data->num_chars++] = c;
 
- }
 
- int tfp_vsprintf(char *str, const char *format, va_list ap)
 
- {
 
-  80277f0:	b537      	push	{r0, r1, r2, r4, r5, lr}
 
-  80277f2:	460d      	mov	r5, r1
 
-  80277f4:	4613      	mov	r3, r2
 
-   struct _vsprintf_putcf_data data;
 
-   data.dest = str;
 
-  80277f6:	9000      	str	r0, [sp, #0]
 
-   data.num_chars = 0;
 
-  80277f8:	2400      	movs	r4, #0
 
-   tfp_format(&data, _vsprintf_putcf, format, ap);
 
-  80277fa:	4668      	mov	r0, sp
 
-  80277fc:	462a      	mov	r2, r5
 
-  80277fe:	4904      	ldr	r1, [pc, #16]	; (8027810 <tfp_vsprintf+0x20>)
 
- int tfp_vsprintf(char *str, const char *format, va_list ap)
 
- {
 
-   struct _vsprintf_putcf_data data;
 
-   data.dest = str;
 
-   data.num_chars = 0;
 
-  8027800:	9401      	str	r4, [sp, #4]
 
-   tfp_format(&data, _vsprintf_putcf, format, ap);
 
-  8027802:	f7ff fd9b 	bl	802733c <tfp_format>
 
-   data.dest[data.num_chars] = '\0';
 
-  8027806:	e89d 000c 	ldmia.w	sp, {r2, r3}
 
-  802780a:	54d4      	strb	r4, [r2, r3]
 
-   return data.num_chars;
 
- }
 
-  802780c:	9801      	ldr	r0, [sp, #4]
 
-  802780e:	bd3e      	pop	{r1, r2, r3, r4, r5, pc}
 
-  8027810:	08027331 	.word	0x08027331
 
- 08027814 <tfp_sprintf>:
 
- int tfp_sprintf(char *str, const char *format, ...)
 
- {
 
-  8027814:	b40e      	push	{r1, r2, r3}
 
-  8027816:	b503      	push	{r0, r1, lr}
 
-  8027818:	aa03      	add	r2, sp, #12
 
-  802781a:	f852 1b04 	ldr.w	r1, [r2], #4
 
-   va_list ap;
 
-   int retval;
 
-   va_start(ap, format);
 
-  802781e:	9201      	str	r2, [sp, #4]
 
-   retval = tfp_vsprintf(str, format, ap);
 
-  8027820:	f7ff ffe6 	bl	80277f0 <tfp_vsprintf>
 
-   va_end(ap);
 
-   return retval;
 
- }
 
-  8027824:	e8bd 400c 	ldmia.w	sp!, {r2, r3, lr}
 
-  8027828:	b003      	add	sp, #12
 
-  802782a:	4770      	bx	lr
 
- 0802782c <GetInputFreqStr>:
 
- /**
 
-   * @brief  
 
-   */
 
- void GetInputFreqStr(char *str, uint8_t *len)
 
- {
 
-  802782c:	b538      	push	{r3, r4, r5, lr}
 
-   sprintf(str, "%0.1f", UPS.Freq_in);
 
-  802782e:	4b08      	ldr	r3, [pc, #32]	; (8027850 <GetInputFreqStr+0x24>)
 
- /**
 
-   * @brief  
 
-   */
 
- void GetInputFreqStr(char *str, uint8_t *len)
 
- {
 
-  8027830:	4604      	mov	r4, r0
 
-   sprintf(str, "%0.1f", UPS.Freq_in);
 
-  8027832:	6818      	ldr	r0, [r3, #0]
 
- /**
 
-   * @brief  
 
-   */
 
- void GetInputFreqStr(char *str, uint8_t *len)
 
- {
 
-  8027834:	460d      	mov	r5, r1
 
-   sprintf(str, "%0.1f", UPS.Freq_in);
 
-  8027836:	f7f8 fe6f 	bl	8020518 <__aeabi_f2d>
 
-  802783a:	4602      	mov	r2, r0
 
-  802783c:	460b      	mov	r3, r1
 
-  802783e:	4620      	mov	r0, r4
 
-  8027840:	4904      	ldr	r1, [pc, #16]	; (8027854 <GetInputFreqStr+0x28>)
 
-  8027842:	f7ff ffe7 	bl	8027814 <tfp_sprintf>
 
-   *len = strlen(str);
 
-  8027846:	4620      	mov	r0, r4
 
-  8027848:	f7fa fb32 	bl	8021eb0 <strlen>
 
-  802784c:	7028      	strb	r0, [r5, #0]
 
-  802784e:	bd38      	pop	{r3, r4, r5, pc}
 
-  8027850:	2000cba8 	.word	0x2000cba8
 
-  8027854:	080399a3 	.word	0x080399a3
 
- 08027858 <GetOutputFreqStr>:
 
- /**
 
-   * @brief  
 
-   */
 
- void GetOutputFreqStr(char *str, uint8_t *len)
 
- {
 
-  8027858:	b538      	push	{r3, r4, r5, lr}
 
-   sprintf(str, "%0.1f", UPS.Freq_in);
 
-  802785a:	4b08      	ldr	r3, [pc, #32]	; (802787c <GetOutputFreqStr+0x24>)
 
- /**
 
-   * @brief  
 
-   */
 
- void GetOutputFreqStr(char *str, uint8_t *len)
 
- {
 
-  802785c:	4604      	mov	r4, r0
 
-   sprintf(str, "%0.1f", UPS.Freq_in);
 
-  802785e:	6818      	ldr	r0, [r3, #0]
 
- /**
 
-   * @brief  
 
-   */
 
- void GetOutputFreqStr(char *str, uint8_t *len)
 
- {
 
-  8027860:	460d      	mov	r5, r1
 
-   sprintf(str, "%0.1f", UPS.Freq_in);
 
-  8027862:	f7f8 fe59 	bl	8020518 <__aeabi_f2d>
 
-  8027866:	4602      	mov	r2, r0
 
-  8027868:	460b      	mov	r3, r1
 
-  802786a:	4620      	mov	r0, r4
 
-  802786c:	4904      	ldr	r1, [pc, #16]	; (8027880 <GetOutputFreqStr+0x28>)
 
-  802786e:	f7ff ffd1 	bl	8027814 <tfp_sprintf>
 
-   *len = strlen(str);
 
-  8027872:	4620      	mov	r0, r4
 
-  8027874:	f7fa fb1c 	bl	8021eb0 <strlen>
 
-  8027878:	7028      	strb	r0, [r5, #0]
 
-  802787a:	bd38      	pop	{r3, r4, r5, pc}
 
-  802787c:	2000cba8 	.word	0x2000cba8
 
-  8027880:	080399a3 	.word	0x080399a3
 
- 08027884 <GetInputVoltageStr>:
 
- /**
 
-   * @brief  
 
-   */
 
- void GetInputVoltageStr(char *str, uint8_t *len)
 
- {
 
-  8027884:	b538      	push	{r3, r4, r5, lr}
 
-   sprintf(str, "%0.1f", UPS.VAC_in);
 
-  8027886:	4b08      	ldr	r3, [pc, #32]	; (80278a8 <GetInputVoltageStr+0x24>)
 
- /**
 
-   * @brief  
 
-   */
 
- void GetInputVoltageStr(char *str, uint8_t *len)
 
- {
 
-  8027888:	4604      	mov	r4, r0
 
-   sprintf(str, "%0.1f", UPS.VAC_in);
 
-  802788a:	6858      	ldr	r0, [r3, #4]
 
- /**
 
-   * @brief  
 
-   */
 
- void GetInputVoltageStr(char *str, uint8_t *len)
 
- {
 
-  802788c:	460d      	mov	r5, r1
 
-   sprintf(str, "%0.1f", UPS.VAC_in);
 
-  802788e:	f7f8 fe43 	bl	8020518 <__aeabi_f2d>
 
-  8027892:	4602      	mov	r2, r0
 
-  8027894:	460b      	mov	r3, r1
 
-  8027896:	4620      	mov	r0, r4
 
-  8027898:	4904      	ldr	r1, [pc, #16]	; (80278ac <GetInputVoltageStr+0x28>)
 
-  802789a:	f7ff ffbb 	bl	8027814 <tfp_sprintf>
 
-   *len = strlen(str);
 
-  802789e:	4620      	mov	r0, r4
 
-  80278a0:	f7fa fb06 	bl	8021eb0 <strlen>
 
-  80278a4:	7028      	strb	r0, [r5, #0]
 
-  80278a6:	bd38      	pop	{r3, r4, r5, pc}
 
-  80278a8:	2000cba8 	.word	0x2000cba8
 
-  80278ac:	080399a3 	.word	0x080399a3
 
- 080278b0 <GetOutputVoltageStr>:
 
- /**
 
-   * @brief  
 
-   */
 
- void GetOutputVoltageStr(char *str, uint8_t *len)
 
- {
 
-  80278b0:	b538      	push	{r3, r4, r5, lr}
 
-   sprintf(str, "%0.1f", UPS.VAC_out);
 
-  80278b2:	4b08      	ldr	r3, [pc, #32]	; (80278d4 <GetOutputVoltageStr+0x24>)
 
- /**
 
-   * @brief  
 
-   */
 
- void GetOutputVoltageStr(char *str, uint8_t *len)
 
- {
 
-  80278b4:	4604      	mov	r4, r0
 
-   sprintf(str, "%0.1f", UPS.VAC_out);
 
-  80278b6:	6898      	ldr	r0, [r3, #8]
 
- /**
 
-   * @brief  
 
-   */
 
- void GetOutputVoltageStr(char *str, uint8_t *len)
 
- {
 
-  80278b8:	460d      	mov	r5, r1
 
-   sprintf(str, "%0.1f", UPS.VAC_out);
 
-  80278ba:	f7f8 fe2d 	bl	8020518 <__aeabi_f2d>
 
-  80278be:	4602      	mov	r2, r0
 
-  80278c0:	460b      	mov	r3, r1
 
-  80278c2:	4620      	mov	r0, r4
 
-  80278c4:	4904      	ldr	r1, [pc, #16]	; (80278d8 <GetOutputVoltageStr+0x28>)
 
-  80278c6:	f7ff ffa5 	bl	8027814 <tfp_sprintf>
 
-   *len = strlen(str);
 
-  80278ca:	4620      	mov	r0, r4
 
-  80278cc:	f7fa faf0 	bl	8021eb0 <strlen>
 
-  80278d0:	7028      	strb	r0, [r5, #0]
 
-  80278d2:	bd38      	pop	{r3, r4, r5, pc}
 
-  80278d4:	2000cba8 	.word	0x2000cba8
 
-  80278d8:	080399a3 	.word	0x080399a3
 
- 080278dc <GetPowerStr>:
 
- /**
 
-   * @brief  
 
-   */
 
- void GetPowerStr(char *str, uint8_t *len)
 
- {
 
-  80278dc:	b538      	push	{r3, r4, r5, lr}
 
-   sprintf(str, "%d", UPS.Load);
 
-  80278de:	4b06      	ldr	r3, [pc, #24]	; (80278f8 <GetPowerStr+0x1c>)
 
- /**
 
-   * @brief  
 
-   */
 
- void GetPowerStr(char *str, uint8_t *len)
 
- {
 
-  80278e0:	4605      	mov	r5, r0
 
-  80278e2:	460c      	mov	r4, r1
 
-   sprintf(str, "%d", UPS.Load);
 
-  80278e4:	7c1a      	ldrb	r2, [r3, #16]
 
-  80278e6:	4905      	ldr	r1, [pc, #20]	; (80278fc <GetPowerStr+0x20>)
 
-  80278e8:	f7ff ff94 	bl	8027814 <tfp_sprintf>
 
-   *len = strlen(str); 
 
-  80278ec:	4628      	mov	r0, r5
 
-  80278ee:	f7fa fadf 	bl	8021eb0 <strlen>
 
-  80278f2:	7020      	strb	r0, [r4, #0]
 
-  80278f4:	bd38      	pop	{r3, r4, r5, pc}
 
-  80278f6:	bf00      	nop
 
-  80278f8:	2000cba8 	.word	0x2000cba8
 
-  80278fc:	080399a9 	.word	0x080399a9
 
- 08027900 <GetBatCapacityStr>:
 
- /**
 
-   * @brief  
 
-   */
 
- void GetBatCapacityStr(char *str, uint8_t *len)
 
- {
 
-  8027900:	b538      	push	{r3, r4, r5, lr}
 
-   sprintf(str, "%d", UPS.SOC);
 
-  8027902:	4b06      	ldr	r3, [pc, #24]	; (802791c <GetBatCapacityStr+0x1c>)
 
- /**
 
-   * @brief  
 
-   */
 
- void GetBatCapacityStr(char *str, uint8_t *len)
 
- {
 
-  8027904:	4605      	mov	r5, r0
 
-  8027906:	460c      	mov	r4, r1
 
-   sprintf(str, "%d", UPS.SOC);
 
-  8027908:	7c5a      	ldrb	r2, [r3, #17]
 
-  802790a:	4905      	ldr	r1, [pc, #20]	; (8027920 <GetBatCapacityStr+0x20>)
 
-  802790c:	f7ff ff82 	bl	8027814 <tfp_sprintf>
 
-   *len = strlen(str);
 
-  8027910:	4628      	mov	r0, r5
 
-  8027912:	f7fa facd 	bl	8021eb0 <strlen>
 
-  8027916:	7020      	strb	r0, [r4, #0]
 
-  8027918:	bd38      	pop	{r3, r4, r5, pc}
 
-  802791a:	bf00      	nop
 
-  802791c:	2000cba8 	.word	0x2000cba8
 
-  8027920:	080399a9 	.word	0x080399a9
 
- 08027924 <GetRuntimeStr>:
 
- /**
 
-   * @brief  
 
-   */
 
- void GetRuntimeStr(char *str, uint8_t *len)
 
- {
 
-  8027924:	b538      	push	{r3, r4, r5, lr}
 
-   sprintf(str, "%d", UPS.work_time);
 
-  8027926:	4b06      	ldr	r3, [pc, #24]	; (8027940 <GetRuntimeStr+0x1c>)
 
- /**
 
-   * @brief  
 
-   */
 
- void GetRuntimeStr(char *str, uint8_t *len)
 
- {
 
-  8027928:	4605      	mov	r5, r0
 
-  802792a:	460c      	mov	r4, r1
 
-   sprintf(str, "%d", UPS.work_time);
 
-  802792c:	7c9a      	ldrb	r2, [r3, #18]
 
-  802792e:	4905      	ldr	r1, [pc, #20]	; (8027944 <GetRuntimeStr+0x20>)
 
-  8027930:	f7ff ff70 	bl	8027814 <tfp_sprintf>
 
-   *len = strlen(str);
 
-  8027934:	4628      	mov	r0, r5
 
-  8027936:	f7fa fabb 	bl	8021eb0 <strlen>
 
-  802793a:	7020      	strb	r0, [r4, #0]
 
-  802793c:	bd38      	pop	{r3, r4, r5, pc}
 
-  802793e:	bf00      	nop
 
-  8027940:	2000cba8 	.word	0x2000cba8
 
-  8027944:	080399a9 	.word	0x080399a9
 
- 08027948 <GetInternalTempStr>:
 
- /**
 
-   * @brief  
 
-   */
 
- void GetInternalTempStr(char *str, uint8_t *len)
 
- {
 
-  8027948:	b538      	push	{r3, r4, r5, lr}
 
-   sprintf(str, "%0.1f", UPS.Temp);
 
-  802794a:	4b08      	ldr	r3, [pc, #32]	; (802796c <GetInternalTempStr+0x24>)
 
- /**
 
-   * @brief  
 
-   */
 
- void GetInternalTempStr(char *str, uint8_t *len)
 
- {
 
-  802794c:	4604      	mov	r4, r0
 
-   sprintf(str, "%0.1f", UPS.Temp);
 
-  802794e:	68d8      	ldr	r0, [r3, #12]
 
- /**
 
-   * @brief  
 
-   */
 
- void GetInternalTempStr(char *str, uint8_t *len)
 
- {
 
-  8027950:	460d      	mov	r5, r1
 
-   sprintf(str, "%0.1f", UPS.Temp);
 
-  8027952:	f7f8 fde1 	bl	8020518 <__aeabi_f2d>
 
-  8027956:	4602      	mov	r2, r0
 
-  8027958:	460b      	mov	r3, r1
 
-  802795a:	4620      	mov	r0, r4
 
-  802795c:	4904      	ldr	r1, [pc, #16]	; (8027970 <GetInternalTempStr+0x28>)
 
-  802795e:	f7ff ff59 	bl	8027814 <tfp_sprintf>
 
-   *len = strlen(str);
 
-  8027962:	4620      	mov	r0, r4
 
-  8027964:	f7fa faa4 	bl	8021eb0 <strlen>
 
-  8027968:	7028      	strb	r0, [r5, #0]
 
-  802796a:	bd38      	pop	{r3, r4, r5, pc}
 
-  802796c:	2000cba8 	.word	0x2000cba8
 
-  8027970:	080399a3 	.word	0x080399a3
 
- 08027974 <GetAlarmMonitorStr>:
 
- /**
 
-   * @brief  
 
-   */
 
- void GetAlarmMonitorStr(char *str, uint8_t *len)
 
- {
 
-  8027974:	b538      	push	{r3, r4, r5, lr}
 
- 	sprintf(str, "%d", UPS.Alarm);
 
-  8027976:	4b06      	ldr	r3, [pc, #24]	; (8027990 <GetAlarmMonitorStr+0x1c>)
 
- /**
 
-   * @brief  
 
-   */
 
- void GetAlarmMonitorStr(char *str, uint8_t *len)
 
- {
 
-  8027978:	4605      	mov	r5, r0
 
-  802797a:	460c      	mov	r4, r1
 
- 	sprintf(str, "%d", UPS.Alarm);
 
-  802797c:	7d1a      	ldrb	r2, [r3, #20]
 
-  802797e:	4905      	ldr	r1, [pc, #20]	; (8027994 <GetAlarmMonitorStr+0x20>)
 
-  8027980:	f7ff ff48 	bl	8027814 <tfp_sprintf>
 
- 	*len = strlen(str);
 
-  8027984:	4628      	mov	r0, r5
 
-  8027986:	f7fa fa93 	bl	8021eb0 <strlen>
 
-  802798a:	7020      	strb	r0, [r4, #0]
 
-  802798c:	bd38      	pop	{r3, r4, r5, pc}
 
-  802798e:	bf00      	nop
 
-  8027990:	2000cba8 	.word	0x2000cba8
 
-  8027994:	080399a9 	.word	0x080399a9
 
- 08027998 <GetConnectMonitorStr>:
 
- /**
 
-   * @brief
 
-   */
 
- void GetConnectMonitorStr(char *str, uint8_t *len)
 
- {
 
-  8027998:	b538      	push	{r3, r4, r5, lr}
 
- 	if(UPS.Present)
 
-  802799a:	4b08      	ldr	r3, [pc, #32]	; (80279bc <GetConnectMonitorStr+0x24>)
 
-  802799c:	f893 302c 	ldrb.w	r3, [r3, #44]	; 0x2c
 
- /**
 
-   * @brief
 
-   */
 
- void GetConnectMonitorStr(char *str, uint8_t *len)
 
- {
 
-  80279a0:	4605      	mov	r5, r0
 
-  80279a2:	460c      	mov	r4, r1
 
- 	if(UPS.Present)
 
-  80279a4:	b10b      	cbz	r3, 80279aa <GetConnectMonitorStr+0x12>
 
- 		strcpy(str, "0");
 
-  80279a6:	4906      	ldr	r1, [pc, #24]	; (80279c0 <GetConnectMonitorStr+0x28>)
 
-  80279a8:	e000      	b.n	80279ac <GetConnectMonitorStr+0x14>
 
- 	else
 
- 		strcpy(str, "1");
 
-  80279aa:	4906      	ldr	r1, [pc, #24]	; (80279c4 <GetConnectMonitorStr+0x2c>)
 
-  80279ac:	f7fa fa22 	bl	8021df4 <strcpy>
 
- 	*len = strlen(str);
 
-  80279b0:	4628      	mov	r0, r5
 
-  80279b2:	f7fa fa7d 	bl	8021eb0 <strlen>
 
-  80279b6:	7020      	strb	r0, [r4, #0]
 
-  80279b8:	bd38      	pop	{r3, r4, r5, pc}
 
-  80279ba:	bf00      	nop
 
-  80279bc:	2000cba8 	.word	0x2000cba8
 
-  80279c0:	08039a51 	.word	0x08039a51
 
-  80279c4:	08039cb4 	.word	0x08039cb4
 
- 080279c8 <GetAlarmStr>:
 
- /**
 
-   * @brief  Индикация аварийных ситуаций
 
-   */
 
- void GetAlarmStr(char *str, uint8_t *len)
 
- {
 
-  80279c8:	b538      	push	{r3, r4, r5, lr}
 
- 	sprintf(str, "%d", UPS.Status);
 
-  80279ca:	4b06      	ldr	r3, [pc, #24]	; (80279e4 <GetAlarmStr+0x1c>)
 
- /**
 
-   * @brief  Индикация аварийных ситуаций
 
-   */
 
- void GetAlarmStr(char *str, uint8_t *len)
 
- {
 
-  80279cc:	4605      	mov	r5, r0
 
-  80279ce:	460c      	mov	r4, r1
 
- 	sprintf(str, "%d", UPS.Status);
 
-  80279d0:	7cda      	ldrb	r2, [r3, #19]
 
-  80279d2:	4905      	ldr	r1, [pc, #20]	; (80279e8 <GetAlarmStr+0x20>)
 
-  80279d4:	f7ff ff1e 	bl	8027814 <tfp_sprintf>
 
- 	*len = strlen(str);
 
-  80279d8:	4628      	mov	r0, r5
 
-  80279da:	f7fa fa69 	bl	8021eb0 <strlen>
 
-  80279de:	7020      	strb	r0, [r4, #0]
 
-  80279e0:	bd38      	pop	{r3, r4, r5, pc}
 
-  80279e2:	bf00      	nop
 
-  80279e4:	2000cba8 	.word	0x2000cba8
 
-  80279e8:	080399a9 	.word	0x080399a9
 
- 080279ec <GetDateStr>:
 
- /**
 
-   * @brief  Дата (Ready for PRS!)
 
-   */
 
- void GetDateStr(char *str, uint8_t *len)
 
- {
 
-  80279ec:	b530      	push	{r4, r5, lr}
 
-  80279ee:	b087      	sub	sp, #28
 
-  80279f0:	4604      	mov	r4, r0
 
-  80279f2:	460d      	mov	r5, r1
 
-     TM_RTC_t data;
 
-     uint16_t sys_year ;
 
-     TM_RTC_GetDateTime(&data, TM_RTC_Format_BIN);
 
-  80279f4:	a802      	add	r0, sp, #8
 
-  80279f6:	2100      	movs	r1, #0
 
-  80279f8:	f7fe fd46 	bl	8026488 <TM_RTC_GetDateTime>
 
-     sys_year = 2000 + data.year;
 
-     sprintf(str, "%04i-%02i-%02i", sys_year, data.month, data.date);
 
-  80279fc:	f89d 100f 	ldrb.w	r1, [sp, #15]
 
- {
 
-     TM_RTC_t data;
 
-     uint16_t sys_year ;
 
-     TM_RTC_GetDateTime(&data, TM_RTC_Format_BIN);
 
-     sys_year = 2000 + data.year;
 
-  8027a00:	f89d 2011 	ldrb.w	r2, [sp, #17]
 
-     sprintf(str, "%04i-%02i-%02i", sys_year, data.month, data.date);
 
-  8027a04:	f89d 3010 	ldrb.w	r3, [sp, #16]
 
-  8027a08:	9100      	str	r1, [sp, #0]
 
-  8027a0a:	f502 62fa 	add.w	r2, r2, #2000	; 0x7d0
 
-  8027a0e:	4905      	ldr	r1, [pc, #20]	; (8027a24 <GetDateStr+0x38>)
 
-  8027a10:	4620      	mov	r0, r4
 
-  8027a12:	f7ff feff 	bl	8027814 <tfp_sprintf>
 
-     *len = strlen(str);
 
-  8027a16:	4620      	mov	r0, r4
 
-  8027a18:	f7fa fa4a 	bl	8021eb0 <strlen>
 
-  8027a1c:	7028      	strb	r0, [r5, #0]
 
- }
 
-  8027a1e:	b007      	add	sp, #28
 
-  8027a20:	bd30      	pop	{r4, r5, pc}
 
-  8027a22:	bf00      	nop
 
-  8027a24:	080399ac 	.word	0x080399ac
 
- 08027a28 <GetTimeStr>:
 
- /**
 
-   * @brief  Время (Ready for PRS!)
 
-   */
 
- void GetTimeStr(char *str, uint8_t *len)
 
- {
 
-  8027a28:	b530      	push	{r4, r5, lr}
 
-  8027a2a:	b085      	sub	sp, #20
 
-  8027a2c:	4604      	mov	r4, r0
 
-  8027a2e:	460d      	mov	r5, r1
 
-     TM_RTC_t data;
 
-     TM_RTC_GetDateTime(&data, TM_RTC_Format_BIN);
 
-  8027a30:	4668      	mov	r0, sp
 
-  8027a32:	2100      	movs	r1, #0
 
-  8027a34:	f7fe fd28 	bl	8026488 <TM_RTC_GetDateTime>
 
-     sprintf(str, "%02i:%02i", data.hours, data.minutes);
 
-  8027a38:	4906      	ldr	r1, [pc, #24]	; (8027a54 <GetTimeStr+0x2c>)
 
-  8027a3a:	f89d 2005 	ldrb.w	r2, [sp, #5]
 
-  8027a3e:	f89d 3004 	ldrb.w	r3, [sp, #4]
 
-  8027a42:	4620      	mov	r0, r4
 
-  8027a44:	f7ff fee6 	bl	8027814 <tfp_sprintf>
 
-     *len = strlen(str);
 
-  8027a48:	4620      	mov	r0, r4
 
-  8027a4a:	f7fa fa31 	bl	8021eb0 <strlen>
 
-  8027a4e:	7028      	strb	r0, [r5, #0]
 
- }
 
-  8027a50:	b005      	add	sp, #20
 
-  8027a52:	bd30      	pop	{r4, r5, pc}
 
-  8027a54:	080399f5 	.word	0x080399f5
 
- 08027a58 <GetUnixTimeStr>:
 
- /**
 
-   * @brief  Время (Ready for PRS!)
 
-   */
 
- void GetUnixTimeStr(char *str, uint8_t *len)
 
- {
 
-  8027a58:	b530      	push	{r4, r5, lr}
 
-  8027a5a:	b085      	sub	sp, #20
 
-  8027a5c:	4604      	mov	r4, r0
 
-  8027a5e:	460d      	mov	r5, r1
 
-     TM_RTC_t data;
 
-     TM_RTC_GetDateTime(&data, TM_RTC_Format_BIN);
 
-  8027a60:	4668      	mov	r0, sp
 
-  8027a62:	2100      	movs	r1, #0
 
-  8027a64:	f7fe fd10 	bl	8026488 <TM_RTC_GetDateTime>
 
-     sprintf(str, "%d", data.unix);
 
-  8027a68:	4905      	ldr	r1, [pc, #20]	; (8027a80 <GetUnixTimeStr+0x28>)
 
-  8027a6a:	9a03      	ldr	r2, [sp, #12]
 
-  8027a6c:	4620      	mov	r0, r4
 
-  8027a6e:	f7ff fed1 	bl	8027814 <tfp_sprintf>
 
-     *len = strlen(str);
 
-  8027a72:	4620      	mov	r0, r4
 
-  8027a74:	f7fa fa1c 	bl	8021eb0 <strlen>
 
-  8027a78:	7028      	strb	r0, [r5, #0]
 
- }
 
-  8027a7a:	b005      	add	sp, #20
 
-  8027a7c:	bd30      	pop	{r4, r5, pc}
 
-  8027a7e:	bf00      	nop
 
-  8027a80:	080399a9 	.word	0x080399a9
 
- 08027a84 <GetSntpStateStr>:
 
- /**
 
-   * @brief  Состояние SNTP (Ready for PRS!)
 
-   */
 
- void GetSntpStateStr(char *str, uint8_t *len)
 
- {
 
-  8027a84:	b538      	push	{r3, r4, r5, lr}
 
-   if (sSettings.sSNTP.sntpEnable)
 
-  8027a86:	4b08      	ldr	r3, [pc, #32]	; (8027aa8 <GetSntpStateStr+0x24>)
 
-  8027a88:	f893 3340 	ldrb.w	r3, [r3, #832]	; 0x340
 
- /**
 
-   * @brief  Состояние SNTP (Ready for PRS!)
 
-   */
 
- void GetSntpStateStr(char *str, uint8_t *len)
 
- {
 
-  8027a8c:	460c      	mov	r4, r1
 
-  8027a8e:	4605      	mov	r5, r0
 
-   if (sSettings.sSNTP.sntpEnable)
 
-   {
 
-     sprintf(str, "%s", "1"); //авто
 
-  8027a90:	4906      	ldr	r1, [pc, #24]	; (8027aac <GetSntpStateStr+0x28>)
 
- /**
 
-   * @brief  Состояние SNTP (Ready for PRS!)
 
-   */
 
- void GetSntpStateStr(char *str, uint8_t *len)
 
- {
 
-   if (sSettings.sSNTP.sntpEnable)
 
-  8027a92:	b10b      	cbz	r3, 8027a98 <GetSntpStateStr+0x14>
 
-   {
 
-     sprintf(str, "%s", "1"); //авто
 
-  8027a94:	4a06      	ldr	r2, [pc, #24]	; (8027ab0 <GetSntpStateStr+0x2c>)
 
-  8027a96:	e000      	b.n	8027a9a <GetSntpStateStr+0x16>
 
-     *len = strlen(str);
 
-   }
 
-   else
 
-   {
 
-     sprintf(str, "%s", "0"); //ручной
 
-  8027a98:	4a06      	ldr	r2, [pc, #24]	; (8027ab4 <GetSntpStateStr+0x30>)
 
-  8027a9a:	f7ff febb 	bl	8027814 <tfp_sprintf>
 
-     *len = strlen(str);
 
-  8027a9e:	4628      	mov	r0, r5
 
-  8027aa0:	f7fa fa06 	bl	8021eb0 <strlen>
 
-  8027aa4:	7020      	strb	r0, [r4, #0]
 
-  8027aa6:	bd38      	pop	{r3, r4, r5, pc}
 
-  8027aa8:	2000cfc4 	.word	0x2000cfc4
 
-  8027aac:	080399bb 	.word	0x080399bb
 
-  8027ab0:	08039cb4 	.word	0x08039cb4
 
-  8027ab4:	08039a51 	.word	0x08039a51
 
- 08027ab8 <GetSntpServerIpStr>:
 
- /**
 
-   * @brief  IP адрес SNTP сервера (Ready for PRS!)
 
-   */
 
- void GetSntpServerIpStr(char *str, uint8_t *len)
 
- {
 
-  8027ab8:	b538      	push	{r3, r4, r5, lr}
 
-   sprintf(str, "%s", sSettings.sSNTP.ip);
 
-  8027aba:	4a05      	ldr	r2, [pc, #20]	; (8027ad0 <GetSntpServerIpStr+0x18>)
 
- /**
 
-   * @brief  IP адрес SNTP сервера (Ready for PRS!)
 
-   */
 
- void GetSntpServerIpStr(char *str, uint8_t *len)
 
- {
 
-  8027abc:	4605      	mov	r5, r0
 
-  8027abe:	460c      	mov	r4, r1
 
-   sprintf(str, "%s", sSettings.sSNTP.ip);
 
-  8027ac0:	4904      	ldr	r1, [pc, #16]	; (8027ad4 <GetSntpServerIpStr+0x1c>)
 
-  8027ac2:	f7ff fea7 	bl	8027814 <tfp_sprintf>
 
-   *len = strlen(str);
 
-  8027ac6:	4628      	mov	r0, r5
 
-  8027ac8:	f7fa f9f2 	bl	8021eb0 <strlen>
 
-  8027acc:	7020      	strb	r0, [r4, #0]
 
-  8027ace:	bd38      	pop	{r3, r4, r5, pc}
 
-  8027ad0:	2000d305 	.word	0x2000d305
 
-  8027ad4:	080399bb 	.word	0x080399bb
 
- 08027ad8 <GetSntpTimeZoneStr>:
 
- /**
 
-   * @brief  Часовой пояс контроллера (Ready for PRS!)
 
-   */
 
- void GetSntpTimeZoneStr(char *str, uint8_t *len)
 
- {
 
-  8027ad8:	b538      	push	{r3, r4, r5, lr}
 
-   sprintf(str, "%0.1f", sSettings.sSNTP.timeZone);
 
-  8027ada:	4b09      	ldr	r3, [pc, #36]	; (8027b00 <GetSntpTimeZoneStr+0x28>)
 
- /**
 
-   * @brief  Часовой пояс контроллера (Ready for PRS!)
 
-   */
 
- void GetSntpTimeZoneStr(char *str, uint8_t *len)
 
- {
 
-  8027adc:	4604      	mov	r4, r0
 
-   sprintf(str, "%0.1f", sSettings.sSNTP.timeZone);
 
-  8027ade:	f8d3 0370 	ldr.w	r0, [r3, #880]	; 0x370
 
- /**
 
-   * @brief  Часовой пояс контроллера (Ready for PRS!)
 
-   */
 
- void GetSntpTimeZoneStr(char *str, uint8_t *len)
 
- {
 
-  8027ae2:	460d      	mov	r5, r1
 
-   sprintf(str, "%0.1f", sSettings.sSNTP.timeZone);
 
-  8027ae4:	f7f8 fd18 	bl	8020518 <__aeabi_f2d>
 
-  8027ae8:	4602      	mov	r2, r0
 
-  8027aea:	460b      	mov	r3, r1
 
-  8027aec:	4620      	mov	r0, r4
 
-  8027aee:	4905      	ldr	r1, [pc, #20]	; (8027b04 <GetSntpTimeZoneStr+0x2c>)
 
-  8027af0:	f7ff fe90 	bl	8027814 <tfp_sprintf>
 
-   *len = strlen(str);
 
-  8027af4:	4620      	mov	r0, r4
 
-  8027af6:	f7fa f9db 	bl	8021eb0 <strlen>
 
-  8027afa:	7028      	strb	r0, [r5, #0]
 
-  8027afc:	bd38      	pop	{r3, r4, r5, pc}
 
-  8027afe:	bf00      	nop
 
-  8027b00:	2000cfc4 	.word	0x2000cfc4
 
-  8027b04:	080399a3 	.word	0x080399a3
 
- 08027b08 <GetSntpLastDataStr>:
 
- /**
 
-   * @brief  Дата последней синхронизации SNTP (Ready for PRS!)
 
-   */
 
- void GetSntpLastDataStr(char *str, uint8_t *len)
 
- {
 
-  8027b08:	b538      	push	{r3, r4, r5, lr}
 
-   sprintf(str, "%s", sSettings.sSNTP.data);
 
-  8027b0a:	4a05      	ldr	r2, [pc, #20]	; (8027b20 <GetSntpLastDataStr+0x18>)
 
- /**
 
-   * @brief  Дата последней синхронизации SNTP (Ready for PRS!)
 
-   */
 
- void GetSntpLastDataStr(char *str, uint8_t *len)
 
- {
 
-  8027b0c:	4605      	mov	r5, r0
 
-  8027b0e:	460c      	mov	r4, r1
 
-   sprintf(str, "%s", sSettings.sSNTP.data);
 
-  8027b10:	4904      	ldr	r1, [pc, #16]	; (8027b24 <GetSntpLastDataStr+0x1c>)
 
-  8027b12:	f7ff fe7f 	bl	8027814 <tfp_sprintf>
 
-   *len = strlen(str);
 
-  8027b16:	4628      	mov	r0, r5
 
-  8027b18:	f7fa f9ca 	bl	8021eb0 <strlen>
 
-  8027b1c:	7020      	strb	r0, [r4, #0]
 
-  8027b1e:	bd38      	pop	{r3, r4, r5, pc}
 
-  8027b20:	2000d315 	.word	0x2000d315
 
-  8027b24:	080399bb 	.word	0x080399bb
 
- 08027b28 <GetDINTypeActStr>:
 
- /**
 
-   * @brief  Тип действий при срабатывание сухих контактов
 
-   */
 
- void GetDINTypeActStr(char *str, uint8_t *len, uint8_t num)
 
- {
 
-  8027b28:	b538      	push	{r3, r4, r5, lr}
 
- 	sprintf(str, "%d", sSettings.sInOuts.din_type_act[num]);
 
-  8027b2a:	4b07      	ldr	r3, [pc, #28]	; (8027b48 <GetDINTypeActStr+0x20>)
 
-  8027b2c:	189a      	adds	r2, r3, r2
 
- /**
 
-   * @brief  Тип действий при срабатывание сухих контактов
 
-   */
 
- void GetDINTypeActStr(char *str, uint8_t *len, uint8_t num)
 
- {
 
-  8027b2e:	4605      	mov	r5, r0
 
-  8027b30:	460c      	mov	r4, r1
 
- 	sprintf(str, "%d", sSettings.sInOuts.din_type_act[num]);
 
-  8027b32:	f892 2376 	ldrb.w	r2, [r2, #886]	; 0x376
 
-  8027b36:	4905      	ldr	r1, [pc, #20]	; (8027b4c <GetDINTypeActStr+0x24>)
 
-  8027b38:	f7ff fe6c 	bl	8027814 <tfp_sprintf>
 
- 	*len = strlen(str);
 
-  8027b3c:	4628      	mov	r0, r5
 
-  8027b3e:	f7fa f9b7 	bl	8021eb0 <strlen>
 
-  8027b42:	7020      	strb	r0, [r4, #0]
 
-  8027b44:	bd38      	pop	{r3, r4, r5, pc}
 
-  8027b46:	bf00      	nop
 
-  8027b48:	2000cfc4 	.word	0x2000cfc4
 
-  8027b4c:	080399a9 	.word	0x080399a9
 
- 08027b50 <GetDINStatusStr>:
 
- /**
 
-   * @brief  Состояние сухого контакта
 
-   */
 
- void GetDINStatusStr(char *str, uint8_t *len, uint8_t num)
 
- {
 
- 	sprintf(str, "%d", get_state_din_outs(DIN1+num));
 
-  8027b50:	3206      	adds	r2, #6
 
- /**
 
-   * @brief  Состояние сухого контакта
 
-   */
 
- void GetDINStatusStr(char *str, uint8_t *len, uint8_t num)
 
- {
 
-  8027b52:	b538      	push	{r3, r4, r5, lr}
 
-  8027b54:	4604      	mov	r4, r0
 
- 	sprintf(str, "%d", get_state_din_outs(DIN1+num));
 
-  8027b56:	b2d0      	uxtb	r0, r2
 
- /**
 
-   * @brief  Состояние сухого контакта
 
-   */
 
- void GetDINStatusStr(char *str, uint8_t *len, uint8_t num)
 
- {
 
-  8027b58:	460d      	mov	r5, r1
 
- 	sprintf(str, "%d", get_state_din_outs(DIN1+num));
 
-  8027b5a:	f001 f81d 	bl	8028b98 <get_state_din_outs>
 
-  8027b5e:	4905      	ldr	r1, [pc, #20]	; (8027b74 <GetDINStatusStr+0x24>)
 
-  8027b60:	4602      	mov	r2, r0
 
-  8027b62:	4620      	mov	r0, r4
 
-  8027b64:	f7ff fe56 	bl	8027814 <tfp_sprintf>
 
- 	*len = strlen(str);
 
-  8027b68:	4620      	mov	r0, r4
 
-  8027b6a:	f7fa f9a1 	bl	8021eb0 <strlen>
 
-  8027b6e:	7028      	strb	r0, [r5, #0]
 
-  8027b70:	bd38      	pop	{r3, r4, r5, pc}
 
-  8027b72:	bf00      	nop
 
-  8027b74:	080399a9 	.word	0x080399a9
 
- 08027b78 <GetDIN0StatusStr>:
 
- /**
 
-   * @brief  Состояние сухого контакта
 
-   */
 
- void GetDIN0StatusStr(char *str, uint8_t *len)
 
- {
 
-  8027b78:	b538      	push	{r3, r4, r5, lr}
 
-  8027b7a:	4604      	mov	r4, r0
 
- 	sprintf(str, "%d", get_state_din_outs(DIN1));
 
-  8027b7c:	2006      	movs	r0, #6
 
- /**
 
-   * @brief  Состояние сухого контакта
 
-   */
 
- void GetDIN0StatusStr(char *str, uint8_t *len)
 
- {
 
-  8027b7e:	460d      	mov	r5, r1
 
- 	sprintf(str, "%d", get_state_din_outs(DIN1));
 
-  8027b80:	f001 f80a 	bl	8028b98 <get_state_din_outs>
 
-  8027b84:	4904      	ldr	r1, [pc, #16]	; (8027b98 <GetDIN0StatusStr+0x20>)
 
-  8027b86:	4602      	mov	r2, r0
 
-  8027b88:	4620      	mov	r0, r4
 
-  8027b8a:	f7ff fe43 	bl	8027814 <tfp_sprintf>
 
- 	*len = strlen(str);
 
-  8027b8e:	4620      	mov	r0, r4
 
-  8027b90:	f7fa f98e 	bl	8021eb0 <strlen>
 
-  8027b94:	7028      	strb	r0, [r5, #0]
 
-  8027b96:	bd38      	pop	{r3, r4, r5, pc}
 
-  8027b98:	080399a9 	.word	0x080399a9
 
- 08027b9c <GetROTypeActStr>:
 
- /**
 
-   * @brief  Источник срабатывания реле
 
-   */
 
- void GetROTypeActStr(char *str, uint8_t *len, uint8_t num)
 
- {
 
-  8027b9c:	b538      	push	{r3, r4, r5, lr}
 
- 	sprintf(str, "%d", sSettings.sInOuts.ro_type_source[num]);
 
-  8027b9e:	4b07      	ldr	r3, [pc, #28]	; (8027bbc <GetROTypeActStr+0x20>)
 
-  8027ba0:	189a      	adds	r2, r3, r2
 
- /**
 
-   * @brief  Источник срабатывания реле
 
-   */
 
- void GetROTypeActStr(char *str, uint8_t *len, uint8_t num)
 
- {
 
-  8027ba2:	4605      	mov	r5, r0
 
-  8027ba4:	460c      	mov	r4, r1
 
- 	sprintf(str, "%d", sSettings.sInOuts.ro_type_source[num]);
 
-  8027ba6:	f892 2374 	ldrb.w	r2, [r2, #884]	; 0x374
 
-  8027baa:	4905      	ldr	r1, [pc, #20]	; (8027bc0 <GetROTypeActStr+0x24>)
 
-  8027bac:	f7ff fe32 	bl	8027814 <tfp_sprintf>
 
- 	*len = strlen(str);
 
-  8027bb0:	4628      	mov	r0, r5
 
-  8027bb2:	f7fa f97d 	bl	8021eb0 <strlen>
 
-  8027bb6:	7020      	strb	r0, [r4, #0]
 
-  8027bb8:	bd38      	pop	{r3, r4, r5, pc}
 
-  8027bba:	bf00      	nop
 
-  8027bbc:	2000cfc4 	.word	0x2000cfc4
 
-  8027bc0:	080399a9 	.word	0x080399a9
 
- 08027bc4 <GetDOUTStatusStr>:
 
- /**
 
-   * @brief  Состояние релейного выхода
 
-   */
 
- void GetDOUTStatusStr(char *str, uint8_t *len, uint8_t num)
 
- {
 
- 	sprintf(str, "%d", get_state_din_outs(DOUT1+num));
 
-  8027bc4:	3207      	adds	r2, #7
 
- /**
 
-   * @brief  Состояние релейного выхода
 
-   */
 
- void GetDOUTStatusStr(char *str, uint8_t *len, uint8_t num)
 
- {
 
-  8027bc6:	b538      	push	{r3, r4, r5, lr}
 
-  8027bc8:	4604      	mov	r4, r0
 
- 	sprintf(str, "%d", get_state_din_outs(DOUT1+num));
 
-  8027bca:	b2d0      	uxtb	r0, r2
 
- /**
 
-   * @brief  Состояние релейного выхода
 
-   */
 
- void GetDOUTStatusStr(char *str, uint8_t *len, uint8_t num)
 
- {
 
-  8027bcc:	460d      	mov	r5, r1
 
- 	sprintf(str, "%d", get_state_din_outs(DOUT1+num));
 
-  8027bce:	f000 ffe3 	bl	8028b98 <get_state_din_outs>
 
-  8027bd2:	4905      	ldr	r1, [pc, #20]	; (8027be8 <GetDOUTStatusStr+0x24>)
 
-  8027bd4:	4602      	mov	r2, r0
 
-  8027bd6:	4620      	mov	r0, r4
 
-  8027bd8:	f7ff fe1c 	bl	8027814 <tfp_sprintf>
 
- 	*len = strlen(str);
 
-  8027bdc:	4620      	mov	r0, r4
 
-  8027bde:	f7fa f967 	bl	8021eb0 <strlen>
 
-  8027be2:	7028      	strb	r0, [r5, #0]
 
-  8027be4:	bd38      	pop	{r3, r4, r5, pc}
 
-  8027be6:	bf00      	nop
 
-  8027be8:	080399a9 	.word	0x080399a9
 
- 08027bec <GetDOUT0StatusStr>:
 
- /**
 
-   * @brief  Состояние релейного выхода
 
-   */
 
- void GetDOUT0StatusStr(char *str, uint8_t *len)
 
- {
 
-  8027bec:	b538      	push	{r3, r4, r5, lr}
 
-  8027bee:	4604      	mov	r4, r0
 
- 	sprintf(str, "%d", get_state_din_outs(DOUT1));
 
-  8027bf0:	2007      	movs	r0, #7
 
- /**
 
-   * @brief  Состояние релейного выхода
 
-   */
 
- void GetDOUT0StatusStr(char *str, uint8_t *len)
 
- {
 
-  8027bf2:	460d      	mov	r5, r1
 
- 	sprintf(str, "%d", get_state_din_outs(DOUT1));
 
-  8027bf4:	f000 ffd0 	bl	8028b98 <get_state_din_outs>
 
-  8027bf8:	4904      	ldr	r1, [pc, #16]	; (8027c0c <GetDOUT0StatusStr+0x20>)
 
-  8027bfa:	4602      	mov	r2, r0
 
-  8027bfc:	4620      	mov	r0, r4
 
-  8027bfe:	f7ff fe09 	bl	8027814 <tfp_sprintf>
 
- 	*len = strlen(str);
 
-  8027c02:	4620      	mov	r0, r4
 
-  8027c04:	f7fa f954 	bl	8021eb0 <strlen>
 
-  8027c08:	7028      	strb	r0, [r5, #0]
 
-  8027c0a:	bd38      	pop	{r3, r4, r5, pc}
 
-  8027c0c:	080399a9 	.word	0x080399a9
 
- 08027c10 <GetDOUT1StatusStr>:
 
- /**
 
-   * @brief  Состояние релейного выхода
 
-   */
 
- void GetDOUT1StatusStr(char *str, uint8_t *len)
 
- {
 
-  8027c10:	b538      	push	{r3, r4, r5, lr}
 
-  8027c12:	4604      	mov	r4, r0
 
- 	sprintf(str, "%d", get_state_din_outs(DOUT2));
 
-  8027c14:	2008      	movs	r0, #8
 
- /**
 
-   * @brief  Состояние релейного выхода
 
-   */
 
- void GetDOUT1StatusStr(char *str, uint8_t *len)
 
- {
 
-  8027c16:	460d      	mov	r5, r1
 
- 	sprintf(str, "%d", get_state_din_outs(DOUT2));
 
-  8027c18:	f000 ffbe 	bl	8028b98 <get_state_din_outs>
 
-  8027c1c:	4904      	ldr	r1, [pc, #16]	; (8027c30 <GetDOUT1StatusStr+0x20>)
 
-  8027c1e:	4602      	mov	r2, r0
 
-  8027c20:	4620      	mov	r0, r4
 
-  8027c22:	f7ff fdf7 	bl	8027814 <tfp_sprintf>
 
- 	*len = strlen(str);
 
-  8027c26:	4620      	mov	r0, r4
 
-  8027c28:	f7fa f942 	bl	8021eb0 <strlen>
 
-  8027c2c:	7028      	strb	r0, [r5, #0]
 
-  8027c2e:	bd38      	pop	{r3, r4, r5, pc}
 
-  8027c30:	080399a9 	.word	0x080399a9
 
- 08027c34 <GetWorkTimeStr>:
 
- /**
 
-   * @brief  Время работы устройства
 
-   */
 
- void GetWorkTimeStr(char *str, uint8_t *len)
 
- {
 
-  8027c34:	b57f      	push	{r0, r1, r2, r3, r4, r5, r6, lr}
 
-  8027c36:	4604      	mov	r4, r0
 
-   u32_t    tick;
 
-   uint16_t day;
 
-   uint8_t  hour;
 
-   uint8_t  min;
 
-   snmp_get_sysuptime(&tick);
 
-  8027c38:	a803      	add	r0, sp, #12
 
- /**
 
-   * @brief  Время работы устройства
 
-   */
 
- void GetWorkTimeStr(char *str, uint8_t *len)
 
- {
 
-  8027c3a:	460e      	mov	r6, r1
 
-   u32_t    tick;
 
-   uint16_t day;
 
-   uint8_t  hour;
 
-   uint8_t  min;
 
-   snmp_get_sysuptime(&tick);
 
-  8027c3c:	f00c fd0c 	bl	8034658 <snmp_get_sysuptime>
 
-   day = tick/8640000;
 
-  8027c40:	9803      	ldr	r0, [sp, #12]
 
-   
 
-   tick = tick%8640000;
 
-  8027c42:	4b0c      	ldr	r3, [pc, #48]	; (8027c74 <GetWorkTimeStr+0x40>)
 
-   hour = tick/360000;
 
-   
 
-   tick = tick%360000;
 
-  8027c44:	4d0c      	ldr	r5, [pc, #48]	; (8027c78 <GetWorkTimeStr+0x44>)
 
-   snmp_get_sysuptime(&tick);
 
-   day = tick/8640000;
 
-   
 
-   tick = tick%8640000;
 
-  8027c46:	fbb0 f2f3 	udiv	r2, r0, r3
 
-  8027c4a:	fb03 0012 	mls	r0, r3, r2, r0
 
-   hour = tick/360000;
 
-   
 
-   tick = tick%360000;
 
-  8027c4e:	fbb0 f3f5 	udiv	r3, r0, r5
 
-  8027c52:	fb05 0013 	mls	r0, r5, r3, r0
 
-   min = tick/6000;
 
-  8027c56:	f241 7170 	movw	r1, #6000	; 0x1770
 
-   day = tick/8640000;
 
-   
 
-   tick = tick%8640000;
 
-   hour = tick/360000;
 
-   
 
-   tick = tick%360000;
 
-  8027c5a:	9003      	str	r0, [sp, #12]
 
-   min = tick/6000;
 
-  8027c5c:	fbb0 f0f1 	udiv	r0, r0, r1
 
-   sprintf(str, "%d дн. %d ч. %d мин.", day, hour, min);
 
-  8027c60:	9000      	str	r0, [sp, #0]
 
-  8027c62:	4906      	ldr	r1, [pc, #24]	; (8027c7c <GetWorkTimeStr+0x48>)
 
-  8027c64:	4620      	mov	r0, r4
 
-  8027c66:	f7ff fdd5 	bl	8027814 <tfp_sprintf>
 
-   *len = strlen(str);
 
-  8027c6a:	4620      	mov	r0, r4
 
-  8027c6c:	f7fa f920 	bl	8021eb0 <strlen>
 
-  8027c70:	7030      	strb	r0, [r6, #0]
 
- }
 
-  8027c72:	bd7f      	pop	{r0, r1, r2, r3, r4, r5, r6, pc}
 
-  8027c74:	0083d600 	.word	0x0083d600
 
-  8027c78:	00057e40 	.word	0x00057e40
 
-  8027c7c:	080399be 	.word	0x080399be
 
- 08027c80 <GetModelStr>:
 
- /**
 
-   * @brief  Модель устройства
 
-   */
 
- void GetModelStr(char *str, uint8_t *len)
 
- {
 
-  8027c80:	b570      	push	{r4, r5, r6, lr}
 
-   *len = strlen(sSettings.sSnmp.sysName);
 
-  8027c82:	4c07      	ldr	r4, [pc, #28]	; (8027ca0 <GetModelStr+0x20>)
 
- /**
 
-   * @brief  Модель устройства
 
-   */
 
- void GetModelStr(char *str, uint8_t *len)
 
- {
 
-  8027c84:	4605      	mov	r5, r0
 
-   *len = strlen(sSettings.sSnmp.sysName);
 
-  8027c86:	4620      	mov	r0, r4
 
- /**
 
-   * @brief  Модель устройства
 
-   */
 
- void GetModelStr(char *str, uint8_t *len)
 
- {
 
-  8027c88:	460e      	mov	r6, r1
 
-   *len = strlen(sSettings.sSnmp.sysName);
 
-  8027c8a:	f7fa f911 	bl	8021eb0 <strlen>
 
-  8027c8e:	4602      	mov	r2, r0
 
-  8027c90:	7030      	strb	r0, [r6, #0]
 
-   strncpy(str, sSettings.sSnmp.sysName, *len);
 
-  8027c92:	4621      	mov	r1, r4
 
-  8027c94:	4628      	mov	r0, r5
 
-  8027c96:	b2d2      	uxtb	r2, r2
 
- }
 
-  8027c98:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
 
-   * @brief  Модель устройства
 
-   */
 
- void GetModelStr(char *str, uint8_t *len)
 
- {
 
-   *len = strlen(sSettings.sSnmp.sysName);
 
-   strncpy(str, sSettings.sSnmp.sysName, *len);
 
-  8027c9c:	f7fa b9c0 	b.w	8022020 <strncpy>
 
-  8027ca0:	2000d1ef 	.word	0x2000d1ef
 
- 08027ca4 <GetProductionDataStr>:
 
- /**
 
-   * @brief  Дата производства
 
-   */
 
- void GetProductionDataStr(char *str, uint8_t *len)
 
- {
 
-  8027ca4:	b570      	push	{r4, r5, r6, lr}
 
-   *len = strlen(sSettings.sInfo.productionData);
 
-  8027ca6:	4c07      	ldr	r4, [pc, #28]	; (8027cc4 <GetProductionDataStr+0x20>)
 
- /**
 
-   * @brief  Дата производства
 
-   */
 
- void GetProductionDataStr(char *str, uint8_t *len)
 
- {
 
-  8027ca8:	4605      	mov	r5, r0
 
-   *len = strlen(sSettings.sInfo.productionData);
 
-  8027caa:	4620      	mov	r0, r4
 
- /**
 
-   * @brief  Дата производства
 
-   */
 
- void GetProductionDataStr(char *str, uint8_t *len)
 
- {
 
-  8027cac:	460e      	mov	r6, r1
 
-   *len = strlen(sSettings.sInfo.productionData);
 
-  8027cae:	f7fa f8ff 	bl	8021eb0 <strlen>
 
-  8027cb2:	4602      	mov	r2, r0
 
-  8027cb4:	7030      	strb	r0, [r6, #0]
 
-   strncpy(str, sSettings.sInfo.productionData, *len);
 
-  8027cb6:	4621      	mov	r1, r4
 
-  8027cb8:	4628      	mov	r0, r5
 
-  8027cba:	b2d2      	uxtb	r2, r2
 
- }
 
-  8027cbc:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
 
-   * @brief  Дата производства
 
-   */
 
- void GetProductionDataStr(char *str, uint8_t *len)
 
- {
 
-   *len = strlen(sSettings.sInfo.productionData);
 
-   strncpy(str, sSettings.sInfo.productionData, *len);
 
-  8027cc0:	f7fa b9ae 	b.w	8022020 <strncpy>
 
-  8027cc4:	2000d028 	.word	0x2000d028
 
- 08027cc8 <GetVersionStr>:
 
- /**
 
-   * @brief  Версия ПО
 
-   */
 
- void GetVersionStr(char *str, uint8_t *len) // +
 
- {
 
-  8027cc8:	b570      	push	{r4, r5, r6, lr}
 
-   *len = strlen(VERSION);
 
-  8027cca:	4c07      	ldr	r4, [pc, #28]	; (8027ce8 <GetVersionStr+0x20>)
 
- /**
 
-   * @brief  Версия ПО
 
-   */
 
- void GetVersionStr(char *str, uint8_t *len) // +
 
- {
 
-  8027ccc:	4605      	mov	r5, r0
 
-   *len = strlen(VERSION);
 
-  8027cce:	4620      	mov	r0, r4
 
- /**
 
-   * @brief  Версия ПО
 
-   */
 
- void GetVersionStr(char *str, uint8_t *len) // +
 
- {
 
-  8027cd0:	460e      	mov	r6, r1
 
-   *len = strlen(VERSION);
 
-  8027cd2:	f7fa f8ed 	bl	8021eb0 <strlen>
 
-  8027cd6:	4602      	mov	r2, r0
 
-  8027cd8:	7030      	strb	r0, [r6, #0]
 
-   strncpy(str, VERSION, *len);
 
-  8027cda:	4621      	mov	r1, r4
 
-  8027cdc:	4628      	mov	r0, r5
 
-  8027cde:	b2d2      	uxtb	r2, r2
 
- }
 
-  8027ce0:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
 
-   * @brief  Версия ПО
 
-   */
 
- void GetVersionStr(char *str, uint8_t *len) // +
 
- {
 
-   *len = strlen(VERSION);
 
-   strncpy(str, VERSION, *len);
 
-  8027ce4:	f7fa b99c 	b.w	8022020 <strncpy>
 
-  8027ce8:	080399d9 	.word	0x080399d9
 
- 08027cec <GetMacStr>:
 
- /**
 
-   * @brief  MAC адрес устройства
 
-   */
 
- void GetMacStr(char *str, uint8_t *len)
 
- {
 
-  8027cec:	b570      	push	{r4, r5, r6, lr}
 
-   *len = strlen(sSettings.sInfo.mac);
 
-  8027cee:	4c07      	ldr	r4, [pc, #28]	; (8027d0c <GetMacStr+0x20>)
 
- /**
 
-   * @brief  MAC адрес устройства
 
-   */
 
- void GetMacStr(char *str, uint8_t *len)
 
- {
 
-  8027cf0:	4605      	mov	r5, r0
 
-   *len = strlen(sSettings.sInfo.mac);
 
-  8027cf2:	4620      	mov	r0, r4
 
- /**
 
-   * @brief  MAC адрес устройства
 
-   */
 
- void GetMacStr(char *str, uint8_t *len)
 
- {
 
-  8027cf4:	460e      	mov	r6, r1
 
-   *len = strlen(sSettings.sInfo.mac);
 
-  8027cf6:	f7fa f8db 	bl	8021eb0 <strlen>
 
-  8027cfa:	4602      	mov	r2, r0
 
-  8027cfc:	7030      	strb	r0, [r6, #0]
 
-   strncpy(str, sSettings.sInfo.mac, *len);
 
-  8027cfe:	4621      	mov	r1, r4
 
-  8027d00:	4628      	mov	r0, r5
 
-  8027d02:	b2d2      	uxtb	r2, r2
 
- }
 
-  8027d04:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
 
-   * @brief  MAC адрес устройства
 
-   */
 
- void GetMacStr(char *str, uint8_t *len)
 
- {
 
-   *len = strlen(sSettings.sInfo.mac);
 
-   strncpy(str, sSettings.sInfo.mac, *len);
 
-  8027d08:	f7fa b98a 	b.w	8022020 <strncpy>
 
-  8027d0c:	2000d050 	.word	0x2000d050
 
- 08027d10 <GetSerialNumberStr>:
 
- /**
 
-   * @brief  Серийный номер устройства
 
-   */
 
- void GetSerialNumberStr(char *str, uint8_t *len)
 
- {
 
-  8027d10:	b570      	push	{r4, r5, r6, lr}
 
-   *len = strlen(sSettings.sInfo.serialNumber);
 
-  8027d12:	4c07      	ldr	r4, [pc, #28]	; (8027d30 <GetSerialNumberStr+0x20>)
 
- /**
 
-   * @brief  Серийный номер устройства
 
-   */
 
- void GetSerialNumberStr(char *str, uint8_t *len)
 
- {
 
-  8027d14:	4605      	mov	r5, r0
 
-   *len = strlen(sSettings.sInfo.serialNumber);
 
-  8027d16:	4620      	mov	r0, r4
 
- /**
 
-   * @brief  Серийный номер устройства
 
-   */
 
- void GetSerialNumberStr(char *str, uint8_t *len)
 
- {
 
-  8027d18:	460e      	mov	r6, r1
 
-   *len = strlen(sSettings.sInfo.serialNumber);
 
-  8027d1a:	f7fa f8c9 	bl	8021eb0 <strlen>
 
-  8027d1e:	4602      	mov	r2, r0
 
-  8027d20:	7030      	strb	r0, [r6, #0]
 
-   strncpy(str, sSettings.sInfo.serialNumber, *len);
 
-  8027d22:	4621      	mov	r1, r4
 
-  8027d24:	4628      	mov	r0, r5
 
-  8027d26:	b2d2      	uxtb	r2, r2
 
- }
 
-  8027d28:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
 
-   * @brief  Серийный номер устройства
 
-   */
 
- void GetSerialNumberStr(char *str, uint8_t *len)
 
- {
 
-   *len = strlen(sSettings.sInfo.serialNumber);
 
-   strncpy(str, sSettings.sInfo.serialNumber, *len);
 
-  8027d2c:	f7fa b978 	b.w	8022020 <strncpy>
 
-  8027d30:	2000d062 	.word	0x2000d062
 
- 08027d34 <GetOwnerStr>:
 
- /**
 
-   * @brief  Владелец устройства
 
-   */
 
- void GetOwnerStr(char *str, uint8_t *len)
 
- {
 
-  8027d34:	b570      	push	{r4, r5, r6, lr}
 
-   *len = strlen(sSettings.sSnmp.sysContact);
 
-  8027d36:	4c07      	ldr	r4, [pc, #28]	; (8027d54 <GetOwnerStr+0x20>)
 
- /**
 
-   * @brief  Владелец устройства
 
-   */
 
- void GetOwnerStr(char *str, uint8_t *len)
 
- {
 
-  8027d38:	4605      	mov	r5, r0
 
-   *len = strlen(sSettings.sSnmp.sysContact);
 
-  8027d3a:	4620      	mov	r0, r4
 
- /**
 
-   * @brief  Владелец устройства
 
-   */
 
- void GetOwnerStr(char *str, uint8_t *len)
 
- {
 
-  8027d3c:	460e      	mov	r6, r1
 
-   *len = strlen(sSettings.sSnmp.sysContact);
 
-  8027d3e:	f7fa f8b7 	bl	8021eb0 <strlen>
 
-  8027d42:	4602      	mov	r2, r0
 
-  8027d44:	7030      	strb	r0, [r6, #0]
 
-   strncpy(str, sSettings.sSnmp.sysContact, *len);
 
-  8027d46:	4621      	mov	r1, r4
 
-  8027d48:	4628      	mov	r0, r5
 
-  8027d4a:	b2d2      	uxtb	r2, r2
 
- }
 
-  8027d4c:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
 
-   * @brief  Владелец устройства
 
-   */
 
- void GetOwnerStr(char *str, uint8_t *len)
 
- {
 
-   *len = strlen(sSettings.sSnmp.sysContact);
 
-   strncpy(str, sSettings.sSnmp.sysContact, *len);
 
-  8027d50:	f7fa b966 	b.w	8022020 <strncpy>
 
-  8027d54:	2000d1bd 	.word	0x2000d1bd
 
- 08027d58 <GetLocationStr>:
 
- /**
 
-   * @brief  Местоположение устройства
 
-   */
 
- void GetLocationStr(char *str, uint8_t *len)
 
- {
 
-  8027d58:	b570      	push	{r4, r5, r6, lr}
 
-   *len = strlen(sSettings.sSnmp.sysLocation);
 
-  8027d5a:	4c07      	ldr	r4, [pc, #28]	; (8027d78 <GetLocationStr+0x20>)
 
- /**
 
-   * @brief  Местоположение устройства
 
-   */
 
- void GetLocationStr(char *str, uint8_t *len)
 
- {
 
-  8027d5c:	4605      	mov	r5, r0
 
-   *len = strlen(sSettings.sSnmp.sysLocation);
 
-  8027d5e:	4620      	mov	r0, r4
 
- /**
 
-   * @brief  Местоположение устройства
 
-   */
 
- void GetLocationStr(char *str, uint8_t *len)
 
- {
 
-  8027d60:	460e      	mov	r6, r1
 
-   *len = strlen(sSettings.sSnmp.sysLocation);
 
-  8027d62:	f7fa f8a5 	bl	8021eb0 <strlen>
 
-  8027d66:	4602      	mov	r2, r0
 
-  8027d68:	7030      	strb	r0, [r6, #0]
 
-   strncpy(str, sSettings.sSnmp.sysLocation, *len);
 
-  8027d6a:	4621      	mov	r1, r4
 
-  8027d6c:	4628      	mov	r0, r5
 
-  8027d6e:	b2d2      	uxtb	r2, r2
 
- }
 
-  8027d70:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
 
-   * @brief  Местоположение устройства
 
-   */
 
- void GetLocationStr(char *str, uint8_t *len)
 
- {
 
-   *len = strlen(sSettings.sSnmp.sysLocation);
 
-   strncpy(str, sSettings.sSnmp.sysLocation, *len);
 
-  8027d74:	f7fa b954 	b.w	8022020 <strncpy>
 
-  8027d78:	2000d203 	.word	0x2000d203
 
- 08027d7c <GetCommentsStr>:
 
- /**
 
-   * @brief  Комментарии
 
-   */
 
- void GetCommentsStr(char *str, uint8_t *len)
 
- {
 
-  8027d7c:	b570      	push	{r4, r5, r6, lr}
 
-   *len = strlen(sSettings.sInfo.comments);
 
-  8027d7e:	4c07      	ldr	r4, [pc, #28]	; (8027d9c <GetCommentsStr+0x20>)
 
- /**
 
-   * @brief  Комментарии
 
-   */
 
- void GetCommentsStr(char *str, uint8_t *len)
 
- {
 
-  8027d80:	4605      	mov	r5, r0
 
-   *len = strlen(sSettings.sInfo.comments);
 
-  8027d82:	4620      	mov	r0, r4
 
- /**
 
-   * @brief  Комментарии
 
-   */
 
- void GetCommentsStr(char *str, uint8_t *len)
 
- {
 
-  8027d84:	460e      	mov	r6, r1
 
-   *len = strlen(sSettings.sInfo.comments);
 
-  8027d86:	f7fa f893 	bl	8021eb0 <strlen>
 
-  8027d8a:	4602      	mov	r2, r0
 
-  8027d8c:	7030      	strb	r0, [r6, #0]
 
-   strncpy(str, sSettings.sInfo.comments, *len);
 
-  8027d8e:	4621      	mov	r1, r4
 
-  8027d90:	4628      	mov	r0, r5
 
-  8027d92:	b2d2      	uxtb	r2, r2
 
- }
 
-  8027d94:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
 
-   * @brief  Комментарии
 
-   */
 
- void GetCommentsStr(char *str, uint8_t *len)
 
- {
 
-   *len = strlen(sSettings.sInfo.comments);
 
-   strncpy(str, sSettings.sInfo.comments, *len);
 
-  8027d98:	f7fa b942 	b.w	8022020 <strncpy>
 
-  8027d9c:	2000d072 	.word	0x2000d072
 
- 08027da0 <GetUPSModelStr>:
 
- /**
 
-   * @brief  Модель UPS
 
-   */
 
- void GetUPSModelStr(char *str, uint8_t *len)
 
- {
 
-  8027da0:	b570      	push	{r4, r5, r6, lr}
 
-   *len = strlen(UPS.model);
 
-  8027da2:	4c07      	ldr	r4, [pc, #28]	; (8027dc0 <GetUPSModelStr+0x20>)
 
- /**
 
-   * @brief  Модель UPS
 
-   */
 
- void GetUPSModelStr(char *str, uint8_t *len)
 
- {
 
-  8027da4:	4605      	mov	r5, r0
 
-   *len = strlen(UPS.model);
 
-  8027da6:	4620      	mov	r0, r4
 
- /**
 
-   * @brief  Модель UPS
 
-   */
 
- void GetUPSModelStr(char *str, uint8_t *len)
 
- {
 
-  8027da8:	460e      	mov	r6, r1
 
-   *len = strlen(UPS.model);
 
-  8027daa:	f7fa f881 	bl	8021eb0 <strlen>
 
-  8027dae:	4602      	mov	r2, r0
 
-  8027db0:	7030      	strb	r0, [r6, #0]
 
-   strncpy(str, UPS.model, *len);
 
-  8027db2:	4621      	mov	r1, r4
 
-  8027db4:	4628      	mov	r0, r5
 
-  8027db6:	b2d2      	uxtb	r2, r2
 
- }
 
-  8027db8:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
 
-   * @brief  Модель UPS
 
-   */
 
- void GetUPSModelStr(char *str, uint8_t *len)
 
- {
 
-   *len = strlen(UPS.model);
 
-   strncpy(str, UPS.model, *len);
 
-  8027dbc:	f7fa b930 	b.w	8022020 <strncpy>
 
-  8027dc0:	2000cbbd 	.word	0x2000cbbd
 
- 08027dc4 <GetUPSVersionStr>:
 
- /**
 
-   * @brief  Версия UPS ПО
 
-   */
 
- void GetUPSVersionStr(char *str, uint8_t *len) // +
 
- {
 
-  8027dc4:	b570      	push	{r4, r5, r6, lr}
 
- 	*len = strlen(UPS.vertion);
 
-  8027dc6:	4c07      	ldr	r4, [pc, #28]	; (8027de4 <GetUPSVersionStr+0x20>)
 
- /**
 
-   * @brief  Версия UPS ПО
 
-   */
 
- void GetUPSVersionStr(char *str, uint8_t *len) // +
 
- {
 
-  8027dc8:	4605      	mov	r5, r0
 
- 	*len = strlen(UPS.vertion);
 
-  8027dca:	4620      	mov	r0, r4
 
- /**
 
-   * @brief  Версия UPS ПО
 
-   */
 
- void GetUPSVersionStr(char *str, uint8_t *len) // +
 
- {
 
-  8027dcc:	460e      	mov	r6, r1
 
- 	*len = strlen(UPS.vertion);
 
-  8027dce:	f7fa f86f 	bl	8021eb0 <strlen>
 
-  8027dd2:	4602      	mov	r2, r0
 
-  8027dd4:	7030      	strb	r0, [r6, #0]
 
- 	strncpy(str, UPS.vertion, *len);
 
-  8027dd6:	4621      	mov	r1, r4
 
-  8027dd8:	4628      	mov	r0, r5
 
-  8027dda:	b2d2      	uxtb	r2, r2
 
- }
 
-  8027ddc:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
 
-   * @brief  Версия UPS ПО
 
-   */
 
- void GetUPSVersionStr(char *str, uint8_t *len) // +
 
- {
 
- 	*len = strlen(UPS.vertion);
 
- 	strncpy(str, UPS.vertion, *len);
 
-  8027de0:	f7fa b91e 	b.w	8022020 <strncpy>
 
-  8027de4:	2000cbc8 	.word	0x2000cbc8
 
- 08027de8 <GetUserLogin>:
 
- // ************************************************************************** //
 
- //                          Настройки аутентификации
 
- void GetUserLogin(uint8_t user_id, char *str, uint8_t *len)
 
- {
 
-  8027de8:	b538      	push	{r3, r4, r5, lr}
 
-     sprintf(str, "%s", sSettings.sAuth[user_id].login);
 
-  8027dea:	4b08      	ldr	r3, [pc, #32]	; (8027e0c <GetUserLogin+0x24>)
 
- // ************************************************************************** //
 
- //                          Настройки аутентификации
 
- void GetUserLogin(uint8_t user_id, char *str, uint8_t *len)
 
- {
 
-  8027dec:	4615      	mov	r5, r2
 
-     sprintf(str, "%s", sSettings.sAuth[user_id].login);
 
-  8027dee:	2217      	movs	r2, #23
 
-  8027df0:	fb02 3200 	mla	r2, r2, r0, r3
 
- // ************************************************************************** //
 
- //                          Настройки аутентификации
 
- void GetUserLogin(uint8_t user_id, char *str, uint8_t *len)
 
- {
 
-  8027df4:	460c      	mov	r4, r1
 
-     sprintf(str, "%s", sSettings.sAuth[user_id].login);
 
-  8027df6:	4608      	mov	r0, r1
 
-  8027df8:	3202      	adds	r2, #2
 
-  8027dfa:	4905      	ldr	r1, [pc, #20]	; (8027e10 <GetUserLogin+0x28>)
 
-  8027dfc:	f7ff fd0a 	bl	8027814 <tfp_sprintf>
 
-     *len = strlen(str);
 
-  8027e00:	4620      	mov	r0, r4
 
-  8027e02:	f7fa f855 	bl	8021eb0 <strlen>
 
-  8027e06:	7028      	strb	r0, [r5, #0]
 
-  8027e08:	bd38      	pop	{r3, r4, r5, pc}
 
-  8027e0a:	bf00      	nop
 
-  8027e0c:	2000d2d4 	.word	0x2000d2d4
 
-  8027e10:	080399bb 	.word	0x080399bb
 
- 08027e14 <GetUserPassword>:
 
- }
 
- void GetUserPassword(uint8_t user_id, char *str, uint8_t *len)
 
- {
 
-  8027e14:	b538      	push	{r3, r4, r5, lr}
 
-     sprintf(str, "%s", sSettings.sAuth[user_id].password);
 
-  8027e16:	4b08      	ldr	r3, [pc, #32]	; (8027e38 <GetUserPassword+0x24>)
 
-     sprintf(str, "%s", sSettings.sAuth[user_id].login);
 
-     *len = strlen(str);
 
- }
 
- void GetUserPassword(uint8_t user_id, char *str, uint8_t *len)
 
- {
 
-  8027e18:	4615      	mov	r5, r2
 
-     sprintf(str, "%s", sSettings.sAuth[user_id].password);
 
-  8027e1a:	2217      	movs	r2, #23
 
-  8027e1c:	fb02 3200 	mla	r2, r2, r0, r3
 
-     sprintf(str, "%s", sSettings.sAuth[user_id].login);
 
-     *len = strlen(str);
 
- }
 
- void GetUserPassword(uint8_t user_id, char *str, uint8_t *len)
 
- {
 
-  8027e20:	460c      	mov	r4, r1
 
-     sprintf(str, "%s", sSettings.sAuth[user_id].password);
 
-  8027e22:	4608      	mov	r0, r1
 
-  8027e24:	3205      	adds	r2, #5
 
-  8027e26:	4905      	ldr	r1, [pc, #20]	; (8027e3c <GetUserPassword+0x28>)
 
-  8027e28:	f7ff fcf4 	bl	8027814 <tfp_sprintf>
 
-     *len = strlen(str);
 
-  8027e2c:	4620      	mov	r0, r4
 
-  8027e2e:	f7fa f83f 	bl	8021eb0 <strlen>
 
-  8027e32:	7028      	strb	r0, [r5, #0]
 
-  8027e34:	bd38      	pop	{r3, r4, r5, pc}
 
-  8027e36:	bf00      	nop
 
-  8027e38:	2000d2dc 	.word	0x2000d2dc
 
-  8027e3c:	080399bb 	.word	0x080399bb
 
- 08027e40 <GetUserLevelInt>:
 
-     *len = strlen(str);
 
- }
 
- void GetUserLevelInt(uint8_t user_id, uint8_t *value)
 
- {
 
-     *value = sSettings.sAuth[user_id].level;
 
-  8027e40:	4b03      	ldr	r3, [pc, #12]	; (8027e50 <GetUserLevelInt+0x10>)
 
-  8027e42:	2217      	movs	r2, #23
 
-  8027e44:	fb02 3000 	mla	r0, r2, r0, r3
 
-  8027e48:	f890 3311 	ldrb.w	r3, [r0, #785]	; 0x311
 
-  8027e4c:	700b      	strb	r3, [r1, #0]
 
-  8027e4e:	4770      	bx	lr
 
-  8027e50:	2000cfc4 	.word	0x2000cfc4
 
- 08027e54 <GetIpStr>:
 
-   * @brief  Текущий IP адрес
 
-   */
 
- void GetIpStr(char *str, uint8_t *len)
 
- {
 
-   /* Если сейчас временные настройки */
 
-   if (sSettings.sFlags.netsettingsChanged)
 
-  8027e54:	4a08      	ldr	r2, [pc, #32]	; (8027e78 <GetIpStr+0x24>)
 
- /**
 
-   * @brief  Текущий IP адрес
 
-   */
 
- void GetIpStr(char *str, uint8_t *len)
 
- {
 
-  8027e56:	b538      	push	{r3, r4, r5, lr}
 
-   /* Если сейчас временные настройки */
 
-   if (sSettings.sFlags.netsettingsChanged)
 
-  8027e58:	f892 3120 	ldrb.w	r3, [r2, #288]	; 0x120
 
- /**
 
-   * @brief  Текущий IP адрес
 
-   */
 
- void GetIpStr(char *str, uint8_t *len)
 
- {
 
-  8027e5c:	460c      	mov	r4, r1
 
-  8027e5e:	4605      	mov	r5, r0
 
-   /* Если сейчас временные настройки */
 
-   if (sSettings.sFlags.netsettingsChanged)
 
- 	sprintf(str, "%s", sSettings.sWebTempParams.ip);
 
-  8027e60:	4906      	ldr	r1, [pc, #24]	; (8027e7c <GetIpStr+0x28>)
 
-   * @brief  Текущий IP адрес
 
-   */
 
- void GetIpStr(char *str, uint8_t *len)
 
- {
 
-   /* Если сейчас временные настройки */
 
-   if (sSettings.sFlags.netsettingsChanged)
 
-  8027e62:	b10b      	cbz	r3, 8027e68 <GetIpStr+0x14>
 
- 	sprintf(str, "%s", sSettings.sWebTempParams.ip);
 
-  8027e64:	3233      	adds	r2, #51	; 0x33
 
-  8027e66:	e000      	b.n	8027e6a <GetIpStr+0x16>
 
-   else	
 
-     sprintf(str, "%s", sSettings.sWebParams.ip);
 
-  8027e68:	3202      	adds	r2, #2
 
-  8027e6a:	f7ff fcd3 	bl	8027814 <tfp_sprintf>
 
-   
 
-   *len = strlen(str);
 
-  8027e6e:	4628      	mov	r0, r5
 
-  8027e70:	f7fa f81e 	bl	8021eb0 <strlen>
 
-  8027e74:	7020      	strb	r0, [r4, #0]
 
-  8027e76:	bd38      	pop	{r3, r4, r5, pc}
 
-  8027e78:	2000cfc4 	.word	0x2000cfc4
 
-  8027e7c:	080399bb 	.word	0x080399bb
 
- 08027e80 <GetGatewayStr>:
 
-   * @brief  Текущий шлюз
 
-   */
 
- void GetGatewayStr(char *str, uint8_t *len)
 
- {
 
-   /* Если сейчас временные настройки */
 
-   if (sSettings.sFlags.netsettingsChanged)
 
-  8027e80:	4a08      	ldr	r2, [pc, #32]	; (8027ea4 <GetGatewayStr+0x24>)
 
- /**
 
-   * @brief  Текущий шлюз
 
-   */
 
- void GetGatewayStr(char *str, uint8_t *len)
 
- {
 
-  8027e82:	b538      	push	{r3, r4, r5, lr}
 
-   /* Если сейчас временные настройки */
 
-   if (sSettings.sFlags.netsettingsChanged)
 
-  8027e84:	f892 3120 	ldrb.w	r3, [r2, #288]	; 0x120
 
- /**
 
-   * @brief  Текущий шлюз
 
-   */
 
- void GetGatewayStr(char *str, uint8_t *len)
 
- {
 
-  8027e88:	460c      	mov	r4, r1
 
-  8027e8a:	4605      	mov	r5, r0
 
-   /* Если сейчас временные настройки */
 
-   if (sSettings.sFlags.netsettingsChanged)
 
- 	sprintf(str, "%s", sSettings.sWebTempParams.gate);
 
-  8027e8c:	4906      	ldr	r1, [pc, #24]	; (8027ea8 <GetGatewayStr+0x28>)
 
-   * @brief  Текущий шлюз
 
-   */
 
- void GetGatewayStr(char *str, uint8_t *len)
 
- {
 
-   /* Если сейчас временные настройки */
 
-   if (sSettings.sFlags.netsettingsChanged)
 
-  8027e8e:	b10b      	cbz	r3, 8027e94 <GetGatewayStr+0x14>
 
- 	sprintf(str, "%s", sSettings.sWebTempParams.gate);
 
-  8027e90:	3243      	adds	r2, #67	; 0x43
 
-  8027e92:	e000      	b.n	8027e96 <GetGatewayStr+0x16>
 
-   else
 
- 	sprintf(str, "%s", sSettings.sWebParams.gate);
 
-  8027e94:	3212      	adds	r2, #18
 
-  8027e96:	f7ff fcbd 	bl	8027814 <tfp_sprintf>
 
-   
 
-   *len = strlen(str);
 
-  8027e9a:	4628      	mov	r0, r5
 
-  8027e9c:	f7fa f808 	bl	8021eb0 <strlen>
 
-  8027ea0:	7020      	strb	r0, [r4, #0]
 
-  8027ea2:	bd38      	pop	{r3, r4, r5, pc}
 
-  8027ea4:	2000cfc4 	.word	0x2000cfc4
 
-  8027ea8:	080399bb 	.word	0x080399bb
 
- 08027eac <GetMaskStr>:
 
-   * @brief  Текущая маска подсети
 
-   */
 
- void GetMaskStr(char *str, uint8_t *len)
 
- {
 
-   /* Если сейчас временные настройки */
 
-   if (sSettings.sFlags.netsettingsChanged)
 
-  8027eac:	4a08      	ldr	r2, [pc, #32]	; (8027ed0 <GetMaskStr+0x24>)
 
- /**
 
-   * @brief  Текущая маска подсети
 
-   */
 
- void GetMaskStr(char *str, uint8_t *len)
 
- {
 
-  8027eae:	b538      	push	{r3, r4, r5, lr}
 
-   /* Если сейчас временные настройки */
 
-   if (sSettings.sFlags.netsettingsChanged)
 
-  8027eb0:	f892 3120 	ldrb.w	r3, [r2, #288]	; 0x120
 
- /**
 
-   * @brief  Текущая маска подсети
 
-   */
 
- void GetMaskStr(char *str, uint8_t *len)
 
- {
 
-  8027eb4:	460c      	mov	r4, r1
 
-  8027eb6:	4605      	mov	r5, r0
 
-   /* Если сейчас временные настройки */
 
-   if (sSettings.sFlags.netsettingsChanged)
 
-     sprintf(str, "%s", sSettings.sWebTempParams.mask);
 
-  8027eb8:	4906      	ldr	r1, [pc, #24]	; (8027ed4 <GetMaskStr+0x28>)
 
-   * @brief  Текущая маска подсети
 
-   */
 
- void GetMaskStr(char *str, uint8_t *len)
 
- {
 
-   /* Если сейчас временные настройки */
 
-   if (sSettings.sFlags.netsettingsChanged)
 
-  8027eba:	b10b      	cbz	r3, 8027ec0 <GetMaskStr+0x14>
 
-     sprintf(str, "%s", sSettings.sWebTempParams.mask);
 
-  8027ebc:	3253      	adds	r2, #83	; 0x53
 
-  8027ebe:	e000      	b.n	8027ec2 <GetMaskStr+0x16>
 
-   else	
 
-     sprintf(str, "%s", sSettings.sWebParams.mask);
 
-  8027ec0:	3222      	adds	r2, #34	; 0x22
 
-  8027ec2:	f7ff fca7 	bl	8027814 <tfp_sprintf>
 
-   
 
-   *len = strlen(str);
 
-  8027ec6:	4628      	mov	r0, r5
 
-  8027ec8:	f7f9 fff2 	bl	8021eb0 <strlen>
 
-  8027ecc:	7020      	strb	r0, [r4, #0]
 
-  8027ece:	bd38      	pop	{r3, r4, r5, pc}
 
-  8027ed0:	2000cfc4 	.word	0x2000cfc4
 
-  8027ed4:	080399bb 	.word	0x080399bb
 
- 08027ed8 <GetDhcpStateStr>:
 
-   * @brief  Настройка DHCP
 
-   */
 
- void GetDhcpStateStr(char *str, uint8_t *len)
 
- {
 
-   /* Если сейчас временные настройки */
 
-   if (sSettings.sFlags.netsettingsChanged)
 
-  8027ed8:	4b08      	ldr	r3, [pc, #32]	; (8027efc <GetDhcpStateStr+0x24>)
 
-  8027eda:	f893 2120 	ldrb.w	r2, [r3, #288]	; 0x120
 
-  8027ede:	b112      	cbz	r2, 8027ee6 <GetDhcpStateStr+0xe>
 
-   {
 
-     if (sSettings.sWebTempParams.dhcpEnable)
 
-  8027ee0:	f893 3063 	ldrb.w	r3, [r3, #99]	; 0x63
 
-  8027ee4:	e001      	b.n	8027eea <GetDhcpStateStr+0x12>
 
-     else
 
-       *str = '0';
 
-   }
 
-   else
 
-   {
 
-     if (sSettings.sWebParams.dhcpEnable)
 
-  8027ee6:	f893 3032 	ldrb.w	r3, [r3, #50]	; 0x32
 
-  8027eea:	b10b      	cbz	r3, 8027ef0 <GetDhcpStateStr+0x18>
 
-       *str = '1';
 
-  8027eec:	2331      	movs	r3, #49	; 0x31
 
-  8027eee:	e000      	b.n	8027ef2 <GetDhcpStateStr+0x1a>
 
-     else
 
-       *str = '0';
 
-  8027ef0:	2330      	movs	r3, #48	; 0x30
 
-  8027ef2:	7003      	strb	r3, [r0, #0]
 
-   }
 
-   
 
-   *len = 1;
 
-  8027ef4:	2301      	movs	r3, #1
 
-  8027ef6:	700b      	strb	r3, [r1, #0]
 
-  8027ef8:	4770      	bx	lr
 
-  8027efa:	bf00      	nop
 
-  8027efc:	2000cfc4 	.word	0x2000cfc4
 
- 08027f00 <GetDhcpStateUDP>:
 
- /**
 
-   * @brief  Настройка DHCP
 
-   */
 
- void GetDhcpStateUDP(char *str, uint8_t *len)
 
- {
 
-  8027f00:	b538      	push	{r3, r4, r5, lr}
 
- 	  /* Если сейчас временные настройки или был загружен файл конфигурации */
 
- 	  if (sSettings.sFlags.netsettingsChanged)
 
-  8027f02:	4b0c      	ldr	r3, [pc, #48]	; (8027f34 <GetDhcpStateUDP+0x34>)
 
-  8027f04:	f893 2120 	ldrb.w	r2, [r3, #288]	; 0x120
 
- /**
 
-   * @brief  Настройка DHCP
 
-   */
 
- void GetDhcpStateUDP(char *str, uint8_t *len)
 
- {
 
-  8027f08:	4604      	mov	r4, r0
 
-  8027f0a:	460d      	mov	r5, r1
 
- 	  /* Если сейчас временные настройки или был загружен файл конфигурации */
 
- 	  if (sSettings.sFlags.netsettingsChanged)
 
-  8027f0c:	b152      	cbz	r2, 8027f24 <GetDhcpStateUDP+0x24>
 
- 	  {
 
- 	    if (sSettings.sWebTempParams.dhcpEnable)
 
-  8027f0e:	f893 3063 	ldrb.w	r3, [r3, #99]	; 0x63
 
- 	      sprintf(str, "%s", "True");
 
-  8027f12:	4620      	mov	r0, r4
 
-  8027f14:	4908      	ldr	r1, [pc, #32]	; (8027f38 <GetDhcpStateUDP+0x38>)
 
- void GetDhcpStateUDP(char *str, uint8_t *len)
 
- {
 
- 	  /* Если сейчас временные настройки или был загружен файл конфигурации */
 
- 	  if (sSettings.sFlags.netsettingsChanged)
 
- 	  {
 
- 	    if (sSettings.sWebTempParams.dhcpEnable)
 
-  8027f16:	b10b      	cbz	r3, 8027f1c <GetDhcpStateUDP+0x1c>
 
- 	      sprintf(str, "%s", "True");
 
-  8027f18:	4a08      	ldr	r2, [pc, #32]	; (8027f3c <GetDhcpStateUDP+0x3c>)
 
-  8027f1a:	e000      	b.n	8027f1e <GetDhcpStateUDP+0x1e>
 
- 	    else
 
- 	      sprintf(str, "%s", "False");
 
-  8027f1c:	4a08      	ldr	r2, [pc, #32]	; (8027f40 <GetDhcpStateUDP+0x40>)
 
-  8027f1e:	f7ff fc79 	bl	8027814 <tfp_sprintf>
 
-  8027f22:	e002      	b.n	8027f2a <GetDhcpStateUDP+0x2a>
 
- 	  }
 
- 	  else
 
- 	  {
 
- 	    if (sSettings.sWebParams.dhcpEnable)
 
-  8027f24:	f893 3032 	ldrb.w	r3, [r3, #50]	; 0x32
 
-  8027f28:	e7f3      	b.n	8027f12 <GetDhcpStateUDP+0x12>
 
- 	      sprintf(str, "%s", "True");
 
- 	    else
 
- 	      sprintf(str, "%s", "False");
 
- 	  }
 
- 	  *len = strlen(str);
 
-  8027f2a:	4620      	mov	r0, r4
 
-  8027f2c:	f7f9 ffc0 	bl	8021eb0 <strlen>
 
-  8027f30:	7028      	strb	r0, [r5, #0]
 
-  8027f32:	bd38      	pop	{r3, r4, r5, pc}
 
-  8027f34:	2000cfc4 	.word	0x2000cfc4
 
-  8027f38:	080399bb 	.word	0x080399bb
 
-  8027f3c:	08040e43 	.word	0x08040e43
 
-  8027f40:	080399dd 	.word	0x080399dd
 
- 08027f44 <GetReadCommunity>:
 
- /**
 
-   * @brief  Текущее community для чтения
 
-   */
 
- void GetReadCommunity(char *str, uint8_t *len)
 
- {
 
-  8027f44:	b538      	push	{r3, r4, r5, lr}
 
-   sprintf(str, "%s", sSettings.sSnmp.readCommunity);
 
-  8027f46:	4a05      	ldr	r2, [pc, #20]	; (8027f5c <GetReadCommunity+0x18>)
 
- /**
 
-   * @brief  Текущее community для чтения
 
-   */
 
- void GetReadCommunity(char *str, uint8_t *len)
 
- {
 
-  8027f48:	4605      	mov	r5, r0
 
-  8027f4a:	460c      	mov	r4, r1
 
-   sprintf(str, "%s", sSettings.sSnmp.readCommunity);
 
-  8027f4c:	4904      	ldr	r1, [pc, #16]	; (8027f60 <GetReadCommunity+0x1c>)
 
-  8027f4e:	f7ff fc61 	bl	8027814 <tfp_sprintf>
 
-   *len = strlen(str);
 
-  8027f52:	4628      	mov	r0, r5
 
-  8027f54:	f7f9 ffac 	bl	8021eb0 <strlen>
 
-  8027f58:	7020      	strb	r0, [r4, #0]
 
-  8027f5a:	bd38      	pop	{r3, r4, r5, pc}
 
-  8027f5c:	2000d195 	.word	0x2000d195
 
-  8027f60:	080399bb 	.word	0x080399bb
 
- 08027f64 <GetWriteCommunity>:
 
- /**
 
-   * @brief  Текущее community для записи
 
-   */
 
- void GetWriteCommunity(char *str, uint8_t *len)
 
- {
 
-  8027f64:	b538      	push	{r3, r4, r5, lr}
 
-   sprintf(str, "%s", sSettings.sSnmp.writeCommunity);
 
-  8027f66:	4a05      	ldr	r2, [pc, #20]	; (8027f7c <GetWriteCommunity+0x18>)
 
- /**
 
-   * @brief  Текущее community для записи
 
-   */
 
- void GetWriteCommunity(char *str, uint8_t *len)
 
- {
 
-  8027f68:	4605      	mov	r5, r0
 
-  8027f6a:	460c      	mov	r4, r1
 
-   sprintf(str, "%s", sSettings.sSnmp.writeCommunity);
 
-  8027f6c:	4904      	ldr	r1, [pc, #16]	; (8027f80 <GetWriteCommunity+0x1c>)
 
-  8027f6e:	f7ff fc51 	bl	8027814 <tfp_sprintf>
 
-   *len = strlen(str);
 
-  8027f72:	4628      	mov	r0, r5
 
-  8027f74:	f7f9 ff9c 	bl	8021eb0 <strlen>
 
-  8027f78:	7020      	strb	r0, [r4, #0]
 
-  8027f7a:	bd38      	pop	{r3, r4, r5, pc}
 
-  8027f7c:	2000d1a9 	.word	0x2000d1a9
 
-  8027f80:	080399bb 	.word	0x080399bb
 
- 08027f84 <GetManagerIp>:
 
- /**
 
-   * @brief  IP SNMP менеджера
 
-   */
 
- void GetManagerIp(char *str, uint8_t *len)
 
- {
 
-  8027f84:	b538      	push	{r3, r4, r5, lr}
 
-   sprintf(str, "%s", sSettings.sSnmp.managerIP);
 
-  8027f86:	4a05      	ldr	r2, [pc, #20]	; (8027f9c <GetManagerIp+0x18>)
 
- /**
 
-   * @brief  IP SNMP менеджера
 
-   */
 
- void GetManagerIp(char *str, uint8_t *len)
 
- {
 
-  8027f88:	4605      	mov	r5, r0
 
-  8027f8a:	460c      	mov	r4, r1
 
-   sprintf(str, "%s", sSettings.sSnmp.managerIP);
 
-  8027f8c:	4904      	ldr	r1, [pc, #16]	; (8027fa0 <GetManagerIp+0x1c>)
 
-  8027f8e:	f7ff fc41 	bl	8027814 <tfp_sprintf>
 
-   *len = strlen(str);
 
-  8027f92:	4628      	mov	r0, r5
 
-  8027f94:	f7f9 ff8c 	bl	8021eb0 <strlen>
 
-  8027f98:	7020      	strb	r0, [r4, #0]
 
-  8027f9a:	bd38      	pop	{r3, r4, r5, pc}
 
-  8027f9c:	2000d271 	.word	0x2000d271
 
-  8027fa0:	080399bb 	.word	0x080399bb
 
- 08027fa4 <GetManagerIp2>:
 
- }
 
- void GetManagerIp2(char *str, uint8_t *len)
 
- {
 
-  8027fa4:	b538      	push	{r3, r4, r5, lr}
 
-   sprintf(str, "%s", sSettings.sSnmp.managerIP2);
 
-  8027fa6:	4a05      	ldr	r2, [pc, #20]	; (8027fbc <GetManagerIp2+0x18>)
 
-   sprintf(str, "%s", sSettings.sSnmp.managerIP);
 
-   *len = strlen(str);
 
- }
 
- void GetManagerIp2(char *str, uint8_t *len)
 
- {
 
-  8027fa8:	4605      	mov	r5, r0
 
-  8027faa:	460c      	mov	r4, r1
 
-   sprintf(str, "%s", sSettings.sSnmp.managerIP2);
 
-  8027fac:	4904      	ldr	r1, [pc, #16]	; (8027fc0 <GetManagerIp2+0x1c>)
 
-  8027fae:	f7ff fc31 	bl	8027814 <tfp_sprintf>
 
-   *len = strlen(str);
 
-  8027fb2:	4628      	mov	r0, r5
 
-  8027fb4:	f7f9 ff7c 	bl	8021eb0 <strlen>
 
-  8027fb8:	7020      	strb	r0, [r4, #0]
 
-  8027fba:	bd38      	pop	{r3, r4, r5, pc}
 
-  8027fbc:	2000d285 	.word	0x2000d285
 
-  8027fc0:	080399bb 	.word	0x080399bb
 
- 08027fc4 <GetManagerIp3>:
 
- }
 
- void GetManagerIp3(char *str, uint8_t *len)
 
- {
 
-  8027fc4:	b538      	push	{r3, r4, r5, lr}
 
-   sprintf(str, "%s", sSettings.sSnmp.managerIP3);
 
-  8027fc6:	4a05      	ldr	r2, [pc, #20]	; (8027fdc <GetManagerIp3+0x18>)
 
-   sprintf(str, "%s", sSettings.sSnmp.managerIP2);
 
-   *len = strlen(str);
 
- }
 
- void GetManagerIp3(char *str, uint8_t *len)
 
- {
 
-  8027fc8:	4605      	mov	r5, r0
 
-  8027fca:	460c      	mov	r4, r1
 
-   sprintf(str, "%s", sSettings.sSnmp.managerIP3);
 
-  8027fcc:	4904      	ldr	r1, [pc, #16]	; (8027fe0 <GetManagerIp3+0x1c>)
 
-  8027fce:	f7ff fc21 	bl	8027814 <tfp_sprintf>
 
-   *len = strlen(str);
 
-  8027fd2:	4628      	mov	r0, r5
 
-  8027fd4:	f7f9 ff6c 	bl	8021eb0 <strlen>
 
-  8027fd8:	7020      	strb	r0, [r4, #0]
 
-  8027fda:	bd38      	pop	{r3, r4, r5, pc}
 
-  8027fdc:	2000d299 	.word	0x2000d299
 
-  8027fe0:	080399bb 	.word	0x080399bb
 
- 08027fe4 <GetManagerIp4>:
 
- }
 
- void GetManagerIp4(char *str, uint8_t *len)
 
- {
 
-  8027fe4:	b538      	push	{r3, r4, r5, lr}
 
-   sprintf(str, "%s", sSettings.sSnmp.managerIP4);
 
-  8027fe6:	4a05      	ldr	r2, [pc, #20]	; (8027ffc <GetManagerIp4+0x18>)
 
-   sprintf(str, "%s", sSettings.sSnmp.managerIP3);
 
-   *len = strlen(str);
 
- }
 
- void GetManagerIp4(char *str, uint8_t *len)
 
- {
 
-  8027fe8:	4605      	mov	r5, r0
 
-  8027fea:	460c      	mov	r4, r1
 
-   sprintf(str, "%s", sSettings.sSnmp.managerIP4);
 
-  8027fec:	4904      	ldr	r1, [pc, #16]	; (8028000 <GetManagerIp4+0x1c>)
 
-  8027fee:	f7ff fc11 	bl	8027814 <tfp_sprintf>
 
-   *len = strlen(str);
 
-  8027ff2:	4628      	mov	r0, r5
 
-  8027ff4:	f7f9 ff5c 	bl	8021eb0 <strlen>
 
-  8027ff8:	7020      	strb	r0, [r4, #0]
 
-  8027ffa:	bd38      	pop	{r3, r4, r5, pc}
 
-  8027ffc:	2000d2ad 	.word	0x2000d2ad
 
-  8028000:	080399bb 	.word	0x080399bb
 
- 08028004 <GetManagerIp5>:
 
- }
 
- void GetManagerIp5(char *str, uint8_t *len)
 
- {
 
-  8028004:	b538      	push	{r3, r4, r5, lr}
 
-   sprintf(str, "%s", sSettings.sSnmp.managerIP5);
 
-  8028006:	4a05      	ldr	r2, [pc, #20]	; (802801c <GetManagerIp5+0x18>)
 
-   sprintf(str, "%s", sSettings.sSnmp.managerIP4);
 
-   *len = strlen(str);
 
- }
 
- void GetManagerIp5(char *str, uint8_t *len)
 
- {
 
-  8028008:	4605      	mov	r5, r0
 
-  802800a:	460c      	mov	r4, r1
 
-   sprintf(str, "%s", sSettings.sSnmp.managerIP5);
 
-  802800c:	4904      	ldr	r1, [pc, #16]	; (8028020 <GetManagerIp5+0x1c>)
 
-  802800e:	f7ff fc01 	bl	8027814 <tfp_sprintf>
 
-   *len = strlen(str);
 
-  8028012:	4628      	mov	r0, r5
 
-  8028014:	f7f9 ff4c 	bl	8021eb0 <strlen>
 
-  8028018:	7020      	strb	r0, [r4, #0]
 
-  802801a:	bd38      	pop	{r3, r4, r5, pc}
 
-  802801c:	2000d2c1 	.word	0x2000d2c1
 
-  8028020:	080399bb 	.word	0x080399bb
 
- 08028024 <GetRDSIpStr>:
 
- /**
 
-   * @brief  Текущий IP адрес
 
-   */
 
- void GetRDSIpStr(char *str, uint8_t *len)
 
- {
 
-  8028024:	b538      	push	{r3, r4, r5, lr}
 
-    sprintf(str, "%s", sSettings.sRADIUS.ServerIP);
 
-  8028026:	4a05      	ldr	r2, [pc, #20]	; (802803c <GetRDSIpStr+0x18>)
 
- /**
 
-   * @brief  Текущий IP адрес
 
-   */
 
- void GetRDSIpStr(char *str, uint8_t *len)
 
- {
 
-  8028028:	4605      	mov	r5, r0
 
-  802802a:	460c      	mov	r4, r1
 
-    sprintf(str, "%s", sSettings.sRADIUS.ServerIP);
 
-  802802c:	4904      	ldr	r1, [pc, #16]	; (8028040 <GetRDSIpStr+0x1c>)
 
-  802802e:	f7ff fbf1 	bl	8027814 <tfp_sprintf>
 
-   *len = strlen(str);
 
-  8028032:	4628      	mov	r0, r5
 
-  8028034:	f7f9 ff3c 	bl	8021eb0 <strlen>
 
-  8028038:	7020      	strb	r0, [r4, #0]
 
-  802803a:	bd38      	pop	{r3, r4, r5, pc}
 
-  802803c:	2000d33d 	.word	0x2000d33d
 
-  8028040:	080399bb 	.word	0x080399bb
 
- 08028044 <GetRDSPortStr>:
 
- /**
 
-   * @brief Текущий Порт
 
-   */
 
- void GetRDSPortStr(char *str, uint8_t *len)
 
- {
 
-  8028044:	b538      	push	{r3, r4, r5, lr}
 
-   sprintf(str, "%d", sSettings.sRADIUS.port);
 
-  8028046:	4b06      	ldr	r3, [pc, #24]	; (8028060 <GetRDSPortStr+0x1c>)
 
- /**
 
-   * @brief Текущий Порт
 
-   */
 
- void GetRDSPortStr(char *str, uint8_t *len)
 
- {
 
-  8028048:	4605      	mov	r5, r0
 
-  802804a:	460c      	mov	r4, r1
 
-   sprintf(str, "%d", sSettings.sRADIUS.port);
 
-  802804c:	f8d3 239c 	ldr.w	r2, [r3, #924]	; 0x39c
 
-  8028050:	4904      	ldr	r1, [pc, #16]	; (8028064 <GetRDSPortStr+0x20>)
 
-  8028052:	f7ff fbdf 	bl	8027814 <tfp_sprintf>
 
-   *len = strlen(str);
 
-  8028056:	4628      	mov	r0, r5
 
-  8028058:	f7f9 ff2a 	bl	8021eb0 <strlen>
 
-  802805c:	7020      	strb	r0, [r4, #0]
 
-  802805e:	bd38      	pop	{r3, r4, r5, pc}
 
-  8028060:	2000cfc4 	.word	0x2000cfc4
 
-  8028064:	080399a9 	.word	0x080399a9
 
- 08028068 <GetRDSKeyAccesstStr>:
 
- /**
 
-   * @brief  Текущий Код access
 
-   */
 
- void GetRDSKeyAccesstStr(char *str, uint8_t *len)
 
- {
 
-  8028068:	b538      	push	{r3, r4, r5, lr}
 
-   sprintf(str, "%d", sSettings.sRADIUS.key_access);
 
-  802806a:	4b06      	ldr	r3, [pc, #24]	; (8028084 <GetRDSKeyAccesstStr+0x1c>)
 
- /**
 
-   * @brief  Текущий Код access
 
-   */
 
- void GetRDSKeyAccesstStr(char *str, uint8_t *len)
 
- {
 
-  802806c:	4605      	mov	r5, r0
 
-  802806e:	460c      	mov	r4, r1
 
-   sprintf(str, "%d", sSettings.sRADIUS.key_access);
 
-  8028070:	f8d3 23a0 	ldr.w	r2, [r3, #928]	; 0x3a0
 
-  8028074:	4904      	ldr	r1, [pc, #16]	; (8028088 <GetRDSKeyAccesstStr+0x20>)
 
-  8028076:	f7ff fbcd 	bl	8027814 <tfp_sprintf>
 
-   *len = strlen(str);
 
-  802807a:	4628      	mov	r0, r5
 
-  802807c:	f7f9 ff18 	bl	8021eb0 <strlen>
 
-  8028080:	7020      	strb	r0, [r4, #0]
 
-  8028082:	bd38      	pop	{r3, r4, r5, pc}
 
-  8028084:	2000cfc4 	.word	0x2000cfc4
 
-  8028088:	080399a9 	.word	0x080399a9
 
- 0802808c <GetRDSPasswordkStr>:
 
- /**
 
-   * @brief  Текущая пароль RADIUS
 
-   */
 
- void GetRDSPasswordkStr(char *str, uint8_t *len)
 
- {
 
-  802808c:	b538      	push	{r3, r4, r5, lr}
 
-   sprintf(str, "%s", sSettings.sRADIUS.rds_password);
 
-  802808e:	4a05      	ldr	r2, [pc, #20]	; (80280a4 <GetRDSPasswordkStr+0x18>)
 
- /**
 
-   * @brief  Текущая пароль RADIUS
 
-   */
 
- void GetRDSPasswordkStr(char *str, uint8_t *len)
 
- {
 
-  8028090:	4605      	mov	r5, r0
 
-  8028092:	460c      	mov	r4, r1
 
-   sprintf(str, "%s", sSettings.sRADIUS.rds_password);
 
-  8028094:	4904      	ldr	r1, [pc, #16]	; (80280a8 <GetRDSPasswordkStr+0x1c>)
 
-  8028096:	f7ff fbbd 	bl	8027814 <tfp_sprintf>
 
-   *len = strlen(str);
 
-  802809a:	4628      	mov	r0, r5
 
-  802809c:	f7f9 ff08 	bl	8021eb0 <strlen>
 
-  80280a0:	7020      	strb	r0, [r4, #0]
 
-  80280a2:	bd38      	pop	{r3, r4, r5, pc}
 
-  80280a4:	2000d34d 	.word	0x2000d34d
 
-  80280a8:	080399bb 	.word	0x080399bb
 
- 080280ac <GetRDSEnableStateStr>:
 
- /**
 
-   * @brief  Настройка вкл/ выкл RADIUS сервера
 
-   */
 
- void GetRDSEnableStateStr(char *str, uint8_t *len)
 
- {
 
-     if (sSettings.sRADIUS.RDSEnable)
 
-  80280ac:	4b05      	ldr	r3, [pc, #20]	; (80280c4 <GetRDSEnableStateStr+0x18>)
 
-  80280ae:	f893 339a 	ldrb.w	r3, [r3, #922]	; 0x39a
 
-  80280b2:	b10b      	cbz	r3, 80280b8 <GetRDSEnableStateStr+0xc>
 
-       *str = '1';
 
-  80280b4:	2331      	movs	r3, #49	; 0x31
 
-  80280b6:	e000      	b.n	80280ba <GetRDSEnableStateStr+0xe>
 
-     else
 
-       *str = '0';
 
-  80280b8:	2330      	movs	r3, #48	; 0x30
 
-  80280ba:	7003      	strb	r3, [r0, #0]
 
-   *len = 1;
 
-  80280bc:	2301      	movs	r3, #1
 
-  80280be:	700b      	strb	r3, [r1, #0]
 
-  80280c0:	4770      	bx	lr
 
-  80280c2:	bf00      	nop
 
-  80280c4:	2000cfc4 	.word	0x2000cfc4
 
- 080280c8 <GetAuthEnableStateStr>:
 
- /**
 
-   * @brief  Настройка вкл/ выкл авторизации
 
-   */
 
- void GetAuthEnableStateStr(char *str, uint8_t *len)
 
- {
 
-     if (sSettings.sRADIUS.Auth_enable)
 
-  80280c8:	4b05      	ldr	r3, [pc, #20]	; (80280e0 <GetAuthEnableStateStr+0x18>)
 
-  80280ca:	f893 3378 	ldrb.w	r3, [r3, #888]	; 0x378
 
-  80280ce:	b10b      	cbz	r3, 80280d4 <GetAuthEnableStateStr+0xc>
 
-       *str = '1';
 
-  80280d0:	2331      	movs	r3, #49	; 0x31
 
-  80280d2:	e000      	b.n	80280d6 <GetAuthEnableStateStr+0xe>
 
-     else
 
-       *str = '0';
 
-  80280d4:	2330      	movs	r3, #48	; 0x30
 
-  80280d6:	7003      	strb	r3, [r0, #0]
 
-   *len = 1;
 
-  80280d8:	2301      	movs	r3, #1
 
-  80280da:	700b      	strb	r3, [r1, #0]
 
-  80280dc:	4770      	bx	lr
 
-  80280de:	bf00      	nop
 
-  80280e0:	2000cfc4 	.word	0x2000cfc4
 
- 080280e4 <GetWebReinitFlag>:
 
- /**
 
-   * @brief  Вернуть признак изменения сетевых параметров
 
-   */
 
- void GetWebReinitFlag(char *str, uint8_t *len)
 
- {
 
-  80280e4:	b538      	push	{r3, r4, r5, lr}
 
-   if (sSettings.sFlags.netsettingsChanged)
 
-  80280e6:	4b08      	ldr	r3, [pc, #32]	; (8028108 <GetWebReinitFlag+0x24>)
 
-  80280e8:	f893 3120 	ldrb.w	r3, [r3, #288]	; 0x120
 
- /**
 
-   * @brief  Вернуть признак изменения сетевых параметров
 
-   */
 
- void GetWebReinitFlag(char *str, uint8_t *len)
 
- {
 
-  80280ec:	460c      	mov	r4, r1
 
-  80280ee:	4605      	mov	r5, r0
 
-   if (sSettings.sFlags.netsettingsChanged)
 
-   {
 
-     sprintf(str, "%s", "true");
 
-  80280f0:	4906      	ldr	r1, [pc, #24]	; (802810c <GetWebReinitFlag+0x28>)
 
- /**
 
-   * @brief  Вернуть признак изменения сетевых параметров
 
-   */
 
- void GetWebReinitFlag(char *str, uint8_t *len)
 
- {
 
-   if (sSettings.sFlags.netsettingsChanged)
 
-  80280f2:	b10b      	cbz	r3, 80280f8 <GetWebReinitFlag+0x14>
 
-   {
 
-     sprintf(str, "%s", "true");
 
-  80280f4:	4a06      	ldr	r2, [pc, #24]	; (8028110 <GetWebReinitFlag+0x2c>)
 
-  80280f6:	e000      	b.n	80280fa <GetWebReinitFlag+0x16>
 
-     *len = strlen(str);
 
-   }
 
-   else
 
-   {
 
-     sprintf(str, "%s", "false");
 
-  80280f8:	4a06      	ldr	r2, [pc, #24]	; (8028114 <GetWebReinitFlag+0x30>)
 
-  80280fa:	f7ff fb8b 	bl	8027814 <tfp_sprintf>
 
-     *len = strlen(str);
 
-  80280fe:	4628      	mov	r0, r5
 
-  8028100:	f7f9 fed6 	bl	8021eb0 <strlen>
 
-  8028104:	7020      	strb	r0, [r4, #0]
 
-  8028106:	bd38      	pop	{r3, r4, r5, pc}
 
-  8028108:	2000cfc4 	.word	0x2000cfc4
 
-  802810c:	080399bb 	.word	0x080399bb
 
-  8028110:	080399e3 	.word	0x080399e3
 
-  8028114:	080399e8 	.word	0x080399e8
 
- 08028118 <SetLoadMode>:
 
-   * @brief  Установить признак обновления ПО. 
 
-   */
 
- void SetLoadMode(void)
 
- {
 
-   /* Set loadMode = 1 */
 
-   RTC_WriteBackupRegister(RTC_BKP_DR1, 1);
 
-  8028118:	2001      	movs	r0, #1
 
- /**
 
-   * @brief  Установить признак обновления ПО. 
 
-   */
 
- void SetLoadMode(void)
 
- {
 
-  802811a:	b508      	push	{r3, lr}
 
-   /* Set loadMode = 1 */
 
-   RTC_WriteBackupRegister(RTC_BKP_DR1, 1);
 
-  802811c:	4601      	mov	r1, r0
 
-  802811e:	f7fd fce7 	bl	8025af0 <RTC_WriteBackupRegister>
 
-   /* Set bootTry = 0 */
 
-   RTC_WriteBackupRegister(RTC_BKP_DR2, 0);
 
-  8028122:	2002      	movs	r0, #2
 
-  8028124:	2100      	movs	r1, #0
 
- }
 
-  8028126:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
 
- void SetLoadMode(void)
 
- {
 
-   /* Set loadMode = 1 */
 
-   RTC_WriteBackupRegister(RTC_BKP_DR1, 1);
 
-   /* Set bootTry = 0 */
 
-   RTC_WriteBackupRegister(RTC_BKP_DR2, 0);
 
-  802812a:	f7fd bce1 	b.w	8025af0 <RTC_WriteBackupRegister>
 
-  802812e:	0000      	movs	r0, r0
 
- 08028130 <SetWebReinitFlag>:
 
- /**
 
-   * @brief  Установить признак изменения сетевых параметров
 
-   */
 
- void SetWebReinitFlag(bool value)
 
- {
 
-   sSettings.sFlags.netsettingsChanged = value;
 
-  8028130:	4b01      	ldr	r3, [pc, #4]	; (8028138 <SetWebReinitFlag+0x8>)
 
-  8028132:	f883 0120 	strb.w	r0, [r3, #288]	; 0x120
 
-  8028136:	4770      	bx	lr
 
-  8028138:	2000cfc4 	.word	0x2000cfc4
 
- 0802813c <SetConfirmWebParamsFlag>:
 
- /**
 
-   * @brief  Установить флаг подтверждения сетевых настроек пользователем
 
-   */
 
- void SetConfirmWebParamsFlag(void)
 
- {
 
-   fConfirmWebParams = true;
 
-  802813c:	4b01      	ldr	r3, [pc, #4]	; (8028144 <SetConfirmWebParamsFlag+0x8>)
 
-  802813e:	2201      	movs	r2, #1
 
-  8028140:	701a      	strb	r2, [r3, #0]
 
-  8028142:	4770      	bx	lr
 
-  8028144:	20000b18 	.word	0x20000b18
 
- 08028148 <SetIPStr>:
 
- //                             Сетевые параметры
 
- /**
 
-   * @brief  IP адрес
 
-   */
 
- void SetIPStr(char *str)
 
- {
 
-  8028148:	4601      	mov	r1, r0
 
-   //strcpy(sSettings.sWebParams.ip, str);
 
-   strcpy(sSettings.sWebTempParams.ip, str); 
 
-  802814a:	4801      	ldr	r0, [pc, #4]	; (8028150 <SetIPStr+0x8>)
 
-  802814c:	f7f9 be52 	b.w	8021df4 <strcpy>
 
-  8028150:	2000cff7 	.word	0x2000cff7
 
- 08028154 <SetGatewayStr>:
 
- /**
 
-   * @brief  Шлюз
 
-   */
 
- void SetGatewayStr(char *str)
 
- {
 
-  8028154:	4601      	mov	r1, r0
 
-   //strcpy(sSettings.sWebParams.gate, str);
 
-   strcpy(sSettings.sWebTempParams.gate, str);
 
-  8028156:	4801      	ldr	r0, [pc, #4]	; (802815c <SetGatewayStr+0x8>)
 
-  8028158:	f7f9 be4c 	b.w	8021df4 <strcpy>
 
-  802815c:	2000d007 	.word	0x2000d007
 
- 08028160 <SetMaskStr>:
 
- /**
 
-   * @brief  Текущая маска подсети
 
-   */
 
- void SetMaskStr(char *str)
 
- {
 
-  8028160:	4601      	mov	r1, r0
 
-   //strcpy(sSettings.sWebParams.mask, str);
 
-   strcpy(sSettings.sWebTempParams.mask, str);
 
-  8028162:	4801      	ldr	r0, [pc, #4]	; (8028168 <SetMaskStr+0x8>)
 
-  8028164:	f7f9 be46 	b.w	8021df4 <strcpy>
 
-  8028168:	2000d017 	.word	0x2000d017
 
- 0802816c <SetDhcpStateStr>:
 
- /**
 
-   * @brief  Настройка DHCP
 
-   */
 
- void SetDhcpStateStr(char *str)
 
- {
 
-  802816c:	b508      	push	{r3, lr}
 
-   if (strncmp(str, "on", 2) == 0)
 
-  802816e:	4906      	ldr	r1, [pc, #24]	; (8028188 <SetDhcpStateStr+0x1c>)
 
-  8028170:	2202      	movs	r2, #2
 
-  8028172:	f7f9 feff 	bl	8021f74 <strncmp>
 
-  8028176:	4b05      	ldr	r3, [pc, #20]	; (802818c <SetDhcpStateStr+0x20>)
 
-  8028178:	b908      	cbnz	r0, 802817e <SetDhcpStateStr+0x12>
 
- 	//sSettings.sWebParams.dhcpEnable = 1;
 
-     sSettings.sWebTempParams.dhcpEnable = 1;
 
-  802817a:	2201      	movs	r2, #1
 
-  802817c:	e000      	b.n	8028180 <SetDhcpStateStr+0x14>
 
-   else
 
- 	//sSettings.sWebParams.dhcpEnable = 0;
 
-     sSettings.sWebTempParams.dhcpEnable = 0;
 
-  802817e:	2200      	movs	r2, #0
 
-  8028180:	f883 2063 	strb.w	r2, [r3, #99]	; 0x63
 
-  8028184:	bd08      	pop	{r3, pc}
 
-  8028186:	bf00      	nop
 
-  8028188:	080399ee 	.word	0x080399ee
 
-  802818c:	2000cfc4 	.word	0x2000cfc4
 
- 08028190 <SetUDPDhcpStateStr>:
 
- /**
 
-   * @brief  Настройка DHCP
 
-   */
 
- void SetUDPDhcpStateStr(char *str)
 
- {
 
-  8028190:	b510      	push	{r4, lr}
 
-   if (strncmp(str, "True", 4) == 0)
 
-  8028192:	490a      	ldr	r1, [pc, #40]	; (80281bc <SetUDPDhcpStateStr+0x2c>)
 
-  8028194:	2204      	movs	r2, #4
 
- /**
 
-   * @brief  Настройка DHCP
 
-   */
 
- void SetUDPDhcpStateStr(char *str)
 
- {
 
-  8028196:	4604      	mov	r4, r0
 
-   if (strncmp(str, "True", 4) == 0)
 
-  8028198:	f7f9 feec 	bl	8021f74 <strncmp>
 
-  802819c:	b920      	cbnz	r0, 80281a8 <SetUDPDhcpStateStr+0x18>
 
-     sSettings.sWebTempParams.dhcpEnable = 1;
 
-  802819e:	4b08      	ldr	r3, [pc, #32]	; (80281c0 <SetUDPDhcpStateStr+0x30>)
 
-  80281a0:	2201      	movs	r2, #1
 
-  80281a2:	f883 2063 	strb.w	r2, [r3, #99]	; 0x63
 
-  80281a6:	bd10      	pop	{r4, pc}
 
-   else if (strncmp(str, "False", 5) == 0)
 
-  80281a8:	4620      	mov	r0, r4
 
-  80281aa:	4906      	ldr	r1, [pc, #24]	; (80281c4 <SetUDPDhcpStateStr+0x34>)
 
-  80281ac:	2205      	movs	r2, #5
 
-  80281ae:	f7f9 fee1 	bl	8021f74 <strncmp>
 
-  80281b2:	b910      	cbnz	r0, 80281ba <SetUDPDhcpStateStr+0x2a>
 
-     sSettings.sWebTempParams.dhcpEnable = 0;
 
-  80281b4:	4b02      	ldr	r3, [pc, #8]	; (80281c0 <SetUDPDhcpStateStr+0x30>)
 
-  80281b6:	f883 0063 	strb.w	r0, [r3, #99]	; 0x63
 
-  80281ba:	bd10      	pop	{r4, pc}
 
-  80281bc:	08040e43 	.word	0x08040e43
 
-  80281c0:	2000cfc4 	.word	0x2000cfc4
 
-  80281c4:	080399dd 	.word	0x080399dd
 
- 080281c8 <SetReadCommunity>:
 
- /**
 
-   * @brief  Community для чтения
 
-   */
 
- void SetReadCommunity(char *str)
 
- {
 
-  80281c8:	4601      	mov	r1, r0
 
-   strcpy(sSettings.sSnmp.readCommunity, str);
 
-  80281ca:	4801      	ldr	r0, [pc, #4]	; (80281d0 <SetReadCommunity+0x8>)
 
-  80281cc:	f7f9 be12 	b.w	8021df4 <strcpy>
 
-  80281d0:	2000d195 	.word	0x2000d195
 
- 080281d4 <SetWriteCommunity>:
 
- /**
 
-   * @brief  Community для записи
 
-   */
 
- void SetWriteCommunity(char *str)
 
- {
 
-  80281d4:	4601      	mov	r1, r0
 
-   strcpy(sSettings.sSnmp.writeCommunity, str);
 
-  80281d6:	4801      	ldr	r0, [pc, #4]	; (80281dc <SetWriteCommunity+0x8>)
 
-  80281d8:	f7f9 be0c 	b.w	8021df4 <strcpy>
 
-  80281dc:	2000d1a9 	.word	0x2000d1a9
 
- 080281e0 <SetManagerIp>:
 
- /**
 
-   * @brief  IP SNMP менеджера
 
-   */
 
- void SetManagerIp(char *str)
 
- {
 
-  80281e0:	b510      	push	{r4, lr}
 
-   strcpy(sSettings.sSnmp.managerIP, str);
 
-  80281e2:	4c05      	ldr	r4, [pc, #20]	; (80281f8 <SetManagerIp+0x18>)
 
- /**
 
-   * @brief  IP SNMP менеджера
 
-   */
 
- void SetManagerIp(char *str)
 
- {
 
-  80281e4:	4601      	mov	r1, r0
 
-   strcpy(sSettings.sSnmp.managerIP, str);
 
-  80281e6:	4620      	mov	r0, r4
 
-  80281e8:	f7f9 fe04 	bl	8021df4 <strcpy>
 
-   SNMP_SetManagerIP(sSettings.sSnmp.managerIP);
 
-  80281ec:	4620      	mov	r0, r4
 
- }
 
-  80281ee:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
-   * @brief  IP SNMP менеджера
 
-   */
 
- void SetManagerIp(char *str)
 
- {
 
-   strcpy(sSettings.sSnmp.managerIP, str);
 
-   SNMP_SetManagerIP(sSettings.sSnmp.managerIP);
 
-  80281f2:	f010 b837 	b.w	8038264 <SNMP_SetManagerIP>
 
-  80281f6:	bf00      	nop
 
-  80281f8:	2000d271 	.word	0x2000d271
 
- 080281fc <SetManagerIp2>:
 
- }
 
- void SetManagerIp2(char *str)
 
- {
 
-  80281fc:	b510      	push	{r4, lr}
 
-   strcpy(sSettings.sSnmp.managerIP2, str);
 
-  80281fe:	4c05      	ldr	r4, [pc, #20]	; (8028214 <SetManagerIp2+0x18>)
 
-   strcpy(sSettings.sSnmp.managerIP, str);
 
-   SNMP_SetManagerIP(sSettings.sSnmp.managerIP);
 
- }
 
- void SetManagerIp2(char *str)
 
- {
 
-  8028200:	4601      	mov	r1, r0
 
-   strcpy(sSettings.sSnmp.managerIP2, str);
 
-  8028202:	4620      	mov	r0, r4
 
-  8028204:	f7f9 fdf6 	bl	8021df4 <strcpy>
 
-   SNMP_SetManagerIP(sSettings.sSnmp.managerIP2);
 
-  8028208:	4620      	mov	r0, r4
 
- }
 
-  802820a:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
- }
 
- void SetManagerIp2(char *str)
 
- {
 
-   strcpy(sSettings.sSnmp.managerIP2, str);
 
-   SNMP_SetManagerIP(sSettings.sSnmp.managerIP2);
 
-  802820e:	f010 b829 	b.w	8038264 <SNMP_SetManagerIP>
 
-  8028212:	bf00      	nop
 
-  8028214:	2000d285 	.word	0x2000d285
 
- 08028218 <SetManagerIp3>:
 
- }
 
- void SetManagerIp3(char *str)
 
- {
 
-  8028218:	b510      	push	{r4, lr}
 
-   strcpy(sSettings.sSnmp.managerIP3, str);
 
-  802821a:	4c05      	ldr	r4, [pc, #20]	; (8028230 <SetManagerIp3+0x18>)
 
-   strcpy(sSettings.sSnmp.managerIP2, str);
 
-   SNMP_SetManagerIP(sSettings.sSnmp.managerIP2);
 
- }
 
- void SetManagerIp3(char *str)
 
- {
 
-  802821c:	4601      	mov	r1, r0
 
-   strcpy(sSettings.sSnmp.managerIP3, str);
 
-  802821e:	4620      	mov	r0, r4
 
-  8028220:	f7f9 fde8 	bl	8021df4 <strcpy>
 
-   SNMP_SetManagerIP(sSettings.sSnmp.managerIP3);
 
-  8028224:	4620      	mov	r0, r4
 
- }
 
-  8028226:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
- }
 
- void SetManagerIp3(char *str)
 
- {
 
-   strcpy(sSettings.sSnmp.managerIP3, str);
 
-   SNMP_SetManagerIP(sSettings.sSnmp.managerIP3);
 
-  802822a:	f010 b81b 	b.w	8038264 <SNMP_SetManagerIP>
 
-  802822e:	bf00      	nop
 
-  8028230:	2000d299 	.word	0x2000d299
 
- 08028234 <SetManagerIp4>:
 
- }
 
- void SetManagerIp4(char *str)
 
- {
 
-  8028234:	b510      	push	{r4, lr}
 
-   strcpy(sSettings.sSnmp.managerIP4, str);
 
-  8028236:	4c05      	ldr	r4, [pc, #20]	; (802824c <SetManagerIp4+0x18>)
 
-   strcpy(sSettings.sSnmp.managerIP3, str);
 
-   SNMP_SetManagerIP(sSettings.sSnmp.managerIP3);
 
- }
 
- void SetManagerIp4(char *str)
 
- {
 
-  8028238:	4601      	mov	r1, r0
 
-   strcpy(sSettings.sSnmp.managerIP4, str);
 
-  802823a:	4620      	mov	r0, r4
 
-  802823c:	f7f9 fdda 	bl	8021df4 <strcpy>
 
-   SNMP_SetManagerIP(sSettings.sSnmp.managerIP4);
 
-  8028240:	4620      	mov	r0, r4
 
- }
 
-  8028242:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
- }
 
- void SetManagerIp4(char *str)
 
- {
 
-   strcpy(sSettings.sSnmp.managerIP4, str);
 
-   SNMP_SetManagerIP(sSettings.sSnmp.managerIP4);
 
-  8028246:	f010 b80d 	b.w	8038264 <SNMP_SetManagerIP>
 
-  802824a:	bf00      	nop
 
-  802824c:	2000d2ad 	.word	0x2000d2ad
 
- 08028250 <SetManagerIp5>:
 
- }
 
- void SetManagerIp5(char *str)
 
- {
 
-  8028250:	b510      	push	{r4, lr}
 
-   strcpy(sSettings.sSnmp.managerIP5, str);
 
-  8028252:	4c05      	ldr	r4, [pc, #20]	; (8028268 <SetManagerIp5+0x18>)
 
-   strcpy(sSettings.sSnmp.managerIP4, str);
 
-   SNMP_SetManagerIP(sSettings.sSnmp.managerIP4);
 
- }
 
- void SetManagerIp5(char *str)
 
- {
 
-  8028254:	4601      	mov	r1, r0
 
-   strcpy(sSettings.sSnmp.managerIP5, str);
 
-  8028256:	4620      	mov	r0, r4
 
-  8028258:	f7f9 fdcc 	bl	8021df4 <strcpy>
 
-   SNMP_SetManagerIP(sSettings.sSnmp.managerIP5);
 
-  802825c:	4620      	mov	r0, r4
 
- }
 
-  802825e:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
- }
 
- void SetManagerIp5(char *str)
 
- {
 
-   strcpy(sSettings.sSnmp.managerIP5, str);
 
-   SNMP_SetManagerIP(sSettings.sSnmp.managerIP5);
 
-  8028262:	f00f bfff 	b.w	8038264 <SNMP_SetManagerIP>
 
-  8028266:	bf00      	nop
 
-  8028268:	2000d2c1 	.word	0x2000d2c1
 
- 0802826c <SetOwner>:
 
- /**
 
-   * @brief  Установить владельца
 
-   */
 
- void SetOwner(char *str)
 
- {
 
-  802826c:	b510      	push	{r4, lr}
 
-   strcpy(sSettings.sSnmp.sysContact, str);
 
-  802826e:	4c06      	ldr	r4, [pc, #24]	; (8028288 <SetOwner+0x1c>)
 
- /**
 
-   * @brief  Установить владельца
 
-   */
 
- void SetOwner(char *str)
 
- {
 
-  8028270:	4601      	mov	r1, r0
 
-   strcpy(sSettings.sSnmp.sysContact, str);
 
-  8028272:	4620      	mov	r0, r4
 
-  8028274:	f7f9 fdbe 	bl	8021df4 <strcpy>
 
-   SNMP_SetSysContact(sSettings.sSnmp.sysContact);
 
-  8028278:	4620      	mov	r0, r4
 
-  802827a:	f00f ffc9 	bl	8038210 <SNMP_SetSysContact>
 
-   SNMP_SetObjDescr();
 
- }
 
-  802827e:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
-   */
 
- void SetOwner(char *str)
 
- {
 
-   strcpy(sSettings.sSnmp.sysContact, str);
 
-   SNMP_SetSysContact(sSettings.sSnmp.sysContact);
 
-   SNMP_SetObjDescr();
 
-  8028282:	f00f bf7b 	b.w	803817c <SNMP_SetObjDescr>
 
-  8028286:	bf00      	nop
 
-  8028288:	2000d1bd 	.word	0x2000d1bd
 
- 0802828c <SetLocation>:
 
- /**
 
-   * @brief  Установить местоположение
 
-   */
 
- void SetLocation(char *str)
 
- {
 
-  802828c:	b510      	push	{r4, lr}
 
-   strcpy(sSettings.sSnmp.sysLocation, str);
 
-  802828e:	4c05      	ldr	r4, [pc, #20]	; (80282a4 <SetLocation+0x18>)
 
- /**
 
-   * @brief  Установить местоположение
 
-   */
 
- void SetLocation(char *str)
 
- {
 
-  8028290:	4601      	mov	r1, r0
 
-   strcpy(sSettings.sSnmp.sysLocation, str);
 
-  8028292:	4620      	mov	r0, r4
 
-  8028294:	f7f9 fdae 	bl	8021df4 <strcpy>
 
-   SNMP_SetSysLocation(sSettings.sSnmp.sysLocation);
 
-  8028298:	4620      	mov	r0, r4
 
- }
 
-  802829a:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
-   * @brief  Установить местоположение
 
-   */
 
- void SetLocation(char *str)
 
- {
 
-   strcpy(sSettings.sSnmp.sysLocation, str);
 
-   SNMP_SetSysLocation(sSettings.sSnmp.sysLocation);
 
-  802829e:	f00f bfd3 	b.w	8038248 <SNMP_SetSysLocation>
 
-  80282a2:	bf00      	nop
 
-  80282a4:	2000d203 	.word	0x2000d203
 
- 080282a8 <SetComment>:
 
- /**
 
-   * @brief  Установить комментарий
 
-   */
 
- void SetComment(char *str)
 
- {
 
-  80282a8:	4601      	mov	r1, r0
 
-   strcpy(sSettings.sInfo.comments, str);
 
-  80282aa:	4801      	ldr	r0, [pc, #4]	; (80282b0 <SetComment+0x8>)
 
-  80282ac:	f7f9 bda2 	b.w	8021df4 <strcpy>
 
-  80282b0:	2000d072 	.word	0x2000d072
 
- 080282b4 <SetRDSIpStr>:
 
- //                             Сетевые параметры RADIUS сервера
 
- /**
 
-   * @brief  IP адрес
 
-   */
 
- void SetRDSIpStr(char *str)
 
- {
 
-  80282b4:	4601      	mov	r1, r0
 
-   strcpy(sSettings.sRADIUS.ServerIP, str);
 
-  80282b6:	4801      	ldr	r0, [pc, #4]	; (80282bc <SetRDSIpStr+0x8>)
 
-  80282b8:	f7f9 bd9c 	b.w	8021df4 <strcpy>
 
-  80282bc:	2000d33d 	.word	0x2000d33d
 
- 080282c0 <SetRDSPortStr>:
 
- /**
 
-   * @brief  Порт
 
-   */
 
- void SetRDSPortStr(char *str)
 
- {
 
-  80282c0:	b508      	push	{r3, lr}
 
- 	sSettings.sRADIUS.port = atoi(str);
 
-  80282c2:	f7f9 fafd 	bl	80218c0 <atoi>
 
-  80282c6:	4b02      	ldr	r3, [pc, #8]	; (80282d0 <SetRDSPortStr+0x10>)
 
-  80282c8:	f8c3 039c 	str.w	r0, [r3, #924]	; 0x39c
 
-  80282cc:	bd08      	pop	{r3, pc}
 
-  80282ce:	bf00      	nop
 
-  80282d0:	2000cfc4 	.word	0x2000cfc4
 
- 080282d4 <SetRDSKeyAccesstStr>:
 
- /**
 
-   * @brief  Код access
 
-   */
 
- void SetRDSKeyAccesstStr(char *str)
 
- {
 
-  80282d4:	b508      	push	{r3, lr}
 
- 	sSettings.sRADIUS.key_access = atoi(str);
 
-  80282d6:	f7f9 faf3 	bl	80218c0 <atoi>
 
-  80282da:	4b02      	ldr	r3, [pc, #8]	; (80282e4 <SetRDSKeyAccesstStr+0x10>)
 
-  80282dc:	f8c3 03a0 	str.w	r0, [r3, #928]	; 0x3a0
 
-  80282e0:	bd08      	pop	{r3, pc}
 
-  80282e2:	bf00      	nop
 
-  80282e4:	2000cfc4 	.word	0x2000cfc4
 
- 080282e8 <SetRDSPasswordkStr>:
 
- /**
 
-   * @brief  пароль RADIUS
 
-   */
 
- void SetRDSPasswordkStr(char *str)
 
- {
 
-  80282e8:	4601      	mov	r1, r0
 
-   strcpy(sSettings.sRADIUS.rds_password, str);
 
-  80282ea:	4801      	ldr	r0, [pc, #4]	; (80282f0 <SetRDSPasswordkStr+0x8>)
 
-  80282ec:	f7f9 bd82 	b.w	8021df4 <strcpy>
 
-  80282f0:	2000d34d 	.word	0x2000d34d
 
- 080282f4 <SetRDSEnableStateStr>:
 
- /**
 
-   * @brief  Настройка вкл/ выкл RADIUS сервера
 
-   */
 
- void SetRDSEnableStateStr(char *str)
 
- {
 
-  80282f4:	b508      	push	{r3, lr}
 
-   if (strncmp(str, "on", 2) == 0)
 
-  80282f6:	4906      	ldr	r1, [pc, #24]	; (8028310 <SetRDSEnableStateStr+0x1c>)
 
-  80282f8:	2202      	movs	r2, #2
 
-  80282fa:	f7f9 fe3b 	bl	8021f74 <strncmp>
 
-  80282fe:	4b05      	ldr	r3, [pc, #20]	; (8028314 <SetRDSEnableStateStr+0x20>)
 
-  8028300:	b908      	cbnz	r0, 8028306 <SetRDSEnableStateStr+0x12>
 
- 	  sSettings.sRADIUS.RDSEnable = 1;
 
-  8028302:	2201      	movs	r2, #1
 
-  8028304:	e000      	b.n	8028308 <SetRDSEnableStateStr+0x14>
 
-   else
 
- 	  sSettings.sRADIUS.RDSEnable = 0;
 
-  8028306:	2200      	movs	r2, #0
 
-  8028308:	f883 239a 	strb.w	r2, [r3, #922]	; 0x39a
 
-  802830c:	bd08      	pop	{r3, pc}
 
-  802830e:	bf00      	nop
 
-  8028310:	080399ee 	.word	0x080399ee
 
-  8028314:	2000cfc4 	.word	0x2000cfc4
 
- 08028318 <SetAuthEnableStateStr>:
 
- /**
 
-   * @brief  Настройка вкл/ выкл авторизации
 
-   */
 
- void SetAuthEnableStateStr(char *str)
 
- {
 
-  8028318:	b508      	push	{r3, lr}
 
-   if (strncmp(str, "on", 2) == 0)
 
-  802831a:	4906      	ldr	r1, [pc, #24]	; (8028334 <SetAuthEnableStateStr+0x1c>)
 
-  802831c:	2202      	movs	r2, #2
 
-  802831e:	f7f9 fe29 	bl	8021f74 <strncmp>
 
-  8028322:	4b05      	ldr	r3, [pc, #20]	; (8028338 <SetAuthEnableStateStr+0x20>)
 
-  8028324:	b908      	cbnz	r0, 802832a <SetAuthEnableStateStr+0x12>
 
- 	  sSettings.sRADIUS.Auth_enable = 1;
 
-  8028326:	2201      	movs	r2, #1
 
-  8028328:	e000      	b.n	802832c <SetAuthEnableStateStr+0x14>
 
-   else
 
- 	  sSettings.sRADIUS.Auth_enable = 0;
 
-  802832a:	2200      	movs	r2, #0
 
-  802832c:	f883 2378 	strb.w	r2, [r3, #888]	; 0x378
 
-  8028330:	bd08      	pop	{r3, pc}
 
-  8028332:	bf00      	nop
 
-  8028334:	080399ee 	.word	0x080399ee
 
-  8028338:	2000cfc4 	.word	0x2000cfc4
 
- 0802833c <SetDateStr>:
 
- /**
 
-   * @brief  Дата
 
-   */
 
- void SetDateStr(char *str)
 
- {
 
-  802833c:	b510      	push	{r4, lr}
 
-  802833e:	b08c      	sub	sp, #48	; 0x30
 
-  8028340:	4604      	mov	r4, r0
 
- 	TM_RTC_t tmp_data;
 
- 	char str_data[18];
 
- 	char str_time[9];
 
- 	uint8_t len;
 
- 	memset(str_data, 0, 18);
 
-  8028342:	2100      	movs	r1, #0
 
-  8028344:	2212      	movs	r2, #18
 
-  8028346:	a807      	add	r0, sp, #28
 
-  8028348:	f7f9 fbda 	bl	8021b00 <memset>
 
- 	memset(str_time, 0, 9);
 
-  802834c:	2100      	movs	r1, #0
 
-  802834e:	2209      	movs	r2, #9
 
-  8028350:	4668      	mov	r0, sp
 
-  8028352:	f7f9 fbd5 	bl	8021b00 <memset>
 
- 	str += 2;
 
- 	strncpy(str_data, (str + 6), 2);
 
-  8028356:	f104 0108 	add.w	r1, r4, #8
 
-  802835a:	2202      	movs	r2, #2
 
-  802835c:	a807      	add	r0, sp, #28
 
-  802835e:	f7f9 fe5f 	bl	8022020 <strncpy>
 
- 	strncat(str_data, (str + 2), 4);
 
-  8028362:	1d21      	adds	r1, r4, #4
 
-  8028364:	2204      	movs	r2, #4
 
-  8028366:	a807      	add	r0, sp, #28
 
-  8028368:	f7f9 fdd2 	bl	8021f10 <strncat>
 
- 	strncat(str_data, str, 2);
 
-  802836c:	2202      	movs	r2, #2
 
-  802836e:	1ca1      	adds	r1, r4, #2
 
-  8028370:	a807      	add	r0, sp, #28
 
-  8028372:	f7f9 fdcd 	bl	8021f10 <strncat>
 
- 	TM_RTC_GetDateTime(&tmp_data, TM_RTC_Format_BIN);
 
-  8028376:	a803      	add	r0, sp, #12
 
-  8028378:	2100      	movs	r1, #0
 
-  802837a:	f7fe f885 	bl	8026488 <TM_RTC_GetDateTime>
 
- 	sprintf(str_time, "-01-%02i:%02i", tmp_data.hours, tmp_data.minutes);
 
-  802837e:	f89d 2011 	ldrb.w	r2, [sp, #17]
 
-  8028382:	f89d 3010 	ldrb.w	r3, [sp, #16]
 
-  8028386:	4908      	ldr	r1, [pc, #32]	; (80283a8 <SetDateStr+0x6c>)
 
-  8028388:	4668      	mov	r0, sp
 
-  802838a:	f7ff fa43 	bl	8027814 <tfp_sprintf>
 
- 	len = strlen(str_time);
 
-  802838e:	4668      	mov	r0, sp
 
-  8028390:	f7f9 fd8e 	bl	8021eb0 <strlen>
 
- 	strncat(str_data, str_time, len);
 
-  8028394:	4669      	mov	r1, sp
 
-  8028396:	b2c2      	uxtb	r2, r0
 
-  8028398:	a807      	add	r0, sp, #28
 
-  802839a:	f7f9 fdb9 	bl	8021f10 <strncat>
 
- 	TM_RTC_SetDateTimeString(&str_data);
 
-  802839e:	a807      	add	r0, sp, #28
 
-  80283a0:	f7fd ff58 	bl	8026254 <TM_RTC_SetDateTimeString>
 
- }
 
-  80283a4:	b00c      	add	sp, #48	; 0x30
 
-  80283a6:	bd10      	pop	{r4, pc}
 
-  80283a8:	080399f1 	.word	0x080399f1
 
- 080283ac <SetTimeStr>:
 
- /**
 
-   * @brief  Время
 
-   */
 
- void SetTimeStr(char *str)
 
- {
 
-  80283ac:	b510      	push	{r4, lr}
 
-  80283ae:	b090      	sub	sp, #64	; 0x40
 
-  80283b0:	4604      	mov	r4, r0
 
- 	TM_RTC_t tmp_data;
 
- 	char str_data[18];
 
- 	char str_date[14];
 
- 	uint8_t len;
 
- 	memset(str_data, 0, 18);
 
-  80283b2:	2100      	movs	r1, #0
 
-  80283b4:	2212      	movs	r2, #18
 
-  80283b6:	a80b      	add	r0, sp, #44	; 0x2c
 
-  80283b8:	f7f9 fba2 	bl	8021b00 <memset>
 
- 	memset(str_date, 0, 14);
 
-  80283bc:	220e      	movs	r2, #14
 
-  80283be:	2100      	movs	r1, #0
 
-  80283c0:	a803      	add	r0, sp, #12
 
-  80283c2:	f7f9 fb9d 	bl	8021b00 <memset>
 
- 	TM_RTC_GetDateTime(&tmp_data, TM_RTC_Format_BIN);
 
-  80283c6:	a807      	add	r0, sp, #28
 
-  80283c8:	2100      	movs	r1, #0
 
-  80283ca:	f7fe f85d 	bl	8026488 <TM_RTC_GetDateTime>
 
- 	sprintf(str_date, "%02i-%02i-%02i-01-", tmp_data.date, tmp_data.month, tmp_data.year);
 
-  80283ce:	f89d 1025 	ldrb.w	r1, [sp, #37]	; 0x25
 
-  80283d2:	f89d 3024 	ldrb.w	r3, [sp, #36]	; 0x24
 
-  80283d6:	f89d 2023 	ldrb.w	r2, [sp, #35]	; 0x23
 
-  80283da:	9100      	str	r1, [sp, #0]
 
-  80283dc:	a803      	add	r0, sp, #12
 
-  80283de:	490a      	ldr	r1, [pc, #40]	; (8028408 <SetTimeStr+0x5c>)
 
-  80283e0:	f7ff fa18 	bl	8027814 <tfp_sprintf>
 
- 	len = strlen(str_date);
 
-  80283e4:	a803      	add	r0, sp, #12
 
-  80283e6:	f7f9 fd63 	bl	8021eb0 <strlen>
 
- 	strncat(str_data, str_date, len);
 
-  80283ea:	a903      	add	r1, sp, #12
 
-  80283ec:	b2c2      	uxtb	r2, r0
 
-  80283ee:	a80b      	add	r0, sp, #44	; 0x2c
 
-  80283f0:	f7f9 fd8e 	bl	8021f10 <strncat>
 
- 	strncat(str_data, str, 5);
 
-  80283f4:	a80b      	add	r0, sp, #44	; 0x2c
 
-  80283f6:	4621      	mov	r1, r4
 
-  80283f8:	2205      	movs	r2, #5
 
-  80283fa:	f7f9 fd89 	bl	8021f10 <strncat>
 
- 	TM_RTC_SetDateTimeString(&str_data);
 
-  80283fe:	a80b      	add	r0, sp, #44	; 0x2c
 
-  8028400:	f7fd ff28 	bl	8026254 <TM_RTC_SetDateTimeString>
 
- }
 
-  8028404:	b010      	add	sp, #64	; 0x40
 
-  8028406:	bd10      	pop	{r4, pc}
 
-  8028408:	080399ff 	.word	0x080399ff
 
- 0802840c <SetSntpStateStr>:
 
- /**
 
-   * @brief  Состояние SNTP
 
-   */
 
- void SetSntpStateStr(char *str)
 
- {
 
-  802840c:	b538      	push	{r3, r4, r5, lr}
 
- 	bool old_sntpEnable = sSettings.sSNTP.sntpEnable;
 
-  802840e:	4c0d      	ldr	r4, [pc, #52]	; (8028444 <SetSntpStateStr+0x38>)
 
-   if (strncmp(str, "1", 1) == 0){
 
-  8028410:	490d      	ldr	r1, [pc, #52]	; (8028448 <SetSntpStateStr+0x3c>)
 
- /**
 
-   * @brief  Состояние SNTP
 
-   */
 
- void SetSntpStateStr(char *str)
 
- {
 
- 	bool old_sntpEnable = sSettings.sSNTP.sntpEnable;
 
-  8028412:	f894 5340 	ldrb.w	r5, [r4, #832]	; 0x340
 
-   if (strncmp(str, "1", 1) == 0){
 
-  8028416:	2201      	movs	r2, #1
 
-  8028418:	f7f9 fdac 	bl	8021f74 <strncmp>
 
-  802841c:	b948      	cbnz	r0, 8028432 <SetSntpStateStr+0x26>
 
- 	sSettings.sSNTP.sntpEnable = true;
 
-  802841e:	2001      	movs	r0, #1
 
-  8028420:	f884 0340 	strb.w	r0, [r4, #832]	; 0x340
 
- 	if(old_sntpEnable != sSettings.sSNTP.sntpEnable){
 
-  8028424:	b965      	cbnz	r5, 8028440 <SetSntpStateStr+0x34>
 
- 		SNTP_Enable(sSettings.sSNTP.sntpEnable);
 
-  8028426:	f010 f81b 	bl	8038460 <SNTP_Enable>
 
-   }
 
-   else{
 
- 	sSettings.sSNTP.sntpEnable = false;
 
- 	SNTP_Enable(sSettings.sSNTP.sntpEnable);
 
-   }
 
- }
 
-  802842a:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
 
- 	bool old_sntpEnable = sSettings.sSNTP.sntpEnable;
 
-   if (strncmp(str, "1", 1) == 0){
 
- 	sSettings.sSNTP.sntpEnable = true;
 
- 	if(old_sntpEnable != sSettings.sSNTP.sntpEnable){
 
- 		SNTP_Enable(sSettings.sSNTP.sntpEnable);
 
- 		SNTP_Poll();
 
-  802842e:	f010 b859 	b.w	80384e4 <SNTP_Poll>
 
- 	}
 
-   }
 
-   else{
 
- 	sSettings.sSNTP.sntpEnable = false;
 
-  8028432:	2000      	movs	r0, #0
 
-  8028434:	f884 0340 	strb.w	r0, [r4, #832]	; 0x340
 
- 	SNTP_Enable(sSettings.sSNTP.sntpEnable);
 
-   }
 
- }
 
-  8028438:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
 
- 		SNTP_Poll();
 
- 	}
 
-   }
 
-   else{
 
- 	sSettings.sSNTP.sntpEnable = false;
 
- 	SNTP_Enable(sSettings.sSNTP.sntpEnable);
 
-  802843c:	f010 b810 	b.w	8038460 <SNTP_Enable>
 
-  8028440:	bd38      	pop	{r3, r4, r5, pc}
 
-  8028442:	bf00      	nop
 
-  8028444:	2000cfc4 	.word	0x2000cfc4
 
-  8028448:	08039cb4 	.word	0x08039cb4
 
- 0802844c <SetSntpServerIpStr>:
 
- /**
 
-   * @brief  IP адрес SNTP сервера
 
-   */
 
- void SetSntpServerIpStr(char *str)
 
- {
 
-  802844c:	4601      	mov	r1, r0
 
- 	strcpy(sSettings.sSNTP.ip, str);
 
-  802844e:	4801      	ldr	r0, [pc, #4]	; (8028454 <SetSntpServerIpStr+0x8>)
 
-  8028450:	f7f9 bcd0 	b.w	8021df4 <strcpy>
 
-  8028454:	2000d305 	.word	0x2000d305
 
- 08028458 <SetSntpTimeZoneStr>:
 
- /**
 
-   * @brief  Часовой пояс контроллера
 
-   */
 
- void SetSntpTimeZoneStr(char *str)
 
- {
 
-  8028458:	b570      	push	{r4, r5, r6, lr}
 
-   float newUtc;
 
-   newUtc = atof(str);
 
-  802845a:	f7f9 fa2d 	bl	80218b8 <atof>
 
-  802845e:	f7f8 fb91 	bl	8020b84 <__aeabi_d2f>
 
-   if (sSettings.sSNTP.timeZone > 0)
 
-  8028462:	4b27      	ldr	r3, [pc, #156]	; (8028500 <SetSntpTimeZoneStr+0xa8>)
 
-  8028464:	f8d3 4370 	ldr.w	r4, [r3, #880]	; 0x370
 
-   */
 
- void SetSntpTimeZoneStr(char *str)
 
- {
 
-   float newUtc;
 
-   newUtc = atof(str);
 
-  8028468:	4606      	mov	r6, r0
 
-   if (sSettings.sSNTP.timeZone > 0)
 
-  802846a:	2100      	movs	r1, #0
 
-  802846c:	4620      	mov	r0, r4
 
-  802846e:	f7f8 fd53 	bl	8020f18 <__aeabi_fcmpgt>
 
-  8028472:	b100      	cbz	r0, 8028476 <SetSntpTimeZoneStr+0x1e>
 
-  8028474:	e033      	b.n	80284de <SetSntpTimeZoneStr+0x86>
 
- 	{
 
- 	  TM_RTC_Correction(newUtc - sSettings.sSNTP.timeZone);
 
- 	}
 
-   }
 
-   else if (sSettings.sSNTP.timeZone < 0)
 
-  8028476:	4620      	mov	r0, r4
 
-  8028478:	2100      	movs	r1, #0
 
-  802847a:	f7f8 fd2f 	bl	8020edc <__aeabi_fcmplt>
 
-  802847e:	2800      	cmp	r0, #0
 
-  8028480:	d032      	beq.n	80284e8 <SetSntpTimeZoneStr+0x90>
 
-   {
 
-     if (newUtc >= 0)
 
-  8028482:	4630      	mov	r0, r6
 
-  8028484:	2100      	movs	r1, #0
 
-  8028486:	f7f8 fd3d 	bl	8020f04 <__aeabi_fcmpge>
 
-  802848a:	b170      	cbz	r0, 80284aa <SetSntpTimeZoneStr+0x52>
 
- 	{
 
- 	  TM_RTC_Correction(newUtc + fabs(sSettings.sSNTP.timeZone));
 
-  802848c:	4620      	mov	r0, r4
 
-  802848e:	f7f8 f843 	bl	8020518 <__aeabi_f2d>
 
-  8028492:	f7fc fef7 	bl	8025284 <fabs>
 
-  8028496:	4604      	mov	r4, r0
 
-  8028498:	460d      	mov	r5, r1
 
-  802849a:	4630      	mov	r0, r6
 
-  802849c:	f7f8 f83c 	bl	8020518 <__aeabi_f2d>
 
-  80284a0:	4622      	mov	r2, r4
 
-  80284a2:	462b      	mov	r3, r5
 
-  80284a4:	f7f7 feda 	bl	802025c <__adddf3>
 
-  80284a8:	e016      	b.n	80284d8 <SetSntpTimeZoneStr+0x80>
 
- 	}
 
- 	else
 
- 	{
 
- 	  if (newUtc >= sSettings.sSNTP.timeZone)
 
-  80284aa:	4630      	mov	r0, r6
 
-  80284ac:	4621      	mov	r1, r4
 
-  80284ae:	f7f8 fd29 	bl	8020f04 <__aeabi_fcmpge>
 
-  80284b2:	b1a0      	cbz	r0, 80284de <SetSntpTimeZoneStr+0x86>
 
- 	    TM_RTC_Correction(fabs(sSettings.sSNTP.timeZone) - fabs(newUtc));
 
-  80284b4:	4620      	mov	r0, r4
 
-  80284b6:	f7f8 f82f 	bl	8020518 <__aeabi_f2d>
 
-  80284ba:	f7fc fee3 	bl	8025284 <fabs>
 
-  80284be:	4604      	mov	r4, r0
 
-  80284c0:	4630      	mov	r0, r6
 
-  80284c2:	460d      	mov	r5, r1
 
-  80284c4:	f7f8 f828 	bl	8020518 <__aeabi_f2d>
 
-  80284c8:	f7fc fedc 	bl	8025284 <fabs>
 
-  80284cc:	4602      	mov	r2, r0
 
-  80284ce:	460b      	mov	r3, r1
 
-  80284d0:	4620      	mov	r0, r4
 
-  80284d2:	4629      	mov	r1, r5
 
-  80284d4:	f7f7 fec0 	bl	8020258 <__aeabi_dsub>
 
-  80284d8:	f7f8 fb54 	bl	8020b84 <__aeabi_d2f>
 
-  80284dc:	e00a      	b.n	80284f4 <SetSntpTimeZoneStr+0x9c>
 
- 	  else
 
- 		TM_RTC_Correction(newUtc - sSettings.sSNTP.timeZone);
 
-  80284de:	4630      	mov	r0, r6
 
-  80284e0:	4621      	mov	r1, r4
 
-  80284e2:	f7f8 fba3 	bl	8020c2c <__aeabi_fsub>
 
-  80284e6:	e005      	b.n	80284f4 <SetSntpTimeZoneStr+0x9c>
 
- 	}
 
-   }
 
-   else if (sSettings.sSNTP.timeZone == 0)
 
-  80284e8:	4620      	mov	r0, r4
 
-  80284ea:	2100      	movs	r1, #0
 
-  80284ec:	f7f8 fcec 	bl	8020ec8 <__aeabi_fcmpeq>
 
-  80284f0:	b110      	cbz	r0, 80284f8 <SetSntpTimeZoneStr+0xa0>
 
-   {
 
-     TM_RTC_Correction(newUtc);
 
-  80284f2:	4630      	mov	r0, r6
 
-  80284f4:	f7fe f8c4 	bl	8026680 <TM_RTC_Correction>
 
-   }
 
-   sSettings.sSNTP.timeZone = newUtc; // atof(str);
 
-  80284f8:	4b01      	ldr	r3, [pc, #4]	; (8028500 <SetSntpTimeZoneStr+0xa8>)
 
-  80284fa:	f8c3 6370 	str.w	r6, [r3, #880]	; 0x370
 
-  80284fe:	bd70      	pop	{r4, r5, r6, pc}
 
-  8028500:	2000cfc4 	.word	0x2000cfc4
 
- 08028504 <SetDINTypeActStr>:
 
- /**
 
-   * @brief  Тип действий при срабатывание сухих контактов
 
-   */
 
- void SetDINTypeActStr(char *str, uint8_t num)
 
- {
 
-  8028504:	b510      	push	{r4, lr}
 
-  8028506:	460c      	mov	r4, r1
 
- 	sSettings.sInOuts.din_type_act[num] = atoi(str);
 
-  8028508:	f7f9 f9da 	bl	80218c0 <atoi>
 
-  802850c:	4902      	ldr	r1, [pc, #8]	; (8028518 <SetDINTypeActStr+0x14>)
 
-  802850e:	1909      	adds	r1, r1, r4
 
-  8028510:	f881 0376 	strb.w	r0, [r1, #886]	; 0x376
 
-  8028514:	bd10      	pop	{r4, pc}
 
-  8028516:	bf00      	nop
 
-  8028518:	2000cfc4 	.word	0x2000cfc4
 
- 0802851c <SetROStr>:
 
- /**
 
-   * @brief
 
-   */
 
- void SetROStr(char *str, uint8_t num)
 
- {
 
-  802851c:	b510      	push	{r4, lr}
 
-  802851e:	460c      	mov	r4, r1
 
- 	set_state_douts((DOUT1+num), atoi(str));
 
-  8028520:	f7f9 f9ce 	bl	80218c0 <atoi>
 
-  8028524:	1de3      	adds	r3, r4, #7
 
-  8028526:	b2c1      	uxtb	r1, r0
 
-  8028528:	b2d8      	uxtb	r0, r3
 
- }
 
-  802852a:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
- /**
 
-   * @brief
 
-   */
 
- void SetROStr(char *str, uint8_t num)
 
- {
 
- 	set_state_douts((DOUT1+num), atoi(str));
 
-  802852e:	f000 bb35 	b.w	8028b9c <set_state_douts>
 
- 08028532 <SetROInt>:
 
- /**
 
-   * @brief
 
-   */
 
- void SetROInt(uint8_t val, uint8_t num)
 
- {
 
-  8028532:	4603      	mov	r3, r0
 
- 	set_state_douts((DOUT1+num), val);
 
-  8028534:	3107      	adds	r1, #7
 
-  8028536:	b2c8      	uxtb	r0, r1
 
-  8028538:	4619      	mov	r1, r3
 
-  802853a:	f000 bb2f 	b.w	8028b9c <set_state_douts>
 
-  802853e:	0000      	movs	r0, r0
 
- 08028540 <SetROTypeActStr>:
 
- /**
 
-   * @brief  Источник срабатывания реле
 
-   */
 
- void SetROTypeActStr(char *str, uint8_t num)
 
- {
 
-  8028540:	b510      	push	{r4, lr}
 
-  8028542:	460c      	mov	r4, r1
 
- 	sSettings.sInOuts.ro_type_source[num] = atoi(str);
 
-  8028544:	f7f9 f9bc 	bl	80218c0 <atoi>
 
-  8028548:	4b04      	ldr	r3, [pc, #16]	; (802855c <SetROTypeActStr+0x1c>)
 
-  802854a:	191b      	adds	r3, r3, r4
 
- 	SetROInt(0, num);
 
-  802854c:	4621      	mov	r1, r4
 
- /**
 
-   * @brief  Источник срабатывания реле
 
-   */
 
- void SetROTypeActStr(char *str, uint8_t num)
 
- {
 
- 	sSettings.sInOuts.ro_type_source[num] = atoi(str);
 
-  802854e:	f883 0374 	strb.w	r0, [r3, #884]	; 0x374
 
- 	SetROInt(0, num);
 
-  8028552:	2000      	movs	r0, #0
 
- }
 
-  8028554:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
-   * @brief  Источник срабатывания реле
 
-   */
 
- void SetROTypeActStr(char *str, uint8_t num)
 
- {
 
- 	sSettings.sInOuts.ro_type_source[num] = atoi(str);
 
- 	SetROInt(0, num);
 
-  8028558:	f7ff bfeb 	b.w	8028532 <SetROInt>
 
-  802855c:	2000cfc4 	.word	0x2000cfc4
 
- 08028560 <SETTINGS_SetBootParamsDef>:
 
- /**
 
-   * @brief  Установить параметры обновления ПО по умолчанию
 
-   */
 
- void SETTINGS_SetBootParamsDef(void)
 
- {
 
-   sSettings.bootParams.loadMode = 0;
 
-  8028560:	4b02      	ldr	r3, [pc, #8]	; (802856c <SETTINGS_SetBootParamsDef+0xc>)
 
-  8028562:	2200      	movs	r2, #0
 
-  8028564:	701a      	strb	r2, [r3, #0]
 
-   sSettings.bootParams.bootTry = 0;
 
-  8028566:	705a      	strb	r2, [r3, #1]
 
-  8028568:	4770      	bx	lr
 
-  802856a:	bf00      	nop
 
-  802856c:	2000cfc4 	.word	0x2000cfc4
 
- 08028570 <SETTINGS_SetWebParamsDef>:
 
- /**
 
-   * @brief  Установить параметры сетевого подключения по умолчанию
 
-   */
 
- void SETTINGS_SetWebParamsDef(void)
 
- {
 
-  8028570:	b510      	push	{r4, lr}
 
- 	  strcpy(sSettings.sWebParams.ip, "192.168.1.2");
 
-  8028572:	4c09      	ldr	r4, [pc, #36]	; (8028598 <SETTINGS_SetWebParamsDef+0x28>)
 
-  8028574:	4909      	ldr	r1, [pc, #36]	; (802859c <SETTINGS_SetWebParamsDef+0x2c>)
 
-  8028576:	4620      	mov	r0, r4
 
-  8028578:	f7f9 fc3c 	bl	8021df4 <strcpy>
 
- 	  strcpy(sSettings.sWebParams.gate, "192.168.1.1");
 
-  802857c:	4908      	ldr	r1, [pc, #32]	; (80285a0 <SETTINGS_SetWebParamsDef+0x30>)
 
-  802857e:	f104 0010 	add.w	r0, r4, #16
 
-  8028582:	f7f9 fc37 	bl	8021df4 <strcpy>
 
- 	  strcpy(sSettings.sWebParams.mask, "255.255.255.0");
 
-  8028586:	f104 0020 	add.w	r0, r4, #32
 
-  802858a:	4906      	ldr	r1, [pc, #24]	; (80285a4 <SETTINGS_SetWebParamsDef+0x34>)
 
-  802858c:	f7f9 fc32 	bl	8021df4 <strcpy>
 
- 	  sSettings.sWebParams.dhcpEnable = 1;
 
-  8028590:	2201      	movs	r2, #1
 
-  8028592:	f884 2030 	strb.w	r2, [r4, #48]	; 0x30
 
-  8028596:	bd10      	pop	{r4, pc}
 
-  8028598:	2000cfc6 	.word	0x2000cfc6
 
-  802859c:	08039a12 	.word	0x08039a12
 
-  80285a0:	08039a1e 	.word	0x08039a1e
 
-  80285a4:	08039a2a 	.word	0x08039a2a
 
- 080285a8 <SETTINGS_SetTempWebParamsDef>:
 
- /**
 
-   * @brief  Установить временные параметры сетевого подключения по умолчанию
 
-   */
 
- void SETTINGS_SetTempWebParamsDef(void)
 
- {
 
-  80285a8:	b510      	push	{r4, lr}
 
- 	  strcpy(sSettings.sWebParams.ip, "192.168.1.2");
 
-  80285aa:	4c09      	ldr	r4, [pc, #36]	; (80285d0 <SETTINGS_SetTempWebParamsDef+0x28>)
 
-  80285ac:	4909      	ldr	r1, [pc, #36]	; (80285d4 <SETTINGS_SetTempWebParamsDef+0x2c>)
 
-  80285ae:	4620      	mov	r0, r4
 
-  80285b0:	f7f9 fc20 	bl	8021df4 <strcpy>
 
- 	  strcpy(sSettings.sWebParams.gate, "192.168.1.1");
 
-  80285b4:	4908      	ldr	r1, [pc, #32]	; (80285d8 <SETTINGS_SetTempWebParamsDef+0x30>)
 
-  80285b6:	f104 0010 	add.w	r0, r4, #16
 
-  80285ba:	f7f9 fc1b 	bl	8021df4 <strcpy>
 
- 	  strcpy(sSettings.sWebParams.mask, "255.255.255.0");
 
-  80285be:	f104 0020 	add.w	r0, r4, #32
 
-  80285c2:	4906      	ldr	r1, [pc, #24]	; (80285dc <SETTINGS_SetTempWebParamsDef+0x34>)
 
-  80285c4:	f7f9 fc16 	bl	8021df4 <strcpy>
 
- 	  sSettings.sWebParams.dhcpEnable = 1;
 
-  80285c8:	2201      	movs	r2, #1
 
-  80285ca:	f884 2030 	strb.w	r2, [r4, #48]	; 0x30
 
-  80285ce:	bd10      	pop	{r4, pc}
 
-  80285d0:	2000cfc6 	.word	0x2000cfc6
 
-  80285d4:	08039a12 	.word	0x08039a12
 
-  80285d8:	08039a1e 	.word	0x08039a1e
 
-  80285dc:	08039a2a 	.word	0x08039a2a
 
- 080285e0 <SETTINGS_SetSnmpDef>:
 
- /**
 
-   * @brief  Установить параметры SNMP по умолчанию
 
-   */
 
- void SETTINGS_SetSnmpDef(void)
 
- {
 
-  80285e0:	b570      	push	{r4, r5, r6, lr}
 
-   strcpy(sSettings.sSnmp.sysDescr, "");
 
-  80285e2:	4c1e      	ldr	r4, [pc, #120]	; (802865c <SETTINGS_SetSnmpDef+0x7c>)
 
-  80285e4:	4d1e      	ldr	r5, [pc, #120]	; (8028660 <SETTINGS_SetSnmpDef+0x80>)
 
-   strcpy(sSettings.sSnmp.readCommunity, "public");
 
-  80285e6:	4e1f      	ldr	r6, [pc, #124]	; (8028664 <SETTINGS_SetSnmpDef+0x84>)
 
- /**
 
-   * @brief  Установить параметры SNMP по умолчанию
 
-   */
 
- void SETTINGS_SetSnmpDef(void)
 
- {
 
-   strcpy(sSettings.sSnmp.sysDescr, "");
 
-  80285e8:	4629      	mov	r1, r5
 
-  80285ea:	4620      	mov	r0, r4
 
-  80285ec:	f7f9 fc02 	bl	8021df4 <strcpy>
 
-   strcpy(sSettings.sSnmp.readCommunity, "public");
 
-  80285f0:	4631      	mov	r1, r6
 
-  80285f2:	f104 00a0 	add.w	r0, r4, #160	; 0xa0
 
-  80285f6:	f7f9 fbfd 	bl	8021df4 <strcpy>
 
-   strcpy(sSettings.sSnmp.writeCommunity, "public");
 
-  80285fa:	4631      	mov	r1, r6
 
-  80285fc:	f104 00b4 	add.w	r0, r4, #180	; 0xb4
 
-  8028600:	f7f9 fbf8 	bl	8021df4 <strcpy>
 
-   strcpy(sSettings.sSnmp.sysContact, "");
 
-  8028604:	4629      	mov	r1, r5
 
-  8028606:	f104 00c8 	add.w	r0, r4, #200	; 0xc8
 
-  802860a:	f7f9 fbf3 	bl	8021df4 <strcpy>
 
-   strcpy(sSettings.sSnmp.sysName, SERIAL);
 
-  802860e:	f104 00fa 	add.w	r0, r4, #250	; 0xfa
 
-  8028612:	4915      	ldr	r1, [pc, #84]	; (8028668 <SETTINGS_SetSnmpDef+0x88>)
 
-  8028614:	f7f9 fbee 	bl	8021df4 <strcpy>
 
-   strcpy(sSettings.sSnmp.sysLocation, "");
 
-  8028618:	4629      	mov	r1, r5
 
-   strcpy(sSettings.sSnmp.managerIP, "0.0.0.0");
 
-  802861a:	4d14      	ldr	r5, [pc, #80]	; (802866c <SETTINGS_SetSnmpDef+0x8c>)
 
-   strcpy(sSettings.sSnmp.sysDescr, "");
 
-   strcpy(sSettings.sSnmp.readCommunity, "public");
 
-   strcpy(sSettings.sSnmp.writeCommunity, "public");
 
-   strcpy(sSettings.sSnmp.sysContact, "");
 
-   strcpy(sSettings.sSnmp.sysName, SERIAL);
 
-   strcpy(sSettings.sSnmp.sysLocation, "");
 
-  802861c:	f504 7087 	add.w	r0, r4, #270	; 0x10e
 
-  8028620:	f7f9 fbe8 	bl	8021df4 <strcpy>
 
-   strcpy(sSettings.sSnmp.managerIP, "0.0.0.0");
 
-  8028624:	4629      	mov	r1, r5
 
-  8028626:	f504 70be 	add.w	r0, r4, #380	; 0x17c
 
-  802862a:	f7f9 fbe3 	bl	8021df4 <strcpy>
 
-   strcpy(sSettings.sSnmp.managerIP2, "0.0.0.0");
 
-  802862e:	4629      	mov	r1, r5
 
-  8028630:	f504 70c8 	add.w	r0, r4, #400	; 0x190
 
-  8028634:	f7f9 fbde 	bl	8021df4 <strcpy>
 
-   strcpy(sSettings.sSnmp.managerIP3, "0.0.0.0");
 
-  8028638:	4629      	mov	r1, r5
 
-  802863a:	f504 70d2 	add.w	r0, r4, #420	; 0x1a4
 
-  802863e:	f7f9 fbd9 	bl	8021df4 <strcpy>
 
-   strcpy(sSettings.sSnmp.managerIP4, "0.0.0.0");
 
-  8028642:	4629      	mov	r1, r5
 
-  8028644:	f504 70dc 	add.w	r0, r4, #440	; 0x1b8
 
-  8028648:	f7f9 fbd4 	bl	8021df4 <strcpy>
 
-   strcpy(sSettings.sSnmp.managerIP5, "0.0.0.0");
 
-  802864c:	f504 70e6 	add.w	r0, r4, #460	; 0x1cc
 
-  8028650:	4629      	mov	r1, r5
 
- }
 
-  8028652:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
 
-   strcpy(sSettings.sSnmp.sysLocation, "");
 
-   strcpy(sSettings.sSnmp.managerIP, "0.0.0.0");
 
-   strcpy(sSettings.sSnmp.managerIP2, "0.0.0.0");
 
-   strcpy(sSettings.sSnmp.managerIP3, "0.0.0.0");
 
-   strcpy(sSettings.sSnmp.managerIP4, "0.0.0.0");
 
-   strcpy(sSettings.sSnmp.managerIP5, "0.0.0.0");
 
-  8028656:	f7f9 bbcd 	b.w	8021df4 <strcpy>
 
-  802865a:	bf00      	nop
 
-  802865c:	2000d0f5 	.word	0x2000d0f5
 
-  8028660:	08041134 	.word	0x08041134
 
-  8028664:	08039a38 	.word	0x08039a38
 
-  8028668:	08039a3f 	.word	0x08039a3f
 
-  802866c:	08039a4b 	.word	0x08039a4b
 
- 08028670 <SETTINGS_SetInfoDef>:
 
- /**
 
-   * @brief  Установить Информацию об устройстве по умолчанию
 
-   */
 
- void SETTINGS_SetInfoDef(void)
 
- {
 
-  8028670:	b510      	push	{r4, lr}
 
-   strcpy(sSettings.sInfo.productionData, "09.10.2015");
 
-  8028672:	4c0b      	ldr	r4, [pc, #44]	; (80286a0 <SETTINGS_SetInfoDef+0x30>)
 
-  8028674:	490b      	ldr	r1, [pc, #44]	; (80286a4 <SETTINGS_SetInfoDef+0x34>)
 
-  8028676:	4620      	mov	r0, r4
 
-  8028678:	f7f9 fbbc 	bl	8021df4 <strcpy>
 
-   strcpy(sSettings.sInfo.mac, DEVICE_MAC);
 
-  802867c:	f104 0028 	add.w	r0, r4, #40	; 0x28
 
-  8028680:	4909      	ldr	r1, [pc, #36]	; (80286a8 <SETTINGS_SetInfoDef+0x38>)
 
-  8028682:	f7f9 fbb7 	bl	8021df4 <strcpy>
 
-   strcpy(sSettings.sInfo.serialNumber, SERIAL);
 
-  8028686:	f104 003a 	add.w	r0, r4, #58	; 0x3a
 
-  802868a:	4908      	ldr	r1, [pc, #32]	; (80286ac <SETTINGS_SetInfoDef+0x3c>)
 
-  802868c:	f7f9 fbb2 	bl	8021df4 <strcpy>
 
-   strcpy(sSettings.sInfo.comments, "");
 
-  8028690:	4907      	ldr	r1, [pc, #28]	; (80286b0 <SETTINGS_SetInfoDef+0x40>)
 
-  8028692:	f104 004a 	add.w	r0, r4, #74	; 0x4a
 
- }  
 
-  8028696:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
- void SETTINGS_SetInfoDef(void)
 
- {
 
-   strcpy(sSettings.sInfo.productionData, "09.10.2015");
 
-   strcpy(sSettings.sInfo.mac, DEVICE_MAC);
 
-   strcpy(sSettings.sInfo.serialNumber, SERIAL);
 
-   strcpy(sSettings.sInfo.comments, "");
 
-  802869a:	f7f9 bbab 	b.w	8021df4 <strcpy>
 
-  802869e:	bf00      	nop
 
-  80286a0:	2000d028 	.word	0x2000d028
 
-  80286a4:	08039a53 	.word	0x08039a53
 
-  80286a8:	08039a5e 	.word	0x08039a5e
 
-  80286ac:	08039a3f 	.word	0x08039a3f
 
-  80286b0:	08041134 	.word	0x08041134
 
- 080286b4 <SETTINGS_SetServiceDef>:
 
- /**
 
-   * @brief  Установить значение сервисных настроек по умолчанию
 
-   */
 
- void SETTINGS_SetServiceDef(void)
 
- {
 
-  80286b4:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
 
-  80286b8:	4d14      	ldr	r5, [pc, #80]	; (802870c <SETTINGS_SetServiceDef+0x58>)
 
-  80286ba:	2400      	movs	r4, #0
 
- }
 
- /**
 
-   * @brief  Установить значение сервисных настроек по умолчанию
 
-   */
 
- void SETTINGS_SetServiceDef(void)
 
-  80286bc:	2717      	movs	r7, #23
 
-             strcpy(sSettings.sAuth[user_id].login, "admin");
 
-             strcpy(sSettings.sAuth[user_id].password, "12345");
 
-             break;
 
-         case 1:
 
-         default:
 
-         	sSettings.sAuth[user_id].level = USER;
 
-  80286be:	f04f 0801 	mov.w	r8, #1
 
- void SETTINGS_SetServiceDef(void)
 
- {
 
-     uint8_t user_id;
 
-     for (user_id = 0; user_id < MAX_WEB_USERS; user_id++) {
 
-         switch (user_id) {
 
-  80286c2:	f014 03ff 	ands.w	r3, r4, #255	; 0xff
 
-  80286c6:	d108      	bne.n	80286da <SETTINGS_SetServiceDef+0x26>
 
-         /* First users in the system is always ADMIN.
 
-          * Others are USER */
 
-         case 0:
 
-             sSettings.sAuth[user_id].level = ADMIN;
 
-             strcpy(sSettings.sAuth[user_id].login, "admin");
 
-  80286c8:	4911      	ldr	r1, [pc, #68]	; (8028710 <SETTINGS_SetServiceDef+0x5c>)
 
-  80286ca:	4812      	ldr	r0, [pc, #72]	; (8028714 <SETTINGS_SetServiceDef+0x60>)
 
-     for (user_id = 0; user_id < MAX_WEB_USERS; user_id++) {
 
-         switch (user_id) {
 
-         /* First users in the system is always ADMIN.
 
-          * Others are USER */
 
-         case 0:
 
-             sSettings.sAuth[user_id].level = ADMIN;
 
-  80286cc:	f885 3311 	strb.w	r3, [r5, #785]	; 0x311
 
-             strcpy(sSettings.sAuth[user_id].login, "admin");
 
-  80286d0:	f7f9 fb90 	bl	8021df4 <strcpy>
 
-             strcpy(sSettings.sAuth[user_id].password, "12345");
 
-  80286d4:	4810      	ldr	r0, [pc, #64]	; (8028718 <SETTINGS_SetServiceDef+0x64>)
 
-  80286d6:	4911      	ldr	r1, [pc, #68]	; (802871c <SETTINGS_SetServiceDef+0x68>)
 
-  80286d8:	e010      	b.n	80286fc <SETTINGS_SetServiceDef+0x48>
 
- }
 
- /**
 
-   * @brief  Установить значение сервисных настроек по умолчанию
 
-   */
 
- void SETTINGS_SetServiceDef(void)
 
-  80286da:	fb07 f604 	mul.w	r6, r7, r4
 
-  80286de:	19ab      	adds	r3, r5, r6
 
-             strcpy(sSettings.sAuth[user_id].password, "12345");
 
-             break;
 
-         case 1:
 
-         default:
 
-         	sSettings.sAuth[user_id].level = USER;
 
-             strcpy(sSettings.sAuth[user_id].login, "user");
 
-  80286e0:	f506 7044 	add.w	r0, r6, #784	; 0x310
 
-  80286e4:	1828      	adds	r0, r5, r0
 
-  80286e6:	490e      	ldr	r1, [pc, #56]	; (8028720 <SETTINGS_SetServiceDef+0x6c>)
 
-             strcpy(sSettings.sAuth[user_id].login, "admin");
 
-             strcpy(sSettings.sAuth[user_id].password, "12345");
 
-             break;
 
-         case 1:
 
-         default:
 
-         	sSettings.sAuth[user_id].level = USER;
 
-  80286e8:	f883 8311 	strb.w	r8, [r3, #785]	; 0x311
 
-             strcpy(sSettings.sAuth[user_id].login, "user");
 
-  80286ec:	3002      	adds	r0, #2
 
-             strcpy(sSettings.sAuth[user_id].password, "1234");
 
-  80286ee:	f506 7646 	add.w	r6, r6, #792	; 0x318
 
-             strcpy(sSettings.sAuth[user_id].password, "12345");
 
-             break;
 
-         case 1:
 
-         default:
 
-         	sSettings.sAuth[user_id].level = USER;
 
-             strcpy(sSettings.sAuth[user_id].login, "user");
 
-  80286f2:	f7f9 fb7f 	bl	8021df4 <strcpy>
 
-             strcpy(sSettings.sAuth[user_id].password, "1234");
 
-  80286f6:	19a8      	adds	r0, r5, r6
 
-  80286f8:	490a      	ldr	r1, [pc, #40]	; (8028724 <SETTINGS_SetServiceDef+0x70>)
 
-  80286fa:	3005      	adds	r0, #5
 
-  80286fc:	3401      	adds	r4, #1
 
-  80286fe:	f7f9 fb79 	bl	8021df4 <strcpy>
 
-   */
 
- void SETTINGS_SetServiceDef(void)
 
- {
 
-     uint8_t user_id;
 
-     for (user_id = 0; user_id < MAX_WEB_USERS; user_id++) {
 
-  8028702:	2c02      	cmp	r4, #2
 
-  8028704:	d1dd      	bne.n	80286c2 <SETTINGS_SetServiceDef+0xe>
 
-             strcpy(sSettings.sAuth[user_id].login, "user");
 
-             strcpy(sSettings.sAuth[user_id].password, "1234");
 
-             break;
 
-         }
 
-     }
 
- }
 
-  8028706:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 
-  802870a:	bf00      	nop
 
-  802870c:	2000cfc4 	.word	0x2000cfc4
 
-  8028710:	08039a70 	.word	0x08039a70
 
-  8028714:	2000d2d6 	.word	0x2000d2d6
 
-  8028718:	2000d2e1 	.word	0x2000d2e1
 
-  802871c:	08039a76 	.word	0x08039a76
 
-  8028720:	08039a7c 	.word	0x08039a7c
 
-  8028724:	08039a81 	.word	0x08039a81
 
- 08028728 <SETTINGS_SetSntpDef>:
 
- /**
 
-   * @brief  Установить параметры SNTP по умолчанию
 
-   */
 
- void SETTINGS_SetSntpDef(void)
 
- {
 
-  8028728:	b510      	push	{r4, lr}
 
-   sSettings.sSNTP.sntpEnable = true;
 
-  802872a:	4c08      	ldr	r4, [pc, #32]	; (802874c <SETTINGS_SetSntpDef+0x24>)
 
-   strcpy(sSettings.sSNTP.ip, "88.147.254.235");
 
-  802872c:	4908      	ldr	r1, [pc, #32]	; (8028750 <SETTINGS_SetSntpDef+0x28>)
 
-  802872e:	4809      	ldr	r0, [pc, #36]	; (8028754 <SETTINGS_SetSntpDef+0x2c>)
 
- /**
 
-   * @brief  Установить параметры SNTP по умолчанию
 
-   */
 
- void SETTINGS_SetSntpDef(void)
 
- {
 
-   sSettings.sSNTP.sntpEnable = true;
 
-  8028730:	2301      	movs	r3, #1
 
-  8028732:	f884 3340 	strb.w	r3, [r4, #832]	; 0x340
 
-   strcpy(sSettings.sSNTP.ip, "88.147.254.235");
 
-  8028736:	f7f9 fb5d 	bl	8021df4 <strcpy>
 
-   sSettings.sSNTP.timeZone = 3.0;
 
-  802873a:	4b07      	ldr	r3, [pc, #28]	; (8028758 <SETTINGS_SetSntpDef+0x30>)
 
-   strcpy(sSettings.sSNTP.data, "none");
 
-  802873c:	4807      	ldr	r0, [pc, #28]	; (802875c <SETTINGS_SetSntpDef+0x34>)
 
-  802873e:	4908      	ldr	r1, [pc, #32]	; (8028760 <SETTINGS_SetSntpDef+0x38>)
 
-   */
 
- void SETTINGS_SetSntpDef(void)
 
- {
 
-   sSettings.sSNTP.sntpEnable = true;
 
-   strcpy(sSettings.sSNTP.ip, "88.147.254.235");
 
-   sSettings.sSNTP.timeZone = 3.0;
 
-  8028740:	f8c4 3370 	str.w	r3, [r4, #880]	; 0x370
 
-   strcpy(sSettings.sSNTP.data, "none");
 
- }
 
-  8028744:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
- void SETTINGS_SetSntpDef(void)
 
- {
 
-   sSettings.sSNTP.sntpEnable = true;
 
-   strcpy(sSettings.sSNTP.ip, "88.147.254.235");
 
-   sSettings.sSNTP.timeZone = 3.0;
 
-   strcpy(sSettings.sSNTP.data, "none");
 
-  8028748:	f7f9 bb54 	b.w	8021df4 <strcpy>
 
-  802874c:	2000cfc4 	.word	0x2000cfc4
 
-  8028750:	08039a86 	.word	0x08039a86
 
-  8028754:	2000d305 	.word	0x2000d305
 
-  8028758:	40400000 	.word	0x40400000
 
-  802875c:	2000d315 	.word	0x2000d315
 
-  8028760:	08039a95 	.word	0x08039a95
 
- 08028764 <SETTINGS_SetINOUTSDef>:
 
- /**
 
-   * @brief  Установить параметры настроек сухих контактов / реле по умолчанию
 
-   */
 
- void SETTINGS_SetINOUTSDef(void)
 
- {
 
- 	sSettings.sInOuts.ro_type_source[0] = CRITICAL;
 
-  8028764:	4b05      	ldr	r3, [pc, #20]	; (802877c <SETTINGS_SetINOUTSDef+0x18>)
 
-  8028766:	2201      	movs	r2, #1
 
-  8028768:	f883 2374 	strb.w	r2, [r3, #884]	; 0x374
 
- 	sSettings.sInOuts.ro_type_source[1] = SNMP_SET;
 
-  802876c:	2203      	movs	r2, #3
 
-  802876e:	f883 2375 	strb.w	r2, [r3, #885]	; 0x375
 
- 	sSettings.sInOuts.din_type_act[0] = SNMP_TRAP;
 
-  8028772:	2202      	movs	r2, #2
 
-  8028774:	f883 2376 	strb.w	r2, [r3, #886]	; 0x376
 
-  8028778:	4770      	bx	lr
 
-  802877a:	bf00      	nop
 
-  802877c:	2000cfc4 	.word	0x2000cfc4
 
- 08028780 <SETTINGS_SetRADIUSDef>:
 
- /**
 
-   * @brief  Установить параметры RADIUS по умолчанию
 
-   */
 
- void SETTINGS_SetRADIUSDef(void)
 
- {
 
-  8028780:	b510      	push	{r4, lr}
 
-   sSettings.sRADIUS.Auth_enable = true;
 
-  8028782:	4c0b      	ldr	r4, [pc, #44]	; (80287b0 <SETTINGS_SetRADIUSDef+0x30>)
 
-   sSettings.sRADIUS.RDSEnable = true;
 
-   strcpy(sSettings.sRADIUS.ServerIP, "127.0.0.1");
 
-  8028784:	490b      	ldr	r1, [pc, #44]	; (80287b4 <SETTINGS_SetRADIUSDef+0x34>)
 
-  8028786:	480c      	ldr	r0, [pc, #48]	; (80287b8 <SETTINGS_SetRADIUSDef+0x38>)
 
- /**
 
-   * @brief  Установить параметры RADIUS по умолчанию
 
-   */
 
- void SETTINGS_SetRADIUSDef(void)
 
- {
 
-   sSettings.sRADIUS.Auth_enable = true;
 
-  8028788:	2301      	movs	r3, #1
 
-  802878a:	f884 3378 	strb.w	r3, [r4, #888]	; 0x378
 
-   sSettings.sRADIUS.RDSEnable = true;
 
-  802878e:	f884 339a 	strb.w	r3, [r4, #922]	; 0x39a
 
-   strcpy(sSettings.sRADIUS.ServerIP, "127.0.0.1");
 
-  8028792:	f7f9 fb2f 	bl	8021df4 <strcpy>
 
-   sSettings.sRADIUS.port = 1227;
 
-  8028796:	f240 43cb 	movw	r3, #1227	; 0x4cb
 
-   sSettings.sRADIUS.key_access = 123;
 
-   strcpy(sSettings.sRADIUS.rds_password, "12345");
 
-  802879a:	4808      	ldr	r0, [pc, #32]	; (80287bc <SETTINGS_SetRADIUSDef+0x3c>)
 
-  802879c:	4908      	ldr	r1, [pc, #32]	; (80287c0 <SETTINGS_SetRADIUSDef+0x40>)
 
- void SETTINGS_SetRADIUSDef(void)
 
- {
 
-   sSettings.sRADIUS.Auth_enable = true;
 
-   sSettings.sRADIUS.RDSEnable = true;
 
-   strcpy(sSettings.sRADIUS.ServerIP, "127.0.0.1");
 
-   sSettings.sRADIUS.port = 1227;
 
-  802879e:	f8c4 339c 	str.w	r3, [r4, #924]	; 0x39c
 
-   sSettings.sRADIUS.key_access = 123;
 
-  80287a2:	237b      	movs	r3, #123	; 0x7b
 
-  80287a4:	f8c4 33a0 	str.w	r3, [r4, #928]	; 0x3a0
 
-   strcpy(sSettings.sRADIUS.rds_password, "12345");
 
- }
 
-  80287a8:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
-   sSettings.sRADIUS.Auth_enable = true;
 
-   sSettings.sRADIUS.RDSEnable = true;
 
-   strcpy(sSettings.sRADIUS.ServerIP, "127.0.0.1");
 
-   sSettings.sRADIUS.port = 1227;
 
-   sSettings.sRADIUS.key_access = 123;
 
-   strcpy(sSettings.sRADIUS.rds_password, "12345");
 
-  80287ac:	f7f9 bb22 	b.w	8021df4 <strcpy>
 
-  80287b0:	2000cfc4 	.word	0x2000cfc4
 
-  80287b4:	08039a9a 	.word	0x08039a9a
 
-  80287b8:	2000d33d 	.word	0x2000d33d
 
-  80287bc:	2000d34d 	.word	0x2000d34d
 
-  80287c0:	08039a76 	.word	0x08039a76
 
- 080287c4 <SETTINGS_ReadFromFlash>:
 
-   */
 
- void SETTINGS_ReadFromFlash(uint8_t *data, uint32_t size)
 
- {
 
-   uint32_t baseAddress = SETTINGS_SECTOR;
 
-   
 
-   for (uint32_t i = 0; i < size; i++)
 
-  80287c4:	2300      	movs	r3, #0
 
-  80287c6:	e006      	b.n	80287d6 <SETTINGS_ReadFromFlash+0x12>
 
- 	*data++ = (*(uint32_t*)baseAddress++);;
 
-  80287c8:	f103 6200 	add.w	r2, r3, #134217728	; 0x8000000
 
-  80287cc:	f502 4280 	add.w	r2, r2, #16384	; 0x4000
 
-  80287d0:	6812      	ldr	r2, [r2, #0]
 
-  80287d2:	54c2      	strb	r2, [r0, r3]
 
-   */
 
- void SETTINGS_ReadFromFlash(uint8_t *data, uint32_t size)
 
- {
 
-   uint32_t baseAddress = SETTINGS_SECTOR;
 
-   
 
-   for (uint32_t i = 0; i < size; i++)
 
-  80287d4:	3301      	adds	r3, #1
 
-  80287d6:	428b      	cmp	r3, r1
 
-  80287d8:	d1f6      	bne.n	80287c8 <SETTINGS_ReadFromFlash+0x4>
 
- 	*data++ = (*(uint32_t*)baseAddress++);;
 
- }
 
-  80287da:	4770      	bx	lr
 
- 080287dc <SETTINGS_EraseFlashSector>:
 
-   */
 
- void SETTINGS_EraseFlashSector(void)
 
- {
 
-   FLASH_Status status;
 
-   if ((status = FLASH_EraseSector(FLASH_Sector_1, VoltageRange_3)) != FLASH_COMPLETE) {
 
-  80287dc:	2008      	movs	r0, #8
 
-  80287de:	2102      	movs	r1, #2
 
-  80287e0:	f7fc be32 	b.w	8025448 <FLASH_EraseSector>
 
- 080287e4 <SETTINGS_GetCRC>:
 
- /**
 
-   * @brief  
 
-   * @retval 
 
-   */
 
- uint32_t SETTINGS_GetCRC(void)
 
- {
 
-  80287e4:	b508      	push	{r3, lr}
 
-   CRC_ResetDR();
 
-  80287e6:	f7fc fd99 	bl	802531c <CRC_ResetDR>
 
-   return CRC_CalcBlockCRC((uint32_t*)&sSettings, sizeof(sSettings)/4 - 1);
 
-  80287ea:	4803      	ldr	r0, [pc, #12]	; (80287f8 <SETTINGS_GetCRC+0x14>)
 
-  80287ec:	21e9      	movs	r1, #233	; 0xe9
 
- }
 
-  80287ee:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
 
-   * @retval 
 
-   */
 
- uint32_t SETTINGS_GetCRC(void)
 
- {
 
-   CRC_ResetDR();
 
-   return CRC_CalcBlockCRC((uint32_t*)&sSettings, sizeof(sSettings)/4 - 1);
 
-  80287f2:	f7fc bd99 	b.w	8025328 <CRC_CalcBlockCRC>
 
-  80287f6:	bf00      	nop
 
-  80287f8:	2000cfc4 	.word	0x2000cfc4
 
- 080287fc <SETTINGS_WriteToFlash>:
 
- /**
 
-   * @brief  
 
-   */
 
- void SETTINGS_WriteToFlash(uint8_t *data, uint32_t size)
 
- {
 
-  80287fc:	e92d 4ff8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-  8028800:	4606      	mov	r6, r0
 
-  8028802:	468a      	mov	sl, r1
 
-   uint32_t baseAddress = SETTINGS_SECTOR;
 
-   uint32_t checkCrc = 0;
 
-   uint32_t crc = SETTINGS_GetCRC();
 
-  8028804:	f7ff ffee 	bl	80287e4 <SETTINGS_GetCRC>
 
- /**
 
-   * @brief  
 
-   */
 
- void SETTINGS_WriteToFlash(uint8_t *data, uint32_t size)
 
- {
 
-   uint32_t baseAddress = SETTINGS_SECTOR;
 
-  8028808:	4c17      	ldr	r4, [pc, #92]	; (8028868 <SETTINGS_WriteToFlash+0x6c>)
 
-   uint32_t checkCrc = 0;
 
-   uint32_t crc = SETTINGS_GetCRC();
 
-  802880a:	4680      	mov	r8, r0
 
-  802880c:	2703      	movs	r7, #3
 
-   FLASH_Status status;
 
-   for (uint8_t i = 0; i < 3; i++)
 
-   {	
 
- 		fAlarm = 0;
 
- 		FLASH_Unlock();
 
-  802880e:	f7fc fd9b 	bl	8025348 <FLASH_Unlock>
 
-  8028812:	4635      	mov	r5, r6
 
- 		SETTINGS_EraseFlashSector();
 
-  8028814:	f7ff ffe2 	bl	80287dc <SETTINGS_EraseFlashSector>
 
- }
 
- /**
 
-   * @brief  
 
-   */
 
- void SETTINGS_WriteToFlash(uint8_t *data, uint32_t size)
 
-  8028818:	eb04 0b0a 	add.w	fp, r4, sl
 
- 		fAlarm = 0;
 
- 		FLASH_Unlock();
 
- 		SETTINGS_EraseFlashSector();
 
- 		for (uint32_t i = 0; i < size; i++)
 
-  802881c:	e00a      	b.n	8028834 <SETTINGS_WriteToFlash+0x38>
 
- 		if ((status = FLASH_ProgramByte(baseAddress++, *data++)) != FLASH_COMPLETE) {
 
-  802881e:	f815 1b01 	ldrb.w	r1, [r5], #1
 
-  8028822:	4620      	mov	r0, r4
 
-  8028824:	f7fc fdd6 	bl	80253d4 <FLASH_ProgramByte>
 
-  8028828:	f104 0901 	add.w	r9, r4, #1
 
-  802882c:	2808      	cmp	r0, #8
 
-  802882e:	462e      	mov	r6, r5
 
-  8028830:	464c      	mov	r4, r9
 
-  8028832:	d102      	bne.n	802883a <SETTINGS_WriteToFlash+0x3e>
 
- 		fAlarm = 0;
 
- 		FLASH_Unlock();
 
- 		SETTINGS_EraseFlashSector();
 
- 		for (uint32_t i = 0; i < size; i++)
 
-  8028834:	455c      	cmp	r4, fp
 
-  8028836:	462e      	mov	r6, r5
 
-  8028838:	d1f1      	bne.n	802881e <SETTINGS_WriteToFlash+0x22>
 
- 		if ((status = FLASH_ProgramByte(baseAddress++, *data++)) != FLASH_COMPLETE) {
 
- 			 DBG printf("FLASH_ProgramByte error: status = %d\r\n", status);
 
- 			 break;
 
- 		 }
 
- 		if ((status = FLASH_ProgramWord((uint32_t)CRC_ADDRESS, crc)) != FLASH_COMPLETE) {
 
-  802883a:	4641      	mov	r1, r8
 
-  802883c:	480b      	ldr	r0, [pc, #44]	; (802886c <SETTINGS_WriteToFlash+0x70>)
 
-  802883e:	f7fc fde5 	bl	802540c <FLASH_ProgramWord>
 
- 			 DBG printf("FLASH_ProgramWord error: status = %d\r\n", status);
 
- 		 }
 
- 		FLASH_Lock();
 
-  8028842:	f7fc fd8f 	bl	8025364 <FLASH_Lock>
 
- 		/* Считываем что записали */
 
- 		SETTINGS_ReadFromFlash((uint8_t*)&sSettings, sizeof(sSettings));
 
-  8028846:	480a      	ldr	r0, [pc, #40]	; (8028870 <SETTINGS_WriteToFlash+0x74>)
 
-  8028848:	f44f 716a 	mov.w	r1, #936	; 0x3a8
 
-  802884c:	f7ff ffba 	bl	80287c4 <SETTINGS_ReadFromFlash>
 
- 		checkCrc = SETTINGS_GetCRC();
 
-  8028850:	f7ff ffc8 	bl	80287e4 <SETTINGS_GetCRC>
 
- 	
 
- 		/* Проверяем  CRC того что было записано */
 
- 		if (checkCrc == crc)
 
-  8028854:	4540      	cmp	r0, r8
 
-  8028856:	d004      	beq.n	8028862 <SETTINGS_WriteToFlash+0x66>
 
-  8028858:	3f01      	subs	r7, #1
 
-   uint32_t checkCrc = 0;
 
-   uint32_t crc = SETTINGS_GetCRC();
 
-   bool fAlarm = 0;	
 
-   FLASH_Status status;
 
-   for (uint8_t i = 0; i < 3; i++)
 
-  802885a:	f017 07ff 	ands.w	r7, r7, #255	; 0xff
 
-  802885e:	d1d6      	bne.n	802880e <SETTINGS_WriteToFlash+0x12>
 
-  8028860:	e7fe      	b.n	8028860 <SETTINGS_WriteToFlash+0x64>
 
-  8028862:	e8bd 8ff8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
-  8028866:	bf00      	nop
 
-  8028868:	08004000 	.word	0x08004000
 
-  802886c:	08005f9c 	.word	0x08005f9c
 
-  8028870:	2000cfc4 	.word	0x2000cfc4
 
- 08028874 <SETTINGS_GetCritSecCRC>:
 
- /**
 
-   * @brief
 
-   * @retval
 
-   */
 
- uint32_t SETTINGS_GetCritSecCRC(void)
 
- {
 
-  8028874:	b508      	push	{r3, lr}
 
-   CRC_ResetDR();
 
-  8028876:	f7fc fd51 	bl	802531c <CRC_ResetDR>
 
-   uint32_t critsec_len = (uint32_t)((uint8_t *)(&sSettings.CritSecCRC) - (uint8_t *)&sSettings) / 4;
 
-   return CRC_CalcBlockCRC((uint32_t *)&sSettings, critsec_len);
 
-  802887a:	4803      	ldr	r0, [pc, #12]	; (8028888 <SETTINGS_GetCritSecCRC+0x14>)
 
-  802887c:	2147      	movs	r1, #71	; 0x47
 
- }
 
-  802887e:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
 
-   */
 
- uint32_t SETTINGS_GetCritSecCRC(void)
 
- {
 
-   CRC_ResetDR();
 
-   uint32_t critsec_len = (uint32_t)((uint8_t *)(&sSettings.CritSecCRC) - (uint8_t *)&sSettings) / 4;
 
-   return CRC_CalcBlockCRC((uint32_t *)&sSettings, critsec_len);
 
-  8028882:	f7fc bd51 	b.w	8025328 <CRC_CalcBlockCRC>
 
-  8028886:	bf00      	nop
 
-  8028888:	2000cfc4 	.word	0x2000cfc4
 
- 0802888c <SETTINGS_Save>:
 
-   
 
- /**
 
-   * @brief  Запись структуры настроек во flesh
 
-   */
 
- void SETTINGS_Save(void)
 
- {
 
-  802888c:	b508      	push	{r3, lr}
 
-   /* Calc critical section CRC and store to the settings structure */
 
-   sSettings.CritSecCRC = SETTINGS_GetCritSecCRC();
 
-  802888e:	f7ff fff1 	bl	8028874 <SETTINGS_GetCritSecCRC>
 
-  8028892:	4b05      	ldr	r3, [pc, #20]	; (80288a8 <SETTINGS_Save+0x1c>)
 
-   SETTINGS_WriteToFlash((uint8_t*)&sSettings, sizeof(sSettings));
 
-  8028894:	f44f 716a 	mov.w	r1, #936	; 0x3a8
 
-   * @brief  Запись структуры настроек во flesh
 
-   */
 
- void SETTINGS_Save(void)
 
- {
 
-   /* Calc critical section CRC and store to the settings structure */
 
-   sSettings.CritSecCRC = SETTINGS_GetCritSecCRC();
 
-  8028898:	f8c3 011c 	str.w	r0, [r3, #284]	; 0x11c
 
-   SETTINGS_WriteToFlash((uint8_t*)&sSettings, sizeof(sSettings));
 
-  802889c:	4618      	mov	r0, r3
 
- }
 
-  802889e:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
 
- void SETTINGS_Save(void)
 
- {
 
-   /* Calc critical section CRC and store to the settings structure */
 
-   sSettings.CritSecCRC = SETTINGS_GetCritSecCRC();
 
-   SETTINGS_WriteToFlash((uint8_t*)&sSettings, sizeof(sSettings));
 
-  80288a2:	f7ff bfab 	b.w	80287fc <SETTINGS_WriteToFlash>
 
-  80288a6:	bf00      	nop
 
-  80288a8:	2000cfc4 	.word	0x2000cfc4
 
- 080288ac <SETTINGS_SetDefaultDebug>:
 
- /**
 
-   * @brief  Установка настроек для отладки
 
-   */
 
- void SETTINGS_SetDefaultDebug(void)
 
- {
 
-  80288ac:	b510      	push	{r4, lr}
 
- /**
 
-   * @brief  Установить флаги по умолчанию
 
-   */
 
- void SETTINGS_SetFlagsDef(void)
 
- {
 
-   sSettings.sFlags.netsettingsChanged = false;
 
-  80288ae:	4c0d      	ldr	r4, [pc, #52]	; (80288e4 <SETTINGS_SetDefaultDebug+0x38>)
 
- /**
 
-   * @brief  Установка настроек для отладки
 
-   */
 
- void SETTINGS_SetDefaultDebug(void)
 
- {
 
-   SETTINGS_SetWebParamsDef();
 
-  80288b0:	f7ff fe5e 	bl	8028570 <SETTINGS_SetWebParamsDef>
 
-   SETTINGS_SetTempWebParamsDef();
 
-  80288b4:	f7ff fe78 	bl	80285a8 <SETTINGS_SetTempWebParamsDef>
 
-   SETTINGS_SetSnmpDef();
 
-  80288b8:	f7ff fe92 	bl	80285e0 <SETTINGS_SetSnmpDef>
 
-   SETTINGS_SetBootParamsDef();
 
-  80288bc:	f7ff fe50 	bl	8028560 <SETTINGS_SetBootParamsDef>
 
- /**
 
-   * @brief  Установить флаги по умолчанию
 
-   */
 
- void SETTINGS_SetFlagsDef(void)
 
- {
 
-   sSettings.sFlags.netsettingsChanged = false;
 
-  80288c0:	2300      	movs	r3, #0
 
-  80288c2:	f884 3120 	strb.w	r3, [r4, #288]	; 0x120
 
-   SETTINGS_SetTempWebParamsDef();
 
-   SETTINGS_SetSnmpDef();
 
-   SETTINGS_SetBootParamsDef();
 
-   SETTINGS_SetFlagsDef();
 
-   //SETTINGS_SetServiceDef();
 
-   SETTINGS_SetSntpDef();
 
-  80288c6:	f7ff ff2f 	bl	8028728 <SETTINGS_SetSntpDef>
 
-   SETTINGS_SetINOUTSDef();
 
-  80288ca:	f7ff ff4b 	bl	8028764 <SETTINGS_SetINOUTSDef>
 
-   SETTINGS_SetRADIUSDef();
 
-  80288ce:	f7ff ff57 	bl	8028780 <SETTINGS_SetRADIUSDef>
 
-   //SETTINGS_SetInfoDef();
 
-   
 
-   sSettings.CritSecCRC = SETTINGS_GetCritSecCRC();
 
-  80288d2:	f7ff ffcf 	bl	8028874 <SETTINGS_GetCritSecCRC>
 
-   sSettings.controlWorld = SETTINGS_CONTROL_WORD;
 
-  80288d6:	4b04      	ldr	r3, [pc, #16]	; (80288e8 <SETTINGS_SetDefaultDebug+0x3c>)
 
-   SETTINGS_SetSntpDef();
 
-   SETTINGS_SetINOUTSDef();
 
-   SETTINGS_SetRADIUSDef();
 
-   //SETTINGS_SetInfoDef();
 
-   
 
-   sSettings.CritSecCRC = SETTINGS_GetCritSecCRC();
 
-  80288d8:	f8c4 011c 	str.w	r0, [r4, #284]	; 0x11c
 
-   sSettings.controlWorld = SETTINGS_CONTROL_WORD;
 
-  80288dc:	f8c4 33a4 	str.w	r3, [r4, #932]	; 0x3a4
 
-  80288e0:	bd10      	pop	{r4, pc}
 
-  80288e2:	bf00      	nop
 
-  80288e4:	2000cfc4 	.word	0x2000cfc4
 
-  80288e8:	075bcd15 	.word	0x075bcd15
 
- 080288ec <SETTINGS_SetAllDefault>:
 
- /**
 
-   * @brief  Сброс всех настроек в значения по умолчанию
 
-   */
 
- void SETTINGS_SetAllDefault(void)
 
- {
 
-  80288ec:	b510      	push	{r4, lr}
 
- /**
 
-   * @brief  Установить флаги по умолчанию
 
-   */
 
- void SETTINGS_SetFlagsDef(void)
 
- {
 
-   sSettings.sFlags.netsettingsChanged = false;
 
-  80288ee:	4c0f      	ldr	r4, [pc, #60]	; (802892c <SETTINGS_SetAllDefault+0x40>)
 
- /**
 
-   * @brief  Сброс всех настроек в значения по умолчанию
 
-   */
 
- void SETTINGS_SetAllDefault(void)
 
- {
 
-   SETTINGS_SetBootParamsDef();
 
-  80288f0:	f7ff fe36 	bl	8028560 <SETTINGS_SetBootParamsDef>
 
-   SETTINGS_SetWebParamsDef();
 
-  80288f4:	f7ff fe3c 	bl	8028570 <SETTINGS_SetWebParamsDef>
 
-   SETTINGS_SetTempWebParamsDef();
 
-  80288f8:	f7ff fe56 	bl	80285a8 <SETTINGS_SetTempWebParamsDef>
 
-   SETTINGS_SetSnmpDef();
 
-  80288fc:	f7ff fe70 	bl	80285e0 <SETTINGS_SetSnmpDef>
 
-   SETTINGS_SetInfoDef();
 
-  8028900:	f7ff feb6 	bl	8028670 <SETTINGS_SetInfoDef>
 
- /**
 
-   * @brief  Установить флаги по умолчанию
 
-   */
 
- void SETTINGS_SetFlagsDef(void)
 
- {
 
-   sSettings.sFlags.netsettingsChanged = false;
 
-  8028904:	2300      	movs	r3, #0
 
-  8028906:	f884 3120 	strb.w	r3, [r4, #288]	; 0x120
 
-   SETTINGS_SetWebParamsDef();
 
-   SETTINGS_SetTempWebParamsDef();
 
-   SETTINGS_SetSnmpDef();
 
-   SETTINGS_SetInfoDef();
 
-   SETTINGS_SetFlagsDef();
 
-   SETTINGS_SetServiceDef();
 
-  802890a:	f7ff fed3 	bl	80286b4 <SETTINGS_SetServiceDef>
 
-   SETTINGS_SetSntpDef();
 
-  802890e:	f7ff ff0b 	bl	8028728 <SETTINGS_SetSntpDef>
 
-   SETTINGS_SetINOUTSDef();
 
-  8028912:	f7ff ff27 	bl	8028764 <SETTINGS_SetINOUTSDef>
 
-   SETTINGS_SetRADIUSDef();
 
-  8028916:	f7ff ff33 	bl	8028780 <SETTINGS_SetRADIUSDef>
 
-   
 
-   sSettings.CritSecCRC = SETTINGS_GetCritSecCRC();
 
-  802891a:	f7ff ffab 	bl	8028874 <SETTINGS_GetCritSecCRC>
 
-   sSettings.controlWorld = SETTINGS_CONTROL_WORD;
 
-  802891e:	4b04      	ldr	r3, [pc, #16]	; (8028930 <SETTINGS_SetAllDefault+0x44>)
 
-   SETTINGS_SetServiceDef();
 
-   SETTINGS_SetSntpDef();
 
-   SETTINGS_SetINOUTSDef();
 
-   SETTINGS_SetRADIUSDef();
 
-   
 
-   sSettings.CritSecCRC = SETTINGS_GetCritSecCRC();
 
-  8028920:	f8c4 011c 	str.w	r0, [r4, #284]	; 0x11c
 
-   sSettings.controlWorld = SETTINGS_CONTROL_WORD;
 
-  8028924:	f8c4 33a4 	str.w	r3, [r4, #932]	; 0x3a4
 
-  8028928:	bd10      	pop	{r4, pc}
 
-  802892a:	bf00      	nop
 
-  802892c:	2000cfc4 	.word	0x2000cfc4
 
-  8028930:	075bcd15 	.word	0x075bcd15
 
- 08028934 <SETTINGS_Load>:
 
- /**
 
-   * @brief  Загрузка структуры настроек из flesh
 
-   */
 
- void SETTINGS_Load(void)
 
- {
 
-  8028934:	b510      	push	{r4, lr}
 
-   uint32_t loadCRC;  // CRC из flash
 
-   uint32_t newCRC;   // CRC загруженной структуры настроек
 
-   SETTINGS_ReadFromFlash((uint8_t*)&sSettings, sizeof(sSettings));
 
-  8028936:	4809      	ldr	r0, [pc, #36]	; (802895c <SETTINGS_Load+0x28>)
 
-  8028938:	f44f 716a 	mov.w	r1, #936	; 0x3a8
 
-  802893c:	f7ff ff42 	bl	80287c4 <SETTINGS_ReadFromFlash>
 
-   /* Считываем CRC из флеш памяти */
 
-   loadCRC = (*(uint32_t*)CRC_ADDRESS);
 
-  8028940:	4b07      	ldr	r3, [pc, #28]	; (8028960 <SETTINGS_Load+0x2c>)
 
-  8028942:	681c      	ldr	r4, [r3, #0]
 
-   /* Рассчитываем CRC для структуры настроек */
 
-   newCRC = SETTINGS_GetCRC();
 
-  8028944:	f7ff ff4e 	bl	80287e4 <SETTINGS_GetCRC>
 
-   if (loadCRC != newCRC) {
 
-  8028948:	4284      	cmp	r4, r0
 
-  802894a:	d005      	beq.n	8028958 <SETTINGS_Load+0x24>
 
- 	   SETTINGS_SetAllDefault();
 
-  802894c:	f7ff ffce 	bl	80288ec <SETTINGS_SetAllDefault>
 
- 	   SETTINGS_Save();
 
-    }
 
- }
 
-  8028950:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
-   /* Рассчитываем CRC для структуры настроек */
 
-   newCRC = SETTINGS_GetCRC();
 
-   if (loadCRC != newCRC) {
 
- 	   SETTINGS_SetAllDefault();
 
- 	   SETTINGS_Save();
 
-  8028954:	f7ff bf9a 	b.w	802888c <SETTINGS_Save>
 
-  8028958:	bd10      	pop	{r4, pc}
 
-  802895a:	bf00      	nop
 
-  802895c:	2000cfc4 	.word	0x2000cfc4
 
-  8028960:	08005f9c 	.word	0x08005f9c
 
- 08028964 <SETTINGS_SetPartDefault>:
 
- /**
 
-   * @brief  Сброс всех настроек в значения по умолчанию кроме сетевых настроек
 
-   */
 
- void SETTINGS_SetPartDefault(void)
 
- {
 
-  8028964:	b510      	push	{r4, lr}
 
- /**
 
-   * @brief  Установить флаги по умолчанию
 
-   */
 
- void SETTINGS_SetFlagsDef(void)
 
- {
 
-   sSettings.sFlags.netsettingsChanged = false;
 
-  8028966:	4c0b      	ldr	r4, [pc, #44]	; (8028994 <SETTINGS_SetPartDefault+0x30>)
 
- /**
 
-   * @brief  Сброс всех настроек в значения по умолчанию кроме сетевых настроек
 
-   */
 
- void SETTINGS_SetPartDefault(void)
 
- {
 
-   SETTINGS_SetBootParamsDef();
 
-  8028968:	f7ff fdfa 	bl	8028560 <SETTINGS_SetBootParamsDef>
 
-   SETTINGS_SetSnmpDef();
 
-  802896c:	f7ff fe38 	bl	80285e0 <SETTINGS_SetSnmpDef>
 
- /**
 
-   * @brief  Установить флаги по умолчанию
 
-   */
 
- void SETTINGS_SetFlagsDef(void)
 
- {
 
-   sSettings.sFlags.netsettingsChanged = false;
 
-  8028970:	2300      	movs	r3, #0
 
-  8028972:	f884 3120 	strb.w	r3, [r4, #288]	; 0x120
 
- {
 
-   SETTINGS_SetBootParamsDef();
 
-   SETTINGS_SetSnmpDef();
 
-   SETTINGS_SetFlagsDef();
 
-  // SETTINGS_SetServiceDef();
 
-   SETTINGS_SetSntpDef();
 
-  8028976:	f7ff fed7 	bl	8028728 <SETTINGS_SetSntpDef>
 
-   SETTINGS_SetINOUTSDef();
 
-  802897a:	f7ff fef3 	bl	8028764 <SETTINGS_SetINOUTSDef>
 
-   SETTINGS_SetRADIUSDef();
 
-  802897e:	f7ff feff 	bl	8028780 <SETTINGS_SetRADIUSDef>
 
-   
 
-   sSettings.CritSecCRC = SETTINGS_GetCritSecCRC();
 
-  8028982:	f7ff ff77 	bl	8028874 <SETTINGS_GetCritSecCRC>
 
-   sSettings.controlWorld = SETTINGS_CONTROL_WORD;
 
-  8028986:	4b04      	ldr	r3, [pc, #16]	; (8028998 <SETTINGS_SetPartDefault+0x34>)
 
-  // SETTINGS_SetServiceDef();
 
-   SETTINGS_SetSntpDef();
 
-   SETTINGS_SetINOUTSDef();
 
-   SETTINGS_SetRADIUSDef();
 
-   
 
-   sSettings.CritSecCRC = SETTINGS_GetCritSecCRC();
 
-  8028988:	f8c4 011c 	str.w	r0, [r4, #284]	; 0x11c
 
-   sSettings.controlWorld = SETTINGS_CONTROL_WORD;
 
-  802898c:	f8c4 33a4 	str.w	r3, [r4, #932]	; 0x3a4
 
-  8028990:	bd10      	pop	{r4, pc}
 
-  8028992:	bf00      	nop
 
-  8028994:	2000cfc4 	.word	0x2000cfc4
 
-  8028998:	075bcd15 	.word	0x075bcd15
 
- 0802899c <SETTINGS_ResetBootTry>:
 
- /**
 
-   * @brief   Сброс флага boottry в регистре RTC
 
-   */
 
- void SETTINGS_ResetBootTry(void)
 
- {
 
-   uint8_t bootTry = RTC_ReadBackupRegister(RTC_BKP_DR2);
 
-  802899c:	2002      	movs	r0, #2
 
- /**
 
-   * @brief   Сброс флага boottry в регистре RTC
 
-   */
 
- void SETTINGS_ResetBootTry(void)
 
- {
 
-  802899e:	b508      	push	{r3, lr}
 
-   uint8_t bootTry = RTC_ReadBackupRegister(RTC_BKP_DR2);
 
-  80289a0:	f7fd f8b6 	bl	8025b10 <RTC_ReadBackupRegister>
 
-   if (bootTry > 0 )
 
-  80289a4:	f010 0fff 	tst.w	r0, #255	; 0xff
 
-  80289a8:	d014      	beq.n	80289d4 <SETTINGS_ResetBootTry+0x38>
 
-   {
 
- 	bootTry = 0;
 
- 	RTC_WriteBackupRegister(RTC_BKP_DR2, 0);
 
-  80289aa:	2002      	movs	r0, #2
 
-  80289ac:	2100      	movs	r1, #0
 
-  80289ae:	f7fd f89f 	bl	8025af0 <RTC_WriteBackupRegister>
 
- 	/* Check FW update flag */
 
- 	if (RTC_ReadBackupRegister(RTC_BKP_DR3)) {
 
-  80289b2:	2003      	movs	r0, #3
 
-  80289b4:	f7fd f8ac 	bl	8025b10 <RTC_ReadBackupRegister>
 
-  80289b8:	b160      	cbz	r0, 80289d4 <SETTINGS_ResetBootTry+0x38>
 
- 		/* Отправка трапа об успешном обновлении ПО */
 
- 		SNMP_SendUserTrap(FW_VERSION_UPDATED);
 
-  80289ba:	2002      	movs	r0, #2
 
-  80289bc:	f00f fbbe 	bl	803813c <SNMP_SendUserTrap>
 
- 		log_event_data(LOG_UPDATE_SOFT, "Успешно");
 
-  80289c0:	2002      	movs	r0, #2
 
-  80289c2:	4905      	ldr	r1, [pc, #20]	; (80289d8 <SETTINGS_ResetBootTry+0x3c>)
 
-  80289c4:	f001 f84a 	bl	8029a5c <log_event_data>
 
- 		/* Clear FW update flag */
 
- 		RTC_WriteBackupRegister(RTC_BKP_DR3, 0);
 
-  80289c8:	2003      	movs	r0, #3
 
-  80289ca:	2100      	movs	r1, #0
 
- 	
 
- 	//taskENTER_CRITICAL();
 
-     SETTINGS_Save();
 
-     //taskEXIT_CRITICAL();
 
-   }	*/
 
- }
 
-  80289cc:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
 
- 		/* Отправка трапа об успешном обновлении ПО */
 
- 		SNMP_SendUserTrap(FW_VERSION_UPDATED);
 
- 		log_event_data(LOG_UPDATE_SOFT, "Успешно");
 
- 		/* Clear FW update flag */
 
- 		RTC_WriteBackupRegister(RTC_BKP_DR3, 0);
 
-  80289d0:	f7fd b88e 	b.w	8025af0 <RTC_WriteBackupRegister>
 
-  80289d4:	bd08      	pop	{r3, pc}
 
-  80289d6:	bf00      	nop
 
-  80289d8:	08039aa4 	.word	0x08039aa4
 
- 080289dc <SETTINGS_GetMac>:
 
- /**
 
-   * @brief  Преобразует mac адрес строкового формата в массив uint8_t
 
-   * @param  mac - буфер для вывода mac адреса
 
-   */
 
- void SETTINGS_GetMac(uint8_t *mac)
 
- {
 
-  80289dc:	b573      	push	{r0, r1, r4, r5, r6, lr}
 
-   char dummy[2];
 
-   char *macPtr = sSettings.sInfo.mac;	
 
-   
 
-   for (uint8_t i = 0; i < 6; i++)
 
-   {
 
-     strncpy(dummy, macPtr+i*3, 2);
 
-  80289de:	4e0a      	ldr	r6, [pc, #40]	; (8028a08 <SETTINGS_GetMac+0x2c>)
 
- /**
 
-   * @brief  Преобразует mac адрес строкового формата в массив uint8_t
 
-   * @param  mac - буфер для вывода mac адреса
 
-   */
 
- void SETTINGS_GetMac(uint8_t *mac)
 
-  80289e0:	1e45      	subs	r5, r0, #1
 
-  80289e2:	2400      	movs	r4, #0
 
-   char dummy[2];
 
-   char *macPtr = sSettings.sInfo.mac;	
 
-   
 
-   for (uint8_t i = 0; i < 6; i++)
 
-   {
 
-     strncpy(dummy, macPtr+i*3, 2);
 
-  80289e4:	1931      	adds	r1, r6, r4
 
-  80289e6:	318c      	adds	r1, #140	; 0x8c
 
-  80289e8:	2202      	movs	r2, #2
 
-  80289ea:	a801      	add	r0, sp, #4
 
-  80289ec:	f7f9 fb18 	bl	8022020 <strncpy>
 
- 	mac[i] = (uint8_t)strtol(dummy, NULL, 16);
 
-  80289f0:	2100      	movs	r1, #0
 
-  80289f2:	2210      	movs	r2, #16
 
-  80289f4:	a801      	add	r0, sp, #4
 
-  80289f6:	f7fa fe49 	bl	802368c <strtol>
 
-  80289fa:	3403      	adds	r4, #3
 
- void SETTINGS_GetMac(uint8_t *mac)
 
- {
 
-   char dummy[2];
 
-   char *macPtr = sSettings.sInfo.mac;	
 
-   
 
-   for (uint8_t i = 0; i < 6; i++)
 
-  80289fc:	2c12      	cmp	r4, #18
 
-   {
 
-     strncpy(dummy, macPtr+i*3, 2);
 
- 	mac[i] = (uint8_t)strtol(dummy, NULL, 16);
 
-  80289fe:	f805 0f01 	strb.w	r0, [r5, #1]!
 
- void SETTINGS_GetMac(uint8_t *mac)
 
- {
 
-   char dummy[2];
 
-   char *macPtr = sSettings.sInfo.mac;	
 
-   
 
-   for (uint8_t i = 0; i < 6; i++)
 
-  8028a02:	d1ef      	bne.n	80289e4 <SETTINGS_GetMac+0x8>
 
-   {
 
-     strncpy(dummy, macPtr+i*3, 2);
 
- 	mac[i] = (uint8_t)strtol(dummy, NULL, 16);
 
-   }
 
- }
 
-  8028a04:	bd7c      	pop	{r2, r3, r4, r5, r6, pc}
 
-  8028a06:	bf00      	nop
 
-  8028a08:	2000cfc4 	.word	0x2000cfc4
 
- 08028a0c <SETTINGS_SetProDate>:
 
- /**
 
-   * @brief  Установить дату производства
 
-   */
 
- void SETTINGS_SetProDate(char *proDate, uint8_t len)
 
- {
 
-  8028a0c:	b570      	push	{r4, r5, r6, lr}
 
-   memset(sSettings.sInfo.productionData, 0, 40);
 
-  8028a0e:	4c07      	ldr	r4, [pc, #28]	; (8028a2c <SETTINGS_SetProDate+0x20>)
 
- /**
 
-   * @brief  Установить дату производства
 
-   */
 
- void SETTINGS_SetProDate(char *proDate, uint8_t len)
 
- {
 
-  8028a10:	4606      	mov	r6, r0
 
-  8028a12:	460d      	mov	r5, r1
 
-   memset(sSettings.sInfo.productionData, 0, 40);
 
-  8028a14:	2228      	movs	r2, #40	; 0x28
 
-  8028a16:	2100      	movs	r1, #0
 
-  8028a18:	4620      	mov	r0, r4
 
-  8028a1a:	f7f9 f871 	bl	8021b00 <memset>
 
-   memcpy(sSettings.sInfo.productionData, proDate, len); 
 
-  8028a1e:	4620      	mov	r0, r4
 
-  8028a20:	4631      	mov	r1, r6
 
-  8028a22:	462a      	mov	r2, r5
 
- }
 
-  8028a24:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
 
-   * @brief  Установить дату производства
 
-   */
 
- void SETTINGS_SetProDate(char *proDate, uint8_t len)
 
- {
 
-   memset(sSettings.sInfo.productionData, 0, 40);
 
-   memcpy(sSettings.sInfo.productionData, proDate, len); 
 
-  8028a28:	f7f8 bfb0 	b.w	802198c <memcpy>
 
-  8028a2c:	2000d028 	.word	0x2000d028
 
- 08028a30 <LED_On>:
 
- /**
 
-   * @brief  
 
-   */
 
- void LED_On(gpio_t pin)
 
- {
 
- 	gpio_set(pin, 1);
 
-  8028a30:	2101      	movs	r1, #1
 
-  8028a32:	f7fd ba7d 	b.w	8025f30 <gpio_set>
 
- 08028a36 <LED_Off>:
 
- /**
 
-   * @brief  
 
-   */
 
- void LED_Off(gpio_t pin)
 
- {
 
- 	gpio_set(pin, 0);
 
-  8028a36:	2100      	movs	r1, #0
 
-  8028a38:	f7fd ba7a 	b.w	8025f30 <gpio_set>
 
- 08028a3c <LED_Init>:
 
- /**
 
-   * @brief  
 
-   * @retval 
 
-   */
 
- void LED_Init(void)
 
- {
 
-  8028a3c:	b508      	push	{r3, lr}
 
-   LED_Off(LED_INIT_R);
 
-  8028a3e:	2009      	movs	r0, #9
 
-  8028a40:	f7ff fff9 	bl	8028a36 <LED_Off>
 
-   LED_Off(LED_INIT_G);
 
-  8028a44:	200a      	movs	r0, #10
 
-  8028a46:	f7ff fff6 	bl	8028a36 <LED_Off>
 
-   LED_Off(LED_MAJOR_R);
 
-  8028a4a:	200b      	movs	r0, #11
 
-  8028a4c:	f7ff fff3 	bl	8028a36 <LED_Off>
 
-   LED_Off(LED_MINOR_G);
 
-  8028a50:	200c      	movs	r0, #12
 
-  8028a52:	f7ff fff0 	bl	8028a36 <LED_Off>
 
-   LED_Off(LED_MINOR_R);
 
-  8028a56:	200d      	movs	r0, #13
 
- }
 
-  8028a58:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
 
- {
 
-   LED_Off(LED_INIT_R);
 
-   LED_Off(LED_INIT_G);
 
-   LED_Off(LED_MAJOR_R);
 
-   LED_Off(LED_MINOR_G);
 
-   LED_Off(LED_MINOR_R);
 
-  8028a5c:	f7ff bfeb 	b.w	8028a36 <LED_Off>
 
- 08028a60 <vTaskLedBlink>:
 
- /**
 
-   * @brief  Задача простой мигалки
 
-   */
 
- void vTaskLedBlink(void *arg)
 
- {
 
-  8028a60:	b570      	push	{r4, r5, r6, lr}
 
- 	uint8_t start_status = 0;
 
- 	uint8_t start_status_old = 0;
 
- 	start_status = (UPS.Status >> 7) & 0x01;
 
-   for (;;) 
 
-   {
 
- 	  start_status = (UPS.Status >> 7) & 0x01;
 
-  8028a62:	4e0e      	ldr	r6, [pc, #56]	; (8028a9c <vTaskLedBlink+0x3c>)
 
- 		  	LED_Off(LED_INIT_R);
 
- 		  LED_Toggle(LED_INIT_G);
 
- 	  }
 
- 	  start_status_old = start_status;
 
-     vTaskDelay(statusLedFreq);
 
-  8028a64:	4d0e      	ldr	r5, [pc, #56]	; (8028aa0 <vTaskLedBlink+0x40>)
 
-   * @brief  Задача простой мигалки
 
-   */
 
- void vTaskLedBlink(void *arg)
 
- {
 
- 	uint8_t start_status = 0;
 
- 	uint8_t start_status_old = 0;
 
-  8028a66:	2300      	movs	r3, #0
 
- 	start_status = (UPS.Status >> 7) & 0x01;
 
-   for (;;) 
 
-   {
 
- 	  start_status = (UPS.Status >> 7) & 0x01;
 
-  8028a68:	7cf4      	ldrb	r4, [r6, #19]
 
- 	/* Просто отражает состояние контроллера - "живой" */
 
- 	  if((UPS.Status >> 7) & 0x01){
 
-  8028a6a:	09e4      	lsrs	r4, r4, #7
 
-  8028a6c:	d009      	beq.n	8028a82 <vTaskLedBlink+0x22>
 
- 		  if(start_status_old != start_status)
 
-  8028a6e:	42a3      	cmp	r3, r4
 
-  8028a70:	d002      	beq.n	8028a78 <vTaskLedBlink+0x18>
 
- 			  LED_Off(LED_INIT_G);
 
-  8028a72:	200a      	movs	r0, #10
 
-  8028a74:	f7ff ffdf 	bl	8028a36 <LED_Off>
 
- /**
 
-   * @brief  Изменить состояние LED 
 
-   */
 
- void LED_Toggle(gpio_t pin)
 
- {
 
- 	gpio_invert_output(pin);
 
-  8028a78:	200a      	movs	r0, #10
 
-  8028a7a:	f7fd faed 	bl	8026058 <gpio_invert_output>
 
-  8028a7e:	2009      	movs	r0, #9
 
-  8028a80:	e005      	b.n	8028a8e <vTaskLedBlink+0x2e>
 
- 			  LED_Off(LED_INIT_G);
 
- 		  LED_Toggle(LED_INIT_G);
 
- 		  LED_Toggle(LED_INIT_R);
 
- 	  }
 
- 	  else{
 
- 		  if(start_status_old != start_status)
 
-  8028a82:	42a3      	cmp	r3, r4
 
-  8028a84:	d002      	beq.n	8028a8c <vTaskLedBlink+0x2c>
 
- 		  	LED_Off(LED_INIT_R);
 
-  8028a86:	2009      	movs	r0, #9
 
-  8028a88:	f7ff ffd5 	bl	8028a36 <LED_Off>
 
- /**
 
-   * @brief  Изменить состояние LED 
 
-   */
 
- void LED_Toggle(gpio_t pin)
 
- {
 
- 	gpio_invert_output(pin);
 
-  8028a8c:	200a      	movs	r0, #10
 
-  8028a8e:	f7fd fae3 	bl	8026058 <gpio_invert_output>
 
- 		  	LED_Off(LED_INIT_R);
 
- 		  LED_Toggle(LED_INIT_G);
 
- 	  }
 
- 	  start_status_old = start_status;
 
-     vTaskDelay(statusLedFreq);
 
-  8028a92:	8828      	ldrh	r0, [r5, #0]
 
-  8028a94:	f002 fa9a 	bl	802afcc <vTaskDelay>
 
- 	uint8_t start_status = 0;
 
- 	uint8_t start_status_old = 0;
 
- 	start_status = (UPS.Status >> 7) & 0x01;
 
-   for (;;) 
 
-   {
 
- 	  start_status = (UPS.Status >> 7) & 0x01;
 
-  8028a98:	4623      	mov	r3, r4
 
- 		  LED_Toggle(LED_INIT_G);
 
- 	  }
 
- 	  start_status_old = start_status;
 
-     vTaskDelay(statusLedFreq);
 
-   }
 
-  8028a9a:	e7e5      	b.n	8028a68 <vTaskLedBlink+0x8>
 
-  8028a9c:	2000cba8 	.word	0x2000cba8
 
-  8028aa0:	20000660 	.word	0x20000660
 
- 08028aa4 <LED_Toggle>:
 
- /**
 
-   * @brief  Изменить состояние LED 
 
-   */
 
- void LED_Toggle(gpio_t pin)
 
- {
 
- 	gpio_invert_output(pin);
 
-  8028aa4:	f7fd bad8 	b.w	8026058 <gpio_invert_output>
 
- 08028aa8 <LED_SetStatusLedFreq>:
 
- /**
 
-   * @brief  
 
-   */
 
- void LED_SetStatusLedFreq(uint16_t freq)
 
- {
 
-   statusLedFreq = freq;
 
-  8028aa8:	4b01      	ldr	r3, [pc, #4]	; (8028ab0 <LED_SetStatusLedFreq+0x8>)
 
-  8028aaa:	8018      	strh	r0, [r3, #0]
 
-  8028aac:	4770      	bx	lr
 
-  8028aae:	bf00      	nop
 
-  8028ab0:	20000660 	.word	0x20000660
 
- 08028ab4 <BUTTON_VoidHandler>:
 
- /**
 
-   * @brief  Заглушка
 
-   */
 
- void BUTTON_VoidHandler(void)
 
- {
 
-  8028ab4:	4770      	bx	lr
 
-  8028ab6:	0000      	movs	r0, r0
 
- 08028ab8 <BUTTON_DEF_DownHandler>:
 
- /**
 
-   * @brief  Хендлер кнопки DEFAULT. Сброс всех настроек, сохранение и перезагрузка
 
-   */
 
- void BUTTON_DEF_DownHandler(void)
 
- {
 
-  8028ab8:	b508      	push	{r3, lr}
 
-   //taskENTER_CRITICAL();
 
-   SNMP_SendUserTrap(DEVICE_RESTORED);
 
-  8028aba:	2003      	movs	r0, #3
 
-  8028abc:	f00f fb3e 	bl	803813c <SNMP_SendUserTrap>
 
-   log_event_data(LOG_SYSTEM_DEFCONFIG, "Администратор");
 
-  8028ac0:	4909      	ldr	r1, [pc, #36]	; (8028ae8 <BUTTON_DEF_DownHandler+0x30>)
 
-  8028ac2:	2001      	movs	r0, #1
 
-  8028ac4:	f000 ffca 	bl	8029a5c <log_event_data>
 
-   vTaskDelay(500);
 
-  8028ac8:	f44f 70fa 	mov.w	r0, #500	; 0x1f4
 
-  8028acc:	f002 fa7e 	bl	802afcc <vTaskDelay>
 
-   SETTINGS_SetDefaultDebug();
 
-  8028ad0:	f7ff feec 	bl	80288ac <SETTINGS_SetDefaultDebug>
 
-   SETTINGS_Save();
 
-  8028ad4:	f7ff feda 	bl	802888c <SETTINGS_Save>
 
-   vTaskDelay(1010);
 
-  8028ad8:	f240 30f2 	movw	r0, #1010	; 0x3f2
 
-  8028adc:	f002 fa76 	bl	802afcc <vTaskDelay>
 
-   Reboot();
 
-   
 
-   //taskEXIT_CRITICAL();
 
- }
 
-  8028ae0:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
 
-   vTaskDelay(500);
 
-   SETTINGS_SetDefaultDebug();
 
-   SETTINGS_Save();
 
-   vTaskDelay(1010);
 
-   Reboot();
 
-  8028ae4:	f000 bb0e 	b.w	8029104 <Reboot>
 
-  8028ae8:	08039ab8 	.word	0x08039ab8
 
- 08028aec <BUTTON_GetState>:
 
- /**
 
-   * @brief   Возвращает сотояние ключа
 
-   */
 
- BUTTON_STATE_t BUTTON_GetState(BUTTON_NO_FIX_t *button)
 
- {
 
-   return (BUTTON_STATE_t)gpio_get(button->id_pin);
 
-  8028aec:	7800      	ldrb	r0, [r0, #0]
 
-  8028aee:	f7fd bac3 	b.w	8026078 <gpio_get>
 
-  8028af2:	0000      	movs	r0, r0
 
- 08028af4 <BUTTON_Init>:
 
- /**
 
-   * @brief  
 
-   * @retval 
 
-   */
 
- void BUTTON_Init(void) 
 
- {
 
-  8028af4:	b510      	push	{r4, lr}
 
-   defButton.id_pin			  = KEY_DEF;
 
-  8028af6:	4c09      	ldr	r4, [pc, #36]	; (8028b1c <BUTTON_Init+0x28>)
 
-  8028af8:	230f      	movs	r3, #15
 
-  8028afa:	7023      	strb	r3, [r4, #0]
 
-   defButton.timeDelay         = 5;
 
-  8028afc:	2305      	movs	r3, #5
 
-  8028afe:	8063      	strh	r3, [r4, #2]
 
-   defButton.pressHandler      = BUTTON_VoidHandler;
 
-  8028b00:	4b07      	ldr	r3, [pc, #28]	; (8028b20 <BUTTON_Init+0x2c>)
 
-  8028b02:	60a3      	str	r3, [r4, #8]
 
-   defButton.unpressHandler    = BUTTON_DEF_DownHandler;
 
-  8028b04:	4b07      	ldr	r3, [pc, #28]	; (8028b24 <BUTTON_Init+0x30>)
 
-   defButton.counterActivation = 0;
 
-   defButton.timeActivation    = 40;
 
-  8028b06:	2228      	movs	r2, #40	; 0x28
 
- void BUTTON_Init(void) 
 
- {
 
-   defButton.id_pin			  = KEY_DEF;
 
-   defButton.timeDelay         = 5;
 
-   defButton.pressHandler      = BUTTON_VoidHandler;
 
-   defButton.unpressHandler    = BUTTON_DEF_DownHandler;
 
-  8028b08:	60e3      	str	r3, [r4, #12]
 
-   defButton.counterActivation = 0;
 
-   defButton.timeActivation    = 40;
 
-   defButton.fActivation       = false;
 
-     
 
-   defButton.stateOld     = BUTTON_GetState(&defButton);
 
-  8028b0a:	4620      	mov	r0, r4
 
- {
 
-   defButton.id_pin			  = KEY_DEF;
 
-   defButton.timeDelay         = 5;
 
-   defButton.pressHandler      = BUTTON_VoidHandler;
 
-   defButton.unpressHandler    = BUTTON_DEF_DownHandler;
 
-   defButton.counterActivation = 0;
 
-  8028b0c:	2300      	movs	r3, #0
 
-  8028b0e:	6163      	str	r3, [r4, #20]
 
-   defButton.timeActivation    = 40;
 
-  8028b10:	8322      	strh	r2, [r4, #24]
 
-   defButton.fActivation       = false;
 
-  8028b12:	76a3      	strb	r3, [r4, #26]
 
-     
 
-   defButton.stateOld     = BUTTON_GetState(&defButton);
 
-  8028b14:	f7ff ffea 	bl	8028aec <BUTTON_GetState>
 
-  8028b18:	71a0      	strb	r0, [r4, #6]
 
-  8028b1a:	bd10      	pop	{r4, pc}
 
-  8028b1c:	2000d36c 	.word	0x2000d36c
 
-  8028b20:	08028ab5 	.word	0x08028ab5
 
-  8028b24:	08028ab9 	.word	0x08028ab9
 
- 08028b28 <BUTTON_DellayHandler>:
 
-             время нажатия.
 
-   * @param *button: указатель на структуру типа BUTTON_NO_FIX
 
-   * @retval нет
 
-   */
 
- void BUTTON_DellayHandler(BUTTON_NO_FIX_t *button)
 
- {
 
-  8028b28:	b510      	push	{r4, lr}
 
-  8028b2a:	4604      	mov	r4, r0
 
-   /* Кнопка нажата. Ведем отсчет времени удержания */
 
-   if (gpio_get(button->id_pin) == 0)  // определяем текущее (новое) состояние кнопки
 
-  8028b2c:	7800      	ldrb	r0, [r0, #0]
 
-  8028b2e:	f7fd faa3 	bl	8026078 <gpio_get>
 
-  8028b32:	6963      	ldr	r3, [r4, #20]
 
-  8028b34:	b950      	cbnz	r0, 8028b4c <BUTTON_DellayHandler+0x24>
 
-   {  
 
- 	button->counterActivation++;
 
- 	button->fActivation = false;
 
- 	
 
- 	/* Кнопка нажата более необходимого времени - начинаем чаще мигать диодом */
 
- 	if (button->counterActivation > button->timeActivation)
 
-  8028b36:	8b22      	ldrh	r2, [r4, #24]
 
- {
 
-   /* Кнопка нажата. Ведем отсчет времени удержания */
 
-   if (gpio_get(button->id_pin) == 0)  // определяем текущее (новое) состояние кнопки
 
-   {  
 
- 	button->counterActivation++;
 
- 	button->fActivation = false;
 
-  8028b38:	76a0      	strb	r0, [r4, #26]
 
- void BUTTON_DellayHandler(BUTTON_NO_FIX_t *button)
 
- {
 
-   /* Кнопка нажата. Ведем отсчет времени удержания */
 
-   if (gpio_get(button->id_pin) == 0)  // определяем текущее (новое) состояние кнопки
 
-   {  
 
- 	button->counterActivation++;
 
-  8028b3a:	3301      	adds	r3, #1
 
- 	button->fActivation = false;
 
- 	
 
- 	/* Кнопка нажата более необходимого времени - начинаем чаще мигать диодом */
 
- 	if (button->counterActivation > button->timeActivation)
 
-  8028b3c:	4293      	cmp	r3, r2
 
- void BUTTON_DellayHandler(BUTTON_NO_FIX_t *button)
 
- {
 
-   /* Кнопка нажата. Ведем отсчет времени удержания */
 
-   if (gpio_get(button->id_pin) == 0)  // определяем текущее (новое) состояние кнопки
 
-   {  
 
- 	button->counterActivation++;
 
-  8028b3e:	6163      	str	r3, [r4, #20]
 
- 	button->fActivation = false;
 
- 	
 
- 	/* Кнопка нажата более необходимого времени - начинаем чаще мигать диодом */
 
- 	if (button->counterActivation > button->timeActivation)
 
-  8028b40:	d914      	bls.n	8028b6c <BUTTON_DellayHandler+0x44>
 
- 	  LED_SetStatusLedFreq(100);
 
-  8028b42:	2064      	movs	r0, #100	; 0x64
 
- 	}  
 
- 	else
 
- 	  button->counterActivation = 0;
 
-   }		
 
- }
 
-  8028b44:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
- 	button->counterActivation++;
 
- 	button->fActivation = false;
 
- 	
 
- 	/* Кнопка нажата более необходимого времени - начинаем чаще мигать диодом */
 
- 	if (button->counterActivation > button->timeActivation)
 
- 	  LED_SetStatusLedFreq(100);
 
-  8028b48:	f7ff bfae 	b.w	8028aa8 <LED_SetStatusLedFreq>
 
-   }
 
-   /* Кнопку отжата. Если до этого она была нажата нужное время - вызываем хендлер */
 
-   else
 
-   {
 
- 	if ((button->counterActivation > button->timeActivation) 
 
-  8028b4c:	8b22      	ldrh	r2, [r4, #24]
 
-  8028b4e:	4293      	cmp	r3, r2
 
-  8028b50:	d90a      	bls.n	8028b68 <BUTTON_DellayHandler+0x40>
 
- 	     && button->fActivation == false)
 
-  8028b52:	7ea3      	ldrb	r3, [r4, #26]
 
-  8028b54:	b943      	cbnz	r3, 8028b68 <BUTTON_DellayHandler+0x40>
 
- 	{  
 
- 	  button->fActivation = true;
 
-  8028b56:	2301      	movs	r3, #1
 
-  8028b58:	76a3      	strb	r3, [r4, #26]
 
- 	  LED_SetStatusLedFreq(1000);
 
-  8028b5a:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
 
-  8028b5e:	f7ff ffa3 	bl	8028aa8 <LED_SetStatusLedFreq>
 
- 	  button->unpressHandler();
 
-  8028b62:	68e3      	ldr	r3, [r4, #12]
 
-  8028b64:	4798      	blx	r3
 
-  8028b66:	bd10      	pop	{r4, pc}
 
- 	}  
 
- 	else
 
- 	  button->counterActivation = 0;
 
-  8028b68:	2300      	movs	r3, #0
 
-  8028b6a:	6163      	str	r3, [r4, #20]
 
-  8028b6c:	bd10      	pop	{r4, pc}
 
-  8028b6e:	0000      	movs	r0, r0
 
- 08028b70 <vTaskButtons>:
 
- /**
 
-   * @brief  Опрос кнопок
 
-   */
 
- void vTaskButtons(void *pvParameters) 
 
- {
 
-  8028b70:	b508      	push	{r3, lr}
 
-   for (;;) 
 
-   {
 
- 	BUTTON_DellayHandler(&defButton);
 
-  8028b72:	4803      	ldr	r0, [pc, #12]	; (8028b80 <vTaskButtons+0x10>)
 
-  8028b74:	f7ff ffd8 	bl	8028b28 <BUTTON_DellayHandler>
 
- 	
 
-     vTaskDelay(100);  //20
 
-  8028b78:	2064      	movs	r0, #100	; 0x64
 
-  8028b7a:	f002 fa27 	bl	802afcc <vTaskDelay>
 
-  8028b7e:	e7f8      	b.n	8028b72 <vTaskButtons+0x2>
 
-  8028b80:	2000d36c 	.word	0x2000d36c
 
- 08028b84 <set_mode_jumper>:
 
- #include "gpio.h"
 
- bool value_jumper;
 
- void set_mode_jumper(void)
 
- {
 
-  8028b84:	b508      	push	{r3, lr}
 
- 	value_jumper = gpio_get(MODE_JUMPER);
 
-  8028b86:	200e      	movs	r0, #14
 
-  8028b88:	f7fd fa76 	bl	8026078 <gpio_get>
 
-  8028b8c:	4b01      	ldr	r3, [pc, #4]	; (8028b94 <set_mode_jumper+0x10>)
 
-  8028b8e:	7018      	strb	r0, [r3, #0]
 
-  8028b90:	bd08      	pop	{r3, pc}
 
-  8028b92:	bf00      	nop
 
-  8028b94:	2000d388 	.word	0x2000d388
 
- 08028b98 <get_state_din_outs>:
 
- /* data actuality mutexes */
 
- static SemaphoreHandle_t outputs_mutex, inputs_mutex;
 
- uint8_t get_state_din_outs(gpio_t pin) {
 
- 	uint8_t res = 0;
 
- 	res = gpio_get(pin);
 
-  8028b98:	f7fd ba6e 	b.w	8026078 <gpio_get>
 
- 08028b9c <set_state_douts>:
 
- 	return res;
 
- }
 
- void set_state_douts(gpio_t pin, uint8_t value)
 
- {
 
- 	gpio_set(pin, value);
 
-  8028b9c:	3100      	adds	r1, #0
 
-  8028b9e:	bf18      	it	ne
 
-  8028ba0:	2101      	movne	r1, #1
 
-  8028ba2:	f7fd b9c5 	b.w	8025f30 <gpio_set>
 
-  8028ba6:	0000      	movs	r0, r0
 
- 08028ba8 <init_UPS_value>:
 
- extern bool flUpdateLog;
 
- void init_UPS_value(void)
 
- {
 
-  8028ba8:	b538      	push	{r3, r4, r5, lr}
 
- 	UPS.Freq_in = 0;
 
-  8028baa:	4c10      	ldr	r4, [pc, #64]	; (8028bec <init_UPS_value+0x44>)
 
- 	UPS.VAC_in = 0;
 
- 	UPS.VAC_out = 0;
 
- 	UPS.Temp = 0;
 
- 	UPS.Load = 0;
 
-  8028bac:	2500      	movs	r5, #0
 
- extern bool flUpdateLog;
 
- void init_UPS_value(void)
 
- {
 
- 	UPS.Freq_in = 0;
 
-  8028bae:	2300      	movs	r3, #0
 
- 	UPS.Alarm = 0;
 
- 	UPS.cnt_err_ups = 0;
 
- 	UPS.Flag_Present = false;
 
- 	UPS.Present = false;
 
- 	memset(UPS.model, 0, 11);
 
-  8028bb0:	4629      	mov	r1, r5
 
-  8028bb2:	220b      	movs	r2, #11
 
-  8028bb4:	f104 0015 	add.w	r0, r4, #21
 
- extern bool flUpdateLog;
 
- void init_UPS_value(void)
 
- {
 
- 	UPS.Freq_in = 0;
 
-  8028bb8:	6023      	str	r3, [r4, #0]
 
- 	UPS.VAC_in = 0;
 
-  8028bba:	6063      	str	r3, [r4, #4]
 
- 	UPS.VAC_out = 0;
 
-  8028bbc:	60a3      	str	r3, [r4, #8]
 
- 	UPS.Temp = 0;
 
-  8028bbe:	60e3      	str	r3, [r4, #12]
 
- 	UPS.Load = 0;
 
-  8028bc0:	7425      	strb	r5, [r4, #16]
 
- 	UPS.SOC = 0;
 
-  8028bc2:	7465      	strb	r5, [r4, #17]
 
- 	UPS.work_time = 0;
 
-  8028bc4:	74a5      	strb	r5, [r4, #18]
 
- 	UPS.Status = 0;
 
-  8028bc6:	74e5      	strb	r5, [r4, #19]
 
- 	UPS.Alarm = 0;
 
-  8028bc8:	7525      	strb	r5, [r4, #20]
 
- 	UPS.cnt_err_ups = 0;
 
-  8028bca:	f884 502b 	strb.w	r5, [r4, #43]	; 0x2b
 
- 	UPS.Flag_Present = false;
 
-  8028bce:	f884 502d 	strb.w	r5, [r4, #45]	; 0x2d
 
- 	UPS.Present = false;
 
-  8028bd2:	f884 502c 	strb.w	r5, [r4, #44]	; 0x2c
 
- 	memset(UPS.model, 0, 11);
 
-  8028bd6:	f7f8 ff93 	bl	8021b00 <memset>
 
- 	memset(UPS.vertion, 0, 11);
 
-  8028bda:	f104 0020 	add.w	r0, r4, #32
 
-  8028bde:	4629      	mov	r1, r5
 
-  8028be0:	220b      	movs	r2, #11
 
- }
 
-  8028be2:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
 
- 	UPS.cnt_err_ups = 0;
 
- 	UPS.Flag_Present = false;
 
- 	UPS.Present = false;
 
- 	memset(UPS.model, 0, 11);
 
- 	memset(UPS.vertion, 0, 11);
 
-  8028be6:	f7f8 bf8b 	b.w	8021b00 <memset>
 
-  8028bea:	bf00      	nop
 
-  8028bec:	2000cba8 	.word	0x2000cba8
 
- 08028bf0 <send_MegaTec_cmd>:
 
- }
 
- void send_MegaTec_cmd(cmdMegaTecEnums_t command)
 
- {
 
-  8028bf0:	b510      	push	{r4, lr}
 
- 	if(command == ups_test_time){
 
-  8028bf2:	2803      	cmp	r0, #3
 
- 	memset(UPS.model, 0, 11);
 
- 	memset(UPS.vertion, 0, 11);
 
- }
 
- void send_MegaTec_cmd(cmdMegaTecEnums_t command)
 
- {
 
-  8028bf4:	b086      	sub	sp, #24
 
- 	if(command == ups_test_time){
 
-  8028bf6:	d10d      	bne.n	8028c14 <send_MegaTec_cmd+0x24>
 
- 		uint8_t req[10];
 
- 		memset(req, 0, 10);
 
-  8028bf8:	2100      	movs	r1, #0
 
-  8028bfa:	220a      	movs	r2, #10
 
-  8028bfc:	a803      	add	r0, sp, #12
 
-  8028bfe:	f7f8 ff7f 	bl	8021b00 <memset>
 
- 		sprintf(req, "%s%d\r", MegaTecCMD[command], TimeParam);
 
-  8028c02:	4b18      	ldr	r3, [pc, #96]	; (8028c64 <send_MegaTec_cmd+0x74>)
 
-  8028c04:	4918      	ldr	r1, [pc, #96]	; (8028c68 <send_MegaTec_cmd+0x78>)
 
-  8028c06:	68da      	ldr	r2, [r3, #12]
 
-  8028c08:	4b18      	ldr	r3, [pc, #96]	; (8028c6c <send_MegaTec_cmd+0x7c>)
 
-  8028c0a:	a803      	add	r0, sp, #12
 
-  8028c0c:	881b      	ldrh	r3, [r3, #0]
 
-  8028c0e:	f7fe fe01 	bl	8027814 <tfp_sprintf>
 
-  8028c12:	e015      	b.n	8028c40 <send_MegaTec_cmd+0x50>
 
- 		ups_send_block(req, strlen(req));
 
- 	}
 
- 	else if(command == ups_shutdown){
 
-  8028c14:	2805      	cmp	r0, #5
 
-  8028c16:	d022      	beq.n	8028c5e <send_MegaTec_cmd+0x6e>
 
- 	}
 
- 	else if(command == ups_shutdown_restore){
 
-  8028c18:	2806      	cmp	r0, #6
 
-  8028c1a:	4c12      	ldr	r4, [pc, #72]	; (8028c64 <send_MegaTec_cmd+0x74>)
 
-  8028c1c:	d116      	bne.n	8028c4c <send_MegaTec_cmd+0x5c>
 
- 		uint8_t req[10];
 
- 		memset(req, 0, 10);
 
-  8028c1e:	2100      	movs	r1, #0
 
-  8028c20:	220a      	movs	r2, #10
 
-  8028c22:	a803      	add	r0, sp, #12
 
-  8028c24:	f7f8 ff6c 	bl	8021b00 <memset>
 
- 		sprintf(req, "%s.%d%s%d\r", MegaTecCMD[command-1], TimeParam, MegaTecCMD[command], TimeParam2);
 
-  8028c28:	69a2      	ldr	r2, [r4, #24]
 
-  8028c2a:	4b10      	ldr	r3, [pc, #64]	; (8028c6c <send_MegaTec_cmd+0x7c>)
 
-  8028c2c:	4910      	ldr	r1, [pc, #64]	; (8028c70 <send_MegaTec_cmd+0x80>)
 
-  8028c2e:	881b      	ldrh	r3, [r3, #0]
 
-  8028c30:	9200      	str	r2, [sp, #0]
 
-  8028c32:	4a10      	ldr	r2, [pc, #64]	; (8028c74 <send_MegaTec_cmd+0x84>)
 
-  8028c34:	8812      	ldrh	r2, [r2, #0]
 
-  8028c36:	9201      	str	r2, [sp, #4]
 
-  8028c38:	a803      	add	r0, sp, #12
 
-  8028c3a:	6962      	ldr	r2, [r4, #20]
 
-  8028c3c:	f7fe fdea 	bl	8027814 <tfp_sprintf>
 
- 		ups_send_block(req, strlen(req));
 
-  8028c40:	a803      	add	r0, sp, #12
 
-  8028c42:	f7f9 f935 	bl	8021eb0 <strlen>
 
-  8028c46:	b2c1      	uxtb	r1, r0
 
-  8028c48:	a803      	add	r0, sp, #12
 
-  8028c4a:	e006      	b.n	8028c5a <send_MegaTec_cmd+0x6a>
 
- 	}
 
- 	else{
 
- 		ups_send_block(MegaTecCMD[command], strlen(MegaTecCMD[command]));
 
-  8028c4c:	f854 4020 	ldr.w	r4, [r4, r0, lsl #2]
 
-  8028c50:	4620      	mov	r0, r4
 
-  8028c52:	f7f9 f92d 	bl	8021eb0 <strlen>
 
-  8028c56:	b2c1      	uxtb	r1, r0
 
-  8028c58:	4620      	mov	r0, r4
 
-  8028c5a:	f7fe f843 	bl	8026ce4 <ups_send_block>
 
- 	}
 
- }
 
-  8028c5e:	b006      	add	sp, #24
 
-  8028c60:	bd10      	pop	{r4, pc}
 
-  8028c62:	bf00      	nop
 
-  8028c64:	20000664 	.word	0x20000664
 
-  8028c68:	08039ad8 	.word	0x08039ad8
 
-  8028c6c:	20000b50 	.word	0x20000b50
 
-  8028c70:	08039ad3 	.word	0x08039ad3
 
-  8028c74:	20000b1a 	.word	0x20000b1a
 
- 08028c78 <ups_megatec_rx_pdu>:
 
- bool ups_megatec_rx_pdu(void)
 
- {
 
-  8028c78:	b510      	push	{r4, lr}
 
- 	int c = 0;
 
- 	ups_pdu.len = 0;
 
-  8028c7a:	4c0e      	ldr	r4, [pc, #56]	; (8028cb4 <ups_megatec_rx_pdu+0x3c>)
 
-  8028c7c:	2000      	movs	r0, #0
 
-  8028c7e:	8660      	strh	r0, [r4, #50]	; 0x32
 
- 	while ((ups_pdu.len < UPS_PDU_MAX_LEN) && (c != 0x0d)) {
 
-  8028c80:	e00d      	b.n	8028c9e <ups_megatec_rx_pdu+0x26>
 
- 		c = ups_getchar(500);//portMAX_DELAY
 
-  8028c82:	f44f 70fa 	mov.w	r0, #500	; 0x1f4
 
-  8028c86:	f7fe f851 	bl	8026d2c <ups_getchar>
 
- 		if(c < 0)
 
-  8028c8a:	2800      	cmp	r0, #0
 
-  8028c8c:	da03      	bge.n	8028c96 <ups_megatec_rx_pdu+0x1e>
 
- 		{
 
- 			ups_pdu.len = 0;
 
-  8028c8e:	4b09      	ldr	r3, [pc, #36]	; (8028cb4 <ups_megatec_rx_pdu+0x3c>)
 
-  8028c90:	2200      	movs	r2, #0
 
-  8028c92:	865a      	strh	r2, [r3, #50]	; 0x32
 
- 			break;
 
-  8028c94:	e008      	b.n	8028ca8 <ups_megatec_rx_pdu+0x30>
 
- 		}
 
- 		ups_pdu.data[ups_pdu.len++] = c;
 
-  8028c96:	8e63      	ldrh	r3, [r4, #50]	; 0x32
 
-  8028c98:	54e0      	strb	r0, [r4, r3]
 
-  8028c9a:	3301      	adds	r3, #1
 
-  8028c9c:	8663      	strh	r3, [r4, #50]	; 0x32
 
- {
 
- 	int c = 0;
 
- 	ups_pdu.len = 0;
 
- 	while ((ups_pdu.len < UPS_PDU_MAX_LEN) && (c != 0x0d)) {
 
-  8028c9e:	8e63      	ldrh	r3, [r4, #50]	; 0x32
 
-  8028ca0:	2b31      	cmp	r3, #49	; 0x31
 
-  8028ca2:	d801      	bhi.n	8028ca8 <ups_megatec_rx_pdu+0x30>
 
-  8028ca4:	280d      	cmp	r0, #13
 
-  8028ca6:	d1ec      	bne.n	8028c82 <ups_megatec_rx_pdu+0xa>
 
- 			break;
 
- 		}
 
- 		ups_pdu.data[ups_pdu.len++] = c;
 
- 	}
 
- 	if (ups_pdu.len == 0)
 
-  8028ca8:	4b02      	ldr	r3, [pc, #8]	; (8028cb4 <ups_megatec_rx_pdu+0x3c>)
 
-  8028caa:	8e58      	ldrh	r0, [r3, #50]	; 0x32
 
- 		return false;
 
- 	return true;
 
- }
 
-  8028cac:	3000      	adds	r0, #0
 
-  8028cae:	bf18      	it	ne
 
-  8028cb0:	2001      	movne	r0, #1
 
-  8028cb2:	bd10      	pop	{r4, pc}
 
-  8028cb4:	20000b1c 	.word	0x20000b1c
 
- 08028cb8 <ups_status_response>:
 
- void ups_status_response(char *data)
 
- {
 
-  8028cb8:	e92d 41ff 	stmdb	sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
 
- 	uint8_t i;
 
- 	char *endValue;
 
- 	char value[10];
 
- 	uint8_t len = 0;
 
- 	if(data[0] != '(')
 
-  8028cbc:	7803      	ldrb	r3, [r0, #0]
 
-  8028cbe:	2b28      	cmp	r3, #40	; 0x28
 
- 	return true;
 
- }
 
- void ups_status_response(char *data)
 
- {
 
-  8028cc0:	4604      	mov	r4, r0
 
- 	uint8_t i;
 
- 	char *endValue;
 
- 	char value[10];
 
- 	uint8_t len = 0;
 
- 	if(data[0] != '(')
 
-  8028cc2:	f040 80e4 	bne.w	8028e8e <ups_status_response+0x1d6>
 
- 		return;
 
- 	UPS.Present = true;
 
-  8028cc6:	4b78      	ldr	r3, [pc, #480]	; (8028ea8 <ups_status_response+0x1f0>)
 
-  8028cc8:	2201      	movs	r2, #1
 
-  8028cca:	f883 202c 	strb.w	r2, [r3, #44]	; 0x2c
 
- 	UPS.Flag_Present = true;
 
-  8028cce:	f883 202d 	strb.w	r2, [r3, #45]	; 0x2d
 
- 	UPS.cnt_err_ups = 0;
 
-  8028cd2:	2200      	movs	r2, #0
 
-  8028cd4:	f883 202b 	strb.w	r2, [r3, #43]	; 0x2b
 
- 	if(flUpdateLog){
 
-  8028cd8:	4b74      	ldr	r3, [pc, #464]	; (8028eac <ups_status_response+0x1f4>)
 
-  8028cda:	7819      	ldrb	r1, [r3, #0]
 
-  8028cdc:	b111      	cbz	r1, 8028ce4 <ups_status_response+0x2c>
 
- 		flUpdateLog = false;
 
-  8028cde:	701a      	strb	r2, [r3, #0]
 
- 		log_add(data);
 
-  8028ce0:	f000 fecc 	bl	8029a7c <log_add>
 
- 	}
 
- 	data++;
 
-  8028ce4:	3401      	adds	r4, #1
 
- 	memset(value, 0, 10);
 
-  8028ce6:	220a      	movs	r2, #10
 
-  8028ce8:	2100      	movs	r1, #0
 
-  8028cea:	a801      	add	r0, sp, #4
 
-  8028cec:	f7f8 ff08 	bl	8021b00 <memset>
 
- 	endValue = strpbrk(data," ");
 
-  8028cf0:	4620      	mov	r0, r4
 
-  8028cf2:	496f      	ldr	r1, [pc, #444]	; (8028eb0 <ups_status_response+0x1f8>)
 
-  8028cf4:	f7f9 f9c6 	bl	8022084 <strpbrk>
 
- 	len = endValue - data;
 
-  8028cf8:	1b00      	subs	r0, r0, r4
 
- void ups_megatec_init(void) {
 
- 	init_UPS_value();
 
- 	UPS.Present = true;
 
- 	xTaskCreate(request_task, ( char * ) "request_task", configMINIMAL_STACK_SIZE * 2, NULL, tskIDLE_PRIORITY, NULL);
 
- }
 
-  8028cfa:	b2c6      	uxtb	r6, r0
 
- 	data++;
 
- 	memset(value, 0, 10);
 
- 	endValue = strpbrk(data," ");
 
- 	len = endValue - data;
 
- 	strncpy(value, data, len);
 
-  8028cfc:	4632      	mov	r2, r6
 
-  8028cfe:	4621      	mov	r1, r4
 
-  8028d00:	a801      	add	r0, sp, #4
 
-  8028d02:	f7f9 f98d 	bl	8022020 <strncpy>
 
- 	data += (len + 1);
 
- 	UPS.VAC_in = atof(value);
 
-  8028d06:	a801      	add	r0, sp, #4
 
-  8028d08:	f7f8 fdd6 	bl	80218b8 <atof>
 
-  8028d0c:	f7f7 ff3a 	bl	8020b84 <__aeabi_d2f>
 
- 	memset(value, 0, 10);
 
- 	endValue = strpbrk(data," ");
 
- 	len = endValue - data;
 
- 	strncpy(value, data, len);
 
- 	data += (len + 1);
 
-  8028d10:	3601      	adds	r6, #1
 
-  8028d12:	19a6      	adds	r6, r4, r6
 
- 	UPS.VAC_in = atof(value);
 
-  8028d14:	4c64      	ldr	r4, [pc, #400]	; (8028ea8 <ups_status_response+0x1f0>)
 
- 	//TODO
 
- 	memset(value, 0, 10);
 
-  8028d16:	220a      	movs	r2, #10
 
- 	memset(value, 0, 10);
 
- 	endValue = strpbrk(data," ");
 
- 	len = endValue - data;
 
- 	strncpy(value, data, len);
 
- 	data += (len + 1);
 
- 	UPS.VAC_in = atof(value);
 
-  8028d18:	6060      	str	r0, [r4, #4]
 
- 	//TODO
 
- 	memset(value, 0, 10);
 
-  8028d1a:	2100      	movs	r1, #0
 
-  8028d1c:	a801      	add	r0, sp, #4
 
-  8028d1e:	f7f8 feef 	bl	8021b00 <memset>
 
- 	endValue = strpbrk(data," ");
 
-  8028d22:	4630      	mov	r0, r6
 
-  8028d24:	4962      	ldr	r1, [pc, #392]	; (8028eb0 <ups_status_response+0x1f8>)
 
-  8028d26:	f7f9 f9ad 	bl	8022084 <strpbrk>
 
- 	len = endValue - data;
 
-  8028d2a:	1b80      	subs	r0, r0, r6
 
- void ups_megatec_init(void) {
 
- 	init_UPS_value();
 
- 	UPS.Present = true;
 
- 	xTaskCreate(request_task, ( char * ) "request_task", configMINIMAL_STACK_SIZE * 2, NULL, tskIDLE_PRIORITY, NULL);
 
- }
 
-  8028d2c:	b2c5      	uxtb	r5, r0
 
- 	//TODO
 
- 	memset(value, 0, 10);
 
- 	endValue = strpbrk(data," ");
 
- 	len = endValue - data;
 
- 	strncpy(value, data, len);
 
-  8028d2e:	4631      	mov	r1, r6
 
-  8028d30:	462a      	mov	r2, r5
 
-  8028d32:	a801      	add	r0, sp, #4
 
- 	data += (len + 1);
 
-  8028d34:	3501      	adds	r5, #1
 
- 	//TODO
 
- 	memset(value, 0, 10);
 
- 	endValue = strpbrk(data," ");
 
- 	len = endValue - data;
 
- 	strncpy(value, data, len);
 
-  8028d36:	f7f9 f973 	bl	8022020 <strncpy>
 
- 	data += (len + 1);
 
-  8028d3a:	1975      	adds	r5, r6, r5
 
- 	memset(value, 0, 10);
 
-  8028d3c:	220a      	movs	r2, #10
 
-  8028d3e:	2100      	movs	r1, #0
 
-  8028d40:	a801      	add	r0, sp, #4
 
-  8028d42:	f7f8 fedd 	bl	8021b00 <memset>
 
- 	endValue = strpbrk(data," ");
 
-  8028d46:	4628      	mov	r0, r5
 
-  8028d48:	4959      	ldr	r1, [pc, #356]	; (8028eb0 <ups_status_response+0x1f8>)
 
-  8028d4a:	f7f9 f99b 	bl	8022084 <strpbrk>
 
- 	len = endValue - data;
 
-  8028d4e:	1b40      	subs	r0, r0, r5
 
- void ups_megatec_init(void) {
 
- 	init_UPS_value();
 
- 	UPS.Present = true;
 
- 	xTaskCreate(request_task, ( char * ) "request_task", configMINIMAL_STACK_SIZE * 2, NULL, tskIDLE_PRIORITY, NULL);
 
- }
 
-  8028d50:	fa5f f880 	uxtb.w	r8, r0
 
- 	data += (len + 1);
 
- 	memset(value, 0, 10);
 
- 	endValue = strpbrk(data," ");
 
- 	len = endValue - data;
 
- 	strncpy(value, data, len);
 
-  8028d54:	4642      	mov	r2, r8
 
-  8028d56:	4629      	mov	r1, r5
 
-  8028d58:	a801      	add	r0, sp, #4
 
-  8028d5a:	f7f9 f961 	bl	8022020 <strncpy>
 
- 	data += (len + 1);
 
- 	UPS.VAC_out = atof(value);
 
-  8028d5e:	a801      	add	r0, sp, #4
 
-  8028d60:	f7f8 fdaa 	bl	80218b8 <atof>
 
-  8028d64:	f7f7 ff0e 	bl	8020b84 <__aeabi_d2f>
 
- 	memset(value, 0, 10);
 
- 	endValue = strpbrk(data," ");
 
- 	len = endValue - data;
 
- 	strncpy(value, data, len);
 
- 	data += (len + 1);
 
-  8028d68:	f108 0801 	add.w	r8, r8, #1
 
-  8028d6c:	44a8      	add	r8, r5
 
- 	UPS.VAC_out = atof(value);
 
- 	memset(value, 0, 10);
 
-  8028d6e:	220a      	movs	r2, #10
 
- 	memset(value, 0, 10);
 
- 	endValue = strpbrk(data," ");
 
- 	len = endValue - data;
 
- 	strncpy(value, data, len);
 
- 	data += (len + 1);
 
- 	UPS.VAC_out = atof(value);
 
-  8028d70:	60a0      	str	r0, [r4, #8]
 
- 	memset(value, 0, 10);
 
-  8028d72:	2100      	movs	r1, #0
 
-  8028d74:	a801      	add	r0, sp, #4
 
-  8028d76:	f7f8 fec3 	bl	8021b00 <memset>
 
- 	endValue = strpbrk(data," ");
 
-  8028d7a:	494d      	ldr	r1, [pc, #308]	; (8028eb0 <ups_status_response+0x1f8>)
 
-  8028d7c:	4640      	mov	r0, r8
 
-  8028d7e:	f7f9 f981 	bl	8022084 <strpbrk>
 
- 	len = endValue - data;
 
-  8028d82:	ebc8 0000 	rsb	r0, r8, r0
 
- void ups_megatec_init(void) {
 
- 	init_UPS_value();
 
- 	UPS.Present = true;
 
- 	xTaskCreate(request_task, ( char * ) "request_task", configMINIMAL_STACK_SIZE * 2, NULL, tskIDLE_PRIORITY, NULL);
 
- }
 
-  8028d86:	b2c7      	uxtb	r7, r0
 
- 	UPS.VAC_out = atof(value);
 
- 	memset(value, 0, 10);
 
- 	endValue = strpbrk(data," ");
 
- 	len = endValue - data;
 
- 	strncpy(value, data, len);
 
-  8028d88:	463a      	mov	r2, r7
 
-  8028d8a:	4641      	mov	r1, r8
 
-  8028d8c:	a801      	add	r0, sp, #4
 
-  8028d8e:	f7f9 f947 	bl	8022020 <strncpy>
 
- 	data += (len + 1);
 
- 	UPS.Load = atoi(value);
 
-  8028d92:	a801      	add	r0, sp, #4
 
-  8028d94:	f7f8 fd94 	bl	80218c0 <atoi>
 
- 	memset(value, 0, 10);
 
- 	endValue = strpbrk(data," ");
 
- 	len = endValue - data;
 
- 	strncpy(value, data, len);
 
- 	data += (len + 1);
 
-  8028d98:	3701      	adds	r7, #1
 
-  8028d9a:	4447      	add	r7, r8
 
- 	UPS.Load = atoi(value);
 
- 	memset(value, 0, 10);
 
-  8028d9c:	220a      	movs	r2, #10
 
- 	memset(value, 0, 10);
 
- 	endValue = strpbrk(data," ");
 
- 	len = endValue - data;
 
- 	strncpy(value, data, len);
 
- 	data += (len + 1);
 
- 	UPS.Load = atoi(value);
 
-  8028d9e:	7420      	strb	r0, [r4, #16]
 
- 	memset(value, 0, 10);
 
-  8028da0:	2100      	movs	r1, #0
 
-  8028da2:	a801      	add	r0, sp, #4
 
-  8028da4:	f7f8 feac 	bl	8021b00 <memset>
 
- 	endValue = strpbrk(data," ");
 
-  8028da8:	4941      	ldr	r1, [pc, #260]	; (8028eb0 <ups_status_response+0x1f8>)
 
-  8028daa:	4638      	mov	r0, r7
 
-  8028dac:	f7f9 f96a 	bl	8022084 <strpbrk>
 
- 	len = endValue - data;
 
-  8028db0:	1bc0      	subs	r0, r0, r7
 
- void ups_megatec_init(void) {
 
- 	init_UPS_value();
 
- 	UPS.Present = true;
 
- 	xTaskCreate(request_task, ( char * ) "request_task", configMINIMAL_STACK_SIZE * 2, NULL, tskIDLE_PRIORITY, NULL);
 
- }
 
-  8028db2:	b2c6      	uxtb	r6, r0
 
- 	UPS.Load = atoi(value);
 
- 	memset(value, 0, 10);
 
- 	endValue = strpbrk(data," ");
 
- 	len = endValue - data;
 
- 	strncpy(value, data, len);
 
-  8028db4:	4632      	mov	r2, r6
 
-  8028db6:	4639      	mov	r1, r7
 
-  8028db8:	a801      	add	r0, sp, #4
 
-  8028dba:	f7f9 f931 	bl	8022020 <strncpy>
 
- 	data += (len + 1);
 
- 	UPS.Freq_in = atof(value);
 
-  8028dbe:	a801      	add	r0, sp, #4
 
-  8028dc0:	f7f8 fd7a 	bl	80218b8 <atof>
 
-  8028dc4:	f7f7 fede 	bl	8020b84 <__aeabi_d2f>
 
- 	memset(value, 0, 10);
 
- 	endValue = strpbrk(data," ");
 
- 	len = endValue - data;
 
- 	strncpy(value, data, len);
 
- 	data += (len + 1);
 
-  8028dc8:	3601      	adds	r6, #1
 
-  8028dca:	19be      	adds	r6, r7, r6
 
- 	UPS.Freq_in = atof(value);
 
-  8028dcc:	6020      	str	r0, [r4, #0]
 
- 	//TODO
 
- 	memset(value, 0, 10);
 
-  8028dce:	220a      	movs	r2, #10
 
-  8028dd0:	2100      	movs	r1, #0
 
-  8028dd2:	a801      	add	r0, sp, #4
 
-  8028dd4:	f7f8 fe94 	bl	8021b00 <memset>
 
- 	endValue = strpbrk(data," ");
 
-  8028dd8:	4630      	mov	r0, r6
 
-  8028dda:	4935      	ldr	r1, [pc, #212]	; (8028eb0 <ups_status_response+0x1f8>)
 
-  8028ddc:	f7f9 f952 	bl	8022084 <strpbrk>
 
- 	len = endValue - data;
 
-  8028de0:	1b80      	subs	r0, r0, r6
 
- void ups_megatec_init(void) {
 
- 	init_UPS_value();
 
- 	UPS.Present = true;
 
- 	xTaskCreate(request_task, ( char * ) "request_task", configMINIMAL_STACK_SIZE * 2, NULL, tskIDLE_PRIORITY, NULL);
 
- }
 
-  8028de2:	b2c5      	uxtb	r5, r0
 
- 	//TODO
 
- 	memset(value, 0, 10);
 
- 	endValue = strpbrk(data," ");
 
- 	len = endValue - data;
 
- 	strncpy(value, data, len);
 
-  8028de4:	462a      	mov	r2, r5
 
-  8028de6:	4631      	mov	r1, r6
 
-  8028de8:	a801      	add	r0, sp, #4
 
-  8028dea:	f7f9 f919 	bl	8022020 <strncpy>
 
- 	data += (len + 1);
 
- 	UPS.SOC = 100*((atof(value)) - 1.6)/0.7;
 
-  8028dee:	a801      	add	r0, sp, #4
 
-  8028df0:	f7f8 fd62 	bl	80218b8 <atof>
 
-  8028df4:	a328      	add	r3, pc, #160	; (adr r3, 8028e98 <ups_status_response+0x1e0>)
 
-  8028df6:	e9d3 2300 	ldrd	r2, r3, [r3]
 
-  8028dfa:	f7f7 fa2d 	bl	8020258 <__aeabi_dsub>
 
-  8028dfe:	2200      	movs	r2, #0
 
-  8028e00:	4b2c      	ldr	r3, [pc, #176]	; (8028eb4 <ups_status_response+0x1fc>)
 
-  8028e02:	f7f7 fbdd 	bl	80205c0 <__aeabi_dmul>
 
-  8028e06:	a326      	add	r3, pc, #152	; (adr r3, 8028ea0 <ups_status_response+0x1e8>)
 
-  8028e08:	e9d3 2300 	ldrd	r2, r3, [r3]
 
-  8028e0c:	f7f7 fd02 	bl	8020814 <__aeabi_ddiv>
 
-  8028e10:	f7f7 fe98 	bl	8020b44 <__aeabi_d2uiz>
 
- 	//TODO
 
- 	memset(value, 0, 10);
 
- 	endValue = strpbrk(data," ");
 
- 	len = endValue - data;
 
- 	strncpy(value, data, len);
 
- 	data += (len + 1);
 
-  8028e14:	3501      	adds	r5, #1
 
-  8028e16:	1975      	adds	r5, r6, r5
 
- 	UPS.SOC = 100*((atof(value)) - 1.6)/0.7;
 
-  8028e18:	7460      	strb	r0, [r4, #17]
 
- 	memset(value, 0, 10);
 
-  8028e1a:	220a      	movs	r2, #10
 
-  8028e1c:	2100      	movs	r1, #0
 
-  8028e1e:	a801      	add	r0, sp, #4
 
-  8028e20:	f7f8 fe6e 	bl	8021b00 <memset>
 
- 	endValue = strpbrk(data," ");
 
-  8028e24:	4628      	mov	r0, r5
 
-  8028e26:	4922      	ldr	r1, [pc, #136]	; (8028eb0 <ups_status_response+0x1f8>)
 
-  8028e28:	f7f9 f92c 	bl	8022084 <strpbrk>
 
- 	len = endValue - data;
 
-  8028e2c:	1b40      	subs	r0, r0, r5
 
- void ups_megatec_init(void) {
 
- 	init_UPS_value();
 
- 	UPS.Present = true;
 
- 	xTaskCreate(request_task, ( char * ) "request_task", configMINIMAL_STACK_SIZE * 2, NULL, tskIDLE_PRIORITY, NULL);
 
- }
 
-  8028e2e:	b2c6      	uxtb	r6, r0
 
- 	UPS.SOC = 100*((atof(value)) - 1.6)/0.7;
 
- 	memset(value, 0, 10);
 
- 	endValue = strpbrk(data," ");
 
- 	len = endValue - data;
 
- 	strncpy(value, data, len);
 
-  8028e30:	4632      	mov	r2, r6
 
-  8028e32:	4629      	mov	r1, r5
 
-  8028e34:	a801      	add	r0, sp, #4
 
-  8028e36:	f7f9 f8f3 	bl	8022020 <strncpy>
 
- 	data += (len + 1);
 
- 	UPS.Temp = atof(value);
 
-  8028e3a:	a801      	add	r0, sp, #4
 
-  8028e3c:	f7f8 fd3c 	bl	80218b8 <atof>
 
-  8028e40:	f7f7 fea0 	bl	8020b84 <__aeabi_d2f>
 
- 	memset(value, 0, 10);
 
- 	endValue = strpbrk(data," ");
 
- 	len = endValue - data;
 
- 	strncpy(value, data, len);
 
- 	data += (len + 1);
 
-  8028e44:	3601      	adds	r6, #1
 
-  8028e46:	19ad      	adds	r5, r5, r6
 
- 	UPS.Temp = atof(value);
 
-  8028e48:	60e0      	str	r0, [r4, #12]
 
- 	memset(value, 0, 10);
 
-  8028e4a:	220a      	movs	r2, #10
 
-  8028e4c:	2100      	movs	r1, #0
 
-  8028e4e:	a801      	add	r0, sp, #4
 
-  8028e50:	f7f8 fe56 	bl	8021b00 <memset>
 
- 	endValue = strpbrk(data,"\r");
 
-  8028e54:	4918      	ldr	r1, [pc, #96]	; (8028eb8 <ups_status_response+0x200>)
 
-  8028e56:	4628      	mov	r0, r5
 
-  8028e58:	f7f9 f914 	bl	8022084 <strpbrk>
 
- 	len = endValue - data;
 
-  8028e5c:	1b40      	subs	r0, r0, r5
 
-  8028e5e:	b2c4      	uxtb	r4, r0
 
- 	strncpy(value, data, len);
 
-  8028e60:	4629      	mov	r1, r5
 
-  8028e62:	a801      	add	r0, sp, #4
 
-  8028e64:	4622      	mov	r2, r4
 
-  8028e66:	f7f9 f8db 	bl	8022020 <strncpy>
 
- 	uint8_t stat = 0;
 
- 	for(i = 0; i < len; i ++)
 
-  8028e6a:	2300      	movs	r3, #0
 
- 	memset(value, 0, 10);
 
- 	endValue = strpbrk(data,"\r");
 
- 	len = endValue - data;
 
- 	strncpy(value, data, len);
 
- 	uint8_t stat = 0;
 
-  8028e6c:	4619      	mov	r1, r3
 
- 	for(i = 0; i < len; i ++)
 
-  8028e6e:	e009      	b.n	8028e84 <ups_status_response+0x1cc>
 
- 	{
 
- 		stat |= (value[i] - 0x30) << (7-i);
 
-  8028e70:	aa01      	add	r2, sp, #4
 
- 		return false;
 
- 	return true;
 
- }
 
- void ups_status_response(char *data)
 
-  8028e72:	f1c3 0007 	rsb	r0, r3, #7
 
- 	len = endValue - data;
 
- 	strncpy(value, data, len);
 
- 	uint8_t stat = 0;
 
- 	for(i = 0; i < len; i ++)
 
- 	{
 
- 		stat |= (value[i] - 0x30) << (7-i);
 
-  8028e76:	5c9a      	ldrb	r2, [r3, r2]
 
-  8028e78:	3a30      	subs	r2, #48	; 0x30
 
-  8028e7a:	fa02 f200 	lsl.w	r2, r2, r0
 
-  8028e7e:	4311      	orrs	r1, r2
 
-  8028e80:	b2c9      	uxtb	r1, r1
 
-  8028e82:	3301      	adds	r3, #1
 
- 	memset(value, 0, 10);
 
- 	endValue = strpbrk(data,"\r");
 
- 	len = endValue - data;
 
- 	strncpy(value, data, len);
 
- 	uint8_t stat = 0;
 
- 	for(i = 0; i < len; i ++)
 
-  8028e84:	b2da      	uxtb	r2, r3
 
-  8028e86:	42a2      	cmp	r2, r4
 
-  8028e88:	d3f2      	bcc.n	8028e70 <ups_status_response+0x1b8>
 
- 	{
 
- 		stat |= (value[i] - 0x30) << (7-i);
 
- 	}
 
- 	UPS.Status = stat;
 
-  8028e8a:	4b07      	ldr	r3, [pc, #28]	; (8028ea8 <ups_status_response+0x1f0>)
 
-  8028e8c:	74d9      	strb	r1, [r3, #19]
 
- }
 
-  8028e8e:	e8bd 81ff 	ldmia.w	sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, pc}
 
-  8028e92:	bf00      	nop
 
-  8028e94:	f3af 8000 	nop.w
 
-  8028e98:	9999999a 	.word	0x9999999a
 
-  8028e9c:	3ff99999 	.word	0x3ff99999
 
-  8028ea0:	66666666 	.word	0x66666666
 
-  8028ea4:	3fe66666 	.word	0x3fe66666
 
-  8028ea8:	2000cba8 	.word	0x2000cba8
 
-  8028eac:	20000bc0 	.word	0x20000bc0
 
-  8028eb0:	08039ade 	.word	0x08039ade
 
-  8028eb4:	40590000 	.word	0x40590000
 
-  8028eb8:	08045b15 	.word	0x08045b15
 
-  8028ebc:	f3af 8000 	nop.w
 
- 08028ec0 <ups_info_response>:
 
- void ups_info_response(char *data)
 
- {
 
-  8028ec0:	b538      	push	{r3, r4, r5, lr}
 
- 	uint8_t i = 0;
 
- 	char *endValue;
 
- 	uint8_t len = 0;
 
- 	if(data[0] != '#')
 
-  8028ec2:	7803      	ldrb	r3, [r0, #0]
 
-  8028ec4:	2b23      	cmp	r3, #35	; 0x23
 
-  8028ec6:	d131      	bne.n	8028f2c <ups_info_response+0x6c>
 
- 		return;
 
- 	UPS.Present = true;
 
-  8028ec8:	4b19      	ldr	r3, [pc, #100]	; (8028f30 <ups_info_response+0x70>)
 
-  8028eca:	2201      	movs	r2, #1
 
-  8028ecc:	f883 202c 	strb.w	r2, [r3, #44]	; 0x2c
 
- 	UPS.Flag_Present = true;
 
-  8028ed0:	f883 202d 	strb.w	r2, [r3, #45]	; 0x2d
 
- 	UPS.cnt_err_ups = 0;
 
- 	data++;
 
- 	data += 16;
 
-  8028ed4:	3011      	adds	r0, #17
 
- 	if(data[0] != '#')
 
- 		return;
 
- 	UPS.Present = true;
 
- 	UPS.Flag_Present = true;
 
- 	UPS.cnt_err_ups = 0;
 
-  8028ed6:	2200      	movs	r2, #0
 
-  8028ed8:	f883 202b 	strb.w	r2, [r3, #43]	; 0x2b
 
- 	data++;
 
- 	data += 16;
 
- 	while(data[0] == ' '){
 
-  8028edc:	4603      	mov	r3, r0
 
-  8028ede:	461c      	mov	r4, r3
 
- 		stat |= (value[i] - 0x30) << (7-i);
 
- 	}
 
- 	UPS.Status = stat;
 
- }
 
- void ups_info_response(char *data)
 
-  8028ee0:	1a1a      	subs	r2, r3, r0
 
- 	data++;
 
- 	data += 16;
 
- 	while(data[0] == ' '){
 
-  8028ee2:	7821      	ldrb	r1, [r4, #0]
 
-  8028ee4:	3301      	adds	r3, #1
 
-  8028ee6:	2920      	cmp	r1, #32
 
- 		stat |= (value[i] - 0x30) << (7-i);
 
- 	}
 
- 	UPS.Status = stat;
 
- }
 
- void ups_info_response(char *data)
 
-  8028ee8:	b2d2      	uxtb	r2, r2
 
- 	data++;
 
- 	data += 16;
 
- 	while(data[0] == ' '){
 
-  8028eea:	d0f8      	beq.n	8028ede <ups_info_response+0x1e>
 
- 		data ++;
 
- 		i ++;
 
- 	}
 
- 	if(i < 11){
 
-  8028eec:	2a0a      	cmp	r2, #10
 
-  8028eee:	d80d      	bhi.n	8028f0c <ups_info_response+0x4c>
 
- 		endValue = strpbrk(data," ");
 
-  8028ef0:	4620      	mov	r0, r4
 
-  8028ef2:	4910      	ldr	r1, [pc, #64]	; (8028f34 <ups_info_response+0x74>)
 
-  8028ef4:	f7f9 f8c6 	bl	8022084 <strpbrk>
 
- 		len = endValue - data;
 
-  8028ef8:	1b00      	subs	r0, r0, r4
 
- void ups_megatec_init(void) {
 
- 	init_UPS_value();
 
- 	UPS.Present = true;
 
- 	xTaskCreate(request_task, ( char * ) "request_task", configMINIMAL_STACK_SIZE * 2, NULL, tskIDLE_PRIORITY, NULL);
 
- }
 
-  8028efa:	b2c5      	uxtb	r5, r0
 
- 		i ++;
 
- 	}
 
- 	if(i < 11){
 
- 		endValue = strpbrk(data," ");
 
- 		len = endValue - data;
 
- 		strncpy(UPS.model, data, len);
 
-  8028efc:	4621      	mov	r1, r4
 
-  8028efe:	462a      	mov	r2, r5
 
-  8028f00:	480d      	ldr	r0, [pc, #52]	; (8028f38 <ups_info_response+0x78>)
 
- 		data += (len + 1);
 
-  8028f02:	3501      	adds	r5, #1
 
- 		i ++;
 
- 	}
 
- 	if(i < 11){
 
- 		endValue = strpbrk(data," ");
 
- 		len = endValue - data;
 
- 		strncpy(UPS.model, data, len);
 
-  8028f04:	f7f9 f88c 	bl	8022020 <strncpy>
 
- 		data += (len + 1);
 
-  8028f08:	1964      	adds	r4, r4, r5
 
-  8028f0a:	e003      	b.n	8028f14 <ups_info_response+0x54>
 
- 	}
 
- 	else
 
- 	{
 
- 		strcpy(UPS.model, "RTMP II");
 
-  8028f0c:	480a      	ldr	r0, [pc, #40]	; (8028f38 <ups_info_response+0x78>)
 
-  8028f0e:	490b      	ldr	r1, [pc, #44]	; (8028f3c <ups_info_response+0x7c>)
 
-  8028f10:	f7f8 ff70 	bl	8021df4 <strcpy>
 
- 	}
 
- 	endValue = strpbrk(data,"\r");
 
-  8028f14:	4620      	mov	r0, r4
 
-  8028f16:	490a      	ldr	r1, [pc, #40]	; (8028f40 <ups_info_response+0x80>)
 
-  8028f18:	f7f9 f8b4 	bl	8022084 <strpbrk>
 
- 	len = endValue - data;
 
-  8028f1c:	1b02      	subs	r2, r0, r4
 
- 	strncpy(UPS.vertion, data, len);
 
-  8028f1e:	4809      	ldr	r0, [pc, #36]	; (8028f44 <ups_info_response+0x84>)
 
-  8028f20:	4621      	mov	r1, r4
 
-  8028f22:	b2d2      	uxtb	r2, r2
 
- }
 
-  8028f24:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
 
- 		strcpy(UPS.model, "RTMP II");
 
- 	}
 
- 	endValue = strpbrk(data,"\r");
 
- 	len = endValue - data;
 
- 	strncpy(UPS.vertion, data, len);
 
-  8028f28:	f7f9 b87a 	b.w	8022020 <strncpy>
 
-  8028f2c:	bd38      	pop	{r3, r4, r5, pc}
 
-  8028f2e:	bf00      	nop
 
-  8028f30:	2000cba8 	.word	0x2000cba8
 
-  8028f34:	08039ade 	.word	0x08039ade
 
-  8028f38:	2000cbbd 	.word	0x2000cbbd
 
-  8028f3c:	08039ae0 	.word	0x08039ae0
 
-  8028f40:	08045b15 	.word	0x08045b15
 
-  8028f44:	2000cbc8 	.word	0x2000cbc8
 
- 08028f48 <ups_remain_time_response>:
 
- }
 
- void ups_remain_time_response(char *data)
 
- {
 
-  8028f48:	b530      	push	{r4, r5, lr}
 
- 	char value[10];
 
- 	if(data[0] != '(')
 
-  8028f4a:	7803      	ldrb	r3, [r0, #0]
 
-  8028f4c:	2b28      	cmp	r3, #40	; 0x28
 
- 	strncpy(UPS.vertion, data, len);
 
- }
 
- void ups_remain_time_response(char *data)
 
- {
 
-  8028f4e:	b085      	sub	sp, #20
 
-  8028f50:	4605      	mov	r5, r0
 
- 	char value[10];
 
- 	if(data[0] != '(')
 
-  8028f52:	d116      	bne.n	8028f82 <ups_remain_time_response+0x3a>
 
- 		return;
 
- 	UPS.Present = true;
 
-  8028f54:	4c0c      	ldr	r4, [pc, #48]	; (8028f88 <ups_remain_time_response+0x40>)
 
-  8028f56:	2301      	movs	r3, #1
 
- 	UPS.Flag_Present = true;
 
- 	UPS.cnt_err_ups = 0;
 
- 	data++;
 
- 	memset(value, 0, 10);
 
-  8028f58:	220a      	movs	r2, #10
 
- 	if(data[0] != '(')
 
- 		return;
 
- 	UPS.Present = true;
 
- 	UPS.Flag_Present = true;
 
- 	UPS.cnt_err_ups = 0;
 
-  8028f5a:	2100      	movs	r1, #0
 
- 	data++;
 
- 	memset(value, 0, 10);
 
-  8028f5c:	a801      	add	r0, sp, #4
 
- {
 
- 	char value[10];
 
- 	if(data[0] != '(')
 
- 		return;
 
- 	UPS.Present = true;
 
-  8028f5e:	f884 302c 	strb.w	r3, [r4, #44]	; 0x2c
 
- 	UPS.Flag_Present = true;
 
-  8028f62:	f884 302d 	strb.w	r3, [r4, #45]	; 0x2d
 
- 	UPS.cnt_err_ups = 0;
 
-  8028f66:	f884 102b 	strb.w	r1, [r4, #43]	; 0x2b
 
- 	data++;
 
- 	memset(value, 0, 10);
 
-  8028f6a:	f7f8 fdc9 	bl	8021b00 <memset>
 
- 	strcpy(value, data);
 
-  8028f6e:	1c69      	adds	r1, r5, #1
 
-  8028f70:	a801      	add	r0, sp, #4
 
-  8028f72:	f7f8 ff3f 	bl	8021df4 <strcpy>
 
- 	UPS.work_time = atof(value);
 
-  8028f76:	a801      	add	r0, sp, #4
 
-  8028f78:	f7f8 fc9e 	bl	80218b8 <atof>
 
-  8028f7c:	f7f7 fde2 	bl	8020b44 <__aeabi_d2uiz>
 
-  8028f80:	74a0      	strb	r0, [r4, #18]
 
- }
 
-  8028f82:	b005      	add	sp, #20
 
-  8028f84:	bd30      	pop	{r4, r5, pc}
 
-  8028f86:	bf00      	nop
 
-  8028f88:	2000cba8 	.word	0x2000cba8
 
- 08028f8c <request_task>:
 
- 	}
 
- 	return -1;
 
- }
 
- void request_task(void)
 
- {
 
-  8028f8c:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
- 		for(;;)
 
- 		{
 
- 			if(UPS.Present == true){
 
-  8028f8e:	4c31      	ldr	r4, [pc, #196]	; (8029054 <request_task+0xc8>)
 
- 						memset(UPS.model, 0, 11);
 
- 						memset(UPS.vertion, 0, 11);
 
- 					}
 
- 				}
 
- 			}
 
- 			if(megatec_send){
 
-  8028f90:	4d31      	ldr	r5, [pc, #196]	; (8029058 <request_task+0xcc>)
 
- 				if(UPS.Flag_Present == false)
 
- 				{
 
- 					if(UPS.cnt_err_ups != 2)
 
- 						UPS.cnt_err_ups++;
 
- 					else{
 
- 						UPS.Freq_in = 0;
 
-  8028f92:	2700      	movs	r7, #0
 
- void request_task(void)
 
- {
 
- 		for(;;)
 
- 		{
 
- 			if(UPS.Present == true){
 
-  8028f94:	f894 302c 	ldrb.w	r3, [r4, #44]	; 0x2c
 
-  8028f98:	b1fb      	cbz	r3, 8028fda <request_task+0x4e>
 
- 				if(UPS.Flag_Present == false)
 
-  8028f9a:	f894 602d 	ldrb.w	r6, [r4, #45]	; 0x2d
 
-  8028f9e:	b9e6      	cbnz	r6, 8028fda <request_task+0x4e>
 
- 				{
 
- 					if(UPS.cnt_err_ups != 2)
 
-  8028fa0:	f894 302b 	ldrb.w	r3, [r4, #43]	; 0x2b
 
-  8028fa4:	2b02      	cmp	r3, #2
 
-  8028fa6:	d003      	beq.n	8028fb0 <request_task+0x24>
 
- 						UPS.cnt_err_ups++;
 
-  8028fa8:	3301      	adds	r3, #1
 
-  8028faa:	f884 302b 	strb.w	r3, [r4, #43]	; 0x2b
 
-  8028fae:	e014      	b.n	8028fda <request_task+0x4e>
 
- 						UPS.work_time = 0;
 
- 						UPS.Status = 0;
 
- 						UPS.Alarm = 0;
 
- 						UPS.Present = false;
 
- 						memset(UPS.model, 0, 11);
 
-  8028fb0:	4631      	mov	r1, r6
 
-  8028fb2:	220b      	movs	r2, #11
 
-  8028fb4:	4829      	ldr	r0, [pc, #164]	; (802905c <request_task+0xd0>)
 
- 				if(UPS.Flag_Present == false)
 
- 				{
 
- 					if(UPS.cnt_err_ups != 2)
 
- 						UPS.cnt_err_ups++;
 
- 					else{
 
- 						UPS.Freq_in = 0;
 
-  8028fb6:	6027      	str	r7, [r4, #0]
 
- 						UPS.VAC_in = 0;
 
-  8028fb8:	6067      	str	r7, [r4, #4]
 
- 						UPS.VAC_out = 0;
 
-  8028fba:	60a7      	str	r7, [r4, #8]
 
- 						UPS.Temp = 0;
 
-  8028fbc:	60e7      	str	r7, [r4, #12]
 
- 						UPS.Load = 0;
 
-  8028fbe:	7426      	strb	r6, [r4, #16]
 
- 						UPS.SOC = 0;
 
-  8028fc0:	7466      	strb	r6, [r4, #17]
 
- 						UPS.work_time = 0;
 
-  8028fc2:	74a6      	strb	r6, [r4, #18]
 
- 						UPS.Status = 0;
 
-  8028fc4:	74e6      	strb	r6, [r4, #19]
 
- 						UPS.Alarm = 0;
 
-  8028fc6:	7526      	strb	r6, [r4, #20]
 
- 						UPS.Present = false;
 
-  8028fc8:	f884 602c 	strb.w	r6, [r4, #44]	; 0x2c
 
- 						memset(UPS.model, 0, 11);
 
-  8028fcc:	f7f8 fd98 	bl	8021b00 <memset>
 
- 						memset(UPS.vertion, 0, 11);
 
-  8028fd0:	4823      	ldr	r0, [pc, #140]	; (8029060 <request_task+0xd4>)
 
-  8028fd2:	4631      	mov	r1, r6
 
-  8028fd4:	220b      	movs	r2, #11
 
-  8028fd6:	f7f8 fd93 	bl	8021b00 <memset>
 
- 					}
 
- 				}
 
- 			}
 
- 			if(megatec_send){
 
-  8028fda:	782b      	ldrb	r3, [r5, #0]
 
-  8028fdc:	b16b      	cbz	r3, 8028ffa <request_task+0x6e>
 
- 				megatec_send= false;
 
-  8028fde:	2000      	movs	r0, #0
 
-  8028fe0:	7028      	strb	r0, [r5, #0]
 
- 				UPS.Flag_Present = false;
 
-  8028fe2:	f884 002d 	strb.w	r0, [r4, #45]	; 0x2d
 
- 				send_MegaTec_cmd(ups_status_req);
 
-  8028fe6:	f7ff fe03 	bl	8028bf0 <send_MegaTec_cmd>
 
- 				if (ups_megatec_rx_pdu())
 
-  8028fea:	f7ff fe45 	bl	8028c78 <ups_megatec_rx_pdu>
 
-  8028fee:	b110      	cbz	r0, 8028ff6 <request_task+0x6a>
 
- void ups_megatec_process_pdu(cmdMegaTecEnums_t command)
 
- {
 
- 	switch(command)
 
- 	{
 
- 	case ups_status_req:
 
- 		ups_status_response(ups_pdu.data);
 
-  8028ff0:	481c      	ldr	r0, [pc, #112]	; (8029064 <request_task+0xd8>)
 
-  8028ff2:	f7ff fe61 	bl	8028cb8 <ups_status_response>
 
- 				UPS.Flag_Present = false;
 
- 				send_MegaTec_cmd(ups_status_req);
 
- 				if (ups_megatec_rx_pdu())
 
- 					ups_megatec_process_pdu(ups_status_req);
 
- 				megatec_send=true;
 
-  8028ff6:	2301      	movs	r3, #1
 
-  8028ff8:	702b      	strb	r3, [r5, #0]
 
- 			}
 
- 			if(megatec_send){
 
-  8028ffa:	782b      	ldrb	r3, [r5, #0]
 
-  8028ffc:	b19b      	cbz	r3, 8029026 <request_task+0x9a>
 
- 				memset(ups_pdu.data, 0, UPS_PDU_MAX_LEN);
 
-  8028ffe:	2100      	movs	r1, #0
 
-  8029000:	2232      	movs	r2, #50	; 0x32
 
-  8029002:	4818      	ldr	r0, [pc, #96]	; (8029064 <request_task+0xd8>)
 
-  8029004:	f7f8 fd7c 	bl	8021b00 <memset>
 
- 				megatec_send= false;
 
-  8029008:	2300      	movs	r3, #0
 
- 				UPS.Flag_Present = false;
 
- 				send_MegaTec_cmd(ups_remain_time_reg);
 
-  802900a:	200b      	movs	r0, #11
 
- 				megatec_send=true;
 
- 			}
 
- 			if(megatec_send){
 
- 				memset(ups_pdu.data, 0, UPS_PDU_MAX_LEN);
 
- 				megatec_send= false;
 
-  802900c:	702b      	strb	r3, [r5, #0]
 
- 				UPS.Flag_Present = false;
 
-  802900e:	f884 302d 	strb.w	r3, [r4, #45]	; 0x2d
 
- 				send_MegaTec_cmd(ups_remain_time_reg);
 
-  8029012:	f7ff fded 	bl	8028bf0 <send_MegaTec_cmd>
 
- 				if (ups_megatec_rx_pdu())
 
-  8029016:	f7ff fe2f 	bl	8028c78 <ups_megatec_rx_pdu>
 
-  802901a:	b110      	cbz	r0, 8029022 <request_task+0x96>
 
- 		break;
 
- 	case ups_rating_info:
 
- 		break;
 
- 	case ups_remain_time_reg:
 
- 		ups_remain_time_response(ups_pdu.data);
 
-  802901c:	4811      	ldr	r0, [pc, #68]	; (8029064 <request_task+0xd8>)
 
-  802901e:	f7ff ff93 	bl	8028f48 <ups_remain_time_response>
 
- 				UPS.Flag_Present = false;
 
- 				send_MegaTec_cmd(ups_remain_time_reg);
 
- 				if (ups_megatec_rx_pdu())
 
- 					ups_megatec_process_pdu(ups_remain_time_reg);
 
- 				megatec_send=true;
 
-  8029022:	2301      	movs	r3, #1
 
-  8029024:	702b      	strb	r3, [r5, #0]
 
- 			}
 
- 			//vTaskDelay(100);
 
- 			if(megatec_send){
 
-  8029026:	782b      	ldrb	r3, [r5, #0]
 
-  8029028:	b173      	cbz	r3, 8029048 <request_task+0xbc>
 
- 				megatec_send = false;
 
-  802902a:	2300      	movs	r3, #0
 
- 				UPS.Flag_Present = false;
 
- 				 send_MegaTec_cmd(ups_info);
 
-  802902c:	2009      	movs	r0, #9
 
- 				megatec_send=true;
 
- 			}
 
- 			//vTaskDelay(100);
 
- 			if(megatec_send){
 
- 				megatec_send = false;
 
-  802902e:	702b      	strb	r3, [r5, #0]
 
- 				UPS.Flag_Present = false;
 
-  8029030:	f884 302d 	strb.w	r3, [r4, #45]	; 0x2d
 
- 				 send_MegaTec_cmd(ups_info);
 
-  8029034:	f7ff fddc 	bl	8028bf0 <send_MegaTec_cmd>
 
- 				if (ups_megatec_rx_pdu())
 
-  8029038:	f7ff fe1e 	bl	8028c78 <ups_megatec_rx_pdu>
 
-  802903c:	b110      	cbz	r0, 8029044 <request_task+0xb8>
 
- 	{
 
- 	case ups_status_req:
 
- 		ups_status_response(ups_pdu.data);
 
- 		break;
 
- 	case ups_info:
 
- 		ups_info_response(ups_pdu.data);
 
-  802903e:	4809      	ldr	r0, [pc, #36]	; (8029064 <request_task+0xd8>)
 
-  8029040:	f7ff ff3e 	bl	8028ec0 <ups_info_response>
 
- 				megatec_send = false;
 
- 				UPS.Flag_Present = false;
 
- 				 send_MegaTec_cmd(ups_info);
 
- 				if (ups_megatec_rx_pdu())
 
- 					ups_megatec_process_pdu(ups_info);
 
- 				megatec_send = true;
 
-  8029044:	2301      	movs	r3, #1
 
-  8029046:	702b      	strb	r3, [r5, #0]
 
- 			}
 
- 	        vTaskDelay(1000);
 
-  8029048:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
 
-  802904c:	f001 ffbe 	bl	802afcc <vTaskDelay>
 
- 		}
 
-  8029050:	e7a0      	b.n	8028f94 <request_task+0x8>
 
-  8029052:	bf00      	nop
 
-  8029054:	2000cba8 	.word	0x2000cba8
 
-  8029058:	20000662 	.word	0x20000662
 
-  802905c:	2000cbbd 	.word	0x2000cbbd
 
-  8029060:	2000cbc8 	.word	0x2000cbc8
 
-  8029064:	20000b1c 	.word	0x20000b1c
 
- 08029068 <ups_metac_service_pdu>:
 
- 		break;
 
- 	}
 
- }
 
- int ups_metac_service_pdu(cmdMegaTecEnums_t command)
 
- {
 
-  8029068:	b570      	push	{r4, r5, r6, lr}
 
-  802906a:	4606      	mov	r6, r0
 
- 	while(!megatec_send)
 
-  802906c:	4c14      	ldr	r4, [pc, #80]	; (80290c0 <ups_metac_service_pdu+0x58>)
 
-  802906e:	e002      	b.n	8029076 <ups_metac_service_pdu+0xe>
 
- 	{
 
- 		vTaskDelay(50);
 
-  8029070:	2032      	movs	r0, #50	; 0x32
 
-  8029072:	f001 ffab 	bl	802afcc <vTaskDelay>
 
- 	}
 
- }
 
- int ups_metac_service_pdu(cmdMegaTecEnums_t command)
 
- {
 
- 	while(!megatec_send)
 
-  8029076:	7823      	ldrb	r3, [r4, #0]
 
-  8029078:	4d11      	ldr	r5, [pc, #68]	; (80290c0 <ups_metac_service_pdu+0x58>)
 
-  802907a:	2b00      	cmp	r3, #0
 
-  802907c:	d0f8      	beq.n	8029070 <ups_metac_service_pdu+0x8>
 
- 	{
 
- 		vTaskDelay(50);
 
- 	}
 
- 	megatec_send = false;
 
-  802907e:	2300      	movs	r3, #0
 
- 	send_MegaTec_cmd(command);
 
-  8029080:	4630      	mov	r0, r6
 
- {
 
- 	while(!megatec_send)
 
- 	{
 
- 		vTaskDelay(50);
 
- 	}
 
- 	megatec_send = false;
 
-  8029082:	702b      	strb	r3, [r5, #0]
 
- 	send_MegaTec_cmd(command);
 
-  8029084:	f7ff fdb4 	bl	8028bf0 <send_MegaTec_cmd>
 
- 	if (ups_megatec_rx_pdu())
 
-  8029088:	f7ff fdf6 	bl	8028c78 <ups_megatec_rx_pdu>
 
-  802908c:	b190      	cbz	r0, 80290b4 <ups_metac_service_pdu+0x4c>
 
- 	{
 
- 		megatec_send = true;
 
-  802908e:	2401      	movs	r4, #1
 
- 		if(strncmp(ups_pdu.data, "ACK", 3) == 0)
 
-  8029090:	480c      	ldr	r0, [pc, #48]	; (80290c4 <ups_metac_service_pdu+0x5c>)
 
-  8029092:	490d      	ldr	r1, [pc, #52]	; (80290c8 <ups_metac_service_pdu+0x60>)
 
- 	}
 
- 	megatec_send = false;
 
- 	send_MegaTec_cmd(command);
 
- 	if (ups_megatec_rx_pdu())
 
- 	{
 
- 		megatec_send = true;
 
-  8029094:	702c      	strb	r4, [r5, #0]
 
- 		if(strncmp(ups_pdu.data, "ACK", 3) == 0)
 
-  8029096:	2203      	movs	r2, #3
 
-  8029098:	f7f8 ff6c 	bl	8021f74 <strncmp>
 
-  802909c:	b168      	cbz	r0, 80290ba <ups_metac_service_pdu+0x52>
 
- 			return 1;
 
- 		else if(strncmp(ups_pdu.data, "NCK", 3) == 0)
 
-  802909e:	490b      	ldr	r1, [pc, #44]	; (80290cc <ups_metac_service_pdu+0x64>)
 
-  80290a0:	4808      	ldr	r0, [pc, #32]	; (80290c4 <ups_metac_service_pdu+0x5c>)
 
-  80290a2:	2203      	movs	r2, #3
 
-  80290a4:	f7f8 ff66 	bl	8021f74 <strncmp>
 
- 			return 0;
 
-  80290a8:	2800      	cmp	r0, #0
 
-  80290aa:	bf14      	ite	ne
 
-  80290ac:	f04f 30ff 	movne.w	r0, #4294967295
 
-  80290b0:	2000      	moveq	r0, #0
 
-  80290b2:	bd70      	pop	{r4, r5, r6, pc}
 
- 	}
 
- 	return -1;
 
-  80290b4:	f04f 30ff 	mov.w	r0, #4294967295
 
-  80290b8:	bd70      	pop	{r4, r5, r6, pc}
 
- 	send_MegaTec_cmd(command);
 
- 	if (ups_megatec_rx_pdu())
 
- 	{
 
- 		megatec_send = true;
 
- 		if(strncmp(ups_pdu.data, "ACK", 3) == 0)
 
- 			return 1;
 
-  80290ba:	4620      	mov	r0, r4
 
- 		else if(strncmp(ups_pdu.data, "NCK", 3) == 0)
 
- 			return 0;
 
- 	}
 
- 	return -1;
 
- }
 
-  80290bc:	bd70      	pop	{r4, r5, r6, pc}
 
-  80290be:	bf00      	nop
 
-  80290c0:	20000662 	.word	0x20000662
 
-  80290c4:	20000b1c 	.word	0x20000b1c
 
-  80290c8:	08039ae8 	.word	0x08039ae8
 
-  80290cc:	08039aec 	.word	0x08039aec
 
- 080290d0 <ups_megatec_init>:
 
- 	        vTaskDelay(1000);
 
- 		}
 
- }
 
- void ups_megatec_init(void) {
 
-  80290d0:	b51f      	push	{r0, r1, r2, r3, r4, lr}
 
- 	init_UPS_value();
 
-  80290d2:	f7ff fd69 	bl	8028ba8 <init_UPS_value>
 
- 	UPS.Present = true;
 
-  80290d6:	4b08      	ldr	r3, [pc, #32]	; (80290f8 <ups_megatec_init+0x28>)
 
- 	xTaskCreate(request_task, ( char * ) "request_task", configMINIMAL_STACK_SIZE * 2, NULL, tskIDLE_PRIORITY, NULL);
 
-  80290d8:	4908      	ldr	r1, [pc, #32]	; (80290fc <ups_megatec_init+0x2c>)
 
-  80290da:	4809      	ldr	r0, [pc, #36]	; (8029100 <ups_megatec_init+0x30>)
 
- 		}
 
- }
 
- void ups_megatec_init(void) {
 
- 	init_UPS_value();
 
- 	UPS.Present = true;
 
-  80290dc:	2201      	movs	r2, #1
 
-  80290de:	f883 202c 	strb.w	r2, [r3, #44]	; 0x2c
 
- 	xTaskCreate(request_task, ( char * ) "request_task", configMINIMAL_STACK_SIZE * 2, NULL, tskIDLE_PRIORITY, NULL);
 
-  80290e2:	2300      	movs	r3, #0
 
-  80290e4:	9300      	str	r3, [sp, #0]
 
-  80290e6:	9301      	str	r3, [sp, #4]
 
-  80290e8:	9302      	str	r3, [sp, #8]
 
-  80290ea:	9303      	str	r3, [sp, #12]
 
-  80290ec:	f44f 7280 	mov.w	r2, #256	; 0x100
 
-  80290f0:	f001 fcd2 	bl	802aa98 <xTaskGenericCreate>
 
- }
 
-  80290f4:	b005      	add	sp, #20
 
-  80290f6:	bd00      	pop	{pc}
 
-  80290f8:	2000cba8 	.word	0x2000cba8
 
-  80290fc:	08039af0 	.word	0x08039af0
 
-  8029100:	08028f8d 	.word	0x08028f8d
 
- 08029104 <Reboot>:
 
- #include "trap_api.h"
 
- #include <stddef.h>
 
- #include "FreeRTOS.h"
 
- #include "task.h"
 
- void Reboot(void) {
 
-  8029104:	b508      	push	{r3, lr}
 
- 	SNMP_SendUserTrap(DEVICE_REBOOTED);
 
-  8029106:	2004      	movs	r0, #4
 
-  8029108:	f00f f818 	bl	803813c <SNMP_SendUserTrap>
 
- 	log_event_data(LOG_SYSTEM_BOOT, "Администратор");
 
-  802910c:	2000      	movs	r0, #0
 
-  802910e:	4909      	ldr	r1, [pc, #36]	; (8029134 <Reboot+0x30>)
 
-  8029110:	f000 fca4 	bl	8029a5c <log_event_data>
 
- 	vTaskDelay(1010);
 
-  8029114:	f240 30f2 	movw	r0, #1010	; 0x3f2
 
-  8029118:	f001 ff58 	bl	802afcc <vTaskDelay>
 
-     This function acts as a special kind of Data Memory Barrier.
 
-     It completes when all explicit memory accesses before this instruction complete.
 
-  */
 
- __attribute__( ( always_inline ) ) __STATIC_INLINE void __DSB(void)
 
- {
 
-   __ASM volatile ("dsb");
 
-  802911c:	f3bf 8f4f 	dsb	sy
 
- //static inline void NVIC_SystemReset(void)
 
- {
 
-   __DSB();                                                     /* Ensure all outstanding memory accesses included
 
-                                                                   buffered write are completed before reset */
 
-   SCB->AIRCR  = ((0x5FA << SCB_AIRCR_VECTKEY_Pos)      |
 
-                  (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) |
 
-  8029120:	4a05      	ldr	r2, [pc, #20]	; (8029138 <Reboot+0x34>)
 
-  8029122:	4b06      	ldr	r3, [pc, #24]	; (802913c <Reboot+0x38>)
 
-  8029124:	68d1      	ldr	r1, [r2, #12]
 
-  8029126:	f401 61e0 	and.w	r1, r1, #1792	; 0x700
 
-  802912a:	430b      	orrs	r3, r1
 
- __STATIC_INLINE void NVIC_SystemReset(void)
 
- //static inline void NVIC_SystemReset(void)
 
- {
 
-   __DSB();                                                     /* Ensure all outstanding memory accesses included
 
-                                                                   buffered write are completed before reset */
 
-   SCB->AIRCR  = ((0x5FA << SCB_AIRCR_VECTKEY_Pos)      |
 
-  802912c:	60d3      	str	r3, [r2, #12]
 
-  802912e:	f3bf 8f4f 	dsb	sy
 
-  8029132:	e7fe      	b.n	8029132 <Reboot+0x2e>
 
-  8029134:	08039ab8 	.word	0x08039ab8
 
-  8029138:	e000ed00 	.word	0xe000ed00
 
-  802913c:	05fa0004 	.word	0x05fa0004
 
- 08029140 <rbuf32_init>:
 
- #define _size_w(n) sizeof(n) / sizeof(int)
 
- void rbuf32_init(rbuf_t *rbuf32, uint32_t *buffer, uint32_t size) {
 
- 	rbuf32->buf_ptr = buffer;
 
- 	rbuf32->size = size;
 
- 	rbuf32->read_index = 0;
 
-  8029140:	2300      	movs	r3, #0
 
- #define _size_w(n) sizeof(n) / sizeof(int)
 
- void rbuf32_init(rbuf_t *rbuf32, uint32_t *buffer, uint32_t size) {
 
- 	rbuf32->buf_ptr = buffer;
 
- 	rbuf32->size = size;
 
-  8029142:	e880 0006 	stmia.w	r0, {r1, r2}
 
- 	rbuf32->read_index = 0;
 
-  8029146:	6083      	str	r3, [r0, #8]
 
- 	rbuf32->write_index = 0;
 
-  8029148:	60c3      	str	r3, [r0, #12]
 
-  802914a:	4770      	bx	lr
 
- 0802914c <rbuf_isfull>:
 
- 	return full_space;
 
- }
 
- bool rbuf_isfull(rbuf_t *rbuf) {
 
- 	int r_tmp;
 
- 	if (rbuf->write_index == (rbuf->size - 1)) {
 
-  802914c:	6842      	ldr	r2, [r0, #4]
 
-  802914e:	68c3      	ldr	r3, [r0, #12]
 
-  8029150:	6880      	ldr	r0, [r0, #8]
 
-  8029152:	1e51      	subs	r1, r2, #1
 
-  8029154:	428b      	cmp	r3, r1
 
- 		r_tmp = rbuf->read_index + rbuf->size;
 
-  8029156:	bf08      	it	eq
 
-  8029158:	1810      	addeq	r0, r2, r0
 
- 	}
 
- 	else
 
- 		r_tmp = rbuf->read_index;
 
- 	if (r_tmp - rbuf->write_index == 1)
 
-  802915a:	1ac0      	subs	r0, r0, r3
 
- 		return true;
 
- 	else
 
- 		return false;
 
- }
 
-  802915c:	1e42      	subs	r2, r0, #1
 
-  802915e:	4250      	negs	r0, r2
 
-  8029160:	4150      	adcs	r0, r2
 
-  8029162:	4770      	bx	lr
 
- 08029164 <rbuf32_get>:
 
- 	rbuf64->read_index = 0;
 
- 	rbuf64->write_index = 0;
 
- }
 
- bool rbuf_isempty(rbuf_t *rbuf) {
 
- 	if (rbuf->read_index == rbuf->write_index)
 
-  8029164:	6883      	ldr	r3, [r0, #8]
 
-  8029166:	68c2      	ldr	r2, [r0, #12]
 
-  8029168:	4293      	cmp	r3, r2
 
-  802916a:	d105      	bne.n	8029178 <rbuf32_get+0x14>
 
-  802916c:	e002      	b.n	8029174 <rbuf32_get+0x10>
 
- 	/* Check whether buffer is not empty */
 
- 	if (!rbuf_isempty(rbuf32)) {
 
- 		*data = rbuf32->buf_ptr[rbuf32->read_index++];
 
- 		/* swap the read pointer */
 
- 		if (rbuf32->read_index == (rbuf32->size))
 
- 			rbuf32->read_index = 0;
 
-  802916e:	2300      	movs	r3, #0
 
-  8029170:	6083      	str	r3, [r0, #8]
 
-  8029172:	e00a      	b.n	802918a <rbuf32_get+0x26>
 
- 		return true;
 
- 	}
 
- 	else
 
- 		return false;
 
-  8029174:	2000      	movs	r0, #0
 
-  8029176:	4770      	bx	lr
 
- }
 
- bool rbuf32_get(rbuf_t *rbuf32, uint32_t *data) {
 
- 	/* Check whether buffer is not empty */
 
- 	if (!rbuf_isempty(rbuf32)) {
 
- 		*data = rbuf32->buf_ptr[rbuf32->read_index++];
 
-  8029178:	6802      	ldr	r2, [r0, #0]
 
-  802917a:	f852 2023 	ldr.w	r2, [r2, r3, lsl #2]
 
-  802917e:	600a      	str	r2, [r1, #0]
 
- 		/* swap the read pointer */
 
- 		if (rbuf32->read_index == (rbuf32->size))
 
-  8029180:	6842      	ldr	r2, [r0, #4]
 
- }
 
- bool rbuf32_get(rbuf_t *rbuf32, uint32_t *data) {
 
- 	/* Check whether buffer is not empty */
 
- 	if (!rbuf_isempty(rbuf32)) {
 
- 		*data = rbuf32->buf_ptr[rbuf32->read_index++];
 
-  8029182:	3301      	adds	r3, #1
 
- 		/* swap the read pointer */
 
- 		if (rbuf32->read_index == (rbuf32->size))
 
-  8029184:	4293      	cmp	r3, r2
 
- }
 
- bool rbuf32_get(rbuf_t *rbuf32, uint32_t *data) {
 
- 	/* Check whether buffer is not empty */
 
- 	if (!rbuf_isempty(rbuf32)) {
 
- 		*data = rbuf32->buf_ptr[rbuf32->read_index++];
 
-  8029186:	6083      	str	r3, [r0, #8]
 
- 		/* swap the read pointer */
 
- 		if (rbuf32->read_index == (rbuf32->size))
 
-  8029188:	d0f1      	beq.n	802916e <rbuf32_get+0xa>
 
- 			rbuf32->read_index = 0;
 
- 		return true;
 
-  802918a:	2001      	movs	r0, #1
 
- 	}
 
- 	else
 
- 		return false;
 
- }
 
-  802918c:	4770      	bx	lr
 
- 0802918e <rbuf32_put>:
 
- /*
 
-  * Oldest data is overwriting when write_ptr reaches read_ptr - 1 (!).
 
-  * For check use rbuf_isfull.
 
-  */
 
- bool rbuf32_put(rbuf_t *rbuf32, uint32_t data) {
 
-  802918e:	b538      	push	{r3, r4, r5, lr}
 
-  8029190:	4604      	mov	r4, r0
 
-  8029192:	460d      	mov	r5, r1
 
- 	if(!rbuf_isfull(rbuf32))
 
-  8029194:	f7ff ffda 	bl	802914c <rbuf_isfull>
 
-  8029198:	b950      	cbnz	r0, 80291b0 <rbuf32_put+0x22>
 
- 	{
 
- 		rbuf32->buf_ptr[rbuf32->write_index++] = data;
 
-  802919a:	68e3      	ldr	r3, [r4, #12]
 
-  802919c:	6822      	ldr	r2, [r4, #0]
 
-  802919e:	f842 5023 	str.w	r5, [r2, r3, lsl #2]
 
- 		/* swap the write pointer */
 
- 		if (rbuf32->write_index == (rbuf32->size))
 
-  80291a2:	6862      	ldr	r2, [r4, #4]
 
-  */
 
- bool rbuf32_put(rbuf_t *rbuf32, uint32_t data) {
 
- 	if(!rbuf_isfull(rbuf32))
 
- 	{
 
- 		rbuf32->buf_ptr[rbuf32->write_index++] = data;
 
-  80291a4:	3301      	adds	r3, #1
 
- 		/* swap the write pointer */
 
- 		if (rbuf32->write_index == (rbuf32->size))
 
-  80291a6:	4293      	cmp	r3, r2
 
-  */
 
- bool rbuf32_put(rbuf_t *rbuf32, uint32_t data) {
 
- 	if(!rbuf_isfull(rbuf32))
 
- 	{
 
- 		rbuf32->buf_ptr[rbuf32->write_index++] = data;
 
-  80291a8:	60e3      	str	r3, [r4, #12]
 
- 		/* swap the write pointer */
 
- 		if (rbuf32->write_index == (rbuf32->size))
 
-  80291aa:	d103      	bne.n	80291b4 <rbuf32_put+0x26>
 
- 			rbuf32->write_index = 0;
 
-  80291ac:	60e0      	str	r0, [r4, #12]
 
-  80291ae:	e001      	b.n	80291b4 <rbuf32_put+0x26>
 
- 		return true;
 
- 	}
 
- 	else
 
- 		return false;
 
-  80291b0:	2000      	movs	r0, #0
 
-  80291b2:	bd38      	pop	{r3, r4, r5, pc}
 
- bool rbuf32_put(rbuf_t *rbuf32, uint32_t data) {
 
- 	if(!rbuf_isfull(rbuf32))
 
- 	{
 
- 		rbuf32->buf_ptr[rbuf32->write_index++] = data;
 
- 		/* swap the write pointer */
 
- 		if (rbuf32->write_index == (rbuf32->size))
 
-  80291b4:	2001      	movs	r0, #1
 
- 			rbuf32->write_index = 0;
 
- 		return true;
 
- 	}
 
- 	else
 
- 		return false;
 
- }
 
-  80291b6:	bd38      	pop	{r3, r4, r5, pc}
 
- 080291b8 <from_hex>:
 
- #include <ctype.h>
 
- #include <stdint.h>
 
- /* Converts a hex character to its integer value */
 
- char from_hex(char ch) {
 
-   return isdigit(ch) ? ch - '0' : tolower(ch) - 'a' + 10;
 
-  80291b8:	4b08      	ldr	r3, [pc, #32]	; (80291dc <from_hex+0x24>)
 
-  80291ba:	681b      	ldr	r3, [r3, #0]
 
-  80291bc:	181b      	adds	r3, r3, r0
 
-  80291be:	785b      	ldrb	r3, [r3, #1]
 
-  80291c0:	f003 0204 	and.w	r2, r3, #4
 
-  80291c4:	b2d2      	uxtb	r2, r2
 
-  80291c6:	b10a      	cbz	r2, 80291cc <from_hex+0x14>
 
-  80291c8:	3830      	subs	r0, #48	; 0x30
 
-  80291ca:	e005      	b.n	80291d8 <from_hex+0x20>
 
-  80291cc:	f003 0303 	and.w	r3, r3, #3
 
-  80291d0:	2b01      	cmp	r3, #1
 
-  80291d2:	bf08      	it	eq
 
-  80291d4:	3020      	addeq	r0, #32
 
-  80291d6:	3857      	subs	r0, #87	; 0x57
 
-  80291d8:	b2c0      	uxtb	r0, r0
 
- }
 
-  80291da:	4770      	bx	lr
 
-  80291dc:	20000000 	.word	0x20000000
 
- 080291e0 <url_decode>:
 
-   return buf;
 
- }
 
- /* Returns a url-decoded version of str */
 
- /* IMPORTANT:  be sure that outbuf is big enougth */
 
- char *url_decode(char *outbuf, uint32_t outlen, char *inbuf) {
 
-  80291e0:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
 
-  80291e4:	4607      	mov	r7, r0
 
-  80291e6:	460e      	mov	r6, r1
 
-   char *pstr = inbuf, *buf = outbuf, *pbuf = buf;
 
-  80291e8:	4604      	mov	r4, r0
 
-  80291ea:	4615      	mov	r5, r2
 
-       if (pstr[1] && pstr[2]) {
 
-         *pbuf++ = from_hex(pstr[1]) << 4 | from_hex(pstr[2]);
 
-         pstr += 2;
 
-       }
 
-     } else if (*pstr == '+') {
 
-       *pbuf++ = ' ';
 
-  80291ec:	f04f 0920 	mov.w	r9, #32
 
- /* Returns a url-decoded version of str */
 
- /* IMPORTANT:  be sure that outbuf is big enougth */
 
- char *url_decode(char *outbuf, uint32_t outlen, char *inbuf) {
 
-   char *pstr = inbuf, *buf = outbuf, *pbuf = buf;
 
-   while ((*pstr) && outlen > 1) {
 
-  80291f0:	e01e      	b.n	8029230 <url_decode+0x50>
 
-     if (*pstr == '%') {
 
-  80291f2:	2b25      	cmp	r3, #37	; 0x25
 
-  80291f4:	d112      	bne.n	802921c <url_decode+0x3c>
 
-       if (pstr[1] && pstr[2]) {
 
-  80291f6:	7868      	ldrb	r0, [r5, #1]
 
-  80291f8:	b1c0      	cbz	r0, 802922c <url_decode+0x4c>
 
-  80291fa:	f895 8002 	ldrb.w	r8, [r5, #2]
 
-  80291fe:	f1b8 0f00 	cmp.w	r8, #0
 
-  8029202:	d013      	beq.n	802922c <url_decode+0x4c>
 
-         *pbuf++ = from_hex(pstr[1]) << 4 | from_hex(pstr[2]);
 
-  8029204:	f7ff ffd8 	bl	80291b8 <from_hex>
 
-  8029208:	4682      	mov	sl, r0
 
-  802920a:	4640      	mov	r0, r8
 
-  802920c:	f7ff ffd4 	bl	80291b8 <from_hex>
 
-  8029210:	ea40 100a 	orr.w	r0, r0, sl, lsl #4
 
-  8029214:	f804 0b01 	strb.w	r0, [r4], #1
 
-         pstr += 2;
 
-  8029218:	3502      	adds	r5, #2
 
-  802921a:	e007      	b.n	802922c <url_decode+0x4c>
 
-       }
 
-     } else if (*pstr == '+') {
 
-  802921c:	2b2b      	cmp	r3, #43	; 0x2b
 
-  802921e:	f104 0201 	add.w	r2, r4, #1
 
-       *pbuf++ = ' ';
 
-  8029222:	bf0c      	ite	eq
 
-  8029224:	f884 9000 	strbeq.w	r9, [r4]
 
-     } else {
 
-       *pbuf++ = *pstr;
 
-  8029228:	7023      	strbne	r3, [r4, #0]
 
-  802922a:	4614      	mov	r4, r2
 
-     }
 
-     pstr++;
 
-  802922c:	3501      	adds	r5, #1
 
-     outlen--;
 
-  802922e:	3e01      	subs	r6, #1
 
- /* Returns a url-decoded version of str */
 
- /* IMPORTANT:  be sure that outbuf is big enougth */
 
- char *url_decode(char *outbuf, uint32_t outlen, char *inbuf) {
 
-   char *pstr = inbuf, *buf = outbuf, *pbuf = buf;
 
-   while ((*pstr) && outlen > 1) {
 
-  8029230:	782b      	ldrb	r3, [r5, #0]
 
-  8029232:	b10b      	cbz	r3, 8029238 <url_decode+0x58>
 
-  8029234:	2e01      	cmp	r6, #1
 
-  8029236:	d8dc      	bhi.n	80291f2 <url_decode+0x12>
 
-       *pbuf++ = *pstr;
 
-     }
 
-     pstr++;
 
-     outlen--;
 
-   }
 
-   *pbuf = '\0';
 
-  8029238:	2300      	movs	r3, #0
 
-  802923a:	7023      	strb	r3, [r4, #0]
 
-   return buf;
 
- }
 
-  802923c:	4638      	mov	r0, r7
 
-  802923e:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
 
-  8029242:	0000      	movs	r0, r0
 
- 08029244 <UPS_DI0Monitor>:
 
- /**
 
-   * @brief  Мониторинг бита DI0 state
 
-   */
 
- void UPS_DI0Monitor(void)
 
- {
 
-  8029244:	b510      	push	{r4, lr}
 
-   static bool isValueRecv = false;
 
-   static uint8_t DI0OldState = 0;
 
-   uint8_t DI0StateCurrent;
 
-   DI0StateCurrent = get_state_din_outs(DIN1);
 
-  8029246:	2006      	movs	r0, #6
 
-  8029248:	f7ff fca6 	bl	8028b98 <get_state_din_outs>
 
-   	if (!isValueRecv) {
 
-  802924c:	4a16      	ldr	r2, [pc, #88]	; (80292a8 <UPS_DI0Monitor+0x64>)
 
-  802924e:	4b17      	ldr	r3, [pc, #92]	; (80292ac <UPS_DI0Monitor+0x68>)
 
-  8029250:	7811      	ldrb	r1, [r2, #0]
 
- {
 
-   static bool isValueRecv = false;
 
-   static uint8_t DI0OldState = 0;
 
-   uint8_t DI0StateCurrent;
 
-   DI0StateCurrent = get_state_din_outs(DIN1);
 
-  8029252:	4604      	mov	r4, r0
 
-   	if (!isValueRecv) {
 
-  8029254:	b961      	cbnz	r1, 8029270 <UPS_DI0Monitor+0x2c>
 
- 	  isValueRecv = true;
 
-  8029256:	2101      	movs	r1, #1
 
-  8029258:	7011      	strb	r1, [r2, #0]
 
- 	  DI0OldState = DI0StateCurrent;
 
-  802925a:	7018      	strb	r0, [r3, #0]
 
- 	  if (!DI0StateCurrent){
 
-  802925c:	bb18      	cbnz	r0, 80292a6 <UPS_DI0Monitor+0x62>
 
- 		  log_event_data(LOG_ALARM_DIO, "Авария");
 
-  802925e:	2008      	movs	r0, #8
 
-  8029260:	4913      	ldr	r1, [pc, #76]	; (80292b0 <UPS_DI0Monitor+0x6c>)
 
-  8029262:	f000 fbfb 	bl	8029a5c <log_event_data>
 
- 		  SNMP_SendUserTrap(DI0_ALARM);
 
-  8029266:	2006      	movs	r0, #6
 
- 		  }
 
- 	  }
 
- 	}
 
- 	DI0OldState = DI0StateCurrent;
 
- }
 
-  8029268:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
-   	if (!isValueRecv) {
 
- 	  isValueRecv = true;
 
- 	  DI0OldState = DI0StateCurrent;
 
- 	  if (!DI0StateCurrent){
 
- 		  log_event_data(LOG_ALARM_DIO, "Авария");
 
- 		  SNMP_SendUserTrap(DI0_ALARM);
 
-  802926c:	f00e bf66 	b.w	803813c <SNMP_SendUserTrap>
 
- 	  }
 
- 	  return;
 
- 	}
 
- 	if (!DI0StateCurrent)
 
-  8029270:	b910      	cbnz	r0, 8029278 <UPS_DI0Monitor+0x34>
 
- 	  flCriticalAlarm = true;
 
-  8029272:	4a10      	ldr	r2, [pc, #64]	; (80292b4 <UPS_DI0Monitor+0x70>)
 
-  8029274:	2101      	movs	r1, #1
 
-  8029276:	7011      	strb	r1, [r2, #0]
 
- 	// Значение параметра изменилось
 
- 	if (DI0StateCurrent != DI0OldState)
 
-  8029278:	781b      	ldrb	r3, [r3, #0]
 
-  802927a:	42a3      	cmp	r3, r4
 
-  802927c:	d011      	beq.n	80292a2 <UPS_DI0Monitor+0x5e>
 
- 	{
 
- 	  if(sSettings.sInOuts.din_type_act[0] == SNMP_TRAP)
 
-  802927e:	4b0e      	ldr	r3, [pc, #56]	; (80292b8 <UPS_DI0Monitor+0x74>)
 
-  8029280:	f893 3376 	ldrb.w	r3, [r3, #886]	; 0x376
 
-  8029284:	2b02      	cmp	r3, #2
 
-  8029286:	d10c      	bne.n	80292a2 <UPS_DI0Monitor+0x5e>
 
- 	  {
 
- 		  if (DI0StateCurrent){
 
- 			log_event_data(LOG_ALARM_DIO, "Норма");
 
-  8029288:	2008      	movs	r0, #8
 
- 	// Значение параметра изменилось
 
- 	if (DI0StateCurrent != DI0OldState)
 
- 	{
 
- 	  if(sSettings.sInOuts.din_type_act[0] == SNMP_TRAP)
 
- 	  {
 
- 		  if (DI0StateCurrent){
 
-  802928a:	b124      	cbz	r4, 8029296 <UPS_DI0Monitor+0x52>
 
- 			log_event_data(LOG_ALARM_DIO, "Норма");
 
-  802928c:	490b      	ldr	r1, [pc, #44]	; (80292bc <UPS_DI0Monitor+0x78>)
 
-  802928e:	f000 fbe5 	bl	8029a5c <log_event_data>
 
- 			SNMP_SendUserTrap(DI0_NORM);
 
-  8029292:	2005      	movs	r0, #5
 
-  8029294:	e003      	b.n	802929e <UPS_DI0Monitor+0x5a>
 
- 		  }
 
- 		  else{
 
- 			log_event_data(LOG_ALARM_DIO, "Авария");
 
-  8029296:	4906      	ldr	r1, [pc, #24]	; (80292b0 <UPS_DI0Monitor+0x6c>)
 
-  8029298:	f000 fbe0 	bl	8029a5c <log_event_data>
 
- 			SNMP_SendUserTrap(DI0_ALARM);
 
-  802929c:	2006      	movs	r0, #6
 
-  802929e:	f00e ff4d 	bl	803813c <SNMP_SendUserTrap>
 
- 		  }
 
- 	  }
 
- 	}
 
- 	DI0OldState = DI0StateCurrent;
 
-  80292a2:	4b02      	ldr	r3, [pc, #8]	; (80292ac <UPS_DI0Monitor+0x68>)
 
-  80292a4:	701c      	strb	r4, [r3, #0]
 
-  80292a6:	bd10      	pop	{r4, pc}
 
-  80292a8:	20000b57 	.word	0x20000b57
 
-  80292ac:	20000b55 	.word	0x20000b55
 
-  80292b0:	08039b1f 	.word	0x08039b1f
 
-  80292b4:	20000b5e 	.word	0x20000b5e
 
-  80292b8:	2000cfc4 	.word	0x2000cfc4
 
-  80292bc:	08039b2c 	.word	0x08039b2c
 
- 080292c0 <UPS_CriticalAlarmMonitor>:
 
- /**
 
-   * @brief  Мониторинг бита CriticalAlarm
 
-   */
 
- void UPS_CriticalAlarmMonitor(void)
 
- {
 
-  80292c0:	b5f0      	push	{r4, r5, r6, r7, lr}
 
-  80292c2:	b089      	sub	sp, #36	; 0x24
 
-   static uint8_t OldRO2type_Sourse = 0;
 
-   uint8_t CurrRO2type_Sourse = 0;
 
-   uint8_t CurrRO1type_Sourse = 0;
 
-   char str[30];
 
-   memset(str, 0, 30);
 
-  80292c4:	2100      	movs	r1, #0
 
-  80292c6:	4668      	mov	r0, sp
 
-  80292c8:	221e      	movs	r2, #30
 
-  80292ca:	f7f8 fc19 	bl	8021b00 <memset>
 
-   CurrRO1type_Sourse = sSettings.sInOuts.ro_type_source[0];
 
-  80292ce:	4b45      	ldr	r3, [pc, #276]	; (80293e4 <UPS_CriticalAlarmMonitor+0x124>)
 
-  80292d0:	f893 5374 	ldrb.w	r5, [r3, #884]	; 0x374
 
-   CurrRO2type_Sourse = sSettings.sInOuts.ro_type_source[1];
 
-  80292d4:	f893 7375 	ldrb.w	r7, [r3, #885]	; 0x375
 
-   CriticalAlarmCurrent = flCriticalAlarm;
 
-  80292d8:	4b43      	ldr	r3, [pc, #268]	; (80293e8 <UPS_CriticalAlarmMonitor+0x128>)
 
-  80292da:	781c      	ldrb	r4, [r3, #0]
 
-   if (!isValueRecv) {
 
-  80292dc:	4b43      	ldr	r3, [pc, #268]	; (80293ec <UPS_CriticalAlarmMonitor+0x12c>)
 
-  80292de:	7819      	ldrb	r1, [r3, #0]
 
-  80292e0:	bb29      	cbnz	r1, 802932e <UPS_CriticalAlarmMonitor+0x6e>
 
- 	isValueRecv = true;
 
-  80292e2:	2201      	movs	r2, #1
 
-  80292e4:	701a      	strb	r2, [r3, #0]
 
- 	CriticalAlarmOldState = CriticalAlarmCurrent;
 
-  80292e6:	4b42      	ldr	r3, [pc, #264]	; (80293f0 <UPS_CriticalAlarmMonitor+0x130>)
 
-  80292e8:	701c      	strb	r4, [r3, #0]
 
- 	OldRO0type_Sourse = CurrRO1type_Sourse;
 
-  80292ea:	4b42      	ldr	r3, [pc, #264]	; (80293f4 <UPS_CriticalAlarmMonitor+0x134>)
 
-  80292ec:	701d      	strb	r5, [r3, #0]
 
- 	OldRO2type_Sourse = CurrRO2type_Sourse;
 
-  80292ee:	4b42      	ldr	r3, [pc, #264]	; (80293f8 <UPS_CriticalAlarmMonitor+0x138>)
 
- 	if(OldRO0type_Sourse == CRITICAL){
 
-  80292f0:	4295      	cmp	r5, r2
 
-   if (!isValueRecv) {
 
- 	isValueRecv = true;
 
- 	CriticalAlarmOldState = CriticalAlarmCurrent;
 
- 	OldRO0type_Sourse = CurrRO1type_Sourse;
 
- 	OldRO2type_Sourse = CurrRO2type_Sourse;
 
-  80292f2:	701f      	strb	r7, [r3, #0]
 
- 	if(OldRO0type_Sourse == CRITICAL){
 
-  80292f4:	d10a      	bne.n	802930c <UPS_CriticalAlarmMonitor+0x4c>
 
- 	  if(CriticalAlarmCurrent){
 
-  80292f6:	b14c      	cbz	r4, 802930c <UPS_CriticalAlarmMonitor+0x4c>
 
- 		  SetROInt(1, 0);
 
-  80292f8:	4628      	mov	r0, r5
 
-  80292fa:	f7ff f91a 	bl	8028532 <SetROInt>
 
- 		  SNMP_SendUserTrap(DO0_TOGGLED);
 
-  80292fe:	2007      	movs	r0, #7
 
-  8029300:	f00e ff1c 	bl	803813c <SNMP_SendUserTrap>
 
- 		  log_event_data(LOG_DO0_STATE, "Замкнуто");
 
-  8029304:	2009      	movs	r0, #9
 
-  8029306:	493d      	ldr	r1, [pc, #244]	; (80293fc <UPS_CriticalAlarmMonitor+0x13c>)
 
-  8029308:	f000 fba8 	bl	8029a5c <log_event_data>
 
- 	  }
 
-     }
 
- 	  if(OldRO2type_Sourse == CRITICAL){
 
-  802930c:	4b3a      	ldr	r3, [pc, #232]	; (80293f8 <UPS_CriticalAlarmMonitor+0x138>)
 
-  802930e:	7818      	ldrb	r0, [r3, #0]
 
-  8029310:	2801      	cmp	r0, #1
 
-  8029312:	d165      	bne.n	80293e0 <UPS_CriticalAlarmMonitor+0x120>
 
- 		  if(CriticalAlarmCurrent){
 
-  8029314:	2c00      	cmp	r4, #0
 
-  8029316:	d063      	beq.n	80293e0 <UPS_CriticalAlarmMonitor+0x120>
 
- 			  SetROInt(1, 1);
 
-  8029318:	4601      	mov	r1, r0
 
-  802931a:	f7ff f90a 	bl	8028532 <SetROInt>
 
- 			  SNMP_SendUserTrap(DO1_TOGGLED);
 
-  802931e:	2008      	movs	r0, #8
 
-  8029320:	f00e ff0c 	bl	803813c <SNMP_SendUserTrap>
 
- 			  log_event_data(LOG_DO1_STATE, "Замкнуто");
 
-  8029324:	200a      	movs	r0, #10
 
-  8029326:	4935      	ldr	r1, [pc, #212]	; (80293fc <UPS_CriticalAlarmMonitor+0x13c>)
 
-  8029328:	f000 fb98 	bl	8029a5c <log_event_data>
 
-  802932c:	e058      	b.n	80293e0 <UPS_CriticalAlarmMonitor+0x120>
 
- 		  }
 
- 	  }
 
- 	return;
 
-   }
 
-   if(CriticalAlarmCurrent){
 
-  802932e:	b154      	cbz	r4, 8029346 <UPS_CriticalAlarmMonitor+0x86>
 
- 	  if (UPS.Present)
 
-  8029330:	4b33      	ldr	r3, [pc, #204]	; (8029400 <UPS_CriticalAlarmMonitor+0x140>)
 
-  8029332:	f893 302c 	ldrb.w	r3, [r3, #44]	; 0x2c
 
- 		  LED_Toggle(LED_MAJOR_R);
 
-  8029336:	200b      	movs	r0, #11
 
- 	  }
 
- 	return;
 
-   }
 
-   if(CriticalAlarmCurrent){
 
- 	  if (UPS.Present)
 
-  8029338:	b113      	cbz	r3, 8029340 <UPS_CriticalAlarmMonitor+0x80>
 
- 		  LED_Toggle(LED_MAJOR_R);
 
-  802933a:	f7ff fbb3 	bl	8028aa4 <LED_Toggle>
 
-  802933e:	e005      	b.n	802934c <UPS_CriticalAlarmMonitor+0x8c>
 
- 	  else
 
- 		  LED_On(LED_MAJOR_R);
 
-  8029340:	f7ff fb76 	bl	8028a30 <LED_On>
 
-  8029344:	e002      	b.n	802934c <UPS_CriticalAlarmMonitor+0x8c>
 
-   }
 
-   else{
 
- 	  LED_Off(LED_MAJOR_R);
 
-  8029346:	200b      	movs	r0, #11
 
-  8029348:	f7ff fb75 	bl	8028a36 <LED_Off>
 
-   }
 
-   // Значение параметра изменилось
 
-   if (CriticalAlarmCurrent != CriticalAlarmOldState)
 
-  802934c:	4b28      	ldr	r3, [pc, #160]	; (80293f0 <UPS_CriticalAlarmMonitor+0x130>)
 
-  802934e:	781b      	ldrb	r3, [r3, #0]
 
-  8029350:	42a3      	cmp	r3, r4
 
-  8029352:	d03f      	beq.n	80293d4 <UPS_CriticalAlarmMonitor+0x114>
 
-   {
 
- 	  if(OldRO0type_Sourse == CRITICAL){
 
-  8029354:	4b27      	ldr	r3, [pc, #156]	; (80293f4 <UPS_CriticalAlarmMonitor+0x134>)
 
-  8029356:	781e      	ldrb	r6, [r3, #0]
 
-  8029358:	2e01      	cmp	r6, #1
 
-  802935a:	d11b      	bne.n	8029394 <UPS_CriticalAlarmMonitor+0xd4>
 
- 		  memset(str, 0, 30);
 
-  802935c:	4668      	mov	r0, sp
 
-  802935e:	2100      	movs	r1, #0
 
-  8029360:	221e      	movs	r2, #30
 
-  8029362:	f7f8 fbcd 	bl	8021b00 <memset>
 
- 		  if(CriticalAlarmCurrent){
 
-  8029366:	b134      	cbz	r4, 8029376 <UPS_CriticalAlarmMonitor+0xb6>
 
- 			  SetROInt(1, 0);
 
-  8029368:	4630      	mov	r0, r6
 
-  802936a:	2100      	movs	r1, #0
 
-  802936c:	f7ff f8e1 	bl	8028532 <SetROInt>
 
- 			  strcat(str, "Замкнуто");
 
-  8029370:	4668      	mov	r0, sp
 
-  8029372:	4922      	ldr	r1, [pc, #136]	; (80293fc <UPS_CriticalAlarmMonitor+0x13c>)
 
-  8029374:	e005      	b.n	8029382 <UPS_CriticalAlarmMonitor+0xc2>
 
- 		  }
 
- 		  else{
 
- 			  SetROInt(0, 0);
 
-  8029376:	4620      	mov	r0, r4
 
-  8029378:	4621      	mov	r1, r4
 
-  802937a:	f7ff f8da 	bl	8028532 <SetROInt>
 
- 			  strcat(str, "Разомкнуто");
 
-  802937e:	4921      	ldr	r1, [pc, #132]	; (8029404 <UPS_CriticalAlarmMonitor+0x144>)
 
-  8029380:	4668      	mov	r0, sp
 
-  8029382:	f7f8 fc23 	bl	8021bcc <strcat>
 
- 		  }
 
- 		  SNMP_SendUserTrap(DO0_TOGGLED);
 
-  8029386:	2007      	movs	r0, #7
 
-  8029388:	f00e fed8 	bl	803813c <SNMP_SendUserTrap>
 
- 		  log_event_data(LOG_DO0_STATE, str);
 
-  802938c:	2009      	movs	r0, #9
 
-  802938e:	4669      	mov	r1, sp
 
-  8029390:	f000 fb64 	bl	8029a5c <log_event_data>
 
- 	  }
 
- 	  if(OldRO2type_Sourse == CRITICAL){
 
-  8029394:	4b18      	ldr	r3, [pc, #96]	; (80293f8 <UPS_CriticalAlarmMonitor+0x138>)
 
-  8029396:	781e      	ldrb	r6, [r3, #0]
 
-  8029398:	2e01      	cmp	r6, #1
 
-  802939a:	d11b      	bne.n	80293d4 <UPS_CriticalAlarmMonitor+0x114>
 
- 		  memset(str, 0, 30);
 
-  802939c:	4668      	mov	r0, sp
 
-  802939e:	2100      	movs	r1, #0
 
-  80293a0:	221e      	movs	r2, #30
 
-  80293a2:	f7f8 fbad 	bl	8021b00 <memset>
 
- 		  if(CriticalAlarmCurrent){
 
-  80293a6:	b134      	cbz	r4, 80293b6 <UPS_CriticalAlarmMonitor+0xf6>
 
- 			  SetROInt(1, 1);
 
-  80293a8:	4630      	mov	r0, r6
 
-  80293aa:	4631      	mov	r1, r6
 
-  80293ac:	f7ff f8c1 	bl	8028532 <SetROInt>
 
- 			  strcat(str, "Замкнуто");
 
-  80293b0:	4668      	mov	r0, sp
 
-  80293b2:	4912      	ldr	r1, [pc, #72]	; (80293fc <UPS_CriticalAlarmMonitor+0x13c>)
 
-  80293b4:	e005      	b.n	80293c2 <UPS_CriticalAlarmMonitor+0x102>
 
- 		  }
 
- 		  else{
 
- 			  SetROInt(0, 1);
 
-  80293b6:	4620      	mov	r0, r4
 
-  80293b8:	4631      	mov	r1, r6
 
-  80293ba:	f7ff f8ba 	bl	8028532 <SetROInt>
 
- 			  strcat(str, "Разомкнуто");
 
-  80293be:	4911      	ldr	r1, [pc, #68]	; (8029404 <UPS_CriticalAlarmMonitor+0x144>)
 
-  80293c0:	4668      	mov	r0, sp
 
-  80293c2:	f7f8 fc03 	bl	8021bcc <strcat>
 
- 		  }
 
- 	  	  SNMP_SendUserTrap(DO1_TOGGLED);
 
-  80293c6:	2008      	movs	r0, #8
 
-  80293c8:	f00e feb8 	bl	803813c <SNMP_SendUserTrap>
 
- 	  	log_event_data(LOG_DO1_STATE, str);
 
-  80293cc:	200a      	movs	r0, #10
 
-  80293ce:	4669      	mov	r1, sp
 
-  80293d0:	f000 fb44 	bl	8029a5c <log_event_data>
 
- 		  SNMP_SendUserTrap(DO1_TOGGLED);
 
- 		  log_event_data(LOG_DO1_STATE, str);
 
- 	  }
 
-   }
 
-   OldRO0type_Sourse = CurrRO1type_Sourse;
 
-  80293d4:	4b07      	ldr	r3, [pc, #28]	; (80293f4 <UPS_CriticalAlarmMonitor+0x134>)
 
-  80293d6:	701d      	strb	r5, [r3, #0]
 
-   OldRO2type_Sourse = CurrRO2type_Sourse;
 
-  80293d8:	4b07      	ldr	r3, [pc, #28]	; (80293f8 <UPS_CriticalAlarmMonitor+0x138>)
 
-  80293da:	701f      	strb	r7, [r3, #0]
 
-   CriticalAlarmOldState = CriticalAlarmCurrent;
 
-  80293dc:	4b04      	ldr	r3, [pc, #16]	; (80293f0 <UPS_CriticalAlarmMonitor+0x130>)
 
-  80293de:	701c      	strb	r4, [r3, #0]
 
- }
 
-  80293e0:	b009      	add	sp, #36	; 0x24
 
-  80293e2:	bdf0      	pop	{r4, r5, r6, r7, pc}
 
-  80293e4:	2000cfc4 	.word	0x2000cfc4
 
-  80293e8:	20000b5e 	.word	0x20000b5e
 
-  80293ec:	20000b5d 	.word	0x20000b5d
 
-  80293f0:	20000b5a 	.word	0x20000b5a
 
-  80293f4:	20000b66 	.word	0x20000b66
 
-  80293f8:	20000b54 	.word	0x20000b54
 
-  80293fc:	08039b37 	.word	0x08039b37
 
-  8029400:	2000cba8 	.word	0x2000cba8
 
-  8029404:	08039b48 	.word	0x08039b48
 
- 08029408 <UPS_NonCriticalAlarmMonitor>:
 
- /**
 
-   * @brief  Мониторинг бита NonCriticalAlarm
 
-   */
 
- void UPS_NonCriticalAlarmMonitor(void)
 
- {
 
-  8029408:	b5f0      	push	{r4, r5, r6, r7, lr}
 
-  802940a:	b089      	sub	sp, #36	; 0x24
 
-   static uint8_t OldRO0type_Sourse = 0;
 
-   static uint8_t OldRO2type_Sourse = 0;
 
-   uint8_t CurrRO2type_Sourse = 0;
 
-   uint8_t CurrRO1type_Sourse = 0;
 
-   char str[30];
 
-   memset(str, 0, 30);
 
-  802940c:	2100      	movs	r1, #0
 
-  802940e:	221e      	movs	r2, #30
 
-  8029410:	4668      	mov	r0, sp
 
-  8029412:	f7f8 fb75 	bl	8021b00 <memset>
 
-   CurrRO1type_Sourse = sSettings.sInOuts.ro_type_source[0];
 
-   CurrRO2type_Sourse = sSettings.sInOuts.ro_type_source[1];
 
-   NonCriticalAlarmCurrent = flNonCriticalAlarm;
 
-   if (!isValueRecv) {
 
-  8029416:	4f3d      	ldr	r7, [pc, #244]	; (802950c <UPS_NonCriticalAlarmMonitor+0x104>)
 
-   uint8_t CurrRO2type_Sourse = 0;
 
-   uint8_t CurrRO1type_Sourse = 0;
 
-   char str[30];
 
-   memset(str, 0, 30);
 
-   CurrRO1type_Sourse = sSettings.sInOuts.ro_type_source[0];
 
-  8029418:	4b3d      	ldr	r3, [pc, #244]	; (8029510 <UPS_NonCriticalAlarmMonitor+0x108>)
 
-   CurrRO2type_Sourse = sSettings.sInOuts.ro_type_source[1];
 
-   NonCriticalAlarmCurrent = flNonCriticalAlarm;
 
-   if (!isValueRecv) {
 
-  802941a:	7839      	ldrb	r1, [r7, #0]
 
-   uint8_t CurrRO2type_Sourse = 0;
 
-   uint8_t CurrRO1type_Sourse = 0;
 
-   char str[30];
 
-   memset(str, 0, 30);
 
-   CurrRO1type_Sourse = sSettings.sInOuts.ro_type_source[0];
 
-  802941c:	f893 5374 	ldrb.w	r5, [r3, #884]	; 0x374
 
-   CurrRO2type_Sourse = sSettings.sInOuts.ro_type_source[1];
 
-  8029420:	f893 6375 	ldrb.w	r6, [r3, #885]	; 0x375
 
-   NonCriticalAlarmCurrent = flNonCriticalAlarm;
 
-  8029424:	4b3b      	ldr	r3, [pc, #236]	; (8029514 <UPS_NonCriticalAlarmMonitor+0x10c>)
 
-  8029426:	4a3c      	ldr	r2, [pc, #240]	; (8029518 <UPS_NonCriticalAlarmMonitor+0x110>)
 
-  8029428:	781c      	ldrb	r4, [r3, #0]
 
-  802942a:	4b3c      	ldr	r3, [pc, #240]	; (802951c <UPS_NonCriticalAlarmMonitor+0x114>)
 
-   if (!isValueRecv) {
 
-  802942c:	bb19      	cbnz	r1, 8029476 <UPS_NonCriticalAlarmMonitor+0x6e>
 
- 	isValueRecv = true;
 
- 	NonCriticalAlarmOldState = NonCriticalAlarmCurrent;
 
- 	OldRO0type_Sourse = CurrRO1type_Sourse;
 
-  802942e:	701d      	strb	r5, [r3, #0]
 
- 	OldRO2type_Sourse = CurrRO2type_Sourse;
 
-  8029430:	4b3b      	ldr	r3, [pc, #236]	; (8029520 <UPS_NonCriticalAlarmMonitor+0x118>)
 
-   CurrRO2type_Sourse = sSettings.sInOuts.ro_type_source[1];
 
-   NonCriticalAlarmCurrent = flNonCriticalAlarm;
 
-   if (!isValueRecv) {
 
- 	isValueRecv = true;
 
- 	NonCriticalAlarmOldState = NonCriticalAlarmCurrent;
 
-  8029432:	7014      	strb	r4, [r2, #0]
 
-   CurrRO1type_Sourse = sSettings.sInOuts.ro_type_source[0];
 
-   CurrRO2type_Sourse = sSettings.sInOuts.ro_type_source[1];
 
-   NonCriticalAlarmCurrent = flNonCriticalAlarm;
 
-   if (!isValueRecv) {
 
- 	isValueRecv = true;
 
-  8029434:	2001      	movs	r0, #1
 
- 	NonCriticalAlarmOldState = NonCriticalAlarmCurrent;
 
- 	OldRO0type_Sourse = CurrRO1type_Sourse;
 
- 	OldRO2type_Sourse = CurrRO2type_Sourse;
 
- 	if(OldRO0type_Sourse == NON_CRITICAL){
 
-  8029436:	2d02      	cmp	r5, #2
 
-   CurrRO1type_Sourse = sSettings.sInOuts.ro_type_source[0];
 
-   CurrRO2type_Sourse = sSettings.sInOuts.ro_type_source[1];
 
-   NonCriticalAlarmCurrent = flNonCriticalAlarm;
 
-   if (!isValueRecv) {
 
- 	isValueRecv = true;
 
-  8029438:	7038      	strb	r0, [r7, #0]
 
- 	NonCriticalAlarmOldState = NonCriticalAlarmCurrent;
 
- 	OldRO0type_Sourse = CurrRO1type_Sourse;
 
- 	OldRO2type_Sourse = CurrRO2type_Sourse;
 
-  802943a:	701e      	strb	r6, [r3, #0]
 
- 	if(OldRO0type_Sourse == NON_CRITICAL){
 
-  802943c:	d109      	bne.n	8029452 <UPS_NonCriticalAlarmMonitor+0x4a>
 
- 	  if(NonCriticalAlarmCurrent){
 
-  802943e:	b144      	cbz	r4, 8029452 <UPS_NonCriticalAlarmMonitor+0x4a>
 
- 		  SetROInt(1, 0);
 
-  8029440:	f7ff f877 	bl	8028532 <SetROInt>
 
- 		  SNMP_SendUserTrap(DO0_TOGGLED);
 
-  8029444:	2007      	movs	r0, #7
 
-  8029446:	f00e fe79 	bl	803813c <SNMP_SendUserTrap>
 
- 		  log_event_data(LOG_DO0_STATE, "Замкнуто");
 
-  802944a:	2009      	movs	r0, #9
 
-  802944c:	4935      	ldr	r1, [pc, #212]	; (8029524 <UPS_NonCriticalAlarmMonitor+0x11c>)
 
-  802944e:	f000 fb05 	bl	8029a5c <log_event_data>
 
- 	  }
 
- 	}
 
- 	  if(OldRO2type_Sourse == NON_CRITICAL){
 
-  8029452:	4b33      	ldr	r3, [pc, #204]	; (8029520 <UPS_NonCriticalAlarmMonitor+0x118>)
 
-  8029454:	781b      	ldrb	r3, [r3, #0]
 
-  8029456:	2b02      	cmp	r3, #2
 
-  8029458:	d155      	bne.n	8029506 <UPS_NonCriticalAlarmMonitor+0xfe>
 
- 		  if(NonCriticalAlarmCurrent){
 
-  802945a:	2c00      	cmp	r4, #0
 
-  802945c:	d053      	beq.n	8029506 <UPS_NonCriticalAlarmMonitor+0xfe>
 
- 			  SetROInt(1, 1);
 
-  802945e:	2001      	movs	r0, #1
 
-  8029460:	4601      	mov	r1, r0
 
-  8029462:	f7ff f866 	bl	8028532 <SetROInt>
 
- 			  SNMP_SendUserTrap(DO1_TOGGLED);
 
-  8029466:	2008      	movs	r0, #8
 
-  8029468:	f00e fe68 	bl	803813c <SNMP_SendUserTrap>
 
- 			 log_event_data(LOG_DO1_STATE, "Замкнуто");
 
-  802946c:	200a      	movs	r0, #10
 
-  802946e:	492d      	ldr	r1, [pc, #180]	; (8029524 <UPS_NonCriticalAlarmMonitor+0x11c>)
 
-  8029470:	f000 faf4 	bl	8029a5c <log_event_data>
 
-  8029474:	e047      	b.n	8029506 <UPS_NonCriticalAlarmMonitor+0xfe>
 
- 	  }
 
- 	return;
 
-   }
 
-   // Значение параметра изменилось
 
-   if (NonCriticalAlarmCurrent != NonCriticalAlarmOldState)
 
-  8029476:	7812      	ldrb	r2, [r2, #0]
 
-  8029478:	42a2      	cmp	r2, r4
 
-  802947a:	d03e      	beq.n	80294fa <UPS_NonCriticalAlarmMonitor+0xf2>
 
-   {
 
- 	  if(OldRO0type_Sourse == NON_CRITICAL){
 
-  802947c:	781b      	ldrb	r3, [r3, #0]
 
-  802947e:	2b02      	cmp	r3, #2
 
-  8029480:	d11b      	bne.n	80294ba <UPS_NonCriticalAlarmMonitor+0xb2>
 
- 		  memset(str, 0, 30);
 
-  8029482:	4668      	mov	r0, sp
 
-  8029484:	2100      	movs	r1, #0
 
-  8029486:	221e      	movs	r2, #30
 
-  8029488:	f7f8 fb3a 	bl	8021b00 <memset>
 
- 		  if(NonCriticalAlarmCurrent){
 
-  802948c:	b134      	cbz	r4, 802949c <UPS_NonCriticalAlarmMonitor+0x94>
 
- 			  SetROInt(1, 0);
 
-  802948e:	2001      	movs	r0, #1
 
-  8029490:	2100      	movs	r1, #0
 
-  8029492:	f7ff f84e 	bl	8028532 <SetROInt>
 
- 			  strcat(str, "Замкнуто");
 
-  8029496:	4668      	mov	r0, sp
 
-  8029498:	4922      	ldr	r1, [pc, #136]	; (8029524 <UPS_NonCriticalAlarmMonitor+0x11c>)
 
-  802949a:	e005      	b.n	80294a8 <UPS_NonCriticalAlarmMonitor+0xa0>
 
- 		  }
 
- 		  else{
 
- 			  SetROInt(0, 0);
 
-  802949c:	4620      	mov	r0, r4
 
-  802949e:	4621      	mov	r1, r4
 
-  80294a0:	f7ff f847 	bl	8028532 <SetROInt>
 
- 			  strcat(str, "Разомкнуто");
 
-  80294a4:	4920      	ldr	r1, [pc, #128]	; (8029528 <UPS_NonCriticalAlarmMonitor+0x120>)
 
-  80294a6:	4668      	mov	r0, sp
 
-  80294a8:	f7f8 fb90 	bl	8021bcc <strcat>
 
- 		  }
 
- 		  SNMP_SendUserTrap(DO0_TOGGLED);
 
-  80294ac:	2007      	movs	r0, #7
 
-  80294ae:	f00e fe45 	bl	803813c <SNMP_SendUserTrap>
 
- 		  log_event_data(LOG_DO0_STATE, str);
 
-  80294b2:	2009      	movs	r0, #9
 
-  80294b4:	4669      	mov	r1, sp
 
-  80294b6:	f000 fad1 	bl	8029a5c <log_event_data>
 
- 	  }
 
- 	  if(OldRO2type_Sourse == NON_CRITICAL){
 
-  80294ba:	4b19      	ldr	r3, [pc, #100]	; (8029520 <UPS_NonCriticalAlarmMonitor+0x118>)
 
-  80294bc:	781b      	ldrb	r3, [r3, #0]
 
-  80294be:	2b02      	cmp	r3, #2
 
-  80294c0:	d11b      	bne.n	80294fa <UPS_NonCriticalAlarmMonitor+0xf2>
 
- 		  memset(str, 0, 30);
 
-  80294c2:	4668      	mov	r0, sp
 
-  80294c4:	2100      	movs	r1, #0
 
-  80294c6:	221e      	movs	r2, #30
 
-  80294c8:	f7f8 fb1a 	bl	8021b00 <memset>
 
- 		  if(NonCriticalAlarmCurrent){
 
-  80294cc:	b134      	cbz	r4, 80294dc <UPS_NonCriticalAlarmMonitor+0xd4>
 
- 			  SetROInt(1, 1);
 
-  80294ce:	2001      	movs	r0, #1
 
-  80294d0:	4601      	mov	r1, r0
 
-  80294d2:	f7ff f82e 	bl	8028532 <SetROInt>
 
- 			  strcat(str, "Разомкнуто");
 
-  80294d6:	4668      	mov	r0, sp
 
-  80294d8:	4913      	ldr	r1, [pc, #76]	; (8029528 <UPS_NonCriticalAlarmMonitor+0x120>)
 
-  80294da:	e005      	b.n	80294e8 <UPS_NonCriticalAlarmMonitor+0xe0>
 
- 		  }
 
- 		  else{
 
- 			  SetROInt(0, 1);
 
-  80294dc:	4620      	mov	r0, r4
 
-  80294de:	2101      	movs	r1, #1
 
-  80294e0:	f7ff f827 	bl	8028532 <SetROInt>
 
- 			  strcat(str, "Замкнуто");
 
-  80294e4:	490f      	ldr	r1, [pc, #60]	; (8029524 <UPS_NonCriticalAlarmMonitor+0x11c>)
 
-  80294e6:	4668      	mov	r0, sp
 
-  80294e8:	f7f8 fb70 	bl	8021bcc <strcat>
 
- 		  }
 
- 	  	  SNMP_SendUserTrap(DO1_TOGGLED);
 
-  80294ec:	2008      	movs	r0, #8
 
-  80294ee:	f00e fe25 	bl	803813c <SNMP_SendUserTrap>
 
- 	  	log_event_data(LOG_DO1_STATE, str);
 
-  80294f2:	200a      	movs	r0, #10
 
-  80294f4:	4669      	mov	r1, sp
 
-  80294f6:	f000 fab1 	bl	8029a5c <log_event_data>
 
- 		  SNMP_SendUserTrap(DO1_TOGGLED);
 
- 		  log_event_data(LOG_DO1_STATE, str);
 
- 	  }
 
-   }
 
-   OldRO0type_Sourse = CurrRO1type_Sourse;
 
-  80294fa:	4b08      	ldr	r3, [pc, #32]	; (802951c <UPS_NonCriticalAlarmMonitor+0x114>)
 
-  80294fc:	701d      	strb	r5, [r3, #0]
 
-   OldRO2type_Sourse = CurrRO2type_Sourse;
 
-  80294fe:	4b08      	ldr	r3, [pc, #32]	; (8029520 <UPS_NonCriticalAlarmMonitor+0x118>)
 
-  8029500:	701e      	strb	r6, [r3, #0]
 
-   NonCriticalAlarmOldState = NonCriticalAlarmCurrent;
 
-  8029502:	4b05      	ldr	r3, [pc, #20]	; (8029518 <UPS_NonCriticalAlarmMonitor+0x110>)
 
-  8029504:	701c      	strb	r4, [r3, #0]
 
- }
 
-  8029506:	b009      	add	sp, #36	; 0x24
 
-  8029508:	bdf0      	pop	{r4, r5, r6, r7, pc}
 
-  802950a:	bf00      	nop
 
-  802950c:	20000b62 	.word	0x20000b62
 
-  8029510:	2000cfc4 	.word	0x2000cfc4
 
-  8029514:	20000b64 	.word	0x20000b64
 
-  8029518:	20000b5c 	.word	0x20000b5c
 
-  802951c:	20000b56 	.word	0x20000b56
 
-  8029520:	20000b59 	.word	0x20000b59
 
-  8029524:	08039b37 	.word	0x08039b37
 
-  8029528:	08039b48 	.word	0x08039b48
 
- 0802952c <UPS_LineFailMonitor>:
 
- /**
 
-   * @brief  Мониторинг бита LainFail
 
-   */
 
- void UPS_LineFailMonitor(void)
 
- {
 
-  802952c:	b538      	push	{r3, r4, r5, lr}
 
-   static bool isValueRecv = false;
 
-   static uint8_t lineFailOldState = 0;
 
-   uint8_t lineFailCurrent;
 
-   
 
-   lineFailCurrent = (UPS.Status >> 7) & 0x01;
 
-  802952e:	4b15      	ldr	r3, [pc, #84]	; (8029584 <UPS_LineFailMonitor+0x58>)
 
-  8029530:	4d15      	ldr	r5, [pc, #84]	; (8029588 <UPS_LineFailMonitor+0x5c>)
 
-  8029532:	7cdc      	ldrb	r4, [r3, #19]
 
-   
 
-   if (!isValueRecv) {
 
-  8029534:	4b15      	ldr	r3, [pc, #84]	; (802958c <UPS_LineFailMonitor+0x60>)
 
-  8029536:	781a      	ldrb	r2, [r3, #0]
 
- {
 
-   static bool isValueRecv = false;
 
-   static uint8_t lineFailOldState = 0;
 
-   uint8_t lineFailCurrent;
 
-   
 
-   lineFailCurrent = (UPS.Status >> 7) & 0x01;
 
-  8029538:	09e4      	lsrs	r4, r4, #7
 
-   
 
-   if (!isValueRecv) {
 
-  802953a:	b962      	cbnz	r2, 8029556 <UPS_LineFailMonitor+0x2a>
 
-     isValueRecv = true;
 
-  802953c:	2201      	movs	r2, #1
 
-  802953e:	701a      	strb	r2, [r3, #0]
 
-     lineFailOldState = lineFailCurrent;
 
-  8029540:	702c      	strb	r4, [r5, #0]
 
-     if (lineFailCurrent){
 
-  8029542:	b1ec      	cbz	r4, 8029580 <UPS_LineFailMonitor+0x54>
 
-     	log_event_data(LOG_ALARM_LINE, "Авария");
 
-  8029544:	200c      	movs	r0, #12
 
-  8029546:	4912      	ldr	r1, [pc, #72]	; (8029590 <UPS_LineFailMonitor+0x64>)
 
-  8029548:	f000 fa88 	bl	8029a5c <log_event_data>
 
-           SNMP_SendUserTrap(LINE_ALARM);
 
-  802954c:	200b      	movs	r0, #11
 
-       SNMP_SendUserTrap(LINE_NORM);
 
-     }
 
-   }
 
-   
 
-   lineFailOldState = lineFailCurrent;
 
- }
 
-  802954e:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
 
-   if (!isValueRecv) {
 
-     isValueRecv = true;
 
-     lineFailOldState = lineFailCurrent;
 
-     if (lineFailCurrent){
 
-     	log_event_data(LOG_ALARM_LINE, "Авария");
 
-           SNMP_SendUserTrap(LINE_ALARM);
 
-  8029552:	f00e bdf3 	b.w	803813c <SNMP_SendUserTrap>
 
-     }
 
-     return;
 
-   }
 
-   if (lineFailCurrent)
 
-  8029556:	b114      	cbz	r4, 802955e <UPS_LineFailMonitor+0x32>
 
- 	  flCriticalAlarm = true;
 
-  8029558:	4b0e      	ldr	r3, [pc, #56]	; (8029594 <UPS_LineFailMonitor+0x68>)
 
-  802955a:	2201      	movs	r2, #1
 
-  802955c:	701a      	strb	r2, [r3, #0]
 
-     
 
-   // Значение параметра изменилось
 
-   if (lineFailCurrent != lineFailOldState)
 
-  802955e:	782b      	ldrb	r3, [r5, #0]
 
-  8029560:	42a3      	cmp	r3, r4
 
-  8029562:	d00c      	beq.n	802957e <UPS_LineFailMonitor+0x52>
 
-   {
 
-     if (lineFailCurrent){
 
-       log_event_data(LOG_ALARM_LINE, "Авария");
 
-  8029564:	200c      	movs	r0, #12
 
- 	  flCriticalAlarm = true;
 
-     
 
-   // Значение параметра изменилось
 
-   if (lineFailCurrent != lineFailOldState)
 
-   {
 
-     if (lineFailCurrent){
 
-  8029566:	b124      	cbz	r4, 8029572 <UPS_LineFailMonitor+0x46>
 
-       log_event_data(LOG_ALARM_LINE, "Авария");
 
-  8029568:	4909      	ldr	r1, [pc, #36]	; (8029590 <UPS_LineFailMonitor+0x64>)
 
-  802956a:	f000 fa77 	bl	8029a5c <log_event_data>
 
-       SNMP_SendUserTrap(LINE_ALARM);
 
-  802956e:	200b      	movs	r0, #11
 
-  8029570:	e003      	b.n	802957a <UPS_LineFailMonitor+0x4e>
 
-     }
 
-     else{
 
-       log_event_data(LOG_ALARM_LINE, "Норма");
 
-  8029572:	4909      	ldr	r1, [pc, #36]	; (8029598 <UPS_LineFailMonitor+0x6c>)
 
-  8029574:	f000 fa72 	bl	8029a5c <log_event_data>
 
-       SNMP_SendUserTrap(LINE_NORM);
 
-  8029578:	200c      	movs	r0, #12
 
-  802957a:	f00e fddf 	bl	803813c <SNMP_SendUserTrap>
 
-     }
 
-   }
 
-   
 
-   lineFailOldState = lineFailCurrent;
 
-  802957e:	702c      	strb	r4, [r5, #0]
 
-  8029580:	bd38      	pop	{r3, r4, r5, pc}
 
-  8029582:	bf00      	nop
 
-  8029584:	2000cba8 	.word	0x2000cba8
 
-  8029588:	20000b67 	.word	0x20000b67
 
-  802958c:	20000b61 	.word	0x20000b61
 
-  8029590:	08039b1f 	.word	0x08039b1f
 
-  8029594:	20000b5e 	.word	0x20000b5e
 
-  8029598:	08039b2c 	.word	0x08039b2c
 
- 0802959c <UPS_LowBatMonitor>:
 
- /**
 
-   * @brief  Мониторинг бита LowBat  
 
-   */
 
- void UPS_LowBatMonitor(void)
 
- {
 
-  802959c:	b538      	push	{r3, r4, r5, lr}
 
-   static bool isValueRecv = false;
 
-   static uint8_t lowBatOldState = 0;
 
-   uint8_t lowBatCurrent;
 
-   if((UPS.Status >> 7) & 0x01)
 
-  802959e:	4b17      	ldr	r3, [pc, #92]	; (80295fc <UPS_LowBatMonitor+0x60>)
 
-  80295a0:	4d17      	ldr	r5, [pc, #92]	; (8029600 <UPS_LowBatMonitor+0x64>)
 
-  80295a2:	7cdb      	ldrb	r3, [r3, #19]
 
-  80295a4:	09dc      	lsrs	r4, r3, #7
 
- 	  lowBatCurrent = (UPS.Status >> 6) & 0x01;
 
-  80295a6:	bf18      	it	ne
 
-  80295a8:	f3c3 1480 	ubfxne	r4, r3, #6, #1
 
-   else
 
- 	  lowBatCurrent = 0;
 
-   
 
-   if (!isValueRecv) {
 
-  80295ac:	4b15      	ldr	r3, [pc, #84]	; (8029604 <UPS_LowBatMonitor+0x68>)
 
-  80295ae:	781a      	ldrb	r2, [r3, #0]
 
-  80295b0:	b962      	cbnz	r2, 80295cc <UPS_LowBatMonitor+0x30>
 
-     isValueRecv = true;
 
-  80295b2:	2201      	movs	r2, #1
 
-  80295b4:	701a      	strb	r2, [r3, #0]
 
-     lowBatOldState = lowBatCurrent;
 
-  80295b6:	702c      	strb	r4, [r5, #0]
 
-     if (lowBatCurrent){
 
-  80295b8:	b1f4      	cbz	r4, 80295f8 <UPS_LowBatMonitor+0x5c>
 
-     	log_event_data(LOG_ALARM_LOW_BAT, "Авария");
 
-  80295ba:	200d      	movs	r0, #13
 
-  80295bc:	4912      	ldr	r1, [pc, #72]	; (8029608 <UPS_LowBatMonitor+0x6c>)
 
-  80295be:	f000 fa4d 	bl	8029a5c <log_event_data>
 
-           SNMP_SendUserTrap(LOW_BAT_ALARM);
 
-  80295c2:	200d      	movs	r0, #13
 
-       log_event_data(LOG_ALARM_LOW_BAT, "Норма");
 
-     }
 
-   }
 
-   
 
-   lowBatOldState = lowBatCurrent;
 
- }
 
-  80295c4:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
 
-   if (!isValueRecv) {
 
-     isValueRecv = true;
 
-     lowBatOldState = lowBatCurrent;
 
-     if (lowBatCurrent){
 
-     	log_event_data(LOG_ALARM_LOW_BAT, "Авария");
 
-           SNMP_SendUserTrap(LOW_BAT_ALARM);
 
-  80295c8:	f00e bdb8 	b.w	803813c <SNMP_SendUserTrap>
 
-     }
 
-     return;
 
-   }
 
-   if (lowBatCurrent)
 
-  80295cc:	b114      	cbz	r4, 80295d4 <UPS_LowBatMonitor+0x38>
 
- 	  flNonCriticalAlarm = true;
 
-  80295ce:	4b0f      	ldr	r3, [pc, #60]	; (802960c <UPS_LowBatMonitor+0x70>)
 
-  80295d0:	2201      	movs	r2, #1
 
-  80295d2:	701a      	strb	r2, [r3, #0]
 
-   // Значение параметра изменилось
 
-   if (lowBatCurrent != lowBatOldState)
 
-  80295d4:	782b      	ldrb	r3, [r5, #0]
 
-  80295d6:	42a3      	cmp	r3, r4
 
-  80295d8:	d00d      	beq.n	80295f6 <UPS_LowBatMonitor+0x5a>
 
-   {
 
-     if (lowBatCurrent){
 
-  80295da:	b12c      	cbz	r4, 80295e8 <UPS_LowBatMonitor+0x4c>
 
-       SNMP_SendUserTrap(LOW_BAT_ALARM);
 
-  80295dc:	200d      	movs	r0, #13
 
-  80295de:	f00e fdad 	bl	803813c <SNMP_SendUserTrap>
 
-       log_event_data(LOG_ALARM_LOW_BAT, "Авария");
 
-  80295e2:	200d      	movs	r0, #13
 
-  80295e4:	4908      	ldr	r1, [pc, #32]	; (8029608 <UPS_LowBatMonitor+0x6c>)
 
-  80295e6:	e004      	b.n	80295f2 <UPS_LowBatMonitor+0x56>
 
-     }
 
-     else{
 
-       SNMP_SendUserTrap(LOW_BAT_NORM);
 
-  80295e8:	200e      	movs	r0, #14
 
-  80295ea:	f00e fda7 	bl	803813c <SNMP_SendUserTrap>
 
-       log_event_data(LOG_ALARM_LOW_BAT, "Норма");
 
-  80295ee:	4908      	ldr	r1, [pc, #32]	; (8029610 <UPS_LowBatMonitor+0x74>)
 
-  80295f0:	200d      	movs	r0, #13
 
-  80295f2:	f000 fa33 	bl	8029a5c <log_event_data>
 
-     }
 
-   }
 
-   
 
-   lowBatOldState = lowBatCurrent;
 
-  80295f6:	702c      	strb	r4, [r5, #0]
 
-  80295f8:	bd38      	pop	{r3, r4, r5, pc}
 
-  80295fa:	bf00      	nop
 
-  80295fc:	2000cba8 	.word	0x2000cba8
 
-  8029600:	20000b60 	.word	0x20000b60
 
-  8029604:	20000b65 	.word	0x20000b65
 
-  8029608:	08039b1f 	.word	0x08039b1f
 
-  802960c:	20000b64 	.word	0x20000b64
 
-  8029610:	08039b2c 	.word	0x08039b2c
 
- 08029614 <UPS_PowerMonitor>:
 
- /**
 
-   * @brief  Мониторинг нагрузки 
 
-   */
 
- void UPS_PowerMonitor(void)
 
- {
 
-  8029614:	b538      	push	{r3, r4, r5, lr}
 
-   float load;
 
-   static uint8_t stateCurrent = HYST_IDLE;
 
-     
 
-   load = UPS.Load;
 
-  8029616:	4c20      	ldr	r4, [pc, #128]	; (8029698 <UPS_PowerMonitor+0x84>)
 
-  8029618:	7c20      	ldrb	r0, [r4, #16]
 
-  802961a:	f7f7 fbb9 	bl	8020d90 <__aeabi_ui2f>
 
-   /* Отслеживается переход через верхнюю границу */
 
-   if (load > UPS_LOAD)
 
-  802961e:	491f      	ldr	r1, [pc, #124]	; (802969c <UPS_PowerMonitor+0x88>)
 
- void UPS_PowerMonitor(void)
 
- {
 
-   float load;
 
-   static uint8_t stateCurrent = HYST_IDLE;
 
-     
 
-   load = UPS.Load;
 
-  8029620:	4605      	mov	r5, r0
 
-   /* Отслеживается переход через верхнюю границу */
 
-   if (load > UPS_LOAD)
 
-  8029622:	f7f7 fc79 	bl	8020f18 <__aeabi_fcmpgt>
 
-  8029626:	b1c0      	cbz	r0, 802965a <UPS_PowerMonitor+0x46>
 
-   {
 
- 	flCriticalAlarm = true;
 
-  8029628:	4b1d      	ldr	r3, [pc, #116]	; (80296a0 <UPS_PowerMonitor+0x8c>)
 
-  802962a:	2501      	movs	r5, #1
 
-  802962c:	701d      	strb	r5, [r3, #0]
 
- 	UPS.Alarm = (UPS.Alarm & 0x0e) | (1 << 0);
 
-  802962e:	7d23      	ldrb	r3, [r4, #20]
 
-  8029630:	f003 030e 	and.w	r3, r3, #14
 
-  8029634:	432b      	orrs	r3, r5
 
-  8029636:	7523      	strb	r3, [r4, #20]
 
-     if (stateCurrent == HYST_IDLE)
 
-  8029638:	4c1a      	ldr	r4, [pc, #104]	; (80296a4 <UPS_PowerMonitor+0x90>)
 
-  802963a:	7823      	ldrb	r3, [r4, #0]
 
-  802963c:	2b00      	cmp	r3, #0
 
-  802963e:	d12a      	bne.n	8029696 <UPS_PowerMonitor+0x82>
 
- 	{
 
-       LED_On(LED_MINOR_R);
 
-  8029640:	200d      	movs	r0, #13
 
-  8029642:	f7ff f9f5 	bl	8028a30 <LED_On>
 
-       LED_On(LED_MINOR_G);
 
-  8029646:	200c      	movs	r0, #12
 
-  8029648:	f7ff f9f2 	bl	8028a30 <LED_On>
 
- 	  stateCurrent = HYST_UP;
 
-       
 
- 	  log_event_data(LOG_ALARM_POWER, "Авария");
 
-  802964c:	200e      	movs	r0, #14
 
-  802964e:	4916      	ldr	r1, [pc, #88]	; (80296a8 <UPS_PowerMonitor+0x94>)
 
- 	UPS.Alarm = (UPS.Alarm & 0x0e) | (1 << 0);
 
-     if (stateCurrent == HYST_IDLE)
 
- 	{
 
-       LED_On(LED_MINOR_R);
 
-       LED_On(LED_MINOR_G);
 
- 	  stateCurrent = HYST_UP;
 
-  8029650:	7025      	strb	r5, [r4, #0]
 
-       
 
- 	  log_event_data(LOG_ALARM_POWER, "Авария");
 
-  8029652:	f000 fa03 	bl	8029a5c <log_event_data>
 
- 	  // Отправка трапа о завышении 
 
- 	  SNMP_SendUserTrap(POWER_ALARM);
 
-  8029656:	200f      	movs	r0, #15
 
-  8029658:	e019      	b.n	802968e <UPS_PowerMonitor+0x7a>
 
- 	}
 
-   }
 
-   /* Отслеживается нормализация */
 
-   else if (load < (UPS_LOAD - UPS_LOAD_HIST))
 
-  802965a:	4628      	mov	r0, r5
 
-  802965c:	4913      	ldr	r1, [pc, #76]	; (80296ac <UPS_PowerMonitor+0x98>)
 
-  802965e:	f7f7 fc3d 	bl	8020edc <__aeabi_fcmplt>
 
-  8029662:	b1c0      	cbz	r0, 8029696 <UPS_PowerMonitor+0x82>
 
-   {
 
- 	UPS.Alarm = (UPS.Alarm & 0x0e);
 
-  8029664:	7d23      	ldrb	r3, [r4, #20]
 
-  8029666:	f003 030e 	and.w	r3, r3, #14
 
-  802966a:	7523      	strb	r3, [r4, #20]
 
-     if (stateCurrent == HYST_UP)
 
-  802966c:	4c0d      	ldr	r4, [pc, #52]	; (80296a4 <UPS_PowerMonitor+0x90>)
 
-  802966e:	7823      	ldrb	r3, [r4, #0]
 
-  8029670:	2b01      	cmp	r3, #1
 
-  8029672:	d110      	bne.n	8029696 <UPS_PowerMonitor+0x82>
 
- 	{
 
-     	LED_Off(LED_MINOR_R);
 
-  8029674:	200d      	movs	r0, #13
 
-  8029676:	f7ff f9de 	bl	8028a36 <LED_Off>
 
-     	LED_Off(LED_MINOR_G);
 
-  802967a:	200c      	movs	r0, #12
 
-  802967c:	f7ff f9db 	bl	8028a36 <LED_Off>
 
- 	  stateCurrent = HYST_IDLE;
 
-  8029680:	2300      	movs	r3, #0
 
-       
 
- 	  log_event_data(LOG_ALARM_POWER, "Норма");
 
-  8029682:	200e      	movs	r0, #14
 
-  8029684:	490a      	ldr	r1, [pc, #40]	; (80296b0 <UPS_PowerMonitor+0x9c>)
 
- 	UPS.Alarm = (UPS.Alarm & 0x0e);
 
-     if (stateCurrent == HYST_UP)
 
- 	{
 
-     	LED_Off(LED_MINOR_R);
 
-     	LED_Off(LED_MINOR_G);
 
- 	  stateCurrent = HYST_IDLE;
 
-  8029686:	7023      	strb	r3, [r4, #0]
 
-       
 
- 	  log_event_data(LOG_ALARM_POWER, "Норма");
 
-  8029688:	f000 f9e8 	bl	8029a5c <log_event_data>
 
- 	  // Отправка трапа о нормализации 
 
- 	  SNMP_SendUserTrap(POWER_NORM);
 
-  802968c:	2010      	movs	r0, #16
 
- 	}
 
-   }
 
- }
 
-  802968e:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
 
-     	LED_Off(LED_MINOR_G);
 
- 	  stateCurrent = HYST_IDLE;
 
-       
 
- 	  log_event_data(LOG_ALARM_POWER, "Норма");
 
- 	  // Отправка трапа о нормализации 
 
- 	  SNMP_SendUserTrap(POWER_NORM);
 
-  8029692:	f00e bd53 	b.w	803813c <SNMP_SendUserTrap>
 
-  8029696:	bd38      	pop	{r3, r4, r5, pc}
 
-  8029698:	2000cba8 	.word	0x2000cba8
 
-  802969c:	428c0000 	.word	0x428c0000
 
-  80296a0:	20000b5e 	.word	0x20000b5e
 
-  80296a4:	20000b53 	.word	0x20000b53
 
-  80296a8:	08039b1f 	.word	0x08039b1f
 
-  80296ac:	428a0000 	.word	0x428a0000
 
-  80296b0:	08039b2c 	.word	0x08039b2c
 
- 080296b4 <UPS_TemperatureMonitor>:
 
- /**
 
-   * @brief  Мониторинг температуры 
 
-   */
 
- void UPS_TemperatureMonitor(void)
 
- {
 
-  80296b4:	b538      	push	{r3, r4, r5, lr}
 
-   float temperature;
 
-   static uint8_t stateCurrent = HYST_IDLE;
 
-     
 
-   temperature = UPS.Temp;
 
-  80296b6:	4c19      	ldr	r4, [pc, #100]	; (802971c <UPS_TemperatureMonitor+0x68>)
 
-   /* Отслеживается переход через верхнюю границу */
 
-   if (temperature > UPS_TEMPERATURE)
 
-  80296b8:	4919      	ldr	r1, [pc, #100]	; (8029720 <UPS_TemperatureMonitor+0x6c>)
 
- void UPS_TemperatureMonitor(void)
 
- {
 
-   float temperature;
 
-   static uint8_t stateCurrent = HYST_IDLE;
 
-     
 
-   temperature = UPS.Temp;
 
-  80296ba:	68e5      	ldr	r5, [r4, #12]
 
-   /* Отслеживается переход через верхнюю границу */
 
-   if (temperature > UPS_TEMPERATURE)
 
-  80296bc:	4628      	mov	r0, r5
 
-  80296be:	f7f7 fc2b 	bl	8020f18 <__aeabi_fcmpgt>
 
-  80296c2:	b190      	cbz	r0, 80296ea <UPS_TemperatureMonitor+0x36>
 
-   {
 
- 	flCriticalAlarm = true;
 
-  80296c4:	4b17      	ldr	r3, [pc, #92]	; (8029724 <UPS_TemperatureMonitor+0x70>)
 
-  80296c6:	2201      	movs	r2, #1
 
-  80296c8:	701a      	strb	r2, [r3, #0]
 
- 	UPS.Alarm = (UPS.Alarm & 0x0d) | (1 << 1);
 
-  80296ca:	7d23      	ldrb	r3, [r4, #20]
 
-  80296cc:	f003 030d 	and.w	r3, r3, #13
 
-  80296d0:	f043 0302 	orr.w	r3, r3, #2
 
-  80296d4:	7523      	strb	r3, [r4, #20]
 
-     if (stateCurrent == HYST_IDLE)
 
-  80296d6:	4b14      	ldr	r3, [pc, #80]	; (8029728 <UPS_TemperatureMonitor+0x74>)
 
-  80296d8:	7819      	ldrb	r1, [r3, #0]
 
-  80296da:	b9f1      	cbnz	r1, 802971a <UPS_TemperatureMonitor+0x66>
 
- 	{
 
- 	  stateCurrent = HYST_UP;
 
-       
 
- 	  log_event_data(LOG_ALARM_TEMP, "Авария");
 
-  80296dc:	200b      	movs	r0, #11
 
-  80296de:	4913      	ldr	r1, [pc, #76]	; (802972c <UPS_TemperatureMonitor+0x78>)
 
-   {
 
- 	flCriticalAlarm = true;
 
- 	UPS.Alarm = (UPS.Alarm & 0x0d) | (1 << 1);
 
-     if (stateCurrent == HYST_IDLE)
 
- 	{
 
- 	  stateCurrent = HYST_UP;
 
-  80296e0:	701a      	strb	r2, [r3, #0]
 
-       
 
- 	  log_event_data(LOG_ALARM_TEMP, "Авария");
 
-  80296e2:	f000 f9bb 	bl	8029a5c <log_event_data>
 
- 	  // Отправка трапа о завышении 
 
- 	  SNMP_SendUserTrap(BATTERY_TEMPERATURE_ALARM);
 
-  80296e6:	200a      	movs	r0, #10
 
-  80296e8:	e013      	b.n	8029712 <UPS_TemperatureMonitor+0x5e>
 
- 	}
 
-   }
 
-   /* Отслеживается нормализация */
 
-   else if (temperature < (UPS_TEMPERATURE - UPS_TEMPERATURE_HIST))
 
-  80296ea:	4628      	mov	r0, r5
 
-  80296ec:	4910      	ldr	r1, [pc, #64]	; (8029730 <UPS_TemperatureMonitor+0x7c>)
 
-  80296ee:	f7f7 fbf5 	bl	8020edc <__aeabi_fcmplt>
 
-  80296f2:	b190      	cbz	r0, 802971a <UPS_TemperatureMonitor+0x66>
 
-   {
 
- 	  UPS.Alarm = (UPS.Alarm & 0x0d);
 
-  80296f4:	7d23      	ldrb	r3, [r4, #20]
 
-  80296f6:	f003 030d 	and.w	r3, r3, #13
 
-  80296fa:	7523      	strb	r3, [r4, #20]
 
-     if (stateCurrent == HYST_UP)
 
-  80296fc:	4b0a      	ldr	r3, [pc, #40]	; (8029728 <UPS_TemperatureMonitor+0x74>)
 
-  80296fe:	781a      	ldrb	r2, [r3, #0]
 
-  8029700:	2a01      	cmp	r2, #1
 
-  8029702:	d10a      	bne.n	802971a <UPS_TemperatureMonitor+0x66>
 
- 	{
 
- 	  stateCurrent = HYST_IDLE;
 
-  8029704:	2200      	movs	r2, #0
 
-       
 
- 	  log_event_data(LOG_ALARM_TEMP, "Норма");
 
-  8029706:	200b      	movs	r0, #11
 
-  8029708:	490a      	ldr	r1, [pc, #40]	; (8029734 <UPS_TemperatureMonitor+0x80>)
 
-   else if (temperature < (UPS_TEMPERATURE - UPS_TEMPERATURE_HIST))
 
-   {
 
- 	  UPS.Alarm = (UPS.Alarm & 0x0d);
 
-     if (stateCurrent == HYST_UP)
 
- 	{
 
- 	  stateCurrent = HYST_IDLE;
 
-  802970a:	701a      	strb	r2, [r3, #0]
 
-       
 
- 	  log_event_data(LOG_ALARM_TEMP, "Норма");
 
-  802970c:	f000 f9a6 	bl	8029a5c <log_event_data>
 
- 	  // Отправка трапа о нормализации 
 
- 	  SNMP_SendUserTrap(BATTERY_TEMPERATURE_NORM);
 
-  8029710:	2009      	movs	r0, #9
 
- 	}
 
-   }
 
- }
 
-  8029712:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
 
- 	{
 
- 	  stateCurrent = HYST_IDLE;
 
-       
 
- 	  log_event_data(LOG_ALARM_TEMP, "Норма");
 
- 	  // Отправка трапа о нормализации 
 
- 	  SNMP_SendUserTrap(BATTERY_TEMPERATURE_NORM);
 
-  8029716:	f00e bd11 	b.w	803813c <SNMP_SendUserTrap>
 
-  802971a:	bd38      	pop	{r3, r4, r5, pc}
 
-  802971c:	2000cba8 	.word	0x2000cba8
 
-  8029720:	42200000 	.word	0x42200000
 
-  8029724:	20000b5e 	.word	0x20000b5e
 
-  8029728:	20000b5b 	.word	0x20000b5b
 
-  802972c:	08039b1f 	.word	0x08039b1f
 
-  8029730:	421c0000 	.word	0x421c0000
 
-  8029734:	08039b2c 	.word	0x08039b2c
 
- 08029738 <UPS_ConnectMonitor>:
 
- /**
 
-   * @brief  Мониторинг параметра upsParams.connect
 
-   */
 
- void UPS_ConnectMonitor(void)
 
- {
 
-  8029738:	b538      	push	{r3, r4, r5, lr}
 
-   static bool isValueRecv = false;
 
-   static uint8_t connectOldState = 0;
 
-   uint8_t connectCurrent;
 
-   
 
-   connectCurrent = UPS.Present;
 
-  802973a:	4b19      	ldr	r3, [pc, #100]	; (80297a0 <UPS_ConnectMonitor+0x68>)
 
-  802973c:	4d19      	ldr	r5, [pc, #100]	; (80297a4 <UPS_ConnectMonitor+0x6c>)
 
-   
 
-   UPS.Alarm = (UPS.Alarm & 0x0b) | ((connectCurrent^1) << 2);
 
-  802973e:	7d1a      	ldrb	r2, [r3, #20]
 
- {
 
-   static bool isValueRecv = false;
 
-   static uint8_t connectOldState = 0;
 
-   uint8_t connectCurrent;
 
-   
 
-   connectCurrent = UPS.Present;
 
-  8029740:	f893 402c 	ldrb.w	r4, [r3, #44]	; 0x2c
 
-   
 
-   UPS.Alarm = (UPS.Alarm & 0x0b) | ((connectCurrent^1) << 2);
 
-  8029744:	f002 020b 	and.w	r2, r2, #11
 
-  8029748:	f084 0101 	eor.w	r1, r4, #1
 
-  802974c:	ea42 0281 	orr.w	r2, r2, r1, lsl #2
 
-  8029750:	751a      	strb	r2, [r3, #20]
 
-   if (!isValueRecv) {
 
-  8029752:	4b15      	ldr	r3, [pc, #84]	; (80297a8 <UPS_ConnectMonitor+0x70>)
 
-  8029754:	781a      	ldrb	r2, [r3, #0]
 
-  8029756:	b962      	cbnz	r2, 8029772 <UPS_ConnectMonitor+0x3a>
 
-     isValueRecv = true;
 
-  8029758:	2201      	movs	r2, #1
 
-  802975a:	701a      	strb	r2, [r3, #0]
 
-     connectOldState = connectCurrent;
 
-  802975c:	702c      	strb	r4, [r5, #0]
 
-     if (!connectCurrent){
 
-  802975e:	b9ec      	cbnz	r4, 802979c <UPS_ConnectMonitor+0x64>
 
-     	log_event_data(LOG_ALARM_UPS, "Авария");
 
-  8029760:	200f      	movs	r0, #15
 
-  8029762:	4912      	ldr	r1, [pc, #72]	; (80297ac <UPS_ConnectMonitor+0x74>)
 
-  8029764:	f000 f97a 	bl	8029a5c <log_event_data>
 
-     	SNMP_SendUserTrap(CONNECT_MONITOR_ALARM);
 
-  8029768:	2011      	movs	r0, #17
 
-       SNMP_SendUserTrap(CONNECT_MONITOR_ALARM);
 
-     }
 
-   }
 
-   
 
-   connectOldState = connectCurrent;
 
- }
 
-  802976a:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
 
-   if (!isValueRecv) {
 
-     isValueRecv = true;
 
-     connectOldState = connectCurrent;
 
-     if (!connectCurrent){
 
-     	log_event_data(LOG_ALARM_UPS, "Авария");
 
-     	SNMP_SendUserTrap(CONNECT_MONITOR_ALARM);
 
-  802976e:	f00e bce5 	b.w	803813c <SNMP_SendUserTrap>
 
-     }
 
-     return;
 
-   }
 
-   if (!connectCurrent)
 
-  8029772:	b914      	cbnz	r4, 802977a <UPS_ConnectMonitor+0x42>
 
-   	  flCriticalAlarm = true;
 
-  8029774:	4b0e      	ldr	r3, [pc, #56]	; (80297b0 <UPS_ConnectMonitor+0x78>)
 
-  8029776:	2201      	movs	r2, #1
 
-  8029778:	701a      	strb	r2, [r3, #0]
 
-   // Значение параметра изменилось
 
-   if (connectCurrent != connectOldState)
 
-  802977a:	782b      	ldrb	r3, [r5, #0]
 
-  802977c:	42a3      	cmp	r3, r4
 
-  802977e:	d00c      	beq.n	802979a <UPS_ConnectMonitor+0x62>
 
-   {
 
-     if (connectCurrent){
 
-       log_event_data(LOG_ALARM_UPS, "Норма");
 
-  8029780:	200f      	movs	r0, #15
 
-   if (!connectCurrent)
 
-   	  flCriticalAlarm = true;
 
-   // Значение параметра изменилось
 
-   if (connectCurrent != connectOldState)
 
-   {
 
-     if (connectCurrent){
 
-  8029782:	b124      	cbz	r4, 802978e <UPS_ConnectMonitor+0x56>
 
-       log_event_data(LOG_ALARM_UPS, "Норма");
 
-  8029784:	490b      	ldr	r1, [pc, #44]	; (80297b4 <UPS_ConnectMonitor+0x7c>)
 
-  8029786:	f000 f969 	bl	8029a5c <log_event_data>
 
-       SNMP_SendUserTrap(CONNECT_MONITOR_NORM);
 
-  802978a:	2012      	movs	r0, #18
 
-  802978c:	e003      	b.n	8029796 <UPS_ConnectMonitor+0x5e>
 
-     }
 
-     else{
 
-       log_event_data(LOG_ALARM_UPS, "Авария");
 
-  802978e:	4907      	ldr	r1, [pc, #28]	; (80297ac <UPS_ConnectMonitor+0x74>)
 
-  8029790:	f000 f964 	bl	8029a5c <log_event_data>
 
-       SNMP_SendUserTrap(CONNECT_MONITOR_ALARM);
 
-  8029794:	2011      	movs	r0, #17
 
-  8029796:	f00e fcd1 	bl	803813c <SNMP_SendUserTrap>
 
-     }
 
-   }
 
-   
 
-   connectOldState = connectCurrent;
 
-  802979a:	702c      	strb	r4, [r5, #0]
 
-  802979c:	bd38      	pop	{r3, r4, r5, pc}
 
-  802979e:	bf00      	nop
 
-  80297a0:	2000cba8 	.word	0x2000cba8
 
-  80297a4:	20000b58 	.word	0x20000b58
 
-  80297a8:	20000b52 	.word	0x20000b52
 
-  80297ac:	08039b1f 	.word	0x08039b1f
 
-  80297b0:	20000b5e 	.word	0x20000b5e
 
-  80297b4:	08039b2c 	.word	0x08039b2c
 
- 080297b8 <UPS_BatteryConnectMonitor>:
 
- /**
 
-   * @brief  Мониторинг параметра upsParams.connect
 
-   */
 
- void UPS_BatteryConnectMonitor(void)
 
- {
 
-  80297b8:	b538      	push	{r3, r4, r5, lr}
 
-   static bool isValueRecv = false;
 
-   static uint8_t AKBconnectOldState = 0;
 
-   uint8_t AKBconnectCurrent;
 
-   if(((UPS.Status >> 7) & 0x01) == 0)
 
-  80297ba:	4b1a      	ldr	r3, [pc, #104]	; (8029824 <UPS_BatteryConnectMonitor+0x6c>)
 
-  80297bc:	4d1a      	ldr	r5, [pc, #104]	; (8029828 <UPS_BatteryConnectMonitor+0x70>)
 
-  80297be:	7cdc      	ldrb	r4, [r3, #19]
 
-  80297c0:	09e2      	lsrs	r2, r4, #7
 
- 	  AKBconnectCurrent = (UPS.Status >> 6) & 0x01;
 
-   else{
 
- 	  AKBconnectCurrent = 0;
 
-   }
 
-   UPS.Alarm = (UPS.Alarm & 0x07) | (AKBconnectCurrent << 3);
 
-  80297c2:	7d1a      	ldrb	r2, [r3, #20]
 
-   static bool isValueRecv = false;
 
-   static uint8_t AKBconnectOldState = 0;
 
-   uint8_t AKBconnectCurrent;
 
-   if(((UPS.Status >> 7) & 0x01) == 0)
 
- 	  AKBconnectCurrent = (UPS.Status >> 6) & 0x01;
 
-  80297c4:	bf08      	it	eq
 
-  80297c6:	f3c4 1480 	ubfxeq	r4, r4, #6, #1
 
-   else{
 
- 	  AKBconnectCurrent = 0;
 
-   }
 
-   UPS.Alarm = (UPS.Alarm & 0x07) | (AKBconnectCurrent << 3);
 
-  80297ca:	f002 0207 	and.w	r2, r2, #7
 
-   uint8_t AKBconnectCurrent;
 
-   if(((UPS.Status >> 7) & 0x01) == 0)
 
- 	  AKBconnectCurrent = (UPS.Status >> 6) & 0x01;
 
-   else{
 
- 	  AKBconnectCurrent = 0;
 
-  80297ce:	bf18      	it	ne
 
-  80297d0:	2400      	movne	r4, #0
 
-   }
 
-   UPS.Alarm = (UPS.Alarm & 0x07) | (AKBconnectCurrent << 3);
 
-  80297d2:	ea42 02c4 	orr.w	r2, r2, r4, lsl #3
 
-  80297d6:	751a      	strb	r2, [r3, #20]
 
-   if (!isValueRecv) {
 
-  80297d8:	4b14      	ldr	r3, [pc, #80]	; (802982c <UPS_BatteryConnectMonitor+0x74>)
 
-  80297da:	781a      	ldrb	r2, [r3, #0]
 
-  80297dc:	b962      	cbnz	r2, 80297f8 <UPS_BatteryConnectMonitor+0x40>
 
-     isValueRecv = true;
 
-  80297de:	2201      	movs	r2, #1
 
-  80297e0:	701a      	strb	r2, [r3, #0]
 
-     AKBconnectOldState = AKBconnectCurrent;
 
-  80297e2:	702c      	strb	r4, [r5, #0]
 
-     if (AKBconnectCurrent){
 
-  80297e4:	b1ec      	cbz	r4, 8029822 <UPS_BatteryConnectMonitor+0x6a>
 
-       log_event_data(LOG_ALARM_AKB, "Авария");
 
-  80297e6:	2010      	movs	r0, #16
 
-  80297e8:	4911      	ldr	r1, [pc, #68]	; (8029830 <UPS_BatteryConnectMonitor+0x78>)
 
-  80297ea:	f000 f937 	bl	8029a5c <log_event_data>
 
- 	  SNMP_SendUserTrap(BATTERY_CONNECT_ALARM);
 
-  80297ee:	2013      	movs	r0, #19
 
-       SNMP_SendUserTrap(BATTERY_CONNECT_ALARM);
 
-     }
 
-   }
 
-   AKBconnectOldState = AKBconnectCurrent;
 
- }
 
-  80297f0:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
 
-   if (!isValueRecv) {
 
-     isValueRecv = true;
 
-     AKBconnectOldState = AKBconnectCurrent;
 
-     if (AKBconnectCurrent){
 
-       log_event_data(LOG_ALARM_AKB, "Авария");
 
- 	  SNMP_SendUserTrap(BATTERY_CONNECT_ALARM);
 
-  80297f4:	f00e bca2 	b.w	803813c <SNMP_SendUserTrap>
 
-     }
 
-     return;
 
-   }
 
-   if (AKBconnectCurrent)
 
-  80297f8:	b114      	cbz	r4, 8029800 <UPS_BatteryConnectMonitor+0x48>
 
-   	  flCriticalAlarm = true;
 
-  80297fa:	4b0e      	ldr	r3, [pc, #56]	; (8029834 <UPS_BatteryConnectMonitor+0x7c>)
 
-  80297fc:	2201      	movs	r2, #1
 
-  80297fe:	701a      	strb	r2, [r3, #0]
 
-   // Значение параметра изменилось
 
-   if (AKBconnectCurrent != AKBconnectOldState)
 
-  8029800:	782b      	ldrb	r3, [r5, #0]
 
-  8029802:	42a3      	cmp	r3, r4
 
-  8029804:	d00c      	beq.n	8029820 <UPS_BatteryConnectMonitor+0x68>
 
-   {
 
-     if (!AKBconnectCurrent){
 
-       log_event_data(LOG_ALARM_AKB, "Норма");
 
-  8029806:	2010      	movs	r0, #16
 
-   if (AKBconnectCurrent)
 
-   	  flCriticalAlarm = true;
 
-   // Значение параметра изменилось
 
-   if (AKBconnectCurrent != AKBconnectOldState)
 
-   {
 
-     if (!AKBconnectCurrent){
 
-  8029808:	b924      	cbnz	r4, 8029814 <UPS_BatteryConnectMonitor+0x5c>
 
-       log_event_data(LOG_ALARM_AKB, "Норма");
 
-  802980a:	490b      	ldr	r1, [pc, #44]	; (8029838 <UPS_BatteryConnectMonitor+0x80>)
 
-  802980c:	f000 f926 	bl	8029a5c <log_event_data>
 
-       SNMP_SendUserTrap(BATTERY_CONNECT_NORM);
 
-  8029810:	2014      	movs	r0, #20
 
-  8029812:	e003      	b.n	802981c <UPS_BatteryConnectMonitor+0x64>
 
-     }
 
-     else{
 
-       log_event_data(LOG_ALARM_AKB, "Авария");
 
-  8029814:	4906      	ldr	r1, [pc, #24]	; (8029830 <UPS_BatteryConnectMonitor+0x78>)
 
-  8029816:	f000 f921 	bl	8029a5c <log_event_data>
 
-       SNMP_SendUserTrap(BATTERY_CONNECT_ALARM);
 
-  802981a:	2013      	movs	r0, #19
 
-  802981c:	f00e fc8e 	bl	803813c <SNMP_SendUserTrap>
 
-     }
 
-   }
 
-   AKBconnectOldState = AKBconnectCurrent;
 
-  8029820:	702c      	strb	r4, [r5, #0]
 
-  8029822:	bd38      	pop	{r3, r4, r5, pc}
 
-  8029824:	2000cba8 	.word	0x2000cba8
 
-  8029828:	20000b63 	.word	0x20000b63
 
-  802982c:	20000b5f 	.word	0x20000b5f
 
-  8029830:	08039b1f 	.word	0x08039b1f
 
-  8029834:	20000b5e 	.word	0x20000b5e
 
-  8029838:	08039b2c 	.word	0x08039b2c
 
- 0802983c <UPS_Monitor>:
 
- /**
 
-   * @brief  Задача мониторинга параметров UPS
 
-   */
 
- void UPS_Monitor(void *params)
 
- {
 
-  802983c:	b570      	push	{r4, r5, r6, lr}
 
- 	vTaskDelay(5000);
 
-  802983e:	f241 3088 	movw	r0, #5000	; 0x1388
 
-  8029842:	f001 fbc3 	bl	802afcc <vTaskDelay>
 
-   for (;;)
 
-   {
 
- 	  flCriticalAlarm = false;
 
-  8029846:	4d10      	ldr	r5, [pc, #64]	; (8029888 <UPS_Monitor+0x4c>)
 
- 	  flNonCriticalAlarm = false;
 
-  8029848:	4e10      	ldr	r6, [pc, #64]	; (802988c <UPS_Monitor+0x50>)
 
- void UPS_Monitor(void *params)
 
- {
 
- 	vTaskDelay(5000);
 
-   for (;;)
 
-   {
 
- 	  flCriticalAlarm = false;
 
-  802984a:	2400      	movs	r4, #0
 
- 	  flNonCriticalAlarm = false;
 
-     // Проверяем флаг подключения UPS
 
-    if (UPS.Present)
 
-  802984c:	4b10      	ldr	r3, [pc, #64]	; (8029890 <UPS_Monitor+0x54>)
 
- void UPS_Monitor(void *params)
 
- {
 
- 	vTaskDelay(5000);
 
-   for (;;)
 
-   {
 
- 	  flCriticalAlarm = false;
 
-  802984e:	702c      	strb	r4, [r5, #0]
 
- 	  flNonCriticalAlarm = false;
 
-     // Проверяем флаг подключения UPS
 
-    if (UPS.Present)
 
-  8029850:	f893 302c 	ldrb.w	r3, [r3, #44]	; 0x2c
 
- {
 
- 	vTaskDelay(5000);
 
-   for (;;)
 
-   {
 
- 	  flCriticalAlarm = false;
 
- 	  flNonCriticalAlarm = false;
 
-  8029854:	7034      	strb	r4, [r6, #0]
 
-     // Проверяем флаг подключения UPS
 
-    if (UPS.Present)
 
-  8029856:	b14b      	cbz	r3, 802986c <UPS_Monitor+0x30>
 
-     {
 
-       UPS_LineFailMonitor();
 
-  8029858:	f7ff fe68 	bl	802952c <UPS_LineFailMonitor>
 
-       UPS_LowBatMonitor();  
 
-  802985c:	f7ff fe9e 	bl	802959c <UPS_LowBatMonitor>
 
-       UPS_PowerMonitor();
 
-  8029860:	f7ff fed8 	bl	8029614 <UPS_PowerMonitor>
 
-       UPS_TemperatureMonitor();
 
-  8029864:	f7ff ff26 	bl	80296b4 <UPS_TemperatureMonitor>
 
-       UPS_BatteryConnectMonitor();
 
-  8029868:	f7ff ffa6 	bl	80297b8 <UPS_BatteryConnectMonitor>
 
-     }
 
-     UPS_ConnectMonitor();
 
-  802986c:	f7ff ff64 	bl	8029738 <UPS_ConnectMonitor>
 
-     UPS_DI0Monitor();
 
-  8029870:	f7ff fce8 	bl	8029244 <UPS_DI0Monitor>
 
-     UPS_CriticalAlarmMonitor();
 
-  8029874:	f7ff fd24 	bl	80292c0 <UPS_CriticalAlarmMonitor>
 
-     UPS_NonCriticalAlarmMonitor();
 
-  8029878:	f7ff fdc6 	bl	8029408 <UPS_NonCriticalAlarmMonitor>
 
-       
 
-     vTaskDelay(1000);
 
-  802987c:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
 
-  8029880:	f001 fba4 	bl	802afcc <vTaskDelay>
 
-   }
 
-  8029884:	e7e2      	b.n	802984c <UPS_Monitor+0x10>
 
-  8029886:	bf00      	nop
 
-  8029888:	20000b5e 	.word	0x20000b5e
 
-  802988c:	20000b64 	.word	0x20000b64
 
-  8029890:	2000cba8 	.word	0x2000cba8
 
- 08029894 <op_read>:
 
- }
 
- static ssize_t op_read(struct ringfs_flash_partition *flash, int address, void *data, size_t size) {
 
- 	(void)flash;
 
- 	int ret;
 
- 	ret = spi_flash_read(address, data, size, 0);
 
-  8029894:	4608      	mov	r0, r1
 
-  8029896:	4611      	mov	r1, r2
 
-  8029898:	461a      	mov	r2, r3
 
-  802989a:	2300      	movs	r3, #0
 
-  802989c:	f7fd b82c 	b.w	80268f8 <spi_flash_read>
 
- 080298a0 <op_program>:
 
- }
 
- static ssize_t op_program(struct ringfs_flash_partition *flash, int address, const void *data, size_t size) {
 
- 	(void)flash;
 
- 	int ret;
 
- 	ret = spi_flash_write(address, data, size, 0);
 
-  80298a0:	4608      	mov	r0, r1
 
-  80298a2:	4611      	mov	r1, r2
 
-  80298a4:	461a      	mov	r2, r3
 
-  80298a6:	2300      	movs	r3, #0
 
-  80298a8:	f7fd b875 	b.w	8026996 <spi_flash_write>
 
- 080298ac <op_sector_erase>:
 
- #define ALARM_LOG_FLASH_SECTOR_OFFSET	258
 
- static int op_sector_erase(struct ringfs_flash_partition *flash, int address) {
 
- 	(void)flash;
 
- 	int ret;
 
- 	ret = spi_flash_erase_sector(address, 0);
 
-  80298ac:	4608      	mov	r0, r1
 
-  80298ae:	2100      	movs	r1, #0
 
-  80298b0:	f7fd b881 	b.w	80269b6 <spi_flash_erase_sector>
 
- 080298b4 <log_task>:
 
- static struct ringfs fs2;
 
- static SemaphoreHandle_t log_mutex;
 
- void log_task(void)
 
- {
 
-  80298b4:	b508      	push	{r3, lr}
 
- 	for(;;){
 
- 		flUpdateLog = true;
 
-  80298b6:	4c03      	ldr	r4, [pc, #12]	; (80298c4 <log_task+0x10>)
 
-  80298b8:	2501      	movs	r5, #1
 
- 		vTaskDelay(LOG_TIME);
 
-  80298ba:	4803      	ldr	r0, [pc, #12]	; (80298c8 <log_task+0x14>)
 
- static SemaphoreHandle_t log_mutex;
 
- void log_task(void)
 
- {
 
- 	for(;;){
 
- 		flUpdateLog = true;
 
-  80298bc:	7025      	strb	r5, [r4, #0]
 
- 		vTaskDelay(LOG_TIME);
 
-  80298be:	f001 fb85 	bl	802afcc <vTaskDelay>
 
-  80298c2:	e7fa      	b.n	80298ba <log_task+0x6>
 
-  80298c4:	20000bc0 	.word	0x20000bc0
 
-  80298c8:	000927c0 	.word	0x000927c0
 
- 080298cc <log_init>:
 
- 	}
 
- }
 
- void log_init(bool format) {
 
-  80298cc:	b51f      	push	{r0, r1, r2, r3, r4, lr}
 
- 	DBG printf(">>> Event log\n");
 
- 	if (!spi_flash_desc.present)
 
-  80298ce:	4b22      	ldr	r3, [pc, #136]	; (8029958 <log_init+0x8c>)
 
-  80298d0:	781a      	ldrb	r2, [r3, #0]
 
- 		flUpdateLog = true;
 
- 		vTaskDelay(LOG_TIME);
 
- 	}
 
- }
 
- void log_init(bool format) {
 
-  80298d2:	4604      	mov	r4, r0
 
- 	DBG printf(">>> Event log\n");
 
- 	if (!spi_flash_desc.present)
 
-  80298d4:	2a00      	cmp	r2, #0
 
-  80298d6:	d03e      	beq.n	8029956 <log_init+0x8a>
 
- 		return;
 
- 	ringfs_flash.sector_size = spi_flash_desc.sector_size;
 
-  80298d8:	685a      	ldr	r2, [r3, #4]
 
- 	ringfs_flash.sector_count = spi_flash_desc.sector_count/2 - LOG_FLASH_SECTOR_OFFSET;
 
-  80298da:	895b      	ldrh	r3, [r3, #10]
 
- void log_init(bool format) {
 
- 	DBG printf(">>> Event log\n");
 
- 	if (!spi_flash_desc.present)
 
- 		return;
 
- 	ringfs_flash.sector_size = spi_flash_desc.sector_size;
 
-  80298dc:	491f      	ldr	r1, [pc, #124]	; (802995c <log_init+0x90>)
 
- 	ringfs_flash.sector_count = spi_flash_desc.sector_count/2 - LOG_FLASH_SECTOR_OFFSET;
 
- 	ringfs_init(&fs, &ringfs_flash, LOG_ENTRY_VERSION, sizeof(log_entry_t));
 
-  80298de:	4820      	ldr	r0, [pc, #128]	; (8029960 <log_init+0x94>)
 
- void log_init(bool format) {
 
- 	DBG printf(">>> Event log\n");
 
- 	if (!spi_flash_desc.present)
 
- 		return;
 
- 	ringfs_flash.sector_size = spi_flash_desc.sector_size;
 
-  80298e0:	600a      	str	r2, [r1, #0]
 
- 	ringfs_flash.sector_count = spi_flash_desc.sector_count/2 - LOG_FLASH_SECTOR_OFFSET;
 
-  80298e2:	085b      	lsrs	r3, r3, #1
 
-  80298e4:	3b04      	subs	r3, #4
 
-  80298e6:	608b      	str	r3, [r1, #8]
 
- 	ringfs_init(&fs, &ringfs_flash, LOG_ENTRY_VERSION, sizeof(log_entry_t));
 
-  80298e8:	2201      	movs	r2, #1
 
-  80298ea:	2337      	movs	r3, #55	; 0x37
 
-  80298ec:	f000 fb87 	bl	8029ffe <ringfs_init>
 
- 	if (format || ringfs_scan(&fs) != 0)
 
-  80298f0:	b11c      	cbz	r4, 80298fa <log_init+0x2e>
 
- 		ringfs_format(&fs);
 
-  80298f2:	481b      	ldr	r0, [pc, #108]	; (8029960 <log_init+0x94>)
 
-  80298f4:	f000 fb8d 	bl	802a012 <ringfs_format>
 
-  80298f8:	e004      	b.n	8029904 <log_init+0x38>
 
- 		return;
 
- 	ringfs_flash.sector_size = spi_flash_desc.sector_size;
 
- 	ringfs_flash.sector_count = spi_flash_desc.sector_count/2 - LOG_FLASH_SECTOR_OFFSET;
 
- 	ringfs_init(&fs, &ringfs_flash, LOG_ENTRY_VERSION, sizeof(log_entry_t));
 
- 	if (format || ringfs_scan(&fs) != 0)
 
-  80298fa:	4819      	ldr	r0, [pc, #100]	; (8029960 <log_init+0x94>)
 
-  80298fc:	f000 fc6b 	bl	802a1d6 <ringfs_scan>
 
-  8029900:	2800      	cmp	r0, #0
 
-  8029902:	d1f6      	bne.n	80298f2 <log_init+0x26>
 
- 		ringfs_format(&fs);
 
- 	ringfs_flash2.sector_size = spi_flash_desc.sector_size;
 
-  8029904:	4b14      	ldr	r3, [pc, #80]	; (8029958 <log_init+0x8c>)
 
-  8029906:	4917      	ldr	r1, [pc, #92]	; (8029964 <log_init+0x98>)
 
-  8029908:	685a      	ldr	r2, [r3, #4]
 
- 	ringfs_flash2.sector_count = spi_flash_desc.sector_count/2 - LOG_FLASH_SECTOR_OFFSET;
 
-  802990a:	895b      	ldrh	r3, [r3, #10]
 
- 	ringfs_init(&fs, &ringfs_flash, LOG_ENTRY_VERSION, sizeof(log_entry_t));
 
- 	if (format || ringfs_scan(&fs) != 0)
 
- 		ringfs_format(&fs);
 
- 	ringfs_flash2.sector_size = spi_flash_desc.sector_size;
 
-  802990c:	600a      	str	r2, [r1, #0]
 
- 	ringfs_flash2.sector_count = spi_flash_desc.sector_count/2 - LOG_FLASH_SECTOR_OFFSET;
 
-  802990e:	085b      	lsrs	r3, r3, #1
 
-  8029910:	3b04      	subs	r3, #4
 
-  8029912:	608b      	str	r3, [r1, #8]
 
- 	ringfs_init(&fs2, &ringfs_flash2, LOG_ENTRY_VERSION, sizeof(log_entry_t));
 
-  8029914:	4814      	ldr	r0, [pc, #80]	; (8029968 <log_init+0x9c>)
 
-  8029916:	2201      	movs	r2, #1
 
-  8029918:	2337      	movs	r3, #55	; 0x37
 
-  802991a:	f000 fb70 	bl	8029ffe <ringfs_init>
 
- 	if (format || ringfs_scan(&fs2) != 0)
 
-  802991e:	b11c      	cbz	r4, 8029928 <log_init+0x5c>
 
- 		ringfs_format(&fs2);
 
-  8029920:	4811      	ldr	r0, [pc, #68]	; (8029968 <log_init+0x9c>)
 
-  8029922:	f000 fb76 	bl	802a012 <ringfs_format>
 
-  8029926:	e004      	b.n	8029932 <log_init+0x66>
 
- 	ringfs_flash2.sector_size = spi_flash_desc.sector_size;
 
- 	ringfs_flash2.sector_count = spi_flash_desc.sector_count/2 - LOG_FLASH_SECTOR_OFFSET;
 
- 	ringfs_init(&fs2, &ringfs_flash2, LOG_ENTRY_VERSION, sizeof(log_entry_t));
 
- 	if (format || ringfs_scan(&fs2) != 0)
 
-  8029928:	480f      	ldr	r0, [pc, #60]	; (8029968 <log_init+0x9c>)
 
-  802992a:	f000 fc54 	bl	802a1d6 <ringfs_scan>
 
-  802992e:	2800      	cmp	r0, #0
 
-  8029930:	d1f6      	bne.n	8029920 <log_init+0x54>
 
- 		ringfs_format(&fs2);
 
- 	fLogInit = true;
 
-  8029932:	4b0e      	ldr	r3, [pc, #56]	; (802996c <log_init+0xa0>)
 
-  8029934:	2001      	movs	r0, #1
 
-  8029936:	7018      	strb	r0, [r3, #0]
 
- 	log_mutex = xSemaphoreCreateMutex();
 
-  8029938:	f000 feaf 	bl	802a69a <xQueueCreateMutex>
 
-  802993c:	4b0c      	ldr	r3, [pc, #48]	; (8029970 <log_init+0xa4>)
 
- 	xTaskCreate(log_task, ( char * ) "log_task", configMINIMAL_STACK_SIZE * 2, NULL, tskIDLE_PRIORITY, NULL);
 
-  802993e:	490d      	ldr	r1, [pc, #52]	; (8029974 <log_init+0xa8>)
 
- 	if (format || ringfs_scan(&fs2) != 0)
 
- 		ringfs_format(&fs2);
 
- 	fLogInit = true;
 
- 	log_mutex = xSemaphoreCreateMutex();
 
-  8029940:	6018      	str	r0, [r3, #0]
 
- 	xTaskCreate(log_task, ( char * ) "log_task", configMINIMAL_STACK_SIZE * 2, NULL, tskIDLE_PRIORITY, NULL);
 
-  8029942:	2300      	movs	r3, #0
 
-  8029944:	9300      	str	r3, [sp, #0]
 
-  8029946:	9301      	str	r3, [sp, #4]
 
-  8029948:	9302      	str	r3, [sp, #8]
 
-  802994a:	9303      	str	r3, [sp, #12]
 
-  802994c:	480a      	ldr	r0, [pc, #40]	; (8029978 <log_init+0xac>)
 
-  802994e:	f44f 7280 	mov.w	r2, #256	; 0x100
 
-  8029952:	f001 f8a1 	bl	802aa98 <xTaskGenericCreate>
 
- }
 
-  8029956:	bd1f      	pop	{r0, r1, r2, r3, r4, pc}
 
-  8029958:	2000c840 	.word	0x2000c840
 
-  802995c:	200006ac 	.word	0x200006ac
 
-  8029960:	20000b94 	.word	0x20000b94
 
-  8029964:	20000694 	.word	0x20000694
 
-  8029968:	20000b68 	.word	0x20000b68
 
-  802996c:	20000bc8 	.word	0x20000bc8
 
-  8029970:	20000bc4 	.word	0x20000bc4
 
-  8029974:	08039b5d 	.word	0x08039b5d
 
-  8029978:	080298b5 	.word	0x080298b5
 
- 0802997c <log_append>:
 
- 	}
 
- 	return 0;
 
- }
 
- int log_append(log_entry_t *entry) {
 
-  802997c:	b530      	push	{r4, r5, lr}
 
- 	int ret;
 
- 	TM_RTC_t data;
 
- 	ret = xSemaphoreTake( log_mutex, portMAX_DELAY );
 
-  802997e:	4b12      	ldr	r3, [pc, #72]	; (80299c8 <log_append+0x4c>)
 
-  8029980:	2100      	movs	r1, #0
 
- 	}
 
- 	return 0;
 
- }
 
- int log_append(log_entry_t *entry) {
 
-  8029982:	b085      	sub	sp, #20
 
-  8029984:	4604      	mov	r4, r0
 
- 	int ret;
 
- 	TM_RTC_t data;
 
- 	ret = xSemaphoreTake( log_mutex, portMAX_DELAY );
 
-  8029986:	f04f 32ff 	mov.w	r2, #4294967295
 
-  802998a:	6818      	ldr	r0, [r3, #0]
 
-  802998c:	460b      	mov	r3, r1
 
-  802998e:	f000 ff2a 	bl	802a7e6 <xQueueGenericReceive>
 
- 	if (ret == pdFALSE)
 
-  8029992:	4605      	mov	r5, r0
 
-  8029994:	b1a8      	cbz	r0, 80299c2 <log_append+0x46>
 
- 		return ret;
 
- 	if (!entry->timestamp){
 
-  8029996:	6821      	ldr	r1, [r4, #0]
 
-  8029998:	b921      	cbnz	r1, 80299a4 <log_append+0x28>
 
- 		TM_RTC_GetDateTime(&data, TM_RTC_Format_BIN);
 
-  802999a:	4668      	mov	r0, sp
 
-  802999c:	f7fc fd74 	bl	8026488 <TM_RTC_GetDateTime>
 
- 		entry->timestamp = data.unix;
 
-  80299a0:	9b03      	ldr	r3, [sp, #12]
 
-  80299a2:	6023      	str	r3, [r4, #0]
 
- 	}
 
- 	if(entry->type == LOG_VALUE)
 
-  80299a4:	7923      	ldrb	r3, [r4, #4]
 
-  80299a6:	2b11      	cmp	r3, #17
 
- 		ringfs_append(&fs, entry);
 
-  80299a8:	bf0c      	ite	eq
 
-  80299aa:	4808      	ldreq	r0, [pc, #32]	; (80299cc <log_append+0x50>)
 
- 	else
 
- 		ringfs_append(&fs2, entry);
 
-  80299ac:	4808      	ldrne	r0, [pc, #32]	; (80299d0 <log_append+0x54>)
 
-  80299ae:	4621      	mov	r1, r4
 
-  80299b0:	f000 fb62 	bl	802a078 <ringfs_append>
 
- 	xSemaphoreGive(log_mutex);
 
-  80299b4:	4b04      	ldr	r3, [pc, #16]	; (80299c8 <log_append+0x4c>)
 
-  80299b6:	2100      	movs	r1, #0
 
-  80299b8:	6818      	ldr	r0, [r3, #0]
 
-  80299ba:	460a      	mov	r2, r1
 
-  80299bc:	460b      	mov	r3, r1
 
-  80299be:	f000 fdd2 	bl	802a566 <xQueueGenericSend>
 
- 	return ret;
 
- }
 
-  80299c2:	4628      	mov	r0, r5
 
-  80299c4:	b005      	add	sp, #20
 
-  80299c6:	bd30      	pop	{r4, r5, pc}
 
-  80299c8:	20000bc4 	.word	0x20000bc4
 
-  80299cc:	20000b94 	.word	0x20000b94
 
-  80299d0:	20000b68 	.word	0x20000b68
 
- 080299d4 <log_fetch>:
 
- int log_fetch(log_entry_t *entry, uint32_t timeout) {
 
-  80299d4:	b570      	push	{r4, r5, r6, lr}
 
- 	int ret;
 
- 	ret = xSemaphoreTake( log_mutex, (TickType_t)timeout );
 
-  80299d6:	4e0d      	ldr	r6, [pc, #52]	; (8029a0c <log_fetch+0x38>)
 
- 		ringfs_append(&fs2, entry);
 
- 	xSemaphoreGive(log_mutex);
 
- 	return ret;
 
- }
 
- int log_fetch(log_entry_t *entry, uint32_t timeout) {
 
-  80299d8:	460a      	mov	r2, r1
 
- 	int ret;
 
- 	ret = xSemaphoreTake( log_mutex, (TickType_t)timeout );
 
-  80299da:	2100      	movs	r1, #0
 
- 		ringfs_append(&fs2, entry);
 
- 	xSemaphoreGive(log_mutex);
 
- 	return ret;
 
- }
 
- int log_fetch(log_entry_t *entry, uint32_t timeout) {
 
-  80299dc:	4605      	mov	r5, r0
 
- 	int ret;
 
- 	ret = xSemaphoreTake( log_mutex, (TickType_t)timeout );
 
-  80299de:	460b      	mov	r3, r1
 
-  80299e0:	6830      	ldr	r0, [r6, #0]
 
-  80299e2:	f000 ff00 	bl	802a7e6 <xQueueGenericReceive>
 
- 	if (ret == pdFALSE)
 
-  80299e6:	4604      	mov	r4, r0
 
-  80299e8:	b170      	cbz	r0, 8029a08 <log_fetch+0x34>
 
- 		return ret;
 
- 	if(entry->type == LOG_VALUE)
 
-  80299ea:	792b      	ldrb	r3, [r5, #4]
 
-  80299ec:	2b11      	cmp	r3, #17
 
- 		ret = ringfs_fetch(&fs, entry);
 
-  80299ee:	bf0c      	ite	eq
 
-  80299f0:	4807      	ldreq	r0, [pc, #28]	; (8029a10 <log_fetch+0x3c>)
 
- 	else
 
- 		ret = ringfs_fetch(&fs2, entry);
 
-  80299f2:	4808      	ldrne	r0, [pc, #32]	; (8029a14 <log_fetch+0x40>)
 
-  80299f4:	4629      	mov	r1, r5
 
-  80299f6:	f000 fba9 	bl	802a14c <ringfs_fetch>
 
- 	xSemaphoreGive(log_mutex);
 
-  80299fa:	2100      	movs	r1, #0
 
- 	if (ret == pdFALSE)
 
- 		return ret;
 
- 	if(entry->type == LOG_VALUE)
 
- 		ret = ringfs_fetch(&fs, entry);
 
- 	else
 
- 		ret = ringfs_fetch(&fs2, entry);
 
-  80299fc:	4604      	mov	r4, r0
 
- 	xSemaphoreGive(log_mutex);
 
-  80299fe:	460a      	mov	r2, r1
 
-  8029a00:	6830      	ldr	r0, [r6, #0]
 
-  8029a02:	460b      	mov	r3, r1
 
-  8029a04:	f000 fdaf 	bl	802a566 <xQueueGenericSend>
 
- 	return ret;
 
- }
 
-  8029a08:	4620      	mov	r0, r4
 
-  8029a0a:	bd70      	pop	{r4, r5, r6, pc}
 
-  8029a0c:	20000bc4 	.word	0x20000bc4
 
-  8029a10:	20000b94 	.word	0x20000b94
 
-  8029a14:	20000b68 	.word	0x20000b68
 
- 08029a18 <log_rewind>:
 
- int log_rewind(log_entry_t *entry, uint32_t timeout) {
 
-  8029a18:	b570      	push	{r4, r5, r6, lr}
 
- 	int ret;
 
- 	ret = xSemaphoreTake( log_mutex, (TickType_t)timeout );
 
-  8029a1a:	4d0d      	ldr	r5, [pc, #52]	; (8029a50 <log_rewind+0x38>)
 
- 		ret = ringfs_fetch(&fs2, entry);
 
- 	xSemaphoreGive(log_mutex);
 
- 	return ret;
 
- }
 
- int log_rewind(log_entry_t *entry, uint32_t timeout) {
 
-  8029a1c:	460a      	mov	r2, r1
 
- 	int ret;
 
- 	ret = xSemaphoreTake( log_mutex, (TickType_t)timeout );
 
-  8029a1e:	2100      	movs	r1, #0
 
- 		ret = ringfs_fetch(&fs2, entry);
 
- 	xSemaphoreGive(log_mutex);
 
- 	return ret;
 
- }
 
- int log_rewind(log_entry_t *entry, uint32_t timeout) {
 
-  8029a20:	4606      	mov	r6, r0
 
- 	int ret;
 
- 	ret = xSemaphoreTake( log_mutex, (TickType_t)timeout );
 
-  8029a22:	460b      	mov	r3, r1
 
-  8029a24:	6828      	ldr	r0, [r5, #0]
 
-  8029a26:	f000 fede 	bl	802a7e6 <xQueueGenericReceive>
 
- 	if (ret == pdFALSE)
 
-  8029a2a:	4604      	mov	r4, r0
 
-  8029a2c:	b168      	cbz	r0, 8029a4a <log_rewind+0x32>
 
- 		return ret;
 
- 	if(entry->type == LOG_VALUE)
 
-  8029a2e:	7933      	ldrb	r3, [r6, #4]
 
-  8029a30:	2b11      	cmp	r3, #17
 
- 		ret = ringfs_rewind(&fs);
 
-  8029a32:	bf0c      	ite	eq
 
-  8029a34:	4807      	ldreq	r0, [pc, #28]	; (8029a54 <log_rewind+0x3c>)
 
- 	else
 
- 		ret = ringfs_rewind(&fs2);
 
-  8029a36:	4808      	ldrne	r0, [pc, #32]	; (8029a58 <log_rewind+0x40>)
 
-  8029a38:	f000 fbc2 	bl	802a1c0 <ringfs_rewind>
 
- 	xSemaphoreGive(log_mutex);
 
-  8029a3c:	2100      	movs	r1, #0
 
- 	if (ret == pdFALSE)
 
- 		return ret;
 
- 	if(entry->type == LOG_VALUE)
 
- 		ret = ringfs_rewind(&fs);
 
- 	else
 
- 		ret = ringfs_rewind(&fs2);
 
-  8029a3e:	4604      	mov	r4, r0
 
- 	xSemaphoreGive(log_mutex);
 
-  8029a40:	460a      	mov	r2, r1
 
-  8029a42:	6828      	ldr	r0, [r5, #0]
 
-  8029a44:	460b      	mov	r3, r1
 
-  8029a46:	f000 fd8e 	bl	802a566 <xQueueGenericSend>
 
- 	return ret;
 
- }
 
-  8029a4a:	4620      	mov	r0, r4
 
-  8029a4c:	bd70      	pop	{r4, r5, r6, pc}
 
-  8029a4e:	bf00      	nop
 
-  8029a50:	20000bc4 	.word	0x20000bc4
 
-  8029a54:	20000b94 	.word	0x20000b94
 
-  8029a58:	20000b68 	.word	0x20000b68
 
- 08029a5c <log_event_data>:
 
- 	xSemaphoreGive(log_mutex);
 
- 	return ret;
 
- }
 
- void log_event_data(log_type_t type, char *data)
 
- {
 
-  8029a5c:	b500      	push	{lr}
 
-  8029a5e:	b08f      	sub	sp, #60	; 0x3c
 
- 	log_entry_t entry_data;
 
- 	entry_data.timestamp = 0;
 
-  8029a60:	2300      	movs	r3, #0
 
-  8029a62:	9300      	str	r3, [sp, #0]
 
- 	entry_data.type = type;
 
- 	strncpy(entry_data.data, data, 50);
 
-  8029a64:	446b      	add	r3, sp
 
- void log_event_data(log_type_t type, char *data)
 
- {
 
- 	log_entry_t entry_data;
 
- 	entry_data.timestamp = 0;
 
- 	entry_data.type = type;
 
-  8029a66:	f88d 0004 	strb.w	r0, [sp, #4]
 
- 	strncpy(entry_data.data, data, 50);
 
-  8029a6a:	2232      	movs	r2, #50	; 0x32
 
-  8029a6c:	1d58      	adds	r0, r3, #5
 
-  8029a6e:	f7f8 fad7 	bl	8022020 <strncpy>
 
- 	log_append(&entry_data);
 
-  8029a72:	4668      	mov	r0, sp
 
-  8029a74:	f7ff ff82 	bl	802997c <log_append>
 
- }
 
-  8029a78:	b00f      	add	sp, #60	; 0x3c
 
-  8029a7a:	bd00      	pop	{pc}
 
- 08029a7c <log_add>:
 
- void log_add(char *log_data)
 
- {
 
-  8029a7c:	b530      	push	{r4, r5, lr}
 
-  8029a7e:	b08f      	sub	sp, #60	; 0x3c
 
-  8029a80:	4605      	mov	r5, r0
 
- 	char buf_value[50];
 
- 	uint8_t i, len;
 
- 	memset(buf_value, 0, 50);
 
-  8029a82:	2100      	movs	r1, #0
 
-  8029a84:	2232      	movs	r2, #50	; 0x32
 
-  8029a86:	a801      	add	r0, sp, #4
 
-  8029a88:	f7f8 f83a 	bl	8021b00 <memset>
 
- 	len = strlen(log_data);
 
-  8029a8c:	4628      	mov	r0, r5
 
-  8029a8e:	f7f8 fa0f 	bl	8021eb0 <strlen>
 
-  8029a92:	b2c4      	uxtb	r4, r0
 
- 	strncpy(buf_value, log_data, len);
 
-  8029a94:	4629      	mov	r1, r5
 
-  8029a96:	a801      	add	r0, sp, #4
 
-  8029a98:	4622      	mov	r2, r4
 
-  8029a9a:	f7f8 fac1 	bl	8022020 <strncpy>
 
- 	buf_value[0] = '\"';
 
-  8029a9e:	2322      	movs	r3, #34	; 0x22
 
-  8029aa0:	f88d 3004 	strb.w	r3, [sp, #4]
 
- 	for(i = 0; i < len; i++)
 
- 	{
 
- 		if(buf_value[i] == ' ')
 
- 			buf_value[i] = ';';
 
-  8029aa4:	203b      	movs	r0, #59	; 0x3b
 
- 	len = strlen(log_data);
 
- 	strncpy(buf_value, log_data, len);
 
- 	buf_value[0] = '\"';
 
- 	for(i = 0; i < len; i++)
 
-  8029aa6:	2300      	movs	r3, #0
 
-  8029aa8:	e004      	b.n	8029ab4 <log_add+0x38>
 
- 	{
 
- 		if(buf_value[i] == ' ')
 
-  8029aaa:	5cca      	ldrb	r2, [r1, r3]
 
-  8029aac:	2a20      	cmp	r2, #32
 
- 			buf_value[i] = ';';
 
-  8029aae:	bf08      	it	eq
 
-  8029ab0:	54c8      	strbeq	r0, [r1, r3]
 
-  8029ab2:	3301      	adds	r3, #1
 
- 	len = strlen(log_data);
 
- 	strncpy(buf_value, log_data, len);
 
- 	buf_value[0] = '\"';
 
- 	for(i = 0; i < len; i++)
 
-  8029ab4:	b2da      	uxtb	r2, r3
 
-  8029ab6:	42a2      	cmp	r2, r4
 
-  8029ab8:	a901      	add	r1, sp, #4
 
-  8029aba:	d3f6      	bcc.n	8029aaa <log_add+0x2e>
 
- 	{
 
- 		if(buf_value[i] == ' ')
 
- 			buf_value[i] = ';';
 
- 	}
 
- 	buf_value[len - 1] = ';';
 
-  8029abc:	ab0e      	add	r3, sp, #56	; 0x38
 
-  8029abe:	191c      	adds	r4, r3, r4
 
- 	if(fs.write.slot>67)
 
- 	{
 
- 		log_entry_t entry_data;
 
- 		entry_data.timestamp = 0;
 
- 		log_event_data(LOG_VALUE, buf_value);
 
-  8029ac0:	2011      	movs	r0, #17
 
- 	for(i = 0; i < len; i++)
 
- 	{
 
- 		if(buf_value[i] == ' ')
 
- 			buf_value[i] = ';';
 
- 	}
 
- 	buf_value[len - 1] = ';';
 
-  8029ac2:	233b      	movs	r3, #59	; 0x3b
 
-  8029ac4:	f804 3c35 	strb.w	r3, [r4, #-53]
 
- 	if(fs.write.slot>67)
 
- 	{
 
- 		log_entry_t entry_data;
 
- 		entry_data.timestamp = 0;
 
- 		log_event_data(LOG_VALUE, buf_value);
 
-  8029ac8:	f7ff ffc8 	bl	8029a5c <log_event_data>
 
- 	}
 
- 	else
 
- 	log_event_data(LOG_VALUE, buf_value);
 
- }
 
-  8029acc:	b00f      	add	sp, #60	; 0x3c
 
-  8029ace:	bd30      	pop	{r4, r5, pc}
 
- 08029ad0 <LOG_IsInit>:
 
-   * @brief  Возвращает true если журнал проинициализирован
 
-   */
 
- bool LOG_IsInit()
 
- {
 
-   return fLogInit;
 
- }
 
-  8029ad0:	4b01      	ldr	r3, [pc, #4]	; (8029ad8 <LOG_IsInit+0x8>)
 
-  8029ad2:	7818      	ldrb	r0, [r3, #0]
 
-  8029ad4:	4770      	bx	lr
 
-  8029ad6:	bf00      	nop
 
-  8029ad8:	20000bc8 	.word	0x20000bc8
 
- 08029adc <LOG_GetPageCount>:
 
- /**
 
-   * @brief  Возвращает общее количество страниц
 
-   */
 
- uint32_t LOG_GetPageCount(void)
 
- {
 
-  8029adc:	b508      	push	{r3, lr}
 
-   return (((ringfs_count_estimate(&fs)) / 10) + 1);
 
-  8029ade:	4804      	ldr	r0, [pc, #16]	; (8029af0 <LOG_GetPageCount+0x14>)
 
-  8029ae0:	f000 fab8 	bl	802a054 <ringfs_count_estimate>
 
-  8029ae4:	230a      	movs	r3, #10
 
-  8029ae6:	fb90 f0f3 	sdiv	r0, r0, r3
 
- }
 
-  8029aea:	3001      	adds	r0, #1
 
-  8029aec:	bd08      	pop	{r3, pc}
 
-  8029aee:	bf00      	nop
 
-  8029af0:	20000b94 	.word	0x20000b94
 
- 08029af4 <LOG_GetTotalSTRCount>:
 
- uint32_t LOG_GetTotalSTRCount(void)
 
- {
 
- 	return ringfs_count_estimate(&fs);
 
-  8029af4:	4801      	ldr	r0, [pc, #4]	; (8029afc <LOG_GetTotalSTRCount+0x8>)
 
-  8029af6:	f000 baad 	b.w	802a054 <ringfs_count_estimate>
 
-  8029afa:	bf00      	nop
 
-  8029afc:	20000b94 	.word	0x20000b94
 
- 08029b00 <LOG_GetPage>:
 
- }
 
- void LOG_GetPage(char *str, uint32_t page)
 
- {
 
-  8029b00:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
 
-  8029b04:	b09d      	sub	sp, #116	; 0x74
 
-  8029b06:	460d      	mov	r5, r1
 
-  8029b08:	4606      	mov	r6, r0
 
- 	TM_RTC_t rtc_data;
 
- 	log_entry_t entry;
 
- 	char buf[20];
 
- 	uint8_t i;
 
- 	int start =LOG_GetTotalSTRCount();//(fs.write.sector*fs.slots_per_sector + fs.write.slot);
 
-  8029b0a:	f7ff fff3 	bl	8029af4 <LOG_GetTotalSTRCount>
 
- 	memset(buf, 0, 20);
 
-  8029b0e:	2100      	movs	r1, #0
 
- {
 
- 	TM_RTC_t rtc_data;
 
- 	log_entry_t entry;
 
- 	char buf[20];
 
- 	uint8_t i;
 
- 	int start =LOG_GetTotalSTRCount();//(fs.write.sector*fs.slots_per_sector + fs.write.slot);
 
-  8029b10:	4604      	mov	r4, r0
 
- 	memset(buf, 0, 20);
 
-  8029b12:	2214      	movs	r2, #20
 
-  8029b14:	a809      	add	r0, sp, #36	; 0x24
 
- 	for(i=0; i < 10; i++){
 
- 		fs.cursor_position =  start - 10*(page-1) - 1 - i;
 
-  8029b16:	f06f 0809 	mvn.w	r8, #9
 
- 	log_entry_t entry;
 
- 	char buf[20];
 
- 	uint8_t i;
 
- 	int start =LOG_GetTotalSTRCount();//(fs.write.sector*fs.slots_per_sector + fs.write.slot);
 
- 	memset(buf, 0, 20);
 
-  8029b1a:	f7f7 fff1 	bl	8021b00 <memset>
 
- 	for(i=0; i < 10; i++){
 
- 		fs.cursor_position =  start - 10*(page-1) - 1 - i;
 
-  8029b1e:	fb08 4805 	mla	r8, r8, r5, r4
 
-  8029b22:	4c29      	ldr	r4, [pc, #164]	; (8029bc8 <LOG_GetPage+0xc8>)
 
-  8029b24:	f108 0809 	add.w	r8, r8, #9
 
-  8029b28:	2500      	movs	r5, #0
 
- 			fs.cursor.sector = (fs.read.sector + fs.cursor_position/fs.slots_per_sector)%fs.flash->sector_count;
 
- 			fs.cursor.slot = fs.cursor_position%fs.slots_per_sector;
 
- 		}
 
- 		entry.type = LOG_VALUE;
 
- 		log_fetch(&entry, portMAX_DELAY);
 
- 		strncat(str, entry.data, strlen(entry.data));
 
-  8029b2a:	f10d 073d 	add.w	r7, sp, #61	; 0x3d
 
- uint32_t LOG_GetTotalSTRCount(void)
 
- {
 
- 	return ringfs_count_estimate(&fs);
 
- }
 
- void LOG_GetPage(char *str, uint32_t page)
 
-  8029b2e:	ebc5 0308 	rsb	r3, r5, r8
 
- 	int start =LOG_GetTotalSTRCount();//(fs.write.sector*fs.slots_per_sector + fs.write.slot);
 
- 	memset(buf, 0, 20);
 
- 	for(i=0; i < 10; i++){
 
- 		fs.cursor_position =  start - 10*(page-1) - 1 - i;
 
- 		if(fs.cursor_position < 0)
 
-  8029b32:	2b00      	cmp	r3, #0
 
- 	uint8_t i;
 
- 	int start =LOG_GetTotalSTRCount();//(fs.write.sector*fs.slots_per_sector + fs.write.slot);
 
- 	memset(buf, 0, 20);
 
- 	for(i=0; i < 10; i++){
 
- 		fs.cursor_position =  start - 10*(page-1) - 1 - i;
 
-  8029b34:	62a3      	str	r3, [r4, #40]	; 0x28
 
- 		if(fs.cursor_position < 0)
 
-  8029b36:	db43      	blt.n	8029bc0 <LOG_GetPage+0xc0>
 
- 			break;
 
- 		else{
 
- 			fs.cursor.sector = (fs.read.sector + fs.cursor_position/fs.slots_per_sector)%fs.flash->sector_count;
 
-  8029b38:	f8d4 900c 	ldr.w	r9, [r4, #12]
 
-  8029b3c:	6920      	ldr	r0, [r4, #16]
 
-  8029b3e:	6821      	ldr	r1, [r4, #0]
 
-  8029b40:	fb93 f2f9 	sdiv	r2, r3, r9
 
-  8029b44:	eb02 0e00 	add.w	lr, r2, r0
 
-  8029b48:	6888      	ldr	r0, [r1, #8]
 
-  8029b4a:	fb9e fcf0 	sdiv	ip, lr, r0
 
-  8029b4e:	fb00 e01c 	mls	r0, r0, ip, lr
 
- 			fs.cursor.slot = fs.cursor_position%fs.slots_per_sector;
 
-  8029b52:	fb09 3312 	mls	r3, r9, r2, r3
 
- 	for(i=0; i < 10; i++){
 
- 		fs.cursor_position =  start - 10*(page-1) - 1 - i;
 
- 		if(fs.cursor_position < 0)
 
- 			break;
 
- 		else{
 
- 			fs.cursor.sector = (fs.read.sector + fs.cursor_position/fs.slots_per_sector)%fs.flash->sector_count;
 
-  8029b56:	6220      	str	r0, [r4, #32]
 
- 			fs.cursor.slot = fs.cursor_position%fs.slots_per_sector;
 
-  8029b58:	6263      	str	r3, [r4, #36]	; 0x24
 
- 		}
 
- 		entry.type = LOG_VALUE;
 
- 		log_fetch(&entry, portMAX_DELAY);
 
-  8029b5a:	f04f 31ff 	mov.w	r1, #4294967295
 
- 			break;
 
- 		else{
 
- 			fs.cursor.sector = (fs.read.sector + fs.cursor_position/fs.slots_per_sector)%fs.flash->sector_count;
 
- 			fs.cursor.slot = fs.cursor_position%fs.slots_per_sector;
 
- 		}
 
- 		entry.type = LOG_VALUE;
 
-  8029b5e:	2311      	movs	r3, #17
 
- 		log_fetch(&entry, portMAX_DELAY);
 
-  8029b60:	a80e      	add	r0, sp, #56	; 0x38
 
- 			break;
 
- 		else{
 
- 			fs.cursor.sector = (fs.read.sector + fs.cursor_position/fs.slots_per_sector)%fs.flash->sector_count;
 
- 			fs.cursor.slot = fs.cursor_position%fs.slots_per_sector;
 
- 		}
 
- 		entry.type = LOG_VALUE;
 
-  8029b62:	f88d 303c 	strb.w	r3, [sp, #60]	; 0x3c
 
- 		log_fetch(&entry, portMAX_DELAY);
 
-  8029b66:	f7ff ff35 	bl	80299d4 <log_fetch>
 
- 		strncat(str, entry.data, strlen(entry.data));
 
-  8029b6a:	4638      	mov	r0, r7
 
-  8029b6c:	f7f8 f9a0 	bl	8021eb0 <strlen>
 
-  8029b70:	4639      	mov	r1, r7
 
-  8029b72:	4602      	mov	r2, r0
 
-  8029b74:	4630      	mov	r0, r6
 
-  8029b76:	f7f8 f9cb 	bl	8021f10 <strncat>
 
- 		TM_RTC_GetDateTimeFromUnix(&rtc_data, entry.timestamp);
 
-  8029b7a:	a805      	add	r0, sp, #20
 
-  8029b7c:	990e      	ldr	r1, [sp, #56]	; 0x38
 
-  8029b7e:	f7fc fd13 	bl	80265a8 <TM_RTC_GetDateTimeFromUnix>
 
- 		sprintf(buf, "%02i.%02i.%02i %02i:%02i:%02i",  rtc_data.date, rtc_data.month,
 
-  8029b82:	f89d 101d 	ldrb.w	r1, [sp, #29]
 
-  8029b86:	f89d 201b 	ldrb.w	r2, [sp, #27]
 
-  8029b8a:	9100      	str	r1, [sp, #0]
 
-  8029b8c:	f89d 1019 	ldrb.w	r1, [sp, #25]
 
-  8029b90:	f89d 301c 	ldrb.w	r3, [sp, #28]
 
-  8029b94:	9101      	str	r1, [sp, #4]
 
-  8029b96:	f89d 1018 	ldrb.w	r1, [sp, #24]
 
-  8029b9a:	9102      	str	r1, [sp, #8]
 
-  8029b9c:	f89d 1014 	ldrb.w	r1, [sp, #20]
 
-  8029ba0:	a809      	add	r0, sp, #36	; 0x24
 
-  8029ba2:	9103      	str	r1, [sp, #12]
 
-  8029ba4:	4909      	ldr	r1, [pc, #36]	; (8029bcc <LOG_GetPage+0xcc>)
 
-  8029ba6:	f7fd fe35 	bl	8027814 <tfp_sprintf>
 
- 		rtc_data.year, rtc_data.hours, rtc_data.minutes, rtc_data.seconds);
 
- 		strcat(str, buf);
 
-  8029baa:	a909      	add	r1, sp, #36	; 0x24
 
-  8029bac:	4630      	mov	r0, r6
 
-  8029bae:	f7f8 f80d 	bl	8021bcc <strcat>
 
-  8029bb2:	3501      	adds	r5, #1
 
- 		strcat(str, "\",");
 
-  8029bb4:	4630      	mov	r0, r6
 
-  8029bb6:	4906      	ldr	r1, [pc, #24]	; (8029bd0 <LOG_GetPage+0xd0>)
 
-  8029bb8:	f7f8 f808 	bl	8021bcc <strcat>
 
- 	char buf[20];
 
- 	uint8_t i;
 
- 	int start =LOG_GetTotalSTRCount();//(fs.write.sector*fs.slots_per_sector + fs.write.slot);
 
- 	memset(buf, 0, 20);
 
- 	for(i=0; i < 10; i++){
 
-  8029bbc:	2d0a      	cmp	r5, #10
 
-  8029bbe:	d1b6      	bne.n	8029b2e <LOG_GetPage+0x2e>
 
- 		sprintf(buf, "%02i.%02i.%02i %02i:%02i:%02i",  rtc_data.date, rtc_data.month,
 
- 		rtc_data.year, rtc_data.hours, rtc_data.minutes, rtc_data.seconds);
 
- 		strcat(str, buf);
 
- 		strcat(str, "\",");
 
- 	}
 
- }
 
-  8029bc0:	b01d      	add	sp, #116	; 0x74
 
-  8029bc2:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
 
-  8029bc6:	bf00      	nop
 
-  8029bc8:	20000b94 	.word	0x20000b94
 
-  8029bcc:	08039b66 	.word	0x08039b66
 
-  8029bd0:	08039b84 	.word	0x08039b84
 
- 08029bd4 <LOG_GetData>:
 
- uint32_t LOG_GetData(int ptr, char *str, uint32_t size, bool start)
 
- {
 
-  8029bd4:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
 
-  8029bd8:	b09c      	sub	sp, #112	; 0x70
 
-  8029bda:	4690      	mov	r8, r2
 
- 	TM_RTC_t rtc_data;
 
- 	log_entry_t entry;
 
- 	char buf[20];
 
- 	uint8_t i;
 
- 	entry.type = LOG_VALUE;
 
-  8029bdc:	2211      	movs	r2, #17
 
- 		strcat(str, "\",");
 
- 	}
 
- }
 
- uint32_t LOG_GetData(int ptr, char *str, uint32_t size, bool start)
 
- {
 
-  8029bde:	4605      	mov	r5, r0
 
-  8029be0:	460c      	mov	r4, r1
 
- 	TM_RTC_t rtc_data;
 
- 	log_entry_t entry;
 
- 	char buf[20];
 
- 	uint8_t i;
 
- 	entry.type = LOG_VALUE;
 
-  8029be2:	f88d 203c 	strb.w	r2, [sp, #60]	; 0x3c
 
- 	if(start)
 
-  8029be6:	b123      	cbz	r3, 8029bf2 <LOG_GetData+0x1e>
 
- 		log_rewind(&entry, portMAX_DELAY);
 
-  8029be8:	a80e      	add	r0, sp, #56	; 0x38
 
-  8029bea:	f04f 31ff 	mov.w	r1, #4294967295
 
-  8029bee:	f7ff ff13 	bl	8029a18 <log_rewind>
 
- 	fs.cursor_position =  ptr/STRING_SIZE;
 
-  8029bf2:	4b29      	ldr	r3, [pc, #164]	; (8029c98 <LOG_GetData+0xc4>)
 
-  8029bf4:	2040      	movs	r0, #64	; 0x40
 
-  8029bf6:	fb95 f0f0 	sdiv	r0, r5, r0
 
- 	fs.cursor.sector = (fs.read.sector + fs.cursor_position/fs.slots_per_sector)%fs.flash->sector_count;
 
-  8029bfa:	681e      	ldr	r6, [r3, #0]
 
-  8029bfc:	68dd      	ldr	r5, [r3, #12]
 
-  8029bfe:	691f      	ldr	r7, [r3, #16]
 
-  8029c00:	68b6      	ldr	r6, [r6, #8]
 
- 	uint8_t i;
 
- 	entry.type = LOG_VALUE;
 
- 	if(start)
 
- 		log_rewind(&entry, portMAX_DELAY);
 
- 	fs.cursor_position =  ptr/STRING_SIZE;
 
-  8029c02:	6298      	str	r0, [r3, #40]	; 0x28
 
- 	fs.cursor.sector = (fs.read.sector + fs.cursor_position/fs.slots_per_sector)%fs.flash->sector_count;
 
-  8029c04:	fb90 f1f5 	sdiv	r1, r0, r5
 
-  8029c08:	19cf      	adds	r7, r1, r7
 
-  8029c0a:	fb97 f2f6 	sdiv	r2, r7, r6
 
-  8029c0e:	fb06 7612 	mls	r6, r6, r2, r7
 
- 	fs.cursor.slot = fs.cursor_position%fs.slots_per_sector;
 
-  8029c12:	fb05 0011 	mls	r0, r5, r1, r0
 
- 	entry.type = LOG_VALUE;
 
- 	if(start)
 
- 		log_rewind(&entry, portMAX_DELAY);
 
- 	fs.cursor_position =  ptr/STRING_SIZE;
 
- 	fs.cursor.sector = (fs.read.sector + fs.cursor_position/fs.slots_per_sector)%fs.flash->sector_count;
 
-  8029c16:	621e      	str	r6, [r3, #32]
 
- 	fs.cursor.slot = fs.cursor_position%fs.slots_per_sector;
 
-  8029c18:	6258      	str	r0, [r3, #36]	; 0x24
 
- 	for(i = 0; i < size/STRING_SIZE; i++)
 
-  8029c1a:	ea4f 1798 	mov.w	r7, r8, lsr #6
 
-  8029c1e:	2500      	movs	r5, #0
 
- 	{
 
- 		log_fetch(&entry, portMAX_DELAY);
 
- 		strncat(str, &entry.data[1], (strlen(entry.data) - 1));
 
-  8029c20:	f10d 063d 	add.w	r6, sp, #61	; 0x3d
 
- 	fs.cursor_position =  ptr/STRING_SIZE;
 
- 	fs.cursor.sector = (fs.read.sector + fs.cursor_position/fs.slots_per_sector)%fs.flash->sector_count;
 
- 	fs.cursor.slot = fs.cursor_position%fs.slots_per_sector;
 
- 	for(i = 0; i < size/STRING_SIZE; i++)
 
-  8029c24:	e02f      	b.n	8029c86 <LOG_GetData+0xb2>
 
- 	{
 
- 		log_fetch(&entry, portMAX_DELAY);
 
-  8029c26:	f04f 31ff 	mov.w	r1, #4294967295
 
-  8029c2a:	a80e      	add	r0, sp, #56	; 0x38
 
-  8029c2c:	f7ff fed2 	bl	80299d4 <log_fetch>
 
- 		strncat(str, &entry.data[1], (strlen(entry.data) - 1));
 
-  8029c30:	4630      	mov	r0, r6
 
-  8029c32:	f7f8 f93d 	bl	8021eb0 <strlen>
 
-  8029c36:	f10d 013e 	add.w	r1, sp, #62	; 0x3e
 
-  8029c3a:	1e42      	subs	r2, r0, #1
 
-  8029c3c:	4620      	mov	r0, r4
 
-  8029c3e:	f7f8 f967 	bl	8021f10 <strncat>
 
- 		TM_RTC_GetDateTimeFromUnix(&rtc_data, entry.timestamp);
 
-  8029c42:	a805      	add	r0, sp, #20
 
-  8029c44:	990e      	ldr	r1, [sp, #56]	; 0x38
 
-  8029c46:	f7fc fcaf 	bl	80265a8 <TM_RTC_GetDateTimeFromUnix>
 
- 		sprintf(buf, "%02i.%02i.%02i %02i:%02i:%02i",  rtc_data.date, rtc_data.month,
 
-  8029c4a:	f89d 101d 	ldrb.w	r1, [sp, #29]
 
-  8029c4e:	f89d 201b 	ldrb.w	r2, [sp, #27]
 
-  8029c52:	9100      	str	r1, [sp, #0]
 
-  8029c54:	f89d 1019 	ldrb.w	r1, [sp, #25]
 
-  8029c58:	f89d 301c 	ldrb.w	r3, [sp, #28]
 
-  8029c5c:	9101      	str	r1, [sp, #4]
 
-  8029c5e:	f89d 1018 	ldrb.w	r1, [sp, #24]
 
-  8029c62:	9102      	str	r1, [sp, #8]
 
-  8029c64:	f89d 1014 	ldrb.w	r1, [sp, #20]
 
-  8029c68:	a809      	add	r0, sp, #36	; 0x24
 
-  8029c6a:	9103      	str	r1, [sp, #12]
 
-  8029c6c:	490b      	ldr	r1, [pc, #44]	; (8029c9c <LOG_GetData+0xc8>)
 
-  8029c6e:	f7fd fdd1 	bl	8027814 <tfp_sprintf>
 
- 		rtc_data.year, rtc_data.hours, rtc_data.minutes, rtc_data.seconds);
 
- 		strcat(str, buf);
 
-  8029c72:	a909      	add	r1, sp, #36	; 0x24
 
-  8029c74:	4620      	mov	r0, r4
 
-  8029c76:	f7f7 ffa9 	bl	8021bcc <strcat>
 
- 		strcat(str, "\n");
 
-  8029c7a:	4620      	mov	r0, r4
 
-  8029c7c:	4908      	ldr	r1, [pc, #32]	; (8029ca0 <LOG_GetData+0xcc>)
 
-  8029c7e:	f7f7 ffa5 	bl	8021bcc <strcat>
 
- 	fs.cursor_position =  ptr/STRING_SIZE;
 
- 	fs.cursor.sector = (fs.read.sector + fs.cursor_position/fs.slots_per_sector)%fs.flash->sector_count;
 
- 	fs.cursor.slot = fs.cursor_position%fs.slots_per_sector;
 
- 	for(i = 0; i < size/STRING_SIZE; i++)
 
-  8029c82:	3501      	adds	r5, #1
 
-  8029c84:	b2ed      	uxtb	r5, r5
 
-  8029c86:	42bd      	cmp	r5, r7
 
-  8029c88:	d3cd      	bcc.n	8029c26 <LOG_GetData+0x52>
 
- 		sprintf(buf, "%02i.%02i.%02i %02i:%02i:%02i",  rtc_data.date, rtc_data.month,
 
- 		rtc_data.year, rtc_data.hours, rtc_data.minutes, rtc_data.seconds);
 
- 		strcat(str, buf);
 
- 		strcat(str, "\n");
 
- 	}
 
- 	return strlen(str);
 
-  8029c8a:	4620      	mov	r0, r4
 
-  8029c8c:	f7f8 f910 	bl	8021eb0 <strlen>
 
- }
 
-  8029c90:	b01c      	add	sp, #112	; 0x70
 
-  8029c92:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 
-  8029c96:	bf00      	nop
 
-  8029c98:	20000b94 	.word	0x20000b94
 
-  8029c9c:	08039b66 	.word	0x08039b66
 
-  8029ca0:	08041133 	.word	0x08041133
 
- 08029ca4 <History_GetPageCount>:
 
- /**
 
-   * @brief  Возвращает общее количество страниц
 
-   */
 
- uint32_t History_GetPageCount(void)
 
- {
 
-  8029ca4:	b508      	push	{r3, lr}
 
-   return (((ringfs_count_estimate(&fs2)) / 10) + 1);
 
-  8029ca6:	4804      	ldr	r0, [pc, #16]	; (8029cb8 <History_GetPageCount+0x14>)
 
-  8029ca8:	f000 f9d4 	bl	802a054 <ringfs_count_estimate>
 
-  8029cac:	230a      	movs	r3, #10
 
-  8029cae:	fb90 f0f3 	sdiv	r0, r0, r3
 
- }
 
-  8029cb2:	3001      	adds	r0, #1
 
-  8029cb4:	bd08      	pop	{r3, pc}
 
-  8029cb6:	bf00      	nop
 
-  8029cb8:	20000b68 	.word	0x20000b68
 
- 08029cbc <History_GetTotalSTRCount>:
 
- uint32_t History_GetTotalSTRCount(void)
 
- {
 
- 	return ringfs_count_estimate(&fs2);
 
-  8029cbc:	4801      	ldr	r0, [pc, #4]	; (8029cc4 <History_GetTotalSTRCount+0x8>)
 
-  8029cbe:	f000 b9c9 	b.w	802a054 <ringfs_count_estimate>
 
-  8029cc2:	bf00      	nop
 
-  8029cc4:	20000b68 	.word	0x20000b68
 
- 08029cc8 <History_GetPage>:
 
- }
 
- void History_GetPage(char *str, uint32_t page)
 
- {
 
-  8029cc8:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
 
-  8029ccc:	b09d      	sub	sp, #116	; 0x74
 
-  8029cce:	460e      	mov	r6, r1
 
-  8029cd0:	4604      	mov	r4, r0
 
- 	TM_RTC_t rtc_data;
 
- 	log_entry_t entry;
 
- 	char buf[20];
 
- 	uint8_t i;
 
- 	int start =History_GetTotalSTRCount();//(fs.write.sector*fs.slots_per_sector + fs.write.slot);
 
-  8029cd2:	f7ff fff3 	bl	8029cbc <History_GetTotalSTRCount>
 
- 	memset(buf, 0, 20);
 
-  8029cd6:	2100      	movs	r1, #0
 
- {
 
- 	TM_RTC_t rtc_data;
 
- 	log_entry_t entry;
 
- 	char buf[20];
 
- 	uint8_t i;
 
- 	int start =History_GetTotalSTRCount();//(fs.write.sector*fs.slots_per_sector + fs.write.slot);
 
-  8029cd8:	4605      	mov	r5, r0
 
- 	memset(buf, 0, 20);
 
-  8029cda:	2214      	movs	r2, #20
 
-  8029cdc:	a809      	add	r0, sp, #36	; 0x24
 
- 	for(i=0; i < 10; i++){
 
- 		fs2.cursor_position =  start - 10*(page-1) - 1 - i;
 
-  8029cde:	f06f 0909 	mvn.w	r9, #9
 
- 	log_entry_t entry;
 
- 	char buf[20];
 
- 	uint8_t i;
 
- 	int start =History_GetTotalSTRCount();//(fs.write.sector*fs.slots_per_sector + fs.write.slot);
 
- 	memset(buf, 0, 20);
 
-  8029ce2:	f7f7 ff0d 	bl	8021b00 <memset>
 
- 	for(i=0; i < 10; i++){
 
- 		fs2.cursor_position =  start - 10*(page-1) - 1 - i;
 
-  8029ce6:	fb09 5906 	mla	r9, r9, r6, r5
 
-  8029cea:	4d36      	ldr	r5, [pc, #216]	; (8029dc4 <History_GetPage+0xfc>)
 
-  8029cec:	f109 0909 	add.w	r9, r9, #9
 
-  8029cf0:	2600      	movs	r6, #0
 
- 		entry.type = LOG_LOGIN;
 
- 		log_fetch(&entry, portMAX_DELAY);
 
- 		strcat(str, "\"");
 
- 		strncat(str, logsStrShortRu[entry.type], (strlen(logsStrShortRu[entry.type]) ));
 
- 		strcat(str, ";");
 
- 		strncat(str, entry.data, (strlen(entry.data) ));
 
-  8029cf2:	f10d 073d 	add.w	r7, sp, #61	; 0x3d
 
- uint32_t History_GetTotalSTRCount(void)
 
- {
 
- 	return ringfs_count_estimate(&fs2);
 
- }
 
- void History_GetPage(char *str, uint32_t page)
 
-  8029cf6:	ebc6 0309 	rsb	r3, r6, r9
 
- 	int start =History_GetTotalSTRCount();//(fs.write.sector*fs.slots_per_sector + fs.write.slot);
 
- 	memset(buf, 0, 20);
 
- 	for(i=0; i < 10; i++){
 
- 		fs2.cursor_position =  start - 10*(page-1) - 1 - i;
 
- 		if(fs2.cursor_position < 0)
 
-  8029cfa:	2b00      	cmp	r3, #0
 
- 	uint8_t i;
 
- 	int start =History_GetTotalSTRCount();//(fs.write.sector*fs.slots_per_sector + fs.write.slot);
 
- 	memset(buf, 0, 20);
 
- 	for(i=0; i < 10; i++){
 
- 		fs2.cursor_position =  start - 10*(page-1) - 1 - i;
 
-  8029cfc:	62ab      	str	r3, [r5, #40]	; 0x28
 
- 		if(fs2.cursor_position < 0)
 
-  8029cfe:	db5e      	blt.n	8029dbe <History_GetPage+0xf6>
 
- 			break;
 
- 		else{
 
- 			fs2.cursor.sector = (fs2.read.sector + fs2.cursor_position/fs.slots_per_sector)%fs2.flash->sector_count;
 
-  8029d00:	4a31      	ldr	r2, [pc, #196]	; (8029dc8 <History_GetPage+0x100>)
 
-  8029d02:	68d1      	ldr	r1, [r2, #12]
 
-  8029d04:	692a      	ldr	r2, [r5, #16]
 
-  8029d06:	fb93 f1f1 	sdiv	r1, r3, r1
 
-  8029d0a:	1889      	adds	r1, r1, r2
 
-  8029d0c:	682a      	ldr	r2, [r5, #0]
 
-  8029d0e:	6892      	ldr	r2, [r2, #8]
 
-  8029d10:	fb91 f0f2 	sdiv	r0, r1, r2
 
-  8029d14:	fb02 1210 	mls	r2, r2, r0, r1
 
-  8029d18:	622a      	str	r2, [r5, #32]
 
- 			fs2.cursor.slot = fs2.cursor_position%fs2.slots_per_sector;
 
-  8029d1a:	68ea      	ldr	r2, [r5, #12]
 
-  8029d1c:	fb93 f1f2 	sdiv	r1, r3, r2
 
-  8029d20:	fb02 3311 	mls	r3, r2, r1, r3
 
-  8029d24:	626b      	str	r3, [r5, #36]	; 0x24
 
- 		}
 
- 		entry.type = LOG_LOGIN;
 
- 		log_fetch(&entry, portMAX_DELAY);
 
-  8029d26:	f04f 31ff 	mov.w	r1, #4294967295
 
- 			break;
 
- 		else{
 
- 			fs2.cursor.sector = (fs2.read.sector + fs2.cursor_position/fs.slots_per_sector)%fs2.flash->sector_count;
 
- 			fs2.cursor.slot = fs2.cursor_position%fs2.slots_per_sector;
 
- 		}
 
- 		entry.type = LOG_LOGIN;
 
-  8029d2a:	2305      	movs	r3, #5
 
- 		log_fetch(&entry, portMAX_DELAY);
 
-  8029d2c:	a80e      	add	r0, sp, #56	; 0x38
 
- 			break;
 
- 		else{
 
- 			fs2.cursor.sector = (fs2.read.sector + fs2.cursor_position/fs.slots_per_sector)%fs2.flash->sector_count;
 
- 			fs2.cursor.slot = fs2.cursor_position%fs2.slots_per_sector;
 
- 		}
 
- 		entry.type = LOG_LOGIN;
 
-  8029d2e:	f88d 303c 	strb.w	r3, [sp, #60]	; 0x3c
 
- 		log_fetch(&entry, portMAX_DELAY);
 
-  8029d32:	f7ff fe4f 	bl	80299d4 <log_fetch>
 
- 		strcat(str, "\"");
 
-  8029d36:	4925      	ldr	r1, [pc, #148]	; (8029dcc <History_GetPage+0x104>)
 
-  8029d38:	4620      	mov	r0, r4
 
-  8029d3a:	f7f7 ff47 	bl	8021bcc <strcat>
 
- 		strncat(str, logsStrShortRu[entry.type], (strlen(logsStrShortRu[entry.type]) ));
 
-  8029d3e:	4b24      	ldr	r3, [pc, #144]	; (8029dd0 <History_GetPage+0x108>)
 
-  8029d40:	f89d 203c 	ldrb.w	r2, [sp, #60]	; 0x3c
 
-  8029d44:	f853 8022 	ldr.w	r8, [r3, r2, lsl #2]
 
-  8029d48:	4640      	mov	r0, r8
 
-  8029d4a:	f7f8 f8b1 	bl	8021eb0 <strlen>
 
-  8029d4e:	4641      	mov	r1, r8
 
-  8029d50:	4602      	mov	r2, r0
 
-  8029d52:	4620      	mov	r0, r4
 
-  8029d54:	f7f8 f8dc 	bl	8021f10 <strncat>
 
- 		strcat(str, ";");
 
-  8029d58:	491e      	ldr	r1, [pc, #120]	; (8029dd4 <History_GetPage+0x10c>)
 
-  8029d5a:	4620      	mov	r0, r4
 
-  8029d5c:	f7f7 ff36 	bl	8021bcc <strcat>
 
- 		strncat(str, entry.data, (strlen(entry.data) ));
 
-  8029d60:	4638      	mov	r0, r7
 
-  8029d62:	f7f8 f8a5 	bl	8021eb0 <strlen>
 
-  8029d66:	4639      	mov	r1, r7
 
-  8029d68:	4602      	mov	r2, r0
 
-  8029d6a:	4620      	mov	r0, r4
 
-  8029d6c:	f7f8 f8d0 	bl	8021f10 <strncat>
 
- 		strcat(str, ";");
 
-  8029d70:	4918      	ldr	r1, [pc, #96]	; (8029dd4 <History_GetPage+0x10c>)
 
-  8029d72:	4620      	mov	r0, r4
 
-  8029d74:	f7f7 ff2a 	bl	8021bcc <strcat>
 
- 		TM_RTC_GetDateTimeFromUnix(&rtc_data, entry.timestamp);
 
-  8029d78:	a805      	add	r0, sp, #20
 
-  8029d7a:	990e      	ldr	r1, [sp, #56]	; 0x38
 
-  8029d7c:	f7fc fc14 	bl	80265a8 <TM_RTC_GetDateTimeFromUnix>
 
- 		sprintf(buf, "%02i.%02i.%02i %02i:%02i:%02i",  rtc_data.date, rtc_data.month,
 
-  8029d80:	f89d 101d 	ldrb.w	r1, [sp, #29]
 
-  8029d84:	f89d 201b 	ldrb.w	r2, [sp, #27]
 
-  8029d88:	9100      	str	r1, [sp, #0]
 
-  8029d8a:	f89d 1019 	ldrb.w	r1, [sp, #25]
 
-  8029d8e:	f89d 301c 	ldrb.w	r3, [sp, #28]
 
-  8029d92:	9101      	str	r1, [sp, #4]
 
-  8029d94:	f89d 1018 	ldrb.w	r1, [sp, #24]
 
-  8029d98:	9102      	str	r1, [sp, #8]
 
-  8029d9a:	f89d 1014 	ldrb.w	r1, [sp, #20]
 
-  8029d9e:	a809      	add	r0, sp, #36	; 0x24
 
-  8029da0:	9103      	str	r1, [sp, #12]
 
-  8029da2:	490d      	ldr	r1, [pc, #52]	; (8029dd8 <History_GetPage+0x110>)
 
-  8029da4:	f7fd fd36 	bl	8027814 <tfp_sprintf>
 
- 		rtc_data.year, rtc_data.hours, rtc_data.minutes, rtc_data.seconds);
 
- 		strcat(str, buf);
 
-  8029da8:	a909      	add	r1, sp, #36	; 0x24
 
-  8029daa:	4620      	mov	r0, r4
 
-  8029dac:	f7f7 ff0e 	bl	8021bcc <strcat>
 
-  8029db0:	3601      	adds	r6, #1
 
- 		strcat(str, "\",");
 
-  8029db2:	4620      	mov	r0, r4
 
-  8029db4:	4909      	ldr	r1, [pc, #36]	; (8029ddc <History_GetPage+0x114>)
 
-  8029db6:	f7f7 ff09 	bl	8021bcc <strcat>
 
- 	char buf[20];
 
- 	uint8_t i;
 
- 	int start =History_GetTotalSTRCount();//(fs.write.sector*fs.slots_per_sector + fs.write.slot);
 
- 	memset(buf, 0, 20);
 
- 	for(i=0; i < 10; i++){
 
-  8029dba:	2e0a      	cmp	r6, #10
 
-  8029dbc:	d19b      	bne.n	8029cf6 <History_GetPage+0x2e>
 
- 		sprintf(buf, "%02i.%02i.%02i %02i:%02i:%02i",  rtc_data.date, rtc_data.month,
 
- 		rtc_data.year, rtc_data.hours, rtc_data.minutes, rtc_data.seconds);
 
- 		strcat(str, buf);
 
- 		strcat(str, "\",");
 
- 	}
 
- }
 
-  8029dbe:	b01d      	add	sp, #116	; 0x74
 
-  8029dc0:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
 
-  8029dc4:	20000b68 	.word	0x20000b68
 
-  8029dc8:	20000b94 	.word	0x20000b94
 
-  8029dcc:	08044d03 	.word	0x08044d03
 
-  8029dd0:	200006c4 	.word	0x200006c4
 
-  8029dd4:	08045b19 	.word	0x08045b19
 
-  8029dd8:	08039b66 	.word	0x08039b66
 
-  8029ddc:	08039b84 	.word	0x08039b84
 
- 08029de0 <History_GetData>:
 
- uint32_t History_GetData(int ptr, char *str, uint32_t size, bool start)
 
- {
 
-  8029de0:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
 
-  8029de4:	f5ad 6d8b 	sub.w	sp, sp, #1112	; 0x458
 
-  8029de8:	4690      	mov	r8, r2
 
- 	log_entry_t entry;
 
- 	char buf[20];
 
- 	char temp_str[FILE_BUF_MAX_LEN];
 
- 	uint8_t i;
 
- 	uint16_t len;
 
- 	entry.type = LOG_LOGIN;
 
-  8029dea:	2205      	movs	r2, #5
 
- 		strcat(str, "\",");
 
- 	}
 
- }
 
- uint32_t History_GetData(int ptr, char *str, uint32_t size, bool start)
 
- {
 
-  8029dec:	4604      	mov	r4, r0
 
-  8029dee:	460d      	mov	r5, r1
 
- 	log_entry_t entry;
 
- 	char buf[20];
 
- 	char temp_str[FILE_BUF_MAX_LEN];
 
- 	uint8_t i;
 
- 	uint16_t len;
 
- 	entry.type = LOG_LOGIN;
 
-  8029df0:	f88d 203c 	strb.w	r2, [sp, #60]	; 0x3c
 
- 	if(start)
 
-  8029df4:	b123      	cbz	r3, 8029e00 <History_GetData+0x20>
 
- 		log_rewind(&entry, portMAX_DELAY);
 
-  8029df6:	a80e      	add	r0, sp, #56	; 0x38
 
-  8029df8:	f04f 31ff 	mov.w	r1, #4294967295
 
-  8029dfc:	f7ff fe0c 	bl	8029a18 <log_rewind>
 
- 	fs2.cursor_position =  ptr/STRING_SIZE_HISTORY;
 
-  8029e00:	4b42      	ldr	r3, [pc, #264]	; (8029f0c <History_GetData+0x12c>)
 
-  8029e02:	2164      	movs	r1, #100	; 0x64
 
- 	fs2.cursor.sector = (fs2.read.sector + fs2.cursor_position/fs2.slots_per_sector)%fs2.flash->sector_count;
 
-  8029e04:	68de      	ldr	r6, [r3, #12]
 
-  8029e06:	691f      	ldr	r7, [r3, #16]
 
- 	uint16_t len;
 
- 	entry.type = LOG_LOGIN;
 
- 	if(start)
 
- 		log_rewind(&entry, portMAX_DELAY);
 
- 	fs2.cursor_position =  ptr/STRING_SIZE_HISTORY;
 
-  8029e08:	fb94 f4f1 	sdiv	r4, r4, r1
 
- 	fs2.cursor.sector = (fs2.read.sector + fs2.cursor_position/fs2.slots_per_sector)%fs2.flash->sector_count;
 
-  8029e0c:	fb94 f0f6 	sdiv	r0, r4, r6
 
-  8029e10:	eb00 0e07 	add.w	lr, r0, r7
 
-  8029e14:	681f      	ldr	r7, [r3, #0]
 
- 	uint16_t len;
 
- 	entry.type = LOG_LOGIN;
 
- 	if(start)
 
- 		log_rewind(&entry, portMAX_DELAY);
 
- 	fs2.cursor_position =  ptr/STRING_SIZE_HISTORY;
 
-  8029e16:	629c      	str	r4, [r3, #40]	; 0x28
 
- 	fs2.cursor.sector = (fs2.read.sector + fs2.cursor_position/fs2.slots_per_sector)%fs2.flash->sector_count;
 
-  8029e18:	68bf      	ldr	r7, [r7, #8]
 
-  8029e1a:	fb9e f2f7 	sdiv	r2, lr, r7
 
- 	fs2.cursor.slot = fs2.cursor_position%fs2.slots_per_sector;
 
-  8029e1e:	fb06 4410 	mls	r4, r6, r0, r4
 
- 	entry.type = LOG_LOGIN;
 
- 	if(start)
 
- 		log_rewind(&entry, portMAX_DELAY);
 
- 	fs2.cursor_position =  ptr/STRING_SIZE_HISTORY;
 
- 	fs2.cursor.sector = (fs2.read.sector + fs2.cursor_position/fs2.slots_per_sector)%fs2.flash->sector_count;
 
-  8029e22:	fb07 e712 	mls	r7, r7, r2, lr
 
- 	fs2.cursor.slot = fs2.cursor_position%fs2.slots_per_sector;
 
-  8029e26:	625c      	str	r4, [r3, #36]	; 0x24
 
- 	entry.type = LOG_LOGIN;
 
- 	if(start)
 
- 		log_rewind(&entry, portMAX_DELAY);
 
- 	fs2.cursor_position =  ptr/STRING_SIZE_HISTORY;
 
- 	fs2.cursor.sector = (fs2.read.sector + fs2.cursor_position/fs2.slots_per_sector)%fs2.flash->sector_count;
 
-  8029e28:	621f      	str	r7, [r3, #32]
 
- 	fs2.cursor.slot = fs2.cursor_position%fs2.slots_per_sector;
 
- 	for(i = 0; i < size/STRING_SIZE_HISTORY; i++)
 
-  8029e2a:	fbb8 f8f1 	udiv	r8, r8, r1
 
-  8029e2e:	2400      	movs	r4, #0
 
- 	{
 
- 		memset(temp_str, 0, 100);
 
- 		log_fetch(&entry, portMAX_DELAY);
 
- 		strncat(temp_str, logsStrShortRu[entry.type], (strlen(logsStrShortRu[entry.type])));
 
- 		strcat(temp_str, ";");
 
- 		strncat(temp_str, entry.data, (strlen(entry.data)));
 
-  8029e30:	f10d 063d 	add.w	r6, sp, #61	; 0x3d
 
- 	fs2.cursor_position =  ptr/STRING_SIZE_HISTORY;
 
- 	fs2.cursor.sector = (fs2.read.sector + fs2.cursor_position/fs2.slots_per_sector)%fs2.flash->sector_count;
 
- 	fs2.cursor.slot = fs2.cursor_position%fs2.slots_per_sector;
 
- 	for(i = 0; i < size/STRING_SIZE_HISTORY; i++)
 
-  8029e34:	e05f      	b.n	8029ef6 <History_GetData+0x116>
 
- 	{
 
- 		memset(temp_str, 0, 100);
 
-  8029e36:	2264      	movs	r2, #100	; 0x64
 
-  8029e38:	2100      	movs	r1, #0
 
-  8029e3a:	a81c      	add	r0, sp, #112	; 0x70
 
-  8029e3c:	f7f7 fe60 	bl	8021b00 <memset>
 
- 		log_fetch(&entry, portMAX_DELAY);
 
-  8029e40:	f04f 31ff 	mov.w	r1, #4294967295
 
-  8029e44:	a80e      	add	r0, sp, #56	; 0x38
 
-  8029e46:	f7ff fdc5 	bl	80299d4 <log_fetch>
 
- 		strncat(temp_str, logsStrShortRu[entry.type], (strlen(logsStrShortRu[entry.type])));
 
-  8029e4a:	4b31      	ldr	r3, [pc, #196]	; (8029f10 <History_GetData+0x130>)
 
-  8029e4c:	f89d 203c 	ldrb.w	r2, [sp, #60]	; 0x3c
 
-  8029e50:	f853 7022 	ldr.w	r7, [r3, r2, lsl #2]
 
-  8029e54:	4638      	mov	r0, r7
 
-  8029e56:	f7f8 f82b 	bl	8021eb0 <strlen>
 
-  8029e5a:	4639      	mov	r1, r7
 
-  8029e5c:	4602      	mov	r2, r0
 
-  8029e5e:	a81c      	add	r0, sp, #112	; 0x70
 
-  8029e60:	f7f8 f856 	bl	8021f10 <strncat>
 
- 		strcat(temp_str, ";");
 
-  8029e64:	492b      	ldr	r1, [pc, #172]	; (8029f14 <History_GetData+0x134>)
 
-  8029e66:	a81c      	add	r0, sp, #112	; 0x70
 
-  8029e68:	f7f7 feb0 	bl	8021bcc <strcat>
 
- 		strncat(temp_str, entry.data, (strlen(entry.data)));
 
-  8029e6c:	4630      	mov	r0, r6
 
-  8029e6e:	f7f8 f81f 	bl	8021eb0 <strlen>
 
-  8029e72:	4631      	mov	r1, r6
 
-  8029e74:	4602      	mov	r2, r0
 
-  8029e76:	a81c      	add	r0, sp, #112	; 0x70
 
-  8029e78:	f7f8 f84a 	bl	8021f10 <strncat>
 
- 		strcat(temp_str, ";");
 
-  8029e7c:	4925      	ldr	r1, [pc, #148]	; (8029f14 <History_GetData+0x134>)
 
-  8029e7e:	a81c      	add	r0, sp, #112	; 0x70
 
-  8029e80:	f7f7 fea4 	bl	8021bcc <strcat>
 
- 		TM_RTC_GetDateTimeFromUnix(&rtc_data, entry.timestamp);
 
-  8029e84:	a805      	add	r0, sp, #20
 
-  8029e86:	990e      	ldr	r1, [sp, #56]	; 0x38
 
-  8029e88:	f7fc fb8e 	bl	80265a8 <TM_RTC_GetDateTimeFromUnix>
 
- 		sprintf(buf, "%02i.%02i.%02i %02i:%02i:%02i",  rtc_data.date, rtc_data.month,
 
-  8029e8c:	f89d 101d 	ldrb.w	r1, [sp, #29]
 
-  8029e90:	f89d 301c 	ldrb.w	r3, [sp, #28]
 
-  8029e94:	9100      	str	r1, [sp, #0]
 
-  8029e96:	f89d 1019 	ldrb.w	r1, [sp, #25]
 
-  8029e9a:	f89d 201b 	ldrb.w	r2, [sp, #27]
 
-  8029e9e:	9101      	str	r1, [sp, #4]
 
-  8029ea0:	f89d 1018 	ldrb.w	r1, [sp, #24]
 
-  8029ea4:	9102      	str	r1, [sp, #8]
 
-  8029ea6:	f89d 1014 	ldrb.w	r1, [sp, #20]
 
-  8029eaa:	a809      	add	r0, sp, #36	; 0x24
 
-  8029eac:	9103      	str	r1, [sp, #12]
 
-  8029eae:	491a      	ldr	r1, [pc, #104]	; (8029f18 <History_GetData+0x138>)
 
-  8029eb0:	f7fd fcb0 	bl	8027814 <tfp_sprintf>
 
- 		rtc_data.year, rtc_data.hours, rtc_data.minutes, rtc_data.seconds);
 
- 		strcat(temp_str, buf);
 
-  8029eb4:	a909      	add	r1, sp, #36	; 0x24
 
-  8029eb6:	a81c      	add	r0, sp, #112	; 0x70
 
-  8029eb8:	f7f7 fe88 	bl	8021bcc <strcat>
 
- 		len = strlen(temp_str);
 
-  8029ebc:	a81c      	add	r0, sp, #112	; 0x70
 
-  8029ebe:	f7f7 fff7 	bl	8021eb0 <strlen>
 
- 		  if (len <= STRING_SIZE_HISTORY - 1)
 
-  8029ec2:	b283      	uxth	r3, r0
 
-  8029ec4:	2b63      	cmp	r3, #99	; 0x63
 
-  8029ec6:	d80c      	bhi.n	8029ee2 <History_GetData+0x102>
 
- 		  strncat(str, temp_str, STRING_SIZE_HISTORY);
 
- 	}
 
- 	return strlen(str);
 
- }
 
-  8029ec8:	461a      	mov	r2, r3
 
- 		len = strlen(temp_str);
 
- 		  if (len <= STRING_SIZE_HISTORY - 1)
 
- 		  {
 
- 		    memset(&temp_str[len], ' ', STRING_SIZE_HISTORY - len - 1);
 
-  8029eca:	ab1c      	add	r3, sp, #112	; 0x70
 
-  8029ecc:	1898      	adds	r0, r3, r2
 
-  8029ece:	2120      	movs	r1, #32
 
-  8029ed0:	f1c2 0263 	rsb	r2, r2, #99	; 0x63
 
-  8029ed4:	f7f7 fe14 	bl	8021b00 <memset>
 
- 		    strcat(temp_str, "\n");
 
-  8029ed8:	a81c      	add	r0, sp, #112	; 0x70
 
-  8029eda:	4910      	ldr	r1, [pc, #64]	; (8029f1c <History_GetData+0x13c>)
 
-  8029edc:	f7f7 fe76 	bl	8021bcc <strcat>
 
-  8029ee0:	e002      	b.n	8029ee8 <History_GetData+0x108>
 
- 		  }
 
- 		  else
 
- 		  {
 
- 		    temp_str[STRING_SIZE - 1] = 0xa;
 
-  8029ee2:	230a      	movs	r3, #10
 
-  8029ee4:	f88d 30af 	strb.w	r3, [sp, #175]	; 0xaf
 
- 		  }
 
- 		  strncat(str, temp_str, STRING_SIZE_HISTORY);
 
-  8029ee8:	4628      	mov	r0, r5
 
-  8029eea:	a91c      	add	r1, sp, #112	; 0x70
 
-  8029eec:	2264      	movs	r2, #100	; 0x64
 
-  8029eee:	f7f8 f80f 	bl	8021f10 <strncat>
 
- 	fs2.cursor_position =  ptr/STRING_SIZE_HISTORY;
 
- 	fs2.cursor.sector = (fs2.read.sector + fs2.cursor_position/fs2.slots_per_sector)%fs2.flash->sector_count;
 
- 	fs2.cursor.slot = fs2.cursor_position%fs2.slots_per_sector;
 
- 	for(i = 0; i < size/STRING_SIZE_HISTORY; i++)
 
-  8029ef2:	3401      	adds	r4, #1
 
-  8029ef4:	b2e4      	uxtb	r4, r4
 
-  8029ef6:	4544      	cmp	r4, r8
 
-  8029ef8:	d39d      	bcc.n	8029e36 <History_GetData+0x56>
 
- 		    temp_str[STRING_SIZE - 1] = 0xa;
 
- 		  }
 
- 		  strncat(str, temp_str, STRING_SIZE_HISTORY);
 
- 	}
 
- 	return strlen(str);
 
-  8029efa:	4628      	mov	r0, r5
 
-  8029efc:	f7f7 ffd8 	bl	8021eb0 <strlen>
 
- }
 
-  8029f00:	b016      	add	sp, #88	; 0x58
 
-  8029f02:	f50d 6d80 	add.w	sp, sp, #1024	; 0x400
 
-  8029f06:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 
-  8029f0a:	bf00      	nop
 
-  8029f0c:	20000b68 	.word	0x20000b68
 
-  8029f10:	200006c4 	.word	0x200006c4
 
-  8029f14:	08045b19 	.word	0x08045b19
 
-  8029f18:	08039b66 	.word	0x08039b66
 
-  8029f1c:	08041133 	.word	0x08041133
 
- 08029f20 <_slot_address>:
 
-     uint32_t version;
 
- };
 
- static int _sector_address(struct ringfs *fs, int sector_offset)
 
- {
 
-     return (fs->flash->sector_offset + sector_offset) * fs->flash->sector_size;
 
-  8029f20:	6803      	ldr	r3, [r0, #0]
 
-  8029f22:	680a      	ldr	r2, [r1, #0]
 
- struct slot_header {
 
-     uint32_t status;
 
- };
 
- static int _slot_address(struct ringfs *fs, struct ringfs_loc *loc)
 
- {
 
-  8029f24:	b510      	push	{r4, lr}
 
-     uint32_t version;
 
- };
 
- static int _sector_address(struct ringfs *fs, int sector_offset)
 
- {
 
-     return (fs->flash->sector_offset + sector_offset) * fs->flash->sector_size;
 
-  8029f26:	685c      	ldr	r4, [r3, #4]
 
-  8029f28:	18a2      	adds	r2, r4, r2
 
-  8029f2a:	681c      	ldr	r4, [r3, #0]
 
- static int _slot_address(struct ringfs *fs, struct ringfs_loc *loc)
 
- {
 
-     return _sector_address(fs, loc->sector) +
 
-            sizeof(struct sector_header) +
 
-            (sizeof(struct slot_header) + fs->object_size) * loc->slot;
 
-  8029f2c:	6883      	ldr	r3, [r0, #8]
 
-  8029f2e:	6848      	ldr	r0, [r1, #4]
 
-  8029f30:	3304      	adds	r3, #4
 
-  8029f32:	4343      	muls	r3, r0
 
- };
 
- static int _slot_address(struct ringfs *fs, struct ringfs_loc *loc)
 
- {
 
-     return _sector_address(fs, loc->sector) +
 
-            sizeof(struct sector_header) +
 
-  8029f34:	fb04 3002 	mla	r0, r4, r2, r3
 
-            (sizeof(struct slot_header) + fs->object_size) * loc->slot;
 
- }
 
-  8029f38:	3008      	adds	r0, #8
 
-  8029f3a:	bd10      	pop	{r4, pc}
 
- 08029f3c <_slot_get_status>:
 
- static int _slot_get_status(struct ringfs *fs, struct ringfs_loc *loc, uint32_t *status)
 
- {
 
-  8029f3c:	b570      	push	{r4, r5, r6, lr}
 
-     return fs->flash->read(fs->flash,
 
-  8029f3e:	6804      	ldr	r4, [r0, #0]
 
-            sizeof(struct sector_header) +
 
-            (sizeof(struct slot_header) + fs->object_size) * loc->slot;
 
- }
 
- static int _slot_get_status(struct ringfs *fs, struct ringfs_loc *loc, uint32_t *status)
 
- {
 
-  8029f40:	4616      	mov	r6, r2
 
-     return fs->flash->read(fs->flash,
 
-  8029f42:	f7ff ffed 	bl	8029f20 <_slot_address>
 
-  8029f46:	6965      	ldr	r5, [r4, #20]
 
-  8029f48:	4601      	mov	r1, r0
 
-  8029f4a:	4632      	mov	r2, r6
 
-  8029f4c:	4620      	mov	r0, r4
 
-  8029f4e:	2304      	movs	r3, #4
 
-  8029f50:	47a8      	blx	r5
 
-             _slot_address(fs, loc) + offsetof(struct slot_header, status),
 
-             status, sizeof(*status));
 
- }
 
-  8029f52:	bd70      	pop	{r4, r5, r6, pc}
 
- 08029f54 <_slot_set_status>:
 
- static int _slot_set_status(struct ringfs *fs, struct ringfs_loc *loc, uint32_t status)
 
- {
 
-  8029f54:	b573      	push	{r0, r1, r4, r5, r6, lr}
 
-  8029f56:	ac02      	add	r4, sp, #8
 
-     return fs->flash->program(fs->flash, 
 
-  8029f58:	6805      	ldr	r5, [r0, #0]
 
-             _slot_address(fs, loc) + offsetof(struct slot_header, status),
 
-             status, sizeof(*status));
 
- }
 
- static int _slot_set_status(struct ringfs *fs, struct ringfs_loc *loc, uint32_t status)
 
- {
 
-  8029f5a:	f844 2d04 	str.w	r2, [r4, #-4]!
 
-     return fs->flash->program(fs->flash, 
 
-  8029f5e:	f7ff ffdf 	bl	8029f20 <_slot_address>
 
-  8029f62:	692e      	ldr	r6, [r5, #16]
 
-  8029f64:	4601      	mov	r1, r0
 
-  8029f66:	4622      	mov	r2, r4
 
-  8029f68:	4628      	mov	r0, r5
 
-  8029f6a:	2304      	movs	r3, #4
 
-  8029f6c:	47b0      	blx	r6
 
-             _slot_address(fs, loc) + offsetof(struct slot_header, status),
 
-             &status, sizeof(status));
 
- }
 
-  8029f6e:	bd7c      	pop	{r2, r3, r4, r5, r6, pc}
 
- 08029f70 <_sector_get_status>:
 
-     return (fs->flash->sector_offset + sector_offset) * fs->flash->sector_size;
 
- }
 
- static int _sector_get_status(struct ringfs *fs, int sector, uint32_t *status)
 
- {
 
-     return fs->flash->read(fs->flash,
 
-  8029f70:	6800      	ldr	r0, [r0, #0]
 
-     uint32_t version;
 
- };
 
- static int _sector_address(struct ringfs *fs, int sector_offset)
 
- {
 
-     return (fs->flash->sector_offset + sector_offset) * fs->flash->sector_size;
 
-  8029f72:	6843      	ldr	r3, [r0, #4]
 
-  8029f74:	18cb      	adds	r3, r1, r3
 
-  8029f76:	6801      	ldr	r1, [r0, #0]
 
- }
 
- static int _sector_get_status(struct ringfs *fs, int sector, uint32_t *status)
 
- {
 
-  8029f78:	b510      	push	{r4, lr}
 
-     return fs->flash->read(fs->flash,
 
-  8029f7a:	4359      	muls	r1, r3
 
-  8029f7c:	6944      	ldr	r4, [r0, #20]
 
-  8029f7e:	2304      	movs	r3, #4
 
-  8029f80:	47a0      	blx	r4
 
-             _sector_address(fs, sector) + offsetof(struct sector_header, status),
 
-             status, sizeof(*status));
 
- }
 
-  8029f82:	bd10      	pop	{r4, pc}
 
- 08029f84 <_sector_set_status>:
 
- static int _sector_set_status(struct ringfs *fs, int sector, uint32_t status)
 
- {
 
-  8029f84:	b513      	push	{r0, r1, r4, lr}
 
-     return fs->flash->program(fs->flash,
 
-  8029f86:	6800      	ldr	r0, [r0, #0]
 
-             _sector_address(fs, sector) + offsetof(struct sector_header, status),
 
-             status, sizeof(*status));
 
- }
 
- static int _sector_set_status(struct ringfs *fs, int sector, uint32_t status)
 
- {
 
-  8029f88:	ab02      	add	r3, sp, #8
 
-     return fs->flash->program(fs->flash,
 
-  8029f8a:	6904      	ldr	r4, [r0, #16]
 
-             _sector_address(fs, sector) + offsetof(struct sector_header, status),
 
-             status, sizeof(*status));
 
- }
 
- static int _sector_set_status(struct ringfs *fs, int sector, uint32_t status)
 
- {
 
-  8029f8c:	f843 2d04 	str.w	r2, [r3, #-4]!
 
-     uint32_t version;
 
- };
 
- static int _sector_address(struct ringfs *fs, int sector_offset)
 
- {
 
-     return (fs->flash->sector_offset + sector_offset) * fs->flash->sector_size;
 
-  8029f90:	6842      	ldr	r2, [r0, #4]
 
-  8029f92:	188a      	adds	r2, r1, r2
 
-  8029f94:	6801      	ldr	r1, [r0, #0]
 
-             status, sizeof(*status));
 
- }
 
- static int _sector_set_status(struct ringfs *fs, int sector, uint32_t status)
 
- {
 
-     return fs->flash->program(fs->flash,
 
-  8029f96:	4351      	muls	r1, r2
 
-  8029f98:	461a      	mov	r2, r3
 
-  8029f9a:	2304      	movs	r3, #4
 
-  8029f9c:	47a0      	blx	r4
 
-             _sector_address(fs, sector) + offsetof(struct sector_header, status),
 
-             &status, sizeof(status));
 
- }
 
-  8029f9e:	bd1c      	pop	{r2, r3, r4, pc}
 
- 08029fa0 <_sector_free>:
 
- static int _sector_free(struct ringfs *fs, int sector)
 
- {
 
-  8029fa0:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
-     uint32_t version;
 
- };
 
- static int _sector_address(struct ringfs *fs, int sector_offset)
 
- {
 
-     return (fs->flash->sector_offset + sector_offset) * fs->flash->sector_size;
 
-  8029fa2:	6803      	ldr	r3, [r0, #0]
 
-  8029fa4:	cb28      	ldmia	r3, {r3, r5}
 
-             _sector_address(fs, sector) + offsetof(struct sector_header, status),
 
-             &status, sizeof(status));
 
- }
 
- static int _sector_free(struct ringfs *fs, int sector)
 
- {
 
-  8029fa6:	4604      	mov	r4, r0
 
-     uint32_t version;
 
- };
 
- static int _sector_address(struct ringfs *fs, int sector_offset)
 
- {
 
-     return (fs->flash->sector_offset + sector_offset) * fs->flash->sector_size;
 
-  8029fa8:	194d      	adds	r5, r1, r5
 
- }
 
- static int _sector_free(struct ringfs *fs, int sector)
 
- {
 
-     int sector_addr = _sector_address(fs, sector);
 
-     _sector_set_status(fs, sector, SECTOR_ERASING);
 
-  8029faa:	f04f 427f 	mov.w	r2, #4278190080	; 0xff000000
 
-     uint32_t version;
 
- };
 
- static int _sector_address(struct ringfs *fs, int sector_offset)
 
- {
 
-     return (fs->flash->sector_offset + sector_offset) * fs->flash->sector_size;
 
-  8029fae:	435d      	muls	r5, r3
 
-             _sector_address(fs, sector) + offsetof(struct sector_header, status),
 
-             &status, sizeof(status));
 
- }
 
- static int _sector_free(struct ringfs *fs, int sector)
 
- {
 
-  8029fb0:	460e      	mov	r6, r1
 
-     int sector_addr = _sector_address(fs, sector);
 
-     _sector_set_status(fs, sector, SECTOR_ERASING);
 
-  8029fb2:	f7ff ffe7 	bl	8029f84 <_sector_set_status>
 
-     fs->flash->sector_erase(fs->flash, sector_addr);
 
-  8029fb6:	6820      	ldr	r0, [r4, #0]
 
-  8029fb8:	4629      	mov	r1, r5
 
-  8029fba:	68c3      	ldr	r3, [r0, #12]
 
-  8029fbc:	4798      	blx	r3
 
-     fs->flash->program(fs->flash,
 
-  8029fbe:	4622      	mov	r2, r4
 
-  8029fc0:	1d29      	adds	r1, r5, #4
 
-  8029fc2:	f852 0b04 	ldr.w	r0, [r2], #4
 
-  8029fc6:	2304      	movs	r3, #4
 
-  8029fc8:	6907      	ldr	r7, [r0, #16]
 
-  8029fca:	47b8      	blx	r7
 
-             sector_addr + offsetof(struct sector_header, version),
 
-             &fs->version, sizeof(fs->version));
 
-     _sector_set_status(fs, sector, SECTOR_FREE);
 
-  8029fcc:	4620      	mov	r0, r4
 
-  8029fce:	4631      	mov	r1, r6
 
-  8029fd0:	f06f 02ff 	mvn.w	r2, #255	; 0xff
 
-  8029fd4:	f7ff ffd6 	bl	8029f84 <_sector_set_status>
 
-     return 0;
 
- }
 
-  8029fd8:	2000      	movs	r0, #0
 
-  8029fda:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 
- 08029fdc <_loc_advance_slot>:
 
- }
 
- /** Advance a location to the next slot, advancing the sector too if needed. */
 
- static void _loc_advance_slot(struct ringfs *fs, struct ringfs_loc *loc)
 
- {
 
-     loc->slot++;
 
-  8029fdc:	684b      	ldr	r3, [r1, #4]
 
-     if (loc->slot >= fs->slots_per_sector)
 
-  8029fde:	68c2      	ldr	r2, [r0, #12]
 
- }
 
- /** Advance a location to the next slot, advancing the sector too if needed. */
 
- static void _loc_advance_slot(struct ringfs *fs, struct ringfs_loc *loc)
 
- {
 
-     loc->slot++;
 
-  8029fe0:	3301      	adds	r3, #1
 
-     if (loc->slot >= fs->slots_per_sector)
 
-  8029fe2:	4293      	cmp	r3, r2
 
- }
 
- /** Advance a location to the next slot, advancing the sector too if needed. */
 
- static void _loc_advance_slot(struct ringfs *fs, struct ringfs_loc *loc)
 
- {
 
-     loc->slot++;
 
-  8029fe4:	604b      	str	r3, [r1, #4]
 
-     if (loc->slot >= fs->slots_per_sector)
 
-  8029fe6:	db09      	blt.n	8029ffc <_loc_advance_slot+0x20>
 
- /** Advance a location to the beginning of the next sector. */
 
- static void _loc_advance_sector(struct ringfs *fs, struct ringfs_loc *loc)
 
- {
 
-     loc->slot = 0;
 
-     loc->sector++;
 
-     if (loc->sector >= fs->flash->sector_count)
 
-  8029fe8:	6800      	ldr	r0, [r0, #0]
 
- /** Advance a location to the beginning of the next sector. */
 
- static void _loc_advance_sector(struct ringfs *fs, struct ringfs_loc *loc)
 
- {
 
-     loc->slot = 0;
 
-     loc->sector++;
 
-  8029fea:	680a      	ldr	r2, [r1, #0]
 
-     if (loc->sector >= fs->flash->sector_count)
 
-  8029fec:	6880      	ldr	r0, [r0, #8]
 
- /** Advance a location to the beginning of the next sector. */
 
- static void _loc_advance_sector(struct ringfs *fs, struct ringfs_loc *loc)
 
- {
 
-     loc->slot = 0;
 
-     loc->sector++;
 
-  8029fee:	3201      	adds	r2, #1
 
- }
 
- /** Advance a location to the beginning of the next sector. */
 
- static void _loc_advance_sector(struct ringfs *fs, struct ringfs_loc *loc)
 
- {
 
-     loc->slot = 0;
 
-  8029ff0:	2300      	movs	r3, #0
 
-     loc->sector++;
 
-     if (loc->sector >= fs->flash->sector_count)
 
-  8029ff2:	4282      	cmp	r2, r0
 
- }
 
- /** Advance a location to the beginning of the next sector. */
 
- static void _loc_advance_sector(struct ringfs *fs, struct ringfs_loc *loc)
 
- {
 
-     loc->slot = 0;
 
-  8029ff4:	e881 000c 	stmia.w	r1, {r2, r3}
 
-     loc->sector++;
 
-     if (loc->sector >= fs->flash->sector_count)
 
-         loc->sector = 0;
 
-  8029ff8:	bfa8      	it	ge
 
-  8029ffa:	600b      	strge	r3, [r1, #0]
 
-  8029ffc:	4770      	bx	lr
 
- 08029ffe <ringfs_init>:
 
- int ringfs_init(struct ringfs *fs, struct ringfs_flash_partition *flash, uint32_t version, int object_size)
 
- {
 
-     /* Copy arguments to instance. */
 
-     fs->flash = flash;
 
-     fs->version = version;
 
-     fs->object_size = object_size;
 
-  8029ffe:	e880 000e 	stmia.w	r0, {r1, r2, r3}
 
-     /* Precalculate commonly used values. */
 
-     fs->slots_per_sector = (fs->flash->sector_size - sizeof(struct sector_header)) /
 
-  802a002:	680a      	ldr	r2, [r1, #0]
 
-                            (sizeof(struct slot_header) + fs->object_size);
 
-  802a004:	3304      	adds	r3, #4
 
-     fs->flash = flash;
 
-     fs->version = version;
 
-     fs->object_size = object_size;
 
-     /* Precalculate commonly used values. */
 
-     fs->slots_per_sector = (fs->flash->sector_size - sizeof(struct sector_header)) /
 
-  802a006:	3a08      	subs	r2, #8
 
-  802a008:	fbb2 f3f3 	udiv	r3, r2, r3
 
-  802a00c:	60c3      	str	r3, [r0, #12]
 
-                            (sizeof(struct slot_header) + fs->object_size);
 
-     return 0;
 
- }
 
-  802a00e:	2000      	movs	r0, #0
 
-  802a010:	4770      	bx	lr
 
- 0802a012 <ringfs_format>:
 
- int ringfs_format(struct ringfs *fs)
 
- {
 
-  802a012:	b538      	push	{r3, r4, r5, lr}
 
-  802a014:	4604      	mov	r4, r0
 
-     /* Mark all sectors to prevent half-erased filesystems. */
 
-     for (int sector=0; sector<fs->flash->sector_count; sector++)
 
-  802a016:	2500      	movs	r5, #0
 
-  802a018:	e005      	b.n	802a026 <ringfs_format+0x14>
 
-         _sector_set_status(fs, sector, SECTOR_FORMATTING);
 
-  802a01a:	4629      	mov	r1, r5
 
-  802a01c:	4620      	mov	r0, r4
 
-  802a01e:	2200      	movs	r2, #0
 
-  802a020:	f7ff ffb0 	bl	8029f84 <_sector_set_status>
 
- }
 
- int ringfs_format(struct ringfs *fs)
 
- {
 
-     /* Mark all sectors to prevent half-erased filesystems. */
 
-     for (int sector=0; sector<fs->flash->sector_count; sector++)
 
-  802a024:	3501      	adds	r5, #1
 
-  802a026:	6823      	ldr	r3, [r4, #0]
 
-  802a028:	689b      	ldr	r3, [r3, #8]
 
-  802a02a:	429d      	cmp	r5, r3
 
-  802a02c:	dbf5      	blt.n	802a01a <ringfs_format+0x8>
 
-  802a02e:	2500      	movs	r5, #0
 
-  802a030:	e004      	b.n	802a03c <ringfs_format+0x2a>
 
-         _sector_set_status(fs, sector, SECTOR_FORMATTING);
 
-     /* Erase, update version, mark as free. */
 
-     for (int sector=0; sector<fs->flash->sector_count; sector++)
 
-         _sector_free(fs, sector);
 
-  802a032:	4629      	mov	r1, r5
 
-  802a034:	4620      	mov	r0, r4
 
-  802a036:	f7ff ffb3 	bl	8029fa0 <_sector_free>
 
-     /* Mark all sectors to prevent half-erased filesystems. */
 
-     for (int sector=0; sector<fs->flash->sector_count; sector++)
 
-         _sector_set_status(fs, sector, SECTOR_FORMATTING);
 
-     /* Erase, update version, mark as free. */
 
-     for (int sector=0; sector<fs->flash->sector_count; sector++)
 
-  802a03a:	3501      	adds	r5, #1
 
-  802a03c:	6823      	ldr	r3, [r4, #0]
 
-  802a03e:	689b      	ldr	r3, [r3, #8]
 
-  802a040:	429d      	cmp	r5, r3
 
-  802a042:	dbf6      	blt.n	802a032 <ringfs_format+0x20>
 
-         _sector_free(fs, sector);
 
-     /* Start reading & writing at the first sector. */
 
-     fs->read.sector = 0;
 
-  802a044:	2000      	movs	r0, #0
 
-  802a046:	6120      	str	r0, [r4, #16]
 
-     fs->read.slot = 0;
 
-  802a048:	6160      	str	r0, [r4, #20]
 
-     fs->write.sector = 0;
 
-  802a04a:	61a0      	str	r0, [r4, #24]
 
-     fs->write.slot = 0;
 
-  802a04c:	61e0      	str	r0, [r4, #28]
 
-     fs->cursor.sector = 0;
 
-  802a04e:	6220      	str	r0, [r4, #32]
 
-     fs->cursor.slot = 0;
 
-  802a050:	6260      	str	r0, [r4, #36]	; 0x24
 
-     return 0;
 
- }
 
-  802a052:	bd38      	pop	{r3, r4, r5, pc}
 
- 0802a054 <ringfs_count_estimate>:
 
-     return fs->slots_per_sector * (fs->flash->sector_count - 1);
 
- }
 
- int ringfs_count_estimate(struct ringfs *fs)
 
- {
 
-     int sector_diff = (fs->write.sector - fs->read.sector + fs->flash->sector_count) %
 
-  802a054:	6803      	ldr	r3, [r0, #0]
 
-  802a056:	6981      	ldr	r1, [r0, #24]
 
-  802a058:	6902      	ldr	r2, [r0, #16]
 
-  802a05a:	689b      	ldr	r3, [r3, #8]
 
-  802a05c:	1a8a      	subs	r2, r1, r2
 
-  802a05e:	18d2      	adds	r2, r2, r3
 
-  802a060:	fb92 f1f3 	sdiv	r1, r2, r3
 
-  802a064:	fb03 2311 	mls	r3, r3, r1, r2
 
- {
 
-     return fs->slots_per_sector * (fs->flash->sector_count - 1);
 
- }
 
- int ringfs_count_estimate(struct ringfs *fs)
 
- {
 
-  802a068:	b510      	push	{r4, lr}
 
-     int sector_diff = (fs->write.sector - fs->read.sector + fs->flash->sector_count) %
 
-         fs->flash->sector_count;
 
-     return sector_diff * fs->slots_per_sector + fs->write.slot - fs->read.slot;
 
-  802a06a:	69c1      	ldr	r1, [r0, #28]
 
-  802a06c:	68c4      	ldr	r4, [r0, #12]
 
-  802a06e:	6940      	ldr	r0, [r0, #20]
 
-  802a070:	fb04 1103 	mla	r1, r4, r3, r1
 
- }
 
-  802a074:	1a08      	subs	r0, r1, r0
 
-  802a076:	bd10      	pop	{r4, pc}
 
- 0802a078 <ringfs_append>:
 
-      * - the next sector: it must be free (invariant)
 
-      * - the next-next sector: read & cursor heads are moved there if needed
 
-      */
 
-     /* Make sure the next sector is free. */
 
-     int next_sector = (fs->write.sector+1) % fs->flash->sector_count;
 
-  802a078:	6803      	ldr	r3, [r0, #0]
 
- int ringfs_cursor_position(struct ringfs *fs) {
 
-     return fs->cursor_position;
 
- }
 
- int ringfs_append(struct ringfs *fs, const void *object)
 
- {
 
-  802a07a:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
 
-      * - the next sector: it must be free (invariant)
 
-      * - the next-next sector: read & cursor heads are moved there if needed
 
-      */
 
-     /* Make sure the next sector is free. */
 
-     int next_sector = (fs->write.sector+1) % fs->flash->sector_count;
 
-  802a07c:	6985      	ldr	r5, [r0, #24]
 
-  802a07e:	689b      	ldr	r3, [r3, #8]
 
-  802a080:	3501      	adds	r5, #1
 
-  802a082:	fb95 f2f3 	sdiv	r2, r5, r3
 
-  802a086:	fb03 5512 	mls	r5, r3, r2, r5
 
- int ringfs_cursor_position(struct ringfs *fs) {
 
-     return fs->cursor_position;
 
- }
 
- int ringfs_append(struct ringfs *fs, const void *object)
 
- {
 
-  802a08a:	460f      	mov	r7, r1
 
-      * - the next-next sector: read & cursor heads are moved there if needed
 
-      */
 
-     /* Make sure the next sector is free. */
 
-     int next_sector = (fs->write.sector+1) % fs->flash->sector_count;
 
-     _sector_get_status(fs, next_sector, &status);
 
-  802a08c:	aa01      	add	r2, sp, #4
 
-  802a08e:	4629      	mov	r1, r5
 
- int ringfs_cursor_position(struct ringfs *fs) {
 
-     return fs->cursor_position;
 
- }
 
- int ringfs_append(struct ringfs *fs, const void *object)
 
- {
 
-  802a090:	4604      	mov	r4, r0
 
-      * - the next-next sector: read & cursor heads are moved there if needed
 
-      */
 
-     /* Make sure the next sector is free. */
 
-     int next_sector = (fs->write.sector+1) % fs->flash->sector_count;
 
-     _sector_get_status(fs, next_sector, &status);
 
-  802a092:	f7ff ff6d 	bl	8029f70 <_sector_get_status>
 
-     if (status != SECTOR_FREE) {
 
-  802a096:	9b01      	ldr	r3, [sp, #4]
 
-  802a098:	f513 7f80 	cmn.w	r3, #256	; 0x100
 
-  802a09c:	d01b      	beq.n	802a0d6 <ringfs_append+0x5e>
 
-         /* Next sector must be freed. But first... */
 
-         /* Move the read & cursor heads out of the way. */
 
-         if (fs->read.sector == next_sector)
 
-  802a09e:	6923      	ldr	r3, [r4, #16]
 
-  802a0a0:	42ab      	cmp	r3, r5
 
-  802a0a2:	d108      	bne.n	802a0b6 <ringfs_append+0x3e>
 
- /** Advance a location to the beginning of the next sector. */
 
- static void _loc_advance_sector(struct ringfs *fs, struct ringfs_loc *loc)
 
- {
 
-     loc->slot = 0;
 
-     loc->sector++;
 
-     if (loc->sector >= fs->flash->sector_count)
 
-  802a0a4:	6821      	ldr	r1, [r4, #0]
 
-  802a0a6:	6889      	ldr	r1, [r1, #8]
 
- /** Advance a location to the beginning of the next sector. */
 
- static void _loc_advance_sector(struct ringfs *fs, struct ringfs_loc *loc)
 
- {
 
-     loc->slot = 0;
 
-     loc->sector++;
 
-  802a0a8:	1c6a      	adds	r2, r5, #1
 
- }
 
- /** Advance a location to the beginning of the next sector. */
 
- static void _loc_advance_sector(struct ringfs *fs, struct ringfs_loc *loc)
 
- {
 
-     loc->slot = 0;
 
-  802a0aa:	2300      	movs	r3, #0
 
-     loc->sector++;
 
-     if (loc->sector >= fs->flash->sector_count)
 
-  802a0ac:	428a      	cmp	r2, r1
 
- /** Advance a location to the beginning of the next sector. */
 
- static void _loc_advance_sector(struct ringfs *fs, struct ringfs_loc *loc)
 
- {
 
-     loc->slot = 0;
 
-     loc->sector++;
 
-  802a0ae:	6122      	str	r2, [r4, #16]
 
- }
 
- /** Advance a location to the beginning of the next sector. */
 
- static void _loc_advance_sector(struct ringfs *fs, struct ringfs_loc *loc)
 
- {
 
-     loc->slot = 0;
 
-  802a0b0:	6163      	str	r3, [r4, #20]
 
-     loc->sector++;
 
-     if (loc->sector >= fs->flash->sector_count)
 
-         loc->sector = 0;
 
-  802a0b2:	bfa8      	it	ge
 
-  802a0b4:	6123      	strge	r3, [r4, #16]
 
-         /* Next sector must be freed. But first... */
 
-         /* Move the read & cursor heads out of the way. */
 
-         if (fs->read.sector == next_sector)
 
-             _loc_advance_sector(fs, &fs->read);
 
-         if (fs->cursor.sector == next_sector)
 
-  802a0b6:	6a23      	ldr	r3, [r4, #32]
 
-  802a0b8:	42ab      	cmp	r3, r5
 
-  802a0ba:	d108      	bne.n	802a0ce <ringfs_append+0x56>
 
- /** Advance a location to the beginning of the next sector. */
 
- static void _loc_advance_sector(struct ringfs *fs, struct ringfs_loc *loc)
 
- {
 
-     loc->slot = 0;
 
-     loc->sector++;
 
-     if (loc->sector >= fs->flash->sector_count)
 
-  802a0bc:	6821      	ldr	r1, [r4, #0]
 
-  802a0be:	6889      	ldr	r1, [r1, #8]
 
- /** Advance a location to the beginning of the next sector. */
 
- static void _loc_advance_sector(struct ringfs *fs, struct ringfs_loc *loc)
 
- {
 
-     loc->slot = 0;
 
-     loc->sector++;
 
-  802a0c0:	1c6a      	adds	r2, r5, #1
 
- }
 
- /** Advance a location to the beginning of the next sector. */
 
- static void _loc_advance_sector(struct ringfs *fs, struct ringfs_loc *loc)
 
- {
 
-     loc->slot = 0;
 
-  802a0c2:	2300      	movs	r3, #0
 
-     loc->sector++;
 
-     if (loc->sector >= fs->flash->sector_count)
 
-  802a0c4:	428a      	cmp	r2, r1
 
- /** Advance a location to the beginning of the next sector. */
 
- static void _loc_advance_sector(struct ringfs *fs, struct ringfs_loc *loc)
 
- {
 
-     loc->slot = 0;
 
-     loc->sector++;
 
-  802a0c6:	6222      	str	r2, [r4, #32]
 
- }
 
- /** Advance a location to the beginning of the next sector. */
 
- static void _loc_advance_sector(struct ringfs *fs, struct ringfs_loc *loc)
 
- {
 
-     loc->slot = 0;
 
-  802a0c8:	6263      	str	r3, [r4, #36]	; 0x24
 
-     loc->sector++;
 
-     if (loc->sector >= fs->flash->sector_count)
 
-         loc->sector = 0;
 
-  802a0ca:	bfa8      	it	ge
 
-  802a0cc:	6223      	strge	r3, [r4, #32]
 
-             _loc_advance_sector(fs, &fs->read);
 
-         if (fs->cursor.sector == next_sector)
 
-             _loc_advance_sector(fs, &fs->cursor);
 
-         /* Free the next sector. */
 
-         _sector_free(fs, next_sector);
 
-  802a0ce:	4620      	mov	r0, r4
 
-  802a0d0:	4629      	mov	r1, r5
 
-  802a0d2:	f7ff ff65 	bl	8029fa0 <_sector_free>
 
-     }
 
-     /* Now we can make sure the current write sector is writable. */
 
-     _sector_get_status(fs, fs->write.sector, &status);
 
-  802a0d6:	4620      	mov	r0, r4
 
-  802a0d8:	69a1      	ldr	r1, [r4, #24]
 
-  802a0da:	aa01      	add	r2, sp, #4
 
-  802a0dc:	f7ff ff48 	bl	8029f70 <_sector_get_status>
 
-     if (status == SECTOR_FREE) {
 
-  802a0e0:	9b01      	ldr	r3, [sp, #4]
 
-  802a0e2:	f513 7f80 	cmn.w	r3, #256	; 0x100
 
-  802a0e6:	d105      	bne.n	802a0f4 <ringfs_append+0x7c>
 
-         /* Free sector. Mark as used. */
 
-         _sector_set_status(fs, fs->write.sector, SECTOR_IN_USE);
 
-  802a0e8:	4620      	mov	r0, r4
 
-  802a0ea:	69a1      	ldr	r1, [r4, #24]
 
-  802a0ec:	4a15      	ldr	r2, [pc, #84]	; (802a144 <ringfs_append+0xcc>)
 
-  802a0ee:	f7ff ff49 	bl	8029f84 <_sector_set_status>
 
-  802a0f2:	e008      	b.n	802a106 <ringfs_append+0x8e>
 
-     } else if (status != SECTOR_IN_USE) {
 
-  802a0f4:	f513 3f80 	cmn.w	r3, #65536	; 0x10000
 
-  802a0f8:	d005      	beq.n	802a106 <ringfs_append+0x8e>
 
-         printf("ringfs_append: corrupted filesystem\r\n");
 
-  802a0fa:	4813      	ldr	r0, [pc, #76]	; (802a148 <ringfs_append+0xd0>)
 
-  802a0fc:	f7fd fb3e 	bl	802777c <tfp_printf>
 
-         return -1;
 
-  802a100:	f04f 30ff 	mov.w	r0, #4294967295
 
-  802a104:	e01d      	b.n	802a142 <ringfs_append+0xca>
 
-     }
 
-     /* Preallocate slot. */
 
-     _slot_set_status(fs, &fs->write, SLOT_RESERVED);
 
-  802a106:	f104 0518 	add.w	r5, r4, #24
 
-  802a10a:	f06f 02ff 	mvn.w	r2, #255	; 0xff
 
-  802a10e:	4629      	mov	r1, r5
 
-  802a110:	4620      	mov	r0, r4
 
-  802a112:	f7ff ff1f 	bl	8029f54 <_slot_set_status>
 
-     /* Write object. */
 
-     fs->flash->program(fs->flash,
 
-             _slot_address(fs, &fs->write) + sizeof(struct slot_header),
 
-  802a116:	4629      	mov	r1, r5
 
-  802a118:	4620      	mov	r0, r4
 
-  802a11a:	f7ff ff01 	bl	8029f20 <_slot_address>
 
-     /* Preallocate slot. */
 
-     _slot_set_status(fs, &fs->write, SLOT_RESERVED);
 
-     /* Write object. */
 
-     fs->flash->program(fs->flash,
 
-  802a11e:	6826      	ldr	r6, [r4, #0]
 
-  802a120:	68a3      	ldr	r3, [r4, #8]
 
-  802a122:	f8d6 c010 	ldr.w	ip, [r6, #16]
 
-             _slot_address(fs, &fs->write) + sizeof(struct slot_header),
 
-  802a126:	1d01      	adds	r1, r0, #4
 
-     /* Preallocate slot. */
 
-     _slot_set_status(fs, &fs->write, SLOT_RESERVED);
 
-     /* Write object. */
 
-     fs->flash->program(fs->flash,
 
-  802a128:	463a      	mov	r2, r7
 
-  802a12a:	4630      	mov	r0, r6
 
-  802a12c:	47e0      	blx	ip
 
-             _slot_address(fs, &fs->write) + sizeof(struct slot_header),
 
-             object, fs->object_size);
 
-     /* Commit write. */
 
-     _slot_set_status(fs, &fs->write, SLOT_VALID);
 
-  802a12e:	4629      	mov	r1, r5
 
-  802a130:	4a04      	ldr	r2, [pc, #16]	; (802a144 <ringfs_append+0xcc>)
 
-  802a132:	4620      	mov	r0, r4
 
-  802a134:	f7ff ff0e 	bl	8029f54 <_slot_set_status>
 
-     /* Advance the write head. */
 
-     _loc_advance_slot(fs, &fs->write);
 
-  802a138:	4620      	mov	r0, r4
 
-  802a13a:	4629      	mov	r1, r5
 
-  802a13c:	f7ff ff4e 	bl	8029fdc <_loc_advance_slot>
 
-     return 0;
 
-  802a140:	2000      	movs	r0, #0
 
- }
 
-  802a142:	bdfe      	pop	{r1, r2, r3, r4, r5, r6, r7, pc}
 
-  802a144:	ffff0000 	.word	0xffff0000
 
-  802a148:	08039dac 	.word	0x08039dac
 
- 0802a14c <ringfs_fetch>:
 
- int ringfs_fetch(struct ringfs *fs, void *object)
 
- {
 
-  802a14c:	e92d 41f3 	stmdb	sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
 
-  802a150:	4604      	mov	r4, r0
 
-  802a152:	4688      	mov	r8, r1
 
-     /* Advance forward in search of a valid slot. */
 
-     while (!_loc_equal(&fs->cursor, &fs->write)) {
 
-  802a154:	f100 0520 	add.w	r5, r0, #32
 
-  802a158:	e021      	b.n	802a19e <ringfs_fetch+0x52>
 
-         uint32_t status;
 
-         _slot_get_status(fs, &fs->cursor, &status);
 
-  802a15a:	4620      	mov	r0, r4
 
-  802a15c:	4629      	mov	r1, r5
 
-  802a15e:	aa01      	add	r2, sp, #4
 
-  802a160:	f7ff feec 	bl	8029f3c <_slot_get_status>
 
-         if (status == SLOT_VALID) {
 
-  802a164:	9b01      	ldr	r3, [sp, #4]
 
-  802a166:	f513 3f80 	cmn.w	r3, #65536	; 0x10000
 
-  802a16a:	d114      	bne.n	802a196 <ringfs_fetch+0x4a>
 
-             fs->flash->read(fs->flash,
 
-                     _slot_address(fs, &fs->cursor) + sizeof(struct slot_header),
 
-  802a16c:	4629      	mov	r1, r5
 
-  802a16e:	4620      	mov	r0, r4
 
-  802a170:	f7ff fed6 	bl	8029f20 <_slot_address>
 
-         uint32_t status;
 
-         _slot_get_status(fs, &fs->cursor, &status);
 
-         if (status == SLOT_VALID) {
 
-             fs->flash->read(fs->flash,
 
-  802a174:	6827      	ldr	r7, [r4, #0]
 
-  802a176:	68a3      	ldr	r3, [r4, #8]
 
-  802a178:	f8d7 c014 	ldr.w	ip, [r7, #20]
 
-                     _slot_address(fs, &fs->cursor) + sizeof(struct slot_header),
 
-  802a17c:	1d01      	adds	r1, r0, #4
 
-         uint32_t status;
 
-         _slot_get_status(fs, &fs->cursor, &status);
 
-         if (status == SLOT_VALID) {
 
-             fs->flash->read(fs->flash,
 
-  802a17e:	4642      	mov	r2, r8
 
-  802a180:	4638      	mov	r0, r7
 
-  802a182:	47e0      	blx	ip
 
-                     _slot_address(fs, &fs->cursor) + sizeof(struct slot_header),
 
-                     object, fs->object_size);
 
-             _loc_advance_slot(fs, &fs->cursor);
 
-  802a184:	4620      	mov	r0, r4
 
-  802a186:	4629      	mov	r1, r5
 
-  802a188:	f7ff ff28 	bl	8029fdc <_loc_advance_slot>
 
-             fs->cursor_position++;
 
-  802a18c:	6aa3      	ldr	r3, [r4, #40]	; 0x28
 
-  802a18e:	3301      	adds	r3, #1
 
-  802a190:	62a3      	str	r3, [r4, #40]	; 0x28
 
-             return 0;
 
-  802a192:	4630      	mov	r0, r6
 
-  802a194:	e012      	b.n	802a1bc <ringfs_fetch+0x70>
 
-         }
 
-         _loc_advance_slot(fs, &fs->cursor);
 
-  802a196:	4620      	mov	r0, r4
 
-  802a198:	4629      	mov	r1, r5
 
-  802a19a:	f7ff ff1f 	bl	8029fdc <_loc_advance_slot>
 
-  * @{
 
-  */
 
- static bool _loc_equal(struct ringfs_loc *a, struct ringfs_loc *b)
 
- {
 
-     return (a->sector == b->sector) && (a->slot == b->slot);
 
-  802a19e:	6a22      	ldr	r2, [r4, #32]
 
-  802a1a0:	69a3      	ldr	r3, [r4, #24]
 
-  802a1a2:	429a      	cmp	r2, r3
 
-  802a1a4:	d105      	bne.n	802a1b2 <ringfs_fetch+0x66>
 
-  802a1a6:	6a66      	ldr	r6, [r4, #36]	; 0x24
 
-  802a1a8:	69e3      	ldr	r3, [r4, #28]
 
-  802a1aa:	1af1      	subs	r1, r6, r3
 
-  802a1ac:	424e      	negs	r6, r1
 
-  802a1ae:	414e      	adcs	r6, r1
 
-  802a1b0:	e000      	b.n	802a1b4 <ringfs_fetch+0x68>
 
-  802a1b2:	2600      	movs	r6, #0
 
- }
 
- int ringfs_fetch(struct ringfs *fs, void *object)
 
- {
 
-     /* Advance forward in search of a valid slot. */
 
-     while (!_loc_equal(&fs->cursor, &fs->write)) {
 
-  802a1b4:	2e00      	cmp	r6, #0
 
-  802a1b6:	d0d0      	beq.n	802a15a <ringfs_fetch+0xe>
 
-         }
 
-         _loc_advance_slot(fs, &fs->cursor);
 
-     }
 
-     return -1;
 
-  802a1b8:	f04f 30ff 	mov.w	r0, #4294967295
 
- }
 
-  802a1bc:	e8bd 81fc 	ldmia.w	sp!, {r2, r3, r4, r5, r6, r7, r8, pc}
 
- 0802a1c0 <ringfs_rewind>:
 
-     return 0;
 
- }
 
- int ringfs_rewind(struct ringfs *fs)
 
- {
 
-     fs->cursor = fs->read;
 
-  802a1c0:	f100 0110 	add.w	r1, r0, #16
 
-     fs->cursor_position = 0;
 
-     return 0;
 
- }
 
- int ringfs_rewind(struct ringfs *fs)
 
- {
 
-  802a1c4:	4603      	mov	r3, r0
 
-     fs->cursor = fs->read;
 
-  802a1c6:	f100 0220 	add.w	r2, r0, #32
 
-  802a1ca:	c903      	ldmia	r1, {r0, r1}
 
-  802a1cc:	e882 0003 	stmia.w	r2, {r0, r1}
 
-     fs->cursor_position = 0;
 
-  802a1d0:	2000      	movs	r0, #0
 
-  802a1d2:	6298      	str	r0, [r3, #40]	; 0x28
 
-     return 0;
 
- }
 
-  802a1d4:	4770      	bx	lr
 
- 0802a1d6 <ringfs_scan>:
 
-     return 0;
 
- }
 
- int ringfs_scan(struct ringfs *fs)
 
- {
 
-  802a1d6:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-     /* The read sector is the first IN_USE sector *after* a FREE sector
 
-      * (or the first one). */
 
-     int read_sector = 0;
 
-     /* The write sector is the last IN_USE sector *before* a FREE sector
 
-      * (or the last one). */
 
-     int write_sector = fs->flash->sector_count - 1;
 
-  802a1da:	6803      	ldr	r3, [r0, #0]
 
-  802a1dc:	689e      	ldr	r6, [r3, #8]
 
-     bool free_seen = false;
 
-     /* If there's no IN_USE sector, we start at the first one. */
 
-     bool used_seen = false;
 
-     /* Iterate over sectors. */
 
-     for (int sector=0; sector<fs->flash->sector_count; sector++) {
 
-  802a1de:	2500      	movs	r5, #0
 
-     return 0;
 
- }
 
- int ringfs_scan(struct ringfs *fs)
 
- {
 
-  802a1e0:	b085      	sub	sp, #20
 
-  802a1e2:	4604      	mov	r4, r0
 
-     /* The read sector is the first IN_USE sector *after* a FREE sector
 
-      * (or the first one). */
 
-     int read_sector = 0;
 
-     /* The write sector is the last IN_USE sector *before* a FREE sector
 
-      * (or the last one). */
 
-     int write_sector = fs->flash->sector_count - 1;
 
-  802a1e4:	3e01      	subs	r6, #1
 
-     /* There must be at least one FREE sector available at all times. */
 
-     bool free_seen = false;
 
-     /* If there's no IN_USE sector, we start at the first one. */
 
-     bool used_seen = false;
 
-  802a1e6:	46aa      	mov	sl, r5
 
-     int read_sector = 0;
 
-     /* The write sector is the last IN_USE sector *before* a FREE sector
 
-      * (or the last one). */
 
-     int write_sector = fs->flash->sector_count - 1;
 
-     /* There must be at least one FREE sector available at all times. */
 
-     bool free_seen = false;
 
-  802a1e8:	46a8      	mov	r8, r5
 
- int ringfs_scan(struct ringfs *fs)
 
- {
 
-     uint32_t previous_sector_status = SECTOR_FREE;
 
-     /* The read sector is the first IN_USE sector *after* a FREE sector
 
-      * (or the first one). */
 
-     int read_sector = 0;
 
-  802a1ea:	46a9      	mov	r9, r5
 
-     return 0;
 
- }
 
- int ringfs_scan(struct ringfs *fs)
 
- {
 
-     uint32_t previous_sector_status = SECTOR_FREE;
 
-  802a1ec:	f06f 07ff 	mvn.w	r7, #255	; 0xff
 
-     bool free_seen = false;
 
-     /* If there's no IN_USE sector, we start at the first one. */
 
-     bool used_seen = false;
 
-     /* Iterate over sectors. */
 
-     for (int sector=0; sector<fs->flash->sector_count; sector++) {
 
-  802a1f0:	e031      	b.n	802a256 <ringfs_scan+0x80>
 
-     uint32_t version;
 
- };
 
- static int _sector_address(struct ringfs *fs, int sector_offset)
 
- {
 
-     return (fs->flash->sector_offset + sector_offset) * fs->flash->sector_size;
 
-  802a1f2:	6843      	ldr	r3, [r0, #4]
 
-     for (int sector=0; sector<fs->flash->sector_count; sector++) {
 
-         int addr = _sector_address(fs, sector);
 
-         /* Read sector header. */
 
-         struct sector_header header;
 
-         fs->flash->read(fs->flash, addr, &header, sizeof(header));
 
-  802a1f4:	f8d0 c014 	ldr.w	ip, [r0, #20]
 
-     uint32_t version;
 
- };
 
- static int _sector_address(struct ringfs *fs, int sector_offset)
 
- {
 
-     return (fs->flash->sector_offset + sector_offset) * fs->flash->sector_size;
 
-  802a1f8:	eb05 0b03 	add.w	fp, r5, r3
 
-  802a1fc:	6803      	ldr	r3, [r0, #0]
 
-  802a1fe:	fb03 fb0b 	mul.w	fp, r3, fp
 
-     for (int sector=0; sector<fs->flash->sector_count; sector++) {
 
-         int addr = _sector_address(fs, sector);
 
-         /* Read sector header. */
 
-         struct sector_header header;
 
-         fs->flash->read(fs->flash, addr, &header, sizeof(header));
 
-  802a202:	4659      	mov	r1, fp
 
-  802a204:	2308      	movs	r3, #8
 
-  802a206:	aa02      	add	r2, sp, #8
 
-  802a208:	47e0      	blx	ip
 
-         /* Detect partially-formatted partitions. */
 
-         if (header.status == SECTOR_FORMATTING) {
 
-  802a20a:	9b02      	ldr	r3, [sp, #8]
 
-  802a20c:	2b00      	cmp	r3, #0
 
-  802a20e:	d06b      	beq.n	802a2e8 <ringfs_scan+0x112>
 
-         	DBG printf("ringfs_scan: partially formatted partition\r\n");
 
-             return -1;
 
-         }
 
-         /* Detect and fix partially erased sectors. */
 
-         if (header.status == SECTOR_ERASING || header.status == SECTOR_ERASED) {
 
-  802a210:	f1b3 4f7f 	cmp.w	r3, #4278190080	; 0xff000000
 
-  802a214:	d001      	beq.n	802a21a <ringfs_scan+0x44>
 
-  802a216:	3301      	adds	r3, #1
 
-  802a218:	d106      	bne.n	802a228 <ringfs_scan+0x52>
 
-             _sector_free(fs, addr);
 
-  802a21a:	4620      	mov	r0, r4
 
-  802a21c:	4659      	mov	r1, fp
 
-  802a21e:	f7ff febf 	bl	8029fa0 <_sector_free>
 
-             header.status = SECTOR_FREE;
 
-  802a222:	f06f 03ff 	mvn.w	r3, #255	; 0xff
 
-  802a226:	9302      	str	r3, [sp, #8]
 
-         }
 
-         /* Detect corrupted sectors. */
 
-         if (header.status != SECTOR_FREE && header.status != SECTOR_IN_USE) {
 
-  802a228:	9b02      	ldr	r3, [sp, #8]
 
-  802a22a:	f513 7f80 	cmn.w	r3, #256	; 0x100
 
-  802a22e:	d002      	beq.n	802a236 <ringfs_scan+0x60>
 
-  802a230:	f513 3f80 	cmn.w	r3, #65536	; 0x10000
 
-  802a234:	d158      	bne.n	802a2e8 <ringfs_scan+0x112>
 
-             return -1;
 
-         }
 
-         /* Detect obsolete versions. We can't do this earlier because the version
 
-          * could have been invalid due to a partial erase. */
 
-         if (header.version != fs->version) {
 
-  802a236:	6862      	ldr	r2, [r4, #4]
 
-  802a238:	9903      	ldr	r1, [sp, #12]
 
-  802a23a:	4291      	cmp	r1, r2
 
-  802a23c:	d154      	bne.n	802a2e8 <ringfs_scan+0x112>
 
-             DBG printf("ringfs_scan: incompatible version 0x%08"PRIx32"\r\n", header.version);
 
-             return -1;
 
-         }
 
-         /* Record the presence of a FREE sector. */
 
-         if (header.status == SECTOR_FREE)
 
-  802a23e:	f513 7f80 	cmn.w	r3, #256	; 0x100
 
-  802a242:	d05b      	beq.n	802a2fc <ringfs_scan+0x126>
 
-             free_seen = true;
 
-         /* Record the presence of a IN_USE sector. */
 
-         if (header.status == SECTOR_IN_USE)
 
-  802a244:	f513 3f80 	cmn.w	r3, #65536	; 0x10000
 
-  802a248:	d103      	bne.n	802a252 <ringfs_scan+0x7c>
 
-  802a24a:	e050      	b.n	802a2ee <ringfs_scan+0x118>
 
-     fs->cursor.slot = 0;
 
-     return 0;
 
- }
 
- int ringfs_scan(struct ringfs *fs)
 
-  802a24c:	1e6e      	subs	r6, r5, #1
 
-             return -1;
 
-         }
 
-         /* Record the presence of a FREE sector. */
 
-         if (header.status == SECTOR_FREE)
 
-             free_seen = true;
 
-  802a24e:	f04f 0801 	mov.w	r8, #1
 
-     bool free_seen = false;
 
-     /* If there's no IN_USE sector, we start at the first one. */
 
-     bool used_seen = false;
 
-     /* Iterate over sectors. */
 
-     for (int sector=0; sector<fs->flash->sector_count; sector++) {
 
-  802a252:	3501      	adds	r5, #1
 
-             _sector_free(fs, addr);
 
-             header.status = SECTOR_FREE;
 
-         }
 
-         /* Detect corrupted sectors. */
 
-         if (header.status != SECTOR_FREE && header.status != SECTOR_IN_USE) {
 
-  802a254:	461f      	mov	r7, r3
 
-     bool free_seen = false;
 
-     /* If there's no IN_USE sector, we start at the first one. */
 
-     bool used_seen = false;
 
-     /* Iterate over sectors. */
 
-     for (int sector=0; sector<fs->flash->sector_count; sector++) {
 
-  802a256:	6820      	ldr	r0, [r4, #0]
 
-  802a258:	6883      	ldr	r3, [r0, #8]
 
-  802a25a:	429d      	cmp	r5, r3
 
-  802a25c:	dbc9      	blt.n	802a1f2 <ringfs_scan+0x1c>
 
-         previous_sector_status = header.status;
 
-     }
 
-     /* Detect the lack of a FREE sector. */
 
-     if (!free_seen) {
 
-  802a25e:	f1b8 0f00 	cmp.w	r8, #0
 
-  802a262:	d041      	beq.n	802a2e8 <ringfs_scan+0x112>
 
-         return -1;
 
-     }
 
-     /* Start writing at the first sector if the filesystem is empty. */
 
-     if (!used_seen) {
 
-         write_sector = 0;
 
-  802a264:	f1ba 0f00 	cmp.w	sl, #0
 
-  802a268:	bf08      	it	eq
 
-  802a26a:	2600      	moveq	r6, #0
 
-     }
 
-     /* Scan the write sector and skip all occupied slots at the beginning. */
 
-     fs->write.sector = write_sector;
 
-     fs->write.slot = 0;
 
-  802a26c:	2300      	movs	r3, #0
 
-     if (!used_seen) {
 
-         write_sector = 0;
 
-     }
 
-     /* Scan the write sector and skip all occupied slots at the beginning. */
 
-     fs->write.sector = write_sector;
 
-  802a26e:	61a6      	str	r6, [r4, #24]
 
-     fs->write.slot = 0;
 
-  802a270:	61e3      	str	r3, [r4, #28]
 
-     while (fs->write.sector == write_sector) {
 
-         uint32_t status;
 
-         _slot_get_status(fs, &fs->write, &status);
 
-  802a272:	f104 0518 	add.w	r5, r4, #24
 
-     }
 
-     /* Scan the write sector and skip all occupied slots at the beginning. */
 
-     fs->write.sector = write_sector;
 
-     fs->write.slot = 0;
 
-     while (fs->write.sector == write_sector) {
 
-  802a276:	e00b      	b.n	802a290 <ringfs_scan+0xba>
 
-         uint32_t status;
 
-         _slot_get_status(fs, &fs->write, &status);
 
-  802a278:	4620      	mov	r0, r4
 
-  802a27a:	4629      	mov	r1, r5
 
-  802a27c:	aa01      	add	r2, sp, #4
 
-  802a27e:	f7ff fe5d 	bl	8029f3c <_slot_get_status>
 
-         if (status == SLOT_ERASED)
 
-  802a282:	9b01      	ldr	r3, [sp, #4]
 
-  802a284:	3301      	adds	r3, #1
 
-  802a286:	d006      	beq.n	802a296 <ringfs_scan+0xc0>
 
-             break;
 
-         _loc_advance_slot(fs, &fs->write);
 
-  802a288:	4620      	mov	r0, r4
 
-  802a28a:	4629      	mov	r1, r5
 
-  802a28c:	f7ff fea6 	bl	8029fdc <_loc_advance_slot>
 
-     }
 
-     /* Scan the write sector and skip all occupied slots at the beginning. */
 
-     fs->write.sector = write_sector;
 
-     fs->write.slot = 0;
 
-     while (fs->write.sector == write_sector) {
 
-  802a290:	69a3      	ldr	r3, [r4, #24]
 
-  802a292:	42b3      	cmp	r3, r6
 
-  802a294:	d0f0      	beq.n	802a278 <ringfs_scan+0xa2>
 
-     /* Position the read head at the start of the first IN_USE sector, then skip
 
-      * over garbage/invalid slots until something of value is found or we reach
 
-      * the write head which means there's no data. */
 
-     fs->read.sector = read_sector;
 
-     fs->read.slot = 0;
 
-  802a296:	2300      	movs	r3, #0
 
-     /* If the sector was full, we're at the beginning of a FREE sector now. */
 
-     /* Position the read head at the start of the first IN_USE sector, then skip
 
-      * over garbage/invalid slots until something of value is found or we reach
 
-      * the write head which means there's no data. */
 
-     fs->read.sector = read_sector;
 
-  802a298:	f8c4 9010 	str.w	r9, [r4, #16]
 
-     fs->read.slot = 0;
 
-  802a29c:	6163      	str	r3, [r4, #20]
 
-     while (!_loc_equal(&fs->read, &fs->write)) {
 
-  802a29e:	f104 0510 	add.w	r5, r4, #16
 
-  802a2a2:	e00c      	b.n	802a2be <ringfs_scan+0xe8>
 
-         uint32_t status;
 
-         _slot_get_status(fs, &fs->read, &status);
 
-  802a2a4:	4620      	mov	r0, r4
 
-  802a2a6:	4629      	mov	r1, r5
 
-  802a2a8:	aa01      	add	r2, sp, #4
 
-  802a2aa:	f7ff fe47 	bl	8029f3c <_slot_get_status>
 
-         if (status == SLOT_VALID)
 
-  802a2ae:	9b01      	ldr	r3, [sp, #4]
 
-  802a2b0:	f513 3f80 	cmn.w	r3, #65536	; 0x10000
 
-  802a2b4:	d013      	beq.n	802a2de <ringfs_scan+0x108>
 
-             break;
 
-         _loc_advance_slot(fs, &fs->read);
 
-  802a2b6:	4620      	mov	r0, r4
 
-  802a2b8:	4629      	mov	r1, r5
 
-  802a2ba:	f7ff fe8f 	bl	8029fdc <_loc_advance_slot>
 
-  * @{
 
-  */
 
- static bool _loc_equal(struct ringfs_loc *a, struct ringfs_loc *b)
 
- {
 
-     return (a->sector == b->sector) && (a->slot == b->slot);
 
-  802a2be:	6922      	ldr	r2, [r4, #16]
 
-  802a2c0:	69a3      	ldr	r3, [r4, #24]
 
-  802a2c2:	429a      	cmp	r2, r3
 
-  802a2c4:	d108      	bne.n	802a2d8 <ringfs_scan+0x102>
 
-  802a2c6:	69e3      	ldr	r3, [r4, #28]
 
-  802a2c8:	6962      	ldr	r2, [r4, #20]
 
-  802a2ca:	ebb2 0e03 	subs.w	lr, r2, r3
 
-  802a2ce:	f1de 0300 	rsbs	r3, lr, #0
 
-  802a2d2:	eb53 030e 	adcs.w	r3, r3, lr
 
-  802a2d6:	e000      	b.n	802a2da <ringfs_scan+0x104>
 
-  802a2d8:	2300      	movs	r3, #0
 
-     /* Position the read head at the start of the first IN_USE sector, then skip
 
-      * over garbage/invalid slots until something of value is found or we reach
 
-      * the write head which means there's no data. */
 
-     fs->read.sector = read_sector;
 
-     fs->read.slot = 0;
 
-     while (!_loc_equal(&fs->read, &fs->write)) {
 
-  802a2da:	2b00      	cmp	r3, #0
 
-  802a2dc:	d0e2      	beq.n	802a2a4 <ringfs_scan+0xce>
 
-         _loc_advance_slot(fs, &fs->read);
 
-     }
 
-     /* Move the read cursor to the read head position. */
 
-     ringfs_rewind(fs);
 
-  802a2de:	4620      	mov	r0, r4
 
-  802a2e0:	f7ff ff6e 	bl	802a1c0 <ringfs_rewind>
 
-     return 0;
 
-  802a2e4:	2000      	movs	r0, #0
 
-  802a2e6:	e00d      	b.n	802a304 <ringfs_scan+0x12e>
 
-     }
 
-     /* Detect the lack of a FREE sector. */
 
-     if (!free_seen) {
 
-     	DBG printf("ringfs_scan: invariant violated: no FREE sector found\r\n");
 
-         return -1;
 
-  802a2e8:	f04f 30ff 	mov.w	r0, #4294967295
 
-  802a2ec:	e00a      	b.n	802a304 <ringfs_scan+0x12e>
 
-         /* Record the presence of a IN_USE sector. */
 
-         if (header.status == SECTOR_IN_USE)
 
-             used_seen = true;
 
-         /* Update read & write sectors according to the above rules. */
 
-         if (header.status == SECTOR_IN_USE && previous_sector_status == SECTOR_FREE)
 
-  802a2ee:	f517 7f80 	cmn.w	r7, #256	; 0x100
 
-  802a2f2:	bf08      	it	eq
 
-  802a2f4:	46a9      	moveq	r9, r5
 
-         if (header.status == SECTOR_FREE)
 
-             free_seen = true;
 
-         /* Record the presence of a IN_USE sector. */
 
-         if (header.status == SECTOR_IN_USE)
 
-             used_seen = true;
 
-  802a2f6:	f04f 0a01 	mov.w	sl, #1
 
-  802a2fa:	e7aa      	b.n	802a252 <ringfs_scan+0x7c>
 
-         /* Update read & write sectors according to the above rules. */
 
-         if (header.status == SECTOR_IN_USE && previous_sector_status == SECTOR_FREE)
 
-             read_sector = sector;
 
-         if (header.status == SECTOR_FREE && previous_sector_status == SECTOR_IN_USE)
 
-  802a2fc:	f517 3f80 	cmn.w	r7, #65536	; 0x10000
 
-  802a300:	d0a4      	beq.n	802a24c <ringfs_scan+0x76>
 
-  802a302:	e7a4      	b.n	802a24e <ringfs_scan+0x78>
 
-     /* Move the read cursor to the read head position. */
 
-     ringfs_rewind(fs);
 
-     return 0;
 
- }
 
-  802a304:	b005      	add	sp, #20
 
-  802a306:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
- 0802a30a <vListInitialise>:
 
- void vListInitialise( List_t * const pxList )
 
- {
 
- 	/* The list structure contains a list item which is used to mark the
 
- 	end of the list.  To initialise the list the list end is inserted
 
- 	as the only list entry. */
 
- 	pxList->pxIndex = ( ListItem_t * ) &( pxList->xListEnd );			/*lint !e826 !e740 The mini list structure is used as the list end to save RAM.  This is checked and valid. */
 
-  802a30a:	f100 0308 	add.w	r3, r0, #8
 
-  802a30e:	6043      	str	r3, [r0, #4]
 
- 	/* The list end value is the highest possible value in the list to
 
- 	ensure it remains at the end of the list. */
 
- 	pxList->xListEnd.xItemValue = portMAX_DELAY;
 
-  802a310:	f04f 32ff 	mov.w	r2, #4294967295
 
- 	/* The list end next and previous pointers point to itself so we know
 
- 	when the list is empty. */
 
- 	pxList->xListEnd.pxNext = ( ListItem_t * ) &( pxList->xListEnd );	/*lint !e826 !e740 The mini list structure is used as the list end to save RAM.  This is checked and valid. */
 
-  802a314:	60c3      	str	r3, [r0, #12]
 
- 	pxList->xListEnd.pxPrevious = ( ListItem_t * ) &( pxList->xListEnd );/*lint !e826 !e740 The mini list structure is used as the list end to save RAM.  This is checked and valid. */
 
-  802a316:	6103      	str	r3, [r0, #16]
 
- 	pxList->uxNumberOfItems = ( UBaseType_t ) 0U;
 
-  802a318:	2300      	movs	r3, #0
 
- 	as the only list entry. */
 
- 	pxList->pxIndex = ( ListItem_t * ) &( pxList->xListEnd );			/*lint !e826 !e740 The mini list structure is used as the list end to save RAM.  This is checked and valid. */
 
- 	/* The list end value is the highest possible value in the list to
 
- 	ensure it remains at the end of the list. */
 
- 	pxList->xListEnd.xItemValue = portMAX_DELAY;
 
-  802a31a:	6082      	str	r2, [r0, #8]
 
- 	/* The list end next and previous pointers point to itself so we know
 
- 	when the list is empty. */
 
- 	pxList->xListEnd.pxNext = ( ListItem_t * ) &( pxList->xListEnd );	/*lint !e826 !e740 The mini list structure is used as the list end to save RAM.  This is checked and valid. */
 
- 	pxList->xListEnd.pxPrevious = ( ListItem_t * ) &( pxList->xListEnd );/*lint !e826 !e740 The mini list structure is used as the list end to save RAM.  This is checked and valid. */
 
- 	pxList->uxNumberOfItems = ( UBaseType_t ) 0U;
 
-  802a31c:	6003      	str	r3, [r0, #0]
 
-  802a31e:	4770      	bx	lr
 
- 0802a320 <vListInitialiseItem>:
 
- /*-----------------------------------------------------------*/
 
- void vListInitialiseItem( ListItem_t * const pxItem )
 
- {
 
- 	/* Make sure the list item is not recorded as being on a list. */
 
- 	pxItem->pvContainer = NULL;
 
-  802a320:	2300      	movs	r3, #0
 
-  802a322:	6103      	str	r3, [r0, #16]
 
-  802a324:	4770      	bx	lr
 
- 0802a326 <vListInsertEnd>:
 
- }
 
- /*-----------------------------------------------------------*/
 
- void vListInsertEnd( List_t * const pxList, ListItem_t * const pxNewListItem )
 
- {
 
- ListItem_t * const pxIndex = pxList->pxIndex;
 
-  802a326:	6843      	ldr	r3, [r0, #4]
 
- 	pxNewListItem->pxPrevious = pxIndex->pxPrevious;
 
- 	pxIndex->pxPrevious->pxNext = pxNewListItem;
 
- 	pxIndex->pxPrevious = pxNewListItem;
 
- 	/* Remember which list the item is in. */
 
- 	pxNewListItem->pvContainer = ( void * ) pxList;
 
-  802a328:	6108      	str	r0, [r1, #16]
 
- 	/* Insert a new list item into pxList, but rather than sort the list,
 
- 	makes the new list item the last item to be removed by a call to
 
- 	listGET_OWNER_OF_NEXT_ENTRY(). */
 
- 	pxNewListItem->pxNext = pxIndex;
 
- 	pxNewListItem->pxPrevious = pxIndex->pxPrevious;
 
-  802a32a:	689a      	ldr	r2, [r3, #8]
 
- 	listTEST_LIST_ITEM_INTEGRITY( pxNewListItem );
 
- 	/* Insert a new list item into pxList, but rather than sort the list,
 
- 	makes the new list item the last item to be removed by a call to
 
- 	listGET_OWNER_OF_NEXT_ENTRY(). */
 
- 	pxNewListItem->pxNext = pxIndex;
 
-  802a32c:	604b      	str	r3, [r1, #4]
 
- 	pxNewListItem->pxPrevious = pxIndex->pxPrevious;
 
-  802a32e:	608a      	str	r2, [r1, #8]
 
- 	pxIndex->pxPrevious->pxNext = pxNewListItem;
 
-  802a330:	689a      	ldr	r2, [r3, #8]
 
- 	pxIndex->pxPrevious = pxNewListItem;
 
-  802a332:	6099      	str	r1, [r3, #8]
 
- 	/* Remember which list the item is in. */
 
- 	pxNewListItem->pvContainer = ( void * ) pxList;
 
- 	( pxList->uxNumberOfItems )++;
 
-  802a334:	6803      	ldr	r3, [r0, #0]
 
- 	/* Insert a new list item into pxList, but rather than sort the list,
 
- 	makes the new list item the last item to be removed by a call to
 
- 	listGET_OWNER_OF_NEXT_ENTRY(). */
 
- 	pxNewListItem->pxNext = pxIndex;
 
- 	pxNewListItem->pxPrevious = pxIndex->pxPrevious;
 
- 	pxIndex->pxPrevious->pxNext = pxNewListItem;
 
-  802a336:	6051      	str	r1, [r2, #4]
 
- 	pxIndex->pxPrevious = pxNewListItem;
 
- 	/* Remember which list the item is in. */
 
- 	pxNewListItem->pvContainer = ( void * ) pxList;
 
- 	( pxList->uxNumberOfItems )++;
 
-  802a338:	3301      	adds	r3, #1
 
-  802a33a:	6003      	str	r3, [r0, #0]
 
-  802a33c:	4770      	bx	lr
 
- 0802a33e <vListInsert>:
 
- /*-----------------------------------------------------------*/
 
- void vListInsert( List_t * const pxList, ListItem_t * const pxNewListItem )
 
- {
 
- ListItem_t *pxIterator;
 
- const TickType_t xValueOfInsertion = pxNewListItem->xItemValue;
 
-  802a33e:	680a      	ldr	r2, [r1, #0]
 
- 	new list item should be placed after it.  This ensures that TCB's which are
 
- 	stored in ready lists (all of which have the same xItemValue value) get a
 
- 	share of the CPU.  However, if the xItemValue is the same as the back marker
 
- 	the iteration loop below will not end.  Therefore the value is checked
 
- 	first, and the algorithm slightly modified if necessary. */
 
- 	if( xValueOfInsertion == portMAX_DELAY )
 
-  802a340:	1c53      	adds	r3, r2, #1
 
- 	( pxList->uxNumberOfItems )++;
 
- }
 
- /*-----------------------------------------------------------*/
 
- void vListInsert( List_t * const pxList, ListItem_t * const pxNewListItem )
 
- {
 
-  802a342:	b530      	push	{r4, r5, lr}
 
- 	new list item should be placed after it.  This ensures that TCB's which are
 
- 	stored in ready lists (all of which have the same xItemValue value) get a
 
- 	share of the CPU.  However, if the xItemValue is the same as the back marker
 
- 	the iteration loop below will not end.  Therefore the value is checked
 
- 	first, and the algorithm slightly modified if necessary. */
 
- 	if( xValueOfInsertion == portMAX_DELAY )
 
-  802a344:	d101      	bne.n	802a34a <vListInsert+0xc>
 
- 	{
 
- 		pxIterator = pxList->xListEnd.pxPrevious;
 
-  802a346:	6903      	ldr	r3, [r0, #16]
 
-  802a348:	e007      	b.n	802a35a <vListInsert+0x1c>
 
- 			4) Using a queue or semaphore before it has been initialised or
 
- 			   before the scheduler has been started (are interrupts firing
 
- 			   before vTaskStartScheduler() has been called?).
 
- 		**********************************************************************/
 
- 		for( pxIterator = ( ListItem_t * ) &( pxList->xListEnd ); pxIterator->pxNext->xItemValue <= xValueOfInsertion; pxIterator = pxIterator->pxNext ) /*lint !e826 !e740 The mini list structure is used as the list end to save RAM.  This is checked and valid. */
 
-  802a34a:	f100 0308 	add.w	r3, r0, #8
 
-  802a34e:	e000      	b.n	802a352 <vListInsert+0x14>
 
-  802a350:	4623      	mov	r3, r4
 
-  802a352:	685c      	ldr	r4, [r3, #4]
 
-  802a354:	6825      	ldr	r5, [r4, #0]
 
-  802a356:	4295      	cmp	r5, r2
 
-  802a358:	d9fa      	bls.n	802a350 <vListInsert+0x12>
 
- 			/* There is nothing to do here, just iterating to the wanted
 
- 			insertion position. */
 
- 		}
 
- 	}
 
- 	pxNewListItem->pxNext = pxIterator->pxNext;
 
-  802a35a:	685a      	ldr	r2, [r3, #4]
 
- 	pxNewListItem->pxPrevious = pxIterator;
 
- 	pxIterator->pxNext = pxNewListItem;
 
- 	/* Remember which list the item is in.  This allows fast removal of the
 
- 	item later. */
 
- 	pxNewListItem->pvContainer = ( void * ) pxList;
 
-  802a35c:	6108      	str	r0, [r1, #16]
 
- 			/* There is nothing to do here, just iterating to the wanted
 
- 			insertion position. */
 
- 		}
 
- 	}
 
- 	pxNewListItem->pxNext = pxIterator->pxNext;
 
-  802a35e:	604a      	str	r2, [r1, #4]
 
- 	pxNewListItem->pxNext->pxPrevious = pxNewListItem;
 
-  802a360:	6091      	str	r1, [r2, #8]
 
- 	pxNewListItem->pxPrevious = pxIterator;
 
- 	pxIterator->pxNext = pxNewListItem;
 
-  802a362:	6059      	str	r1, [r3, #4]
 
- 		}
 
- 	}
 
- 	pxNewListItem->pxNext = pxIterator->pxNext;
 
- 	pxNewListItem->pxNext->pxPrevious = pxNewListItem;
 
- 	pxNewListItem->pxPrevious = pxIterator;
 
-  802a364:	608b      	str	r3, [r1, #8]
 
- 	/* Remember which list the item is in.  This allows fast removal of the
 
- 	item later. */
 
- 	pxNewListItem->pvContainer = ( void * ) pxList;
 
- 	( pxList->uxNumberOfItems )++;
 
-  802a366:	6803      	ldr	r3, [r0, #0]
 
-  802a368:	3301      	adds	r3, #1
 
-  802a36a:	6003      	str	r3, [r0, #0]
 
-  802a36c:	bd30      	pop	{r4, r5, pc}
 
- 0802a36e <uxListRemove>:
 
- {
 
- /* The list item knows which list it is in.  Obtain the list from the list
 
- item. */
 
- List_t * const pxList = ( List_t * ) pxItemToRemove->pvContainer;
 
- 	pxItemToRemove->pxNext->pxPrevious = pxItemToRemove->pxPrevious;
 
-  802a36e:	6841      	ldr	r1, [r0, #4]
 
-  802a370:	6882      	ldr	r2, [r0, #8]
 
- UBaseType_t uxListRemove( ListItem_t * const pxItemToRemove )
 
- {
 
- /* The list item knows which list it is in.  Obtain the list from the list
 
- item. */
 
- List_t * const pxList = ( List_t * ) pxItemToRemove->pvContainer;
 
-  802a372:	6903      	ldr	r3, [r0, #16]
 
- 	pxItemToRemove->pxNext->pxPrevious = pxItemToRemove->pxPrevious;
 
-  802a374:	608a      	str	r2, [r1, #8]
 
- 	pxItemToRemove->pxPrevious->pxNext = pxItemToRemove->pxNext;
 
-  802a376:	6882      	ldr	r2, [r0, #8]
 
-  802a378:	6051      	str	r1, [r2, #4]
 
- 	/* Make sure the index is left pointing to a valid item. */
 
- 	if( pxList->pxIndex == pxItemToRemove )
 
-  802a37a:	6859      	ldr	r1, [r3, #4]
 
-  802a37c:	4281      	cmp	r1, r0
 
- 	{
 
- 		pxList->pxIndex = pxItemToRemove->pxPrevious;
 
-  802a37e:	bf08      	it	eq
 
-  802a380:	605a      	streq	r2, [r3, #4]
 
- 	else
 
- 	{
 
- 		mtCOVERAGE_TEST_MARKER();
 
- 	}
 
- 	pxItemToRemove->pvContainer = NULL;
 
-  802a382:	2200      	movs	r2, #0
 
-  802a384:	6102      	str	r2, [r0, #16]
 
- 	( pxList->uxNumberOfItems )--;
 
-  802a386:	6818      	ldr	r0, [r3, #0]
 
-  802a388:	3801      	subs	r0, #1
 
-  802a38a:	6018      	str	r0, [r3, #0]
 
- 	return pxList->uxNumberOfItems;
 
- }
 
-  802a38c:	4770      	bx	lr
 
- 0802a38e <prvUnlockQueue>:
 
- 	}
 
- }
 
- /*-----------------------------------------------------------*/
 
- static void prvUnlockQueue( Queue_t * const pxQueue )
 
- {
 
-  802a38e:	b538      	push	{r3, r4, r5, lr}
 
-  802a390:	4604      	mov	r4, r0
 
- 			{
 
- 				/* Tasks that are removed from the event list will get added to
 
- 				the pending ready list as the scheduler is still suspended. */
 
- 				if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE )
 
- 				{
 
- 					if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE )
 
-  802a392:	f104 0524 	add.w	r5, r4, #36	; 0x24
 
- 	/* The lock counts contains the number of extra data items placed or
 
- 	removed from the queue while the queue was locked.  When a queue is
 
- 	locked items can be added or removed, but the event lists cannot be
 
- 	updated. */
 
- 	taskENTER_CRITICAL();
 
-  802a396:	f001 fa2f 	bl	802b7f8 <vPortEnterCritical>
 
- 	{
 
- 		/* See if data was added to the queue while it was locked. */
 
- 		while( pxQueue->xTxLock > queueLOCKED_UNMODIFIED )
 
-  802a39a:	e00a      	b.n	802a3b2 <prvUnlockQueue+0x24>
 
- 			}
 
- 			#else /* configUSE_QUEUE_SETS */
 
- 			{
 
- 				/* Tasks that are removed from the event list will get added to
 
- 				the pending ready list as the scheduler is still suspended. */
 
- 				if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE )
 
-  802a39c:	6a63      	ldr	r3, [r4, #36]	; 0x24
 
-  802a39e:	b15b      	cbz	r3, 802a3b8 <prvUnlockQueue+0x2a>
 
- 				{
 
- 					if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE )
 
-  802a3a0:	4628      	mov	r0, r5
 
-  802a3a2:	f000 ff1d 	bl	802b1e0 <xTaskRemoveFromEventList>
 
-  802a3a6:	b108      	cbz	r0, 802a3ac <prvUnlockQueue+0x1e>
 
- 					{
 
- 						/* The task waiting has a higher priority so record that a
 
- 						context	switch is required. */
 
- 						vTaskMissedYield();
 
-  802a3a8:	f000 ff94 	bl	802b2d4 <vTaskMissedYield>
 
- 					break;
 
- 				}
 
- 			}
 
- 			#endif /* configUSE_QUEUE_SETS */
 
- 			--( pxQueue->xTxLock );
 
-  802a3ac:	6ca3      	ldr	r3, [r4, #72]	; 0x48
 
-  802a3ae:	3b01      	subs	r3, #1
 
-  802a3b0:	64a3      	str	r3, [r4, #72]	; 0x48
 
- 	locked items can be added or removed, but the event lists cannot be
 
- 	updated. */
 
- 	taskENTER_CRITICAL();
 
- 	{
 
- 		/* See if data was added to the queue while it was locked. */
 
- 		while( pxQueue->xTxLock > queueLOCKED_UNMODIFIED )
 
-  802a3b2:	6ca3      	ldr	r3, [r4, #72]	; 0x48
 
-  802a3b4:	2b00      	cmp	r3, #0
 
-  802a3b6:	dcf1      	bgt.n	802a39c <prvUnlockQueue+0xe>
 
- 			#endif /* configUSE_QUEUE_SETS */
 
- 			--( pxQueue->xTxLock );
 
- 		}
 
- 		pxQueue->xTxLock = queueUNLOCKED;
 
-  802a3b8:	f04f 33ff 	mov.w	r3, #4294967295
 
-  802a3bc:	64a3      	str	r3, [r4, #72]	; 0x48
 
- 	}
 
- 	taskEXIT_CRITICAL();
 
-  802a3be:	f001 fa47 	bl	802b850 <vPortExitCritical>
 
- 	{
 
- 		while( pxQueue->xRxLock > queueLOCKED_UNMODIFIED )
 
- 		{
 
- 			if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) == pdFALSE )
 
- 			{
 
- 				if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) != pdFALSE )
 
-  802a3c2:	f104 0510 	add.w	r5, r4, #16
 
- 		pxQueue->xTxLock = queueUNLOCKED;
 
- 	}
 
- 	taskEXIT_CRITICAL();
 
- 	/* Do the same for the Rx lock. */
 
- 	taskENTER_CRITICAL();
 
-  802a3c6:	f001 fa17 	bl	802b7f8 <vPortEnterCritical>
 
- 	{
 
- 		while( pxQueue->xRxLock > queueLOCKED_UNMODIFIED )
 
-  802a3ca:	e00a      	b.n	802a3e2 <prvUnlockQueue+0x54>
 
- 		{
 
- 			if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) == pdFALSE )
 
-  802a3cc:	6923      	ldr	r3, [r4, #16]
 
-  802a3ce:	b15b      	cbz	r3, 802a3e8 <prvUnlockQueue+0x5a>
 
- 			{
 
- 				if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) != pdFALSE )
 
-  802a3d0:	4628      	mov	r0, r5
 
-  802a3d2:	f000 ff05 	bl	802b1e0 <xTaskRemoveFromEventList>
 
-  802a3d6:	b108      	cbz	r0, 802a3dc <prvUnlockQueue+0x4e>
 
- 				{
 
- 					vTaskMissedYield();
 
-  802a3d8:	f000 ff7c 	bl	802b2d4 <vTaskMissedYield>
 
- 				else
 
- 				{
 
- 					mtCOVERAGE_TEST_MARKER();
 
- 				}
 
- 				--( pxQueue->xRxLock );
 
-  802a3dc:	6c63      	ldr	r3, [r4, #68]	; 0x44
 
-  802a3de:	3b01      	subs	r3, #1
 
-  802a3e0:	6463      	str	r3, [r4, #68]	; 0x44
 
- 	taskEXIT_CRITICAL();
 
- 	/* Do the same for the Rx lock. */
 
- 	taskENTER_CRITICAL();
 
- 	{
 
- 		while( pxQueue->xRxLock > queueLOCKED_UNMODIFIED )
 
-  802a3e2:	6c63      	ldr	r3, [r4, #68]	; 0x44
 
-  802a3e4:	2b00      	cmp	r3, #0
 
-  802a3e6:	dcf1      	bgt.n	802a3cc <prvUnlockQueue+0x3e>
 
- 			{
 
- 				break;
 
- 			}
 
- 		}
 
- 		pxQueue->xRxLock = queueUNLOCKED;
 
-  802a3e8:	f04f 33ff 	mov.w	r3, #4294967295
 
-  802a3ec:	6463      	str	r3, [r4, #68]	; 0x44
 
- 	}
 
- 	taskEXIT_CRITICAL();
 
- }
 
-  802a3ee:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
 
- 			}
 
- 		}
 
- 		pxQueue->xRxLock = queueUNLOCKED;
 
- 	}
 
- 	taskEXIT_CRITICAL();
 
-  802a3f2:	f001 ba2d 	b.w	802b850 <vPortExitCritical>
 
- 0802a3f6 <prvCopyDataFromQueue>:
 
- }
 
- /*-----------------------------------------------------------*/
 
- static void prvCopyDataFromQueue( Queue_t * const pxQueue, void * const pvBuffer )
 
- {
 
- 	if( pxQueue->uxItemSize != ( UBaseType_t ) 0 )
 
-  802a3f6:	6c02      	ldr	r2, [r0, #64]	; 0x40
 
- 	return xReturn;
 
- }
 
- /*-----------------------------------------------------------*/
 
- static void prvCopyDataFromQueue( Queue_t * const pxQueue, void * const pvBuffer )
 
- {
 
-  802a3f8:	b530      	push	{r4, r5, lr}
 
-  802a3fa:	4603      	mov	r3, r0
 
- 	if( pxQueue->uxItemSize != ( UBaseType_t ) 0 )
 
-  802a3fc:	b16a      	cbz	r2, 802a41a <prvCopyDataFromQueue+0x24>
 
- 	{
 
- 		pxQueue->u.pcReadFrom += pxQueue->uxItemSize;
 
-  802a3fe:	68c4      	ldr	r4, [r0, #12]
 
- 		if( pxQueue->u.pcReadFrom >= pxQueue->pcTail ) /*lint !e946 MISRA exception justified as use of the relational operator is the cleanest solutions. */
 
-  802a400:	6845      	ldr	r5, [r0, #4]
 
- static void prvCopyDataFromQueue( Queue_t * const pxQueue, void * const pvBuffer )
 
- {
 
- 	if( pxQueue->uxItemSize != ( UBaseType_t ) 0 )
 
- 	{
 
- 		pxQueue->u.pcReadFrom += pxQueue->uxItemSize;
 
-  802a402:	18a4      	adds	r4, r4, r2
 
- 		if( pxQueue->u.pcReadFrom >= pxQueue->pcTail ) /*lint !e946 MISRA exception justified as use of the relational operator is the cleanest solutions. */
 
-  802a404:	42ac      	cmp	r4, r5
 
- static void prvCopyDataFromQueue( Queue_t * const pxQueue, void * const pvBuffer )
 
- {
 
- 	if( pxQueue->uxItemSize != ( UBaseType_t ) 0 )
 
- 	{
 
- 		pxQueue->u.pcReadFrom += pxQueue->uxItemSize;
 
-  802a406:	60c4      	str	r4, [r0, #12]
 
- 		if( pxQueue->u.pcReadFrom >= pxQueue->pcTail ) /*lint !e946 MISRA exception justified as use of the relational operator is the cleanest solutions. */
 
- 		{
 
- 			pxQueue->u.pcReadFrom = pxQueue->pcHead;
 
-  802a408:	bf24      	itt	cs
 
-  802a40a:	6804      	ldrcs	r4, [r0, #0]
 
-  802a40c:	60c4      	strcs	r4, [r0, #12]
 
- 		}
 
- 		else
 
- 		{
 
- 			mtCOVERAGE_TEST_MARKER();
 
- 		}
 
- 		( void ) memcpy( ( void * ) pvBuffer, ( void * ) pxQueue->u.pcReadFrom, ( size_t ) pxQueue->uxItemSize ); /*lint !e961 !e418 MISRA exception as the casts are only redundant for some ports.  Also previous logic ensures a null pointer can only be passed to memcpy() when the count is 0. */
 
-  802a40e:	4608      	mov	r0, r1
 
-  802a410:	68d9      	ldr	r1, [r3, #12]
 
- 	}
 
- }
 
-  802a412:	e8bd 4030 	ldmia.w	sp!, {r4, r5, lr}
 
- 		}
 
- 		else
 
- 		{
 
- 			mtCOVERAGE_TEST_MARKER();
 
- 		}
 
- 		( void ) memcpy( ( void * ) pvBuffer, ( void * ) pxQueue->u.pcReadFrom, ( size_t ) pxQueue->uxItemSize ); /*lint !e961 !e418 MISRA exception as the casts are only redundant for some ports.  Also previous logic ensures a null pointer can only be passed to memcpy() when the count is 0. */
 
-  802a416:	f7f7 bab9 	b.w	802198c <memcpy>
 
-  802a41a:	bd30      	pop	{r4, r5, pc}
 
- 0802a41c <prvCopyDataToQueue>:
 
- #endif /* configUSE_TRACE_FACILITY */
 
- /*-----------------------------------------------------------*/
 
- static BaseType_t prvCopyDataToQueue( Queue_t * const pxQueue, const void *pvItemToQueue, const BaseType_t xPosition )
 
- {
 
-  802a41c:	b538      	push	{r3, r4, r5, lr}
 
-  802a41e:	4615      	mov	r5, r2
 
- BaseType_t xReturn = pdFALSE;
 
- 	if( pxQueue->uxItemSize == ( UBaseType_t ) 0 )
 
-  802a420:	6c02      	ldr	r2, [r0, #64]	; 0x40
 
- #endif /* configUSE_TRACE_FACILITY */
 
- /*-----------------------------------------------------------*/
 
- static BaseType_t prvCopyDataToQueue( Queue_t * const pxQueue, const void *pvItemToQueue, const BaseType_t xPosition )
 
- {
 
-  802a422:	4604      	mov	r4, r0
 
- BaseType_t xReturn = pdFALSE;
 
- 	if( pxQueue->uxItemSize == ( UBaseType_t ) 0 )
 
-  802a424:	b93a      	cbnz	r2, 802a436 <prvCopyDataToQueue+0x1a>
 
- 	{
 
- 		#if ( configUSE_MUTEXES == 1 )
 
- 		{
 
- 			if( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX )
 
-  802a426:	6805      	ldr	r5, [r0, #0]
 
-  802a428:	b105      	cbz	r5, 802a42c <prvCopyDataToQueue+0x10>
 
-  802a42a:	e028      	b.n	802a47e <prvCopyDataToQueue+0x62>
 
- 			{
 
- 				/* The mutex is no longer being held. */
 
- 				xReturn = xTaskPriorityDisinherit( ( void * ) pxQueue->pxMutexHolder );
 
-  802a42c:	6840      	ldr	r0, [r0, #4]
 
-  802a42e:	f000 ffb3 	bl	802b398 <xTaskPriorityDisinherit>
 
- 				pxQueue->pxMutexHolder = NULL;
 
-  802a432:	6065      	str	r5, [r4, #4]
 
-  802a434:	e024      	b.n	802a480 <prvCopyDataToQueue+0x64>
 
- 				mtCOVERAGE_TEST_MARKER();
 
- 			}
 
- 		}
 
- 		#endif /* configUSE_MUTEXES */
 
- 	}
 
- 	else if( xPosition == queueSEND_TO_BACK )
 
-  802a436:	b96d      	cbnz	r5, 802a454 <prvCopyDataToQueue+0x38>
 
- 	{
 
- 		( void ) memcpy( ( void * ) pxQueue->pcWriteTo, pvItemToQueue, ( size_t ) pxQueue->uxItemSize ); /*lint !e961 !e418 MISRA exception as the casts are only redundant for some ports, plus previous logic ensures a null pointer can only be passed to memcpy() if the copy size is 0. */
 
-  802a438:	6880      	ldr	r0, [r0, #8]
 
-  802a43a:	f7f7 faa7 	bl	802198c <memcpy>
 
- 		pxQueue->pcWriteTo += pxQueue->uxItemSize;
 
-  802a43e:	68a2      	ldr	r2, [r4, #8]
 
-  802a440:	6c23      	ldr	r3, [r4, #64]	; 0x40
 
-  802a442:	18d3      	adds	r3, r2, r3
 
- 		if( pxQueue->pcWriteTo >= pxQueue->pcTail ) /*lint !e946 MISRA exception justified as comparison of pointers is the cleanest solution. */
 
-  802a444:	6862      	ldr	r2, [r4, #4]
 
- 		#endif /* configUSE_MUTEXES */
 
- 	}
 
- 	else if( xPosition == queueSEND_TO_BACK )
 
- 	{
 
- 		( void ) memcpy( ( void * ) pxQueue->pcWriteTo, pvItemToQueue, ( size_t ) pxQueue->uxItemSize ); /*lint !e961 !e418 MISRA exception as the casts are only redundant for some ports, plus previous logic ensures a null pointer can only be passed to memcpy() if the copy size is 0. */
 
- 		pxQueue->pcWriteTo += pxQueue->uxItemSize;
 
-  802a446:	60a3      	str	r3, [r4, #8]
 
- 		if( pxQueue->pcWriteTo >= pxQueue->pcTail ) /*lint !e946 MISRA exception justified as comparison of pointers is the cleanest solution. */
 
-  802a448:	4293      	cmp	r3, r2
 
-  802a44a:	d318      	bcc.n	802a47e <prvCopyDataToQueue+0x62>
 
- 		{
 
- 			pxQueue->pcWriteTo = pxQueue->pcHead;
 
-  802a44c:	6823      	ldr	r3, [r4, #0]
 
- #endif /* configUSE_TRACE_FACILITY */
 
- /*-----------------------------------------------------------*/
 
- static BaseType_t prvCopyDataToQueue( Queue_t * const pxQueue, const void *pvItemToQueue, const BaseType_t xPosition )
 
- {
 
- BaseType_t xReturn = pdFALSE;
 
-  802a44e:	4628      	mov	r0, r5
 
- 	{
 
- 		( void ) memcpy( ( void * ) pxQueue->pcWriteTo, pvItemToQueue, ( size_t ) pxQueue->uxItemSize ); /*lint !e961 !e418 MISRA exception as the casts are only redundant for some ports, plus previous logic ensures a null pointer can only be passed to memcpy() if the copy size is 0. */
 
- 		pxQueue->pcWriteTo += pxQueue->uxItemSize;
 
- 		if( pxQueue->pcWriteTo >= pxQueue->pcTail ) /*lint !e946 MISRA exception justified as comparison of pointers is the cleanest solution. */
 
- 		{
 
- 			pxQueue->pcWriteTo = pxQueue->pcHead;
 
-  802a450:	60a3      	str	r3, [r4, #8]
 
-  802a452:	e015      	b.n	802a480 <prvCopyDataToQueue+0x64>
 
- 			mtCOVERAGE_TEST_MARKER();
 
- 		}
 
- 	}
 
- 	else
 
- 	{
 
- 		( void ) memcpy( ( void * ) pxQueue->u.pcReadFrom, pvItemToQueue, ( size_t ) pxQueue->uxItemSize ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */
 
-  802a454:	68c0      	ldr	r0, [r0, #12]
 
-  802a456:	f7f7 fa99 	bl	802198c <memcpy>
 
- 		pxQueue->u.pcReadFrom -= pxQueue->uxItemSize;
 
-  802a45a:	6c23      	ldr	r3, [r4, #64]	; 0x40
 
-  802a45c:	68e2      	ldr	r2, [r4, #12]
 
- 		if( pxQueue->u.pcReadFrom < pxQueue->pcHead ) /*lint !e946 MISRA exception justified as comparison of pointers is the cleanest solution. */
 
-  802a45e:	6821      	ldr	r1, [r4, #0]
 
- 		}
 
- 	}
 
- 	else
 
- 	{
 
- 		( void ) memcpy( ( void * ) pxQueue->u.pcReadFrom, pvItemToQueue, ( size_t ) pxQueue->uxItemSize ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */
 
- 		pxQueue->u.pcReadFrom -= pxQueue->uxItemSize;
 
-  802a460:	425b      	negs	r3, r3
 
-  802a462:	18d2      	adds	r2, r2, r3
 
- 		if( pxQueue->u.pcReadFrom < pxQueue->pcHead ) /*lint !e946 MISRA exception justified as comparison of pointers is the cleanest solution. */
 
-  802a464:	428a      	cmp	r2, r1
 
- 		}
 
- 	}
 
- 	else
 
- 	{
 
- 		( void ) memcpy( ( void * ) pxQueue->u.pcReadFrom, pvItemToQueue, ( size_t ) pxQueue->uxItemSize ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */
 
- 		pxQueue->u.pcReadFrom -= pxQueue->uxItemSize;
 
-  802a466:	60e2      	str	r2, [r4, #12]
 
- 		if( pxQueue->u.pcReadFrom < pxQueue->pcHead ) /*lint !e946 MISRA exception justified as comparison of pointers is the cleanest solution. */
 
-  802a468:	d202      	bcs.n	802a470 <prvCopyDataToQueue+0x54>
 
- 		{
 
- 			pxQueue->u.pcReadFrom = ( pxQueue->pcTail - pxQueue->uxItemSize );
 
-  802a46a:	6862      	ldr	r2, [r4, #4]
 
-  802a46c:	18d3      	adds	r3, r2, r3
 
-  802a46e:	60e3      	str	r3, [r4, #12]
 
- 		else
 
- 		{
 
- 			mtCOVERAGE_TEST_MARKER();
 
- 		}
 
- 		if( xPosition == queueOVERWRITE )
 
-  802a470:	2d02      	cmp	r5, #2
 
-  802a472:	d104      	bne.n	802a47e <prvCopyDataToQueue+0x62>
 
- 		{
 
- 			if( pxQueue->uxMessagesWaiting > ( UBaseType_t ) 0 )
 
-  802a474:	6ba3      	ldr	r3, [r4, #56]	; 0x38
 
-  802a476:	b113      	cbz	r3, 802a47e <prvCopyDataToQueue+0x62>
 
- 			{
 
- 				/* An item is not being added but overwritten, so subtract
 
- 				one from the recorded number of items in the queue so when
 
- 				one is added again below the number of recorded items remains
 
- 				correct. */
 
- 				--( pxQueue->uxMessagesWaiting );
 
-  802a478:	6ba3      	ldr	r3, [r4, #56]	; 0x38
 
-  802a47a:	3b01      	subs	r3, #1
 
-  802a47c:	63a3      	str	r3, [r4, #56]	; 0x38
 
- #endif /* configUSE_TRACE_FACILITY */
 
- /*-----------------------------------------------------------*/
 
- static BaseType_t prvCopyDataToQueue( Queue_t * const pxQueue, const void *pvItemToQueue, const BaseType_t xPosition )
 
- {
 
- BaseType_t xReturn = pdFALSE;
 
-  802a47e:	2000      	movs	r0, #0
 
- 		{
 
- 			mtCOVERAGE_TEST_MARKER();
 
- 		}
 
- 	}
 
- 	++( pxQueue->uxMessagesWaiting );
 
-  802a480:	6ba3      	ldr	r3, [r4, #56]	; 0x38
 
-  802a482:	3301      	adds	r3, #1
 
-  802a484:	63a3      	str	r3, [r4, #56]	; 0x38
 
- 	return xReturn;
 
- }
 
-  802a486:	bd38      	pop	{r3, r4, r5, pc}
 
- 0802a488 <xQueueGenericReset>:
 
- 	}														\
 
- 	taskEXIT_CRITICAL()
 
- /*-----------------------------------------------------------*/
 
- BaseType_t xQueueGenericReset( QueueHandle_t xQueue, BaseType_t xNewQueue )
 
- {
 
-  802a488:	b538      	push	{r3, r4, r5, lr}
 
-  802a48a:	460d      	mov	r5, r1
 
- Queue_t * const pxQueue = ( Queue_t * ) xQueue;
 
- 	configASSERT( pxQueue );
 
-  802a48c:	4604      	mov	r4, r0
 
-  802a48e:	b910      	cbnz	r0, 802a496 <xQueueGenericReset+0xe>
 
-  802a490:	f001 f9aa 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802a494:	e7fe      	b.n	802a494 <xQueueGenericReset+0xc>
 
- 	taskENTER_CRITICAL();
 
-  802a496:	f001 f9af 	bl	802b7f8 <vPortEnterCritical>
 
- 	{
 
- 		pxQueue->pcTail = pxQueue->pcHead + ( pxQueue->uxLength * pxQueue->uxItemSize );
 
-  802a49a:	6823      	ldr	r3, [r4, #0]
 
-  802a49c:	6be0      	ldr	r0, [r4, #60]	; 0x3c
 
-  802a49e:	6c22      	ldr	r2, [r4, #64]	; 0x40
 
- 		pxQueue->uxMessagesWaiting = ( UBaseType_t ) 0U;
 
- 		pxQueue->pcWriteTo = pxQueue->pcHead;
 
-  802a4a0:	60a3      	str	r3, [r4, #8]
 
- 	configASSERT( pxQueue );
 
- 	taskENTER_CRITICAL();
 
- 	{
 
- 		pxQueue->pcTail = pxQueue->pcHead + ( pxQueue->uxLength * pxQueue->uxItemSize );
 
-  802a4a2:	fb00 3102 	mla	r1, r0, r2, r3
 
- 		pxQueue->uxMessagesWaiting = ( UBaseType_t ) 0U;
 
- 		pxQueue->pcWriteTo = pxQueue->pcHead;
 
- 		pxQueue->u.pcReadFrom = pxQueue->pcHead + ( ( pxQueue->uxLength - ( UBaseType_t ) 1U ) * pxQueue->uxItemSize );
 
-  802a4a6:	3801      	subs	r0, #1
 
-  802a4a8:	fb02 3300 	mla	r3, r2, r0, r3
 
- 	configASSERT( pxQueue );
 
- 	taskENTER_CRITICAL();
 
- 	{
 
- 		pxQueue->pcTail = pxQueue->pcHead + ( pxQueue->uxLength * pxQueue->uxItemSize );
 
-  802a4ac:	6061      	str	r1, [r4, #4]
 
- 		pxQueue->uxMessagesWaiting = ( UBaseType_t ) 0U;
 
- 		pxQueue->pcWriteTo = pxQueue->pcHead;
 
- 		pxQueue->u.pcReadFrom = pxQueue->pcHead + ( ( pxQueue->uxLength - ( UBaseType_t ) 1U ) * pxQueue->uxItemSize );
 
-  802a4ae:	60e3      	str	r3, [r4, #12]
 
- 	configASSERT( pxQueue );
 
- 	taskENTER_CRITICAL();
 
- 	{
 
- 		pxQueue->pcTail = pxQueue->pcHead + ( pxQueue->uxLength * pxQueue->uxItemSize );
 
- 		pxQueue->uxMessagesWaiting = ( UBaseType_t ) 0U;
 
-  802a4b0:	2100      	movs	r1, #0
 
- 		pxQueue->pcWriteTo = pxQueue->pcHead;
 
- 		pxQueue->u.pcReadFrom = pxQueue->pcHead + ( ( pxQueue->uxLength - ( UBaseType_t ) 1U ) * pxQueue->uxItemSize );
 
- 		pxQueue->xRxLock = queueUNLOCKED;
 
-  802a4b2:	f04f 33ff 	mov.w	r3, #4294967295
 
- 	configASSERT( pxQueue );
 
- 	taskENTER_CRITICAL();
 
- 	{
 
- 		pxQueue->pcTail = pxQueue->pcHead + ( pxQueue->uxLength * pxQueue->uxItemSize );
 
- 		pxQueue->uxMessagesWaiting = ( UBaseType_t ) 0U;
 
-  802a4b6:	63a1      	str	r1, [r4, #56]	; 0x38
 
- 		pxQueue->pcWriteTo = pxQueue->pcHead;
 
- 		pxQueue->u.pcReadFrom = pxQueue->pcHead + ( ( pxQueue->uxLength - ( UBaseType_t ) 1U ) * pxQueue->uxItemSize );
 
- 		pxQueue->xRxLock = queueUNLOCKED;
 
-  802a4b8:	6463      	str	r3, [r4, #68]	; 0x44
 
- 		pxQueue->xTxLock = queueUNLOCKED;
 
-  802a4ba:	64a3      	str	r3, [r4, #72]	; 0x48
 
- 		if( xNewQueue == pdFALSE )
 
-  802a4bc:	b955      	cbnz	r5, 802a4d4 <xQueueGenericReset+0x4c>
 
- 			/* If there are tasks blocked waiting to read from the queue, then
 
- 			the tasks will remain blocked as after this function exits the queue
 
- 			will still be empty.  If there are tasks blocked waiting to write to
 
- 			the queue, then one should be unblocked as after this function exits
 
- 			it will be possible to write to it. */
 
- 			if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) == pdFALSE )
 
-  802a4be:	6923      	ldr	r3, [r4, #16]
 
-  802a4c0:	b183      	cbz	r3, 802a4e4 <xQueueGenericReset+0x5c>
 
- 			{
 
- 				if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) == pdTRUE )
 
-  802a4c2:	f104 0010 	add.w	r0, r4, #16
 
-  802a4c6:	f000 fe8b 	bl	802b1e0 <xTaskRemoveFromEventList>
 
-  802a4ca:	2801      	cmp	r0, #1
 
-  802a4cc:	d10a      	bne.n	802a4e4 <xQueueGenericReset+0x5c>
 
- 				{
 
- 					queueYIELD_IF_USING_PREEMPTION();
 
-  802a4ce:	f001 f97f 	bl	802b7d0 <vPortYield>
 
-  802a4d2:	e007      	b.n	802a4e4 <xQueueGenericReset+0x5c>
 
- 			}
 
- 		}
 
- 		else
 
- 		{
 
- 			/* Ensure the event queues start in the correct state. */
 
- 			vListInitialise( &( pxQueue->xTasksWaitingToSend ) );
 
-  802a4d4:	f104 0010 	add.w	r0, r4, #16
 
-  802a4d8:	f7ff ff17 	bl	802a30a <vListInitialise>
 
- 			vListInitialise( &( pxQueue->xTasksWaitingToReceive ) );
 
-  802a4dc:	f104 0024 	add.w	r0, r4, #36	; 0x24
 
-  802a4e0:	f7ff ff13 	bl	802a30a <vListInitialise>
 
- 		}
 
- 	}
 
- 	taskEXIT_CRITICAL();
 
-  802a4e4:	f001 f9b4 	bl	802b850 <vPortExitCritical>
 
- 	/* A value is returned for calling semantic consistency with previous
 
- 	versions. */
 
- 	return pdPASS;
 
- }
 
-  802a4e8:	2001      	movs	r0, #1
 
-  802a4ea:	bd38      	pop	{r3, r4, r5, pc}
 
- 0802a4ec <xQueueGenericCreate>:
 
- /*-----------------------------------------------------------*/
 
- QueueHandle_t xQueueGenericCreate( const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, const uint8_t ucQueueType )
 
- {
 
-  802a4ec:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
-  802a4ee:	460d      	mov	r5, r1
 
-  802a4f0:	4617      	mov	r7, r2
 
- 	/* Remove compiler warnings about unused parameters should
 
- 	configUSE_TRACE_FACILITY not be set to 1. */
 
- 	( void ) ucQueueType;
 
- 	configASSERT( uxQueueLength > ( UBaseType_t ) 0 );
 
-  802a4f2:	4606      	mov	r6, r0
 
-  802a4f4:	b910      	cbnz	r0, 802a4fc <xQueueGenericCreate+0x10>
 
-  802a4f6:	f001 f977 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802a4fa:	e7fe      	b.n	802a4fa <xQueueGenericCreate+0xe>
 
- 	if( uxItemSize == ( UBaseType_t ) 0 )
 
-  802a4fc:	b111      	cbz	r1, 802a504 <xQueueGenericCreate+0x18>
 
- 	}
 
- 	else
 
- 	{
 
- 		/* The queue is one byte longer than asked for to make wrap checking
 
- 		easier/faster. */
 
- 		xQueueSizeInBytes = ( size_t ) ( uxQueueLength * uxItemSize ) + ( size_t ) 1; /*lint !e961 MISRA exception as the casts are only redundant for some ports. */
 
-  802a4fe:	4348      	muls	r0, r1
 
-  802a500:	3001      	adds	r0, #1
 
-  802a502:	e000      	b.n	802a506 <xQueueGenericCreate+0x1a>
 
- 	configASSERT( uxQueueLength > ( UBaseType_t ) 0 );
 
- 	if( uxItemSize == ( UBaseType_t ) 0 )
 
- 	{
 
- 		/* There is not going to be a queue storage area. */
 
- 		xQueueSizeInBytes = ( size_t ) 0;
 
-  802a504:	4608      	mov	r0, r1
 
- 		easier/faster. */
 
- 		xQueueSizeInBytes = ( size_t ) ( uxQueueLength * uxItemSize ) + ( size_t ) 1; /*lint !e961 MISRA exception as the casts are only redundant for some ports. */
 
- 	}
 
- 	/* Allocate the new queue structure and storage area. */
 
- 	pcAllocatedBuffer = ( int8_t * ) pvPortMalloc( sizeof( Queue_t ) + xQueueSizeInBytes );
 
-  802a506:	3054      	adds	r0, #84	; 0x54
 
-  802a508:	f001 fa84 	bl	802ba14 <pvPortMalloc>
 
- 	if( pcAllocatedBuffer != NULL )
 
-  802a50c:	4604      	mov	r4, r0
 
-  802a50e:	b138      	cbz	r0, 802a520 <xQueueGenericCreate+0x34>
 
- 	{
 
- 		pxNewQueue = ( Queue_t * ) pcAllocatedBuffer; /*lint !e826 MISRA The buffer cannot be to small because it was dimensioned by sizeof( Queue_t ) + xQueueSizeInBytes. */
 
- 		if( uxItemSize == ( UBaseType_t ) 0 )
 
-  802a510:	b90d      	cbnz	r5, 802a516 <xQueueGenericCreate+0x2a>
 
- 		{
 
- 			/* No RAM was allocated for the queue storage area, but PC head
 
- 			cannot be set to NULL because NULL is used as a key to say the queue
 
- 			is used as a mutex.  Therefore just set pcHead to point to the queue
 
- 			as a benign value that is known to be within the memory map. */
 
- 			pxNewQueue->pcHead = ( int8_t * ) pxNewQueue;
 
-  802a512:	6020      	str	r0, [r4, #0]
 
-  802a514:	e007      	b.n	802a526 <xQueueGenericCreate+0x3a>
 
- 		}
 
- 		else
 
- 		{
 
- 			/* Jump past the queue structure to find the location of the queue
 
- 			storage area - adding the padding bytes to get a better alignment. */
 
- 			pxNewQueue->pcHead = pcAllocatedBuffer + sizeof( Queue_t );
 
-  802a516:	f100 0354 	add.w	r3, r0, #84	; 0x54
 
-  802a51a:	6003      	str	r3, [r0, #0]
 
-  802a51c:	e003      	b.n	802a526 <xQueueGenericCreate+0x3a>
 
-  802a51e:	e7fe      	b.n	802a51e <xQueueGenericCreate+0x32>
 
- 	else
 
- 	{
 
- 		mtCOVERAGE_TEST_MARKER();
 
- 	}
 
- 	configASSERT( xReturn );
 
-  802a520:	f001 f962 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802a524:	e7fb      	b.n	802a51e <xQueueGenericCreate+0x32>
 
- 			pxNewQueue->pcHead = pcAllocatedBuffer + sizeof( Queue_t );
 
- 		}
 
- 		/* Initialise the queue members as described above where the queue type
 
- 		is defined. */
 
- 		pxNewQueue->uxLength = uxQueueLength;
 
-  802a526:	63e6      	str	r6, [r4, #60]	; 0x3c
 
- 		pxNewQueue->uxItemSize = uxItemSize;
 
-  802a528:	6425      	str	r5, [r4, #64]	; 0x40
 
- 		( void ) xQueueGenericReset( pxNewQueue, pdTRUE );
 
-  802a52a:	4620      	mov	r0, r4
 
-  802a52c:	2101      	movs	r1, #1
 
-  802a52e:	f7ff ffab 	bl	802a488 <xQueueGenericReset>
 
- 		#if ( configUSE_TRACE_FACILITY == 1 )
 
- 		{
 
- 			pxNewQueue->ucQueueType = ucQueueType;
 
-  802a532:	f884 7050 	strb.w	r7, [r4, #80]	; 0x50
 
- 	}
 
- 	configASSERT( xReturn );
 
- 	return xReturn;
 
- }
 
-  802a536:	4620      	mov	r0, r4
 
-  802a538:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 
- 0802a53a <xQueueCreateCountingSemaphore>:
 
- /*-----------------------------------------------------------*/
 
- #if ( configUSE_COUNTING_SEMAPHORES == 1 )
 
- 	QueueHandle_t xQueueCreateCountingSemaphore( const UBaseType_t uxMaxCount, const UBaseType_t uxInitialCount )
 
- 	{
 
-  802a53a:	b510      	push	{r4, lr}
 
-  802a53c:	460c      	mov	r4, r1
 
- 	QueueHandle_t xHandle;
 
- 		configASSERT( uxMaxCount != 0 );
 
-  802a53e:	b910      	cbnz	r0, 802a546 <xQueueCreateCountingSemaphore+0xc>
 
-  802a540:	f001 f952 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802a544:	e7fe      	b.n	802a544 <xQueueCreateCountingSemaphore+0xa>
 
- 		configASSERT( uxInitialCount <= uxMaxCount );
 
-  802a546:	4281      	cmp	r1, r0
 
-  802a548:	d902      	bls.n	802a550 <xQueueCreateCountingSemaphore+0x16>
 
-  802a54a:	f001 f94d 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802a54e:	e7fe      	b.n	802a54e <xQueueCreateCountingSemaphore+0x14>
 
- 		xHandle = xQueueGenericCreate( uxMaxCount, queueSEMAPHORE_QUEUE_ITEM_LENGTH, queueQUEUE_TYPE_COUNTING_SEMAPHORE );
 
-  802a550:	2100      	movs	r1, #0
 
-  802a552:	2202      	movs	r2, #2
 
-  802a554:	f7ff ffca 	bl	802a4ec <xQueueGenericCreate>
 
- 		if( xHandle != NULL )
 
-  802a558:	b110      	cbz	r0, 802a560 <xQueueCreateCountingSemaphore+0x26>
 
- 		{
 
- 			( ( Queue_t * ) xHandle )->uxMessagesWaiting = uxInitialCount;
 
-  802a55a:	6384      	str	r4, [r0, #56]	; 0x38
 
-  802a55c:	bd10      	pop	{r4, pc}
 
-  802a55e:	e7fe      	b.n	802a55e <xQueueCreateCountingSemaphore+0x24>
 
- 		else
 
- 		{
 
- 			traceCREATE_COUNTING_SEMAPHORE_FAILED();
 
- 		}
 
- 		configASSERT( xHandle );
 
-  802a560:	f001 f942 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802a564:	e7fb      	b.n	802a55e <xQueueCreateCountingSemaphore+0x24>
 
- 0802a566 <xQueueGenericSend>:
 
- #endif /* configUSE_COUNTING_SEMAPHORES */
 
- /*-----------------------------------------------------------*/
 
- BaseType_t xQueueGenericSend( QueueHandle_t xQueue, const void * const pvItemToQueue, TickType_t xTicksToWait, const BaseType_t xCopyPosition )
 
- {
 
-  802a566:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
 
-  802a56a:	b085      	sub	sp, #20
 
-  802a56c:	460f      	mov	r7, r1
 
-  802a56e:	9201      	str	r2, [sp, #4]
 
-  802a570:	461d      	mov	r5, r3
 
- BaseType_t xEntryTimeSet = pdFALSE, xYieldRequired;
 
- TimeOut_t xTimeOut;
 
- Queue_t * const pxQueue = ( Queue_t * ) xQueue;
 
- 	configASSERT( pxQueue );
 
-  802a572:	4604      	mov	r4, r0
 
-  802a574:	b910      	cbnz	r0, 802a57c <xQueueGenericSend+0x16>
 
-  802a576:	f001 f937 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802a57a:	e7fe      	b.n	802a57a <xQueueGenericSend+0x14>
 
- 	configASSERT( !( ( pvItemToQueue == NULL ) && ( pxQueue->uxItemSize != ( UBaseType_t ) 0U ) ) );
 
-  802a57c:	2900      	cmp	r1, #0
 
-  802a57e:	d17b      	bne.n	802a678 <xQueueGenericSend+0x112>
 
-  802a580:	6c03      	ldr	r3, [r0, #64]	; 0x40
 
-  802a582:	2b00      	cmp	r3, #0
 
-  802a584:	d078      	beq.n	802a678 <xQueueGenericSend+0x112>
 
-  802a586:	e074      	b.n	802a672 <xQueueGenericSend+0x10c>
 
-  802a588:	e7fe      	b.n	802a588 <xQueueGenericSend+0x22>
 
- 	configASSERT( !( ( xCopyPosition == queueOVERWRITE ) && ( pxQueue->uxLength != 1 ) ) );
 
-  802a58a:	6be3      	ldr	r3, [r4, #60]	; 0x3c
 
-  802a58c:	2b01      	cmp	r3, #1
 
-  802a58e:	d176      	bne.n	802a67e <xQueueGenericSend+0x118>
 
-  802a590:	e078      	b.n	802a684 <xQueueGenericSend+0x11e>
 
-  802a592:	e7fe      	b.n	802a592 <xQueueGenericSend+0x2c>
 
- 	#if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) )
 
- 	{
 
- 		configASSERT( !( ( xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED ) && ( xTicksToWait != 0 ) ) );
 
-  802a594:	9e01      	ldr	r6, [sp, #4]
 
-  802a596:	b126      	cbz	r6, 802a5a2 <xQueueGenericSend+0x3c>
 
-  802a598:	e079      	b.n	802a68e <xQueueGenericSend+0x128>
 
-  802a59a:	e7fe      	b.n	802a59a <xQueueGenericSend+0x34>
 
-  802a59c:	2601      	movs	r6, #1
 
-  802a59e:	e002      	b.n	802a5a6 <xQueueGenericSend+0x40>
 
-  802a5a0:	2600      	movs	r6, #0
 
- 		/* Interrupts and other tasks can send to and receive from the queue
 
- 		now the critical section has been exited. */
 
- 		vTaskSuspendAll();
 
- 		prvLockQueue( pxQueue );
 
-  802a5a2:	f04f 0800 	mov.w	r8, #0
 
- 	/* This function relaxes the coding standard somewhat to allow return
 
- 	statements within the function itself.  This is done in the interest
 
- 	of execution time efficiency. */
 
- 	for( ;; )
 
- 	{
 
- 		taskENTER_CRITICAL();
 
-  802a5a6:	f001 f927 	bl	802b7f8 <vPortEnterCritical>
 
- 		{
 
- 			/* Is there room on the queue now?  The running task must be
 
- 			the highest priority task wanting to access the queue.  If
 
- 			the head item in the queue is to be overwritten then it does
 
- 			not matter if the queue is full. */
 
- 			if( ( pxQueue->uxMessagesWaiting < pxQueue->uxLength ) || ( xCopyPosition == queueOVERWRITE ) )
 
-  802a5aa:	6ba2      	ldr	r2, [r4, #56]	; 0x38
 
-  802a5ac:	6be3      	ldr	r3, [r4, #60]	; 0x3c
 
-  802a5ae:	429a      	cmp	r2, r3
 
-  802a5b0:	d301      	bcc.n	802a5b6 <xQueueGenericSend+0x50>
 
-  802a5b2:	2d02      	cmp	r5, #2
 
-  802a5b4:	d115      	bne.n	802a5e2 <xQueueGenericSend+0x7c>
 
- 			{
 
- 				traceQUEUE_SEND( pxQueue );
 
- 				xYieldRequired = prvCopyDataToQueue( pxQueue, pvItemToQueue, xCopyPosition );
 
-  802a5b6:	4620      	mov	r0, r4
 
-  802a5b8:	4639      	mov	r1, r7
 
-  802a5ba:	462a      	mov	r2, r5
 
-  802a5bc:	f7ff ff2e 	bl	802a41c <prvCopyDataToQueue>
 
- 				}
 
- 				#else /* configUSE_QUEUE_SETS */
 
- 				{
 
- 					/* If there was a task waiting for data to arrive on the
 
- 					queue then unblock it now. */
 
- 					if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE )
 
-  802a5c0:	6a63      	ldr	r3, [r4, #36]	; 0x24
 
-  802a5c2:	b143      	cbz	r3, 802a5d6 <xQueueGenericSend+0x70>
 
- 					{
 
- 						if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) == pdTRUE )
 
-  802a5c4:	f104 0024 	add.w	r0, r4, #36	; 0x24
 
-  802a5c8:	f000 fe0a 	bl	802b1e0 <xTaskRemoveFromEventList>
 
-  802a5cc:	2801      	cmp	r0, #1
 
-  802a5ce:	d104      	bne.n	802a5da <xQueueGenericSend+0x74>
 
- 						{
 
- 							/* The unblocked task has a priority higher than
 
- 							our own so yield immediately.  Yes it is ok to do
 
- 							this from within the critical section - the kernel
 
- 							takes care of that. */
 
- 							queueYIELD_IF_USING_PREEMPTION();
 
-  802a5d0:	f001 f8fe 	bl	802b7d0 <vPortYield>
 
-  802a5d4:	e001      	b.n	802a5da <xQueueGenericSend+0x74>
 
- 						else
 
- 						{
 
- 							mtCOVERAGE_TEST_MARKER();
 
- 						}
 
- 					}
 
- 					else if( xYieldRequired != pdFALSE )
 
-  802a5d6:	2800      	cmp	r0, #0
 
-  802a5d8:	d1fa      	bne.n	802a5d0 <xQueueGenericSend+0x6a>
 
- 						mtCOVERAGE_TEST_MARKER();
 
- 					}
 
- 				}
 
- 				#endif /* configUSE_QUEUE_SETS */
 
- 				taskEXIT_CRITICAL();
 
-  802a5da:	f001 f939 	bl	802b850 <vPortExitCritical>
 
- 				return pdPASS;
 
-  802a5de:	2001      	movs	r0, #1
 
-  802a5e0:	e058      	b.n	802a694 <xQueueGenericSend+0x12e>
 
- 			}
 
- 			else
 
- 			{
 
- 				if( xTicksToWait == ( TickType_t ) 0 )
 
-  802a5e2:	f8dd 9004 	ldr.w	r9, [sp, #4]
 
-  802a5e6:	f1b9 0f00 	cmp.w	r9, #0
 
-  802a5ea:	d102      	bne.n	802a5f2 <xQueueGenericSend+0x8c>
 
- 				{
 
- 					/* The queue was full and no block time is specified (or
 
- 					the block time has expired) so leave now. */
 
- 					taskEXIT_CRITICAL();
 
-  802a5ec:	f001 f930 	bl	802b850 <vPortExitCritical>
 
-  802a5f0:	e03d      	b.n	802a66e <xQueueGenericSend+0x108>
 
- 					/* Return to the original privilege level before exiting
 
- 					the function. */
 
- 					traceQUEUE_SEND_FAILED( pxQueue );
 
- 					return errQUEUE_FULL;
 
- 				}
 
- 				else if( xEntryTimeSet == pdFALSE )
 
-  802a5f2:	b916      	cbnz	r6, 802a5fa <xQueueGenericSend+0x94>
 
- 				{
 
- 					/* The queue was full and a block time was specified so
 
- 					configure the timeout structure. */
 
- 					vTaskSetTimeOutState( &xTimeOut );
 
-  802a5f4:	a802      	add	r0, sp, #8
 
-  802a5f6:	f000 fe2f 	bl	802b258 <vTaskSetTimeOutState>
 
- 					/* Entry time was already set. */
 
- 					mtCOVERAGE_TEST_MARKER();
 
- 				}
 
- 			}
 
- 		}
 
- 		taskEXIT_CRITICAL();
 
-  802a5fa:	f001 f929 	bl	802b850 <vPortExitCritical>
 
- 		/* Interrupts and other tasks can send to and receive from the queue
 
- 		now the critical section has been exited. */
 
- 		vTaskSuspendAll();
 
-  802a5fe:	f000 fbab 	bl	802ad58 <vTaskSuspendAll>
 
- 		prvLockQueue( pxQueue );
 
-  802a602:	f001 f8f9 	bl	802b7f8 <vPortEnterCritical>
 
-  802a606:	6c63      	ldr	r3, [r4, #68]	; 0x44
 
-  802a608:	3301      	adds	r3, #1
 
-  802a60a:	bf08      	it	eq
 
-  802a60c:	f8c4 8044 	streq.w	r8, [r4, #68]	; 0x44
 
-  802a610:	6ca3      	ldr	r3, [r4, #72]	; 0x48
 
-  802a612:	3301      	adds	r3, #1
 
-  802a614:	bf08      	it	eq
 
-  802a616:	f8c4 8048 	streq.w	r8, [r4, #72]	; 0x48
 
-  802a61a:	f001 f919 	bl	802b850 <vPortExitCritical>
 
- 		/* Update the timeout state to see if it has expired yet. */
 
- 		if( xTaskCheckForTimeOut( &xTimeOut, &xTicksToWait ) == pdFALSE )
 
-  802a61e:	a802      	add	r0, sp, #8
 
-  802a620:	a901      	add	r1, sp, #4
 
-  802a622:	f000 fe29 	bl	802b278 <xTaskCheckForTimeOut>
 
-  802a626:	b9e8      	cbnz	r0, 802a664 <xQueueGenericSend+0xfe>
 
- static BaseType_t prvIsQueueFull( const Queue_t *pxQueue )
 
- {
 
- BaseType_t xReturn;
 
- 	taskENTER_CRITICAL();
 
-  802a628:	f001 f8e6 	bl	802b7f8 <vPortEnterCritical>
 
- 	{
 
- 		if( pxQueue->uxMessagesWaiting == pxQueue->uxLength )
 
-  802a62c:	f8d4 9038 	ldr.w	r9, [r4, #56]	; 0x38
 
-  802a630:	6be6      	ldr	r6, [r4, #60]	; 0x3c
 
- 		else
 
- 		{
 
- 			xReturn = pdFALSE;
 
- 		}
 
- 	}
 
- 	taskEXIT_CRITICAL();
 
-  802a632:	f001 f90d 	bl	802b850 <vPortExitCritical>
 
- 		prvLockQueue( pxQueue );
 
- 		/* Update the timeout state to see if it has expired yet. */
 
- 		if( xTaskCheckForTimeOut( &xTimeOut, &xTicksToWait ) == pdFALSE )
 
- 		{
 
- 			if( prvIsQueueFull( pxQueue ) != pdFALSE )
 
-  802a636:	45b1      	cmp	r9, r6
 
-  802a638:	d10e      	bne.n	802a658 <xQueueGenericSend+0xf2>
 
- 			{
 
- 				traceBLOCKING_ON_QUEUE_SEND( pxQueue );
 
- 				vTaskPlaceOnEventList( &( pxQueue->xTasksWaitingToSend ), xTicksToWait );
 
-  802a63a:	f104 0010 	add.w	r0, r4, #16
 
-  802a63e:	9901      	ldr	r1, [sp, #4]
 
-  802a640:	f000 fd72 	bl	802b128 <vTaskPlaceOnEventList>
 
- 				/* Unlocking the queue means queue events can effect the
 
- 				event list.  It is possible	that interrupts occurring now
 
- 				remove this task from the event	list again - but as the
 
- 				scheduler is suspended the task will go onto the pending
 
- 				ready last instead of the actual ready list. */
 
- 				prvUnlockQueue( pxQueue );
 
-  802a644:	4620      	mov	r0, r4
 
-  802a646:	f7ff fea2 	bl	802a38e <prvUnlockQueue>
 
- 				/* Resuming the scheduler will move tasks from the pending
 
- 				ready list into the ready list - so it is feasible that this
 
- 				task is already in a ready list before it yields - in which
 
- 				case the yield will not cause a context switch unless there
 
- 				is also a higher priority task in the pending ready list. */
 
- 				if( xTaskResumeAll() == pdFALSE )
 
-  802a64a:	f000 fc21 	bl	802ae90 <xTaskResumeAll>
 
-  802a64e:	2800      	cmp	r0, #0
 
-  802a650:	d1a4      	bne.n	802a59c <xQueueGenericSend+0x36>
 
- 				{
 
- 					portYIELD_WITHIN_API();
 
-  802a652:	f001 f8bd 	bl	802b7d0 <vPortYield>
 
-  802a656:	e7a1      	b.n	802a59c <xQueueGenericSend+0x36>
 
- 				}
 
- 			}
 
- 			else
 
- 			{
 
- 				/* Try again. */
 
- 				prvUnlockQueue( pxQueue );
 
-  802a658:	4620      	mov	r0, r4
 
-  802a65a:	f7ff fe98 	bl	802a38e <prvUnlockQueue>
 
- 				( void ) xTaskResumeAll();
 
-  802a65e:	f000 fc17 	bl	802ae90 <xTaskResumeAll>
 
-  802a662:	e79b      	b.n	802a59c <xQueueGenericSend+0x36>
 
- 			}
 
- 		}
 
- 		else
 
- 		{
 
- 			/* The timeout has expired. */
 
- 			prvUnlockQueue( pxQueue );
 
-  802a664:	4620      	mov	r0, r4
 
-  802a666:	f7ff fe92 	bl	802a38e <prvUnlockQueue>
 
- 			( void ) xTaskResumeAll();
 
-  802a66a:	f000 fc11 	bl	802ae90 <xTaskResumeAll>
 
- 			/* Return to the original privilege level before exiting the
 
- 			function. */
 
- 			traceQUEUE_SEND_FAILED( pxQueue );
 
- 			return errQUEUE_FULL;
 
-  802a66e:	2000      	movs	r0, #0
 
-  802a670:	e010      	b.n	802a694 <xQueueGenericSend+0x12e>
 
- BaseType_t xEntryTimeSet = pdFALSE, xYieldRequired;
 
- TimeOut_t xTimeOut;
 
- Queue_t * const pxQueue = ( Queue_t * ) xQueue;
 
- 	configASSERT( pxQueue );
 
- 	configASSERT( !( ( pvItemToQueue == NULL ) && ( pxQueue->uxItemSize != ( UBaseType_t ) 0U ) ) );
 
-  802a672:	f001 f8b9 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802a676:	e787      	b.n	802a588 <xQueueGenericSend+0x22>
 
- 	configASSERT( !( ( xCopyPosition == queueOVERWRITE ) && ( pxQueue->uxLength != 1 ) ) );
 
-  802a678:	2d02      	cmp	r5, #2
 
-  802a67a:	d103      	bne.n	802a684 <xQueueGenericSend+0x11e>
 
-  802a67c:	e785      	b.n	802a58a <xQueueGenericSend+0x24>
 
-  802a67e:	f001 f8b3 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802a682:	e786      	b.n	802a592 <xQueueGenericSend+0x2c>
 
- 	#if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) )
 
- 	{
 
- 		configASSERT( !( ( xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED ) && ( xTicksToWait != 0 ) ) );
 
-  802a684:	f000 fe2c 	bl	802b2e0 <xTaskGetSchedulerState>
 
-  802a688:	2800      	cmp	r0, #0
 
-  802a68a:	d189      	bne.n	802a5a0 <xQueueGenericSend+0x3a>
 
-  802a68c:	e782      	b.n	802a594 <xQueueGenericSend+0x2e>
 
-  802a68e:	f001 f8ab 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802a692:	e782      	b.n	802a59a <xQueueGenericSend+0x34>
 
- 			function. */
 
- 			traceQUEUE_SEND_FAILED( pxQueue );
 
- 			return errQUEUE_FULL;
 
- 		}
 
- 	}
 
- }
 
-  802a694:	b005      	add	sp, #20
 
-  802a696:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
 
- 0802a69a <xQueueCreateMutex>:
 
- /*-----------------------------------------------------------*/
 
- #if ( configUSE_MUTEXES == 1 )
 
- 	QueueHandle_t xQueueCreateMutex( const uint8_t ucQueueType )
 
- 	{
 
-  802a69a:	b570      	push	{r4, r5, r6, lr}
 
-  802a69c:	4606      	mov	r6, r0
 
- 		/* Prevent compiler warnings about unused parameters if
 
- 		configUSE_TRACE_FACILITY does not equal 1. */
 
- 		( void ) ucQueueType;
 
- 		/* Allocate the new queue structure. */
 
- 		pxNewQueue = ( Queue_t * ) pvPortMalloc( sizeof( Queue_t ) );
 
-  802a69e:	2054      	movs	r0, #84	; 0x54
 
-  802a6a0:	f001 f9b8 	bl	802ba14 <pvPortMalloc>
 
- 		if( pxNewQueue != NULL )
 
-  802a6a4:	4604      	mov	r4, r0
 
-  802a6a6:	b108      	cbz	r0, 802a6ac <xQueueCreateMutex+0x12>
 
-  802a6a8:	e003      	b.n	802a6b2 <xQueueCreateMutex+0x18>
 
-  802a6aa:	e7fe      	b.n	802a6aa <xQueueCreateMutex+0x10>
 
- 		else
 
- 		{
 
- 			traceCREATE_MUTEX_FAILED();
 
- 		}
 
- 		configASSERT( pxNewQueue );
 
-  802a6ac:	f001 f89c 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802a6b0:	e7fb      	b.n	802a6aa <xQueueCreateMutex+0x10>
 
- 			/* Each mutex has a length of 1 (like a binary semaphore) and
 
- 			an item size of 0 as nothing is actually copied into or out
 
- 			of the mutex. */
 
- 			pxNewQueue->uxMessagesWaiting = ( UBaseType_t ) 0U;
 
- 			pxNewQueue->uxLength = ( UBaseType_t ) 1U;
 
-  802a6b2:	2301      	movs	r3, #1
 
- 		/* Allocate the new queue structure. */
 
- 		pxNewQueue = ( Queue_t * ) pvPortMalloc( sizeof( Queue_t ) );
 
- 		if( pxNewQueue != NULL )
 
- 		{
 
- 			/* Information required for priority inheritance. */
 
- 			pxNewQueue->pxMutexHolder = NULL;
 
-  802a6b4:	2500      	movs	r5, #0
 
- 			/* Each mutex has a length of 1 (like a binary semaphore) and
 
- 			an item size of 0 as nothing is actually copied into or out
 
- 			of the mutex. */
 
- 			pxNewQueue->uxMessagesWaiting = ( UBaseType_t ) 0U;
 
- 			pxNewQueue->uxLength = ( UBaseType_t ) 1U;
 
-  802a6b6:	63c3      	str	r3, [r0, #60]	; 0x3c
 
- 			pxNewQueue->uxItemSize = ( UBaseType_t ) 0U;
 
- 			pxNewQueue->xRxLock = queueUNLOCKED;
 
-  802a6b8:	f04f 33ff 	mov.w	r3, #4294967295
 
- 			pxNewQueue->u.pcReadFrom = NULL;
 
- 			/* Each mutex has a length of 1 (like a binary semaphore) and
 
- 			an item size of 0 as nothing is actually copied into or out
 
- 			of the mutex. */
 
- 			pxNewQueue->uxMessagesWaiting = ( UBaseType_t ) 0U;
 
-  802a6bc:	6385      	str	r5, [r0, #56]	; 0x38
 
- 		/* Allocate the new queue structure. */
 
- 		pxNewQueue = ( Queue_t * ) pvPortMalloc( sizeof( Queue_t ) );
 
- 		if( pxNewQueue != NULL )
 
- 		{
 
- 			/* Information required for priority inheritance. */
 
- 			pxNewQueue->pxMutexHolder = NULL;
 
-  802a6be:	6045      	str	r5, [r0, #4]
 
- 			an item size of 0 as nothing is actually copied into or out
 
- 			of the mutex. */
 
- 			pxNewQueue->uxMessagesWaiting = ( UBaseType_t ) 0U;
 
- 			pxNewQueue->uxLength = ( UBaseType_t ) 1U;
 
- 			pxNewQueue->uxItemSize = ( UBaseType_t ) 0U;
 
- 			pxNewQueue->xRxLock = queueUNLOCKED;
 
-  802a6c0:	6443      	str	r3, [r0, #68]	; 0x44
 
- 		pxNewQueue = ( Queue_t * ) pvPortMalloc( sizeof( Queue_t ) );
 
- 		if( pxNewQueue != NULL )
 
- 		{
 
- 			/* Information required for priority inheritance. */
 
- 			pxNewQueue->pxMutexHolder = NULL;
 
- 			pxNewQueue->uxQueueType = queueQUEUE_IS_MUTEX;
 
-  802a6c2:	6005      	str	r5, [r0, #0]
 
- 			of the mutex. */
 
- 			pxNewQueue->uxMessagesWaiting = ( UBaseType_t ) 0U;
 
- 			pxNewQueue->uxLength = ( UBaseType_t ) 1U;
 
- 			pxNewQueue->uxItemSize = ( UBaseType_t ) 0U;
 
- 			pxNewQueue->xRxLock = queueUNLOCKED;
 
- 			pxNewQueue->xTxLock = queueUNLOCKED;
 
-  802a6c4:	6483      	str	r3, [r0, #72]	; 0x48
 
- 			pxNewQueue->pxMutexHolder = NULL;
 
- 			pxNewQueue->uxQueueType = queueQUEUE_IS_MUTEX;
 
- 			/* Queues used as a mutex no data is actually copied into or out
 
- 			of the queue. */
 
- 			pxNewQueue->pcWriteTo = NULL;
 
-  802a6c6:	6085      	str	r5, [r0, #8]
 
- 			pxNewQueue->u.pcReadFrom = NULL;
 
-  802a6c8:	60c5      	str	r5, [r0, #12]
 
- 			/* Each mutex has a length of 1 (like a binary semaphore) and
 
- 			an item size of 0 as nothing is actually copied into or out
 
- 			of the mutex. */
 
- 			pxNewQueue->uxMessagesWaiting = ( UBaseType_t ) 0U;
 
- 			pxNewQueue->uxLength = ( UBaseType_t ) 1U;
 
- 			pxNewQueue->uxItemSize = ( UBaseType_t ) 0U;
 
-  802a6ca:	6405      	str	r5, [r0, #64]	; 0x40
 
- 			pxNewQueue->xRxLock = queueUNLOCKED;
 
- 			pxNewQueue->xTxLock = queueUNLOCKED;
 
- 			#if ( configUSE_TRACE_FACILITY == 1 )
 
- 			{
 
- 				pxNewQueue->ucQueueType = ucQueueType;
 
-  802a6cc:	f880 6050 	strb.w	r6, [r0, #80]	; 0x50
 
- 				pxNewQueue->pxQueueSetContainer = NULL;
 
- 			}
 
- 			#endif
 
- 			/* Ensure the event queues start with the correct state. */
 
- 			vListInitialise( &( pxNewQueue->xTasksWaitingToSend ) );
 
-  802a6d0:	3010      	adds	r0, #16
 
-  802a6d2:	f7ff fe1a 	bl	802a30a <vListInitialise>
 
- 			vListInitialise( &( pxNewQueue->xTasksWaitingToReceive ) );
 
-  802a6d6:	f104 0024 	add.w	r0, r4, #36	; 0x24
 
-  802a6da:	f7ff fe16 	bl	802a30a <vListInitialise>
 
- 			traceCREATE_MUTEX( pxNewQueue );
 
- 			/* Start with the semaphore in the expected state. */
 
- 			( void ) xQueueGenericSend( pxNewQueue, NULL, ( TickType_t ) 0U, queueSEND_TO_BACK );
 
-  802a6de:	4620      	mov	r0, r4
 
-  802a6e0:	4629      	mov	r1, r5
 
-  802a6e2:	462a      	mov	r2, r5
 
-  802a6e4:	462b      	mov	r3, r5
 
-  802a6e6:	f7ff ff3e 	bl	802a566 <xQueueGenericSend>
 
- 			traceCREATE_MUTEX_FAILED();
 
- 		}
 
- 		configASSERT( pxNewQueue );
 
- 		return pxNewQueue;
 
- 	}
 
-  802a6ea:	4620      	mov	r0, r4
 
-  802a6ec:	bd70      	pop	{r4, r5, r6, pc}
 
- 0802a6ee <xQueueGenericSendFromISR>:
 
- #endif /* configUSE_ALTERNATIVE_API */
 
- /*-----------------------------------------------------------*/
 
- BaseType_t xQueueGenericSendFromISR( QueueHandle_t xQueue, const void * const pvItemToQueue, BaseType_t * const pxHigherPriorityTaskWoken, const BaseType_t xCopyPosition )
 
- {
 
-  802a6ee:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
 
-  802a6f2:	460f      	mov	r7, r1
 
-  802a6f4:	4616      	mov	r6, r2
 
-  802a6f6:	461d      	mov	r5, r3
 
- BaseType_t xReturn;
 
- UBaseType_t uxSavedInterruptStatus;
 
- Queue_t * const pxQueue = ( Queue_t * ) xQueue;
 
- 	configASSERT( pxQueue );
 
-  802a6f8:	4604      	mov	r4, r0
 
-  802a6fa:	b910      	cbnz	r0, 802a702 <xQueueGenericSendFromISR+0x14>
 
-  802a6fc:	f001 f874 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802a700:	e7fe      	b.n	802a700 <xQueueGenericSendFromISR+0x12>
 
- 	configASSERT( !( ( pvItemToQueue == NULL ) && ( pxQueue->uxItemSize != ( UBaseType_t ) 0U ) ) );
 
-  802a702:	bb41      	cbnz	r1, 802a756 <xQueueGenericSendFromISR+0x68>
 
-  802a704:	6c03      	ldr	r3, [r0, #64]	; 0x40
 
-  802a706:	b333      	cbz	r3, 802a756 <xQueueGenericSendFromISR+0x68>
 
-  802a708:	e022      	b.n	802a750 <xQueueGenericSendFromISR+0x62>
 
-  802a70a:	e7fe      	b.n	802a70a <xQueueGenericSendFromISR+0x1c>
 
- 	configASSERT( !( ( xCopyPosition == queueOVERWRITE ) && ( pxQueue->uxLength != 1 ) ) );
 
-  802a70c:	6be3      	ldr	r3, [r4, #60]	; 0x3c
 
-  802a70e:	2b01      	cmp	r3, #1
 
-  802a710:	d124      	bne.n	802a75c <xQueueGenericSendFromISR+0x6e>
 
-  802a712:	e026      	b.n	802a762 <xQueueGenericSendFromISR+0x74>
 
-  802a714:	e7fe      	b.n	802a714 <xQueueGenericSendFromISR+0x26>
 
- 	read, instead return a flag to say whether a context switch is required or
 
- 	not (i.e. has a task with a higher priority than us been woken by this
 
- 	post). */
 
- 	uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
 
- 	{
 
- 		if( ( pxQueue->uxMessagesWaiting < pxQueue->uxLength ) || ( xCopyPosition == queueOVERWRITE ) )
 
-  802a716:	2d02      	cmp	r5, #2
 
-  802a718:	d118      	bne.n	802a74c <xQueueGenericSendFromISR+0x5e>
 
- 			/* A task can only have an inherited priority if it is a mutex
 
- 			holder - and if there is a mutex holder then the mutex cannot be
 
- 			given from an ISR.  Therefore, unlike the xQueueGenericGive()
 
- 			function, there is no need to determine the need for priority
 
- 			disinheritance here or to clear the mutex holder TCB member. */
 
- 			( void ) prvCopyDataToQueue( pxQueue, pvItemToQueue, xCopyPosition );
 
-  802a71a:	4620      	mov	r0, r4
 
-  802a71c:	4639      	mov	r1, r7
 
-  802a71e:	462a      	mov	r2, r5
 
-  802a720:	f7ff fe7c 	bl	802a41c <prvCopyDataToQueue>
 
- 			/* The event list is not altered if the queue is locked.  This will
 
- 			be done when the queue is unlocked later. */
 
- 			if( pxQueue->xTxLock == queueUNLOCKED )
 
-  802a724:	6ca3      	ldr	r3, [r4, #72]	; 0x48
 
-  802a726:	3301      	adds	r3, #1
 
-  802a728:	d10b      	bne.n	802a742 <xQueueGenericSendFromISR+0x54>
 
- 						}
 
- 					}
 
- 				}
 
- 				#else /* configUSE_QUEUE_SETS */
 
- 				{
 
- 					if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE )
 
-  802a72a:	6a63      	ldr	r3, [r4, #36]	; 0x24
 
-  802a72c:	b903      	cbnz	r3, 802a730 <xQueueGenericSendFromISR+0x42>
 
-  802a72e:	e00b      	b.n	802a748 <xQueueGenericSendFromISR+0x5a>
 
- 					{
 
- 						if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE )
 
-  802a730:	f104 0024 	add.w	r0, r4, #36	; 0x24
 
-  802a734:	f000 fd54 	bl	802b1e0 <xTaskRemoveFromEventList>
 
-  802a738:	b130      	cbz	r0, 802a748 <xQueueGenericSendFromISR+0x5a>
 
- 						{
 
- 							/* The task waiting has a higher priority so record that a
 
- 							context	switch is required. */
 
- 							if( pxHigherPriorityTaskWoken != NULL )
 
-  802a73a:	b12e      	cbz	r6, 802a748 <xQueueGenericSendFromISR+0x5a>
 
- 							{
 
- 								*pxHigherPriorityTaskWoken = pdTRUE;
 
-  802a73c:	2401      	movs	r4, #1
 
-  802a73e:	6034      	str	r4, [r6, #0]
 
-  802a740:	e019      	b.n	802a776 <xQueueGenericSendFromISR+0x88>
 
- 			}
 
- 			else
 
- 			{
 
- 				/* Increment the lock count so the task that unlocks the queue
 
- 				knows that data was posted while it was locked. */
 
- 				++( pxQueue->xTxLock );
 
-  802a742:	6ca3      	ldr	r3, [r4, #72]	; 0x48
 
-  802a744:	3301      	adds	r3, #1
 
-  802a746:	64a3      	str	r3, [r4, #72]	; 0x48
 
- 			}
 
- 			xReturn = pdPASS;
 
-  802a748:	2401      	movs	r4, #1
 
-  802a74a:	e014      	b.n	802a776 <xQueueGenericSendFromISR+0x88>
 
- 		}
 
- 		else
 
- 		{
 
- 			traceQUEUE_SEND_FROM_ISR_FAILED( pxQueue );
 
- 			xReturn = errQUEUE_FULL;
 
-  802a74c:	2400      	movs	r4, #0
 
-  802a74e:	e012      	b.n	802a776 <xQueueGenericSendFromISR+0x88>
 
- BaseType_t xReturn;
 
- UBaseType_t uxSavedInterruptStatus;
 
- Queue_t * const pxQueue = ( Queue_t * ) xQueue;
 
- 	configASSERT( pxQueue );
 
- 	configASSERT( !( ( pvItemToQueue == NULL ) && ( pxQueue->uxItemSize != ( UBaseType_t ) 0U ) ) );
 
-  802a750:	f001 f84a 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802a754:	e7d9      	b.n	802a70a <xQueueGenericSendFromISR+0x1c>
 
- 	configASSERT( !( ( xCopyPosition == queueOVERWRITE ) && ( pxQueue->uxLength != 1 ) ) );
 
-  802a756:	2d02      	cmp	r5, #2
 
-  802a758:	d103      	bne.n	802a762 <xQueueGenericSendFromISR+0x74>
 
-  802a75a:	e7d7      	b.n	802a70c <xQueueGenericSendFromISR+0x1e>
 
-  802a75c:	f001 f844 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802a760:	e7d8      	b.n	802a714 <xQueueGenericSendFromISR+0x26>
 
- 	that have been assigned a priority at or (logically) below the maximum
 
- 	system call	interrupt priority.  FreeRTOS maintains a separate interrupt
 
- 	safe API to ensure interrupt entry is as fast and as simple as possible.
 
- 	More information (albeit Cortex-M specific) is provided on the following
 
- 	link: http://www.freertos.org/RTOS-Cortex-M3-M4.html */
 
- 	portASSERT_IF_INTERRUPT_PRIORITY_INVALID();
 
-  802a762:	f001 f911 	bl	802b988 <vPortValidateInterruptPriority>
 
- 	/* Similar to xQueueGenericSend, except without blocking if there is no room
 
- 	in the queue.  Also don't directly wake a task that was blocked on a queue
 
- 	read, instead return a flag to say whether a context switch is required or
 
- 	not (i.e. has a task with a higher priority than us been woken by this
 
- 	post). */
 
- 	uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
 
-  802a766:	f001 f83f 	bl	802b7e8 <ulPortSetInterruptMask>
 
- 	{
 
- 		if( ( pxQueue->uxMessagesWaiting < pxQueue->uxLength ) || ( xCopyPosition == queueOVERWRITE ) )
 
-  802a76a:	6ba2      	ldr	r2, [r4, #56]	; 0x38
 
-  802a76c:	6be3      	ldr	r3, [r4, #60]	; 0x3c
 
-  802a76e:	429a      	cmp	r2, r3
 
- 	/* Similar to xQueueGenericSend, except without blocking if there is no room
 
- 	in the queue.  Also don't directly wake a task that was blocked on a queue
 
- 	read, instead return a flag to say whether a context switch is required or
 
- 	not (i.e. has a task with a higher priority than us been woken by this
 
- 	post). */
 
- 	uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
 
-  802a770:	4680      	mov	r8, r0
 
- 	{
 
- 		if( ( pxQueue->uxMessagesWaiting < pxQueue->uxLength ) || ( xCopyPosition == queueOVERWRITE ) )
 
-  802a772:	d2d0      	bcs.n	802a716 <xQueueGenericSendFromISR+0x28>
 
-  802a774:	e7d1      	b.n	802a71a <xQueueGenericSendFromISR+0x2c>
 
- 		{
 
- 			traceQUEUE_SEND_FROM_ISR_FAILED( pxQueue );
 
- 			xReturn = errQUEUE_FULL;
 
- 		}
 
- 	}
 
- 	portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus );
 
-  802a776:	4640      	mov	r0, r8
 
-  802a778:	f001 f866 	bl	802b848 <vPortClearInterruptMask>
 
- 	return xReturn;
 
- }
 
-  802a77c:	4620      	mov	r0, r4
 
-  802a77e:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 
- 0802a782 <xQueueGiveFromISR>:
 
- /*-----------------------------------------------------------*/
 
- BaseType_t xQueueGiveFromISR( QueueHandle_t xQueue, BaseType_t * const pxHigherPriorityTaskWoken )
 
- {
 
-  802a782:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
-  802a784:	460d      	mov	r5, r1
 
- BaseType_t xReturn;
 
- UBaseType_t uxSavedInterruptStatus;
 
- Queue_t * const pxQueue = ( Queue_t * ) xQueue;
 
- 	configASSERT( pxQueue );
 
-  802a786:	4604      	mov	r4, r0
 
-  802a788:	b910      	cbnz	r0, 802a790 <xQueueGiveFromISR+0xe>
 
-  802a78a:	f001 f82d 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802a78e:	e7fe      	b.n	802a78e <xQueueGiveFromISR+0xc>
 
- 	/* xQueueGenericSendFromISR() should be used in the item size is not 0. */
 
- 	configASSERT( pxQueue->uxItemSize == 0 );
 
-  802a790:	6c06      	ldr	r6, [r0, #64]	; 0x40
 
-  802a792:	b116      	cbz	r6, 802a79a <xQueueGiveFromISR+0x18>
 
-  802a794:	f001 f828 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802a798:	e7fe      	b.n	802a798 <xQueueGiveFromISR+0x16>
 
- 	that have been assigned a priority at or (logically) below the maximum
 
- 	system call	interrupt priority.  FreeRTOS maintains a separate interrupt
 
- 	safe API to ensure interrupt entry is as fast and as simple as possible.
 
- 	More information (albeit Cortex-M specific) is provided on the following
 
- 	link: http://www.freertos.org/RTOS-Cortex-M3-M4.html */
 
- 	portASSERT_IF_INTERRUPT_PRIORITY_INVALID();
 
-  802a79a:	f001 f8f5 	bl	802b988 <vPortValidateInterruptPriority>
 
- 	/* Similar to xQueueGenericSendFromISR() but used with semaphores where the
 
- 	item size is 0.  Don't directly wake a task that was blocked on a queue
 
- 	read, instead return a flag to say whether a context switch is required or
 
- 	not (i.e. has a task with a higher priority than us been woken by this
 
- 	post). */
 
- 	uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
 
-  802a79e:	f001 f823 	bl	802b7e8 <ulPortSetInterruptMask>
 
- 	{
 
- 		/* When the queue is used to implement a semaphore no data is ever
 
- 		moved through the queue but it is still valid to see if the queue 'has
 
- 		space'. */
 
- 		if( pxQueue->uxMessagesWaiting < pxQueue->uxLength )
 
-  802a7a2:	6ba2      	ldr	r2, [r4, #56]	; 0x38
 
-  802a7a4:	6be3      	ldr	r3, [r4, #60]	; 0x3c
 
-  802a7a6:	429a      	cmp	r2, r3
 
- 	/* Similar to xQueueGenericSendFromISR() but used with semaphores where the
 
- 	item size is 0.  Don't directly wake a task that was blocked on a queue
 
- 	read, instead return a flag to say whether a context switch is required or
 
- 	not (i.e. has a task with a higher priority than us been woken by this
 
- 	post). */
 
- 	uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
 
-  802a7a8:	4607      	mov	r7, r0
 
- 	{
 
- 		/* When the queue is used to implement a semaphore no data is ever
 
- 		moved through the queue but it is still valid to see if the queue 'has
 
- 		space'. */
 
- 		if( pxQueue->uxMessagesWaiting < pxQueue->uxLength )
 
-  802a7aa:	d216      	bcs.n	802a7da <xQueueGiveFromISR+0x58>
 
- 			holder - and if there is a mutex holder then the mutex cannot be
 
- 			given from an ISR.  Therefore, unlike the xQueueGenericGive()
 
- 			function, there is no need to determine the need for priority
 
- 			disinheritance here or to clear the mutex holder TCB member. */
 
- 			++( pxQueue->uxMessagesWaiting );
 
-  802a7ac:	6ba3      	ldr	r3, [r4, #56]	; 0x38
 
-  802a7ae:	3301      	adds	r3, #1
 
-  802a7b0:	63a3      	str	r3, [r4, #56]	; 0x38
 
- 			/* The event list is not altered if the queue is locked.  This will
 
- 			be done when the queue is unlocked later. */
 
- 			if( pxQueue->xTxLock == queueUNLOCKED )
 
-  802a7b2:	6ca3      	ldr	r3, [r4, #72]	; 0x48
 
-  802a7b4:	3301      	adds	r3, #1
 
-  802a7b6:	d10b      	bne.n	802a7d0 <xQueueGiveFromISR+0x4e>
 
- 						}
 
- 					}
 
- 				}
 
- 				#else /* configUSE_QUEUE_SETS */
 
- 				{
 
- 					if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE )
 
-  802a7b8:	6a63      	ldr	r3, [r4, #36]	; 0x24
 
-  802a7ba:	b903      	cbnz	r3, 802a7be <xQueueGiveFromISR+0x3c>
 
-  802a7bc:	e00b      	b.n	802a7d6 <xQueueGiveFromISR+0x54>
 
- 					{
 
- 						if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE )
 
-  802a7be:	f104 0024 	add.w	r0, r4, #36	; 0x24
 
-  802a7c2:	f000 fd0d 	bl	802b1e0 <xTaskRemoveFromEventList>
 
-  802a7c6:	b130      	cbz	r0, 802a7d6 <xQueueGiveFromISR+0x54>
 
- 						{
 
- 							/* The task waiting has a higher priority so record that a
 
- 							context	switch is required. */
 
- 							if( pxHigherPriorityTaskWoken != NULL )
 
-  802a7c8:	b12d      	cbz	r5, 802a7d6 <xQueueGiveFromISR+0x54>
 
- 							{
 
- 								*pxHigherPriorityTaskWoken = pdTRUE;
 
-  802a7ca:	2401      	movs	r4, #1
 
-  802a7cc:	602c      	str	r4, [r5, #0]
 
-  802a7ce:	e005      	b.n	802a7dc <xQueueGiveFromISR+0x5a>
 
- 			}
 
- 			else
 
- 			{
 
- 				/* Increment the lock count so the task that unlocks the queue
 
- 				knows that data was posted while it was locked. */
 
- 				++( pxQueue->xTxLock );
 
-  802a7d0:	6ca3      	ldr	r3, [r4, #72]	; 0x48
 
-  802a7d2:	3301      	adds	r3, #1
 
-  802a7d4:	64a3      	str	r3, [r4, #72]	; 0x48
 
- 			}
 
- 			xReturn = pdPASS;
 
-  802a7d6:	2401      	movs	r4, #1
 
-  802a7d8:	e000      	b.n	802a7dc <xQueueGiveFromISR+0x5a>
 
- 		}
 
- 		else
 
- 		{
 
- 			traceQUEUE_SEND_FROM_ISR_FAILED( pxQueue );
 
- 			xReturn = errQUEUE_FULL;
 
-  802a7da:	4634      	mov	r4, r6
 
- 		}
 
- 	}
 
- 	portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus );
 
-  802a7dc:	4638      	mov	r0, r7
 
-  802a7de:	f001 f833 	bl	802b848 <vPortClearInterruptMask>
 
- 	return xReturn;
 
- }
 
-  802a7e2:	4620      	mov	r0, r4
 
-  802a7e4:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 
- 0802a7e6 <xQueueGenericReceive>:
 
- /*-----------------------------------------------------------*/
 
- BaseType_t xQueueGenericReceive( QueueHandle_t xQueue, void * const pvBuffer, TickType_t xTicksToWait, const BaseType_t xJustPeeking )
 
- {
 
-  802a7e6:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
 
-  802a7ea:	b085      	sub	sp, #20
 
-  802a7ec:	460e      	mov	r6, r1
 
-  802a7ee:	9201      	str	r2, [sp, #4]
 
-  802a7f0:	4699      	mov	r9, r3
 
- BaseType_t xEntryTimeSet = pdFALSE;
 
- TimeOut_t xTimeOut;
 
- int8_t *pcOriginalReadPosition;
 
- Queue_t * const pxQueue = ( Queue_t * ) xQueue;
 
- 	configASSERT( pxQueue );
 
-  802a7f2:	4604      	mov	r4, r0
 
-  802a7f4:	b910      	cbnz	r0, 802a7fc <xQueueGenericReceive+0x16>
 
-  802a7f6:	f000 fff7 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802a7fa:	e7fe      	b.n	802a7fa <xQueueGenericReceive+0x14>
 
- 	configASSERT( !( ( pvBuffer == NULL ) && ( pxQueue->uxItemSize != ( UBaseType_t ) 0U ) ) );
 
-  802a7fc:	2900      	cmp	r1, #0
 
-  802a7fe:	f040 8089 	bne.w	802a914 <xQueueGenericReceive+0x12e>
 
-  802a802:	6c03      	ldr	r3, [r0, #64]	; 0x40
 
-  802a804:	2b00      	cmp	r3, #0
 
-  802a806:	f000 8085 	beq.w	802a914 <xQueueGenericReceive+0x12e>
 
-  802a80a:	e080      	b.n	802a90e <xQueueGenericReceive+0x128>
 
-  802a80c:	e7fe      	b.n	802a80c <xQueueGenericReceive+0x26>
 
- 	#if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) )
 
- 	{
 
- 		configASSERT( !( ( xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED ) && ( xTicksToWait != 0 ) ) );
 
-  802a80e:	9d01      	ldr	r5, [sp, #4]
 
-  802a810:	b125      	cbz	r5, 802a81c <xQueueGenericReceive+0x36>
 
-  802a812:	e085      	b.n	802a920 <xQueueGenericReceive+0x13a>
 
-  802a814:	e7fe      	b.n	802a814 <xQueueGenericReceive+0x2e>
 
-  802a816:	2501      	movs	r5, #1
 
-  802a818:	e001      	b.n	802a81e <xQueueGenericReceive+0x38>
 
-  802a81a:	2500      	movs	r5, #0
 
- 		/* Interrupts and other tasks can send to and receive from the queue
 
- 		now the critical section has been exited. */
 
- 		vTaskSuspendAll();
 
- 		prvLockQueue( pxQueue );
 
-  802a81c:	2700      	movs	r7, #0
 
- 	statements within the function itself.  This is done in the interest
 
- 	of execution time efficiency. */
 
- 	for( ;; )
 
- 	{
 
- 		taskENTER_CRITICAL();
 
-  802a81e:	f000 ffeb 	bl	802b7f8 <vPortEnterCritical>
 
- 		{
 
- 			/* Is there data in the queue now?  To be running the calling task
 
- 			must be	the highest priority task wanting to access the queue. */
 
- 			if( pxQueue->uxMessagesWaiting > ( UBaseType_t ) 0 )
 
-  802a822:	6ba3      	ldr	r3, [r4, #56]	; 0x38
 
-  802a824:	b33b      	cbz	r3, 802a876 <xQueueGenericReceive+0x90>
 
- 			{
 
- 				/* Remember the read position in case the queue is only being
 
- 				peeked. */
 
- 				pcOriginalReadPosition = pxQueue->u.pcReadFrom;
 
- 				prvCopyDataFromQueue( pxQueue, pvBuffer );
 
-  802a826:	4620      	mov	r0, r4
 
-  802a828:	4631      	mov	r1, r6
 
- 			must be	the highest priority task wanting to access the queue. */
 
- 			if( pxQueue->uxMessagesWaiting > ( UBaseType_t ) 0 )
 
- 			{
 
- 				/* Remember the read position in case the queue is only being
 
- 				peeked. */
 
- 				pcOriginalReadPosition = pxQueue->u.pcReadFrom;
 
-  802a82a:	68e5      	ldr	r5, [r4, #12]
 
- 				prvCopyDataFromQueue( pxQueue, pvBuffer );
 
-  802a82c:	f7ff fde3 	bl	802a3f6 <prvCopyDataFromQueue>
 
- 				if( xJustPeeking == pdFALSE )
 
-  802a830:	f1b9 0f00 	cmp.w	r9, #0
 
-  802a834:	d112      	bne.n	802a85c <xQueueGenericReceive+0x76>
 
- 				{
 
- 					traceQUEUE_RECEIVE( pxQueue );
 
- 					/* Actually removing data, not just peeking. */
 
- 					--( pxQueue->uxMessagesWaiting );
 
-  802a836:	6ba3      	ldr	r3, [r4, #56]	; 0x38
 
-  802a838:	3b01      	subs	r3, #1
 
-  802a83a:	63a3      	str	r3, [r4, #56]	; 0x38
 
- 					#if ( configUSE_MUTEXES == 1 )
 
- 					{
 
- 						if( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX )
 
-  802a83c:	6823      	ldr	r3, [r4, #0]
 
-  802a83e:	b913      	cbnz	r3, 802a846 <xQueueGenericReceive+0x60>
 
- 						{
 
- 							/* Record the information required to implement
 
- 							priority inheritance should it become necessary. */
 
- 							pxQueue->pxMutexHolder = ( int8_t * ) pvTaskIncrementMutexHeldCount(); /*lint !e961 Cast is not redundant as TaskHandle_t is a typedef. */
 
-  802a840:	f000 fde8 	bl	802b414 <pvTaskIncrementMutexHeldCount>
 
-  802a844:	6060      	str	r0, [r4, #4]
 
- 							mtCOVERAGE_TEST_MARKER();
 
- 						}
 
- 					}
 
- 					#endif /* configUSE_MUTEXES */
 
- 					if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) == pdFALSE )
 
-  802a846:	6923      	ldr	r3, [r4, #16]
 
-  802a848:	b18b      	cbz	r3, 802a86e <xQueueGenericReceive+0x88>
 
- 					{
 
- 						if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) == pdTRUE )
 
-  802a84a:	f104 0010 	add.w	r0, r4, #16
 
-  802a84e:	f000 fcc7 	bl	802b1e0 <xTaskRemoveFromEventList>
 
-  802a852:	2801      	cmp	r0, #1
 
-  802a854:	d10b      	bne.n	802a86e <xQueueGenericReceive+0x88>
 
- 						{
 
- 							queueYIELD_IF_USING_PREEMPTION();
 
-  802a856:	f000 ffbb 	bl	802b7d0 <vPortYield>
 
-  802a85a:	e008      	b.n	802a86e <xQueueGenericReceive+0x88>
 
- 					pointer. */
 
- 					pxQueue->u.pcReadFrom = pcOriginalReadPosition;
 
- 					/* The data is being left in the queue, so see if there are
 
- 					any other tasks waiting for the data. */
 
- 					if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE )
 
-  802a85c:	6a63      	ldr	r3, [r4, #36]	; 0x24
 
- 				{
 
- 					traceQUEUE_PEEK( pxQueue );
 
- 					/* The data is not being removed, so reset the read
 
- 					pointer. */
 
- 					pxQueue->u.pcReadFrom = pcOriginalReadPosition;
 
-  802a85e:	60e5      	str	r5, [r4, #12]
 
- 					/* The data is being left in the queue, so see if there are
 
- 					any other tasks waiting for the data. */
 
- 					if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE )
 
-  802a860:	b12b      	cbz	r3, 802a86e <xQueueGenericReceive+0x88>
 
- 					{
 
- 						/* Tasks that are removed from the event list will get added to
 
- 						the pending ready list as the scheduler is still suspended. */
 
- 						if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE )
 
-  802a862:	f104 0024 	add.w	r0, r4, #36	; 0x24
 
-  802a866:	f000 fcbb 	bl	802b1e0 <xTaskRemoveFromEventList>
 
-  802a86a:	2800      	cmp	r0, #0
 
-  802a86c:	d1f3      	bne.n	802a856 <xQueueGenericReceive+0x70>
 
- 					{
 
- 						mtCOVERAGE_TEST_MARKER();
 
- 					}
 
- 				}
 
- 				taskEXIT_CRITICAL();
 
-  802a86e:	f000 ffef 	bl	802b850 <vPortExitCritical>
 
- 				return pdPASS;
 
-  802a872:	2001      	movs	r0, #1
 
-  802a874:	e057      	b.n	802a926 <xQueueGenericReceive+0x140>
 
- 			}
 
- 			else
 
- 			{
 
- 				if( xTicksToWait == ( TickType_t ) 0 )
 
-  802a876:	f8dd 8004 	ldr.w	r8, [sp, #4]
 
-  802a87a:	f1b8 0f00 	cmp.w	r8, #0
 
-  802a87e:	d102      	bne.n	802a886 <xQueueGenericReceive+0xa0>
 
- 				{
 
- 					/* The queue was empty and no block time is specified (or
 
- 					the block time has expired) so leave now. */
 
- 					taskEXIT_CRITICAL();
 
-  802a880:	f000 ffe6 	bl	802b850 <vPortExitCritical>
 
-  802a884:	e041      	b.n	802a90a <xQueueGenericReceive+0x124>
 
- 					traceQUEUE_RECEIVE_FAILED( pxQueue );
 
- 					return errQUEUE_EMPTY;
 
- 				}
 
- 				else if( xEntryTimeSet == pdFALSE )
 
-  802a886:	b915      	cbnz	r5, 802a88e <xQueueGenericReceive+0xa8>
 
- 				{
 
- 					/* The queue was empty and a block time was specified so
 
- 					configure the timeout structure. */
 
- 					vTaskSetTimeOutState( &xTimeOut );
 
-  802a888:	a802      	add	r0, sp, #8
 
-  802a88a:	f000 fce5 	bl	802b258 <vTaskSetTimeOutState>
 
- 					/* Entry time was already set. */
 
- 					mtCOVERAGE_TEST_MARKER();
 
- 				}
 
- 			}
 
- 		}
 
- 		taskEXIT_CRITICAL();
 
-  802a88e:	f000 ffdf 	bl	802b850 <vPortExitCritical>
 
- 		/* Interrupts and other tasks can send to and receive from the queue
 
- 		now the critical section has been exited. */
 
- 		vTaskSuspendAll();
 
-  802a892:	f000 fa61 	bl	802ad58 <vTaskSuspendAll>
 
- 		prvLockQueue( pxQueue );
 
-  802a896:	f000 ffaf 	bl	802b7f8 <vPortEnterCritical>
 
-  802a89a:	6c63      	ldr	r3, [r4, #68]	; 0x44
 
-  802a89c:	3301      	adds	r3, #1
 
-  802a89e:	bf08      	it	eq
 
-  802a8a0:	6467      	streq	r7, [r4, #68]	; 0x44
 
-  802a8a2:	6ca3      	ldr	r3, [r4, #72]	; 0x48
 
-  802a8a4:	3301      	adds	r3, #1
 
-  802a8a6:	bf08      	it	eq
 
-  802a8a8:	64a7      	streq	r7, [r4, #72]	; 0x48
 
-  802a8aa:	f000 ffd1 	bl	802b850 <vPortExitCritical>
 
- 		/* Update the timeout state to see if it has expired yet. */
 
- 		if( xTaskCheckForTimeOut( &xTimeOut, &xTicksToWait ) == pdFALSE )
 
-  802a8ae:	a802      	add	r0, sp, #8
 
-  802a8b0:	a901      	add	r1, sp, #4
 
-  802a8b2:	f000 fce1 	bl	802b278 <xTaskCheckForTimeOut>
 
-  802a8b6:	bb18      	cbnz	r0, 802a900 <xQueueGenericReceive+0x11a>
 
- static BaseType_t prvIsQueueEmpty( const Queue_t *pxQueue )
 
- {
 
- BaseType_t xReturn;
 
- 	taskENTER_CRITICAL();
 
-  802a8b8:	f000 ff9e 	bl	802b7f8 <vPortEnterCritical>
 
- 	{
 
- 		if( pxQueue->uxMessagesWaiting == ( UBaseType_t )  0 )
 
-  802a8bc:	6ba5      	ldr	r5, [r4, #56]	; 0x38
 
- 		else
 
- 		{
 
- 			xReturn = pdFALSE;
 
- 		}
 
- 	}
 
- 	taskEXIT_CRITICAL();
 
-  802a8be:	f000 ffc7 	bl	802b850 <vPortExitCritical>
 
- 		prvLockQueue( pxQueue );
 
- 		/* Update the timeout state to see if it has expired yet. */
 
- 		if( xTaskCheckForTimeOut( &xTimeOut, &xTicksToWait ) == pdFALSE )
 
- 		{
 
- 			if( prvIsQueueEmpty( pxQueue ) != pdFALSE )
 
-  802a8c2:	b9bd      	cbnz	r5, 802a8f4 <xQueueGenericReceive+0x10e>
 
- 			{
 
- 				traceBLOCKING_ON_QUEUE_RECEIVE( pxQueue );
 
- 				#if ( configUSE_MUTEXES == 1 )
 
- 				{
 
- 					if( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX )
 
-  802a8c4:	6823      	ldr	r3, [r4, #0]
 
-  802a8c6:	b933      	cbnz	r3, 802a8d6 <xQueueGenericReceive+0xf0>
 
- 					{
 
- 						taskENTER_CRITICAL();
 
-  802a8c8:	f000 ff96 	bl	802b7f8 <vPortEnterCritical>
 
- 						{
 
- 							vTaskPriorityInherit( ( void * ) pxQueue->pxMutexHolder );
 
-  802a8cc:	6860      	ldr	r0, [r4, #4]
 
-  802a8ce:	f000 fd17 	bl	802b300 <vTaskPriorityInherit>
 
- 						}
 
- 						taskEXIT_CRITICAL();
 
-  802a8d2:	f000 ffbd 	bl	802b850 <vPortExitCritical>
 
- 						mtCOVERAGE_TEST_MARKER();
 
- 					}
 
- 				}
 
- 				#endif
 
- 				vTaskPlaceOnEventList( &( pxQueue->xTasksWaitingToReceive ), xTicksToWait );
 
-  802a8d6:	f104 0024 	add.w	r0, r4, #36	; 0x24
 
-  802a8da:	9901      	ldr	r1, [sp, #4]
 
-  802a8dc:	f000 fc24 	bl	802b128 <vTaskPlaceOnEventList>
 
- 				prvUnlockQueue( pxQueue );
 
-  802a8e0:	4620      	mov	r0, r4
 
-  802a8e2:	f7ff fd54 	bl	802a38e <prvUnlockQueue>
 
- 				if( xTaskResumeAll() == pdFALSE )
 
-  802a8e6:	f000 fad3 	bl	802ae90 <xTaskResumeAll>
 
-  802a8ea:	2800      	cmp	r0, #0
 
-  802a8ec:	d193      	bne.n	802a816 <xQueueGenericReceive+0x30>
 
- 				{
 
- 					portYIELD_WITHIN_API();
 
-  802a8ee:	f000 ff6f 	bl	802b7d0 <vPortYield>
 
-  802a8f2:	e790      	b.n	802a816 <xQueueGenericReceive+0x30>
 
- 				}
 
- 			}
 
- 			else
 
- 			{
 
- 				/* Try again. */
 
- 				prvUnlockQueue( pxQueue );
 
-  802a8f4:	4620      	mov	r0, r4
 
-  802a8f6:	f7ff fd4a 	bl	802a38e <prvUnlockQueue>
 
- 				( void ) xTaskResumeAll();
 
-  802a8fa:	f000 fac9 	bl	802ae90 <xTaskResumeAll>
 
-  802a8fe:	e78a      	b.n	802a816 <xQueueGenericReceive+0x30>
 
- 			}
 
- 		}
 
- 		else
 
- 		{
 
- 			prvUnlockQueue( pxQueue );
 
-  802a900:	4620      	mov	r0, r4
 
-  802a902:	f7ff fd44 	bl	802a38e <prvUnlockQueue>
 
- 			( void ) xTaskResumeAll();
 
-  802a906:	f000 fac3 	bl	802ae90 <xTaskResumeAll>
 
- 			traceQUEUE_RECEIVE_FAILED( pxQueue );
 
- 			return errQUEUE_EMPTY;
 
-  802a90a:	2000      	movs	r0, #0
 
-  802a90c:	e00b      	b.n	802a926 <xQueueGenericReceive+0x140>
 
- TimeOut_t xTimeOut;
 
- int8_t *pcOriginalReadPosition;
 
- Queue_t * const pxQueue = ( Queue_t * ) xQueue;
 
- 	configASSERT( pxQueue );
 
- 	configASSERT( !( ( pvBuffer == NULL ) && ( pxQueue->uxItemSize != ( UBaseType_t ) 0U ) ) );
 
-  802a90e:	f000 ff6b 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802a912:	e77b      	b.n	802a80c <xQueueGenericReceive+0x26>
 
- 	#if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) )
 
- 	{
 
- 		configASSERT( !( ( xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED ) && ( xTicksToWait != 0 ) ) );
 
-  802a914:	f000 fce4 	bl	802b2e0 <xTaskGetSchedulerState>
 
-  802a918:	2800      	cmp	r0, #0
 
-  802a91a:	f47f af7e 	bne.w	802a81a <xQueueGenericReceive+0x34>
 
-  802a91e:	e776      	b.n	802a80e <xQueueGenericReceive+0x28>
 
-  802a920:	f000 ff62 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802a924:	e776      	b.n	802a814 <xQueueGenericReceive+0x2e>
 
- 			( void ) xTaskResumeAll();
 
- 			traceQUEUE_RECEIVE_FAILED( pxQueue );
 
- 			return errQUEUE_EMPTY;
 
- 		}
 
- 	}
 
- }
 
-  802a926:	b005      	add	sp, #20
 
-  802a928:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
 
- 0802a92c <xQueueReceiveFromISR>:
 
- /*-----------------------------------------------------------*/
 
- BaseType_t xQueueReceiveFromISR( QueueHandle_t xQueue, void * const pvBuffer, BaseType_t * const pxHigherPriorityTaskWoken )
 
- {
 
-  802a92c:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
-  802a92e:	460e      	mov	r6, r1
 
-  802a930:	4615      	mov	r5, r2
 
- BaseType_t xReturn;
 
- UBaseType_t uxSavedInterruptStatus;
 
- Queue_t * const pxQueue = ( Queue_t * ) xQueue;
 
- 	configASSERT( pxQueue );
 
-  802a932:	4604      	mov	r4, r0
 
-  802a934:	b910      	cbnz	r0, 802a93c <xQueueReceiveFromISR+0x10>
 
-  802a936:	f000 ff57 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802a93a:	e7fe      	b.n	802a93a <xQueueReceiveFromISR+0xe>
 
- 	configASSERT( !( ( pvBuffer == NULL ) && ( pxQueue->uxItemSize != ( UBaseType_t ) 0U ) ) );
 
-  802a93c:	bb09      	cbnz	r1, 802a982 <xQueueReceiveFromISR+0x56>
 
-  802a93e:	6c03      	ldr	r3, [r0, #64]	; 0x40
 
-  802a940:	b1fb      	cbz	r3, 802a982 <xQueueReceiveFromISR+0x56>
 
-  802a942:	e01b      	b.n	802a97c <xQueueReceiveFromISR+0x50>
 
-  802a944:	e7fe      	b.n	802a944 <xQueueReceiveFromISR+0x18>
 
- 		/* Cannot block in an ISR, so check there is data available. */
 
- 		if( pxQueue->uxMessagesWaiting > ( UBaseType_t ) 0 )
 
- 		{
 
- 			traceQUEUE_RECEIVE_FROM_ISR( pxQueue );
 
- 			prvCopyDataFromQueue( pxQueue, pvBuffer );
 
-  802a946:	4620      	mov	r0, r4
 
-  802a948:	4631      	mov	r1, r6
 
-  802a94a:	f7ff fd54 	bl	802a3f6 <prvCopyDataFromQueue>
 
- 			--( pxQueue->uxMessagesWaiting );
 
-  802a94e:	6ba3      	ldr	r3, [r4, #56]	; 0x38
 
-  802a950:	3b01      	subs	r3, #1
 
-  802a952:	63a3      	str	r3, [r4, #56]	; 0x38
 
- 			/* If the queue is locked the event list will not be modified.
 
- 			Instead update the lock count so the task that unlocks the queue
 
- 			will know that an ISR has removed data while the queue was
 
- 			locked. */
 
- 			if( pxQueue->xRxLock == queueUNLOCKED )
 
-  802a954:	6c63      	ldr	r3, [r4, #68]	; 0x44
 
-  802a956:	3301      	adds	r3, #1
 
-  802a958:	d10b      	bne.n	802a972 <xQueueReceiveFromISR+0x46>
 
- 			{
 
- 				if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) == pdFALSE )
 
-  802a95a:	6923      	ldr	r3, [r4, #16]
 
-  802a95c:	b903      	cbnz	r3, 802a960 <xQueueReceiveFromISR+0x34>
 
-  802a95e:	e00b      	b.n	802a978 <xQueueReceiveFromISR+0x4c>
 
- 				{
 
- 					if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) != pdFALSE )
 
-  802a960:	f104 0010 	add.w	r0, r4, #16
 
-  802a964:	f000 fc3c 	bl	802b1e0 <xTaskRemoveFromEventList>
 
-  802a968:	b130      	cbz	r0, 802a978 <xQueueReceiveFromISR+0x4c>
 
- 					{
 
- 						/* The task waiting has a higher priority than us so
 
- 						force a context switch. */
 
- 						if( pxHigherPriorityTaskWoken != NULL )
 
-  802a96a:	b12d      	cbz	r5, 802a978 <xQueueReceiveFromISR+0x4c>
 
- 						{
 
- 							*pxHigherPriorityTaskWoken = pdTRUE;
 
-  802a96c:	2401      	movs	r4, #1
 
-  802a96e:	602c      	str	r4, [r5, #0]
 
-  802a970:	e010      	b.n	802a994 <xQueueReceiveFromISR+0x68>
 
- 			}
 
- 			else
 
- 			{
 
- 				/* Increment the lock count so the task that unlocks the queue
 
- 				knows that data was removed while it was locked. */
 
- 				++( pxQueue->xRxLock );
 
-  802a972:	6c63      	ldr	r3, [r4, #68]	; 0x44
 
-  802a974:	3301      	adds	r3, #1
 
-  802a976:	6463      	str	r3, [r4, #68]	; 0x44
 
- 			}
 
- 			xReturn = pdPASS;
 
-  802a978:	2401      	movs	r4, #1
 
-  802a97a:	e00b      	b.n	802a994 <xQueueReceiveFromISR+0x68>
 
- BaseType_t xReturn;
 
- UBaseType_t uxSavedInterruptStatus;
 
- Queue_t * const pxQueue = ( Queue_t * ) xQueue;
 
- 	configASSERT( pxQueue );
 
- 	configASSERT( !( ( pvBuffer == NULL ) && ( pxQueue->uxItemSize != ( UBaseType_t ) 0U ) ) );
 
-  802a97c:	f000 ff34 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802a980:	e7e0      	b.n	802a944 <xQueueReceiveFromISR+0x18>
 
- 	that have been assigned a priority at or (logically) below the maximum
 
- 	system call	interrupt priority.  FreeRTOS maintains a separate interrupt
 
- 	safe API to ensure interrupt entry is as fast and as simple as possible.
 
- 	More information (albeit Cortex-M specific) is provided on the following
 
- 	link: http://www.freertos.org/RTOS-Cortex-M3-M4.html */
 
- 	portASSERT_IF_INTERRUPT_PRIORITY_INVALID();
 
-  802a982:	f001 f801 	bl	802b988 <vPortValidateInterruptPriority>
 
- 	uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
 
-  802a986:	f000 ff2f 	bl	802b7e8 <ulPortSetInterruptMask>
 
- 	{
 
- 		/* Cannot block in an ISR, so check there is data available. */
 
- 		if( pxQueue->uxMessagesWaiting > ( UBaseType_t ) 0 )
 
-  802a98a:	6ba3      	ldr	r3, [r4, #56]	; 0x38
 
- 	safe API to ensure interrupt entry is as fast and as simple as possible.
 
- 	More information (albeit Cortex-M specific) is provided on the following
 
- 	link: http://www.freertos.org/RTOS-Cortex-M3-M4.html */
 
- 	portASSERT_IF_INTERRUPT_PRIORITY_INVALID();
 
- 	uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
 
-  802a98c:	4607      	mov	r7, r0
 
- 	{
 
- 		/* Cannot block in an ISR, so check there is data available. */
 
- 		if( pxQueue->uxMessagesWaiting > ( UBaseType_t ) 0 )
 
-  802a98e:	2b00      	cmp	r3, #0
 
-  802a990:	d1d9      	bne.n	802a946 <xQueueReceiveFromISR+0x1a>
 
- 			xReturn = pdPASS;
 
- 		}
 
- 		else
 
- 		{
 
- 			xReturn = pdFAIL;
 
-  802a992:	461c      	mov	r4, r3
 
- 			traceQUEUE_RECEIVE_FROM_ISR_FAILED( pxQueue );
 
- 		}
 
- 	}
 
- 	portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus );
 
-  802a994:	4638      	mov	r0, r7
 
-  802a996:	f000 ff57 	bl	802b848 <vPortClearInterruptMask>
 
- 	return xReturn;
 
- }
 
-  802a99a:	4620      	mov	r0, r4
 
-  802a99c:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 
- 0802a99e <uxQueueMessagesWaiting>:
 
- 	return xReturn;
 
- }
 
- /*-----------------------------------------------------------*/
 
- UBaseType_t uxQueueMessagesWaiting( const QueueHandle_t xQueue )
 
- {
 
-  802a99e:	b510      	push	{r4, lr}
 
- UBaseType_t uxReturn;
 
- 	configASSERT( xQueue );
 
-  802a9a0:	4604      	mov	r4, r0
 
-  802a9a2:	b910      	cbnz	r0, 802a9aa <uxQueueMessagesWaiting+0xc>
 
-  802a9a4:	f000 ff20 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802a9a8:	e7fe      	b.n	802a9a8 <uxQueueMessagesWaiting+0xa>
 
- 	taskENTER_CRITICAL();
 
-  802a9aa:	f000 ff25 	bl	802b7f8 <vPortEnterCritical>
 
- 	{
 
- 		uxReturn = ( ( Queue_t * ) xQueue )->uxMessagesWaiting;
 
-  802a9ae:	6ba4      	ldr	r4, [r4, #56]	; 0x38
 
- 	}
 
- 	taskEXIT_CRITICAL();
 
-  802a9b0:	f000 ff4e 	bl	802b850 <vPortExitCritical>
 
- 	return uxReturn;
 
- } /*lint !e818 Pointer cannot be declared const as xQueue is a typedef not pointer. */
 
-  802a9b4:	4620      	mov	r0, r4
 
-  802a9b6:	bd10      	pop	{r4, pc}
 
- 0802a9b8 <uxQueueSpacesAvailable>:
 
- /*-----------------------------------------------------------*/
 
- UBaseType_t uxQueueSpacesAvailable( const QueueHandle_t xQueue )
 
- {
 
-  802a9b8:	b510      	push	{r4, lr}
 
- UBaseType_t uxReturn;
 
- Queue_t *pxQueue;
 
- 	pxQueue = ( Queue_t * ) xQueue;
 
- 	configASSERT( pxQueue );
 
-  802a9ba:	4604      	mov	r4, r0
 
-  802a9bc:	b910      	cbnz	r0, 802a9c4 <uxQueueSpacesAvailable+0xc>
 
-  802a9be:	f000 ff13 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802a9c2:	e7fe      	b.n	802a9c2 <uxQueueSpacesAvailable+0xa>
 
- 	taskENTER_CRITICAL();
 
-  802a9c4:	f000 ff18 	bl	802b7f8 <vPortEnterCritical>
 
- 	{
 
- 		uxReturn = pxQueue->uxLength - pxQueue->uxMessagesWaiting;
 
-  802a9c8:	6ba3      	ldr	r3, [r4, #56]	; 0x38
 
-  802a9ca:	6be4      	ldr	r4, [r4, #60]	; 0x3c
 
-  802a9cc:	1ae4      	subs	r4, r4, r3
 
- 	}
 
- 	taskEXIT_CRITICAL();
 
-  802a9ce:	f000 ff3f 	bl	802b850 <vPortExitCritical>
 
- 	return uxReturn;
 
- } /*lint !e818 Pointer cannot be declared const as xQueue is a typedef not pointer. */
 
-  802a9d2:	4620      	mov	r0, r4
 
-  802a9d4:	bd10      	pop	{r4, pc}
 
- 0802a9d6 <vQueueDelete>:
 
- 	return uxReturn;
 
- } /*lint !e818 Pointer cannot be declared const as xQueue is a typedef not pointer. */
 
- /*-----------------------------------------------------------*/
 
- void vQueueDelete( QueueHandle_t xQueue )
 
- {
 
-  802a9d6:	b508      	push	{r3, lr}
 
- Queue_t * const pxQueue = ( Queue_t * ) xQueue;
 
- 	configASSERT( pxQueue );
 
-  802a9d8:	b910      	cbnz	r0, 802a9e0 <vQueueDelete+0xa>
 
-  802a9da:	f000 ff05 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802a9de:	e7fe      	b.n	802a9de <vQueueDelete+0x8>
 
- 	{
 
- 		vQueueUnregisterQueue( pxQueue );
 
- 	}
 
- 	#endif
 
- 	vPortFree( pxQueue );
 
- }
 
-  802a9e0:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
 
- 	#if ( configQUEUE_REGISTRY_SIZE > 0 )
 
- 	{
 
- 		vQueueUnregisterQueue( pxQueue );
 
- 	}
 
- 	#endif
 
- 	vPortFree( pxQueue );
 
-  802a9e4:	f001 b89c 	b.w	802bb20 <vPortFree>
 
- 0802a9e8 <vQueueWaitForMessageRestricted>:
 
- /*-----------------------------------------------------------*/
 
- #if ( configUSE_TIMERS == 1 )
 
- 	void vQueueWaitForMessageRestricted( QueueHandle_t xQueue, TickType_t xTicksToWait )
 
- 	{
 
-  802a9e8:	b538      	push	{r3, r4, r5, lr}
 
-  802a9ea:	4604      	mov	r4, r0
 
-  802a9ec:	460d      	mov	r5, r1
 
- 		will not actually cause the task to block, just place it on a blocked
 
- 		list.  It will not block until the scheduler is unlocked - at which
 
- 		time a yield will be performed.  If an item is added to the queue while
 
- 		the queue is locked, and the calling task blocks on the queue, then the
 
- 		calling task will be immediately unblocked when the queue is unlocked. */
 
- 		prvLockQueue( pxQueue );
 
-  802a9ee:	f000 ff03 	bl	802b7f8 <vPortEnterCritical>
 
-  802a9f2:	6c63      	ldr	r3, [r4, #68]	; 0x44
 
-  802a9f4:	3301      	adds	r3, #1
 
-  802a9f6:	d101      	bne.n	802a9fc <vQueueWaitForMessageRestricted+0x14>
 
-  802a9f8:	2300      	movs	r3, #0
 
-  802a9fa:	6463      	str	r3, [r4, #68]	; 0x44
 
-  802a9fc:	6ca3      	ldr	r3, [r4, #72]	; 0x48
 
-  802a9fe:	3301      	adds	r3, #1
 
-  802aa00:	d101      	bne.n	802aa06 <vQueueWaitForMessageRestricted+0x1e>
 
-  802aa02:	2300      	movs	r3, #0
 
-  802aa04:	64a3      	str	r3, [r4, #72]	; 0x48
 
-  802aa06:	f000 ff23 	bl	802b850 <vPortExitCritical>
 
- 		if( pxQueue->uxMessagesWaiting == ( UBaseType_t ) 0U )
 
-  802aa0a:	6ba3      	ldr	r3, [r4, #56]	; 0x38
 
-  802aa0c:	b923      	cbnz	r3, 802aa18 <vQueueWaitForMessageRestricted+0x30>
 
- 		{
 
- 			/* There is nothing in the queue, block for the specified period. */
 
- 			vTaskPlaceOnEventListRestricted( &( pxQueue->xTasksWaitingToReceive ), xTicksToWait );
 
-  802aa0e:	f104 0024 	add.w	r0, r4, #36	; 0x24
 
-  802aa12:	4629      	mov	r1, r5
 
-  802aa14:	f000 fbbc 	bl	802b190 <vTaskPlaceOnEventListRestricted>
 
- 		}
 
- 		else
 
- 		{
 
- 			mtCOVERAGE_TEST_MARKER();
 
- 		}
 
- 		prvUnlockQueue( pxQueue );
 
-  802aa18:	4620      	mov	r0, r4
 
- 	}
 
-  802aa1a:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
 
- 		}
 
- 		else
 
- 		{
 
- 			mtCOVERAGE_TEST_MARKER();
 
- 		}
 
- 		prvUnlockQueue( pxQueue );
 
-  802aa1e:	f7ff bcb6 	b.w	802a38e <prvUnlockQueue>
 
-  802aa22:	0000      	movs	r0, r0
 
- 0802aa24 <prvResetNextTaskUnblockTime>:
 
- static void prvResetNextTaskUnblockTime( void )
 
- {
 
- TCB_t *pxTCB;
 
- 	if( listLIST_IS_EMPTY( pxDelayedTaskList ) != pdFALSE )
 
-  802aa24:	4a06      	ldr	r2, [pc, #24]	; (802aa40 <prvResetNextTaskUnblockTime+0x1c>)
 
-  802aa26:	6813      	ldr	r3, [r2, #0]
 
-  802aa28:	6819      	ldr	r1, [r3, #0]
 
-  802aa2a:	4b06      	ldr	r3, [pc, #24]	; (802aa44 <prvResetNextTaskUnblockTime+0x20>)
 
-  802aa2c:	b911      	cbnz	r1, 802aa34 <prvResetNextTaskUnblockTime+0x10>
 
- 		/* The new current delayed list is empty.  Set
 
- 		xNextTaskUnblockTime to the maximum possible value so it is
 
- 		extremely unlikely that the
 
- 		if( xTickCount >= xNextTaskUnblockTime ) test will pass until
 
- 		there is an item in the delayed list. */
 
- 		xNextTaskUnblockTime = portMAX_DELAY;
 
-  802aa2e:	f04f 32ff 	mov.w	r2, #4294967295
 
-  802aa32:	e003      	b.n	802aa3c <prvResetNextTaskUnblockTime+0x18>
 
- 	{
 
- 		/* The new current delayed list is not empty, get the value of
 
- 		the item at the head of the delayed list.  This is the time at
 
- 		which the task at the head of the delayed list should be removed
 
- 		from the Blocked state. */
 
- 		( pxTCB ) = ( TCB_t * ) listGET_OWNER_OF_HEAD_ENTRY( pxDelayedTaskList );
 
-  802aa34:	6812      	ldr	r2, [r2, #0]
 
-  802aa36:	68d2      	ldr	r2, [r2, #12]
 
- 		xNextTaskUnblockTime = listGET_LIST_ITEM_VALUE( &( ( pxTCB )->xGenericListItem ) );
 
-  802aa38:	68d2      	ldr	r2, [r2, #12]
 
-  802aa3a:	6852      	ldr	r2, [r2, #4]
 
-  802aa3c:	601a      	str	r2, [r3, #0]
 
-  802aa3e:	4770      	bx	lr
 
-  802aa40:	20000bd0 	.word	0x20000bd0
 
-  802aa44:	20000708 	.word	0x20000708
 
- 0802aa48 <prvAddCurrentTaskToDelayedList>:
 
- /*-----------------------------------------------------------*/
 
- static void prvAddCurrentTaskToDelayedList( const TickType_t xTimeToWake )
 
- {
 
- 	/* The list item will be inserted in wake time order. */
 
- 	listSET_LIST_ITEM_VALUE( &( pxCurrentTCB->xGenericListItem ), xTimeToWake );
 
-  802aa48:	4b0e      	ldr	r3, [pc, #56]	; (802aa84 <prvAddCurrentTaskToDelayedList+0x3c>)
 
-  802aa4a:	681a      	ldr	r2, [r3, #0]
 
- 	#endif /* vTaskDelete */
 
- }
 
- /*-----------------------------------------------------------*/
 
- static void prvAddCurrentTaskToDelayedList( const TickType_t xTimeToWake )
 
- {
 
-  802aa4c:	b510      	push	{r4, lr}
 
- 	/* The list item will be inserted in wake time order. */
 
- 	listSET_LIST_ITEM_VALUE( &( pxCurrentTCB->xGenericListItem ), xTimeToWake );
 
-  802aa4e:	6050      	str	r0, [r2, #4]
 
- 	if( xTimeToWake < xTickCount )
 
-  802aa50:	4a0d      	ldr	r2, [pc, #52]	; (802aa88 <prvAddCurrentTaskToDelayedList+0x40>)
 
-  802aa52:	6812      	ldr	r2, [r2, #0]
 
-  802aa54:	4290      	cmp	r0, r2
 
- 	#endif /* vTaskDelete */
 
- }
 
- /*-----------------------------------------------------------*/
 
- static void prvAddCurrentTaskToDelayedList( const TickType_t xTimeToWake )
 
- {
 
-  802aa56:	4604      	mov	r4, r0
 
- 	/* The list item will be inserted in wake time order. */
 
- 	listSET_LIST_ITEM_VALUE( &( pxCurrentTCB->xGenericListItem ), xTimeToWake );
 
- 	if( xTimeToWake < xTickCount )
 
-  802aa58:	d207      	bcs.n	802aa6a <prvAddCurrentTaskToDelayedList+0x22>
 
- 	{
 
- 		/* Wake time has overflowed.  Place this item in the overflow list. */
 
- 		vListInsert( pxOverflowDelayedTaskList, &( pxCurrentTCB->xGenericListItem ) );
 
-  802aa5a:	4a0c      	ldr	r2, [pc, #48]	; (802aa8c <prvAddCurrentTaskToDelayedList+0x44>)
 
-  802aa5c:	6810      	ldr	r0, [r2, #0]
 
-  802aa5e:	6819      	ldr	r1, [r3, #0]
 
-  802aa60:	3104      	adds	r1, #4
 
- 		else
 
- 		{
 
- 			mtCOVERAGE_TEST_MARKER();
 
- 		}
 
- 	}
 
- }
 
-  802aa62:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
- 	listSET_LIST_ITEM_VALUE( &( pxCurrentTCB->xGenericListItem ), xTimeToWake );
 
- 	if( xTimeToWake < xTickCount )
 
- 	{
 
- 		/* Wake time has overflowed.  Place this item in the overflow list. */
 
- 		vListInsert( pxOverflowDelayedTaskList, &( pxCurrentTCB->xGenericListItem ) );
 
-  802aa66:	f7ff bc6a 	b.w	802a33e <vListInsert>
 
- 	}
 
- 	else
 
- 	{
 
- 		/* The wake time has not overflowed, so the current block list is used. */
 
- 		vListInsert( pxDelayedTaskList, &( pxCurrentTCB->xGenericListItem ) );
 
-  802aa6a:	4a09      	ldr	r2, [pc, #36]	; (802aa90 <prvAddCurrentTaskToDelayedList+0x48>)
 
-  802aa6c:	6810      	ldr	r0, [r2, #0]
 
-  802aa6e:	6819      	ldr	r1, [r3, #0]
 
-  802aa70:	3104      	adds	r1, #4
 
-  802aa72:	f7ff fc64 	bl	802a33e <vListInsert>
 
- 		/* If the task entering the blocked state was placed at the head of the
 
- 		list of blocked tasks then xNextTaskUnblockTime needs to be updated
 
- 		too. */
 
- 		if( xTimeToWake < xNextTaskUnblockTime )
 
-  802aa76:	4b07      	ldr	r3, [pc, #28]	; (802aa94 <prvAddCurrentTaskToDelayedList+0x4c>)
 
-  802aa78:	681a      	ldr	r2, [r3, #0]
 
-  802aa7a:	4294      	cmp	r4, r2
 
- 		{
 
- 			xNextTaskUnblockTime = xTimeToWake;
 
-  802aa7c:	bf38      	it	cc
 
-  802aa7e:	601c      	strcc	r4, [r3, #0]
 
-  802aa80:	bd10      	pop	{r4, pc}
 
-  802aa82:	bf00      	nop
 
-  802aa84:	20000c80 	.word	0x20000c80
 
-  802aa88:	20000c9c 	.word	0x20000c9c
 
-  802aa8c:	20000ca0 	.word	0x20000ca0
 
-  802aa90:	20000bd0 	.word	0x20000bd0
 
-  802aa94:	20000708 	.word	0x20000708
 
- 0802aa98 <xTaskGenericCreate>:
 
- #endif
 
- /*-----------------------------------------------------------*/
 
- BaseType_t xTaskGenericCreate( TaskFunction_t pxTaskCode, const char * const pcName, const uint16_t usStackDepth, void * const pvParameters, UBaseType_t uxPriority, TaskHandle_t * const pxCreatedTask, StackType_t * const puxStackBuffer, const MemoryRegion_t * const xRegions ) /*lint !e971 Unqualified char types are allowed for strings and single characters only. */
 
- {
 
-  802aa98:	e92d 4ff8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-  802aa9c:	9d0a      	ldr	r5, [sp, #40]	; 0x28
 
-  802aa9e:	f8dd 802c 	ldr.w	r8, [sp, #44]	; 0x2c
 
-  802aaa2:	9e0c      	ldr	r6, [sp, #48]	; 0x30
 
-  802aaa4:	460f      	mov	r7, r1
 
-  802aaa6:	4693      	mov	fp, r2
 
-  802aaa8:	469a      	mov	sl, r3
 
- BaseType_t xReturn;
 
- TCB_t * pxNewTCB;
 
- StackType_t *pxTopOfStack;
 
- 	configASSERT( pxTaskCode );
 
-  802aaaa:	4681      	mov	r9, r0
 
-  802aaac:	b910      	cbnz	r0, 802aab4 <xTaskGenericCreate+0x1c>
 
-  802aaae:	f000 fe9b 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802aab2:	e7fe      	b.n	802aab2 <xTaskGenericCreate+0x1a>
 
- 	configASSERT( ( ( uxPriority & ( ~portPRIVILEGE_BIT ) ) < configMAX_PRIORITIES ) );
 
-  802aab4:	2d04      	cmp	r5, #4
 
-  802aab6:	d902      	bls.n	802aabe <xTaskGenericCreate+0x26>
 
-  802aab8:	f000 fe96 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802aabc:	e7fe      	b.n	802aabc <xTaskGenericCreate+0x24>
 
- 	#else /* portSTACK_GROWTH */
 
- 	{
 
- 	StackType_t *pxStack;
 
- 		/* Allocate space for the stack used by the task being created. */
 
- 		pxStack = ( StackType_t * ) pvPortMallocAligned( ( ( ( size_t ) usStackDepth ) * sizeof( StackType_t ) ), puxStackBuffer ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */
 
-  802aabe:	b936      	cbnz	r6, 802aace <xTaskGenericCreate+0x36>
 
-  802aac0:	0090      	lsls	r0, r2, #2
 
-  802aac2:	f000 ffa7 	bl	802ba14 <pvPortMalloc>
 
- 		if( pxStack != NULL )
 
-  802aac6:	4606      	mov	r6, r0
 
-  802aac8:	2800      	cmp	r0, #0
 
-  802aaca:	f000 809e 	beq.w	802ac0a <xTaskGenericCreate+0x172>
 
- 		{
 
- 			/* Allocate space for the TCB.  Where the memory comes from depends
 
- 			on the implementation of the port malloc function. */
 
- 			pxNewTCB = ( TCB_t * ) pvPortMalloc( sizeof( TCB_t ) );
 
-  802aace:	205c      	movs	r0, #92	; 0x5c
 
-  802aad0:	f000 ffa0 	bl	802ba14 <pvPortMalloc>
 
- 			if( pxNewTCB != NULL )
 
-  802aad4:	4604      	mov	r4, r0
 
-  802aad6:	b178      	cbz	r0, 802aaf8 <xTaskGenericCreate+0x60>
 
- 			{
 
- 				/* Store the stack location in the TCB. */
 
- 				pxNewTCB->pxStack = pxStack;
 
-  802aad8:	6306      	str	r6, [r0, #48]	; 0x30
 
- 	{
 
- 		/* Avoid dependency on memset() if it is not required. */
 
- 		#if( ( configCHECK_FOR_STACK_OVERFLOW > 1 ) || ( configUSE_TRACE_FACILITY == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) )
 
- 		{
 
- 			/* Just to help debugging. */
 
- 			( void ) memset( pxNewTCB->pxStack, ( int ) tskSTACK_FILL_BYTE, ( size_t ) usStackDepth * sizeof( StackType_t ) );
 
-  802aada:	ea4f 028b 	mov.w	r2, fp, lsl #2
 
-  802aade:	4630      	mov	r0, r6
 
-  802aae0:	21a5      	movs	r1, #165	; 0xa5
 
-  802aae2:	f7f7 f80d 	bl	8021b00 <memset>
 
- 		stack grows from high memory to low (as per the 80x86) or vice versa.
 
- 		portSTACK_GROWTH is used to make the result positive or negative as
 
- 		required by the port. */
 
- 		#if( portSTACK_GROWTH < 0 )
 
- 		{
 
- 			pxTopOfStack = pxNewTCB->pxStack + ( usStackDepth - ( uint16_t ) 1 );
 
-  802aae6:	6b23      	ldr	r3, [r4, #48]	; 0x30
 
-  802aae8:	f10b 3bff 	add.w	fp, fp, #4294967295
 
-  802aaec:	eb03 0b8b 	add.w	fp, r3, fp, lsl #2
 
- 			pxTopOfStack = ( StackType_t * ) ( ( ( portPOINTER_SIZE_TYPE ) pxTopOfStack ) & ( ( portPOINTER_SIZE_TYPE ) ~portBYTE_ALIGNMENT_MASK  ) ); /*lint !e923 MISRA exception.  Avoiding casts between pointers and integers is not practical.  Size differences accounted for using portPOINTER_SIZE_TYPE type. */
 
-  802aaf0:	f02b 0b07 	bic.w	fp, fp, #7
 
- static void prvInitialiseTCBVariables( TCB_t * const pxTCB, const char * const pcName, UBaseType_t uxPriority, const MemoryRegion_t * const xRegions, const uint16_t usStackDepth ) /*lint !e971 Unqualified char types are allowed for strings and single characters only. */
 
- {
 
- UBaseType_t x;
 
- 	/* Store the task name in the TCB. */
 
- 	for( x = ( UBaseType_t ) 0; x < ( UBaseType_t ) configMAX_TASK_NAME_LEN; x++ )
 
-  802aaf4:	2600      	movs	r6, #0
 
-  802aaf6:	e003      	b.n	802ab00 <xTaskGenericCreate+0x68>
 
- 			}
 
- 			else
 
- 			{
 
- 				/* The stack cannot be used as the TCB was not created.  Free it
 
- 				again. */
 
- 				vPortFree( pxStack );
 
-  802aaf8:	4630      	mov	r0, r6
 
-  802aafa:	f001 f811 	bl	802bb20 <vPortFree>
 
-  802aafe:	e084      	b.n	802ac0a <xTaskGenericCreate+0x172>
 
- 	static char *prvWriteNameToBuffer( char *pcBuffer, const char *pcTaskName );
 
- #endif
 
- /*-----------------------------------------------------------*/
 
- BaseType_t xTaskGenericCreate( TaskFunction_t pxTaskCode, const char * const pcName, const uint16_t usStackDepth, void * const pvParameters, UBaseType_t uxPriority, TaskHandle_t * const pxCreatedTask, StackType_t * const puxStackBuffer, const MemoryRegion_t * const xRegions ) /*lint !e971 Unqualified char types are allowed for strings and single characters only. */
 
-  802ab00:	19a3      	adds	r3, r4, r6
 
- UBaseType_t x;
 
- 	/* Store the task name in the TCB. */
 
- 	for( x = ( UBaseType_t ) 0; x < ( UBaseType_t ) configMAX_TASK_NAME_LEN; x++ )
 
- 	{
 
- 		pxTCB->pcTaskName[ x ] = pcName[ x ];
 
-  802ab02:	5dba      	ldrb	r2, [r7, r6]
 
-  802ab04:	f883 2034 	strb.w	r2, [r3, #52]	; 0x34
 
- 		/* Don't copy all configMAX_TASK_NAME_LEN if the string is shorter than
 
- 		configMAX_TASK_NAME_LEN characters just in case the memory after the
 
- 		string is not accessible (extremely unlikely). */
 
- 		if( pcName[ x ] == 0x00 )
 
-  802ab08:	5dbb      	ldrb	r3, [r7, r6]
 
-  802ab0a:	b113      	cbz	r3, 802ab12 <xTaskGenericCreate+0x7a>
 
- static void prvInitialiseTCBVariables( TCB_t * const pxTCB, const char * const pcName, UBaseType_t uxPriority, const MemoryRegion_t * const xRegions, const uint16_t usStackDepth ) /*lint !e971 Unqualified char types are allowed for strings and single characters only. */
 
- {
 
- UBaseType_t x;
 
- 	/* Store the task name in the TCB. */
 
- 	for( x = ( UBaseType_t ) 0; x < ( UBaseType_t ) configMAX_TASK_NAME_LEN; x++ )
 
-  802ab0c:	3601      	adds	r6, #1
 
-  802ab0e:	2e10      	cmp	r6, #16
 
-  802ab10:	d1f6      	bne.n	802ab00 <xTaskGenericCreate+0x68>
 
- 		}
 
- 	}
 
- 	/* Ensure the name string is terminated in the case that the string length
 
- 	was greater or equal to configMAX_TASK_NAME_LEN. */
 
- 	pxTCB->pcTaskName[ configMAX_TASK_NAME_LEN - 1 ] = '\0';
 
-  802ab12:	2600      	movs	r6, #0
 
- 		pxTCB->uxBasePriority = uxPriority;
 
- 		pxTCB->uxMutexesHeld = 0;
 
- 	}
 
- 	#endif /* configUSE_MUTEXES */
 
- 	vListInitialiseItem( &( pxTCB->xGenericListItem ) );
 
-  802ab14:	1d27      	adds	r7, r4, #4
 
-  802ab16:	4638      	mov	r0, r7
 
- 		}
 
- 	}
 
- 	/* Ensure the name string is terminated in the case that the string length
 
- 	was greater or equal to configMAX_TASK_NAME_LEN. */
 
- 	pxTCB->pcTaskName[ configMAX_TASK_NAME_LEN - 1 ] = '\0';
 
-  802ab18:	f884 6043 	strb.w	r6, [r4, #67]	; 0x43
 
- 	else
 
- 	{
 
- 		mtCOVERAGE_TEST_MARKER();
 
- 	}
 
- 	pxTCB->uxPriority = uxPriority;
 
-  802ab1c:	62e5      	str	r5, [r4, #44]	; 0x2c
 
- 	#if ( configUSE_MUTEXES == 1 )
 
- 	{
 
- 		pxTCB->uxBasePriority = uxPriority;
 
-  802ab1e:	64e5      	str	r5, [r4, #76]	; 0x4c
 
- 		pxTCB->uxMutexesHeld = 0;
 
-  802ab20:	6526      	str	r6, [r4, #80]	; 0x50
 
- 	}
 
- 	#endif /* configUSE_MUTEXES */
 
- 	vListInitialiseItem( &( pxTCB->xGenericListItem ) );
 
-  802ab22:	f7ff fbfd 	bl	802a320 <vListInitialiseItem>
 
- 	vListInitialiseItem( &( pxTCB->xEventListItem ) );
 
-  802ab26:	f104 0018 	add.w	r0, r4, #24
 
-  802ab2a:	f7ff fbf9 	bl	802a320 <vListInitialiseItem>
 
- 	/* Set the pxTCB as a link back from the ListItem_t.  This is so we can get
 
- 	back to	the containing TCB from a generic item in a list. */
 
- 	listSET_LIST_ITEM_OWNER( &( pxTCB->xGenericListItem ), pxTCB );
 
- 	/* Event lists are always in priority order. */
 
- 	listSET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ), ( TickType_t ) configMAX_PRIORITIES - ( TickType_t ) uxPriority ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */
 
-  802ab2e:	f1c5 0305 	rsb	r3, r5, #5
 
- 	}
 
- 	#endif /* portUSING_MPU_WRAPPERS */
 
- 	#if ( configUSE_TASK_NOTIFICATIONS == 1 )
 
- 	{
 
- 		pxTCB->ulNotifiedValue = 0;
 
-  802ab32:	6566      	str	r6, [r4, #84]	; 0x54
 
- 	vListInitialiseItem( &( pxTCB->xGenericListItem ) );
 
- 	vListInitialiseItem( &( pxTCB->xEventListItem ) );
 
- 	/* Set the pxTCB as a link back from the ListItem_t.  This is so we can get
 
- 	back to	the containing TCB from a generic item in a list. */
 
- 	listSET_LIST_ITEM_OWNER( &( pxTCB->xGenericListItem ), pxTCB );
 
-  802ab34:	6124      	str	r4, [r4, #16]
 
- 	/* Event lists are always in priority order. */
 
- 	listSET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ), ( TickType_t ) configMAX_PRIORITIES - ( TickType_t ) uxPriority ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */
 
-  802ab36:	61a3      	str	r3, [r4, #24]
 
- 	listSET_LIST_ITEM_OWNER( &( pxTCB->xEventListItem ), pxTCB );
 
-  802ab38:	6264      	str	r4, [r4, #36]	; 0x24
 
- 	#endif /* portUSING_MPU_WRAPPERS */
 
- 	#if ( configUSE_TASK_NOTIFICATIONS == 1 )
 
- 	{
 
- 		pxTCB->ulNotifiedValue = 0;
 
- 		pxTCB->eNotifyState = eNotWaitingNotification;
 
-  802ab3a:	f884 6058 	strb.w	r6, [r4, #88]	; 0x58
 
- 		{
 
- 			pxNewTCB->pxTopOfStack = pxPortInitialiseStack( pxTopOfStack, pxTaskCode, pvParameters, xRunPrivileged );
 
- 		}
 
- 		#else /* portUSING_MPU_WRAPPERS */
 
- 		{
 
- 			pxNewTCB->pxTopOfStack = pxPortInitialiseStack( pxTopOfStack, pxTaskCode, pvParameters );
 
-  802ab3e:	4658      	mov	r0, fp
 
-  802ab40:	4649      	mov	r1, r9
 
-  802ab42:	4652      	mov	r2, sl
 
-  802ab44:	f000 fe24 	bl	802b790 <pxPortInitialiseStack>
 
-  802ab48:	6020      	str	r0, [r4, #0]
 
- 		}
 
- 		#endif /* portUSING_MPU_WRAPPERS */
 
- 		if( ( void * ) pxCreatedTask != NULL )
 
-  802ab4a:	f1b8 0f00 	cmp.w	r8, #0
 
-  802ab4e:	d001      	beq.n	802ab54 <xTaskGenericCreate+0xbc>
 
- 		{
 
- 			/* Pass the TCB out - in an anonymous way.  The calling function/
 
- 			task can use this as a handle to delete the task later if
 
- 			required.*/
 
- 			*pxCreatedTask = ( TaskHandle_t ) pxNewTCB;
 
-  802ab50:	f8c8 4000 	str.w	r4, [r8]
 
- 			mtCOVERAGE_TEST_MARKER();
 
- 		}
 
- 		/* Ensure interrupts don't access the task lists while they are being
 
- 		updated. */
 
- 		taskENTER_CRITICAL();
 
-  802ab54:	f000 fe50 	bl	802b7f8 <vPortEnterCritical>
 
- 		{
 
- 			uxCurrentNumberOfTasks++;
 
-  802ab58:	4a2e      	ldr	r2, [pc, #184]	; (802ac14 <xTaskGenericCreate+0x17c>)
 
-  802ab5a:	6813      	ldr	r3, [r2, #0]
 
-  802ab5c:	3301      	adds	r3, #1
 
-  802ab5e:	6013      	str	r3, [r2, #0]
 
- 			if( pxCurrentTCB == NULL )
 
-  802ab60:	4b2d      	ldr	r3, [pc, #180]	; (802ac18 <xTaskGenericCreate+0x180>)
 
-  802ab62:	681e      	ldr	r6, [r3, #0]
 
-  802ab64:	bb36      	cbnz	r6, 802abb4 <xTaskGenericCreate+0x11c>
 
- 			{
 
- 				/* There are no other tasks, or all the other tasks are in
 
- 				the suspended state - make this the current task. */
 
- 				pxCurrentTCB =  pxNewTCB;
 
-  802ab66:	601c      	str	r4, [r3, #0]
 
- 				if( uxCurrentNumberOfTasks == ( UBaseType_t ) 1 )
 
-  802ab68:	6813      	ldr	r3, [r2, #0]
 
-  802ab6a:	2b01      	cmp	r3, #1
 
-  802ab6c:	d12a      	bne.n	802abc4 <xTaskGenericCreate+0x12c>
 
- {
 
- UBaseType_t uxPriority;
 
- 	for( uxPriority = ( UBaseType_t ) 0U; uxPriority < ( UBaseType_t ) configMAX_PRIORITIES; uxPriority++ )
 
- 	{
 
- 		vListInitialise( &( pxReadyTasksLists[ uxPriority ] ) );
 
-  802ab6e:	f8df 80d0 	ldr.w	r8, [pc, #208]	; 802ac40 <xTaskGenericCreate+0x1a8>
 
-  802ab72:	f04f 0914 	mov.w	r9, #20
 
-  802ab76:	fb09 8006 	mla	r0, r9, r6, r8
 
- static void prvInitialiseTaskLists( void )
 
- {
 
- UBaseType_t uxPriority;
 
- 	for( uxPriority = ( UBaseType_t ) 0U; uxPriority < ( UBaseType_t ) configMAX_PRIORITIES; uxPriority++ )
 
-  802ab7a:	3601      	adds	r6, #1
 
- 	{
 
- 		vListInitialise( &( pxReadyTasksLists[ uxPriority ] ) );
 
-  802ab7c:	f7ff fbc5 	bl	802a30a <vListInitialise>
 
- static void prvInitialiseTaskLists( void )
 
- {
 
- UBaseType_t uxPriority;
 
- 	for( uxPriority = ( UBaseType_t ) 0U; uxPriority < ( UBaseType_t ) configMAX_PRIORITIES; uxPriority++ )
 
-  802ab80:	2e05      	cmp	r6, #5
 
-  802ab82:	d1f8      	bne.n	802ab76 <xTaskGenericCreate+0xde>
 
- 	{
 
- 		vListInitialise( &( pxReadyTasksLists[ uxPriority ] ) );
 
- 	}
 
- 	vListInitialise( &xDelayedTaskList1 );
 
-  802ab84:	f8df 80bc 	ldr.w	r8, [pc, #188]	; 802ac44 <xTaskGenericCreate+0x1ac>
 
- 	vListInitialise( &xDelayedTaskList2 );
 
-  802ab88:	4e24      	ldr	r6, [pc, #144]	; (802ac1c <xTaskGenericCreate+0x184>)
 
- 	for( uxPriority = ( UBaseType_t ) 0U; uxPriority < ( UBaseType_t ) configMAX_PRIORITIES; uxPriority++ )
 
- 	{
 
- 		vListInitialise( &( pxReadyTasksLists[ uxPriority ] ) );
 
- 	}
 
- 	vListInitialise( &xDelayedTaskList1 );
 
-  802ab8a:	4640      	mov	r0, r8
 
-  802ab8c:	f7ff fbbd 	bl	802a30a <vListInitialise>
 
- 	vListInitialise( &xDelayedTaskList2 );
 
-  802ab90:	4630      	mov	r0, r6
 
-  802ab92:	f7ff fbba 	bl	802a30a <vListInitialise>
 
- 	vListInitialise( &xPendingReadyList );
 
-  802ab96:	4822      	ldr	r0, [pc, #136]	; (802ac20 <xTaskGenericCreate+0x188>)
 
-  802ab98:	f7ff fbb7 	bl	802a30a <vListInitialise>
 
- 	#if ( INCLUDE_vTaskDelete == 1 )
 
- 	{
 
- 		vListInitialise( &xTasksWaitingTermination );
 
-  802ab9c:	4821      	ldr	r0, [pc, #132]	; (802ac24 <xTaskGenericCreate+0x18c>)
 
-  802ab9e:	f7ff fbb4 	bl	802a30a <vListInitialise>
 
- 	}
 
- 	#endif /* INCLUDE_vTaskDelete */
 
- 	#if ( INCLUDE_vTaskSuspend == 1 )
 
- 	{
 
- 		vListInitialise( &xSuspendedTaskList );
 
-  802aba2:	4821      	ldr	r0, [pc, #132]	; (802ac28 <xTaskGenericCreate+0x190>)
 
-  802aba4:	f7ff fbb1 	bl	802a30a <vListInitialise>
 
- 	}
 
- 	#endif /* INCLUDE_vTaskSuspend */
 
- 	/* Start with pxDelayedTaskList using list1 and the pxOverflowDelayedTaskList
 
- 	using list2. */
 
- 	pxDelayedTaskList = &xDelayedTaskList1;
 
-  802aba8:	4b20      	ldr	r3, [pc, #128]	; (802ac2c <xTaskGenericCreate+0x194>)
 
-  802abaa:	f8c3 8000 	str.w	r8, [r3]
 
- 	pxOverflowDelayedTaskList = &xDelayedTaskList2;
 
-  802abae:	4b20      	ldr	r3, [pc, #128]	; (802ac30 <xTaskGenericCreate+0x198>)
 
-  802abb0:	601e      	str	r6, [r3, #0]
 
-  802abb2:	e007      	b.n	802abc4 <xTaskGenericCreate+0x12c>
 
- 			else
 
- 			{
 
- 				/* If the scheduler is not already running, make this task the
 
- 				current task if it is the highest priority task to be created
 
- 				so far. */
 
- 				if( xSchedulerRunning == pdFALSE )
 
-  802abb4:	4a1f      	ldr	r2, [pc, #124]	; (802ac34 <xTaskGenericCreate+0x19c>)
 
-  802abb6:	6812      	ldr	r2, [r2, #0]
 
-  802abb8:	b922      	cbnz	r2, 802abc4 <xTaskGenericCreate+0x12c>
 
- 				{
 
- 					if( pxCurrentTCB->uxPriority <= uxPriority )
 
-  802abba:	681a      	ldr	r2, [r3, #0]
 
-  802abbc:	6ad2      	ldr	r2, [r2, #44]	; 0x2c
 
-  802abbe:	42aa      	cmp	r2, r5
 
- 					{
 
- 						pxCurrentTCB = pxNewTCB;
 
-  802abc0:	bf98      	it	ls
 
-  802abc2:	601c      	strls	r4, [r3, #0]
 
- 				{
 
- 					mtCOVERAGE_TEST_MARKER();
 
- 				}
 
- 			}
 
- 			uxTaskNumber++;
 
-  802abc4:	4a1c      	ldr	r2, [pc, #112]	; (802ac38 <xTaskGenericCreate+0x1a0>)
 
-  802abc6:	6813      	ldr	r3, [r2, #0]
 
-  802abc8:	3301      	adds	r3, #1
 
-  802abca:	6013      	str	r3, [r2, #0]
 
- 				pxNewTCB->uxTCBNumber = uxTaskNumber;
 
- 			}
 
- 			#endif /* configUSE_TRACE_FACILITY */
 
- 			traceTASK_CREATE( pxNewTCB );
 
- 			prvAddTaskToReadyList( pxNewTCB );
 
-  802abcc:	4a1b      	ldr	r2, [pc, #108]	; (802ac3c <xTaskGenericCreate+0x1a4>)
 
- 			uxTaskNumber++;
 
- 			#if ( configUSE_TRACE_FACILITY == 1 )
 
- 			{
 
- 				/* Add a counter into the TCB for tracing only. */
 
- 				pxNewTCB->uxTCBNumber = uxTaskNumber;
 
-  802abce:	6463      	str	r3, [r4, #68]	; 0x44
 
- 			}
 
- 			#endif /* configUSE_TRACE_FACILITY */
 
- 			traceTASK_CREATE( pxNewTCB );
 
- 			prvAddTaskToReadyList( pxNewTCB );
 
-  802abd0:	6ae3      	ldr	r3, [r4, #44]	; 0x2c
 
-  802abd2:	6811      	ldr	r1, [r2, #0]
 
-  802abd4:	2401      	movs	r4, #1
 
-  802abd6:	fa04 f003 	lsl.w	r0, r4, r3
 
-  802abda:	4301      	orrs	r1, r0
 
-  802abdc:	6011      	str	r1, [r2, #0]
 
-  802abde:	4a18      	ldr	r2, [pc, #96]	; (802ac40 <xTaskGenericCreate+0x1a8>)
 
-  802abe0:	2014      	movs	r0, #20
 
-  802abe2:	fb00 2003 	mla	r0, r0, r3, r2
 
-  802abe6:	4639      	mov	r1, r7
 
-  802abe8:	f7ff fb9d 	bl	802a326 <vListInsertEnd>
 
- 			xReturn = pdPASS;
 
- 			portSETUP_TCB( pxNewTCB );
 
- 		}
 
- 		taskEXIT_CRITICAL();
 
-  802abec:	f000 fe30 	bl	802b850 <vPortExitCritical>
 
- 		traceTASK_CREATE_FAILED();
 
- 	}
 
- 	if( xReturn == pdPASS )
 
- 	{
 
- 		if( xSchedulerRunning != pdFALSE )
 
-  802abf0:	4b10      	ldr	r3, [pc, #64]	; (802ac34 <xTaskGenericCreate+0x19c>)
 
-  802abf2:	681b      	ldr	r3, [r3, #0]
 
-  802abf4:	b133      	cbz	r3, 802ac04 <xTaskGenericCreate+0x16c>
 
- 		{
 
- 			/* If the created task is of a higher priority than the current task
 
- 			then it should run now. */
 
- 			if( pxCurrentTCB->uxPriority < uxPriority )
 
-  802abf6:	4b08      	ldr	r3, [pc, #32]	; (802ac18 <xTaskGenericCreate+0x180>)
 
-  802abf8:	681b      	ldr	r3, [r3, #0]
 
-  802abfa:	6adb      	ldr	r3, [r3, #44]	; 0x2c
 
-  802abfc:	42ab      	cmp	r3, r5
 
-  802abfe:	d201      	bcs.n	802ac04 <xTaskGenericCreate+0x16c>
 
- 			{
 
- 				taskYIELD_IF_USING_PREEMPTION();
 
-  802ac00:	f000 fde6 	bl	802b7d0 <vPortYield>
 
- 			#endif /* configUSE_TRACE_FACILITY */
 
- 			traceTASK_CREATE( pxNewTCB );
 
- 			prvAddTaskToReadyList( pxNewTCB );
 
- 			xReturn = pdPASS;
 
-  802ac04:	4620      	mov	r0, r4
 
-  802ac06:	e8bd 8ff8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
- 		}
 
- 		taskEXIT_CRITICAL();
 
- 	}
 
- 	else
 
- 	{
 
- 		xReturn = errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY;
 
-  802ac0a:	f04f 30ff 	mov.w	r0, #4294967295
 
- 			mtCOVERAGE_TEST_MARKER();
 
- 		}
 
- 	}
 
- 	return xReturn;
 
- }
 
-  802ac0e:	e8bd 8ff8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
-  802ac12:	bf00      	nop
 
-  802ac14:	20000ca8 	.word	0x20000ca8
 
-  802ac18:	20000c80 	.word	0x20000c80
 
-  802ac1c:	20000bf0 	.word	0x20000bf0
 
-  802ac20:	20000c84 	.word	0x20000c84
 
-  802ac24:	20000c6c 	.word	0x20000c6c
 
-  802ac28:	20000cac 	.word	0x20000cac
 
-  802ac2c:	20000bd0 	.word	0x20000bd0
 
-  802ac30:	20000ca0 	.word	0x20000ca0
 
-  802ac34:	20000bd4 	.word	0x20000bd4
 
-  802ac38:	20000ca4 	.word	0x20000ca4
 
-  802ac3c:	20000cc0 	.word	0x20000cc0
 
-  802ac40:	20000c08 	.word	0x20000c08
 
-  802ac44:	20000bdc 	.word	0x20000bdc
 
- 0802ac48 <vTaskDelete>:
 
- /*-----------------------------------------------------------*/
 
- #if ( INCLUDE_vTaskDelete == 1 )
 
- 	void vTaskDelete( TaskHandle_t xTaskToDelete )
 
- 	{
 
-  802ac48:	b538      	push	{r3, r4, r5, lr}
 
-  802ac4a:	4604      	mov	r4, r0
 
- 	TCB_t *pxTCB;
 
- 		taskENTER_CRITICAL();
 
-  802ac4c:	f000 fdd4 	bl	802b7f8 <vPortEnterCritical>
 
- 		{
 
- 			/* If null is passed in here then it is the calling task that is
 
- 			being deleted. */
 
- 			pxTCB = prvGetTCBFromHandle( xTaskToDelete );
 
-  802ac50:	b90c      	cbnz	r4, 802ac56 <vTaskDelete+0xe>
 
-  802ac52:	4b22      	ldr	r3, [pc, #136]	; (802acdc <vTaskDelete+0x94>)
 
-  802ac54:	681c      	ldr	r4, [r3, #0]
 
- 			/* Remove task from the ready list and place in the	termination list.
 
- 			This will stop the task from be scheduled.  The idle task will check
 
- 			the termination list and free up any memory allocated by the
 
- 			scheduler for the TCB and stack. */
 
- 			if( uxListRemove( &( pxTCB->xGenericListItem ) ) == ( UBaseType_t ) 0 )
 
-  802ac56:	1d25      	adds	r5, r4, #4
 
-  802ac58:	4628      	mov	r0, r5
 
-  802ac5a:	f7ff fb88 	bl	802a36e <uxListRemove>
 
-  802ac5e:	b968      	cbnz	r0, 802ac7c <vTaskDelete+0x34>
 
- 			{
 
- 				taskRESET_READY_PRIORITY( pxTCB->uxPriority );
 
-  802ac60:	6ae2      	ldr	r2, [r4, #44]	; 0x2c
 
-  802ac62:	491f      	ldr	r1, [pc, #124]	; (802ace0 <vTaskDelete+0x98>)
 
-  802ac64:	2314      	movs	r3, #20
 
-  802ac66:	4353      	muls	r3, r2
 
-  802ac68:	58cb      	ldr	r3, [r1, r3]
 
-  802ac6a:	b93b      	cbnz	r3, 802ac7c <vTaskDelete+0x34>
 
-  802ac6c:	4b1d      	ldr	r3, [pc, #116]	; (802ace4 <vTaskDelete+0x9c>)
 
-  802ac6e:	2001      	movs	r0, #1
 
-  802ac70:	6819      	ldr	r1, [r3, #0]
 
-  802ac72:	fa00 f202 	lsl.w	r2, r0, r2
 
-  802ac76:	ea21 0202 	bic.w	r2, r1, r2
 
-  802ac7a:	601a      	str	r2, [r3, #0]
 
- 			{
 
- 				mtCOVERAGE_TEST_MARKER();
 
- 			}
 
- 			/* Is the task waiting on an event also? */
 
- 			if( listLIST_ITEM_CONTAINER( &( pxTCB->xEventListItem ) ) != NULL )
 
-  802ac7c:	6aa3      	ldr	r3, [r4, #40]	; 0x28
 
-  802ac7e:	b11b      	cbz	r3, 802ac88 <vTaskDelete+0x40>
 
- 			{
 
- 				( void ) uxListRemove( &( pxTCB->xEventListItem ) );
 
-  802ac80:	f104 0018 	add.w	r0, r4, #24
 
-  802ac84:	f7ff fb73 	bl	802a36e <uxListRemove>
 
- 			else
 
- 			{
 
- 				mtCOVERAGE_TEST_MARKER();
 
- 			}
 
- 			vListInsertEnd( &xTasksWaitingTermination, &( pxTCB->xGenericListItem ) );
 
-  802ac88:	4817      	ldr	r0, [pc, #92]	; (802ace8 <vTaskDelete+0xa0>)
 
-  802ac8a:	4629      	mov	r1, r5
 
-  802ac8c:	f7ff fb4b 	bl	802a326 <vListInsertEnd>
 
- 			/* Increment the ucTasksDeleted variable so the idle task knows
 
- 			there is a task that has been deleted and that it should therefore
 
- 			check the xTasksWaitingTermination list. */
 
- 			++uxTasksDeleted;
 
-  802ac90:	4b16      	ldr	r3, [pc, #88]	; (802acec <vTaskDelete+0xa4>)
 
-  802ac92:	681a      	ldr	r2, [r3, #0]
 
-  802ac94:	3201      	adds	r2, #1
 
-  802ac96:	601a      	str	r2, [r3, #0]
 
- 			/* Increment the uxTaskNumberVariable also so kernel aware debuggers
 
- 			can detect that the task lists need re-generating. */
 
- 			uxTaskNumber++;
 
-  802ac98:	4b15      	ldr	r3, [pc, #84]	; (802acf0 <vTaskDelete+0xa8>)
 
-  802ac9a:	681a      	ldr	r2, [r3, #0]
 
-  802ac9c:	3201      	adds	r2, #1
 
-  802ac9e:	601a      	str	r2, [r3, #0]
 
- 			traceTASK_DELETE( pxTCB );
 
- 		}
 
- 		taskEXIT_CRITICAL();
 
-  802aca0:	f000 fdd6 	bl	802b850 <vPortExitCritical>
 
- 		/* Force a reschedule if it is the currently running task that has just
 
- 		been deleted. */
 
- 		if( xSchedulerRunning != pdFALSE )
 
-  802aca4:	4b13      	ldr	r3, [pc, #76]	; (802acf4 <vTaskDelete+0xac>)
 
-  802aca6:	681b      	ldr	r3, [r3, #0]
 
-  802aca8:	2b00      	cmp	r3, #0
 
-  802acaa:	d015      	beq.n	802acd8 <vTaskDelete+0x90>
 
- 		{
 
- 			if( pxTCB == pxCurrentTCB )
 
-  802acac:	4b0b      	ldr	r3, [pc, #44]	; (802acdc <vTaskDelete+0x94>)
 
-  802acae:	681b      	ldr	r3, [r3, #0]
 
-  802acb0:	429c      	cmp	r4, r3
 
-  802acb2:	d109      	bne.n	802acc8 <vTaskDelete+0x80>
 
- 			{
 
- 				configASSERT( uxSchedulerSuspended == 0 );
 
-  802acb4:	4b10      	ldr	r3, [pc, #64]	; (802acf8 <vTaskDelete+0xb0>)
 
-  802acb6:	681b      	ldr	r3, [r3, #0]
 
-  802acb8:	b113      	cbz	r3, 802acc0 <vTaskDelete+0x78>
 
-  802acba:	f000 fd95 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802acbe:	e7fe      	b.n	802acbe <vTaskDelete+0x76>
 
- 					prvResetNextTaskUnblockTime();
 
- 				}
 
- 				taskEXIT_CRITICAL();
 
- 			}
 
- 		}
 
- 	}
 
-  802acc0:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
 
- 				in which Windows specific clean up operations are performed,
 
- 				after which it is not possible to yield away from this task -
 
- 				hence xYieldPending is used to latch that a context switch is
 
- 				required. */
 
- 				portPRE_TASK_DELETE_HOOK( pxTCB, &xYieldPending );
 
- 				portYIELD_WITHIN_API();
 
-  802acc4:	f000 bd84 	b.w	802b7d0 <vPortYield>
 
- 			}
 
- 			else
 
- 			{
 
- 				/* Reset the next expected unblock time in case it referred to
 
- 				the task that has just been deleted. */
 
- 				taskENTER_CRITICAL();
 
-  802acc8:	f000 fd96 	bl	802b7f8 <vPortEnterCritical>
 
- 				{
 
- 					prvResetNextTaskUnblockTime();
 
-  802accc:	f7ff feaa 	bl	802aa24 <prvResetNextTaskUnblockTime>
 
- 				}
 
- 				taskEXIT_CRITICAL();
 
- 			}
 
- 		}
 
- 	}
 
-  802acd0:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
 
- 				the task that has just been deleted. */
 
- 				taskENTER_CRITICAL();
 
- 				{
 
- 					prvResetNextTaskUnblockTime();
 
- 				}
 
- 				taskEXIT_CRITICAL();
 
-  802acd4:	f000 bdbc 	b.w	802b850 <vPortExitCritical>
 
-  802acd8:	bd38      	pop	{r3, r4, r5, pc}
 
-  802acda:	bf00      	nop
 
-  802acdc:	20000c80 	.word	0x20000c80
 
-  802ace0:	20000c08 	.word	0x20000c08
 
-  802ace4:	20000cc0 	.word	0x20000cc0
 
-  802ace8:	20000c6c 	.word	0x20000c6c
 
-  802acec:	20000bd8 	.word	0x20000bd8
 
-  802acf0:	20000ca4 	.word	0x20000ca4
 
-  802acf4:	20000bd4 	.word	0x20000bd4
 
-  802acf8:	20000c98 	.word	0x20000c98
 
- 0802acfc <vTaskStartScheduler>:
 
- #endif /* ( ( INCLUDE_xTaskResumeFromISR == 1 ) && ( INCLUDE_vTaskSuspend == 1 ) ) */
 
- /*-----------------------------------------------------------*/
 
- void vTaskStartScheduler( void )
 
- {
 
-  802acfc:	b530      	push	{r4, r5, lr}
 
-  802acfe:	b085      	sub	sp, #20
 
- 		xReturn = xTaskCreate( prvIdleTask, "IDLE", tskIDLE_STACK_SIZE, ( void * ) NULL, ( tskIDLE_PRIORITY | portPRIVILEGE_BIT ), &xIdleTaskHandle ); /*lint !e961 MISRA exception, justified as it is not a redundant explicit cast to all supported compilers. */
 
- 	}
 
- 	#else
 
- 	{
 
- 		/* Create the idle task without storing its handle. */
 
- 		xReturn = xTaskCreate( prvIdleTask, "IDLE", tskIDLE_STACK_SIZE, ( void * ) NULL, ( tskIDLE_PRIORITY | portPRIVILEGE_BIT ), NULL );  /*lint !e961 MISRA exception, justified as it is not a redundant explicit cast to all supported compilers. */
 
-  802ad00:	2400      	movs	r4, #0
 
-  802ad02:	2280      	movs	r2, #128	; 0x80
 
-  802ad04:	9400      	str	r4, [sp, #0]
 
-  802ad06:	9401      	str	r4, [sp, #4]
 
-  802ad08:	9402      	str	r4, [sp, #8]
 
-  802ad0a:	9403      	str	r4, [sp, #12]
 
-  802ad0c:	480e      	ldr	r0, [pc, #56]	; (802ad48 <vTaskStartScheduler+0x4c>)
 
-  802ad0e:	490f      	ldr	r1, [pc, #60]	; (802ad4c <vTaskStartScheduler+0x50>)
 
-  802ad10:	4623      	mov	r3, r4
 
-  802ad12:	f7ff fec1 	bl	802aa98 <xTaskGenericCreate>
 
- 	}
 
- 	#endif /* INCLUDE_xTaskGetIdleTaskHandle */
 
- 	#if ( configUSE_TIMERS == 1 )
 
- 	{
 
- 		if( xReturn == pdPASS )
 
-  802ad16:	2801      	cmp	r0, #1
 
- 		xReturn = xTaskCreate( prvIdleTask, "IDLE", tskIDLE_STACK_SIZE, ( void * ) NULL, ( tskIDLE_PRIORITY | portPRIVILEGE_BIT ), &xIdleTaskHandle ); /*lint !e961 MISRA exception, justified as it is not a redundant explicit cast to all supported compilers. */
 
- 	}
 
- 	#else
 
- 	{
 
- 		/* Create the idle task without storing its handle. */
 
- 		xReturn = xTaskCreate( prvIdleTask, "IDLE", tskIDLE_STACK_SIZE, ( void * ) NULL, ( tskIDLE_PRIORITY | portPRIVILEGE_BIT ), NULL );  /*lint !e961 MISRA exception, justified as it is not a redundant explicit cast to all supported compilers. */
 
-  802ad18:	4605      	mov	r5, r0
 
- 	}
 
- 	#endif /* INCLUDE_xTaskGetIdleTaskHandle */
 
- 	#if ( configUSE_TIMERS == 1 )
 
- 	{
 
- 		if( xReturn == pdPASS )
 
-  802ad1a:	d10f      	bne.n	802ad3c <vTaskStartScheduler+0x40>
 
- 		{
 
- 			xReturn = xTimerCreateTimerTask();
 
-  802ad1c:	f000 fbce 	bl	802b4bc <xTimerCreateTimerTask>
 
- 			mtCOVERAGE_TEST_MARKER();
 
- 		}
 
- 	}
 
- 	#endif /* configUSE_TIMERS */
 
- 	if( xReturn == pdPASS )
 
-  802ad20:	2801      	cmp	r0, #1
 
- 	#if ( configUSE_TIMERS == 1 )
 
- 	{
 
- 		if( xReturn == pdPASS )
 
- 		{
 
- 			xReturn = xTimerCreateTimerTask();
 
-  802ad22:	4605      	mov	r5, r0
 
- 			mtCOVERAGE_TEST_MARKER();
 
- 		}
 
- 	}
 
- 	#endif /* configUSE_TIMERS */
 
- 	if( xReturn == pdPASS )
 
-  802ad24:	d10a      	bne.n	802ad3c <vTaskStartScheduler+0x40>
 
- 		/* Interrupts are turned off here, to ensure a tick does not occur
 
- 		before or during the call to xPortStartScheduler().  The stacks of
 
- 		the created tasks contain a status word with interrupts switched on
 
- 		so interrupts will automatically get re-enabled when the first task
 
- 		starts to run. */
 
- 		portDISABLE_INTERRUPTS();
 
-  802ad26:	f000 fd5f 	bl	802b7e8 <ulPortSetInterruptMask>
 
- 			structure specific to the task that will run first. */
 
- 			_impure_ptr = &( pxCurrentTCB->xNewLib_reent );
 
- 		}
 
- 		#endif /* configUSE_NEWLIB_REENTRANT */
 
- 		xSchedulerRunning = pdTRUE;
 
-  802ad2a:	4b09      	ldr	r3, [pc, #36]	; (802ad50 <vTaskStartScheduler+0x54>)
 
-  802ad2c:	601d      	str	r5, [r3, #0]
 
- 		xTickCount = ( TickType_t ) 0U;
 
-  802ad2e:	4b09      	ldr	r3, [pc, #36]	; (802ad54 <vTaskStartScheduler+0x58>)
 
-  802ad30:	601c      	str	r4, [r3, #0]
 
- 		/* This line will only be reached if the kernel could not be started,
 
- 		because there was not enough FreeRTOS heap to create the idle task
 
- 		or the timer task. */
 
- 		configASSERT( xReturn );
 
- 	}
 
- }
 
-  802ad32:	b005      	add	sp, #20
 
-  802ad34:	e8bd 4030 	ldmia.w	sp!, {r4, r5, lr}
 
- 		the run time counter time base. */
 
- 		portCONFIGURE_TIMER_FOR_RUN_TIME_STATS();
 
- 		/* Setting up the timer tick is hardware specific and thus in the
 
- 		portable interface. */
 
- 		if( xPortStartScheduler() != pdFALSE )
 
-  802ad38:	f000 bde2 	b.w	802b900 <xPortStartScheduler>
 
- 	else
 
- 	{
 
- 		/* This line will only be reached if the kernel could not be started,
 
- 		because there was not enough FreeRTOS heap to create the idle task
 
- 		or the timer task. */
 
- 		configASSERT( xReturn );
 
-  802ad3c:	b915      	cbnz	r5, 802ad44 <vTaskStartScheduler+0x48>
 
-  802ad3e:	f000 fd53 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802ad42:	e7fe      	b.n	802ad42 <vTaskStartScheduler+0x46>
 
- 	}
 
- }
 
-  802ad44:	b005      	add	sp, #20
 
-  802ad46:	bd30      	pop	{r4, r5, pc}
 
-  802ad48:	0802af69 	.word	0x0802af69
 
-  802ad4c:	08039dd2 	.word	0x08039dd2
 
-  802ad50:	20000bd4 	.word	0x20000bd4
 
-  802ad54:	20000c9c 	.word	0x20000c9c
 
- 0802ad58 <vTaskSuspendAll>:
 
- {
 
- 	/* A critical section is not required as the variable is of type
 
- 	BaseType_t.  Please read Richard Barry's reply in the following link to a
 
- 	post in the FreeRTOS support forum before reporting this as a bug! -
 
- 	http://goo.gl/wu4acr */
 
- 	++uxSchedulerSuspended;
 
-  802ad58:	4b02      	ldr	r3, [pc, #8]	; (802ad64 <vTaskSuspendAll+0xc>)
 
-  802ad5a:	681a      	ldr	r2, [r3, #0]
 
-  802ad5c:	3201      	adds	r2, #1
 
-  802ad5e:	601a      	str	r2, [r3, #0]
 
-  802ad60:	4770      	bx	lr
 
-  802ad62:	bf00      	nop
 
-  802ad64:	20000c98 	.word	0x20000c98
 
- 0802ad68 <xTaskGetTickCount>:
 
- TickType_t xTicks;
 
- 	/* Critical section required if running on a 16 bit processor. */
 
- 	portTICK_TYPE_ENTER_CRITICAL();
 
- 	{
 
- 		xTicks = xTickCount;
 
-  802ad68:	4b01      	ldr	r3, [pc, #4]	; (802ad70 <xTaskGetTickCount+0x8>)
 
-  802ad6a:	6818      	ldr	r0, [r3, #0]
 
- 	}
 
- 	portTICK_TYPE_EXIT_CRITICAL();
 
- 	return xTicks;
 
- }
 
-  802ad6c:	4770      	bx	lr
 
-  802ad6e:	bf00      	nop
 
-  802ad70:	20000c9c 	.word	0x20000c9c
 
- 0802ad74 <xTaskIncrementTick>:
 
- 	/* Called by the portable layer each time a tick interrupt occurs.
 
- 	Increments the tick then checks to see if the new tick value will cause any
 
- 	tasks to be unblocked. */
 
- 	traceTASK_INCREMENT_TICK( xTickCount );
 
- 	if( uxSchedulerSuspended == ( UBaseType_t ) pdFALSE )
 
-  802ad74:	4b3b      	ldr	r3, [pc, #236]	; (802ae64 <xTaskIncrementTick+0xf0>)
 
-  802ad76:	681b      	ldr	r3, [r3, #0]
 
- #endif /* configUSE_TICKLESS_IDLE */
 
- /*----------------------------------------------------------*/
 
- BaseType_t xTaskIncrementTick( void )
 
- {
 
-  802ad78:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
 
- 	/* Called by the portable layer each time a tick interrupt occurs.
 
- 	Increments the tick then checks to see if the new tick value will cause any
 
- 	tasks to be unblocked. */
 
- 	traceTASK_INCREMENT_TICK( xTickCount );
 
- 	if( uxSchedulerSuspended == ( UBaseType_t ) pdFALSE )
 
-  802ad7c:	2b00      	cmp	r3, #0
 
-  802ad7e:	d15b      	bne.n	802ae38 <xTaskIncrementTick+0xc4>
 
- 	{
 
- 		/* Increment the RTOS tick, switching the delayed and overflowed
 
- 		delayed lists if it wraps to 0. */
 
- 		++xTickCount;
 
-  802ad80:	4b39      	ldr	r3, [pc, #228]	; (802ae68 <xTaskIncrementTick+0xf4>)
 
-  802ad82:	681a      	ldr	r2, [r3, #0]
 
-  802ad84:	3201      	adds	r2, #1
 
-  802ad86:	601a      	str	r2, [r3, #0]
 
- 		{
 
- 			/* Minor optimisation.  The tick count cannot change in this
 
- 			block. */
 
- 			const TickType_t xConstTickCount = xTickCount;
 
-  802ad88:	681e      	ldr	r6, [r3, #0]
 
- 			if( xConstTickCount == ( TickType_t ) 0U )
 
-  802ad8a:	b98e      	cbnz	r6, 802adb0 <xTaskIncrementTick+0x3c>
 
- 			{
 
- 				taskSWITCH_DELAYED_LISTS();
 
-  802ad8c:	4b37      	ldr	r3, [pc, #220]	; (802ae6c <xTaskIncrementTick+0xf8>)
 
-  802ad8e:	681a      	ldr	r2, [r3, #0]
 
-  802ad90:	6812      	ldr	r2, [r2, #0]
 
-  802ad92:	b112      	cbz	r2, 802ad9a <xTaskIncrementTick+0x26>
 
-  802ad94:	f000 fd28 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802ad98:	e7fe      	b.n	802ad98 <xTaskIncrementTick+0x24>
 
-  802ad9a:	4a35      	ldr	r2, [pc, #212]	; (802ae70 <xTaskIncrementTick+0xfc>)
 
-  802ad9c:	6819      	ldr	r1, [r3, #0]
 
-  802ad9e:	6810      	ldr	r0, [r2, #0]
 
-  802ada0:	6018      	str	r0, [r3, #0]
 
-  802ada2:	4b34      	ldr	r3, [pc, #208]	; (802ae74 <xTaskIncrementTick+0x100>)
 
-  802ada4:	6011      	str	r1, [r2, #0]
 
-  802ada6:	681a      	ldr	r2, [r3, #0]
 
-  802ada8:	3201      	adds	r2, #1
 
-  802adaa:	601a      	str	r2, [r3, #0]
 
-  802adac:	f7ff fe3a 	bl	802aa24 <prvResetNextTaskUnblockTime>
 
- 			/* See if this tick has made a timeout expire.  Tasks are stored in
 
- 			the	queue in the order of their wake time - meaning once one task
 
- 			has been found whose block time has not expired there is no need to
 
- 			look any further down the list. */
 
- 			if( xConstTickCount >= xNextTaskUnblockTime )
 
-  802adb0:	4b31      	ldr	r3, [pc, #196]	; (802ae78 <xTaskIncrementTick+0x104>)
 
-  802adb2:	681b      	ldr	r3, [r3, #0]
 
-  802adb4:	2400      	movs	r4, #0
 
-  802adb6:	429e      	cmp	r6, r3
 
-  802adb8:	d200      	bcs.n	802adbc <xTaskIncrementTick+0x48>
 
-  802adba:	e032      	b.n	802ae22 <xTaskIncrementTick+0xae>
 
- 			{
 
- 				for( ;; )
 
- 				{
 
- 					if( listLIST_IS_EMPTY( pxDelayedTaskList ) != pdFALSE )
 
-  802adbc:	4f2b      	ldr	r7, [pc, #172]	; (802ae6c <xTaskIncrementTick+0xf8>)
 
- 							mtCOVERAGE_TEST_MARKER();
 
- 						}
 
- 						/* Place the unblocked task into the appropriate ready
 
- 						list. */
 
- 						prvAddTaskToReadyList( pxTCB );
 
-  802adbe:	f8df 80cc 	ldr.w	r8, [pc, #204]	; 802ae8c <xTaskIncrementTick+0x118>
 
-  802adc2:	f8df a0bc 	ldr.w	sl, [pc, #188]	; 802ae80 <xTaskIncrementTick+0x10c>
 
- 			look any further down the list. */
 
- 			if( xConstTickCount >= xNextTaskUnblockTime )
 
- 			{
 
- 				for( ;; )
 
- 				{
 
- 					if( listLIST_IS_EMPTY( pxDelayedTaskList ) != pdFALSE )
 
-  802adc6:	683b      	ldr	r3, [r7, #0]
 
-  802adc8:	681b      	ldr	r3, [r3, #0]
 
-  802adca:	2b00      	cmp	r3, #0
 
-  802adcc:	d13a      	bne.n	802ae44 <xTaskIncrementTick+0xd0>
 
- 						/* The delayed list is empty.  Set xNextTaskUnblockTime
 
- 						to the maximum possible value so it is extremely
 
- 						unlikely that the
 
- 						if( xTickCount >= xNextTaskUnblockTime ) test will pass
 
- 						next time through. */
 
- 						xNextTaskUnblockTime = portMAX_DELAY;
 
-  802adce:	4b2a      	ldr	r3, [pc, #168]	; (802ae78 <xTaskIncrementTick+0x104>)
 
-  802add0:	f04f 32ff 	mov.w	r2, #4294967295
 
-  802add4:	601a      	str	r2, [r3, #0]
 
- 						break;
 
-  802add6:	e024      	b.n	802ae22 <xTaskIncrementTick+0xae>
 
- 							/* It is not time to unblock this item yet, but the
 
- 							item value is the time at which the task at the head
 
- 							of the blocked list must be removed from the Blocked
 
- 							state -	so record the item value in
 
- 							xNextTaskUnblockTime. */
 
- 							xNextTaskUnblockTime = xItemValue;
 
-  802add8:	4a27      	ldr	r2, [pc, #156]	; (802ae78 <xTaskIncrementTick+0x104>)
 
-  802adda:	6013      	str	r3, [r2, #0]
 
- 							break;
 
-  802addc:	e021      	b.n	802ae22 <xTaskIncrementTick+0xae>
 
- 						{
 
- 							mtCOVERAGE_TEST_MARKER();
 
- 						}
 
- 						/* It is time to remove the item from the Blocked state. */
 
- 						( void ) uxListRemove( &( pxTCB->xGenericListItem ) );
 
-  802adde:	f105 0904 	add.w	r9, r5, #4
 
-  802ade2:	4648      	mov	r0, r9
 
-  802ade4:	f7ff fac3 	bl	802a36e <uxListRemove>
 
- 						/* Is the task waiting on an event also?  If so remove
 
- 						it from the event list. */
 
- 						if( listLIST_ITEM_CONTAINER( &( pxTCB->xEventListItem ) ) != NULL )
 
-  802ade8:	6aab      	ldr	r3, [r5, #40]	; 0x28
 
-  802adea:	b11b      	cbz	r3, 802adf4 <xTaskIncrementTick+0x80>
 
- 						{
 
- 							( void ) uxListRemove( &( pxTCB->xEventListItem ) );
 
-  802adec:	f105 0018 	add.w	r0, r5, #24
 
-  802adf0:	f7ff fabd 	bl	802a36e <uxListRemove>
 
- 							mtCOVERAGE_TEST_MARKER();
 
- 						}
 
- 						/* Place the unblocked task into the appropriate ready
 
- 						list. */
 
- 						prvAddTaskToReadyList( pxTCB );
 
-  802adf4:	6aeb      	ldr	r3, [r5, #44]	; 0x2c
 
-  802adf6:	f8d8 1000 	ldr.w	r1, [r8]
 
-  802adfa:	2201      	movs	r2, #1
 
-  802adfc:	fa02 f203 	lsl.w	r2, r2, r3
 
-  802ae00:	2014      	movs	r0, #20
 
-  802ae02:	430a      	orrs	r2, r1
 
-  802ae04:	fb00 a003 	mla	r0, r0, r3, sl
 
-  802ae08:	4649      	mov	r1, r9
 
-  802ae0a:	f8c8 2000 	str.w	r2, [r8]
 
-  802ae0e:	f7ff fa8a 	bl	802a326 <vListInsertEnd>
 
- 						{
 
- 							/* Preemption is on, but a context switch should
 
- 							only be performed if the unblocked task has a
 
- 							priority that is equal to or higher than the
 
- 							currently executing task. */
 
- 							if( pxTCB->uxPriority >= pxCurrentTCB->uxPriority )
 
-  802ae12:	4b1a      	ldr	r3, [pc, #104]	; (802ae7c <xTaskIncrementTick+0x108>)
 
-  802ae14:	6aea      	ldr	r2, [r5, #44]	; 0x2c
 
-  802ae16:	681b      	ldr	r3, [r3, #0]
 
-  802ae18:	6adb      	ldr	r3, [r3, #44]	; 0x2c
 
- 							{
 
- 								xSwitchRequired = pdTRUE;
 
-  802ae1a:	429a      	cmp	r2, r3
 
-  802ae1c:	bf28      	it	cs
 
-  802ae1e:	2401      	movcs	r4, #1
 
-  802ae20:	e7d1      	b.n	802adc6 <xTaskIncrementTick+0x52>
 
- 		/* Tasks of equal priority to the currently running task will share
 
- 		processing time (time slice) if preemption is on, and the application
 
- 		writer has not explicitly turned time slicing off. */
 
- 		#if ( ( configUSE_PREEMPTION == 1 ) && ( configUSE_TIME_SLICING == 1 ) )
 
- 		{
 
- 			if( listCURRENT_LIST_LENGTH( &( pxReadyTasksLists[ pxCurrentTCB->uxPriority ] ) ) > ( UBaseType_t ) 1 )
 
-  802ae22:	4b16      	ldr	r3, [pc, #88]	; (802ae7c <xTaskIncrementTick+0x108>)
 
-  802ae24:	681b      	ldr	r3, [r3, #0]
 
-  802ae26:	6adb      	ldr	r3, [r3, #44]	; 0x2c
 
-  802ae28:	2214      	movs	r2, #20
 
-  802ae2a:	4353      	muls	r3, r2
 
-  802ae2c:	4a14      	ldr	r2, [pc, #80]	; (802ae80 <xTaskIncrementTick+0x10c>)
 
-  802ae2e:	58d3      	ldr	r3, [r2, r3]
 
- 			{
 
- 				xSwitchRequired = pdTRUE;
 
-  802ae30:	2b01      	cmp	r3, #1
 
-  802ae32:	bf88      	it	hi
 
-  802ae34:	2401      	movhi	r4, #1
 
-  802ae36:	e00c      	b.n	802ae52 <xTaskIncrementTick+0xde>
 
- 		}
 
- 		#endif /* configUSE_TICK_HOOK */
 
- 	}
 
- 	else
 
- 	{
 
- 		++uxPendedTicks;
 
-  802ae38:	4b12      	ldr	r3, [pc, #72]	; (802ae84 <xTaskIncrementTick+0x110>)
 
-  802ae3a:	681a      	ldr	r2, [r3, #0]
 
-  802ae3c:	3201      	adds	r2, #1
 
-  802ae3e:	601a      	str	r2, [r3, #0]
 
- BaseType_t xTaskIncrementTick( void )
 
- {
 
- TCB_t * pxTCB;
 
- TickType_t xItemValue;
 
- BaseType_t xSwitchRequired = pdFALSE;
 
-  802ae40:	2400      	movs	r4, #0
 
-  802ae42:	e006      	b.n	802ae52 <xTaskIncrementTick+0xde>
 
- 					{
 
- 						/* The delayed list is not empty, get the value of the
 
- 						item at the head of the delayed list.  This is the time
 
- 						at which the task at the head of the delayed list must
 
- 						be removed from the Blocked state. */
 
- 						pxTCB = ( TCB_t * ) listGET_OWNER_OF_HEAD_ENTRY( pxDelayedTaskList );
 
-  802ae44:	683b      	ldr	r3, [r7, #0]
 
-  802ae46:	68db      	ldr	r3, [r3, #12]
 
-  802ae48:	68dd      	ldr	r5, [r3, #12]
 
- 						xItemValue = listGET_LIST_ITEM_VALUE( &( pxTCB->xGenericListItem ) );
 
-  802ae4a:	686b      	ldr	r3, [r5, #4]
 
- 						if( xConstTickCount < xItemValue )
 
-  802ae4c:	429e      	cmp	r6, r3
 
-  802ae4e:	d2c6      	bcs.n	802adde <xTaskIncrementTick+0x6a>
 
-  802ae50:	e7c2      	b.n	802add8 <xTaskIncrementTick+0x64>
 
- 		#endif
 
- 	}
 
- 	#if ( configUSE_PREEMPTION == 1 )
 
- 	{
 
- 		if( xYieldPending != pdFALSE )
 
-  802ae52:	4b0d      	ldr	r3, [pc, #52]	; (802ae88 <xTaskIncrementTick+0x114>)
 
-  802ae54:	681b      	ldr	r3, [r3, #0]
 
- 		{
 
- 			xSwitchRequired = pdTRUE;
 
-  802ae56:	2b00      	cmp	r3, #0
 
-  802ae58:	bf18      	it	ne
 
-  802ae5a:	2401      	movne	r4, #1
 
- 		}
 
- 	}
 
- 	#endif /* configUSE_PREEMPTION */
 
- 	return xSwitchRequired;
 
- }
 
-  802ae5c:	4620      	mov	r0, r4
 
-  802ae5e:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
 
-  802ae62:	bf00      	nop
 
-  802ae64:	20000c98 	.word	0x20000c98
 
-  802ae68:	20000c9c 	.word	0x20000c9c
 
-  802ae6c:	20000bd0 	.word	0x20000bd0
 
-  802ae70:	20000ca0 	.word	0x20000ca0
 
-  802ae74:	20000bcc 	.word	0x20000bcc
 
-  802ae78:	20000708 	.word	0x20000708
 
-  802ae7c:	20000c80 	.word	0x20000c80
 
-  802ae80:	20000c08 	.word	0x20000c08
 
-  802ae84:	20000c04 	.word	0x20000c04
 
-  802ae88:	20000cc4 	.word	0x20000cc4
 
-  802ae8c:	20000cc0 	.word	0x20000cc0
 
- 0802ae90 <xTaskResumeAll>:
 
- #endif /* configUSE_TICKLESS_IDLE */
 
- /*----------------------------------------------------------*/
 
- BaseType_t xTaskResumeAll( void )
 
- {
 
-  802ae90:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
 
- TCB_t *pxTCB;
 
- BaseType_t xAlreadyYielded = pdFALSE;
 
- 	/* If uxSchedulerSuspended is zero then this function does not match a
 
- 	previous call to vTaskSuspendAll(). */
 
- 	configASSERT( uxSchedulerSuspended );
 
-  802ae94:	4c2c      	ldr	r4, [pc, #176]	; (802af48 <xTaskResumeAll+0xb8>)
 
-  802ae96:	6823      	ldr	r3, [r4, #0]
 
-  802ae98:	b913      	cbnz	r3, 802aea0 <xTaskResumeAll+0x10>
 
-  802ae9a:	f000 fca5 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802ae9e:	e7fe      	b.n	802ae9e <xTaskResumeAll+0xe>
 
- 	/* It is possible that an ISR caused a task to be removed from an event
 
- 	list while the scheduler was suspended.  If this was the case then the
 
- 	removed task will have been added to the xPendingReadyList.  Once the
 
- 	scheduler has been resumed it is safe to move all the pending ready
 
- 	tasks from this list into their appropriate ready list. */
 
- 	taskENTER_CRITICAL();
 
-  802aea0:	f000 fcaa 	bl	802b7f8 <vPortEnterCritical>
 
- 	{
 
- 		--uxSchedulerSuspended;
 
-  802aea4:	6823      	ldr	r3, [r4, #0]
 
-  802aea6:	3b01      	subs	r3, #1
 
-  802aea8:	6023      	str	r3, [r4, #0]
 
- 		if( uxSchedulerSuspended == ( UBaseType_t ) pdFALSE )
 
-  802aeaa:	6823      	ldr	r3, [r4, #0]
 
-  802aeac:	b10b      	cbz	r3, 802aeb2 <xTaskResumeAll+0x22>
 
- /*----------------------------------------------------------*/
 
- BaseType_t xTaskResumeAll( void )
 
- {
 
- TCB_t *pxTCB;
 
- BaseType_t xAlreadyYielded = pdFALSE;
 
-  802aeae:	2400      	movs	r4, #0
 
-  802aeb0:	e044      	b.n	802af3c <xTaskResumeAll+0xac>
 
- 	{
 
- 		--uxSchedulerSuspended;
 
- 		if( uxSchedulerSuspended == ( UBaseType_t ) pdFALSE )
 
- 		{
 
- 			if( uxCurrentNumberOfTasks > ( UBaseType_t ) 0U )
 
-  802aeb2:	4b26      	ldr	r3, [pc, #152]	; (802af4c <xTaskResumeAll+0xbc>)
 
-  802aeb4:	681b      	ldr	r3, [r3, #0]
 
-  802aeb6:	bb0b      	cbnz	r3, 802aefc <xTaskResumeAll+0x6c>
 
-  802aeb8:	e7f9      	b.n	802aeae <xTaskResumeAll+0x1e>
 
- 			{
 
- 				/* Move any readied tasks from the pending list into the
 
- 				appropriate ready list. */
 
- 				while( listLIST_IS_EMPTY( &xPendingReadyList ) == pdFALSE )
 
- 				{
 
- 					pxTCB = ( TCB_t * ) listGET_OWNER_OF_HEAD_ENTRY( ( &xPendingReadyList ) );
 
-  802aeba:	68f3      	ldr	r3, [r6, #12]
 
-  802aebc:	68dc      	ldr	r4, [r3, #12]
 
- 					( void ) uxListRemove( &( pxTCB->xEventListItem ) );
 
- 					( void ) uxListRemove( &( pxTCB->xGenericListItem ) );
 
-  802aebe:	f104 0804 	add.w	r8, r4, #4
 
- 				/* Move any readied tasks from the pending list into the
 
- 				appropriate ready list. */
 
- 				while( listLIST_IS_EMPTY( &xPendingReadyList ) == pdFALSE )
 
- 				{
 
- 					pxTCB = ( TCB_t * ) listGET_OWNER_OF_HEAD_ENTRY( ( &xPendingReadyList ) );
 
- 					( void ) uxListRemove( &( pxTCB->xEventListItem ) );
 
-  802aec2:	f104 0018 	add.w	r0, r4, #24
 
-  802aec6:	f7ff fa52 	bl	802a36e <uxListRemove>
 
- 					( void ) uxListRemove( &( pxTCB->xGenericListItem ) );
 
-  802aeca:	4640      	mov	r0, r8
 
-  802aecc:	f7ff fa4f 	bl	802a36e <uxListRemove>
 
- 					prvAddTaskToReadyList( pxTCB );
 
-  802aed0:	6ae3      	ldr	r3, [r4, #44]	; 0x2c
 
-  802aed2:	682a      	ldr	r2, [r5, #0]
 
-  802aed4:	2701      	movs	r7, #1
 
-  802aed6:	fa07 f103 	lsl.w	r1, r7, r3
 
-  802aeda:	2014      	movs	r0, #20
 
-  802aedc:	430a      	orrs	r2, r1
 
-  802aede:	fb00 9003 	mla	r0, r0, r3, r9
 
-  802aee2:	4641      	mov	r1, r8
 
-  802aee4:	602a      	str	r2, [r5, #0]
 
-  802aee6:	f7ff fa1e 	bl	802a326 <vListInsertEnd>
 
- 					/* If the moved task has a priority higher than the current
 
- 					task then a yield must be performed. */
 
- 					if( pxTCB->uxPriority >= pxCurrentTCB->uxPriority )
 
-  802aeea:	4b19      	ldr	r3, [pc, #100]	; (802af50 <xTaskResumeAll+0xc0>)
 
-  802aeec:	6ae2      	ldr	r2, [r4, #44]	; 0x2c
 
-  802aeee:	681b      	ldr	r3, [r3, #0]
 
-  802aef0:	6adb      	ldr	r3, [r3, #44]	; 0x2c
 
-  802aef2:	429a      	cmp	r2, r3
 
-  802aef4:	d306      	bcc.n	802af04 <xTaskResumeAll+0x74>
 
- 					{
 
- 						xYieldPending = pdTRUE;
 
-  802aef6:	4b17      	ldr	r3, [pc, #92]	; (802af54 <xTaskResumeAll+0xc4>)
 
-  802aef8:	601f      	str	r7, [r3, #0]
 
-  802aefa:	e003      	b.n	802af04 <xTaskResumeAll+0x74>
 
- 		{
 
- 			if( uxCurrentNumberOfTasks > ( UBaseType_t ) 0U )
 
- 			{
 
- 				/* Move any readied tasks from the pending list into the
 
- 				appropriate ready list. */
 
- 				while( listLIST_IS_EMPTY( &xPendingReadyList ) == pdFALSE )
 
-  802aefc:	4e16      	ldr	r6, [pc, #88]	; (802af58 <xTaskResumeAll+0xc8>)
 
- 				{
 
- 					pxTCB = ( TCB_t * ) listGET_OWNER_OF_HEAD_ENTRY( ( &xPendingReadyList ) );
 
- 					( void ) uxListRemove( &( pxTCB->xEventListItem ) );
 
- 					( void ) uxListRemove( &( pxTCB->xGenericListItem ) );
 
- 					prvAddTaskToReadyList( pxTCB );
 
-  802aefe:	4d17      	ldr	r5, [pc, #92]	; (802af5c <xTaskResumeAll+0xcc>)
 
-  802af00:	f8df 9060 	ldr.w	r9, [pc, #96]	; 802af64 <xTaskResumeAll+0xd4>
 
- 		{
 
- 			if( uxCurrentNumberOfTasks > ( UBaseType_t ) 0U )
 
- 			{
 
- 				/* Move any readied tasks from the pending list into the
 
- 				appropriate ready list. */
 
- 				while( listLIST_IS_EMPTY( &xPendingReadyList ) == pdFALSE )
 
-  802af04:	6833      	ldr	r3, [r6, #0]
 
-  802af06:	2b00      	cmp	r3, #0
 
-  802af08:	d1d7      	bne.n	802aeba <xTaskResumeAll+0x2a>
 
- 				/* If any ticks occurred while the scheduler was suspended then
 
- 				they should be processed now.  This ensures the tick count does
 
- 				not	slip, and that any delayed tasks are resumed at the correct
 
- 				time. */
 
- 				if( uxPendedTicks > ( UBaseType_t ) 0U )
 
-  802af0a:	4c15      	ldr	r4, [pc, #84]	; (802af60 <xTaskResumeAll+0xd0>)
 
-  802af0c:	6823      	ldr	r3, [r4, #0]
 
-  802af0e:	b96b      	cbnz	r3, 802af2c <xTaskResumeAll+0x9c>
 
- 				else
 
- 				{
 
- 					mtCOVERAGE_TEST_MARKER();
 
- 				}
 
- 				if( xYieldPending == pdTRUE )
 
-  802af10:	4b10      	ldr	r3, [pc, #64]	; (802af54 <xTaskResumeAll+0xc4>)
 
-  802af12:	681c      	ldr	r4, [r3, #0]
 
-  802af14:	2c01      	cmp	r4, #1
 
-  802af16:	d1ca      	bne.n	802aeae <xTaskResumeAll+0x1e>
 
-  802af18:	e00e      	b.n	802af38 <xTaskResumeAll+0xa8>
 
- 				time. */
 
- 				if( uxPendedTicks > ( UBaseType_t ) 0U )
 
- 				{
 
- 					while( uxPendedTicks > ( UBaseType_t ) 0U )
 
- 					{
 
- 						if( xTaskIncrementTick() != pdFALSE )
 
-  802af1a:	f7ff ff2b 	bl	802ad74 <xTaskIncrementTick>
 
-  802af1e:	b108      	cbz	r0, 802af24 <xTaskResumeAll+0x94>
 
- 						{
 
- 							xYieldPending = pdTRUE;
 
-  802af20:	2301      	movs	r3, #1
 
-  802af22:	6033      	str	r3, [r6, #0]
 
- 						}
 
- 						else
 
- 						{
 
- 							mtCOVERAGE_TEST_MARKER();
 
- 						}
 
- 						--uxPendedTicks;
 
-  802af24:	682b      	ldr	r3, [r5, #0]
 
-  802af26:	3b01      	subs	r3, #1
 
-  802af28:	602b      	str	r3, [r5, #0]
 
-  802af2a:	e001      	b.n	802af30 <xTaskResumeAll+0xa0>
 
- 				{
 
- 					while( uxPendedTicks > ( UBaseType_t ) 0U )
 
- 					{
 
- 						if( xTaskIncrementTick() != pdFALSE )
 
- 						{
 
- 							xYieldPending = pdTRUE;
 
-  802af2c:	4e09      	ldr	r6, [pc, #36]	; (802af54 <xTaskResumeAll+0xc4>)
 
-  802af2e:	4625      	mov	r5, r4
 
- 				they should be processed now.  This ensures the tick count does
 
- 				not	slip, and that any delayed tasks are resumed at the correct
 
- 				time. */
 
- 				if( uxPendedTicks > ( UBaseType_t ) 0U )
 
- 				{
 
- 					while( uxPendedTicks > ( UBaseType_t ) 0U )
 
-  802af30:	6823      	ldr	r3, [r4, #0]
 
-  802af32:	2b00      	cmp	r3, #0
 
-  802af34:	d1f1      	bne.n	802af1a <xTaskResumeAll+0x8a>
 
-  802af36:	e7eb      	b.n	802af10 <xTaskResumeAll+0x80>
 
- 					#if( configUSE_PREEMPTION != 0 )
 
- 					{
 
- 						xAlreadyYielded = pdTRUE;
 
- 					}
 
- 					#endif
 
- 					taskYIELD_IF_USING_PREEMPTION();
 
-  802af38:	f000 fc4a 	bl	802b7d0 <vPortYield>
 
- 		else
 
- 		{
 
- 			mtCOVERAGE_TEST_MARKER();
 
- 		}
 
- 	}
 
- 	taskEXIT_CRITICAL();
 
-  802af3c:	f000 fc88 	bl	802b850 <vPortExitCritical>
 
- 	return xAlreadyYielded;
 
- }
 
-  802af40:	4620      	mov	r0, r4
 
-  802af42:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
 
-  802af46:	bf00      	nop
 
-  802af48:	20000c98 	.word	0x20000c98
 
-  802af4c:	20000ca8 	.word	0x20000ca8
 
-  802af50:	20000c80 	.word	0x20000c80
 
-  802af54:	20000cc4 	.word	0x20000cc4
 
-  802af58:	20000c84 	.word	0x20000c84
 
-  802af5c:	20000cc0 	.word	0x20000cc0
 
-  802af60:	20000c04 	.word	0x20000c04
 
-  802af64:	20000c08 	.word	0x20000c08
 
- 0802af68 <prvIdleTask>:
 
-  *
 
-  * void prvIdleTask( void *pvParameters );
 
-  *
 
-  */
 
- static portTASK_FUNCTION( prvIdleTask, pvParameters )
 
- {
 
-  802af68:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
- 	{
 
- 		BaseType_t xListIsEmpty;
 
- 		/* ucTasksDeleted is used to prevent vTaskSuspendAll() being called
 
- 		too often in the idle task. */
 
- 		while( uxTasksDeleted > ( UBaseType_t ) 0U )
 
-  802af6a:	4c14      	ldr	r4, [pc, #80]	; (802afbc <prvIdleTask+0x54>)
 
- 		{
 
- 			vTaskSuspendAll();
 
- 			{
 
- 				xListIsEmpty = listLIST_IS_EMPTY( &xTasksWaitingTermination );
 
-  802af6c:	4e14      	ldr	r6, [pc, #80]	; (802afc0 <prvIdleTask+0x58>)
 
- 				taskENTER_CRITICAL();
 
- 				{
 
- 					pxTCB = ( TCB_t * ) listGET_OWNER_OF_HEAD_ENTRY( ( &xTasksWaitingTermination ) );
 
- 					( void ) uxListRemove( &( pxTCB->xGenericListItem ) );
 
- 					--uxCurrentNumberOfTasks;
 
-  802af6e:	4f15      	ldr	r7, [pc, #84]	; (802afc4 <prvIdleTask+0x5c>)
 
- 	{
 
- 		BaseType_t xListIsEmpty;
 
- 		/* ucTasksDeleted is used to prevent vTaskSuspendAll() being called
 
- 		too often in the idle task. */
 
- 		while( uxTasksDeleted > ( UBaseType_t ) 0U )
 
-  802af70:	6823      	ldr	r3, [r4, #0]
 
-  802af72:	b1e3      	cbz	r3, 802afae <prvIdleTask+0x46>
 
- 		{
 
- 			vTaskSuspendAll();
 
-  802af74:	f7ff fef0 	bl	802ad58 <vTaskSuspendAll>
 
- 			{
 
- 				xListIsEmpty = listLIST_IS_EMPTY( &xTasksWaitingTermination );
 
-  802af78:	6835      	ldr	r5, [r6, #0]
 
- 			}
 
- 			( void ) xTaskResumeAll();
 
-  802af7a:	f7ff ff89 	bl	802ae90 <xTaskResumeAll>
 
- 			if( xListIsEmpty == pdFALSE )
 
-  802af7e:	2d00      	cmp	r5, #0
 
-  802af80:	d0f6      	beq.n	802af70 <prvIdleTask+0x8>
 
- 			{
 
- 				TCB_t *pxTCB;
 
- 				taskENTER_CRITICAL();
 
-  802af82:	f000 fc39 	bl	802b7f8 <vPortEnterCritical>
 
- 				{
 
- 					pxTCB = ( TCB_t * ) listGET_OWNER_OF_HEAD_ENTRY( ( &xTasksWaitingTermination ) );
 
-  802af86:	68f3      	ldr	r3, [r6, #12]
 
-  802af88:	68dd      	ldr	r5, [r3, #12]
 
- 					( void ) uxListRemove( &( pxTCB->xGenericListItem ) );
 
-  802af8a:	1d28      	adds	r0, r5, #4
 
-  802af8c:	f7ff f9ef 	bl	802a36e <uxListRemove>
 
- 					--uxCurrentNumberOfTasks;
 
-  802af90:	683b      	ldr	r3, [r7, #0]
 
-  802af92:	3b01      	subs	r3, #1
 
-  802af94:	603b      	str	r3, [r7, #0]
 
- 					--uxTasksDeleted;
 
-  802af96:	6823      	ldr	r3, [r4, #0]
 
-  802af98:	3b01      	subs	r3, #1
 
-  802af9a:	6023      	str	r3, [r4, #0]
 
- 				}
 
- 				taskEXIT_CRITICAL();
 
-  802af9c:	f000 fc58 	bl	802b850 <vPortExitCritical>
 
- 				vPortFreeAligned( pxTCB->pxStack );
 
- 			}
 
- 		}
 
- 		#else
 
- 		{
 
- 			vPortFreeAligned( pxTCB->pxStack );
 
-  802afa0:	6b28      	ldr	r0, [r5, #48]	; 0x30
 
-  802afa2:	f000 fdbd 	bl	802bb20 <vPortFree>
 
- 		}
 
- 		#endif
 
- 		vPortFree( pxTCB );
 
-  802afa6:	4628      	mov	r0, r5
 
-  802afa8:	f000 fdba 	bl	802bb20 <vPortFree>
 
-  802afac:	e7e0      	b.n	802af70 <prvIdleTask+0x8>
 
- 			A critical region is not required here as we are just reading from
 
- 			the list, and an occasional incorrect value will not matter.  If
 
- 			the ready list at the idle priority contains more than one task
 
- 			then a task other than the idle task is ready to execute. */
 
- 			if( listCURRENT_LIST_LENGTH( &( pxReadyTasksLists[ tskIDLE_PRIORITY ] ) ) > ( UBaseType_t ) 1 )
 
-  802afae:	4b06      	ldr	r3, [pc, #24]	; (802afc8 <prvIdleTask+0x60>)
 
-  802afb0:	681b      	ldr	r3, [r3, #0]
 
-  802afb2:	2b01      	cmp	r3, #1
 
-  802afb4:	d9dc      	bls.n	802af70 <prvIdleTask+0x8>
 
- 			{
 
- 				taskYIELD();
 
-  802afb6:	f000 fc0b 	bl	802b7d0 <vPortYield>
 
-  802afba:	e7d9      	b.n	802af70 <prvIdleTask+0x8>
 
-  802afbc:	20000bd8 	.word	0x20000bd8
 
-  802afc0:	20000c6c 	.word	0x20000c6c
 
-  802afc4:	20000ca8 	.word	0x20000ca8
 
-  802afc8:	20000c08 	.word	0x20000c08
 
- 0802afcc <vTaskDelay>:
 
- /*-----------------------------------------------------------*/
 
- #if ( INCLUDE_vTaskDelay == 1 )
 
- 	void vTaskDelay( const TickType_t xTicksToDelay )
 
- 	{
 
-  802afcc:	b538      	push	{r3, r4, r5, lr}
 
- 	TickType_t xTimeToWake;
 
- 	BaseType_t xAlreadyYielded = pdFALSE;
 
- 		/* A delay time of zero just forces a reschedule. */
 
- 		if( xTicksToDelay > ( TickType_t ) 0U )
 
-  802afce:	4604      	mov	r4, r0
 
-  802afd0:	b918      	cbnz	r0, 802afda <vTaskDelay+0xe>
 
- 		}
 
- 		else
 
- 		{
 
- 			mtCOVERAGE_TEST_MARKER();
 
- 		}
 
- 	}
 
-  802afd2:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
 
- 		/* Force a reschedule if xTaskResumeAll has not already done so, we may
 
- 		have put ourselves to sleep. */
 
- 		if( xAlreadyYielded == pdFALSE )
 
- 		{
 
- 			portYIELD_WITHIN_API();
 
-  802afd6:	f000 bbfb 	b.w	802b7d0 <vPortYield>
 
- 		/* A delay time of zero just forces a reschedule. */
 
- 		if( xTicksToDelay > ( TickType_t ) 0U )
 
- 		{
 
- 			configASSERT( uxSchedulerSuspended == 0 );
 
-  802afda:	4b11      	ldr	r3, [pc, #68]	; (802b020 <vTaskDelay+0x54>)
 
-  802afdc:	681b      	ldr	r3, [r3, #0]
 
-  802afde:	b113      	cbz	r3, 802afe6 <vTaskDelay+0x1a>
 
-  802afe0:	f000 fc02 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802afe4:	e7fe      	b.n	802afe4 <vTaskDelay+0x18>
 
- 			vTaskSuspendAll();
 
-  802afe6:	f7ff feb7 	bl	802ad58 <vTaskSuspendAll>
 
- 				This task cannot be in an event list as it is the currently
 
- 				executing task. */
 
- 				/* Calculate the time to wake - this may overflow but this is
 
- 				not a problem. */
 
- 				xTimeToWake = xTickCount + xTicksToDelay;
 
-  802afea:	4b0e      	ldr	r3, [pc, #56]	; (802b024 <vTaskDelay+0x58>)
 
-  802afec:	681d      	ldr	r5, [r3, #0]
 
-  802afee:	1965      	adds	r5, r4, r5
 
- 				/* We must remove ourselves from the ready list before adding
 
- 				ourselves to the blocked list as the same list item is used for
 
- 				both lists. */
 
- 				if( uxListRemove( &( pxCurrentTCB->xGenericListItem ) ) == ( UBaseType_t ) 0 )
 
-  802aff0:	4c0d      	ldr	r4, [pc, #52]	; (802b028 <vTaskDelay+0x5c>)
 
-  802aff2:	6820      	ldr	r0, [r4, #0]
 
-  802aff4:	3004      	adds	r0, #4
 
-  802aff6:	f7ff f9ba 	bl	802a36e <uxListRemove>
 
-  802affa:	b948      	cbnz	r0, 802b010 <vTaskDelay+0x44>
 
- 				{
 
- 					/* The current task must be in a ready list, so there is
 
- 					no need to check, and the port reset macro can be called
 
- 					directly. */
 
- 					portRESET_READY_PRIORITY( pxCurrentTCB->uxPriority, uxTopReadyPriority );
 
-  802affc:	4b0b      	ldr	r3, [pc, #44]	; (802b02c <vTaskDelay+0x60>)
 
-  802affe:	6819      	ldr	r1, [r3, #0]
 
-  802b000:	6822      	ldr	r2, [r4, #0]
 
-  802b002:	6ad2      	ldr	r2, [r2, #44]	; 0x2c
 
-  802b004:	2001      	movs	r0, #1
 
-  802b006:	fa00 f202 	lsl.w	r2, r0, r2
 
-  802b00a:	ea21 0202 	bic.w	r2, r1, r2
 
-  802b00e:	601a      	str	r2, [r3, #0]
 
- 				}
 
- 				else
 
- 				{
 
- 					mtCOVERAGE_TEST_MARKER();
 
- 				}
 
- 				prvAddCurrentTaskToDelayedList( xTimeToWake );
 
-  802b010:	4628      	mov	r0, r5
 
-  802b012:	f7ff fd19 	bl	802aa48 <prvAddCurrentTaskToDelayedList>
 
- 			}
 
- 			xAlreadyYielded = xTaskResumeAll();
 
-  802b016:	f7ff ff3b 	bl	802ae90 <xTaskResumeAll>
 
- 			mtCOVERAGE_TEST_MARKER();
 
- 		}
 
- 		/* Force a reschedule if xTaskResumeAll has not already done so, we may
 
- 		have put ourselves to sleep. */
 
- 		if( xAlreadyYielded == pdFALSE )
 
-  802b01a:	2800      	cmp	r0, #0
 
-  802b01c:	d0d9      	beq.n	802afd2 <vTaskDelay+0x6>
 
- 		}
 
- 		else
 
- 		{
 
- 			mtCOVERAGE_TEST_MARKER();
 
- 		}
 
- 	}
 
-  802b01e:	bd38      	pop	{r3, r4, r5, pc}
 
-  802b020:	20000c98 	.word	0x20000c98
 
-  802b024:	20000c9c 	.word	0x20000c9c
 
-  802b028:	20000c80 	.word	0x20000c80
 
-  802b02c:	20000cc0 	.word	0x20000cc0
 
- 0802b030 <vTaskDelayUntil>:
 
- /*-----------------------------------------------------------*/
 
- #if ( INCLUDE_vTaskDelayUntil == 1 )
 
- 	void vTaskDelayUntil( TickType_t * const pxPreviousWakeTime, const TickType_t xTimeIncrement )
 
- 	{
 
-  802b030:	b570      	push	{r4, r5, r6, lr}
 
-  802b032:	460c      	mov	r4, r1
 
- 	TickType_t xTimeToWake;
 
- 	BaseType_t xAlreadyYielded, xShouldDelay = pdFALSE;
 
- 		configASSERT( pxPreviousWakeTime );
 
-  802b034:	4605      	mov	r5, r0
 
-  802b036:	b910      	cbnz	r0, 802b03e <vTaskDelayUntil+0xe>
 
-  802b038:	f000 fbd6 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802b03c:	e7fe      	b.n	802b03c <vTaskDelayUntil+0xc>
 
- 		configASSERT( ( xTimeIncrement > 0U ) );
 
-  802b03e:	b911      	cbnz	r1, 802b046 <vTaskDelayUntil+0x16>
 
-  802b040:	f000 fbd2 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802b044:	e7fe      	b.n	802b044 <vTaskDelayUntil+0x14>
 
- 		configASSERT( uxSchedulerSuspended == 0 );
 
-  802b046:	4b1c      	ldr	r3, [pc, #112]	; (802b0b8 <vTaskDelayUntil+0x88>)
 
-  802b048:	681e      	ldr	r6, [r3, #0]
 
-  802b04a:	b116      	cbz	r6, 802b052 <vTaskDelayUntil+0x22>
 
-  802b04c:	f000 fbcc 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802b050:	e7fe      	b.n	802b050 <vTaskDelayUntil+0x20>
 
- 		vTaskSuspendAll();
 
-  802b052:	f7ff fe81 	bl	802ad58 <vTaskSuspendAll>
 
- 		{
 
- 			/* Minor optimisation.  The tick count cannot change in this
 
- 			block. */
 
- 			const TickType_t xConstTickCount = xTickCount;
 
-  802b056:	4b19      	ldr	r3, [pc, #100]	; (802b0bc <vTaskDelayUntil+0x8c>)
 
- 			/* Generate the tick time at which the task wants to wake. */
 
- 			xTimeToWake = *pxPreviousWakeTime + xTimeIncrement;
 
-  802b058:	682a      	ldr	r2, [r5, #0]
 
- 		vTaskSuspendAll();
 
- 		{
 
- 			/* Minor optimisation.  The tick count cannot change in this
 
- 			block. */
 
- 			const TickType_t xConstTickCount = xTickCount;
 
-  802b05a:	6818      	ldr	r0, [r3, #0]
 
- 			/* Generate the tick time at which the task wants to wake. */
 
- 			xTimeToWake = *pxPreviousWakeTime + xTimeIncrement;
 
- 			if( xConstTickCount < *pxPreviousWakeTime )
 
-  802b05c:	4290      	cmp	r0, r2
 
- 			/* Minor optimisation.  The tick count cannot change in this
 
- 			block. */
 
- 			const TickType_t xConstTickCount = xTickCount;
 
- 			/* Generate the tick time at which the task wants to wake. */
 
- 			xTimeToWake = *pxPreviousWakeTime + xTimeIncrement;
 
-  802b05e:	4414      	add	r4, r2
 
- 			if( xConstTickCount < *pxPreviousWakeTime )
 
-  802b060:	d202      	bcs.n	802b068 <vTaskDelayUntil+0x38>
 
- 				/* The tick count has overflowed since this function was
 
- 				lasted called.  In this case the only time we should ever
 
- 				actually delay is if the wake time has also	overflowed,
 
- 				and the wake time is greater than the tick time.  When this
 
- 				is the case it is as if neither time had overflowed. */
 
- 				if( ( xTimeToWake < *pxPreviousWakeTime ) && ( xTimeToWake > xConstTickCount ) )
 
-  802b062:	4294      	cmp	r4, r2
 
-  802b064:	d207      	bcs.n	802b076 <vTaskDelayUntil+0x46>
 
-  802b066:	e001      	b.n	802b06c <vTaskDelayUntil+0x3c>
 
- 			else
 
- 			{
 
- 				/* The tick time has not overflowed.  In this case we will
 
- 				delay if either the wake time has overflowed, and/or the
 
- 				tick time is less than the wake time. */
 
- 				if( ( xTimeToWake < *pxPreviousWakeTime ) || ( xTimeToWake > xConstTickCount ) )
 
-  802b068:	4294      	cmp	r4, r2
 
-  802b06a:	d306      	bcc.n	802b07a <vTaskDelayUntil+0x4a>
 
-  802b06c:	4284      	cmp	r4, r0
 
-  802b06e:	bf94      	ite	ls
 
-  802b070:	2300      	movls	r3, #0
 
-  802b072:	2301      	movhi	r3, #1
 
-  802b074:	e002      	b.n	802b07c <vTaskDelayUntil+0x4c>
 
- #if ( INCLUDE_vTaskDelayUntil == 1 )
 
- 	void vTaskDelayUntil( TickType_t * const pxPreviousWakeTime, const TickType_t xTimeIncrement )
 
- 	{
 
- 	TickType_t xTimeToWake;
 
- 	BaseType_t xAlreadyYielded, xShouldDelay = pdFALSE;
 
-  802b076:	4633      	mov	r3, r6
 
-  802b078:	e000      	b.n	802b07c <vTaskDelayUntil+0x4c>
 
- 				/* The tick time has not overflowed.  In this case we will
 
- 				delay if either the wake time has overflowed, and/or the
 
- 				tick time is less than the wake time. */
 
- 				if( ( xTimeToWake < *pxPreviousWakeTime ) || ( xTimeToWake > xConstTickCount ) )
 
- 				{
 
- 					xShouldDelay = pdTRUE;
 
-  802b07a:	2301      	movs	r3, #1
 
- 					mtCOVERAGE_TEST_MARKER();
 
- 				}
 
- 			}
 
- 			/* Update the wake time ready for the next call. */
 
- 			*pxPreviousWakeTime = xTimeToWake;
 
-  802b07c:	602c      	str	r4, [r5, #0]
 
- 			if( xShouldDelay != pdFALSE )
 
-  802b07e:	b193      	cbz	r3, 802b0a6 <vTaskDelayUntil+0x76>
 
- 			{
 
- 				traceTASK_DELAY_UNTIL();
 
- 				/* Remove the task from the ready list before adding it to the
 
- 				blocked list as the same list item is used for both lists. */
 
- 				if( uxListRemove( &( pxCurrentTCB->xGenericListItem ) ) == ( UBaseType_t ) 0 )
 
-  802b080:	4d0f      	ldr	r5, [pc, #60]	; (802b0c0 <vTaskDelayUntil+0x90>)
 
-  802b082:	6828      	ldr	r0, [r5, #0]
 
-  802b084:	3004      	adds	r0, #4
 
-  802b086:	f7ff f972 	bl	802a36e <uxListRemove>
 
-  802b08a:	b948      	cbnz	r0, 802b0a0 <vTaskDelayUntil+0x70>
 
- 				{
 
- 					/* The current task must be in a ready list, so there is
 
- 					no need to check, and the port reset macro can be called
 
- 					directly. */
 
- 					portRESET_READY_PRIORITY( pxCurrentTCB->uxPriority, uxTopReadyPriority );
 
-  802b08c:	4b0d      	ldr	r3, [pc, #52]	; (802b0c4 <vTaskDelayUntil+0x94>)
 
-  802b08e:	6819      	ldr	r1, [r3, #0]
 
-  802b090:	682a      	ldr	r2, [r5, #0]
 
-  802b092:	6ad2      	ldr	r2, [r2, #44]	; 0x2c
 
-  802b094:	2001      	movs	r0, #1
 
-  802b096:	fa00 f202 	lsl.w	r2, r0, r2
 
-  802b09a:	ea21 0202 	bic.w	r2, r1, r2
 
-  802b09e:	601a      	str	r2, [r3, #0]
 
- 				else
 
- 				{
 
- 					mtCOVERAGE_TEST_MARKER();
 
- 				}
 
- 				prvAddCurrentTaskToDelayedList( xTimeToWake );
 
-  802b0a0:	4620      	mov	r0, r4
 
-  802b0a2:	f7ff fcd1 	bl	802aa48 <prvAddCurrentTaskToDelayedList>
 
- 			else
 
- 			{
 
- 				mtCOVERAGE_TEST_MARKER();
 
- 			}
 
- 		}
 
- 		xAlreadyYielded = xTaskResumeAll();
 
-  802b0a6:	f7ff fef3 	bl	802ae90 <xTaskResumeAll>
 
- 		/* Force a reschedule if xTaskResumeAll has not already done so, we may
 
- 		have put ourselves to sleep. */
 
- 		if( xAlreadyYielded == pdFALSE )
 
-  802b0aa:	b918      	cbnz	r0, 802b0b4 <vTaskDelayUntil+0x84>
 
- 		}
 
- 		else
 
- 		{
 
- 			mtCOVERAGE_TEST_MARKER();
 
- 		}
 
- 	}
 
-  802b0ac:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
 
- 		/* Force a reschedule if xTaskResumeAll has not already done so, we may
 
- 		have put ourselves to sleep. */
 
- 		if( xAlreadyYielded == pdFALSE )
 
- 		{
 
- 			portYIELD_WITHIN_API();
 
-  802b0b0:	f000 bb8e 	b.w	802b7d0 <vPortYield>
 
-  802b0b4:	bd70      	pop	{r4, r5, r6, pc}
 
-  802b0b6:	bf00      	nop
 
-  802b0b8:	20000c98 	.word	0x20000c98
 
-  802b0bc:	20000c9c 	.word	0x20000c9c
 
-  802b0c0:	20000c80 	.word	0x20000c80
 
-  802b0c4:	20000cc0 	.word	0x20000cc0
 
- 0802b0c8 <vTaskSwitchContext>:
 
- #endif /* configUSE_APPLICATION_TASK_TAG */
 
- /*-----------------------------------------------------------*/
 
- void vTaskSwitchContext( void )
 
- {
 
-  802b0c8:	b508      	push	{r3, lr}
 
- 	if( uxSchedulerSuspended != ( UBaseType_t ) pdFALSE )
 
-  802b0ca:	4b12      	ldr	r3, [pc, #72]	; (802b114 <vTaskSwitchContext+0x4c>)
 
-  802b0cc:	681a      	ldr	r2, [r3, #0]
 
-  802b0ce:	4b12      	ldr	r3, [pc, #72]	; (802b118 <vTaskSwitchContext+0x50>)
 
-  802b0d0:	b10a      	cbz	r2, 802b0d6 <vTaskSwitchContext+0xe>
 
- 	{
 
- 		/* The scheduler is currently suspended - do not allow a context
 
- 		switch. */
 
- 		xYieldPending = pdTRUE;
 
-  802b0d2:	2201      	movs	r2, #1
 
-  802b0d4:	e01c      	b.n	802b110 <vTaskSwitchContext+0x48>
 
- 	}
 
- 	else
 
- 	{
 
- 		xYieldPending = pdFALSE;
 
-  802b0d6:	601a      	str	r2, [r3, #0]
 
- 		taskFIRST_CHECK_FOR_STACK_OVERFLOW();
 
- 		taskSECOND_CHECK_FOR_STACK_OVERFLOW();
 
- 		/* Select a new task to run using either the generic C or port
 
- 		optimised asm code. */
 
- 		taskSELECT_HIGHEST_PRIORITY_TASK();
 
-  802b0d8:	4b10      	ldr	r3, [pc, #64]	; (802b11c <vTaskSwitchContext+0x54>)
 
-  802b0da:	681a      	ldr	r2, [r3, #0]
 
- 	/* Generic helper function. */
 
- 	__attribute__( ( always_inline ) ) static inline uint8_t ucPortCountLeadingZeros( uint32_t ulBitmap )
 
- 	{
 
- 	uint8_t ucReturn;
 
- 		__asm volatile ( "clz %0, %1" : "=r" ( ucReturn ) : "r" ( ulBitmap ) );
 
-  802b0dc:	fab2 f282 	clz	r2, r2
 
-  802b0e0:	b2d2      	uxtb	r2, r2
 
-  802b0e2:	2314      	movs	r3, #20
 
-  802b0e4:	f1c2 021f 	rsb	r2, r2, #31
 
-  802b0e8:	490d      	ldr	r1, [pc, #52]	; (802b120 <vTaskSwitchContext+0x58>)
 
-  802b0ea:	435a      	muls	r2, r3
 
-  802b0ec:	188b      	adds	r3, r1, r2
 
-  802b0ee:	588a      	ldr	r2, [r1, r2]
 
-  802b0f0:	b912      	cbnz	r2, 802b0f8 <vTaskSwitchContext+0x30>
 
-  802b0f2:	f000 fb79 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802b0f6:	e7fe      	b.n	802b0f6 <vTaskSwitchContext+0x2e>
 
-  802b0f8:	685a      	ldr	r2, [r3, #4]
 
-  802b0fa:	6852      	ldr	r2, [r2, #4]
 
-  802b0fc:	f103 0108 	add.w	r1, r3, #8
 
-  802b100:	428a      	cmp	r2, r1
 
-  802b102:	605a      	str	r2, [r3, #4]
 
-  802b104:	bf04      	itt	eq
 
-  802b106:	6852      	ldreq	r2, [r2, #4]
 
-  802b108:	605a      	streq	r2, [r3, #4]
 
-  802b10a:	685b      	ldr	r3, [r3, #4]
 
-  802b10c:	68da      	ldr	r2, [r3, #12]
 
-  802b10e:	4b05      	ldr	r3, [pc, #20]	; (802b124 <vTaskSwitchContext+0x5c>)
 
-  802b110:	601a      	str	r2, [r3, #0]
 
-  802b112:	bd08      	pop	{r3, pc}
 
-  802b114:	20000c98 	.word	0x20000c98
 
-  802b118:	20000cc4 	.word	0x20000cc4
 
-  802b11c:	20000cc0 	.word	0x20000cc0
 
-  802b120:	20000c08 	.word	0x20000c08
 
-  802b124:	20000c80 	.word	0x20000c80
 
- 0802b128 <vTaskPlaceOnEventList>:
 
- 	}
 
- }
 
- /*-----------------------------------------------------------*/
 
- void vTaskPlaceOnEventList( List_t * const pxEventList, const TickType_t xTicksToWait )
 
- {
 
-  802b128:	b538      	push	{r3, r4, r5, lr}
 
-  802b12a:	460d      	mov	r5, r1
 
- TickType_t xTimeToWake;
 
- 	configASSERT( pxEventList );
 
-  802b12c:	b910      	cbnz	r0, 802b134 <vTaskPlaceOnEventList+0xc>
 
-  802b12e:	f000 fb5b 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802b132:	e7fe      	b.n	802b132 <vTaskPlaceOnEventList+0xa>
 
- 	/* Place the event list item of the TCB in the appropriate event list.
 
- 	This is placed in the list in priority order so the highest priority task
 
- 	is the first to be woken by the event.  The queue that contains the event
 
- 	list is locked, preventing simultaneous access from interrupts. */
 
- 	vListInsert( pxEventList, &( pxCurrentTCB->xEventListItem ) );
 
-  802b134:	4c12      	ldr	r4, [pc, #72]	; (802b180 <vTaskPlaceOnEventList+0x58>)
 
-  802b136:	6821      	ldr	r1, [r4, #0]
 
-  802b138:	3118      	adds	r1, #24
 
-  802b13a:	f7ff f900 	bl	802a33e <vListInsert>
 
- 	/* The task must be removed from from the ready list before it is added to
 
- 	the blocked list as the same list item is used for both lists.  Exclusive
 
- 	access to the ready lists guaranteed because the scheduler is locked. */
 
- 	if( uxListRemove( &( pxCurrentTCB->xGenericListItem ) ) == ( UBaseType_t ) 0 )
 
-  802b13e:	6820      	ldr	r0, [r4, #0]
 
-  802b140:	3004      	adds	r0, #4
 
-  802b142:	f7ff f914 	bl	802a36e <uxListRemove>
 
-  802b146:	b948      	cbnz	r0, 802b15c <vTaskPlaceOnEventList+0x34>
 
- 	{
 
- 		/* The current task must be in a ready list, so there is no need to
 
- 		check, and the port reset macro can be called directly. */
 
- 		portRESET_READY_PRIORITY( pxCurrentTCB->uxPriority, uxTopReadyPriority );
 
-  802b148:	4b0e      	ldr	r3, [pc, #56]	; (802b184 <vTaskPlaceOnEventList+0x5c>)
 
-  802b14a:	6819      	ldr	r1, [r3, #0]
 
-  802b14c:	6822      	ldr	r2, [r4, #0]
 
-  802b14e:	6ad2      	ldr	r2, [r2, #44]	; 0x2c
 
-  802b150:	2001      	movs	r0, #1
 
-  802b152:	fa00 f202 	lsl.w	r2, r0, r2
 
-  802b156:	ea21 0202 	bic.w	r2, r1, r2
 
-  802b15a:	601a      	str	r2, [r3, #0]
 
- 		mtCOVERAGE_TEST_MARKER();
 
- 	}
 
- 	#if ( INCLUDE_vTaskSuspend == 1 )
 
- 	{
 
- 		if( xTicksToWait == portMAX_DELAY )
 
-  802b15c:	1c69      	adds	r1, r5, #1
 
-  802b15e:	d107      	bne.n	802b170 <vTaskPlaceOnEventList+0x48>
 
- 		{
 
- 			/* Add the task to the suspended task list instead of a delayed task
 
- 			list to ensure the task is not woken by a timing event.  It will
 
- 			block indefinitely. */
 
- 			vListInsertEnd( &xSuspendedTaskList, &( pxCurrentTCB->xGenericListItem ) );
 
-  802b160:	4b07      	ldr	r3, [pc, #28]	; (802b180 <vTaskPlaceOnEventList+0x58>)
 
-  802b162:	4809      	ldr	r0, [pc, #36]	; (802b188 <vTaskPlaceOnEventList+0x60>)
 
-  802b164:	6819      	ldr	r1, [r3, #0]
 
-  802b166:	3104      	adds	r1, #4
 
- 			will handle it. */
 
- 			xTimeToWake = xTickCount + xTicksToWait;
 
- 			prvAddCurrentTaskToDelayedList( xTimeToWake );
 
- 	}
 
- 	#endif /* INCLUDE_vTaskSuspend */
 
- }
 
-  802b168:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
 
- 		if( xTicksToWait == portMAX_DELAY )
 
- 		{
 
- 			/* Add the task to the suspended task list instead of a delayed task
 
- 			list to ensure the task is not woken by a timing event.  It will
 
- 			block indefinitely. */
 
- 			vListInsertEnd( &xSuspendedTaskList, &( pxCurrentTCB->xGenericListItem ) );
 
-  802b16c:	f7ff b8db 	b.w	802a326 <vListInsertEnd>
 
- 		else
 
- 		{
 
- 			/* Calculate the time at which the task should be woken if the event
 
- 			does not occur.  This may overflow but this doesn't matter, the
 
- 			scheduler will handle it. */
 
- 			xTimeToWake = xTickCount + xTicksToWait;
 
-  802b170:	4b06      	ldr	r3, [pc, #24]	; (802b18c <vTaskPlaceOnEventList+0x64>)
 
-  802b172:	6818      	ldr	r0, [r3, #0]
 
- 			prvAddCurrentTaskToDelayedList( xTimeToWake );
 
-  802b174:	1828      	adds	r0, r5, r0
 
- 			will handle it. */
 
- 			xTimeToWake = xTickCount + xTicksToWait;
 
- 			prvAddCurrentTaskToDelayedList( xTimeToWake );
 
- 	}
 
- 	#endif /* INCLUDE_vTaskSuspend */
 
- }
 
-  802b176:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
 
- 		{
 
- 			/* Calculate the time at which the task should be woken if the event
 
- 			does not occur.  This may overflow but this doesn't matter, the
 
- 			scheduler will handle it. */
 
- 			xTimeToWake = xTickCount + xTicksToWait;
 
- 			prvAddCurrentTaskToDelayedList( xTimeToWake );
 
-  802b17a:	f7ff bc65 	b.w	802aa48 <prvAddCurrentTaskToDelayedList>
 
-  802b17e:	bf00      	nop
 
-  802b180:	20000c80 	.word	0x20000c80
 
-  802b184:	20000cc0 	.word	0x20000cc0
 
-  802b188:	20000cac 	.word	0x20000cac
 
-  802b18c:	20000c9c 	.word	0x20000c9c
 
- 0802b190 <vTaskPlaceOnEventListRestricted>:
 
- /*-----------------------------------------------------------*/
 
- #if configUSE_TIMERS == 1
 
- 	void vTaskPlaceOnEventListRestricted( List_t * const pxEventList, const TickType_t xTicksToWait )
 
- 	{
 
-  802b190:	b538      	push	{r3, r4, r5, lr}
 
-  802b192:	460d      	mov	r5, r1
 
- 	TickType_t xTimeToWake;
 
- 		configASSERT( pxEventList );
 
-  802b194:	b910      	cbnz	r0, 802b19c <vTaskPlaceOnEventListRestricted+0xc>
 
-  802b196:	f000 fb27 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802b19a:	e7fe      	b.n	802b19a <vTaskPlaceOnEventListRestricted+0xa>
 
- 		/* Place the event list item of the TCB in the appropriate event list.
 
- 		In this case it is assume that this is the only task that is going to
 
- 		be waiting on this event list, so the faster vListInsertEnd() function
 
- 		can be used in place of vListInsert. */
 
- 		vListInsertEnd( pxEventList, &( pxCurrentTCB->xEventListItem ) );
 
-  802b19c:	4c0d      	ldr	r4, [pc, #52]	; (802b1d4 <vTaskPlaceOnEventListRestricted+0x44>)
 
-  802b19e:	6821      	ldr	r1, [r4, #0]
 
-  802b1a0:	3118      	adds	r1, #24
 
-  802b1a2:	f7ff f8c0 	bl	802a326 <vListInsertEnd>
 
- 		/* We must remove this task from the ready list before adding it to the
 
- 		blocked list as the same list item is used for both lists.  This
 
- 		function is called form a critical section. */
 
- 		if( uxListRemove( &( pxCurrentTCB->xGenericListItem ) ) == ( UBaseType_t ) 0 )
 
-  802b1a6:	6820      	ldr	r0, [r4, #0]
 
-  802b1a8:	3004      	adds	r0, #4
 
-  802b1aa:	f7ff f8e0 	bl	802a36e <uxListRemove>
 
-  802b1ae:	b948      	cbnz	r0, 802b1c4 <vTaskPlaceOnEventListRestricted+0x34>
 
- 		{
 
- 			/* The current task must be in a ready list, so there is no need to
 
- 			check, and the port reset macro can be called directly. */
 
- 			portRESET_READY_PRIORITY( pxCurrentTCB->uxPriority, uxTopReadyPriority );
 
-  802b1b0:	4b09      	ldr	r3, [pc, #36]	; (802b1d8 <vTaskPlaceOnEventListRestricted+0x48>)
 
-  802b1b2:	6819      	ldr	r1, [r3, #0]
 
-  802b1b4:	6822      	ldr	r2, [r4, #0]
 
-  802b1b6:	6ad2      	ldr	r2, [r2, #44]	; 0x2c
 
-  802b1b8:	2001      	movs	r0, #1
 
-  802b1ba:	fa00 f202 	lsl.w	r2, r0, r2
 
-  802b1be:	ea21 0202 	bic.w	r2, r1, r2
 
-  802b1c2:	601a      	str	r2, [r3, #0]
 
- 			mtCOVERAGE_TEST_MARKER();
 
- 		}
 
- 		/* Calculate the time at which the task should be woken if the event does
 
- 		not occur.  This may overflow but this doesn't matter. */
 
- 		xTimeToWake = xTickCount + xTicksToWait;
 
-  802b1c4:	4b05      	ldr	r3, [pc, #20]	; (802b1dc <vTaskPlaceOnEventListRestricted+0x4c>)
 
-  802b1c6:	6818      	ldr	r0, [r3, #0]
 
- 		traceTASK_DELAY_UNTIL();
 
- 		prvAddCurrentTaskToDelayedList( xTimeToWake );
 
-  802b1c8:	1828      	adds	r0, r5, r0
 
- 	}
 
-  802b1ca:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
 
- 		/* Calculate the time at which the task should be woken if the event does
 
- 		not occur.  This may overflow but this doesn't matter. */
 
- 		xTimeToWake = xTickCount + xTicksToWait;
 
- 		traceTASK_DELAY_UNTIL();
 
- 		prvAddCurrentTaskToDelayedList( xTimeToWake );
 
-  802b1ce:	f7ff bc3b 	b.w	802aa48 <prvAddCurrentTaskToDelayedList>
 
-  802b1d2:	bf00      	nop
 
-  802b1d4:	20000c80 	.word	0x20000c80
 
-  802b1d8:	20000cc0 	.word	0x20000cc0
 
-  802b1dc:	20000c9c 	.word	0x20000c9c
 
- 0802b1e0 <xTaskRemoveFromEventList>:
 
- #endif /* configUSE_TIMERS */
 
- /*-----------------------------------------------------------*/
 
- BaseType_t xTaskRemoveFromEventList( const List_t * const pxEventList )
 
- {
 
-  802b1e0:	b538      	push	{r3, r4, r5, lr}
 
- 	get called - the lock count on the queue will get modified instead.  This
 
- 	means exclusive access to the event list is guaranteed here.
 
- 	This function assumes that a check has already been made to ensure that
 
- 	pxEventList is not empty. */
 
- 	pxUnblockedTCB = ( TCB_t * ) listGET_OWNER_OF_HEAD_ENTRY( pxEventList );
 
-  802b1e2:	68c3      	ldr	r3, [r0, #12]
 
-  802b1e4:	68dc      	ldr	r4, [r3, #12]
 
- 	configASSERT( pxUnblockedTCB );
 
-  802b1e6:	b914      	cbnz	r4, 802b1ee <xTaskRemoveFromEventList+0xe>
 
-  802b1e8:	f000 fafe 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802b1ec:	e7fe      	b.n	802b1ec <xTaskRemoveFromEventList+0xc>
 
- 	( void ) uxListRemove( &( pxUnblockedTCB->xEventListItem ) );
 
-  802b1ee:	f104 0518 	add.w	r5, r4, #24
 
-  802b1f2:	4628      	mov	r0, r5
 
-  802b1f4:	f7ff f8bb 	bl	802a36e <uxListRemove>
 
- 	if( uxSchedulerSuspended == ( UBaseType_t ) pdFALSE )
 
-  802b1f8:	4b11      	ldr	r3, [pc, #68]	; (802b240 <xTaskRemoveFromEventList+0x60>)
 
-  802b1fa:	681b      	ldr	r3, [r3, #0]
 
-  802b1fc:	b983      	cbnz	r3, 802b220 <xTaskRemoveFromEventList+0x40>
 
- 	{
 
- 		( void ) uxListRemove( &( pxUnblockedTCB->xGenericListItem ) );
 
-  802b1fe:	1d25      	adds	r5, r4, #4
 
-  802b200:	4628      	mov	r0, r5
 
-  802b202:	f7ff f8b4 	bl	802a36e <uxListRemove>
 
- 		prvAddTaskToReadyList( pxUnblockedTCB );
 
-  802b206:	4a0f      	ldr	r2, [pc, #60]	; (802b244 <xTaskRemoveFromEventList+0x64>)
 
-  802b208:	6ae3      	ldr	r3, [r4, #44]	; 0x2c
 
-  802b20a:	6810      	ldr	r0, [r2, #0]
 
-  802b20c:	2101      	movs	r1, #1
 
-  802b20e:	fa01 f103 	lsl.w	r1, r1, r3
 
-  802b212:	4301      	orrs	r1, r0
 
-  802b214:	6011      	str	r1, [r2, #0]
 
-  802b216:	4a0c      	ldr	r2, [pc, #48]	; (802b248 <xTaskRemoveFromEventList+0x68>)
 
-  802b218:	2014      	movs	r0, #20
 
-  802b21a:	fb00 2003 	mla	r0, r0, r3, r2
 
-  802b21e:	e000      	b.n	802b222 <xTaskRemoveFromEventList+0x42>
 
- 	}
 
- 	else
 
- 	{
 
- 		/* The delayed and ready lists cannot be accessed, so hold this task
 
- 		pending until the scheduler is resumed. */
 
- 		vListInsertEnd( &( xPendingReadyList ), &( pxUnblockedTCB->xEventListItem ) );
 
-  802b220:	480a      	ldr	r0, [pc, #40]	; (802b24c <xTaskRemoveFromEventList+0x6c>)
 
-  802b222:	4629      	mov	r1, r5
 
-  802b224:	f7ff f87f 	bl	802a326 <vListInsertEnd>
 
- 	}
 
- 	if( pxUnblockedTCB->uxPriority > pxCurrentTCB->uxPriority )
 
-  802b228:	4b09      	ldr	r3, [pc, #36]	; (802b250 <xTaskRemoveFromEventList+0x70>)
 
-  802b22a:	6ae2      	ldr	r2, [r4, #44]	; 0x2c
 
-  802b22c:	681b      	ldr	r3, [r3, #0]
 
-  802b22e:	6adb      	ldr	r3, [r3, #44]	; 0x2c
 
-  802b230:	429a      	cmp	r2, r3
 
-  802b232:	d903      	bls.n	802b23c <xTaskRemoveFromEventList+0x5c>
 
- 		it should force a context switch now. */
 
- 		xReturn = pdTRUE;
 
- 		/* Mark that a yield is pending in case the user is not using the
 
- 		"xHigherPriorityTaskWoken" parameter to an ISR safe FreeRTOS function. */
 
- 		xYieldPending = pdTRUE;
 
-  802b234:	4b07      	ldr	r3, [pc, #28]	; (802b254 <xTaskRemoveFromEventList+0x74>)
 
-  802b236:	2001      	movs	r0, #1
 
-  802b238:	6018      	str	r0, [r3, #0]
 
-  802b23a:	bd38      	pop	{r3, r4, r5, pc}
 
- 	}
 
- 	else
 
- 	{
 
- 		xReturn = pdFALSE;
 
-  802b23c:	2000      	movs	r0, #0
 
- 		prvResetNextTaskUnblockTime();
 
- 	}
 
- 	#endif
 
- 	return xReturn;
 
- }
 
-  802b23e:	bd38      	pop	{r3, r4, r5, pc}
 
-  802b240:	20000c98 	.word	0x20000c98
 
-  802b244:	20000cc0 	.word	0x20000cc0
 
-  802b248:	20000c08 	.word	0x20000c08
 
-  802b24c:	20000c84 	.word	0x20000c84
 
-  802b250:	20000c80 	.word	0x20000c80
 
-  802b254:	20000cc4 	.word	0x20000cc4
 
- 0802b258 <vTaskSetTimeOutState>:
 
- 	return xReturn;
 
- }
 
- /*-----------------------------------------------------------*/
 
- void vTaskSetTimeOutState( TimeOut_t * const pxTimeOut )
 
- {
 
-  802b258:	b508      	push	{r3, lr}
 
- 	configASSERT( pxTimeOut );
 
-  802b25a:	b910      	cbnz	r0, 802b262 <vTaskSetTimeOutState+0xa>
 
-  802b25c:	f000 fac4 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802b260:	e7fe      	b.n	802b260 <vTaskSetTimeOutState+0x8>
 
- 	pxTimeOut->xOverflowCount = xNumOfOverflows;
 
-  802b262:	4b03      	ldr	r3, [pc, #12]	; (802b270 <vTaskSetTimeOutState+0x18>)
 
-  802b264:	681b      	ldr	r3, [r3, #0]
 
-  802b266:	6003      	str	r3, [r0, #0]
 
- 	pxTimeOut->xTimeOnEntering = xTickCount;
 
-  802b268:	4b02      	ldr	r3, [pc, #8]	; (802b274 <vTaskSetTimeOutState+0x1c>)
 
-  802b26a:	681b      	ldr	r3, [r3, #0]
 
-  802b26c:	6043      	str	r3, [r0, #4]
 
-  802b26e:	bd08      	pop	{r3, pc}
 
-  802b270:	20000bcc 	.word	0x20000bcc
 
-  802b274:	20000c9c 	.word	0x20000c9c
 
- 0802b278 <xTaskCheckForTimeOut>:
 
- }
 
- /*-----------------------------------------------------------*/
 
- BaseType_t xTaskCheckForTimeOut( TimeOut_t * const pxTimeOut, TickType_t * const pxTicksToWait )
 
- {
 
-  802b278:	b538      	push	{r3, r4, r5, lr}
 
-  802b27a:	460d      	mov	r5, r1
 
- BaseType_t xReturn;
 
- 	configASSERT( pxTimeOut );
 
-  802b27c:	4604      	mov	r4, r0
 
-  802b27e:	b910      	cbnz	r0, 802b286 <xTaskCheckForTimeOut+0xe>
 
-  802b280:	f000 fab2 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802b284:	e7fe      	b.n	802b284 <xTaskCheckForTimeOut+0xc>
 
- 	configASSERT( pxTicksToWait );
 
-  802b286:	b911      	cbnz	r1, 802b28e <xTaskCheckForTimeOut+0x16>
 
-  802b288:	f000 faae 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802b28c:	e7fe      	b.n	802b28c <xTaskCheckForTimeOut+0x14>
 
- 	taskENTER_CRITICAL();
 
-  802b28e:	f000 fab3 	bl	802b7f8 <vPortEnterCritical>
 
- 	{
 
- 		/* Minor optimisation.  The tick count cannot change in this block. */
 
- 		const TickType_t xConstTickCount = xTickCount;
 
-  802b292:	4b0e      	ldr	r3, [pc, #56]	; (802b2cc <xTaskCheckForTimeOut+0x54>)
 
-  802b294:	681a      	ldr	r2, [r3, #0]
 
- 		#if ( INCLUDE_vTaskSuspend == 1 )
 
- 			/* If INCLUDE_vTaskSuspend is set to 1 and the block time specified is
 
- 			the maximum block time then the task should block indefinitely, and
 
- 			therefore never time out. */
 
- 			if( *pxTicksToWait == portMAX_DELAY )
 
-  802b296:	682b      	ldr	r3, [r5, #0]
 
-  802b298:	1c59      	adds	r1, r3, #1
 
-  802b29a:	d010      	beq.n	802b2be <xTaskCheckForTimeOut+0x46>
 
- 				xReturn = pdFALSE;
 
- 			}
 
- 			else /* We are not blocking indefinitely, perform the checks below. */
 
- 		#endif
 
- 		if( ( xNumOfOverflows != pxTimeOut->xOverflowCount ) && ( xConstTickCount >= pxTimeOut->xTimeOnEntering ) ) /*lint !e525 Indentation preferred as is to make code within pre-processor directives clearer. */
 
-  802b29c:	490c      	ldr	r1, [pc, #48]	; (802b2d0 <xTaskCheckForTimeOut+0x58>)
 
-  802b29e:	6808      	ldr	r0, [r1, #0]
 
-  802b2a0:	6821      	ldr	r1, [r4, #0]
 
-  802b2a2:	4288      	cmp	r0, r1
 
-  802b2a4:	6861      	ldr	r1, [r4, #4]
 
-  802b2a6:	d001      	beq.n	802b2ac <xTaskCheckForTimeOut+0x34>
 
-  802b2a8:	428a      	cmp	r2, r1
 
-  802b2aa:	d20a      	bcs.n	802b2c2 <xTaskCheckForTimeOut+0x4a>
 
- 			was called, but has also overflowed since vTaskSetTimeOut() was called.
 
- 			It must have wrapped all the way around and gone past us again. This
 
- 			passed since vTaskSetTimeout() was called. */
 
- 			xReturn = pdTRUE;
 
- 		}
 
- 		else if( ( xConstTickCount - pxTimeOut->xTimeOnEntering ) < *pxTicksToWait )
 
-  802b2ac:	1a50      	subs	r0, r2, r1
 
-  802b2ae:	4298      	cmp	r0, r3
 
-  802b2b0:	d207      	bcs.n	802b2c2 <xTaskCheckForTimeOut+0x4a>
 
- 		{
 
- 			/* Not a genuine timeout. Adjust parameters for time remaining. */
 
- 			*pxTicksToWait -= ( xConstTickCount -  pxTimeOut->xTimeOnEntering );
 
-  802b2b2:	1a8a      	subs	r2, r1, r2
 
-  802b2b4:	18d3      	adds	r3, r2, r3
 
-  802b2b6:	602b      	str	r3, [r5, #0]
 
- 			vTaskSetTimeOutState( pxTimeOut );
 
-  802b2b8:	4620      	mov	r0, r4
 
-  802b2ba:	f7ff ffcd 	bl	802b258 <vTaskSetTimeOutState>
 
- 			/* If INCLUDE_vTaskSuspend is set to 1 and the block time specified is
 
- 			the maximum block time then the task should block indefinitely, and
 
- 			therefore never time out. */
 
- 			if( *pxTicksToWait == portMAX_DELAY )
 
- 			{
 
- 				xReturn = pdFALSE;
 
-  802b2be:	2400      	movs	r4, #0
 
-  802b2c0:	e000      	b.n	802b2c4 <xTaskCheckForTimeOut+0x4c>
 
- 		{
 
- 			/* The tick count is greater than the time at which vTaskSetTimeout()
 
- 			was called, but has also overflowed since vTaskSetTimeOut() was called.
 
- 			It must have wrapped all the way around and gone past us again. This
 
- 			passed since vTaskSetTimeout() was called. */
 
- 			xReturn = pdTRUE;
 
-  802b2c2:	2401      	movs	r4, #1
 
- 		else
 
- 		{
 
- 			xReturn = pdTRUE;
 
- 		}
 
- 	}
 
- 	taskEXIT_CRITICAL();
 
-  802b2c4:	f000 fac4 	bl	802b850 <vPortExitCritical>
 
- 	return xReturn;
 
- }
 
-  802b2c8:	4620      	mov	r0, r4
 
-  802b2ca:	bd38      	pop	{r3, r4, r5, pc}
 
-  802b2cc:	20000c9c 	.word	0x20000c9c
 
-  802b2d0:	20000bcc 	.word	0x20000bcc
 
- 0802b2d4 <vTaskMissedYield>:
 
- /*-----------------------------------------------------------*/
 
- void vTaskMissedYield( void )
 
- {
 
- 	xYieldPending = pdTRUE;
 
-  802b2d4:	4b01      	ldr	r3, [pc, #4]	; (802b2dc <vTaskMissedYield+0x8>)
 
-  802b2d6:	2201      	movs	r2, #1
 
-  802b2d8:	601a      	str	r2, [r3, #0]
 
-  802b2da:	4770      	bx	lr
 
-  802b2dc:	20000cc4 	.word	0x20000cc4
 
- 0802b2e0 <xTaskGetSchedulerState>:
 
- 	BaseType_t xTaskGetSchedulerState( void )
 
- 	{
 
- 	BaseType_t xReturn;
 
- 		if( xSchedulerRunning == pdFALSE )
 
-  802b2e0:	4b05      	ldr	r3, [pc, #20]	; (802b2f8 <xTaskGetSchedulerState+0x18>)
 
-  802b2e2:	681b      	ldr	r3, [r3, #0]
 
-  802b2e4:	b133      	cbz	r3, 802b2f4 <xTaskGetSchedulerState+0x14>
 
- 		{
 
- 			xReturn = taskSCHEDULER_NOT_STARTED;
 
- 		}
 
- 		else
 
- 		{
 
- 			if( uxSchedulerSuspended == ( UBaseType_t ) pdFALSE )
 
-  802b2e6:	4b05      	ldr	r3, [pc, #20]	; (802b2fc <xTaskGetSchedulerState+0x1c>)
 
-  802b2e8:	6818      	ldr	r0, [r3, #0]
 
- 			{
 
- 				xReturn = taskSCHEDULER_RUNNING;
 
-  802b2ea:	2800      	cmp	r0, #0
 
-  802b2ec:	bf0c      	ite	eq
 
-  802b2ee:	2002      	moveq	r0, #2
 
-  802b2f0:	2000      	movne	r0, #0
 
-  802b2f2:	4770      	bx	lr
 
- 	{
 
- 	BaseType_t xReturn;
 
- 		if( xSchedulerRunning == pdFALSE )
 
- 		{
 
- 			xReturn = taskSCHEDULER_NOT_STARTED;
 
-  802b2f4:	2001      	movs	r0, #1
 
- 				xReturn = taskSCHEDULER_SUSPENDED;
 
- 			}
 
- 		}
 
- 		return xReturn;
 
- 	}
 
-  802b2f6:	4770      	bx	lr
 
-  802b2f8:	20000bd4 	.word	0x20000bd4
 
-  802b2fc:	20000c98 	.word	0x20000c98
 
- 0802b300 <vTaskPriorityInherit>:
 
- /*-----------------------------------------------------------*/
 
- #if ( configUSE_MUTEXES == 1 )
 
- 	void vTaskPriorityInherit( TaskHandle_t const pxMutexHolder )
 
- 	{
 
-  802b300:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
- 	TCB_t * const pxTCB = ( TCB_t * ) pxMutexHolder;
 
- 		/* If the mutex was given back by an interrupt while the queue was
 
- 		locked then the mutex holder might now be NULL. */
 
- 		if( pxMutexHolder != NULL )
 
-  802b302:	4604      	mov	r4, r0
 
-  802b304:	2800      	cmp	r0, #0
 
-  802b306:	d040      	beq.n	802b38a <vTaskPriorityInherit+0x8a>
 
- 		{
 
- 			if( pxTCB->uxPriority < pxCurrentTCB->uxPriority )
 
-  802b308:	4a20      	ldr	r2, [pc, #128]	; (802b38c <vTaskPriorityInherit+0x8c>)
 
-  802b30a:	6ac3      	ldr	r3, [r0, #44]	; 0x2c
 
-  802b30c:	6811      	ldr	r1, [r2, #0]
 
-  802b30e:	6ac9      	ldr	r1, [r1, #44]	; 0x2c
 
-  802b310:	428b      	cmp	r3, r1
 
-  802b312:	d23a      	bcs.n	802b38a <vTaskPriorityInherit+0x8a>
 
- 			{
 
- 				/* Adjust the mutex holder state to account for its new
 
- 				priority.  Only reset the event list item value if the value is
 
- 				not	being used for anything else. */
 
- 				if( ( listGET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ) ) & taskEVENT_LIST_ITEM_VALUE_IN_USE ) == 0UL )
 
-  802b314:	6981      	ldr	r1, [r0, #24]
 
-  802b316:	2900      	cmp	r1, #0
 
-  802b318:	db04      	blt.n	802b324 <vTaskPriorityInherit+0x24>
 
- 				{
 
- 					listSET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ), ( TickType_t ) configMAX_PRIORITIES - ( TickType_t ) pxCurrentTCB->uxPriority ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */
 
-  802b31a:	6812      	ldr	r2, [r2, #0]
 
-  802b31c:	6ad2      	ldr	r2, [r2, #44]	; 0x2c
 
-  802b31e:	f1c2 0205 	rsb	r2, r2, #5
 
-  802b322:	6182      	str	r2, [r0, #24]
 
- 					mtCOVERAGE_TEST_MARKER();
 
- 				}
 
- 				/* If the task being modified is in the ready state it will need to
 
- 				be moved into a new list. */
 
- 				if( listIS_CONTAINED_WITHIN( &( pxReadyTasksLists[ pxTCB->uxPriority ] ), &( pxTCB->xGenericListItem ) ) != pdFALSE )
 
-  802b324:	4e1a      	ldr	r6, [pc, #104]	; (802b390 <vTaskPriorityInherit+0x90>)
 
-  802b326:	6962      	ldr	r2, [r4, #20]
 
-  802b328:	2714      	movs	r7, #20
 
-  802b32a:	fb07 6303 	mla	r3, r7, r3, r6
 
-  802b32e:	429a      	cmp	r2, r3
 
-  802b330:	d127      	bne.n	802b382 <vTaskPriorityInherit+0x82>
 
-  802b332:	e01f      	b.n	802b374 <vTaskPriorityInherit+0x74>
 
- 				{
 
- 					if( uxListRemove( &( pxTCB->xGenericListItem ) ) == ( UBaseType_t ) 0 )
 
- 					{
 
- 						taskRESET_READY_PRIORITY( pxTCB->uxPriority );
 
-  802b334:	6ae2      	ldr	r2, [r4, #44]	; 0x2c
 
-  802b336:	4357      	muls	r7, r2
 
-  802b338:	59f3      	ldr	r3, [r6, r7]
 
-  802b33a:	b93b      	cbnz	r3, 802b34c <vTaskPriorityInherit+0x4c>
 
-  802b33c:	4b15      	ldr	r3, [pc, #84]	; (802b394 <vTaskPriorityInherit+0x94>)
 
-  802b33e:	2001      	movs	r0, #1
 
-  802b340:	6819      	ldr	r1, [r3, #0]
 
-  802b342:	fa00 f202 	lsl.w	r2, r0, r2
 
-  802b346:	ea21 0202 	bic.w	r2, r1, r2
 
-  802b34a:	601a      	str	r2, [r3, #0]
 
- 					{
 
- 						mtCOVERAGE_TEST_MARKER();
 
- 					}
 
- 					/* Inherit the priority before being moved into the new list. */
 
- 					pxTCB->uxPriority = pxCurrentTCB->uxPriority;
 
-  802b34c:	4b0f      	ldr	r3, [pc, #60]	; (802b38c <vTaskPriorityInherit+0x8c>)
 
- 					prvAddTaskToReadyList( pxTCB );
 
-  802b34e:	4a11      	ldr	r2, [pc, #68]	; (802b394 <vTaskPriorityInherit+0x94>)
 
- 					{
 
- 						mtCOVERAGE_TEST_MARKER();
 
- 					}
 
- 					/* Inherit the priority before being moved into the new list. */
 
- 					pxTCB->uxPriority = pxCurrentTCB->uxPriority;
 
-  802b350:	681b      	ldr	r3, [r3, #0]
 
- 					prvAddTaskToReadyList( pxTCB );
 
-  802b352:	6810      	ldr	r0, [r2, #0]
 
- 					{
 
- 						mtCOVERAGE_TEST_MARKER();
 
- 					}
 
- 					/* Inherit the priority before being moved into the new list. */
 
- 					pxTCB->uxPriority = pxCurrentTCB->uxPriority;
 
-  802b354:	6adb      	ldr	r3, [r3, #44]	; 0x2c
 
- 					prvAddTaskToReadyList( pxTCB );
 
-  802b356:	2101      	movs	r1, #1
 
-  802b358:	fa01 f103 	lsl.w	r1, r1, r3
 
-  802b35c:	4301      	orrs	r1, r0
 
-  802b35e:	6011      	str	r1, [r2, #0]
 
-  802b360:	4a0b      	ldr	r2, [pc, #44]	; (802b390 <vTaskPriorityInherit+0x90>)
 
- 					{
 
- 						mtCOVERAGE_TEST_MARKER();
 
- 					}
 
- 					/* Inherit the priority before being moved into the new list. */
 
- 					pxTCB->uxPriority = pxCurrentTCB->uxPriority;
 
-  802b362:	62e3      	str	r3, [r4, #44]	; 0x2c
 
- 					prvAddTaskToReadyList( pxTCB );
 
-  802b364:	2014      	movs	r0, #20
 
-  802b366:	fb00 2003 	mla	r0, r0, r3, r2
 
-  802b36a:	4629      	mov	r1, r5
 
- 		}
 
- 		else
 
- 		{
 
- 			mtCOVERAGE_TEST_MARKER();
 
- 		}
 
- 	}
 
-  802b36c:	e8bd 40f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, lr}
 
- 						mtCOVERAGE_TEST_MARKER();
 
- 					}
 
- 					/* Inherit the priority before being moved into the new list. */
 
- 					pxTCB->uxPriority = pxCurrentTCB->uxPriority;
 
- 					prvAddTaskToReadyList( pxTCB );
 
-  802b370:	f7fe bfd9 	b.w	802a326 <vListInsertEnd>
 
- 				/* If the task being modified is in the ready state it will need to
 
- 				be moved into a new list. */
 
- 				if( listIS_CONTAINED_WITHIN( &( pxReadyTasksLists[ pxTCB->uxPriority ] ), &( pxTCB->xGenericListItem ) ) != pdFALSE )
 
- 				{
 
- 					if( uxListRemove( &( pxTCB->xGenericListItem ) ) == ( UBaseType_t ) 0 )
 
-  802b374:	1d25      	adds	r5, r4, #4
 
-  802b376:	4628      	mov	r0, r5
 
-  802b378:	f7fe fff9 	bl	802a36e <uxListRemove>
 
-  802b37c:	2800      	cmp	r0, #0
 
-  802b37e:	d0d9      	beq.n	802b334 <vTaskPriorityInherit+0x34>
 
-  802b380:	e7e4      	b.n	802b34c <vTaskPriorityInherit+0x4c>
 
- 					prvAddTaskToReadyList( pxTCB );
 
- 				}
 
- 				else
 
- 				{
 
- 					/* Just inherit the priority. */
 
- 					pxTCB->uxPriority = pxCurrentTCB->uxPriority;
 
-  802b382:	4b02      	ldr	r3, [pc, #8]	; (802b38c <vTaskPriorityInherit+0x8c>)
 
-  802b384:	681b      	ldr	r3, [r3, #0]
 
-  802b386:	6adb      	ldr	r3, [r3, #44]	; 0x2c
 
-  802b388:	62e3      	str	r3, [r4, #44]	; 0x2c
 
-  802b38a:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 
-  802b38c:	20000c80 	.word	0x20000c80
 
-  802b390:	20000c08 	.word	0x20000c08
 
-  802b394:	20000cc0 	.word	0x20000cc0
 
- 0802b398 <xTaskPriorityDisinherit>:
 
- /*-----------------------------------------------------------*/
 
- #if ( configUSE_MUTEXES == 1 )
 
- 	BaseType_t xTaskPriorityDisinherit( TaskHandle_t const pxMutexHolder )
 
- 	{
 
-  802b398:	b538      	push	{r3, r4, r5, lr}
 
- 	TCB_t * const pxTCB = ( TCB_t * ) pxMutexHolder;
 
- 	BaseType_t xReturn = pdFALSE;
 
- 		if( pxMutexHolder != NULL )
 
-  802b39a:	4604      	mov	r4, r0
 
-  802b39c:	b908      	cbnz	r0, 802b3a2 <xTaskPriorityDisinherit+0xa>
 
- #if ( configUSE_MUTEXES == 1 )
 
- 	BaseType_t xTaskPriorityDisinherit( TaskHandle_t const pxMutexHolder )
 
- 	{
 
- 	TCB_t * const pxTCB = ( TCB_t * ) pxMutexHolder;
 
- 	BaseType_t xReturn = pdFALSE;
 
-  802b39e:	2000      	movs	r0, #0
 
-  802b3a0:	bd38      	pop	{r3, r4, r5, pc}
 
- 		if( pxMutexHolder != NULL )
 
- 		{
 
- 			configASSERT( pxTCB->uxMutexesHeld );
 
-  802b3a2:	6d03      	ldr	r3, [r0, #80]	; 0x50
 
-  802b3a4:	b913      	cbnz	r3, 802b3ac <xTaskPriorityDisinherit+0x14>
 
-  802b3a6:	f000 fa1f 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802b3aa:	e7fe      	b.n	802b3aa <xTaskPriorityDisinherit+0x12>
 
- 			( pxTCB->uxMutexesHeld )--;
 
- 			if( pxTCB->uxPriority != pxTCB->uxBasePriority )
 
-  802b3ac:	6ac1      	ldr	r1, [r0, #44]	; 0x2c
 
-  802b3ae:	6cc2      	ldr	r2, [r0, #76]	; 0x4c
 
- 	BaseType_t xReturn = pdFALSE;
 
- 		if( pxMutexHolder != NULL )
 
- 		{
 
- 			configASSERT( pxTCB->uxMutexesHeld );
 
- 			( pxTCB->uxMutexesHeld )--;
 
-  802b3b0:	3b01      	subs	r3, #1
 
- 			if( pxTCB->uxPriority != pxTCB->uxBasePriority )
 
-  802b3b2:	4291      	cmp	r1, r2
 
- 	BaseType_t xReturn = pdFALSE;
 
- 		if( pxMutexHolder != NULL )
 
- 		{
 
- 			configASSERT( pxTCB->uxMutexesHeld );
 
- 			( pxTCB->uxMutexesHeld )--;
 
-  802b3b4:	6503      	str	r3, [r0, #80]	; 0x50
 
- 			if( pxTCB->uxPriority != pxTCB->uxBasePriority )
 
-  802b3b6:	d0f2      	beq.n	802b39e <xTaskPriorityDisinherit+0x6>
 
- 			{
 
- 				/* Only disinherit if no other mutexes are held. */
 
- 				if( pxTCB->uxMutexesHeld == ( UBaseType_t ) 0 )
 
-  802b3b8:	2b00      	cmp	r3, #0
 
-  802b3ba:	d1f0      	bne.n	802b39e <xTaskPriorityDisinherit+0x6>
 
- 					/* A task can only have an inhertied priority if it holds
 
- 					the mutex.  If the mutex is held by a task then it cannot be
 
- 					given from an interrupt, and if a mutex is given by the
 
- 					holding	task then it must be the running state task.  Remove
 
- 					the	holding task from the ready	list. */
 
- 					if( uxListRemove( &( pxTCB->xGenericListItem ) ) == ( UBaseType_t ) 0 )
 
-  802b3bc:	1d05      	adds	r5, r0, #4
 
-  802b3be:	4628      	mov	r0, r5
 
-  802b3c0:	f7fe ffd5 	bl	802a36e <uxListRemove>
 
-  802b3c4:	b968      	cbnz	r0, 802b3e2 <xTaskPriorityDisinherit+0x4a>
 
- 					{
 
- 						taskRESET_READY_PRIORITY( pxTCB->uxPriority );
 
-  802b3c6:	6ae2      	ldr	r2, [r4, #44]	; 0x2c
 
-  802b3c8:	4910      	ldr	r1, [pc, #64]	; (802b40c <xTaskPriorityDisinherit+0x74>)
 
-  802b3ca:	2314      	movs	r3, #20
 
-  802b3cc:	4353      	muls	r3, r2
 
-  802b3ce:	58cb      	ldr	r3, [r1, r3]
 
-  802b3d0:	b93b      	cbnz	r3, 802b3e2 <xTaskPriorityDisinherit+0x4a>
 
-  802b3d2:	4b0f      	ldr	r3, [pc, #60]	; (802b410 <xTaskPriorityDisinherit+0x78>)
 
-  802b3d4:	2001      	movs	r0, #1
 
-  802b3d6:	6819      	ldr	r1, [r3, #0]
 
-  802b3d8:	fa00 f202 	lsl.w	r2, r0, r2
 
-  802b3dc:	ea21 0202 	bic.w	r2, r1, r2
 
-  802b3e0:	601a      	str	r2, [r3, #0]
 
- 					}
 
- 					/* Disinherit the priority before adding the task into the
 
- 					new	ready list. */
 
- 					traceTASK_PRIORITY_DISINHERIT( pxTCB, pxTCB->uxBasePriority );
 
- 					pxTCB->uxPriority = pxTCB->uxBasePriority;
 
-  802b3e2:	6ce3      	ldr	r3, [r4, #76]	; 0x4c
 
- 					/* Reset the event list item value.  It cannot be in use for
 
- 					any other purpose if this task is running, and it must be
 
- 					running to give back the mutex. */
 
- 					listSET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ), ( TickType_t ) configMAX_PRIORITIES - ( TickType_t ) pxTCB->uxPriority ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */
 
-  802b3e4:	f1c3 0205 	rsb	r2, r3, #5
 
-  802b3e8:	61a2      	str	r2, [r4, #24]
 
- 					prvAddTaskToReadyList( pxTCB );
 
-  802b3ea:	4a09      	ldr	r2, [pc, #36]	; (802b410 <xTaskPriorityDisinherit+0x78>)
 
- 					}
 
- 					/* Disinherit the priority before adding the task into the
 
- 					new	ready list. */
 
- 					traceTASK_PRIORITY_DISINHERIT( pxTCB, pxTCB->uxBasePriority );
 
- 					pxTCB->uxPriority = pxTCB->uxBasePriority;
 
-  802b3ec:	62e3      	str	r3, [r4, #44]	; 0x2c
 
- 					/* Reset the event list item value.  It cannot be in use for
 
- 					any other purpose if this task is running, and it must be
 
- 					running to give back the mutex. */
 
- 					listSET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ), ( TickType_t ) configMAX_PRIORITIES - ( TickType_t ) pxTCB->uxPriority ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */
 
- 					prvAddTaskToReadyList( pxTCB );
 
-  802b3ee:	6811      	ldr	r1, [r2, #0]
 
-  802b3f0:	2401      	movs	r4, #1
 
-  802b3f2:	fa04 f003 	lsl.w	r0, r4, r3
 
-  802b3f6:	4301      	orrs	r1, r0
 
-  802b3f8:	6011      	str	r1, [r2, #0]
 
-  802b3fa:	4a04      	ldr	r2, [pc, #16]	; (802b40c <xTaskPriorityDisinherit+0x74>)
 
-  802b3fc:	2014      	movs	r0, #20
 
-  802b3fe:	fb00 2003 	mla	r0, r0, r3, r2
 
-  802b402:	4629      	mov	r1, r5
 
-  802b404:	f7fe ff8f 	bl	802a326 <vListInsertEnd>
 
- 					in an order different to that in which they were taken.
 
- 					If a context switch did not occur when the first mutex was
 
- 					returned, even if a task was waiting on it, then a context
 
- 					switch should occur when the last mutex is returned whether
 
- 					a task is waiting on it or not. */
 
- 					xReturn = pdTRUE;
 
-  802b408:	4620      	mov	r0, r4
 
- 		{
 
- 			mtCOVERAGE_TEST_MARKER();
 
- 		}
 
- 		return xReturn;
 
- 	}
 
-  802b40a:	bd38      	pop	{r3, r4, r5, pc}
 
-  802b40c:	20000c08 	.word	0x20000c08
 
-  802b410:	20000cc0 	.word	0x20000cc0
 
- 0802b414 <pvTaskIncrementMutexHeldCount>:
 
- 	void *pvTaskIncrementMutexHeldCount( void )
 
- 	{
 
- 		/* If xSemaphoreCreateMutex() is called before any tasks have been created
 
- 		then pxCurrentTCB will be NULL. */
 
- 		if( pxCurrentTCB != NULL )
 
-  802b414:	4b04      	ldr	r3, [pc, #16]	; (802b428 <pvTaskIncrementMutexHeldCount+0x14>)
 
-  802b416:	681a      	ldr	r2, [r3, #0]
 
-  802b418:	b11a      	cbz	r2, 802b422 <pvTaskIncrementMutexHeldCount+0xe>
 
- 		{
 
- 			( pxCurrentTCB->uxMutexesHeld )++;
 
-  802b41a:	681a      	ldr	r2, [r3, #0]
 
-  802b41c:	6d11      	ldr	r1, [r2, #80]	; 0x50
 
-  802b41e:	3101      	adds	r1, #1
 
-  802b420:	6511      	str	r1, [r2, #80]	; 0x50
 
- 		}
 
- 		return pxCurrentTCB;
 
-  802b422:	6818      	ldr	r0, [r3, #0]
 
- 	}
 
-  802b424:	4770      	bx	lr
 
-  802b426:	bf00      	nop
 
-  802b428:	20000c80 	.word	0x20000c80
 
- 0802b42c <prvCheckForValidListAndQueue>:
 
- 	pxOverflowTimerList = pxTemp;
 
- }
 
- /*-----------------------------------------------------------*/
 
- static void prvCheckForValidListAndQueue( void )
 
- {
 
-  802b42c:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
- 	/* Check that the list from which active timers are referenced, and the
 
- 	queue used to communicate with the timer service, have been
 
- 	initialised. */
 
- 	taskENTER_CRITICAL();
 
- 	{
 
- 		if( xTimerQueue == NULL )
 
-  802b42e:	4c0f      	ldr	r4, [pc, #60]	; (802b46c <prvCheckForValidListAndQueue+0x40>)
 
- static void prvCheckForValidListAndQueue( void )
 
- {
 
- 	/* Check that the list from which active timers are referenced, and the
 
- 	queue used to communicate with the timer service, have been
 
- 	initialised. */
 
- 	taskENTER_CRITICAL();
 
-  802b430:	f000 f9e2 	bl	802b7f8 <vPortEnterCritical>
 
- 	{
 
- 		if( xTimerQueue == NULL )
 
-  802b434:	6825      	ldr	r5, [r4, #0]
 
-  802b436:	b9ad      	cbnz	r5, 802b464 <prvCheckForValidListAndQueue+0x38>
 
- 		{
 
- 			vListInitialise( &xActiveTimerList1 );
 
-  802b438:	4f0d      	ldr	r7, [pc, #52]	; (802b470 <prvCheckForValidListAndQueue+0x44>)
 
- 			vListInitialise( &xActiveTimerList2 );
 
-  802b43a:	4e0e      	ldr	r6, [pc, #56]	; (802b474 <prvCheckForValidListAndQueue+0x48>)
 
- 	initialised. */
 
- 	taskENTER_CRITICAL();
 
- 	{
 
- 		if( xTimerQueue == NULL )
 
- 		{
 
- 			vListInitialise( &xActiveTimerList1 );
 
-  802b43c:	4638      	mov	r0, r7
 
-  802b43e:	f7fe ff64 	bl	802a30a <vListInitialise>
 
- 			vListInitialise( &xActiveTimerList2 );
 
-  802b442:	4630      	mov	r0, r6
 
-  802b444:	f7fe ff61 	bl	802a30a <vListInitialise>
 
- 			pxCurrentTimerList = &xActiveTimerList1;
 
-  802b448:	4b0b      	ldr	r3, [pc, #44]	; (802b478 <prvCheckForValidListAndQueue+0x4c>)
 
-  802b44a:	601f      	str	r7, [r3, #0]
 
- 			pxOverflowTimerList = &xActiveTimerList2;
 
-  802b44c:	4b0b      	ldr	r3, [pc, #44]	; (802b47c <prvCheckForValidListAndQueue+0x50>)
 
- 			xTimerQueue = xQueueCreate( ( UBaseType_t ) configTIMER_QUEUE_LENGTH, sizeof( DaemonTaskMessage_t ) );
 
-  802b44e:	200a      	movs	r0, #10
 
-  802b450:	210c      	movs	r1, #12
 
-  802b452:	462a      	mov	r2, r5
 
- 		if( xTimerQueue == NULL )
 
- 		{
 
- 			vListInitialise( &xActiveTimerList1 );
 
- 			vListInitialise( &xActiveTimerList2 );
 
- 			pxCurrentTimerList = &xActiveTimerList1;
 
- 			pxOverflowTimerList = &xActiveTimerList2;
 
-  802b454:	601e      	str	r6, [r3, #0]
 
- 			xTimerQueue = xQueueCreate( ( UBaseType_t ) configTIMER_QUEUE_LENGTH, sizeof( DaemonTaskMessage_t ) );
 
-  802b456:	f7ff f849 	bl	802a4ec <xQueueGenericCreate>
 
-  802b45a:	6020      	str	r0, [r4, #0]
 
- 			configASSERT( xTimerQueue );
 
-  802b45c:	b910      	cbnz	r0, 802b464 <prvCheckForValidListAndQueue+0x38>
 
-  802b45e:	f000 f9c3 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802b462:	e7fe      	b.n	802b462 <prvCheckForValidListAndQueue+0x36>
 
- 		{
 
- 			mtCOVERAGE_TEST_MARKER();
 
- 		}
 
- 	}
 
- 	taskEXIT_CRITICAL();
 
- }
 
-  802b464:	e8bd 40f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, lr}
 
- 		else
 
- 		{
 
- 			mtCOVERAGE_TEST_MARKER();
 
- 		}
 
- 	}
 
- 	taskEXIT_CRITICAL();
 
-  802b468:	f000 b9f2 	b.w	802b850 <vPortExitCritical>
 
-  802b46c:	20000cf8 	.word	0x20000cf8
 
-  802b470:	20000ccc 	.word	0x20000ccc
 
-  802b474:	20000ce0 	.word	0x20000ce0
 
-  802b478:	20000cc8 	.word	0x20000cc8
 
-  802b47c:	20000cfc 	.word	0x20000cfc
 
- 0802b480 <prvInsertTimerInActiveList>:
 
- 	return xTimeNow;
 
- }
 
- /*-----------------------------------------------------------*/
 
- static BaseType_t prvInsertTimerInActiveList( Timer_t * const pxTimer, const TickType_t xNextExpiryTime, const TickType_t xTimeNow, const TickType_t xCommandTime )
 
- {
 
-  802b480:	b510      	push	{r4, lr}
 
-  802b482:	4604      	mov	r4, r0
 
- BaseType_t xProcessTimerNow = pdFALSE;
 
- 	listSET_LIST_ITEM_VALUE( &( pxTimer->xTimerListItem ), xNextExpiryTime );
 
- 	listSET_LIST_ITEM_OWNER( &( pxTimer->xTimerListItem ), pxTimer );
 
- 	if( xNextExpiryTime <= xTimeNow )
 
-  802b484:	4291      	cmp	r1, r2
 
- static BaseType_t prvInsertTimerInActiveList( Timer_t * const pxTimer, const TickType_t xNextExpiryTime, const TickType_t xTimeNow, const TickType_t xCommandTime )
 
- {
 
- BaseType_t xProcessTimerNow = pdFALSE;
 
- 	listSET_LIST_ITEM_VALUE( &( pxTimer->xTimerListItem ), xNextExpiryTime );
 
-  802b486:	6041      	str	r1, [r0, #4]
 
- 	listSET_LIST_ITEM_OWNER( &( pxTimer->xTimerListItem ), pxTimer );
 
-  802b488:	6120      	str	r0, [r4, #16]
 
- 	if( xNextExpiryTime <= xTimeNow )
 
-  802b48a:	d805      	bhi.n	802b498 <prvInsertTimerInActiveList+0x18>
 
- 	{
 
- 		/* Has the expiry time elapsed between the command to start/reset a
 
- 		timer was issued, and the time the command was processed? */
 
- 		if( ( xTimeNow - xCommandTime ) >= pxTimer->xTimerPeriodInTicks )
 
-  802b48c:	6981      	ldr	r1, [r0, #24]
 
-  802b48e:	1ad2      	subs	r2, r2, r3
 
-  802b490:	428a      	cmp	r2, r1
 
-  802b492:	d20c      	bcs.n	802b4ae <prvInsertTimerInActiveList+0x2e>
 
- 			processed actually exceeds the timers period.  */
 
- 			xProcessTimerNow = pdTRUE;
 
- 		}
 
- 		else
 
- 		{
 
- 			vListInsert( pxOverflowTimerList, &( pxTimer->xTimerListItem ) );
 
-  802b494:	4b07      	ldr	r3, [pc, #28]	; (802b4b4 <prvInsertTimerInActiveList+0x34>)
 
-  802b496:	e004      	b.n	802b4a2 <prvInsertTimerInActiveList+0x22>
 
- 		}
 
- 	}
 
- 	else
 
- 	{
 
- 		if( ( xTimeNow < xCommandTime ) && ( xNextExpiryTime >= xCommandTime ) )
 
-  802b498:	429a      	cmp	r2, r3
 
-  802b49a:	d201      	bcs.n	802b4a0 <prvInsertTimerInActiveList+0x20>
 
-  802b49c:	4299      	cmp	r1, r3
 
-  802b49e:	d206      	bcs.n	802b4ae <prvInsertTimerInActiveList+0x2e>
 
- 			its expiry time and should be processed immediately. */
 
- 			xProcessTimerNow = pdTRUE;
 
- 		}
 
- 		else
 
- 		{
 
- 			vListInsert( pxCurrentTimerList, &( pxTimer->xTimerListItem ) );
 
-  802b4a0:	4b05      	ldr	r3, [pc, #20]	; (802b4b8 <prvInsertTimerInActiveList+0x38>)
 
-  802b4a2:	6818      	ldr	r0, [r3, #0]
 
-  802b4a4:	1d21      	adds	r1, r4, #4
 
-  802b4a6:	f7fe ff4a 	bl	802a33e <vListInsert>
 
- }
 
- /*-----------------------------------------------------------*/
 
- static BaseType_t prvInsertTimerInActiveList( Timer_t * const pxTimer, const TickType_t xNextExpiryTime, const TickType_t xTimeNow, const TickType_t xCommandTime )
 
- {
 
- BaseType_t xProcessTimerNow = pdFALSE;
 
-  802b4aa:	2000      	movs	r0, #0
 
-  802b4ac:	bd10      	pop	{r4, pc}
 
- 		timer was issued, and the time the command was processed? */
 
- 		if( ( xTimeNow - xCommandTime ) >= pxTimer->xTimerPeriodInTicks )
 
- 		{
 
- 			/* The time between a command being issued and the command being
 
- 			processed actually exceeds the timers period.  */
 
- 			xProcessTimerNow = pdTRUE;
 
-  802b4ae:	2001      	movs	r0, #1
 
- 			vListInsert( pxCurrentTimerList, &( pxTimer->xTimerListItem ) );
 
- 		}
 
- 	}
 
- 	return xProcessTimerNow;
 
- }
 
-  802b4b0:	bd10      	pop	{r4, pc}
 
-  802b4b2:	bf00      	nop
 
-  802b4b4:	20000cfc 	.word	0x20000cfc
 
-  802b4b8:	20000cc8 	.word	0x20000cc8
 
- 0802b4bc <xTimerCreateTimerTask>:
 
- static void prvProcessTimerOrBlockTask( const TickType_t xNextExpireTime, const BaseType_t xListWasEmpty ) PRIVILEGED_FUNCTION;
 
- /*-----------------------------------------------------------*/
 
- BaseType_t xTimerCreateTimerTask( void )
 
- {
 
-  802b4bc:	b51f      	push	{r0, r1, r2, r3, r4, lr}
 
- 	/* This function is called when the scheduler is started if
 
- 	configUSE_TIMERS is set to 1.  Check that the infrastructure used by the
 
- 	timer service task has been created/initialised.  If timers have already
 
- 	been created then the initialisation will already have been performed. */
 
- 	prvCheckForValidListAndQueue();
 
-  802b4be:	f7ff ffb5 	bl	802b42c <prvCheckForValidListAndQueue>
 
- 	if( xTimerQueue != NULL )
 
-  802b4c2:	4b0b      	ldr	r3, [pc, #44]	; (802b4f0 <xTimerCreateTimerTask+0x34>)
 
-  802b4c4:	681b      	ldr	r3, [r3, #0]
 
-  802b4c6:	b913      	cbnz	r3, 802b4ce <xTimerCreateTimerTask+0x12>
 
- 	else
 
- 	{
 
- 		mtCOVERAGE_TEST_MARKER();
 
- 	}
 
- 	configASSERT( xReturn );
 
-  802b4c8:	f000 f98e 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802b4cc:	e00d      	b.n	802b4ea <xTimerCreateTimerTask+0x2e>
 
- 			xReturn = xTaskCreate( prvTimerTask, "Tmr Svc", ( uint16_t ) configTIMER_TASK_STACK_DEPTH, NULL, ( ( UBaseType_t ) configTIMER_TASK_PRIORITY ) | portPRIVILEGE_BIT, &xTimerTaskHandle );
 
- 		}
 
- 		#else
 
- 		{
 
- 			/* Create the timer task without storing its handle. */
 
- 			xReturn = xTaskCreate( prvTimerTask, "Tmr Svc", ( uint16_t ) configTIMER_TASK_STACK_DEPTH, NULL, ( ( UBaseType_t ) configTIMER_TASK_PRIORITY ) | portPRIVILEGE_BIT, NULL);
 
-  802b4ce:	2302      	movs	r3, #2
 
-  802b4d0:	9300      	str	r3, [sp, #0]
 
-  802b4d2:	2300      	movs	r3, #0
 
-  802b4d4:	9301      	str	r3, [sp, #4]
 
-  802b4d6:	9302      	str	r3, [sp, #8]
 
-  802b4d8:	9303      	str	r3, [sp, #12]
 
-  802b4da:	4806      	ldr	r0, [pc, #24]	; (802b4f4 <xTimerCreateTimerTask+0x38>)
 
-  802b4dc:	4906      	ldr	r1, [pc, #24]	; (802b4f8 <xTimerCreateTimerTask+0x3c>)
 
-  802b4de:	f44f 7280 	mov.w	r2, #256	; 0x100
 
-  802b4e2:	f7ff fad9 	bl	802aa98 <xTaskGenericCreate>
 
- 	else
 
- 	{
 
- 		mtCOVERAGE_TEST_MARKER();
 
- 	}
 
- 	configASSERT( xReturn );
 
-  802b4e6:	b908      	cbnz	r0, 802b4ec <xTimerCreateTimerTask+0x30>
 
-  802b4e8:	e7ee      	b.n	802b4c8 <xTimerCreateTimerTask+0xc>
 
-  802b4ea:	e7fe      	b.n	802b4ea <xTimerCreateTimerTask+0x2e>
 
- 	return xReturn;
 
- }
 
-  802b4ec:	b005      	add	sp, #20
 
-  802b4ee:	bd00      	pop	{pc}
 
-  802b4f0:	20000cf8 	.word	0x20000cf8
 
-  802b4f4:	0802b5f5 	.word	0x0802b5f5
 
-  802b4f8:	08039de6 	.word	0x08039de6
 
- 0802b4fc <xTimerCreate>:
 
- /*-----------------------------------------------------------*/
 
- TimerHandle_t xTimerCreate( const char * const pcTimerName, const TickType_t xTimerPeriodInTicks, const UBaseType_t uxAutoReload, void * const pvTimerID, TimerCallbackFunction_t pxCallbackFunction ) /*lint !e971 Unqualified char types are allowed for strings and single characters only. */
 
- {
 
-  802b4fc:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
 
-  802b500:	4680      	mov	r8, r0
 
-  802b502:	4617      	mov	r7, r2
 
-  802b504:	461e      	mov	r6, r3
 
- Timer_t *pxNewTimer;
 
- 	/* Allocate the timer structure. */
 
- 	if( xTimerPeriodInTicks == ( TickType_t ) 0U )
 
-  802b506:	460d      	mov	r5, r1
 
-  802b508:	b191      	cbz	r1, 802b530 <xTimerCreate+0x34>
 
- 	{
 
- 		pxNewTimer = NULL;
 
- 	}
 
- 	else
 
- 	{
 
- 		pxNewTimer = ( Timer_t * ) pvPortMalloc( sizeof( Timer_t ) );
 
-  802b50a:	202c      	movs	r0, #44	; 0x2c
 
-  802b50c:	f000 fa82 	bl	802ba14 <pvPortMalloc>
 
- 		if( pxNewTimer != NULL )
 
-  802b510:	4604      	mov	r4, r0
 
-  802b512:	b180      	cbz	r0, 802b536 <xTimerCreate+0x3a>
 
- 		{
 
- 			/* Ensure the infrastructure used by the timer service task has been
 
- 			created/initialised. */
 
- 			prvCheckForValidListAndQueue();
 
-  802b514:	f7ff ff8a 	bl	802b42c <prvCheckForValidListAndQueue>
 
- 			/* Initialise the timer structure members using the function parameters. */
 
- 			pxNewTimer->pcTimerName = pcTimerName;
 
- 			pxNewTimer->xTimerPeriodInTicks = xTimerPeriodInTicks;
 
- 			pxNewTimer->uxAutoReload = uxAutoReload;
 
- 			pxNewTimer->pvTimerID = pvTimerID;
 
- 			pxNewTimer->pxCallbackFunction = pxCallbackFunction;
 
-  802b518:	9b06      	ldr	r3, [sp, #24]
 
- 			/* Ensure the infrastructure used by the timer service task has been
 
- 			created/initialised. */
 
- 			prvCheckForValidListAndQueue();
 
- 			/* Initialise the timer structure members using the function parameters. */
 
- 			pxNewTimer->pcTimerName = pcTimerName;
 
-  802b51a:	f8c4 8000 	str.w	r8, [r4]
 
- 			pxNewTimer->xTimerPeriodInTicks = xTimerPeriodInTicks;
 
-  802b51e:	61a5      	str	r5, [r4, #24]
 
- 			pxNewTimer->uxAutoReload = uxAutoReload;
 
-  802b520:	61e7      	str	r7, [r4, #28]
 
- 			pxNewTimer->pvTimerID = pvTimerID;
 
-  802b522:	6226      	str	r6, [r4, #32]
 
- 			pxNewTimer->pxCallbackFunction = pxCallbackFunction;
 
-  802b524:	6263      	str	r3, [r4, #36]	; 0x24
 
- 			vListInitialiseItem( &( pxNewTimer->xTimerListItem ) );
 
-  802b526:	1d20      	adds	r0, r4, #4
 
-  802b528:	f7fe fefa 	bl	802a320 <vListInitialiseItem>
 
-  802b52c:	e003      	b.n	802b536 <xTimerCreate+0x3a>
 
-  802b52e:	e7fe      	b.n	802b52e <xTimerCreate+0x32>
 
- 			traceTIMER_CREATE_FAILED();
 
- 		}
 
- 	}
 
- 	/* 0 is not a valid value for xTimerPeriodInTicks. */
 
- 	configASSERT( ( xTimerPeriodInTicks > 0 ) );
 
-  802b530:	f000 f95a 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802b534:	e7fb      	b.n	802b52e <xTimerCreate+0x32>
 
- 	return ( TimerHandle_t ) pxNewTimer;
 
- }
 
-  802b536:	4620      	mov	r0, r4
 
-  802b538:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 
- 0802b53c <xTimerGenericCommand>:
 
- /*-----------------------------------------------------------*/
 
- BaseType_t xTimerGenericCommand( TimerHandle_t xTimer, const BaseType_t xCommandID, const TickType_t xOptionalValue, BaseType_t * const pxHigherPriorityTaskWoken, const TickType_t xTicksToWait )
 
- {
 
-  802b53c:	b530      	push	{r4, r5, lr}
 
- BaseType_t xReturn = pdFAIL;
 
- DaemonTaskMessage_t xMessage;
 
- 	/* Send a message to the timer service task to perform a particular action
 
- 	on a particular timer definition. */
 
- 	if( xTimerQueue != NULL )
 
-  802b53e:	4c0f      	ldr	r4, [pc, #60]	; (802b57c <xTimerGenericCommand+0x40>)
 
- 	return ( TimerHandle_t ) pxNewTimer;
 
- }
 
- /*-----------------------------------------------------------*/
 
- BaseType_t xTimerGenericCommand( TimerHandle_t xTimer, const BaseType_t xCommandID, const TickType_t xOptionalValue, BaseType_t * const pxHigherPriorityTaskWoken, const TickType_t xTicksToWait )
 
- {
 
-  802b540:	4605      	mov	r5, r0
 
- BaseType_t xReturn = pdFAIL;
 
- DaemonTaskMessage_t xMessage;
 
- 	/* Send a message to the timer service task to perform a particular action
 
- 	on a particular timer definition. */
 
- 	if( xTimerQueue != NULL )
 
-  802b542:	6820      	ldr	r0, [r4, #0]
 
- 	return ( TimerHandle_t ) pxNewTimer;
 
- }
 
- /*-----------------------------------------------------------*/
 
- BaseType_t xTimerGenericCommand( TimerHandle_t xTimer, const BaseType_t xCommandID, const TickType_t xOptionalValue, BaseType_t * const pxHigherPriorityTaskWoken, const TickType_t xTicksToWait )
 
- {
 
-  802b544:	b085      	sub	sp, #20
 
- BaseType_t xReturn = pdFAIL;
 
- DaemonTaskMessage_t xMessage;
 
- 	/* Send a message to the timer service task to perform a particular action
 
- 	on a particular timer definition. */
 
- 	if( xTimerQueue != NULL )
 
-  802b546:	b1b8      	cbz	r0, 802b578 <xTimerGenericCommand+0x3c>
 
- 		/* Send a command to the timer service task to start the xTimer timer. */
 
- 		xMessage.xMessageID = xCommandID;
 
- 		xMessage.u.xTimerParameters.xMessageValue = xOptionalValue;
 
- 		xMessage.u.xTimerParameters.pxTimer = ( Timer_t * ) xTimer;
 
- 		if( xCommandID < tmrFIRST_FROM_ISR_COMMAND )
 
-  802b548:	2905      	cmp	r1, #5
 
- 	/* Send a message to the timer service task to perform a particular action
 
- 	on a particular timer definition. */
 
- 	if( xTimerQueue != NULL )
 
- 	{
 
- 		/* Send a command to the timer service task to start the xTimer timer. */
 
- 		xMessage.xMessageID = xCommandID;
 
-  802b54a:	9101      	str	r1, [sp, #4]
 
- 		xMessage.u.xTimerParameters.xMessageValue = xOptionalValue;
 
-  802b54c:	9202      	str	r2, [sp, #8]
 
- 		xMessage.u.xTimerParameters.pxTimer = ( Timer_t * ) xTimer;
 
-  802b54e:	9503      	str	r5, [sp, #12]
 
- 		if( xCommandID < tmrFIRST_FROM_ISR_COMMAND )
 
-  802b550:	dc0d      	bgt.n	802b56e <xTimerGenericCommand+0x32>
 
- 		{
 
- 			if( xTaskGetSchedulerState() == taskSCHEDULER_RUNNING )
 
-  802b552:	f7ff fec5 	bl	802b2e0 <xTaskGetSchedulerState>
 
-  802b556:	2802      	cmp	r0, #2
 
- 			{
 
- 				xReturn = xQueueSendToBack( xTimerQueue, &xMessage, xTicksToWait );
 
-  802b558:	a901      	add	r1, sp, #4
 
-  802b55a:	6820      	ldr	r0, [r4, #0]
 
- 		xMessage.u.xTimerParameters.xMessageValue = xOptionalValue;
 
- 		xMessage.u.xTimerParameters.pxTimer = ( Timer_t * ) xTimer;
 
- 		if( xCommandID < tmrFIRST_FROM_ISR_COMMAND )
 
- 		{
 
- 			if( xTaskGetSchedulerState() == taskSCHEDULER_RUNNING )
 
-  802b55c:	d102      	bne.n	802b564 <xTimerGenericCommand+0x28>
 
- 			{
 
- 				xReturn = xQueueSendToBack( xTimerQueue, &xMessage, xTicksToWait );
 
-  802b55e:	9a08      	ldr	r2, [sp, #32]
 
-  802b560:	2300      	movs	r3, #0
 
-  802b562:	e001      	b.n	802b568 <xTimerGenericCommand+0x2c>
 
- 			}
 
- 			else
 
- 			{
 
- 				xReturn = xQueueSendToBack( xTimerQueue, &xMessage, tmrNO_DELAY );
 
-  802b564:	2200      	movs	r2, #0
 
-  802b566:	4613      	mov	r3, r2
 
-  802b568:	f7fe fffd 	bl	802a566 <xQueueGenericSend>
 
-  802b56c:	e004      	b.n	802b578 <xTimerGenericCommand+0x3c>
 
- 			}
 
- 		}
 
- 		else
 
- 		{
 
- 			xReturn = xQueueSendToBackFromISR( xTimerQueue, &xMessage, pxHigherPriorityTaskWoken );
 
-  802b56e:	461a      	mov	r2, r3
 
-  802b570:	a901      	add	r1, sp, #4
 
-  802b572:	2300      	movs	r3, #0
 
-  802b574:	f7ff f8bb 	bl	802a6ee <xQueueGenericSendFromISR>
 
- 	{
 
- 		mtCOVERAGE_TEST_MARKER();
 
- 	}
 
- 	return xReturn;
 
- }
 
-  802b578:	b005      	add	sp, #20
 
-  802b57a:	bd30      	pop	{r4, r5, pc}
 
-  802b57c:	20000cf8 	.word	0x20000cf8
 
- 0802b580 <prvSwitchTimerLists>:
 
- 	}
 
- }
 
- /*-----------------------------------------------------------*/
 
- static void prvSwitchTimerLists( void )
 
- {
 
-  802b580:	e92d 41f3 	stmdb	sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
 
- 	/* The tick count has overflowed.  The timer lists must be switched.
 
- 	If there are any timers still referenced from the current timer list
 
- 	then they must have expired and should be processed before the lists
 
- 	are switched. */
 
- 	while( listLIST_IS_EMPTY( pxCurrentTimerList ) == pdFALSE )
 
-  802b584:	4e19      	ldr	r6, [pc, #100]	; (802b5ec <prvSwitchTimerLists+0x6c>)
 
- 				listSET_LIST_ITEM_OWNER( &( pxTimer->xTimerListItem ), pxTimer );
 
- 				vListInsert( pxCurrentTimerList, &( pxTimer->xTimerListItem ) );
 
- 			}
 
- 			else
 
- 			{
 
- 				xResult = xTimerGenericCommand( pxTimer, tmrCOMMAND_START_DONT_TRACE, xNextExpireTime, NULL, tmrNO_DELAY );
 
-  802b586:	f04f 0800 	mov.w	r8, #0
 
-  802b58a:	e023      	b.n	802b5d4 <prvSwitchTimerLists+0x54>
 
- 	If there are any timers still referenced from the current timer list
 
- 	then they must have expired and should be processed before the lists
 
- 	are switched. */
 
- 	while( listLIST_IS_EMPTY( pxCurrentTimerList ) == pdFALSE )
 
- 	{
 
- 		xNextExpireTime = listGET_ITEM_VALUE_OF_HEAD_ENTRY( pxCurrentTimerList );
 
-  802b58c:	68db      	ldr	r3, [r3, #12]
 
- 		/* Remove the timer from the list. */
 
- 		pxTimer = ( Timer_t * ) listGET_OWNER_OF_HEAD_ENTRY( pxCurrentTimerList );
 
-  802b58e:	68dc      	ldr	r4, [r3, #12]
 
- 	If there are any timers still referenced from the current timer list
 
- 	then they must have expired and should be processed before the lists
 
- 	are switched. */
 
- 	while( listLIST_IS_EMPTY( pxCurrentTimerList ) == pdFALSE )
 
- 	{
 
- 		xNextExpireTime = listGET_ITEM_VALUE_OF_HEAD_ENTRY( pxCurrentTimerList );
 
-  802b590:	681d      	ldr	r5, [r3, #0]
 
- 		/* Remove the timer from the list. */
 
- 		pxTimer = ( Timer_t * ) listGET_OWNER_OF_HEAD_ENTRY( pxCurrentTimerList );
 
- 		( void ) uxListRemove( &( pxTimer->xTimerListItem ) );
 
-  802b592:	1d27      	adds	r7, r4, #4
 
-  802b594:	4638      	mov	r0, r7
 
-  802b596:	f7fe feea 	bl	802a36e <uxListRemove>
 
- 		traceTIMER_EXPIRED( pxTimer );
 
- 		/* Execute its callback, then send a command to restart the timer if
 
- 		it is an auto-reload timer.  It cannot be restarted here as the lists
 
- 		have not yet been switched. */
 
- 		pxTimer->pxCallbackFunction( ( TimerHandle_t ) pxTimer );
 
-  802b59a:	6a63      	ldr	r3, [r4, #36]	; 0x24
 
-  802b59c:	4620      	mov	r0, r4
 
-  802b59e:	4798      	blx	r3
 
- 		if( pxTimer->uxAutoReload == ( UBaseType_t ) pdTRUE )
 
-  802b5a0:	69e3      	ldr	r3, [r4, #28]
 
-  802b5a2:	2b01      	cmp	r3, #1
 
-  802b5a4:	d116      	bne.n	802b5d4 <prvSwitchTimerLists+0x54>
 
- 			the timer going into the same timer list then it has already expired
 
- 			and the timer should be re-inserted into the current list so it is
 
- 			processed again within this loop.  Otherwise a command should be sent
 
- 			to restart the timer to ensure it is only inserted into a list after
 
- 			the lists have been swapped. */
 
- 			xReloadTime = ( xNextExpireTime + pxTimer->xTimerPeriodInTicks );
 
-  802b5a6:	69a3      	ldr	r3, [r4, #24]
 
-  802b5a8:	18eb      	adds	r3, r5, r3
 
- 			if( xReloadTime > xNextExpireTime )
 
-  802b5aa:	42ab      	cmp	r3, r5
 
-  802b5ac:	d906      	bls.n	802b5bc <prvSwitchTimerLists+0x3c>
 
- 			{
 
- 				listSET_LIST_ITEM_VALUE( &( pxTimer->xTimerListItem ), xReloadTime );
 
-  802b5ae:	6063      	str	r3, [r4, #4]
 
- 				listSET_LIST_ITEM_OWNER( &( pxTimer->xTimerListItem ), pxTimer );
 
-  802b5b0:	6124      	str	r4, [r4, #16]
 
- 				vListInsert( pxCurrentTimerList, &( pxTimer->xTimerListItem ) );
 
-  802b5b2:	6830      	ldr	r0, [r6, #0]
 
-  802b5b4:	4639      	mov	r1, r7
 
-  802b5b6:	f7fe fec2 	bl	802a33e <vListInsert>
 
-  802b5ba:	e00b      	b.n	802b5d4 <prvSwitchTimerLists+0x54>
 
- 			}
 
- 			else
 
- 			{
 
- 				xResult = xTimerGenericCommand( pxTimer, tmrCOMMAND_START_DONT_TRACE, xNextExpireTime, NULL, tmrNO_DELAY );
 
-  802b5bc:	2100      	movs	r1, #0
 
-  802b5be:	f8cd 8000 	str.w	r8, [sp]
 
-  802b5c2:	4620      	mov	r0, r4
 
-  802b5c4:	462a      	mov	r2, r5
 
-  802b5c6:	460b      	mov	r3, r1
 
-  802b5c8:	f7ff ffb8 	bl	802b53c <xTimerGenericCommand>
 
- 				configASSERT( xResult );
 
-  802b5cc:	b910      	cbnz	r0, 802b5d4 <prvSwitchTimerLists+0x54>
 
-  802b5ce:	f000 f90b 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802b5d2:	e7fe      	b.n	802b5d2 <prvSwitchTimerLists+0x52>
 
- 	/* The tick count has overflowed.  The timer lists must be switched.
 
- 	If there are any timers still referenced from the current timer list
 
- 	then they must have expired and should be processed before the lists
 
- 	are switched. */
 
- 	while( listLIST_IS_EMPTY( pxCurrentTimerList ) == pdFALSE )
 
-  802b5d4:	6833      	ldr	r3, [r6, #0]
 
-  802b5d6:	681a      	ldr	r2, [r3, #0]
 
-  802b5d8:	2a00      	cmp	r2, #0
 
-  802b5da:	d1d7      	bne.n	802b58c <prvSwitchTimerLists+0xc>
 
- 			mtCOVERAGE_TEST_MARKER();
 
- 		}
 
- 	}
 
- 	pxTemp = pxCurrentTimerList;
 
- 	pxCurrentTimerList = pxOverflowTimerList;
 
-  802b5dc:	4a04      	ldr	r2, [pc, #16]	; (802b5f0 <prvSwitchTimerLists+0x70>)
 
-  802b5de:	4803      	ldr	r0, [pc, #12]	; (802b5ec <prvSwitchTimerLists+0x6c>)
 
-  802b5e0:	6811      	ldr	r1, [r2, #0]
 
- 	pxOverflowTimerList = pxTemp;
 
-  802b5e2:	6013      	str	r3, [r2, #0]
 
- 			mtCOVERAGE_TEST_MARKER();
 
- 		}
 
- 	}
 
- 	pxTemp = pxCurrentTimerList;
 
- 	pxCurrentTimerList = pxOverflowTimerList;
 
-  802b5e4:	6001      	str	r1, [r0, #0]
 
- 	pxOverflowTimerList = pxTemp;
 
- }
 
-  802b5e6:	e8bd 81fc 	ldmia.w	sp!, {r2, r3, r4, r5, r6, r7, r8, pc}
 
-  802b5ea:	bf00      	nop
 
-  802b5ec:	20000cc8 	.word	0x20000cc8
 
-  802b5f0:	20000cfc 	.word	0x20000cfc
 
- 0802b5f4 <prvTimerTask>:
 
- 	pxTimer->pxCallbackFunction( ( TimerHandle_t ) pxTimer );
 
- }
 
- /*-----------------------------------------------------------*/
 
- static void prvTimerTask( void *pvParameters )
 
- {
 
-  802b5f4:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
 
- TickType_t xTimeNow;
 
- PRIVILEGED_DATA static TickType_t xLastTime = ( TickType_t ) 0U; /*lint !e956 Variable is only accessible to one task. */
 
- 	xTimeNow = xTaskGetTickCount();
 
- 	if( xTimeNow < xLastTime )
 
-  802b5f8:	f8df 816c 	ldr.w	r8, [pc, #364]	; 802b768 <prvTimerTask+0x174>
 
- 	pxTimer->pxCallbackFunction( ( TimerHandle_t ) pxTimer );
 
- }
 
- /*-----------------------------------------------------------*/
 
- static void prvTimerTask( void *pvParameters )
 
- {
 
-  802b5fc:	b087      	sub	sp, #28
 
-  802b5fe:	46c1      	mov	r9, r8
 
- 	the timer with the nearest expiry time will expire.  If there are no
 
- 	active timers then just set the next expire time to 0.  That will cause
 
- 	this task to unblock when the tick count overflows, at which point the
 
- 	timer lists will be switched and the next expiry time can be
 
- 	re-assessed.  */
 
- 	*pxListWasEmpty = listLIST_IS_EMPTY( pxCurrentTimerList );
 
-  802b600:	4b57      	ldr	r3, [pc, #348]	; (802b760 <prvTimerTask+0x16c>)
 
-  802b602:	681b      	ldr	r3, [r3, #0]
 
-  802b604:	681f      	ldr	r7, [r3, #0]
 
-  802b606:	f1d7 0701 	rsbs	r7, r7, #1
 
-  802b60a:	bf38      	it	cc
 
-  802b60c:	2700      	movcc	r7, #0
 
- 	if( *pxListWasEmpty == pdFALSE )
 
-  802b60e:	b917      	cbnz	r7, 802b616 <prvTimerTask+0x22>
 
- 	{
 
- 		xNextExpireTime = listGET_ITEM_VALUE_OF_HEAD_ENTRY( pxCurrentTimerList );
 
-  802b610:	68db      	ldr	r3, [r3, #12]
 
-  802b612:	681d      	ldr	r5, [r3, #0]
 
-  802b614:	e000      	b.n	802b618 <prvTimerTask+0x24>
 
- 	}
 
- 	else
 
- 	{
 
- 		/* Ensure the task unblocks when the tick count rolls over. */
 
- 		xNextExpireTime = ( TickType_t ) 0U;
 
-  802b616:	2500      	movs	r5, #0
 
- static void prvProcessTimerOrBlockTask( const TickType_t xNextExpireTime, const BaseType_t xListWasEmpty )
 
- {
 
- TickType_t xTimeNow;
 
- BaseType_t xTimerListsWereSwitched;
 
- 	vTaskSuspendAll();
 
-  802b618:	f7ff fb9e 	bl	802ad58 <vTaskSuspendAll>
 
- static TickType_t prvSampleTimeNow( BaseType_t * const pxTimerListsWereSwitched )
 
- {
 
- TickType_t xTimeNow;
 
- PRIVILEGED_DATA static TickType_t xLastTime = ( TickType_t ) 0U; /*lint !e956 Variable is only accessible to one task. */
 
- 	xTimeNow = xTaskGetTickCount();
 
-  802b61c:	f7ff fba4 	bl	802ad68 <xTaskGetTickCount>
 
- 	if( xTimeNow < xLastTime )
 
-  802b620:	f8d8 3000 	ldr.w	r3, [r8]
 
-  802b624:	4298      	cmp	r0, r3
 
- static TickType_t prvSampleTimeNow( BaseType_t * const pxTimerListsWereSwitched )
 
- {
 
- TickType_t xTimeNow;
 
- PRIVILEGED_DATA static TickType_t xLastTime = ( TickType_t ) 0U; /*lint !e956 Variable is only accessible to one task. */
 
- 	xTimeNow = xTaskGetTickCount();
 
-  802b626:	4606      	mov	r6, r0
 
- 	if( xTimeNow < xLastTime )
 
-  802b628:	d203      	bcs.n	802b632 <prvTimerTask+0x3e>
 
- 	{
 
- 		prvSwitchTimerLists();
 
-  802b62a:	f7ff ffa9 	bl	802b580 <prvSwitchTimerLists>
 
- 		*pxTimerListsWereSwitched = pdTRUE;
 
-  802b62e:	2301      	movs	r3, #1
 
-  802b630:	e000      	b.n	802b634 <prvTimerTask+0x40>
 
- 	}
 
- 	else
 
- 	{
 
- 		*pxTimerListsWereSwitched = pdFALSE;
 
-  802b632:	2300      	movs	r3, #0
 
- 	}
 
- 	xLastTime = xTimeNow;
 
-  802b634:	f8c9 6000 	str.w	r6, [r9]
 
- 		has expired or not.  If obtaining the time causes the lists to switch
 
- 		then don't process this timer as any timers that remained in the list
 
- 		when the lists were switched will have been processed within the
 
- 		prvSampleTimeNow() function. */
 
- 		xTimeNow = prvSampleTimeNow( &xTimerListsWereSwitched );
 
- 		if( xTimerListsWereSwitched == pdFALSE )
 
-  802b638:	2b00      	cmp	r3, #0
 
-  802b63a:	d132      	bne.n	802b6a2 <prvTimerTask+0xae>
 
- 		{
 
- 			/* The tick count has not overflowed, has the timer expired? */
 
- 			if( ( xListWasEmpty == pdFALSE ) && ( xNextExpireTime <= xTimeNow ) )
 
-  802b63c:	bb2f      	cbnz	r7, 802b68a <prvTimerTask+0x96>
 
-  802b63e:	42b5      	cmp	r5, r6
 
-  802b640:	d823      	bhi.n	802b68a <prvTimerTask+0x96>
 
- 			{
 
- 				( void ) xTaskResumeAll();
 
-  802b642:	f7ff fc25 	bl	802ae90 <xTaskResumeAll>
 
- /*-----------------------------------------------------------*/
 
- static void prvProcessExpiredTimer( const TickType_t xNextExpireTime, const TickType_t xTimeNow )
 
- {
 
- BaseType_t xResult;
 
- Timer_t * const pxTimer = ( Timer_t * ) listGET_OWNER_OF_HEAD_ENTRY( pxCurrentTimerList );
 
-  802b646:	4b46      	ldr	r3, [pc, #280]	; (802b760 <prvTimerTask+0x16c>)
 
-  802b648:	681b      	ldr	r3, [r3, #0]
 
-  802b64a:	68db      	ldr	r3, [r3, #12]
 
-  802b64c:	68dc      	ldr	r4, [r3, #12]
 
- 	/* Remove the timer from the list of active timers.  A check has already
 
- 	been performed to ensure the list is not empty. */
 
- 	( void ) uxListRemove( &( pxTimer->xTimerListItem ) );
 
-  802b64e:	1d20      	adds	r0, r4, #4
 
-  802b650:	f7fe fe8d 	bl	802a36e <uxListRemove>
 
- 	traceTIMER_EXPIRED( pxTimer );
 
- 	/* If the timer is an auto reload timer then calculate the next
 
- 	expiry time and re-insert the timer in the list of active timers. */
 
- 	if( pxTimer->uxAutoReload == ( UBaseType_t ) pdTRUE )
 
-  802b654:	69e3      	ldr	r3, [r4, #28]
 
-  802b656:	2b01      	cmp	r3, #1
 
-  802b658:	d113      	bne.n	802b682 <prvTimerTask+0x8e>
 
- 	{
 
- 		/* The timer is inserted into a list using a time relative to anything
 
- 		other than the current time.  It will therefore be inserted into the
 
- 		correct list relative to the time this task thinks it is now. */
 
- 		if( prvInsertTimerInActiveList( pxTimer, ( xNextExpireTime + pxTimer->xTimerPeriodInTicks ), xTimeNow, xNextExpireTime ) == pdTRUE )
 
-  802b65a:	69a1      	ldr	r1, [r4, #24]
 
-  802b65c:	4620      	mov	r0, r4
 
-  802b65e:	1869      	adds	r1, r5, r1
 
-  802b660:	4632      	mov	r2, r6
 
-  802b662:	462b      	mov	r3, r5
 
-  802b664:	f7ff ff0c 	bl	802b480 <prvInsertTimerInActiveList>
 
-  802b668:	2801      	cmp	r0, #1
 
-  802b66a:	d10a      	bne.n	802b682 <prvTimerTask+0x8e>
 
- 		{
 
- 			/* The timer expired before it was added to the active timer
 
- 			list.  Reload it now.  */
 
- 			xResult = xTimerGenericCommand( pxTimer, tmrCOMMAND_START_DONT_TRACE, xNextExpireTime, NULL, tmrNO_DELAY );
 
-  802b66c:	9700      	str	r7, [sp, #0]
 
-  802b66e:	4620      	mov	r0, r4
 
-  802b670:	4639      	mov	r1, r7
 
-  802b672:	462a      	mov	r2, r5
 
-  802b674:	463b      	mov	r3, r7
 
-  802b676:	f7ff ff61 	bl	802b53c <xTimerGenericCommand>
 
- 			configASSERT( xResult );
 
-  802b67a:	b910      	cbnz	r0, 802b682 <prvTimerTask+0x8e>
 
-  802b67c:	f000 f8b4 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802b680:	e7fe      	b.n	802b680 <prvTimerTask+0x8c>
 
- 	{
 
- 		mtCOVERAGE_TEST_MARKER();
 
- 	}
 
- 	/* Call the timer callback. */
 
- 	pxTimer->pxCallbackFunction( ( TimerHandle_t ) pxTimer );
 
-  802b682:	6a63      	ldr	r3, [r4, #36]	; 0x24
 
-  802b684:	4620      	mov	r0, r4
 
-  802b686:	4798      	blx	r3
 
-  802b688:	e05f      	b.n	802b74a <prvTimerTask+0x156>
 
- 				time has not been reached yet.  This task should therefore
 
- 				block to wait for the next expire time or a command to be
 
- 				received - whichever comes first.  The following line cannot
 
- 				be reached unless xNextExpireTime > xTimeNow, except in the
 
- 				case when the current timer list is empty. */
 
- 				vQueueWaitForMessageRestricted( xTimerQueue, ( xNextExpireTime - xTimeNow ) );
 
-  802b68a:	4b36      	ldr	r3, [pc, #216]	; (802b764 <prvTimerTask+0x170>)
 
-  802b68c:	1ba9      	subs	r1, r5, r6
 
-  802b68e:	6818      	ldr	r0, [r3, #0]
 
-  802b690:	f7ff f9aa 	bl	802a9e8 <vQueueWaitForMessageRestricted>
 
- 				if( xTaskResumeAll() == pdFALSE )
 
-  802b694:	f7ff fbfc 	bl	802ae90 <xTaskResumeAll>
 
-  802b698:	2800      	cmp	r0, #0
 
-  802b69a:	d156      	bne.n	802b74a <prvTimerTask+0x156>
 
- 				{
 
- 					/* Yield to wait for either a command to arrive, or the
 
- 					block time to expire.  If a command arrived between the
 
- 					critical section being exited and this yield then the yield
 
- 					will not cause the task to block. */
 
- 					portYIELD_WITHIN_API();
 
-  802b69c:	f000 f898 	bl	802b7d0 <vPortYield>
 
-  802b6a0:	e053      	b.n	802b74a <prvTimerTask+0x156>
 
- 				}
 
- 			}
 
- 		}
 
- 		else
 
- 		{
 
- 			( void ) xTaskResumeAll();
 
-  802b6a2:	f7ff fbf5 	bl	802ae90 <xTaskResumeAll>
 
-  802b6a6:	e050      	b.n	802b74a <prvTimerTask+0x156>
 
- 		}
 
- 		#endif /* INCLUDE_xTimerPendFunctionCall */
 
- 		/* Commands that are positive are timer commands rather than pended
 
- 		function calls. */
 
- 		if( xMessage.xMessageID >= ( BaseType_t ) 0 )
 
-  802b6a8:	9b03      	ldr	r3, [sp, #12]
 
-  802b6aa:	2b00      	cmp	r3, #0
 
-  802b6ac:	db4e      	blt.n	802b74c <prvTimerTask+0x158>
 
- 		{
 
- 			/* The messages uses the xTimerParameters member to work on a
 
- 			software timer. */
 
- 			pxTimer = xMessage.u.xTimerParameters.pxTimer;
 
-  802b6ae:	9c05      	ldr	r4, [sp, #20]
 
- 			if( listIS_CONTAINED_WITHIN( NULL, &( pxTimer->xTimerListItem ) ) == pdFALSE )
 
-  802b6b0:	6963      	ldr	r3, [r4, #20]
 
-  802b6b2:	b113      	cbz	r3, 802b6ba <prvTimerTask+0xc6>
 
- 			{
 
- 				/* The timer is in a list, remove it. */
 
- 				( void ) uxListRemove( &( pxTimer->xTimerListItem ) );
 
-  802b6b4:	1d20      	adds	r0, r4, #4
 
-  802b6b6:	f7fe fe5a 	bl	802a36e <uxListRemove>
 
- static TickType_t prvSampleTimeNow( BaseType_t * const pxTimerListsWereSwitched )
 
- {
 
- TickType_t xTimeNow;
 
- PRIVILEGED_DATA static TickType_t xLastTime = ( TickType_t ) 0U; /*lint !e956 Variable is only accessible to one task. */
 
- 	xTimeNow = xTaskGetTickCount();
 
-  802b6ba:	f7ff fb55 	bl	802ad68 <xTaskGetTickCount>
 
- 	if( xTimeNow < xLastTime )
 
-  802b6be:	f8d8 3000 	ldr.w	r3, [r8]
 
-  802b6c2:	4298      	cmp	r0, r3
 
- static TickType_t prvSampleTimeNow( BaseType_t * const pxTimerListsWereSwitched )
 
- {
 
- TickType_t xTimeNow;
 
- PRIVILEGED_DATA static TickType_t xLastTime = ( TickType_t ) 0U; /*lint !e956 Variable is only accessible to one task. */
 
- 	xTimeNow = xTaskGetTickCount();
 
-  802b6c4:	4605      	mov	r5, r0
 
- 	if( xTimeNow < xLastTime )
 
-  802b6c6:	d201      	bcs.n	802b6cc <prvTimerTask+0xd8>
 
- 	{
 
- 		prvSwitchTimerLists();
 
-  802b6c8:	f7ff ff5a 	bl	802b580 <prvSwitchTimerLists>
 
- 			possibility of a higher priority task adding a message to the message
 
- 			queue with a time that is ahead of the timer daemon task (because it
 
- 			pre-empted the timer daemon task after the xTimeNow value was set). */
 
- 			xTimeNow = prvSampleTimeNow( &xTimerListsWereSwitched );
 
- 			switch( xMessage.xMessageID )
 
-  802b6cc:	9b03      	ldr	r3, [sp, #12]
 
- 	else
 
- 	{
 
- 		*pxTimerListsWereSwitched = pdFALSE;
 
- 	}
 
- 	xLastTime = xTimeNow;
 
-  802b6ce:	f8c9 5000 	str.w	r5, [r9]
 
- 			possibility of a higher priority task adding a message to the message
 
- 			queue with a time that is ahead of the timer daemon task (because it
 
- 			pre-empted the timer daemon task after the xTimeNow value was set). */
 
- 			xTimeNow = prvSampleTimeNow( &xTimerListsWereSwitched );
 
- 			switch( xMessage.xMessageID )
 
-  802b6d2:	2b09      	cmp	r3, #9
 
-  802b6d4:	d83a      	bhi.n	802b74c <prvTimerTask+0x158>
 
-  802b6d6:	f04f 6204 	mov.w	r2, #138412032	; 0x8400000
 
-  802b6da:	409a      	lsls	r2, r3
 
-  802b6dc:	d424      	bmi.n	802b728 <prvTimerTask+0x134>
 
-  802b6de:	f04f 4263 	mov.w	r2, #3808428032	; 0xe3000000
 
-  802b6e2:	409a      	lsls	r2, r3
 
-  802b6e4:	d404      	bmi.n	802b6f0 <prvTimerTask+0xfc>
 
-  802b6e6:	f04f 6280 	mov.w	r2, #67108864	; 0x4000000
 
-  802b6ea:	409a      	lsls	r2, r3
 
-  802b6ec:	d429      	bmi.n	802b742 <prvTimerTask+0x14e>
 
-  802b6ee:	e02d      	b.n	802b74c <prvTimerTask+0x158>
 
- 			    case tmrCOMMAND_START_FROM_ISR :
 
- 			    case tmrCOMMAND_RESET :
 
- 			    case tmrCOMMAND_RESET_FROM_ISR :
 
- 				case tmrCOMMAND_START_DONT_TRACE :
 
- 					/* Start or restart a timer. */
 
- 					if( prvInsertTimerInActiveList( pxTimer,  xMessage.u.xTimerParameters.xMessageValue + pxTimer->xTimerPeriodInTicks, xTimeNow, xMessage.u.xTimerParameters.xMessageValue ) == pdTRUE )
 
-  802b6f0:	9b04      	ldr	r3, [sp, #16]
 
-  802b6f2:	69a1      	ldr	r1, [r4, #24]
 
-  802b6f4:	4620      	mov	r0, r4
 
-  802b6f6:	1859      	adds	r1, r3, r1
 
-  802b6f8:	462a      	mov	r2, r5
 
-  802b6fa:	f7ff fec1 	bl	802b480 <prvInsertTimerInActiveList>
 
-  802b6fe:	2801      	cmp	r0, #1
 
-  802b700:	d124      	bne.n	802b74c <prvTimerTask+0x158>
 
- 					{
 
- 						/* The timer expired before it was added to the active
 
- 						timer list.  Process it now. */
 
- 						pxTimer->pxCallbackFunction( ( TimerHandle_t ) pxTimer );
 
-  802b702:	6a63      	ldr	r3, [r4, #36]	; 0x24
 
-  802b704:	4620      	mov	r0, r4
 
-  802b706:	4798      	blx	r3
 
- 						traceTIMER_EXPIRED( pxTimer );
 
- 						if( pxTimer->uxAutoReload == ( UBaseType_t ) pdTRUE )
 
-  802b708:	69e3      	ldr	r3, [r4, #28]
 
-  802b70a:	2b01      	cmp	r3, #1
 
-  802b70c:	d11e      	bne.n	802b74c <prvTimerTask+0x158>
 
- 						{
 
- 							xResult = xTimerGenericCommand( pxTimer, tmrCOMMAND_START_DONT_TRACE, xMessage.u.xTimerParameters.xMessageValue + pxTimer->xTimerPeriodInTicks, NULL, tmrNO_DELAY );
 
-  802b70e:	69a2      	ldr	r2, [r4, #24]
 
-  802b710:	9b04      	ldr	r3, [sp, #16]
 
-  802b712:	2100      	movs	r1, #0
 
-  802b714:	18d2      	adds	r2, r2, r3
 
-  802b716:	9100      	str	r1, [sp, #0]
 
-  802b718:	4620      	mov	r0, r4
 
-  802b71a:	460b      	mov	r3, r1
 
-  802b71c:	f7ff ff0e 	bl	802b53c <xTimerGenericCommand>
 
- 							configASSERT( xResult );
 
-  802b720:	b9a0      	cbnz	r0, 802b74c <prvTimerTask+0x158>
 
-  802b722:	f000 f861 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802b726:	e7fe      	b.n	802b726 <prvTimerTask+0x132>
 
- 					There is nothing to do here. */
 
- 					break;
 
- 				case tmrCOMMAND_CHANGE_PERIOD :
 
- 				case tmrCOMMAND_CHANGE_PERIOD_FROM_ISR :
 
- 					pxTimer->xTimerPeriodInTicks = xMessage.u.xTimerParameters.xMessageValue;
 
-  802b728:	9904      	ldr	r1, [sp, #16]
 
-  802b72a:	61a1      	str	r1, [r4, #24]
 
- 					configASSERT( ( pxTimer->xTimerPeriodInTicks > 0 ) );
 
-  802b72c:	b911      	cbnz	r1, 802b734 <prvTimerTask+0x140>
 
-  802b72e:	f000 f85b 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802b732:	e7fe      	b.n	802b732 <prvTimerTask+0x13e>
 
- 					longer or shorter than the old one.  The command time is
 
- 					therefore set to the current time, and as the period cannot be
 
- 					zero the next expiry time can only be in the future, meaning
 
- 					(unlike for the xTimerStart() case above) there is no fail case
 
- 					that needs to be handled here. */
 
- 					( void ) prvInsertTimerInActiveList( pxTimer, ( xTimeNow + pxTimer->xTimerPeriodInTicks ), xTimeNow, xTimeNow );
 
-  802b734:	4620      	mov	r0, r4
 
-  802b736:	1869      	adds	r1, r5, r1
 
-  802b738:	462a      	mov	r2, r5
 
-  802b73a:	462b      	mov	r3, r5
 
-  802b73c:	f7ff fea0 	bl	802b480 <prvInsertTimerInActiveList>
 
-  802b740:	e004      	b.n	802b74c <prvTimerTask+0x158>
 
- 					break;
 
- 				case tmrCOMMAND_DELETE :
 
- 					/* The timer has already been removed from the active list,
 
- 					just free up the memory. */
 
- 					vPortFree( pxTimer );
 
-  802b742:	4620      	mov	r0, r4
 
-  802b744:	f000 f9ec 	bl	802bb20 <vPortFree>
 
-  802b748:	e000      	b.n	802b74c <prvTimerTask+0x158>
 
- DaemonTaskMessage_t xMessage;
 
- Timer_t *pxTimer;
 
- BaseType_t xTimerListsWereSwitched, xResult;
 
- TickType_t xTimeNow;
 
- 	while( xQueueReceive( xTimerQueue, &xMessage, tmrNO_DELAY ) != pdFAIL ) /*lint !e603 xMessage does not have to be initialised as it is passed out, not in, and it is not used unless xQueueReceive() returns pdTRUE. */
 
-  802b74a:	4e06      	ldr	r6, [pc, #24]	; (802b764 <prvTimerTask+0x170>)
 
-  802b74c:	2200      	movs	r2, #0
 
-  802b74e:	6830      	ldr	r0, [r6, #0]
 
-  802b750:	a903      	add	r1, sp, #12
 
-  802b752:	4613      	mov	r3, r2
 
-  802b754:	f7ff f847 	bl	802a7e6 <xQueueGenericReceive>
 
-  802b758:	2800      	cmp	r0, #0
 
-  802b75a:	d1a5      	bne.n	802b6a8 <prvTimerTask+0xb4>
 
-  802b75c:	e750      	b.n	802b600 <prvTimerTask+0xc>
 
-  802b75e:	bf00      	nop
 
-  802b760:	20000cc8 	.word	0x20000cc8
 
-  802b764:	20000cf8 	.word	0x20000cf8
 
-  802b768:	20000cf4 	.word	0x20000cf4
 
- 0802b76c <pvTimerGetTimerID>:
 
- void *pvTimerGetTimerID( const TimerHandle_t xTimer )
 
- {
 
- Timer_t * const pxTimer = ( Timer_t * ) xTimer;
 
- 	return pxTimer->pvTimerID;
 
- }
 
-  802b76c:	6a00      	ldr	r0, [r0, #32]
 
-  802b76e:	4770      	bx	lr
 
- 0802b770 <prvPortStartFirstTask>:
 
- }
 
- /*-----------------------------------------------------------*/
 
- static void prvPortStartFirstTask( void )
 
- {
 
- 	__asm volatile(
 
-  802b770:	4806      	ldr	r0, [pc, #24]	; (802b78c <prvPortStartFirstTask+0x1c>)
 
-  802b772:	6800      	ldr	r0, [r0, #0]
 
-  802b774:	6800      	ldr	r0, [r0, #0]
 
-  802b776:	f380 8808 	msr	MSP, r0
 
-  802b77a:	b662      	cpsie	i
 
-  802b77c:	b661      	cpsie	f
 
-  802b77e:	f3bf 8f4f 	dsb	sy
 
-  802b782:	f3bf 8f6f 	isb	sy
 
-  802b786:	df00      	svc	0
 
-  802b788:	bf00      	nop
 
-  802b78a:	0000      	.short	0x0000
 
-  802b78c:	e000ed08 	.word	0xe000ed08
 
- 0802b790 <pxPortInitialiseStack>:
 
- StackType_t *pxPortInitialiseStack( StackType_t *pxTopOfStack, TaskFunction_t pxCode, void *pvParameters )
 
- {
 
- 	/* Simulate the stack frame as it would be created by a context switch
 
- 	interrupt. */
 
- 	pxTopOfStack--; /* Offset added to account for the way the MCU uses the stack on entry/exit of interrupts. */
 
- 	*pxTopOfStack = portINITIAL_XPSR;	/* xPSR */
 
-  802b790:	f04f 7380 	mov.w	r3, #16777216	; 0x1000000
 
- 	pxTopOfStack--;
 
- 	*pxTopOfStack = ( StackType_t ) pxCode;	/* PC */
 
-  802b794:	e900 000a 	stmdb	r0, {r1, r3}
 
- 	pxTopOfStack--;
 
- 	*pxTopOfStack = ( StackType_t ) portTASK_RETURN_ADDRESS;	/* LR */
 
-  802b798:	4b03      	ldr	r3, [pc, #12]	; (802b7a8 <pxPortInitialiseStack+0x18>)
 
- 	pxTopOfStack -= 5;	/* R12, R3, R2 and R1. */
 
- 	*pxTopOfStack = ( StackType_t ) pvParameters;	/* R0 */
 
-  802b79a:	f840 2c20 	str.w	r2, [r0, #-32]
 
- 	pxTopOfStack--; /* Offset added to account for the way the MCU uses the stack on entry/exit of interrupts. */
 
- 	*pxTopOfStack = portINITIAL_XPSR;	/* xPSR */
 
- 	pxTopOfStack--;
 
- 	*pxTopOfStack = ( StackType_t ) pxCode;	/* PC */
 
- 	pxTopOfStack--;
 
- 	*pxTopOfStack = ( StackType_t ) portTASK_RETURN_ADDRESS;	/* LR */
 
-  802b79e:	f840 3c0c 	str.w	r3, [r0, #-12]
 
- 	pxTopOfStack -= 5;	/* R12, R3, R2 and R1. */
 
- 	*pxTopOfStack = ( StackType_t ) pvParameters;	/* R0 */
 
- 	pxTopOfStack -= 8;	/* R11, R10, R9, R8, R7, R6, R5 and R4. */
 
- 	return pxTopOfStack;
 
- }
 
-  802b7a2:	3840      	subs	r0, #64	; 0x40
 
-  802b7a4:	4770      	bx	lr
 
-  802b7a6:	bf00      	nop
 
-  802b7a8:	0802b82d 	.word	0x0802b82d
 
- 0802b7ac <SVC_Handler>:
 
- }
 
- /*-----------------------------------------------------------*/
 
- void vPortSVCHandler( void )
 
- {
 
- 	__asm volatile (
 
-  802b7ac:	4b07      	ldr	r3, [pc, #28]	; (802b7cc <pxCurrentTCBConst2>)
 
-  802b7ae:	6819      	ldr	r1, [r3, #0]
 
-  802b7b0:	6808      	ldr	r0, [r1, #0]
 
-  802b7b2:	e8b0 0ff0 	ldmia.w	r0!, {r4, r5, r6, r7, r8, r9, sl, fp}
 
-  802b7b6:	f380 8809 	msr	PSP, r0
 
-  802b7ba:	f3bf 8f6f 	isb	sy
 
-  802b7be:	f04f 0000 	mov.w	r0, #0
 
-  802b7c2:	f380 8811 	msr	BASEPRI, r0
 
-  802b7c6:	f04e 0e0d 	orr.w	lr, lr, #13
 
-  802b7ca:	4770      	bx	lr
 
- 0802b7cc <pxCurrentTCBConst2>:
 
-  802b7cc:	20000c80 	.word	0x20000c80
 
- 0802b7d0 <vPortYield>:
 
- /*-----------------------------------------------------------*/
 
- void vPortYield( void )
 
- {
 
- 	/* Set a PendSV to request a context switch. */
 
- 	portNVIC_INT_CTRL_REG = portNVIC_PENDSVSET_BIT;
 
-  802b7d0:	4b04      	ldr	r3, [pc, #16]	; (802b7e4 <vPortYield+0x14>)
 
-  802b7d2:	f04f 5280 	mov.w	r2, #268435456	; 0x10000000
 
-  802b7d6:	601a      	str	r2, [r3, #0]
 
- 	/* Barriers are normally not required but do ensure the code is completely
 
- 	within the specified behaviour for the architecture. */
 
- 	__asm volatile( "dsb" );
 
-  802b7d8:	f3bf 8f4f 	dsb	sy
 
- 	__asm volatile( "isb" );
 
-  802b7dc:	f3bf 8f6f 	isb	sy
 
-  802b7e0:	4770      	bx	lr
 
-  802b7e2:	bf00      	nop
 
-  802b7e4:	e000ed04 	.word	0xe000ed04
 
- 0802b7e8 <ulPortSetInterruptMask>:
 
- }
 
- /*-----------------------------------------------------------*/
 
- __attribute__(( naked )) uint32_t ulPortSetInterruptMask( void )
 
- {
 
- 	__asm volatile														\
 
-  802b7e8:	f3ef 8011 	mrs	r0, BASEPRI
 
-  802b7ec:	f04f 0150 	mov.w	r1, #80	; 0x50
 
-  802b7f0:	f381 8811 	msr	BASEPRI, r1
 
-  802b7f4:	4770      	bx	lr
 
- 	);
 
- 	/* This return will not be reached but is necessary to prevent compiler
 
- 	warnings. */
 
- 	return 0;
 
- }
 
-  802b7f6:	2000      	movs	r0, #0
 
- 0802b7f8 <vPortEnterCritical>:
 
- 	__asm volatile( "isb" );
 
- }
 
- /*-----------------------------------------------------------*/
 
- void vPortEnterCritical( void )
 
- {
 
-  802b7f8:	b508      	push	{r3, lr}
 
- 	portDISABLE_INTERRUPTS();
 
-  802b7fa:	f7ff fff5 	bl	802b7e8 <ulPortSetInterruptMask>
 
- 	uxCriticalNesting++;
 
-  802b7fe:	4a09      	ldr	r2, [pc, #36]	; (802b824 <vPortEnterCritical+0x2c>)
 
-  802b800:	6813      	ldr	r3, [r2, #0]
 
-  802b802:	3301      	adds	r3, #1
 
-  802b804:	6013      	str	r3, [r2, #0]
 
- 	__asm volatile( "dsb" );
 
-  802b806:	f3bf 8f4f 	dsb	sy
 
- 	__asm volatile( "isb" );
 
-  802b80a:	f3bf 8f6f 	isb	sy
 
- 	/* This is not the interrupt safe version of the enter critical function so
 
- 	assert() if it is being called from an interrupt context.  Only API 
 
- 	functions that end in "FromISR" can be used in an interrupt.  Only assert if
 
- 	the critical nesting count is 1 to protect against recursive calls if the
 
- 	assert function also uses a critical section. */
 
- 	if( uxCriticalNesting == 1 )
 
-  802b80e:	2b01      	cmp	r3, #1
 
-  802b810:	d107      	bne.n	802b822 <vPortEnterCritical+0x2a>
 
- 	{
 
- 		configASSERT( ( portNVIC_INT_CTRL_REG & portVECTACTIVE_MASK ) == 0 );
 
-  802b812:	4b05      	ldr	r3, [pc, #20]	; (802b828 <vPortEnterCritical+0x30>)
 
-  802b814:	681b      	ldr	r3, [r3, #0]
 
-  802b816:	f013 0fff 	tst.w	r3, #255	; 0xff
 
-  802b81a:	d002      	beq.n	802b822 <vPortEnterCritical+0x2a>
 
-  802b81c:	f7ff ffe4 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802b820:	e7fe      	b.n	802b820 <vPortEnterCritical+0x28>
 
-  802b822:	bd08      	pop	{r3, pc}
 
-  802b824:	2000070c 	.word	0x2000070c
 
-  802b828:	e000ed04 	.word	0xe000ed04
 
- 0802b82c <prvTaskExitError>:
 
- 	return pxTopOfStack;
 
- }
 
- /*-----------------------------------------------------------*/
 
- static void prvTaskExitError( void )
 
- {
 
-  802b82c:	b508      	push	{r3, lr}
 
- 	its caller as there is nothing to return to.  If a task wants to exit it
 
- 	should instead call vTaskDelete( NULL ).
 
- 	Artificially force an assert() to be triggered if configASSERT() is
 
- 	defined, then stop here so application writers can catch the error. */
 
- 	configASSERT( uxCriticalNesting == ~0UL );
 
-  802b82e:	4b05      	ldr	r3, [pc, #20]	; (802b844 <prvTaskExitError+0x18>)
 
-  802b830:	681b      	ldr	r3, [r3, #0]
 
-  802b832:	3301      	adds	r3, #1
 
-  802b834:	d002      	beq.n	802b83c <prvTaskExitError+0x10>
 
-  802b836:	f7ff ffd7 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802b83a:	e7fe      	b.n	802b83a <prvTaskExitError+0xe>
 
- 	portDISABLE_INTERRUPTS();
 
-  802b83c:	f7ff ffd4 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802b840:	e7fe      	b.n	802b840 <prvTaskExitError+0x14>
 
-  802b842:	bf00      	nop
 
-  802b844:	2000070c 	.word	0x2000070c
 
- 0802b848 <vPortClearInterruptMask>:
 
- }
 
- /*-----------------------------------------------------------*/
 
- __attribute__(( naked )) void vPortClearInterruptMask( uint32_t ulNewMaskValue )
 
- {
 
- 	__asm volatile													\
 
-  802b848:	f380 8811 	msr	BASEPRI, r0
 
-  802b84c:	4770      	bx	lr
 
-  802b84e:	0000      	movs	r0, r0
 
- 0802b850 <vPortExitCritical>:
 
- 	}
 
- }
 
- /*-----------------------------------------------------------*/
 
- void vPortExitCritical( void )
 
- {
 
-  802b850:	b508      	push	{r3, lr}
 
- 	configASSERT( uxCriticalNesting );
 
-  802b852:	4b07      	ldr	r3, [pc, #28]	; (802b870 <vPortExitCritical+0x20>)
 
-  802b854:	6818      	ldr	r0, [r3, #0]
 
-  802b856:	b910      	cbnz	r0, 802b85e <vPortExitCritical+0xe>
 
-  802b858:	f7ff ffc6 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802b85c:	e7fe      	b.n	802b85c <vPortExitCritical+0xc>
 
- 	uxCriticalNesting--;
 
-  802b85e:	3801      	subs	r0, #1
 
-  802b860:	6018      	str	r0, [r3, #0]
 
- 	if( uxCriticalNesting == 0 )
 
-  802b862:	b918      	cbnz	r0, 802b86c <vPortExitCritical+0x1c>
 
- 	{
 
- 		portENABLE_INTERRUPTS();
 
- 	}
 
- }
 
-  802b864:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
 
- {
 
- 	configASSERT( uxCriticalNesting );
 
- 	uxCriticalNesting--;
 
- 	if( uxCriticalNesting == 0 )
 
- 	{
 
- 		portENABLE_INTERRUPTS();
 
-  802b868:	f7ff bfee 	b.w	802b848 <vPortClearInterruptMask>
 
-  802b86c:	bd08      	pop	{r3, pc}
 
-  802b86e:	bf00      	nop
 
-  802b870:	2000070c 	.word	0x2000070c
 
- 0802b874 <PendSV_Handler>:
 
- void xPortPendSVHandler( void )
 
- {
 
- 	/* This is a naked function. */
 
- 	__asm volatile
 
-  802b874:	f3ef 8009 	mrs	r0, PSP
 
-  802b878:	f3bf 8f6f 	isb	sy
 
-  802b87c:	4b0d      	ldr	r3, [pc, #52]	; (802b8b4 <pxCurrentTCBConst>)
 
-  802b87e:	681a      	ldr	r2, [r3, #0]
 
-  802b880:	e920 0ff0 	stmdb	r0!, {r4, r5, r6, r7, r8, r9, sl, fp}
 
-  802b884:	6010      	str	r0, [r2, #0]
 
-  802b886:	e92d 4008 	stmdb	sp!, {r3, lr}
 
-  802b88a:	f04f 0050 	mov.w	r0, #80	; 0x50
 
-  802b88e:	f380 8811 	msr	BASEPRI, r0
 
-  802b892:	f7ff fc19 	bl	802b0c8 <vTaskSwitchContext>
 
-  802b896:	f04f 0000 	mov.w	r0, #0
 
-  802b89a:	f380 8811 	msr	BASEPRI, r0
 
-  802b89e:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
 
-  802b8a2:	6819      	ldr	r1, [r3, #0]
 
-  802b8a4:	6808      	ldr	r0, [r1, #0]
 
-  802b8a6:	e8b0 0ff0 	ldmia.w	r0!, {r4, r5, r6, r7, r8, r9, sl, fp}
 
-  802b8aa:	f380 8809 	msr	PSP, r0
 
-  802b8ae:	f3bf 8f6f 	isb	sy
 
-  802b8b2:	4770      	bx	lr
 
- 0802b8b4 <pxCurrentTCBConst>:
 
-  802b8b4:	20000c80 	.word	0x20000c80
 
- 0802b8b8 <SysTick_Handler>:
 
- 	);
 
- }
 
- /*-----------------------------------------------------------*/
 
- void xPortSysTickHandler( void )
 
- {
 
-  802b8b8:	b508      	push	{r3, lr}
 
- 	/* The SysTick runs at the lowest interrupt priority, so when this interrupt
 
- 	executes all interrupts must be unmasked.  There is therefore no need to
 
- 	save and then restore the interrupt mask value as its value is already
 
- 	known. */
 
- 	( void ) portSET_INTERRUPT_MASK_FROM_ISR();
 
-  802b8ba:	f7ff ff95 	bl	802b7e8 <ulPortSetInterruptMask>
 
- 	{
 
- 		/* Increment the RTOS tick. */
 
- 		if( xTaskIncrementTick() != pdFALSE )
 
-  802b8be:	f7ff fa59 	bl	802ad74 <xTaskIncrementTick>
 
-  802b8c2:	b118      	cbz	r0, 802b8cc <SysTick_Handler+0x14>
 
- 		{
 
- 			/* A context switch is required.  Context switching is performed in
 
- 			the PendSV interrupt.  Pend the PendSV interrupt. */
 
- 			portNVIC_INT_CTRL_REG = portNVIC_PENDSVSET_BIT;
 
-  802b8c4:	4b04      	ldr	r3, [pc, #16]	; (802b8d8 <SysTick_Handler+0x20>)
 
-  802b8c6:	f04f 5280 	mov.w	r2, #268435456	; 0x10000000
 
-  802b8ca:	601a      	str	r2, [r3, #0]
 
- 		}
 
- 	}
 
- 	portCLEAR_INTERRUPT_MASK_FROM_ISR( 0 );
 
-  802b8cc:	2000      	movs	r0, #0
 
- }
 
-  802b8ce:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
 
- 			/* A context switch is required.  Context switching is performed in
 
- 			the PendSV interrupt.  Pend the PendSV interrupt. */
 
- 			portNVIC_INT_CTRL_REG = portNVIC_PENDSVSET_BIT;
 
- 		}
 
- 	}
 
- 	portCLEAR_INTERRUPT_MASK_FROM_ISR( 0 );
 
-  802b8d2:	f7ff bfb9 	b.w	802b848 <vPortClearInterruptMask>
 
-  802b8d6:	bf00      	nop
 
-  802b8d8:	e000ed04 	.word	0xe000ed04
 
- 0802b8dc <vPortSetupTimerInterrupt>:
 
- 		ulStoppedTimerCompensation = portMISSED_COUNTS_FACTOR / ( configCPU_CLOCK_HZ / configSYSTICK_CLOCK_HZ );
 
- 	}
 
- 	#endif /* configUSE_TICKLESS_IDLE */
 
- 	/* Configure SysTick to interrupt at the requested rate. */
 
- 	portNVIC_SYSTICK_LOAD_REG = ( configSYSTICK_CLOCK_HZ / configTICK_RATE_HZ ) - 1UL;
 
-  802b8dc:	4b06      	ldr	r3, [pc, #24]	; (802b8f8 <vPortSetupTimerInterrupt+0x1c>)
 
-  802b8de:	681a      	ldr	r2, [r3, #0]
 
-  802b8e0:	f44f 737a 	mov.w	r3, #1000	; 0x3e8
 
-  802b8e4:	fbb2 f2f3 	udiv	r2, r2, r3
 
-  802b8e8:	4b04      	ldr	r3, [pc, #16]	; (802b8fc <vPortSetupTimerInterrupt+0x20>)
 
-  802b8ea:	3a01      	subs	r2, #1
 
-  802b8ec:	601a      	str	r2, [r3, #0]
 
- 	portNVIC_SYSTICK_CTRL_REG = ( portNVIC_SYSTICK_CLK_BIT | portNVIC_SYSTICK_INT_BIT | portNVIC_SYSTICK_ENABLE_BIT );
 
-  802b8ee:	2207      	movs	r2, #7
 
-  802b8f0:	f843 2c04 	str.w	r2, [r3, #-4]
 
-  802b8f4:	4770      	bx	lr
 
-  802b8f6:	bf00      	nop
 
-  802b8f8:	200005bc 	.word	0x200005bc
 
-  802b8fc:	e000e014 	.word	0xe000e014
 
- 0802b900 <xPortStartScheduler>:
 
- /*
 
-  * See header file for description.
 
-  */
 
- BaseType_t xPortStartScheduler( void )
 
- {
 
-  802b900:	b507      	push	{r0, r1, r2, lr}
 
- 		functions can be called.  ISR safe functions are those that end in
 
- 		"FromISR".  FreeRTOS maintains separate thread and ISR API functions to
 
- 		ensure interrupt entry is as fast and simple as possible.
 
- 		Save the interrupt priority value that is about to be clobbered. */
 
- 		ulOriginalPriority = *pucFirstUserPriorityRegister;
 
-  802b902:	4b1d      	ldr	r3, [pc, #116]	; (802b978 <xPortStartScheduler+0x78>)
 
-  802b904:	781a      	ldrb	r2, [r3, #0]
 
-  802b906:	9201      	str	r2, [sp, #4]
 
- 		/* Determine the number of priority bits available.  First write to all
 
- 		possible bits. */
 
- 		*pucFirstUserPriorityRegister = portMAX_8_BIT_VALUE;
 
-  802b908:	22ff      	movs	r2, #255	; 0xff
 
-  802b90a:	701a      	strb	r2, [r3, #0]
 
- 		/* Read the value back to see how many bits stuck. */
 
- 		ucMaxPriorityValue = *pucFirstUserPriorityRegister;
 
-  802b90c:	781b      	ldrb	r3, [r3, #0]
 
-  802b90e:	f88d 3003 	strb.w	r3, [sp, #3]
 
- 		/* Use the same mask on the maximum system call priority. */
 
- 		ucMaxSysCallPriority = configMAX_SYSCALL_INTERRUPT_PRIORITY & ucMaxPriorityValue;
 
-  802b912:	f89d 2003 	ldrb.w	r2, [sp, #3]
 
-  802b916:	4b19      	ldr	r3, [pc, #100]	; (802b97c <xPortStartScheduler+0x7c>)
 
-  802b918:	f002 0250 	and.w	r2, r2, #80	; 0x50
 
-  802b91c:	701a      	strb	r2, [r3, #0]
 
- 		/* Calculate the maximum acceptable priority group value for the number
 
- 		of bits read back. */
 
- 		ulMaxPRIGROUPValue = portMAX_PRIGROUP_BITS;
 
-  802b91e:	4a18      	ldr	r2, [pc, #96]	; (802b980 <xPortStartScheduler+0x80>)
 
-  802b920:	2307      	movs	r3, #7
 
-  802b922:	6013      	str	r3, [r2, #0]
 
- 		while( ( ucMaxPriorityValue & portTOP_BIT_OF_BYTE ) == portTOP_BIT_OF_BYTE )
 
-  802b924:	e005      	b.n	802b932 <xPortStartScheduler+0x32>
 
- 		{
 
- 			ulMaxPRIGROUPValue--;
 
- 			ucMaxPriorityValue <<= ( uint8_t ) 0x01;
 
-  802b926:	f89d 3003 	ldrb.w	r3, [sp, #3]
 
-  802b92a:	005b      	lsls	r3, r3, #1
 
-  802b92c:	f88d 3003 	strb.w	r3, [sp, #3]
 
-  802b930:	460b      	mov	r3, r1
 
- 		ucMaxSysCallPriority = configMAX_SYSCALL_INTERRUPT_PRIORITY & ucMaxPriorityValue;
 
- 		/* Calculate the maximum acceptable priority group value for the number
 
- 		of bits read back. */
 
- 		ulMaxPRIGROUPValue = portMAX_PRIGROUP_BITS;
 
- 		while( ( ucMaxPriorityValue & portTOP_BIT_OF_BYTE ) == portTOP_BIT_OF_BYTE )
 
-  802b932:	f89d 2003 	ldrb.w	r2, [sp, #3]
 
-  802b936:	1e59      	subs	r1, r3, #1
 
-  802b938:	0612      	lsls	r2, r2, #24
 
-  802b93a:	d4f4      	bmi.n	802b926 <xPortStartScheduler+0x26>
 
- 		}
 
- 		/* Shift the priority group value back to its position within the AIRCR
 
- 		register. */
 
- 		ulMaxPRIGROUPValue <<= portPRIGROUP_SHIFT;
 
- 		ulMaxPRIGROUPValue &= portPRIORITY_GROUP_MASK;
 
-  802b93c:	4a10      	ldr	r2, [pc, #64]	; (802b980 <xPortStartScheduler+0x80>)
 
- 			ucMaxPriorityValue <<= ( uint8_t ) 0x01;
 
- 		}
 
- 		/* Shift the priority group value back to its position within the AIRCR
 
- 		register. */
 
- 		ulMaxPRIGROUPValue <<= portPRIGROUP_SHIFT;
 
-  802b93e:	021b      	lsls	r3, r3, #8
 
- 		ulMaxPRIGROUPValue &= portPRIORITY_GROUP_MASK;
 
-  802b940:	f403 63e0 	and.w	r3, r3, #1792	; 0x700
 
-  802b944:	6013      	str	r3, [r2, #0]
 
- 		/* Restore the clobbered interrupt priority register to its original
 
- 		value. */
 
- 		*pucFirstUserPriorityRegister = ulOriginalPriority;
 
-  802b946:	4b0c      	ldr	r3, [pc, #48]	; (802b978 <xPortStartScheduler+0x78>)
 
-  802b948:	9a01      	ldr	r2, [sp, #4]
 
-  802b94a:	701a      	strb	r2, [r3, #0]
 
- 	}
 
- 	#endif /* conifgASSERT_DEFINED */
 
- 	/* Make PendSV and SysTick the lowest priority interrupts. */
 
- 	portNVIC_SYSPRI2_REG |= portNVIC_PENDSV_PRI;
 
-  802b94c:	f8d3 2920 	ldr.w	r2, [r3, #2336]	; 0x920
 
-  802b950:	f442 0270 	orr.w	r2, r2, #15728640	; 0xf00000
 
-  802b954:	f8c3 2920 	str.w	r2, [r3, #2336]	; 0x920
 
- 	portNVIC_SYSPRI2_REG |= portNVIC_SYSTICK_PRI;
 
-  802b958:	f8d3 2920 	ldr.w	r2, [r3, #2336]	; 0x920
 
-  802b95c:	f042 4270 	orr.w	r2, r2, #4026531840	; 0xf0000000
 
-  802b960:	f8c3 2920 	str.w	r2, [r3, #2336]	; 0x920
 
- 	/* Start the timer that generates the tick ISR.  Interrupts are disabled
 
- 	here already. */
 
- 	vPortSetupTimerInterrupt();
 
-  802b964:	f7ff ffba 	bl	802b8dc <vPortSetupTimerInterrupt>
 
- 	/* Initialise the critical nesting count ready for the first task. */
 
- 	uxCriticalNesting = 0;
 
-  802b968:	4b06      	ldr	r3, [pc, #24]	; (802b984 <xPortStartScheduler+0x84>)
 
-  802b96a:	2200      	movs	r2, #0
 
-  802b96c:	601a      	str	r2, [r3, #0]
 
- 	/* Start the first task. */
 
- 	prvPortStartFirstTask();
 
-  802b96e:	f7ff feff 	bl	802b770 <prvPortStartFirstTask>
 
- 	/* Should never get here as the tasks will now be executing!  Call the task
 
- 	exit error function to prevent compiler warnings about a static function
 
- 	not being called in the case that the application writer overrides this
 
- 	functionality by defining configTASK_RETURN_ADDRESS. */
 
- 	prvTaskExitError();
 
-  802b972:	f7ff ff5b 	bl	802b82c <prvTaskExitError>
 
-  802b976:	bf00      	nop
 
-  802b978:	e000e400 	.word	0xe000e400
 
-  802b97c:	20000d00 	.word	0x20000d00
 
-  802b980:	20000d04 	.word	0x20000d04
 
-  802b984:	2000070c 	.word	0x2000070c
 
- 0802b988 <vPortValidateInterruptPriority>:
 
- /*-----------------------------------------------------------*/
 
- #if( configASSERT_DEFINED == 1 )
 
- 	void vPortValidateInterruptPriority( void )
 
- 	{
 
-  802b988:	b508      	push	{r3, lr}
 
- 	uint32_t ulCurrentInterrupt;
 
- 	uint8_t ucCurrentPriority;
 
- 		/* Obtain the number of the currently executing interrupt. */
 
- 		__asm volatile( "mrs %0, ipsr" : "=r"( ulCurrentInterrupt ) );
 
-  802b98a:	f3ef 8305 	mrs	r3, IPSR
 
- 		/* Is the interrupt number a user defined interrupt? */
 
- 		if( ulCurrentInterrupt >= portFIRST_USER_INTERRUPT_NUMBER )
 
-  802b98e:	2b0f      	cmp	r3, #15
 
-  802b990:	d908      	bls.n	802b9a4 <vPortValidateInterruptPriority+0x1c>
 
- 		{
 
- 			/* Look up the interrupt's priority. */
 
- 			ucCurrentPriority = pcInterruptPriorityRegisters[ ulCurrentInterrupt ];
 
-  802b992:	4a0a      	ldr	r2, [pc, #40]	; (802b9bc <vPortValidateInterruptPriority+0x34>)
 
-  802b994:	5c9b      	ldrb	r3, [r3, r2]
 
- 			interrupt entry is as fast and simple as possible.
 
- 			The following links provide detailed information:
 
- 			http://www.freertos.org/RTOS-Cortex-M3-M4.html
 
- 			http://www.freertos.org/FAQHelp.html */
 
- 			configASSERT( ucCurrentPriority >= ucMaxSysCallPriority );
 
-  802b996:	4a0a      	ldr	r2, [pc, #40]	; (802b9c0 <vPortValidateInterruptPriority+0x38>)
 
-  802b998:	7812      	ldrb	r2, [r2, #0]
 
-  802b99a:	429a      	cmp	r2, r3
 
-  802b99c:	d902      	bls.n	802b9a4 <vPortValidateInterruptPriority+0x1c>
 
-  802b99e:	f7ff ff23 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802b9a2:	e7fe      	b.n	802b9a2 <vPortValidateInterruptPriority+0x1a>
 
- 		configuration then the correct setting can be achieved on all Cortex-M
 
- 		devices by calling NVIC_SetPriorityGrouping( 0 ); before starting the
 
- 		scheduler.  Note however that some vendor specific peripheral libraries
 
- 		assume a non-zero priority group setting, in which cases using a value
 
- 		of zero will result in unpredicable behaviour. */
 
- 		configASSERT( ( portAIRCR_REG & portPRIORITY_GROUP_MASK ) <= ulMaxPRIGROUPValue );
 
-  802b9a4:	4b07      	ldr	r3, [pc, #28]	; (802b9c4 <vPortValidateInterruptPriority+0x3c>)
 
-  802b9a6:	681a      	ldr	r2, [r3, #0]
 
-  802b9a8:	4b07      	ldr	r3, [pc, #28]	; (802b9c8 <vPortValidateInterruptPriority+0x40>)
 
-  802b9aa:	681b      	ldr	r3, [r3, #0]
 
-  802b9ac:	f402 62e0 	and.w	r2, r2, #1792	; 0x700
 
-  802b9b0:	429a      	cmp	r2, r3
 
-  802b9b2:	d902      	bls.n	802b9ba <vPortValidateInterruptPriority+0x32>
 
-  802b9b4:	f7ff ff18 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802b9b8:	e7fe      	b.n	802b9b8 <vPortValidateInterruptPriority+0x30>
 
-  802b9ba:	bd08      	pop	{r3, pc}
 
-  802b9bc:	e000e3f0 	.word	0xe000e3f0
 
-  802b9c0:	20000d00 	.word	0x20000d00
 
-  802b9c4:	e000ed0c 	.word	0xe000ed0c
 
-  802b9c8:	20000d04 	.word	0x20000d04
 
- 0802b9cc <prvInsertBlockIntoFreeList>:
 
- 	xBlockAllocatedBit = ( ( size_t ) 1 ) << ( ( sizeof( size_t ) * heapBITS_PER_BYTE ) - 1 );
 
- }
 
- /*-----------------------------------------------------------*/
 
- static void prvInsertBlockIntoFreeList( BlockLink_t *pxBlockToInsert )
 
- {
 
-  802b9cc:	b510      	push	{r4, lr}
 
- BlockLink_t *pxIterator;
 
- uint8_t *puc;
 
- 	/* Iterate through the list until a block is found that has a higher address
 
- 	than the block being inserted. */
 
- 	for( pxIterator = &xStart; pxIterator->pxNextFreeBlock < pxBlockToInsert; pxIterator = pxIterator->pxNextFreeBlock )
 
-  802b9ce:	4b0f      	ldr	r3, [pc, #60]	; (802ba0c <prvInsertBlockIntoFreeList+0x40>)
 
-  802b9d0:	e000      	b.n	802b9d4 <prvInsertBlockIntoFreeList+0x8>
 
-  802b9d2:	4613      	mov	r3, r2
 
-  802b9d4:	681a      	ldr	r2, [r3, #0]
 
-  802b9d6:	4282      	cmp	r2, r0
 
-  802b9d8:	d3fb      	bcc.n	802b9d2 <prvInsertBlockIntoFreeList+0x6>
 
- 	}
 
- 	/* Do the block being inserted, and the block it is being inserted after
 
- 	make a contiguous block of memory? */
 
- 	puc = ( uint8_t * ) pxIterator;
 
- 	if( ( puc + pxIterator->xBlockSize ) == ( uint8_t * ) pxBlockToInsert )
 
-  802b9da:	6859      	ldr	r1, [r3, #4]
 
-  802b9dc:	185c      	adds	r4, r3, r1
 
-  802b9de:	4284      	cmp	r4, r0
 
-  802b9e0:	d103      	bne.n	802b9ea <prvInsertBlockIntoFreeList+0x1e>
 
- 	{
 
- 		pxIterator->xBlockSize += pxBlockToInsert->xBlockSize;
 
-  802b9e2:	6840      	ldr	r0, [r0, #4]
 
-  802b9e4:	1841      	adds	r1, r0, r1
 
-  802b9e6:	6059      	str	r1, [r3, #4]
 
-  802b9e8:	4618      	mov	r0, r3
 
- 	}
 
- 	/* Do the block being inserted, and the block it is being inserted before
 
- 	make a contiguous block of memory? */
 
- 	puc = ( uint8_t * ) pxBlockToInsert;
 
- 	if( ( puc + pxBlockToInsert->xBlockSize ) == ( uint8_t * ) pxIterator->pxNextFreeBlock )
 
-  802b9ea:	6841      	ldr	r1, [r0, #4]
 
-  802b9ec:	1844      	adds	r4, r0, r1
 
-  802b9ee:	4294      	cmp	r4, r2
 
-  802b9f0:	d106      	bne.n	802ba00 <prvInsertBlockIntoFreeList+0x34>
 
- 	{
 
- 		if( pxIterator->pxNextFreeBlock != pxEnd )
 
-  802b9f2:	4c07      	ldr	r4, [pc, #28]	; (802ba10 <prvInsertBlockIntoFreeList+0x44>)
 
-  802b9f4:	6824      	ldr	r4, [r4, #0]
 
-  802b9f6:	42a2      	cmp	r2, r4
 
-  802b9f8:	d002      	beq.n	802ba00 <prvInsertBlockIntoFreeList+0x34>
 
- 		{
 
- 			/* Form one big block from the two blocks. */
 
- 			pxBlockToInsert->xBlockSize += pxIterator->pxNextFreeBlock->xBlockSize;
 
- 			pxBlockToInsert->pxNextFreeBlock = pxIterator->pxNextFreeBlock->pxNextFreeBlock;
 
-  802b9fa:	ca14      	ldmia	r2, {r2, r4}
 
- 	if( ( puc + pxBlockToInsert->xBlockSize ) == ( uint8_t * ) pxIterator->pxNextFreeBlock )
 
- 	{
 
- 		if( pxIterator->pxNextFreeBlock != pxEnd )
 
- 		{
 
- 			/* Form one big block from the two blocks. */
 
- 			pxBlockToInsert->xBlockSize += pxIterator->pxNextFreeBlock->xBlockSize;
 
-  802b9fc:	1861      	adds	r1, r4, r1
 
-  802b9fe:	6041      	str	r1, [r0, #4]
 
- 	/* If the block being inserted plugged a gab, so was merged with the block
 
- 	before and the block after, then it's pxNextFreeBlock pointer will have
 
- 	already been set, and should not be set here as that would make it point
 
- 	to itself. */
 
- 	if( pxIterator != pxBlockToInsert )
 
-  802ba00:	4283      	cmp	r3, r0
 
- 			pxBlockToInsert->pxNextFreeBlock = pxEnd;
 
- 		}
 
- 	}
 
- 	else
 
- 	{
 
- 		pxBlockToInsert->pxNextFreeBlock = pxIterator->pxNextFreeBlock;
 
-  802ba02:	6002      	str	r2, [r0, #0]
 
- 	before and the block after, then it's pxNextFreeBlock pointer will have
 
- 	already been set, and should not be set here as that would make it point
 
- 	to itself. */
 
- 	if( pxIterator != pxBlockToInsert )
 
- 	{
 
- 		pxIterator->pxNextFreeBlock = pxBlockToInsert;
 
-  802ba04:	bf18      	it	ne
 
-  802ba06:	6018      	strne	r0, [r3, #0]
 
-  802ba08:	bd10      	pop	{r4, pc}
 
-  802ba0a:	bf00      	nop
 
-  802ba0c:	20000d10 	.word	0x20000d10
 
-  802ba10:	20000d0c 	.word	0x20000d0c
 
- 0802ba14 <pvPortMalloc>:
 
- static size_t xBlockAllocatedBit = 0;
 
- /*-----------------------------------------------------------*/
 
- void *pvPortMalloc( size_t xWantedSize )
 
- {
 
-  802ba14:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
-  802ba16:	4605      	mov	r5, r0
 
- BlockLink_t *pxBlock, *pxPreviousBlock, *pxNewBlockLink;
 
- void *pvReturn = NULL;
 
- 	vTaskSuspendAll();
 
-  802ba18:	f7ff f99e 	bl	802ad58 <vTaskSuspendAll>
 
- 	{
 
- 		/* If this is the first call to malloc then the heap will require
 
- 		initialisation to setup the list of free blocks. */
 
- 		if( pxEnd == NULL )
 
-  802ba1c:	4b3a      	ldr	r3, [pc, #232]	; (802bb08 <pvPortMalloc+0xf4>)
 
-  802ba1e:	681b      	ldr	r3, [r3, #0]
 
-  802ba20:	bb1b      	cbnz	r3, 802ba6a <pvPortMalloc+0x56>
 
- uint8_t *pucAlignedHeap;
 
- uint32_t ulAddress;
 
- size_t xTotalHeapSize = configTOTAL_HEAP_SIZE;
 
- 	/* Ensure the heap starts on a correctly aligned boundary. */
 
- 	ulAddress = ( uint32_t ) ucHeap;
 
-  802ba22:	4a3a      	ldr	r2, [pc, #232]	; (802bb0c <pvPortMalloc+0xf8>)
 
- 	if( ( ulAddress & portBYTE_ALIGNMENT_MASK ) != 0 )
 
-  802ba24:	0756      	lsls	r6, r2, #29
 
-  802ba26:	d007      	beq.n	802ba38 <pvPortMalloc+0x24>
 
- 	{
 
- 		ulAddress += ( portBYTE_ALIGNMENT - 1 );
 
-  802ba28:	1dd3      	adds	r3, r2, #7
 
- 		ulAddress &= ~portBYTE_ALIGNMENT_MASK;
 
-  802ba2a:	f023 0307 	bic.w	r3, r3, #7
 
- 		xTotalHeapSize -= ulAddress - ( uint32_t ) ucHeap;
 
-  802ba2e:	f502 4270 	add.w	r2, r2, #61440	; 0xf000
 
-  802ba32:	1ad1      	subs	r1, r2, r3
 
- 	ulAddress = ( uint32_t ) ucHeap;
 
- 	if( ( ulAddress & portBYTE_ALIGNMENT_MASK ) != 0 )
 
- 	{
 
- 		ulAddress += ( portBYTE_ALIGNMENT - 1 );
 
- 		ulAddress &= ~portBYTE_ALIGNMENT_MASK;
 
-  802ba34:	461a      	mov	r2, r3
 
-  802ba36:	e001      	b.n	802ba3c <pvPortMalloc+0x28>
 
- static void prvHeapInit( void )
 
- {
 
- BlockLink_t *pxFirstFreeBlock;
 
- uint8_t *pucAlignedHeap;
 
- uint32_t ulAddress;
 
- size_t xTotalHeapSize = configTOTAL_HEAP_SIZE;
 
-  802ba38:	f44f 4170 	mov.w	r1, #61440	; 0xf000
 
- 	xStart.pxNextFreeBlock = ( void * ) pucAlignedHeap;
 
- 	xStart.xBlockSize = ( size_t ) 0;
 
- 	/* pxEnd is used to mark the end of the list of free blocks and is inserted
 
- 	at the end of the heap space. */
 
- 	ulAddress = ( ( uint32_t ) pucAlignedHeap ) + xTotalHeapSize;
 
-  802ba3c:	1851      	adds	r1, r2, r1
 
- 	ulAddress -= xHeapStructSize;
 
-  802ba3e:	3908      	subs	r1, #8
 
- 	ulAddress &= ~portBYTE_ALIGNMENT_MASK;
 
-  802ba40:	f021 0107 	bic.w	r1, r1, #7
 
- 	pucAlignedHeap = ( uint8_t * ) ulAddress;
 
- 	/* xStart is used to hold a pointer to the first item in the list of free
 
- 	blocks.  The void cast is used to prevent compiler warnings. */
 
- 	xStart.pxNextFreeBlock = ( void * ) pucAlignedHeap;
 
-  802ba44:	4832      	ldr	r0, [pc, #200]	; (802bb10 <pvPortMalloc+0xfc>)
 
- 	xStart.xBlockSize = ( size_t ) 0;
 
-  802ba46:	2300      	movs	r3, #0
 
-  802ba48:	e880 000c 	stmia.w	r0, {r2, r3}
 
- 	ulAddress = ( ( uint32_t ) pucAlignedHeap ) + xTotalHeapSize;
 
- 	ulAddress -= xHeapStructSize;
 
- 	ulAddress &= ~portBYTE_ALIGNMENT_MASK;
 
- 	pxEnd = ( void * ) ulAddress;
 
- 	pxEnd->xBlockSize = 0;
 
- 	pxEnd->pxNextFreeBlock = NULL;
 
-  802ba4c:	600b      	str	r3, [r1, #0]
 
- 	at the end of the heap space. */
 
- 	ulAddress = ( ( uint32_t ) pucAlignedHeap ) + xTotalHeapSize;
 
- 	ulAddress -= xHeapStructSize;
 
- 	ulAddress &= ~portBYTE_ALIGNMENT_MASK;
 
- 	pxEnd = ( void * ) ulAddress;
 
- 	pxEnd->xBlockSize = 0;
 
-  802ba4e:	604b      	str	r3, [r1, #4]
 
- 	pxEnd->pxNextFreeBlock = NULL;
 
- 	/* To start with there is a single free block that is sized to take up the
 
- 	entire heap space, minus the space taken by pxEnd. */
 
- 	pxFirstFreeBlock = ( void * ) pucAlignedHeap;
 
- 	pxFirstFreeBlock->xBlockSize = ulAddress - ( uint32_t ) pxFirstFreeBlock;
 
-  802ba50:	1a8b      	subs	r3, r1, r2
 
- 	pxFirstFreeBlock->pxNextFreeBlock = pxEnd;
 
-  802ba52:	e882 000a 	stmia.w	r2, {r1, r3}
 
- 	/* Only one block exists - and it covers the entire usable heap space. */
 
- 	xMinimumEverFreeBytesRemaining = pxFirstFreeBlock->xBlockSize;
 
-  802ba56:	4a2f      	ldr	r2, [pc, #188]	; (802bb14 <pvPortMalloc+0x100>)
 
- 	/* pxEnd is used to mark the end of the list of free blocks and is inserted
 
- 	at the end of the heap space. */
 
- 	ulAddress = ( ( uint32_t ) pucAlignedHeap ) + xTotalHeapSize;
 
- 	ulAddress -= xHeapStructSize;
 
- 	ulAddress &= ~portBYTE_ALIGNMENT_MASK;
 
- 	pxEnd = ( void * ) ulAddress;
 
-  802ba58:	482b      	ldr	r0, [pc, #172]	; (802bb08 <pvPortMalloc+0xf4>)
 
- 	pxFirstFreeBlock = ( void * ) pucAlignedHeap;
 
- 	pxFirstFreeBlock->xBlockSize = ulAddress - ( uint32_t ) pxFirstFreeBlock;
 
- 	pxFirstFreeBlock->pxNextFreeBlock = pxEnd;
 
- 	/* Only one block exists - and it covers the entire usable heap space. */
 
- 	xMinimumEverFreeBytesRemaining = pxFirstFreeBlock->xBlockSize;
 
-  802ba5a:	6013      	str	r3, [r2, #0]
 
- 	xFreeBytesRemaining = pxFirstFreeBlock->xBlockSize;
 
-  802ba5c:	4a2e      	ldr	r2, [pc, #184]	; (802bb18 <pvPortMalloc+0x104>)
 
- 	/* pxEnd is used to mark the end of the list of free blocks and is inserted
 
- 	at the end of the heap space. */
 
- 	ulAddress = ( ( uint32_t ) pucAlignedHeap ) + xTotalHeapSize;
 
- 	ulAddress -= xHeapStructSize;
 
- 	ulAddress &= ~portBYTE_ALIGNMENT_MASK;
 
- 	pxEnd = ( void * ) ulAddress;
 
-  802ba5e:	6001      	str	r1, [r0, #0]
 
- 	pxFirstFreeBlock->xBlockSize = ulAddress - ( uint32_t ) pxFirstFreeBlock;
 
- 	pxFirstFreeBlock->pxNextFreeBlock = pxEnd;
 
- 	/* Only one block exists - and it covers the entire usable heap space. */
 
- 	xMinimumEverFreeBytesRemaining = pxFirstFreeBlock->xBlockSize;
 
- 	xFreeBytesRemaining = pxFirstFreeBlock->xBlockSize;
 
-  802ba60:	6013      	str	r3, [r2, #0]
 
- 	/* Work out the position of the top bit in a size_t variable. */
 
- 	xBlockAllocatedBit = ( ( size_t ) 1 ) << ( ( sizeof( size_t ) * heapBITS_PER_BYTE ) - 1 );
 
-  802ba62:	4b2e      	ldr	r3, [pc, #184]	; (802bb1c <pvPortMalloc+0x108>)
 
-  802ba64:	f04f 4200 	mov.w	r2, #2147483648	; 0x80000000
 
-  802ba68:	601a      	str	r2, [r3, #0]
 
- 		/* Check the requested block size is not so large that the top bit is
 
- 		set.  The top bit of the block size member of the BlockLink_t structure
 
- 		is used to determine who owns the block - the application or the
 
- 		kernel, so it must be free. */
 
- 		if( ( xWantedSize & xBlockAllocatedBit ) == 0 )
 
-  802ba6a:	4b2c      	ldr	r3, [pc, #176]	; (802bb1c <pvPortMalloc+0x108>)
 
-  802ba6c:	681e      	ldr	r6, [r3, #0]
 
-  802ba6e:	4235      	tst	r5, r6
 
-  802ba70:	d140      	bne.n	802baf4 <pvPortMalloc+0xe0>
 
- 		{
 
- 			/* The wanted size is increased so it can contain a BlockLink_t
 
- 			structure in addition to the requested amount of bytes. */
 
- 			if( xWantedSize > 0 )
 
-  802ba72:	2d00      	cmp	r5, #0
 
-  802ba74:	d03f      	beq.n	802baf6 <pvPortMalloc+0xe2>
 
- 			{
 
- 				xWantedSize += xHeapStructSize;
 
-  802ba76:	f105 0308 	add.w	r3, r5, #8
 
- 				/* Ensure that blocks are always aligned to the required number
 
- 				of bytes. */
 
- 				if( ( xWantedSize & portBYTE_ALIGNMENT_MASK ) != 0x00 )
 
-  802ba7a:	0758      	lsls	r0, r3, #29
 
- 				{
 
- 					/* Byte alignment required. */
 
- 					xWantedSize += ( portBYTE_ALIGNMENT - ( xWantedSize & portBYTE_ALIGNMENT_MASK ) );
 
-  802ba7c:	bf1c      	itt	ne
 
-  802ba7e:	f023 0307 	bicne.w	r3, r3, #7
 
-  802ba82:	3308      	addne	r3, #8
 
- 			else
 
- 			{
 
- 				mtCOVERAGE_TEST_MARKER();
 
- 			}
 
- 			if( ( xWantedSize > 0 ) && ( xWantedSize <= xFreeBytesRemaining ) )
 
-  802ba84:	2b00      	cmp	r3, #0
 
-  802ba86:	d033      	beq.n	802baf0 <pvPortMalloc+0xdc>
 
-  802ba88:	4a23      	ldr	r2, [pc, #140]	; (802bb18 <pvPortMalloc+0x104>)
 
-  802ba8a:	6817      	ldr	r7, [r2, #0]
 
-  802ba8c:	42bb      	cmp	r3, r7
 
-  802ba8e:	d831      	bhi.n	802baf4 <pvPortMalloc+0xe0>
 
- 			{
 
- 				/* Traverse the list from the start	(lowest address) block until
 
- 				one	of adequate size is found. */
 
- 				pxPreviousBlock = &xStart;
 
- 				pxBlock = xStart.pxNextFreeBlock;
 
-  802ba90:	4a1f      	ldr	r2, [pc, #124]	; (802bb10 <pvPortMalloc+0xfc>)
 
-  802ba92:	6814      	ldr	r4, [r2, #0]
 
- 				while( ( pxBlock->xBlockSize < xWantedSize ) && ( pxBlock->pxNextFreeBlock != NULL ) )
 
-  802ba94:	e001      	b.n	802ba9a <pvPortMalloc+0x86>
 
-  802ba96:	4622      	mov	r2, r4
 
- 				{
 
- 					pxPreviousBlock = pxBlock;
 
- 					pxBlock = pxBlock->pxNextFreeBlock;
 
-  802ba98:	4604      	mov	r4, r0
 
- 			{
 
- 				/* Traverse the list from the start	(lowest address) block until
 
- 				one	of adequate size is found. */
 
- 				pxPreviousBlock = &xStart;
 
- 				pxBlock = xStart.pxNextFreeBlock;
 
- 				while( ( pxBlock->xBlockSize < xWantedSize ) && ( pxBlock->pxNextFreeBlock != NULL ) )
 
-  802ba9a:	6861      	ldr	r1, [r4, #4]
 
-  802ba9c:	4299      	cmp	r1, r3
 
-  802ba9e:	d304      	bcc.n	802baaa <pvPortMalloc+0x96>
 
- 					pxBlock = pxBlock->pxNextFreeBlock;
 
- 				}
 
- 				/* If the end marker was reached then a block of adequate size
 
- 				was	not found. */
 
- 				if( pxBlock != pxEnd )
 
-  802baa0:	4819      	ldr	r0, [pc, #100]	; (802bb08 <pvPortMalloc+0xf4>)
 
-  802baa2:	6800      	ldr	r0, [r0, #0]
 
-  802baa4:	4284      	cmp	r4, r0
 
-  802baa6:	d104      	bne.n	802bab2 <pvPortMalloc+0x9e>
 
-  802baa8:	e024      	b.n	802baf4 <pvPortMalloc+0xe0>
 
- 			{
 
- 				/* Traverse the list from the start	(lowest address) block until
 
- 				one	of adequate size is found. */
 
- 				pxPreviousBlock = &xStart;
 
- 				pxBlock = xStart.pxNextFreeBlock;
 
- 				while( ( pxBlock->xBlockSize < xWantedSize ) && ( pxBlock->pxNextFreeBlock != NULL ) )
 
-  802baaa:	6820      	ldr	r0, [r4, #0]
 
-  802baac:	2800      	cmp	r0, #0
 
-  802baae:	d1f2      	bne.n	802ba96 <pvPortMalloc+0x82>
 
-  802bab0:	e7f6      	b.n	802baa0 <pvPortMalloc+0x8c>
 
- 					BlockLink_t structure at its start. */
 
- 					pvReturn = ( void * ) ( ( ( uint8_t * ) pxPreviousBlock->pxNextFreeBlock ) + xHeapStructSize );
 
- 					/* This block is being returned for use so must be taken out
 
- 					of the list of free blocks. */
 
- 					pxPreviousBlock->pxNextFreeBlock = pxBlock->pxNextFreeBlock;
 
-  802bab2:	6820      	ldr	r0, [r4, #0]
 
- 				was	not found. */
 
- 				if( pxBlock != pxEnd )
 
- 				{
 
- 					/* Return the memory space pointed to - jumping over the
 
- 					BlockLink_t structure at its start. */
 
- 					pvReturn = ( void * ) ( ( ( uint8_t * ) pxPreviousBlock->pxNextFreeBlock ) + xHeapStructSize );
 
-  802bab4:	6815      	ldr	r5, [r2, #0]
 
- 					/* This block is being returned for use so must be taken out
 
- 					of the list of free blocks. */
 
- 					pxPreviousBlock->pxNextFreeBlock = pxBlock->pxNextFreeBlock;
 
-  802bab6:	6010      	str	r0, [r2, #0]
 
- 					/* If the block is larger than required it can be split into
 
- 					two. */
 
- 					if( ( pxBlock->xBlockSize - xWantedSize ) > heapMINIMUM_BLOCK_SIZE )
 
-  802bab8:	1aca      	subs	r2, r1, r3
 
- 				was	not found. */
 
- 				if( pxBlock != pxEnd )
 
- 				{
 
- 					/* Return the memory space pointed to - jumping over the
 
- 					BlockLink_t structure at its start. */
 
- 					pvReturn = ( void * ) ( ( ( uint8_t * ) pxPreviousBlock->pxNextFreeBlock ) + xHeapStructSize );
 
-  802baba:	3508      	adds	r5, #8
 
- 					of the list of free blocks. */
 
- 					pxPreviousBlock->pxNextFreeBlock = pxBlock->pxNextFreeBlock;
 
- 					/* If the block is larger than required it can be split into
 
- 					two. */
 
- 					if( ( pxBlock->xBlockSize - xWantedSize ) > heapMINIMUM_BLOCK_SIZE )
 
-  802babc:	2a10      	cmp	r2, #16
 
-  802babe:	d909      	bls.n	802bad4 <pvPortMalloc+0xc0>
 
- 					{
 
- 						/* This block is to be split into two.  Create a new
 
- 						block following the number of bytes requested. The void
 
- 						cast is used to prevent byte alignment warnings from the
 
- 						compiler. */
 
- 						pxNewBlockLink = ( void * ) ( ( ( uint8_t * ) pxBlock ) + xWantedSize );
 
-  802bac0:	18e0      	adds	r0, r4, r3
 
- 						configASSERT( ( ( ( uint32_t ) pxNewBlockLink ) & portBYTE_ALIGNMENT_MASK ) == 0 );
 
-  802bac2:	0741      	lsls	r1, r0, #29
 
-  802bac4:	d002      	beq.n	802bacc <pvPortMalloc+0xb8>
 
-  802bac6:	f7ff fe8f 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802baca:	e7fe      	b.n	802baca <pvPortMalloc+0xb6>
 
- 						/* Calculate the sizes of two blocks split from the
 
- 						single block. */
 
- 						pxNewBlockLink->xBlockSize = pxBlock->xBlockSize - xWantedSize;
 
-  802bacc:	6042      	str	r2, [r0, #4]
 
- 						pxBlock->xBlockSize = xWantedSize;
 
-  802bace:	6063      	str	r3, [r4, #4]
 
- 						/* Insert the new block into the list of free blocks. */
 
- 						prvInsertBlockIntoFreeList( ( pxNewBlockLink ) );
 
-  802bad0:	f7ff ff7c 	bl	802b9cc <prvInsertBlockIntoFreeList>
 
- 					else
 
- 					{
 
- 						mtCOVERAGE_TEST_MARKER();
 
- 					}
 
- 					xFreeBytesRemaining -= pxBlock->xBlockSize;
 
-  802bad4:	6862      	ldr	r2, [r4, #4]
 
-  802bad6:	4910      	ldr	r1, [pc, #64]	; (802bb18 <pvPortMalloc+0x104>)
 
-  802bad8:	1abb      	subs	r3, r7, r2
 
-  802bada:	600b      	str	r3, [r1, #0]
 
- 					if( xFreeBytesRemaining < xMinimumEverFreeBytesRemaining )
 
-  802badc:	490d      	ldr	r1, [pc, #52]	; (802bb14 <pvPortMalloc+0x100>)
 
-  802bade:	6808      	ldr	r0, [r1, #0]
 
-  802bae0:	4283      	cmp	r3, r0
 
- 					{
 
- 						xMinimumEverFreeBytesRemaining = xFreeBytesRemaining;
 
-  802bae2:	bf38      	it	cc
 
-  802bae4:	600b      	strcc	r3, [r1, #0]
 
- 						mtCOVERAGE_TEST_MARKER();
 
- 					}
 
- 					/* The block is being returned - it is allocated and owned
 
- 					by the application and has no "next" block. */
 
- 					pxBlock->xBlockSize |= xBlockAllocatedBit;
 
-  802bae6:	4316      	orrs	r6, r2
 
- 					pxBlock->pxNextFreeBlock = NULL;
 
-  802bae8:	2300      	movs	r3, #0
 
-  802baea:	e884 0048 	stmia.w	r4, {r3, r6}
 
-  802baee:	e002      	b.n	802baf6 <pvPortMalloc+0xe2>
 
- /*-----------------------------------------------------------*/
 
- void *pvPortMalloc( size_t xWantedSize )
 
- {
 
- BlockLink_t *pxBlock, *pxPreviousBlock, *pxNewBlockLink;
 
- void *pvReturn = NULL;
 
-  802baf0:	461d      	mov	r5, r3
 
-  802baf2:	e000      	b.n	802baf6 <pvPortMalloc+0xe2>
 
-  802baf4:	2500      	movs	r5, #0
 
- 			mtCOVERAGE_TEST_MARKER();
 
- 		}
 
- 		traceMALLOC( pvReturn, xWantedSize );
 
- 	}
 
- 	( void ) xTaskResumeAll();
 
-  802baf6:	f7ff f9cb 	bl	802ae90 <xTaskResumeAll>
 
- 			mtCOVERAGE_TEST_MARKER();
 
- 		}
 
- 	}
 
- 	#endif
 
- 	configASSERT( ( ( ( uint32_t ) pvReturn ) & portBYTE_ALIGNMENT_MASK ) == 0 );
 
-  802bafa:	076b      	lsls	r3, r5, #29
 
-  802bafc:	d002      	beq.n	802bb04 <pvPortMalloc+0xf0>
 
-  802bafe:	f7ff fe73 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802bb02:	e7fe      	b.n	802bb02 <pvPortMalloc+0xee>
 
- 	return pvReturn;
 
- }
 
-  802bb04:	4628      	mov	r0, r5
 
-  802bb06:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 
-  802bb08:	20000d0c 	.word	0x20000d0c
 
-  802bb0c:	10000000 	.word	0x10000000
 
-  802bb10:	20000d10 	.word	0x20000d10
 
-  802bb14:	20000d18 	.word	0x20000d18
 
-  802bb18:	20000d08 	.word	0x20000d08
 
-  802bb1c:	20000d1c 	.word	0x20000d1c
 
- 0802bb20 <vPortFree>:
 
- /*-----------------------------------------------------------*/
 
- void vPortFree( void *pv )
 
- {
 
-  802bb20:	b510      	push	{r4, lr}
 
- uint8_t *puc = ( uint8_t * ) pv;
 
- BlockLink_t *pxLink;
 
- 	if( pv != NULL )
 
-  802bb22:	4604      	mov	r4, r0
 
-  802bb24:	b310      	cbz	r0, 802bb6c <vPortFree+0x4c>
 
- 		/* This casting is to keep the compiler from issuing warnings. */
 
- 		pxLink = ( void * ) puc;
 
- 		/* Check the block is actually allocated. */
 
- 		configASSERT( ( pxLink->xBlockSize & xBlockAllocatedBit ) != 0 );
 
-  802bb26:	4a12      	ldr	r2, [pc, #72]	; (802bb70 <vPortFree+0x50>)
 
-  802bb28:	f850 3c04 	ldr.w	r3, [r0, #-4]
 
-  802bb2c:	6812      	ldr	r2, [r2, #0]
 
-  802bb2e:	421a      	tst	r2, r3
 
-  802bb30:	d102      	bne.n	802bb38 <vPortFree+0x18>
 
-  802bb32:	f7ff fe59 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802bb36:	e7fe      	b.n	802bb36 <vPortFree+0x16>
 
- 		configASSERT( pxLink->pxNextFreeBlock == NULL );
 
-  802bb38:	f850 1c08 	ldr.w	r1, [r0, #-8]
 
-  802bb3c:	b111      	cbz	r1, 802bb44 <vPortFree+0x24>
 
-  802bb3e:	f7ff fe53 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  802bb42:	e7fe      	b.n	802bb42 <vPortFree+0x22>
 
- 		{
 
- 			if( pxLink->pxNextFreeBlock == NULL )
 
- 			{
 
- 				/* The block is being returned to the heap - it is no longer
 
- 				allocated. */
 
- 				pxLink->xBlockSize &= ~xBlockAllocatedBit;
 
-  802bb44:	ea23 0302 	bic.w	r3, r3, r2
 
-  802bb48:	f840 3c04 	str.w	r3, [r0, #-4]
 
- 				vTaskSuspendAll();
 
-  802bb4c:	f7ff f904 	bl	802ad58 <vTaskSuspendAll>
 
- 				{
 
- 					/* Add this block to the list of free blocks. */
 
- 					xFreeBytesRemaining += pxLink->xBlockSize;
 
-  802bb50:	4b08      	ldr	r3, [pc, #32]	; (802bb74 <vPortFree+0x54>)
 
-  802bb52:	f854 1c04 	ldr.w	r1, [r4, #-4]
 
-  802bb56:	681a      	ldr	r2, [r3, #0]
 
- 					traceFREE( pv, pxLink->xBlockSize );
 
- 					prvInsertBlockIntoFreeList( ( ( BlockLink_t * ) pxLink ) );
 
-  802bb58:	f1a4 0008 	sub.w	r0, r4, #8
 
- 				pxLink->xBlockSize &= ~xBlockAllocatedBit;
 
- 				vTaskSuspendAll();
 
- 				{
 
- 					/* Add this block to the list of free blocks. */
 
- 					xFreeBytesRemaining += pxLink->xBlockSize;
 
-  802bb5c:	188a      	adds	r2, r1, r2
 
-  802bb5e:	601a      	str	r2, [r3, #0]
 
- 					traceFREE( pv, pxLink->xBlockSize );
 
- 					prvInsertBlockIntoFreeList( ( ( BlockLink_t * ) pxLink ) );
 
-  802bb60:	f7ff ff34 	bl	802b9cc <prvInsertBlockIntoFreeList>
 
- 		else
 
- 		{
 
- 			mtCOVERAGE_TEST_MARKER();
 
- 		}
 
- 	}
 
- }
 
-  802bb64:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
- 					/* Add this block to the list of free blocks. */
 
- 					xFreeBytesRemaining += pxLink->xBlockSize;
 
- 					traceFREE( pv, pxLink->xBlockSize );
 
- 					prvInsertBlockIntoFreeList( ( ( BlockLink_t * ) pxLink ) );
 
- 				}
 
- 				( void ) xTaskResumeAll();
 
-  802bb68:	f7ff b992 	b.w	802ae90 <xTaskResumeAll>
 
-  802bb6c:	bd10      	pop	{r4, pc}
 
-  802bb6e:	bf00      	nop
 
-  802bb70:	20000d1c 	.word	0x20000d1c
 
-  802bb74:	20000d08 	.word	0x20000d08
 
- 0802bb78 <http_sent_log_err>:
 
- static void http_sent_log_err(void * arg, err_t err)
 
- {
 
-     (void)err;
 
-     (void)arg;
 
-     /* Clear file transfer in progress flag */
 
-     fLogTransInprog = false;
 
-  802bb78:	4b01      	ldr	r3, [pc, #4]	; (802bb80 <http_sent_log_err+0x8>)
 
-  802bb7a:	2200      	movs	r2, #0
 
-  802bb7c:	701a      	strb	r2, [r3, #0]
 
-  802bb7e:	4770      	bx	lr
 
-  802bb80:	20000d2c 	.word	0x20000d2c
 
- 0802bb84 <HTTP_UpdateUserLoginTime>:
 
- /**
 
-   * @brief Обновление времени последней активности пользователя
 
-   */
 
- static void HTTP_UpdateUserLoginTime(uint8_t user_id)
 
- {
 
-     xTimerStart(users[user_id].LogoutTimer, 0);
 
-  802bb84:	4b07      	ldr	r3, [pc, #28]	; (802bba4 <HTTP_UpdateUserLoginTime+0x20>)
 
-  802bb86:	2214      	movs	r2, #20
 
- /**
 
-   * @brief Обновление времени последней активности пользователя
 
-   */
 
- static void HTTP_UpdateUserLoginTime(uint8_t user_id)
 
- {
 
-  802bb88:	b513      	push	{r0, r1, r4, lr}
 
-     xTimerStart(users[user_id].LogoutTimer, 0);
 
-  802bb8a:	fb02 3000 	mla	r0, r2, r0, r3
 
-  802bb8e:	6904      	ldr	r4, [r0, #16]
 
-  802bb90:	f7ff f8ea 	bl	802ad68 <xTaskGetTickCount>
 
-  802bb94:	2300      	movs	r3, #0
 
-  802bb96:	4602      	mov	r2, r0
 
-  802bb98:	9300      	str	r3, [sp, #0]
 
-  802bb9a:	4620      	mov	r0, r4
 
-  802bb9c:	2101      	movs	r1, #1
 
-  802bb9e:	f7ff fccd 	bl	802b53c <xTimerGenericCommand>
 
- }
 
-  802bba2:	bd1c      	pop	{r2, r3, r4, pc}
 
-  802bba4:	2000e23c 	.word	0x2000e23c
 
- 0802bba8 <fs_open>:
 
-   * @param  name : pointer to a file name
 
-   * @param  file : pointer to a fs_file structure  
 
-   * @retval  1 if success, 0 if fail
 
-   */
 
- static int fs_open(char *name, struct fs_file *file)
 
- {
 
-  802bba8:	b570      	push	{r4, r5, r6, lr}
 
-   struct fsdata_file_noconst *f;
 
-   for (f = (struct fsdata_file_noconst *)FS_ROOT; f != NULL; f = (struct fsdata_file_noconst *)f->next)
 
-  802bbaa:	4c09      	ldr	r4, [pc, #36]	; (802bbd0 <fs_open+0x28>)
 
-   * @param  name : pointer to a file name
 
-   * @param  file : pointer to a fs_file structure  
 
-   * @retval  1 if success, 0 if fail
 
-   */
 
- static int fs_open(char *name, struct fs_file *file)
 
- {
 
-  802bbac:	4606      	mov	r6, r0
 
-  802bbae:	460d      	mov	r5, r1
 
-   struct fsdata_file_noconst *f;
 
-   for (f = (struct fsdata_file_noconst *)FS_ROOT; f != NULL; f = (struct fsdata_file_noconst *)f->next)
 
-   {
 
-     if (!strcmp(name, f->name))
 
-  802bbb0:	4630      	mov	r0, r6
 
-  802bbb2:	6861      	ldr	r1, [r4, #4]
 
-  802bbb4:	f7f6 f830 	bl	8021c18 <strcmp>
 
-  802bbb8:	b928      	cbnz	r0, 802bbc6 <fs_open+0x1e>
 
-     {
 
-       file->data = f->data;
 
-  802bbba:	68a3      	ldr	r3, [r4, #8]
 
-  802bbbc:	602b      	str	r3, [r5, #0]
 
-       file->len = f->len;
 
-  802bbbe:	68e3      	ldr	r3, [r4, #12]
 
-       return 1;
 
-  802bbc0:	2001      	movs	r0, #1
 
-   for (f = (struct fsdata_file_noconst *)FS_ROOT; f != NULL; f = (struct fsdata_file_noconst *)f->next)
 
-   {
 
-     if (!strcmp(name, f->name))
 
-     {
 
-       file->data = f->data;
 
-       file->len = f->len;
 
-  802bbc2:	606b      	str	r3, [r5, #4]
 
-       return 1;
 
-  802bbc4:	bd70      	pop	{r4, r5, r6, pc}
 
-   */
 
- static int fs_open(char *name, struct fs_file *file)
 
- {
 
-   struct fsdata_file_noconst *f;
 
-   for (f = (struct fsdata_file_noconst *)FS_ROOT; f != NULL; f = (struct fsdata_file_noconst *)f->next)
 
-  802bbc6:	6824      	ldr	r4, [r4, #0]
 
-  802bbc8:	2c00      	cmp	r4, #0
 
-  802bbca:	d1f1      	bne.n	802bbb0 <fs_open+0x8>
 
-       file->data = f->data;
 
-       file->len = f->len;
 
-       return 1;
 
-     }
 
-   }
 
-   return 0;
 
-  802bbcc:	4620      	mov	r0, r4
 
- }
 
-  802bbce:	bd70      	pop	{r4, r5, r6, pc}
 
-  802bbd0:	080411f0 	.word	0x080411f0
 
- 0802bbd4 <http_accept>:
 
-   * @param  pcb: pointer to a tcp_pcb structure
 
-   * ¶m  err: Lwip stack error code
 
-   * @retval err
 
-   */
 
- static err_t http_accept(void *arg, struct tcp_pcb *pcb, err_t err)
 
- {
 
-  802bbd4:	b538      	push	{r3, r4, r5, lr}
 
-   struct http_state *hs;
 
-   /* Allocate memory for the structure that holds the state of the connection */
 
-   hs = mem_malloc(sizeof(struct http_state));
 
-  802bbd6:	2008      	movs	r0, #8
 
-   * @param  pcb: pointer to a tcp_pcb structure
 
-   * ¶m  err: Lwip stack error code
 
-   * @retval err
 
-   */
 
- static err_t http_accept(void *arg, struct tcp_pcb *pcb, err_t err)
 
- {
 
-  802bbd8:	460c      	mov	r4, r1
 
-   struct http_state *hs;
 
-   /* Allocate memory for the structure that holds the state of the connection */
 
-   hs = mem_malloc(sizeof(struct http_state));
 
-  802bbda:	f003 ff6d 	bl	802fab8 <mem_malloc>
 
-   if (hs == NULL)
 
-  802bbde:	4601      	mov	r1, r0
 
-  802bbe0:	b1a0      	cbz	r0, 802bc0c <http_accept+0x38>
 
-   {
 
-     return ERR_MEM;
 
-   }
 
-   /* Initialize the structure. */
 
-   hs->file = NULL;
 
-  802bbe2:	2500      	movs	r5, #0
 
-  802bbe4:	6005      	str	r5, [r0, #0]
 
-   hs->left = 0;
 
-  802bbe6:	6045      	str	r5, [r0, #4]
 
-   /* Tell TCP that this is the structure we wish to be passed for our
 
-      callbacks. */
 
-   tcp_arg(pcb, hs);
 
-  802bbe8:	4620      	mov	r0, r4
 
-  802bbea:	f004 fc55 	bl	8030498 <tcp_arg>
 
-   /* Tell TCP that we wish to be informed of incoming data by a call
 
-      to the http_recv() function. */
 
-   tcp_recv(pcb, http_recv);
 
-  802bbee:	4620      	mov	r0, r4
 
-  802bbf0:	4908      	ldr	r1, [pc, #32]	; (802bc14 <http_accept+0x40>)
 
-  802bbf2:	f004 fc53 	bl	803049c <tcp_recv>
 
-   tcp_err(pcb, conn_err);
 
-  802bbf6:	4620      	mov	r0, r4
 
-  802bbf8:	4907      	ldr	r1, [pc, #28]	; (802bc18 <http_accept+0x44>)
 
-  802bbfa:	f004 fc53 	bl	80304a4 <tcp_err>
 
-   tcp_poll(pcb, http_poll, 10);
 
-  802bbfe:	4620      	mov	r0, r4
 
-  802bc00:	4906      	ldr	r1, [pc, #24]	; (802bc1c <http_accept+0x48>)
 
-  802bc02:	220a      	movs	r2, #10
 
-  802bc04:	f004 fc53 	bl	80304ae <tcp_poll>
 
-   return ERR_OK;
 
-  802bc08:	4628      	mov	r0, r5
 
-  802bc0a:	e000      	b.n	802bc0e <http_accept+0x3a>
 
-   /* Allocate memory for the structure that holds the state of the connection */
 
-   hs = mem_malloc(sizeof(struct http_state));
 
-   if (hs == NULL)
 
-   {
 
-     return ERR_MEM;
 
-  802bc0c:	20ff      	movs	r0, #255	; 0xff
 
-   tcp_err(pcb, conn_err);
 
-   tcp_poll(pcb, http_poll, 10);
 
-   return ERR_OK;
 
- }
 
-  802bc0e:	b240      	sxtb	r0, r0
 
-  802bc10:	bd38      	pop	{r3, r4, r5, pc}
 
-  802bc12:	bf00      	nop
 
-  802bc14:	0802cc8d 	.word	0x0802cc8d
 
-  802bc18:	0802bc63 	.word	0x0802bc63
 
-  802bc1c:	0802bc4b 	.word	0x0802bc4b
 
- 0802bc20 <send_data>:
 
-   * @param pcb: pointer to a tcp_pcb struct
 
-   * @param hs: pointer to a http_state struct
 
-   * @retval none
 
-   */
 
- static void send_data(struct tcp_pcb *pcb, struct http_state *hs)
 
- {
 
-  802bc20:	b538      	push	{r3, r4, r5, lr}
 
-   err_t err;
 
-   u16_t len;
 
-   /* We cannot send more data than space available in the send
 
-      buffer */
 
-   if (tcp_sndbuf(pcb) < hs->left)
 
-  802bc22:	684b      	ldr	r3, [r1, #4]
 
-  802bc24:	f8b0 5066 	ldrh.w	r5, [r0, #102]	; 0x66
 
-  802bc28:	429d      	cmp	r5, r3
 
-   {
 
-     len = tcp_sndbuf(pcb);
 
-   }
 
-   else
 
-   {
 
-     len = hs->left;
 
-  802bc2a:	bf28      	it	cs
 
-  802bc2c:	b29d      	uxthcs	r5, r3
 
-   * @param pcb: pointer to a tcp_pcb struct
 
-   * @param hs: pointer to a http_state struct
 
-   * @retval none
 
-   */
 
- static void send_data(struct tcp_pcb *pcb, struct http_state *hs)
 
- {
 
-  802bc2e:	460c      	mov	r4, r1
 
-   }
 
-   else
 
-   {
 
-     len = hs->left;
 
-   }
 
-   err = tcp_write(pcb, hs->file, len, 0);
 
-  802bc30:	462a      	mov	r2, r5
 
-  802bc32:	6809      	ldr	r1, [r1, #0]
 
-  802bc34:	2300      	movs	r3, #0
 
-  802bc36:	f006 f834 	bl	8031ca2 <tcp_write>
 
-   if (err == ERR_OK)
 
-  802bc3a:	b928      	cbnz	r0, 802bc48 <send_data+0x28>
 
-   {
 
-     hs->file += len;
 
-  802bc3c:	6823      	ldr	r3, [r4, #0]
 
-  802bc3e:	195b      	adds	r3, r3, r5
 
-  802bc40:	6023      	str	r3, [r4, #0]
 
-     hs->left -= len;
 
-  802bc42:	6863      	ldr	r3, [r4, #4]
 
-  802bc44:	1b5d      	subs	r5, r3, r5
 
-  802bc46:	6065      	str	r5, [r4, #4]
 
-  802bc48:	bd38      	pop	{r3, r4, r5, pc}
 
- 0802bc4a <http_poll>:
 
-   * @param arg: pointer to an argument to be passed to callback function
 
-   * @param pcb: pointer on tcp_pcb structure
 
-   * @retval err_t
 
-   */
 
- static err_t http_poll(void *arg, struct tcp_pcb *pcb)
 
- {
 
-  802bc4a:	b508      	push	{r3, lr}
 
-   if (arg == NULL)
 
-  802bc4c:	4603      	mov	r3, r0
 
-   {
 
-     tcp_close(pcb);
 
-  802bc4e:	4608      	mov	r0, r1
 
-   * @param pcb: pointer on tcp_pcb structure
 
-   * @retval err_t
 
-   */
 
- static err_t http_poll(void *arg, struct tcp_pcb *pcb)
 
- {
 
-   if (arg == NULL)
 
-  802bc50:	b913      	cbnz	r3, 802bc58 <http_poll+0xe>
 
-   {
 
-     tcp_close(pcb);
 
-  802bc52:	f004 fee5 	bl	8030a20 <tcp_close>
 
-  802bc56:	e002      	b.n	802bc5e <http_poll+0x14>
 
-   }
 
-   else
 
-   {
 
-     send_data(pcb, (struct http_state *)arg);
 
-  802bc58:	4619      	mov	r1, r3
 
-  802bc5a:	f7ff ffe1 	bl	802bc20 <send_data>
 
-   }
 
-   return ERR_OK;
 
- }
 
-  802bc5e:	2000      	movs	r0, #0
 
-  802bc60:	bd08      	pop	{r3, pc}
 
- 0802bc62 <conn_err>:
 
- static void conn_err(void *arg, err_t err)
 
- {
 
-   struct http_state *hs;
 
-   hs = arg;
 
-   mem_free(hs);
 
-  802bc62:	f003 be61 	b.w	802f928 <mem_free>
 
- 0802bc66 <close_conn>:
 
-   * @param  pcb: pointer to a tcp_pcb struct
 
-   * @param  hs: pointer to a http_state struct
 
-   * @retval
 
-   */
 
- static void close_conn(struct tcp_pcb *pcb, struct http_state *hs)
 
- {
 
-  802bc66:	b538      	push	{r3, r4, r5, lr}
 
-  802bc68:	4604      	mov	r4, r0
 
-  802bc6a:	460d      	mov	r5, r1
 
-   tcp_arg(pcb, NULL);
 
-  802bc6c:	2100      	movs	r1, #0
 
-  802bc6e:	f004 fc13 	bl	8030498 <tcp_arg>
 
-   tcp_sent(pcb, NULL);
 
-  802bc72:	4620      	mov	r0, r4
 
-  802bc74:	2100      	movs	r1, #0
 
-  802bc76:	f004 fc13 	bl	80304a0 <tcp_sent>
 
-   tcp_recv(pcb, NULL);
 
-  802bc7a:	4620      	mov	r0, r4
 
-  802bc7c:	2100      	movs	r1, #0
 
-  802bc7e:	f004 fc0d 	bl	803049c <tcp_recv>
 
-   mem_free(hs);
 
-  802bc82:	4628      	mov	r0, r5
 
-  802bc84:	f003 fe50 	bl	802f928 <mem_free>
 
-   tcp_close(pcb);
 
-  802bc88:	4620      	mov	r0, r4
 
- }
 
-  802bc8a:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
 
- {
 
-   tcp_arg(pcb, NULL);
 
-   tcp_sent(pcb, NULL);
 
-   tcp_recv(pcb, NULL);
 
-   mem_free(hs);
 
-   tcp_close(pcb);
 
-  802bc8e:	f004 bec7 	b.w	8030a20 <tcp_close>
 
- 0802bc92 <http_sent>:
 
-   * @param pcb: pointer on tcp_pcb structure
 
-   * @param len
 
-   * @retval err : LwIP error code
 
-   */
 
- static err_t http_sent(void *arg, struct tcp_pcb *pcb, u16_t len)
 
- {
 
-  802bc92:	b508      	push	{r3, lr}
 
-  802bc94:	4603      	mov	r3, r0
 
-  802bc96:	4608      	mov	r0, r1
 
-   struct http_state *hs;
 
-   hs = arg;
 
-   if (hs->left > 0)
 
-  802bc98:	685a      	ldr	r2, [r3, #4]
 
-   {
 
-     send_data(pcb, hs);
 
-  802bc9a:	4619      	mov	r1, r3
 
- {
 
-   struct http_state *hs;
 
-   hs = arg;
 
-   if (hs->left > 0)
 
-  802bc9c:	b112      	cbz	r2, 802bca4 <http_sent+0x12>
 
-   {
 
-     send_data(pcb, hs);
 
-  802bc9e:	f7ff ffbf 	bl	802bc20 <send_data>
 
-  802bca2:	e001      	b.n	802bca8 <http_sent+0x16>
 
-   }
 
-   else
 
-   {
 
-     close_conn(pcb, hs);      
 
-  802bca4:	f7ff ffdf 	bl	802bc66 <close_conn>
 
-   }
 
-   return ERR_OK;
 
- }
 
-  802bca8:	2000      	movs	r0, #0
 
-  802bcaa:	bd08      	pop	{r3, pc}
 
- 0802bcac <http_sent_log>:
 
- /**
 
-   * @brief Sent callback for log file transfer (messages as is, not ordered)
 
-   */
 
- static err_t http_sent_log(void *arg, struct tcp_pcb *pcb, u16_t len)
 
- {
 
-  802bcac:	b570      	push	{r4, r5, r6, lr}
 
-   static bool start = true;
 
-   (void)len;
 
-   hs = arg;
 
-   if (hs->left > 0)
 
-  802bcae:	6845      	ldr	r5, [r0, #4]
 
- /**
 
-   * @brief Sent callback for log file transfer (messages as is, not ordered)
 
-   */
 
- static err_t http_sent_log(void *arg, struct tcp_pcb *pcb, u16_t len)
 
- {
 
-  802bcb0:	4604      	mov	r4, r0
 
-  802bcb2:	460e      	mov	r6, r1
 
-   static bool start = true;
 
-   (void)len;
 
-   hs = arg;
 
-   if (hs->left > 0)
 
-  802bcb4:	b125      	cbz	r5, 802bcc0 <http_sent_log+0x14>
 
-   {
 
-     send_data(pcb, hs);
 
-  802bcb6:	4608      	mov	r0, r1
 
-  802bcb8:	4621      	mov	r1, r4
 
-  802bcba:	f7ff ffb1 	bl	802bc20 <send_data>
 
-  802bcbe:	e036      	b.n	802bd2e <http_sent_log+0x82>
 
-   }
 
-   else
 
-   {
 
- 	  memset(logFileBuf, 0, FILE_BUF_MAX_LEN);
 
-  802bcc0:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
 
-  802bcc4:	481b      	ldr	r0, [pc, #108]	; (802bd34 <http_sent_log+0x88>)
 
-  802bcc6:	4629      	mov	r1, r5
 
-  802bcc8:	f7f5 ff1a 	bl	8021b00 <memset>
 
-       if (log_ptr + FILE_BUF_MAX_LEN_LOG <= log_size) {
 
-  802bccc:	4b1a      	ldr	r3, [pc, #104]	; (802bd38 <http_sent_log+0x8c>)
 
-  802bcce:	6818      	ldr	r0, [r3, #0]
 
-  802bcd0:	4b1a      	ldr	r3, [pc, #104]	; (802bd3c <http_sent_log+0x90>)
 
-  802bcd2:	681a      	ldr	r2, [r3, #0]
 
-  802bcd4:	f500 7320 	add.w	r3, r0, #640	; 0x280
 
-  802bcd8:	4293      	cmp	r3, r2
 
-  802bcda:	4b19      	ldr	r3, [pc, #100]	; (802bd40 <http_sent_log+0x94>)
 
-  802bcdc:	d803      	bhi.n	802bce6 <http_sent_log+0x3a>
 
-           nbytes = LOG_GetData(log_ptr, logFileBuf, FILE_BUF_MAX_LEN_LOG, start);
 
-  802bcde:	4915      	ldr	r1, [pc, #84]	; (802bd34 <http_sent_log+0x88>)
 
-  802bce0:	f44f 7220 	mov.w	r2, #640	; 0x280
 
-  802bce4:	e003      	b.n	802bcee <http_sent_log+0x42>
 
-       }
 
-       else if (log_ptr < log_size) {
 
-  802bce6:	4290      	cmp	r0, r2
 
-  802bce8:	d205      	bcs.n	802bcf6 <http_sent_log+0x4a>
 
-           nbytes = LOG_GetData(log_ptr, logFileBuf, (log_size - log_ptr), start);
 
-  802bcea:	4912      	ldr	r1, [pc, #72]	; (802bd34 <http_sent_log+0x88>)
 
-  802bcec:	1a12      	subs	r2, r2, r0
 
-  802bcee:	781b      	ldrb	r3, [r3, #0]
 
-  802bcf0:	f7fd ff70 	bl	8029bd4 <LOG_GetData>
 
-  802bcf4:	4605      	mov	r5, r0
 
-       }
 
-       else {
 
-           nbytes = 0;
 
-       }
 
-       log_ptr += nbytes;
 
-  802bcf6:	4b10      	ldr	r3, [pc, #64]	; (802bd38 <http_sent_log+0x8c>)
 
-  802bcf8:	681a      	ldr	r2, [r3, #0]
 
-  802bcfa:	18aa      	adds	r2, r5, r2
 
-  802bcfc:	601a      	str	r2, [r3, #0]
 
-       start = false;
 
-  802bcfe:	4b10      	ldr	r3, [pc, #64]	; (802bd40 <http_sent_log+0x94>)
 
-  802bd00:	2200      	movs	r2, #0
 
-  802bd02:	701a      	strb	r2, [r3, #0]
 
-       if (nbytes == 0) {
 
-  802bd04:	b945      	cbnz	r5, 802bd18 <http_sent_log+0x6c>
 
-           /* File transfer finished. */
 
-           start = true;
 
-  802bd06:	2201      	movs	r2, #1
 
-           close_conn(pcb, hs);
 
-  802bd08:	4630      	mov	r0, r6
 
-  802bd0a:	4621      	mov	r1, r4
 
-       log_ptr += nbytes;
 
-       start = false;
 
-       if (nbytes == 0) {
 
-           /* File transfer finished. */
 
-           start = true;
 
-  802bd0c:	701a      	strb	r2, [r3, #0]
 
-           close_conn(pcb, hs);
 
-  802bd0e:	f7ff ffaa 	bl	802bc66 <close_conn>
 
-           /* Clear file transfer in progress flag */
 
-           fLogTransInprog = false;
 
-  802bd12:	4b0c      	ldr	r3, [pc, #48]	; (802bd44 <http_sent_log+0x98>)
 
-  802bd14:	701d      	strb	r5, [r3, #0]
 
-  802bd16:	e00a      	b.n	802bd2e <http_sent_log+0x82>
 
-           return ERR_OK;
 
-       }
 
-       hs->file = logFileBuf;
 
-  802bd18:	4b06      	ldr	r3, [pc, #24]	; (802bd34 <http_sent_log+0x88>)
 
-       hs->left = nbytes;
 
-       send_data(pcb, hs);
 
-  802bd1a:	4630      	mov	r0, r6
 
-  802bd1c:	4621      	mov	r1, r4
 
-           return ERR_OK;
 
-       }
 
-       hs->file = logFileBuf;
 
-       hs->left = nbytes;
 
-  802bd1e:	e884 0028 	stmia.w	r4, {r3, r5}
 
-       send_data(pcb, hs);
 
-  802bd22:	f7ff ff7d 	bl	802bc20 <send_data>
 
-       tcp_sent(pcb, http_sent_log);
 
-  802bd26:	4630      	mov	r0, r6
 
-  802bd28:	4907      	ldr	r1, [pc, #28]	; (802bd48 <http_sent_log+0x9c>)
 
-  802bd2a:	f004 fbb9 	bl	80304a0 <tcp_sent>
 
-   }
 
-   return ERR_OK;
 
- }
 
-  802bd2e:	2000      	movs	r0, #0
 
-  802bd30:	bd70      	pop	{r4, r5, r6, pc}
 
-  802bd32:	bf00      	nop
 
-  802bd34:	2000cbd9 	.word	0x2000cbd9
 
-  802bd38:	20000d24 	.word	0x20000d24
 
-  802bd3c:	20000d30 	.word	0x20000d30
 
-  802bd40:	20000710 	.word	0x20000710
 
-  802bd44:	20000d2c 	.word	0x20000d2c
 
-  802bd48:	0802bcad 	.word	0x0802bcad
 
- 0802bd4c <http_sent_history>:
 
- /**
 
-   * @brief Sent callback for log file transfer (messages as is, not ordered)
 
-   */
 
- static err_t http_sent_history(void *arg, struct tcp_pcb *pcb, u16_t len)
 
- {
 
-  802bd4c:	b570      	push	{r4, r5, r6, lr}
 
-   static bool start = true;
 
-   (void)len;
 
-   hs = arg;
 
-   if (hs->left > 0)
 
-  802bd4e:	6845      	ldr	r5, [r0, #4]
 
- /**
 
-   * @brief Sent callback for log file transfer (messages as is, not ordered)
 
-   */
 
- static err_t http_sent_history(void *arg, struct tcp_pcb *pcb, u16_t len)
 
- {
 
-  802bd50:	4604      	mov	r4, r0
 
-  802bd52:	460e      	mov	r6, r1
 
-   static bool start = true;
 
-   (void)len;
 
-   hs = arg;
 
-   if (hs->left > 0)
 
-  802bd54:	b125      	cbz	r5, 802bd60 <http_sent_history+0x14>
 
-   {
 
-     send_data(pcb, hs);
 
-  802bd56:	4608      	mov	r0, r1
 
-  802bd58:	4621      	mov	r1, r4
 
-  802bd5a:	f7ff ff61 	bl	802bc20 <send_data>
 
-  802bd5e:	e036      	b.n	802bdce <http_sent_history+0x82>
 
-   }
 
-   else
 
-   {
 
- 	  memset(logFileBuf, 0, FILE_BUF_MAX_LEN);
 
-  802bd60:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
 
-  802bd64:	481b      	ldr	r0, [pc, #108]	; (802bdd4 <http_sent_history+0x88>)
 
-  802bd66:	4629      	mov	r1, r5
 
-  802bd68:	f7f5 feca 	bl	8021b00 <memset>
 
-       if (log_ptr + FILE_BUF_MAX_LEN <= log_size) {
 
-  802bd6c:	4b1a      	ldr	r3, [pc, #104]	; (802bdd8 <http_sent_history+0x8c>)
 
-  802bd6e:	6818      	ldr	r0, [r3, #0]
 
-  802bd70:	4b1a      	ldr	r3, [pc, #104]	; (802bddc <http_sent_history+0x90>)
 
-  802bd72:	681a      	ldr	r2, [r3, #0]
 
-  802bd74:	f500 737a 	add.w	r3, r0, #1000	; 0x3e8
 
-  802bd78:	4293      	cmp	r3, r2
 
-  802bd7a:	4b19      	ldr	r3, [pc, #100]	; (802bde0 <http_sent_history+0x94>)
 
-  802bd7c:	d803      	bhi.n	802bd86 <http_sent_history+0x3a>
 
-           nbytes = History_GetData(log_ptr, logFileBuf, FILE_BUF_MAX_LEN, start);
 
-  802bd7e:	4915      	ldr	r1, [pc, #84]	; (802bdd4 <http_sent_history+0x88>)
 
-  802bd80:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
 
-  802bd84:	e003      	b.n	802bd8e <http_sent_history+0x42>
 
-       }
 
-       else if (log_ptr < log_size) {
 
-  802bd86:	4290      	cmp	r0, r2
 
-  802bd88:	d205      	bcs.n	802bd96 <http_sent_history+0x4a>
 
-           nbytes = History_GetData(log_ptr, logFileBuf, (log_size - log_ptr), start);
 
-  802bd8a:	4912      	ldr	r1, [pc, #72]	; (802bdd4 <http_sent_history+0x88>)
 
-  802bd8c:	1a12      	subs	r2, r2, r0
 
-  802bd8e:	781b      	ldrb	r3, [r3, #0]
 
-  802bd90:	f7fe f826 	bl	8029de0 <History_GetData>
 
-  802bd94:	4605      	mov	r5, r0
 
-       }
 
-       else {
 
-           nbytes = 0;
 
-       }
 
-       log_ptr += nbytes;
 
-  802bd96:	4b10      	ldr	r3, [pc, #64]	; (802bdd8 <http_sent_history+0x8c>)
 
-  802bd98:	681a      	ldr	r2, [r3, #0]
 
-  802bd9a:	18aa      	adds	r2, r5, r2
 
-  802bd9c:	601a      	str	r2, [r3, #0]
 
-       start = false;
 
-  802bd9e:	4b10      	ldr	r3, [pc, #64]	; (802bde0 <http_sent_history+0x94>)
 
-  802bda0:	2200      	movs	r2, #0
 
-  802bda2:	701a      	strb	r2, [r3, #0]
 
-       if (nbytes == 0) {
 
-  802bda4:	b945      	cbnz	r5, 802bdb8 <http_sent_history+0x6c>
 
-           /* File transfer finished. */
 
-           start = true;
 
-  802bda6:	2201      	movs	r2, #1
 
-           close_conn(pcb, hs);
 
-  802bda8:	4630      	mov	r0, r6
 
-  802bdaa:	4621      	mov	r1, r4
 
-       log_ptr += nbytes;
 
-       start = false;
 
-       if (nbytes == 0) {
 
-           /* File transfer finished. */
 
-           start = true;
 
-  802bdac:	701a      	strb	r2, [r3, #0]
 
-           close_conn(pcb, hs);
 
-  802bdae:	f7ff ff5a 	bl	802bc66 <close_conn>
 
-           /* Clear file transfer in progress flag */
 
-           fLogTransInprog = false;
 
-  802bdb2:	4b0c      	ldr	r3, [pc, #48]	; (802bde4 <http_sent_history+0x98>)
 
-  802bdb4:	701d      	strb	r5, [r3, #0]
 
-  802bdb6:	e00a      	b.n	802bdce <http_sent_history+0x82>
 
-           return ERR_OK;
 
-       }
 
-       hs->file = logFileBuf;
 
-  802bdb8:	4b06      	ldr	r3, [pc, #24]	; (802bdd4 <http_sent_history+0x88>)
 
-       hs->left = nbytes;
 
-       send_data(pcb, hs);
 
-  802bdba:	4630      	mov	r0, r6
 
-  802bdbc:	4621      	mov	r1, r4
 
-           return ERR_OK;
 
-       }
 
-       hs->file = logFileBuf;
 
-       hs->left = nbytes;
 
-  802bdbe:	e884 0028 	stmia.w	r4, {r3, r5}
 
-       send_data(pcb, hs);
 
-  802bdc2:	f7ff ff2d 	bl	802bc20 <send_data>
 
-       tcp_sent(pcb, http_sent_history);
 
-  802bdc6:	4630      	mov	r0, r6
 
-  802bdc8:	4907      	ldr	r1, [pc, #28]	; (802bde8 <http_sent_history+0x9c>)
 
-  802bdca:	f004 fb69 	bl	80304a0 <tcp_sent>
 
-   }
 
-   return ERR_OK;
 
- }
 
-  802bdce:	2000      	movs	r0, #0
 
-  802bdd0:	bd70      	pop	{r4, r5, r6, pc}
 
-  802bdd2:	bf00      	nop
 
-  802bdd4:	2000cbd9 	.word	0x2000cbd9
 
-  802bdd8:	20000d24 	.word	0x20000d24
 
-  802bddc:	20000d30 	.word	0x20000d30
 
-  802bde0:	20000712 	.word	0x20000712
 
-  802bde4:	20000d2c 	.word	0x20000d2c
 
-  802bde8:	0802bd4d 	.word	0x0802bd4d
 
- 0802bdec <LogoutTimerCallback>:
 
- }
 
- /**
 
-   * @brief >Callback таймера логаута пользователя
 
-   */
 
- void LogoutTimerCallback(TimerHandle_t pxTimer) {
 
-  802bdec:	b51f      	push	{r0, r1, r2, r3, r4, lr}
 
-     uint8_t user_id = (uint8_t)pvTimerGetTimerID( pxTimer );
 
-  802bdee:	f7ff fcbd 	bl	802b76c <pvTimerGetTimerID>
 
- 	if( sSettings.sRADIUS.Auth_enable )
 
-  802bdf2:	4b0a      	ldr	r3, [pc, #40]	; (802be1c <LogoutTimerCallback+0x30>)
 
-  802bdf4:	f893 3378 	ldrb.w	r3, [r3, #888]	; 0x378
 
- /**
 
-   * @brief >Callback таймера логаута пользователя
 
-   */
 
- void LogoutTimerCallback(TimerHandle_t pxTimer) {
 
-     uint8_t user_id = (uint8_t)pvTimerGetTimerID( pxTimer );
 
-  802bdf8:	4604      	mov	r4, r0
 
- 	if( sSettings.sRADIUS.Auth_enable )
 
-  802bdfa:	b173      	cbz	r3, 802be1a <LogoutTimerCallback+0x2e>
 
- static void HTTP_ForceUserLogout(uint8_t user_id)
 
- {
 
-     char cookie[MAX_WEB_COOKIE_LEN];
 
-     /* Flush user cookie by random value */
 
-     sprintf(cookie, "%X", (unsigned int)GetRandomNumber());
 
-  802bdfc:	f7fa f966 	bl	80260cc <GetRandomNumber>
 
-  802be00:	4907      	ldr	r1, [pc, #28]	; (802be20 <LogoutTimerCallback+0x34>)
 
-  802be02:	4602      	mov	r2, r0
 
-  802be04:	4668      	mov	r0, sp
 
-  802be06:	f7fb fd05 	bl	8027814 <tfp_sprintf>
 
- /**
 
-   * @brief Установка Cookie пользователя
 
-   */
 
- static void HTTP_SetUserCookie(char *str, uint8_t user_id)
 
- {
 
-     strcpy(users[user_id].cookie, str);
 
-  802be0a:	4b06      	ldr	r3, [pc, #24]	; (802be24 <LogoutTimerCallback+0x38>)
 
-  802be0c:	b2e0      	uxtb	r0, r4
 
-  802be0e:	2214      	movs	r2, #20
 
-  802be10:	fb00 3002 	mla	r0, r0, r2, r3
 
-  802be14:	4669      	mov	r1, sp
 
-  802be16:	f7f5 ffed 	bl	8021df4 <strcpy>
 
-   */
 
- void LogoutTimerCallback(TimerHandle_t pxTimer) {
 
-     uint8_t user_id = (uint8_t)pvTimerGetTimerID( pxTimer );
 
- 	if( sSettings.sRADIUS.Auth_enable )
 
- 		HTTP_ForceUserLogout(user_id);
 
- }
 
-  802be1a:	bd1f      	pop	{r0, r1, r2, r3, r4, pc}
 
-  802be1c:	2000cfc4 	.word	0x2000cfc4
 
-  802be20:	080409f6 	.word	0x080409f6
 
-  802be24:	2000e23c 	.word	0x2000e23c
 
- 0802be28 <HTTP_Init>:
 
-   * @brief  Initialize the HTTP server (start its thread) 
 
-   * @param  none
 
-   * @retval None
 
-   */
 
- void HTTP_Init()
 
- {
 
-  802be28:	b5f0      	push	{r4, r5, r6, r7, lr}
 
-  802be2a:	b087      	sub	sp, #28
 
- 	char buf[MAX_WEB_COOKIE_LEN];
 
- 	  uint8_t user_id;
 
-   //sys_thread_new("HTTP", http_server_netconn_thread, NULL, 3000, 2);
 
-   struct tcp_pcb *pcb;
 
-   /*create new pcb*/
 
-   pcb = tcp_new();
 
-  802be2c:	f004 ff26 	bl	8030c7c <tcp_new>
 
-   /* bind HTTP traffic to pcb */
 
-   tcp_bind(pcb, IP_ADDR_ANY, 80);
 
-  802be30:	2250      	movs	r2, #80	; 0x50
 
- 	char buf[MAX_WEB_COOKIE_LEN];
 
- 	  uint8_t user_id;
 
-   //sys_thread_new("HTTP", http_server_netconn_thread, NULL, 3000, 2);
 
-   struct tcp_pcb *pcb;
 
-   /*create new pcb*/
 
-   pcb = tcp_new();
 
-  802be32:	4604      	mov	r4, r0
 
-   /* bind HTTP traffic to pcb */
 
-   tcp_bind(pcb, IP_ADDR_ANY, 80);
 
-  802be34:	4913      	ldr	r1, [pc, #76]	; (802be84 <HTTP_Init+0x5c>)
 
- /**
 
-   * @brief Установка Cookie пользователя
 
-   */
 
- static void HTTP_SetUserCookie(char *str, uint8_t user_id)
 
- {
 
-     strcpy(users[user_id].cookie, str);
 
-  802be36:	4f14      	ldr	r7, [pc, #80]	; (802be88 <HTTP_Init+0x60>)
 
-      sprintf(buf, "%X", (unsigned int)GetRandomNumber());
 
-      HTTP_SetUserCookie(buf, user_id);
 
-      /* Create user logout timers */
 
-      users[user_id].LogoutTimer =
 
-              xTimerCreate("LogoutTmr", WEB_LOGOUT_TIME, pdFALSE, ( void * ) user_id, LogoutTimerCallback);
 
-  802be38:	4e14      	ldr	r6, [pc, #80]	; (802be8c <HTTP_Init+0x64>)
 
-   //sys_thread_new("HTTP", http_server_netconn_thread, NULL, 3000, 2);
 
-   struct tcp_pcb *pcb;
 
-   /*create new pcb*/
 
-   pcb = tcp_new();
 
-   /* bind HTTP traffic to pcb */
 
-   tcp_bind(pcb, IP_ADDR_ANY, 80);
 
-  802be3a:	f004 fa5b 	bl	80302f4 <tcp_bind>
 
-   /* start listening on port 80 */
 
-   pcb = tcp_listen(pcb);
 
-  802be3e:	4620      	mov	r0, r4
 
-  802be40:	21ff      	movs	r1, #255	; 0xff
 
-  802be42:	f004 fa8f 	bl	8030364 <tcp_listen_with_backlog>
 
-   /* define callback function for TCP connection setup */
 
-   tcp_accept(pcb, http_accept);
 
-  802be46:	4912      	ldr	r1, [pc, #72]	; (802be90 <HTTP_Init+0x68>)
 
-  802be48:	f004 fb2f 	bl	80304aa <tcp_accept>
 
-  802be4c:	2400      	movs	r4, #0
 
-   for (user_id = 0; user_id < MAX_WEB_USERS; user_id++) {
 
-      /* Flush user cookie by random value */
 
-      sprintf(buf, "%X", (unsigned int)GetRandomNumber());
 
-  802be4e:	f7fa f93d 	bl	80260cc <GetRandomNumber>
 
- /**
 
-   * @brief Установка Cookie пользователя
 
-   */
 
- static void HTTP_SetUserCookie(char *str, uint8_t user_id)
 
- {
 
-     strcpy(users[user_id].cookie, str);
 
-  802be52:	2514      	movs	r5, #20
 
-   pcb = tcp_listen(pcb);
 
-   /* define callback function for TCP connection setup */
 
-   tcp_accept(pcb, http_accept);
 
-   for (user_id = 0; user_id < MAX_WEB_USERS; user_id++) {
 
-      /* Flush user cookie by random value */
 
-      sprintf(buf, "%X", (unsigned int)GetRandomNumber());
 
-  802be54:	4602      	mov	r2, r0
 
- /**
 
-   * @brief Установка Cookie пользователя
 
-   */
 
- static void HTTP_SetUserCookie(char *str, uint8_t user_id)
 
- {
 
-     strcpy(users[user_id].cookie, str);
 
-  802be56:	fb05 7504 	mla	r5, r5, r4, r7
 
-   pcb = tcp_listen(pcb);
 
-   /* define callback function for TCP connection setup */
 
-   tcp_accept(pcb, http_accept);
 
-   for (user_id = 0; user_id < MAX_WEB_USERS; user_id++) {
 
-      /* Flush user cookie by random value */
 
-      sprintf(buf, "%X", (unsigned int)GetRandomNumber());
 
-  802be5a:	490e      	ldr	r1, [pc, #56]	; (802be94 <HTTP_Init+0x6c>)
 
-  802be5c:	a802      	add	r0, sp, #8
 
-  802be5e:	f7fb fcd9 	bl	8027814 <tfp_sprintf>
 
- /**
 
-   * @brief Установка Cookie пользователя
 
-   */
 
- static void HTTP_SetUserCookie(char *str, uint8_t user_id)
 
- {
 
-     strcpy(users[user_id].cookie, str);
 
-  802be62:	a902      	add	r1, sp, #8
 
-  802be64:	4628      	mov	r0, r5
 
-  802be66:	f7f5 ffc5 	bl	8021df4 <strcpy>
 
-      sprintf(buf, "%X", (unsigned int)GetRandomNumber());
 
-      HTTP_SetUserCookie(buf, user_id);
 
-      /* Create user logout timers */
 
-      users[user_id].LogoutTimer =
 
-              xTimerCreate("LogoutTmr", WEB_LOGOUT_TIME, pdFALSE, ( void * ) user_id, LogoutTimerCallback);
 
-  802be6a:	2200      	movs	r2, #0
 
-  802be6c:	4623      	mov	r3, r4
 
-  802be6e:	9600      	str	r6, [sp, #0]
 
-  802be70:	4809      	ldr	r0, [pc, #36]	; (802be98 <HTTP_Init+0x70>)
 
-  802be72:	490a      	ldr	r1, [pc, #40]	; (802be9c <HTTP_Init+0x74>)
 
-  802be74:	f7ff fb42 	bl	802b4fc <xTimerCreate>
 
-  802be78:	3401      	adds	r4, #1
 
-   tcp_bind(pcb, IP_ADDR_ANY, 80);
 
-   /* start listening on port 80 */
 
-   pcb = tcp_listen(pcb);
 
-   /* define callback function for TCP connection setup */
 
-   tcp_accept(pcb, http_accept);
 
-   for (user_id = 0; user_id < MAX_WEB_USERS; user_id++) {
 
-  802be7a:	2c02      	cmp	r4, #2
 
-      /* Flush user cookie by random value */
 
-      sprintf(buf, "%X", (unsigned int)GetRandomNumber());
 
-      HTTP_SetUserCookie(buf, user_id);
 
-      /* Create user logout timers */
 
-      users[user_id].LogoutTimer =
 
-  802be7c:	6128      	str	r0, [r5, #16]
 
-   tcp_bind(pcb, IP_ADDR_ANY, 80);
 
-   /* start listening on port 80 */
 
-   pcb = tcp_listen(pcb);
 
-   /* define callback function for TCP connection setup */
 
-   tcp_accept(pcb, http_accept);
 
-   for (user_id = 0; user_id < MAX_WEB_USERS; user_id++) {
 
-  802be7e:	d1e6      	bne.n	802be4e <HTTP_Init+0x26>
 
-      /* Create user logout timers */
 
-      users[user_id].LogoutTimer =
 
-              xTimerCreate("LogoutTmr", WEB_LOGOUT_TIME, pdFALSE, ( void * ) user_id, LogoutTimerCallback);
 
-    }
 
- }
 
-  802be80:	b007      	add	sp, #28
 
-  802be82:	bdf0      	pop	{r4, r5, r6, r7, pc}
 
-  802be84:	08045008 	.word	0x08045008
 
-  802be88:	2000e23c 	.word	0x2000e23c
 
-  802be8c:	0802bded 	.word	0x0802bded
 
-  802be90:	0802bbd5 	.word	0x0802bbd5
 
-  802be94:	080409f6 	.word	0x080409f6
 
-  802be98:	080409f9 	.word	0x080409f9
 
-  802be9c:	001b7740 	.word	0x001b7740
 
- 0802bea0 <HTTP_SettingsPage>:
 
- /**
 
-   * @brief  
 
-   * @retval None
 
-   */
 
- int HTTP_SettingsPage(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut)
 
- {
 
-  802bea0:	b570      	push	{r4, r5, r6, lr}
 
-  802bea2:	4602      	mov	r2, r0
 
-  802bea4:	b088      	sub	sp, #32
 
-  802bea6:	460c      	mov	r4, r1
 
-   char tempStr[30];
 
-   strncpy(tempStr, bufIn, 30);
 
-  802bea8:	4668      	mov	r0, sp
 
-  802beaa:	4611      	mov	r1, r2
 
-  802beac:	221e      	movs	r2, #30
 
- /**
 
-   * @brief  
 
-   * @retval None
 
-   */
 
- int HTTP_SettingsPage(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut)
 
- {
 
-  802beae:	461e      	mov	r6, r3
 
-   char tempStr[30];
 
-   strncpy(tempStr, bufIn, 30);
 
-  802beb0:	f7f6 f8b6 	bl	8022020 <strncpy>
 
-   
 
-   /* В запросе нет параметров, нужно формировать JSON ответ */
 
-   if (strpbrk(tempStr,"?") == 0)
 
-  802beb4:	4668      	mov	r0, sp
 
-  802beb6:	490b      	ldr	r1, [pc, #44]	; (802bee4 <HTTP_SettingsPage+0x44>)
 
-  802beb8:	f7f6 f8e4 	bl	8022084 <strpbrk>
 
-  802bebc:	4605      	mov	r5, r0
 
-   /* В запросе есть параметры, нужно парсить и сохранять настройки */
 
-   else
 
-   {
 
- 	//HTTP_SetSettings(bufIn, lenBufIn);
 
- 	
 
-     return SEND_REQUIRED_NO;
 
-  802bebe:	2001      	movs	r0, #1
 
- {
 
-   char tempStr[30];
 
-   strncpy(tempStr, bufIn, 30);
 
-   
 
-   /* В запросе нет параметров, нужно формировать JSON ответ */
 
-   if (strpbrk(tempStr,"?") == 0)
 
-  802bec0:	b975      	cbnz	r5, 802bee0 <HTTP_SettingsPage+0x40>
 
-   {
 
- 	memset(bufOut, 0, SEND_BUF_MAX_LEN);
 
-  802bec2:	4629      	mov	r1, r5
 
-  802bec4:	f44f 62fa 	mov.w	r2, #2000	; 0x7d0
 
-  802bec8:	4620      	mov	r0, r4
 
-  802beca:	f7f5 fe19 	bl	8021b00 <memset>
 
- 	
 
- 	HTTP_GetSettings(bufOut);
 
-  802bece:	4620      	mov	r0, r4
 
-  802bed0:	f001 fbcc 	bl	802d66c <HTTP_GetSettings>
 
- 	
 
-     //printf(bufOut);
 
-     
 
-     *lenBufOut = strlen(bufOut);
 
-  802bed4:	4620      	mov	r0, r4
 
-  802bed6:	f7f5 ffeb 	bl	8021eb0 <strlen>
 
-  802beda:	8030      	strh	r0, [r6, #0]
 
- 	
 
- 	return SEND_REQUIRED_YES;
 
-  802bedc:	4628      	mov	r0, r5
 
-  802bede:	e7ff      	b.n	802bee0 <HTTP_SettingsPage+0x40>
 
-   {
 
- 	//HTTP_SetSettings(bufIn, lenBufIn);
 
- 	
 
-     return SEND_REQUIRED_NO;
 
-   }
 
- }
 
-  802bee0:	b008      	add	sp, #32
 
-  802bee2:	bd70      	pop	{r4, r5, r6, pc}
 
-  802bee4:	08040a03 	.word	0x08040a03
 
- 0802bee8 <HTTP_InfoPage>:
 
- /**
 
-   * @brief  
 
-   * @retval None
 
-   */
 
- int HTTP_InfoPage(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut)
 
- {
 
-  802bee8:	b570      	push	{r4, r5, r6, lr}
 
-  802beea:	4602      	mov	r2, r0
 
-  802beec:	b088      	sub	sp, #32
 
-  802beee:	460c      	mov	r4, r1
 
-   char tempStr[30];
 
-   strncpy(tempStr, bufIn, 30);
 
-  802bef0:	4668      	mov	r0, sp
 
-  802bef2:	4611      	mov	r1, r2
 
-  802bef4:	221e      	movs	r2, #30
 
- /**
 
-   * @brief  
 
-   * @retval None
 
-   */
 
- int HTTP_InfoPage(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut)
 
- {
 
-  802bef6:	461e      	mov	r6, r3
 
-   char tempStr[30];
 
-   strncpy(tempStr, bufIn, 30);
 
-  802bef8:	f7f6 f892 	bl	8022020 <strncpy>
 
-   
 
-   /* В запросе нет параметров, нужно формировать JSON ответ */
 
-   if (strpbrk(tempStr,"?") == 0)
 
-  802befc:	4668      	mov	r0, sp
 
-  802befe:	490b      	ldr	r1, [pc, #44]	; (802bf2c <HTTP_InfoPage+0x44>)
 
-  802bf00:	f7f6 f8c0 	bl	8022084 <strpbrk>
 
-  802bf04:	4605      	mov	r5, r0
 
-   }
 
-   /* В запросе есть параметры, нужно парсить и сохранять настройки */
 
-   else
 
-   {
 
- 	//HTTP_SetInfo(bufIn, lenBufIn);
 
- 	return SEND_REQUIRED_NO;
 
-  802bf06:	2001      	movs	r0, #1
 
- {
 
-   char tempStr[30];
 
-   strncpy(tempStr, bufIn, 30);
 
-   
 
-   /* В запросе нет параметров, нужно формировать JSON ответ */
 
-   if (strpbrk(tempStr,"?") == 0)
 
-  802bf08:	b975      	cbnz	r5, 802bf28 <HTTP_InfoPage+0x40>
 
-   {
 
- 	memset(bufOut, 0, SEND_BUF_MAX_LEN);
 
-  802bf0a:	4629      	mov	r1, r5
 
-  802bf0c:	f44f 62fa 	mov.w	r2, #2000	; 0x7d0
 
-  802bf10:	4620      	mov	r0, r4
 
-  802bf12:	f7f5 fdf5 	bl	8021b00 <memset>
 
- 	
 
- 	HTTP_GetInfo(bufOut);
 
-  802bf16:	4620      	mov	r0, r4
 
-  802bf18:	f001 fd9a 	bl	802da50 <HTTP_GetInfo>
 
- 		
 
-     *lenBufOut = strlen(bufOut);
 
-  802bf1c:	4620      	mov	r0, r4
 
-  802bf1e:	f7f5 ffc7 	bl	8021eb0 <strlen>
 
-  802bf22:	8030      	strh	r0, [r6, #0]
 
- 	
 
- 	return SEND_REQUIRED_YES;
 
-  802bf24:	4628      	mov	r0, r5
 
-  802bf26:	e7ff      	b.n	802bf28 <HTTP_InfoPage+0x40>
 
- /*	
 
- 	HTTP_SetSettings(bufIn, lenBufIn);
 
-     return SEND_REQUIRED_NO;
 
- */	
 
-   }
 
- }  
 
-  802bf28:	b008      	add	sp, #32
 
-  802bf2a:	bd70      	pop	{r4, r5, r6, pc}
 
-  802bf2c:	08040a03 	.word	0x08040a03
 
- 0802bf30 <HTTP_UPSTest>:
 
- /**
 
-   * @brief  Запуск/останов теста UPS
 
-   */
 
- void HTTP_UPSTest(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut)
 
- {
 
-  802bf30:	b570      	push	{r4, r5, r6, lr}
 
-  802bf32:	b08a      	sub	sp, #40	; 0x28
 
-  802bf34:	4606      	mov	r6, r0
 
-  802bf36:	460c      	mov	r4, r1
 
- 	  char *valueLen = 0;
 
- 	  char tempValue[20];
 
- 	  char tempValue2[20];
 
- 	  int8_t res = 0;
 
- 	  memset(tempValue, 0, 20);
 
-  802bf38:	2214      	movs	r2, #20
 
-  802bf3a:	2100      	movs	r1, #0
 
-  802bf3c:	4668      	mov	r0, sp
 
- /**
 
-   * @brief  Запуск/останов теста UPS
 
-   */
 
- void HTTP_UPSTest(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut)
 
- {
 
-  802bf3e:	461d      	mov	r5, r3
 
- 	  char *valueLen = 0;
 
- 	  char tempValue[20];
 
- 	  char tempValue2[20];
 
- 	  int8_t res = 0;
 
- 	  memset(tempValue, 0, 20);
 
-  802bf40:	f7f5 fdde 	bl	8021b00 <memset>
 
- 	  memset(tempValue2, 0, 20);
 
-  802bf44:	2214      	movs	r2, #20
 
-  802bf46:	2100      	movs	r1, #0
 
-  802bf48:	a805      	add	r0, sp, #20
 
-  802bf4a:	f7f5 fdd9 	bl	8021b00 <memset>
 
- 	  strcpy(bufOut, HTTP_200_OK);
 
-  802bf4e:	4932      	ldr	r1, [pc, #200]	; (802c018 <HTTP_UPSTest+0xe8>)
 
-  802bf50:	4620      	mov	r0, r4
 
-  802bf52:	f7f5 ff4f 	bl	8021df4 <strcpy>
 
- 	  value = strstr(bufIn, "func");
 
-  802bf56:	4630      	mov	r0, r6
 
-  802bf58:	4930      	ldr	r1, [pc, #192]	; (802c01c <HTTP_UPSTest+0xec>)
 
-  802bf5a:	f7f6 fa29 	bl	80223b0 <strstr>
 
- 	  valueLen = strpbrk(value, ":");
 
-  802bf5e:	4930      	ldr	r1, [pc, #192]	; (802c020 <HTTP_UPSTest+0xf0>)
 
-  802bf60:	f7f6 f890 	bl	8022084 <strpbrk>
 
-  802bf64:	4606      	mov	r6, r0
 
- 	  strncpy(tempValue, (valueLen+1), (strlen(valueLen)-2));
 
-  802bf66:	f7f5 ffa3 	bl	8021eb0 <strlen>
 
-  802bf6a:	1c71      	adds	r1, r6, #1
 
-  802bf6c:	1e82      	subs	r2, r0, #2
 
-  802bf6e:	4668      	mov	r0, sp
 
-  802bf70:	f7f6 f856 	bl	8022020 <strncpy>
 
- 	  if (strcmp(tempValue, "\"stop\"") == 0){
 
-  802bf74:	4668      	mov	r0, sp
 
-  802bf76:	492b      	ldr	r1, [pc, #172]	; (802c024 <HTTP_UPSTest+0xf4>)
 
-  802bf78:	f7f5 fe4e 	bl	8021c18 <strcmp>
 
-  802bf7c:	b998      	cbnz	r0, 802bfa6 <HTTP_UPSTest+0x76>
 
- 		  res = ups_metac_service_pdu(ups_cancel_test);
 
-  802bf7e:	2008      	movs	r0, #8
 
-  802bf80:	f7fd f872 	bl	8029068 <ups_metac_service_pdu>
 
-  802bf84:	b2c6      	uxtb	r6, r0
 
- 		  if(res == 1 || res == 0){
 
-  802bf86:	2e01      	cmp	r6, #1
 
-  802bf88:	d807      	bhi.n	802bf9a <HTTP_UPSTest+0x6a>
 
- 			  strcat(bufOut, "Тест остановлен!");
 
-  802bf8a:	4927      	ldr	r1, [pc, #156]	; (802c028 <HTTP_UPSTest+0xf8>)
 
-  802bf8c:	4620      	mov	r0, r4
 
-  802bf8e:	f7f5 fe1d 	bl	8021bcc <strcat>
 
- 			  log_event_data(LOG_TEST_UPS, "Администратор (Остановлен)");
 
-  802bf92:	2006      	movs	r0, #6
 
-  802bf94:	4925      	ldr	r1, [pc, #148]	; (802c02c <HTTP_UPSTest+0xfc>)
 
-  802bf96:	f7fd fd61 	bl	8029a5c <log_event_data>
 
- 		  }
 
- 		  if(res == -1)
 
-  802bf9a:	b276      	sxtb	r6, r6
 
-  802bf9c:	1c72      	adds	r2, r6, #1
 
-  802bf9e:	d135      	bne.n	802c00c <HTTP_UPSTest+0xdc>
 
- 			  strcat(bufOut, "Тест не удалось остановить!");
 
-  802bfa0:	4620      	mov	r0, r4
 
-  802bfa2:	4923      	ldr	r1, [pc, #140]	; (802c030 <HTTP_UPSTest+0x100>)
 
-  802bfa4:	e030      	b.n	802c008 <HTTP_UPSTest+0xd8>
 
- 		  *lenBufOut = strlen(bufOut);
 
- 	  }
 
- 	  else if (strcmp(tempValue, "\"discharge\"") == 0){
 
-  802bfa6:	4668      	mov	r0, sp
 
-  802bfa8:	4922      	ldr	r1, [pc, #136]	; (802c034 <HTTP_UPSTest+0x104>)
 
-  802bfaa:	f7f5 fe35 	bl	8021c18 <strcmp>
 
-  802bfae:	b908      	cbnz	r0, 802bfb4 <HTTP_UPSTest+0x84>
 
- 		  res = ups_metac_service_pdu(ups_test_low_bat);
 
-  802bfb0:	2002      	movs	r0, #2
 
-  802bfb2:	e017      	b.n	802bfe4 <HTTP_UPSTest+0xb4>
 
- 		  }
 
- 		  if(res == -1)
 
- 			  strcat(bufOut, "Тест не удалось запустить!");
 
- 		  *lenBufOut = strlen(bufOut);
 
- 	  }
 
- 	  else if (strncmp(tempValue, "\"time\"", 6) == 0){
 
-  802bfb4:	4668      	mov	r0, sp
 
-  802bfb6:	4920      	ldr	r1, [pc, #128]	; (802c038 <HTTP_UPSTest+0x108>)
 
-  802bfb8:	2206      	movs	r2, #6
 
-  802bfba:	f7f5 ffdb 	bl	8021f74 <strncmp>
 
-  802bfbe:	bb48      	cbnz	r0, 802c014 <HTTP_UPSTest+0xe4>
 
- 		  valueLen = strpbrk(tempValue, ":");
 
-  802bfc0:	4917      	ldr	r1, [pc, #92]	; (802c020 <HTTP_UPSTest+0xf0>)
 
-  802bfc2:	4668      	mov	r0, sp
 
-  802bfc4:	f7f6 f85e 	bl	8022084 <strpbrk>
 
-  802bfc8:	4606      	mov	r6, r0
 
- 		  strncpy(tempValue2, (valueLen+2), (strlen(valueLen)-2));
 
-  802bfca:	f7f5 ff71 	bl	8021eb0 <strlen>
 
-  802bfce:	1cb1      	adds	r1, r6, #2
 
-  802bfd0:	1e82      	subs	r2, r0, #2
 
-  802bfd2:	a805      	add	r0, sp, #20
 
-  802bfd4:	f7f6 f824 	bl	8022020 <strncpy>
 
- 		  TimeParam = atoi(tempValue2);
 
-  802bfd8:	a805      	add	r0, sp, #20
 
-  802bfda:	f7f5 fc71 	bl	80218c0 <atoi>
 
-  802bfde:	4b17      	ldr	r3, [pc, #92]	; (802c03c <HTTP_UPSTest+0x10c>)
 
-  802bfe0:	8018      	strh	r0, [r3, #0]
 
- 		  res = ups_metac_service_pdu(ups_test_time);
 
-  802bfe2:	2003      	movs	r0, #3
 
-  802bfe4:	f7fd f840 	bl	8029068 <ups_metac_service_pdu>
 
-  802bfe8:	b2c6      	uxtb	r6, r0
 
- 		  if(res == 1 || res == 0){
 
-  802bfea:	2e01      	cmp	r6, #1
 
-  802bfec:	d807      	bhi.n	802bffe <HTTP_UPSTest+0xce>
 
- 			  strcat(bufOut, "Тест запущен!");
 
-  802bfee:	4914      	ldr	r1, [pc, #80]	; (802c040 <HTTP_UPSTest+0x110>)
 
-  802bff0:	4620      	mov	r0, r4
 
-  802bff2:	f7f5 fdeb 	bl	8021bcc <strcat>
 
- 			  log_event_data(LOG_TEST_UPS, "Администратор (Запущен)");
 
-  802bff6:	2006      	movs	r0, #6
 
-  802bff8:	4912      	ldr	r1, [pc, #72]	; (802c044 <HTTP_UPSTest+0x114>)
 
-  802bffa:	f7fd fd2f 	bl	8029a5c <log_event_data>
 
- 		  }
 
- 		  if(res == -1)
 
-  802bffe:	b276      	sxtb	r6, r6
 
-  802c000:	1c73      	adds	r3, r6, #1
 
-  802c002:	d103      	bne.n	802c00c <HTTP_UPSTest+0xdc>
 
- 			  strcat(bufOut, "Тест не удалось запустить!");
 
-  802c004:	4910      	ldr	r1, [pc, #64]	; (802c048 <HTTP_UPSTest+0x118>)
 
-  802c006:	4620      	mov	r0, r4
 
-  802c008:	f7f5 fde0 	bl	8021bcc <strcat>
 
- 		  *lenBufOut = strlen(bufOut);
 
-  802c00c:	4620      	mov	r0, r4
 
-  802c00e:	f7f5 ff4f 	bl	8021eb0 <strlen>
 
-  802c012:	8028      	strh	r0, [r5, #0]
 
- 	  }
 
- }
 
-  802c014:	b00a      	add	sp, #40	; 0x28
 
-  802c016:	bd70      	pop	{r4, r5, r6, pc}
 
-  802c018:	08044669 	.word	0x08044669
 
-  802c01c:	08040a05 	.word	0x08040a05
 
-  802c020:	08044e49 	.word	0x08044e49
 
-  802c024:	08040a0a 	.word	0x08040a0a
 
-  802c028:	08040a11 	.word	0x08040a11
 
-  802c02c:	08040a30 	.word	0x08040a30
 
-  802c030:	08040a62 	.word	0x08040a62
 
-  802c034:	08040a95 	.word	0x08040a95
 
-  802c038:	08040b17 	.word	0x08040b17
 
-  802c03c:	20000b50 	.word	0x20000b50
 
-  802c040:	08040aa1 	.word	0x08040aa1
 
-  802c044:	08040aba 	.word	0x08040aba
 
-  802c048:	08040ae6 	.word	0x08040ae6
 
- 0802c04c <HTTP_UPSshutdown>:
 
- /**
 
-   * @brief  Выклюение UPS
 
-   */
 
- void HTTP_UPSshutdown(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut)
 
- {
 
-  802c04c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
 
-  802c050:	b09a      	sub	sp, #104	; 0x68
 
- 	  char *valueLenEnd = 0;
 
- 	  char tempValue[50];
 
- 	  char tempValue2[50];
 
- 	  int8_t res = 0;
 
- 	  memset(tempValue, 0, 50);
 
-  802c052:	2232      	movs	r2, #50	; 0x32
 
- /**
 
-   * @brief  Выклюение UPS
 
-   */
 
- void HTTP_UPSshutdown(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut)
 
- {
 
-  802c054:	4605      	mov	r5, r0
 
-  802c056:	460c      	mov	r4, r1
 
- 	  char *valueLenEnd = 0;
 
- 	  char tempValue[50];
 
- 	  char tempValue2[50];
 
- 	  int8_t res = 0;
 
- 	  memset(tempValue, 0, 50);
 
-  802c058:	4668      	mov	r0, sp
 
-  802c05a:	2100      	movs	r1, #0
 
- /**
 
-   * @brief  Выклюение UPS
 
-   */
 
- void HTTP_UPSshutdown(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut)
 
- {
 
-  802c05c:	461e      	mov	r6, r3
 
- 	  char *valueLenEnd = 0;
 
- 	  char tempValue[50];
 
- 	  char tempValue2[50];
 
- 	  int8_t res = 0;
 
- 	  memset(tempValue, 0, 50);
 
-  802c05e:	f7f5 fd4f 	bl	8021b00 <memset>
 
- 	  strcpy(bufOut, HTTP_200_OK);
 
-  802c062:	4940      	ldr	r1, [pc, #256]	; (802c164 <HTTP_UPSshutdown+0x118>)
 
-  802c064:	4620      	mov	r0, r4
 
-  802c066:	f7f5 fec5 	bl	8021df4 <strcpy>
 
- 	  value = strstr(bufIn, "func");
 
-  802c06a:	4628      	mov	r0, r5
 
-  802c06c:	493e      	ldr	r1, [pc, #248]	; (802c168 <HTTP_UPSshutdown+0x11c>)
 
-  802c06e:	f7f6 f99f 	bl	80223b0 <strstr>
 
- 	  valueLen = strpbrk(value, ":");
 
-  802c072:	493e      	ldr	r1, [pc, #248]	; (802c16c <HTTP_UPSshutdown+0x120>)
 
-  802c074:	f7f6 f806 	bl	8022084 <strpbrk>
 
-  802c078:	4605      	mov	r5, r0
 
- 	  strncpy(tempValue, (valueLen+1), (strlen(valueLen)-2));
 
-  802c07a:	f7f5 ff19 	bl	8021eb0 <strlen>
 
-  802c07e:	1c69      	adds	r1, r5, #1
 
-  802c080:	1e82      	subs	r2, r0, #2
 
-  802c082:	4668      	mov	r0, sp
 
-  802c084:	f7f5 ffcc 	bl	8022020 <strncpy>
 
- 	  if (strcmp(tempValue, "\"cancel\"") == 0){
 
-  802c088:	4668      	mov	r0, sp
 
-  802c08a:	4939      	ldr	r1, [pc, #228]	; (802c170 <HTTP_UPSshutdown+0x124>)
 
-  802c08c:	f7f5 fdc4 	bl	8021c18 <strcmp>
 
-  802c090:	b978      	cbnz	r0, 802c0b2 <HTTP_UPSshutdown+0x66>
 
- 		  res = ups_metac_service_pdu(ups_cancel_shut_down);
 
-  802c092:	2007      	movs	r0, #7
 
-  802c094:	f7fc ffe8 	bl	8029068 <ups_metac_service_pdu>
 
-  802c098:	b2c5      	uxtb	r5, r0
 
- 		  if(res == 1 || res == 0)
 
-  802c09a:	2d01      	cmp	r5, #1
 
-  802c09c:	d803      	bhi.n	802c0a6 <HTTP_UPSshutdown+0x5a>
 
- 			  strcat(bufOut, "Выключение ИБП отменено!");
 
-  802c09e:	4620      	mov	r0, r4
 
-  802c0a0:	4934      	ldr	r1, [pc, #208]	; (802c174 <HTTP_UPSshutdown+0x128>)
 
-  802c0a2:	f7f5 fd93 	bl	8021bcc <strcat>
 
- 		  if(res == -1)
 
-  802c0a6:	b26d      	sxtb	r5, r5
 
-  802c0a8:	1c68      	adds	r0, r5, #1
 
-  802c0aa:	d154      	bne.n	802c156 <HTTP_UPSshutdown+0x10a>
 
- 			  strcat(bufOut, "Выключение ИБП не удалось отменить!");
 
-  802c0ac:	4620      	mov	r0, r4
 
-  802c0ae:	4932      	ldr	r1, [pc, #200]	; (802c178 <HTTP_UPSshutdown+0x12c>)
 
-  802c0b0:	e04f      	b.n	802c152 <HTTP_UPSshutdown+0x106>
 
- 		  *lenBufOut = strlen(bufOut);
 
- 	  }
 
- 	  else if (strncmp(tempValue, "\"off\"", 5) == 0){
 
-  802c0b2:	4668      	mov	r0, sp
 
-  802c0b4:	4931      	ldr	r1, [pc, #196]	; (802c17c <HTTP_UPSshutdown+0x130>)
 
-  802c0b6:	2205      	movs	r2, #5
 
-  802c0b8:	f7f5 ff5c 	bl	8021f74 <strncmp>
 
-  802c0bc:	4605      	mov	r5, r0
 
-  802c0be:	2800      	cmp	r0, #0
 
-  802c0c0:	d14d      	bne.n	802c15e <HTTP_UPSshutdown+0x112>
 
- 		  value = strstr(tempValue, "after");
 
-  802c0c2:	492f      	ldr	r1, [pc, #188]	; (802c180 <HTTP_UPSshutdown+0x134>)
 
-  802c0c4:	4668      	mov	r0, sp
 
-  802c0c6:	f7f6 f973 	bl	80223b0 <strstr>
 
- 		  valueLen = strpbrk(value, ":");
 
-  802c0ca:	4928      	ldr	r1, [pc, #160]	; (802c16c <HTTP_UPSshutdown+0x120>)
 
- 		  if(res == -1)
 
- 			  strcat(bufOut, "Выключение ИБП не удалось отменить!");
 
- 		  *lenBufOut = strlen(bufOut);
 
- 	  }
 
- 	  else if (strncmp(tempValue, "\"off\"", 5) == 0){
 
- 		  value = strstr(tempValue, "after");
 
-  802c0cc:	4680      	mov	r8, r0
 
- 		  valueLen = strpbrk(value, ":");
 
-  802c0ce:	f7f5 ffd9 	bl	8022084 <strpbrk>
 
- 		  valueLenEnd = strpbrk(value, ",");
 
-  802c0d2:	492c      	ldr	r1, [pc, #176]	; (802c184 <HTTP_UPSshutdown+0x138>)
 
- 			  strcat(bufOut, "Выключение ИБП не удалось отменить!");
 
- 		  *lenBufOut = strlen(bufOut);
 
- 	  }
 
- 	  else if (strncmp(tempValue, "\"off\"", 5) == 0){
 
- 		  value = strstr(tempValue, "after");
 
- 		  valueLen = strpbrk(value, ":");
 
-  802c0d4:	4607      	mov	r7, r0
 
- 		  valueLenEnd = strpbrk(value, ",");
 
-  802c0d6:	4640      	mov	r0, r8
 
-  802c0d8:	f7f5 ffd4 	bl	8022084 <strpbrk>
 
- 		  memset(tempValue2, 0, 50);
 
-  802c0dc:	4629      	mov	r1, r5
 
-  802c0de:	2232      	movs	r2, #50	; 0x32
 
- 		  *lenBufOut = strlen(bufOut);
 
- 	  }
 
- 	  else if (strncmp(tempValue, "\"off\"", 5) == 0){
 
- 		  value = strstr(tempValue, "after");
 
- 		  valueLen = strpbrk(value, ":");
 
- 		  valueLenEnd = strpbrk(value, ",");
 
-  802c0e0:	4680      	mov	r8, r0
 
- 		  memset(tempValue2, 0, 50);
 
-  802c0e2:	a80d      	add	r0, sp, #52	; 0x34
 
-  802c0e4:	f7f5 fd0c 	bl	8021b00 <memset>
 
- 		  strncpy(tempValue2, (valueLen+2), (valueLenEnd - valueLen - 2));
 
-  802c0e8:	ebc7 0208 	rsb	r2, r7, r8
 
-  802c0ec:	3a02      	subs	r2, #2
 
-  802c0ee:	1cb9      	adds	r1, r7, #2
 
-  802c0f0:	a80d      	add	r0, sp, #52	; 0x34
 
-  802c0f2:	f7f5 ff95 	bl	8022020 <strncpy>
 
- 		  TimeParam = atoi(tempValue2);
 
-  802c0f6:	a80d      	add	r0, sp, #52	; 0x34
 
-  802c0f8:	f7f5 fbe2 	bl	80218c0 <atoi>
 
-  802c0fc:	4b22      	ldr	r3, [pc, #136]	; (802c188 <HTTP_UPSshutdown+0x13c>)
 
- 		  value = strstr(tempValue, "to");
 
-  802c0fe:	4923      	ldr	r1, [pc, #140]	; (802c18c <HTTP_UPSshutdown+0x140>)
 
- 		  value = strstr(tempValue, "after");
 
- 		  valueLen = strpbrk(value, ":");
 
- 		  valueLenEnd = strpbrk(value, ",");
 
- 		  memset(tempValue2, 0, 50);
 
- 		  strncpy(tempValue2, (valueLen+2), (valueLenEnd - valueLen - 2));
 
- 		  TimeParam = atoi(tempValue2);
 
-  802c100:	8018      	strh	r0, [r3, #0]
 
- 		  value = strstr(tempValue, "to");
 
-  802c102:	4668      	mov	r0, sp
 
-  802c104:	f7f6 f954 	bl	80223b0 <strstr>
 
- 		  valueLen = strpbrk(value, ":");
 
-  802c108:	4918      	ldr	r1, [pc, #96]	; (802c16c <HTTP_UPSshutdown+0x120>)
 
-  802c10a:	f7f5 ffbb 	bl	8022084 <strpbrk>
 
- 		  memset(tempValue2, 0, 50);
 
-  802c10e:	4629      	mov	r1, r5
 
-  802c110:	2232      	movs	r2, #50	; 0x32
 
- 		  valueLenEnd = strpbrk(value, ",");
 
- 		  memset(tempValue2, 0, 50);
 
- 		  strncpy(tempValue2, (valueLen+2), (valueLenEnd - valueLen - 2));
 
- 		  TimeParam = atoi(tempValue2);
 
- 		  value = strstr(tempValue, "to");
 
- 		  valueLen = strpbrk(value, ":");
 
-  802c112:	4607      	mov	r7, r0
 
- 		  memset(tempValue2, 0, 50);
 
-  802c114:	a80d      	add	r0, sp, #52	; 0x34
 
-  802c116:	f7f5 fcf3 	bl	8021b00 <memset>
 
- 		  strncpy(tempValue2, (valueLen+2), (strlen(valueLen) - 2));
 
-  802c11a:	4638      	mov	r0, r7
 
-  802c11c:	f7f5 fec8 	bl	8021eb0 <strlen>
 
-  802c120:	1cb9      	adds	r1, r7, #2
 
-  802c122:	1e82      	subs	r2, r0, #2
 
-  802c124:	a80d      	add	r0, sp, #52	; 0x34
 
-  802c126:	f7f5 ff7b 	bl	8022020 <strncpy>
 
- 		  TimeParam2 = atoi(tempValue2);
 
-  802c12a:	a80d      	add	r0, sp, #52	; 0x34
 
-  802c12c:	f7f5 fbc8 	bl	80218c0 <atoi>
 
-  802c130:	4b17      	ldr	r3, [pc, #92]	; (802c190 <HTTP_UPSshutdown+0x144>)
 
-  802c132:	8018      	strh	r0, [r3, #0]
 
- 		  res = ups_metac_service_pdu(ups_shutdown_restore);
 
-  802c134:	2006      	movs	r0, #6
 
-  802c136:	f7fc ff97 	bl	8029068 <ups_metac_service_pdu>
 
-  802c13a:	b2c5      	uxtb	r5, r0
 
- 		  if(res == 1 || res == 0)
 
-  802c13c:	2d01      	cmp	r5, #1
 
-  802c13e:	d803      	bhi.n	802c148 <HTTP_UPSshutdown+0xfc>
 
- 			  strcat(bufOut, "Перезагрузка ИБП!");
 
-  802c140:	4620      	mov	r0, r4
 
-  802c142:	4914      	ldr	r1, [pc, #80]	; (802c194 <HTTP_UPSshutdown+0x148>)
 
-  802c144:	f7f5 fd42 	bl	8021bcc <strcat>
 
- 		  if(res == -1)
 
-  802c148:	b26d      	sxtb	r5, r5
 
-  802c14a:	1c69      	adds	r1, r5, #1
 
-  802c14c:	d103      	bne.n	802c156 <HTTP_UPSshutdown+0x10a>
 
- 			  strcat(bufOut, "Отмена перезагрузки ИБП!");
 
-  802c14e:	4912      	ldr	r1, [pc, #72]	; (802c198 <HTTP_UPSshutdown+0x14c>)
 
-  802c150:	4620      	mov	r0, r4
 
-  802c152:	f7f5 fd3b 	bl	8021bcc <strcat>
 
- 		  *lenBufOut = strlen(bufOut);
 
-  802c156:	4620      	mov	r0, r4
 
-  802c158:	f7f5 feaa 	bl	8021eb0 <strlen>
 
-  802c15c:	8030      	strh	r0, [r6, #0]
 
- 	  }
 
- }
 
-  802c15e:	b01a      	add	sp, #104	; 0x68
 
-  802c160:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 
-  802c164:	08044669 	.word	0x08044669
 
-  802c168:	08040a05 	.word	0x08040a05
 
-  802c16c:	08044e49 	.word	0x08044e49
 
-  802c170:	08040b1e 	.word	0x08040b1e
 
-  802c174:	08040b27 	.word	0x08040b27
 
-  802c178:	08040b55 	.word	0x08040b55
 
-  802c17c:	08040b97 	.word	0x08040b97
 
-  802c180:	08040b9d 	.word	0x08040b9d
 
-  802c184:	08039b85 	.word	0x08039b85
 
-  802c188:	20000b50 	.word	0x20000b50
 
-  802c18c:	08040ba3 	.word	0x08040ba3
 
-  802c190:	20000b1a 	.word	0x20000b1a
 
-  802c194:	08040ba6 	.word	0x08040ba6
 
-  802c198:	08040bc7 	.word	0x08040bc7
 
- 0802c19c <HTTP_ConfirmBootPwd>:
 
- /**
 
-   * @brief  Проверка пароля для перехода в режим bootloader
 
-   * @retval None
 
-   */
 
- void HTTP_ConfirmBootPwd(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut)
 
- {
 
-  802c19c:	b500      	push	{lr}
 
-  802c19e:	b093      	sub	sp, #76	; 0x4c
 
-  802c1a0:	4601      	mov	r1, r0
 
-   char tempStr[50];
 
-   strncpy(tempStr, bufIn, 50);
 
-  802c1a2:	2232      	movs	r2, #50	; 0x32
 
-  802c1a4:	a805      	add	r0, sp, #20
 
-  802c1a6:	f7f5 ff3b 	bl	8022020 <strncpy>
 
-   char value[20];
 
-   uint8_t valueLen;
 
-   
 
-   memset(value, 0, 20);
 
-  802c1aa:	4668      	mov	r0, sp
 
-  802c1ac:	2100      	movs	r1, #0
 
-  802c1ae:	2214      	movs	r2, #20
 
-  802c1b0:	f7f5 fca6 	bl	8021b00 <memset>
 
- 	//if (strcmp(BOOTLOADER_PASWORD, value) == 0)
 
- 	{  
 
- 	 // *bufOut = '1';
 
- 	  /* Запускаем задачу отложенной перезагрузки. Контроллер должен успеть
 
-        отправить ответ серверу о статусе пароля */
 
- 	  HTTP_StartResetTask(true); 
 
-  802c1b4:	2001      	movs	r0, #1
 
-  802c1b6:	f001 fe37 	bl	802de28 <HTTP_StartResetTask>
 
- /*	else
 
- 	  *bufOut = '0';*/
 
- 	
 
- 	//*lenBufOut = 1;
 
-   }
 
- }
 
-  802c1ba:	b013      	add	sp, #76	; 0x4c
 
-  802c1bc:	bd00      	pop	{pc}
 
-  802c1be:	0000      	movs	r0, r0
 
- 0802c1c0 <HTTP_LOGIN>:
 
-     /* Wrong login or pass, return */
 
-     return SEND_REQUIRED_NO;
 
- }
 
- void HTTP_LOGIN(char *bufOut, uint16_t *lenBufOut)
 
- {
 
-  802c1c0:	b530      	push	{r4, r5, lr}
 
-  802c1c2:	b093      	sub	sp, #76	; 0x4c
 
-  802c1c4:	4604      	mov	r4, r0
 
-  802c1c6:	460d      	mov	r5, r1
 
- 	char tempStr[50];
 
- 	uint8_t valueLen;
 
- 	char WebLogin[MAX_WEB_LOGIN_LEN];
 
- 	GetUserLogin(ADMIN, WebLogin, &valueLen);
 
-  802c1c8:	2000      	movs	r0, #0
 
-  802c1ca:	a902      	add	r1, sp, #8
 
-  802c1cc:	f10d 0207 	add.w	r2, sp, #7
 
-  802c1d0:	f7fb fe0a 	bl	8027de8 <GetUserLogin>
 
- 	memset(tempStr, 0, 50);
 
-  802c1d4:	2100      	movs	r1, #0
 
-  802c1d6:	2232      	movs	r2, #50	; 0x32
 
-  802c1d8:	a805      	add	r0, sp, #20
 
-  802c1da:	f7f5 fc91 	bl	8021b00 <memset>
 
- 	/* TODO replace global flag with user-pass-cookie */
 
- 	Authenticated = true;
 
-  802c1de:	4b1b      	ldr	r3, [pc, #108]	; (802c24c <HTTP_LOGIN+0x8c>)
 
-  802c1e0:	2201      	movs	r2, #1
 
-  802c1e2:	701a      	strb	r2, [r3, #0]
 
- 	/* Generate cookie */
 
- 	sprintf(tempStr, "%X", (unsigned int)GetRandomNumber());
 
-  802c1e4:	f7f9 ff72 	bl	80260cc <GetRandomNumber>
 
-  802c1e8:	4919      	ldr	r1, [pc, #100]	; (802c250 <HTTP_LOGIN+0x90>)
 
-  802c1ea:	4602      	mov	r2, r0
 
-  802c1ec:	a805      	add	r0, sp, #20
 
-  802c1ee:	f7fb fb11 	bl	8027814 <tfp_sprintf>
 
- /**
 
-   * @brief Установка Cookie пользователя
 
-   */
 
- static void HTTP_SetUserCookie(char *str, uint8_t user_id)
 
- {
 
-     strcpy(users[user_id].cookie, str);
 
-  802c1f2:	a905      	add	r1, sp, #20
 
-  802c1f4:	4817      	ldr	r0, [pc, #92]	; (802c254 <HTTP_LOGIN+0x94>)
 
-  802c1f6:	f7f5 fdfd 	bl	8021df4 <strcpy>
 
- 	sprintf(tempStr, "%X", (unsigned int)GetRandomNumber());
 
- 	/* Set users cookie */
 
- 	HTTP_SetUserCookie(tempStr, ADMIN);
 
- 	HTTP_UpdateUserLoginTime(ADMIN);
 
-  802c1fa:	2000      	movs	r0, #0
 
-  802c1fc:	f7ff fcc2 	bl	802bb84 <HTTP_UpdateUserLoginTime>
 
- 	/* Send login and cookie back */
 
- 	strcpy(bufOut, "HTTP/1.0 200 OK\r\nContent-Type:text/html\r\nSet-Cookie: uname=");
 
-  802c200:	4915      	ldr	r1, [pc, #84]	; (802c258 <HTTP_LOGIN+0x98>)
 
-  802c202:	4620      	mov	r0, r4
 
-  802c204:	f7f5 fdf6 	bl	8021df4 <strcpy>
 
- 	strcat(bufOut, WebLogin);
 
-  802c208:	a902      	add	r1, sp, #8
 
-  802c20a:	4620      	mov	r0, r4
 
-  802c20c:	f7f5 fcde 	bl	8021bcc <strcat>
 
- 	strcat(bufOut, "\r\nSet-Cookie: id=");
 
-  802c210:	4912      	ldr	r1, [pc, #72]	; (802c25c <HTTP_LOGIN+0x9c>)
 
-  802c212:	4620      	mov	r0, r4
 
-  802c214:	f7f5 fcda 	bl	8021bcc <strcat>
 
- 	strcat(bufOut, tempStr);
 
-  802c218:	a905      	add	r1, sp, #20
 
-  802c21a:	4620      	mov	r0, r4
 
-  802c21c:	f7f5 fcd6 	bl	8021bcc <strcat>
 
- 	strcat(bufOut, "\r\nSet-Cookie: role=0");
 
-  802c220:	490f      	ldr	r1, [pc, #60]	; (802c260 <HTTP_LOGIN+0xa0>)
 
-  802c222:	4620      	mov	r0, r4
 
-  802c224:	f7f5 fcd2 	bl	8021bcc <strcat>
 
- 	strcat(bufOut, "\r\nSet-Cookie: auth=0");
 
-  802c228:	490e      	ldr	r1, [pc, #56]	; (802c264 <HTTP_LOGIN+0xa4>)
 
-  802c22a:	4620      	mov	r0, r4
 
-  802c22c:	f7f5 fcce 	bl	8021bcc <strcat>
 
- 	strcat(bufOut, "\r\n\r\n");
 
-  802c230:	490d      	ldr	r1, [pc, #52]	; (802c268 <HTTP_LOGIN+0xa8>)
 
-  802c232:	4620      	mov	r0, r4
 
-  802c234:	f7f5 fcca 	bl	8021bcc <strcat>
 
- 	strcat(bufOut,"<!DOCTYPE html><html lang=""><head><meta http-equiv=\"refresh\" content=\"0;url=/index.html\"/></head></html>\r\n\r\n");
 
-  802c238:	490c      	ldr	r1, [pc, #48]	; (802c26c <HTTP_LOGIN+0xac>)
 
-  802c23a:	4620      	mov	r0, r4
 
-  802c23c:	f7f5 fcc6 	bl	8021bcc <strcat>
 
- 	*lenBufOut = strlen(bufOut);
 
-  802c240:	4620      	mov	r0, r4
 
-  802c242:	f7f5 fe35 	bl	8021eb0 <strlen>
 
-  802c246:	8028      	strh	r0, [r5, #0]
 
- }
 
-  802c248:	b013      	add	sp, #76	; 0x4c
 
-  802c24a:	bd30      	pop	{r4, r5, pc}
 
-  802c24c:	20000d23 	.word	0x20000d23
 
-  802c250:	080409f6 	.word	0x080409f6
 
-  802c254:	2000e23c 	.word	0x2000e23c
 
-  802c258:	08040bf5 	.word	0x08040bf5
 
-  802c25c:	08040c31 	.word	0x08040c31
 
-  802c260:	08040c43 	.word	0x08040c43
 
-  802c264:	08040c58 	.word	0x08040c58
 
-  802c268:	08041130 	.word	0x08041130
 
-  802c26c:	08040c6d 	.word	0x08040c6d
 
- 0802c270 <GetParamValue>:
 
- /**
 
-   * @brief  
 
-   * @retval None
 
-   */
 
- uint8_t GetParamValue(char *inStr, char *paramName, char *paramValue, uint8_t *paramLen)
 
- {
 
-  802c270:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
 
-  802c274:	4690      	mov	r8, r2
 
-  802c276:	461f      	mov	r7, r3
 
-   char *beginValue = 0;
 
-   char *endValue = 0;
 
-   int  len = 0;
 
-   char *strPtr = 0;
 
-   
 
-   strPtr = strstr(inStr, paramName);
 
-  802c278:	f7f6 f89a 	bl	80223b0 <strstr>
 
-   
 
-   if (strPtr != 0)
 
-  802c27c:	4605      	mov	r5, r0
 
-  802c27e:	b1e0      	cbz	r0, 802c2ba <GetParamValue+0x4a>
 
-   {
 
-     beginValue = strpbrk(strPtr,"=");
 
-  802c280:	490f      	ldr	r1, [pc, #60]	; (802c2c0 <GetParamValue+0x50>)
 
-  802c282:	f7f5 feff 	bl	8022084 <strpbrk>
 
-     endValue = strpbrk(strPtr,"&");
 
-  802c286:	490f      	ldr	r1, [pc, #60]	; (802c2c4 <GetParamValue+0x54>)
 
-   
 
-   strPtr = strstr(inStr, paramName);
 
-   
 
-   if (strPtr != 0)
 
-   {
 
-     beginValue = strpbrk(strPtr,"=");
 
-  802c288:	4606      	mov	r6, r0
 
-     endValue = strpbrk(strPtr,"&");
 
-  802c28a:	4628      	mov	r0, r5
 
-  802c28c:	f7f5 fefa 	bl	8022084 <strpbrk>
 
-     if (endValue == 0)
 
-  802c290:	4604      	mov	r4, r0
 
-  802c292:	b920      	cbnz	r0, 802c29e <GetParamValue+0x2e>
 
-       endValue = strpbrk(strPtr," ");
 
-  802c294:	4628      	mov	r0, r5
 
-  802c296:	490c      	ldr	r1, [pc, #48]	; (802c2c8 <GetParamValue+0x58>)
 
-  802c298:	f7f5 fef4 	bl	8022084 <strpbrk>
 
-  802c29c:	4604      	mov	r4, r0
 
-     len = endValue - beginValue - 1;
 
-  802c29e:	1ba5      	subs	r5, r4, r6
 
-  802c2a0:	3d01      	subs	r5, #1
 
-     strncpy(paramValue, beginValue + 1, len);
 
-  802c2a2:	4640      	mov	r0, r8
 
-  802c2a4:	1c71      	adds	r1, r6, #1
 
-  802c2a6:	462a      	mov	r2, r5
 
-  802c2a8:	f7f5 feba 	bl	8022020 <strncpy>
 
-     *endValue = '0';
 
-  802c2ac:	2330      	movs	r3, #48	; 0x30
 
-  802c2ae:	7023      	strb	r3, [r4, #0]
 
-     *beginValue = '0';
 
- 	*paramLen = len;
 
- 	return 1;
 
-  802c2b0:	2001      	movs	r0, #1
 
-     if (endValue == 0)
 
-       endValue = strpbrk(strPtr," ");
 
-     len = endValue - beginValue - 1;
 
-     strncpy(paramValue, beginValue + 1, len);
 
-     *endValue = '0';
 
-     *beginValue = '0';
 
-  802c2b2:	7033      	strb	r3, [r6, #0]
 
- 	*paramLen = len;
 
-  802c2b4:	703d      	strb	r5, [r7, #0]
 
- 	return 1;
 
-  802c2b6:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 
-   }
 
-   else
 
-   {	
 
- 	*paramLen = 0;
 
-  802c2ba:	7038      	strb	r0, [r7, #0]
 
- 	return 0;
 
-   }
 
- }
 
-  802c2bc:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 
-  802c2c0:	08040de3 	.word	0x08040de3
 
-  802c2c4:	08040cd9 	.word	0x08040cd9
 
-  802c2c8:	08039ade 	.word	0x08039ade
 
- 0802c2cc <HTTP_ConfirmWebPwd>:
 
- /**
 
-   * @brief  Проверка пароля для входа в Web
 
-   * @retval None
 
-   */
 
- int HTTP_ConfirmWebPwd(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut)
 
- {
 
-  802c2cc:	b5f0      	push	{r4, r5, r6, r7, lr}
 
-  802c2ce:	b0a9      	sub	sp, #164	; 0xa4
 
-  802c2d0:	4604      	mov	r4, r0
 
- 	  char *strPtr = 0;
 
- 	  char WebPassword[MAX_WEB_PASSWD_LEN];
 
- 	  char WebLogin[MAX_WEB_LOGIN_LEN];
 
- 	  char buf[40];
 
- 	  memset(login, 0, 20);
 
-  802c2d2:	2214      	movs	r2, #20
 
- /**
 
-   * @brief  Проверка пароля для входа в Web
 
-   * @retval None
 
-   */
 
- int HTTP_ConfirmWebPwd(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut)
 
- {
 
-  802c2d4:	460d      	mov	r5, r1
 
- 	  char *strPtr = 0;
 
- 	  char WebPassword[MAX_WEB_PASSWD_LEN];
 
- 	  char WebLogin[MAX_WEB_LOGIN_LEN];
 
- 	  char buf[40];
 
- 	  memset(login, 0, 20);
 
-  802c2d6:	a807      	add	r0, sp, #28
 
-  802c2d8:	2100      	movs	r1, #0
 
- /**
 
-   * @brief  Проверка пароля для входа в Web
 
-   * @retval None
 
-   */
 
- int HTTP_ConfirmWebPwd(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut)
 
- {
 
-  802c2da:	461f      	mov	r7, r3
 
- 	  char *strPtr = 0;
 
- 	  char WebPassword[MAX_WEB_PASSWD_LEN];
 
- 	  char WebLogin[MAX_WEB_LOGIN_LEN];
 
- 	  char buf[40];
 
- 	  memset(login, 0, 20);
 
-  802c2dc:	f7f5 fc10 	bl	8021b00 <memset>
 
- 	  memset(password, 0, 20);
 
-  802c2e0:	2100      	movs	r1, #0
 
-  802c2e2:	2214      	movs	r2, #20
 
-  802c2e4:	a80c      	add	r0, sp, #48	; 0x30
 
-  802c2e6:	f7f5 fc0b 	bl	8021b00 <memset>
 
- 	  memset(tempStr, 0, 50);
 
-  802c2ea:	2100      	movs	r1, #0
 
-  802c2ec:	2232      	movs	r2, #50	; 0x32
 
-  802c2ee:	a81b      	add	r0, sp, #108	; 0x6c
 
-  802c2f0:	f7f5 fc06 	bl	8021b00 <memset>
 
- 	  /* Get first 50 bytes of string */
 
- 	  strncpy(tempStr, bufIn, 49);
 
-  802c2f4:	2231      	movs	r2, #49	; 0x31
 
-  802c2f6:	4621      	mov	r1, r4
 
-  802c2f8:	a81b      	add	r0, sp, #108	; 0x6c
 
-  802c2fa:	f7f5 fe91 	bl	8022020 <strncpy>
 
- 	  /* Add " " to the string in order GetParamValue() can be able to parse the param */
 
- 	  strcat(tempStr, " ");
 
- 	  if (GetParamValue(tempStr, "login=", login, &valueLen) &&
 
-  802c2fe:	f10d 0603 	add.w	r6, sp, #3
 
- 	  /* Get first 50 bytes of string */
 
- 	  strncpy(tempStr, bufIn, 49);
 
- 	  /* Add " " to the string in order GetParamValue() can be able to parse the param */
 
- 	  strcat(tempStr, " ");
 
-  802c302:	4941      	ldr	r1, [pc, #260]	; (802c408 <HTTP_ConfirmWebPwd+0x13c>)
 
-  802c304:	a81b      	add	r0, sp, #108	; 0x6c
 
-  802c306:	f7f5 fc61 	bl	8021bcc <strcat>
 
- 	  if (GetParamValue(tempStr, "login=", login, &valueLen) &&
 
-  802c30a:	a81b      	add	r0, sp, #108	; 0x6c
 
-  802c30c:	493f      	ldr	r1, [pc, #252]	; (802c40c <HTTP_ConfirmWebPwd+0x140>)
 
-  802c30e:	aa07      	add	r2, sp, #28
 
-  802c310:	4633      	mov	r3, r6
 
-  802c312:	f7ff ffad 	bl	802c270 <GetParamValue>
 
-  802c316:	b920      	cbnz	r0, 802c322 <HTTP_ConfirmWebPwd+0x56>
 
-       }
 
-     }
 
-     /* No valid login and pass found */
 
-     /* TODO replace global flag with user-pass-cookie*/
 
-     Authenticated = false;
 
-  802c318:	4b3d      	ldr	r3, [pc, #244]	; (802c410 <HTTP_ConfirmWebPwd+0x144>)
 
-  802c31a:	2200      	movs	r2, #0
 
-  802c31c:	701a      	strb	r2, [r3, #0]
 
-     /* Wrong login or pass, return */
 
-     return SEND_REQUIRED_NO;
 
-  802c31e:	2001      	movs	r0, #1
 
-  802c320:	e070      	b.n	802c404 <HTTP_ConfirmWebPwd+0x138>
 
- 	  /* Add " " to the string in order GetParamValue() can be able to parse the param */
 
- 	  strcat(tempStr, " ");
 
- 	  if (GetParamValue(tempStr, "login=", login, &valueLen) &&
 
- 	      GetParamValue(tempStr, "password=", password, &valueLen))
 
-  802c322:	a81b      	add	r0, sp, #108	; 0x6c
 
-  802c324:	493b      	ldr	r1, [pc, #236]	; (802c414 <HTTP_ConfirmWebPwd+0x148>)
 
-  802c326:	aa0c      	add	r2, sp, #48	; 0x30
 
-  802c328:	4633      	mov	r3, r6
 
-  802c32a:	f7ff ffa1 	bl	802c270 <GetParamValue>
 
- 	  strncpy(tempStr, bufIn, 49);
 
- 	  /* Add " " to the string in order GetParamValue() can be able to parse the param */
 
- 	  strcat(tempStr, " ");
 
- 	  if (GetParamValue(tempStr, "login=", login, &valueLen) &&
 
-  802c32e:	2800      	cmp	r0, #0
 
-  802c330:	d0f2      	beq.n	802c318 <HTTP_ConfirmWebPwd+0x4c>
 
-  802c332:	2400      	movs	r4, #0
 
- 	      GetParamValue(tempStr, "password=", password, &valueLen))
 
- 	  {
 
- 	      for (user_id = 0; user_id < MAX_WEB_USERS; user_id++) {
 
- 	        GetUserLogin(user_id, WebLogin, &valueLen);
 
-  802c334:	4620      	mov	r0, r4
 
-  802c336:	a904      	add	r1, sp, #16
 
-  802c338:	4632      	mov	r2, r6
 
-  802c33a:	f7fb fd55 	bl	8027de8 <GetUserLogin>
 
- 	        GetUserPassword(user_id, WebPassword, &valueLen);
 
-  802c33e:	4620      	mov	r0, r4
 
-  802c340:	a901      	add	r1, sp, #4
 
-  802c342:	4632      	mov	r2, r6
 
-  802c344:	f7fb fd66 	bl	8027e14 <GetUserPassword>
 
- 	        /* Check login and password */
 
- 	        if ((strncmp(WebLogin, login, MAX_WEB_LOGIN_LEN) == 0) &&
 
-  802c348:	a804      	add	r0, sp, #16
 
-  802c34a:	a907      	add	r1, sp, #28
 
-  802c34c:	220b      	movs	r2, #11
 
-  802c34e:	f7f5 fe11 	bl	8021f74 <strncmp>
 
-  802c352:	2800      	cmp	r0, #0
 
-  802c354:	d151      	bne.n	802c3fa <HTTP_ConfirmWebPwd+0x12e>
 
- 	            (strncmp(WebPassword, password, MAX_WEB_PASSWD_LEN) == 0)) {
 
-  802c356:	a801      	add	r0, sp, #4
 
-  802c358:	a90c      	add	r1, sp, #48	; 0x30
 
-  802c35a:	220b      	movs	r2, #11
 
-  802c35c:	f7f5 fe0a 	bl	8021f74 <strncmp>
 
- 	        GetUserLogin(user_id, WebLogin, &valueLen);
 
- 	        GetUserPassword(user_id, WebPassword, &valueLen);
 
- 	        /* Check login and password */
 
- 	        if ((strncmp(WebLogin, login, MAX_WEB_LOGIN_LEN) == 0) &&
 
-  802c360:	2800      	cmp	r0, #0
 
-  802c362:	d14a      	bne.n	802c3fa <HTTP_ConfirmWebPwd+0x12e>
 
- 	            if (user_id >= 1) {
 
- 	            }
 
-             /* TODO replace global flag with user-pass-cookie */
 
-             Authenticated = true;
 
-  802c364:	4b2a      	ldr	r3, [pc, #168]	; (802c410 <HTTP_ConfirmWebPwd+0x144>)
 
-  802c366:	2201      	movs	r2, #1
 
-  802c368:	701a      	strb	r2, [r3, #0]
 
-             /* Generate cookie */
 
-             sprintf(tempStr, "%X", (unsigned int)GetRandomNumber());
 
-  802c36a:	f7f9 feaf 	bl	80260cc <GetRandomNumber>
 
-  802c36e:	492a      	ldr	r1, [pc, #168]	; (802c418 <HTTP_ConfirmWebPwd+0x14c>)
 
-  802c370:	4602      	mov	r2, r0
 
-  802c372:	a81b      	add	r0, sp, #108	; 0x6c
 
-  802c374:	f7fb fa4e 	bl	8027814 <tfp_sprintf>
 
- /**
 
-   * @brief Установка Cookie пользователя
 
-   */
 
- static void HTTP_SetUserCookie(char *str, uint8_t user_id)
 
- {
 
-     strcpy(users[user_id].cookie, str);
 
-  802c378:	4b28      	ldr	r3, [pc, #160]	; (802c41c <HTTP_ConfirmWebPwd+0x150>)
 
-  802c37a:	2014      	movs	r0, #20
 
-  802c37c:	fb00 3004 	mla	r0, r0, r4, r3
 
-  802c380:	a91b      	add	r1, sp, #108	; 0x6c
 
-  802c382:	f7f5 fd37 	bl	8021df4 <strcpy>
 
-             sprintf(tempStr, "%X", (unsigned int)GetRandomNumber());
 
-             /* Set users cookie */
 
-             HTTP_SetUserCookie(tempStr, user_id);
 
-             HTTP_UpdateUserLoginTime(user_id);
 
-  802c386:	4620      	mov	r0, r4
 
-  802c388:	f7ff fbfc 	bl	802bb84 <HTTP_UpdateUserLoginTime>
 
-             /* Send login and cookie back */
 
-             strcpy(bufOut, "HTTP/1.0 200 OK\r\nContent-Type:text/html\r\nSet-Cookie: uname=");
 
-  802c38c:	4924      	ldr	r1, [pc, #144]	; (802c420 <HTTP_ConfirmWebPwd+0x154>)
 
-  802c38e:	4628      	mov	r0, r5
 
-  802c390:	f7f5 fd30 	bl	8021df4 <strcpy>
 
-             strcat(bufOut, WebLogin);
 
-  802c394:	a904      	add	r1, sp, #16
 
-  802c396:	4628      	mov	r0, r5
 
-  802c398:	f7f5 fc18 	bl	8021bcc <strcat>
 
-             strcat(bufOut, "\r\nSet-Cookie: id=");
 
-  802c39c:	4921      	ldr	r1, [pc, #132]	; (802c424 <HTTP_ConfirmWebPwd+0x158>)
 
-  802c39e:	4628      	mov	r0, r5
 
-  802c3a0:	f7f5 fc14 	bl	8021bcc <strcat>
 
-             strcat(bufOut, tempStr);
 
-  802c3a4:	a91b      	add	r1, sp, #108	; 0x6c
 
-  802c3a6:	4628      	mov	r0, r5
 
-  802c3a8:	f7f5 fc10 	bl	8021bcc <strcat>
 
-             sprintf(tempStr, "%d", user_id);
 
-  802c3ac:	4622      	mov	r2, r4
 
-  802c3ae:	491e      	ldr	r1, [pc, #120]	; (802c428 <HTTP_ConfirmWebPwd+0x15c>)
 
-  802c3b0:	a81b      	add	r0, sp, #108	; 0x6c
 
-  802c3b2:	f7fb fa2f 	bl	8027814 <tfp_sprintf>
 
-             strcat(bufOut, "\r\nSet-Cookie: role=");
 
-  802c3b6:	491d      	ldr	r1, [pc, #116]	; (802c42c <HTTP_ConfirmWebPwd+0x160>)
 
-  802c3b8:	4628      	mov	r0, r5
 
-  802c3ba:	f7f5 fc07 	bl	8021bcc <strcat>
 
-             strcat(bufOut, tempStr);
 
-  802c3be:	a91b      	add	r1, sp, #108	; 0x6c
 
-  802c3c0:	4628      	mov	r0, r5
 
-  802c3c2:	f7f5 fc03 	bl	8021bcc <strcat>
 
-             strcat(bufOut, "\r\n\r\n");
 
-  802c3c6:	491a      	ldr	r1, [pc, #104]	; (802c430 <HTTP_ConfirmWebPwd+0x164>)
 
-  802c3c8:	4628      	mov	r0, r5
 
-  802c3ca:	f7f5 fbff 	bl	8021bcc <strcat>
 
-             strcat(bufOut,"<!DOCTYPE html><html lang=""><head><meta http-equiv=\"refresh\" content=\"0;url=/index.html\"/></head></html>\r\n\r\n");
 
-  802c3ce:	4919      	ldr	r1, [pc, #100]	; (802c434 <HTTP_ConfirmWebPwd+0x168>)
 
-  802c3d0:	4628      	mov	r0, r5
 
-  802c3d2:	f7f5 fbfb 	bl	8021bcc <strcat>
 
-             *lenBufOut = strlen(bufOut);
 
-  802c3d6:	4628      	mov	r0, r5
 
-  802c3d8:	f7f5 fd6a 	bl	8021eb0 <strlen>
 
-             switch (user_id) {
 
-                 case 0:
 
-                     snprintf(buf, sizeof(buf), "Администратор");
 
-                     break;
 
-                 case 1:
 
-                     snprintf(buf, sizeof(buf), "Пользователь");
 
-  802c3dc:	2128      	movs	r1, #40	; 0x28
 
-             strcat(bufOut, "\r\n\r\n");
 
-             strcat(bufOut,"<!DOCTYPE html><html lang=""><head><meta http-equiv=\"refresh\" content=\"0;url=/index.html\"/></head></html>\r\n\r\n");
 
-             *lenBufOut = strlen(bufOut);
 
-             switch (user_id) {
 
-  802c3de:	2c01      	cmp	r4, #1
 
-                 case 0:
 
-                     snprintf(buf, sizeof(buf), "Администратор");
 
-  802c3e0:	bf14      	ite	ne
 
-  802c3e2:	4a15      	ldrne	r2, [pc, #84]	; (802c438 <HTTP_ConfirmWebPwd+0x16c>)
 
-                     break;
 
-                 case 1:
 
-                     snprintf(buf, sizeof(buf), "Пользователь");
 
-  802c3e4:	4a15      	ldreq	r2, [pc, #84]	; (802c43c <HTTP_ConfirmWebPwd+0x170>)
 
-             strcat(bufOut, "\r\nSet-Cookie: role=");
 
-             strcat(bufOut, tempStr);
 
-             strcat(bufOut, "\r\n\r\n");
 
-             strcat(bufOut,"<!DOCTYPE html><html lang=""><head><meta http-equiv=\"refresh\" content=\"0;url=/index.html\"/></head></html>\r\n\r\n");
 
-             *lenBufOut = strlen(bufOut);
 
-  802c3e6:	8038      	strh	r0, [r7, #0]
 
-             switch (user_id) {
 
-                 case 0:
 
-                     snprintf(buf, sizeof(buf), "Администратор");
 
-                     break;
 
-                 case 1:
 
-                     snprintf(buf, sizeof(buf), "Пользователь");
 
-  802c3e8:	a811      	add	r0, sp, #68	; 0x44
 
-  802c3ea:	f7fb f9f5 	bl	80277d8 <tfp_snprintf>
 
-                 default:
 
-                     snprintf(buf, sizeof(buf), "", login);
 
-                     break;
 
-             }
 
-             log_event_data(LOG_LOGIN, buf);
 
-  802c3ee:	2005      	movs	r0, #5
 
-  802c3f0:	a911      	add	r1, sp, #68	; 0x44
 
-  802c3f2:	f7fd fb33 	bl	8029a5c <log_event_data>
 
-             /* Запускаем задачу-таймер логаута. */
 
-             /* TODO отправить ответ серверу о статусе пароля */
 
-             return SEND_REQUIRED_YES;
 
-  802c3f6:	2000      	movs	r0, #0
 
-  802c3f8:	e004      	b.n	802c404 <HTTP_ConfirmWebPwd+0x138>
 
- 	  strcat(tempStr, " ");
 
- 	  if (GetParamValue(tempStr, "login=", login, &valueLen) &&
 
- 	      GetParamValue(tempStr, "password=", password, &valueLen))
 
- 	  {
 
- 	      for (user_id = 0; user_id < MAX_WEB_USERS; user_id++) {
 
-  802c3fa:	3401      	adds	r4, #1
 
-  802c3fc:	b2e4      	uxtb	r4, r4
 
-  802c3fe:	2c02      	cmp	r4, #2
 
-  802c400:	d08a      	beq.n	802c318 <HTTP_ConfirmWebPwd+0x4c>
 
-  802c402:	e797      	b.n	802c334 <HTTP_ConfirmWebPwd+0x68>
 
-     /* TODO replace global flag with user-pass-cookie*/
 
-     Authenticated = false;
 
-     /* Wrong login or pass, return */
 
-     return SEND_REQUIRED_NO;
 
- }
 
-  802c404:	b029      	add	sp, #164	; 0xa4
 
-  802c406:	bdf0      	pop	{r4, r5, r6, r7, pc}
 
-  802c408:	08039ade 	.word	0x08039ade
 
-  802c40c:	08040cdb 	.word	0x08040cdb
 
-  802c410:	20000d23 	.word	0x20000d23
 
-  802c414:	08040ce2 	.word	0x08040ce2
 
-  802c418:	080409f6 	.word	0x080409f6
 
-  802c41c:	2000e23c 	.word	0x2000e23c
 
-  802c420:	08040bf5 	.word	0x08040bf5
 
-  802c424:	08040c31 	.word	0x08040c31
 
-  802c428:	080399a9 	.word	0x080399a9
 
-  802c42c:	08040cec 	.word	0x08040cec
 
-  802c430:	08041130 	.word	0x08041130
 
-  802c434:	08040c6d 	.word	0x08040c6d
 
-  802c438:	08039ab8 	.word	0x08039ab8
 
-  802c43c:	08040d00 	.word	0x08040d00
 
- 0802c440 <HTTP_SetInfo>:
 
- /**
 
-   * @brief  
 
-   * @retval None
 
-   */
 
- void HTTP_SetInfo(char *buf, uint16_t lenBuf)
 
- {
 
-  802c440:	b530      	push	{r4, r5, lr}
 
-   uint8_t valueLen = 0;
 
-  802c442:	2400      	movs	r4, #0
 
- /**
 
-   * @brief  
 
-   * @retval None
 
-   */
 
- void HTTP_SetInfo(char *buf, uint16_t lenBuf)
 
- {
 
-  802c444:	b0bb      	sub	sp, #236	; 0xec
 
-  802c446:	4605      	mov	r5, r0
 
-   char value[110];
 
-   char str[110];
 
-  // ClearParamString(buf);
 
-   
 
-   memset(value, 0, len);
 
-  802c448:	4621      	mov	r1, r4
 
-  802c44a:	226e      	movs	r2, #110	; 0x6e
 
-  802c44c:	a802      	add	r0, sp, #8
 
-   * @brief  
 
-   * @retval None
 
-   */
 
- void HTTP_SetInfo(char *buf, uint16_t lenBuf)
 
- {
 
-   uint8_t valueLen = 0;
 
-  802c44e:	f88d 4007 	strb.w	r4, [sp, #7]
 
-   char value[110];
 
-   char str[110];
 
-  // ClearParamString(buf);
 
-   
 
-   memset(value, 0, len);
 
-  802c452:	f7f5 fb55 	bl	8021b00 <memset>
 
-   
 
-   /* Владелец */
 
-   GetParamValue(buf, "owner=", value, &valueLen);
 
-  802c456:	f10d 0307 	add.w	r3, sp, #7
 
-  802c45a:	aa02      	add	r2, sp, #8
 
-  802c45c:	4628      	mov	r0, r5
 
-  802c45e:	491e      	ldr	r1, [pc, #120]	; (802c4d8 <HTTP_SetInfo+0x98>)
 
-  802c460:	f7ff ff06 	bl	802c270 <GetParamValue>
 
-   url_decode(str, sizeof(str), value);
 
-  802c464:	216e      	movs	r1, #110	; 0x6e
 
-  802c466:	aa02      	add	r2, sp, #8
 
-  802c468:	a81e      	add	r0, sp, #120	; 0x78
 
-  802c46a:	f7fc feb9 	bl	80291e0 <url_decode>
 
-   SetOwner(str);
 
-  802c46e:	a81e      	add	r0, sp, #120	; 0x78
 
-  802c470:	f7fb fefc 	bl	802826c <SetOwner>
 
-   memset(value, 0, len);
 
-  802c474:	4621      	mov	r1, r4
 
-  802c476:	226e      	movs	r2, #110	; 0x6e
 
-  802c478:	a802      	add	r0, sp, #8
 
-  802c47a:	f7f5 fb41 	bl	8021b00 <memset>
 
-   
 
-   /* Владелец */
 
-   GetParamValue(buf, "sysLocation=", value, &valueLen);
 
-  802c47e:	f10d 0307 	add.w	r3, sp, #7
 
-  802c482:	aa02      	add	r2, sp, #8
 
-  802c484:	4628      	mov	r0, r5
 
-  802c486:	4915      	ldr	r1, [pc, #84]	; (802c4dc <HTTP_SetInfo+0x9c>)
 
-  802c488:	f7ff fef2 	bl	802c270 <GetParamValue>
 
-   url_decode(str, sizeof(str), value);
 
-  802c48c:	216e      	movs	r1, #110	; 0x6e
 
-  802c48e:	aa02      	add	r2, sp, #8
 
-  802c490:	a81e      	add	r0, sp, #120	; 0x78
 
-  802c492:	f7fc fea5 	bl	80291e0 <url_decode>
 
-   SetLocation(str);
 
-  802c496:	a81e      	add	r0, sp, #120	; 0x78
 
-  802c498:	f7fb fef8 	bl	802828c <SetLocation>
 
-   memset(value, 0, len);
 
-  802c49c:	4621      	mov	r1, r4
 
-  802c49e:	226e      	movs	r2, #110	; 0x6e
 
-  802c4a0:	a802      	add	r0, sp, #8
 
-  802c4a2:	f7f5 fb2d 	bl	8021b00 <memset>
 
-   
 
-   /* Комментарий */
 
-   GetParamValue(buf, "comment=", value, &valueLen);
 
-  802c4a6:	f10d 0307 	add.w	r3, sp, #7
 
-  802c4aa:	aa02      	add	r2, sp, #8
 
-  802c4ac:	4628      	mov	r0, r5
 
-  802c4ae:	490c      	ldr	r1, [pc, #48]	; (802c4e0 <HTTP_SetInfo+0xa0>)
 
-  802c4b0:	f7ff fede 	bl	802c270 <GetParamValue>
 
-   url_decode(str, sizeof(str), value);
 
-  802c4b4:	216e      	movs	r1, #110	; 0x6e
 
-  802c4b6:	aa02      	add	r2, sp, #8
 
-  802c4b8:	a81e      	add	r0, sp, #120	; 0x78
 
-  802c4ba:	f7fc fe91 	bl	80291e0 <url_decode>
 
-   SetComment(str);
 
-  802c4be:	a81e      	add	r0, sp, #120	; 0x78
 
-  802c4c0:	f7fb fef2 	bl	80282a8 <SetComment>
 
-   memset(value, 0, len);
 
-  802c4c4:	4621      	mov	r1, r4
 
-  802c4c6:	226e      	movs	r2, #110	; 0x6e
 
-  802c4c8:	a802      	add	r0, sp, #8
 
-  802c4ca:	f7f5 fb19 	bl	8021b00 <memset>
 
-  
 
-   HTTP_SaveSettings();
 
-  802c4ce:	f001 fc75 	bl	802ddbc <HTTP_SaveSettings>
 
- }
 
-  802c4d2:	b03b      	add	sp, #236	; 0xec
 
-  802c4d4:	bd30      	pop	{r4, r5, pc}
 
-  802c4d6:	bf00      	nop
 
-  802c4d8:	08040d19 	.word	0x08040d19
 
-  802c4dc:	08040d20 	.word	0x08040d20
 
-  802c4e0:	08040d2d 	.word	0x08040d2d
 
- 0802c4e4 <HTTP_SetSettings>:
 
- /**
 
-   * @brief  
 
-   * @retval None
 
-   */
 
- void HTTP_SetSettings(char *buf, uint16_t lenBuf)
 
- {
 
-  802c4e4:	b530      	push	{r4, r5, lr}
 
-   uint8_t valueLen = 0;
 
-  802c4e6:	2500      	movs	r5, #0
 
- /**
 
-   * @brief  
 
-   * @retval None
 
-   */
 
- void HTTP_SetSettings(char *buf, uint16_t lenBuf)
 
- {
 
-  802c4e8:	b0a3      	sub	sp, #140	; 0x8c
 
-  802c4ea:	4604      	mov	r4, r0
 
-   //printf(buf);
 
-   
 
-   //ClearParamString(buf);
 
-   
 
-   memset(value, 0, len);
 
-  802c4ec:	2240      	movs	r2, #64	; 0x40
 
-  802c4ee:	4629      	mov	r1, r5
 
-  802c4f0:	a802      	add	r0, sp, #8
 
-   * @brief  
 
-   * @retval None
 
-   */
 
- void HTTP_SetSettings(char *buf, uint16_t lenBuf)
 
- {
 
-   uint8_t valueLen = 0;
 
-  802c4f2:	f88d 5007 	strb.w	r5, [sp, #7]
 
-   //printf(buf);
 
-   
 
-   //ClearParamString(buf);
 
-   
 
-   memset(value, 0, len);
 
-  802c4f6:	f7f5 fb03 	bl	8021b00 <memset>
 
-   memset(str, 0, MAX_WEB_PARAM_LEN);
 
-  802c4fa:	2240      	movs	r2, #64	; 0x40
 
-  802c4fc:	4629      	mov	r1, r5
 
-  802c4fe:	a812      	add	r0, sp, #72	; 0x48
 
-  802c500:	f7f5 fafe 	bl	8021b00 <memset>
 
-   
 
-   /* SNMP */
 
-   GetParamValue(buf, "read_community=", value, &valueLen);
 
-  802c504:	f10d 0307 	add.w	r3, sp, #7
 
-  802c508:	49b6      	ldr	r1, [pc, #728]	; (802c7e4 <HTTP_SetSettings+0x300>)
 
-  802c50a:	aa02      	add	r2, sp, #8
 
-  802c50c:	4620      	mov	r0, r4
 
-  802c50e:	f7ff feaf 	bl	802c270 <GetParamValue>
 
-   SetReadCommunity(value);
 
-  802c512:	a802      	add	r0, sp, #8
 
-  802c514:	f7fb fe58 	bl	80281c8 <SetReadCommunity>
 
-   memset(value, 0, len);
 
-  802c518:	2240      	movs	r2, #64	; 0x40
 
-  802c51a:	4629      	mov	r1, r5
 
-  802c51c:	a802      	add	r0, sp, #8
 
-  802c51e:	f7f5 faef 	bl	8021b00 <memset>
 
-   
 
-   GetParamValue(buf, "write_community=", value, &valueLen);
 
-  802c522:	f10d 0307 	add.w	r3, sp, #7
 
-  802c526:	49b0      	ldr	r1, [pc, #704]	; (802c7e8 <HTTP_SetSettings+0x304>)
 
-  802c528:	aa02      	add	r2, sp, #8
 
-  802c52a:	4620      	mov	r0, r4
 
-  802c52c:	f7ff fea0 	bl	802c270 <GetParamValue>
 
-   SetWriteCommunity(value);
 
-  802c530:	a802      	add	r0, sp, #8
 
-  802c532:	f7fb fe4f 	bl	80281d4 <SetWriteCommunity>
 
-   memset(value, 0, len);
 
-  802c536:	2240      	movs	r2, #64	; 0x40
 
-  802c538:	4629      	mov	r1, r5
 
-  802c53a:	a802      	add	r0, sp, #8
 
-  802c53c:	f7f5 fae0 	bl	8021b00 <memset>
 
-       
 
-   GetParamValue(buf, "managerIP=", value, &valueLen);
 
-  802c540:	f10d 0307 	add.w	r3, sp, #7
 
-  802c544:	49a9      	ldr	r1, [pc, #676]	; (802c7ec <HTTP_SetSettings+0x308>)
 
-  802c546:	aa02      	add	r2, sp, #8
 
-  802c548:	4620      	mov	r0, r4
 
-  802c54a:	f7ff fe91 	bl	802c270 <GetParamValue>
 
-   SetManagerIp(value);
 
-  802c54e:	a802      	add	r0, sp, #8
 
-  802c550:	f7fb fe46 	bl	80281e0 <SetManagerIp>
 
-   memset(value, 0, len);
 
-  802c554:	2240      	movs	r2, #64	; 0x40
 
-  802c556:	4629      	mov	r1, r5
 
-  802c558:	a802      	add	r0, sp, #8
 
-  802c55a:	f7f5 fad1 	bl	8021b00 <memset>
 
-   GetParamValue(buf, "managerIP2=", value, &valueLen);
 
-  802c55e:	f10d 0307 	add.w	r3, sp, #7
 
-  802c562:	49a3      	ldr	r1, [pc, #652]	; (802c7f0 <HTTP_SetSettings+0x30c>)
 
-  802c564:	aa02      	add	r2, sp, #8
 
-  802c566:	4620      	mov	r0, r4
 
-  802c568:	f7ff fe82 	bl	802c270 <GetParamValue>
 
-   SetManagerIp2(value);
 
-  802c56c:	a802      	add	r0, sp, #8
 
-  802c56e:	f7fb fe45 	bl	80281fc <SetManagerIp2>
 
-   memset(value, 0, len);
 
-  802c572:	2240      	movs	r2, #64	; 0x40
 
-  802c574:	4629      	mov	r1, r5
 
-  802c576:	a802      	add	r0, sp, #8
 
-  802c578:	f7f5 fac2 	bl	8021b00 <memset>
 
-   GetParamValue(buf, "managerIP3=", value, &valueLen);
 
-  802c57c:	f10d 0307 	add.w	r3, sp, #7
 
-  802c580:	499c      	ldr	r1, [pc, #624]	; (802c7f4 <HTTP_SetSettings+0x310>)
 
-  802c582:	aa02      	add	r2, sp, #8
 
-  802c584:	4620      	mov	r0, r4
 
-  802c586:	f7ff fe73 	bl	802c270 <GetParamValue>
 
-   SetManagerIp3(value);
 
-  802c58a:	a802      	add	r0, sp, #8
 
-  802c58c:	f7fb fe44 	bl	8028218 <SetManagerIp3>
 
-   memset(value, 0, len);
 
-  802c590:	2240      	movs	r2, #64	; 0x40
 
-  802c592:	4629      	mov	r1, r5
 
-  802c594:	a802      	add	r0, sp, #8
 
-  802c596:	f7f5 fab3 	bl	8021b00 <memset>
 
-   
 
-   GetParamValue(buf, "managerIP4=", value, &valueLen);
 
-  802c59a:	f10d 0307 	add.w	r3, sp, #7
 
-  802c59e:	4996      	ldr	r1, [pc, #600]	; (802c7f8 <HTTP_SetSettings+0x314>)
 
-  802c5a0:	aa02      	add	r2, sp, #8
 
-  802c5a2:	4620      	mov	r0, r4
 
-  802c5a4:	f7ff fe64 	bl	802c270 <GetParamValue>
 
-   SetManagerIp4(value);
 
-  802c5a8:	a802      	add	r0, sp, #8
 
-  802c5aa:	f7fb fe43 	bl	8028234 <SetManagerIp4>
 
-   memset(value, 0, len);
 
-  802c5ae:	2240      	movs	r2, #64	; 0x40
 
-  802c5b0:	4629      	mov	r1, r5
 
-  802c5b2:	a802      	add	r0, sp, #8
 
-  802c5b4:	f7f5 faa4 	bl	8021b00 <memset>
 
-   GetParamValue(buf, "managerIP5=", value, &valueLen);
 
-  802c5b8:	f10d 0307 	add.w	r3, sp, #7
 
-  802c5bc:	498f      	ldr	r1, [pc, #572]	; (802c7fc <HTTP_SetSettings+0x318>)
 
-  802c5be:	aa02      	add	r2, sp, #8
 
-  802c5c0:	4620      	mov	r0, r4
 
-  802c5c2:	f7ff fe55 	bl	802c270 <GetParamValue>
 
-   SetManagerIp5(value);
 
-  802c5c6:	a802      	add	r0, sp, #8
 
-  802c5c8:	f7fb fe42 	bl	8028250 <SetManagerIp5>
 
-   memset(value, 0, len);
 
-  802c5cc:	2240      	movs	r2, #64	; 0x40
 
-  802c5ce:	4629      	mov	r1, r5
 
-  802c5d0:	a802      	add	r0, sp, #8
 
-  802c5d2:	f7f5 fa95 	bl	8021b00 <memset>
 
-   /* Сетевые параметры */
 
-   GetParamValue(buf, "dhcp=", value, &valueLen);
 
-  802c5d6:	498a      	ldr	r1, [pc, #552]	; (802c800 <HTTP_SetSettings+0x31c>)
 
-  802c5d8:	aa02      	add	r2, sp, #8
 
-  802c5da:	f10d 0307 	add.w	r3, sp, #7
 
-  802c5de:	4620      	mov	r0, r4
 
-  802c5e0:	f7ff fe46 	bl	802c270 <GetParamValue>
 
-   SetDhcpStateStr(value);
 
-  802c5e4:	a802      	add	r0, sp, #8
 
-  802c5e6:	f7fb fdc1 	bl	802816c <SetDhcpStateStr>
 
-   
 
-   if (strncmp(value, "on", 2) != 0)  // Если dhcp off устанавливаем параметры
 
-  802c5ea:	a802      	add	r0, sp, #8
 
-  802c5ec:	4985      	ldr	r1, [pc, #532]	; (802c804 <HTTP_SetSettings+0x320>)
 
-  802c5ee:	2202      	movs	r2, #2
 
-  802c5f0:	f7f5 fcc0 	bl	8021f74 <strncmp>
 
-  802c5f4:	2800      	cmp	r0, #0
 
-  802c5f6:	d031      	beq.n	802c65c <HTTP_SetSettings+0x178>
 
-     {
 
-     memset(value, 0, len);
 
-  802c5f8:	4629      	mov	r1, r5
 
-  802c5fa:	2240      	movs	r2, #64	; 0x40
 
-  802c5fc:	a802      	add	r0, sp, #8
 
-  802c5fe:	f7f5 fa7f 	bl	8021b00 <memset>
 
-     GetParamValue(buf, "ipaddr=", value, &valueLen);
 
-  802c602:	f10d 0307 	add.w	r3, sp, #7
 
-  802c606:	4980      	ldr	r1, [pc, #512]	; (802c808 <HTTP_SetSettings+0x324>)
 
-  802c608:	aa02      	add	r2, sp, #8
 
-  802c60a:	4620      	mov	r0, r4
 
-  802c60c:	f7ff fe30 	bl	802c270 <GetParamValue>
 
-     SetIPStr(value);
 
-  802c610:	a802      	add	r0, sp, #8
 
-  802c612:	f7fb fd99 	bl	8028148 <SetIPStr>
 
-     memset(value, 0, len);
 
-  802c616:	4629      	mov	r1, r5
 
-  802c618:	2240      	movs	r2, #64	; 0x40
 
-  802c61a:	a802      	add	r0, sp, #8
 
-  802c61c:	f7f5 fa70 	bl	8021b00 <memset>
 
-   
 
-     GetParamValue(buf, "gw=", value, &valueLen);
 
-  802c620:	f10d 0307 	add.w	r3, sp, #7
 
-  802c624:	4979      	ldr	r1, [pc, #484]	; (802c80c <HTTP_SetSettings+0x328>)
 
-  802c626:	aa02      	add	r2, sp, #8
 
-  802c628:	4620      	mov	r0, r4
 
-  802c62a:	f7ff fe21 	bl	802c270 <GetParamValue>
 
-     SetGatewayStr(value);
 
-  802c62e:	a802      	add	r0, sp, #8
 
-  802c630:	f7fb fd90 	bl	8028154 <SetGatewayStr>
 
-     memset(value, 0, len);
 
-  802c634:	4629      	mov	r1, r5
 
-  802c636:	2240      	movs	r2, #64	; 0x40
 
-  802c638:	a802      	add	r0, sp, #8
 
-  802c63a:	f7f5 fa61 	bl	8021b00 <memset>
 
-   
 
-     GetParamValue(buf, "mask=", value, &valueLen);
 
-  802c63e:	4974      	ldr	r1, [pc, #464]	; (802c810 <HTTP_SetSettings+0x32c>)
 
-  802c640:	aa02      	add	r2, sp, #8
 
-  802c642:	f10d 0307 	add.w	r3, sp, #7
 
-  802c646:	4620      	mov	r0, r4
 
-  802c648:	f7ff fe12 	bl	802c270 <GetParamValue>
 
-     SetMaskStr(value);
 
-  802c64c:	a802      	add	r0, sp, #8
 
-  802c64e:	f7fb fd87 	bl	8028160 <SetMaskStr>
 
-     memset(value, 0, len);
 
-  802c652:	a802      	add	r0, sp, #8
 
-  802c654:	4629      	mov	r1, r5
 
-  802c656:	2240      	movs	r2, #64	; 0x40
 
-  802c658:	f7f5 fa52 	bl	8021b00 <memset>
 
-   }
 
-   memset(value, 0, len);
 
-  802c65c:	2100      	movs	r1, #0
 
-  802c65e:	2240      	movs	r2, #64	; 0x40
 
-  802c660:	a802      	add	r0, sp, #8
 
-  802c662:	f7f5 fa4d 	bl	8021b00 <memset>
 
-   GetParamValue(&buf[555], "auth=", value, &valueLen);
 
-  802c666:	496b      	ldr	r1, [pc, #428]	; (802c814 <HTTP_SetSettings+0x330>)
 
-  802c668:	aa02      	add	r2, sp, #8
 
-  802c66a:	f10d 0307 	add.w	r3, sp, #7
 
-  802c66e:	f204 202b 	addw	r0, r4, #555	; 0x22b
 
-  802c672:	f7ff fdfd 	bl	802c270 <GetParamValue>
 
-   SetAuthEnableStateStr(value);
 
-  802c676:	a802      	add	r0, sp, #8
 
-  802c678:	f7fb fe4e 	bl	8028318 <SetAuthEnableStateStr>
 
-   if (strncmp(value, "on", 2) == 0){
 
-  802c67c:	4961      	ldr	r1, [pc, #388]	; (802c804 <HTTP_SetSettings+0x320>)
 
-  802c67e:	a802      	add	r0, sp, #8
 
-  802c680:	2202      	movs	r2, #2
 
-  802c682:	f7f5 fc77 	bl	8021f74 <strncmp>
 
-  802c686:	4601      	mov	r1, r0
 
-  802c688:	2800      	cmp	r0, #0
 
-  802c68a:	d156      	bne.n	802c73a <HTTP_SetSettings+0x256>
 
- 		/* параметры RADIUS*/
 
- 	  memset(value, 0, len);
 
-  802c68c:	2240      	movs	r2, #64	; 0x40
 
-  802c68e:	a802      	add	r0, sp, #8
 
-  802c690:	f7f5 fa36 	bl	8021b00 <memset>
 
- 		GetParamValue(buf, "rs_enabled=", value, &valueLen);
 
-  802c694:	4960      	ldr	r1, [pc, #384]	; (802c818 <HTTP_SetSettings+0x334>)
 
-  802c696:	aa02      	add	r2, sp, #8
 
-  802c698:	f10d 0307 	add.w	r3, sp, #7
 
-  802c69c:	4620      	mov	r0, r4
 
-  802c69e:	f7ff fde7 	bl	802c270 <GetParamValue>
 
- 		SetRDSEnableStateStr(value);
 
-  802c6a2:	a802      	add	r0, sp, #8
 
-  802c6a4:	f7fb fe26 	bl	80282f4 <SetRDSEnableStateStr>
 
- 		if (strncmp(value, "on", 2) == 0)  // Если raddius off устанавливаем параметры
 
-  802c6a8:	a802      	add	r0, sp, #8
 
-  802c6aa:	4956      	ldr	r1, [pc, #344]	; (802c804 <HTTP_SetSettings+0x320>)
 
-  802c6ac:	2202      	movs	r2, #2
 
-  802c6ae:	f7f5 fc61 	bl	8021f74 <strncmp>
 
-  802c6b2:	4605      	mov	r5, r0
 
-  802c6b4:	2800      	cmp	r0, #0
 
-  802c6b6:	d140      	bne.n	802c73a <HTTP_SetSettings+0x256>
 
- 		{
 
- 			memset(value, 0, len);
 
-  802c6b8:	4629      	mov	r1, r5
 
-  802c6ba:	2240      	movs	r2, #64	; 0x40
 
-  802c6bc:	a802      	add	r0, sp, #8
 
-  802c6be:	f7f5 fa1f 	bl	8021b00 <memset>
 
- 			GetParamValue(buf, "rs_server=", value, &valueLen);
 
-  802c6c2:	f10d 0307 	add.w	r3, sp, #7
 
-  802c6c6:	4955      	ldr	r1, [pc, #340]	; (802c81c <HTTP_SetSettings+0x338>)
 
-  802c6c8:	aa02      	add	r2, sp, #8
 
-  802c6ca:	4620      	mov	r0, r4
 
-  802c6cc:	f7ff fdd0 	bl	802c270 <GetParamValue>
 
- 			SetRDSIpStr(value);
 
-  802c6d0:	a802      	add	r0, sp, #8
 
-  802c6d2:	f7fb fdef 	bl	80282b4 <SetRDSIpStr>
 
- 			memset(value, 0, len);
 
-  802c6d6:	4629      	mov	r1, r5
 
-  802c6d8:	2240      	movs	r2, #64	; 0x40
 
-  802c6da:	a802      	add	r0, sp, #8
 
-  802c6dc:	f7f5 fa10 	bl	8021b00 <memset>
 
- 			GetParamValue(buf, "rs_port=", value, &valueLen);
 
-  802c6e0:	f10d 0307 	add.w	r3, sp, #7
 
-  802c6e4:	494e      	ldr	r1, [pc, #312]	; (802c820 <HTTP_SetSettings+0x33c>)
 
-  802c6e6:	aa02      	add	r2, sp, #8
 
-  802c6e8:	4620      	mov	r0, r4
 
-  802c6ea:	f7ff fdc1 	bl	802c270 <GetParamValue>
 
- 			SetRDSPortStr(value);
 
-  802c6ee:	a802      	add	r0, sp, #8
 
-  802c6f0:	f7fb fde6 	bl	80282c0 <SetRDSPortStr>
 
- 			memset(value, 0, len);
 
-  802c6f4:	4629      	mov	r1, r5
 
-  802c6f6:	2240      	movs	r2, #64	; 0x40
 
-  802c6f8:	a802      	add	r0, sp, #8
 
-  802c6fa:	f7f5 fa01 	bl	8021b00 <memset>
 
- 			GetParamValue(buf, "rs_pwd=", value, &valueLen);
 
-  802c6fe:	f10d 0307 	add.w	r3, sp, #7
 
-  802c702:	4948      	ldr	r1, [pc, #288]	; (802c824 <HTTP_SetSettings+0x340>)
 
-  802c704:	aa02      	add	r2, sp, #8
 
-  802c706:	4620      	mov	r0, r4
 
-  802c708:	f7ff fdb2 	bl	802c270 <GetParamValue>
 
- 			SetRDSPasswordkStr(value);
 
-  802c70c:	a802      	add	r0, sp, #8
 
-  802c70e:	f7fb fdeb 	bl	80282e8 <SetRDSPasswordkStr>
 
- 			memset(value, 0, len);
 
-  802c712:	4629      	mov	r1, r5
 
-  802c714:	2240      	movs	r2, #64	; 0x40
 
-  802c716:	a802      	add	r0, sp, #8
 
-  802c718:	f7f5 f9f2 	bl	8021b00 <memset>
 
- 			GetParamValue(buf, "rs_key=", value, &valueLen);
 
-  802c71c:	4942      	ldr	r1, [pc, #264]	; (802c828 <HTTP_SetSettings+0x344>)
 
-  802c71e:	aa02      	add	r2, sp, #8
 
-  802c720:	f10d 0307 	add.w	r3, sp, #7
 
-  802c724:	4620      	mov	r0, r4
 
-  802c726:	f7ff fda3 	bl	802c270 <GetParamValue>
 
- 			SetRDSKeyAccesstStr(value);
 
-  802c72a:	a802      	add	r0, sp, #8
 
-  802c72c:	f7fb fdd2 	bl	80282d4 <SetRDSKeyAccesstStr>
 
- 			memset(value, 0, len);
 
-  802c730:	a802      	add	r0, sp, #8
 
-  802c732:	4629      	mov	r1, r5
 
-  802c734:	2240      	movs	r2, #64	; 0x40
 
-  802c736:	f7f5 f9e3 	bl	8021b00 <memset>
 
- 		}
 
-   }
 
-   memset(value, 0, len);
 
-  802c73a:	2100      	movs	r1, #0
 
-  802c73c:	2240      	movs	r2, #64	; 0x40
 
-  802c73e:	a802      	add	r0, sp, #8
 
-  802c740:	f7f5 f9de 	bl	8021b00 <memset>
 
-   // Параметры реле и сухих контактов
 
-   GetParamValue(buf, "di1=", value, &valueLen);
 
-  802c744:	f10d 0307 	add.w	r3, sp, #7
 
-  802c748:	aa02      	add	r2, sp, #8
 
-  802c74a:	4938      	ldr	r1, [pc, #224]	; (802c82c <HTTP_SetSettings+0x348>)
 
-  802c74c:	4620      	mov	r0, r4
 
-  802c74e:	f7ff fd8f 	bl	802c270 <GetParamValue>
 
-   SetDINTypeActStr(value, 0);
 
-  802c752:	a802      	add	r0, sp, #8
 
-  802c754:	2100      	movs	r1, #0
 
-  802c756:	f7fb fed5 	bl	8028504 <SetDINTypeActStr>
 
-   memset(value, 0, len);
 
-  802c75a:	2100      	movs	r1, #0
 
-  802c75c:	2240      	movs	r2, #64	; 0x40
 
-  802c75e:	a802      	add	r0, sp, #8
 
-  802c760:	f7f5 f9ce 	bl	8021b00 <memset>
 
-   GetParamValue(buf, "ro1=", value, &valueLen);
 
-  802c764:	f10d 0307 	add.w	r3, sp, #7
 
-  802c768:	aa02      	add	r2, sp, #8
 
-  802c76a:	4931      	ldr	r1, [pc, #196]	; (802c830 <HTTP_SetSettings+0x34c>)
 
-  802c76c:	4620      	mov	r0, r4
 
-  802c76e:	f7ff fd7f 	bl	802c270 <GetParamValue>
 
-   SetROTypeActStr(value, 0);
 
-  802c772:	a802      	add	r0, sp, #8
 
-  802c774:	2100      	movs	r1, #0
 
-  802c776:	f7fb fee3 	bl	8028540 <SetROTypeActStr>
 
-   memset(value, 0, len);
 
-  802c77a:	2100      	movs	r1, #0
 
-  802c77c:	2240      	movs	r2, #64	; 0x40
 
-  802c77e:	a802      	add	r0, sp, #8
 
-  802c780:	f7f5 f9be 	bl	8021b00 <memset>
 
-   GetParamValue(buf, "ro2=", value, &valueLen);
 
-  802c784:	f10d 0307 	add.w	r3, sp, #7
 
-  802c788:	aa02      	add	r2, sp, #8
 
-  802c78a:	492a      	ldr	r1, [pc, #168]	; (802c834 <HTTP_SetSettings+0x350>)
 
-  802c78c:	4620      	mov	r0, r4
 
-  802c78e:	f7ff fd6f 	bl	802c270 <GetParamValue>
 
-   SetROTypeActStr(value, 1);
 
-  802c792:	a802      	add	r0, sp, #8
 
-  802c794:	2101      	movs	r1, #1
 
-  802c796:	f7fb fed3 	bl	8028540 <SetROTypeActStr>
 
-   memset(value, 0, len);
 
-  802c79a:	2100      	movs	r1, #0
 
-  802c79c:	2240      	movs	r2, #64	; 0x40
 
-  802c79e:	a802      	add	r0, sp, #8
 
-  802c7a0:	f7f5 f9ae 	bl	8021b00 <memset>
 
-   // Параметры даты и времени
 
-   GetParamValue(buf, "ntp=", value, &valueLen);
 
-  802c7a4:	4924      	ldr	r1, [pc, #144]	; (802c838 <HTTP_SetSettings+0x354>)
 
-  802c7a6:	aa02      	add	r2, sp, #8
 
-  802c7a8:	f10d 0307 	add.w	r3, sp, #7
 
-  802c7ac:	4620      	mov	r0, r4
 
-  802c7ae:	f7ff fd5f 	bl	802c270 <GetParamValue>
 
-   SetSntpStateStr(value);
 
-  802c7b2:	a802      	add	r0, sp, #8
 
-  802c7b4:	f7fb fe2a 	bl	802840c <SetSntpStateStr>
 
-   if (strncmp(value, "1", 1) == 0)  // Если ntp on устанавливаем параметры
 
-  802c7b8:	a802      	add	r0, sp, #8
 
-  802c7ba:	4920      	ldr	r1, [pc, #128]	; (802c83c <HTTP_SetSettings+0x358>)
 
-  802c7bc:	2201      	movs	r2, #1
 
-  802c7be:	f7f5 fbd9 	bl	8021f74 <strncmp>
 
-  802c7c2:	4605      	mov	r5, r0
 
-   {
 
-     memset(value, 0, len);
 
-  802c7c4:	a802      	add	r0, sp, #8
 
-   // Параметры даты и времени
 
-   GetParamValue(buf, "ntp=", value, &valueLen);
 
-   SetSntpStateStr(value);
 
-   if (strncmp(value, "1", 1) == 0)  // Если ntp on устанавливаем параметры
 
-  802c7c6:	2d00      	cmp	r5, #0
 
-  802c7c8:	d140      	bne.n	802c84c <HTTP_SetSettings+0x368>
 
-   {
 
-     memset(value, 0, len);
 
-  802c7ca:	4629      	mov	r1, r5
 
-  802c7cc:	2240      	movs	r2, #64	; 0x40
 
-  802c7ce:	f7f5 f997 	bl	8021b00 <memset>
 
-     GetParamValue(buf, "ntpservip=", value, &valueLen);
 
-  802c7d2:	4620      	mov	r0, r4
 
-  802c7d4:	491a      	ldr	r1, [pc, #104]	; (802c840 <HTTP_SetSettings+0x35c>)
 
-  802c7d6:	aa02      	add	r2, sp, #8
 
-  802c7d8:	f10d 0307 	add.w	r3, sp, #7
 
-  802c7dc:	f7ff fd48 	bl	802c270 <GetParamValue>
 
-  802c7e0:	e030      	b.n	802c844 <HTTP_SetSettings+0x360>
 
-  802c7e2:	bf00      	nop
 
-  802c7e4:	08040d36 	.word	0x08040d36
 
-  802c7e8:	08040d46 	.word	0x08040d46
 
-  802c7ec:	08040d57 	.word	0x08040d57
 
-  802c7f0:	08040d62 	.word	0x08040d62
 
-  802c7f4:	08040d6e 	.word	0x08040d6e
 
-  802c7f8:	08040d7a 	.word	0x08040d7a
 
-  802c7fc:	08040d86 	.word	0x08040d86
 
-  802c800:	08040d92 	.word	0x08040d92
 
-  802c804:	080399ee 	.word	0x080399ee
 
-  802c808:	08040d98 	.word	0x08040d98
 
-  802c80c:	08040da0 	.word	0x08040da0
 
-  802c810:	08040da4 	.word	0x08040da4
 
-  802c814:	08040daa 	.word	0x08040daa
 
-  802c818:	08040db0 	.word	0x08040db0
 
-  802c81c:	08040dbc 	.word	0x08040dbc
 
-  802c820:	08040dc7 	.word	0x08040dc7
 
-  802c824:	08040dd0 	.word	0x08040dd0
 
-  802c828:	08040dd8 	.word	0x08040dd8
 
-  802c82c:	08040de0 	.word	0x08040de0
 
-  802c830:	08040de5 	.word	0x08040de5
 
-  802c834:	08040dea 	.word	0x08040dea
 
-  802c838:	08040def 	.word	0x08040def
 
-  802c83c:	08039cb4 	.word	0x08039cb4
 
-  802c840:	08040df4 	.word	0x08040df4
 
-     SetSntpServerIpStr(value);
 
-  802c844:	a802      	add	r0, sp, #8
 
-  802c846:	f7fb fe01 	bl	802844c <SetSntpServerIpStr>
 
-  802c84a:	e023      	b.n	802c894 <HTTP_SetSettings+0x3b0>
 
-     memset(value, 0, len);
 
-   }
 
-   else if (strncmp(value, "0", 1) == 0){
 
-  802c84c:	4924      	ldr	r1, [pc, #144]	; (802c8e0 <HTTP_SetSettings+0x3fc>)
 
-  802c84e:	2201      	movs	r2, #1
 
-  802c850:	f7f5 fb90 	bl	8021f74 <strncmp>
 
-  802c854:	4605      	mov	r5, r0
 
-  802c856:	bb10      	cbnz	r0, 802c89e <HTTP_SetSettings+0x3ba>
 
-       GetParamValue(buf, "date=", value, &valueLen);
 
-  802c858:	f10d 0307 	add.w	r3, sp, #7
 
-  802c85c:	4921      	ldr	r1, [pc, #132]	; (802c8e4 <HTTP_SetSettings+0x400>)
 
-  802c85e:	aa02      	add	r2, sp, #8
 
-  802c860:	4620      	mov	r0, r4
 
-  802c862:	f7ff fd05 	bl	802c270 <GetParamValue>
 
-       SetDateStr(value);
 
-  802c866:	a802      	add	r0, sp, #8
 
-  802c868:	f7fb fd68 	bl	802833c <SetDateStr>
 
-       memset(value, 0, len);
 
-  802c86c:	4629      	mov	r1, r5
 
-  802c86e:	2240      	movs	r2, #64	; 0x40
 
-  802c870:	a802      	add	r0, sp, #8
 
-  802c872:	f7f5 f945 	bl	8021b00 <memset>
 
-       GetParamValue(buf, "time=", value, &valueLen);
 
-  802c876:	491c      	ldr	r1, [pc, #112]	; (802c8e8 <HTTP_SetSettings+0x404>)
 
-  802c878:	aa02      	add	r2, sp, #8
 
-  802c87a:	f10d 0307 	add.w	r3, sp, #7
 
-  802c87e:	4620      	mov	r0, r4
 
-  802c880:	f7ff fcf6 	bl	802c270 <GetParamValue>
 
-       url_decode(str, sizeof(str), value);
 
-  802c884:	a812      	add	r0, sp, #72	; 0x48
 
-  802c886:	2140      	movs	r1, #64	; 0x40
 
-  802c888:	aa02      	add	r2, sp, #8
 
-  802c88a:	f7fc fca9 	bl	80291e0 <url_decode>
 
-       SetTimeStr(str);
 
-  802c88e:	a812      	add	r0, sp, #72	; 0x48
 
-  802c890:	f7fb fd8c 	bl	80283ac <SetTimeStr>
 
-       memset(value, 0, len);
 
-  802c894:	a802      	add	r0, sp, #8
 
-  802c896:	4629      	mov	r1, r5
 
-  802c898:	2240      	movs	r2, #64	; 0x40
 
-  802c89a:	f7f5 f931 	bl	8021b00 <memset>
 
-   }
 
-   GetParamValue(buf, "utc=", value, &valueLen);
 
-  802c89e:	4913      	ldr	r1, [pc, #76]	; (802c8ec <HTTP_SetSettings+0x408>)
 
-  802c8a0:	aa02      	add	r2, sp, #8
 
-  802c8a2:	f10d 0307 	add.w	r3, sp, #7
 
-  802c8a6:	4620      	mov	r0, r4
 
-  802c8a8:	f7ff fce2 	bl	802c270 <GetParamValue>
 
-   SetSntpTimeZoneStr(value);
 
-  802c8ac:	a802      	add	r0, sp, #8
 
-  802c8ae:	f7fb fdd3 	bl	8028458 <SetSntpTimeZoneStr>
 
-   memset(value, 0, len);
 
-  802c8b2:	2100      	movs	r1, #0
 
-  802c8b4:	2240      	movs	r2, #64	; 0x40
 
-  802c8b6:	a802      	add	r0, sp, #8
 
-  802c8b8:	f7f5 f922 	bl	8021b00 <memset>
 
-   
 
-   /* Если параметры WEB изменились выставляем флаг, сохраняем настройки и перезагружаемся */
 
-   if (GetStateWebReinit() == true)
 
-  802c8bc:	f00b fada 	bl	8037e74 <GetStateWebReinit>
 
-  802c8c0:	b150      	cbz	r0, 802c8d8 <HTTP_SetSettings+0x3f4>
 
-   {	
 
- 	SetWebReinitFlag(true);
 
-  802c8c2:	2001      	movs	r0, #1
 
-  802c8c4:	f7fb fc34 	bl	8028130 <SetWebReinitFlag>
 
- 	HTTP_SaveSettings();
 
-  802c8c8:	f001 fa78 	bl	802ddbc <HTTP_SaveSettings>
 
-     /* Блокируем управление ключем на тау секунд*/
 
-     //IO_KeyBlockOn();
 
-     vTaskDelay(1010);
 
-  802c8cc:	f240 30f2 	movw	r0, #1010	; 0x3f2
 
-  802c8d0:	f7fe fb7c 	bl	802afcc <vTaskDelay>
 
-     Reboot();
 
-  802c8d4:	f7fc fc16 	bl	8029104 <Reboot>
 
-   }	
 
-   
 
-   HTTP_SaveSettings();
 
-  802c8d8:	f001 fa70 	bl	802ddbc <HTTP_SaveSettings>
 
- }
 
-  802c8dc:	b023      	add	sp, #140	; 0x8c
 
-  802c8de:	bd30      	pop	{r4, r5, pc}
 
-  802c8e0:	08039a51 	.word	0x08039a51
 
-  802c8e4:	08040e12 	.word	0x08040e12
 
-  802c8e8:	08040dff 	.word	0x08040dff
 
-  802c8ec:	08040e05 	.word	0x08040e05
 
- 0802c8f0 <GetCookieValue>:
 
- /**
 
-   * @brief  
 
-   * @retval None
 
-   */
 
- uint8_t GetCookieValue(char *inStr, char *paramName, char *paramValue, uint8_t *paramLen)
 
- {
 
-  802c8f0:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
 
-  802c8f4:	4690      	mov	r8, r2
 
-  802c8f6:	461f      	mov	r7, r3
 
-   char *beginValue = 0;
 
-   char *endValue = 0;
 
-   int  len = 0;
 
-   char *strPtr = 0;
 
-   strPtr = strstr(inStr, paramName);
 
-  802c8f8:	f7f5 fd5a 	bl	80223b0 <strstr>
 
-   if (strPtr != 0)
 
-  802c8fc:	4605      	mov	r5, r0
 
-  802c8fe:	b1e0      	cbz	r0, 802c93a <GetCookieValue+0x4a>
 
-   {
 
-     beginValue = strpbrk(strPtr,"=");
 
-  802c900:	490f      	ldr	r1, [pc, #60]	; (802c940 <GetCookieValue+0x50>)
 
-  802c902:	f7f5 fbbf 	bl	8022084 <strpbrk>
 
-     endValue = strpbrk(strPtr,";");
 
-  802c906:	490f      	ldr	r1, [pc, #60]	; (802c944 <GetCookieValue+0x54>)
 
-   strPtr = strstr(inStr, paramName);
 
-   if (strPtr != 0)
 
-   {
 
-     beginValue = strpbrk(strPtr,"=");
 
-  802c908:	4606      	mov	r6, r0
 
-     endValue = strpbrk(strPtr,";");
 
-  802c90a:	4628      	mov	r0, r5
 
-  802c90c:	f7f5 fbba 	bl	8022084 <strpbrk>
 
-     if (endValue == 0)
 
-  802c910:	4604      	mov	r4, r0
 
-  802c912:	b920      	cbnz	r0, 802c91e <GetCookieValue+0x2e>
 
-       endValue = strpbrk(strPtr,"\n");
 
-  802c914:	4628      	mov	r0, r5
 
-  802c916:	490c      	ldr	r1, [pc, #48]	; (802c948 <GetCookieValue+0x58>)
 
-  802c918:	f7f5 fbb4 	bl	8022084 <strpbrk>
 
-  802c91c:	4604      	mov	r4, r0
 
-     len = endValue - beginValue - 1;
 
-  802c91e:	1ba5      	subs	r5, r4, r6
 
-  802c920:	3d01      	subs	r5, #1
 
-     strncpy(paramValue, beginValue + 1, len);
 
-  802c922:	4640      	mov	r0, r8
 
-  802c924:	1c71      	adds	r1, r6, #1
 
-  802c926:	462a      	mov	r2, r5
 
-  802c928:	f7f5 fb7a 	bl	8022020 <strncpy>
 
-     *endValue = '0';
 
-  802c92c:	2330      	movs	r3, #48	; 0x30
 
-  802c92e:	7023      	strb	r3, [r4, #0]
 
-     *beginValue = '0';
 
-     *paramLen = len;
 
-     return 1;
 
-  802c930:	2001      	movs	r0, #1
 
-     if (endValue == 0)
 
-       endValue = strpbrk(strPtr,"\n");
 
-     len = endValue - beginValue - 1;
 
-     strncpy(paramValue, beginValue + 1, len);
 
-     *endValue = '0';
 
-     *beginValue = '0';
 
-  802c932:	7033      	strb	r3, [r6, #0]
 
-     *paramLen = len;
 
-  802c934:	703d      	strb	r5, [r7, #0]
 
-     return 1;
 
-  802c936:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 
-   }
 
-   else
 
-   {
 
-     *paramLen = 0;
 
-  802c93a:	7038      	strb	r0, [r7, #0]
 
-     return 0;
 
-   }
 
- }
 
-  802c93c:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 
-  802c940:	08040de3 	.word	0x08040de3
 
-  802c944:	08045b19 	.word	0x08045b19
 
-  802c948:	08041133 	.word	0x08041133
 
- 0802c94c <ClearParamString>:
 
-   }
 
- }
 
- */
 
- void ClearParamString(char *inBuf)
 
- {
 
-  802c94c:	b510      	push	{r4, lr}
 
-   uint16_t len;
 
-   char *str;
 
-   
 
-   str = strstr(inBuf, "HTTP");
 
-  802c94e:	4908      	ldr	r1, [pc, #32]	; (802c970 <ClearParamString+0x24>)
 
-   }
 
- }
 
- */
 
- void ClearParamString(char *inBuf)
 
- {
 
-  802c950:	4604      	mov	r4, r0
 
-   uint16_t len;
 
-   char *str;
 
-   
 
-   str = strstr(inBuf, "HTTP");
 
-  802c952:	f7f5 fd2d 	bl	80223b0 <strstr>
 
-   
 
-   if (str != 0)
 
-  802c956:	b148      	cbz	r0, 802c96c <ClearParamString+0x20>
 
-   {
 
-     len = str - inBuf;
 
-  802c958:	1b02      	subs	r2, r0, r4
 
- 	memset(str, 0, RECIVE_BUF_MAX_LEN - len - 1);
 
-  802c95a:	b292      	uxth	r2, r2
 
-  802c95c:	f5c2 62bb 	rsb	r2, r2, #1496	; 0x5d8
 
-  802c960:	2100      	movs	r1, #0
 
-  802c962:	3203      	adds	r2, #3
 
-   }
 
- }
 
-  802c964:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
-   str = strstr(inBuf, "HTTP");
 
-   
 
-   if (str != 0)
 
-   {
 
-     len = str - inBuf;
 
- 	memset(str, 0, RECIVE_BUF_MAX_LEN - len - 1);
 
-  802c968:	f7f5 b8ca 	b.w	8021b00 <memset>
 
-  802c96c:	bd10      	pop	{r4, pc}
 
-  802c96e:	bf00      	nop
 
-  802c970:	08040e0a 	.word	0x08040e0a
 
- 0802c974 <HTTP_Prodate>:
 
- /**
 
-   * @brief  Установка даты производства
 
-   */
 
- // TODO Убрать заглушку!
 
- void HTTP_Prodate(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut)
 
- {
 
-  802c974:	b5f0      	push	{r4, r5, r6, r7, lr}
 
-   uint8_t valueLen = 0;
 
-  802c976:	2500      	movs	r5, #0
 
- /**
 
-   * @brief  Установка даты производства
 
-   */
 
- // TODO Убрать заглушку!
 
- void HTTP_Prodate(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut)
 
- {
 
-  802c978:	b087      	sub	sp, #28
 
-  802c97a:	4606      	mov	r6, r0
 
-  802c97c:	460c      	mov	r4, r1
 
-   uint8_t valueLen = 0;
 
-   char value[20];
 
-   
 
-   memset(bufOut, 0, SEND_BUF_MAX_LEN);
 
-  802c97e:	f44f 62fa 	mov.w	r2, #2000	; 0x7d0
 
-  802c982:	4608      	mov	r0, r1
 
-  802c984:	4629      	mov	r1, r5
 
- /**
 
-   * @brief  Установка даты производства
 
-   */
 
- // TODO Убрать заглушку!
 
- void HTTP_Prodate(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut)
 
- {
 
-  802c986:	461f      	mov	r7, r3
 
-   uint8_t valueLen = 0;
 
-  802c988:	f88d 5003 	strb.w	r5, [sp, #3]
 
-   char value[20];
 
-   
 
-   memset(bufOut, 0, SEND_BUF_MAX_LEN);
 
-  802c98c:	f7f5 f8b8 	bl	8021b00 <memset>
 
-   
 
-   ClearParamString(bufIn);
 
-  802c990:	4630      	mov	r0, r6
 
-  802c992:	f7ff ffdb 	bl	802c94c <ClearParamString>
 
-   
 
-   memset(value, 0, 20);
 
-  802c996:	4629      	mov	r1, r5
 
-  802c998:	2214      	movs	r2, #20
 
-  802c99a:	a801      	add	r0, sp, #4
 
-  802c99c:	f7f5 f8b0 	bl	8021b00 <memset>
 
-   GetParamValue(bufIn, "prodate=", value, &valueLen);
 
-  802c9a0:	aa01      	add	r2, sp, #4
 
-  802c9a2:	f10d 0303 	add.w	r3, sp, #3
 
-  802c9a6:	490b      	ldr	r1, [pc, #44]	; (802c9d4 <HTTP_Prodate+0x60>)
 
-  802c9a8:	4630      	mov	r0, r6
 
-  802c9aa:	f7ff fc61 	bl	802c270 <GetParamValue>
 
-   printf(value);
 
-   printf("\r\n");
 
-   */
 
-   
 
-   /* Устанавливаем дату производства */
 
-   SETTINGS_SetProDate(value, valueLen);
 
-  802c9ae:	f89d 1003 	ldrb.w	r1, [sp, #3]
 
-  802c9b2:	a801      	add	r0, sp, #4
 
-  802c9b4:	f7fc f82a 	bl	8028a0c <SETTINGS_SetProDate>
 
-   
 
-   /* Устанавливаем дату следующей профилактики +1 год */
 
-   RTC_SetProfTime(value);
 
-  802c9b8:	a801      	add	r0, sp, #4
 
-  802c9ba:	f7f9 fec1 	bl	8026740 <RTC_SetProfTime>
 
-   
 
-   /* Пока отправляем true */
 
-   strcpy(bufOut, "HTTP/1.0 200 OK\r\nContent-Type:text/html\r\n\r\nTrue");
 
-  802c9be:	4906      	ldr	r1, [pc, #24]	; (802c9d8 <HTTP_Prodate+0x64>)
 
-  802c9c0:	4620      	mov	r0, r4
 
-  802c9c2:	f7f5 fa17 	bl	8021df4 <strcpy>
 
-   *lenBufOut = strlen(bufOut);
 
-  802c9c6:	4620      	mov	r0, r4
 
-  802c9c8:	f7f5 fa72 	bl	8021eb0 <strlen>
 
-  802c9cc:	8038      	strh	r0, [r7, #0]
 
-   
 
-  // TEST_SetServerFlag();
 
- }
 
-  802c9ce:	b007      	add	sp, #28
 
-  802c9d0:	bdf0      	pop	{r4, r5, r6, r7, pc}
 
-  802c9d2:	bf00      	nop
 
-  802c9d4:	08040e0f 	.word	0x08040e0f
 
-  802c9d8:	08040e18 	.word	0x08040e18
 
- 0802c9dc <HTTP_UpsHistoryPage>:
 
- 	  }
 
-   }
 
- }
 
- int HTTP_UpsHistoryPage(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut)
 
- {
 
-  802c9dc:	b5f0      	push	{r4, r5, r6, r7, lr}
 
-   uint8_t i, valueLen = 0;
 
-  802c9de:	2500      	movs	r5, #0
 
- 	  }
 
-   }
 
- }
 
- int HTTP_UpsHistoryPage(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut)
 
- {
 
-  802c9e0:	b087      	sub	sp, #28
 
-  802c9e2:	4607      	mov	r7, r0
 
-   char value[20];
 
-   uint32_t nbytes = 0;
 
-   (void)lenBufIn;
 
-   memset(bufOut, 0, FILE_BUF_MAX_LEN);
 
-  802c9e4:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
 
-  802c9e8:	4608      	mov	r0, r1
 
- 	  }
 
-   }
 
- }
 
- int HTTP_UpsHistoryPage(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut)
 
- {
 
-  802c9ea:	460c      	mov	r4, r1
 
-   char value[20];
 
-   uint32_t nbytes = 0;
 
-   (void)lenBufIn;
 
-   memset(bufOut, 0, FILE_BUF_MAX_LEN);
 
-  802c9ec:	4629      	mov	r1, r5
 
- 	  }
 
-   }
 
- }
 
- int HTTP_UpsHistoryPage(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut)
 
- {
 
-  802c9ee:	461e      	mov	r6, r3
 
-   uint8_t i, valueLen = 0;
 
-  802c9f0:	f88d 5003 	strb.w	r5, [sp, #3]
 
-   char value[20];
 
-   uint32_t nbytes = 0;
 
-   (void)lenBufIn;
 
-   memset(bufOut, 0, FILE_BUF_MAX_LEN);
 
-  802c9f4:	f7f5 f884 	bl	8021b00 <memset>
 
-   ClearParamString(bufIn);
 
-  802c9f8:	4638      	mov	r0, r7
 
-  802c9fa:	f7ff ffa7 	bl	802c94c <ClearParamString>
 
-   memset(value, 0, 20);
 
-  802c9fe:	4629      	mov	r1, r5
 
-  802ca00:	2214      	movs	r2, #20
 
-  802ca02:	a801      	add	r0, sp, #4
 
-  802ca04:	f7f5 f87c 	bl	8021b00 <memset>
 
-   GetParamValue(bufIn, "page=", value, &valueLen);
 
-  802ca08:	491c      	ldr	r1, [pc, #112]	; (802ca7c <HTTP_UpsHistoryPage+0xa0>)
 
-  802ca0a:	4638      	mov	r0, r7
 
-  802ca0c:	aa01      	add	r2, sp, #4
 
-  802ca0e:	f10d 0303 	add.w	r3, sp, #3
 
-  802ca12:	f7ff fc2d 	bl	802c270 <GetParamValue>
 
-   if (strcmp(value, "all") == 0)
 
-  802ca16:	a801      	add	r0, sp, #4
 
-  802ca18:	4919      	ldr	r1, [pc, #100]	; (802ca80 <HTTP_UpsHistoryPage+0xa4>)
 
-  802ca1a:	f7f5 f8fd 	bl	8021c18 <strcmp>
 
-  802ca1e:	b9d8      	cbnz	r0, 802ca58 <HTTP_UpsHistoryPage+0x7c>
 
-   {
 
- 	  if (!LOG_IsInit()) {
 
-  802ca20:	f7fd f856 	bl	8029ad0 <LOG_IsInit>
 
-  802ca24:	b908      	cbnz	r0, 802ca2a <HTTP_UpsHistoryPage+0x4e>
 
- 		  return SEND_REQUIRED_NO;
 
-  802ca26:	2001      	movs	r0, #1
 
-  802ca28:	e026      	b.n	802ca78 <HTTP_UpsHistoryPage+0x9c>
 
- 	  }
 
-       if (fLogTransInprog == false) {
 
-  802ca2a:	4d16      	ldr	r5, [pc, #88]	; (802ca84 <HTTP_UpsHistoryPage+0xa8>)
 
-  802ca2c:	782b      	ldrb	r3, [r5, #0]
 
-  802ca2e:	2b00      	cmp	r3, #0
 
-  802ca30:	d1f9      	bne.n	802ca26 <HTTP_UpsHistoryPage+0x4a>
 
-         // Send log as raw data
 
-         log_ptr = 0;
 
-  802ca32:	4a15      	ldr	r2, [pc, #84]	; (802ca88 <HTTP_UpsHistoryPage+0xac>)
 
-  802ca34:	6013      	str	r3, [r2, #0]
 
-         log_size = LOG_GetTotalSTRCount() * STRING_SIZE;
 
-  802ca36:	f7fd f85d 	bl	8029af4 <LOG_GetTotalSTRCount>
 
-  802ca3a:	4b14      	ldr	r3, [pc, #80]	; (802ca8c <HTTP_UpsHistoryPage+0xb0>)
 
-         sprintf(bufOut, "HTTP/1.1 200 OK\r\nContent-Length:%lu\r\n\r\n", log_size);
 
-  802ca3c:	4914      	ldr	r1, [pc, #80]	; (802ca90 <HTTP_UpsHistoryPage+0xb4>)
 
-       if (fLogTransInprog == false) {
 
-         // Send log as raw data
 
-         log_ptr = 0;
 
-         log_size = LOG_GetTotalSTRCount() * STRING_SIZE;
 
-  802ca3e:	0182      	lsls	r2, r0, #6
 
-         sprintf(bufOut, "HTTP/1.1 200 OK\r\nContent-Length:%lu\r\n\r\n", log_size);
 
-  802ca40:	4620      	mov	r0, r4
 
-       if (fLogTransInprog == false) {
 
-         // Send log as raw data
 
-         log_ptr = 0;
 
-         log_size = LOG_GetTotalSTRCount() * STRING_SIZE;
 
-  802ca42:	601a      	str	r2, [r3, #0]
 
-         sprintf(bufOut, "HTTP/1.1 200 OK\r\nContent-Length:%lu\r\n\r\n", log_size);
 
-  802ca44:	f7fa fee6 	bl	8027814 <tfp_sprintf>
 
-         *lenBufOut = strlen(bufOut);
 
-  802ca48:	4620      	mov	r0, r4
 
-  802ca4a:	f7f5 fa31 	bl	8021eb0 <strlen>
 
-         // Set file transfer in progress flag
 
-         fLogTransInprog = true;
 
-  802ca4e:	2301      	movs	r3, #1
 
-         log_ptr = 0;
 
-         log_size = LOG_GetTotalSTRCount() * STRING_SIZE;
 
-         sprintf(bufOut, "HTTP/1.1 200 OK\r\nContent-Length:%lu\r\n\r\n", log_size);
 
-         *lenBufOut = strlen(bufOut);
 
-  802ca50:	8030      	strh	r0, [r6, #0]
 
-         // Set file transfer in progress flag
 
-         fLogTransInprog = true;
 
-  802ca52:	702b      	strb	r3, [r5, #0]
 
-         return SEND_REQUIRED_FILE;
 
-  802ca54:	2002      	movs	r0, #2
 
-  802ca56:	e00f      	b.n	802ca78 <HTTP_UpsHistoryPage+0x9c>
 
-           // We send nothing if file transfer already in progress
 
-           return SEND_REQUIRED_NO;
 
-      }
 
-   }
 
-   else {
 
- 	  if (!LOG_IsInit()) {
 
-  802ca58:	f7fd f83a 	bl	8029ad0 <LOG_IsInit>
 
-  802ca5c:	2800      	cmp	r0, #0
 
-  802ca5e:	d0e2      	beq.n	802ca26 <HTTP_UpsHistoryPage+0x4a>
 
- 		  return SEND_REQUIRED_NO;
 
- 	  }
 
- 	  else {
 
- 		  HTTP_GetUpsHistoryPage(bufOut, atoi(value));
 
-  802ca60:	a801      	add	r0, sp, #4
 
-  802ca62:	f7f4 ff2d 	bl	80218c0 <atoi>
 
-  802ca66:	4601      	mov	r1, r0
 
-  802ca68:	4620      	mov	r0, r4
 
-  802ca6a:	f001 f931 	bl	802dcd0 <HTTP_GetUpsHistoryPage>
 
- 		  *lenBufOut = strlen(bufOut);
 
-  802ca6e:	4620      	mov	r0, r4
 
-  802ca70:	f7f5 fa1e 	bl	8021eb0 <strlen>
 
-  802ca74:	8030      	strh	r0, [r6, #0]
 
- 		  return SEND_REQUIRED_YES;
 
-  802ca76:	4628      	mov	r0, r5
 
- 	  }
 
-   }
 
- }
 
-  802ca78:	b007      	add	sp, #28
 
-  802ca7a:	bdf0      	pop	{r4, r5, r6, r7, pc}
 
-  802ca7c:	08040e48 	.word	0x08040e48
 
-  802ca80:	08040e4e 	.word	0x08040e4e
 
-  802ca84:	20000d2c 	.word	0x20000d2c
 
-  802ca88:	20000d24 	.word	0x20000d24
 
-  802ca8c:	20000d30 	.word	0x20000d30
 
-  802ca90:	08040e52 	.word	0x08040e52
 
- 0802ca94 <HTTP_HistoryPage>:
 
- */	
 
-   }
 
- }  
 
- int HTTP_HistoryPage(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut)
 
- {
 
-  802ca94:	b5f0      	push	{r4, r5, r6, r7, lr}
 
-   uint8_t i, valueLen = 0;
 
-  802ca96:	2500      	movs	r5, #0
 
- */	
 
-   }
 
- }  
 
- int HTTP_HistoryPage(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut)
 
- {
 
-  802ca98:	b087      	sub	sp, #28
 
-  802ca9a:	4607      	mov	r7, r0
 
-   char value[20];
 
-   uint32_t nbytes = 0;
 
-   (void)lenBufIn;
 
-   memset(bufOut, 0, FILE_BUF_MAX_LEN);
 
-  802ca9c:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
 
-  802caa0:	4608      	mov	r0, r1
 
- */	
 
-   }
 
- }  
 
- int HTTP_HistoryPage(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut)
 
- {
 
-  802caa2:	460c      	mov	r4, r1
 
-   char value[20];
 
-   uint32_t nbytes = 0;
 
-   (void)lenBufIn;
 
-   memset(bufOut, 0, FILE_BUF_MAX_LEN);
 
-  802caa4:	4629      	mov	r1, r5
 
- */	
 
-   }
 
- }  
 
- int HTTP_HistoryPage(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut)
 
- {
 
-  802caa6:	461e      	mov	r6, r3
 
-   uint8_t i, valueLen = 0;
 
-  802caa8:	f88d 5003 	strb.w	r5, [sp, #3]
 
-   char value[20];
 
-   uint32_t nbytes = 0;
 
-   (void)lenBufIn;
 
-   memset(bufOut, 0, FILE_BUF_MAX_LEN);
 
-  802caac:	f7f5 f828 	bl	8021b00 <memset>
 
-   ClearParamString(bufIn);
 
-  802cab0:	4638      	mov	r0, r7
 
-  802cab2:	f7ff ff4b 	bl	802c94c <ClearParamString>
 
-   memset(value, 0, 20);
 
-  802cab6:	4629      	mov	r1, r5
 
-  802cab8:	2214      	movs	r2, #20
 
-  802caba:	a801      	add	r0, sp, #4
 
-  802cabc:	f7f5 f820 	bl	8021b00 <memset>
 
-   GetParamValue(bufIn, "page=", value, &valueLen);
 
-  802cac0:	491d      	ldr	r1, [pc, #116]	; (802cb38 <HTTP_HistoryPage+0xa4>)
 
-  802cac2:	4638      	mov	r0, r7
 
-  802cac4:	aa01      	add	r2, sp, #4
 
-  802cac6:	f10d 0303 	add.w	r3, sp, #3
 
-  802caca:	f7ff fbd1 	bl	802c270 <GetParamValue>
 
-   if (strcmp(value, "all") == 0)
 
-  802cace:	a801      	add	r0, sp, #4
 
-  802cad0:	491a      	ldr	r1, [pc, #104]	; (802cb3c <HTTP_HistoryPage+0xa8>)
 
-  802cad2:	f7f5 f8a1 	bl	8021c18 <strcmp>
 
-  802cad6:	b9e0      	cbnz	r0, 802cb12 <HTTP_HistoryPage+0x7e>
 
-   {
 
- 	  if (!LOG_IsInit()) {
 
-  802cad8:	f7fc fffa 	bl	8029ad0 <LOG_IsInit>
 
-  802cadc:	b908      	cbnz	r0, 802cae2 <HTTP_HistoryPage+0x4e>
 
- 		  return SEND_REQUIRED_NO;
 
-  802cade:	2001      	movs	r0, #1
 
-  802cae0:	e027      	b.n	802cb32 <HTTP_HistoryPage+0x9e>
 
- 	  }
 
-       if (fLogTransInprog == false) {
 
-  802cae2:	4d17      	ldr	r5, [pc, #92]	; (802cb40 <HTTP_HistoryPage+0xac>)
 
-  802cae4:	782b      	ldrb	r3, [r5, #0]
 
-  802cae6:	2b00      	cmp	r3, #0
 
-  802cae8:	d1f9      	bne.n	802cade <HTTP_HistoryPage+0x4a>
 
-         // Send log as raw data
 
-         log_ptr = 0;
 
-  802caea:	4a16      	ldr	r2, [pc, #88]	; (802cb44 <HTTP_HistoryPage+0xb0>)
 
-  802caec:	6013      	str	r3, [r2, #0]
 
-         log_size = History_GetTotalSTRCount() * STRING_SIZE_HISTORY;
 
-  802caee:	f7fd f8e5 	bl	8029cbc <History_GetTotalSTRCount>
 
-  802caf2:	4b15      	ldr	r3, [pc, #84]	; (802cb48 <HTTP_HistoryPage+0xb4>)
 
-         sprintf(bufOut, "HTTP/1.1 200 OK\r\nContent-Length:%lu\r\n\r\n", log_size);
 
-  802caf4:	4915      	ldr	r1, [pc, #84]	; (802cb4c <HTTP_HistoryPage+0xb8>)
 
-       if (fLogTransInprog == false) {
 
-         // Send log as raw data
 
-         log_ptr = 0;
 
-         log_size = History_GetTotalSTRCount() * STRING_SIZE_HISTORY;
 
-  802caf6:	2264      	movs	r2, #100	; 0x64
 
-  802caf8:	4342      	muls	r2, r0
 
-         sprintf(bufOut, "HTTP/1.1 200 OK\r\nContent-Length:%lu\r\n\r\n", log_size);
 
-  802cafa:	4620      	mov	r0, r4
 
-       if (fLogTransInprog == false) {
 
-         // Send log as raw data
 
-         log_ptr = 0;
 
-         log_size = History_GetTotalSTRCount() * STRING_SIZE_HISTORY;
 
-  802cafc:	601a      	str	r2, [r3, #0]
 
-         sprintf(bufOut, "HTTP/1.1 200 OK\r\nContent-Length:%lu\r\n\r\n", log_size);
 
-  802cafe:	f7fa fe89 	bl	8027814 <tfp_sprintf>
 
-         *lenBufOut = strlen(bufOut);
 
-  802cb02:	4620      	mov	r0, r4
 
-  802cb04:	f7f5 f9d4 	bl	8021eb0 <strlen>
 
-         // Set file transfer in progress flag
 
-         fLogTransInprog = true;
 
-  802cb08:	2301      	movs	r3, #1
 
-         log_ptr = 0;
 
-         log_size = History_GetTotalSTRCount() * STRING_SIZE_HISTORY;
 
-         sprintf(bufOut, "HTTP/1.1 200 OK\r\nContent-Length:%lu\r\n\r\n", log_size);
 
-         *lenBufOut = strlen(bufOut);
 
-  802cb0a:	8030      	strh	r0, [r6, #0]
 
-         // Set file transfer in progress flag
 
-         fLogTransInprog = true;
 
-  802cb0c:	702b      	strb	r3, [r5, #0]
 
-         return SEND_REQUIRED_FILE;
 
-  802cb0e:	2002      	movs	r0, #2
 
-  802cb10:	e00f      	b.n	802cb32 <HTTP_HistoryPage+0x9e>
 
-           // We send nothing if file transfer already in progress
 
-           return SEND_REQUIRED_NO;
 
-      }
 
-   }
 
-   else {
 
- 	  if (!LOG_IsInit()) {
 
-  802cb12:	f7fc ffdd 	bl	8029ad0 <LOG_IsInit>
 
-  802cb16:	2800      	cmp	r0, #0
 
-  802cb18:	d0e1      	beq.n	802cade <HTTP_HistoryPage+0x4a>
 
- 		  return SEND_REQUIRED_NO;
 
- 	  }
 
- 	  else {
 
- 		  HTTP_GetHistoryPage(bufOut, atoi(value));
 
-  802cb1a:	a801      	add	r0, sp, #4
 
-  802cb1c:	f7f4 fed0 	bl	80218c0 <atoi>
 
-  802cb20:	4601      	mov	r1, r0
 
-  802cb22:	4620      	mov	r0, r4
 
-  802cb24:	f001 f872 	bl	802dc0c <HTTP_GetHistoryPage>
 
- 		  *lenBufOut = strlen(bufOut);
 
-  802cb28:	4620      	mov	r0, r4
 
-  802cb2a:	f7f5 f9c1 	bl	8021eb0 <strlen>
 
-  802cb2e:	8030      	strh	r0, [r6, #0]
 
- 		  return SEND_REQUIRED_YES;
 
-  802cb30:	4628      	mov	r0, r5
 
- 	  }
 
-   }
 
- }
 
-  802cb32:	b007      	add	sp, #28
 
-  802cb34:	bdf0      	pop	{r4, r5, r6, r7, pc}
 
-  802cb36:	bf00      	nop
 
-  802cb38:	08040e48 	.word	0x08040e48
 
-  802cb3c:	08040e4e 	.word	0x08040e4e
 
-  802cb40:	20000d2c 	.word	0x20000d2c
 
-  802cb44:	20000d24 	.word	0x20000d24
 
-  802cb48:	20000d30 	.word	0x20000d30
 
-  802cb4c:	08040e52 	.word	0x08040e52
 
- 0802cb50 <HTTP_ChangeUserPwd>:
 
- /**
 
-   * @brief  Смена пароля пользователя
 
-   * @retval None
 
-   */
 
- int HTTP_ChangeUserPwd(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut)
 
- {
 
-  802cb50:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
 
-  802cb54:	b0b0      	sub	sp, #192	; 0xc0
 
-  802cb56:	4605      	mov	r5, r0
 
-  802cb58:	460c      	mov	r4, r1
 
-     uint8_t valueLen, valueLen2, user_id;
 
-     char WebLogin[MAX_WEB_LOGIN_LEN];
 
-     (void)lenBufIn;
 
-     memset(login, 0, 20);
 
-  802cb5a:	2214      	movs	r2, #20
 
-  802cb5c:	2100      	movs	r1, #0
 
-  802cb5e:	a80a      	add	r0, sp, #40	; 0x28
 
- /**
 
-   * @brief  Смена пароля пользователя
 
-   * @retval None
 
-   */
 
- int HTTP_ChangeUserPwd(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut)
 
- {
 
-  802cb60:	461e      	mov	r6, r3
 
-     uint8_t valueLen, valueLen2, user_id;
 
-     char WebLogin[MAX_WEB_LOGIN_LEN];
 
-     (void)lenBufIn;
 
-     memset(login, 0, 20);
 
-  802cb62:	f7f4 ffcd 	bl	8021b00 <memset>
 
-     memset(password, 0, 20);
 
-  802cb66:	2100      	movs	r1, #0
 
-  802cb68:	2214      	movs	r2, #20
 
-  802cb6a:	a80f      	add	r0, sp, #60	; 0x3c
 
-  802cb6c:	f7f4 ffc8 	bl	8021b00 <memset>
 
-     memset(tempStr, 0, 50);
 
-     memset(value, 0, 20);
 
-  802cb70:	af05      	add	r7, sp, #20
 
-     (void)lenBufIn;
 
-     memset(login, 0, 20);
 
-     memset(password, 0, 20);
 
-     memset(tempStr, 0, 50);
 
-  802cb72:	2100      	movs	r1, #0
 
-  802cb74:	2232      	movs	r2, #50	; 0x32
 
-  802cb76:	a814      	add	r0, sp, #80	; 0x50
 
-  802cb78:	f7f4 ffc2 	bl	8021b00 <memset>
 
-     memset(value, 0, 20);
 
-  802cb7c:	2100      	movs	r1, #0
 
-  802cb7e:	2214      	movs	r2, #20
 
-  802cb80:	4638      	mov	r0, r7
 
-  802cb82:	f7f4 ffbd 	bl	8021b00 <memset>
 
-     ClearParamString(bufIn);
 
-  802cb86:	4628      	mov	r0, r5
 
-  802cb88:	f7ff fee0 	bl	802c94c <ClearParamString>
 
-     strncpy(tempStr, bufIn, 110);
 
-  802cb8c:	226e      	movs	r2, #110	; 0x6e
 
-  802cb8e:	4629      	mov	r1, r5
 
-  802cb90:	a814      	add	r0, sp, #80	; 0x50
 
-  802cb92:	f7f5 fa45 	bl	8022020 <strncpy>
 
-     strcpy(bufOut, HTTP_200_OK);
 
-     if (GetParamValue(tempStr, "username=", login, &valueLen) &&
 
-  802cb96:	f10d 0806 	add.w	r8, sp, #6
 
-     ClearParamString(bufIn);
 
-     strncpy(tempStr, bufIn, 110);
 
-     strcpy(bufOut, HTTP_200_OK);
 
-  802cb9a:	4933      	ldr	r1, [pc, #204]	; (802cc68 <HTTP_ChangeUserPwd+0x118>)
 
-  802cb9c:	4620      	mov	r0, r4
 
-  802cb9e:	f7f5 f929 	bl	8021df4 <strcpy>
 
-     if (GetParamValue(tempStr, "username=", login, &valueLen) &&
 
-  802cba2:	a814      	add	r0, sp, #80	; 0x50
 
-  802cba4:	4931      	ldr	r1, [pc, #196]	; (802cc6c <HTTP_ChangeUserPwd+0x11c>)
 
-  802cba6:	aa0a      	add	r2, sp, #40	; 0x28
 
-  802cba8:	4643      	mov	r3, r8
 
-  802cbaa:	f7ff fb61 	bl	802c270 <GetParamValue>
 
-  802cbae:	2800      	cmp	r0, #0
 
-  802cbb0:	d04e      	beq.n	802cc50 <HTTP_ChangeUserPwd+0x100>
 
-         GetParamValue(tempStr, "oldpass=", password, &valueLen))
 
-  802cbb2:	a814      	add	r0, sp, #80	; 0x50
 
-  802cbb4:	492e      	ldr	r1, [pc, #184]	; (802cc70 <HTTP_ChangeUserPwd+0x120>)
 
-  802cbb6:	aa0f      	add	r2, sp, #60	; 0x3c
 
-  802cbb8:	4643      	mov	r3, r8
 
-  802cbba:	f7ff fb59 	bl	802c270 <GetParamValue>
 
-     strncpy(tempStr, bufIn, 110);
 
-     strcpy(bufOut, HTTP_200_OK);
 
-     if (GetParamValue(tempStr, "username=", login, &valueLen) &&
 
-  802cbbe:	2800      	cmp	r0, #0
 
-  802cbc0:	d046      	beq.n	802cc50 <HTTP_ChangeUserPwd+0x100>
 
-  802cbc2:	2500      	movs	r5, #0
 
-         GetParamValue(tempStr, "oldpass=", password, &valueLen))
 
-     {
 
-           for (user_id = 0; user_id < MAX_WEB_USERS; user_id++)
 
-           {
 
-         	  memset(value, 0, 20);
 
-  802cbc4:	2100      	movs	r1, #0
 
-  802cbc6:	2214      	movs	r2, #20
 
-  802cbc8:	4638      	mov	r0, r7
 
-  802cbca:	f7f4 ff99 	bl	8021b00 <memset>
 
- 			  memset(WebLogin, 0, MAX_WEB_LOGIN_LEN);
 
-  802cbce:	2100      	movs	r1, #0
 
-  802cbd0:	220b      	movs	r2, #11
 
-  802cbd2:	a802      	add	r0, sp, #8
 
-  802cbd4:	f7f4 ff94 	bl	8021b00 <memset>
 
- 			 GetUserLogin(user_id, WebLogin, &valueLen);
 
-  802cbd8:	4628      	mov	r0, r5
 
-  802cbda:	a902      	add	r1, sp, #8
 
-  802cbdc:	4642      	mov	r2, r8
 
-  802cbde:	f7fb f903 	bl	8027de8 <GetUserLogin>
 
- 			 GetUserPassword(user_id, value, &valueLen2);
 
-  802cbe2:	4628      	mov	r0, r5
 
-  802cbe4:	4639      	mov	r1, r7
 
-  802cbe6:	f10d 0207 	add.w	r2, sp, #7
 
-  802cbea:	f7fb f913 	bl	8027e14 <GetUserPassword>
 
- 			 /* Check login and password */
 
- 			 if ((strncmp(WebLogin, login, MAX_WEB_LOGIN_LEN) == 0) &&
 
-  802cbee:	a802      	add	r0, sp, #8
 
-  802cbf0:	a90a      	add	r1, sp, #40	; 0x28
 
-  802cbf2:	220b      	movs	r2, #11
 
-  802cbf4:	f7f5 f9be 	bl	8021f74 <strncmp>
 
-  802cbf8:	bb18      	cbnz	r0, 802cc42 <HTTP_ChangeUserPwd+0xf2>
 
- 				 (memcmp(password, value, 11) == 0))
 
-  802cbfa:	4639      	mov	r1, r7
 
-  802cbfc:	a80f      	add	r0, sp, #60	; 0x3c
 
-  802cbfe:	220b      	movs	r2, #11
 
-  802cc00:	f7f4 fe92 	bl	8021928 <memcmp>
 
-         	  memset(value, 0, 20);
 
- 			  memset(WebLogin, 0, MAX_WEB_LOGIN_LEN);
 
- 			 GetUserLogin(user_id, WebLogin, &valueLen);
 
- 			 GetUserPassword(user_id, value, &valueLen2);
 
- 			 /* Check login and password */
 
- 			 if ((strncmp(WebLogin, login, MAX_WEB_LOGIN_LEN) == 0) &&
 
-  802cc04:	4601      	mov	r1, r0
 
-  802cc06:	b9e0      	cbnz	r0, 802cc42 <HTTP_ChangeUserPwd+0xf2>
 
- 				 (memcmp(password, value, 11) == 0))
 
- 			 {
 
- 				 memset(password, 0, 20);
 
-  802cc08:	2214      	movs	r2, #20
 
-  802cc0a:	a80f      	add	r0, sp, #60	; 0x3c
 
-  802cc0c:	f7f4 ff78 	bl	8021b00 <memset>
 
- 				 if (GetParamValue(tempStr, "newpass=", password, &valueLen))
 
-  802cc10:	a814      	add	r0, sp, #80	; 0x50
 
-  802cc12:	4918      	ldr	r1, [pc, #96]	; (802cc74 <HTTP_ChangeUserPwd+0x124>)
 
-  802cc14:	aa0f      	add	r2, sp, #60	; 0x3c
 
-  802cc16:	4643      	mov	r3, r8
 
-  802cc18:	f7ff fb2a 	bl	802c270 <GetParamValue>
 
-  802cc1c:	b1c0      	cbz	r0, 802cc50 <HTTP_ChangeUserPwd+0x100>
 
- 				 {
 
- 					 memcpy(sSettings.sAuth[user_id].password, password, 11);
 
-  802cc1e:	4b16      	ldr	r3, [pc, #88]	; (802cc78 <HTTP_ChangeUserPwd+0x128>)
 
-  802cc20:	2217      	movs	r2, #23
 
-  802cc22:	fb02 3005 	mla	r0, r2, r5, r3
 
-  802cc26:	a90f      	add	r1, sp, #60	; 0x3c
 
-  802cc28:	220b      	movs	r2, #11
 
-  802cc2a:	3005      	adds	r0, #5
 
-  802cc2c:	f7f4 feae 	bl	802198c <memcpy>
 
- 					 HTTP_SaveSettings();
 
-  802cc30:	f001 f8c4 	bl	802ddbc <HTTP_SaveSettings>
 
- 					 log_event_data(LOG_PSW_CHANGE, "Администратор");
 
-  802cc34:	2003      	movs	r0, #3
 
-  802cc36:	4911      	ldr	r1, [pc, #68]	; (802cc7c <HTTP_ChangeUserPwd+0x12c>)
 
-  802cc38:	f7fc ff10 	bl	8029a5c <log_event_data>
 
- 					 strcat(bufOut, "Пароль успешно изменён");
 
-  802cc3c:	4620      	mov	r0, r4
 
-  802cc3e:	4910      	ldr	r1, [pc, #64]	; (802cc80 <HTTP_ChangeUserPwd+0x130>)
 
-  802cc40:	e008      	b.n	802cc54 <HTTP_ChangeUserPwd+0x104>
 
-     strcpy(bufOut, HTTP_200_OK);
 
-     if (GetParamValue(tempStr, "username=", login, &valueLen) &&
 
-         GetParamValue(tempStr, "oldpass=", password, &valueLen))
 
-     {
 
-           for (user_id = 0; user_id < MAX_WEB_USERS; user_id++)
 
-  802cc42:	3501      	adds	r5, #1
 
-  802cc44:	b2ed      	uxtb	r5, r5
 
-  802cc46:	2d02      	cmp	r5, #2
 
-  802cc48:	d1bc      	bne.n	802cbc4 <HTTP_ChangeUserPwd+0x74>
 
- 					  *lenBufOut = strlen(bufOut);
 
- 					  return SEND_REQUIRED_YES;
 
- 				 }
 
- 			 }
 
-           }
 
-           strcat(bufOut, "Введён неверный пароль!");
 
-  802cc4a:	4620      	mov	r0, r4
 
-  802cc4c:	490d      	ldr	r1, [pc, #52]	; (802cc84 <HTTP_ChangeUserPwd+0x134>)
 
-  802cc4e:	e001      	b.n	802cc54 <HTTP_ChangeUserPwd+0x104>
 
-           *lenBufOut = strlen(bufOut);
 
-           return SEND_REQUIRED_YES;
 
-   }
 
-   else {
 
-       strcat(bufOut, "Введены некорректные данные!");
 
-  802cc50:	490d      	ldr	r1, [pc, #52]	; (802cc88 <HTTP_ChangeUserPwd+0x138>)
 
-  802cc52:	4620      	mov	r0, r4
 
-  802cc54:	f7f4 ffba 	bl	8021bcc <strcat>
 
-       *lenBufOut = strlen(bufOut);
 
-  802cc58:	4620      	mov	r0, r4
 
-  802cc5a:	f7f5 f929 	bl	8021eb0 <strlen>
 
-  802cc5e:	8030      	strh	r0, [r6, #0]
 
-       return SEND_REQUIRED_YES;
 
-   }
 
- }
 
-  802cc60:	2000      	movs	r0, #0
 
-  802cc62:	b030      	add	sp, #192	; 0xc0
 
-  802cc64:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 
-  802cc68:	08044669 	.word	0x08044669
 
-  802cc6c:	08040e7a 	.word	0x08040e7a
 
-  802cc70:	08040e84 	.word	0x08040e84
 
-  802cc74:	08040e8d 	.word	0x08040e8d
 
-  802cc78:	2000d2dc 	.word	0x2000d2dc
 
-  802cc7c:	08039ab8 	.word	0x08039ab8
 
-  802cc80:	08040e96 	.word	0x08040e96
 
-  802cc84:	08040ef7 	.word	0x08040ef7
 
-  802cc88:	08040ec1 	.word	0x08040ec1
 
- 0802cc8c <http_recv>:
 
-   * @param p: pointer to a packet buffer
 
-   * @param err: LwIP error code
 
-   * @retval err
 
-   */
 
- static err_t http_recv(void *arg, struct tcp_pcb *pcb,  struct pbuf *p, err_t err)
 
- {
 
-  802cc8c:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-  802cc90:	b09d      	sub	sp, #116	; 0x74
 
-  802cc92:	4690      	mov	r8, r2
 
-   struct http_state *hs;
 
-   char CookieBuf[50];
 
-   char *CookiePtr = NULL;
 
-   char name[MAX_WEB_COOKIE_LEN];
 
-   char id[MAX_WEB_COOKIE_LEN];
 
-   uint8_t nameLen = 0, idLen = 0;
 
-  802cc94:	2200      	movs	r2, #0
 
-   * @param p: pointer to a packet buffer
 
-   * @param err: LwIP error code
 
-   * @retval err
 
-   */
 
- static err_t http_recv(void *arg, struct tcp_pcb *pcb,  struct pbuf *p, err_t err)
 
- {
 
-  802cc96:	4604      	mov	r4, r0
 
-  802cc98:	460d      	mov	r5, r1
 
-   struct http_state *hs;
 
-   char CookieBuf[50];
 
-   char *CookiePtr = NULL;
 
-   char name[MAX_WEB_COOKIE_LEN];
 
-   char id[MAX_WEB_COOKIE_LEN];
 
-   uint8_t nameLen = 0, idLen = 0;
 
-  802cc9a:	f88d 200a 	strb.w	r2, [sp, #10]
 
-  802cc9e:	f88d 200b 	strb.w	r2, [sp, #11]
 
-   struct fs_file file = {0, 0};
 
-  802cca2:	9205      	str	r2, [sp, #20]
 
-  802cca4:	9206      	str	r2, [sp, #24]
 
-   
 
-   hs = arg;
 
-   if (err == ERR_OK && p != NULL)
 
-  802cca6:	2b00      	cmp	r3, #0
 
-  802cca8:	f040 83ac 	bne.w	802d404 <http_recv+0x778>
 
-  802ccac:	f1b8 0f00 	cmp.w	r8, #0
 
-  802ccb0:	f000 83a8 	beq.w	802d404 <http_recv+0x778>
 
-   {
 
-     tcp_recved(pcb, p->tot_len);
 
-  802ccb4:	4608      	mov	r0, r1
 
-  802ccb6:	f8b8 1008 	ldrh.w	r1, [r8, #8]
 
-  802ccba:	f003 fbbb 	bl	8030434 <tcp_recved>
 
-   
 
- 	if (hs->file == NULL)
 
-  802ccbe:	f8d4 9000 	ldr.w	r9, [r4]
 
-  802ccc2:	f1b9 0f00 	cmp.w	r9, #0
 
-  802ccc6:	f040 839a 	bne.w	802d3fe <http_recv+0x772>
 
- 	  printLen = p->tot_len;
 
- 	  memcpy(printBuf, p->payload , printLen);
 
- 	  printf(printBuf);
 
- */	  
 
- 	  receivedBufLen = p->tot_len;
 
- 	  memcpy(receiveBuf, p->payload , receivedBufLen);
 
-  802ccca:	f8df a2e0 	ldr.w	sl, [pc, #736]	; 802cfac <http_recv+0x320>
 
-   {
 
-     tcp_recved(pcb, p->tot_len);
 
-   
 
- 	if (hs->file == NULL)
 
-     {
 
-       data = p->payload;
 
-  802ccce:	f8d8 6004 	ldr.w	r6, [r8, #4]
 
- /*	  
 
- 	  printLen = p->tot_len;
 
- 	  memcpy(printBuf, p->payload , printLen);
 
- 	  printf(printBuf);
 
- */	  
 
- 	  receivedBufLen = p->tot_len;
 
-  802ccd2:	f8b8 2008 	ldrh.w	r2, [r8, #8]
 
-  802ccd6:	4fa0      	ldr	r7, [pc, #640]	; (802cf58 <http_recv+0x2cc>)
 
- 	  memcpy(receiveBuf, p->payload , receivedBufLen);
 
-  802ccd8:	4650      	mov	r0, sl
 
-  802ccda:	4631      	mov	r1, r6
 
- /*	  
 
- 	  printLen = p->tot_len;
 
- 	  memcpy(printBuf, p->payload , printLen);
 
- 	  printf(printBuf);
 
- */	  
 
- 	  receivedBufLen = p->tot_len;
 
-  802ccdc:	803a      	strh	r2, [r7, #0]
 
- 	  memcpy(receiveBuf, p->payload , receivedBufLen);
 
-  802ccde:	f7f4 fe55 	bl	802198c <memcpy>
 
- 	  receiveBuf[receivedBufLen] = '\0';
 
-  802cce2:	883b      	ldrh	r3, [r7, #0]
 
- 	 // printf("receive %s \r\n", receiveBuf);
 
- 	  /* Get cookie "uname" value */
 
- 	  CookiePtr = strstr(receiveBuf, "uname=");
 
-  802cce4:	499d      	ldr	r1, [pc, #628]	; (802cf5c <http_recv+0x2d0>)
 
- 	  printf(printBuf);
 
- */	  
 
- 	  receivedBufLen = p->tot_len;
 
- 	  memcpy(receiveBuf, p->payload , receivedBufLen);
 
- 	  receiveBuf[receivedBufLen] = '\0';
 
-  802cce6:	f80a 9003 	strb.w	r9, [sl, r3]
 
- 	 // printf("receive %s \r\n", receiveBuf);
 
- 	  /* Get cookie "uname" value */
 
- 	  CookiePtr = strstr(receiveBuf, "uname=");
 
-  802ccea:	4650      	mov	r0, sl
 
-  802ccec:	f7f5 fb60 	bl	80223b0 <strstr>
 
- 	  strncpy(CookieBuf, CookiePtr, 50);
 
-  802ccf0:	af0f      	add	r7, sp, #60	; 0x3c
 
- 	  memcpy(receiveBuf, p->payload , receivedBufLen);
 
- 	  receiveBuf[receivedBufLen] = '\0';
 
- 	 // printf("receive %s \r\n", receiveBuf);
 
- 	  /* Get cookie "uname" value */
 
- 	  CookiePtr = strstr(receiveBuf, "uname=");
 
-  802ccf2:	4601      	mov	r1, r0
 
- 	  strncpy(CookieBuf, CookiePtr, 50);
 
-  802ccf4:	2232      	movs	r2, #50	; 0x32
 
-  802ccf6:	4638      	mov	r0, r7
 
-  802ccf8:	f7f5 f992 	bl	8022020 <strncpy>
 
- 	  //printf("********CookieBuf1= %s\r\n", CookieBuf);
 
- 	  memset(name, 0, MAX_WEB_COOKIE_LEN);
 
-  802ccfc:	4649      	mov	r1, r9
 
-  802ccfe:	2210      	movs	r2, #16
 
-  802cd00:	a807      	add	r0, sp, #28
 
-  802cd02:	f7f4 fefd 	bl	8021b00 <memset>
 
- 	  GetCookieValue(CookieBuf, "uname=", name, &nameLen);
 
-  802cd06:	f10d 030a 	add.w	r3, sp, #10
 
-  802cd0a:	aa07      	add	r2, sp, #28
 
-  802cd0c:	4993      	ldr	r1, [pc, #588]	; (802cf5c <http_recv+0x2d0>)
 
-  802cd0e:	4638      	mov	r0, r7
 
-  802cd10:	f7ff fdee 	bl	802c8f0 <GetCookieValue>
 
- 	  //printf("********CookieBuf2= %s\r\n", CookieBuf);
 
- 	  //printf("********uname= %s\r\n", name);
 
- 	   /* Get cookie "id" value */
 
- 	   CookiePtr = strstr(receiveBuf, "id=");
 
-  802cd14:	4650      	mov	r0, sl
 
-  802cd16:	4992      	ldr	r1, [pc, #584]	; (802cf60 <http_recv+0x2d4>)
 
-  802cd18:	f7f5 fb4a 	bl	80223b0 <strstr>
 
- 	   strncpy(CookieBuf, CookiePtr, 50);
 
- 	   //printf("********CookieBuf1= %s\r\n", CookieBuf);
 
- 	   memset(id, 0, MAX_WEB_COOKIE_LEN);
 
-  802cd1c:	f10d 0b2c 	add.w	fp, sp, #44	; 0x2c
 
- 	  GetCookieValue(CookieBuf, "uname=", name, &nameLen);
 
- 	  //printf("********CookieBuf2= %s\r\n", CookieBuf);
 
- 	  //printf("********uname= %s\r\n", name);
 
- 	   /* Get cookie "id" value */
 
- 	   CookiePtr = strstr(receiveBuf, "id=");
 
-  802cd20:	4601      	mov	r1, r0
 
- 	   strncpy(CookieBuf, CookiePtr, 50);
 
-  802cd22:	2232      	movs	r2, #50	; 0x32
 
-  802cd24:	4638      	mov	r0, r7
 
-  802cd26:	f7f5 f97b 	bl	8022020 <strncpy>
 
- 	   //printf("********CookieBuf1= %s\r\n", CookieBuf);
 
- 	   memset(id, 0, MAX_WEB_COOKIE_LEN);
 
-  802cd2a:	4649      	mov	r1, r9
 
-  802cd2c:	2210      	movs	r2, #16
 
-  802cd2e:	4658      	mov	r0, fp
 
-  802cd30:	f7f4 fee6 	bl	8021b00 <memset>
 
- 	   GetCookieValue(CookieBuf, "id=", id, &idLen);
 
-  802cd34:	465a      	mov	r2, fp
 
-  802cd36:	f10d 030b 	add.w	r3, sp, #11
 
-  802cd3a:	4638      	mov	r0, r7
 
-  802cd3c:	4988      	ldr	r1, [pc, #544]	; (802cf60 <http_recv+0x2d4>)
 
-  802cd3e:	f7ff fdd7 	bl	802c8f0 <GetCookieValue>
 
- 	   /* Id of currently logged-in user */
 
- 	   uint8_t user_id;
 
- 	   /* Level of currently logged-in user */
 
- 	   seclevel = 0xFF;
 
-  802cd42:	4b88      	ldr	r3, [pc, #544]	; (802cf64 <http_recv+0x2d8>)
 
-  802cd44:	22ff      	movs	r2, #255	; 0xff
 
-  802cd46:	701a      	strb	r2, [r3, #0]
 
- /**
 
-   * @brief Чтение Cookie пользователя
 
-   */
 
- static void HTTP_GetUserCookie(uint8_t user_id, char *str, uint8_t *len)
 
- {
 
-     sprintf(str, "%s", users[user_id].cookie);
 
-  802cd48:	4b87      	ldr	r3, [pc, #540]	; (802cf68 <http_recv+0x2dc>)
 
- 	   uint8_t user_id;
 
- 	   /* Level of currently logged-in user */
 
- 	   seclevel = 0xFF;
 
- 	   for (user_id = 0; user_id < MAX_WEB_USERS; user_id++) {
 
- 		   HTTP_GetUserCookie(user_id, CookieBuf, &idLen);
 
-  802cd4a:	46ba      	mov	sl, r7
 
- /**
 
-   * @brief Чтение Cookie пользователя
 
-   */
 
- static void HTTP_GetUserCookie(uint8_t user_id, char *str, uint8_t *len)
 
- {
 
-     sprintf(str, "%s", users[user_id].cookie);
 
-  802cd4c:	2214      	movs	r2, #20
 
-  802cd4e:	fb02 3209 	mla	r2, r2, r9, r3
 
-  802cd52:	4986      	ldr	r1, [pc, #536]	; (802cf6c <http_recv+0x2e0>)
 
-  802cd54:	9301      	str	r3, [sp, #4]
 
-  802cd56:	4650      	mov	r0, sl
 
-  802cd58:	f7fa fd5c 	bl	8027814 <tfp_sprintf>
 
-     *len = strlen(str);
 
-  802cd5c:	4650      	mov	r0, sl
 
-  802cd5e:	f7f5 f8a7 	bl	8021eb0 <strlen>
 
-  802cd62:	4602      	mov	r2, r0
 
-  802cd64:	f88d 000b 	strb.w	r0, [sp, #11]
 
- 	   /* Level of currently logged-in user */
 
- 	   seclevel = 0xFF;
 
- 	   for (user_id = 0; user_id < MAX_WEB_USERS; user_id++) {
 
- 		   HTTP_GetUserCookie(user_id, CookieBuf, &idLen);
 
- 		   if (strncmp(id, CookieBuf, idLen) == 0 ) {
 
-  802cd68:	b2d2      	uxtb	r2, r2
 
-  802cd6a:	4658      	mov	r0, fp
 
-  802cd6c:	4651      	mov	r1, sl
 
-  802cd6e:	f7f5 f901 	bl	8021f74 <strncmp>
 
-  802cd72:	fa5f f789 	uxtb.w	r7, r9
 
-  802cd76:	4a7e      	ldr	r2, [pc, #504]	; (802cf70 <http_recv+0x2e4>)
 
-  802cd78:	9b01      	ldr	r3, [sp, #4]
 
-  802cd7a:	b940      	cbnz	r0, 802cd8e <http_recv+0x102>
 
- 			   GetUserLevelInt(user_id, &seclevel);
 
-  802cd7c:	4638      	mov	r0, r7
 
-  802cd7e:	4979      	ldr	r1, [pc, #484]	; (802cf64 <http_recv+0x2d8>)
 
-  802cd80:	9201      	str	r2, [sp, #4]
 
-  802cd82:	f7fb f85d 	bl	8027e40 <GetUserLevelInt>
 
- 			   Authenticated = true;
 
-  802cd86:	9a01      	ldr	r2, [sp, #4]
 
-  802cd88:	2301      	movs	r3, #1
 
-  802cd8a:	7013      	strb	r3, [r2, #0]
 
- 			   break;
 
-  802cd8c:	e00a      	b.n	802cda4 <http_recv+0x118>
 
- 		   }
 
- 		   Authenticated = false;
 
-  802cd8e:	2100      	movs	r1, #0
 
-  802cd90:	7011      	strb	r1, [r2, #0]
 
-  802cd92:	f109 0901 	add.w	r9, r9, #1
 
- 		   seclevel = 0xFF;
 
-  802cd96:	4a73      	ldr	r2, [pc, #460]	; (802cf64 <http_recv+0x2d8>)
 
-  802cd98:	21ff      	movs	r1, #255	; 0xff
 
- 	   /* Id of currently logged-in user */
 
- 	   uint8_t user_id;
 
- 	   /* Level of currently logged-in user */
 
- 	   seclevel = 0xFF;
 
- 	   for (user_id = 0; user_id < MAX_WEB_USERS; user_id++) {
 
-  802cd9a:	f1b9 0f02 	cmp.w	r9, #2
 
- 			   GetUserLevelInt(user_id, &seclevel);
 
- 			   Authenticated = true;
 
- 			   break;
 
- 		   }
 
- 		   Authenticated = false;
 
- 		   seclevel = 0xFF;
 
-  802cd9e:	7011      	strb	r1, [r2, #0]
 
- 	   /* Id of currently logged-in user */
 
- 	   uint8_t user_id;
 
- 	   /* Level of currently logged-in user */
 
- 	   seclevel = 0xFF;
 
- 	   for (user_id = 0; user_id < MAX_WEB_USERS; user_id++) {
 
-  802cda0:	d1d4      	bne.n	802cd4c <http_recv+0xc0>
 
-  802cda2:	464f      	mov	r7, r9
 
- 		   }
 
- 		   Authenticated = false;
 
- 		   seclevel = 0xFF;
 
- 	   }
 
- 	   if ( Authenticated == false && sSettings.sRADIUS.Auth_enable == false)
 
-  802cda4:	4b72      	ldr	r3, [pc, #456]	; (802cf70 <http_recv+0x2e4>)
 
-  802cda6:	781b      	ldrb	r3, [r3, #0]
 
-  802cda8:	2b00      	cmp	r3, #0
 
-  802cdaa:	f040 8136 	bne.w	802d01a <http_recv+0x38e>
 
-  802cdae:	4b71      	ldr	r3, [pc, #452]	; (802cf74 <http_recv+0x2e8>)
 
-  802cdb0:	f893 3378 	ldrb.w	r3, [r3, #888]	; 0x378
 
-  802cdb4:	b933      	cbnz	r3, 802cdc4 <http_recv+0x138>
 
- 	   {
 
- 		  HTTP_LOGIN(sendBuf, &sendBufLoadLen);
 
-  802cdb6:	4f70      	ldr	r7, [pc, #448]	; (802cf78 <http_recv+0x2ec>)
 
-  802cdb8:	4e70      	ldr	r6, [pc, #448]	; (802cf7c <http_recv+0x2f0>)
 
-  802cdba:	4638      	mov	r0, r7
 
-  802cdbc:	4631      	mov	r1, r6
 
-  802cdbe:	f7ff f9ff 	bl	802c1c0 <HTTP_LOGIN>
 
-  802cdc2:	e306      	b.n	802d3d2 <http_recv+0x746>
 
- 		  tcp_sent(pcb, http_sent);
 
- 	   }
 
- 	   else if ( Authenticated == false )//&& sSettings.sRADIUS.Auth_enable == true
 
- 	  {
 
- 		  if (strncmp(data, "GET /main.css", 13) == 0) // +
 
-  802cdc4:	4630      	mov	r0, r6
 
-  802cdc6:	496e      	ldr	r1, [pc, #440]	; (802cf80 <http_recv+0x2f4>)
 
-  802cdc8:	220d      	movs	r2, #13
 
-  802cdca:	f7f5 f8d3 	bl	8021f74 <strncmp>
 
-  802cdce:	b900      	cbnz	r0, 802cdd2 <http_recv+0x146>
 
-  802cdd0:	e129      	b.n	802d026 <http_recv+0x39a>
 
- 			 hs->file = file.data;
 
- 			 hs->left = file.len;
 
- 			 send_data(pcb, hs);
 
- 			 tcp_sent(pcb, http_sent);
 
- 		  }
 
- 		  else if (strncmp(data, "GET /rotek.png", 14) == 0) // +
 
-  802cdd2:	4630      	mov	r0, r6
 
-  802cdd4:	496b      	ldr	r1, [pc, #428]	; (802cf84 <http_recv+0x2f8>)
 
-  802cdd6:	220e      	movs	r2, #14
 
-  802cdd8:	f7f5 f8cc 	bl	8021f74 <strncmp>
 
-  802cddc:	b900      	cbnz	r0, 802cde0 <http_recv+0x154>
 
-  802cdde:	e12a      	b.n	802d036 <http_recv+0x3aa>
 
- 			 hs->file = file.data;
 
- 			 hs->left = file.len;
 
- 			 send_data(pcb, hs);
 
- 			 tcp_sent(pcb, http_sent);
 
- 		  }
 
- 		else if (strncmp(data, "GET /favicon.ico", 16) == 0) // ?
 
-  802cde0:	4630      	mov	r0, r6
 
-  802cde2:	4969      	ldr	r1, [pc, #420]	; (802cf88 <http_recv+0x2fc>)
 
-  802cde4:	2210      	movs	r2, #16
 
-  802cde6:	f7f5 f8c5 	bl	8021f74 <strncmp>
 
-  802cdea:	b900      	cbnz	r0, 802cdee <http_recv+0x162>
 
-  802cdec:	e12b      	b.n	802d046 <http_recv+0x3ba>
 
- 			 hs->file = file.data;
 
- 			 hs->left = file.len;
 
- 			 send_data(pcb, hs);
 
- 			 tcp_sent(pcb, http_sent);
 
- 		}
 
- 		else if (strncmp(data, "GET /role.js", 12) == 0)
 
-  802cdee:	4630      	mov	r0, r6
 
-  802cdf0:	4966      	ldr	r1, [pc, #408]	; (802cf8c <http_recv+0x300>)
 
-  802cdf2:	220c      	movs	r2, #12
 
-  802cdf4:	f7f5 f8be 	bl	8021f74 <strncmp>
 
-  802cdf8:	b900      	cbnz	r0, 802cdfc <http_recv+0x170>
 
-  802cdfa:	e134      	b.n	802d066 <http_recv+0x3da>
 
- 		  hs->left = file.len;
 
- 		  send_data(pcb, hs);
 
- 		  tcp_sent(pcb, http_sent);
 
- 		}
 
- 		  else if ((strncmp(data, "POST /login.cgi", 15) == 0) || (log_post_reqn > 0))
 
-  802cdfc:	4630      	mov	r0, r6
 
-  802cdfe:	4964      	ldr	r1, [pc, #400]	; (802cf90 <http_recv+0x304>)
 
-  802ce00:	220f      	movs	r2, #15
 
-  802ce02:	f7f5 f8b7 	bl	8021f74 <strncmp>
 
-  802ce06:	b120      	cbz	r0, 802ce12 <http_recv+0x186>
 
-  802ce08:	4b62      	ldr	r3, [pc, #392]	; (802cf94 <http_recv+0x308>)
 
-  802ce0a:	681b      	ldr	r3, [r3, #0]
 
-  802ce0c:	2b00      	cmp	r3, #0
 
-  802ce0e:	f000 80d5 	beq.w	802cfbc <http_recv+0x330>
 
- {
 
-   uint32_t i=0,size=0, S=1;
 
-   int32_t j=0;
 
-   char sizestring[6], *ptr;
 
-   ContentLengthOffset =0;
 
-  802ce12:	4b61      	ldr	r3, [pc, #388]	; (802cf98 <http_recv+0x30c>)
 
- 			  uint32_t i, offset = 0, req_data_received = 0;
 
- 			  //printf("request 1: %d\r\n", receivedBufLen);
 
- 			  /* parse packet for Content-length field */
 
- 			  post_data_count = Parse_Content_Length(data, p->tot_len);
 
-  802ce14:	f8b8 9008 	ldrh.w	r9, [r8, #8]
 
- {
 
-   uint32_t i=0,size=0, S=1;
 
-   int32_t j=0;
 
-   char sizestring[6], *ptr;
 
-   ContentLengthOffset =0;
 
-  802ce18:	2700      	movs	r7, #0
 
-  802ce1a:	601f      	str	r7, [r3, #0]
 
-  802ce1c:	e00a      	b.n	802ce34 <http_recv+0x1a8>
 
-   /* find Content-Length data in packet buffer */
 
-   for (i=0;i<len;i++)
 
-   {
 
-     if (strncmp ((char*)(data+i), Content_Length, 16)==0)
 
-  802ce1e:	19f0      	adds	r0, r6, r7
 
-  802ce20:	495e      	ldr	r1, [pc, #376]	; (802cf9c <http_recv+0x310>)
 
-  802ce22:	2210      	movs	r2, #16
 
-  802ce24:	f7f5 f8a6 	bl	8021f74 <strncmp>
 
-  802ce28:	b918      	cbnz	r0, 802ce32 <http_recv+0x1a6>
 
-     {
 
-       ContentLengthOffset = i+16;
 
-  802ce2a:	4b5b      	ldr	r3, [pc, #364]	; (802cf98 <http_recv+0x30c>)
 
-  802ce2c:	3710      	adds	r7, #16
 
-  802ce2e:	601f      	str	r7, [r3, #0]
 
-  802ce30:	e002      	b.n	802ce38 <http_recv+0x1ac>
 
-   char sizestring[6], *ptr;
 
-   ContentLengthOffset =0;
 
-   /* find Content-Length data in packet buffer */
 
-   for (i=0;i<len;i++)
 
-  802ce32:	3701      	adds	r7, #1
 
-  802ce34:	454f      	cmp	r7, r9
 
-  802ce36:	d3f2      	bcc.n	802ce1e <http_recv+0x192>
 
-       ContentLengthOffset = i+16;
 
-       break;
 
-     }
 
-   }
 
-   /* read Content-Length value */
 
-   if (ContentLengthOffset)
 
-  802ce38:	4b57      	ldr	r3, [pc, #348]	; (802cf98 <http_recv+0x30c>)
 
-  802ce3a:	681a      	ldr	r2, [r3, #0]
 
-  802ce3c:	4618      	mov	r0, r3
 
-  802ce3e:	b90a      	cbnz	r2, 802ce44 <http_recv+0x1b8>
 
-   * @param  len  : buffer length
 
-   * @retval size : Content_length in numeric format
 
-   */
 
- static uint32_t Parse_Content_Length(char *data, uint32_t len)
 
- {
 
-   uint32_t i=0,size=0, S=1;
 
-  802ce40:	2200      	movs	r2, #0
 
-  802ce42:	e01d      	b.n	802ce80 <http_recv+0x1f4>
 
-   }
 
-   /* read Content-Length value */
 
-   if (ContentLengthOffset)
 
-   {
 
-     i=0;
 
-     ptr = (char*)(data + ContentLengthOffset);
 
-  802ce44:	eb06 0e02 	add.w	lr, r6, r2
 
-     }
 
-   }
 
-   /* read Content-Length value */
 
-   if (ContentLengthOffset)
 
-   {
 
-     i=0;
 
-  802ce48:	2300      	movs	r3, #0
 
-  802ce4a:	e002      	b.n	802ce52 <http_recv+0x1c6>
 
-     ptr = (char*)(data + ContentLengthOffset);
 
-     while(*(ptr+i)!=0x0d)
 
-     {
 
-       sizestring[i] = *(ptr+i);
 
-  802ce4c:	af03      	add	r7, sp, #12
 
-  802ce4e:	55d9      	strb	r1, [r3, r7]
 
-       i++;
 
-  802ce50:	3301      	adds	r3, #1
 
-   /* read Content-Length value */
 
-   if (ContentLengthOffset)
 
-   {
 
-     i=0;
 
-     ptr = (char*)(data + ContentLengthOffset);
 
-     while(*(ptr+i)!=0x0d)
 
-  802ce52:	f81e 1003 	ldrb.w	r1, [lr, r3]
 
-  802ce56:	290d      	cmp	r1, #13
 
-  802ce58:	eb03 0702 	add.w	r7, r3, r2
 
-  802ce5c:	d1f6      	bne.n	802ce4c <http_recv+0x1c0>
 
-  802ce5e:	6007      	str	r7, [r0, #0]
 
-     {
 
-       sizestring[i] = *(ptr+i);
 
-       i++;
 
-       ContentLengthOffset++;
 
-     }
 
-     if (i>0)
 
-  802ce60:	2b00      	cmp	r3, #0
 
-  802ce62:	d0ed      	beq.n	802ce40 <http_recv+0x1b4>
 
-     {
 
-       /* transform string data into numeric format */
 
-       for(j=i-1;j>=0;j--)
 
-  802ce64:	3b01      	subs	r3, #1
 
-   * @param  len  : buffer length
 
-   * @retval size : Content_length in numeric format
 
-   */
 
- static uint32_t Parse_Content_Length(char *data, uint32_t len)
 
- {
 
-   uint32_t i=0,size=0, S=1;
 
-  802ce66:	2101      	movs	r1, #1
 
-  802ce68:	2200      	movs	r2, #0
 
-     {
 
-       /* transform string data into numeric format */
 
-       for(j=i-1;j>=0;j--)
 
-       {
 
-         size += (sizestring[j]-0x30)*S;
 
-         S=S*10;
 
-  802ce6a:	200a      	movs	r0, #10
 
-  802ce6c:	e006      	b.n	802ce7c <http_recv+0x1f0>
 
-     if (i>0)
 
-     {
 
-       /* transform string data into numeric format */
 
-       for(j=i-1;j>=0;j--)
 
-       {
 
-         size += (sizestring[j]-0x30)*S;
 
-  802ce6e:	af03      	add	r7, sp, #12
 
-  802ce70:	5ddf      	ldrb	r7, [r3, r7]
 
-  802ce72:	3f30      	subs	r7, #48	; 0x30
 
-  802ce74:	fb01 2207 	mla	r2, r1, r7, r2
 
-       ContentLengthOffset++;
 
-     }
 
-     if (i>0)
 
-     {
 
-       /* transform string data into numeric format */
 
-       for(j=i-1;j>=0;j--)
 
-  802ce78:	3b01      	subs	r3, #1
 
-       {
 
-         size += (sizestring[j]-0x30)*S;
 
-         S=S*10;
 
-  802ce7a:	4341      	muls	r1, r0
 
-       ContentLengthOffset++;
 
-     }
 
-     if (i>0)
 
-     {
 
-       /* transform string data into numeric format */
 
-       for(j=i-1;j>=0;j--)
 
-  802ce7c:	2b00      	cmp	r3, #0
 
-  802ce7e:	daf6      	bge.n	802ce6e <http_recv+0x1e2>
 
- 			  uint32_t i, offset = 0, req_data_received = 0;
 
- 			  //printf("request 1: %d\r\n", receivedBufLen);
 
- 			  /* parse packet for Content-length field */
 
- 			  post_data_count = Parse_Content_Length(data, p->tot_len);
 
-  802ce80:	4f47      	ldr	r7, [pc, #284]	; (802cfa0 <http_recv+0x314>)
 
- 			  //printf("Content-length: %d\r\n", (int)post_data_count);
 
- 			  if (post_data_count < MAX_POST_REQ_LEN) {
 
-  802ce82:	2aff      	cmp	r2, #255	; 0xff
 
- 			  uint32_t i, offset = 0, req_data_received = 0;
 
- 			  //printf("request 1: %d\r\n", receivedBufLen);
 
- 			  /* parse packet for Content-length field */
 
- 			  post_data_count = Parse_Content_Length(data, p->tot_len);
 
-  802ce84:	603a      	str	r2, [r7, #0]
 
- 			  //printf("Content-length: %d\r\n", (int)post_data_count);
 
- 			  if (post_data_count < MAX_POST_REQ_LEN) {
 
-  802ce86:	d85e      	bhi.n	802cf46 <http_recv+0x2ba>
 
- 				  memset(post_req_data, 0, MAX_POST_REQ_LEN);
 
-  802ce88:	4846      	ldr	r0, [pc, #280]	; (802cfa4 <http_recv+0x318>)
 
- 					/* parse packet for "\r\n\r\n" */
 
- 					for (i = 0; i < receivedBufLen; i++)
 
-  802ce8a:	f8df 90cc 	ldr.w	r9, [pc, #204]	; 802cf58 <http_recv+0x2cc>
 
- 			  post_data_count = Parse_Content_Length(data, p->tot_len);
 
- 			  //printf("Content-length: %d\r\n", (int)post_data_count);
 
- 			  if (post_data_count < MAX_POST_REQ_LEN) {
 
- 				  memset(post_req_data, 0, MAX_POST_REQ_LEN);
 
-  802ce8e:	2100      	movs	r1, #0
 
-  802ce90:	f44f 7280 	mov.w	r2, #256	; 0x100
 
-  802ce94:	f7f4 fe34 	bl	8021b00 <memset>
 
- 					/* parse packet for "\r\n\r\n" */
 
- 					for (i = 0; i < receivedBufLen; i++)
 
-  802ce98:	2700      	movs	r7, #0
 
-  802ce9a:	e008      	b.n	802ceae <http_recv+0x222>
 
- 					{
 
- 						if (strncmp ((char*)(data+i), "\r\n\r\n", 4) == 0)
 
-  802ce9c:	19f0      	adds	r0, r6, r7
 
-  802ce9e:	4942      	ldr	r1, [pc, #264]	; (802cfa8 <http_recv+0x31c>)
 
-  802cea0:	2204      	movs	r2, #4
 
-  802cea2:	f7f5 f867 	bl	8021f74 <strncmp>
 
-  802cea6:	b908      	cbnz	r0, 802ceac <http_recv+0x220>
 
- 						{
 
- 							offset = i+4;
 
-  802cea8:	3704      	adds	r7, #4
 
- 							//printf("offset: %d\r\n", (int)offset);
 
- 							break;
 
-  802ceaa:	e005      	b.n	802ceb8 <http_recv+0x22c>
 
- 			  if (post_data_count < MAX_POST_REQ_LEN) {
 
- 				  memset(post_req_data, 0, MAX_POST_REQ_LEN);
 
- 					/* parse packet for "\r\n\r\n" */
 
- 					for (i = 0; i < receivedBufLen; i++)
 
-  802ceac:	3701      	adds	r7, #1
 
-  802ceae:	f8b9 3000 	ldrh.w	r3, [r9]
 
-  802ceb2:	429f      	cmp	r7, r3
 
-  802ceb4:	d3f2      	bcc.n	802ce9c <http_recv+0x210>
 
- 		  tcp_sent(pcb, http_sent);
 
- 		}
 
- 		  else if ((strncmp(data, "POST /login.cgi", 15) == 0) || (log_post_reqn > 0))
 
- 			{
 
- 			  uint32_t i, offset = 0, req_data_received = 0;
 
-  802ceb6:	2700      	movs	r7, #0
 
- 							//printf("offset: %d\r\n", (int)offset);
 
- 							break;
 
- 						}
 
- 					}
 
- 					req_data_received = receivedBufLen - offset;
 
-  802ceb8:	4b27      	ldr	r3, [pc, #156]	; (802cf58 <http_recv+0x2cc>)
 
-  802ceba:	f8b3 a000 	ldrh.w	sl, [r3]
 
- 					//printf("req data received: %d\r\n", (int)req_data_received);
 
- 					/* Check if "\r\n\r\n" was found */
 
- 					if (offset != 0) {
 
-  802cebe:	b33f      	cbz	r7, 802cf10 <http_recv+0x284>
 
- 						/* if data was splited in two packets */
 
- 						if (req_data_received < post_data_count) {
 
-  802cec0:	f8df 90dc 	ldr.w	r9, [pc, #220]	; 802cfa0 <http_recv+0x314>
 
- 							/* Copy request data to buffer */
 
- 							snprintf(post_req_data, req_data_received, "%s", receiveBuf);
 
-  802cec4:	4837      	ldr	r0, [pc, #220]	; (802cfa4 <http_recv+0x318>)
 
- 					/* Check if "\r\n\r\n" was found */
 
- 					if (offset != 0) {
 
- 						/* if data was splited in two packets */
 
- 						if (req_data_received < post_data_count) {
 
-  802cec6:	f8d9 2000 	ldr.w	r2, [r9]
 
- 							//printf("offset: %d\r\n", (int)offset);
 
- 							break;
 
- 						}
 
- 					}
 
- 					req_data_received = receivedBufLen - offset;
 
-  802ceca:	ebc7 0a0a 	rsb	sl, r7, sl
 
- 					/* Check if "\r\n\r\n" was found */
 
- 					if (offset != 0) {
 
- 						/* if data was splited in two packets */
 
- 						if (req_data_received < post_data_count) {
 
-  802cece:	4592      	cmp	sl, r2
 
-  802ced0:	d20b      	bcs.n	802ceea <http_recv+0x25e>
 
- 							/* Copy request data to buffer */
 
- 							snprintf(post_req_data, req_data_received, "%s", receiveBuf);
 
-  802ced2:	4b36      	ldr	r3, [pc, #216]	; (802cfac <http_recv+0x320>)
 
-  802ced4:	4a25      	ldr	r2, [pc, #148]	; (802cf6c <http_recv+0x2e0>)
 
-  802ced6:	4651      	mov	r1, sl
 
-  802ced8:	f7fa fc7e 	bl	80277d8 <tfp_snprintf>
 
- 							//printf("copied: %d\r\n", (int)req_data_received);
 
- 							post_data_count -= req_data_received;
 
-  802cedc:	f8d9 3000 	ldr.w	r3, [r9]
 
-  802cee0:	ebca 0303 	rsb	r3, sl, r3
 
-  802cee4:	f8c9 3000 	str.w	r3, [r9]
 
-  802cee8:	e289      	b.n	802d3fe <http_recv+0x772>
 
- 						}
 
- 						/* if data received completely */
 
- 						else {
 
- 							strncat(post_req_data, (char *)(data + offset), post_data_count);
 
-  802ceea:	19f1      	adds	r1, r6, r7
 
-  802ceec:	f7f5 f810 	bl	8021f10 <strncat>
 
- 							//printf("post_req_data: %s\r\n", post_req_data);
 
- 							if (HTTP_ConfirmWebPwd(post_req_data, sendBuf, strlen(post_req_data), &sendBufLoadLen) == SEND_REQUIRED_YES) {
 
-  802cef0:	482c      	ldr	r0, [pc, #176]	; (802cfa4 <http_recv+0x318>)
 
-  802cef2:	4f21      	ldr	r7, [pc, #132]	; (802cf78 <http_recv+0x2ec>)
 
-  802cef4:	4e21      	ldr	r6, [pc, #132]	; (802cf7c <http_recv+0x2f0>)
 
-  802cef6:	f7f4 ffdb 	bl	8021eb0 <strlen>
 
-  802cefa:	4639      	mov	r1, r7
 
-  802cefc:	b282      	uxth	r2, r0
 
-  802cefe:	4633      	mov	r3, r6
 
-  802cf00:	4828      	ldr	r0, [pc, #160]	; (802cfa4 <http_recv+0x318>)
 
-  802cf02:	f7ff f9e3 	bl	802c2cc <HTTP_ConfirmWebPwd>
 
-  802cf06:	2800      	cmp	r0, #0
 
-  802cf08:	d16f      	bne.n	802cfea <http_recv+0x35e>
 
- 								  hs->file = sendBuf;
 
-  802cf0a:	6027      	str	r7, [r4, #0]
 
- 								  hs->left = sendBufLoadLen;
 
-  802cf0c:	8833      	ldrh	r3, [r6, #0]
 
-  802cf0e:	e073      	b.n	802cff8 <http_recv+0x36c>
 
- 					/* request was fragmented before "\r\n\r\n" */
 
- 					else {
 
- 						//printf("no data found!\r\n");
 
- 						/* wait next packet */
 
- 						log_post_reqn++;
 
-  802cf10:	4e20      	ldr	r6, [pc, #128]	; (802cf94 <http_recv+0x308>)
 
-  802cf12:	6833      	ldr	r3, [r6, #0]
 
-  802cf14:	3301      	adds	r3, #1
 
- 						/* wait max 2 requests */
 
- 						if (log_post_reqn > 1) {
 
-  802cf16:	2b01      	cmp	r3, #1
 
- 					/* request was fragmented before "\r\n\r\n" */
 
- 					else {
 
- 						//printf("no data found!\r\n");
 
- 						/* wait next packet */
 
- 						log_post_reqn++;
 
-  802cf18:	6033      	str	r3, [r6, #0]
 
- 						/* wait max 2 requests */
 
- 						if (log_post_reqn > 1) {
 
-  802cf1a:	f240 8270 	bls.w	802d3fe <http_recv+0x772>
 
- 							/* Redirect to login page */
 
- 							fs_open("/login.html", &file);
 
-  802cf1e:	a905      	add	r1, sp, #20
 
-  802cf20:	4823      	ldr	r0, [pc, #140]	; (802cfb0 <http_recv+0x324>)
 
-  802cf22:	f7fe fe41 	bl	802bba8 <fs_open>
 
- 							hs->file = file.data;
 
-  802cf26:	9b05      	ldr	r3, [sp, #20]
 
-  802cf28:	6023      	str	r3, [r4, #0]
 
- 							hs->left = file.len;
 
-  802cf2a:	9b06      	ldr	r3, [sp, #24]
 
- 							send_data(pcb, hs);
 
-  802cf2c:	4628      	mov	r0, r5
 
- 						/* wait max 2 requests */
 
- 						if (log_post_reqn > 1) {
 
- 							/* Redirect to login page */
 
- 							fs_open("/login.html", &file);
 
- 							hs->file = file.data;
 
- 							hs->left = file.len;
 
-  802cf2e:	6063      	str	r3, [r4, #4]
 
- 							send_data(pcb, hs);
 
-  802cf30:	4621      	mov	r1, r4
 
-  802cf32:	f7fe fe75 	bl	802bc20 <send_data>
 
- 							tcp_sent(pcb, http_sent);
 
-  802cf36:	4628      	mov	r0, r5
 
-  802cf38:	491e      	ldr	r1, [pc, #120]	; (802cfb4 <http_recv+0x328>)
 
-  802cf3a:	f003 fab1 	bl	80304a0 <tcp_sent>
 
- 	
 
- 							/* End reqest */
 
- 							post_data_count = 0;
 
-  802cf3e:	4b18      	ldr	r3, [pc, #96]	; (802cfa0 <http_recv+0x314>)
 
- 							log_post_reqn = 0;
 
-  802cf40:	6037      	str	r7, [r6, #0]
 
- 							hs->left = file.len;
 
- 							send_data(pcb, hs);
 
- 							tcp_sent(pcb, http_sent);
 
- 	
 
- 							/* End reqest */
 
- 							post_data_count = 0;
 
-  802cf42:	601f      	str	r7, [r3, #0]
 
-  802cf44:	e25b      	b.n	802d3fe <http_recv+0x772>
 
- 							log_post_reqn = 0;
 
- 						}
 
- 					}
 
- 			  }
 
- 			  else {
 
- 				  printf("Too long POST request!\r\n");
 
-  802cf46:	481c      	ldr	r0, [pc, #112]	; (802cfb8 <http_recv+0x32c>)
 
-  802cf48:	f7fa fc18 	bl	802777c <tfp_printf>
 
- 				  /* Ignore request */
 
- 				  post_data_count = 0;
 
- 				  log_post_reqn = 0;
 
-  802cf4c:	4a11      	ldr	r2, [pc, #68]	; (802cf94 <http_recv+0x308>)
 
- 					}
 
- 			  }
 
- 			  else {
 
- 				  printf("Too long POST request!\r\n");
 
- 				  /* Ignore request */
 
- 				  post_data_count = 0;
 
-  802cf4e:	2300      	movs	r3, #0
 
-  802cf50:	603b      	str	r3, [r7, #0]
 
- 				  log_post_reqn = 0;
 
-  802cf52:	6013      	str	r3, [r2, #0]
 
-  802cf54:	e05f      	b.n	802d016 <http_recv+0x38a>
 
-  802cf56:	bf00      	nop
 
-  802cf58:	20000d34 	.word	0x20000d34
 
-  802cf5c:	08040c2a 	.word	0x08040c2a
 
-  802cf60:	08040c3f 	.word	0x08040c3f
 
-  802cf64:	20000711 	.word	0x20000711
 
-  802cf68:	2000e23c 	.word	0x2000e23c
 
-  802cf6c:	080399bb 	.word	0x080399bb
 
-  802cf70:	20000d23 	.word	0x20000d23
 
-  802cf74:	2000cfc4 	.word	0x2000cfc4
 
-  802cf78:	2000d38c 	.word	0x2000d38c
 
-  802cf7c:	20000d20 	.word	0x20000d20
 
-  802cf80:	08040f23 	.word	0x08040f23
 
-  802cf84:	08040f31 	.word	0x08040f31
 
-  802cf88:	08040f40 	.word	0x08040f40
 
-  802cf8c:	08040f51 	.word	0x08040f51
 
-  802cf90:	08040f5e 	.word	0x08040f5e
 
-  802cf94:	2000e238 	.word	0x2000e238
 
-  802cf98:	20000d28 	.word	0x20000d28
 
-  802cf9c:	0803c319 	.word	0x0803c319
 
-  802cfa0:	2000e264 	.word	0x2000e264
 
-  802cfa4:	2000e138 	.word	0x2000e138
 
-  802cfa8:	08041130 	.word	0x08041130
 
-  802cfac:	2000db5c 	.word	0x2000db5c
 
-  802cfb0:	08040f6e 	.word	0x08040f6e
 
-  802cfb4:	0802bc93 	.word	0x0802bc93
 
-  802cfb8:	08040f7a 	.word	0x08040f7a
 
- 					hs->left = file.len;
 
- 					send_data(pcb, hs);
 
- 					tcp_sent(pcb, http_sent);
 
- 			  }
 
- 			}
 
- 			  else if (post_data_count > 0)
 
-  802cfbc:	4b87      	ldr	r3, [pc, #540]	; (802d1dc <http_recv+0x550>)
 
-  802cfbe:	681a      	ldr	r2, [r3, #0]
 
-  802cfc0:	2a00      	cmp	r2, #0
 
-  802cfc2:	d028      	beq.n	802d016 <http_recv+0x38a>
 
- 				{
 
- 				  strncat(post_req_data, data, post_data_count);
 
-  802cfc4:	4631      	mov	r1, r6
 
-  802cfc6:	4886      	ldr	r0, [pc, #536]	; (802d1e0 <http_recv+0x554>)
 
-  802cfc8:	f7f4 ffa2 	bl	8021f10 <strncat>
 
- 				  //printf("copied: %d\r\n", (int)post_data_count);
 
- 				  //printf("post_req_data: %s\r\n", post_req_data);
 
- 				  if (HTTP_ConfirmWebPwd(post_req_data, sendBuf, strlen(post_req_data), &sendBufLoadLen) == SEND_REQUIRED_YES) {
 
-  802cfcc:	4884      	ldr	r0, [pc, #528]	; (802d1e0 <http_recv+0x554>)
 
-  802cfce:	f7f4 ff6f 	bl	8021eb0 <strlen>
 
-  802cfd2:	4984      	ldr	r1, [pc, #528]	; (802d1e4 <http_recv+0x558>)
 
-  802cfd4:	4b84      	ldr	r3, [pc, #528]	; (802d1e8 <http_recv+0x55c>)
 
-  802cfd6:	b282      	uxth	r2, r0
 
-  802cfd8:	4881      	ldr	r0, [pc, #516]	; (802d1e0 <http_recv+0x554>)
 
-  802cfda:	f7ff f977 	bl	802c2cc <HTTP_ConfirmWebPwd>
 
-  802cfde:	b920      	cbnz	r0, 802cfea <http_recv+0x35e>
 
- 						hs->file = sendBuf;
 
-  802cfe0:	4b80      	ldr	r3, [pc, #512]	; (802d1e4 <http_recv+0x558>)
 
-  802cfe2:	6023      	str	r3, [r4, #0]
 
- 						hs->left = sendBufLoadLen;
 
-  802cfe4:	4b80      	ldr	r3, [pc, #512]	; (802d1e8 <http_recv+0x55c>)
 
-  802cfe6:	881b      	ldrh	r3, [r3, #0]
 
-  802cfe8:	e006      	b.n	802cff8 <http_recv+0x36c>
 
- 						tcp_sent(pcb, http_sent);
 
- 				  }
 
- 				  else {
 
- 					  /* Redirect to login page */
 
- 					  fs_open("/login.html", &file);
 
-  802cfea:	4880      	ldr	r0, [pc, #512]	; (802d1ec <http_recv+0x560>)
 
-  802cfec:	a905      	add	r1, sp, #20
 
-  802cfee:	f7fe fddb 	bl	802bba8 <fs_open>
 
- 					  hs->file = file.data;
 
-  802cff2:	9b05      	ldr	r3, [sp, #20]
 
-  802cff4:	6023      	str	r3, [r4, #0]
 
- 					  hs->left = file.len;
 
-  802cff6:	9b06      	ldr	r3, [sp, #24]
 
-  802cff8:	6063      	str	r3, [r4, #4]
 
- 					  send_data(pcb, hs);
 
-  802cffa:	4628      	mov	r0, r5
 
-  802cffc:	4621      	mov	r1, r4
 
-  802cffe:	f7fe fe0f 	bl	802bc20 <send_data>
 
- 					  tcp_sent(pcb, http_sent);
 
-  802d002:	4628      	mov	r0, r5
 
-  802d004:	497a      	ldr	r1, [pc, #488]	; (802d1f0 <http_recv+0x564>)
 
-  802d006:	f003 fa4b 	bl	80304a0 <tcp_sent>
 
- 				  }
 
- 				  /* End reqest */
 
- 				  post_data_count = 0;
 
-  802d00a:	4a74      	ldr	r2, [pc, #464]	; (802d1dc <http_recv+0x550>)
 
-  802d00c:	2300      	movs	r3, #0
 
-  802d00e:	6013      	str	r3, [r2, #0]
 
- 				  log_post_reqn = 0;
 
-  802d010:	4a78      	ldr	r2, [pc, #480]	; (802d1f4 <http_recv+0x568>)
 
-  802d012:	6013      	str	r3, [r2, #0]
 
-  802d014:	e1f3      	b.n	802d3fe <http_recv+0x772>
 
- 				}
 
- 		  else
 
- 		  {
 
- 			  fs_open("/login.html", &file);
 
-  802d016:	4875      	ldr	r0, [pc, #468]	; (802d1ec <http_recv+0x560>)
 
-  802d018:	e1e2      	b.n	802d3e0 <http_recv+0x754>
 
- 	  }
 
- 	  else if ( Authenticated == true ) {
 
- 	  if (strncmp(data, "GET /main.css", 13) == 0) // +
 
-  802d01a:	4630      	mov	r0, r6
 
-  802d01c:	4976      	ldr	r1, [pc, #472]	; (802d1f8 <http_recv+0x56c>)
 
-  802d01e:	220d      	movs	r2, #13
 
-  802d020:	f7f4 ffa8 	bl	8021f74 <strncmp>
 
-  802d024:	b908      	cbnz	r0, 802d02a <http_recv+0x39e>
 
- 	  {
 
- 	    fs_open("/main.css", &file);
 
-  802d026:	4875      	ldr	r0, [pc, #468]	; (802d1fc <http_recv+0x570>)
 
-  802d028:	e1da      	b.n	802d3e0 <http_recv+0x754>
 
-         hs->file = file.data;
 
-         hs->left = file.len;
 
-         send_data(pcb, hs);
 
-         tcp_sent(pcb, http_sent);
 
- 	  }
 
- 	  else if (strncmp(data, "GET /rotek.png", 14) == 0) // +
 
-  802d02a:	4630      	mov	r0, r6
 
-  802d02c:	4974      	ldr	r1, [pc, #464]	; (802d200 <http_recv+0x574>)
 
-  802d02e:	220e      	movs	r2, #14
 
-  802d030:	f7f4 ffa0 	bl	8021f74 <strncmp>
 
-  802d034:	b908      	cbnz	r0, 802d03a <http_recv+0x3ae>
 
- 	  {
 
- 	    fs_open("/rotek.png", &file);
 
-  802d036:	4873      	ldr	r0, [pc, #460]	; (802d204 <http_recv+0x578>)
 
-  802d038:	e1d2      	b.n	802d3e0 <http_recv+0x754>
 
-         hs->file = file.data;
 
-         hs->left = file.len;
 
-         send_data(pcb, hs);
 
-         tcp_sent(pcb, http_sent);
 
- 	  }
 
-       else if (strncmp(data, "GET /favicon.ico", 16) == 0) // ?                 
 
-  802d03a:	4630      	mov	r0, r6
 
-  802d03c:	4972      	ldr	r1, [pc, #456]	; (802d208 <http_recv+0x57c>)
 
-  802d03e:	2210      	movs	r2, #16
 
-  802d040:	f7f4 ff98 	bl	8021f74 <strncmp>
 
-  802d044:	b908      	cbnz	r0, 802d04a <http_recv+0x3be>
 
-       {                                                                     
 
-         fs_open("/favicon.ico", &file);                                     
 
-  802d046:	4871      	ldr	r0, [pc, #452]	; (802d20c <http_recv+0x580>)
 
-  802d048:	e1ca      	b.n	802d3e0 <http_recv+0x754>
 
-         hs->file = file.data;                                               
 
-         hs->left = file.len;                                                
 
-         send_data(pcb, hs);                                                 
 
-         tcp_sent(pcb, http_sent);                                           
 
-       }
 
- 	  else if (strncmp(data, "GET /main.js", 12) == 0) // +
 
-  802d04a:	4630      	mov	r0, r6
 
-  802d04c:	4970      	ldr	r1, [pc, #448]	; (802d210 <http_recv+0x584>)
 
-  802d04e:	220c      	movs	r2, #12
 
-  802d050:	f7f4 ff90 	bl	8021f74 <strncmp>
 
-  802d054:	b908      	cbnz	r0, 802d05a <http_recv+0x3ce>
 
- 	  {
 
- 	    fs_open("/main.js", &file);
 
-  802d056:	486f      	ldr	r0, [pc, #444]	; (802d214 <http_recv+0x588>)
 
-  802d058:	e1c2      	b.n	802d3e0 <http_recv+0x754>
 
-         hs->left = file.len;
 
-         send_data(pcb, hs);
 
-         tcp_sent(pcb, http_sent);
 
- 		
 
- 	  }
 
- 	  else if (strncmp(data, "GET /role.js", 12) == 0)
 
-  802d05a:	4630      	mov	r0, r6
 
-  802d05c:	496e      	ldr	r1, [pc, #440]	; (802d218 <http_recv+0x58c>)
 
-  802d05e:	220c      	movs	r2, #12
 
-  802d060:	f7f4 ff88 	bl	8021f74 <strncmp>
 
-  802d064:	b908      	cbnz	r0, 802d06a <http_recv+0x3de>
 
- 	  {
 
- 		fs_open("/role.js", &file);
 
-  802d066:	486d      	ldr	r0, [pc, #436]	; (802d21c <http_recv+0x590>)
 
-  802d068:	e1ba      	b.n	802d3e0 <http_recv+0x754>
 
- 		hs->left = file.len;
 
- 		send_data(pcb, hs);
 
- 		tcp_sent(pcb, http_sent);
 
- 	  }
 
- 	  else if (strncmp(data, "GET /settings.html", 18) == 0) // +
 
-  802d06a:	4630      	mov	r0, r6
 
-  802d06c:	496c      	ldr	r1, [pc, #432]	; (802d220 <http_recv+0x594>)
 
-  802d06e:	2212      	movs	r2, #18
 
-  802d070:	f7f4 ff80 	bl	8021f74 <strncmp>
 
-  802d074:	b940      	cbnz	r0, 802d088 <http_recv+0x3fc>
 
- 	  {
 
- 		HTTP_UpdateUserLoginTime(user_id);
 
-  802d076:	4638      	mov	r0, r7
 
-  802d078:	f7fe fd84 	bl	802bb84 <HTTP_UpdateUserLoginTime>
 
- 		if (seclevel == 0){
 
-  802d07c:	4b69      	ldr	r3, [pc, #420]	; (802d224 <http_recv+0x598>)
 
-  802d07e:	781b      	ldrb	r3, [r3, #0]
 
-  802d080:	2b00      	cmp	r3, #0
 
-  802d082:	f040 81ac 	bne.w	802d3de <http_recv+0x752>
 
-  802d086:	e15f      	b.n	802d348 <http_recv+0x6bc>
 
- 			hs->left = file.len;
 
- 			send_data(pcb, hs);
 
- 			tcp_sent(pcb, http_sent);
 
- 		}
 
- 	  }
 
- 	  else if (strncmp(data, "GET /info.html", 14) == 0) // +
 
-  802d088:	4630      	mov	r0, r6
 
-  802d08a:	4967      	ldr	r1, [pc, #412]	; (802d228 <http_recv+0x59c>)
 
-  802d08c:	220e      	movs	r2, #14
 
-  802d08e:	f7f4 ff71 	bl	8021f74 <strncmp>
 
-  802d092:	b920      	cbnz	r0, 802d09e <http_recv+0x412>
 
- 	  {
 
- 		HTTP_UpdateUserLoginTime(user_id);
 
-  802d094:	4638      	mov	r0, r7
 
-  802d096:	f7fe fd75 	bl	802bb84 <HTTP_UpdateUserLoginTime>
 
- 	    fs_open("/info.html", &file);
 
-  802d09a:	4864      	ldr	r0, [pc, #400]	; (802d22c <http_recv+0x5a0>)
 
-  802d09c:	e1a0      	b.n	802d3e0 <http_recv+0x754>
 
-         hs->file = file.data;
 
-         hs->left = file.len;
 
-         send_data(pcb, hs);
 
-         tcp_sent(pcb, http_sent);
 
- 	  }
 
- 	  else if (strncmp(data, "GET /history.html", 17) == 0)
 
-  802d09e:	4630      	mov	r0, r6
 
-  802d0a0:	4963      	ldr	r1, [pc, #396]	; (802d230 <http_recv+0x5a4>)
 
-  802d0a2:	2211      	movs	r2, #17
 
-  802d0a4:	f7f4 ff66 	bl	8021f74 <strncmp>
 
-  802d0a8:	b920      	cbnz	r0, 802d0b4 <http_recv+0x428>
 
- 	  {
 
- 		HTTP_UpdateUserLoginTime(user_id);
 
-  802d0aa:	4638      	mov	r0, r7
 
-  802d0ac:	f7fe fd6a 	bl	802bb84 <HTTP_UpdateUserLoginTime>
 
- 		fs_open("/history.html", &file);
 
-  802d0b0:	4860      	ldr	r0, [pc, #384]	; (802d234 <http_recv+0x5a8>)
 
-  802d0b2:	e195      	b.n	802d3e0 <http_recv+0x754>
 
- 		hs->file = file.data;
 
- 		hs->left = file.len;
 
- 		send_data(pcb, hs);
 
- 		tcp_sent(pcb, http_sent);
 
- 	  }
 
- 	  else if (strncmp(data, "GET /ups_history.html", 21) == 0)
 
-  802d0b4:	4630      	mov	r0, r6
 
-  802d0b6:	4960      	ldr	r1, [pc, #384]	; (802d238 <http_recv+0x5ac>)
 
-  802d0b8:	2215      	movs	r2, #21
 
-  802d0ba:	f7f4 ff5b 	bl	8021f74 <strncmp>
 
-  802d0be:	b920      	cbnz	r0, 802d0ca <http_recv+0x43e>
 
- 	  {
 
- 		HTTP_UpdateUserLoginTime(user_id);
 
-  802d0c0:	4638      	mov	r0, r7
 
-  802d0c2:	f7fe fd5f 	bl	802bb84 <HTTP_UpdateUserLoginTime>
 
- 		fs_open("/ups_history.html", &file);
 
-  802d0c6:	485d      	ldr	r0, [pc, #372]	; (802d23c <http_recv+0x5b0>)
 
-  802d0c8:	e18a      	b.n	802d3e0 <http_recv+0x754>
 
- 		hs->file = file.data;
 
- 		hs->left = file.len;
 
- 		send_data(pcb, hs);
 
- 		tcp_sent(pcb, http_sent);
 
- 	  }
 
- 	  else if (strncmp(data, "GET /getJson.cgi", 16) == 0) // +
 
-  802d0ca:	4630      	mov	r0, r6
 
-  802d0cc:	495c      	ldr	r1, [pc, #368]	; (802d240 <http_recv+0x5b4>)
 
-  802d0ce:	2210      	movs	r2, #16
 
-  802d0d0:	f7f4 ff50 	bl	8021f74 <strncmp>
 
-  802d0d4:	b940      	cbnz	r0, 802d0e8 <http_recv+0x45c>
 
- 	  {
 
- 		HTTP_GetParamsPage1(sendBuf);
 
-  802d0d6:	4e43      	ldr	r6, [pc, #268]	; (802d1e4 <http_recv+0x558>)
 
-  802d0d8:	4630      	mov	r0, r6
 
-  802d0da:	f000 f9bf 	bl	802d45c <HTTP_GetParamsPage1>
 
- 		hs->file = sendBuf;
 
-  802d0de:	6026      	str	r6, [r4, #0]
 
-         hs->left = strlen(sendBuf);
 
-  802d0e0:	4630      	mov	r0, r6
 
-  802d0e2:	f7f4 fee5 	bl	8021eb0 <strlen>
 
-  802d0e6:	e042      	b.n	802d16e <http_recv+0x4e2>
 
- 		send_data(pcb, hs);
 
- 		tcp_sent(pcb, http_sent);
 
- 	  }	  
 
- 	  else if (strncmp(data, "GET /settings.cgi", 17) == 0) // +
 
-  802d0e8:	4630      	mov	r0, r6
 
-  802d0ea:	4956      	ldr	r1, [pc, #344]	; (802d244 <http_recv+0x5b8>)
 
-  802d0ec:	2211      	movs	r2, #17
 
-  802d0ee:	f7f4 ff41 	bl	8021f74 <strncmp>
 
-  802d0f2:	b988      	cbnz	r0, 802d118 <http_recv+0x48c>
 
- 	  {
 
- 		SET_PAGE = SET_PAGE_PAGE2;
 
-  802d0f4:	4b54      	ldr	r3, [pc, #336]	; (802d248 <http_recv+0x5bc>)
 
-  802d0f6:	2202      	movs	r2, #2
 
-  802d0f8:	701a      	strb	r2, [r3, #0]
 
- 		
 
- 		if (seclevel == 0) {
 
-  802d0fa:	4b4a      	ldr	r3, [pc, #296]	; (802d224 <http_recv+0x598>)
 
-  802d0fc:	781b      	ldrb	r3, [r3, #0]
 
-  802d0fe:	2b00      	cmp	r3, #0
 
-  802d100:	f040 817d 	bne.w	802d3fe <http_recv+0x772>
 
- 			if (HTTP_SettingsPage(receiveBuf, sendBuf, receivedBufLen, &sendBufLoadLen) == SEND_REQUIRED_YES)
 
-  802d104:	4f37      	ldr	r7, [pc, #220]	; (802d1e4 <http_recv+0x558>)
 
-  802d106:	4e38      	ldr	r6, [pc, #224]	; (802d1e8 <http_recv+0x55c>)
 
-  802d108:	4b50      	ldr	r3, [pc, #320]	; (802d24c <http_recv+0x5c0>)
 
-  802d10a:	4851      	ldr	r0, [pc, #324]	; (802d250 <http_recv+0x5c4>)
 
-  802d10c:	881a      	ldrh	r2, [r3, #0]
 
-  802d10e:	4639      	mov	r1, r7
 
-  802d110:	4633      	mov	r3, r6
 
-  802d112:	f7fe fec5 	bl	802bea0 <HTTP_SettingsPage>
 
-  802d116:	e0e9      	b.n	802d2ec <http_recv+0x660>
 
- 			  send_data(pcb, hs);
 
- 			  tcp_sent(pcb, http_sent);
 
- 			}*/
 
- 		}
 
- 	  }
 
- 	  else if (strncmp(data, "POST /settings.cgi", 18) == 0)
 
-  802d118:	4630      	mov	r0, r6
 
-  802d11a:	494e      	ldr	r1, [pc, #312]	; (802d254 <http_recv+0x5c8>)
 
-  802d11c:	2212      	movs	r2, #18
 
-  802d11e:	f7f4 ff29 	bl	8021f74 <strncmp>
 
-  802d122:	4681      	mov	r9, r0
 
-  802d124:	bb28      	cbnz	r0, 802d172 <http_recv+0x4e6>
 
- 	  {
 
- 		  strncat(&receiveBuf,  " ", 1);
 
-  802d126:	2201      	movs	r2, #1
 
-  802d128:	494b      	ldr	r1, [pc, #300]	; (802d258 <http_recv+0x5cc>)
 
-  802d12a:	4849      	ldr	r0, [pc, #292]	; (802d250 <http_recv+0x5c4>)
 
- 		  HTTP_SetSettings(receiveBuf, receivedBufLen);
 
- 		  memset(sendBuf, 0, SEND_BUF_MAX_LEN);
 
-  802d12c:	4e2d      	ldr	r6, [pc, #180]	; (802d1e4 <http_recv+0x558>)
 
- 			}*/
 
- 		}
 
- 	  }
 
- 	  else if (strncmp(data, "POST /settings.cgi", 18) == 0)
 
- 	  {
 
- 		  strncat(&receiveBuf,  " ", 1);
 
-  802d12e:	f7f4 feef 	bl	8021f10 <strncat>
 
- 		  HTTP_SetSettings(receiveBuf, receivedBufLen);
 
-  802d132:	4b46      	ldr	r3, [pc, #280]	; (802d24c <http_recv+0x5c0>)
 
-  802d134:	4846      	ldr	r0, [pc, #280]	; (802d250 <http_recv+0x5c4>)
 
-  802d136:	8819      	ldrh	r1, [r3, #0]
 
-  802d138:	f7ff f9d4 	bl	802c4e4 <HTTP_SetSettings>
 
- 		  memset(sendBuf, 0, SEND_BUF_MAX_LEN);
 
-  802d13c:	f44f 62fa 	mov.w	r2, #2000	; 0x7d0
 
-  802d140:	4649      	mov	r1, r9
 
-  802d142:	4630      	mov	r0, r6
 
-  802d144:	f7f4 fcdc 	bl	8021b00 <memset>
 
- 		  strcpy(sendBuf, "HTTP/1.1 200 OK\r\n");
 
-  802d148:	4944      	ldr	r1, [pc, #272]	; (802d25c <http_recv+0x5d0>)
 
-  802d14a:	4630      	mov	r0, r6
 
-  802d14c:	f7f4 fe52 	bl	8021df4 <strcpy>
 
- 		  strcat(sendBuf, "\r\n\r\n");
 
-  802d150:	4943      	ldr	r1, [pc, #268]	; (802d260 <http_recv+0x5d4>)
 
-  802d152:	4630      	mov	r0, r6
 
-  802d154:	f7f4 fd3a 	bl	8021bcc <strcat>
 
- 		  strcat(sendBuf,"<!DOCTYPE html><html lang=""><head><meta http-equiv=\"refresh\" content=\"0;url=/settings.html\"/></head></html>\r\n\r\n");
 
-  802d158:	4942      	ldr	r1, [pc, #264]	; (802d264 <http_recv+0x5d8>)
 
-  802d15a:	4630      	mov	r0, r6
 
-  802d15c:	f7f4 fd36 	bl	8021bcc <strcat>
 
- 		  sendBufLoadLen = strlen(sendBuf);
 
-  802d160:	4630      	mov	r0, r6
 
-  802d162:	f7f4 fea5 	bl	8021eb0 <strlen>
 
-  802d166:	4b20      	ldr	r3, [pc, #128]	; (802d1e8 <http_recv+0x55c>)
 
-  802d168:	8018      	strh	r0, [r3, #0]
 
- 		  hs->file = sendBuf;
 
-  802d16a:	6026      	str	r6, [r4, #0]
 
- 		  hs->left = sendBufLoadLen;
 
-  802d16c:	b280      	uxth	r0, r0
 
-  802d16e:	6060      	str	r0, [r4, #4]
 
-  802d170:	e13d      	b.n	802d3ee <http_recv+0x762>
 
- 		  send_data(pcb, hs);
 
- 		  tcp_sent(pcb, http_sent);
 
- 	  }
 
- 	  else if (strncmp(data, "GET /info.cgi", 13) == 0) // +
 
-  802d172:	4630      	mov	r0, r6
 
-  802d174:	493c      	ldr	r1, [pc, #240]	; (802d268 <http_recv+0x5dc>)
 
-  802d176:	220d      	movs	r2, #13
 
-  802d178:	f7f4 fefc 	bl	8021f74 <strncmp>
 
-  802d17c:	b948      	cbnz	r0, 802d192 <http_recv+0x506>
 
- 	  {
 
- 			if (HTTP_InfoPage(receiveBuf, sendBuf, receivedBufLen, &sendBufLoadLen) == SEND_REQUIRED_YES)
 
-  802d17e:	4f19      	ldr	r7, [pc, #100]	; (802d1e4 <http_recv+0x558>)
 
-  802d180:	4e19      	ldr	r6, [pc, #100]	; (802d1e8 <http_recv+0x55c>)
 
-  802d182:	4b32      	ldr	r3, [pc, #200]	; (802d24c <http_recv+0x5c0>)
 
-  802d184:	4832      	ldr	r0, [pc, #200]	; (802d250 <http_recv+0x5c4>)
 
-  802d186:	881a      	ldrh	r2, [r3, #0]
 
-  802d188:	4639      	mov	r1, r7
 
-  802d18a:	4633      	mov	r3, r6
 
-  802d18c:	f7fe feac 	bl	802bee8 <HTTP_InfoPage>
 
-  802d190:	e0ac      	b.n	802d2ec <http_recv+0x660>
 
- 			  hs->left = file.len;
 
- 			  send_data(pcb, hs);
 
- 			  tcp_sent(pcb, http_sent);
 
- 			}*/
 
- 	  }
 
- 	  else if (strncmp(data, "POST /info.cgi", 14) == 0)
 
-  802d192:	4630      	mov	r0, r6
 
-  802d194:	4935      	ldr	r1, [pc, #212]	; (802d26c <http_recv+0x5e0>)
 
-  802d196:	220e      	movs	r2, #14
 
-  802d198:	f7f4 feec 	bl	8021f74 <strncmp>
 
-  802d19c:	4681      	mov	r9, r0
 
-  802d19e:	2800      	cmp	r0, #0
 
-  802d1a0:	d168      	bne.n	802d274 <http_recv+0x5e8>
 
- 	  {
 
- 		  strncat(&receiveBuf,  " ", 1);
 
-  802d1a2:	2201      	movs	r2, #1
 
-  802d1a4:	492c      	ldr	r1, [pc, #176]	; (802d258 <http_recv+0x5cc>)
 
-  802d1a6:	482a      	ldr	r0, [pc, #168]	; (802d250 <http_recv+0x5c4>)
 
- 		  HTTP_SetInfo(receiveBuf, receivedBufLen);
 
- 		  memset(sendBuf, 0, SEND_BUF_MAX_LEN);
 
-  802d1a8:	4e0e      	ldr	r6, [pc, #56]	; (802d1e4 <http_recv+0x558>)
 
- 			  tcp_sent(pcb, http_sent);
 
- 			}*/
 
- 	  }
 
- 	  else if (strncmp(data, "POST /info.cgi", 14) == 0)
 
- 	  {
 
- 		  strncat(&receiveBuf,  " ", 1);
 
-  802d1aa:	f7f4 feb1 	bl	8021f10 <strncat>
 
- 		  HTTP_SetInfo(receiveBuf, receivedBufLen);
 
-  802d1ae:	4b27      	ldr	r3, [pc, #156]	; (802d24c <http_recv+0x5c0>)
 
-  802d1b0:	4827      	ldr	r0, [pc, #156]	; (802d250 <http_recv+0x5c4>)
 
-  802d1b2:	8819      	ldrh	r1, [r3, #0]
 
-  802d1b4:	f7ff f944 	bl	802c440 <HTTP_SetInfo>
 
- 		  memset(sendBuf, 0, SEND_BUF_MAX_LEN);
 
-  802d1b8:	f44f 62fa 	mov.w	r2, #2000	; 0x7d0
 
-  802d1bc:	4649      	mov	r1, r9
 
-  802d1be:	4630      	mov	r0, r6
 
-  802d1c0:	f7f4 fc9e 	bl	8021b00 <memset>
 
- 		  strcpy(sendBuf, "HTTP/1.1 200 OK\r\n");
 
-  802d1c4:	4925      	ldr	r1, [pc, #148]	; (802d25c <http_recv+0x5d0>)
 
-  802d1c6:	4630      	mov	r0, r6
 
-  802d1c8:	f7f4 fe14 	bl	8021df4 <strcpy>
 
- 		  strcat(sendBuf, "\r\n\r\n");
 
-  802d1cc:	4924      	ldr	r1, [pc, #144]	; (802d260 <http_recv+0x5d4>)
 
-  802d1ce:	4630      	mov	r0, r6
 
-  802d1d0:	f7f4 fcfc 	bl	8021bcc <strcat>
 
- 		  strcat(sendBuf,"<!DOCTYPE html><html lang=""><head><meta http-equiv=\"refresh\" content=\"0;url=/info.html\"/></head></html>\r\n\r\n");
 
-  802d1d4:	4630      	mov	r0, r6
 
-  802d1d6:	4926      	ldr	r1, [pc, #152]	; (802d270 <http_recv+0x5e4>)
 
-  802d1d8:	e7c0      	b.n	802d15c <http_recv+0x4d0>
 
-  802d1da:	bf00      	nop
 
-  802d1dc:	2000e264 	.word	0x2000e264
 
-  802d1e0:	2000e138 	.word	0x2000e138
 
-  802d1e4:	2000d38c 	.word	0x2000d38c
 
-  802d1e8:	20000d20 	.word	0x20000d20
 
-  802d1ec:	08040f6e 	.word	0x08040f6e
 
-  802d1f0:	0802bc93 	.word	0x0802bc93
 
-  802d1f4:	2000e238 	.word	0x2000e238
 
-  802d1f8:	08040f23 	.word	0x08040f23
 
-  802d1fc:	08040f27 	.word	0x08040f27
 
-  802d200:	08040f31 	.word	0x08040f31
 
-  802d204:	08040f35 	.word	0x08040f35
 
-  802d208:	08040f40 	.word	0x08040f40
 
-  802d20c:	08040f44 	.word	0x08040f44
 
-  802d210:	08040f93 	.word	0x08040f93
 
-  802d214:	08040f97 	.word	0x08040f97
 
-  802d218:	08040f51 	.word	0x08040f51
 
-  802d21c:	08040f55 	.word	0x08040f55
 
-  802d220:	08040fa0 	.word	0x08040fa0
 
-  802d224:	20000711 	.word	0x20000711
 
-  802d228:	08040fbf 	.word	0x08040fbf
 
-  802d22c:	08040fc3 	.word	0x08040fc3
 
-  802d230:	08040fce 	.word	0x08040fce
 
-  802d234:	08040fd2 	.word	0x08040fd2
 
-  802d238:	08040fe0 	.word	0x08040fe0
 
-  802d23c:	08040fe4 	.word	0x08040fe4
 
-  802d240:	08040ff6 	.word	0x08040ff6
 
-  802d244:	08041007 	.word	0x08041007
 
-  802d248:	20000d22 	.word	0x20000d22
 
-  802d24c:	20000d34 	.word	0x20000d34
 
-  802d250:	2000db5c 	.word	0x2000db5c
 
-  802d254:	08041019 	.word	0x08041019
 
-  802d258:	08039ade 	.word	0x08039ade
 
-  802d25c:	0804102c 	.word	0x0804102c
 
-  802d260:	08041130 	.word	0x08041130
 
-  802d264:	0804103e 	.word	0x0804103e
 
-  802d268:	080410ad 	.word	0x080410ad
 
-  802d26c:	080410bb 	.word	0x080410bb
 
-  802d270:	080410ca 	.word	0x080410ca
 
- 		  hs->file = sendBuf;
 
- 		  hs->left = sendBufLoadLen;
 
- 		  send_data(pcb, hs);
 
- 		  tcp_sent(pcb, http_sent);
 
- 	  }
 
- 	  else if (strncmp(data, "GET /history.cgi", 16) == 0)
 
-  802d274:	4630      	mov	r0, r6
 
-  802d276:	4965      	ldr	r1, [pc, #404]	; (802d40c <http_recv+0x780>)
 
-  802d278:	2210      	movs	r2, #16
 
-  802d27a:	f7f4 fe7b 	bl	8021f74 <strncmp>
 
-  802d27e:	b9a0      	cbnz	r0, 802d2aa <http_recv+0x61e>
 
- 		{
 
- 		  int res;
 
- 		  res = HTTP_HistoryPage(receiveBuf, sendBuf, receivedBufLen, &sendBufLoadLen);
 
-  802d280:	4b63      	ldr	r3, [pc, #396]	; (802d410 <http_recv+0x784>)
 
-  802d282:	4f64      	ldr	r7, [pc, #400]	; (802d414 <http_recv+0x788>)
 
-  802d284:	4e64      	ldr	r6, [pc, #400]	; (802d418 <http_recv+0x78c>)
 
-  802d286:	881a      	ldrh	r2, [r3, #0]
 
-  802d288:	4864      	ldr	r0, [pc, #400]	; (802d41c <http_recv+0x790>)
 
-  802d28a:	4639      	mov	r1, r7
 
-  802d28c:	4633      	mov	r3, r6
 
-  802d28e:	f7ff fc01 	bl	802ca94 <HTTP_HistoryPage>
 
- 		  if (res == SEND_REQUIRED_FILE)
 
-  802d292:	2802      	cmp	r0, #2
 
-  802d294:	d12a      	bne.n	802d2ec <http_recv+0x660>
 
- 		  {
 
- 			  hs->file = sendBuf;
 
- 			  hs->left = sendBufLoadLen;
 
-  802d296:	8833      	ldrh	r3, [r6, #0]
 
- 		  res = HTTP_HistoryPage(receiveBuf, sendBuf, receivedBufLen, &sendBufLoadLen);
 
- 		  if (res == SEND_REQUIRED_FILE)
 
- 		  {
 
- 			  hs->file = sendBuf;
 
-  802d298:	6027      	str	r7, [r4, #0]
 
- 			  hs->left = sendBufLoadLen;
 
- 			  send_data(pcb, hs);
 
-  802d29a:	4628      	mov	r0, r5
 
-  802d29c:	4621      	mov	r1, r4
 
- 		  res = HTTP_HistoryPage(receiveBuf, sendBuf, receivedBufLen, &sendBufLoadLen);
 
- 		  if (res == SEND_REQUIRED_FILE)
 
- 		  {
 
- 			  hs->file = sendBuf;
 
- 			  hs->left = sendBufLoadLen;
 
-  802d29e:	6063      	str	r3, [r4, #4]
 
- 			  send_data(pcb, hs);
 
-  802d2a0:	f7fe fcbe 	bl	802bc20 <send_data>
 
- 			  tcp_sent(pcb, http_sent_history);
 
-  802d2a4:	4628      	mov	r0, r5
 
-  802d2a6:	495e      	ldr	r1, [pc, #376]	; (802d420 <http_recv+0x794>)
 
-  802d2a8:	e019      	b.n	802d2de <http_recv+0x652>
 
- 			  hs->left = sendBufLoadLen;
 
- 			  send_data(pcb, hs);
 
- 			  tcp_sent(pcb, http_sent);
 
- 		  }
 
- 		}
 
- 	else if (strncmp(data, "GET /ups_history.cgi", 19) == 0)
 
-  802d2aa:	4630      	mov	r0, r6
 
-  802d2ac:	495d      	ldr	r1, [pc, #372]	; (802d424 <http_recv+0x798>)
 
-  802d2ae:	2213      	movs	r2, #19
 
-  802d2b0:	f7f4 fe60 	bl	8021f74 <strncmp>
 
-  802d2b4:	b9f0      	cbnz	r0, 802d2f4 <http_recv+0x668>
 
- 	{
 
- 	  int res;
 
- 	  res = HTTP_UpsHistoryPage(receiveBuf, sendBuf, receivedBufLen, &sendBufLoadLen);
 
-  802d2b6:	4b56      	ldr	r3, [pc, #344]	; (802d410 <http_recv+0x784>)
 
-  802d2b8:	4f56      	ldr	r7, [pc, #344]	; (802d414 <http_recv+0x788>)
 
-  802d2ba:	4e57      	ldr	r6, [pc, #348]	; (802d418 <http_recv+0x78c>)
 
-  802d2bc:	881a      	ldrh	r2, [r3, #0]
 
-  802d2be:	4857      	ldr	r0, [pc, #348]	; (802d41c <http_recv+0x790>)
 
-  802d2c0:	4639      	mov	r1, r7
 
-  802d2c2:	4633      	mov	r3, r6
 
-  802d2c4:	f7ff fb8a 	bl	802c9dc <HTTP_UpsHistoryPage>
 
- 	  if (res == SEND_REQUIRED_FILE)
 
-  802d2c8:	2802      	cmp	r0, #2
 
-  802d2ca:	d10f      	bne.n	802d2ec <http_recv+0x660>
 
- 	  {
 
- 		  hs->file = sendBuf;
 
- 		  hs->left = sendBufLoadLen;
 
-  802d2cc:	8833      	ldrh	r3, [r6, #0]
 
- 	  res = HTTP_UpsHistoryPage(receiveBuf, sendBuf, receivedBufLen, &sendBufLoadLen);
 
- 	  if (res == SEND_REQUIRED_FILE)
 
- 	  {
 
- 		  hs->file = sendBuf;
 
-  802d2ce:	6027      	str	r7, [r4, #0]
 
- 		  hs->left = sendBufLoadLen;
 
- 		  send_data(pcb, hs);
 
-  802d2d0:	4628      	mov	r0, r5
 
-  802d2d2:	4621      	mov	r1, r4
 
- 	  res = HTTP_UpsHistoryPage(receiveBuf, sendBuf, receivedBufLen, &sendBufLoadLen);
 
- 	  if (res == SEND_REQUIRED_FILE)
 
- 	  {
 
- 		  hs->file = sendBuf;
 
- 		  hs->left = sendBufLoadLen;
 
-  802d2d4:	6063      	str	r3, [r4, #4]
 
- 		  send_data(pcb, hs);
 
-  802d2d6:	f7fe fca3 	bl	802bc20 <send_data>
 
- 		  tcp_sent(pcb, http_sent_log);
 
-  802d2da:	4953      	ldr	r1, [pc, #332]	; (802d428 <http_recv+0x79c>)
 
-  802d2dc:	4628      	mov	r0, r5
 
-  802d2de:	f003 f8df 	bl	80304a0 <tcp_sent>
 
- 		  tcp_err(pcb, http_sent_log_err);
 
-  802d2e2:	4628      	mov	r0, r5
 
-  802d2e4:	4951      	ldr	r1, [pc, #324]	; (802d42c <http_recv+0x7a0>)
 
-  802d2e6:	f003 f8dd 	bl	80304a4 <tcp_err>
 
-  802d2ea:	e088      	b.n	802d3fe <http_recv+0x772>
 
- 	  }
 
- 	  else if (res == SEND_REQUIRED_YES) {
 
-  802d2ec:	2800      	cmp	r0, #0
 
-  802d2ee:	f040 8086 	bne.w	802d3fe <http_recv+0x772>
 
-  802d2f2:	e06e      	b.n	802d3d2 <http_recv+0x746>
 
- 		  send_data(pcb, hs);
 
- 		  tcp_sent(pcb, http_sent);
 
- 	  }
 
- 	}
 
- 	  /* Тест  АКБ ИБП */
 
- 	  else if (strncmp(data, "POST /bat_test.cgi", 18) == 0)
 
-  802d2f4:	4630      	mov	r0, r6
 
-  802d2f6:	494e      	ldr	r1, [pc, #312]	; (802d430 <http_recv+0x7a4>)
 
-  802d2f8:	2212      	movs	r2, #18
 
-  802d2fa:	f7f4 fe3b 	bl	8021f74 <strncmp>
 
-  802d2fe:	b948      	cbnz	r0, 802d314 <http_recv+0x688>
 
- 	  {
 
- 		HTTP_UPSTest(receiveBuf, sendBuf, receivedBufLen, &sendBufLoadLen);
 
-  802d300:	4f44      	ldr	r7, [pc, #272]	; (802d414 <http_recv+0x788>)
 
-  802d302:	4e45      	ldr	r6, [pc, #276]	; (802d418 <http_recv+0x78c>)
 
-  802d304:	4b42      	ldr	r3, [pc, #264]	; (802d410 <http_recv+0x784>)
 
-  802d306:	4845      	ldr	r0, [pc, #276]	; (802d41c <http_recv+0x790>)
 
-  802d308:	881a      	ldrh	r2, [r3, #0]
 
-  802d30a:	4639      	mov	r1, r7
 
-  802d30c:	4633      	mov	r3, r6
 
-  802d30e:	f7fe fe0f 	bl	802bf30 <HTTP_UPSTest>
 
-  802d312:	e05e      	b.n	802d3d2 <http_recv+0x746>
 
- 		hs->left = sendBufLoadLen;
 
- 		send_data(pcb, hs);
 
- 		tcp_sent(pcb, http_sent);
 
- 	  }
 
- 	  /* Выключение ИБП */
 
- 	  else if (strncmp(data, "POST /ups_power.cgi", 19) == 0)
 
-  802d314:	4630      	mov	r0, r6
 
-  802d316:	4947      	ldr	r1, [pc, #284]	; (802d434 <http_recv+0x7a8>)
 
-  802d318:	2213      	movs	r2, #19
 
-  802d31a:	f7f4 fe2b 	bl	8021f74 <strncmp>
 
-  802d31e:	b948      	cbnz	r0, 802d334 <http_recv+0x6a8>
 
- 	  {
 
- 		HTTP_UPSshutdown(receiveBuf, sendBuf, receivedBufLen, &sendBufLoadLen);
 
-  802d320:	4f3c      	ldr	r7, [pc, #240]	; (802d414 <http_recv+0x788>)
 
-  802d322:	4e3d      	ldr	r6, [pc, #244]	; (802d418 <http_recv+0x78c>)
 
-  802d324:	4b3a      	ldr	r3, [pc, #232]	; (802d410 <http_recv+0x784>)
 
-  802d326:	483d      	ldr	r0, [pc, #244]	; (802d41c <http_recv+0x790>)
 
-  802d328:	881a      	ldrh	r2, [r3, #0]
 
-  802d32a:	4639      	mov	r1, r7
 
-  802d32c:	4633      	mov	r3, r6
 
-  802d32e:	f7fe fe8d 	bl	802c04c <HTTP_UPSshutdown>
 
-  802d332:	e04e      	b.n	802d3d2 <http_recv+0x746>
 
- 		hs->left = sendBufLoadLen;
 
- 		send_data(pcb, hs);
 
- 		tcp_sent(pcb, http_sent);
 
- 	  }
 
- 	  /* Сброс настроек и сохранине */
 
- 	  else if (strncmp(data, "GET /reset.cgi", 14) == 0)
 
-  802d334:	4630      	mov	r0, r6
 
-  802d336:	4940      	ldr	r1, [pc, #256]	; (802d438 <http_recv+0x7ac>)
 
-  802d338:	220e      	movs	r2, #14
 
-  802d33a:	f7f4 fe1b 	bl	8021f74 <strncmp>
 
-  802d33e:	b928      	cbnz	r0, 802d34c <http_recv+0x6c0>
 
- 	  {
 
- 		HTTP_ResetSettings();
 
-  802d340:	f000 fd28 	bl	802dd94 <HTTP_ResetSettings>
 
- 		HTTP_SaveSettings();
 
-  802d344:	f000 fd3a 	bl	802ddbc <HTTP_SaveSettings>
 
- 		fs_open("/settings.html", &file);
 
-  802d348:	483c      	ldr	r0, [pc, #240]	; (802d43c <http_recv+0x7b0>)
 
-  802d34a:	e049      	b.n	802d3e0 <http_recv+0x754>
 
- 		hs->left = file.len;
 
- 		send_data(pcb, hs);
 
- 		tcp_sent(pcb, http_sent);
 
- 	  }
 
- 	  /* Перезагрузка контроллера */
 
- 	  else if (strncmp(data, "GET /reboot.cgi", 15) == 0)
 
-  802d34c:	4630      	mov	r0, r6
 
-  802d34e:	493c      	ldr	r1, [pc, #240]	; (802d440 <http_recv+0x7b4>)
 
-  802d350:	220f      	movs	r2, #15
 
-  802d352:	f7f4 fe0f 	bl	8021f74 <strncmp>
 
-  802d356:	b910      	cbnz	r0, 802d35e <http_recv+0x6d2>
 
- 	  {
 
- 		HTTP_Reboot();
 
-  802d358:	f000 fd5c 	bl	802de14 <HTTP_Reboot>
 
-  802d35c:	e04f      	b.n	802d3fe <http_recv+0x772>
 
- 	  }
 
- 	  /* Подтверждение новых сетевых настроек */
 
- 	  else if (strncmp(data, "GET /confirm.cgi", 16) == 0)
 
-  802d35e:	4630      	mov	r0, r6
 
-  802d360:	4938      	ldr	r1, [pc, #224]	; (802d444 <http_recv+0x7b8>)
 
-  802d362:	2210      	movs	r2, #16
 
-  802d364:	f7f4 fe06 	bl	8021f74 <strncmp>
 
-  802d368:	b920      	cbnz	r0, 802d374 <http_recv+0x6e8>
 
- 	  {
 
- 		SetWebReinitFlag(false);
 
-  802d36a:	f7fa fee1 	bl	8028130 <SetWebReinitFlag>
 
- 		SetConfirmWebParamsFlag();
 
-  802d36e:	f7fa fee5 	bl	802813c <SetConfirmWebParamsFlag>
 
-  802d372:	e034      	b.n	802d3de <http_recv+0x752>
 
- 		hs->left = file.len;
 
- 		send_data(pcb, hs);
 
- 		tcp_sent(pcb, http_sent);
 
- 	  }
 
- 	  /* Проверка пароля, переход в bootloader */
 
- 	  else if (strncmp(data, "GET /fw_update.cgi", 18) == 0)
 
-  802d374:	4630      	mov	r0, r6
 
-  802d376:	4934      	ldr	r1, [pc, #208]	; (802d448 <http_recv+0x7bc>)
 
-  802d378:	2212      	movs	r2, #18
 
-  802d37a:	f7f4 fdfb 	bl	8021f74 <strncmp>
 
-  802d37e:	b948      	cbnz	r0, 802d394 <http_recv+0x708>
 
- 	  {
 
- 		HTTP_ConfirmBootPwd(receiveBuf, sendBuf, receivedBufLen, &sendBufLoadLen);
 
-  802d380:	4f24      	ldr	r7, [pc, #144]	; (802d414 <http_recv+0x788>)
 
-  802d382:	4e25      	ldr	r6, [pc, #148]	; (802d418 <http_recv+0x78c>)
 
-  802d384:	4b22      	ldr	r3, [pc, #136]	; (802d410 <http_recv+0x784>)
 
-  802d386:	4825      	ldr	r0, [pc, #148]	; (802d41c <http_recv+0x790>)
 
-  802d388:	881a      	ldrh	r2, [r3, #0]
 
-  802d38a:	4639      	mov	r1, r7
 
-  802d38c:	4633      	mov	r3, r6
 
-  802d38e:	f7fe ff05 	bl	802c19c <HTTP_ConfirmBootPwd>
 
-  802d392:	e01e      	b.n	802d3d2 <http_recv+0x746>
 
- 		hs->left = sendBufLoadLen;
 
- 		send_data(pcb, hs);
 
- 		tcp_sent(pcb, http_sent);
 
- 	  }
 
- 	  /* Смена пароля пользователя */
 
- 	  else if (strncmp(data, "POST /changepwd.cgi", 19) == 0)
 
-  802d394:	4630      	mov	r0, r6
 
-  802d396:	492d      	ldr	r1, [pc, #180]	; (802d44c <http_recv+0x7c0>)
 
-  802d398:	2213      	movs	r2, #19
 
-  802d39a:	f7f4 fdeb 	bl	8021f74 <strncmp>
 
-  802d39e:	b948      	cbnz	r0, 802d3b4 <http_recv+0x728>
 
- 	  {
 
- 		  HTTP_ChangeUserPwd(receiveBuf, sendBuf, receivedBufLen, &sendBufLoadLen);
 
-  802d3a0:	4f1c      	ldr	r7, [pc, #112]	; (802d414 <http_recv+0x788>)
 
-  802d3a2:	4e1d      	ldr	r6, [pc, #116]	; (802d418 <http_recv+0x78c>)
 
-  802d3a4:	4b1a      	ldr	r3, [pc, #104]	; (802d410 <http_recv+0x784>)
 
-  802d3a6:	481d      	ldr	r0, [pc, #116]	; (802d41c <http_recv+0x790>)
 
-  802d3a8:	881a      	ldrh	r2, [r3, #0]
 
-  802d3aa:	4639      	mov	r1, r7
 
-  802d3ac:	4633      	mov	r3, r6
 
-  802d3ae:	f7ff fbcf 	bl	802cb50 <HTTP_ChangeUserPwd>
 
-  802d3b2:	e00e      	b.n	802d3d2 <http_recv+0x746>
 
- 		  hs->left = sendBufLoadLen;
 
- 		  send_data(pcb, hs);
 
- 		  tcp_sent(pcb, http_sent);
 
- 	  }
 
- 	  // На производстве
 
- 	  else if (strncmp(data, "GET /setProdate.cgi", 19) == 0)
 
-  802d3b4:	4630      	mov	r0, r6
 
-  802d3b6:	4926      	ldr	r1, [pc, #152]	; (802d450 <http_recv+0x7c4>)
 
-  802d3b8:	2213      	movs	r2, #19
 
-  802d3ba:	f7f4 fddb 	bl	8021f74 <strncmp>
 
-  802d3be:	b958      	cbnz	r0, 802d3d8 <http_recv+0x74c>
 
- 	  {
 
- 		HTTP_Prodate(receiveBuf, sendBuf, receivedBufLen, &sendBufLoadLen);
 
-  802d3c0:	4b13      	ldr	r3, [pc, #76]	; (802d410 <http_recv+0x784>)
 
-  802d3c2:	4f14      	ldr	r7, [pc, #80]	; (802d414 <http_recv+0x788>)
 
-  802d3c4:	4e14      	ldr	r6, [pc, #80]	; (802d418 <http_recv+0x78c>)
 
-  802d3c6:	881a      	ldrh	r2, [r3, #0]
 
-  802d3c8:	4814      	ldr	r0, [pc, #80]	; (802d41c <http_recv+0x790>)
 
-  802d3ca:	4639      	mov	r1, r7
 
-  802d3cc:	4633      	mov	r3, r6
 
-  802d3ce:	f7ff fad1 	bl	802c974 <HTTP_Prodate>
 
- 		hs->file = sendBuf;
 
-  802d3d2:	6027      	str	r7, [r4, #0]
 
- 		hs->left = sendBufLoadLen;
 
-  802d3d4:	8833      	ldrh	r3, [r6, #0]
 
-  802d3d6:	e009      	b.n	802d3ec <http_recv+0x760>
 
- 		send_data(pcb, hs);
 
- 		tcp_sent(pcb, http_sent);
 
- 	  }
 
- 	  else
 
- 	  {
 
- 		HTTP_UpdateUserLoginTime(user_id);
 
-  802d3d8:	4638      	mov	r0, r7
 
-  802d3da:	f7fe fbd3 	bl	802bb84 <HTTP_UpdateUserLoginTime>
 
- 		fs_open("/index.html", &file); // +
 
-  802d3de:	481d      	ldr	r0, [pc, #116]	; (802d454 <http_recv+0x7c8>)
 
-  802d3e0:	a905      	add	r1, sp, #20
 
-  802d3e2:	f7fe fbe1 	bl	802bba8 <fs_open>
 
- 		hs->file = file.data;
 
-  802d3e6:	9b05      	ldr	r3, [sp, #20]
 
-  802d3e8:	6023      	str	r3, [r4, #0]
 
- 		hs->left = file.len;
 
-  802d3ea:	9b06      	ldr	r3, [sp, #24]
 
-  802d3ec:	6063      	str	r3, [r4, #4]
 
- 		send_data(pcb, hs);
 
-  802d3ee:	4628      	mov	r0, r5
 
-  802d3f0:	4621      	mov	r1, r4
 
-  802d3f2:	f7fe fc15 	bl	802bc20 <send_data>
 
- 		tcp_sent(pcb, http_sent);
 
-  802d3f6:	4628      	mov	r0, r5
 
-  802d3f8:	4917      	ldr	r1, [pc, #92]	; (802d458 <http_recv+0x7cc>)
 
-  802d3fa:	f003 f851 	bl	80304a0 <tcp_sent>
 
- 	  }
 
- 	}
 
-     }
 
-     pbuf_free(p);
 
-  802d3fe:	4640      	mov	r0, r8
 
-  802d400:	f002 fd04 	bl	802fe0c <pbuf_free>
 
- /*  if (err == ERR_OK && p == NULL)
 
-   {
 
-     close_conn(pcb, hs);
 
-   }*/
 
-   return ERR_OK;
 
- } 
 
-  802d404:	2000      	movs	r0, #0
 
-  802d406:	b01d      	add	sp, #116	; 0x74
 
-  802d408:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
-  802d40c:	08041135 	.word	0x08041135
 
-  802d410:	20000d34 	.word	0x20000d34
 
-  802d414:	2000d38c 	.word	0x2000d38c
 
-  802d418:	20000d20 	.word	0x20000d20
 
-  802d41c:	2000db5c 	.word	0x2000db5c
 
-  802d420:	0802bd4d 	.word	0x0802bd4d
 
-  802d424:	08041146 	.word	0x08041146
 
-  802d428:	0802bcad 	.word	0x0802bcad
 
-  802d42c:	0802bb79 	.word	0x0802bb79
 
-  802d430:	0804115b 	.word	0x0804115b
 
-  802d434:	0804116e 	.word	0x0804116e
 
-  802d438:	08041182 	.word	0x08041182
 
-  802d43c:	08040fa4 	.word	0x08040fa4
 
-  802d440:	08041191 	.word	0x08041191
 
-  802d444:	080411a1 	.word	0x080411a1
 
-  802d448:	080411b2 	.word	0x080411b2
 
-  802d44c:	080411c5 	.word	0x080411c5
 
-  802d450:	080411d9 	.word	0x080411d9
 
-  802d454:	08040fb3 	.word	0x08040fb3
 
-  802d458:	0802bc93 	.word	0x0802bc93
 
- 0802d45c <HTTP_GetParamsPage1>:
 
- /**
 
-   * @brief  Возвращяет строку с настройками на первой странице
 
-   * @retval None
 
-   */
 
- void HTTP_GetParamsPage1(char *buf)
 
- {
 
-  802d45c:	b510      	push	{r4, lr}
 
-   char str[40];
 
-   uint8_t len;
 
-   memset(buf, 0, 1000);
 
-  802d45e:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
 
- /**
 
-   * @brief  Возвращяет строку с настройками на первой странице
 
-   * @retval None
 
-   */
 
- void HTTP_GetParamsPage1(char *buf)
 
- {
 
-  802d462:	b08c      	sub	sp, #48	; 0x30
 
-  802d464:	4604      	mov	r4, r0
 
-   char str[40];
 
-   uint8_t len;
 
-   memset(buf, 0, 1000);
 
-  802d466:	2100      	movs	r1, #0
 
-  802d468:	f7f4 fb4a 	bl	8021b00 <memset>
 
-   
 
-   // Headers для поддержки saffari 
 
-   strcpy(buf, "HTTP/1.0 200 OK\r\nContent-Type:text/html\r\n\r\n");
 
-  802d46c:	4620      	mov	r0, r4
 
-  802d46e:	496f      	ldr	r1, [pc, #444]	; (802d62c <HTTP_GetParamsPage1+0x1d0>)
 
-  802d470:	f7f4 fcc0 	bl	8021df4 <strcpy>
 
-   
 
-   // Параметры UPS
 
-   
 
-   GetInputVoltageStr(str, &len);
 
-  802d474:	a802      	add	r0, sp, #8
 
-  802d476:	f10d 0107 	add.w	r1, sp, #7
 
-  802d47a:	f7fa fa03 	bl	8027884 <GetInputVoltageStr>
 
-   strcat(buf, "{\"AC\":\"");
 
-  802d47e:	4620      	mov	r0, r4
 
-  802d480:	496b      	ldr	r1, [pc, #428]	; (802d630 <HTTP_GetParamsPage1+0x1d4>)
 
-  802d482:	f7f4 fba3 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d486:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d48a:	a902      	add	r1, sp, #8
 
-  802d48c:	4620      	mov	r0, r4
 
-  802d48e:	f7f4 fd3f 	bl	8021f10 <strncat>
 
-   
 
-   GetOutputVoltageStr(str, &len);
 
-  802d492:	a802      	add	r0, sp, #8
 
-  802d494:	f10d 0107 	add.w	r1, sp, #7
 
-  802d498:	f7fa fa0a 	bl	80278b0 <GetOutputVoltageStr>
 
-   strcat(buf, "\",\"DC\":\"");
 
-  802d49c:	4620      	mov	r0, r4
 
-  802d49e:	4965      	ldr	r1, [pc, #404]	; (802d634 <HTTP_GetParamsPage1+0x1d8>)
 
-  802d4a0:	f7f4 fb94 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d4a4:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d4a8:	a902      	add	r1, sp, #8
 
-  802d4aa:	4620      	mov	r0, r4
 
-  802d4ac:	f7f4 fd30 	bl	8021f10 <strncat>
 
-   
 
-   GetInputFreqStr(str, &len);
 
-  802d4b0:	a802      	add	r0, sp, #8
 
-  802d4b2:	f10d 0107 	add.w	r1, sp, #7
 
-  802d4b6:	f7fa f9b9 	bl	802782c <GetInputFreqStr>
 
-   strcat(buf, "\",\"in_freq\":\"");
 
-  802d4ba:	4620      	mov	r0, r4
 
-  802d4bc:	495e      	ldr	r1, [pc, #376]	; (802d638 <HTTP_GetParamsPage1+0x1dc>)
 
-  802d4be:	f7f4 fb85 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d4c2:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d4c6:	a902      	add	r1, sp, #8
 
-  802d4c8:	4620      	mov	r0, r4
 
-  802d4ca:	f7f4 fd21 	bl	8021f10 <strncat>
 
-   
 
-   GetOutputFreqStr(str, &len);
 
-  802d4ce:	a802      	add	r0, sp, #8
 
-  802d4d0:	f10d 0107 	add.w	r1, sp, #7
 
-  802d4d4:	f7fa f9c0 	bl	8027858 <GetOutputFreqStr>
 
-   strcat(buf, "\",\"out_freq\":\"");
 
-  802d4d8:	4620      	mov	r0, r4
 
-  802d4da:	4958      	ldr	r1, [pc, #352]	; (802d63c <HTTP_GetParamsPage1+0x1e0>)
 
-  802d4dc:	f7f4 fb76 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d4e0:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d4e4:	a902      	add	r1, sp, #8
 
-  802d4e6:	4620      	mov	r0, r4
 
-  802d4e8:	f7f4 fd12 	bl	8021f10 <strncat>
 
-   
 
-   GetPowerStr(str, &len);
 
-  802d4ec:	a802      	add	r0, sp, #8
 
-  802d4ee:	f10d 0107 	add.w	r1, sp, #7
 
-  802d4f2:	f7fa f9f3 	bl	80278dc <GetPowerStr>
 
-   strcat(buf, "\",\"pwr\":\"");
 
-  802d4f6:	4620      	mov	r0, r4
 
-  802d4f8:	4951      	ldr	r1, [pc, #324]	; (802d640 <HTTP_GetParamsPage1+0x1e4>)
 
-  802d4fa:	f7f4 fb67 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d4fe:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d502:	a902      	add	r1, sp, #8
 
-  802d504:	4620      	mov	r0, r4
 
-  802d506:	f7f4 fd03 	bl	8021f10 <strncat>
 
-   
 
-   GetBatCapacityStr(str, &len);
 
-  802d50a:	a802      	add	r0, sp, #8
 
-  802d50c:	f10d 0107 	add.w	r1, sp, #7
 
-  802d510:	f7fa f9f6 	bl	8027900 <GetBatCapacityStr>
 
-   strcat(buf, "\",\"bat_cap\":\"");
 
-  802d514:	4620      	mov	r0, r4
 
-  802d516:	494b      	ldr	r1, [pc, #300]	; (802d644 <HTTP_GetParamsPage1+0x1e8>)
 
-  802d518:	f7f4 fb58 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d51c:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d520:	a902      	add	r1, sp, #8
 
-  802d522:	4620      	mov	r0, r4
 
-  802d524:	f7f4 fcf4 	bl	8021f10 <strncat>
 
-   
 
-   GetInternalTempStr(str, &len);
 
-  802d528:	a802      	add	r0, sp, #8
 
-  802d52a:	f10d 0107 	add.w	r1, sp, #7
 
-  802d52e:	f7fa fa0b 	bl	8027948 <GetInternalTempStr>
 
-   strcat(buf, "\",\"inner_temp\":\"");
 
-  802d532:	4620      	mov	r0, r4
 
-  802d534:	4944      	ldr	r1, [pc, #272]	; (802d648 <HTTP_GetParamsPage1+0x1ec>)
 
-  802d536:	f7f4 fb49 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d53a:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d53e:	a902      	add	r1, sp, #8
 
-  802d540:	4620      	mov	r0, r4
 
-  802d542:	f7f4 fce5 	bl	8021f10 <strncat>
 
-   
 
-   GetRuntimeStr(str, &len);
 
-  802d546:	a802      	add	r0, sp, #8
 
-  802d548:	f10d 0107 	add.w	r1, sp, #7
 
-  802d54c:	f7fa f9ea 	bl	8027924 <GetRuntimeStr>
 
-   strcat(buf, "\",\"bat_time_left\":\"");
 
-  802d550:	4620      	mov	r0, r4
 
-  802d552:	493e      	ldr	r1, [pc, #248]	; (802d64c <HTTP_GetParamsPage1+0x1f0>)
 
-  802d554:	f7f4 fb3a 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d558:	a902      	add	r1, sp, #8
 
-  802d55a:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d55e:	4620      	mov	r0, r4
 
-  802d560:	f7f4 fcd6 	bl	8021f10 <strncat>
 
-   
 
-   GetDINStatusStr(str, &len, 0);
 
-  802d564:	2200      	movs	r2, #0
 
-  802d566:	a802      	add	r0, sp, #8
 
-  802d568:	f10d 0107 	add.w	r1, sp, #7
 
-  802d56c:	f7fa faf0 	bl	8027b50 <GetDINStatusStr>
 
-   strcat(buf, "\",\"di1\":\"");
 
-  802d570:	4620      	mov	r0, r4
 
-  802d572:	4937      	ldr	r1, [pc, #220]	; (802d650 <HTTP_GetParamsPage1+0x1f4>)
 
-  802d574:	f7f4 fb2a 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d578:	a902      	add	r1, sp, #8
 
-  802d57a:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d57e:	4620      	mov	r0, r4
 
-  802d580:	f7f4 fcc6 	bl	8021f10 <strncat>
 
-   
 
-   GetDOUTStatusStr(str, &len, 0);
 
-  802d584:	a802      	add	r0, sp, #8
 
-  802d586:	f10d 0107 	add.w	r1, sp, #7
 
-  802d58a:	2200      	movs	r2, #0
 
-  802d58c:	f7fa fb1a 	bl	8027bc4 <GetDOUTStatusStr>
 
-   strcat(buf, "\",\"ro1\":\"");
 
-  802d590:	4620      	mov	r0, r4
 
-  802d592:	4930      	ldr	r1, [pc, #192]	; (802d654 <HTTP_GetParamsPage1+0x1f8>)
 
-  802d594:	f7f4 fb1a 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d598:	a902      	add	r1, sp, #8
 
-  802d59a:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d59e:	4620      	mov	r0, r4
 
-  802d5a0:	f7f4 fcb6 	bl	8021f10 <strncat>
 
-   
 
-   GetDOUTStatusStr(str, &len, 1);
 
-  802d5a4:	2201      	movs	r2, #1
 
-  802d5a6:	a802      	add	r0, sp, #8
 
-  802d5a8:	f10d 0107 	add.w	r1, sp, #7
 
-  802d5ac:	f7fa fb0a 	bl	8027bc4 <GetDOUTStatusStr>
 
-   strcat(buf, "\",\"ro2\":\"");
 
-  802d5b0:	4620      	mov	r0, r4
 
-  802d5b2:	4929      	ldr	r1, [pc, #164]	; (802d658 <HTTP_GetParamsPage1+0x1fc>)
 
-  802d5b4:	f7f4 fb0a 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d5b8:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d5bc:	a902      	add	r1, sp, #8
 
-  802d5be:	4620      	mov	r0, r4
 
-  802d5c0:	f7f4 fca6 	bl	8021f10 <strncat>
 
-     // Мониторинг
 
-     // load_monitor (нагрузка, 0 - норма, 1 - fail)
 
-     // temp_monitor (внутренняя температура, 0 - норма, 1 - fail)
 
-     // connect_monitor (связь с UPSом, 0 - норма, 1 - fail)
 
-   
 
-   GetAlarmMonitorStr(str, &len);
 
-  802d5c4:	a802      	add	r0, sp, #8
 
-  802d5c6:	f10d 0107 	add.w	r1, sp, #7
 
-  802d5ca:	f7fa f9d3 	bl	8027974 <GetAlarmMonitorStr>
 
-   strcat(buf, "\",\"m_alarm\":\"");
 
-  802d5ce:	4620      	mov	r0, r4
 
-  802d5d0:	4922      	ldr	r1, [pc, #136]	; (802d65c <HTTP_GetParamsPage1+0x200>)
 
-  802d5d2:	f7f4 fafb 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d5d6:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d5da:	a902      	add	r1, sp, #8
 
-  802d5dc:	4620      	mov	r0, r4
 
-  802d5de:	f7f4 fc97 	bl	8021f10 <strncat>
 
-   GetAlarmStr(str, &len);
 
-  802d5e2:	a802      	add	r0, sp, #8
 
-  802d5e4:	f10d 0107 	add.w	r1, sp, #7
 
-  802d5e8:	f7fa f9ee 	bl	80279c8 <GetAlarmStr>
 
-   strcat(buf, "\",\"u_alarm\":\"");
 
-  802d5ec:	4620      	mov	r0, r4
 
-  802d5ee:	491c      	ldr	r1, [pc, #112]	; (802d660 <HTTP_GetParamsPage1+0x204>)
 
-  802d5f0:	f7f4 faec 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d5f4:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d5f8:	a902      	add	r1, sp, #8
 
-  802d5fa:	4620      	mov	r0, r4
 
-  802d5fc:	f7f4 fc88 	bl	8021f10 <strncat>
 
-   // Признак изменения сетевых настроек 
 
-   GetWebReinitFlag(str, &len);
 
-  802d600:	a802      	add	r0, sp, #8
 
-  802d602:	f10d 0107 	add.w	r1, sp, #7
 
-  802d606:	f7fa fd6d 	bl	80280e4 <GetWebReinitFlag>
 
-   strcat(buf, "\",\"netsettings_changed\":\"");
 
-  802d60a:	4620      	mov	r0, r4
 
-  802d60c:	4915      	ldr	r1, [pc, #84]	; (802d664 <HTTP_GetParamsPage1+0x208>)
 
-  802d60e:	f7f4 fadd 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d612:	a902      	add	r1, sp, #8
 
-  802d614:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d618:	4620      	mov	r0, r4
 
-  802d61a:	f7f4 fc79 	bl	8021f10 <strncat>
 
-   strncat(buf, "\"}", 2);
 
-  802d61e:	4620      	mov	r0, r4
 
-  802d620:	4911      	ldr	r1, [pc, #68]	; (802d668 <HTTP_GetParamsPage1+0x20c>)
 
-  802d622:	2202      	movs	r2, #2
 
-  802d624:	f7f4 fc74 	bl	8021f10 <strncat>
 
-   
 
-   //printf(buf);
 
- }
 
-  802d628:	b00c      	add	sp, #48	; 0x30
 
-  802d62a:	bd10      	pop	{r4, pc}
 
-  802d62c:	08044c64 	.word	0x08044c64
 
-  802d630:	08044c90 	.word	0x08044c90
 
-  802d634:	08044c98 	.word	0x08044c98
 
-  802d638:	08044ca1 	.word	0x08044ca1
 
-  802d63c:	08044caf 	.word	0x08044caf
 
-  802d640:	08044cbe 	.word	0x08044cbe
 
-  802d644:	08044cc8 	.word	0x08044cc8
 
-  802d648:	08044cd6 	.word	0x08044cd6
 
-  802d64c:	08044ce7 	.word	0x08044ce7
 
-  802d650:	08044cfb 	.word	0x08044cfb
 
-  802d654:	08044d05 	.word	0x08044d05
 
-  802d658:	08044d0f 	.word	0x08044d0f
 
-  802d65c:	08044d19 	.word	0x08044d19
 
-  802d660:	08044d27 	.word	0x08044d27
 
-  802d664:	08044d35 	.word	0x08044d35
 
-  802d668:	08044d4f 	.word	0x08044d4f
 
- 0802d66c <HTTP_GetSettings>:
 
- /**
 
-   * @brief  Возвращяет строку с настройками на второй странице
 
-   * @retval None
 
-   */
 
- void HTTP_GetSettings(char *buf)
 
- {
 
-  802d66c:	b510      	push	{r4, lr}
 
-   char str[30];
 
-   uint8_t len;
 
-    
 
-   /* Headers для поддержки saffari */
 
-   strcpy(buf, "HTTP/1.0 200 OK\r\nContent-Type:text/html\r\n\r\n");
 
-  802d66e:	49bf      	ldr	r1, [pc, #764]	; (802d96c <HTTP_GetSettings+0x300>)
 
- /**
 
-   * @brief  Возвращяет строку с настройками на второй странице
 
-   * @retval None
 
-   */
 
- void HTTP_GetSettings(char *buf)
 
- {
 
-  802d670:	b08a      	sub	sp, #40	; 0x28
 
-  802d672:	4604      	mov	r4, r0
 
-   char str[30];
 
-   uint8_t len;
 
-    
 
-   /* Headers для поддержки saffari */
 
-   strcpy(buf, "HTTP/1.0 200 OK\r\nContent-Type:text/html\r\n\r\n");
 
-  802d674:	f7f4 fbbe 	bl	8021df4 <strcpy>
 
-   
 
-   /* SNMP */
 
-   GetReadCommunity(str, &len);  
 
-  802d678:	a802      	add	r0, sp, #8
 
-  802d67a:	f10d 0107 	add.w	r1, sp, #7
 
-  802d67e:	f7fa fc61 	bl	8027f44 <GetReadCommunity>
 
-   strcat(buf, "{\"read_community\":\"");
 
-  802d682:	4620      	mov	r0, r4
 
-  802d684:	49ba      	ldr	r1, [pc, #744]	; (802d970 <HTTP_GetSettings+0x304>)
 
-  802d686:	f7f4 faa1 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);	
 
-  802d68a:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d68e:	a902      	add	r1, sp, #8
 
-  802d690:	4620      	mov	r0, r4
 
-  802d692:	f7f4 fc3d 	bl	8021f10 <strncat>
 
-   
 
-   GetWriteCommunity(str, &len);  
 
-  802d696:	a802      	add	r0, sp, #8
 
-  802d698:	f10d 0107 	add.w	r1, sp, #7
 
-  802d69c:	f7fa fc62 	bl	8027f64 <GetWriteCommunity>
 
-   strcat(buf, "\",\"write_community\":\"");
 
-  802d6a0:	4620      	mov	r0, r4
 
-  802d6a2:	49b4      	ldr	r1, [pc, #720]	; (802d974 <HTTP_GetSettings+0x308>)
 
-  802d6a4:	f7f4 fa92 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d6a8:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d6ac:	a902      	add	r1, sp, #8
 
-  802d6ae:	4620      	mov	r0, r4
 
-  802d6b0:	f7f4 fc2e 	bl	8021f10 <strncat>
 
-   
 
-   GetManagerIp(str, &len);  
 
-  802d6b4:	a802      	add	r0, sp, #8
 
-  802d6b6:	f10d 0107 	add.w	r1, sp, #7
 
-  802d6ba:	f7fa fc63 	bl	8027f84 <GetManagerIp>
 
-   strcat(buf, "\",\"managerIP\":\"");
 
-  802d6be:	4620      	mov	r0, r4
 
-  802d6c0:	49ad      	ldr	r1, [pc, #692]	; (802d978 <HTTP_GetSettings+0x30c>)
 
-  802d6c2:	f7f4 fa83 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d6c6:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d6ca:	a902      	add	r1, sp, #8
 
-  802d6cc:	4620      	mov	r0, r4
 
-  802d6ce:	f7f4 fc1f 	bl	8021f10 <strncat>
 
-   
 
-   GetManagerIp2(str, &len);  
 
-  802d6d2:	a802      	add	r0, sp, #8
 
-  802d6d4:	f10d 0107 	add.w	r1, sp, #7
 
-  802d6d8:	f7fa fc64 	bl	8027fa4 <GetManagerIp2>
 
-   strcat(buf, "\",\"managerIP2\":\"");
 
-  802d6dc:	4620      	mov	r0, r4
 
-  802d6de:	49a7      	ldr	r1, [pc, #668]	; (802d97c <HTTP_GetSettings+0x310>)
 
-  802d6e0:	f7f4 fa74 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d6e4:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d6e8:	a902      	add	r1, sp, #8
 
-  802d6ea:	4620      	mov	r0, r4
 
-  802d6ec:	f7f4 fc10 	bl	8021f10 <strncat>
 
-   
 
-   GetManagerIp3(str, &len);  
 
-  802d6f0:	a802      	add	r0, sp, #8
 
-  802d6f2:	f10d 0107 	add.w	r1, sp, #7
 
-  802d6f6:	f7fa fc65 	bl	8027fc4 <GetManagerIp3>
 
-   strcat(buf, "\",\"managerIP3\":\"");
 
-  802d6fa:	4620      	mov	r0, r4
 
-  802d6fc:	49a0      	ldr	r1, [pc, #640]	; (802d980 <HTTP_GetSettings+0x314>)
 
-  802d6fe:	f7f4 fa65 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d702:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d706:	a902      	add	r1, sp, #8
 
-  802d708:	4620      	mov	r0, r4
 
-  802d70a:	f7f4 fc01 	bl	8021f10 <strncat>
 
-   GetManagerIp4(str, &len);
 
-  802d70e:	a802      	add	r0, sp, #8
 
-  802d710:	f10d 0107 	add.w	r1, sp, #7
 
-  802d714:	f7fa fc66 	bl	8027fe4 <GetManagerIp4>
 
-   strcat(buf, "\",\"managerIP4\":\"");
 
-  802d718:	4620      	mov	r0, r4
 
-  802d71a:	499a      	ldr	r1, [pc, #616]	; (802d984 <HTTP_GetSettings+0x318>)
 
-  802d71c:	f7f4 fa56 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d720:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d724:	a902      	add	r1, sp, #8
 
-  802d726:	4620      	mov	r0, r4
 
-  802d728:	f7f4 fbf2 	bl	8021f10 <strncat>
 
-   GetManagerIp5(str, &len);
 
-  802d72c:	a802      	add	r0, sp, #8
 
-  802d72e:	f10d 0107 	add.w	r1, sp, #7
 
-  802d732:	f7fa fc67 	bl	8028004 <GetManagerIp5>
 
-   strcat(buf, "\",\"managerIP5\":\"");
 
-  802d736:	4620      	mov	r0, r4
 
-  802d738:	4993      	ldr	r1, [pc, #588]	; (802d988 <HTTP_GetSettings+0x31c>)
 
-  802d73a:	f7f4 fa47 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d73e:	a902      	add	r1, sp, #8
 
-  802d740:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d744:	4620      	mov	r0, r4
 
-  802d746:	f7f4 fbe3 	bl	8021f10 <strncat>
 
-   /*Параметры реле и сухих контактов*/
 
-   GetDINTypeActStr(str, &len, 0);
 
-  802d74a:	2200      	movs	r2, #0
 
-  802d74c:	a802      	add	r0, sp, #8
 
-  802d74e:	f10d 0107 	add.w	r1, sp, #7
 
-  802d752:	f7fa f9e9 	bl	8027b28 <GetDINTypeActStr>
 
-   strcat(buf, "\",\"di1\":\"");
 
-  802d756:	4620      	mov	r0, r4
 
-  802d758:	498c      	ldr	r1, [pc, #560]	; (802d98c <HTTP_GetSettings+0x320>)
 
-  802d75a:	f7f4 fa37 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d75e:	a902      	add	r1, sp, #8
 
-  802d760:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d764:	4620      	mov	r0, r4
 
-  802d766:	f7f4 fbd3 	bl	8021f10 <strncat>
 
-   GetROTypeActStr(str, &len, 0);
 
-  802d76a:	2200      	movs	r2, #0
 
-  802d76c:	a802      	add	r0, sp, #8
 
-  802d76e:	f10d 0107 	add.w	r1, sp, #7
 
-  802d772:	f7fa fa13 	bl	8027b9c <GetROTypeActStr>
 
-   strcat(buf, "\",\"ro1\":\"");
 
-  802d776:	4620      	mov	r0, r4
 
-  802d778:	4985      	ldr	r1, [pc, #532]	; (802d990 <HTTP_GetSettings+0x324>)
 
-  802d77a:	f7f4 fa27 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d77e:	a902      	add	r1, sp, #8
 
-  802d780:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d784:	4620      	mov	r0, r4
 
-  802d786:	f7f4 fbc3 	bl	8021f10 <strncat>
 
-   GetROTypeActStr(str, &len, 1);
 
-  802d78a:	2201      	movs	r2, #1
 
-  802d78c:	a802      	add	r0, sp, #8
 
-  802d78e:	f10d 0107 	add.w	r1, sp, #7
 
-  802d792:	f7fa fa03 	bl	8027b9c <GetROTypeActStr>
 
-   strcat(buf, "\",\"ro2\":\"");
 
-  802d796:	4620      	mov	r0, r4
 
-  802d798:	497e      	ldr	r1, [pc, #504]	; (802d994 <HTTP_GetSettings+0x328>)
 
-  802d79a:	f7f4 fa17 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d79e:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d7a2:	a902      	add	r1, sp, #8
 
-  802d7a4:	4620      	mov	r0, r4
 
-  802d7a6:	f7f4 fbb3 	bl	8021f10 <strncat>
 
- 	
 
-   /* WEB */
 
-   GetIpStr(str, &len);  
 
-  802d7aa:	a802      	add	r0, sp, #8
 
-  802d7ac:	f10d 0107 	add.w	r1, sp, #7
 
-  802d7b0:	f7fa fb50 	bl	8027e54 <GetIpStr>
 
-   strcat(buf, "\",\"ipaddr\":\"");
 
-  802d7b4:	4620      	mov	r0, r4
 
-  802d7b6:	4978      	ldr	r1, [pc, #480]	; (802d998 <HTTP_GetSettings+0x32c>)
 
-  802d7b8:	f7f4 fa08 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d7bc:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d7c0:	a902      	add	r1, sp, #8
 
-  802d7c2:	4620      	mov	r0, r4
 
-  802d7c4:	f7f4 fba4 	bl	8021f10 <strncat>
 
-   
 
-   GetGatewayStr(str, &len);  
 
-  802d7c8:	a802      	add	r0, sp, #8
 
-  802d7ca:	f10d 0107 	add.w	r1, sp, #7
 
-  802d7ce:	f7fa fb57 	bl	8027e80 <GetGatewayStr>
 
-   strcat(buf, "\",\"gw\":\"");
 
-  802d7d2:	4620      	mov	r0, r4
 
-  802d7d4:	4971      	ldr	r1, [pc, #452]	; (802d99c <HTTP_GetSettings+0x330>)
 
-  802d7d6:	f7f4 f9f9 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d7da:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d7de:	a902      	add	r1, sp, #8
 
-  802d7e0:	4620      	mov	r0, r4
 
-  802d7e2:	f7f4 fb95 	bl	8021f10 <strncat>
 
-   
 
-   GetMaskStr(str, &len);  
 
-  802d7e6:	a802      	add	r0, sp, #8
 
-  802d7e8:	f10d 0107 	add.w	r1, sp, #7
 
-  802d7ec:	f7fa fb5e 	bl	8027eac <GetMaskStr>
 
-   strcat(buf, "\",\"mask\":\"");
 
-  802d7f0:	4620      	mov	r0, r4
 
-  802d7f2:	496b      	ldr	r1, [pc, #428]	; (802d9a0 <HTTP_GetSettings+0x334>)
 
-  802d7f4:	f7f4 f9ea 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d7f8:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d7fc:	a902      	add	r1, sp, #8
 
-  802d7fe:	4620      	mov	r0, r4
 
-  802d800:	f7f4 fb86 	bl	8021f10 <strncat>
 
-   
 
-   GetDhcpStateStr(str, &len);  
 
-  802d804:	a802      	add	r0, sp, #8
 
-  802d806:	f10d 0107 	add.w	r1, sp, #7
 
-  802d80a:	f7fa fb65 	bl	8027ed8 <GetDhcpStateStr>
 
-   strcat(buf, "\",\"dhcp\":");
 
-  802d80e:	4620      	mov	r0, r4
 
-  802d810:	4964      	ldr	r1, [pc, #400]	; (802d9a4 <HTTP_GetSettings+0x338>)
 
-  802d812:	f7f4 f9db 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d816:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d81a:	a902      	add	r1, sp, #8
 
-  802d81c:	4620      	mov	r0, r4
 
-  802d81e:	f7f4 fb77 	bl	8021f10 <strncat>
 
-   GetAuthEnableStateStr(str, &len);
 
-  802d822:	a802      	add	r0, sp, #8
 
-  802d824:	f10d 0107 	add.w	r1, sp, #7
 
-  802d828:	f7fa fc4e 	bl	80280c8 <GetAuthEnableStateStr>
 
-   strcat(buf, ",\"auth\":");
 
-  802d82c:	4620      	mov	r0, r4
 
-  802d82e:	495e      	ldr	r1, [pc, #376]	; (802d9a8 <HTTP_GetSettings+0x33c>)
 
-  802d830:	f7f4 f9cc 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d834:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d838:	a902      	add	r1, sp, #8
 
-  802d83a:	4620      	mov	r0, r4
 
-  802d83c:	f7f4 fb68 	bl	8021f10 <strncat>
 
-   /* RADIUS */
 
-   GetRDSIpStr(str, &len);
 
-  802d840:	a802      	add	r0, sp, #8
 
-  802d842:	f10d 0107 	add.w	r1, sp, #7
 
-  802d846:	f7fa fbed 	bl	8028024 <GetRDSIpStr>
 
-   strcat(buf, ",\"rs_server\":\"");
 
-  802d84a:	4620      	mov	r0, r4
 
-  802d84c:	4957      	ldr	r1, [pc, #348]	; (802d9ac <HTTP_GetSettings+0x340>)
 
-  802d84e:	f7f4 f9bd 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d852:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d856:	a902      	add	r1, sp, #8
 
-  802d858:	4620      	mov	r0, r4
 
-  802d85a:	f7f4 fb59 	bl	8021f10 <strncat>
 
-   GetRDSPortStr(str, &len);
 
-  802d85e:	a802      	add	r0, sp, #8
 
-  802d860:	f10d 0107 	add.w	r1, sp, #7
 
-  802d864:	f7fa fbee 	bl	8028044 <GetRDSPortStr>
 
-   strcat(buf, "\",\"rs_port\":\"");
 
-  802d868:	4620      	mov	r0, r4
 
-  802d86a:	4951      	ldr	r1, [pc, #324]	; (802d9b0 <HTTP_GetSettings+0x344>)
 
-  802d86c:	f7f4 f9ae 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d870:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d874:	a902      	add	r1, sp, #8
 
-  802d876:	4620      	mov	r0, r4
 
-  802d878:	f7f4 fb4a 	bl	8021f10 <strncat>
 
-   GetRDSPasswordkStr(str, &len);
 
-  802d87c:	a802      	add	r0, sp, #8
 
-  802d87e:	f10d 0107 	add.w	r1, sp, #7
 
-  802d882:	f7fa fc03 	bl	802808c <GetRDSPasswordkStr>
 
-   strcat(buf, "\",\"rs_pwd\":\"");
 
-  802d886:	4620      	mov	r0, r4
 
-  802d888:	494a      	ldr	r1, [pc, #296]	; (802d9b4 <HTTP_GetSettings+0x348>)
 
-  802d88a:	f7f4 f99f 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d88e:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d892:	a902      	add	r1, sp, #8
 
-  802d894:	4620      	mov	r0, r4
 
-  802d896:	f7f4 fb3b 	bl	8021f10 <strncat>
 
-   GetRDSKeyAccesstStr(str, &len);
 
-  802d89a:	a802      	add	r0, sp, #8
 
-  802d89c:	f10d 0107 	add.w	r1, sp, #7
 
-  802d8a0:	f7fa fbe2 	bl	8028068 <GetRDSKeyAccesstStr>
 
-   strcat(buf, "\",\"rs_key\":\"");
 
-  802d8a4:	4620      	mov	r0, r4
 
-  802d8a6:	4944      	ldr	r1, [pc, #272]	; (802d9b8 <HTTP_GetSettings+0x34c>)
 
-  802d8a8:	f7f4 f990 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d8ac:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d8b0:	a902      	add	r1, sp, #8
 
-  802d8b2:	4620      	mov	r0, r4
 
-  802d8b4:	f7f4 fb2c 	bl	8021f10 <strncat>
 
-   GetRDSEnableStateStr(str, &len);
 
-  802d8b8:	a802      	add	r0, sp, #8
 
-  802d8ba:	f10d 0107 	add.w	r1, sp, #7
 
-  802d8be:	f7fa fbf5 	bl	80280ac <GetRDSEnableStateStr>
 
-   strcat(buf, "\",\"rs_enabled\":");
 
-  802d8c2:	4620      	mov	r0, r4
 
-  802d8c4:	493d      	ldr	r1, [pc, #244]	; (802d9bc <HTTP_GetSettings+0x350>)
 
-  802d8c6:	f7f4 f981 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d8ca:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d8ce:	a902      	add	r1, sp, #8
 
-  802d8d0:	4620      	mov	r0, r4
 
-  802d8d2:	f7f4 fb1d 	bl	8021f10 <strncat>
 
-   /* Параметры даты и времени */
 
-   GetDateStr(str, &len);
 
-  802d8d6:	a802      	add	r0, sp, #8
 
-  802d8d8:	f10d 0107 	add.w	r1, sp, #7
 
-  802d8dc:	f7fa f886 	bl	80279ec <GetDateStr>
 
-   strcat(buf, ",\"date\":\"");
 
-  802d8e0:	4620      	mov	r0, r4
 
-  802d8e2:	4937      	ldr	r1, [pc, #220]	; (802d9c0 <HTTP_GetSettings+0x354>)
 
-  802d8e4:	f7f4 f972 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d8e8:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d8ec:	a902      	add	r1, sp, #8
 
-  802d8ee:	4620      	mov	r0, r4
 
-  802d8f0:	f7f4 fb0e 	bl	8021f10 <strncat>
 
-   GetTimeStr(str, &len);
 
-  802d8f4:	a802      	add	r0, sp, #8
 
-  802d8f6:	f10d 0107 	add.w	r1, sp, #7
 
-  802d8fa:	f7fa f895 	bl	8027a28 <GetTimeStr>
 
-   strcat(buf, "\",\"time\":\"");
 
-  802d8fe:	4620      	mov	r0, r4
 
-  802d900:	4930      	ldr	r1, [pc, #192]	; (802d9c4 <HTTP_GetSettings+0x358>)
 
-  802d902:	f7f4 f963 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d906:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d90a:	a902      	add	r1, sp, #8
 
-  802d90c:	4620      	mov	r0, r4
 
-  802d90e:	f7f4 faff 	bl	8021f10 <strncat>
 
-   /* Параметры SNTP */
 
-   GetSntpStateStr(str, &len);
 
-  802d912:	a802      	add	r0, sp, #8
 
-  802d914:	f10d 0107 	add.w	r1, sp, #7
 
-  802d918:	f7fa f8b4 	bl	8027a84 <GetSntpStateStr>
 
-   strcat(buf, "\",\"ntp\":\"");
 
-  802d91c:	4620      	mov	r0, r4
 
-  802d91e:	492a      	ldr	r1, [pc, #168]	; (802d9c8 <HTTP_GetSettings+0x35c>)
 
-  802d920:	f7f4 f954 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d924:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d928:	a902      	add	r1, sp, #8
 
-  802d92a:	4620      	mov	r0, r4
 
-  802d92c:	f7f4 faf0 	bl	8021f10 <strncat>
 
-   GetSntpServerIpStr(str, &len);
 
-  802d930:	a802      	add	r0, sp, #8
 
-  802d932:	f10d 0107 	add.w	r1, sp, #7
 
-  802d936:	f7fa f8bf 	bl	8027ab8 <GetSntpServerIpStr>
 
-   strcat(buf, "\",\"ntpservip\":\"");
 
-  802d93a:	4620      	mov	r0, r4
 
-  802d93c:	4923      	ldr	r1, [pc, #140]	; (802d9cc <HTTP_GetSettings+0x360>)
 
-  802d93e:	f7f4 f945 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d942:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d946:	a902      	add	r1, sp, #8
 
-  802d948:	4620      	mov	r0, r4
 
-  802d94a:	f7f4 fae1 	bl	8021f10 <strncat>
 
-   GetSntpTimeZoneStr(str, &len);
 
-  802d94e:	a802      	add	r0, sp, #8
 
-  802d950:	f10d 0107 	add.w	r1, sp, #7
 
-  802d954:	f7fa f8c0 	bl	8027ad8 <GetSntpTimeZoneStr>
 
-   strcat(buf, "\",\"utc\":\"");
 
-  802d958:	4620      	mov	r0, r4
 
-  802d95a:	491d      	ldr	r1, [pc, #116]	; (802d9d0 <HTTP_GetSettings+0x364>)
 
-  802d95c:	f7f4 f936 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802d960:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d964:	a902      	add	r1, sp, #8
 
-  802d966:	4620      	mov	r0, r4
 
-  802d968:	e034      	b.n	802d9d4 <HTTP_GetSettings+0x368>
 
-  802d96a:	bf00      	nop
 
-  802d96c:	08044c64 	.word	0x08044c64
 
-  802d970:	08044d52 	.word	0x08044d52
 
-  802d974:	08044d66 	.word	0x08044d66
 
-  802d978:	08044d7c 	.word	0x08044d7c
 
-  802d97c:	08044d8c 	.word	0x08044d8c
 
-  802d980:	08044d9d 	.word	0x08044d9d
 
-  802d984:	08044dae 	.word	0x08044dae
 
-  802d988:	08044dbf 	.word	0x08044dbf
 
-  802d98c:	08044cfb 	.word	0x08044cfb
 
-  802d990:	08044d05 	.word	0x08044d05
 
-  802d994:	08044d0f 	.word	0x08044d0f
 
-  802d998:	08044dd0 	.word	0x08044dd0
 
-  802d99c:	08044ddd 	.word	0x08044ddd
 
-  802d9a0:	08044de6 	.word	0x08044de6
 
-  802d9a4:	08044df1 	.word	0x08044df1
 
-  802d9a8:	08044dfb 	.word	0x08044dfb
 
-  802d9ac:	08044e04 	.word	0x08044e04
 
-  802d9b0:	08044e13 	.word	0x08044e13
 
-  802d9b4:	08044e21 	.word	0x08044e21
 
-  802d9b8:	08044e2e 	.word	0x08044e2e
 
-  802d9bc:	08044e3b 	.word	0x08044e3b
 
-  802d9c0:	08044e4b 	.word	0x08044e4b
 
-  802d9c4:	08044e55 	.word	0x08044e55
 
-  802d9c8:	08044e60 	.word	0x08044e60
 
-  802d9cc:	08044e6a 	.word	0x08044e6a
 
-  802d9d0:	08044e7a 	.word	0x08044e7a
 
-  802d9d4:	f7f4 fa9c 	bl	8021f10 <strncat>
 
-   GetUnixTimeStr(str, &len);
 
-  802d9d8:	a802      	add	r0, sp, #8
 
-  802d9da:	f10d 0107 	add.w	r1, sp, #7
 
-  802d9de:	f7fa f83b 	bl	8027a58 <GetUnixTimeStr>
 
-    strcat(buf, "\",\"utm\":\"");
 
-  802d9e2:	4620      	mov	r0, r4
 
-  802d9e4:	4916      	ldr	r1, [pc, #88]	; (802da40 <HTTP_GetSettings+0x3d4>)
 
-  802d9e6:	f7f4 f8f1 	bl	8021bcc <strcat>
 
-    strncat(buf, str, len);
 
-  802d9ea:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802d9ee:	a902      	add	r1, sp, #8
 
-  802d9f0:	4620      	mov	r0, r4
 
-  802d9f2:	f7f4 fa8d 	bl	8021f10 <strncat>
 
-   GetSntpLastDataStr(str, &len);
 
-  802d9f6:	a802      	add	r0, sp, #8
 
-  802d9f8:	f10d 0107 	add.w	r1, sp, #7
 
-  802d9fc:	f7fa f884 	bl	8027b08 <GetSntpLastDataStr>
 
-   strcat(buf, "\",\"lastsynctime\":\"");
 
-  802da00:	4620      	mov	r0, r4
 
-  802da02:	4910      	ldr	r1, [pc, #64]	; (802da44 <HTTP_GetSettings+0x3d8>)
 
-  802da04:	f7f4 f8e2 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802da08:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802da0c:	a902      	add	r1, sp, #8
 
-  802da0e:	4620      	mov	r0, r4
 
-  802da10:	f7f4 fa7e 	bl	8021f10 <strncat>
 
-  
 
-   /* Признак изменения сетевых настроек */ 
 
-   GetWebReinitFlag(str, &len);
 
-  802da14:	a802      	add	r0, sp, #8
 
-  802da16:	f10d 0107 	add.w	r1, sp, #7
 
-  802da1a:	f7fa fb63 	bl	80280e4 <GetWebReinitFlag>
 
-   strcat(buf, "\",\"netsettings_changed\":\"");
 
-  802da1e:	4620      	mov	r0, r4
 
-  802da20:	4909      	ldr	r1, [pc, #36]	; (802da48 <HTTP_GetSettings+0x3dc>)
 
-  802da22:	f7f4 f8d3 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802da26:	a902      	add	r1, sp, #8
 
-  802da28:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802da2c:	4620      	mov	r0, r4
 
-  802da2e:	f7f4 fa6f 	bl	8021f10 <strncat>
 
-   
 
-   strncat(buf, "\"}", 2);
 
-  802da32:	4620      	mov	r0, r4
 
-  802da34:	4905      	ldr	r1, [pc, #20]	; (802da4c <HTTP_GetSettings+0x3e0>)
 
-  802da36:	2202      	movs	r2, #2
 
-  802da38:	f7f4 fa6a 	bl	8021f10 <strncat>
 
-   
 
-   //printf(buf);
 
- }
 
-  802da3c:	b00a      	add	sp, #40	; 0x28
 
-  802da3e:	bd10      	pop	{r4, pc}
 
-  802da40:	08044e84 	.word	0x08044e84
 
-  802da44:	08044e8e 	.word	0x08044e8e
 
-  802da48:	08044d35 	.word	0x08044d35
 
-  802da4c:	08044d4f 	.word	0x08044d4f
 
- 0802da50 <HTTP_GetInfo>:
 
-   * @brief  Возвращяет строку с информацией об устройстве
 
-   * @retval None
 
-   */
 
- // TODO Согласовать максимальную длину строк
 
- void HTTP_GetInfo(char *buf)
 
- {
 
-  802da50:	b510      	push	{r4, lr}
 
-   char str[40];
 
-   uint8_t len;
 
-   
 
-   /* Headers для поддержки saffari */
 
-   strcpy(buf, "HTTP/1.0 200 OK\r\nContent-Type:text/html\r\n\r\n");
 
-  802da52:	4960      	ldr	r1, [pc, #384]	; (802dbd4 <HTTP_GetInfo+0x184>)
 
-   * @brief  Возвращяет строку с информацией об устройстве
 
-   * @retval None
 
-   */
 
- // TODO Согласовать максимальную длину строк
 
- void HTTP_GetInfo(char *buf)
 
- {
 
-  802da54:	b08c      	sub	sp, #48	; 0x30
 
-  802da56:	4604      	mov	r4, r0
 
-   char str[40];
 
-   uint8_t len;
 
-   
 
-   /* Headers для поддержки saffari */
 
-   strcpy(buf, "HTTP/1.0 200 OK\r\nContent-Type:text/html\r\n\r\n");
 
-  802da58:	f7f4 f9cc 	bl	8021df4 <strcpy>
 
-   
 
-   GetWorkTimeStr(str, &len);  
 
-  802da5c:	a802      	add	r0, sp, #8
 
-  802da5e:	f10d 0107 	add.w	r1, sp, #7
 
-  802da62:	f7fa f8e7 	bl	8027c34 <GetWorkTimeStr>
 
-   strcat(buf, "{\"uptime\":\"");
 
-  802da66:	4620      	mov	r0, r4
 
-  802da68:	495b      	ldr	r1, [pc, #364]	; (802dbd8 <HTTP_GetInfo+0x188>)
 
-  802da6a:	f7f4 f8af 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);	
 
-  802da6e:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802da72:	a902      	add	r1, sp, #8
 
-  802da74:	4620      	mov	r0, r4
 
-  802da76:	f7f4 fa4b 	bl	8021f10 <strncat>
 
-   
 
-   GetModelStr(str, &len);  
 
-  802da7a:	a802      	add	r0, sp, #8
 
-  802da7c:	f10d 0107 	add.w	r1, sp, #7
 
-  802da80:	f7fa f8fe 	bl	8027c80 <GetModelStr>
 
-   strcat(buf, "\",\"model\":\"");
 
-  802da84:	4620      	mov	r0, r4
 
-  802da86:	4955      	ldr	r1, [pc, #340]	; (802dbdc <HTTP_GetInfo+0x18c>)
 
-  802da88:	f7f4 f8a0 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802da8c:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802da90:	a902      	add	r1, sp, #8
 
-  802da92:	4620      	mov	r0, r4
 
-  802da94:	f7f4 fa3c 	bl	8021f10 <strncat>
 
-   
 
-   GetProductionDataStr(str, &len);  
 
-  802da98:	a802      	add	r0, sp, #8
 
-  802da9a:	f10d 0107 	add.w	r1, sp, #7
 
-  802da9e:	f7fa f901 	bl	8027ca4 <GetProductionDataStr>
 
-   strcat(buf, "\",\"prodate\":\"");
 
-  802daa2:	4620      	mov	r0, r4
 
-  802daa4:	494e      	ldr	r1, [pc, #312]	; (802dbe0 <HTTP_GetInfo+0x190>)
 
-  802daa6:	f7f4 f891 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802daaa:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802daae:	a902      	add	r1, sp, #8
 
-  802dab0:	4620      	mov	r0, r4
 
-  802dab2:	f7f4 fa2d 	bl	8021f10 <strncat>
 
-   
 
-   GetVersionStr(str, &len);  
 
-  802dab6:	a802      	add	r0, sp, #8
 
-  802dab8:	f10d 0107 	add.w	r1, sp, #7
 
-  802dabc:	f7fa f904 	bl	8027cc8 <GetVersionStr>
 
-   strcat(buf, "\",\"fwversion\":\"");
 
-  802dac0:	4620      	mov	r0, r4
 
-  802dac2:	4948      	ldr	r1, [pc, #288]	; (802dbe4 <HTTP_GetInfo+0x194>)
 
-  802dac4:	f7f4 f882 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802dac8:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802dacc:	a902      	add	r1, sp, #8
 
-  802dace:	4620      	mov	r0, r4
 
-  802dad0:	f7f4 fa1e 	bl	8021f10 <strncat>
 
-   
 
-   GetMacStr(str, &len);  
 
-  802dad4:	a802      	add	r0, sp, #8
 
-  802dad6:	f10d 0107 	add.w	r1, sp, #7
 
-  802dada:	f7fa f907 	bl	8027cec <GetMacStr>
 
-   strcat(buf, "\",\"macaddr\":\"");
 
-  802dade:	4620      	mov	r0, r4
 
-  802dae0:	4941      	ldr	r1, [pc, #260]	; (802dbe8 <HTTP_GetInfo+0x198>)
 
-  802dae2:	f7f4 f873 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802dae6:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802daea:	a902      	add	r1, sp, #8
 
-  802daec:	4620      	mov	r0, r4
 
-  802daee:	f7f4 fa0f 	bl	8021f10 <strncat>
 
-   
 
-   GetSerialNumberStr(str, &len);  
 
-  802daf2:	a802      	add	r0, sp, #8
 
-  802daf4:	f10d 0107 	add.w	r1, sp, #7
 
-  802daf8:	f7fa f90a 	bl	8027d10 <GetSerialNumberStr>
 
-   strcat(buf, "\",\"serno\":\"");
 
-  802dafc:	4620      	mov	r0, r4
 
-  802dafe:	493b      	ldr	r1, [pc, #236]	; (802dbec <HTTP_GetInfo+0x19c>)
 
-  802db00:	f7f4 f864 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802db04:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802db08:	a902      	add	r1, sp, #8
 
-  802db0a:	4620      	mov	r0, r4
 
-  802db0c:	f7f4 fa00 	bl	8021f10 <strncat>
 
-   
 
-   GetOwnerStr(str, &len);  
 
-  802db10:	a802      	add	r0, sp, #8
 
-  802db12:	f10d 0107 	add.w	r1, sp, #7
 
-  802db16:	f7fa f90d 	bl	8027d34 <GetOwnerStr>
 
-   strcat(buf, "\",\"owner\":\"");
 
-  802db1a:	4620      	mov	r0, r4
 
-  802db1c:	4934      	ldr	r1, [pc, #208]	; (802dbf0 <HTTP_GetInfo+0x1a0>)
 
-  802db1e:	f7f4 f855 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802db22:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802db26:	a902      	add	r1, sp, #8
 
-  802db28:	4620      	mov	r0, r4
 
-  802db2a:	f7f4 f9f1 	bl	8021f10 <strncat>
 
-   
 
-   GetLocationStr(str, &len);  
 
-  802db2e:	a802      	add	r0, sp, #8
 
-  802db30:	f10d 0107 	add.w	r1, sp, #7
 
-  802db34:	f7fa f910 	bl	8027d58 <GetLocationStr>
 
-   strcat(buf, "\",\"sysLocation\":\"");
 
-  802db38:	4620      	mov	r0, r4
 
-  802db3a:	492e      	ldr	r1, [pc, #184]	; (802dbf4 <HTTP_GetInfo+0x1a4>)
 
-  802db3c:	f7f4 f846 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802db40:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802db44:	a902      	add	r1, sp, #8
 
-  802db46:	4620      	mov	r0, r4
 
-  802db48:	f7f4 f9e2 	bl	8021f10 <strncat>
 
-   
 
-   GetCommentsStr(str, &len);  
 
-  802db4c:	a802      	add	r0, sp, #8
 
-  802db4e:	f10d 0107 	add.w	r1, sp, #7
 
-  802db52:	f7fa f913 	bl	8027d7c <GetCommentsStr>
 
-   strcat(buf, "\",\"comment\":\"");
 
-  802db56:	4620      	mov	r0, r4
 
-  802db58:	4927      	ldr	r1, [pc, #156]	; (802dbf8 <HTTP_GetInfo+0x1a8>)
 
-  802db5a:	f7f4 f837 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802db5e:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802db62:	a902      	add	r1, sp, #8
 
-  802db64:	4620      	mov	r0, r4
 
-  802db66:	f7f4 f9d3 	bl	8021f10 <strncat>
 
-   GetUPSModelStr(str, &len);
 
-  802db6a:	a802      	add	r0, sp, #8
 
-  802db6c:	f10d 0107 	add.w	r1, sp, #7
 
-  802db70:	f7fa f916 	bl	8027da0 <GetUPSModelStr>
 
-   strcat(buf, "\",\"ups_model\":\"");
 
-  802db74:	4620      	mov	r0, r4
 
-  802db76:	4921      	ldr	r1, [pc, #132]	; (802dbfc <HTTP_GetInfo+0x1ac>)
 
-  802db78:	f7f4 f828 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802db7c:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802db80:	a902      	add	r1, sp, #8
 
-  802db82:	4620      	mov	r0, r4
 
-  802db84:	f7f4 f9c4 	bl	8021f10 <strncat>
 
-   GetUPSVersionStr(str, &len);
 
-  802db88:	a802      	add	r0, sp, #8
 
-  802db8a:	f10d 0107 	add.w	r1, sp, #7
 
-  802db8e:	f7fa f919 	bl	8027dc4 <GetUPSVersionStr>
 
-   strcat(buf, "\",\"ups_fwversion\":\"");
 
-  802db92:	4620      	mov	r0, r4
 
-  802db94:	491a      	ldr	r1, [pc, #104]	; (802dc00 <HTTP_GetInfo+0x1b0>)
 
-  802db96:	f7f4 f819 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802db9a:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802db9e:	a902      	add	r1, sp, #8
 
-  802dba0:	4620      	mov	r0, r4
 
-  802dba2:	f7f4 f9b5 	bl	8021f10 <strncat>
 
-  
 
-   /* Признак изменения сетевых настроек */ 
 
-   GetWebReinitFlag(str, &len);
 
-  802dba6:	a802      	add	r0, sp, #8
 
-  802dba8:	f10d 0107 	add.w	r1, sp, #7
 
-  802dbac:	f7fa fa9a 	bl	80280e4 <GetWebReinitFlag>
 
-   strcat(buf, "\",\"netsettings_changed\":\"");
 
-  802dbb0:	4620      	mov	r0, r4
 
-  802dbb2:	4914      	ldr	r1, [pc, #80]	; (802dc04 <HTTP_GetInfo+0x1b4>)
 
-  802dbb4:	f7f4 f80a 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802dbb8:	a902      	add	r1, sp, #8
 
-  802dbba:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  802dbbe:	4620      	mov	r0, r4
 
-  802dbc0:	f7f4 f9a6 	bl	8021f10 <strncat>
 
-   
 
-   strncat(buf, "\"}", 2);
 
-  802dbc4:	4620      	mov	r0, r4
 
-  802dbc6:	4910      	ldr	r1, [pc, #64]	; (802dc08 <HTTP_GetInfo+0x1b8>)
 
-  802dbc8:	2202      	movs	r2, #2
 
-  802dbca:	f7f4 f9a1 	bl	8021f10 <strncat>
 
-   
 
- }
 
-  802dbce:	b00c      	add	sp, #48	; 0x30
 
-  802dbd0:	bd10      	pop	{r4, pc}
 
-  802dbd2:	bf00      	nop
 
-  802dbd4:	08044c64 	.word	0x08044c64
 
-  802dbd8:	08044ea1 	.word	0x08044ea1
 
-  802dbdc:	08044ead 	.word	0x08044ead
 
-  802dbe0:	08044eb9 	.word	0x08044eb9
 
-  802dbe4:	08044ec7 	.word	0x08044ec7
 
-  802dbe8:	08044ed7 	.word	0x08044ed7
 
-  802dbec:	08044ee5 	.word	0x08044ee5
 
-  802dbf0:	08044ef1 	.word	0x08044ef1
 
-  802dbf4:	08044efd 	.word	0x08044efd
 
-  802dbf8:	08044f0f 	.word	0x08044f0f
 
-  802dbfc:	08044f1d 	.word	0x08044f1d
 
-  802dc00:	08044f2d 	.word	0x08044f2d
 
-  802dc04:	08044d35 	.word	0x08044d35
 
-  802dc08:	08044d4f 	.word	0x08044d4f
 
- 0802dc0c <HTTP_GetHistoryPage>:
 
- void HTTP_GetHistoryPage(char* buf, uint32_t pageNumber)
 
- {
 
-  802dc0c:	b530      	push	{r4, r5, lr}
 
-  802dc0e:	4605      	mov	r5, r0
 
-  802dc10:	b087      	sub	sp, #28
 
-  802dc12:	460c      	mov	r4, r1
 
-   char str[16];
 
-   uint16_t len;
 
-   strcpy(buf, "HTTP/1.1 200 OK\r\nContent-Type:text/html\r\n\r\n");
 
-  802dc14:	4927      	ldr	r1, [pc, #156]	; (802dcb4 <HTTP_GetHistoryPage+0xa8>)
 
-  802dc16:	f7f4 f8ed 	bl	8021df4 <strcpy>
 
-   strcat(buf, "{\"page\": [");
 
-  802dc1a:	4628      	mov	r0, r5
 
-  802dc1c:	4926      	ldr	r1, [pc, #152]	; (802dcb8 <HTTP_GetHistoryPage+0xac>)
 
-  802dc1e:	f7f3 ffd5 	bl	8021bcc <strcat>
 
-   History_GetPage(buf, pageNumber);
 
-  802dc22:	4621      	mov	r1, r4
 
-  802dc24:	4628      	mov	r0, r5
 
-  802dc26:	f7fc f84f 	bl	8029cc8 <History_GetPage>
 
-   len = strlen(buf);
 
-  802dc2a:	4628      	mov	r0, r5
 
-  802dc2c:	f7f4 f940 	bl	8021eb0 <strlen>
 
-  802dc30:	f8ad 0006 	strh.w	r0, [sp, #6]
 
-   buf +=len-1;
 
-  802dc34:	b280      	uxth	r0, r0
 
-  802dc36:	1e43      	subs	r3, r0, #1
 
-  802dc38:	18ec      	adds	r4, r5, r3
 
-   *buf = 0;
 
-  802dc3a:	2100      	movs	r1, #0
 
-   buf -=len-1;
 
-  802dc3c:	f1c0 0001 	rsb	r0, r0, #1
 
-   strcat(buf, "{\"page\": [");
 
-   History_GetPage(buf, pageNumber);
 
-   len = strlen(buf);
 
-   buf +=len-1;
 
-   *buf = 0;
 
-  802dc40:	54e9      	strb	r1, [r5, r3]
 
-   buf -=len-1;
 
-  802dc42:	1824      	adds	r4, r4, r0
 
-   /* Количество страниц */
 
-   memset(str, 0, 16);
 
-  802dc44:	2210      	movs	r2, #16
 
-  802dc46:	a802      	add	r0, sp, #8
 
-  802dc48:	f7f3 ff5a 	bl	8021b00 <memset>
 
-   sprintf(str, "%i", History_GetPageCount());
 
-  802dc4c:	f7fc f82a 	bl	8029ca4 <History_GetPageCount>
 
-  802dc50:	491a      	ldr	r1, [pc, #104]	; (802dcbc <HTTP_GetHistoryPage+0xb0>)
 
-  802dc52:	4602      	mov	r2, r0
 
-  802dc54:	a802      	add	r0, sp, #8
 
-  802dc56:	f7f9 fddd 	bl	8027814 <tfp_sprintf>
 
-   strcat(buf, "],\"pages\":\"");
 
-  802dc5a:	4620      	mov	r0, r4
 
-  802dc5c:	4918      	ldr	r1, [pc, #96]	; (802dcc0 <HTTP_GetHistoryPage+0xb4>)
 
-  802dc5e:	f7f3 ffb5 	bl	8021bcc <strcat>
 
-   strcat(buf, str);
 
-  802dc62:	a902      	add	r1, sp, #8
 
-  802dc64:	4620      	mov	r0, r4
 
-  802dc66:	f7f3 ffb1 	bl	8021bcc <strcat>
 
-   /* Часовой пояс */
 
-   GetSntpTimeZoneStr(str, (uint8_t*)&len);
 
-  802dc6a:	a802      	add	r0, sp, #8
 
-  802dc6c:	f10d 0106 	add.w	r1, sp, #6
 
-  802dc70:	f7f9 ff32 	bl	8027ad8 <GetSntpTimeZoneStr>
 
-   strcat(buf, "\",\"utc\":\"");
 
-  802dc74:	4620      	mov	r0, r4
 
-  802dc76:	4913      	ldr	r1, [pc, #76]	; (802dcc4 <HTTP_GetHistoryPage+0xb8>)
 
-  802dc78:	f7f3 ffa8 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802dc7c:	f8bd 2006 	ldrh.w	r2, [sp, #6]
 
-  802dc80:	a902      	add	r1, sp, #8
 
-  802dc82:	4620      	mov	r0, r4
 
-  802dc84:	f7f4 f944 	bl	8021f10 <strncat>
 
-   GetUnixTimeStr(str, (uint8_t*)&len);
 
-  802dc88:	a802      	add	r0, sp, #8
 
-  802dc8a:	f10d 0106 	add.w	r1, sp, #6
 
-  802dc8e:	f7f9 fee3 	bl	8027a58 <GetUnixTimeStr>
 
-   strcat(buf, "\",\"utm\":\"");
 
-  802dc92:	4620      	mov	r0, r4
 
-  802dc94:	490c      	ldr	r1, [pc, #48]	; (802dcc8 <HTTP_GetHistoryPage+0xbc>)
 
-  802dc96:	f7f3 ff99 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802dc9a:	a902      	add	r1, sp, #8
 
-  802dc9c:	4620      	mov	r0, r4
 
-  802dc9e:	f8bd 2006 	ldrh.w	r2, [sp, #6]
 
-  802dca2:	f7f4 f935 	bl	8021f10 <strncat>
 
-   strcat(buf, "\"}");
 
-  802dca6:	4620      	mov	r0, r4
 
-  802dca8:	4908      	ldr	r1, [pc, #32]	; (802dccc <HTTP_GetHistoryPage+0xc0>)
 
-  802dcaa:	f7f3 ff8f 	bl	8021bcc <strcat>
 
-   //printf(buf);
 
- }
 
-  802dcae:	b007      	add	sp, #28
 
-  802dcb0:	bd30      	pop	{r4, r5, pc}
 
-  802dcb2:	bf00      	nop
 
-  802dcb4:	08044f41 	.word	0x08044f41
 
-  802dcb8:	08044f6d 	.word	0x08044f6d
 
-  802dcbc:	08044f78 	.word	0x08044f78
 
-  802dcc0:	08044f7b 	.word	0x08044f7b
 
-  802dcc4:	08044e7a 	.word	0x08044e7a
 
-  802dcc8:	08044e84 	.word	0x08044e84
 
-  802dccc:	08044d4f 	.word	0x08044d4f
 
- 0802dcd0 <HTTP_GetUpsHistoryPage>:
 
- void HTTP_GetUpsHistoryPage(char* buf, uint32_t pageNumber)
 
- {
 
-  802dcd0:	b530      	push	{r4, r5, lr}
 
-  802dcd2:	4605      	mov	r5, r0
 
-  802dcd4:	b087      	sub	sp, #28
 
-  802dcd6:	460c      	mov	r4, r1
 
-   char str[16];
 
-   uint16_t len;
 
-   strcpy(buf, "HTTP/1.1 200 OK\r\nContent-Type:text/html\r\n\r\n");
 
-  802dcd8:	4927      	ldr	r1, [pc, #156]	; (802dd78 <HTTP_GetUpsHistoryPage+0xa8>)
 
-  802dcda:	f7f4 f88b 	bl	8021df4 <strcpy>
 
-   strcat(buf, "{\"page\": [");
 
-  802dcde:	4628      	mov	r0, r5
 
-  802dce0:	4926      	ldr	r1, [pc, #152]	; (802dd7c <HTTP_GetUpsHistoryPage+0xac>)
 
-  802dce2:	f7f3 ff73 	bl	8021bcc <strcat>
 
-   LOG_GetPage(buf, pageNumber);
 
-  802dce6:	4621      	mov	r1, r4
 
-  802dce8:	4628      	mov	r0, r5
 
-  802dcea:	f7fb ff09 	bl	8029b00 <LOG_GetPage>
 
-   len = strlen(buf);
 
-  802dcee:	4628      	mov	r0, r5
 
-  802dcf0:	f7f4 f8de 	bl	8021eb0 <strlen>
 
-  802dcf4:	f8ad 0006 	strh.w	r0, [sp, #6]
 
-   buf +=len-1;
 
-  802dcf8:	b280      	uxth	r0, r0
 
-  802dcfa:	1e43      	subs	r3, r0, #1
 
-  802dcfc:	18ec      	adds	r4, r5, r3
 
-   *buf = 0;
 
-  802dcfe:	2100      	movs	r1, #0
 
-   buf -=len-1;
 
-  802dd00:	f1c0 0001 	rsb	r0, r0, #1
 
-   strcat(buf, "{\"page\": [");
 
-   LOG_GetPage(buf, pageNumber);
 
-   len = strlen(buf);
 
-   buf +=len-1;
 
-   *buf = 0;
 
-  802dd04:	54e9      	strb	r1, [r5, r3]
 
-   buf -=len-1;
 
-  802dd06:	1824      	adds	r4, r4, r0
 
-   /* Количество страниц */
 
-   memset(str, 0, 16);
 
-  802dd08:	2210      	movs	r2, #16
 
-  802dd0a:	a802      	add	r0, sp, #8
 
-  802dd0c:	f7f3 fef8 	bl	8021b00 <memset>
 
-   sprintf(str, "%i", LOG_GetPageCount());
 
-  802dd10:	f7fb fee4 	bl	8029adc <LOG_GetPageCount>
 
-  802dd14:	491a      	ldr	r1, [pc, #104]	; (802dd80 <HTTP_GetUpsHistoryPage+0xb0>)
 
-  802dd16:	4602      	mov	r2, r0
 
-  802dd18:	a802      	add	r0, sp, #8
 
-  802dd1a:	f7f9 fd7b 	bl	8027814 <tfp_sprintf>
 
-   strcat(buf, "],\"pages\":\"");
 
-  802dd1e:	4620      	mov	r0, r4
 
-  802dd20:	4918      	ldr	r1, [pc, #96]	; (802dd84 <HTTP_GetUpsHistoryPage+0xb4>)
 
-  802dd22:	f7f3 ff53 	bl	8021bcc <strcat>
 
-   strcat(buf, str);
 
-  802dd26:	a902      	add	r1, sp, #8
 
-  802dd28:	4620      	mov	r0, r4
 
-  802dd2a:	f7f3 ff4f 	bl	8021bcc <strcat>
 
-   /* Часовой пояс */
 
-   GetSntpTimeZoneStr(str, (uint8_t*)&len);
 
-  802dd2e:	a802      	add	r0, sp, #8
 
-  802dd30:	f10d 0106 	add.w	r1, sp, #6
 
-  802dd34:	f7f9 fed0 	bl	8027ad8 <GetSntpTimeZoneStr>
 
-   strcat(buf, "\",\"utc\":\"");
 
-  802dd38:	4620      	mov	r0, r4
 
-  802dd3a:	4913      	ldr	r1, [pc, #76]	; (802dd88 <HTTP_GetUpsHistoryPage+0xb8>)
 
-  802dd3c:	f7f3 ff46 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802dd40:	f8bd 2006 	ldrh.w	r2, [sp, #6]
 
-  802dd44:	a902      	add	r1, sp, #8
 
-  802dd46:	4620      	mov	r0, r4
 
-  802dd48:	f7f4 f8e2 	bl	8021f10 <strncat>
 
-   GetUnixTimeStr(str, (uint8_t*)&len);
 
-  802dd4c:	a802      	add	r0, sp, #8
 
-  802dd4e:	f10d 0106 	add.w	r1, sp, #6
 
-  802dd52:	f7f9 fe81 	bl	8027a58 <GetUnixTimeStr>
 
-   strcat(buf, "\",\"utm\":\"");
 
-  802dd56:	4620      	mov	r0, r4
 
-  802dd58:	490c      	ldr	r1, [pc, #48]	; (802dd8c <HTTP_GetUpsHistoryPage+0xbc>)
 
-  802dd5a:	f7f3 ff37 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  802dd5e:	a902      	add	r1, sp, #8
 
-  802dd60:	4620      	mov	r0, r4
 
-  802dd62:	f8bd 2006 	ldrh.w	r2, [sp, #6]
 
-  802dd66:	f7f4 f8d3 	bl	8021f10 <strncat>
 
-   strcat(buf, "\"}");
 
-  802dd6a:	4620      	mov	r0, r4
 
-  802dd6c:	4908      	ldr	r1, [pc, #32]	; (802dd90 <HTTP_GetUpsHistoryPage+0xc0>)
 
-  802dd6e:	f7f3 ff2d 	bl	8021bcc <strcat>
 
-   //printf(buf);
 
- }
 
-  802dd72:	b007      	add	sp, #28
 
-  802dd74:	bd30      	pop	{r4, r5, pc}
 
-  802dd76:	bf00      	nop
 
-  802dd78:	08044f41 	.word	0x08044f41
 
-  802dd7c:	08044f6d 	.word	0x08044f6d
 
-  802dd80:	08044f78 	.word	0x08044f78
 
-  802dd84:	08044f7b 	.word	0x08044f7b
 
-  802dd88:	08044e7a 	.word	0x08044e7a
 
-  802dd8c:	08044e84 	.word	0x08044e84
 
-  802dd90:	08044d4f 	.word	0x08044d4f
 
- 0802dd94 <HTTP_ResetSettings>:
 
- /**
 
-   * @brief  Сброс настроек (всё кроме сетевых параметров)
 
-   */
 
- void HTTP_ResetSettings(void)
 
- {
 
-  802dd94:	b508      	push	{r3, lr}
 
-   //taskENTER_CRITICAL();
 
-   SNMP_SendUserTrap(DEVICE_RESTORED);
 
-  802dd96:	2003      	movs	r0, #3
 
-  802dd98:	f00a f9d0 	bl	803813c <SNMP_SendUserTrap>
 
-   log_event_data(LOG_SYSTEM_DEFCONFIG, "Администратор");
 
-  802dd9c:	4906      	ldr	r1, [pc, #24]	; (802ddb8 <HTTP_ResetSettings+0x24>)
 
-  802dd9e:	2001      	movs	r0, #1
 
-  802dda0:	f7fb fe5c 	bl	8029a5c <log_event_data>
 
-   vTaskDelay(500);
 
-  802dda4:	f44f 70fa 	mov.w	r0, #500	; 0x1f4
 
-  802dda8:	f7fd f910 	bl	802afcc <vTaskDelay>
 
-   SETTINGS_SetPartDefault();
 
-  802ddac:	f7fa fdda 	bl	8028964 <SETTINGS_SetPartDefault>
 
-   SETTINGS_Save();
 
- 	  
 
-   //taskEXIT_CRITICAL();
 
- }
 
-  802ddb0:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
 
-   SNMP_SendUserTrap(DEVICE_RESTORED);
 
-   log_event_data(LOG_SYSTEM_DEFCONFIG, "Администратор");
 
-   vTaskDelay(500);
 
-   SETTINGS_SetPartDefault();
 
-   SETTINGS_Save();
 
-  802ddb4:	f7fa bd6a 	b.w	802888c <SETTINGS_Save>
 
-  802ddb8:	08039ab8 	.word	0x08039ab8
 
- 0802ddbc <HTTP_SaveSettings>:
 
- /**
 
-   * @brief  Сохранение настроек
 
-   */
 
- void HTTP_SaveSettings(void)
 
- {
 
-  802ddbc:	b508      	push	{r3, lr}
 
- //  taskENTER_CRITICAL();
 
-   
 
-   SETTINGS_Save();
 
-  802ddbe:	f7fa fd65 	bl	802888c <SETTINGS_Save>
 
-   
 
-   log_event_data(LOG_SETTING_SAVE, "Администратор");
 
-  802ddc2:	4903      	ldr	r1, [pc, #12]	; (802ddd0 <HTTP_SaveSettings+0x14>)
 
-  802ddc4:	2004      	movs	r0, #4
 
- //  taskEXIT_CRITICAL();
 
- }
 
-  802ddc6:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
 
- {
 
- //  taskENTER_CRITICAL();
 
-   
 
-   SETTINGS_Save();
 
-   
 
-   log_event_data(LOG_SETTING_SAVE, "Администратор");
 
-  802ddca:	f7fb be47 	b.w	8029a5c <log_event_data>
 
-  802ddce:	bf00      	nop
 
-  802ddd0:	08039ab8 	.word	0x08039ab8
 
- 0802ddd4 <vTaskReboot>:
 
- /**
 
-   * @brief  
 
-   */
 
- void vTaskReboot(void * pvParameters)
 
- {
 
-  802ddd4:	b510      	push	{r4, lr}
 
-  802ddd6:	4604      	mov	r4, r0
 
-   
 
-   for (;;)
 
-   {
 
- 	mode = *(bool*)pvParameters;
 
- 	
 
- 	if (mode)
 
-  802ddd8:	7823      	ldrb	r3, [r4, #0]
 
-  802ddda:	b16b      	cbz	r3, 802ddf8 <vTaskReboot+0x24>
 
- 	{
 
- 	  SNMP_SendUserTrap(FW_VERSION_UPDATE);
 
-  802dddc:	2001      	movs	r0, #1
 
-  802ddde:	f00a f9ad 	bl	803813c <SNMP_SendUserTrap>
 
- 	  log_event_data(LOG_UPDATE_SOFT, "Администратор");
 
-  802dde2:	2002      	movs	r0, #2
 
-  802dde4:	490a      	ldr	r1, [pc, #40]	; (802de10 <vTaskReboot+0x3c>)
 
-  802dde6:	f7fb fe39 	bl	8029a5c <log_event_data>
 
- 	  SetLoadMode();
 
-  802ddea:	f7fa f995 	bl	8028118 <SetLoadMode>
 
- 	  HTTP_SaveSettings();
 
-  802ddee:	f7ff ffe5 	bl	802ddbc <HTTP_SaveSettings>
 
-       vTaskDelay(2000);
 
-  802ddf2:	f44f 60fa 	mov.w	r0, #2000	; 0x7d0
 
-  802ddf6:	e001      	b.n	802ddfc <vTaskReboot+0x28>
 
-       vTaskDelay(1010);
 
-       Reboot();
 
- 	}  
 
- 	else
 
- 	{
 
- 	  vTaskDelay(1000);
 
-  802ddf8:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
 
-  802ddfc:	f7fd f8e6 	bl	802afcc <vTaskDelay>
 
-       /* Блокируем управление ключем на тау секунд*/
 
-       //IO_KeyBlockOn();
 
-       vTaskDelay(1010);
 
-  802de00:	f240 30f2 	movw	r0, #1010	; 0x3f2
 
-  802de04:	f7fd f8e2 	bl	802afcc <vTaskDelay>
 
-       Reboot();
 
-  802de08:	f7fb f97c 	bl	8029104 <Reboot>
 
-  802de0c:	e7e4      	b.n	802ddd8 <vTaskReboot+0x4>
 
-  802de0e:	bf00      	nop
 
-  802de10:	08039ab8 	.word	0x08039ab8
 
- 0802de14 <HTTP_Reboot>:
 
- /**
 
-   * @brief  Перезагрузка контроллера
 
-   */
 
- void HTTP_Reboot(void)
 
- {
 
-  802de14:	b508      	push	{r3, lr}
 
-   vTaskDelay(1010);
 
-  802de16:	f240 30f2 	movw	r0, #1010	; 0x3f2
 
-  802de1a:	f7fd f8d7 	bl	802afcc <vTaskDelay>
 
-   Reboot();
 
- }
 
-  802de1e:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
 
-   * @brief  Перезагрузка контроллера
 
-   */
 
- void HTTP_Reboot(void)
 
- {
 
-   vTaskDelay(1010);
 
-   Reboot();
 
-  802de22:	f7fb b96f 	b.w	8029104 <Reboot>
 
-  802de26:	0000      	movs	r0, r0
 
- 0802de28 <HTTP_StartResetTask>:
 
-   *        bootloader и перезаписаны настройки
 
-   *
 
-   *        false - обычная перезагрузка 
 
-   */
 
- void HTTP_StartResetTask(bool fBootMode)
 
- {
 
-  802de28:	b51f      	push	{r0, r1, r2, r3, r4, lr}
 
-   static bool temp;
 
-  
 
-   temp = fBootMode;
 
-  802de2a:	4b07      	ldr	r3, [pc, #28]	; (802de48 <HTTP_StartResetTask+0x20>)
 
-   xTaskCreate(vTaskReboot, "RebootTask", configMINIMAL_STACK_SIZE, 
 
-  802de2c:	4907      	ldr	r1, [pc, #28]	; (802de4c <HTTP_StartResetTask+0x24>)
 
-   */
 
- void HTTP_StartResetTask(bool fBootMode)
 
- {
 
-   static bool temp;
 
-  
 
-   temp = fBootMode;
 
-  802de2e:	7018      	strb	r0, [r3, #0]
 
-   xTaskCreate(vTaskReboot, "RebootTask", configMINIMAL_STACK_SIZE, 
 
-  802de30:	2200      	movs	r2, #0
 
-  802de32:	9200      	str	r2, [sp, #0]
 
-  802de34:	9201      	str	r2, [sp, #4]
 
-  802de36:	9202      	str	r2, [sp, #8]
 
-  802de38:	9203      	str	r2, [sp, #12]
 
-  802de3a:	4805      	ldr	r0, [pc, #20]	; (802de50 <HTTP_StartResetTask+0x28>)
 
-  802de3c:	2280      	movs	r2, #128	; 0x80
 
-  802de3e:	f7fc fe2b 	bl	802aa98 <xTaskGenericCreate>
 
- 			  (void*)&temp, tskIDLE_PRIORITY, NULL);
 
- }
 
-  802de42:	b005      	add	sp, #20
 
-  802de44:	bd00      	pop	{pc}
 
-  802de46:	bf00      	nop
 
-  802de48:	20000d36 	.word	0x20000d36
 
-  802de4c:	08044f87 	.word	0x08044f87
 
-  802de50:	0802ddd5 	.word	0x0802ddd5
 
- 0802de54 <netconn_recv_data>:
 
-  * @return ERR_OK if data has been received, an error code otherwise (timeout,
 
-  *                memory error or another error)
 
-  */
 
- static err_t
 
- netconn_recv_data(struct netconn *conn, void **new_buf)
 
- {
 
-  802de54:	b530      	push	{r4, r5, lr}
 
-  802de56:	b089      	sub	sp, #36	; 0x24
 
-   void *buf = NULL;
 
-  802de58:	2300      	movs	r3, #0
 
-  * @return ERR_OK if data has been received, an error code otherwise (timeout,
 
-  *                memory error or another error)
 
-  */
 
- static err_t
 
- netconn_recv_data(struct netconn *conn, void **new_buf)
 
- {
 
-  802de5a:	4604      	mov	r4, r0
 
-   void *buf = NULL;
 
-  802de5c:	9301      	str	r3, [sp, #4]
 
-   err_t err;
 
- #if LWIP_TCP
 
-   struct api_msg msg;
 
- #endif /* LWIP_TCP */
 
-   LWIP_ERROR("netconn_recv: invalid pointer", (new_buf != NULL), return ERR_ARG;);
 
-  802de5e:	460d      	mov	r5, r1
 
-  802de60:	b909      	cbnz	r1, 802de66 <netconn_recv_data+0x12>
 
-  802de62:	20f2      	movs	r0, #242	; 0xf2
 
-  802de64:	e055      	b.n	802df12 <netconn_recv_data+0xbe>
 
-   *new_buf = NULL;
 
-  802de66:	600b      	str	r3, [r1, #0]
 
-   LWIP_ERROR("netconn_recv: invalid conn",    (conn != NULL),    return ERR_ARG;);
 
-  802de68:	2800      	cmp	r0, #0
 
-  802de6a:	d0fa      	beq.n	802de62 <netconn_recv_data+0xe>
 
-   LWIP_ERROR("netconn_accept: invalid recvmbox", sys_mbox_valid(&conn->recvmbox), return ERR_CONN;);
 
-  802de6c:	6903      	ldr	r3, [r0, #16]
 
-  802de6e:	2b00      	cmp	r3, #0
 
-  802de70:	d04e      	beq.n	802df10 <netconn_recv_data+0xbc>
 
-   err = conn->last_err;
 
-  802de72:	7a00      	ldrb	r0, [r0, #8]
 
-   if (ERR_IS_FATAL(err)) {
 
-  802de74:	b243      	sxtb	r3, r0
 
-  802de76:	3309      	adds	r3, #9
 
-  802de78:	db4b      	blt.n	802df12 <netconn_recv_data+0xbe>
 
-        before the fatal error occurred - is that a problem? */
 
-     return err;
 
-   }
 
- #if LWIP_SO_RCVTIMEO
 
-   if (sys_arch_mbox_fetch(&conn->recvmbox, &buf, conn->recv_timeout) == SYS_ARCH_TIMEOUT) {
 
-  802de7a:	f104 0010 	add.w	r0, r4, #16
 
-  802de7e:	a901      	add	r1, sp, #4
 
-  802de80:	69a2      	ldr	r2, [r4, #24]
 
-  802de82:	f009 fd43 	bl	803790c <sys_arch_mbox_fetch>
 
-  802de86:	3001      	adds	r0, #1
 
-  802de88:	d10b      	bne.n	802dea2 <netconn_recv_data+0x4e>
 
-     NETCONN_SET_SAFE_ERR(conn, ERR_TIMEOUT);
 
-  802de8a:	f009 fe1d 	bl	8037ac8 <sys_arch_protect>
 
-  802de8e:	f994 3008 	ldrsb.w	r3, [r4, #8]
 
-  802de92:	3309      	adds	r3, #9
 
-  802de94:	db01      	blt.n	802de9a <netconn_recv_data+0x46>
 
-  802de96:	23fd      	movs	r3, #253	; 0xfd
 
-  802de98:	7223      	strb	r3, [r4, #8]
 
-  802de9a:	f009 fe1f 	bl	8037adc <sys_arch_unprotect>
 
-     return ERR_TIMEOUT;
 
-  802de9e:	20fd      	movs	r0, #253	; 0xfd
 
-  802dea0:	e037      	b.n	802df12 <netconn_recv_data+0xbe>
 
-   sys_arch_mbox_fetch(&conn->recvmbox, &buf, 0);
 
- #endif /* LWIP_SO_RCVTIMEO*/
 
- #if LWIP_TCP
 
- #if (LWIP_UDP || LWIP_RAW)
 
-   if (conn->type == NETCONN_TCP)
 
-  802dea2:	7823      	ldrb	r3, [r4, #0]
 
-  802dea4:	2b10      	cmp	r3, #16
 
-  802dea6:	d127      	bne.n	802def8 <netconn_recv_data+0xa4>
 
- #endif /* (LWIP_UDP || LWIP_RAW) */
 
-   {
 
-     if (!netconn_get_noautorecved(conn) || (buf == NULL)) {
 
-  802dea8:	7f23      	ldrb	r3, [r4, #28]
 
-  802deaa:	f003 0308 	and.w	r3, r3, #8
 
-  802deae:	b2db      	uxtb	r3, r3
 
-  802deb0:	b10b      	cbz	r3, 802deb6 <netconn_recv_data+0x62>
 
-  802deb2:	9b01      	ldr	r3, [sp, #4]
 
-  802deb4:	b95b      	cbnz	r3, 802dece <netconn_recv_data+0x7a>
 
-       /* Let the stack know that we have taken the data. */
 
-       /* TODO: Speedup: Don't block and wait for the answer here
 
-          (to prevent multiple thread-switches). */
 
-       msg.function = do_recv;
 
-  802deb6:	4b18      	ldr	r3, [pc, #96]	; (802df18 <netconn_recv_data+0xc4>)
 
-       msg.msg.conn = conn;
 
-  802deb8:	9403      	str	r4, [sp, #12]
 
-   {
 
-     if (!netconn_get_noautorecved(conn) || (buf == NULL)) {
 
-       /* Let the stack know that we have taken the data. */
 
-       /* TODO: Speedup: Don't block and wait for the answer here
 
-          (to prevent multiple thread-switches). */
 
-       msg.function = do_recv;
 
-  802deba:	9302      	str	r3, [sp, #8]
 
-       msg.msg.conn = conn;
 
-       if (buf != NULL) {
 
-  802debc:	9b01      	ldr	r3, [sp, #4]
 
-  802debe:	b10b      	cbz	r3, 802dec4 <netconn_recv_data+0x70>
 
-         msg.msg.msg.r.len = ((struct pbuf *)buf)->tot_len;
 
-  802dec0:	891b      	ldrh	r3, [r3, #8]
 
-  802dec2:	e000      	b.n	802dec6 <netconn_recv_data+0x72>
 
-       } else {
 
-         msg.msg.msg.r.len = 1;
 
-  802dec4:	2301      	movs	r3, #1
 
-       }
 
-       /* don't care for the return value of do_recv */
 
-       TCPIP_APIMSG(&msg);
 
-  802dec6:	a802      	add	r0, sp, #8
 
-       msg.function = do_recv;
 
-       msg.msg.conn = conn;
 
-       if (buf != NULL) {
 
-         msg.msg.msg.r.len = ((struct pbuf *)buf)->tot_len;
 
-       } else {
 
-         msg.msg.msg.r.len = 1;
 
-  802dec8:	9305      	str	r3, [sp, #20]
 
-       }
 
-       /* don't care for the return value of do_recv */
 
-       TCPIP_APIMSG(&msg);
 
-  802deca:	f000 fe25 	bl	802eb18 <tcpip_apimsg>
 
-     }
 
-     /* If we are closed, we indicate that we no longer wish to use the socket */
 
-     if (buf == NULL) {
 
-  802dece:	9a01      	ldr	r2, [sp, #4]
 
-  802ded0:	b982      	cbnz	r2, 802def4 <netconn_recv_data+0xa0>
 
-       API_EVENT(conn, NETCONN_EVT_RCVMINUS, 0);
 
-  802ded2:	6aa3      	ldr	r3, [r4, #40]	; 0x28
 
-  802ded4:	b113      	cbz	r3, 802dedc <netconn_recv_data+0x88>
 
-  802ded6:	4620      	mov	r0, r4
 
-  802ded8:	2101      	movs	r1, #1
 
-  802deda:	4798      	blx	r3
 
-       /* Avoid to lose any previous error code */
 
-       NETCONN_SET_SAFE_ERR(conn, ERR_CLSD);
 
-  802dedc:	f009 fdf4 	bl	8037ac8 <sys_arch_protect>
 
-  802dee0:	f994 3008 	ldrsb.w	r3, [r4, #8]
 
-  802dee4:	3309      	adds	r3, #9
 
-  802dee6:	db01      	blt.n	802deec <netconn_recv_data+0x98>
 
-  802dee8:	23f4      	movs	r3, #244	; 0xf4
 
-  802deea:	7223      	strb	r3, [r4, #8]
 
-  802deec:	f009 fdf6 	bl	8037adc <sys_arch_unprotect>
 
-       return ERR_CLSD;
 
-  802def0:	20f4      	movs	r0, #244	; 0xf4
 
-  802def2:	e00e      	b.n	802df12 <netconn_recv_data+0xbe>
 
-     }
 
-     len = ((struct pbuf *)buf)->tot_len;
 
-  802def4:	8912      	ldrh	r2, [r2, #8]
 
-  802def6:	e002      	b.n	802defe <netconn_recv_data+0xaa>
 
-   else
 
- #endif /* LWIP_TCP && (LWIP_UDP || LWIP_RAW) */
 
- #if (LWIP_UDP || LWIP_RAW)
 
-   {
 
-     LWIP_ASSERT("buf != NULL", buf != NULL);
 
-     len = netbuf_len((struct netbuf *)buf);
 
-  802def8:	9b01      	ldr	r3, [sp, #4]
 
-  802defa:	681b      	ldr	r3, [r3, #0]
 
-  802defc:	891a      	ldrh	r2, [r3, #8]
 
- #if LWIP_SO_RCVBUF
 
-   SYS_ARCH_DEC(conn->recv_avail, len);
 
- #endif /* LWIP_SO_RCVBUF */
 
-   /* Register event with callback */
 
-   API_EVENT(conn, NETCONN_EVT_RCVMINUS, len);
 
-  802defe:	6aa3      	ldr	r3, [r4, #40]	; 0x28
 
-  802df00:	b113      	cbz	r3, 802df08 <netconn_recv_data+0xb4>
 
-  802df02:	4620      	mov	r0, r4
 
-  802df04:	2101      	movs	r1, #1
 
-  802df06:	4798      	blx	r3
 
-   LWIP_DEBUGF(API_LIB_DEBUG, ("netconn_recv_data: received %p, len=%"U16_F"\n", buf, len));
 
-   *new_buf = buf;
 
-  802df08:	9b01      	ldr	r3, [sp, #4]
 
-   /* don't set conn->last_err: it's only ERR_OK, anyway */
 
-   return ERR_OK;
 
-  802df0a:	2000      	movs	r0, #0
 
-   /* Register event with callback */
 
-   API_EVENT(conn, NETCONN_EVT_RCVMINUS, len);
 
-   LWIP_DEBUGF(API_LIB_DEBUG, ("netconn_recv_data: received %p, len=%"U16_F"\n", buf, len));
 
-   *new_buf = buf;
 
-  802df0c:	602b      	str	r3, [r5, #0]
 
-  802df0e:	e000      	b.n	802df12 <netconn_recv_data+0xbe>
 
- #endif /* LWIP_TCP */
 
-   LWIP_ERROR("netconn_recv: invalid pointer", (new_buf != NULL), return ERR_ARG;);
 
-   *new_buf = NULL;
 
-   LWIP_ERROR("netconn_recv: invalid conn",    (conn != NULL),    return ERR_ARG;);
 
-   LWIP_ERROR("netconn_accept: invalid recvmbox", sys_mbox_valid(&conn->recvmbox), return ERR_CONN;);
 
-  802df10:	20f3      	movs	r0, #243	; 0xf3
 
-   LWIP_DEBUGF(API_LIB_DEBUG, ("netconn_recv_data: received %p, len=%"U16_F"\n", buf, len));
 
-   *new_buf = buf;
 
-   /* don't set conn->last_err: it's only ERR_OK, anyway */
 
-   return ERR_OK;
 
- }
 
-  802df12:	b240      	sxtb	r0, r0
 
-  802df14:	b009      	add	sp, #36	; 0x24
 
-  802df16:	bd30      	pop	{r4, r5, pc}
 
-  802df18:	0802e98d 	.word	0x0802e98d
 
- 0802df1c <netconn_new_with_proto_and_callback>:
 
-  * @return a newly allocated struct netconn or
 
-  *         NULL on memory error
 
-  */
 
- struct netconn*
 
- netconn_new_with_proto_and_callback(enum netconn_type t, u8_t proto, netconn_callback callback)
 
- {
 
-  802df1c:	b530      	push	{r4, r5, lr}
 
-  802df1e:	460d      	mov	r5, r1
 
-  802df20:	b087      	sub	sp, #28
 
-   struct netconn *conn;
 
-   struct api_msg msg;
 
-   conn = netconn_alloc(t, callback);
 
-  802df22:	4611      	mov	r1, r2
 
-  802df24:	f000 fba0 	bl	802e668 <netconn_alloc>
 
-   if (conn != NULL) {
 
-  802df28:	4604      	mov	r4, r0
 
-  802df2a:	b1a8      	cbz	r0, 802df58 <netconn_new_with_proto_and_callback+0x3c>
 
-     msg.function = do_newconn;
 
-  802df2c:	4b0c      	ldr	r3, [pc, #48]	; (802df60 <netconn_new_with_proto_and_callback+0x44>)
 
-     msg.msg.msg.n.proto = proto;
 
-     msg.msg.conn = conn;
 
-  802df2e:	9001      	str	r0, [sp, #4]
 
-     if (TCPIP_APIMSG(&msg) != ERR_OK) {
 
-  802df30:	4668      	mov	r0, sp
 
-   struct netconn *conn;
 
-   struct api_msg msg;
 
-   conn = netconn_alloc(t, callback);
 
-   if (conn != NULL) {
 
-     msg.function = do_newconn;
 
-  802df32:	9300      	str	r3, [sp, #0]
 
-     msg.msg.msg.n.proto = proto;
 
-  802df34:	f88d 500c 	strb.w	r5, [sp, #12]
 
-     msg.msg.conn = conn;
 
-     if (TCPIP_APIMSG(&msg) != ERR_OK) {
 
-  802df38:	f000 fdee 	bl	802eb18 <tcpip_apimsg>
 
-  802df3c:	b160      	cbz	r0, 802df58 <netconn_new_with_proto_and_callback+0x3c>
 
-       LWIP_ASSERT("conn has no op_completed", sys_sem_valid(&conn->op_completed));
 
-       LWIP_ASSERT("conn has no recvmbox", sys_mbox_valid(&conn->recvmbox));
 
- #if LWIP_TCP
 
-       LWIP_ASSERT("conn->acceptmbox shouldn't exist", !sys_mbox_valid(&conn->acceptmbox));
 
- #endif /* LWIP_TCP */
 
-       sys_sem_free(&conn->op_completed);
 
-  802df3e:	f104 000c 	add.w	r0, r4, #12
 
-  802df42:	f009 fda3 	bl	8037a8c <sys_sem_free>
 
-       sys_mbox_free(&conn->recvmbox);
 
-  802df46:	f104 0010 	add.w	r0, r4, #16
 
-  802df4a:	f009 fca7 	bl	803789c <sys_mbox_free>
 
-       memp_free(MEMP_NETCONN, conn);
 
-  802df4e:	4621      	mov	r1, r4
 
-  802df50:	2006      	movs	r0, #6
 
-  802df52:	f001 fe51 	bl	802fbf8 <memp_free>
 
-       return NULL;
 
-  802df56:	2400      	movs	r4, #0
 
-     }
 
-   }
 
-   return conn;
 
- }
 
-  802df58:	4620      	mov	r0, r4
 
-  802df5a:	b007      	add	sp, #28
 
-  802df5c:	bd30      	pop	{r4, r5, pc}
 
-  802df5e:	bf00      	nop
 
-  802df60:	0802e5d9 	.word	0x0802e5d9
 
- 0802df64 <netconn_delete>:
 
-  * @param conn the netconn to delete
 
-  * @return ERR_OK if the connection was deleted
 
-  */
 
- err_t
 
- netconn_delete(struct netconn *conn)
 
- {
 
-  802df64:	b510      	push	{r4, lr}
 
-   struct api_msg msg;
 
-   /* No ASSERT here because possible to get a (conn == NULL) if we got an accept error */
 
-   if (conn == NULL) {
 
-  802df66:	4604      	mov	r4, r0
 
-  * @param conn the netconn to delete
 
-  * @return ERR_OK if the connection was deleted
 
-  */
 
- err_t
 
- netconn_delete(struct netconn *conn)
 
- {
 
-  802df68:	b086      	sub	sp, #24
 
-   struct api_msg msg;
 
-   /* No ASSERT here because possible to get a (conn == NULL) if we got an accept error */
 
-   if (conn == NULL) {
 
-  802df6a:	b140      	cbz	r0, 802df7e <netconn_delete+0x1a>
 
-     return ERR_OK;
 
-   }
 
-   msg.function = do_delconn;
 
-  802df6c:	4b05      	ldr	r3, [pc, #20]	; (802df84 <netconn_delete+0x20>)
 
-   msg.msg.conn = conn;
 
-   tcpip_apimsg(&msg);
 
-  802df6e:	4668      	mov	r0, sp
 
-   if (conn == NULL) {
 
-     return ERR_OK;
 
-   }
 
-   msg.function = do_delconn;
 
-   msg.msg.conn = conn;
 
-  802df70:	e88d 0018 	stmia.w	sp, {r3, r4}
 
-   tcpip_apimsg(&msg);
 
-  802df74:	f000 fdd0 	bl	802eb18 <tcpip_apimsg>
 
-   netconn_free(conn);
 
-  802df78:	4620      	mov	r0, r4
 
-  802df7a:	f000 fbaf 	bl	802e6dc <netconn_free>
 
-   /* don't care for return value of do_delconn since it only calls void functions */
 
-   return ERR_OK;
 
- }
 
-  802df7e:	2000      	movs	r0, #0
 
-  802df80:	b006      	add	sp, #24
 
-  802df82:	bd10      	pop	{r4, pc}
 
-  802df84:	0802e77d 	.word	0x0802e77d
 
- 0802df88 <netconn_bind>:
 
-  * @param port the local port to bind the netconn to (not used for RAW)
 
-  * @return ERR_OK if bound, any other err_t on failure
 
-  */
 
- err_t
 
- netconn_bind(struct netconn *conn, ip_addr_t *addr, u16_t port)
 
- {
 
-  802df88:	b530      	push	{r4, r5, lr}
 
-   struct api_msg msg;
 
-   err_t err;
 
-   LWIP_ERROR("netconn_bind: invalid conn", (conn != NULL), return ERR_ARG;);
 
-  802df8a:	4604      	mov	r4, r0
 
-  * @param port the local port to bind the netconn to (not used for RAW)
 
-  * @return ERR_OK if bound, any other err_t on failure
 
-  */
 
- err_t
 
- netconn_bind(struct netconn *conn, ip_addr_t *addr, u16_t port)
 
- {
 
-  802df8c:	b087      	sub	sp, #28
 
-   struct api_msg msg;
 
-   err_t err;
 
-   LWIP_ERROR("netconn_bind: invalid conn", (conn != NULL), return ERR_ARG;);
 
-  802df8e:	b198      	cbz	r0, 802dfb8 <netconn_bind+0x30>
 
-   msg.function = do_bind;
 
-  802df90:	4b0b      	ldr	r3, [pc, #44]	; (802dfc0 <netconn_bind+0x38>)
 
-   msg.msg.conn = conn;
 
-   msg.msg.msg.bc.ipaddr = addr;
 
-  802df92:	9103      	str	r1, [sp, #12]
 
-   msg.msg.msg.bc.port = port;
 
-   err = TCPIP_APIMSG(&msg);
 
-  802df94:	4668      	mov	r0, sp
 
-   err_t err;
 
-   LWIP_ERROR("netconn_bind: invalid conn", (conn != NULL), return ERR_ARG;);
 
-   msg.function = do_bind;
 
-   msg.msg.conn = conn;
 
-  802df96:	e88d 0018 	stmia.w	sp, {r3, r4}
 
-   msg.msg.msg.bc.ipaddr = addr;
 
-   msg.msg.msg.bc.port = port;
 
-  802df9a:	f8ad 2010 	strh.w	r2, [sp, #16]
 
-   err = TCPIP_APIMSG(&msg);
 
-  802df9e:	f000 fdbb 	bl	802eb18 <tcpip_apimsg>
 
-  802dfa2:	4605      	mov	r5, r0
 
-   NETCONN_SET_SAFE_ERR(conn, err);
 
-  802dfa4:	f009 fd90 	bl	8037ac8 <sys_arch_protect>
 
-  802dfa8:	f994 3008 	ldrsb.w	r3, [r4, #8]
 
-  802dfac:	3309      	adds	r3, #9
 
-  802dfae:	bfa8      	it	ge
 
-  802dfb0:	7225      	strbge	r5, [r4, #8]
 
-  802dfb2:	f009 fd93 	bl	8037adc <sys_arch_unprotect>
 
-  802dfb6:	e000      	b.n	802dfba <netconn_bind+0x32>
 
- netconn_bind(struct netconn *conn, ip_addr_t *addr, u16_t port)
 
- {
 
-   struct api_msg msg;
 
-   err_t err;
 
-   LWIP_ERROR("netconn_bind: invalid conn", (conn != NULL), return ERR_ARG;);
 
-  802dfb8:	25f2      	movs	r5, #242	; 0xf2
 
-   msg.msg.msg.bc.port = port;
 
-   err = TCPIP_APIMSG(&msg);
 
-   NETCONN_SET_SAFE_ERR(conn, err);
 
-   return err;
 
- }
 
-  802dfba:	b268      	sxtb	r0, r5
 
-  802dfbc:	b007      	add	sp, #28
 
-  802dfbe:	bd30      	pop	{r4, r5, pc}
 
-  802dfc0:	0802e80f 	.word	0x0802e80f
 
- 0802dfc4 <netconn_connect>:
 
-  * @param port the remote port to connect to (no used for RAW)
 
-  * @return ERR_OK if connected, return value of tcp_/udp_/raw_connect otherwise
 
-  */
 
- err_t
 
- netconn_connect(struct netconn *conn, ip_addr_t *addr, u16_t port)
 
- {
 
-  802dfc4:	b530      	push	{r4, r5, lr}
 
-   struct api_msg msg;
 
-   err_t err;
 
-   LWIP_ERROR("netconn_connect: invalid conn", (conn != NULL), return ERR_ARG;);
 
-  802dfc6:	4604      	mov	r4, r0
 
-  * @param port the remote port to connect to (no used for RAW)
 
-  * @return ERR_OK if connected, return value of tcp_/udp_/raw_connect otherwise
 
-  */
 
- err_t
 
- netconn_connect(struct netconn *conn, ip_addr_t *addr, u16_t port)
 
- {
 
-  802dfc8:	b087      	sub	sp, #28
 
-   struct api_msg msg;
 
-   err_t err;
 
-   LWIP_ERROR("netconn_connect: invalid conn", (conn != NULL), return ERR_ARG;);
 
-  802dfca:	b198      	cbz	r0, 802dff4 <netconn_connect+0x30>
 
-   msg.function = do_connect;
 
-  802dfcc:	4b0b      	ldr	r3, [pc, #44]	; (802dffc <netconn_connect+0x38>)
 
-   msg.msg.conn = conn;
 
-   msg.msg.msg.bc.ipaddr = addr;
 
-  802dfce:	9103      	str	r1, [sp, #12]
 
-   msg.msg.msg.bc.port = port;
 
-   /* This is the only function which need to not block tcpip_thread */
 
-   err = tcpip_apimsg(&msg);
 
-  802dfd0:	4668      	mov	r0, sp
 
-   err_t err;
 
-   LWIP_ERROR("netconn_connect: invalid conn", (conn != NULL), return ERR_ARG;);
 
-   msg.function = do_connect;
 
-   msg.msg.conn = conn;
 
-  802dfd2:	e88d 0018 	stmia.w	sp, {r3, r4}
 
-   msg.msg.msg.bc.ipaddr = addr;
 
-   msg.msg.msg.bc.port = port;
 
-  802dfd6:	f8ad 2010 	strh.w	r2, [sp, #16]
 
-   /* This is the only function which need to not block tcpip_thread */
 
-   err = tcpip_apimsg(&msg);
 
-  802dfda:	f000 fd9d 	bl	802eb18 <tcpip_apimsg>
 
-  802dfde:	4605      	mov	r5, r0
 
-   NETCONN_SET_SAFE_ERR(conn, err);
 
-  802dfe0:	f009 fd72 	bl	8037ac8 <sys_arch_protect>
 
-  802dfe4:	f994 3008 	ldrsb.w	r3, [r4, #8]
 
-  802dfe8:	3309      	adds	r3, #9
 
-  802dfea:	bfa8      	it	ge
 
-  802dfec:	7225      	strbge	r5, [r4, #8]
 
-  802dfee:	f009 fd75 	bl	8037adc <sys_arch_unprotect>
 
-  802dff2:	e000      	b.n	802dff6 <netconn_connect+0x32>
 
- netconn_connect(struct netconn *conn, ip_addr_t *addr, u16_t port)
 
- {
 
-   struct api_msg msg;
 
-   err_t err;
 
-   LWIP_ERROR("netconn_connect: invalid conn", (conn != NULL), return ERR_ARG;);
 
-  802dff4:	25f2      	movs	r5, #242	; 0xf2
 
-   /* This is the only function which need to not block tcpip_thread */
 
-   err = tcpip_apimsg(&msg);
 
-   NETCONN_SET_SAFE_ERR(conn, err);
 
-   return err;
 
- }
 
-  802dff6:	b268      	sxtb	r0, r5
 
-  802dff8:	b007      	add	sp, #28
 
-  802dffa:	bd30      	pop	{r4, r5, pc}
 
-  802dffc:	0802e865 	.word	0x0802e865
 
- 0802e000 <netconn_disconnect>:
 
-  * @param conn the netconn to disconnect
 
-  * @return TODO: return value is not set here...
 
-  */
 
- err_t
 
- netconn_disconnect(struct netconn *conn)
 
- {
 
-  802e000:	b530      	push	{r4, r5, lr}
 
-   struct api_msg msg;
 
-   err_t err;
 
-   LWIP_ERROR("netconn_disconnect: invalid conn", (conn != NULL), return ERR_ARG;);
 
-  802e002:	4604      	mov	r4, r0
 
-  * @param conn the netconn to disconnect
 
-  * @return TODO: return value is not set here...
 
-  */
 
- err_t
 
- netconn_disconnect(struct netconn *conn)
 
- {
 
-  802e004:	b087      	sub	sp, #28
 
-   struct api_msg msg;
 
-   err_t err;
 
-   LWIP_ERROR("netconn_disconnect: invalid conn", (conn != NULL), return ERR_ARG;);
 
-  802e006:	b180      	cbz	r0, 802e02a <netconn_disconnect+0x2a>
 
-   msg.function = do_disconnect;
 
-  802e008:	4b0a      	ldr	r3, [pc, #40]	; (802e034 <netconn_disconnect+0x34>)
 
-   msg.msg.conn = conn;
 
-   err = TCPIP_APIMSG(&msg);
 
-  802e00a:	4668      	mov	r0, sp
 
-   err_t err;
 
-   LWIP_ERROR("netconn_disconnect: invalid conn", (conn != NULL), return ERR_ARG;);
 
-   msg.function = do_disconnect;
 
-   msg.msg.conn = conn;
 
-  802e00c:	e88d 0018 	stmia.w	sp, {r3, r4}
 
-   err = TCPIP_APIMSG(&msg);
 
-  802e010:	f000 fd82 	bl	802eb18 <tcpip_apimsg>
 
-  802e014:	4605      	mov	r5, r0
 
-   NETCONN_SET_SAFE_ERR(conn, err);
 
-  802e016:	f009 fd57 	bl	8037ac8 <sys_arch_protect>
 
-  802e01a:	f994 3008 	ldrsb.w	r3, [r4, #8]
 
-  802e01e:	3309      	adds	r3, #9
 
-  802e020:	bfa8      	it	ge
 
-  802e022:	7225      	strbge	r5, [r4, #8]
 
-  802e024:	f009 fd5a 	bl	8037adc <sys_arch_unprotect>
 
-  802e028:	e000      	b.n	802e02c <netconn_disconnect+0x2c>
 
- netconn_disconnect(struct netconn *conn)
 
- {
 
-   struct api_msg msg;
 
-   err_t err;
 
-   LWIP_ERROR("netconn_disconnect: invalid conn", (conn != NULL), return ERR_ARG;);
 
-  802e02a:	25f2      	movs	r5, #242	; 0xf2
 
-   msg.msg.conn = conn;
 
-   err = TCPIP_APIMSG(&msg);
 
-   NETCONN_SET_SAFE_ERR(conn, err);
 
-   return err;
 
- }
 
-  802e02c:	b268      	sxtb	r0, r5
 
-  802e02e:	b007      	add	sp, #28
 
-  802e030:	bd30      	pop	{r4, r5, pc}
 
-  802e032:	bf00      	nop
 
-  802e034:	0802e8f5 	.word	0x0802e8f5
 
- 0802e038 <netconn_recv>:
 
-  * @return ERR_OK if data has been received, an error code otherwise (timeout,
 
-  *                memory error or another error)
 
-  */
 
- err_t
 
- netconn_recv(struct netconn *conn, struct netbuf **new_buf)
 
- {
 
-  802e038:	b573      	push	{r0, r1, r4, r5, r6, lr}
 
-  802e03a:	4604      	mov	r4, r0
 
- #if LWIP_TCP
 
-   struct netbuf *buf = NULL;
 
-   err_t err;
 
- #endif /* LWIP_TCP */
 
-   LWIP_ERROR("netconn_recv: invalid pointer", (new_buf != NULL), return ERR_ARG;);
 
-  802e03c:	460e      	mov	r6, r1
 
-  802e03e:	b909      	cbnz	r1, 802e044 <netconn_recv+0xc>
 
-  802e040:	24f2      	movs	r4, #242	; 0xf2
 
-  802e042:	e031      	b.n	802e0a8 <netconn_recv+0x70>
 
-   *new_buf = NULL;
 
-  802e044:	2300      	movs	r3, #0
 
-  802e046:	600b      	str	r3, [r1, #0]
 
-   LWIP_ERROR("netconn_recv: invalid conn",    (conn != NULL),    return ERR_ARG;);
 
-  802e048:	2800      	cmp	r0, #0
 
-  802e04a:	d0f9      	beq.n	802e040 <netconn_recv+0x8>
 
-   LWIP_ERROR("netconn_accept: invalid recvmbox", sys_mbox_valid(&conn->recvmbox), return ERR_CONN;);
 
-  802e04c:	6902      	ldr	r2, [r0, #16]
 
-  802e04e:	b352      	cbz	r2, 802e0a6 <netconn_recv+0x6e>
 
- #if LWIP_TCP
 
- #if (LWIP_UDP || LWIP_RAW)
 
-   if (conn->type == NETCONN_TCP)
 
-  802e050:	7802      	ldrb	r2, [r0, #0]
 
-  802e052:	2a10      	cmp	r2, #16
 
-  802e054:	d123      	bne.n	802e09e <netconn_recv+0x66>
 
- #endif /* (LWIP_UDP || LWIP_RAW) */
 
-   {
 
-     struct pbuf *p = NULL;
 
-     /* This is not a listening netconn, since recvmbox is set */
 
-     buf = (struct netbuf *)memp_malloc(MEMP_NETBUF);
 
-  802e056:	2005      	movs	r0, #5
 
- #if LWIP_TCP
 
- #if (LWIP_UDP || LWIP_RAW)
 
-   if (conn->type == NETCONN_TCP)
 
- #endif /* (LWIP_UDP || LWIP_RAW) */
 
-   {
 
-     struct pbuf *p = NULL;
 
-  802e058:	9301      	str	r3, [sp, #4]
 
-     /* This is not a listening netconn, since recvmbox is set */
 
-     buf = (struct netbuf *)memp_malloc(MEMP_NETBUF);
 
-  802e05a:	f001 fdb7 	bl	802fbcc <memp_malloc>
 
-     if (buf == NULL) {
 
-  802e05e:	4605      	mov	r5, r0
 
-  802e060:	b958      	cbnz	r0, 802e07a <netconn_recv+0x42>
 
-       NETCONN_SET_SAFE_ERR(conn, ERR_MEM);
 
-  802e062:	f009 fd31 	bl	8037ac8 <sys_arch_protect>
 
-  802e066:	f994 3008 	ldrsb.w	r3, [r4, #8]
 
-  802e06a:	3309      	adds	r3, #9
 
-  802e06c:	db01      	blt.n	802e072 <netconn_recv+0x3a>
 
-  802e06e:	23ff      	movs	r3, #255	; 0xff
 
-  802e070:	7223      	strb	r3, [r4, #8]
 
-  802e072:	f009 fd33 	bl	8037adc <sys_arch_unprotect>
 
-       return ERR_MEM;
 
-  802e076:	24ff      	movs	r4, #255	; 0xff
 
-  802e078:	e016      	b.n	802e0a8 <netconn_recv+0x70>
 
-     }
 
-     err = netconn_recv_data(conn, (void **)&p);
 
-  802e07a:	4620      	mov	r0, r4
 
-  802e07c:	a901      	add	r1, sp, #4
 
-  802e07e:	f7ff fee9 	bl	802de54 <netconn_recv_data>
 
-     if (err != ERR_OK) {
 
-  802e082:	4604      	mov	r4, r0
 
-  802e084:	b120      	cbz	r0, 802e090 <netconn_recv+0x58>
 
-       memp_free(MEMP_NETBUF, buf);
 
-  802e086:	2005      	movs	r0, #5
 
-  802e088:	4629      	mov	r1, r5
 
-  802e08a:	f001 fdb5 	bl	802fbf8 <memp_free>
 
-  802e08e:	e00b      	b.n	802e0a8 <netconn_recv+0x70>
 
-       return err;
 
-     }
 
-     LWIP_ASSERT("p != NULL", p != NULL);
 
-     buf->p = p;
 
-  802e090:	9b01      	ldr	r3, [sp, #4]
 
-     buf->ptr = p;
 
-     buf->port = 0;
 
-  802e092:	81a8      	strh	r0, [r5, #12]
 
-       memp_free(MEMP_NETBUF, buf);
 
-       return err;
 
-     }
 
-     LWIP_ASSERT("p != NULL", p != NULL);
 
-     buf->p = p;
 
-  802e094:	602b      	str	r3, [r5, #0]
 
-     buf->ptr = p;
 
-  802e096:	606b      	str	r3, [r5, #4]
 
-     buf->port = 0;
 
-     ip_addr_set_any(&buf->addr);
 
-  802e098:	60a8      	str	r0, [r5, #8]
 
-     *new_buf = buf;
 
-  802e09a:	6035      	str	r5, [r6, #0]
 
-  802e09c:	e004      	b.n	802e0a8 <netconn_recv+0x70>
 
- #if LWIP_TCP && (LWIP_UDP || LWIP_RAW)
 
-   else
 
- #endif /* LWIP_TCP && (LWIP_UDP || LWIP_RAW) */
 
-   {
 
- #if (LWIP_UDP || LWIP_RAW)
 
-     return netconn_recv_data(conn, (void **)new_buf);
 
-  802e09e:	f7ff fed9 	bl	802de54 <netconn_recv_data>
 
-  802e0a2:	4604      	mov	r4, r0
 
-  802e0a4:	e000      	b.n	802e0a8 <netconn_recv+0x70>
 
- #endif /* LWIP_TCP */
 
-   LWIP_ERROR("netconn_recv: invalid pointer", (new_buf != NULL), return ERR_ARG;);
 
-   *new_buf = NULL;
 
-   LWIP_ERROR("netconn_recv: invalid conn",    (conn != NULL),    return ERR_ARG;);
 
-   LWIP_ERROR("netconn_accept: invalid recvmbox", sys_mbox_valid(&conn->recvmbox), return ERR_CONN;);
 
-  802e0a6:	24f3      	movs	r4, #243	; 0xf3
 
-   {
 
- #if (LWIP_UDP || LWIP_RAW)
 
-     return netconn_recv_data(conn, (void **)new_buf);
 
- #endif /* (LWIP_UDP || LWIP_RAW) */
 
-   }
 
- }
 
-  802e0a8:	b260      	sxtb	r0, r4
 
-  802e0aa:	bd7c      	pop	{r2, r3, r4, r5, r6, pc}
 
- 0802e0ac <netconn_send>:
 
-  * @param buf a netbuf containing the data to send
 
-  * @return ERR_OK if data was sent, any other err_t on error
 
-  */
 
- err_t
 
- netconn_send(struct netconn *conn, struct netbuf *buf)
 
- {
 
-  802e0ac:	b530      	push	{r4, r5, lr}
 
-   struct api_msg msg;
 
-   err_t err;
 
-   LWIP_ERROR("netconn_send: invalid conn",  (conn != NULL), return ERR_ARG;);
 
-  802e0ae:	4604      	mov	r4, r0
 
-  * @param buf a netbuf containing the data to send
 
-  * @return ERR_OK if data was sent, any other err_t on error
 
-  */
 
- err_t
 
- netconn_send(struct netconn *conn, struct netbuf *buf)
 
- {
 
-  802e0b0:	b087      	sub	sp, #28
 
-   struct api_msg msg;
 
-   err_t err;
 
-   LWIP_ERROR("netconn_send: invalid conn",  (conn != NULL), return ERR_ARG;);
 
-  802e0b2:	b188      	cbz	r0, 802e0d8 <netconn_send+0x2c>
 
-   LWIP_DEBUGF(API_LIB_DEBUG, ("netconn_send: sending %"U16_F" bytes\n", buf->p->tot_len));
 
-   msg.function = do_send;
 
-  802e0b4:	4b0a      	ldr	r3, [pc, #40]	; (802e0e0 <netconn_send+0x34>)
 
-   msg.msg.conn = conn;
 
-   msg.msg.msg.b = buf;
 
-  802e0b6:	9103      	str	r1, [sp, #12]
 
-   err = TCPIP_APIMSG(&msg);
 
-  802e0b8:	4668      	mov	r0, sp
 
-   LWIP_ERROR("netconn_send: invalid conn",  (conn != NULL), return ERR_ARG;);
 
-   LWIP_DEBUGF(API_LIB_DEBUG, ("netconn_send: sending %"U16_F" bytes\n", buf->p->tot_len));
 
-   msg.function = do_send;
 
-   msg.msg.conn = conn;
 
-  802e0ba:	e88d 0018 	stmia.w	sp, {r3, r4}
 
-   msg.msg.msg.b = buf;
 
-   err = TCPIP_APIMSG(&msg);
 
-  802e0be:	f000 fd2b 	bl	802eb18 <tcpip_apimsg>
 
-  802e0c2:	4605      	mov	r5, r0
 
-   NETCONN_SET_SAFE_ERR(conn, err);
 
-  802e0c4:	f009 fd00 	bl	8037ac8 <sys_arch_protect>
 
-  802e0c8:	f994 3008 	ldrsb.w	r3, [r4, #8]
 
-  802e0cc:	3309      	adds	r3, #9
 
-  802e0ce:	bfa8      	it	ge
 
-  802e0d0:	7225      	strbge	r5, [r4, #8]
 
-  802e0d2:	f009 fd03 	bl	8037adc <sys_arch_unprotect>
 
-  802e0d6:	e000      	b.n	802e0da <netconn_send+0x2e>
 
- netconn_send(struct netconn *conn, struct netbuf *buf)
 
- {
 
-   struct api_msg msg;
 
-   err_t err;
 
-   LWIP_ERROR("netconn_send: invalid conn",  (conn != NULL), return ERR_ARG;);
 
-  802e0d8:	25f2      	movs	r5, #242	; 0xf2
 
-   msg.msg.msg.b = buf;
 
-   err = TCPIP_APIMSG(&msg);
 
-   NETCONN_SET_SAFE_ERR(conn, err);
 
-   return err;
 
- }
 
-  802e0da:	b268      	sxtb	r0, r5
 
-  802e0dc:	b007      	add	sp, #28
 
-  802e0de:	bd30      	pop	{r4, r5, pc}
 
-  802e0e0:	0802e91f 	.word	0x0802e91f
 
- 0802e0e4 <setup_tcp>:
 
-  *
 
-  * @param conn the TCP netconn to setup
 
-  */
 
- static void
 
- setup_tcp(struct netconn *conn)
 
- {
 
-  802e0e4:	b510      	push	{r4, lr}
 
-   struct tcp_pcb *pcb;
 
-   pcb = conn->pcb.tcp;
 
-  802e0e6:	6844      	ldr	r4, [r0, #4]
 
-  *
 
-  * @param conn the TCP netconn to setup
 
-  */
 
- static void
 
- setup_tcp(struct netconn *conn)
 
- {
 
-  802e0e8:	4601      	mov	r1, r0
 
-   struct tcp_pcb *pcb;
 
-   pcb = conn->pcb.tcp;
 
-   tcp_arg(pcb, conn);
 
-  802e0ea:	4620      	mov	r0, r4
 
-  802e0ec:	f002 f9d4 	bl	8030498 <tcp_arg>
 
-   tcp_recv(pcb, recv_tcp);
 
-  802e0f0:	4620      	mov	r0, r4
 
-  802e0f2:	4909      	ldr	r1, [pc, #36]	; (802e118 <setup_tcp+0x34>)
 
-  802e0f4:	f002 f9d2 	bl	803049c <tcp_recv>
 
-   tcp_sent(pcb, sent_tcp);
 
-  802e0f8:	4620      	mov	r0, r4
 
-  802e0fa:	4908      	ldr	r1, [pc, #32]	; (802e11c <setup_tcp+0x38>)
 
-  802e0fc:	f002 f9d0 	bl	80304a0 <tcp_sent>
 
-   tcp_poll(pcb, poll_tcp, 4);
 
-  802e100:	4620      	mov	r0, r4
 
-  802e102:	4907      	ldr	r1, [pc, #28]	; (802e120 <setup_tcp+0x3c>)
 
-  802e104:	2204      	movs	r2, #4
 
-  802e106:	f002 f9d2 	bl	80304ae <tcp_poll>
 
-   tcp_err(pcb, err_tcp);
 
-  802e10a:	4906      	ldr	r1, [pc, #24]	; (802e124 <setup_tcp+0x40>)
 
-  802e10c:	4620      	mov	r0, r4
 
- }
 
-  802e10e:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
-   pcb = conn->pcb.tcp;
 
-   tcp_arg(pcb, conn);
 
-   tcp_recv(pcb, recv_tcp);
 
-   tcp_sent(pcb, sent_tcp);
 
-   tcp_poll(pcb, poll_tcp, 4);
 
-   tcp_err(pcb, err_tcp);
 
-  802e112:	f002 b9c7 	b.w	80304a4 <tcp_err>
 
-  802e116:	bf00      	nop
 
-  802e118:	0802e529 	.word	0x0802e529
 
-  802e11c:	0802e58f 	.word	0x0802e58f
 
-  802e120:	0802e3ff 	.word	0x0802e3ff
 
-  802e124:	0802e279 	.word	0x0802e279
 
- 0802e128 <do_close_internal>:
 
-  *
 
-  * @param conn the TCP netconn to close
 
-  */
 
- static void
 
- do_close_internal(struct netconn *conn)
 
- {
 
-  802e128:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
-   LWIP_ASSERT("this is for tcp netconns only", (conn->type == NETCONN_TCP));
 
-   LWIP_ASSERT("conn must be in state NETCONN_CLOSE", (conn->state == NETCONN_CLOSE));
 
-   LWIP_ASSERT("pcb already closed", (conn->pcb.tcp != NULL));
 
-   LWIP_ASSERT("conn->current_msg != NULL", conn->current_msg != NULL);
 
-   shut = conn->current_msg->msg.sd.shut;
 
-  802e12a:	6a43      	ldr	r3, [r0, #36]	; 0x24
 
-  802e12c:	7a1d      	ldrb	r5, [r3, #8]
 
-   shut_rx = shut & NETCONN_SHUT_RD;
 
-   shut_tx = shut & NETCONN_SHUT_WR;
 
-   /* shutting down both ends is the same as closing */
 
-   close = shut == NETCONN_SHUT_RDWR;
 
-  802e12e:	1eeb      	subs	r3, r5, #3
 
-   LWIP_ASSERT("pcb already closed", (conn->pcb.tcp != NULL));
 
-   LWIP_ASSERT("conn->current_msg != NULL", conn->current_msg != NULL);
 
-   shut = conn->current_msg->msg.sd.shut;
 
-   shut_rx = shut & NETCONN_SHUT_RD;
 
-   shut_tx = shut & NETCONN_SHUT_WR;
 
-  802e130:	f005 0602 	and.w	r6, r5, #2
 
-   LWIP_ASSERT("conn must be in state NETCONN_CLOSE", (conn->state == NETCONN_CLOSE));
 
-   LWIP_ASSERT("pcb already closed", (conn->pcb.tcp != NULL));
 
-   LWIP_ASSERT("conn->current_msg != NULL", conn->current_msg != NULL);
 
-   shut = conn->current_msg->msg.sd.shut;
 
-   shut_rx = shut & NETCONN_SHUT_RD;
 
-  802e134:	f005 0701 	and.w	r7, r5, #1
 
-   shut_tx = shut & NETCONN_SHUT_WR;
 
-   /* shutting down both ends is the same as closing */
 
-   close = shut == NETCONN_SHUT_RDWR;
 
-  802e138:	425d      	negs	r5, r3
 
-  802e13a:	415d      	adcs	r5, r3
 
-  *
 
-  * @param conn the TCP netconn to close
 
-  */
 
- static void
 
- do_close_internal(struct netconn *conn)
 
- {
 
-  802e13c:	4604      	mov	r4, r0
 
-   LWIP_ASSERT("pcb already closed", (conn->pcb.tcp != NULL));
 
-   LWIP_ASSERT("conn->current_msg != NULL", conn->current_msg != NULL);
 
-   shut = conn->current_msg->msg.sd.shut;
 
-   shut_rx = shut & NETCONN_SHUT_RD;
 
-   shut_tx = shut & NETCONN_SHUT_WR;
 
-  802e13e:	b2f6      	uxtb	r6, r6
 
-   /* shutting down both ends is the same as closing */
 
-   close = shut == NETCONN_SHUT_RDWR;
 
-   /* Set back some callback pointers */
 
-   if (close) {
 
-  802e140:	b11d      	cbz	r5, 802e14a <do_close_internal+0x22>
 
-     tcp_arg(conn->pcb.tcp, NULL);
 
-  802e142:	6840      	ldr	r0, [r0, #4]
 
-  802e144:	2100      	movs	r1, #0
 
-  802e146:	f002 f9a7 	bl	8030498 <tcp_arg>
 
-   }
 
-   if (conn->pcb.tcp->state == LISTEN) {
 
-  802e14a:	6860      	ldr	r0, [r4, #4]
 
-  802e14c:	7e03      	ldrb	r3, [r0, #24]
 
-  802e14e:	2b01      	cmp	r3, #1
 
-  802e150:	d104      	bne.n	802e15c <do_close_internal+0x34>
 
-     tcp_accept(conn->pcb.tcp, NULL);
 
-  802e152:	2100      	movs	r1, #0
 
-  802e154:	f002 f9a9 	bl	80304aa <tcp_accept>
 
-       tcp_poll(conn->pcb.tcp, NULL, 4);
 
-       tcp_err(conn->pcb.tcp, NULL);
 
-     }
 
-   }
 
-   /* Try to close the connection */
 
-   if (close) {
 
-  802e158:	b9bd      	cbnz	r5, 802e18a <do_close_internal+0x62>
 
-  802e15a:	e01a      	b.n	802e192 <do_close_internal+0x6a>
 
-   }
 
-   if (conn->pcb.tcp->state == LISTEN) {
 
-     tcp_accept(conn->pcb.tcp, NULL);
 
-   } else {
 
-     /* some callbacks have to be reset if tcp_close is not successful */
 
-     if (shut_rx) {
 
-  802e15c:	b137      	cbz	r7, 802e16c <do_close_internal+0x44>
 
-       tcp_recv(conn->pcb.tcp, NULL);
 
-  802e15e:	2100      	movs	r1, #0
 
-  802e160:	f002 f99c 	bl	803049c <tcp_recv>
 
-       tcp_accept(conn->pcb.tcp, NULL);
 
-  802e164:	6860      	ldr	r0, [r4, #4]
 
-  802e166:	2100      	movs	r1, #0
 
-  802e168:	f002 f99f 	bl	80304aa <tcp_accept>
 
-     }
 
-     if (shut_tx) {
 
-  802e16c:	b11e      	cbz	r6, 802e176 <do_close_internal+0x4e>
 
-       tcp_sent(conn->pcb.tcp, NULL);
 
-  802e16e:	6860      	ldr	r0, [r4, #4]
 
-  802e170:	2100      	movs	r1, #0
 
-  802e172:	f002 f995 	bl	80304a0 <tcp_sent>
 
-     }
 
-     if (close) {
 
-  802e176:	b165      	cbz	r5, 802e192 <do_close_internal+0x6a>
 
-       tcp_poll(conn->pcb.tcp, NULL, 4);
 
-  802e178:	6860      	ldr	r0, [r4, #4]
 
-  802e17a:	2100      	movs	r1, #0
 
-  802e17c:	2204      	movs	r2, #4
 
-  802e17e:	f002 f996 	bl	80304ae <tcp_poll>
 
-       tcp_err(conn->pcb.tcp, NULL);
 
-  802e182:	6860      	ldr	r0, [r4, #4]
 
-  802e184:	2100      	movs	r1, #0
 
-  802e186:	f002 f98d 	bl	80304a4 <tcp_err>
 
-     }
 
-   }
 
-   /* Try to close the connection */
 
-   if (close) {
 
-     err = tcp_close(conn->pcb.tcp);
 
-  802e18a:	6860      	ldr	r0, [r4, #4]
 
-  802e18c:	f002 fc48 	bl	8030a20 <tcp_close>
 
-  802e190:	e004      	b.n	802e19c <do_close_internal+0x74>
 
-   } else {
 
-     err = tcp_shutdown(conn->pcb.tcp, shut_rx, shut_tx);
 
-  802e192:	6860      	ldr	r0, [r4, #4]
 
-  802e194:	4639      	mov	r1, r7
 
-  802e196:	4632      	mov	r2, r6
 
-  802e198:	f002 fc1c 	bl	80309d4 <tcp_shutdown>
 
-  802e19c:	4602      	mov	r2, r0
 
-   }
 
-   if (err == ERR_OK) {
 
-  802e19e:	b9f0      	cbnz	r0, 802e1de <do_close_internal+0xb6>
 
-     /* Closing succeeded */
 
-     conn->current_msg->err = ERR_OK;
 
-  802e1a0:	6a63      	ldr	r3, [r4, #36]	; 0x24
 
-  802e1a2:	7118      	strb	r0, [r3, #4]
 
-     conn->current_msg = NULL;
 
-  802e1a4:	6260      	str	r0, [r4, #36]	; 0x24
 
-     conn->state = NETCONN_NONE;
 
-  802e1a6:	7060      	strb	r0, [r4, #1]
 
-     if (close) {
 
-  802e1a8:	b12d      	cbz	r5, 802e1b6 <do_close_internal+0x8e>
 
-       /* Set back some callback pointers as conn is going away */
 
-       conn->pcb.tcp = NULL;
 
-       /* Trigger select() in socket layer. Make sure everybody notices activity
 
-        on the connection, error first! */
 
-       API_EVENT(conn, NETCONN_EVT_ERROR, 0);
 
-  802e1aa:	6aa3      	ldr	r3, [r4, #40]	; 0x28
 
-     conn->current_msg->err = ERR_OK;
 
-     conn->current_msg = NULL;
 
-     conn->state = NETCONN_NONE;
 
-     if (close) {
 
-       /* Set back some callback pointers as conn is going away */
 
-       conn->pcb.tcp = NULL;
 
-  802e1ac:	6060      	str	r0, [r4, #4]
 
-       /* Trigger select() in socket layer. Make sure everybody notices activity
 
-        on the connection, error first! */
 
-       API_EVENT(conn, NETCONN_EVT_ERROR, 0);
 
-  802e1ae:	b113      	cbz	r3, 802e1b6 <do_close_internal+0x8e>
 
-  802e1b0:	4620      	mov	r0, r4
 
-  802e1b2:	2104      	movs	r1, #4
 
-  802e1b4:	4798      	blx	r3
 
-     }
 
-     if (shut_rx) {
 
-  802e1b6:	b12f      	cbz	r7, 802e1c4 <do_close_internal+0x9c>
 
-       API_EVENT(conn, NETCONN_EVT_RCVPLUS, 0);
 
-  802e1b8:	6aa3      	ldr	r3, [r4, #40]	; 0x28
 
-  802e1ba:	b11b      	cbz	r3, 802e1c4 <do_close_internal+0x9c>
 
-  802e1bc:	2100      	movs	r1, #0
 
-  802e1be:	4620      	mov	r0, r4
 
-  802e1c0:	460a      	mov	r2, r1
 
-  802e1c2:	4798      	blx	r3
 
-     }
 
-     if (shut_tx) {
 
-  802e1c4:	b12e      	cbz	r6, 802e1d2 <do_close_internal+0xaa>
 
-       API_EVENT(conn, NETCONN_EVT_SENDPLUS, 0);
 
-  802e1c6:	6aa3      	ldr	r3, [r4, #40]	; 0x28
 
-  802e1c8:	b11b      	cbz	r3, 802e1d2 <do_close_internal+0xaa>
 
-  802e1ca:	4620      	mov	r0, r4
 
-  802e1cc:	2102      	movs	r1, #2
 
-  802e1ce:	2200      	movs	r2, #0
 
-  802e1d0:	4798      	blx	r3
 
-     }
 
-     /* wake up the application task */
 
-     sys_sem_signal(&conn->op_completed);
 
-  802e1d2:	f104 000c 	add.w	r0, r4, #12
 
-     tcp_arg(conn->pcb.tcp, conn);
 
-     /* don't restore recv callback: we don't want to receive any more data */
 
-   }
 
-   /* If closing didn't succeed, we get called again either
 
-      from poll_tcp or from sent_tcp */
 
- }
 
-  802e1d6:	e8bd 40f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, lr}
 
-     }
 
-     if (shut_tx) {
 
-       API_EVENT(conn, NETCONN_EVT_SENDPLUS, 0);
 
-     }
 
-     /* wake up the application task */
 
-     sys_sem_signal(&conn->op_completed);
 
-  802e1da:	f009 bc45 	b.w	8037a68 <sys_sem_signal>
 
-   } else {
 
-     /* Closing failed, restore some of the callbacks */
 
-     /* Closing of listen pcb will never fail! */
 
-     LWIP_ASSERT("Closing a listen pcb may not fail!", (conn->pcb.tcp->state != LISTEN));
 
-     tcp_sent(conn->pcb.tcp, sent_tcp);
 
-  802e1de:	6860      	ldr	r0, [r4, #4]
 
-  802e1e0:	4908      	ldr	r1, [pc, #32]	; (802e204 <do_close_internal+0xdc>)
 
-  802e1e2:	f002 f95d 	bl	80304a0 <tcp_sent>
 
-     tcp_poll(conn->pcb.tcp, poll_tcp, 4);
 
-  802e1e6:	6860      	ldr	r0, [r4, #4]
 
-  802e1e8:	4907      	ldr	r1, [pc, #28]	; (802e208 <do_close_internal+0xe0>)
 
-  802e1ea:	2204      	movs	r2, #4
 
-  802e1ec:	f002 f95f 	bl	80304ae <tcp_poll>
 
-     tcp_err(conn->pcb.tcp, err_tcp);
 
-  802e1f0:	6860      	ldr	r0, [r4, #4]
 
-  802e1f2:	4906      	ldr	r1, [pc, #24]	; (802e20c <do_close_internal+0xe4>)
 
-  802e1f4:	f002 f956 	bl	80304a4 <tcp_err>
 
-     tcp_arg(conn->pcb.tcp, conn);
 
-  802e1f8:	6860      	ldr	r0, [r4, #4]
 
-  802e1fa:	4621      	mov	r1, r4
 
-     /* don't restore recv callback: we don't want to receive any more data */
 
-   }
 
-   /* If closing didn't succeed, we get called again either
 
-      from poll_tcp or from sent_tcp */
 
- }
 
-  802e1fc:	e8bd 40f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, lr}
 
-     /* Closing of listen pcb will never fail! */
 
-     LWIP_ASSERT("Closing a listen pcb may not fail!", (conn->pcb.tcp->state != LISTEN));
 
-     tcp_sent(conn->pcb.tcp, sent_tcp);
 
-     tcp_poll(conn->pcb.tcp, poll_tcp, 4);
 
-     tcp_err(conn->pcb.tcp, err_tcp);
 
-     tcp_arg(conn->pcb.tcp, conn);
 
-  802e200:	f002 b94a 	b.w	8030498 <tcp_arg>
 
-  802e204:	0802e58f 	.word	0x0802e58f
 
-  802e208:	0802e3ff 	.word	0x0802e3ff
 
-  802e20c:	0802e279 	.word	0x0802e279
 
- 0802e210 <do_connected>:
 
-  *
 
-  * @see tcp.h (struct tcp_pcb.connected) for parameters and return values
 
-  */
 
- static err_t
 
- do_connected(void *arg, struct tcp_pcb *pcb, err_t err)
 
- {
 
-  802e210:	b538      	push	{r3, r4, r5, lr}
 
-   LWIP_UNUSED_ARG(pcb);
 
-   conn = (struct netconn *)arg;
 
-   if (conn == NULL) {
 
-  802e212:	4604      	mov	r4, r0
 
-  802e214:	b358      	cbz	r0, 802e26e <do_connected+0x5e>
 
-   LWIP_ASSERT("conn->state == NETCONN_CONNECT", conn->state == NETCONN_CONNECT);
 
-   LWIP_ASSERT("(conn->current_msg != NULL) || conn->in_non_blocking_connect",
 
-     (conn->current_msg != NULL) || IN_NONBLOCKING_CONNECT(conn));
 
-   if (conn->current_msg != NULL) {
 
-  802e216:	6a43      	ldr	r3, [r0, #36]	; 0x24
 
-  802e218:	b103      	cbz	r3, 802e21c <do_connected+0xc>
 
-     conn->current_msg->err = err;
 
-  802e21a:	711a      	strb	r2, [r3, #4]
 
-   }
 
-   if ((conn->type == NETCONN_TCP) && (err == ERR_OK)) {
 
-  802e21c:	7823      	ldrb	r3, [r4, #0]
 
-  802e21e:	2b10      	cmp	r3, #16
 
-  802e220:	d103      	bne.n	802e22a <do_connected+0x1a>
 
-  802e222:	b912      	cbnz	r2, 802e22a <do_connected+0x1a>
 
-     setup_tcp(conn);
 
-  802e224:	4620      	mov	r0, r4
 
-  802e226:	f7ff ff5d 	bl	802e0e4 <setup_tcp>
 
-   }
 
-   was_blocking = !IN_NONBLOCKING_CONNECT(conn);
 
-  802e22a:	7f23      	ldrb	r3, [r4, #28]
 
-  802e22c:	f083 0504 	eor.w	r5, r3, #4
 
-   SET_NONBLOCKING_CONNECT(conn, 0);
 
-  802e230:	f023 0304 	bic.w	r3, r3, #4
 
-  802e234:	7723      	strb	r3, [r4, #28]
 
-     conn->current_msg->err = err;
 
-   }
 
-   if ((conn->type == NETCONN_TCP) && (err == ERR_OK)) {
 
-     setup_tcp(conn);
 
-   }
 
-   was_blocking = !IN_NONBLOCKING_CONNECT(conn);
 
-  802e236:	f3c5 0580 	ubfx	r5, r5, #2, #1
 
-   SET_NONBLOCKING_CONNECT(conn, 0);
 
-   conn->current_msg = NULL;
 
-  802e23a:	2300      	movs	r3, #0
 
-  802e23c:	6263      	str	r3, [r4, #36]	; 0x24
 
-   conn->state = NETCONN_NONE;
 
-  802e23e:	7063      	strb	r3, [r4, #1]
 
-   if (!was_blocking) {
 
-  802e240:	b945      	cbnz	r5, 802e254 <do_connected+0x44>
 
-     NETCONN_SET_SAFE_ERR(conn, ERR_OK);
 
-  802e242:	f009 fc41 	bl	8037ac8 <sys_arch_protect>
 
-  802e246:	f994 3008 	ldrsb.w	r3, [r4, #8]
 
-  802e24a:	3309      	adds	r3, #9
 
-  802e24c:	bfa8      	it	ge
 
-  802e24e:	7225      	strbge	r5, [r4, #8]
 
-  802e250:	f009 fc44 	bl	8037adc <sys_arch_unprotect>
 
-   }
 
-   API_EVENT(conn, NETCONN_EVT_SENDPLUS, 0);
 
-  802e254:	6aa3      	ldr	r3, [r4, #40]	; 0x28
 
-  802e256:	b11b      	cbz	r3, 802e260 <do_connected+0x50>
 
-  802e258:	4620      	mov	r0, r4
 
-  802e25a:	2102      	movs	r1, #2
 
-  802e25c:	2200      	movs	r2, #0
 
-  802e25e:	4798      	blx	r3
 
-   if (was_blocking) {
 
-  802e260:	b13d      	cbz	r5, 802e272 <do_connected+0x62>
 
-     sys_sem_signal(&conn->op_completed);
 
-  802e262:	f104 000c 	add.w	r0, r4, #12
 
-  802e266:	f009 fbff 	bl	8037a68 <sys_sem_signal>
 
-   }
 
-   return ERR_OK;
 
-  802e26a:	2000      	movs	r0, #0
 
-  802e26c:	e002      	b.n	802e274 <do_connected+0x64>
 
-   LWIP_UNUSED_ARG(pcb);
 
-   conn = (struct netconn *)arg;
 
-   if (conn == NULL) {
 
-     return ERR_VAL;
 
-  802e26e:	20fa      	movs	r0, #250	; 0xfa
 
-  802e270:	e000      	b.n	802e274 <do_connected+0x64>
 
-   API_EVENT(conn, NETCONN_EVT_SENDPLUS, 0);
 
-   if (was_blocking) {
 
-     sys_sem_signal(&conn->op_completed);
 
-   }
 
-   return ERR_OK;
 
-  802e272:	4628      	mov	r0, r5
 
- }
 
-  802e274:	b240      	sxtb	r0, r0
 
-  802e276:	bd38      	pop	{r3, r4, r5, pc}
 
- 0802e278 <err_tcp>:
 
-  *
 
-  * @see tcp.h (struct tcp_pcb.err) for parameters
 
-  */
 
- static void
 
- err_tcp(void *arg, err_t err)
 
- {
 
-  802e278:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
-  802e27a:	4604      	mov	r4, r0
 
-   SYS_ARCH_DECL_PROTECT(lev);
 
-   conn = (struct netconn *)arg;
 
-   LWIP_ASSERT("conn != NULL", (conn != NULL));
 
-   conn->pcb.tcp = NULL;
 
-  802e27c:	2500      	movs	r5, #0
 
-  *
 
-  * @see tcp.h (struct tcp_pcb.err) for parameters
 
-  */
 
- static void
 
- err_tcp(void *arg, err_t err)
 
- {
 
-  802e27e:	460e      	mov	r6, r1
 
-   SYS_ARCH_DECL_PROTECT(lev);
 
-   conn = (struct netconn *)arg;
 
-   LWIP_ASSERT("conn != NULL", (conn != NULL));
 
-   conn->pcb.tcp = NULL;
 
-  802e280:	6045      	str	r5, [r0, #4]
 
-   /* no check since this is always fatal! */
 
-   SYS_ARCH_PROTECT(lev);
 
-  802e282:	f009 fc21 	bl	8037ac8 <sys_arch_protect>
 
-   conn->last_err = err;
 
-  802e286:	7226      	strb	r6, [r4, #8]
 
-   SYS_ARCH_UNPROTECT(lev);
 
-  802e288:	f009 fc28 	bl	8037adc <sys_arch_unprotect>
 
-   old_state = conn->state;
 
-   conn->state = NETCONN_NONE;
 
-   /* Notify the user layer about a connection error. Used to signal
 
-      select. */
 
-   API_EVENT(conn, NETCONN_EVT_ERROR, 0);
 
-  802e28c:	6aa3      	ldr	r3, [r4, #40]	; 0x28
 
-   SYS_ARCH_PROTECT(lev);
 
-   conn->last_err = err;
 
-   SYS_ARCH_UNPROTECT(lev);
 
-   /* reset conn->state now before waking up other threads */
 
-   old_state = conn->state;
 
-  802e28e:	7867      	ldrb	r7, [r4, #1]
 
-   conn->state = NETCONN_NONE;
 
-  802e290:	7065      	strb	r5, [r4, #1]
 
-   /* Notify the user layer about a connection error. Used to signal
 
-      select. */
 
-   API_EVENT(conn, NETCONN_EVT_ERROR, 0);
 
-  802e292:	b11b      	cbz	r3, 802e29c <err_tcp+0x24>
 
-  802e294:	4620      	mov	r0, r4
 
-  802e296:	2104      	movs	r1, #4
 
-  802e298:	462a      	mov	r2, r5
 
-  802e29a:	4798      	blx	r3
 
-   /* Try to release selects pending on 'read' or 'write', too.
 
-      They will get an error if they actually try to read or write. */
 
-   API_EVENT(conn, NETCONN_EVT_RCVPLUS, 0);
 
-  802e29c:	6aa3      	ldr	r3, [r4, #40]	; 0x28
 
-  802e29e:	b11b      	cbz	r3, 802e2a8 <err_tcp+0x30>
 
-  802e2a0:	2100      	movs	r1, #0
 
-  802e2a2:	4620      	mov	r0, r4
 
-  802e2a4:	460a      	mov	r2, r1
 
-  802e2a6:	4798      	blx	r3
 
-   API_EVENT(conn, NETCONN_EVT_SENDPLUS, 0);
 
-  802e2a8:	6aa3      	ldr	r3, [r4, #40]	; 0x28
 
-  802e2aa:	b11b      	cbz	r3, 802e2b4 <err_tcp+0x3c>
 
-  802e2ac:	4620      	mov	r0, r4
 
-  802e2ae:	2102      	movs	r1, #2
 
-  802e2b0:	2200      	movs	r2, #0
 
-  802e2b2:	4798      	blx	r3
 
-   /* pass NULL-message to recvmbox to wake up pending recv */
 
-   if (sys_mbox_valid(&conn->recvmbox)) {
 
-  802e2b4:	6923      	ldr	r3, [r4, #16]
 
-  802e2b6:	b123      	cbz	r3, 802e2c2 <err_tcp+0x4a>
 
-     /* use trypost to prevent deadlock */
 
-     sys_mbox_trypost(&conn->recvmbox, NULL);
 
-  802e2b8:	f104 0010 	add.w	r0, r4, #16
 
-  802e2bc:	2100      	movs	r1, #0
 
-  802e2be:	f009 fb0b 	bl	80378d8 <sys_mbox_trypost>
 
-   }
 
-   /* pass NULL-message to acceptmbox to wake up pending accept */
 
-   if (sys_mbox_valid(&conn->acceptmbox)) {
 
-  802e2c2:	6963      	ldr	r3, [r4, #20]
 
-  802e2c4:	b123      	cbz	r3, 802e2d0 <err_tcp+0x58>
 
-     /* use trypost to preven deadlock */
 
-     sys_mbox_trypost(&conn->acceptmbox, NULL);
 
-  802e2c6:	f104 0014 	add.w	r0, r4, #20
 
-  802e2ca:	2100      	movs	r1, #0
 
-  802e2cc:	f009 fb04 	bl	80378d8 <sys_mbox_trypost>
 
-  802e2d0:	2f04      	cmp	r7, #4
 
-  802e2d2:	d815      	bhi.n	802e300 <err_tcp+0x88>
 
-  802e2d4:	b27f      	sxtb	r7, r7
 
-  802e2d6:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
 
-  802e2da:	40bb      	lsls	r3, r7
 
-  802e2dc:	d510      	bpl.n	802e300 <err_tcp+0x88>
 
-   if ((old_state == NETCONN_WRITE) || (old_state == NETCONN_CLOSE) ||
 
-       (old_state == NETCONN_CONNECT)) {
 
-     /* calling do_writemore/do_close_internal is not necessary
 
-        since the pcb has already been deleted! */
 
-     int was_nonblocking_connect = IN_NONBLOCKING_CONNECT(conn);
 
-  802e2de:	7f23      	ldrb	r3, [r4, #28]
 
-     SET_NONBLOCKING_CONNECT(conn, 0);
 
-  802e2e0:	f023 0204 	bic.w	r2, r3, #4
 
-     if (!was_nonblocking_connect) {
 
-  802e2e4:	f003 0304 	and.w	r3, r3, #4
 
-  802e2e8:	b2db      	uxtb	r3, r3
 
-   if ((old_state == NETCONN_WRITE) || (old_state == NETCONN_CLOSE) ||
 
-       (old_state == NETCONN_CONNECT)) {
 
-     /* calling do_writemore/do_close_internal is not necessary
 
-        since the pcb has already been deleted! */
 
-     int was_nonblocking_connect = IN_NONBLOCKING_CONNECT(conn);
 
-     SET_NONBLOCKING_CONNECT(conn, 0);
 
-  802e2ea:	7722      	strb	r2, [r4, #28]
 
-     if (!was_nonblocking_connect) {
 
-  802e2ec:	b943      	cbnz	r3, 802e300 <err_tcp+0x88>
 
-       /* set error return code */
 
-       LWIP_ASSERT("conn->current_msg != NULL", conn->current_msg != NULL);
 
-       conn->current_msg->err = err;
 
-  802e2ee:	6a62      	ldr	r2, [r4, #36]	; 0x24
 
-       conn->current_msg = NULL;
 
-       /* wake up the waiting task */
 
-       sys_sem_signal(&conn->op_completed);
 
-  802e2f0:	f104 000c 	add.w	r0, r4, #12
 
-     SET_NONBLOCKING_CONNECT(conn, 0);
 
-     if (!was_nonblocking_connect) {
 
-       /* set error return code */
 
-       LWIP_ASSERT("conn->current_msg != NULL", conn->current_msg != NULL);
 
-       conn->current_msg->err = err;
 
-  802e2f4:	7116      	strb	r6, [r2, #4]
 
-       conn->current_msg = NULL;
 
-  802e2f6:	6263      	str	r3, [r4, #36]	; 0x24
 
-       sys_sem_signal(&conn->op_completed);
 
-     }
 
-   } else {
 
-     LWIP_ASSERT("conn->current_msg == NULL", conn->current_msg == NULL);
 
-   }
 
- }
 
-  802e2f8:	e8bd 40f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, lr}
 
-       /* set error return code */
 
-       LWIP_ASSERT("conn->current_msg != NULL", conn->current_msg != NULL);
 
-       conn->current_msg->err = err;
 
-       conn->current_msg = NULL;
 
-       /* wake up the waiting task */
 
-       sys_sem_signal(&conn->op_completed);
 
-  802e2fc:	f009 bbb4 	b.w	8037a68 <sys_sem_signal>
 
-  802e300:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 
- 0802e302 <do_writemore>:
 
-  * @return ERR_OK
 
-  *         ERR_MEM if LWIP_TCPIP_CORE_LOCKING=1 and sending hasn't yet finished
 
-  */
 
- static err_t
 
- do_writemore(struct netconn *conn)
 
- {
 
-  802e302:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
-   err_t err;
 
-   void *dataptr;
 
-   u16_t len, available;
 
-   u8_t write_finished = 0;
 
-   size_t diff;
 
-   u8_t dontblock = netconn_is_nonblocking(conn) ||
 
-  802e304:	7f03      	ldrb	r3, [r0, #28]
 
-  802e306:	f003 0302 	and.w	r3, r3, #2
 
-  802e30a:	b2db      	uxtb	r3, r3
 
-  * @return ERR_OK
 
-  *         ERR_MEM if LWIP_TCPIP_CORE_LOCKING=1 and sending hasn't yet finished
 
-  */
 
- static err_t
 
- do_writemore(struct netconn *conn)
 
- {
 
-  802e30c:	4604      	mov	r4, r0
 
-   err_t err;
 
-   void *dataptr;
 
-   u16_t len, available;
 
-   u8_t write_finished = 0;
 
-   size_t diff;
 
-   u8_t dontblock = netconn_is_nonblocking(conn) ||
 
-  802e30e:	b923      	cbnz	r3, 802e31a <do_writemore+0x18>
 
-        (conn->current_msg->msg.w.apiflags & NETCONN_DONTBLOCK);
 
-  802e310:	6a43      	ldr	r3, [r0, #36]	; 0x24
 
-   err_t err;
 
-   void *dataptr;
 
-   u16_t len, available;
 
-   u8_t write_finished = 0;
 
-   size_t diff;
 
-   u8_t dontblock = netconn_is_nonblocking(conn) ||
 
-  802e312:	7c1f      	ldrb	r7, [r3, #16]
 
-  802e314:	f3c7 0780 	ubfx	r7, r7, #2, #1
 
-  802e318:	e000      	b.n	802e31c <do_writemore+0x1a>
 
-  802e31a:	2701      	movs	r7, #1
 
-        (conn->current_msg->msg.w.apiflags & NETCONN_DONTBLOCK);
 
-   u8_t apiflags = conn->current_msg->msg.w.apiflags;
 
-  802e31c:	6a62      	ldr	r2, [r4, #36]	; 0x24
 
-       conn->current_msg->msg.w.len = conn->write_offset;
 
-     }
 
-   } else
 
- #endif /* LWIP_SO_SNDTIMEO */
 
-   {
 
-     dataptr = (u8_t*)conn->current_msg->msg.w.dataptr + conn->write_offset;
 
-  802e31e:	6a20      	ldr	r0, [r4, #32]
 
-   u16_t len, available;
 
-   u8_t write_finished = 0;
 
-   size_t diff;
 
-   u8_t dontblock = netconn_is_nonblocking(conn) ||
 
-        (conn->current_msg->msg.w.apiflags & NETCONN_DONTBLOCK);
 
-   u8_t apiflags = conn->current_msg->msg.w.apiflags;
 
-  802e320:	7c13      	ldrb	r3, [r2, #16]
 
-       conn->current_msg->msg.w.len = conn->write_offset;
 
-     }
 
-   } else
 
- #endif /* LWIP_SO_SNDTIMEO */
 
-   {
 
-     dataptr = (u8_t*)conn->current_msg->msg.w.dataptr + conn->write_offset;
 
-  802e322:	6891      	ldr	r1, [r2, #8]
 
-     diff = conn->current_msg->msg.w.len - conn->write_offset;
 
-  802e324:	68d2      	ldr	r2, [r2, #12]
 
-     if (diff > 0xffffUL) { /* max_u16_t */
 
-  802e326:	f64f 75ff 	movw	r5, #65535	; 0xffff
 
-     }
 
-   } else
 
- #endif /* LWIP_SO_SNDTIMEO */
 
-   {
 
-     dataptr = (u8_t*)conn->current_msg->msg.w.dataptr + conn->write_offset;
 
-     diff = conn->current_msg->msg.w.len - conn->write_offset;
 
-  802e32a:	1a12      	subs	r2, r2, r0
 
-       conn->current_msg->msg.w.len = conn->write_offset;
 
-     }
 
-   } else
 
- #endif /* LWIP_SO_SNDTIMEO */
 
-   {
 
-     dataptr = (u8_t*)conn->current_msg->msg.w.dataptr + conn->write_offset;
 
-  802e32c:	1809      	adds	r1, r1, r0
 
- #endif
 
-       apiflags |= TCP_WRITE_FLAG_MORE;
 
-     } else {
 
-       len = (u16_t)diff;
 
-     }
 
-     available = tcp_sndbuf(conn->pcb.tcp);
 
-  802e32e:	6860      	ldr	r0, [r4, #4]
 
-   } else
 
- #endif /* LWIP_SO_SNDTIMEO */
 
-   {
 
-     dataptr = (u8_t*)conn->current_msg->msg.w.dataptr + conn->write_offset;
 
-     diff = conn->current_msg->msg.w.len - conn->write_offset;
 
-     if (diff > 0xffffUL) { /* max_u16_t */
 
-  802e330:	42aa      	cmp	r2, r5
 
- #if LWIP_TCPIP_CORE_LOCKING
 
-       conn->flags |= NETCONN_FLAG_WRITE_DELAYED;
 
- #endif
 
-       apiflags |= TCP_WRITE_FLAG_MORE;
 
-     } else {
 
-       len = (u16_t)diff;
 
-  802e332:	bf98      	it	ls
 
-  802e334:	b295      	uxthls	r5, r2
 
-     }
 
-     available = tcp_sndbuf(conn->pcb.tcp);
 
-  802e336:	f8b0 2066 	ldrh.w	r2, [r0, #102]	; 0x66
 
-     if (diff > 0xffffUL) { /* max_u16_t */
 
-       len = 0xffff;
 
- #if LWIP_TCPIP_CORE_LOCKING
 
-       conn->flags |= NETCONN_FLAG_WRITE_DELAYED;
 
- #endif
 
-       apiflags |= TCP_WRITE_FLAG_MORE;
 
-  802e33a:	bf88      	it	hi
 
-  802e33c:	f043 0302 	orrhi.w	r3, r3, #2
 
-     } else {
 
-       len = (u16_t)diff;
 
-     }
 
-     available = tcp_sndbuf(conn->pcb.tcp);
 
-     if (available < len) {
 
-  802e340:	42aa      	cmp	r2, r5
 
-   err_t err;
 
-   void *dataptr;
 
-   u16_t len, available;
 
-   u8_t write_finished = 0;
 
-   size_t diff;
 
-   u8_t dontblock = netconn_is_nonblocking(conn) ||
 
-  802e342:	b2ff      	uxtb	r7, r7
 
-       apiflags |= TCP_WRITE_FLAG_MORE;
 
-     } else {
 
-       len = (u16_t)diff;
 
-     }
 
-     available = tcp_sndbuf(conn->pcb.tcp);
 
-     if (available < len) {
 
-  802e344:	d206      	bcs.n	802e354 <do_writemore+0x52>
 
-       /* don't try to write more than sendbuf */
 
-       len = available;
 
-       if (dontblock){ 
 
-  802e346:	b117      	cbz	r7, 802e34e <do_writemore+0x4c>
 
-         if (!len) {
 
-  802e348:	4615      	mov	r5, r2
 
-  802e34a:	b16a      	cbz	r2, 802e368 <do_writemore+0x66>
 
-  802e34c:	e002      	b.n	802e354 <do_writemore+0x52>
 
-         }
 
-       } else {
 
- #if LWIP_TCPIP_CORE_LOCKING
 
-         conn->flags |= NETCONN_FLAG_WRITE_DELAYED;
 
- #endif
 
-         apiflags |= TCP_WRITE_FLAG_MORE;
 
-  802e34e:	f043 0302 	orr.w	r3, r3, #2
 
-  802e352:	4615      	mov	r5, r2
 
-       }
 
-     }
 
-     LWIP_ASSERT("do_writemore: invalid length!", ((conn->write_offset + len) <= conn->current_msg->msg.w.len));
 
-     err = tcp_write(conn->pcb.tcp, dataptr, len, apiflags);
 
-  802e354:	462a      	mov	r2, r5
 
-  802e356:	f003 fca4 	bl	8031ca2 <tcp_write>
 
-     /* if OK or memory error, check available space */
 
-     if ((err == ERR_OK) || (err == ERR_MEM)) {
 
-  802e35a:	1c43      	adds	r3, r0, #1
 
-  802e35c:	b2db      	uxtb	r3, r3
 
-  802e35e:	2b01      	cmp	r3, #1
 
- #endif
 
-         apiflags |= TCP_WRITE_FLAG_MORE;
 
-       }
 
-     }
 
-     LWIP_ASSERT("do_writemore: invalid length!", ((conn->write_offset + len) <= conn->current_msg->msg.w.len));
 
-     err = tcp_write(conn->pcb.tcp, dataptr, len, apiflags);
 
-  802e360:	4606      	mov	r6, r0
 
-     /* if OK or memory error, check available space */
 
-     if ((err == ERR_OK) || (err == ERR_MEM)) {
 
-  802e362:	d83e      	bhi.n	802e3e2 <do_writemore+0xe0>
 
- err_mem:
 
-       if (dontblock && (len < conn->current_msg->msg.w.len)) {
 
-  802e364:	b187      	cbz	r7, 802e388 <do_writemore+0x86>
 
-  802e366:	e000      	b.n	802e36a <do_writemore+0x68>
 
-     if (available < len) {
 
-       /* don't try to write more than sendbuf */
 
-       len = available;
 
-       if (dontblock){ 
 
-         if (!len) {
 
-           err = ERR_WOULDBLOCK;
 
-  802e368:	26f9      	movs	r6, #249	; 0xf9
 
-     LWIP_ASSERT("do_writemore: invalid length!", ((conn->write_offset + len) <= conn->current_msg->msg.w.len));
 
-     err = tcp_write(conn->pcb.tcp, dataptr, len, apiflags);
 
-     /* if OK or memory error, check available space */
 
-     if ((err == ERR_OK) || (err == ERR_MEM)) {
 
- err_mem:
 
-       if (dontblock && (len < conn->current_msg->msg.w.len)) {
 
-  802e36a:	6a63      	ldr	r3, [r4, #36]	; 0x24
 
-  802e36c:	68db      	ldr	r3, [r3, #12]
 
-  802e36e:	429d      	cmp	r5, r3
 
-  802e370:	d20a      	bcs.n	802e388 <do_writemore+0x86>
 
-         /* non-blocking write did not write everything: mark the pcb non-writable
 
-            and let poll_tcp check writable space to mark the pcb writable again */
 
-         API_EVENT(conn, NETCONN_EVT_SENDMINUS, len);
 
-  802e372:	6aa3      	ldr	r3, [r4, #40]	; 0x28
 
-  802e374:	b11b      	cbz	r3, 802e37e <do_writemore+0x7c>
 
-  802e376:	4620      	mov	r0, r4
 
-  802e378:	2103      	movs	r1, #3
 
-  802e37a:	462a      	mov	r2, r5
 
-  802e37c:	4798      	blx	r3
 
-         conn->flags |= NETCONN_FLAG_CHECK_WRITESPACE;
 
-  802e37e:	7f23      	ldrb	r3, [r4, #28]
 
-  802e380:	f043 0310 	orr.w	r3, r3, #16
 
-  802e384:	7723      	strb	r3, [r4, #28]
 
-  802e386:	e010      	b.n	802e3aa <do_writemore+0xa8>
 
-       } else if ((tcp_sndbuf(conn->pcb.tcp) <= TCP_SNDLOWAT) ||
 
-  802e388:	6863      	ldr	r3, [r4, #4]
 
-  802e38a:	f8b3 1066 	ldrh.w	r1, [r3, #102]	; 0x66
 
-  802e38e:	f243 3254 	movw	r2, #13140	; 0x3354
 
-  802e392:	4291      	cmp	r1, r2
 
-  802e394:	d903      	bls.n	802e39e <do_writemore+0x9c>
 
-  802e396:	f8b3 3068 	ldrh.w	r3, [r3, #104]	; 0x68
 
-  802e39a:	2b23      	cmp	r3, #35	; 0x23
 
-  802e39c:	d905      	bls.n	802e3aa <do_writemore+0xa8>
 
-                  (tcp_sndqueuelen(conn->pcb.tcp) >= TCP_SNDQUEUELOWAT)) {
 
-         /* The queued byte- or pbuf-count exceeds the configured low-water limit,
 
-            let select mark this pcb as non-writable. */
 
-         API_EVENT(conn, NETCONN_EVT_SENDMINUS, len);
 
-  802e39e:	6aa3      	ldr	r3, [r4, #40]	; 0x28
 
-  802e3a0:	b11b      	cbz	r3, 802e3aa <do_writemore+0xa8>
 
-  802e3a2:	4620      	mov	r0, r4
 
-  802e3a4:	2103      	movs	r1, #3
 
-  802e3a6:	462a      	mov	r2, r5
 
-  802e3a8:	4798      	blx	r3
 
-       }
 
-     }
 
-     if (err == ERR_OK) {
 
-  802e3aa:	b996      	cbnz	r6, 802e3d2 <do_writemore+0xd0>
 
-       conn->write_offset += len;
 
-  802e3ac:	6a23      	ldr	r3, [r4, #32]
 
-  802e3ae:	18ed      	adds	r5, r5, r3
 
-       if ((conn->write_offset == conn->current_msg->msg.w.len) || dontblock) {
 
-  802e3b0:	6a63      	ldr	r3, [r4, #36]	; 0x24
 
-         API_EVENT(conn, NETCONN_EVT_SENDMINUS, len);
 
-       }
 
-     }
 
-     if (err == ERR_OK) {
 
-       conn->write_offset += len;
 
-  802e3b2:	6225      	str	r5, [r4, #32]
 
-       if ((conn->write_offset == conn->current_msg->msg.w.len) || dontblock) {
 
-  802e3b4:	68da      	ldr	r2, [r3, #12]
 
-  802e3b6:	4295      	cmp	r5, r2
 
-  802e3b8:	4632      	mov	r2, r6
 
-  802e3ba:	d000      	beq.n	802e3be <do_writemore+0xbc>
 
-  802e3bc:	b11f      	cbz	r7, 802e3c6 <do_writemore+0xc4>
 
-         /* return sent length */
 
-         conn->current_msg->msg.w.len = conn->write_offset;
 
-  802e3be:	60dd      	str	r5, [r3, #12]
 
-         /* everything was written */
 
-         write_finished = 1;
 
-         conn->write_offset = 0;
 
-  802e3c0:	6222      	str	r2, [r4, #32]
 
-       conn->write_offset += len;
 
-       if ((conn->write_offset == conn->current_msg->msg.w.len) || dontblock) {
 
-         /* return sent length */
 
-         conn->current_msg->msg.w.len = conn->write_offset;
 
-         /* everything was written */
 
-         write_finished = 1;
 
-  802e3c2:	2501      	movs	r5, #1
 
-  802e3c4:	e000      	b.n	802e3c8 <do_writemore+0xc6>
 
- do_writemore(struct netconn *conn)
 
- {
 
-   err_t err;
 
-   void *dataptr;
 
-   u16_t len, available;
 
-   u8_t write_finished = 0;
 
-  802e3c6:	4635      	mov	r5, r6
 
-         conn->current_msg->msg.w.len = conn->write_offset;
 
-         /* everything was written */
 
-         write_finished = 1;
 
-         conn->write_offset = 0;
 
-       }
 
-       tcp_output(conn->pcb.tcp);
 
-  802e3c8:	6860      	ldr	r0, [r4, #4]
 
-  802e3ca:	f003 fe7d 	bl	80320c8 <tcp_output>
 
-          the error to the application thread. */
 
-       write_finished = 1;
 
-       conn->current_msg->msg.w.len = 0;
 
-     }
 
-   }
 
-   if (write_finished) {
 
-  802e3ce:	b1a5      	cbz	r5, 802e3fa <do_writemore+0xf8>
 
-  802e3d0:	e00a      	b.n	802e3e8 <do_writemore+0xe6>
 
-         /* everything was written */
 
-         write_finished = 1;
 
-         conn->write_offset = 0;
 
-       }
 
-       tcp_output(conn->pcb.tcp);
 
-     } else if ((err == ERR_MEM) && !dontblock) {
 
-  802e3d2:	b273      	sxtb	r3, r6
 
-  802e3d4:	3301      	adds	r3, #1
 
-  802e3d6:	d104      	bne.n	802e3e2 <do_writemore+0xe0>
 
-  802e3d8:	b91f      	cbnz	r7, 802e3e2 <do_writemore+0xe0>
 
-       /* If ERR_MEM, we wait for sent_tcp or poll_tcp to be called
 
-          we do NOT return to the application thread, since ERR_MEM is
 
-          only a temporary error! */
 
-       /* tcp_write returned ERR_MEM, try tcp_output anyway */
 
-       tcp_output(conn->pcb.tcp);
 
-  802e3da:	6860      	ldr	r0, [r4, #4]
 
-  802e3dc:	f003 fe74 	bl	80320c8 <tcp_output>
 
-  802e3e0:	e00b      	b.n	802e3fa <do_writemore+0xf8>
 
- #endif
 
-     } else {
 
-       /* On errors != ERR_MEM, we don't try writing any more but return
 
-          the error to the application thread. */
 
-       write_finished = 1;
 
-       conn->current_msg->msg.w.len = 0;
 
-  802e3e2:	6a63      	ldr	r3, [r4, #36]	; 0x24
 
-  802e3e4:	2200      	movs	r2, #0
 
-  802e3e6:	60da      	str	r2, [r3, #12]
 
-     }
 
-   }
 
-   if (write_finished) {
 
-     /* everything was written: set back connection state
 
-        and back to application task */
 
-     conn->current_msg->err = err;
 
-  802e3e8:	6a63      	ldr	r3, [r4, #36]	; 0x24
 
-  802e3ea:	711e      	strb	r6, [r3, #4]
 
-     conn->current_msg = NULL;
 
-  802e3ec:	2300      	movs	r3, #0
 
-  802e3ee:	6263      	str	r3, [r4, #36]	; 0x24
 
-     conn->state = NETCONN_NONE;
 
-  802e3f0:	7063      	strb	r3, [r4, #1]
 
- #if LWIP_TCPIP_CORE_LOCKING
 
-     if ((conn->flags & NETCONN_FLAG_WRITE_DELAYED) != 0)
 
- #endif
 
-     {
 
-       sys_sem_signal(&conn->op_completed);
 
-  802e3f2:	f104 000c 	add.w	r0, r4, #12
 
-  802e3f6:	f009 fb37 	bl	8037a68 <sys_sem_signal>
 
- #if LWIP_TCPIP_CORE_LOCKING
 
-   else
 
-     return ERR_MEM;
 
- #endif
 
-   return ERR_OK;
 
- }
 
-  802e3fa:	2000      	movs	r0, #0
 
-  802e3fc:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 
- 0802e3fe <poll_tcp>:
 
-   struct netconn *conn = (struct netconn *)arg;
 
-   LWIP_UNUSED_ARG(pcb);
 
-   LWIP_ASSERT("conn != NULL", (conn != NULL));
 
-   if (conn->state == NETCONN_WRITE) {
 
-  802e3fe:	7843      	ldrb	r3, [r0, #1]
 
-  802e400:	2b01      	cmp	r3, #1
 
-  *
 
-  * @see tcp.h (struct tcp_pcb.poll) for parameters and return value
 
-  */
 
- static err_t
 
- poll_tcp(void *arg, struct tcp_pcb *pcb)
 
- {
 
-  802e402:	b510      	push	{r4, lr}
 
-  802e404:	4604      	mov	r4, r0
 
-   struct netconn *conn = (struct netconn *)arg;
 
-   LWIP_UNUSED_ARG(pcb);
 
-   LWIP_ASSERT("conn != NULL", (conn != NULL));
 
-   if (conn->state == NETCONN_WRITE) {
 
-  802e406:	d102      	bne.n	802e40e <poll_tcp+0x10>
 
-     do_writemore(conn);
 
-  802e408:	f7ff ff7b 	bl	802e302 <do_writemore>
 
-  802e40c:	e003      	b.n	802e416 <poll_tcp+0x18>
 
-   } else if (conn->state == NETCONN_CLOSE) {
 
-  802e40e:	2b04      	cmp	r3, #4
 
-  802e410:	d101      	bne.n	802e416 <poll_tcp+0x18>
 
-     do_close_internal(conn);
 
-  802e412:	f7ff fe89 	bl	802e128 <do_close_internal>
 
-   }
 
-   /* @todo: implement connect timeout here? */
 
-   /* Did a nonblocking write fail before? Then check available write-space. */
 
-   if (conn->flags & NETCONN_FLAG_CHECK_WRITESPACE) {
 
-  802e416:	7f22      	ldrb	r2, [r4, #28]
 
-  802e418:	f002 0310 	and.w	r3, r2, #16
 
-  802e41c:	b2db      	uxtb	r3, r3
 
-  802e41e:	b1a3      	cbz	r3, 802e44a <poll_tcp+0x4c>
 
-     /* If the queued byte- or pbuf-count drops below the configured low-water limit,
 
-        let select mark this pcb as writable again. */
 
-     if ((conn->pcb.tcp != NULL) && (tcp_sndbuf(conn->pcb.tcp) > TCP_SNDLOWAT) &&
 
-  802e420:	6863      	ldr	r3, [r4, #4]
 
-  802e422:	b193      	cbz	r3, 802e44a <poll_tcp+0x4c>
 
-  802e424:	f8b3 0066 	ldrh.w	r0, [r3, #102]	; 0x66
 
-  802e428:	f243 3154 	movw	r1, #13140	; 0x3354
 
-  802e42c:	4288      	cmp	r0, r1
 
-  802e42e:	d90c      	bls.n	802e44a <poll_tcp+0x4c>
 
-  802e430:	f8b3 3068 	ldrh.w	r3, [r3, #104]	; 0x68
 
-  802e434:	2b23      	cmp	r3, #35	; 0x23
 
-  802e436:	d808      	bhi.n	802e44a <poll_tcp+0x4c>
 
-       (tcp_sndqueuelen(conn->pcb.tcp) < TCP_SNDQUEUELOWAT)) {
 
-       conn->flags &= ~NETCONN_FLAG_CHECK_WRITESPACE;
 
-       API_EVENT(conn, NETCONN_EVT_SENDPLUS, 0);
 
-  802e438:	6aa3      	ldr	r3, [r4, #40]	; 0x28
 
-   if (conn->flags & NETCONN_FLAG_CHECK_WRITESPACE) {
 
-     /* If the queued byte- or pbuf-count drops below the configured low-water limit,
 
-        let select mark this pcb as writable again. */
 
-     if ((conn->pcb.tcp != NULL) && (tcp_sndbuf(conn->pcb.tcp) > TCP_SNDLOWAT) &&
 
-       (tcp_sndqueuelen(conn->pcb.tcp) < TCP_SNDQUEUELOWAT)) {
 
-       conn->flags &= ~NETCONN_FLAG_CHECK_WRITESPACE;
 
-  802e43a:	f022 0210 	bic.w	r2, r2, #16
 
-  802e43e:	7722      	strb	r2, [r4, #28]
 
-       API_EVENT(conn, NETCONN_EVT_SENDPLUS, 0);
 
-  802e440:	b11b      	cbz	r3, 802e44a <poll_tcp+0x4c>
 
-  802e442:	4620      	mov	r0, r4
 
-  802e444:	2102      	movs	r1, #2
 
-  802e446:	2200      	movs	r2, #0
 
-  802e448:	4798      	blx	r3
 
-     }
 
-   }
 
-   return ERR_OK;
 
- }
 
-  802e44a:	2000      	movs	r0, #0
 
-  802e44c:	bd10      	pop	{r4, pc}
 
- 0802e44e <recv_udp>:
 
-  * @see udp.h (struct udp_pcb.recv) for parameters
 
-  */
 
- static void
 
- recv_udp(void *arg, struct udp_pcb *pcb, struct pbuf *p,
 
-    ip_addr_t *addr, u16_t port)
 
- {
 
-  802e44e:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
 
-  802e452:	4616      	mov	r6, r2
 
-  802e454:	461f      	mov	r7, r3
 
-  802e456:	f8bd 8018 	ldrh.w	r8, [sp, #24]
 
- #if LWIP_SO_RCVBUF
 
-   SYS_ARCH_GET(conn->recv_avail, recv_avail);
 
-   if ((conn == NULL) || !sys_mbox_valid(&conn->recvmbox) ||
 
-       ((recv_avail + (int)(p->tot_len)) > conn->recv_bufsize)) {
 
- #else  /* LWIP_SO_RCVBUF */
 
-   if ((conn == NULL) || !sys_mbox_valid(&conn->recvmbox)) {
 
-  802e45a:	4605      	mov	r5, r0
 
-  802e45c:	b108      	cbz	r0, 802e462 <recv_udp+0x14>
 
-  802e45e:	6903      	ldr	r3, [r0, #16]
 
-  802e460:	b923      	cbnz	r3, 802e46c <recv_udp+0x1e>
 
- #endif /* LWIP_SO_RCVBUF */
 
-     pbuf_free(p);
 
-  802e462:	4630      	mov	r0, r6
 
-     SYS_ARCH_INC(conn->recv_avail, len);
 
- #endif /* LWIP_SO_RCVBUF */
 
-     /* Register event with callback */
 
-     API_EVENT(conn, NETCONN_EVT_RCVPLUS, len);
 
-   }
 
- }
 
-  802e464:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
 
-   if ((conn == NULL) || !sys_mbox_valid(&conn->recvmbox) ||
 
-       ((recv_avail + (int)(p->tot_len)) > conn->recv_bufsize)) {
 
- #else  /* LWIP_SO_RCVBUF */
 
-   if ((conn == NULL) || !sys_mbox_valid(&conn->recvmbox)) {
 
- #endif /* LWIP_SO_RCVBUF */
 
-     pbuf_free(p);
 
-  802e468:	f001 bcd0 	b.w	802fe0c <pbuf_free>
 
-     return;
 
-   }
 
-   buf = (struct netbuf *)memp_malloc(MEMP_NETBUF);
 
-  802e46c:	2005      	movs	r0, #5
 
-  802e46e:	f001 fbad 	bl	802fbcc <memp_malloc>
 
-   if (buf == NULL) {
 
-  802e472:	4604      	mov	r4, r0
 
-  802e474:	2800      	cmp	r0, #0
 
-  802e476:	d0f4      	beq.n	802e462 <recv_udp+0x14>
 
-     pbuf_free(p);
 
-     return;
 
-   } else {
 
-     buf->p = p;
 
-  802e478:	6006      	str	r6, [r0, #0]
 
-     buf->ptr = p;
 
-  802e47a:	6046      	str	r6, [r0, #4]
 
-     ip_addr_set(&buf->addr, addr);
 
-  802e47c:	b107      	cbz	r7, 802e480 <recv_udp+0x32>
 
-  802e47e:	683f      	ldr	r7, [r7, #0]
 
-     }
 
- #endif /* LWIP_NETBUF_RECVINFO */
 
-   }
 
-   len = p->tot_len;
 
-   if (sys_mbox_trypost(&conn->recvmbox, buf) != ERR_OK) {
 
-  802e480:	4621      	mov	r1, r4
 
-     pbuf_free(p);
 
-     return;
 
-   } else {
 
-     buf->p = p;
 
-     buf->ptr = p;
 
-     ip_addr_set(&buf->addr, addr);
 
-  802e482:	60a7      	str	r7, [r4, #8]
 
-     buf->port = port;
 
-  802e484:	f8a4 800c 	strh.w	r8, [r4, #12]
 
-     }
 
- #endif /* LWIP_NETBUF_RECVINFO */
 
-   }
 
-   len = p->tot_len;
 
-   if (sys_mbox_trypost(&conn->recvmbox, buf) != ERR_OK) {
 
-  802e488:	f105 0010 	add.w	r0, r5, #16
 
-       buf->toport_chksum = udphdr->dest;
 
-     }
 
- #endif /* LWIP_NETBUF_RECVINFO */
 
-   }
 
-   len = p->tot_len;
 
-  802e48c:	8936      	ldrh	r6, [r6, #8]
 
-   if (sys_mbox_trypost(&conn->recvmbox, buf) != ERR_OK) {
 
-  802e48e:	f009 fa23 	bl	80378d8 <sys_mbox_trypost>
 
-  802e492:	4601      	mov	r1, r0
 
-  802e494:	b120      	cbz	r0, 802e4a0 <recv_udp+0x52>
 
-     netbuf_delete(buf);
 
-  802e496:	4620      	mov	r0, r4
 
-     SYS_ARCH_INC(conn->recv_avail, len);
 
- #endif /* LWIP_SO_RCVBUF */
 
-     /* Register event with callback */
 
-     API_EVENT(conn, NETCONN_EVT_RCVPLUS, len);
 
-   }
 
- }
 
-  802e498:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
 
- #endif /* LWIP_NETBUF_RECVINFO */
 
-   }
 
-   len = p->tot_len;
 
-   if (sys_mbox_trypost(&conn->recvmbox, buf) != ERR_OK) {
 
-     netbuf_delete(buf);
 
-  802e49c:	f000 baa1 	b.w	802e9e2 <netbuf_delete>
 
-   } else {
 
- #if LWIP_SO_RCVBUF
 
-     SYS_ARCH_INC(conn->recv_avail, len);
 
- #endif /* LWIP_SO_RCVBUF */
 
-     /* Register event with callback */
 
-     API_EVENT(conn, NETCONN_EVT_RCVPLUS, len);
 
-  802e4a0:	6aab      	ldr	r3, [r5, #40]	; 0x28
 
-  802e4a2:	b113      	cbz	r3, 802e4aa <recv_udp+0x5c>
 
-  802e4a4:	4628      	mov	r0, r5
 
-  802e4a6:	4632      	mov	r2, r6
 
-  802e4a8:	4798      	blx	r3
 
-  802e4aa:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 
-  802e4ae:	0000      	movs	r0, r0
 
- 0802e4b0 <recv_raw>:
 
-  * @see raw.h (struct raw_pcb.recv) for parameters and return value
 
-  */
 
- static u8_t
 
- recv_raw(void *arg, struct raw_pcb *pcb, struct pbuf *p,
 
-     ip_addr_t *addr)
 
- {
 
-  802e4b0:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
-  802e4b2:	460f      	mov	r7, r1
 
-  802e4b4:	4614      	mov	r4, r2
 
-   struct netconn *conn;
 
-   LWIP_UNUSED_ARG(addr);
 
-   conn = (struct netconn *)arg;
 
-   if ((conn != NULL) && sys_mbox_valid(&conn->recvmbox)) {
 
-  802e4b6:	4605      	mov	r5, r0
 
-  802e4b8:	2800      	cmp	r0, #0
 
-  802e4ba:	d031      	beq.n	802e520 <recv_raw+0x70>
 
-  802e4bc:	6903      	ldr	r3, [r0, #16]
 
-  802e4be:	2b00      	cmp	r3, #0
 
-  802e4c0:	d02e      	beq.n	802e520 <recv_raw+0x70>
 
-     if ((recv_avail + (int)(p->tot_len)) > conn->recv_bufsize) {
 
-       return 0;
 
-     }
 
- #endif /* LWIP_SO_RCVBUF */
 
-     /* copy the whole packet into new pbufs */
 
-     q = pbuf_alloc(PBUF_RAW, p->tot_len, PBUF_RAM);
 
-  802e4c2:	8911      	ldrh	r1, [r2, #8]
 
-  802e4c4:	2003      	movs	r0, #3
 
-  802e4c6:	2200      	movs	r2, #0
 
-  802e4c8:	f001 fced 	bl	802fea6 <pbuf_alloc>
 
-     if(q != NULL) {
 
-  802e4cc:	4606      	mov	r6, r0
 
-  802e4ce:	b338      	cbz	r0, 802e520 <recv_raw+0x70>
 
-       if (pbuf_copy(q, p) != ERR_OK) {
 
-  802e4d0:	4621      	mov	r1, r4
 
-  802e4d2:	f001 fd9f 	bl	8030014 <pbuf_copy>
 
-  802e4d6:	b1e0      	cbz	r0, 802e512 <recv_raw+0x62>
 
-     if (q != NULL) {
 
-       u16_t len;
 
-       buf = (struct netbuf *)memp_malloc(MEMP_NETBUF);
 
-       if (buf == NULL) {
 
-         pbuf_free(q);
 
-  802e4d8:	4630      	mov	r0, r6
 
-  802e4da:	f001 fc97 	bl	802fe0c <pbuf_free>
 
-         return 0;
 
-  802e4de:	e01f      	b.n	802e520 <recv_raw+0x70>
 
-       }
 
-       buf->p = q;
 
-       buf->ptr = q;
 
-       ip_addr_copy(buf->addr, *ip_current_src_addr());
 
-  802e4e0:	4b10      	ldr	r3, [pc, #64]	; (802e524 <recv_raw+0x74>)
 
-       if (buf == NULL) {
 
-         pbuf_free(q);
 
-         return 0;
 
-       }
 
-       buf->p = q;
 
-  802e4e2:	6026      	str	r6, [r4, #0]
 
-       buf->ptr = q;
 
-       ip_addr_copy(buf->addr, *ip_current_src_addr());
 
-  802e4e4:	681b      	ldr	r3, [r3, #0]
 
-         pbuf_free(q);
 
-         return 0;
 
-       }
 
-       buf->p = q;
 
-       buf->ptr = q;
 
-  802e4e6:	6066      	str	r6, [r4, #4]
 
-       ip_addr_copy(buf->addr, *ip_current_src_addr());
 
-  802e4e8:	60a3      	str	r3, [r4, #8]
 
-       buf->port = pcb->protocol;
 
-  802e4ea:	7c3b      	ldrb	r3, [r7, #16]
 
-       len = q->tot_len;
 
-  802e4ec:	8936      	ldrh	r6, [r6, #8]
 
-       }
 
-       buf->p = q;
 
-       buf->ptr = q;
 
-       ip_addr_copy(buf->addr, *ip_current_src_addr());
 
-       buf->port = pcb->protocol;
 
-  802e4ee:	81a3      	strh	r3, [r4, #12]
 
-       len = q->tot_len;
 
-       if (sys_mbox_trypost(&conn->recvmbox, buf) != ERR_OK) {
 
-  802e4f0:	4621      	mov	r1, r4
 
-  802e4f2:	f105 0010 	add.w	r0, r5, #16
 
-  802e4f6:	f009 f9ef 	bl	80378d8 <sys_mbox_trypost>
 
-  802e4fa:	4601      	mov	r1, r0
 
-  802e4fc:	b118      	cbz	r0, 802e506 <recv_raw+0x56>
 
-         netbuf_delete(buf);
 
-  802e4fe:	4620      	mov	r0, r4
 
-  802e500:	f000 fa6f 	bl	802e9e2 <netbuf_delete>
 
-         return 0;
 
-  802e504:	e00c      	b.n	802e520 <recv_raw+0x70>
 
-       } else {
 
- #if LWIP_SO_RCVBUF
 
-         SYS_ARCH_INC(conn->recv_avail, len);
 
- #endif /* LWIP_SO_RCVBUF */
 
-         /* Register event with callback */
 
-         API_EVENT(conn, NETCONN_EVT_RCVPLUS, len);
 
-  802e506:	6aab      	ldr	r3, [r5, #40]	; 0x28
 
-  802e508:	b153      	cbz	r3, 802e520 <recv_raw+0x70>
 
-  802e50a:	4628      	mov	r0, r5
 
-  802e50c:	4632      	mov	r2, r6
 
-  802e50e:	4798      	blx	r3
 
-  802e510:	e006      	b.n	802e520 <recv_raw+0x70>
 
-       }
 
-     }
 
-     if (q != NULL) {
 
-       u16_t len;
 
-       buf = (struct netbuf *)memp_malloc(MEMP_NETBUF);
 
-  802e512:	2005      	movs	r0, #5
 
-  802e514:	f001 fb5a 	bl	802fbcc <memp_malloc>
 
-       if (buf == NULL) {
 
-  802e518:	4604      	mov	r4, r0
 
-  802e51a:	2800      	cmp	r0, #0
 
-  802e51c:	d1e0      	bne.n	802e4e0 <recv_raw+0x30>
 
-  802e51e:	e7db      	b.n	802e4d8 <recv_raw+0x28>
 
-       }
 
-     }
 
-   }
 
-   return 0; /* do not eat the packet */
 
- }
 
-  802e520:	2000      	movs	r0, #0
 
-  802e522:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 
-  802e524:	2000f6dc 	.word	0x2000f6dc
 
- 0802e528 <recv_tcp>:
 
-  *
 
-  * @see tcp.h (struct tcp_pcb.recv) for parameters and return value
 
-  */
 
- static err_t
 
- recv_tcp(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err)
 
- {
 
-  802e528:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
-  802e52a:	4614      	mov	r4, r2
 
-  802e52c:	461f      	mov	r7, r3
 
-   LWIP_ASSERT("recv_tcp must have a pcb argument", pcb != NULL);
 
-   LWIP_ASSERT("recv_tcp must have an argument", arg != NULL);
 
-   conn = (struct netconn *)arg;
 
-   LWIP_ASSERT("recv_tcp: recv for wrong pcb!", conn->pcb.tcp == pcb);
 
-   if (conn == NULL) {
 
-  802e52e:	4605      	mov	r5, r0
 
-  802e530:	b340      	cbz	r0, 802e584 <recv_tcp+0x5c>
 
-     return ERR_VAL;
 
-   }
 
-   if (!sys_mbox_valid(&conn->recvmbox)) {
 
-  802e532:	6906      	ldr	r6, [r0, #16]
 
-  802e534:	b956      	cbnz	r6, 802e54c <recv_tcp+0x24>
 
-     /* recvmbox already deleted */
 
-     if (p != NULL) {
 
-  802e536:	b90a      	cbnz	r2, 802e53c <recv_tcp+0x14>
 
-       tcp_recved(pcb, p->tot_len);
 
-       pbuf_free(p);
 
-     }
 
-     return ERR_OK;
 
-  802e538:	2000      	movs	r0, #0
 
-  802e53a:	e026      	b.n	802e58a <recv_tcp+0x62>
 
-     return ERR_VAL;
 
-   }
 
-   if (!sys_mbox_valid(&conn->recvmbox)) {
 
-     /* recvmbox already deleted */
 
-     if (p != NULL) {
 
-       tcp_recved(pcb, p->tot_len);
 
-  802e53c:	4608      	mov	r0, r1
 
-  802e53e:	8911      	ldrh	r1, [r2, #8]
 
-  802e540:	f001 ff78 	bl	8030434 <tcp_recved>
 
-       pbuf_free(p);
 
-  802e544:	4620      	mov	r0, r4
 
-  802e546:	f001 fc61 	bl	802fe0c <pbuf_free>
 
-  802e54a:	e7f5      	b.n	802e538 <recv_tcp+0x10>
 
-   /* Unlike for UDP or RAW pcbs, don't check for available space
 
-      using recv_avail since that could break the connection
 
-      (data is already ACKed) */
 
-   /* don't overwrite fatal errors! */
 
-   NETCONN_SET_SAFE_ERR(conn, err);
 
-  802e54c:	f009 fabc 	bl	8037ac8 <sys_arch_protect>
 
-  802e550:	f995 3008 	ldrsb.w	r3, [r5, #8]
 
-  802e554:	3309      	adds	r3, #9
 
-  802e556:	bfa8      	it	ge
 
-  802e558:	722f      	strbge	r7, [r5, #8]
 
-  802e55a:	f009 fabf 	bl	8037adc <sys_arch_unprotect>
 
-   if (p != NULL) {
 
-  802e55e:	b10c      	cbz	r4, 802e564 <recv_tcp+0x3c>
 
-     len = p->tot_len;
 
-  802e560:	8926      	ldrh	r6, [r4, #8]
 
-  802e562:	e000      	b.n	802e566 <recv_tcp+0x3e>
 
-   } else {
 
-     len = 0;
 
-  802e564:	4626      	mov	r6, r4
 
-   }
 
-   if (sys_mbox_trypost(&conn->recvmbox, p) != ERR_OK) {
 
-  802e566:	4621      	mov	r1, r4
 
-  802e568:	f105 0010 	add.w	r0, r5, #16
 
-  802e56c:	f009 f9b4 	bl	80378d8 <sys_mbox_trypost>
 
-  802e570:	4604      	mov	r4, r0
 
-  802e572:	b948      	cbnz	r0, 802e588 <recv_tcp+0x60>
 
-   } else {
 
- #if LWIP_SO_RCVBUF
 
-     SYS_ARCH_INC(conn->recv_avail, len);
 
- #endif /* LWIP_SO_RCVBUF */
 
-     /* Register event with callback */
 
-     API_EVENT(conn, NETCONN_EVT_RCVPLUS, len);
 
-  802e574:	6aab      	ldr	r3, [r5, #40]	; 0x28
 
-  802e576:	2b00      	cmp	r3, #0
 
-  802e578:	d0de      	beq.n	802e538 <recv_tcp+0x10>
 
-  802e57a:	4628      	mov	r0, r5
 
-  802e57c:	4621      	mov	r1, r4
 
-  802e57e:	4632      	mov	r2, r6
 
-  802e580:	4798      	blx	r3
 
-  802e582:	e7d9      	b.n	802e538 <recv_tcp+0x10>
 
-   LWIP_ASSERT("recv_tcp must have an argument", arg != NULL);
 
-   conn = (struct netconn *)arg;
 
-   LWIP_ASSERT("recv_tcp: recv for wrong pcb!", conn->pcb.tcp == pcb);
 
-   if (conn == NULL) {
 
-     return ERR_VAL;
 
-  802e584:	20fa      	movs	r0, #250	; 0xfa
 
-  802e586:	e000      	b.n	802e58a <recv_tcp+0x62>
 
-     len = 0;
 
-   }
 
-   if (sys_mbox_trypost(&conn->recvmbox, p) != ERR_OK) {
 
-     /* don't deallocate p: it is presented to us later again from tcp_fasttmr! */
 
-     return ERR_MEM;
 
-  802e588:	20ff      	movs	r0, #255	; 0xff
 
-     /* Register event with callback */
 
-     API_EVENT(conn, NETCONN_EVT_RCVPLUS, len);
 
-   }
 
-   return ERR_OK;
 
- }
 
-  802e58a:	b240      	sxtb	r0, r0
 
-  802e58c:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 
- 0802e58e <sent_tcp>:
 
-  *
 
-  * @see tcp.h (struct tcp_pcb.sent) for parameters and return value
 
-  */
 
- static err_t
 
- sent_tcp(void *arg, struct tcp_pcb *pcb, u16_t len)
 
- {
 
-  802e58e:	b538      	push	{r3, r4, r5, lr}
 
-   struct netconn *conn = (struct netconn *)arg;
 
-   LWIP_UNUSED_ARG(pcb);
 
-   LWIP_ASSERT("conn != NULL", (conn != NULL));
 
-   if (conn->state == NETCONN_WRITE) {
 
-  802e590:	7843      	ldrb	r3, [r0, #1]
 
-  802e592:	2b01      	cmp	r3, #1
 
-  *
 
-  * @see tcp.h (struct tcp_pcb.sent) for parameters and return value
 
-  */
 
- static err_t
 
- sent_tcp(void *arg, struct tcp_pcb *pcb, u16_t len)
 
- {
 
-  802e594:	4604      	mov	r4, r0
 
-  802e596:	4615      	mov	r5, r2
 
-   struct netconn *conn = (struct netconn *)arg;
 
-   LWIP_UNUSED_ARG(pcb);
 
-   LWIP_ASSERT("conn != NULL", (conn != NULL));
 
-   if (conn->state == NETCONN_WRITE) {
 
-  802e598:	d102      	bne.n	802e5a0 <sent_tcp+0x12>
 
-     do_writemore(conn);
 
-  802e59a:	f7ff feb2 	bl	802e302 <do_writemore>
 
-  802e59e:	e003      	b.n	802e5a8 <sent_tcp+0x1a>
 
-   } else if (conn->state == NETCONN_CLOSE) {
 
-  802e5a0:	2b04      	cmp	r3, #4
 
-  802e5a2:	d101      	bne.n	802e5a8 <sent_tcp+0x1a>
 
-     do_close_internal(conn);
 
-  802e5a4:	f7ff fdc0 	bl	802e128 <do_close_internal>
 
-   }
 
-   if (conn) {
 
-     /* If the queued byte- or pbuf-count drops below the configured low-water limit,
 
-        let select mark this pcb as writable again. */
 
-     if ((conn->pcb.tcp != NULL) && (tcp_sndbuf(conn->pcb.tcp) > TCP_SNDLOWAT) &&
 
-  802e5a8:	6863      	ldr	r3, [r4, #4]
 
-  802e5aa:	b19b      	cbz	r3, 802e5d4 <sent_tcp+0x46>
 
-  802e5ac:	f8b3 1066 	ldrh.w	r1, [r3, #102]	; 0x66
 
-  802e5b0:	f243 3254 	movw	r2, #13140	; 0x3354
 
-  802e5b4:	4291      	cmp	r1, r2
 
-  802e5b6:	d90d      	bls.n	802e5d4 <sent_tcp+0x46>
 
-  802e5b8:	f8b3 3068 	ldrh.w	r3, [r3, #104]	; 0x68
 
-  802e5bc:	2b23      	cmp	r3, #35	; 0x23
 
-  802e5be:	d809      	bhi.n	802e5d4 <sent_tcp+0x46>
 
-       (tcp_sndqueuelen(conn->pcb.tcp) < TCP_SNDQUEUELOWAT)) {
 
-       conn->flags &= ~NETCONN_FLAG_CHECK_WRITESPACE;
 
-  802e5c0:	7f23      	ldrb	r3, [r4, #28]
 
-  802e5c2:	f023 0310 	bic.w	r3, r3, #16
 
-  802e5c6:	7723      	strb	r3, [r4, #28]
 
-       API_EVENT(conn, NETCONN_EVT_SENDPLUS, len);
 
-  802e5c8:	6aa3      	ldr	r3, [r4, #40]	; 0x28
 
-  802e5ca:	b11b      	cbz	r3, 802e5d4 <sent_tcp+0x46>
 
-  802e5cc:	4620      	mov	r0, r4
 
-  802e5ce:	2102      	movs	r1, #2
 
-  802e5d0:	462a      	mov	r2, r5
 
-  802e5d2:	4798      	blx	r3
 
-     }
 
-   }
 
-   
 
-   return ERR_OK;
 
- }
 
-  802e5d4:	2000      	movs	r0, #0
 
-  802e5d6:	bd38      	pop	{r3, r4, r5, pc}
 
- 0802e5d8 <do_newconn>:
 
-  *
 
-  * @param msg the api_msg_msg describing the connection type
 
-  */
 
- void
 
- do_newconn(struct api_msg_msg *msg)
 
- {
 
-  802e5d8:	b538      	push	{r3, r4, r5, lr}
 
-   msg->err = ERR_OK;
 
-  802e5da:	2300      	movs	r3, #0
 
-   if(msg->conn->pcb.tcp == NULL) {
 
-  802e5dc:	6805      	ldr	r5, [r0, #0]
 
-  * @param msg the api_msg_msg describing the connection type
 
-  */
 
- void
 
- do_newconn(struct api_msg_msg *msg)
 
- {
 
-   msg->err = ERR_OK;
 
-  802e5de:	7103      	strb	r3, [r0, #4]
 
-   if(msg->conn->pcb.tcp == NULL) {
 
-  802e5e0:	686b      	ldr	r3, [r5, #4]
 
-  *
 
-  * @param msg the api_msg_msg describing the connection type
 
-  */
 
- void
 
- do_newconn(struct api_msg_msg *msg)
 
- {
 
-  802e5e2:	4604      	mov	r4, r0
 
-   msg->err = ERR_OK;
 
-   if(msg->conn->pcb.tcp == NULL) {
 
-  802e5e4:	2b00      	cmp	r3, #0
 
-  802e5e6:	d134      	bne.n	802e652 <do_newconn+0x7a>
 
- pcb_new(struct api_msg_msg *msg)
 
- {
 
-   LWIP_ASSERT("pcb_new: pcb already allocated", msg->conn->pcb.tcp == NULL);
 
-   /* Allocate a PCB for this connection */
 
-   switch(NETCONNTYPE_GROUP(msg->conn->type)) {
 
-  802e5e8:	782b      	ldrb	r3, [r5, #0]
 
-  802e5ea:	f003 03f0 	and.w	r3, r3, #240	; 0xf0
 
-  802e5ee:	2b20      	cmp	r3, #32
 
-  802e5f0:	d010      	beq.n	802e614 <do_newconn+0x3c>
 
-  802e5f2:	2b40      	cmp	r3, #64	; 0x40
 
-  802e5f4:	d002      	beq.n	802e5fc <do_newconn+0x24>
 
-  802e5f6:	2b10      	cmp	r3, #16
 
-  802e5f8:	d129      	bne.n	802e64e <do_newconn+0x76>
 
-  802e5fa:	e01d      	b.n	802e638 <do_newconn+0x60>
 
- #if LWIP_RAW
 
-   case NETCONN_RAW:
 
-     msg->conn->pcb.raw = raw_new(msg->msg.n.proto);
 
-  802e5fc:	7a00      	ldrb	r0, [r0, #8]
 
-  802e5fe:	f001 fe31 	bl	8030264 <raw_new>
 
-  802e602:	6068      	str	r0, [r5, #4]
 
-     if(msg->conn->pcb.raw == NULL) {
 
-  802e604:	6822      	ldr	r2, [r4, #0]
 
-  802e606:	6850      	ldr	r0, [r2, #4]
 
-  802e608:	b900      	cbnz	r0, 802e60c <do_newconn+0x34>
 
-  802e60a:	e01b      	b.n	802e644 <do_newconn+0x6c>
 
-       msg->err = ERR_MEM;
 
-       break;
 
-     }
 
-     raw_recv(msg->conn->pcb.raw, recv_raw, msg->conn);
 
-  802e60c:	4914      	ldr	r1, [pc, #80]	; (802e660 <do_newconn+0x88>)
 
-  802e60e:	f001 fdc7 	bl	80301a0 <raw_recv>
 
-  802e612:	e01e      	b.n	802e652 <do_newconn+0x7a>
 
-     break;
 
- #endif /* LWIP_RAW */
 
- #if LWIP_UDP
 
-   case NETCONN_UDP:
 
-     msg->conn->pcb.udp = udp_new();
 
-  802e614:	f004 fa84 	bl	8032b20 <udp_new>
 
-  802e618:	6068      	str	r0, [r5, #4]
 
-     if(msg->conn->pcb.udp == NULL) {
 
-  802e61a:	6822      	ldr	r2, [r4, #0]
 
-  802e61c:	6853      	ldr	r3, [r2, #4]
 
-  802e61e:	b903      	cbnz	r3, 802e622 <do_newconn+0x4a>
 
-  802e620:	e010      	b.n	802e644 <do_newconn+0x6c>
 
- #if LWIP_UDPLITE
 
-     if (msg->conn->type==NETCONN_UDPLITE) {
 
-       udp_setflags(msg->conn->pcb.udp, UDP_FLAGS_UDPLITE);
 
-     }
 
- #endif /* LWIP_UDPLITE */
 
-     if (msg->conn->type==NETCONN_UDPNOCHKSUM) {
 
-  802e622:	7812      	ldrb	r2, [r2, #0]
 
-  802e624:	2a22      	cmp	r2, #34	; 0x22
 
-  802e626:	d101      	bne.n	802e62c <do_newconn+0x54>
 
-       udp_setflags(msg->conn->pcb.udp, UDP_FLAGS_NOCHKSUM);
 
-  802e628:	2201      	movs	r2, #1
 
-  802e62a:	741a      	strb	r2, [r3, #16]
 
-     }
 
-     udp_recv(msg->conn->pcb.udp, recv_udp, msg->conn);
 
-  802e62c:	6822      	ldr	r2, [r4, #0]
 
-  802e62e:	490d      	ldr	r1, [pc, #52]	; (802e664 <do_newconn+0x8c>)
 
-  802e630:	6850      	ldr	r0, [r2, #4]
 
-  802e632:	f004 fa55 	bl	8032ae0 <udp_recv>
 
-  802e636:	e00c      	b.n	802e652 <do_newconn+0x7a>
 
-     break;
 
- #endif /* LWIP_UDP */
 
- #if LWIP_TCP
 
-   case NETCONN_TCP:
 
-     msg->conn->pcb.tcp = tcp_new();
 
-  802e638:	f002 fb20 	bl	8030c7c <tcp_new>
 
-  802e63c:	6068      	str	r0, [r5, #4]
 
-     if(msg->conn->pcb.tcp == NULL) {
 
-  802e63e:	6820      	ldr	r0, [r4, #0]
 
-  802e640:	6843      	ldr	r3, [r0, #4]
 
-  802e642:	b90b      	cbnz	r3, 802e648 <do_newconn+0x70>
 
-       msg->err = ERR_MEM;
 
-  802e644:	23ff      	movs	r3, #255	; 0xff
 
-  802e646:	e003      	b.n	802e650 <do_newconn+0x78>
 
-       break;
 
-     }
 
-     setup_tcp(msg->conn);
 
-  802e648:	f7ff fd4c 	bl	802e0e4 <setup_tcp>
 
-  802e64c:	e001      	b.n	802e652 <do_newconn+0x7a>
 
-     break;
 
- #endif /* LWIP_TCP */
 
-   default:
 
-     /* Unsupported netconn type, e.g. protocol disabled */
 
-     msg->err = ERR_VAL;
 
-  802e64e:	23fa      	movs	r3, #250	; 0xfa
 
-  802e650:	7123      	strb	r3, [r4, #4]
 
-   }
 
-   /* Else? This "new" connection already has a PCB allocated. */
 
-   /* Is this an error condition? Should it be deleted? */
 
-   /* We currently just are happy and return. */
 
-   TCPIP_APIMSG_ACK(msg);
 
-  802e652:	6820      	ldr	r0, [r4, #0]
 
-  802e654:	300c      	adds	r0, #12
 
- }
 
-  802e656:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
 
-   }
 
-   /* Else? This "new" connection already has a PCB allocated. */
 
-   /* Is this an error condition? Should it be deleted? */
 
-   /* We currently just are happy and return. */
 
-   TCPIP_APIMSG_ACK(msg);
 
-  802e65a:	f009 ba05 	b.w	8037a68 <sys_sem_signal>
 
-  802e65e:	bf00      	nop
 
-  802e660:	0802e4b1 	.word	0x0802e4b1
 
-  802e664:	0802e44f 	.word	0x0802e44f
 
- 0802e668 <netconn_alloc>:
 
-  * @return a newly allocated struct netconn or
 
-  *         NULL on memory error
 
-  */
 
- struct netconn*
 
- netconn_alloc(enum netconn_type t, netconn_callback callback)
 
- {
 
-  802e668:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
-  802e66a:	4605      	mov	r5, r0
 
-   struct netconn *conn;
 
-   int size;
 
-   conn = (struct netconn *)memp_malloc(MEMP_NETCONN);
 
-  802e66c:	2006      	movs	r0, #6
 
-  * @return a newly allocated struct netconn or
 
-  *         NULL on memory error
 
-  */
 
- struct netconn*
 
- netconn_alloc(enum netconn_type t, netconn_callback callback)
 
- {
 
-  802e66e:	460f      	mov	r7, r1
 
-   struct netconn *conn;
 
-   int size;
 
-   conn = (struct netconn *)memp_malloc(MEMP_NETCONN);
 
-  802e670:	f001 faac 	bl	802fbcc <memp_malloc>
 
-   if (conn == NULL) {
 
-  802e674:	4604      	mov	r4, r0
 
-  802e676:	b378      	cbz	r0, 802e6d8 <netconn_alloc+0x70>
 
-     return NULL;
 
-   }
 
-   conn->last_err = ERR_OK;
 
-  802e678:	2300      	movs	r3, #0
 
-  802e67a:	7203      	strb	r3, [r0, #8]
 
-   conn->type = t;
 
-  802e67c:	7005      	strb	r5, [r0, #0]
 
-   conn->pcb.tcp = NULL;
 
-  802e67e:	6043      	str	r3, [r0, #4]
 
- #if (DEFAULT_RAW_RECVMBOX_SIZE == DEFAULT_UDP_RECVMBOX_SIZE) && \
 
-     (DEFAULT_RAW_RECVMBOX_SIZE == DEFAULT_TCP_RECVMBOX_SIZE)
 
-   size = DEFAULT_RAW_RECVMBOX_SIZE;
 
- #else
 
-   switch(NETCONNTYPE_GROUP(t)) {
 
-  802e680:	f005 00f0 	and.w	r0, r5, #240	; 0xf0
 
-  802e684:	2820      	cmp	r0, #32
 
-  802e686:	d008      	beq.n	802e69a <netconn_alloc+0x32>
 
-  802e688:	2840      	cmp	r0, #64	; 0x40
 
-  802e68a:	d002      	beq.n	802e692 <netconn_alloc+0x2a>
 
-  802e68c:	2810      	cmp	r0, #16
 
-  802e68e:	d11e      	bne.n	802e6ce <netconn_alloc+0x66>
 
-  802e690:	e001      	b.n	802e696 <netconn_alloc+0x2e>
 
- #if LWIP_RAW
 
-   case NETCONN_RAW:
 
-     size = DEFAULT_RAW_RECVMBOX_SIZE;
 
-  802e692:	250a      	movs	r5, #10
 
-  802e694:	e002      	b.n	802e69c <netconn_alloc+0x34>
 
-     size = DEFAULT_UDP_RECVMBOX_SIZE;
 
-     break;
 
- #endif /* LWIP_UDP */
 
- #if LWIP_TCP
 
-   case NETCONN_TCP:
 
-     size = DEFAULT_TCP_RECVMBOX_SIZE;
 
-  802e696:	2546      	movs	r5, #70	; 0x46
 
-     break;
 
-  802e698:	e000      	b.n	802e69c <netconn_alloc+0x34>
 
-     size = DEFAULT_RAW_RECVMBOX_SIZE;
 
-     break;
 
- #endif /* LWIP_RAW */
 
- #if LWIP_UDP
 
-   case NETCONN_UDP:
 
-     size = DEFAULT_UDP_RECVMBOX_SIZE;
 
-  802e69a:	2514      	movs	r5, #20
 
-     LWIP_ASSERT("netconn_alloc: undefined netconn_type", 0);
 
-     goto free_and_return;
 
-   }
 
- #endif
 
-   if (sys_sem_new(&conn->op_completed, 0) != ERR_OK) {
 
-  802e69c:	f104 060c 	add.w	r6, r4, #12
 
-  802e6a0:	4630      	mov	r0, r6
 
-  802e6a2:	2100      	movs	r1, #0
 
-  802e6a4:	f009 f980 	bl	80379a8 <sys_sem_new>
 
-  802e6a8:	b988      	cbnz	r0, 802e6ce <netconn_alloc+0x66>
 
-     goto free_and_return;
 
-   }
 
-   if (sys_mbox_new(&conn->recvmbox, size) != ERR_OK) {
 
-  802e6aa:	f104 0010 	add.w	r0, r4, #16
 
-  802e6ae:	4629      	mov	r1, r5
 
-  802e6b0:	f009 f8e6 	bl	8037880 <sys_mbox_new>
 
-  802e6b4:	b118      	cbz	r0, 802e6be <netconn_alloc+0x56>
 
-     sys_sem_free(&conn->op_completed);
 
-  802e6b6:	4630      	mov	r0, r6
 
-  802e6b8:	f009 f9e8 	bl	8037a8c <sys_sem_free>
 
-     goto free_and_return;
 
-  802e6bc:	e007      	b.n	802e6ce <netconn_alloc+0x66>
 
-   }
 
- #if LWIP_TCP
 
-   sys_mbox_set_invalid(&conn->acceptmbox);
 
-  802e6be:	6160      	str	r0, [r4, #20]
 
- #endif
 
-   conn->state        = NETCONN_NONE;
 
-  802e6c0:	7060      	strb	r0, [r4, #1]
 
- #if LWIP_SOCKET
 
-   /* initialize socket to -1 since 0 is a valid socket */
 
-   conn->socket       = -1;
 
- #endif /* LWIP_SOCKET */
 
-   conn->callback     = callback;
 
-  802e6c2:	62a7      	str	r7, [r4, #40]	; 0x28
 
- #if LWIP_TCP
 
-   conn->current_msg  = NULL;
 
-  802e6c4:	6260      	str	r0, [r4, #36]	; 0x24
 
-   conn->write_offset = 0;
 
-  802e6c6:	6220      	str	r0, [r4, #32]
 
- #endif /* LWIP_TCP */
 
- #if LWIP_SO_SNDTIMEO
 
-   conn->send_timeout = 0;
 
- #endif /* LWIP_SO_SNDTIMEO */
 
- #if LWIP_SO_RCVTIMEO
 
-   conn->recv_timeout = 0;
 
-  802e6c8:	61a0      	str	r0, [r4, #24]
 
- #endif /* LWIP_SO_RCVTIMEO */
 
- #if LWIP_SO_RCVBUF
 
-   conn->recv_bufsize = RECV_BUFSIZE_DEFAULT;
 
-   conn->recv_avail   = 0;
 
- #endif /* LWIP_SO_RCVBUF */
 
-   conn->flags = 0;
 
-  802e6ca:	7720      	strb	r0, [r4, #28]
 
-   return conn;
 
-  802e6cc:	e004      	b.n	802e6d8 <netconn_alloc+0x70>
 
- free_and_return:
 
-   memp_free(MEMP_NETCONN, conn);
 
-  802e6ce:	4621      	mov	r1, r4
 
-  802e6d0:	2006      	movs	r0, #6
 
-  802e6d2:	f001 fa91 	bl	802fbf8 <memp_free>
 
-   return NULL;
 
-  802e6d6:	2400      	movs	r4, #0
 
- }
 
-  802e6d8:	4620      	mov	r0, r4
 
-  802e6da:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 
- 0802e6dc <netconn_free>:
 
-  *
 
-  * @param conn the netconn to free
 
-  */
 
- void
 
- netconn_free(struct netconn *conn)
 
- {
 
-  802e6dc:	b510      	push	{r4, lr}
 
-  802e6de:	4604      	mov	r4, r0
 
- #if LWIP_TCP
 
-   LWIP_ASSERT("acceptmbox must be deallocated before calling this function",
 
-     !sys_mbox_valid(&conn->acceptmbox));
 
- #endif /* LWIP_TCP */
 
-   sys_sem_free(&conn->op_completed);
 
-  802e6e0:	300c      	adds	r0, #12
 
-  802e6e2:	f009 f9d3 	bl	8037a8c <sys_sem_free>
 
-   sys_sem_set_invalid(&conn->op_completed);
 
-  802e6e6:	2300      	movs	r3, #0
 
-   memp_free(MEMP_NETCONN, conn);
 
-  802e6e8:	2006      	movs	r0, #6
 
-  802e6ea:	4621      	mov	r1, r4
 
-   LWIP_ASSERT("acceptmbox must be deallocated before calling this function",
 
-     !sys_mbox_valid(&conn->acceptmbox));
 
- #endif /* LWIP_TCP */
 
-   sys_sem_free(&conn->op_completed);
 
-   sys_sem_set_invalid(&conn->op_completed);
 
-  802e6ec:	60e3      	str	r3, [r4, #12]
 
-   memp_free(MEMP_NETCONN, conn);
 
- }
 
-  802e6ee:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
- #endif /* LWIP_TCP */
 
-   sys_sem_free(&conn->op_completed);
 
-   sys_sem_set_invalid(&conn->op_completed);
 
-   memp_free(MEMP_NETCONN, conn);
 
-  802e6f2:	f001 ba81 	b.w	802fbf8 <memp_free>
 
- 0802e6f6 <netconn_drain>:
 
- #endif /* LWIP_TCP */
 
-   /* This runs in tcpip_thread, so we don't need to lock against rx packets */
 
-   /* Delete and drain the recvmbox. */
 
-   if (sys_mbox_valid(&conn->recvmbox)) {
 
-  802e6f6:	6903      	ldr	r3, [r0, #16]
 
-  * @bytes_drained bytes drained from recvmbox
 
-  * @accepts_drained pending connections drained from acceptmbox
 
-  */
 
- static void
 
- netconn_drain(struct netconn *conn)
 
- {
 
-  802e6f8:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
 
-  802e6fa:	4604      	mov	r4, r0
 
- #endif /* LWIP_TCP */
 
-   /* This runs in tcpip_thread, so we don't need to lock against rx packets */
 
-   /* Delete and drain the recvmbox. */
 
-   if (sys_mbox_valid(&conn->recvmbox)) {
 
-  802e6fc:	b993      	cbnz	r3, 802e724 <netconn_drain+0x2e>
 
-  802e6fe:	e01e      	b.n	802e73e <netconn_drain+0x48>
 
-     while (sys_mbox_tryfetch(&conn->recvmbox, &mem) != SYS_MBOX_EMPTY) {
 
- #if LWIP_TCP
 
-       if (conn->type == NETCONN_TCP) {
 
-  802e700:	7823      	ldrb	r3, [r4, #0]
 
-  802e702:	2b10      	cmp	r3, #16
 
-  802e704:	d10a      	bne.n	802e71c <netconn_drain+0x26>
 
-         if(mem != NULL) {
 
-  802e706:	9d01      	ldr	r5, [sp, #4]
 
-  802e708:	b175      	cbz	r5, 802e728 <netconn_drain+0x32>
 
-           p = (struct pbuf*)mem;
 
-           /* pcb might be set to NULL already by err_tcp() */
 
-           if (conn->pcb.tcp != NULL) {
 
-  802e70a:	6860      	ldr	r0, [r4, #4]
 
-  802e70c:	b110      	cbz	r0, 802e714 <netconn_drain+0x1e>
 
-             tcp_recved(conn->pcb.tcp, p->tot_len);
 
-  802e70e:	8929      	ldrh	r1, [r5, #8]
 
-  802e710:	f001 fe90 	bl	8030434 <tcp_recved>
 
-           }
 
-           pbuf_free(p);
 
-  802e714:	4628      	mov	r0, r5
 
-  802e716:	f001 fb79 	bl	802fe0c <pbuf_free>
 
-  802e71a:	e005      	b.n	802e728 <netconn_drain+0x32>
 
-         }
 
-       } else
 
- #endif /* LWIP_TCP */
 
-       {
 
-         netbuf_delete((struct netbuf *)mem);
 
-  802e71c:	9801      	ldr	r0, [sp, #4]
 
-  802e71e:	f000 f960 	bl	802e9e2 <netbuf_delete>
 
-  802e722:	e001      	b.n	802e728 <netconn_drain+0x32>
 
-   /* This runs in tcpip_thread, so we don't need to lock against rx packets */
 
-   /* Delete and drain the recvmbox. */
 
-   if (sys_mbox_valid(&conn->recvmbox)) {
 
-     while (sys_mbox_tryfetch(&conn->recvmbox, &mem) != SYS_MBOX_EMPTY) {
 
-  802e724:	f100 0610 	add.w	r6, r0, #16
 
-  802e728:	4630      	mov	r0, r6
 
-  802e72a:	a901      	add	r1, sp, #4
 
-  802e72c:	f009 f924 	bl	8037978 <sys_arch_mbox_tryfetch>
 
-  802e730:	3001      	adds	r0, #1
 
-  802e732:	d1e5      	bne.n	802e700 <netconn_drain+0xa>
 
- #endif /* LWIP_TCP */
 
-       {
 
-         netbuf_delete((struct netbuf *)mem);
 
-       }
 
-     }
 
-     sys_mbox_free(&conn->recvmbox);
 
-  802e734:	4630      	mov	r0, r6
 
-  802e736:	f009 f8b1 	bl	803789c <sys_mbox_free>
 
-     sys_mbox_set_invalid(&conn->recvmbox);
 
-  802e73a:	2300      	movs	r3, #0
 
-  802e73c:	6123      	str	r3, [r4, #16]
 
-   }
 
-   /* Delete and drain the acceptmbox. */
 
- #if LWIP_TCP
 
-   if (sys_mbox_valid(&conn->acceptmbox)) {
 
-  802e73e:	6963      	ldr	r3, [r4, #20]
 
-  802e740:	b96b      	cbnz	r3, 802e75e <netconn_drain+0x68>
 
-  802e742:	e01a      	b.n	802e77a <netconn_drain+0x84>
 
-     while (sys_mbox_tryfetch(&conn->acceptmbox, &mem) != SYS_MBOX_EMPTY) {
 
-       struct netconn *newconn = (struct netconn *)mem;
 
-  802e744:	9d01      	ldr	r5, [sp, #4]
 
-       /* pcb might be set to NULL already by err_tcp() */
 
-       if (conn->pcb.tcp != NULL) {
 
-         tcp_accepted(conn->pcb.tcp);
 
-       }
 
-       /* drain recvmbox */
 
-       netconn_drain(newconn);
 
-  802e746:	4628      	mov	r0, r5
 
-  802e748:	f7ff ffd5 	bl	802e6f6 <netconn_drain>
 
-       if (newconn->pcb.tcp != NULL) {
 
-  802e74c:	6868      	ldr	r0, [r5, #4]
 
-  802e74e:	b110      	cbz	r0, 802e756 <netconn_drain+0x60>
 
-         tcp_abort(newconn->pcb.tcp);
 
-  802e750:	f002 f88e 	bl	8030870 <tcp_abort>
 
-         newconn->pcb.tcp = NULL;
 
-  802e754:	606f      	str	r7, [r5, #4]
 
-       }
 
-       netconn_free(newconn);
 
-  802e756:	4628      	mov	r0, r5
 
-  802e758:	f7ff ffc0 	bl	802e6dc <netconn_free>
 
-  802e75c:	e002      	b.n	802e764 <netconn_drain+0x6e>
 
-   }
 
-   /* Delete and drain the acceptmbox. */
 
- #if LWIP_TCP
 
-   if (sys_mbox_valid(&conn->acceptmbox)) {
 
-     while (sys_mbox_tryfetch(&conn->acceptmbox, &mem) != SYS_MBOX_EMPTY) {
 
-  802e75e:	f104 0614 	add.w	r6, r4, #20
 
-       }
 
-       /* drain recvmbox */
 
-       netconn_drain(newconn);
 
-       if (newconn->pcb.tcp != NULL) {
 
-         tcp_abort(newconn->pcb.tcp);
 
-         newconn->pcb.tcp = NULL;
 
-  802e762:	2700      	movs	r7, #0
 
-   }
 
-   /* Delete and drain the acceptmbox. */
 
- #if LWIP_TCP
 
-   if (sys_mbox_valid(&conn->acceptmbox)) {
 
-     while (sys_mbox_tryfetch(&conn->acceptmbox, &mem) != SYS_MBOX_EMPTY) {
 
-  802e764:	4630      	mov	r0, r6
 
-  802e766:	a901      	add	r1, sp, #4
 
-  802e768:	f009 f906 	bl	8037978 <sys_arch_mbox_tryfetch>
 
-  802e76c:	3001      	adds	r0, #1
 
-  802e76e:	d1e9      	bne.n	802e744 <netconn_drain+0x4e>
 
-         tcp_abort(newconn->pcb.tcp);
 
-         newconn->pcb.tcp = NULL;
 
-       }
 
-       netconn_free(newconn);
 
-     }
 
-     sys_mbox_free(&conn->acceptmbox);
 
-  802e770:	4630      	mov	r0, r6
 
-  802e772:	f009 f893 	bl	803789c <sys_mbox_free>
 
-     sys_mbox_set_invalid(&conn->acceptmbox);
 
-  802e776:	2300      	movs	r3, #0
 
-  802e778:	6163      	str	r3, [r4, #20]
 
-   }
 
- #endif /* LWIP_TCP */
 
- }
 
-  802e77a:	bdfe      	pop	{r1, r2, r3, r4, r5, r6, r7, pc}
 
- 0802e77c <do_delconn>:
 
-  *
 
-  * @param msg the api_msg_msg pointing to the connection
 
-  */
 
- void
 
- do_delconn(struct api_msg_msg *msg)
 
- {
 
-  802e77c:	b510      	push	{r4, lr}
 
-  802e77e:	4604      	mov	r4, r0
 
-   /* @todo TCP: abort running write/connect? */
 
-  if ((msg->conn->state != NETCONN_NONE) &&
 
-  802e780:	6800      	ldr	r0, [r0, #0]
 
-  802e782:	7843      	ldrb	r3, [r0, #1]
 
-  802e784:	2b03      	cmp	r3, #3
 
-  802e786:	d805      	bhi.n	802e794 <do_delconn+0x18>
 
-  802e788:	f990 3001 	ldrsb.w	r3, [r0, #1]
 
-  802e78c:	f04f 4230 	mov.w	r2, #2952790016	; 0xb0000000
 
-  802e790:	409a      	lsls	r2, r3
 
-  802e792:	d402      	bmi.n	802e79a <do_delconn+0x1e>
 
-      (msg->conn->state != NETCONN_LISTEN) &&
 
-      (msg->conn->state != NETCONN_CONNECT)) {
 
-     /* this only happens for TCP netconns */
 
-     LWIP_ASSERT("msg->conn->type == NETCONN_TCP", msg->conn->type == NETCONN_TCP);
 
-     msg->err = ERR_INPROGRESS;
 
-  802e794:	23fb      	movs	r3, #251	; 0xfb
 
-  802e796:	7123      	strb	r3, [r4, #4]
 
-  802e798:	e030      	b.n	802e7fc <do_delconn+0x80>
 
-   } else {
 
-     LWIP_ASSERT("blocking connect in progress",
 
-       (msg->conn->state != NETCONN_CONNECT) || IN_NONBLOCKING_CONNECT(msg->conn));
 
-     /* Drain and delete mboxes */
 
-     netconn_drain(msg->conn);
 
-  802e79a:	f7ff ffac 	bl	802e6f6 <netconn_drain>
 
-     if (msg->conn->pcb.tcp != NULL) {
 
-  802e79e:	6823      	ldr	r3, [r4, #0]
 
-  802e7a0:	6858      	ldr	r0, [r3, #4]
 
-  802e7a2:	b1f8      	cbz	r0, 802e7e4 <do_delconn+0x68>
 
-       switch (NETCONNTYPE_GROUP(msg->conn->type)) {
 
-  802e7a4:	781a      	ldrb	r2, [r3, #0]
 
-  802e7a6:	f002 02f0 	and.w	r2, r2, #240	; 0xf0
 
-  802e7aa:	2a20      	cmp	r2, #32
 
-  802e7ac:	d007      	beq.n	802e7be <do_delconn+0x42>
 
-  802e7ae:	2a40      	cmp	r2, #64	; 0x40
 
-  802e7b0:	d002      	beq.n	802e7b8 <do_delconn+0x3c>
 
-  802e7b2:	2a10      	cmp	r2, #16
 
-  802e7b4:	d113      	bne.n	802e7de <do_delconn+0x62>
 
-  802e7b6:	e008      	b.n	802e7ca <do_delconn+0x4e>
 
- #if LWIP_RAW
 
-       case NETCONN_RAW:
 
-         raw_remove(msg->conn->pcb.raw);
 
-  802e7b8:	f001 fd3e 	bl	8030238 <raw_remove>
 
-         break;
 
-  802e7bc:	e00f      	b.n	802e7de <do_delconn+0x62>
 
- #endif /* LWIP_RAW */
 
- #if LWIP_UDP
 
-       case NETCONN_UDP:
 
-         msg->conn->pcb.udp->recv_arg = NULL;
 
-  802e7be:	2200      	movs	r2, #0
 
-  802e7c0:	61c2      	str	r2, [r0, #28]
 
-         udp_remove(msg->conn->pcb.udp);
 
-  802e7c2:	6858      	ldr	r0, [r3, #4]
 
-  802e7c4:	f004 f990 	bl	8032ae8 <udp_remove>
 
-         break;
 
-  802e7c8:	e009      	b.n	802e7de <do_delconn+0x62>
 
- #endif /* LWIP_UDP */
 
- #if LWIP_TCP
 
-       case NETCONN_TCP:
 
-         LWIP_ASSERT("already writing or closing", msg->conn->current_msg == NULL &&
 
-           msg->conn->write_offset == 0);
 
-         msg->conn->state = NETCONN_CLOSE;
 
-  802e7ca:	2204      	movs	r2, #4
 
-  802e7cc:	705a      	strb	r2, [r3, #1]
 
-         msg->msg.sd.shut = NETCONN_SHUT_RDWR;
 
-         msg->conn->current_msg = msg;
 
-         do_close_internal(msg->conn);
 
-  802e7ce:	4618      	mov	r0, r3
 
- #if LWIP_TCP
 
-       case NETCONN_TCP:
 
-         LWIP_ASSERT("already writing or closing", msg->conn->current_msg == NULL &&
 
-           msg->conn->write_offset == 0);
 
-         msg->conn->state = NETCONN_CLOSE;
 
-         msg->msg.sd.shut = NETCONN_SHUT_RDWR;
 
-  802e7d0:	2203      	movs	r2, #3
 
-  802e7d2:	7222      	strb	r2, [r4, #8]
 
-         msg->conn->current_msg = msg;
 
-  802e7d4:	625c      	str	r4, [r3, #36]	; 0x24
 
-     API_EVENT(msg->conn, NETCONN_EVT_SENDPLUS, 0);
 
-   }
 
-   if (sys_sem_valid(&msg->conn->op_completed)) {
 
-     sys_sem_signal(&msg->conn->op_completed);
 
-   }
 
- }
 
-  802e7d6:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
-         LWIP_ASSERT("already writing or closing", msg->conn->current_msg == NULL &&
 
-           msg->conn->write_offset == 0);
 
-         msg->conn->state = NETCONN_CLOSE;
 
-         msg->msg.sd.shut = NETCONN_SHUT_RDWR;
 
-         msg->conn->current_msg = msg;
 
-         do_close_internal(msg->conn);
 
-  802e7da:	f7ff bca5 	b.w	802e128 <do_close_internal>
 
-         return;
 
- #endif /* LWIP_TCP */
 
-       default:
 
-         break;
 
-       }
 
-       msg->conn->pcb.tcp = NULL;
 
-  802e7de:	6823      	ldr	r3, [r4, #0]
 
-  802e7e0:	2200      	movs	r2, #0
 
-  802e7e2:	605a      	str	r2, [r3, #4]
 
-     }
 
-     /* tcp netconns don't come here! */
 
-     /* @todo: this lets select make the socket readable and writable,
 
-        which is wrong! errfd instead? */
 
-     API_EVENT(msg->conn, NETCONN_EVT_RCVPLUS, 0);
 
-  802e7e4:	6820      	ldr	r0, [r4, #0]
 
-  802e7e6:	6a83      	ldr	r3, [r0, #40]	; 0x28
 
-  802e7e8:	b113      	cbz	r3, 802e7f0 <do_delconn+0x74>
 
-  802e7ea:	2100      	movs	r1, #0
 
-  802e7ec:	460a      	mov	r2, r1
 
-  802e7ee:	4798      	blx	r3
 
-     API_EVENT(msg->conn, NETCONN_EVT_SENDPLUS, 0);
 
-  802e7f0:	6820      	ldr	r0, [r4, #0]
 
-  802e7f2:	6a83      	ldr	r3, [r0, #40]	; 0x28
 
-  802e7f4:	b113      	cbz	r3, 802e7fc <do_delconn+0x80>
 
-  802e7f6:	2102      	movs	r1, #2
 
-  802e7f8:	2200      	movs	r2, #0
 
-  802e7fa:	4798      	blx	r3
 
-   }
 
-   if (sys_sem_valid(&msg->conn->op_completed)) {
 
-  802e7fc:	6820      	ldr	r0, [r4, #0]
 
-  802e7fe:	68c3      	ldr	r3, [r0, #12]
 
-  802e800:	b123      	cbz	r3, 802e80c <do_delconn+0x90>
 
-     sys_sem_signal(&msg->conn->op_completed);
 
-  802e802:	300c      	adds	r0, #12
 
-   }
 
- }
 
-  802e804:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
-        which is wrong! errfd instead? */
 
-     API_EVENT(msg->conn, NETCONN_EVT_RCVPLUS, 0);
 
-     API_EVENT(msg->conn, NETCONN_EVT_SENDPLUS, 0);
 
-   }
 
-   if (sys_sem_valid(&msg->conn->op_completed)) {
 
-     sys_sem_signal(&msg->conn->op_completed);
 
-  802e808:	f009 b92e 	b.w	8037a68 <sys_sem_signal>
 
-  802e80c:	bd10      	pop	{r4, pc}
 
- 0802e80e <do_bind>:
 
-  * @param msg the api_msg_msg pointing to the connection and containing
 
-  *            the IP address and port to bind to
 
-  */
 
- void
 
- do_bind(struct api_msg_msg *msg)
 
- {
 
-  802e80e:	b510      	push	{r4, lr}
 
-   if (ERR_IS_FATAL(msg->conn->last_err)) {
 
-  802e810:	6803      	ldr	r3, [r0, #0]
 
-  802e812:	7a1a      	ldrb	r2, [r3, #8]
 
-  802e814:	b251      	sxtb	r1, r2
 
-  802e816:	3109      	adds	r1, #9
 
-  * @param msg the api_msg_msg pointing to the connection and containing
 
-  *            the IP address and port to bind to
 
-  */
 
- void
 
- do_bind(struct api_msg_msg *msg)
 
- {
 
-  802e818:	4604      	mov	r4, r0
 
-   if (ERR_IS_FATAL(msg->conn->last_err)) {
 
-  802e81a:	da01      	bge.n	802e820 <do_bind+0x12>
 
-     msg->err = msg->conn->last_err;
 
-  802e81c:	7102      	strb	r2, [r0, #4]
 
-  802e81e:	e01b      	b.n	802e858 <do_bind+0x4a>
 
-   } else {
 
-     msg->err = ERR_VAL;
 
-  802e820:	22fa      	movs	r2, #250	; 0xfa
 
-  802e822:	7102      	strb	r2, [r0, #4]
 
-     if (msg->conn->pcb.tcp != NULL) {
 
-  802e824:	6858      	ldr	r0, [r3, #4]
 
-  802e826:	b1b8      	cbz	r0, 802e858 <do_bind+0x4a>
 
-       switch (NETCONNTYPE_GROUP(msg->conn->type)) {
 
-  802e828:	781b      	ldrb	r3, [r3, #0]
 
-  802e82a:	f003 03f0 	and.w	r3, r3, #240	; 0xf0
 
-  802e82e:	2b20      	cmp	r3, #32
 
-  802e830:	d008      	beq.n	802e844 <do_bind+0x36>
 
-  802e832:	2b40      	cmp	r3, #64	; 0x40
 
-  802e834:	d002      	beq.n	802e83c <do_bind+0x2e>
 
-  802e836:	2b10      	cmp	r3, #16
 
-  802e838:	d10e      	bne.n	802e858 <do_bind+0x4a>
 
-  802e83a:	e008      	b.n	802e84e <do_bind+0x40>
 
- #if LWIP_RAW
 
-       case NETCONN_RAW:
 
-         msg->err = raw_bind(msg->conn->pcb.raw, msg->msg.bc.ipaddr);
 
-  802e83c:	68a1      	ldr	r1, [r4, #8]
 
-  802e83e:	f001 fca5 	bl	803018c <raw_bind>
 
-  802e842:	e008      	b.n	802e856 <do_bind+0x48>
 
-         break;
 
- #endif /* LWIP_RAW */
 
- #if LWIP_UDP
 
-       case NETCONN_UDP:
 
-         msg->err = udp_bind(msg->conn->pcb.udp, msg->msg.bc.ipaddr, msg->msg.bc.port);
 
-  802e844:	68a1      	ldr	r1, [r4, #8]
 
-  802e846:	89a2      	ldrh	r2, [r4, #12]
 
-  802e848:	f004 f852 	bl	80328f0 <udp_bind>
 
-  802e84c:	e003      	b.n	802e856 <do_bind+0x48>
 
-         break;
 
- #endif /* LWIP_UDP */
 
- #if LWIP_TCP
 
-       case NETCONN_TCP:
 
-         msg->err = tcp_bind(msg->conn->pcb.tcp, msg->msg.bc.ipaddr, msg->msg.bc.port);
 
-  802e84e:	68a1      	ldr	r1, [r4, #8]
 
-  802e850:	89a2      	ldrh	r2, [r4, #12]
 
-  802e852:	f001 fd4f 	bl	80302f4 <tcp_bind>
 
-  802e856:	7120      	strb	r0, [r4, #4]
 
-       default:
 
-         break;
 
-       }
 
-     }
 
-   }
 
-   TCPIP_APIMSG_ACK(msg);
 
-  802e858:	6820      	ldr	r0, [r4, #0]
 
-  802e85a:	300c      	adds	r0, #12
 
- }
 
-  802e85c:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
-       default:
 
-         break;
 
-       }
 
-     }
 
-   }
 
-   TCPIP_APIMSG_ACK(msg);
 
-  802e860:	f009 b902 	b.w	8037a68 <sys_sem_signal>
 
- 0802e864 <do_connect>:
 
-  * @param msg the api_msg_msg pointing to the connection and containing
 
-  *            the IP address and port to connect to
 
-  */
 
- void
 
- do_connect(struct api_msg_msg *msg)
 
- {
 
-  802e864:	b510      	push	{r4, lr}
 
-   if (msg->conn->pcb.tcp == NULL) {
 
-  802e866:	6803      	ldr	r3, [r0, #0]
 
-  * @param msg the api_msg_msg pointing to the connection and containing
 
-  *            the IP address and port to connect to
 
-  */
 
- void
 
- do_connect(struct api_msg_msg *msg)
 
- {
 
-  802e868:	4604      	mov	r4, r0
 
-   if (msg->conn->pcb.tcp == NULL) {
 
-  802e86a:	6858      	ldr	r0, [r3, #4]
 
-  802e86c:	b908      	cbnz	r0, 802e872 <do_connect+0xe>
 
-     /* This may happen when calling netconn_connect() a second time */
 
-     msg->err = ERR_CLSD;
 
-  802e86e:	23f4      	movs	r3, #244	; 0xf4
 
-  802e870:	e037      	b.n	802e8e2 <do_connect+0x7e>
 
-   } else {
 
-     switch (NETCONNTYPE_GROUP(msg->conn->type)) {
 
-  802e872:	781a      	ldrb	r2, [r3, #0]
 
-  802e874:	f002 02f0 	and.w	r2, r2, #240	; 0xf0
 
-  802e878:	2a20      	cmp	r2, #32
 
-  802e87a:	d008      	beq.n	802e88e <do_connect+0x2a>
 
-  802e87c:	2a40      	cmp	r2, #64	; 0x40
 
-  802e87e:	d002      	beq.n	802e886 <do_connect+0x22>
 
-  802e880:	2a10      	cmp	r2, #16
 
-  802e882:	d12d      	bne.n	802e8e0 <do_connect+0x7c>
 
-  802e884:	e009      	b.n	802e89a <do_connect+0x36>
 
- #if LWIP_RAW
 
-   case NETCONN_RAW:
 
-     msg->err = raw_connect(msg->conn->pcb.raw, msg->msg.bc.ipaddr);
 
-  802e886:	68a1      	ldr	r1, [r4, #8]
 
-  802e888:	f001 fc85 	bl	8030196 <raw_connect>
 
-  802e88c:	e003      	b.n	802e896 <do_connect+0x32>
 
-     break;
 
- #endif /* LWIP_RAW */
 
- #if LWIP_UDP
 
-   case NETCONN_UDP:
 
-     msg->err = udp_connect(msg->conn->pcb.udp, msg->msg.bc.ipaddr, msg->msg.bc.port);
 
-  802e88e:	68a1      	ldr	r1, [r4, #8]
 
-  802e890:	89a2      	ldrh	r2, [r4, #12]
 
-  802e892:	f004 f8f7 	bl	8032a84 <udp_connect>
 
-  802e896:	7120      	strb	r0, [r4, #4]
 
-     break;
 
-  802e898:	e024      	b.n	802e8e4 <do_connect+0x80>
 
- #endif /* LWIP_UDP */
 
- #if LWIP_TCP
 
-   case NETCONN_TCP:
 
-     /* Prevent connect while doing any other action. */
 
-     if (msg->conn->state != NETCONN_NONE) {
 
-  802e89a:	785a      	ldrb	r2, [r3, #1]
 
-  802e89c:	b10a      	cbz	r2, 802e8a2 <do_connect+0x3e>
 
-       msg->err = ERR_ISCONN;
 
-  802e89e:	23f7      	movs	r3, #247	; 0xf7
 
-  802e8a0:	e01f      	b.n	802e8e2 <do_connect+0x7e>
 
-     } else {
 
-       setup_tcp(msg->conn);
 
-  802e8a2:	4618      	mov	r0, r3
 
-  802e8a4:	f7ff fc1e 	bl	802e0e4 <setup_tcp>
 
-       msg->err = tcp_connect(msg->conn->pcb.tcp, msg->msg.bc.ipaddr,
 
-  802e8a8:	6823      	ldr	r3, [r4, #0]
 
-  802e8aa:	68a1      	ldr	r1, [r4, #8]
 
-  802e8ac:	6858      	ldr	r0, [r3, #4]
 
-  802e8ae:	89a2      	ldrh	r2, [r4, #12]
 
-  802e8b0:	4b0f      	ldr	r3, [pc, #60]	; (802e8f0 <do_connect+0x8c>)
 
-  802e8b2:	f002 f9f5 	bl	8030ca0 <tcp_connect>
 
-  802e8b6:	7120      	strb	r0, [r4, #4]
 
-         msg->msg.bc.port, do_connected);
 
-       if (msg->err == ERR_OK) {
 
-  802e8b8:	b9a0      	cbnz	r0, 802e8e4 <do_connect+0x80>
 
-         u8_t non_blocking = netconn_is_nonblocking(msg->conn);
 
-  802e8ba:	6823      	ldr	r3, [r4, #0]
 
-  802e8bc:	7f1a      	ldrb	r2, [r3, #28]
 
-         msg->conn->state = NETCONN_CONNECT;
 
-  802e8be:	2103      	movs	r1, #3
 
-  802e8c0:	7059      	strb	r1, [r3, #1]
 
-         SET_NONBLOCKING_CONNECT(msg->conn, non_blocking);
 
-  802e8c2:	f002 0102 	and.w	r1, r2, #2
 
-  802e8c6:	b2c9      	uxtb	r1, r1
 
-  802e8c8:	b121      	cbz	r1, 802e8d4 <do_connect+0x70>
 
-  802e8ca:	f042 0204 	orr.w	r2, r2, #4
 
-  802e8ce:	771a      	strb	r2, [r3, #28]
 
-         if (non_blocking) {
 
-           msg->err = ERR_INPROGRESS;
 
-  802e8d0:	23fb      	movs	r3, #251	; 0xfb
 
-  802e8d2:	e006      	b.n	802e8e2 <do_connect+0x7e>
 
-       msg->err = tcp_connect(msg->conn->pcb.tcp, msg->msg.bc.ipaddr,
 
-         msg->msg.bc.port, do_connected);
 
-       if (msg->err == ERR_OK) {
 
-         u8_t non_blocking = netconn_is_nonblocking(msg->conn);
 
-         msg->conn->state = NETCONN_CONNECT;
 
-         SET_NONBLOCKING_CONNECT(msg->conn, non_blocking);
 
-  802e8d4:	f022 0204 	bic.w	r2, r2, #4
 
-  802e8d8:	771a      	strb	r2, [r3, #28]
 
-         if (non_blocking) {
 
-           msg->err = ERR_INPROGRESS;
 
-         } else {
 
-           msg->conn->current_msg = msg;
 
-  802e8da:	6823      	ldr	r3, [r4, #0]
 
-  802e8dc:	625c      	str	r4, [r3, #36]	; 0x24
 
-           /* sys_sem_signal() is called from do_connected (or err_tcp()),
 
-           * when the connection is established! */
 
-           return;
 
-  802e8de:	bd10      	pop	{r4, pc}
 
-       }
 
-     }
 
-     break;
 
- #endif /* LWIP_TCP */
 
-   default:
 
-     LWIP_ERROR("Invalid netconn type", 0, do{ msg->err = ERR_VAL; }while(0));
 
-  802e8e0:	23fa      	movs	r3, #250	; 0xfa
 
-  802e8e2:	7123      	strb	r3, [r4, #4]
 
-     break;
 
-     }
 
-   }
 
-   sys_sem_signal(&msg->conn->op_completed);
 
-  802e8e4:	6820      	ldr	r0, [r4, #0]
 
-  802e8e6:	300c      	adds	r0, #12
 
- }
 
-  802e8e8:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
-   default:
 
-     LWIP_ERROR("Invalid netconn type", 0, do{ msg->err = ERR_VAL; }while(0));
 
-     break;
 
-     }
 
-   }
 
-   sys_sem_signal(&msg->conn->op_completed);
 
-  802e8ec:	f009 b8bc 	b.w	8037a68 <sys_sem_signal>
 
-  802e8f0:	0802e211 	.word	0x0802e211
 
- 0802e8f4 <do_disconnect>:
 
-  */
 
- void
 
- do_disconnect(struct api_msg_msg *msg)
 
- {
 
- #if LWIP_UDP
 
-   if (NETCONNTYPE_GROUP(msg->conn->type) == NETCONN_UDP) {
 
-  802e8f4:	6803      	ldr	r3, [r0, #0]
 
-  802e8f6:	781a      	ldrb	r2, [r3, #0]
 
-  802e8f8:	f002 02f0 	and.w	r2, r2, #240	; 0xf0
 
-  802e8fc:	2a20      	cmp	r2, #32
 
-  *
 
-  * @param msg the api_msg_msg pointing to the connection to disconnect
 
-  */
 
- void
 
- do_disconnect(struct api_msg_msg *msg)
 
- {
 
-  802e8fe:	b510      	push	{r4, lr}
 
-  802e900:	4604      	mov	r4, r0
 
- #if LWIP_UDP
 
-   if (NETCONNTYPE_GROUP(msg->conn->type) == NETCONN_UDP) {
 
-  802e902:	d104      	bne.n	802e90e <do_disconnect+0x1a>
 
-     udp_disconnect(msg->conn->pcb.udp);
 
-  802e904:	6858      	ldr	r0, [r3, #4]
 
-  802e906:	f004 f8e3 	bl	8032ad0 <udp_disconnect>
 
-     msg->err = ERR_OK;
 
-  802e90a:	2300      	movs	r3, #0
 
-  802e90c:	e000      	b.n	802e910 <do_disconnect+0x1c>
 
-   } else
 
- #endif /* LWIP_UDP */
 
-   {
 
-     msg->err = ERR_VAL;
 
-  802e90e:	23fa      	movs	r3, #250	; 0xfa
 
-   }
 
-   TCPIP_APIMSG_ACK(msg);
 
-  802e910:	6820      	ldr	r0, [r4, #0]
 
-     udp_disconnect(msg->conn->pcb.udp);
 
-     msg->err = ERR_OK;
 
-   } else
 
- #endif /* LWIP_UDP */
 
-   {
 
-     msg->err = ERR_VAL;
 
-  802e912:	7123      	strb	r3, [r4, #4]
 
-   }
 
-   TCPIP_APIMSG_ACK(msg);
 
-  802e914:	300c      	adds	r0, #12
 
- }
 
-  802e916:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
-   } else
 
- #endif /* LWIP_UDP */
 
-   {
 
-     msg->err = ERR_VAL;
 
-   }
 
-   TCPIP_APIMSG_ACK(msg);
 
-  802e91a:	f009 b8a5 	b.w	8037a68 <sys_sem_signal>
 
- 0802e91e <do_send>:
 
-  *
 
-  * @param msg the api_msg_msg pointing to the connection
 
-  */
 
- void
 
- do_send(struct api_msg_msg *msg)
 
- {
 
-  802e91e:	b510      	push	{r4, lr}
 
-   if (ERR_IS_FATAL(msg->conn->last_err)) {
 
-  802e920:	6803      	ldr	r3, [r0, #0]
 
-  802e922:	7a1a      	ldrb	r2, [r3, #8]
 
-  802e924:	b251      	sxtb	r1, r2
 
-  802e926:	3109      	adds	r1, #9
 
-  *
 
-  * @param msg the api_msg_msg pointing to the connection
 
-  */
 
- void
 
- do_send(struct api_msg_msg *msg)
 
- {
 
-  802e928:	4604      	mov	r4, r0
 
-   if (ERR_IS_FATAL(msg->conn->last_err)) {
 
-  802e92a:	da01      	bge.n	802e930 <do_send+0x12>
 
-     msg->err = msg->conn->last_err;
 
-  802e92c:	7102      	strb	r2, [r0, #4]
 
-  802e92e:	e027      	b.n	802e980 <do_send+0x62>
 
-   } else {
 
-     msg->err = ERR_CONN;
 
-  802e930:	22f3      	movs	r2, #243	; 0xf3
 
-  802e932:	7102      	strb	r2, [r0, #4]
 
-     if (msg->conn->pcb.tcp != NULL) {
 
-  802e934:	6858      	ldr	r0, [r3, #4]
 
-  802e936:	b318      	cbz	r0, 802e980 <do_send+0x62>
 
-       switch (NETCONNTYPE_GROUP(msg->conn->type)) {
 
-  802e938:	781b      	ldrb	r3, [r3, #0]
 
-  802e93a:	f003 03f0 	and.w	r3, r3, #240	; 0xf0
 
-  802e93e:	2b20      	cmp	r3, #32
 
-  802e940:	d00f      	beq.n	802e962 <do_send+0x44>
 
-  802e942:	2b40      	cmp	r3, #64	; 0x40
 
-  802e944:	d11c      	bne.n	802e980 <do_send+0x62>
 
- #if LWIP_RAW
 
-       case NETCONN_RAW:
 
-         if (ip_addr_isany(&msg->msg.b->addr)) {
 
-  802e946:	68a3      	ldr	r3, [r4, #8]
 
-  802e948:	f113 0208 	adds.w	r2, r3, #8
 
-  802e94c:	d001      	beq.n	802e952 <do_send+0x34>
 
-  802e94e:	6899      	ldr	r1, [r3, #8]
 
-  802e950:	b919      	cbnz	r1, 802e95a <do_send+0x3c>
 
-           msg->err = raw_send(msg->conn->pcb.raw, msg->msg.b->p);
 
-  802e952:	6819      	ldr	r1, [r3, #0]
 
-  802e954:	f001 fc6c 	bl	8030230 <raw_send>
 
-  802e958:	e011      	b.n	802e97e <do_send+0x60>
 
-         } else {
 
-           msg->err = raw_sendto(msg->conn->pcb.raw, msg->msg.b->p, &msg->msg.b->addr);
 
-  802e95a:	6819      	ldr	r1, [r3, #0]
 
-  802e95c:	f001 fc23 	bl	80301a6 <raw_sendto>
 
-  802e960:	e00d      	b.n	802e97e <do_send+0x60>
 
-           msg->err = udp_sendto_chksum(msg->conn->pcb.udp, msg->msg.b->p,
 
-             &msg->msg.b->addr, msg->msg.b->port,
 
-             msg->msg.b->flags & NETBUF_FLAG_CHKSUM, msg->msg.b->toport_chksum);
 
-         }
 
- #else /* LWIP_CHECKSUM_ON_COPY */
 
-         if (ip_addr_isany(&msg->msg.b->addr)) {
 
-  802e962:	68a3      	ldr	r3, [r4, #8]
 
-  802e964:	f113 0208 	adds.w	r2, r3, #8
 
-  802e968:	d001      	beq.n	802e96e <do_send+0x50>
 
-  802e96a:	6899      	ldr	r1, [r3, #8]
 
-  802e96c:	b919      	cbnz	r1, 802e976 <do_send+0x58>
 
-           msg->err = udp_send(msg->conn->pcb.udp, msg->msg.b->p);
 
-  802e96e:	6819      	ldr	r1, [r3, #0]
 
-  802e970:	f004 f883 	bl	8032a7a <udp_send>
 
-  802e974:	e003      	b.n	802e97e <do_send+0x60>
 
-         } else {
 
-           msg->err = udp_sendto(msg->conn->pcb.udp, msg->msg.b->p, &msg->msg.b->addr, msg->msg.b->port);
 
-  802e976:	6819      	ldr	r1, [r3, #0]
 
-  802e978:	899b      	ldrh	r3, [r3, #12]
 
-  802e97a:	f004 f86a 	bl	8032a52 <udp_sendto>
 
-  802e97e:	7120      	strb	r0, [r4, #4]
 
-       default:
 
-         break;
 
-       }
 
-     }
 
-   }
 
-   TCPIP_APIMSG_ACK(msg);
 
-  802e980:	6820      	ldr	r0, [r4, #0]
 
-  802e982:	300c      	adds	r0, #12
 
- }
 
-  802e984:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
-       default:
 
-         break;
 
-       }
 
-     }
 
-   }
 
-   TCPIP_APIMSG_ACK(msg);
 
-  802e988:	f009 b86e 	b.w	8037a68 <sys_sem_signal>
 
- 0802e98c <do_recv>:
 
-  *
 
-  * @param msg the api_msg_msg pointing to the connection
 
-  */
 
- void
 
- do_recv(struct api_msg_msg *msg)
 
- {
 
-  802e98c:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
-   msg->err = ERR_OK;
 
-  802e98e:	2300      	movs	r3, #0
 
-  802e990:	7103      	strb	r3, [r0, #4]
 
-   if (msg->conn->pcb.tcp != NULL) {
 
-  802e992:	6803      	ldr	r3, [r0, #0]
 
-  802e994:	685a      	ldr	r2, [r3, #4]
 
-  *
 
-  * @param msg the api_msg_msg pointing to the connection
 
-  */
 
- void
 
- do_recv(struct api_msg_msg *msg)
 
- {
 
-  802e996:	4604      	mov	r4, r0
 
-   msg->err = ERR_OK;
 
-   if (msg->conn->pcb.tcp != NULL) {
 
-  802e998:	b92a      	cbnz	r2, 802e9a6 <do_recv+0x1a>
 
-           remaining -= recved;
 
-         }while(remaining != 0);
 
-       }
 
-     }
 
-   }
 
-   TCPIP_APIMSG_ACK(msg);
 
-  802e99a:	6820      	ldr	r0, [r4, #0]
 
-  802e99c:	300c      	adds	r0, #12
 
- }
 
-  802e99e:	e8bd 40f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, lr}
 
-           remaining -= recved;
 
-         }while(remaining != 0);
 
-       }
 
-     }
 
-   }
 
-   TCPIP_APIMSG_ACK(msg);
 
-  802e9a2:	f009 b861 	b.w	8037a68 <sys_sem_signal>
 
- void
 
- do_recv(struct api_msg_msg *msg)
 
- {
 
-   msg->err = ERR_OK;
 
-   if (msg->conn->pcb.tcp != NULL) {
 
-     if (msg->conn->type == NETCONN_TCP) {
 
-  802e9a6:	781b      	ldrb	r3, [r3, #0]
 
-  802e9a8:	2b10      	cmp	r3, #16
 
-  802e9aa:	d1f6      	bne.n	802e99a <do_recv+0xe>
 
-       if (msg->conn->pcb.tcp->state == LISTEN) {
 
-         tcp_accepted(msg->conn->pcb.tcp);
 
-       } else
 
- #endif /* TCP_LISTEN_BACKLOG */
 
-       {
 
-         u32_t remaining = msg->msg.r.len;
 
-  802e9ac:	6885      	ldr	r5, [r0, #8]
 
-         do {
 
-           u16_t recved = (remaining > 0xffff) ? 0xffff : (u16_t)remaining;
 
-  802e9ae:	f64f 77ff 	movw	r7, #65535	; 0xffff
 
-  802e9b2:	42bd      	cmp	r5, r7
 
-           tcp_recved(msg->conn->pcb.tcp, recved);
 
-  802e9b4:	6823      	ldr	r3, [r4, #0]
 
-       } else
 
- #endif /* TCP_LISTEN_BACKLOG */
 
-       {
 
-         u32_t remaining = msg->msg.r.len;
 
-         do {
 
-           u16_t recved = (remaining > 0xffff) ? 0xffff : (u16_t)remaining;
 
-  802e9b6:	bf94      	ite	ls
 
-  802e9b8:	b2ae      	uxthls	r6, r5
 
-  802e9ba:	f64f 76ff 	movwhi	r6, #65535	; 0xffff
 
-           tcp_recved(msg->conn->pcb.tcp, recved);
 
-  802e9be:	6858      	ldr	r0, [r3, #4]
 
-  802e9c0:	4631      	mov	r1, r6
 
-  802e9c2:	f001 fd37 	bl	8030434 <tcp_recved>
 
-           remaining -= recved;
 
-         }while(remaining != 0);
 
-  802e9c6:	1bad      	subs	r5, r5, r6
 
-  802e9c8:	d1f3      	bne.n	802e9b2 <do_recv+0x26>
 
-  802e9ca:	e7e6      	b.n	802e99a <do_recv+0xe>
 
- 0802e9cc <netbuf_new>:
 
-  * @return a pointer to a new netbuf
 
-  *         NULL on lack of memory
 
-  */
 
- struct
 
- netbuf *netbuf_new(void)
 
- {
 
-  802e9cc:	b508      	push	{r3, lr}
 
-   struct netbuf *buf;
 
-   buf = (struct netbuf *)memp_malloc(MEMP_NETBUF);
 
-  802e9ce:	2005      	movs	r0, #5
 
-  802e9d0:	f001 f8fc 	bl	802fbcc <memp_malloc>
 
-   if (buf != NULL) {
 
-  802e9d4:	b120      	cbz	r0, 802e9e0 <netbuf_new+0x14>
 
-     buf->p = NULL;
 
-  802e9d6:	2300      	movs	r3, #0
 
-  802e9d8:	6003      	str	r3, [r0, #0]
 
-     buf->ptr = NULL;
 
-  802e9da:	6043      	str	r3, [r0, #4]
 
-     ip_addr_set_any(&buf->addr);
 
-  802e9dc:	6083      	str	r3, [r0, #8]
 
-     buf->port = 0;
 
-  802e9de:	8183      	strh	r3, [r0, #12]
 
- #endif /* LWIP_NETBUF_RECVINFO || LWIP_CHECKSUM_ON_COPY */
 
-     return buf;
 
-   } else {
 
-     return NULL;
 
-   }
 
- }
 
-  802e9e0:	bd08      	pop	{r3, pc}
 
- 0802e9e2 <netbuf_delete>:
 
-  *
 
-  * @param buf pointer to a netbuf allocated by netbuf_new()
 
-  */
 
- void
 
- netbuf_delete(struct netbuf *buf)
 
- {
 
-  802e9e2:	b510      	push	{r4, lr}
 
-   if (buf != NULL) {
 
-  802e9e4:	4604      	mov	r4, r0
 
-  802e9e6:	b160      	cbz	r0, 802ea02 <netbuf_delete+0x20>
 
-     if (buf->p != NULL) {
 
-  802e9e8:	6800      	ldr	r0, [r0, #0]
 
-  802e9ea:	b120      	cbz	r0, 802e9f6 <netbuf_delete+0x14>
 
-       pbuf_free(buf->p);
 
-  802e9ec:	f001 fa0e 	bl	802fe0c <pbuf_free>
 
-       buf->p = buf->ptr = NULL;
 
-  802e9f0:	2300      	movs	r3, #0
 
-  802e9f2:	6063      	str	r3, [r4, #4]
 
-  802e9f4:	6023      	str	r3, [r4, #0]
 
-     }
 
-     memp_free(MEMP_NETBUF, buf);
 
-  802e9f6:	2005      	movs	r0, #5
 
-  802e9f8:	4621      	mov	r1, r4
 
-   }
 
- }
 
-  802e9fa:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
-   if (buf != NULL) {
 
-     if (buf->p != NULL) {
 
-       pbuf_free(buf->p);
 
-       buf->p = buf->ptr = NULL;
 
-     }
 
-     memp_free(MEMP_NETBUF, buf);
 
-  802e9fe:	f001 b8fb 	b.w	802fbf8 <memp_free>
 
-  802ea02:	bd10      	pop	{r4, pc}
 
- 0802ea04 <netbuf_alloc>:
 
-  * @return pointer to the allocated memory
 
-  *         NULL if no memory could be allocated
 
-  */
 
- void *
 
- netbuf_alloc(struct netbuf *buf, u16_t size)
 
- {
 
-  802ea04:	b538      	push	{r3, r4, r5, lr}
 
-  802ea06:	460d      	mov	r5, r1
 
-   LWIP_ERROR("netbuf_alloc: invalid buf", (buf != NULL), return NULL;);
 
-  802ea08:	4604      	mov	r4, r0
 
-  802ea0a:	b908      	cbnz	r0, 802ea10 <netbuf_alloc+0xc>
 
-  802ea0c:	2000      	movs	r0, #0
 
-  802ea0e:	bd38      	pop	{r3, r4, r5, pc}
 
-   /* Deallocate any previously allocated memory. */
 
-   if (buf->p != NULL) {
 
-  802ea10:	6800      	ldr	r0, [r0, #0]
 
-  802ea12:	b108      	cbz	r0, 802ea18 <netbuf_alloc+0x14>
 
-     pbuf_free(buf->p);
 
-  802ea14:	f001 f9fa 	bl	802fe0c <pbuf_free>
 
-   }
 
-   buf->p = pbuf_alloc(PBUF_TRANSPORT, size, PBUF_RAM);
 
-  802ea18:	2000      	movs	r0, #0
 
-  802ea1a:	4629      	mov	r1, r5
 
-  802ea1c:	4602      	mov	r2, r0
 
-  802ea1e:	f001 fa42 	bl	802fea6 <pbuf_alloc>
 
-  802ea22:	6020      	str	r0, [r4, #0]
 
-   if (buf->p == NULL) {
 
-  802ea24:	2800      	cmp	r0, #0
 
-  802ea26:	d0f1      	beq.n	802ea0c <netbuf_alloc+0x8>
 
-      return NULL;
 
-   }
 
-   LWIP_ASSERT("check that first pbuf can hold size",
 
-              (buf->p->len >= size));
 
-   buf->ptr = buf->p;
 
-  802ea28:	6060      	str	r0, [r4, #4]
 
-   return buf->p->payload;
 
-  802ea2a:	6840      	ldr	r0, [r0, #4]
 
- }
 
-  802ea2c:	bd38      	pop	{r3, r4, r5, pc}
 
- 0802ea2e <netbuf_data>:
 
-  *         ERR_BUF on error.
 
-  */
 
- err_t
 
- netbuf_data(struct netbuf *buf, void **dataptr, u16_t *len)
 
- {
 
-   LWIP_ERROR("netbuf_data: invalid buf", (buf != NULL), return ERR_ARG;);
 
-  802ea2e:	b150      	cbz	r0, 802ea46 <netbuf_data+0x18>
 
-   LWIP_ERROR("netbuf_data: invalid dataptr", (dataptr != NULL), return ERR_ARG;);
 
-  802ea30:	b149      	cbz	r1, 802ea46 <netbuf_data+0x18>
 
-   LWIP_ERROR("netbuf_data: invalid len", (len != NULL), return ERR_ARG;);
 
-  802ea32:	b142      	cbz	r2, 802ea46 <netbuf_data+0x18>
 
-   if (buf->ptr == NULL) {
 
-  802ea34:	6843      	ldr	r3, [r0, #4]
 
-  802ea36:	b143      	cbz	r3, 802ea4a <netbuf_data+0x1c>
 
-     return ERR_BUF;
 
-   }
 
-   *dataptr = buf->ptr->payload;
 
-  802ea38:	685b      	ldr	r3, [r3, #4]
 
-  802ea3a:	600b      	str	r3, [r1, #0]
 
-   *len = buf->ptr->len;
 
-  802ea3c:	6843      	ldr	r3, [r0, #4]
 
-  802ea3e:	895b      	ldrh	r3, [r3, #10]
 
-   return ERR_OK;
 
-  802ea40:	2000      	movs	r0, #0
 
-   if (buf->ptr == NULL) {
 
-     return ERR_BUF;
 
-   }
 
-   *dataptr = buf->ptr->payload;
 
-   *len = buf->ptr->len;
 
-  802ea42:	8013      	strh	r3, [r2, #0]
 
-   return ERR_OK;
 
-  802ea44:	e002      	b.n	802ea4c <netbuf_data+0x1e>
 
-  *         ERR_BUF on error.
 
-  */
 
- err_t
 
- netbuf_data(struct netbuf *buf, void **dataptr, u16_t *len)
 
- {
 
-   LWIP_ERROR("netbuf_data: invalid buf", (buf != NULL), return ERR_ARG;);
 
-  802ea46:	20f2      	movs	r0, #242	; 0xf2
 
-  802ea48:	e000      	b.n	802ea4c <netbuf_data+0x1e>
 
-   LWIP_ERROR("netbuf_data: invalid dataptr", (dataptr != NULL), return ERR_ARG;);
 
-   LWIP_ERROR("netbuf_data: invalid len", (len != NULL), return ERR_ARG;);
 
-   if (buf->ptr == NULL) {
 
-     return ERR_BUF;
 
-  802ea4a:	20fe      	movs	r0, #254	; 0xfe
 
-   }
 
-   *dataptr = buf->ptr->payload;
 
-   *len = buf->ptr->len;
 
-   return ERR_OK;
 
- }
 
-  802ea4c:	b240      	sxtb	r0, r0
 
-  802ea4e:	4770      	bx	lr
 
- 0802ea50 <tcpip_thread>:
 
- tcpip_thread(void *arg)
 
- {
 
-   struct tcpip_msg *msg;
 
-   LWIP_UNUSED_ARG(arg);
 
-   if (tcpip_init_done != NULL) {
 
-  802ea50:	4b1e      	ldr	r3, [pc, #120]	; (802eacc <tcpip_thread+0x7c>)
 
-  802ea52:	681b      	ldr	r3, [r3, #0]
 
-  *
 
-  * @param arg unused argument
 
-  */
 
- static void
 
- tcpip_thread(void *arg)
 
- {
 
-  802ea54:	b507      	push	{r0, r1, r2, lr}
 
-   struct tcpip_msg *msg;
 
-   LWIP_UNUSED_ARG(arg);
 
-   if (tcpip_init_done != NULL) {
 
-  802ea56:	b113      	cbz	r3, 802ea5e <tcpip_thread+0xe>
 
-     tcpip_init_done(tcpip_init_done_arg);
 
-  802ea58:	4a1d      	ldr	r2, [pc, #116]	; (802ead0 <tcpip_thread+0x80>)
 
-  802ea5a:	6810      	ldr	r0, [r2, #0]
 
-  802ea5c:	4798      	blx	r3
 
-   LOCK_TCPIP_CORE();
 
-   while (1) {                          /* MAIN Loop */
 
-     UNLOCK_TCPIP_CORE();
 
-     LWIP_TCPIP_THREAD_ALIVE();
 
-     /* wait for a message, timeouts are processed while waiting */
 
-     sys_timeouts_mbox_fetch(&mbox, (void **)&msg);
 
-  802ea5e:	481d      	ldr	r0, [pc, #116]	; (802ead4 <tcpip_thread+0x84>)
 
-  802ea60:	a901      	add	r1, sp, #4
 
-  802ea62:	f003 fe49 	bl	80326f8 <sys_timeouts_mbox_fetch>
 
-     LOCK_TCPIP_CORE();
 
-     switch (msg->type) {
 
-  802ea66:	9b01      	ldr	r3, [sp, #4]
 
-  802ea68:	781a      	ldrb	r2, [r3, #0]
 
-  802ea6a:	2a05      	cmp	r2, #5
 
-  802ea6c:	d8f7      	bhi.n	802ea5e <tcpip_thread+0xe>
 
-  802ea6e:	e8df f002 	tbb	[pc, r2]
 
-  802ea72:	0703      	.short	0x0703
 
-  802ea74:	28201b15 	.word	0x28201b15
 
- #if LWIP_NETCONN
 
-     case TCPIP_MSG_API:
 
-       LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: API message %p\n", (void *)msg));
 
-       msg->msg.apimsg->function(&(msg->msg.apimsg->msg));
 
-  802ea78:	6898      	ldr	r0, [r3, #8]
 
-  802ea7a:	6803      	ldr	r3, [r0, #0]
 
-  802ea7c:	3004      	adds	r0, #4
 
-  802ea7e:	e7ed      	b.n	802ea5c <tcpip_thread+0xc>
 
- #if !LWIP_TCPIP_CORE_LOCKING_INPUT
 
-     case TCPIP_MSG_INPKT:
 
-       LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: PACKET %p\n", (void *)msg));
 
- #if LWIP_ETHERNET
 
-       if (msg->msg.inp.netif->flags & (NETIF_FLAG_ETHARP | NETIF_FLAG_ETHERNET)) {
 
-  802ea80:	68d9      	ldr	r1, [r3, #12]
 
-         ethernet_input(msg->msg.inp.p, msg->msg.inp.netif);
 
-  802ea82:	6898      	ldr	r0, [r3, #8]
 
- #if !LWIP_TCPIP_CORE_LOCKING_INPUT
 
-     case TCPIP_MSG_INPKT:
 
-       LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: PACKET %p\n", (void *)msg));
 
- #if LWIP_ETHERNET
 
-       if (msg->msg.inp.netif->flags & (NETIF_FLAG_ETHARP | NETIF_FLAG_ETHERNET)) {
 
-  802ea84:	f891 202d 	ldrb.w	r2, [r1, #45]	; 0x2d
 
-  802ea88:	f012 0f60 	tst.w	r2, #96	; 0x60
 
-  802ea8c:	d002      	beq.n	802ea94 <tcpip_thread+0x44>
 
-         ethernet_input(msg->msg.inp.p, msg->msg.inp.netif);
 
-  802ea8e:	f008 fcb7 	bl	8037400 <ethernet_input>
 
-  802ea92:	e001      	b.n	802ea98 <tcpip_thread+0x48>
 
-       } else
 
- #endif /* LWIP_ETHERNET */
 
-       {
 
-         ip_input(msg->msg.inp.p, msg->msg.inp.netif);
 
-  802ea94:	f004 fa8a 	bl	8032fac <ip_input>
 
-       }
 
-       memp_free(MEMP_TCPIP_MSG_INPKT, msg);
 
-  802ea98:	2008      	movs	r0, #8
 
-  802ea9a:	e00e      	b.n	802eaba <tcpip_thread+0x6a>
 
- #endif /* LWIP_NETIF_API */
 
- #if LWIP_TCPIP_TIMEOUT
 
-     case TCPIP_MSG_TIMEOUT:
 
-       LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: TIMEOUT %p\n", (void *)msg));
 
-       sys_timeout(msg->msg.tmo.msecs, msg->msg.tmo.h, msg->msg.tmo.arg);
 
-  802ea9c:	f103 0008 	add.w	r0, r3, #8
 
-  802eaa0:	c807      	ldmia	r0, {r0, r1, r2}
 
-  802eaa2:	f003 fd5b 	bl	803255c <sys_timeout>
 
-  802eaa6:	e007      	b.n	802eab8 <tcpip_thread+0x68>
 
-       memp_free(MEMP_TCPIP_MSG_API, msg);
 
-       break;
 
-     case TCPIP_MSG_UNTIMEOUT:
 
-       LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: UNTIMEOUT %p\n", (void *)msg));
 
-       sys_untimeout(msg->msg.tmo.h, msg->msg.tmo.arg);
 
-  802eaa8:	68d8      	ldr	r0, [r3, #12]
 
-  802eaaa:	6919      	ldr	r1, [r3, #16]
 
-  802eaac:	f003 fe00 	bl	80326b0 <sys_untimeout>
 
-  802eab0:	e002      	b.n	802eab8 <tcpip_thread+0x68>
 
-       break;
 
- #endif /* LWIP_TCPIP_TIMEOUT */
 
-     case TCPIP_MSG_CALLBACK:
 
-       LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: CALLBACK %p\n", (void *)msg));
 
-       msg->msg.cb.function(msg->msg.cb.ctx);
 
-  802eab2:	689a      	ldr	r2, [r3, #8]
 
-  802eab4:	68d8      	ldr	r0, [r3, #12]
 
-  802eab6:	4790      	blx	r2
 
-       memp_free(MEMP_TCPIP_MSG_API, msg);
 
-  802eab8:	2007      	movs	r0, #7
 
-  802eaba:	9901      	ldr	r1, [sp, #4]
 
-  802eabc:	f001 f89c 	bl	802fbf8 <memp_free>
 
-       break;
 
-  802eac0:	e7cd      	b.n	802ea5e <tcpip_thread+0xe>
 
-     case TCPIP_MSG_CALLBACK_STATIC:
 
-       LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: CALLBACK_STATIC %p\n", (void *)msg));
 
-       msg->msg.cb.function(msg->msg.cb.ctx);
 
-  802eac2:	689a      	ldr	r2, [r3, #8]
 
-  802eac4:	68d8      	ldr	r0, [r3, #12]
 
-  802eac6:	4790      	blx	r2
 
-       break;
 
-  802eac8:	e7c9      	b.n	802ea5e <tcpip_thread+0xe>
 
-  802eaca:	bf00      	nop
 
-  802eacc:	20000d40 	.word	0x20000d40
 
-  802ead0:	20000d3c 	.word	0x20000d3c
 
-  802ead4:	20000d38 	.word	0x20000d38
 
- 0802ead8 <tcpip_input>:
 
-  *          NETIF_FLAG_ETHERNET flags)
 
-  * @param inp the network interface on which the packet was received
 
-  */
 
- err_t
 
- tcpip_input(struct pbuf *p, struct netif *inp)
 
- {
 
-  802ead8:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
-   UNLOCK_TCPIP_CORE();
 
-   return ret;
 
- #else /* LWIP_TCPIP_CORE_LOCKING_INPUT */
 
-   struct tcpip_msg *msg;
 
-   if (!sys_mbox_valid(&mbox)) {
 
-  802eada:	4d0e      	ldr	r5, [pc, #56]	; (802eb14 <tcpip_input+0x3c>)
 
-  802eadc:	682b      	ldr	r3, [r5, #0]
 
-  *          NETIF_FLAG_ETHERNET flags)
 
-  * @param inp the network interface on which the packet was received
 
-  */
 
- err_t
 
- tcpip_input(struct pbuf *p, struct netif *inp)
 
- {
 
-  802eade:	4606      	mov	r6, r0
 
-  802eae0:	460f      	mov	r7, r1
 
-   UNLOCK_TCPIP_CORE();
 
-   return ret;
 
- #else /* LWIP_TCPIP_CORE_LOCKING_INPUT */
 
-   struct tcpip_msg *msg;
 
-   if (!sys_mbox_valid(&mbox)) {
 
-  802eae2:	b193      	cbz	r3, 802eb0a <tcpip_input+0x32>
 
-     return ERR_VAL;
 
-   }
 
-   msg = (struct tcpip_msg *)memp_malloc(MEMP_TCPIP_MSG_INPKT);
 
-  802eae4:	2008      	movs	r0, #8
 
-  802eae6:	f001 f871 	bl	802fbcc <memp_malloc>
 
-   if (msg == NULL) {
 
-  802eaea:	4604      	mov	r4, r0
 
-  802eaec:	b178      	cbz	r0, 802eb0e <tcpip_input+0x36>
 
-     return ERR_MEM;
 
-   }
 
-   msg->type = TCPIP_MSG_INPKT;
 
-  802eaee:	2301      	movs	r3, #1
 
-  802eaf0:	7003      	strb	r3, [r0, #0]
 
-   msg->msg.inp.p = p;
 
-  802eaf2:	6086      	str	r6, [r0, #8]
 
-   msg->msg.inp.netif = inp;
 
-  802eaf4:	60c7      	str	r7, [r0, #12]
 
-   if (sys_mbox_trypost(&mbox, msg) != ERR_OK) {
 
-  802eaf6:	4621      	mov	r1, r4
 
-  802eaf8:	4628      	mov	r0, r5
 
-  802eafa:	f008 feed 	bl	80378d8 <sys_mbox_trypost>
 
-  802eafe:	b138      	cbz	r0, 802eb10 <tcpip_input+0x38>
 
-     memp_free(MEMP_TCPIP_MSG_INPKT, msg);
 
-  802eb00:	2008      	movs	r0, #8
 
-  802eb02:	4621      	mov	r1, r4
 
-  802eb04:	f001 f878 	bl	802fbf8 <memp_free>
 
-  802eb08:	e001      	b.n	802eb0e <tcpip_input+0x36>
 
-   return ret;
 
- #else /* LWIP_TCPIP_CORE_LOCKING_INPUT */
 
-   struct tcpip_msg *msg;
 
-   if (!sys_mbox_valid(&mbox)) {
 
-     return ERR_VAL;
 
-  802eb0a:	20fa      	movs	r0, #250	; 0xfa
 
-  802eb0c:	e000      	b.n	802eb10 <tcpip_input+0x38>
 
-   }
 
-   msg = (struct tcpip_msg *)memp_malloc(MEMP_TCPIP_MSG_INPKT);
 
-   if (msg == NULL) {
 
-     return ERR_MEM;
 
-  802eb0e:	20ff      	movs	r0, #255	; 0xff
 
-     memp_free(MEMP_TCPIP_MSG_INPKT, msg);
 
-     return ERR_MEM;
 
-   }
 
-   return ERR_OK;
 
- #endif /* LWIP_TCPIP_CORE_LOCKING_INPUT */
 
- }
 
-  802eb10:	b240      	sxtb	r0, r0
 
-  802eb12:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 
-  802eb14:	20000d38 	.word	0x20000d38
 
- 0802eb18 <tcpip_apimsg>:
 
-  * @param apimsg a struct containing the function to call and its parameters
 
-  * @return ERR_OK if the function was called, another err_t if not
 
-  */
 
- err_t
 
- tcpip_apimsg(struct api_msg *apimsg)
 
- {
 
-  802eb18:	b530      	push	{r4, r5, lr}
 
-  802eb1a:	4604      	mov	r4, r0
 
- #ifdef LWIP_DEBUG
 
-   /* catch functions that don't set err */
 
-   apimsg->msg.err = ERR_VAL;
 
- #endif
 
-   
 
-   if (sys_mbox_valid(&mbox)) {
 
-  802eb1c:	480a      	ldr	r0, [pc, #40]	; (802eb48 <tcpip_apimsg+0x30>)
 
-  802eb1e:	6803      	ldr	r3, [r0, #0]
 
-  * @param apimsg a struct containing the function to call and its parameters
 
-  * @return ERR_OK if the function was called, another err_t if not
 
-  */
 
- err_t
 
- tcpip_apimsg(struct api_msg *apimsg)
 
- {
 
-  802eb20:	b087      	sub	sp, #28
 
- #ifdef LWIP_DEBUG
 
-   /* catch functions that don't set err */
 
-   apimsg->msg.err = ERR_VAL;
 
- #endif
 
-   
 
-   if (sys_mbox_valid(&mbox)) {
 
-  802eb22:	b16b      	cbz	r3, 802eb40 <tcpip_apimsg+0x28>
 
-     msg.type = TCPIP_MSG_API;
 
-  802eb24:	2500      	movs	r5, #0
 
-     msg.msg.apimsg = apimsg;
 
-     sys_mbox_post(&mbox, &msg);
 
-  802eb26:	a901      	add	r1, sp, #4
 
-   /* catch functions that don't set err */
 
-   apimsg->msg.err = ERR_VAL;
 
- #endif
 
-   
 
-   if (sys_mbox_valid(&mbox)) {
 
-     msg.type = TCPIP_MSG_API;
 
-  802eb28:	f88d 5004 	strb.w	r5, [sp, #4]
 
-     msg.msg.apimsg = apimsg;
 
-  802eb2c:	9403      	str	r4, [sp, #12]
 
-     sys_mbox_post(&mbox, &msg);
 
-  802eb2e:	f008 fec3 	bl	80378b8 <sys_mbox_post>
 
-     sys_arch_sem_wait(&apimsg->msg.conn->op_completed, 0);
 
-  802eb32:	6860      	ldr	r0, [r4, #4]
 
-  802eb34:	4629      	mov	r1, r5
 
-  802eb36:	300c      	adds	r0, #12
 
-  802eb38:	f008 ff53 	bl	80379e2 <sys_arch_sem_wait>
 
-     return apimsg->msg.err;
 
-  802eb3c:	7a20      	ldrb	r0, [r4, #8]
 
-  802eb3e:	e000      	b.n	802eb42 <tcpip_apimsg+0x2a>
 
-   }
 
-   return ERR_VAL;
 
-  802eb40:	20fa      	movs	r0, #250	; 0xfa
 
- }
 
-  802eb42:	b240      	sxtb	r0, r0
 
-  802eb44:	b007      	add	sp, #28
 
-  802eb46:	bd30      	pop	{r4, r5, pc}
 
-  802eb48:	20000d38 	.word	0x20000d38
 
- 0802eb4c <tcpip_init>:
 
-  * @param initfunc a function to call when tcpip_thread is running and finished initializing
 
-  * @param arg argument to pass to initfunc
 
-  */
 
- void
 
- tcpip_init(tcpip_init_done_fn initfunc, void *arg)
 
- {
 
-  802eb4c:	b537      	push	{r0, r1, r2, r4, r5, lr}
 
-  802eb4e:	4604      	mov	r4, r0
 
-  802eb50:	460d      	mov	r5, r1
 
-   lwip_init();
 
-  802eb52:	f000 feb3 	bl	802f8bc <lwip_init>
 
-   tcpip_init_done = initfunc;
 
-  802eb56:	4b09      	ldr	r3, [pc, #36]	; (802eb7c <tcpip_init+0x30>)
 
-   tcpip_init_done_arg = arg;
 
-   if(sys_mbox_new(&mbox, TCPIP_MBOX_SIZE) != ERR_OK) {
 
-  802eb58:	4809      	ldr	r0, [pc, #36]	; (802eb80 <tcpip_init+0x34>)
 
- void
 
- tcpip_init(tcpip_init_done_fn initfunc, void *arg)
 
- {
 
-   lwip_init();
 
-   tcpip_init_done = initfunc;
 
-  802eb5a:	601c      	str	r4, [r3, #0]
 
-   tcpip_init_done_arg = arg;
 
-  802eb5c:	4b09      	ldr	r3, [pc, #36]	; (802eb84 <tcpip_init+0x38>)
 
-   if(sys_mbox_new(&mbox, TCPIP_MBOX_SIZE) != ERR_OK) {
 
-  802eb5e:	2132      	movs	r1, #50	; 0x32
 
- tcpip_init(tcpip_init_done_fn initfunc, void *arg)
 
- {
 
-   lwip_init();
 
-   tcpip_init_done = initfunc;
 
-   tcpip_init_done_arg = arg;
 
-  802eb60:	601d      	str	r5, [r3, #0]
 
-   if(sys_mbox_new(&mbox, TCPIP_MBOX_SIZE) != ERR_OK) {
 
-  802eb62:	f008 fe8d 	bl	8037880 <sys_mbox_new>
 
-   if(sys_mutex_new(&lock_tcpip_core) != ERR_OK) {
 
-     LWIP_ASSERT("failed to create lock_tcpip_core", 0);
 
-   }
 
- #endif /* LWIP_TCPIP_CORE_LOCKING */
 
-   sys_thread_new(TCPIP_THREAD_NAME, tcpip_thread, NULL, TCPIP_THREAD_STACKSIZE, TCPIP_THREAD_PRIO);
 
-  802eb66:	2303      	movs	r3, #3
 
-  802eb68:	9300      	str	r3, [sp, #0]
 
-  802eb6a:	4907      	ldr	r1, [pc, #28]	; (802eb88 <tcpip_init+0x3c>)
 
-  802eb6c:	4807      	ldr	r0, [pc, #28]	; (802eb8c <tcpip_init+0x40>)
 
-  802eb6e:	2200      	movs	r2, #0
 
-  802eb70:	f44f 73c8 	mov.w	r3, #400	; 0x190
 
-  802eb74:	f008 ff90 	bl	8037a98 <sys_thread_new>
 
- }
 
-  802eb78:	bd3e      	pop	{r1, r2, r3, r4, r5, pc}
 
-  802eb7a:	bf00      	nop
 
-  802eb7c:	20000d40 	.word	0x20000d40
 
-  802eb80:	20000d38 	.word	0x20000d38
 
-  802eb84:	20000d3c 	.word	0x20000d3c
 
-  802eb88:	0802ea51 	.word	0x0802ea51
 
-  802eb8c:	08044f92 	.word	0x08044f92
 
- 0802eb90 <lwip_htons>:
 
-  * @return n in network byte order
 
-  */
 
- u16_t
 
- lwip_htons(u16_t n)
 
- {
 
-   return ((n & 0xff) << 8) | ((n & 0xff00) >> 8);
 
-  802eb90:	0a03      	lsrs	r3, r0, #8
 
-  802eb92:	ea43 2000 	orr.w	r0, r3, r0, lsl #8
 
- }
 
-  802eb96:	b280      	uxth	r0, r0
 
-  802eb98:	4770      	bx	lr
 
- 0802eb9a <lwip_ntohs>:
 
-  * @return n in network byte order
 
-  */
 
- u16_t
 
- lwip_htons(u16_t n)
 
- {
 
-   return ((n & 0xff) << 8) | ((n & 0xff00) >> 8);
 
-  802eb9a:	0a03      	lsrs	r3, r0, #8
 
-  802eb9c:	ea43 2000 	orr.w	r0, r3, r0, lsl #8
 
-  */
 
- u16_t
 
- lwip_ntohs(u16_t n)
 
- {
 
-   return lwip_htons(n);
 
- }
 
-  802eba0:	b280      	uxth	r0, r0
 
-  802eba2:	4770      	bx	lr
 
- 0802eba4 <lwip_htonl>:
 
- {
 
-   return ((n & 0xff) << 24) |
 
-     ((n & 0xff00) << 8) |
 
-     ((n & 0xff0000UL) >> 8) |
 
-     ((n & 0xff000000UL) >> 24);
 
- }
 
-  802eba4:	ba00      	rev	r0, r0
 
-  802eba6:	4770      	bx	lr
 
- 0802eba8 <lwip_ntohl>:
 
-  * @return n in host byte order
 
-  */
 
- u32_t
 
- lwip_ntohl(u32_t n)
 
- {
 
-   return lwip_htonl(n);
 
-  802eba8:	f7ff bffc 	b.w	802eba4 <lwip_htonl>
 
- 0802ebac <dhcp_set_state>:
 
-  * If the state changed, reset the number of tries.
 
-  */
 
- static void
 
- dhcp_set_state(struct dhcp *dhcp, u8_t new_state)
 
- {
 
-   if (new_state != dhcp->state) {
 
-  802ebac:	7b03      	ldrb	r3, [r0, #12]
 
-  802ebae:	428b      	cmp	r3, r1
 
-  802ebb0:	d003      	beq.n	802ebba <dhcp_set_state+0xe>
 
-     dhcp->state = new_state;
 
-     dhcp->tries = 0;
 
-  802ebb2:	2300      	movs	r3, #0
 
-  */
 
- static void
 
- dhcp_set_state(struct dhcp *dhcp, u8_t new_state)
 
- {
 
-   if (new_state != dhcp->state) {
 
-     dhcp->state = new_state;
 
-  802ebb4:	7301      	strb	r1, [r0, #12]
 
-     dhcp->tries = 0;
 
-  802ebb6:	7343      	strb	r3, [r0, #13]
 
-     dhcp->request_timeout = 0;
 
-  802ebb8:	8343      	strh	r3, [r0, #26]
 
-  802ebba:	4770      	bx	lr
 
- 0802ebbc <dhcp_option>:
 
-  */
 
- static void
 
- dhcp_option(struct dhcp *dhcp, u8_t option_type, u8_t option_len)
 
- {
 
-   LWIP_ASSERT("dhcp_option: dhcp->options_out_len + 2 + option_len <= DHCP_OPTIONS_LEN", dhcp->options_out_len + 2U + option_len <= DHCP_OPTIONS_LEN);
 
-   dhcp->msg_out->options[dhcp->options_out_len++] = option_type;
 
-  802ebbc:	8b03      	ldrh	r3, [r0, #24]
 
-  * DHCP message.
 
-  *
 
-  */
 
- static void
 
- dhcp_option(struct dhcp *dhcp, u8_t option_type, u8_t option_len)
 
- {
 
-  802ebbe:	b510      	push	{r4, lr}
 
-   LWIP_ASSERT("dhcp_option: dhcp->options_out_len + 2 + option_len <= DHCP_OPTIONS_LEN", dhcp->options_out_len + 2U + option_len <= DHCP_OPTIONS_LEN);
 
-   dhcp->msg_out->options[dhcp->options_out_len++] = option_type;
 
-  802ebc0:	6944      	ldr	r4, [r0, #20]
 
-  802ebc2:	18e4      	adds	r4, r4, r3
 
-  802ebc4:	f884 10f0 	strb.w	r1, [r4, #240]	; 0xf0
 
-   dhcp->msg_out->options[dhcp->options_out_len++] = option_len;
 
-  802ebc8:	6941      	ldr	r1, [r0, #20]
 
-  */
 
- static void
 
- dhcp_option(struct dhcp *dhcp, u8_t option_type, u8_t option_len)
 
- {
 
-   LWIP_ASSERT("dhcp_option: dhcp->options_out_len + 2 + option_len <= DHCP_OPTIONS_LEN", dhcp->options_out_len + 2U + option_len <= DHCP_OPTIONS_LEN);
 
-   dhcp->msg_out->options[dhcp->options_out_len++] = option_type;
 
-  802ebca:	1c5c      	adds	r4, r3, #1
 
-   dhcp->msg_out->options[dhcp->options_out_len++] = option_len;
 
-  802ebcc:	fa11 f184 	uxtah	r1, r1, r4
 
-  802ebd0:	3302      	adds	r3, #2
 
-  802ebd2:	f881 20f0 	strb.w	r2, [r1, #240]	; 0xf0
 
-  802ebd6:	8303      	strh	r3, [r0, #24]
 
-  802ebd8:	bd10      	pop	{r4, pc}
 
- 0802ebda <dhcp_option_byte>:
 
-  */
 
- static void
 
- dhcp_option_byte(struct dhcp *dhcp, u8_t value)
 
- {
 
-   LWIP_ASSERT("dhcp_option_byte: dhcp->options_out_len < DHCP_OPTIONS_LEN", dhcp->options_out_len < DHCP_OPTIONS_LEN);
 
-   dhcp->msg_out->options[dhcp->options_out_len++] = value;
 
-  802ebda:	8b03      	ldrh	r3, [r0, #24]
 
-  802ebdc:	6942      	ldr	r2, [r0, #20]
 
-  802ebde:	18d2      	adds	r2, r2, r3
 
-  802ebe0:	3301      	adds	r3, #1
 
-  802ebe2:	f882 10f0 	strb.w	r1, [r2, #240]	; 0xf0
 
-  802ebe6:	8303      	strh	r3, [r0, #24]
 
-  802ebe8:	4770      	bx	lr
 
- 0802ebea <dhcp_option_short>:
 
- static void
 
- dhcp_option_short(struct dhcp *dhcp, u16_t value)
 
- {
 
-   LWIP_ASSERT("dhcp_option_short: dhcp->options_out_len + 2 <= DHCP_OPTIONS_LEN", dhcp->options_out_len + 2U <= DHCP_OPTIONS_LEN);
 
-   dhcp->msg_out->options[dhcp->options_out_len++] = (u8_t)((value & 0xff00U) >> 8);
 
-  802ebea:	8b03      	ldrh	r3, [r0, #24]
 
-  802ebec:	6942      	ldr	r2, [r0, #20]
 
-  802ebee:	18d2      	adds	r2, r2, r3
 
-   dhcp->msg_out->options[dhcp->options_out_len++] = value;
 
- }
 
- static void
 
- dhcp_option_short(struct dhcp *dhcp, u16_t value)
 
- {
 
-  802ebf0:	b510      	push	{r4, lr}
 
-   LWIP_ASSERT("dhcp_option_short: dhcp->options_out_len + 2 <= DHCP_OPTIONS_LEN", dhcp->options_out_len + 2U <= DHCP_OPTIONS_LEN);
 
-   dhcp->msg_out->options[dhcp->options_out_len++] = (u8_t)((value & 0xff00U) >> 8);
 
-  802ebf2:	0a0c      	lsrs	r4, r1, #8
 
-  802ebf4:	f882 40f0 	strb.w	r4, [r2, #240]	; 0xf0
 
-   dhcp->msg_out->options[dhcp->options_out_len++] = (u8_t) (value & 0x00ffU);
 
-  802ebf8:	6942      	ldr	r2, [r0, #20]
 
- static void
 
- dhcp_option_short(struct dhcp *dhcp, u16_t value)
 
- {
 
-   LWIP_ASSERT("dhcp_option_short: dhcp->options_out_len + 2 <= DHCP_OPTIONS_LEN", dhcp->options_out_len + 2U <= DHCP_OPTIONS_LEN);
 
-   dhcp->msg_out->options[dhcp->options_out_len++] = (u8_t)((value & 0xff00U) >> 8);
 
-  802ebfa:	1c5c      	adds	r4, r3, #1
 
-   dhcp->msg_out->options[dhcp->options_out_len++] = (u8_t) (value & 0x00ffU);
 
-  802ebfc:	fa12 f284 	uxtah	r2, r2, r4
 
-  802ec00:	3302      	adds	r3, #2
 
-  802ec02:	f882 10f0 	strb.w	r1, [r2, #240]	; 0xf0
 
-  802ec06:	8303      	strh	r3, [r0, #24]
 
-  802ec08:	bd10      	pop	{r4, pc}
 
- 0802ec0a <dhcp_option_long>:
 
- static void
 
- dhcp_option_long(struct dhcp *dhcp, u32_t value)
 
- {
 
-   LWIP_ASSERT("dhcp_option_long: dhcp->options_out_len + 4 <= DHCP_OPTIONS_LEN", dhcp->options_out_len + 4U <= DHCP_OPTIONS_LEN);
 
-   dhcp->msg_out->options[dhcp->options_out_len++] = (u8_t)((value & 0xff000000UL) >> 24);
 
-  802ec0a:	8b03      	ldrh	r3, [r0, #24]
 
-  802ec0c:	6942      	ldr	r2, [r0, #20]
 
-  802ec0e:	18d2      	adds	r2, r2, r3
 
-   dhcp->msg_out->options[dhcp->options_out_len++] = (u8_t) (value & 0x00ffU);
 
- }
 
- static void
 
- dhcp_option_long(struct dhcp *dhcp, u32_t value)
 
- {
 
-  802ec10:	b510      	push	{r4, lr}
 
-   LWIP_ASSERT("dhcp_option_long: dhcp->options_out_len + 4 <= DHCP_OPTIONS_LEN", dhcp->options_out_len + 4U <= DHCP_OPTIONS_LEN);
 
-   dhcp->msg_out->options[dhcp->options_out_len++] = (u8_t)((value & 0xff000000UL) >> 24);
 
-  802ec12:	0e0c      	lsrs	r4, r1, #24
 
-  802ec14:	f882 40f0 	strb.w	r4, [r2, #240]	; 0xf0
 
-   dhcp->msg_out->options[dhcp->options_out_len++] = (u8_t)((value & 0x00ff0000UL) >> 16);
 
-  802ec18:	6942      	ldr	r2, [r0, #20]
 
- static void
 
- dhcp_option_long(struct dhcp *dhcp, u32_t value)
 
- {
 
-   LWIP_ASSERT("dhcp_option_long: dhcp->options_out_len + 4 <= DHCP_OPTIONS_LEN", dhcp->options_out_len + 4U <= DHCP_OPTIONS_LEN);
 
-   dhcp->msg_out->options[dhcp->options_out_len++] = (u8_t)((value & 0xff000000UL) >> 24);
 
-  802ec1a:	1c5c      	adds	r4, r3, #1
 
-   dhcp->msg_out->options[dhcp->options_out_len++] = (u8_t)((value & 0x00ff0000UL) >> 16);
 
-  802ec1c:	fa12 f284 	uxtah	r2, r2, r4
 
-  802ec20:	f3c1 4407 	ubfx	r4, r1, #16, #8
 
-  802ec24:	f882 40f0 	strb.w	r4, [r2, #240]	; 0xf0
 
-   dhcp->msg_out->options[dhcp->options_out_len++] = (u8_t)((value & 0x0000ff00UL) >> 8);
 
-  802ec28:	6942      	ldr	r2, [r0, #20]
 
- static void
 
- dhcp_option_long(struct dhcp *dhcp, u32_t value)
 
- {
 
-   LWIP_ASSERT("dhcp_option_long: dhcp->options_out_len + 4 <= DHCP_OPTIONS_LEN", dhcp->options_out_len + 4U <= DHCP_OPTIONS_LEN);
 
-   dhcp->msg_out->options[dhcp->options_out_len++] = (u8_t)((value & 0xff000000UL) >> 24);
 
-   dhcp->msg_out->options[dhcp->options_out_len++] = (u8_t)((value & 0x00ff0000UL) >> 16);
 
-  802ec2a:	1c9c      	adds	r4, r3, #2
 
-   dhcp->msg_out->options[dhcp->options_out_len++] = (u8_t)((value & 0x0000ff00UL) >> 8);
 
-  802ec2c:	fa12 f284 	uxtah	r2, r2, r4
 
-  802ec30:	f3c1 2407 	ubfx	r4, r1, #8, #8
 
-  802ec34:	f882 40f0 	strb.w	r4, [r2, #240]	; 0xf0
 
-   dhcp->msg_out->options[dhcp->options_out_len++] = (u8_t)((value & 0x000000ffUL));
 
-  802ec38:	6942      	ldr	r2, [r0, #20]
 
- dhcp_option_long(struct dhcp *dhcp, u32_t value)
 
- {
 
-   LWIP_ASSERT("dhcp_option_long: dhcp->options_out_len + 4 <= DHCP_OPTIONS_LEN", dhcp->options_out_len + 4U <= DHCP_OPTIONS_LEN);
 
-   dhcp->msg_out->options[dhcp->options_out_len++] = (u8_t)((value & 0xff000000UL) >> 24);
 
-   dhcp->msg_out->options[dhcp->options_out_len++] = (u8_t)((value & 0x00ff0000UL) >> 16);
 
-   dhcp->msg_out->options[dhcp->options_out_len++] = (u8_t)((value & 0x0000ff00UL) >> 8);
 
-  802ec3a:	1cdc      	adds	r4, r3, #3
 
-   dhcp->msg_out->options[dhcp->options_out_len++] = (u8_t)((value & 0x000000ffUL));
 
-  802ec3c:	fa12 f284 	uxtah	r2, r2, r4
 
-  802ec40:	3304      	adds	r3, #4
 
-  802ec42:	f882 10f0 	strb.w	r1, [r2, #240]	; 0xf0
 
-  802ec46:	8303      	strh	r3, [r0, #24]
 
-  802ec48:	bd10      	pop	{r4, pc}
 
- 0802ec4a <dhcp_option_trailer>:
 
-  * @param dhcp DHCP state structure
 
-  */
 
- static void
 
- dhcp_option_trailer(struct dhcp *dhcp)
 
- {
 
-   LWIP_ERROR("dhcp_option_trailer: dhcp != NULL", (dhcp != NULL), return;);
 
-  802ec4a:	b190      	cbz	r0, 802ec72 <dhcp_option_trailer+0x28>
 
-   LWIP_ASSERT("dhcp_option_trailer: dhcp->msg_out != NULL\n", dhcp->msg_out != NULL);
 
-   LWIP_ASSERT("dhcp_option_trailer: dhcp->options_out_len < DHCP_OPTIONS_LEN\n", dhcp->options_out_len < DHCP_OPTIONS_LEN);
 
-   dhcp->msg_out->options[dhcp->options_out_len++] = DHCP_OPTION_END;
 
-  802ec4c:	8b03      	ldrh	r3, [r0, #24]
 
-  802ec4e:	6942      	ldr	r2, [r0, #20]
 
-  802ec50:	18d2      	adds	r2, r2, r3
 
-  802ec52:	21ff      	movs	r1, #255	; 0xff
 
-  802ec54:	3301      	adds	r3, #1
 
-  802ec56:	f882 10f0 	strb.w	r1, [r2, #240]	; 0xf0
 
-  802ec5a:	8303      	strh	r3, [r0, #24]
 
-   /* packet is too small, or not 4 byte aligned? */
 
-   while (((dhcp->options_out_len < DHCP_MIN_OPTIONS_LEN) || (dhcp->options_out_len & 3)) &&
 
-          (dhcp->options_out_len < DHCP_OPTIONS_LEN)) {
 
-     /* add a fill/padding byte */
 
-     dhcp->msg_out->options[dhcp->options_out_len++] = 0;
 
-  802ec5c:	2100      	movs	r1, #0
 
-   LWIP_ERROR("dhcp_option_trailer: dhcp != NULL", (dhcp != NULL), return;);
 
-   LWIP_ASSERT("dhcp_option_trailer: dhcp->msg_out != NULL\n", dhcp->msg_out != NULL);
 
-   LWIP_ASSERT("dhcp_option_trailer: dhcp->options_out_len < DHCP_OPTIONS_LEN\n", dhcp->options_out_len < DHCP_OPTIONS_LEN);
 
-   dhcp->msg_out->options[dhcp->options_out_len++] = DHCP_OPTION_END;
 
-   /* packet is too small, or not 4 byte aligned? */
 
-   while (((dhcp->options_out_len < DHCP_MIN_OPTIONS_LEN) || (dhcp->options_out_len & 3)) &&
 
-  802ec5e:	e005      	b.n	802ec6c <dhcp_option_trailer+0x22>
 
-          (dhcp->options_out_len < DHCP_OPTIONS_LEN)) {
 
-     /* add a fill/padding byte */
 
-     dhcp->msg_out->options[dhcp->options_out_len++] = 0;
 
-  802ec60:	6942      	ldr	r2, [r0, #20]
 
-  802ec62:	18d2      	adds	r2, r2, r3
 
-  802ec64:	3301      	adds	r3, #1
 
-  802ec66:	f882 10f0 	strb.w	r1, [r2, #240]	; 0xf0
 
-  802ec6a:	8303      	strh	r3, [r0, #24]
 
-   LWIP_ERROR("dhcp_option_trailer: dhcp != NULL", (dhcp != NULL), return;);
 
-   LWIP_ASSERT("dhcp_option_trailer: dhcp->msg_out != NULL\n", dhcp->msg_out != NULL);
 
-   LWIP_ASSERT("dhcp_option_trailer: dhcp->options_out_len < DHCP_OPTIONS_LEN\n", dhcp->options_out_len < DHCP_OPTIONS_LEN);
 
-   dhcp->msg_out->options[dhcp->options_out_len++] = DHCP_OPTION_END;
 
-   /* packet is too small, or not 4 byte aligned? */
 
-   while (((dhcp->options_out_len < DHCP_MIN_OPTIONS_LEN) || (dhcp->options_out_len & 3)) &&
 
-  802ec6c:	8b03      	ldrh	r3, [r0, #24]
 
-  802ec6e:	2b43      	cmp	r3, #67	; 0x43
 
-  802ec70:	d9f6      	bls.n	802ec60 <dhcp_option_trailer+0x16>
 
-  802ec72:	4770      	bx	lr
 
- 0802ec74 <dhcp_create_msg>:
 
-  * @param dhcp dhcp control struct
 
-  * @param message_type message type of the request
 
-  */
 
- static err_t
 
- dhcp_create_msg(struct netif *netif, struct dhcp *dhcp, u8_t message_type)
 
- {
 
-  802ec74:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
 
-  802ec78:	460c      	mov	r4, r1
 
-  802ec7a:	4617      	mov	r7, r2
 
-   if (!xid_initialised) {
 
-     xid = DHCP_GLOBAL_XID;
 
-     xid_initialised = !xid_initialised;
 
-   }
 
- #endif
 
-   LWIP_ERROR("dhcp_create_msg: netif != NULL", (netif != NULL), return ERR_ARG;);
 
-  802ec7c:	4606      	mov	r6, r0
 
-  802ec7e:	2800      	cmp	r0, #0
 
-  802ec80:	f000 808e 	beq.w	802eda0 <dhcp_create_msg+0x12c>
 
-   LWIP_ERROR("dhcp_create_msg: dhcp != NULL", (dhcp != NULL), return ERR_VAL;);
 
-  802ec84:	2900      	cmp	r1, #0
 
-  802ec86:	f000 808d 	beq.w	802eda4 <dhcp_create_msg+0x130>
 
-   LWIP_ASSERT("dhcp_create_msg: dhcp->p_out == NULL", dhcp->p_out == NULL);
 
-   LWIP_ASSERT("dhcp_create_msg: dhcp->msg_out == NULL", dhcp->msg_out == NULL);
 
-   dhcp->p_out = pbuf_alloc(PBUF_TRANSPORT, sizeof(struct dhcp_msg), PBUF_RAM);
 
-  802ec8a:	2000      	movs	r0, #0
 
-  802ec8c:	f44f 719a 	mov.w	r1, #308	; 0x134
 
-  802ec90:	4602      	mov	r2, r0
 
-  802ec92:	f001 f908 	bl	802fea6 <pbuf_alloc>
 
-  802ec96:	6120      	str	r0, [r4, #16]
 
-   if (dhcp->p_out == NULL) {
 
-  802ec98:	2800      	cmp	r0, #0
 
-  802ec9a:	f000 8085 	beq.w	802eda8 <dhcp_create_msg+0x134>
 
-   }
 
-   LWIP_ASSERT("dhcp_create_msg: check that first pbuf can hold struct dhcp_msg",
 
-            (dhcp->p_out->len >= sizeof(struct dhcp_msg)));
 
-   /* reuse transaction identifier in retransmissions */
 
-   if (dhcp->tries == 0) {
 
-  802ec9e:	7b62      	ldrb	r2, [r4, #13]
 
-  802eca0:	4b43      	ldr	r3, [pc, #268]	; (802edb0 <dhcp_create_msg+0x13c>)
 
-  802eca2:	b912      	cbnz	r2, 802ecaa <dhcp_create_msg+0x36>
 
- #if DHCP_CREATE_RAND_XID && defined(LWIP_RAND)
 
-     xid = LWIP_RAND();
 
- #else /* DHCP_CREATE_RAND_XID && defined(LWIP_RAND) */
 
-     xid++;
 
-  802eca4:	681a      	ldr	r2, [r3, #0]
 
-  802eca6:	3201      	adds	r2, #1
 
-  802eca8:	601a      	str	r2, [r3, #0]
 
- #endif /* DHCP_CREATE_RAND_XID && defined(LWIP_RAND) */
 
-   }
 
-   dhcp->xid = xid;
 
-  802ecaa:	681b      	ldr	r3, [r3, #0]
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE,
 
-               ("transaction id xid(%"X32_F")\n", xid));
 
-   dhcp->msg_out = (struct dhcp_msg *)dhcp->p_out->payload;
 
-  802ecac:	6842      	ldr	r2, [r0, #4]
 
-     xid = LWIP_RAND();
 
- #else /* DHCP_CREATE_RAND_XID && defined(LWIP_RAND) */
 
-     xid++;
 
- #endif /* DHCP_CREATE_RAND_XID && defined(LWIP_RAND) */
 
-   }
 
-   dhcp->xid = xid;
 
-  802ecae:	6023      	str	r3, [r4, #0]
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE,
 
-               ("transaction id xid(%"X32_F")\n", xid));
 
-   dhcp->msg_out = (struct dhcp_msg *)dhcp->p_out->payload;
 
-   dhcp->msg_out->op = DHCP_BOOTREQUEST;
 
-  802ecb0:	2301      	movs	r3, #1
 
-   }
 
-   dhcp->xid = xid;
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE,
 
-               ("transaction id xid(%"X32_F")\n", xid));
 
-   dhcp->msg_out = (struct dhcp_msg *)dhcp->p_out->payload;
 
-  802ecb2:	6162      	str	r2, [r4, #20]
 
-   dhcp->msg_out->op = DHCP_BOOTREQUEST;
 
-  802ecb4:	7013      	strb	r3, [r2, #0]
 
-   /* TODO: make link layer independent */
 
-   dhcp->msg_out->htype = DHCP_HTYPE_ETH;
 
-  802ecb6:	6962      	ldr	r2, [r4, #20]
 
-  802ecb8:	7053      	strb	r3, [r2, #1]
 
-   dhcp->msg_out->hlen = netif->hwaddr_len;
 
-  802ecba:	6963      	ldr	r3, [r4, #20]
 
-  802ecbc:	f896 2026 	ldrb.w	r2, [r6, #38]	; 0x26
 
-  802ecc0:	709a      	strb	r2, [r3, #2]
 
-   dhcp->msg_out->hops = 0;
 
-  802ecc2:	6963      	ldr	r3, [r4, #20]
 
-  802ecc4:	2500      	movs	r5, #0
 
-  802ecc6:	70dd      	strb	r5, [r3, #3]
 
-   dhcp->msg_out->xid = htonl(dhcp->xid);
 
-  802ecc8:	6820      	ldr	r0, [r4, #0]
 
-  802ecca:	f8d4 8014 	ldr.w	r8, [r4, #20]
 
-  802ecce:	f7ff ff69 	bl	802eba4 <lwip_htonl>
 
-  802ecd2:	f8c8 0004 	str.w	r0, [r8, #4]
 
-   dhcp->msg_out->secs = 0;
 
-  802ecd6:	6963      	ldr	r3, [r4, #20]
 
-   /* we don't need the broadcast flag since we can receive unicast traffic
 
-      before being fully configured! */
 
-   dhcp->msg_out->flags = 0;
 
-   ip_addr_set_zero(&dhcp->msg_out->ciaddr);
 
-   /* set ciaddr to netif->ip_addr based on message_type and state */
 
-   if ((message_type == DHCP_INFORM) || (message_type == DHCP_DECLINE) ||
 
-  802ecd8:	2f08      	cmp	r7, #8
 
-   /* TODO: make link layer independent */
 
-   dhcp->msg_out->htype = DHCP_HTYPE_ETH;
 
-   dhcp->msg_out->hlen = netif->hwaddr_len;
 
-   dhcp->msg_out->hops = 0;
 
-   dhcp->msg_out->xid = htonl(dhcp->xid);
 
-   dhcp->msg_out->secs = 0;
 
-  802ecda:	721d      	strb	r5, [r3, #8]
 
-  802ecdc:	725d      	strb	r5, [r3, #9]
 
-   /* we don't need the broadcast flag since we can receive unicast traffic
 
-      before being fully configured! */
 
-   dhcp->msg_out->flags = 0;
 
-  802ecde:	729d      	strb	r5, [r3, #10]
 
-  802ece0:	72dd      	strb	r5, [r3, #11]
 
-   ip_addr_set_zero(&dhcp->msg_out->ciaddr);
 
-  802ece2:	731d      	strb	r5, [r3, #12]
 
-  802ece4:	735d      	strb	r5, [r3, #13]
 
-  802ece6:	739d      	strb	r5, [r3, #14]
 
-  802ece8:	73dd      	strb	r5, [r3, #15]
 
-   /* set ciaddr to netif->ip_addr based on message_type and state */
 
-   if ((message_type == DHCP_INFORM) || (message_type == DHCP_DECLINE) ||
 
-  802ecea:	d007      	beq.n	802ecfc <dhcp_create_msg+0x88>
 
-  802ecec:	2f04      	cmp	r7, #4
 
-  802ecee:	d005      	beq.n	802ecfc <dhcp_create_msg+0x88>
 
-  802ecf0:	2f03      	cmp	r7, #3
 
-  802ecf2:	d105      	bne.n	802ed00 <dhcp_create_msg+0x8c>
 
-       ((message_type == DHCP_REQUEST) && /* DHCP_BOUND not used for sending! */
 
-        ((dhcp->state==DHCP_RENEWING) || dhcp->state==DHCP_REBINDING))) {
 
-  802ecf4:	7b22      	ldrb	r2, [r4, #12]
 
-      before being fully configured! */
 
-   dhcp->msg_out->flags = 0;
 
-   ip_addr_set_zero(&dhcp->msg_out->ciaddr);
 
-   /* set ciaddr to netif->ip_addr based on message_type and state */
 
-   if ((message_type == DHCP_INFORM) || (message_type == DHCP_DECLINE) ||
 
-       ((message_type == DHCP_REQUEST) && /* DHCP_BOUND not used for sending! */
 
-  802ecf6:	3a04      	subs	r2, #4
 
-  802ecf8:	2a01      	cmp	r2, #1
 
-  802ecfa:	d801      	bhi.n	802ed00 <dhcp_create_msg+0x8c>
 
-        ((dhcp->state==DHCP_RENEWING) || dhcp->state==DHCP_REBINDING))) {
 
-     ip_addr_copy(dhcp->msg_out->ciaddr, netif->ip_addr);
 
-  802ecfc:	6872      	ldr	r2, [r6, #4]
 
-  802ecfe:	60da      	str	r2, [r3, #12]
 
-   }
 
-   ip_addr_set_zero(&dhcp->msg_out->yiaddr);
 
-  802ed00:	2500      	movs	r5, #0
 
-  802ed02:	741d      	strb	r5, [r3, #16]
 
-  802ed04:	745d      	strb	r5, [r3, #17]
 
-  802ed06:	749d      	strb	r5, [r3, #18]
 
-  802ed08:	74dd      	strb	r5, [r3, #19]
 
-   ip_addr_set_zero(&dhcp->msg_out->siaddr);
 
-  802ed0a:	751d      	strb	r5, [r3, #20]
 
-  802ed0c:	755d      	strb	r5, [r3, #21]
 
-  802ed0e:	759d      	strb	r5, [r3, #22]
 
-  802ed10:	75dd      	strb	r5, [r3, #23]
 
-   ip_addr_set_zero(&dhcp->msg_out->giaddr);
 
-  802ed12:	761d      	strb	r5, [r3, #24]
 
-  802ed14:	765d      	strb	r5, [r3, #25]
 
-  802ed16:	769d      	strb	r5, [r3, #26]
 
-  802ed18:	76dd      	strb	r5, [r3, #27]
 
-   for (i = 0; i < DHCP_CHADDR_LEN; i++) {
 
-     /* copy netif hardware address, pad with zeroes */
 
-     dhcp->msg_out->chaddr[i] = (i < netif->hwaddr_len) ? netif->hwaddr[i] : 0/* pad byte*/;
 
-  802ed1a:	f896 1026 	ldrb.w	r1, [r6, #38]	; 0x26
 
-  802ed1e:	6962      	ldr	r2, [r4, #20]
 
-  802ed20:	b2ab      	uxth	r3, r5
 
-  802ed22:	4299      	cmp	r1, r3
 
-  * @param netif the netif under DHCP control
 
-  * @param dhcp dhcp control struct
 
-  * @param message_type message type of the request
 
-  */
 
- static err_t
 
- dhcp_create_msg(struct netif *netif, struct dhcp *dhcp, u8_t message_type)
 
-  802ed24:	bf88      	it	hi
 
-  802ed26:	1973      	addhi	r3, r6, r5
 
-   ip_addr_set_zero(&dhcp->msg_out->yiaddr);
 
-   ip_addr_set_zero(&dhcp->msg_out->siaddr);
 
-   ip_addr_set_zero(&dhcp->msg_out->giaddr);
 
-   for (i = 0; i < DHCP_CHADDR_LEN; i++) {
 
-     /* copy netif hardware address, pad with zeroes */
 
-     dhcp->msg_out->chaddr[i] = (i < netif->hwaddr_len) ? netif->hwaddr[i] : 0/* pad byte*/;
 
-  802ed28:	442a      	add	r2, r5
 
-  802ed2a:	bf8c      	ite	hi
 
-  802ed2c:	f893 3027 	ldrbhi.w	r3, [r3, #39]	; 0x27
 
-  802ed30:	2300      	movls	r3, #0
 
-  802ed32:	3501      	adds	r5, #1
 
-     ip_addr_copy(dhcp->msg_out->ciaddr, netif->ip_addr);
 
-   }
 
-   ip_addr_set_zero(&dhcp->msg_out->yiaddr);
 
-   ip_addr_set_zero(&dhcp->msg_out->siaddr);
 
-   ip_addr_set_zero(&dhcp->msg_out->giaddr);
 
-   for (i = 0; i < DHCP_CHADDR_LEN; i++) {
 
-  802ed34:	2d10      	cmp	r5, #16
 
-     /* copy netif hardware address, pad with zeroes */
 
-     dhcp->msg_out->chaddr[i] = (i < netif->hwaddr_len) ? netif->hwaddr[i] : 0/* pad byte*/;
 
-  802ed36:	7713      	strb	r3, [r2, #28]
 
-     ip_addr_copy(dhcp->msg_out->ciaddr, netif->ip_addr);
 
-   }
 
-   ip_addr_set_zero(&dhcp->msg_out->yiaddr);
 
-   ip_addr_set_zero(&dhcp->msg_out->siaddr);
 
-   ip_addr_set_zero(&dhcp->msg_out->giaddr);
 
-   for (i = 0; i < DHCP_CHADDR_LEN; i++) {
 
-  802ed38:	d1ef      	bne.n	802ed1a <dhcp_create_msg+0xa6>
 
-  802ed3a:	2300      	movs	r3, #0
 
-     /* copy netif hardware address, pad with zeroes */
 
-     dhcp->msg_out->chaddr[i] = (i < netif->hwaddr_len) ? netif->hwaddr[i] : 0/* pad byte*/;
 
-   }
 
-   for (i = 0; i < DHCP_SNAME_LEN; i++) {
 
-     dhcp->msg_out->sname[i] = 0;
 
-  802ed3c:	4619      	mov	r1, r3
 
-  802ed3e:	6962      	ldr	r2, [r4, #20]
 
-  802ed40:	18d2      	adds	r2, r2, r3
 
-  802ed42:	3301      	adds	r3, #1
 
-   ip_addr_set_zero(&dhcp->msg_out->giaddr);
 
-   for (i = 0; i < DHCP_CHADDR_LEN; i++) {
 
-     /* copy netif hardware address, pad with zeroes */
 
-     dhcp->msg_out->chaddr[i] = (i < netif->hwaddr_len) ? netif->hwaddr[i] : 0/* pad byte*/;
 
-   }
 
-   for (i = 0; i < DHCP_SNAME_LEN; i++) {
 
-  802ed44:	2b40      	cmp	r3, #64	; 0x40
 
-     dhcp->msg_out->sname[i] = 0;
 
-  802ed46:	f882 102c 	strb.w	r1, [r2, #44]	; 0x2c
 
-   ip_addr_set_zero(&dhcp->msg_out->giaddr);
 
-   for (i = 0; i < DHCP_CHADDR_LEN; i++) {
 
-     /* copy netif hardware address, pad with zeroes */
 
-     dhcp->msg_out->chaddr[i] = (i < netif->hwaddr_len) ? netif->hwaddr[i] : 0/* pad byte*/;
 
-   }
 
-   for (i = 0; i < DHCP_SNAME_LEN; i++) {
 
-  802ed4a:	d1f8      	bne.n	802ed3e <dhcp_create_msg+0xca>
 
-  802ed4c:	2200      	movs	r2, #0
 
-     dhcp->msg_out->sname[i] = 0;
 
-   }
 
-   for (i = 0; i < DHCP_FILE_LEN; i++) {
 
-     dhcp->msg_out->file[i] = 0;
 
-  802ed4e:	4610      	mov	r0, r2
 
-  802ed50:	6963      	ldr	r3, [r4, #20]
 
-  802ed52:	1899      	adds	r1, r3, r2
 
-  802ed54:	3201      	adds	r2, #1
 
-  802ed56:	2300      	movs	r3, #0
 
-     dhcp->msg_out->chaddr[i] = (i < netif->hwaddr_len) ? netif->hwaddr[i] : 0/* pad byte*/;
 
-   }
 
-   for (i = 0; i < DHCP_SNAME_LEN; i++) {
 
-     dhcp->msg_out->sname[i] = 0;
 
-   }
 
-   for (i = 0; i < DHCP_FILE_LEN; i++) {
 
-  802ed58:	2a80      	cmp	r2, #128	; 0x80
 
-     dhcp->msg_out->file[i] = 0;
 
-  802ed5a:	f881 006c 	strb.w	r0, [r1, #108]	; 0x6c
 
-     dhcp->msg_out->chaddr[i] = (i < netif->hwaddr_len) ? netif->hwaddr[i] : 0/* pad byte*/;
 
-   }
 
-   for (i = 0; i < DHCP_SNAME_LEN; i++) {
 
-     dhcp->msg_out->sname[i] = 0;
 
-   }
 
-   for (i = 0; i < DHCP_FILE_LEN; i++) {
 
-  802ed5e:	d1f7      	bne.n	802ed50 <dhcp_create_msg+0xdc>
 
-     dhcp->msg_out->file[i] = 0;
 
-   }
 
-   dhcp->msg_out->cookie = PP_HTONL(DHCP_MAGIC_COOKIE);
 
-  802ed60:	6962      	ldr	r2, [r4, #20]
 
-  802ed62:	f06f 007d 	mvn.w	r0, #125	; 0x7d
 
-  802ed66:	2163      	movs	r1, #99	; 0x63
 
-  802ed68:	f882 00ed 	strb.w	r0, [r2, #237]	; 0xed
 
-  802ed6c:	2053      	movs	r0, #83	; 0x53
 
-  802ed6e:	f882 10ec 	strb.w	r1, [r2, #236]	; 0xec
 
-  802ed72:	f882 00ee 	strb.w	r0, [r2, #238]	; 0xee
 
-  802ed76:	f882 10ef 	strb.w	r1, [r2, #239]	; 0xef
 
-   dhcp->options_out_len = 0;
 
-  802ed7a:	8323      	strh	r3, [r4, #24]
 
-   /* fill options field with an incrementing array (for debugging purposes) */
 
-   for (i = 0; i < DHCP_OPTIONS_LEN; i++) {
 
-     dhcp->msg_out->options[i] = (u8_t)i; /* for debugging only, no matter if truncated */
 
-  802ed7c:	6962      	ldr	r2, [r4, #20]
 
-  802ed7e:	18d2      	adds	r2, r2, r3
 
-  802ed80:	f882 30f0 	strb.w	r3, [r2, #240]	; 0xf0
 
-  802ed84:	3301      	adds	r3, #1
 
-     dhcp->msg_out->file[i] = 0;
 
-   }
 
-   dhcp->msg_out->cookie = PP_HTONL(DHCP_MAGIC_COOKIE);
 
-   dhcp->options_out_len = 0;
 
-   /* fill options field with an incrementing array (for debugging purposes) */
 
-   for (i = 0; i < DHCP_OPTIONS_LEN; i++) {
 
-  802ed86:	2b44      	cmp	r3, #68	; 0x44
 
-  802ed88:	d1f8      	bne.n	802ed7c <dhcp_create_msg+0x108>
 
-     dhcp->msg_out->options[i] = (u8_t)i; /* for debugging only, no matter if truncated */
 
-   }
 
-   /* Add option MESSAGE_TYPE */
 
-   dhcp_option(dhcp, DHCP_OPTION_MESSAGE_TYPE, DHCP_OPTION_MESSAGE_TYPE_LEN);
 
-  802ed8a:	4620      	mov	r0, r4
 
-  802ed8c:	2135      	movs	r1, #53	; 0x35
 
-  802ed8e:	2201      	movs	r2, #1
 
-  802ed90:	f7ff ff14 	bl	802ebbc <dhcp_option>
 
-   dhcp_option_byte(dhcp, message_type);
 
-  802ed94:	4620      	mov	r0, r4
 
-  802ed96:	4639      	mov	r1, r7
 
-  802ed98:	f7ff ff1f 	bl	802ebda <dhcp_option_byte>
 
-   return ERR_OK;
 
-  802ed9c:	2000      	movs	r0, #0
 
-  802ed9e:	e004      	b.n	802edaa <dhcp_create_msg+0x136>
 
-   if (!xid_initialised) {
 
-     xid = DHCP_GLOBAL_XID;
 
-     xid_initialised = !xid_initialised;
 
-   }
 
- #endif
 
-   LWIP_ERROR("dhcp_create_msg: netif != NULL", (netif != NULL), return ERR_ARG;);
 
-  802eda0:	20f2      	movs	r0, #242	; 0xf2
 
-  802eda2:	e002      	b.n	802edaa <dhcp_create_msg+0x136>
 
-   LWIP_ERROR("dhcp_create_msg: dhcp != NULL", (dhcp != NULL), return ERR_VAL;);
 
-  802eda4:	20fa      	movs	r0, #250	; 0xfa
 
-  802eda6:	e000      	b.n	802edaa <dhcp_create_msg+0x136>
 
-   LWIP_ASSERT("dhcp_create_msg: dhcp->msg_out == NULL", dhcp->msg_out == NULL);
 
-   dhcp->p_out = pbuf_alloc(PBUF_TRANSPORT, sizeof(struct dhcp_msg), PBUF_RAM);
 
-   if (dhcp->p_out == NULL) {
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS,
 
-       ("dhcp_create_msg(): could not allocate pbuf\n"));
 
-     return ERR_MEM;
 
-  802eda8:	20ff      	movs	r0, #255	; 0xff
 
-   }
 
-   /* Add option MESSAGE_TYPE */
 
-   dhcp_option(dhcp, DHCP_OPTION_MESSAGE_TYPE, DHCP_OPTION_MESSAGE_TYPE_LEN);
 
-   dhcp_option_byte(dhcp, message_type);
 
-   return ERR_OK;
 
- }
 
-  802edaa:	b240      	sxtb	r0, r0
 
-  802edac:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 
-  802edb0:	20000714 	.word	0x20000714
 
- 0802edb4 <dhcp_delete_msg>:
 
-  *
 
-  * @param dhcp the dhcp struct to free the request from
 
-  */
 
- static void
 
- dhcp_delete_msg(struct dhcp *dhcp)
 
- {
 
-  802edb4:	b510      	push	{r4, lr}
 
-   LWIP_ERROR("dhcp_delete_msg: dhcp != NULL", (dhcp != NULL), return;);
 
-  802edb6:	4604      	mov	r4, r0
 
-  802edb8:	b130      	cbz	r0, 802edc8 <dhcp_delete_msg+0x14>
 
-   LWIP_ASSERT("dhcp_delete_msg: dhcp->p_out != NULL", dhcp->p_out != NULL);
 
-   LWIP_ASSERT("dhcp_delete_msg: dhcp->msg_out != NULL", dhcp->msg_out != NULL);
 
-   if (dhcp->p_out != NULL) {
 
-  802edba:	6900      	ldr	r0, [r0, #16]
 
-  802edbc:	b108      	cbz	r0, 802edc2 <dhcp_delete_msg+0xe>
 
-     pbuf_free(dhcp->p_out);
 
-  802edbe:	f001 f825 	bl	802fe0c <pbuf_free>
 
-   }
 
-   dhcp->p_out = NULL;
 
-  802edc2:	2300      	movs	r3, #0
 
-  802edc4:	6123      	str	r3, [r4, #16]
 
-   dhcp->msg_out = NULL;
 
-  802edc6:	6163      	str	r3, [r4, #20]
 
-  802edc8:	bd10      	pop	{r4, pc}
 
-  802edca:	0000      	movs	r0, r0
 
- 0802edcc <dhcp_discover>:
 
-  *
 
-  * @param netif the netif under DHCP control
 
-  */
 
- static err_t
 
- dhcp_discover(struct netif *netif)
 
- {
 
-  802edcc:	b573      	push	{r0, r1, r4, r5, r6, lr}
 
-   struct dhcp *dhcp = netif->dhcp;
 
-  802edce:	6a04      	ldr	r4, [r0, #32]
 
-   err_t result = ERR_OK;
 
-   u16_t msecs;
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_discover()\n"));
 
-   ip_addr_set_any(&dhcp->offered_ip_addr);
 
-  802edd0:	2300      	movs	r3, #0
 
-  *
 
-  * @param netif the netif under DHCP control
 
-  */
 
- static err_t
 
- dhcp_discover(struct netif *netif)
 
- {
 
-  802edd2:	4605      	mov	r5, r0
 
-   struct dhcp *dhcp = netif->dhcp;
 
-   err_t result = ERR_OK;
 
-   u16_t msecs;
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_discover()\n"));
 
-   ip_addr_set_any(&dhcp->offered_ip_addr);
 
-  802edd4:	6263      	str	r3, [r4, #36]	; 0x24
 
-   dhcp_set_state(dhcp, DHCP_SELECTING);
 
-  802edd6:	4620      	mov	r0, r4
 
-  802edd8:	2106      	movs	r1, #6
 
-  802edda:	f7ff fee7 	bl	802ebac <dhcp_set_state>
 
-   /* create and initialize the DHCP message header */
 
-   result = dhcp_create_msg(netif, dhcp, DHCP_DISCOVER);
 
-  802edde:	4628      	mov	r0, r5
 
-  802ede0:	4621      	mov	r1, r4
 
-  802ede2:	2201      	movs	r2, #1
 
-  802ede4:	f7ff ff46 	bl	802ec74 <dhcp_create_msg>
 
-   if (result == ERR_OK) {
 
-  802ede8:	4606      	mov	r6, r0
 
-  802edea:	2800      	cmp	r0, #0
 
-  802edec:	d130      	bne.n	802ee50 <dhcp_discover+0x84>
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_discover: making request\n"));
 
-     dhcp_option(dhcp, DHCP_OPTION_MAX_MSG_SIZE, DHCP_OPTION_MAX_MSG_SIZE_LEN);
 
-  802edee:	2202      	movs	r2, #2
 
-  802edf0:	4620      	mov	r0, r4
 
-  802edf2:	2139      	movs	r1, #57	; 0x39
 
-  802edf4:	f7ff fee2 	bl	802ebbc <dhcp_option>
 
-     dhcp_option_short(dhcp, DHCP_MAX_MSG_LEN(netif));
 
-  802edf8:	4620      	mov	r0, r4
 
-  802edfa:	8ca9      	ldrh	r1, [r5, #36]	; 0x24
 
-  802edfc:	f7ff fef5 	bl	802ebea <dhcp_option_short>
 
-     dhcp_option(dhcp, DHCP_OPTION_PARAMETER_REQUEST_LIST, 4/*num options*/);
 
-  802ee00:	2204      	movs	r2, #4
 
-  802ee02:	4620      	mov	r0, r4
 
-  802ee04:	2137      	movs	r1, #55	; 0x37
 
-  802ee06:	f7ff fed9 	bl	802ebbc <dhcp_option>
 
-     dhcp_option_byte(dhcp, DHCP_OPTION_SUBNET_MASK);
 
-  802ee0a:	4620      	mov	r0, r4
 
-  802ee0c:	2101      	movs	r1, #1
 
-  802ee0e:	f7ff fee4 	bl	802ebda <dhcp_option_byte>
 
-     dhcp_option_byte(dhcp, DHCP_OPTION_ROUTER);
 
-  802ee12:	4620      	mov	r0, r4
 
-  802ee14:	2103      	movs	r1, #3
 
-  802ee16:	f7ff fee0 	bl	802ebda <dhcp_option_byte>
 
-     dhcp_option_byte(dhcp, DHCP_OPTION_BROADCAST);
 
-  802ee1a:	4620      	mov	r0, r4
 
-  802ee1c:	211c      	movs	r1, #28
 
-  802ee1e:	f7ff fedc 	bl	802ebda <dhcp_option_byte>
 
-     dhcp_option_byte(dhcp, DHCP_OPTION_DNS_SERVER);
 
-  802ee22:	2106      	movs	r1, #6
 
-  802ee24:	4620      	mov	r0, r4
 
-  802ee26:	f7ff fed8 	bl	802ebda <dhcp_option_byte>
 
-     dhcp_option_trailer(dhcp);
 
-  802ee2a:	4620      	mov	r0, r4
 
-  802ee2c:	f7ff ff0d 	bl	802ec4a <dhcp_option_trailer>
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_discover: realloc()ing\n"));
 
-     pbuf_realloc(dhcp->p_out, sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN + dhcp->options_out_len);
 
-  802ee30:	8b21      	ldrh	r1, [r4, #24]
 
-  802ee32:	6920      	ldr	r0, [r4, #16]
 
-  802ee34:	31f0      	adds	r1, #240	; 0xf0
 
-  802ee36:	b289      	uxth	r1, r1
 
-  802ee38:	f001 f80f 	bl	802fe5a <pbuf_realloc>
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_discover: sendto(DISCOVER, IP_ADDR_BROADCAST, DHCP_SERVER_PORT)\n"));
 
-     udp_sendto_if(dhcp->pcb, dhcp->p_out, IP_ADDR_BROADCAST, DHCP_SERVER_PORT, netif);
 
-  802ee3c:	9500      	str	r5, [sp, #0]
 
-  802ee3e:	6860      	ldr	r0, [r4, #4]
 
-  802ee40:	6921      	ldr	r1, [r4, #16]
 
-  802ee42:	4a0f      	ldr	r2, [pc, #60]	; (802ee80 <dhcp_discover+0xb4>)
 
-  802ee44:	2343      	movs	r3, #67	; 0x43
 
-  802ee46:	f003 fda3 	bl	8032990 <udp_sendto_if>
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_discover: deleting()ing\n"));
 
-     dhcp_delete_msg(dhcp);
 
-  802ee4a:	4620      	mov	r0, r4
 
-  802ee4c:	f7ff ffb2 	bl	802edb4 <dhcp_delete_msg>
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_discover: SELECTING\n"));
 
-   } else {
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, ("dhcp_discover: could not allocate DHCP request\n"));
 
-   }
 
-   dhcp->tries++;
 
-  802ee50:	7b63      	ldrb	r3, [r4, #13]
 
-  802ee52:	3301      	adds	r3, #1
 
-  802ee54:	b2db      	uxtb	r3, r3
 
-   if(dhcp->tries >= LWIP_DHCP_AUTOIP_COOP_TRIES && dhcp->autoip_coop_state == DHCP_AUTOIP_COOP_STATE_OFF) {
 
-     dhcp->autoip_coop_state = DHCP_AUTOIP_COOP_STATE_ON;
 
-     autoip_start(netif);
 
-   }
 
- #endif /* LWIP_DHCP_AUTOIP_COOP */
 
-   msecs = (dhcp->tries < 6 ? 1 << dhcp->tries : 60) * 1000;
 
-  802ee56:	2b05      	cmp	r3, #5
 
-  802ee58:	bf98      	it	ls
 
-  802ee5a:	f44f 727a 	movls.w	r2, #1000	; 0x3e8
 
-     dhcp_delete_msg(dhcp);
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_discover: SELECTING\n"));
 
-   } else {
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, ("dhcp_discover: could not allocate DHCP request\n"));
 
-   }
 
-   dhcp->tries++;
 
-  802ee5e:	7363      	strb	r3, [r4, #13]
 
-   if(dhcp->tries >= LWIP_DHCP_AUTOIP_COOP_TRIES && dhcp->autoip_coop_state == DHCP_AUTOIP_COOP_STATE_OFF) {
 
-     dhcp->autoip_coop_state = DHCP_AUTOIP_COOP_STATE_ON;
 
-     autoip_start(netif);
 
-   }
 
- #endif /* LWIP_DHCP_AUTOIP_COOP */
 
-   msecs = (dhcp->tries < 6 ? 1 << dhcp->tries : 60) * 1000;
 
-  802ee60:	bf9a      	itte	ls
 
-  802ee62:	fa02 f303 	lslls.w	r3, r2, r3
 
-  802ee66:	b29b      	uxthls	r3, r3
 
-  802ee68:	f64e 2360 	movwhi	r3, #60000	; 0xea60
 
-   dhcp->request_timeout = (msecs + DHCP_FINE_TIMER_MSECS - 1) / DHCP_FINE_TIMER_MSECS;
 
-  802ee6c:	f44f 72fa 	mov.w	r2, #500	; 0x1f4
 
-  802ee70:	f203 13f3 	addw	r3, r3, #499	; 0x1f3
 
-  802ee74:	fb93 f3f2 	sdiv	r3, r3, r2
 
-  802ee78:	8363      	strh	r3, [r4, #26]
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_discover(): set request timeout %"U16_F" msecs\n", msecs));
 
-   return result;
 
- }
 
-  802ee7a:	4630      	mov	r0, r6
 
-  802ee7c:	bd7c      	pop	{r2, r3, r4, r5, r6, pc}
 
-  802ee7e:	bf00      	nop
 
-  802ee80:	08045004 	.word	0x08045004
 
- 0802ee84 <dhcp_rebind>:
 
-  *
 
-  * @param netif network interface which must rebind with a DHCP server
 
-  */
 
- static err_t
 
- dhcp_rebind(struct netif *netif)
 
- {
 
-  802ee84:	b573      	push	{r0, r1, r4, r5, r6, lr}
 
-   struct dhcp *dhcp = netif->dhcp;
 
-  802ee86:	6a04      	ldr	r4, [r0, #32]
 
-  *
 
-  * @param netif network interface which must rebind with a DHCP server
 
-  */
 
- static err_t
 
- dhcp_rebind(struct netif *netif)
 
- {
 
-  802ee88:	4605      	mov	r5, r0
 
-   struct dhcp *dhcp = netif->dhcp;
 
-   err_t result;
 
-   u16_t msecs;
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_rebind()\n"));
 
-   dhcp_set_state(dhcp, DHCP_REBINDING);
 
-  802ee8a:	2104      	movs	r1, #4
 
-  802ee8c:	4620      	mov	r0, r4
 
-  802ee8e:	f7ff fe8d 	bl	802ebac <dhcp_set_state>
 
-   /* create and initialize the DHCP message header */
 
-   result = dhcp_create_msg(netif, dhcp, DHCP_REQUEST);
 
-  802ee92:	4628      	mov	r0, r5
 
-  802ee94:	4621      	mov	r1, r4
 
-  802ee96:	2203      	movs	r2, #3
 
-  802ee98:	f7ff feec 	bl	802ec74 <dhcp_create_msg>
 
-   if (result == ERR_OK) {
 
-  802ee9c:	4606      	mov	r6, r0
 
-  802ee9e:	b9d8      	cbnz	r0, 802eed8 <dhcp_rebind+0x54>
 
-     dhcp_option(dhcp, DHCP_OPTION_MAX_MSG_SIZE, DHCP_OPTION_MAX_MSG_SIZE_LEN);
 
-  802eea0:	2202      	movs	r2, #2
 
-  802eea2:	4620      	mov	r0, r4
 
-  802eea4:	2139      	movs	r1, #57	; 0x39
 
-  802eea6:	f7ff fe89 	bl	802ebbc <dhcp_option>
 
-     dhcp_option_short(dhcp, DHCP_MAX_MSG_LEN(netif));
 
-  802eeaa:	8ca9      	ldrh	r1, [r5, #36]	; 0x24
 
-  802eeac:	4620      	mov	r0, r4
 
-  802eeae:	f7ff fe9c 	bl	802ebea <dhcp_option_short>
 
-     dhcp_option(dhcp, DHCP_OPTION_SERVER_ID, 4);
 
-     dhcp_option_long(dhcp, ntohl(dhcp->server_ip_addr.addr));
 
- #endif
 
-     dhcp_option_trailer(dhcp);
 
-  802eeb2:	4620      	mov	r0, r4
 
-  802eeb4:	f7ff fec9 	bl	802ec4a <dhcp_option_trailer>
 
-     pbuf_realloc(dhcp->p_out, sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN + dhcp->options_out_len);
 
-  802eeb8:	8b21      	ldrh	r1, [r4, #24]
 
-  802eeba:	6920      	ldr	r0, [r4, #16]
 
-  802eebc:	31f0      	adds	r1, #240	; 0xf0
 
-  802eebe:	b289      	uxth	r1, r1
 
-  802eec0:	f000 ffcb 	bl	802fe5a <pbuf_realloc>
 
-     /* broadcast to server */
 
-     udp_sendto_if(dhcp->pcb, dhcp->p_out, IP_ADDR_BROADCAST, DHCP_SERVER_PORT, netif);
 
-  802eec4:	9500      	str	r5, [sp, #0]
 
-  802eec6:	6860      	ldr	r0, [r4, #4]
 
-  802eec8:	6921      	ldr	r1, [r4, #16]
 
-  802eeca:	4a0e      	ldr	r2, [pc, #56]	; (802ef04 <dhcp_rebind+0x80>)
 
-  802eecc:	2343      	movs	r3, #67	; 0x43
 
-  802eece:	f003 fd5f 	bl	8032990 <udp_sendto_if>
 
-     dhcp_delete_msg(dhcp);
 
-  802eed2:	4620      	mov	r0, r4
 
-  802eed4:	f7ff ff6e 	bl	802edb4 <dhcp_delete_msg>
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_rebind: REBINDING\n"));
 
-   } else {
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, ("dhcp_rebind: could not allocate DHCP request\n"));
 
-   }
 
-   dhcp->tries++;
 
-  802eed8:	7b63      	ldrb	r3, [r4, #13]
 
-  802eeda:	3301      	adds	r3, #1
 
-  802eedc:	b2db      	uxtb	r3, r3
 
-   msecs = dhcp->tries < 10 ? dhcp->tries * 1000 : 10 * 1000;
 
-  802eede:	2b09      	cmp	r3, #9
 
-     dhcp_delete_msg(dhcp);
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_rebind: REBINDING\n"));
 
-   } else {
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, ("dhcp_rebind: could not allocate DHCP request\n"));
 
-   }
 
-   dhcp->tries++;
 
-  802eee0:	7363      	strb	r3, [r4, #13]
 
-   msecs = dhcp->tries < 10 ? dhcp->tries * 1000 : 10 * 1000;
 
-  802eee2:	d804      	bhi.n	802eeee <dhcp_rebind+0x6a>
 
-  802eee4:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
 
-  802eee8:	4353      	muls	r3, r2
 
-  802eeea:	b29b      	uxth	r3, r3
 
-  802eeec:	e001      	b.n	802eef2 <dhcp_rebind+0x6e>
 
-  802eeee:	f242 7310 	movw	r3, #10000	; 0x2710
 
-   dhcp->request_timeout = (msecs + DHCP_FINE_TIMER_MSECS - 1) / DHCP_FINE_TIMER_MSECS;
 
-  802eef2:	f44f 72fa 	mov.w	r2, #500	; 0x1f4
 
-  802eef6:	f203 13f3 	addw	r3, r3, #499	; 0x1f3
 
-  802eefa:	fb93 f3f2 	sdiv	r3, r3, r2
 
-  802eefe:	8363      	strh	r3, [r4, #26]
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_rebind(): set request timeout %"U16_F" msecs\n", msecs));
 
-   return result;
 
- }
 
-  802ef00:	4630      	mov	r0, r6
 
-  802ef02:	bd7c      	pop	{r2, r3, r4, r5, r6, pc}
 
-  802ef04:	08045004 	.word	0x08045004
 
- 0802ef08 <dhcp_reboot>:
 
-  *
 
-  * @param netif network interface which must reboot
 
-  */
 
- static err_t
 
- dhcp_reboot(struct netif *netif)
 
- {
 
-  802ef08:	b573      	push	{r0, r1, r4, r5, r6, lr}
 
-   struct dhcp *dhcp = netif->dhcp;
 
-  802ef0a:	6a04      	ldr	r4, [r0, #32]
 
-  *
 
-  * @param netif network interface which must reboot
 
-  */
 
- static err_t
 
- dhcp_reboot(struct netif *netif)
 
- {
 
-  802ef0c:	4605      	mov	r5, r0
 
-   struct dhcp *dhcp = netif->dhcp;
 
-   err_t result;
 
-   u16_t msecs;
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_reboot()\n"));
 
-   dhcp_set_state(dhcp, DHCP_REBOOTING);
 
-  802ef0e:	2103      	movs	r1, #3
 
-  802ef10:	4620      	mov	r0, r4
 
-  802ef12:	f7ff fe4b 	bl	802ebac <dhcp_set_state>
 
-   /* create and initialize the DHCP message header */
 
-   result = dhcp_create_msg(netif, dhcp, DHCP_REQUEST);
 
-  802ef16:	4628      	mov	r0, r5
 
-  802ef18:	4621      	mov	r1, r4
 
-  802ef1a:	2203      	movs	r2, #3
 
-  802ef1c:	f7ff feaa 	bl	802ec74 <dhcp_create_msg>
 
-   if (result == ERR_OK) {
 
-  802ef20:	4606      	mov	r6, r0
 
-  802ef22:	bb40      	cbnz	r0, 802ef76 <dhcp_reboot+0x6e>
 
-     dhcp_option(dhcp, DHCP_OPTION_MAX_MSG_SIZE, DHCP_OPTION_MAX_MSG_SIZE_LEN);
 
-  802ef24:	2202      	movs	r2, #2
 
-  802ef26:	4620      	mov	r0, r4
 
-  802ef28:	2139      	movs	r1, #57	; 0x39
 
-  802ef2a:	f7ff fe47 	bl	802ebbc <dhcp_option>
 
-     dhcp_option_short(dhcp, 576);
 
-  802ef2e:	4620      	mov	r0, r4
 
-  802ef30:	f44f 7110 	mov.w	r1, #576	; 0x240
 
-  802ef34:	f7ff fe59 	bl	802ebea <dhcp_option_short>
 
-     dhcp_option(dhcp, DHCP_OPTION_REQUESTED_IP, 4);
 
-  802ef38:	2204      	movs	r2, #4
 
-  802ef3a:	2132      	movs	r1, #50	; 0x32
 
-  802ef3c:	4620      	mov	r0, r4
 
-  802ef3e:	f7ff fe3d 	bl	802ebbc <dhcp_option>
 
-     dhcp_option_long(dhcp, ntohl(ip4_addr_get_u32(&dhcp->offered_ip_addr)));
 
-  802ef42:	6a60      	ldr	r0, [r4, #36]	; 0x24
 
-  802ef44:	f7ff fe30 	bl	802eba8 <lwip_ntohl>
 
-  802ef48:	4601      	mov	r1, r0
 
-  802ef4a:	4620      	mov	r0, r4
 
-  802ef4c:	f7ff fe5d 	bl	802ec0a <dhcp_option_long>
 
-     dhcp_option_trailer(dhcp);
 
-  802ef50:	4620      	mov	r0, r4
 
-  802ef52:	f7ff fe7a 	bl	802ec4a <dhcp_option_trailer>
 
-     pbuf_realloc(dhcp->p_out, sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN + dhcp->options_out_len);
 
-  802ef56:	8b21      	ldrh	r1, [r4, #24]
 
-  802ef58:	6920      	ldr	r0, [r4, #16]
 
-  802ef5a:	31f0      	adds	r1, #240	; 0xf0
 
-  802ef5c:	b289      	uxth	r1, r1
 
-  802ef5e:	f000 ff7c 	bl	802fe5a <pbuf_realloc>
 
-     /* broadcast to server */
 
-     udp_sendto_if(dhcp->pcb, dhcp->p_out, IP_ADDR_BROADCAST, DHCP_SERVER_PORT, netif);
 
-  802ef62:	9500      	str	r5, [sp, #0]
 
-  802ef64:	6860      	ldr	r0, [r4, #4]
 
-  802ef66:	6921      	ldr	r1, [r4, #16]
 
-  802ef68:	4a0e      	ldr	r2, [pc, #56]	; (802efa4 <dhcp_reboot+0x9c>)
 
-  802ef6a:	2343      	movs	r3, #67	; 0x43
 
-  802ef6c:	f003 fd10 	bl	8032990 <udp_sendto_if>
 
-     dhcp_delete_msg(dhcp);
 
-  802ef70:	4620      	mov	r0, r4
 
-  802ef72:	f7ff ff1f 	bl	802edb4 <dhcp_delete_msg>
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_reboot: REBOOTING\n"));
 
-   } else {
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, ("dhcp_reboot: could not allocate DHCP request\n"));
 
-   }
 
-   dhcp->tries++;
 
-  802ef76:	7b63      	ldrb	r3, [r4, #13]
 
-  802ef78:	3301      	adds	r3, #1
 
-  802ef7a:	b2db      	uxtb	r3, r3
 
-   msecs = dhcp->tries < 10 ? dhcp->tries * 1000 : 10 * 1000;
 
-  802ef7c:	2b09      	cmp	r3, #9
 
-     dhcp_delete_msg(dhcp);
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_reboot: REBOOTING\n"));
 
-   } else {
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, ("dhcp_reboot: could not allocate DHCP request\n"));
 
-   }
 
-   dhcp->tries++;
 
-  802ef7e:	7363      	strb	r3, [r4, #13]
 
-   msecs = dhcp->tries < 10 ? dhcp->tries * 1000 : 10 * 1000;
 
-  802ef80:	d804      	bhi.n	802ef8c <dhcp_reboot+0x84>
 
-  802ef82:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
 
-  802ef86:	4353      	muls	r3, r2
 
-  802ef88:	b29b      	uxth	r3, r3
 
-  802ef8a:	e001      	b.n	802ef90 <dhcp_reboot+0x88>
 
-  802ef8c:	f242 7310 	movw	r3, #10000	; 0x2710
 
-   dhcp->request_timeout = (msecs + DHCP_FINE_TIMER_MSECS - 1) / DHCP_FINE_TIMER_MSECS;
 
-  802ef90:	f44f 72fa 	mov.w	r2, #500	; 0x1f4
 
-  802ef94:	f203 13f3 	addw	r3, r3, #499	; 0x1f3
 
-  802ef98:	fb93 f3f2 	sdiv	r3, r3, r2
 
-  802ef9c:	8363      	strh	r3, [r4, #26]
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_reboot(): set request timeout %"U16_F" msecs\n", msecs));
 
-   return result;
 
- }
 
-  802ef9e:	4630      	mov	r0, r6
 
-  802efa0:	bd7c      	pop	{r2, r3, r4, r5, r6, pc}
 
-  802efa2:	bf00      	nop
 
-  802efa4:	08045004 	.word	0x08045004
 
- 0802efa8 <dhcp_select>:
 
-  * @param netif the netif under DHCP control
 
-  * @return lwIP specific error (see error.h)
 
-  */
 
- static err_t
 
- dhcp_select(struct netif *netif)
 
- {
 
-  802efa8:	b573      	push	{r0, r1, r4, r5, r6, lr}
 
-   struct dhcp *dhcp = netif->dhcp;
 
-  802efaa:	6a04      	ldr	r4, [r0, #32]
 
-  * @param netif the netif under DHCP control
 
-  * @return lwIP specific error (see error.h)
 
-  */
 
- static err_t
 
- dhcp_select(struct netif *netif)
 
- {
 
-  802efac:	4605      	mov	r5, r0
 
-   struct dhcp *dhcp = netif->dhcp;
 
-   err_t result;
 
-   u16_t msecs;
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_select(netif=%p) %c%c%"U16_F"\n", (void*)netif, netif->name[0], netif->name[1], (u16_t)netif->num));
 
-   dhcp_set_state(dhcp, DHCP_REQUESTING);
 
-  802efae:	2101      	movs	r1, #1
 
-  802efb0:	4620      	mov	r0, r4
 
-  802efb2:	f7ff fdfb 	bl	802ebac <dhcp_set_state>
 
-   /* create and initialize the DHCP message header */
 
-   result = dhcp_create_msg(netif, dhcp, DHCP_REQUEST);
 
-  802efb6:	4628      	mov	r0, r5
 
-  802efb8:	4621      	mov	r1, r4
 
-  802efba:	2203      	movs	r2, #3
 
-  802efbc:	f7ff fe5a 	bl	802ec74 <dhcp_create_msg>
 
-   if (result == ERR_OK) {
 
-  802efc0:	4606      	mov	r6, r0
 
-  802efc2:	2800      	cmp	r0, #0
 
-  802efc4:	d148      	bne.n	802f058 <dhcp_select+0xb0>
 
-     dhcp_option(dhcp, DHCP_OPTION_MAX_MSG_SIZE, DHCP_OPTION_MAX_MSG_SIZE_LEN);
 
-  802efc6:	2202      	movs	r2, #2
 
-  802efc8:	4620      	mov	r0, r4
 
-  802efca:	2139      	movs	r1, #57	; 0x39
 
-  802efcc:	f7ff fdf6 	bl	802ebbc <dhcp_option>
 
-     dhcp_option_short(dhcp, DHCP_MAX_MSG_LEN(netif));
 
-  802efd0:	4620      	mov	r0, r4
 
-  802efd2:	8ca9      	ldrh	r1, [r5, #36]	; 0x24
 
-  802efd4:	f7ff fe09 	bl	802ebea <dhcp_option_short>
 
-     /* MUST request the offered IP address */
 
-     dhcp_option(dhcp, DHCP_OPTION_REQUESTED_IP, 4);
 
-  802efd8:	2204      	movs	r2, #4
 
-  802efda:	2132      	movs	r1, #50	; 0x32
 
-  802efdc:	4620      	mov	r0, r4
 
-  802efde:	f7ff fded 	bl	802ebbc <dhcp_option>
 
-     dhcp_option_long(dhcp, ntohl(ip4_addr_get_u32(&dhcp->offered_ip_addr)));
 
-  802efe2:	6a60      	ldr	r0, [r4, #36]	; 0x24
 
-  802efe4:	f7ff fde0 	bl	802eba8 <lwip_ntohl>
 
-  802efe8:	4601      	mov	r1, r0
 
-  802efea:	4620      	mov	r0, r4
 
-  802efec:	f7ff fe0d 	bl	802ec0a <dhcp_option_long>
 
-     dhcp_option(dhcp, DHCP_OPTION_SERVER_ID, 4);
 
-  802eff0:	2204      	movs	r2, #4
 
-  802eff2:	2136      	movs	r1, #54	; 0x36
 
-  802eff4:	4620      	mov	r0, r4
 
-  802eff6:	f7ff fde1 	bl	802ebbc <dhcp_option>
 
-     dhcp_option_long(dhcp, ntohl(ip4_addr_get_u32(&dhcp->server_ip_addr)));
 
-  802effa:	6a20      	ldr	r0, [r4, #32]
 
-  802effc:	f7ff fdd4 	bl	802eba8 <lwip_ntohl>
 
-  802f000:	4601      	mov	r1, r0
 
-  802f002:	4620      	mov	r0, r4
 
-  802f004:	f7ff fe01 	bl	802ec0a <dhcp_option_long>
 
-     dhcp_option(dhcp, DHCP_OPTION_PARAMETER_REQUEST_LIST, 4/*num options*/);
 
-  802f008:	2204      	movs	r2, #4
 
-  802f00a:	4620      	mov	r0, r4
 
-  802f00c:	2137      	movs	r1, #55	; 0x37
 
-  802f00e:	f7ff fdd5 	bl	802ebbc <dhcp_option>
 
-     dhcp_option_byte(dhcp, DHCP_OPTION_SUBNET_MASK);
 
-  802f012:	4620      	mov	r0, r4
 
-  802f014:	2101      	movs	r1, #1
 
-  802f016:	f7ff fde0 	bl	802ebda <dhcp_option_byte>
 
-     dhcp_option_byte(dhcp, DHCP_OPTION_ROUTER);
 
-  802f01a:	4620      	mov	r0, r4
 
-  802f01c:	2103      	movs	r1, #3
 
-  802f01e:	f7ff fddc 	bl	802ebda <dhcp_option_byte>
 
-     dhcp_option_byte(dhcp, DHCP_OPTION_BROADCAST);
 
-  802f022:	4620      	mov	r0, r4
 
-  802f024:	211c      	movs	r1, #28
 
-  802f026:	f7ff fdd8 	bl	802ebda <dhcp_option_byte>
 
-     dhcp_option_byte(dhcp, DHCP_OPTION_DNS_SERVER);
 
-  802f02a:	2106      	movs	r1, #6
 
-  802f02c:	4620      	mov	r0, r4
 
-  802f02e:	f7ff fdd4 	bl	802ebda <dhcp_option_byte>
 
- #if LWIP_NETIF_HOSTNAME
 
-     dhcp_option_hostname(dhcp, netif);
 
- #endif /* LWIP_NETIF_HOSTNAME */
 
-     dhcp_option_trailer(dhcp);
 
-  802f032:	4620      	mov	r0, r4
 
-  802f034:	f7ff fe09 	bl	802ec4a <dhcp_option_trailer>
 
-     /* shrink the pbuf to the actual content length */
 
-     pbuf_realloc(dhcp->p_out, sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN + dhcp->options_out_len);
 
-  802f038:	8b21      	ldrh	r1, [r4, #24]
 
-  802f03a:	6920      	ldr	r0, [r4, #16]
 
-  802f03c:	31f0      	adds	r1, #240	; 0xf0
 
-  802f03e:	b289      	uxth	r1, r1
 
-  802f040:	f000 ff0b 	bl	802fe5a <pbuf_realloc>
 
-     /* send broadcast to any DHCP server */
 
-     udp_sendto_if(dhcp->pcb, dhcp->p_out, IP_ADDR_BROADCAST, DHCP_SERVER_PORT, netif);
 
-  802f044:	9500      	str	r5, [sp, #0]
 
-  802f046:	6860      	ldr	r0, [r4, #4]
 
-  802f048:	6921      	ldr	r1, [r4, #16]
 
-  802f04a:	4a0f      	ldr	r2, [pc, #60]	; (802f088 <dhcp_select+0xe0>)
 
-  802f04c:	2343      	movs	r3, #67	; 0x43
 
-  802f04e:	f003 fc9f 	bl	8032990 <udp_sendto_if>
 
-     dhcp_delete_msg(dhcp);
 
-  802f052:	4620      	mov	r0, r4
 
-  802f054:	f7ff feae 	bl	802edb4 <dhcp_delete_msg>
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_select: REQUESTING\n"));
 
-   } else {
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_WARNING, ("dhcp_select: could not allocate DHCP request\n"));
 
-   }
 
-   dhcp->tries++;
 
-  802f058:	7b63      	ldrb	r3, [r4, #13]
 
-  802f05a:	3301      	adds	r3, #1
 
-  802f05c:	b2db      	uxtb	r3, r3
 
-   msecs = (dhcp->tries < 6 ? 1 << dhcp->tries : 60) * 1000;
 
-  802f05e:	2b05      	cmp	r3, #5
 
-  802f060:	bf98      	it	ls
 
-  802f062:	f44f 727a 	movls.w	r2, #1000	; 0x3e8
 
-     dhcp_delete_msg(dhcp);
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_select: REQUESTING\n"));
 
-   } else {
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_WARNING, ("dhcp_select: could not allocate DHCP request\n"));
 
-   }
 
-   dhcp->tries++;
 
-  802f066:	7363      	strb	r3, [r4, #13]
 
-   msecs = (dhcp->tries < 6 ? 1 << dhcp->tries : 60) * 1000;
 
-  802f068:	bf9a      	itte	ls
 
-  802f06a:	fa02 f303 	lslls.w	r3, r2, r3
 
-  802f06e:	b29b      	uxthls	r3, r3
 
-  802f070:	f64e 2360 	movwhi	r3, #60000	; 0xea60
 
-   dhcp->request_timeout = (msecs + DHCP_FINE_TIMER_MSECS - 1) / DHCP_FINE_TIMER_MSECS;
 
-  802f074:	f44f 72fa 	mov.w	r2, #500	; 0x1f4
 
-  802f078:	f203 13f3 	addw	r3, r3, #499	; 0x1f3
 
-  802f07c:	fb93 f3f2 	sdiv	r3, r3, r2
 
-  802f080:	8363      	strh	r3, [r4, #26]
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_STATE, ("dhcp_select(): set request timeout %"U16_F" msecs\n", msecs));
 
-   return result;
 
- }
 
-  802f082:	4630      	mov	r0, r6
 
-  802f084:	bd7c      	pop	{r2, r3, r4, r5, r6, pc}
 
-  802f086:	bf00      	nop
 
-  802f088:	08045004 	.word	0x08045004
 
- 0802f08c <dhcp_check>:
 
-  *
 
-  * @param netif the netif under DHCP control
 
-  */
 
- static void
 
- dhcp_check(struct netif *netif)
 
- {
 
-  802f08c:	b538      	push	{r3, r4, r5, lr}
 
-   struct dhcp *dhcp = netif->dhcp;
 
-  802f08e:	6a04      	ldr	r4, [r0, #32]
 
-  *
 
-  * @param netif the netif under DHCP control
 
-  */
 
- static void
 
- dhcp_check(struct netif *netif)
 
- {
 
-  802f090:	4605      	mov	r5, r0
 
-   struct dhcp *dhcp = netif->dhcp;
 
-   err_t result;
 
-   u16_t msecs;
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_check(netif=%p) %c%c\n", (void *)netif, (s16_t)netif->name[0],
 
-     (s16_t)netif->name[1]));
 
-   dhcp_set_state(dhcp, DHCP_CHECKING);
 
-  802f092:	2108      	movs	r1, #8
 
-  802f094:	4620      	mov	r0, r4
 
-  802f096:	f7ff fd89 	bl	802ebac <dhcp_set_state>
 
-   /* create an ARP query for the offered IP address, expecting that no host
 
-      responds, as the IP address should not be in use. */
 
-   result = etharp_query(netif, &dhcp->offered_ip_addr, NULL);
 
-  802f09a:	4628      	mov	r0, r5
 
-  802f09c:	f104 0124 	add.w	r1, r4, #36	; 0x24
 
-  802f0a0:	2200      	movs	r2, #0
 
-  802f0a2:	f008 f88d 	bl	80371c0 <etharp_query>
 
-   if (result != ERR_OK) {
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_WARNING, ("dhcp_check: could not perform ARP query\n"));
 
-   }
 
-   dhcp->tries++;
 
-  802f0a6:	7b63      	ldrb	r3, [r4, #13]
 
-  802f0a8:	3301      	adds	r3, #1
 
-  802f0aa:	7363      	strb	r3, [r4, #13]
 
-   msecs = 500;
 
-   dhcp->request_timeout = (msecs + DHCP_FINE_TIMER_MSECS - 1) / DHCP_FINE_TIMER_MSECS;
 
-  802f0ac:	2301      	movs	r3, #1
 
-  802f0ae:	8363      	strh	r3, [r4, #26]
 
-  802f0b0:	bd38      	pop	{r3, r4, r5, pc}
 
- 0802f0b2 <dhcp_bind>:
 
-  *
 
-  * @param netif network interface to bind to the offered address
 
-  */
 
- static void
 
- dhcp_bind(struct netif *netif)
 
- {
 
-  802f0b2:	b537      	push	{r0, r1, r2, r4, r5, lr}
 
-   u32_t timeout;
 
-   struct dhcp *dhcp;
 
-   ip_addr_t sn_mask, gw_addr;
 
-   LWIP_ERROR("dhcp_bind: netif != NULL", (netif != NULL), return;);
 
-  802f0b4:	4605      	mov	r5, r0
 
-  802f0b6:	2800      	cmp	r0, #0
 
-  802f0b8:	d059      	beq.n	802f16e <dhcp_bind+0xbc>
 
-   dhcp = netif->dhcp;
 
-  802f0ba:	6a04      	ldr	r4, [r0, #32]
 
-   LWIP_ERROR("dhcp_bind: dhcp != NULL", (dhcp != NULL), return;);
 
-  802f0bc:	2c00      	cmp	r4, #0
 
-  802f0be:	d056      	beq.n	802f16e <dhcp_bind+0xbc>
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_bind(netif=%p) %c%c%"U16_F"\n", (void*)netif, netif->name[0], netif->name[1], (u16_t)netif->num));
 
-   /* temporary DHCP lease? */
 
-   if (dhcp->offered_t1_renew != 0xffffffffUL) {
 
-  802f0c0:	6b63      	ldr	r3, [r4, #52]	; 0x34
 
-  802f0c2:	1c58      	adds	r0, r3, #1
 
-  802f0c4:	d00d      	beq.n	802f0e2 <dhcp_bind+0x30>
 
-     /* set renewal period timer */
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_bind(): t1 renewal timer %"U32_F" secs\n", dhcp->offered_t1_renew));
 
-     timeout = (dhcp->offered_t1_renew + DHCP_COARSE_TIMER_SECS / 2) / DHCP_COARSE_TIMER_SECS;
 
-  802f0c6:	223c      	movs	r2, #60	; 0x3c
 
-  802f0c8:	331e      	adds	r3, #30
 
-  802f0ca:	fbb3 f3f2 	udiv	r3, r3, r2
 
-     if(timeout > 0xffff) {
 
-       timeout = 0xffff;
 
-     }
 
-     dhcp->t1_timeout = (u16_t)timeout;
 
-  802f0ce:	f64f 72ff 	movw	r2, #65535	; 0xffff
 
-  802f0d2:	4293      	cmp	r3, r2
 
-  802f0d4:	bf28      	it	cs
 
-  802f0d6:	4613      	movcs	r3, r2
 
-  802f0d8:	b29b      	uxth	r3, r3
 
-  802f0da:	83a3      	strh	r3, [r4, #28]
 
-     if (dhcp->t1_timeout == 0) {
 
-  802f0dc:	b90b      	cbnz	r3, 802f0e2 <dhcp_bind+0x30>
 
-       dhcp->t1_timeout = 1;
 
-  802f0de:	2301      	movs	r3, #1
 
-  802f0e0:	83a3      	strh	r3, [r4, #28]
 
-     }
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_bind(): set request timeout %"U32_F" msecs\n", dhcp->offered_t1_renew*1000));
 
-   }
 
-   /* set renewal period timer */
 
-   if (dhcp->offered_t2_rebind != 0xffffffffUL) {
 
-  802f0e2:	6ba3      	ldr	r3, [r4, #56]	; 0x38
 
-  802f0e4:	1c59      	adds	r1, r3, #1
 
-  802f0e6:	d00d      	beq.n	802f104 <dhcp_bind+0x52>
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_bind(): t2 rebind timer %"U32_F" secs\n", dhcp->offered_t2_rebind));
 
-     timeout = (dhcp->offered_t2_rebind + DHCP_COARSE_TIMER_SECS / 2) / DHCP_COARSE_TIMER_SECS;
 
-  802f0e8:	223c      	movs	r2, #60	; 0x3c
 
-  802f0ea:	331e      	adds	r3, #30
 
-  802f0ec:	fbb3 f3f2 	udiv	r3, r3, r2
 
-     if(timeout > 0xffff) {
 
-       timeout = 0xffff;
 
-     }
 
-     dhcp->t2_timeout = (u16_t)timeout;
 
-  802f0f0:	f64f 72ff 	movw	r2, #65535	; 0xffff
 
-  802f0f4:	4293      	cmp	r3, r2
 
-  802f0f6:	bf28      	it	cs
 
-  802f0f8:	4613      	movcs	r3, r2
 
-  802f0fa:	b29b      	uxth	r3, r3
 
-  802f0fc:	83e3      	strh	r3, [r4, #30]
 
-     if (dhcp->t2_timeout == 0) {
 
-  802f0fe:	b90b      	cbnz	r3, 802f104 <dhcp_bind+0x52>
 
-       dhcp->t2_timeout = 1;
 
-  802f100:	2301      	movs	r3, #1
 
-  802f102:	83e3      	strh	r3, [r4, #30]
 
-     }
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_bind(): set request timeout %"U32_F" msecs\n", dhcp->offered_t2_rebind*1000));
 
-   }
 
-   /* If we have sub 1 minute lease, t2 and t1 will kick in at the same time. */
 
-   if ((dhcp->t1_timeout >= dhcp->t2_timeout) && (dhcp->t2_timeout > 0)) {
 
-  802f104:	8be3      	ldrh	r3, [r4, #30]
 
-  802f106:	8ba2      	ldrh	r2, [r4, #28]
 
-  802f108:	429a      	cmp	r2, r3
 
-  802f10a:	d302      	bcc.n	802f112 <dhcp_bind+0x60>
 
-  802f10c:	b10b      	cbz	r3, 802f112 <dhcp_bind+0x60>
 
-     dhcp->t1_timeout = 0;
 
-  802f10e:	2300      	movs	r3, #0
 
-  802f110:	83a3      	strh	r3, [r4, #28]
 
-   }
 
-   if (dhcp->subnet_mask_given) {
 
-  802f112:	7ba3      	ldrb	r3, [r4, #14]
 
-  802f114:	b10b      	cbz	r3, 802f11a <dhcp_bind+0x68>
 
-     /* copy offered network mask */
 
-     ip_addr_copy(sn_mask, dhcp->offered_sn_mask);
 
-  802f116:	6aa3      	ldr	r3, [r4, #40]	; 0x28
 
-  802f118:	e00b      	b.n	802f132 <dhcp_bind+0x80>
 
-   } else {
 
-     /* subnet mask not given, choose a safe subnet mask given the network class */
 
-     u8_t first_octet = ip4_addr1(&dhcp->offered_ip_addr);
 
-  802f11a:	f894 3024 	ldrb.w	r3, [r4, #36]	; 0x24
 
-     if (first_octet <= 127) {
 
-  802f11e:	061a      	lsls	r2, r3, #24
 
-  802f120:	d401      	bmi.n	802f126 <dhcp_bind+0x74>
 
-       ip4_addr_set_u32(&sn_mask, PP_HTONL(0xff000000UL));
 
-  802f122:	23ff      	movs	r3, #255	; 0xff
 
-  802f124:	e005      	b.n	802f132 <dhcp_bind+0x80>
 
-     } else if (first_octet >= 192) {
 
-  802f126:	2bbf      	cmp	r3, #191	; 0xbf
 
-       ip4_addr_set_u32(&sn_mask, PP_HTONL(0xffffff00UL));
 
-  802f128:	bf8c      	ite	hi
 
-  802f12a:	f06f 437f 	mvnhi.w	r3, #4278190080	; 0xff000000
 
-     } else {
 
-       ip4_addr_set_u32(&sn_mask, PP_HTONL(0xffff0000UL));
 
-  802f12e:	f64f 73ff 	movwls	r3, #65535	; 0xffff
 
-  802f132:	9300      	str	r3, [sp, #0]
 
-     }
 
-   }
 
-   ip_addr_copy(gw_addr, dhcp->offered_gw_addr);
 
-  802f134:	6ae3      	ldr	r3, [r4, #44]	; 0x2c
 
-  802f136:	9301      	str	r3, [sp, #4]
 
-   /* gateway address not given? */
 
-   if (ip_addr_isany(&gw_addr)) {
 
-  802f138:	b92b      	cbnz	r3, 802f146 <dhcp_bind+0x94>
 
-     /* copy network address */
 
-     ip_addr_get_network(&gw_addr, &dhcp->offered_ip_addr, &sn_mask);
 
-  802f13a:	6a63      	ldr	r3, [r4, #36]	; 0x24
 
-  802f13c:	9a00      	ldr	r2, [sp, #0]
 
-  802f13e:	4013      	ands	r3, r2
 
-     /* use first host address on network as gateway */
 
-     ip4_addr_set_u32(&gw_addr, ip4_addr_get_u32(&gw_addr) | PP_HTONL(0x00000001UL));
 
-  802f140:	f043 7380 	orr.w	r3, r3, #16777216	; 0x1000000
 
-  802f144:	9301      	str	r3, [sp, #4]
 
-   }
 
- #endif /* LWIP_DHCP_AUTOIP_COOP */
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_STATE, ("dhcp_bind(): IP: 0x%08"X32_F"\n",
 
-     ip4_addr_get_u32(&dhcp->offered_ip_addr)));
 
-   netif_set_ipaddr(netif, &dhcp->offered_ip_addr);
 
-  802f146:	4628      	mov	r0, r5
 
-  802f148:	f104 0124 	add.w	r1, r4, #36	; 0x24
 
-  802f14c:	f000 fd6a 	bl	802fc24 <netif_set_ipaddr>
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_STATE, ("dhcp_bind(): SN: 0x%08"X32_F"\n",
 
-     ip4_addr_get_u32(&sn_mask)));
 
-   netif_set_netmask(netif, &sn_mask);
 
-  802f150:	4628      	mov	r0, r5
 
-  802f152:	4669      	mov	r1, sp
 
-  802f154:	f000 fda6 	bl	802fca4 <netif_set_netmask>
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_STATE, ("dhcp_bind(): GW: 0x%08"X32_F"\n",
 
-     ip4_addr_get_u32(&gw_addr)));
 
-   netif_set_gw(netif, &gw_addr);
 
-  802f158:	a901      	add	r1, sp, #4
 
-  802f15a:	4628      	mov	r0, r5
 
-  802f15c:	f000 fd9e 	bl	802fc9c <netif_set_gw>
 
-   /* bring the interface up */
 
-   netif_set_up(netif);
 
-  802f160:	4628      	mov	r0, r5
 
-  802f162:	f000 fdf5 	bl	802fd50 <netif_set_up>
 
-   /* netif is now bound to DHCP leased address */
 
-   dhcp_set_state(dhcp, DHCP_BOUND);
 
-  802f166:	4620      	mov	r0, r4
 
-  802f168:	210a      	movs	r1, #10
 
-  802f16a:	f7ff fd1f 	bl	802ebac <dhcp_set_state>
 
- }
 
-  802f16e:	bd3e      	pop	{r1, r2, r3, r4, r5, pc}
 
- 0802f170 <dhcp_recv>:
 
- /**
 
-  * If an incoming DHCP message is in response to us, then trigger the state machine
 
-  */
 
- static void
 
- dhcp_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, ip_addr_t *addr, u16_t port)
 
- {
 
-  802f170:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-  802f174:	4692      	mov	sl, r2
 
-  802f176:	b08b      	sub	sp, #44	; 0x2c
 
-   LWIP_UNUSED_ARG(addr);
 
-   LWIP_UNUSED_ARG(port);
 
-   LWIP_ASSERT("reply wasn't freed", dhcp->msg_in == NULL);
 
-   if (p->len < DHCP_MIN_REPLY_LEN) {
 
-  802f178:	f8ba 300a 	ldrh.w	r3, [sl, #10]
 
-  */
 
- static void
 
- dhcp_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, ip_addr_t *addr, u16_t port)
 
- {
 
-   struct netif *netif = (struct netif *)arg;
 
-   struct dhcp *dhcp = netif->dhcp;
 
-  802f17c:	f8d0 8020 	ldr.w	r8, [r0, #32]
 
-   struct dhcp_msg *reply_msg = (struct dhcp_msg *)p->payload;
 
-  802f180:	6852      	ldr	r2, [r2, #4]
 
-   LWIP_UNUSED_ARG(addr);
 
-   LWIP_UNUSED_ARG(port);
 
-   LWIP_ASSERT("reply wasn't freed", dhcp->msg_in == NULL);
 
-   if (p->len < DHCP_MIN_REPLY_LEN) {
 
-  802f182:	2b2b      	cmp	r3, #43	; 0x2b
 
- /**
 
-  * If an incoming DHCP message is in response to us, then trigger the state machine
 
-  */
 
- static void
 
- dhcp_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, ip_addr_t *addr, u16_t port)
 
- {
 
-  802f184:	4605      	mov	r5, r0
 
-   LWIP_UNUSED_ARG(addr);
 
-   LWIP_UNUSED_ARG(port);
 
-   LWIP_ASSERT("reply wasn't freed", dhcp->msg_in == NULL);
 
-   if (p->len < DHCP_MIN_REPLY_LEN) {
 
-  802f186:	f240 81b8 	bls.w	802f4fa <dhcp_recv+0x38a>
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_WARNING, ("DHCP reply message or pbuf too short\n"));
 
-     goto free_pbuf_and_return;
 
-   }
 
-   if (reply_msg->op != DHCP_BOOTREPLY) {
 
-  802f18a:	7813      	ldrb	r3, [r2, #0]
 
-  802f18c:	2b02      	cmp	r3, #2
 
-  802f18e:	f040 81b4 	bne.w	802f4fa <dhcp_recv+0x38a>
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_WARNING, ("not a DHCP reply message, but type %"U16_F"\n", (u16_t)reply_msg->op));
 
-     goto free_pbuf_and_return;
 
-   }
 
-   /* iterate through hardware address and match against DHCP message */
 
-   for (i = 0; i < netif->hwaddr_len; i++) {
 
-  802f192:	f890 1026 	ldrb.w	r1, [r0, #38]	; 0x26
 
-  802f196:	2300      	movs	r3, #0
 
-  802f198:	e008      	b.n	802f1ac <dhcp_recv+0x3c>
 
- /**
 
-  * If an incoming DHCP message is in response to us, then trigger the state machine
 
-  */
 
- static void
 
- dhcp_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, ip_addr_t *addr, u16_t port)
 
-  802f19a:	18e8      	adds	r0, r5, r3
 
-  802f19c:	3301      	adds	r3, #1
 
-  802f19e:	18d4      	adds	r4, r2, r3
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_WARNING, ("not a DHCP reply message, but type %"U16_F"\n", (u16_t)reply_msg->op));
 
-     goto free_pbuf_and_return;
 
-   }
 
-   /* iterate through hardware address and match against DHCP message */
 
-   for (i = 0; i < netif->hwaddr_len; i++) {
 
-     if (netif->hwaddr[i] != reply_msg->chaddr[i]) {
 
-  802f1a0:	f890 0027 	ldrb.w	r0, [r0, #39]	; 0x27
 
-  802f1a4:	7ee4      	ldrb	r4, [r4, #27]
 
-  802f1a6:	4284      	cmp	r4, r0
 
-  802f1a8:	f040 81a7 	bne.w	802f4fa <dhcp_recv+0x38a>
 
-   if (reply_msg->op != DHCP_BOOTREPLY) {
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_WARNING, ("not a DHCP reply message, but type %"U16_F"\n", (u16_t)reply_msg->op));
 
-     goto free_pbuf_and_return;
 
-   }
 
-   /* iterate through hardware address and match against DHCP message */
 
-   for (i = 0; i < netif->hwaddr_len; i++) {
 
-  802f1ac:	b2d8      	uxtb	r0, r3
 
-  802f1ae:	4288      	cmp	r0, r1
 
-  802f1b0:	d3f3      	bcc.n	802f19a <dhcp_recv+0x2a>
 
-         (u16_t)i, (u16_t)netif->hwaddr[i], (u16_t)i, (u16_t)reply_msg->chaddr[i]));
 
-       goto free_pbuf_and_return;
 
-     }
 
-   }
 
-   /* match transaction ID against what we expected */
 
-   if (ntohl(reply_msg->xid) != dhcp->xid) {
 
-  802f1b2:	6850      	ldr	r0, [r2, #4]
 
-  802f1b4:	f7ff fcf8 	bl	802eba8 <lwip_ntohl>
 
-  802f1b8:	f8d8 3000 	ldr.w	r3, [r8]
 
-  802f1bc:	4298      	cmp	r0, r3
 
-  802f1be:	f040 819c 	bne.w	802f4fa <dhcp_recv+0x38a>
 
-   struct pbuf *q;
 
-   int parse_file_as_options = 0;
 
-   int parse_sname_as_options = 0;
 
-   /* clear received options */
 
-   dhcp_clear_all_options(dhcp);
 
-  802f1c2:	2100      	movs	r1, #0
 
-  802f1c4:	220a      	movs	r2, #10
 
-  802f1c6:	489d      	ldr	r0, [pc, #628]	; (802f43c <dhcp_recv+0x2cc>)
 
-  802f1c8:	f7f2 fc9a 	bl	8021b00 <memset>
 
-   /* check that beginning of dhcp_msg (up to and including chaddr) is in first pbuf */
 
-   if (p->len < DHCP_SNAME_OFS) {
 
-  802f1cc:	f8ba 300a 	ldrh.w	r3, [sl, #10]
 
-  802f1d0:	2b2b      	cmp	r3, #43	; 0x2b
 
-  802f1d2:	f240 8192 	bls.w	802f4fa <dhcp_recv+0x38a>
 
-     return ERR_BUF;
 
-   }
 
-   dhcp->msg_in = (struct dhcp_msg *)p->payload;
 
-  802f1d6:	f8da 3004 	ldr.w	r3, [sl, #4]
 
-   /* parse options */
 
-   /* start with options field */
 
-   options_idx = DHCP_OPTIONS_OFS;
 
-   /* parse options to the end of the received packet */
 
-   options_idx_max = p->tot_len;
 
-  802f1da:	f8ba 9008 	ldrh.w	r9, [sl, #8]
 
-   dhcp_clear_all_options(dhcp);
 
-   /* check that beginning of dhcp_msg (up to and including chaddr) is in first pbuf */
 
-   if (p->len < DHCP_SNAME_OFS) {
 
-     return ERR_BUF;
 
-   }
 
-   dhcp->msg_in = (struct dhcp_msg *)p->payload;
 
-  802f1de:	f8c8 3008 	str.w	r3, [r8, #8]
 
-   u16_t offset_max;
 
-   u16_t options_idx;
 
-   u16_t options_idx_max;
 
-   struct pbuf *q;
 
-   int parse_file_as_options = 0;
 
-   int parse_sname_as_options = 0;
 
-  802f1e2:	f04f 0b00 	mov.w	fp, #0
 
- #endif /* LWIP_DHCP_BOOTP_FILE */
 
-   /* parse options */
 
-   /* start with options field */
 
-   options_idx = DHCP_OPTIONS_OFS;
 
-  802f1e6:	22f0      	movs	r2, #240	; 0xf0
 
-  802f1e8:	e004      	b.n	802f1f4 <dhcp_recv+0x84>
 
-     parse_file_as_options = 0;
 
-     options_idx = DHCP_FILE_OFS;
 
-     options_idx_max = DHCP_FILE_OFS + DHCP_FILE_LEN;
 
-     goto again;
 
-   } else if (parse_sname_as_options) {
 
-     parse_sname_as_options = 0;
 
-  802f1ea:	f04f 0b00 	mov.w	fp, #0
 
-     options_idx = DHCP_SNAME_OFS;
 
-     options_idx_max = DHCP_SNAME_OFS + DHCP_SNAME_LEN;
 
-  802f1ee:	f04f 096c 	mov.w	r9, #108	; 0x6c
 
-     options_idx = DHCP_FILE_OFS;
 
-     options_idx_max = DHCP_FILE_OFS + DHCP_FILE_LEN;
 
-     goto again;
 
-   } else if (parse_sname_as_options) {
 
-     parse_sname_as_options = 0;
 
-     options_idx = DHCP_SNAME_OFS;
 
-  802f1f2:	222c      	movs	r2, #44	; 0x2c
 
- #endif /* LWIP_DHCP_BOOTP_FILE */
 
-   /* parse options */
 
-   /* start with options field */
 
-   options_idx = DHCP_OPTIONS_OFS;
 
-  802f1f4:	4657      	mov	r7, sl
 
-  802f1f6:	e009      	b.n	802f20c <dhcp_recv+0x9c>
 
- again:
 
-   q = p;
 
-   while((q != NULL) && (options_idx >= q->len)) {
 
-     options_idx -= q->len;
 
-     options_idx_max -= q->len;
 
-     q = q->next;
 
-  802f1f8:	683f      	ldr	r7, [r7, #0]
 
-   /* parse options to the end of the received packet */
 
-   options_idx_max = p->tot_len;
 
- again:
 
-   q = p;
 
-   while((q != NULL) && (options_idx >= q->len)) {
 
-     options_idx -= q->len;
 
-  802f1fa:	1ad2      	subs	r2, r2, r3
 
-     options_idx_max -= q->len;
 
-  802f1fc:	ebc3 0909 	rsb	r9, r3, r9
 
-   /* parse options to the end of the received packet */
 
-   options_idx_max = p->tot_len;
 
- again:
 
-   q = p;
 
-   while((q != NULL) && (options_idx >= q->len)) {
 
-     options_idx -= q->len;
 
-  802f200:	b292      	uxth	r2, r2
 
-     options_idx_max -= q->len;
 
-  802f202:	fa1f f989 	uxth.w	r9, r9
 
-   options_idx = DHCP_OPTIONS_OFS;
 
-   /* parse options to the end of the received packet */
 
-   options_idx_max = p->tot_len;
 
- again:
 
-   q = p;
 
-   while((q != NULL) && (options_idx >= q->len)) {
 
-  802f206:	2f00      	cmp	r7, #0
 
-  802f208:	f000 8177 	beq.w	802f4fa <dhcp_recv+0x38a>
 
-  802f20c:	897b      	ldrh	r3, [r7, #10]
 
-  802f20e:	429a      	cmp	r2, r3
 
-  802f210:	d2f2      	bcs.n	802f1f8 <dhcp_recv+0x88>
 
-   if (q == NULL) {
 
-     return ERR_BUF;
 
-   }
 
-   offset = options_idx;
 
-   offset_max = options_idx_max;
 
-   options = (u8_t*)q->payload;
 
-  802f212:	6878      	ldr	r0, [r7, #4]
 
-  802f214:	9003      	str	r0, [sp, #12]
 
-  802f216:	e0db      	b.n	802f3d0 <dhcp_recv+0x260>
 
-     u8_t len;
 
-     u8_t decode_len = 0;
 
-     int decode_idx = -1;
 
-     u16_t val_offset = offset + 2;
 
-     /* len byte might be in the next pbuf */
 
-     if (offset + 1 < q->len) {
 
-  802f218:	897b      	ldrh	r3, [r7, #10]
 
-  802f21a:	1c50      	adds	r0, r2, #1
 
-  802f21c:	4298      	cmp	r0, r3
 
-  802f21e:	da03      	bge.n	802f228 <dhcp_recv+0xb8>
 
-       len = options[offset + 1];
 
-  802f220:	9803      	ldr	r0, [sp, #12]
 
-  802f222:	1883      	adds	r3, r0, r2
 
-  802f224:	785b      	ldrb	r3, [r3, #1]
 
-  802f226:	e003      	b.n	802f230 <dhcp_recv+0xc0>
 
-     } else {
 
-       len = (q->next != NULL ? ((u8_t*)q->next->payload)[0] : 0);
 
-  802f228:	683b      	ldr	r3, [r7, #0]
 
-  802f22a:	b10b      	cbz	r3, 802f230 <dhcp_recv+0xc0>
 
-  802f22c:	685b      	ldr	r3, [r3, #4]
 
-  802f22e:	781b      	ldrb	r3, [r3, #0]
 
-     }
 
-     /* LWIP_DEBUGF(DHCP_DEBUG, ("msg_offset=%"U16_F", q->len=%"U16_F, msg_offset, q->len)); */
 
-     decode_len = len;
 
-     switch(op) {
 
-  802f230:	2933      	cmp	r1, #51	; 0x33
 
-  802f232:	d038      	beq.n	802f2a6 <dhcp_recv+0x136>
 
-  802f234:	d807      	bhi.n	802f246 <dhcp_recv+0xd6>
 
-  802f236:	2901      	cmp	r1, #1
 
-  802f238:	d019      	beq.n	802f26e <dhcp_recv+0xfe>
 
-  802f23a:	d311      	bcc.n	802f260 <dhcp_recv+0xf0>
 
-  802f23c:	2903      	cmp	r1, #3
 
-  802f23e:	d01d      	beq.n	802f27c <dhcp_recv+0x10c>
 
-  802f240:	2906      	cmp	r1, #6
 
-  802f242:	d155      	bne.n	802f2f0 <dhcp_recv+0x180>
 
-  802f244:	e021      	b.n	802f28a <dhcp_recv+0x11a>
 
-  802f246:	2936      	cmp	r1, #54	; 0x36
 
-  802f248:	d03d      	beq.n	802f2c6 <dhcp_recv+0x156>
 
-  802f24a:	d804      	bhi.n	802f256 <dhcp_recv+0xe6>
 
-  802f24c:	2934      	cmp	r1, #52	; 0x34
 
-  802f24e:	d031      	beq.n	802f2b4 <dhcp_recv+0x144>
 
-  802f250:	2935      	cmp	r1, #53	; 0x35
 
-  802f252:	d14d      	bne.n	802f2f0 <dhcp_recv+0x180>
 
-  802f254:	e035      	b.n	802f2c2 <dhcp_recv+0x152>
 
-  802f256:	293a      	cmp	r1, #58	; 0x3a
 
-  802f258:	d03c      	beq.n	802f2d4 <dhcp_recv+0x164>
 
-  802f25a:	293b      	cmp	r1, #59	; 0x3b
 
-  802f25c:	d148      	bne.n	802f2f0 <dhcp_recv+0x180>
 
-  802f25e:	e040      	b.n	802f2e2 <dhcp_recv+0x172>
 
-       /* case(DHCP_OPTION_END): handled above */
 
-       case(DHCP_OPTION_PAD):
 
-         /* special option: no len encoded */
 
-         decode_len = len = 0;
 
-         /* will be increased below */
 
-         offset--;
 
-  802f260:	1e51      	subs	r1, r2, #1
 
-     decode_len = len;
 
-     switch(op) {
 
-       /* case(DHCP_OPTION_END): handled above */
 
-       case(DHCP_OPTION_PAD):
 
-         /* special option: no len encoded */
 
-         decode_len = len = 0;
 
-  802f262:	2300      	movs	r3, #0
 
-         /* will be increased below */
 
-         offset--;
 
-  802f264:	b289      	uxth	r1, r1
 
-   /* at least 1 byte to read and no end marker, then at least 3 bytes to read? */
 
-   while((q != NULL) && (options[offset] != DHCP_OPTION_END) && (offset < offset_max)) {
 
-     u8_t op = options[offset];
 
-     u8_t len;
 
-     u8_t decode_len = 0;
 
-     int decode_idx = -1;
 
-  802f266:	f04f 34ff 	mov.w	r4, #4294967295
 
-     decode_len = len;
 
-     switch(op) {
 
-       /* case(DHCP_OPTION_END): handled above */
 
-       case(DHCP_OPTION_PAD):
 
-         /* special option: no len encoded */
 
-         decode_len = len = 0;
 
-  802f26a:	461e      	mov	r6, r3
 
-  802f26c:	e044      	b.n	802f2f8 <dhcp_recv+0x188>
 
-         /* will be increased below */
 
-         offset--;
 
-         break;
 
-       case(DHCP_OPTION_SUBNET_MASK):
 
-         LWIP_ERROR("len == 4", len == 4, return ERR_VAL;);
 
-  802f26e:	2b04      	cmp	r3, #4
 
-  802f270:	f040 8143 	bne.w	802f4fa <dhcp_recv+0x38a>
 
-  802f274:	461e      	mov	r6, r3
 
-  802f276:	4611      	mov	r1, r2
 
-         decode_idx = DHCP_OPTION_IDX_SUBNET_MASK;
 
-  802f278:	2406      	movs	r4, #6
 
-  802f27a:	e03d      	b.n	802f2f8 <dhcp_recv+0x188>
 
-         break;
 
-       case(DHCP_OPTION_ROUTER):
 
-         decode_len = 4; /* only copy the first given router */
 
-         LWIP_ERROR("len >= decode_len", len >= decode_len, return ERR_VAL;);
 
-  802f27c:	2b03      	cmp	r3, #3
 
-  802f27e:	f240 813c 	bls.w	802f4fa <dhcp_recv+0x38a>
 
-  802f282:	4611      	mov	r1, r2
 
-         decode_idx = DHCP_OPTION_IDX_ROUTER;
 
-  802f284:	2407      	movs	r4, #7
 
-       case(DHCP_OPTION_SUBNET_MASK):
 
-         LWIP_ERROR("len == 4", len == 4, return ERR_VAL;);
 
-         decode_idx = DHCP_OPTION_IDX_SUBNET_MASK;
 
-         break;
 
-       case(DHCP_OPTION_ROUTER):
 
-         decode_len = 4; /* only copy the first given router */
 
-  802f286:	2604      	movs	r6, #4
 
-  802f288:	e036      	b.n	802f2f8 <dhcp_recv+0x188>
 
-         LWIP_ERROR("len >= decode_len", len >= decode_len, return ERR_VAL;);
 
-         decode_idx = DHCP_OPTION_IDX_ROUTER;
 
-         break;
 
-       case(DHCP_OPTION_DNS_SERVER):
 
-         /* special case: there might be more than one server */
 
-         LWIP_ERROR("len % 4 == 0", len % 4 == 0, return ERR_VAL;);
 
-  802f28a:	0799      	lsls	r1, r3, #30
 
-  802f28c:	f040 8135 	bne.w	802f4fa <dhcp_recv+0x38a>
 
-         /* limit number of DNS servers */
 
-         decode_len = LWIP_MIN(len, 4 * DNS_MAX_SERVERS);
 
-  802f290:	2b08      	cmp	r3, #8
 
-  802f292:	bf34      	ite	cc
 
-  802f294:	461e      	movcc	r6, r3
 
-  802f296:	2608      	movcs	r6, #8
 
-  802f298:	b2f6      	uxtb	r6, r6
 
-         LWIP_ERROR("len >= decode_len", len >= decode_len, return ERR_VAL;);
 
-  802f29a:	42b3      	cmp	r3, r6
 
-  802f29c:	f0c0 812d 	bcc.w	802f4fa <dhcp_recv+0x38a>
 
-  802f2a0:	4611      	mov	r1, r2
 
-         decode_idx = DHCP_OPTION_IDX_DNS_SERVER;
 
-  802f2a2:	2408      	movs	r4, #8
 
-  802f2a4:	e028      	b.n	802f2f8 <dhcp_recv+0x188>
 
-         break;
 
-       case(DHCP_OPTION_LEASE_TIME):
 
-         LWIP_ERROR("len == 4", len == 4, return ERR_VAL;);
 
-  802f2a6:	2b04      	cmp	r3, #4
 
-  802f2a8:	f040 8127 	bne.w	802f4fa <dhcp_recv+0x38a>
 
-  802f2ac:	461e      	mov	r6, r3
 
-  802f2ae:	4611      	mov	r1, r2
 
-         decode_idx = DHCP_OPTION_IDX_LEASE_TIME;
 
-  802f2b0:	2403      	movs	r4, #3
 
-  802f2b2:	e021      	b.n	802f2f8 <dhcp_recv+0x188>
 
-         break;
 
-       case(DHCP_OPTION_OVERLOAD):
 
-         LWIP_ERROR("len == 1", len == 1, return ERR_VAL;);
 
-  802f2b4:	2b01      	cmp	r3, #1
 
-  802f2b6:	f040 8120 	bne.w	802f4fa <dhcp_recv+0x38a>
 
-  802f2ba:	461e      	mov	r6, r3
 
-  802f2bc:	4611      	mov	r1, r2
 
-         decode_idx = DHCP_OPTION_IDX_OVERLOAD;
 
-  802f2be:	2400      	movs	r4, #0
 
-  802f2c0:	e01a      	b.n	802f2f8 <dhcp_recv+0x188>
 
-         break;
 
-       case(DHCP_OPTION_MESSAGE_TYPE):
 
-         LWIP_ERROR("len == 1", len == 1, return ERR_VAL;);
 
-  802f2c2:	2b01      	cmp	r3, #1
 
-  802f2c4:	e007      	b.n	802f2d6 <dhcp_recv+0x166>
 
-         decode_idx = DHCP_OPTION_IDX_MSG_TYPE;
 
-         break;
 
-       case(DHCP_OPTION_SERVER_ID):
 
-         LWIP_ERROR("len == 4", len == 4, return ERR_VAL;);
 
-  802f2c6:	2b04      	cmp	r3, #4
 
-  802f2c8:	f040 8117 	bne.w	802f4fa <dhcp_recv+0x38a>
 
-  802f2cc:	461e      	mov	r6, r3
 
-  802f2ce:	4611      	mov	r1, r2
 
-         decode_idx = DHCP_OPTION_IDX_SERVER_ID;
 
-  802f2d0:	2402      	movs	r4, #2
 
-  802f2d2:	e011      	b.n	802f2f8 <dhcp_recv+0x188>
 
-         break;
 
-       case(DHCP_OPTION_T1):
 
-         LWIP_ERROR("len == 4", len == 4, return ERR_VAL;);
 
-  802f2d4:	2b04      	cmp	r3, #4
 
-  802f2d6:	f040 8110 	bne.w	802f4fa <dhcp_recv+0x38a>
 
-  802f2da:	461e      	mov	r6, r3
 
-  802f2dc:	4611      	mov	r1, r2
 
-         decode_idx = DHCP_OPTION_IDX_T1;
 
-  802f2de:	461c      	mov	r4, r3
 
-  802f2e0:	e00a      	b.n	802f2f8 <dhcp_recv+0x188>
 
-         break;
 
-       case(DHCP_OPTION_T2):
 
-         LWIP_ERROR("len == 4", len == 4, return ERR_VAL;);
 
-  802f2e2:	2b04      	cmp	r3, #4
 
-  802f2e4:	f040 8109 	bne.w	802f4fa <dhcp_recv+0x38a>
 
-  802f2e8:	461e      	mov	r6, r3
 
-  802f2ea:	4611      	mov	r1, r2
 
-         decode_idx = DHCP_OPTION_IDX_T2;
 
-  802f2ec:	2405      	movs	r4, #5
 
-  802f2ee:	e003      	b.n	802f2f8 <dhcp_recv+0x188>
 
-     } else {
 
-       len = (q->next != NULL ? ((u8_t*)q->next->payload)[0] : 0);
 
-     }
 
-     /* LWIP_DEBUGF(DHCP_DEBUG, ("msg_offset=%"U16_F", q->len=%"U16_F, msg_offset, q->len)); */
 
-     decode_len = len;
 
-     switch(op) {
 
-  802f2f0:	4611      	mov	r1, r2
 
-   /* at least 1 byte to read and no end marker, then at least 3 bytes to read? */
 
-   while((q != NULL) && (options[offset] != DHCP_OPTION_END) && (offset < offset_max)) {
 
-     u8_t op = options[offset];
 
-     u8_t len;
 
-     u8_t decode_len = 0;
 
-     int decode_idx = -1;
 
-  802f2f2:	f04f 34ff 	mov.w	r4, #4294967295
 
-       case(DHCP_OPTION_T2):
 
-         LWIP_ERROR("len == 4", len == 4, return ERR_VAL;);
 
-         decode_idx = DHCP_OPTION_IDX_T2;
 
-         break;
 
-       default:
 
-         decode_len = 0;
 
-  802f2f6:	2600      	movs	r6, #0
 
-         LWIP_DEBUGF(DHCP_DEBUG, ("skipping option %"U16_F" in options\n", op));
 
-         break;
 
-     }
 
-     offset += len + 2;
 
-  802f2f8:	3102      	adds	r1, #2
 
-  802f2fa:	fa13 f381 	uxtah	r3, r3, r1
 
-  802f2fe:	b29b      	uxth	r3, r3
 
-  802f300:	9301      	str	r3, [sp, #4]
 
-     if (decode_len > 0) {
 
-  802f302:	2e00      	cmp	r6, #0
 
-  802f304:	d04f      	beq.n	802f3a6 <dhcp_recv+0x236>
 
-   while((q != NULL) && (options[offset] != DHCP_OPTION_END) && (offset < offset_max)) {
 
-     u8_t op = options[offset];
 
-     u8_t len;
 
-     u8_t decode_len = 0;
 
-     int decode_idx = -1;
 
-     u16_t val_offset = offset + 2;
 
-  802f306:	3202      	adds	r2, #2
 
-  802f308:	b292      	uxth	r2, r2
 
-         LWIP_DEBUGF(DHCP_DEBUG, ("skipping option %"U16_F" in options\n", op));
 
-         break;
 
-     }
 
-     offset += len + 2;
 
-     if (decode_len > 0) {
 
-       u32_t value = 0;
 
-  802f30a:	a90a      	add	r1, sp, #40	; 0x28
 
-   while((q != NULL) && (options[offset] != DHCP_OPTION_END) && (offset < offset_max)) {
 
-     u8_t op = options[offset];
 
-     u8_t len;
 
-     u8_t decode_len = 0;
 
-     int decode_idx = -1;
 
-     u16_t val_offset = offset + 2;
 
-  802f30c:	9205      	str	r2, [sp, #20]
 
-         LWIP_DEBUGF(DHCP_DEBUG, ("skipping option %"U16_F" in options\n", op));
 
-         break;
 
-     }
 
-     offset += len + 2;
 
-     if (decode_len > 0) {
 
-       u32_t value = 0;
 
-  802f30e:	2300      	movs	r3, #0
 
- /**
 
-  * If an incoming DHCP message is in response to us, then trigger the state machine
 
-  */
 
- static void
 
- dhcp_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, ip_addr_t *addr, u16_t port)
 
-  802f310:	4a4b      	ldr	r2, [pc, #300]	; (802f440 <dhcp_recv+0x2d0>)
 
-         LWIP_DEBUGF(DHCP_DEBUG, ("skipping option %"U16_F" in options\n", op));
 
-         break;
 
-     }
 
-     offset += len + 2;
 
-     if (decode_len > 0) {
 
-       u32_t value = 0;
 
-  802f312:	f841 3d04 	str.w	r3, [r1, #-4]!
 
- /**
 
-  * If an incoming DHCP message is in response to us, then trigger the state machine
 
-  */
 
- static void
 
- dhcp_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, ip_addr_t *addr, u16_t port)
 
-  802f316:	eb02 0284 	add.w	r2, r2, r4, lsl #2
 
-         LWIP_DEBUGF(DHCP_DEBUG, ("skipping option %"U16_F" in options\n", op));
 
-         break;
 
-     }
 
-     offset += len + 2;
 
-     if (decode_len > 0) {
 
-       u32_t value = 0;
 
-  802f31a:	9104      	str	r1, [sp, #16]
 
- /**
 
-  * If an incoming DHCP message is in response to us, then trigger the state machine
 
-  */
 
- static void
 
- dhcp_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, ip_addr_t *addr, u16_t port)
 
-  802f31c:	9206      	str	r2, [sp, #24]
 
-  802f31e:	9302      	str	r3, [sp, #8]
 
-  802f320:	9805      	ldr	r0, [sp, #20]
 
-  802f322:	9902      	ldr	r1, [sp, #8]
 
-     if (decode_len > 0) {
 
-       u32_t value = 0;
 
-       u16_t copy_len;
 
- decode_next:
 
-       LWIP_ASSERT("check decode_idx", decode_idx >= 0 && decode_idx < DHCP_OPTION_IDX_MAX);
 
-       if (!dhcp_option_given(dhcp, decode_idx)) {
 
-  802f324:	4a45      	ldr	r2, [pc, #276]	; (802f43c <dhcp_recv+0x2cc>)
 
- /**
 
-  * If an incoming DHCP message is in response to us, then trigger the state machine
 
-  */
 
- static void
 
- dhcp_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, ip_addr_t *addr, u16_t port)
 
-  802f326:	1843      	adds	r3, r0, r1
 
-     if (decode_len > 0) {
 
-       u32_t value = 0;
 
-       u16_t copy_len;
 
- decode_next:
 
-       LWIP_ASSERT("check decode_idx", decode_idx >= 0 && decode_idx < DHCP_OPTION_IDX_MAX);
 
-       if (!dhcp_option_given(dhcp, decode_idx)) {
 
-  802f328:	4844      	ldr	r0, [pc, #272]	; (802f43c <dhcp_recv+0x2cc>)
 
-  802f32a:	18a2      	adds	r2, r4, r2
 
-  802f32c:	9207      	str	r2, [sp, #28]
 
-  802f32e:	5c22      	ldrb	r2, [r4, r0]
 
- /**
 
-  * If an incoming DHCP message is in response to us, then trigger the state machine
 
-  */
 
- static void
 
- dhcp_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, ip_addr_t *addr, u16_t port)
 
-  802f330:	ebc1 0c06 	rsb	ip, r1, r6
 
-  802f334:	b29b      	uxth	r3, r3
 
-  802f336:	fa5f fc8c 	uxtb.w	ip, ip
 
-     if (decode_len > 0) {
 
-       u32_t value = 0;
 
-       u16_t copy_len;
 
- decode_next:
 
-       LWIP_ASSERT("check decode_idx", decode_idx >= 0 && decode_idx < DHCP_OPTION_IDX_MAX);
 
-       if (!dhcp_option_given(dhcp, decode_idx)) {
 
-  802f33a:	2a00      	cmp	r2, #0
 
-  802f33c:	d133      	bne.n	802f3a6 <dhcp_recv+0x236>
 
-         copy_len = LWIP_MIN(decode_len, 4);
 
-         pbuf_copy_partial(q, &value, copy_len, val_offset);
 
-  802f33e:	f1bc 0f03 	cmp.w	ip, #3
 
-  802f342:	bf94      	ite	ls
 
-  802f344:	4662      	movls	r2, ip
 
-  802f346:	2204      	movhi	r2, #4
 
-  802f348:	4638      	mov	r0, r7
 
-  802f34a:	9904      	ldr	r1, [sp, #16]
 
-  802f34c:	f8cd c000 	str.w	ip, [sp]
 
-  802f350:	f000 feaa 	bl	80300a8 <pbuf_copy_partial>
 
-         if (decode_len > 4) {
 
-  802f354:	f8dd c000 	ldr.w	ip, [sp]
 
-  802f358:	f1bc 0f04 	cmp.w	ip, #4
 
-  802f35c:	d90f      	bls.n	802f37e <dhcp_recv+0x20e>
 
-           /* decode more than one u32_t */
 
-           LWIP_ERROR("decode_len % 4 == 0", decode_len % 4 == 0, return ERR_VAL;);
 
-  802f35e:	f01c 0f03 	tst.w	ip, #3
 
-  802f362:	f040 80ca 	bne.w	802f4fa <dhcp_recv+0x38a>
 
-           dhcp_got_option(dhcp, decode_idx);
 
-  802f366:	9907      	ldr	r1, [sp, #28]
 
-           dhcp_set_option_value(dhcp, decode_idx, htonl(value));
 
-  802f368:	9809      	ldr	r0, [sp, #36]	; 0x24
 
-         copy_len = LWIP_MIN(decode_len, 4);
 
-         pbuf_copy_partial(q, &value, copy_len, val_offset);
 
-         if (decode_len > 4) {
 
-           /* decode more than one u32_t */
 
-           LWIP_ERROR("decode_len % 4 == 0", decode_len % 4 == 0, return ERR_VAL;);
 
-           dhcp_got_option(dhcp, decode_idx);
 
-  802f36a:	2201      	movs	r2, #1
 
-  802f36c:	700a      	strb	r2, [r1, #0]
 
-           dhcp_set_option_value(dhcp, decode_idx, htonl(value));
 
-  802f36e:	f7ff fc19 	bl	802eba4 <lwip_htonl>
 
-  802f372:	9b02      	ldr	r3, [sp, #8]
 
-  802f374:	9906      	ldr	r1, [sp, #24]
 
-           decode_len -= 4;
 
-           val_offset += 4;
 
-           decode_idx++;
 
-  802f376:	3401      	adds	r4, #1
 
-         pbuf_copy_partial(q, &value, copy_len, val_offset);
 
-         if (decode_len > 4) {
 
-           /* decode more than one u32_t */
 
-           LWIP_ERROR("decode_len % 4 == 0", decode_len % 4 == 0, return ERR_VAL;);
 
-           dhcp_got_option(dhcp, decode_idx);
 
-           dhcp_set_option_value(dhcp, decode_idx, htonl(value));
 
-  802f378:	50c8      	str	r0, [r1, r3]
 
-  802f37a:	3304      	adds	r3, #4
 
-  802f37c:	e7cf      	b.n	802f31e <dhcp_recv+0x1ae>
 
-           decode_len -= 4;
 
-           val_offset += 4;
 
-           decode_idx++;
 
-           goto decode_next;
 
-         } else if (decode_len == 4) {
 
-  802f37e:	d104      	bne.n	802f38a <dhcp_recv+0x21a>
 
-           value = ntohl(value);
 
-  802f380:	9809      	ldr	r0, [sp, #36]	; 0x24
 
-  802f382:	f7ff fc11 	bl	802eba8 <lwip_ntohl>
 
-  802f386:	9009      	str	r0, [sp, #36]	; 0x24
 
-  802f388:	e006      	b.n	802f398 <dhcp_recv+0x228>
 
-         } else {
 
-           LWIP_ERROR("invalid decode_len", decode_len == 1, return ERR_VAL;);
 
-  802f38a:	f1bc 0f01 	cmp.w	ip, #1
 
-  802f38e:	f040 80b4 	bne.w	802f4fa <dhcp_recv+0x38a>
 
-           value = ((u8_t*)&value)[0];
 
-  802f392:	f89d 3024 	ldrb.w	r3, [sp, #36]	; 0x24
 
-  802f396:	9309      	str	r3, [sp, #36]	; 0x24
 
-         }
 
-         dhcp_got_option(dhcp, decode_idx);
 
-  802f398:	4a28      	ldr	r2, [pc, #160]	; (802f43c <dhcp_recv+0x2cc>)
 
-         dhcp_set_option_value(dhcp, decode_idx, value);
 
-  802f39a:	4829      	ldr	r0, [pc, #164]	; (802f440 <dhcp_recv+0x2d0>)
 
-           value = ntohl(value);
 
-         } else {
 
-           LWIP_ERROR("invalid decode_len", decode_len == 1, return ERR_VAL;);
 
-           value = ((u8_t*)&value)[0];
 
-         }
 
-         dhcp_got_option(dhcp, decode_idx);
 
-  802f39c:	2301      	movs	r3, #1
 
-  802f39e:	5513      	strb	r3, [r2, r4]
 
-         dhcp_set_option_value(dhcp, decode_idx, value);
 
-  802f3a0:	9b09      	ldr	r3, [sp, #36]	; 0x24
 
-  802f3a2:	f840 3024 	str.w	r3, [r0, r4, lsl #2]
 
-       }
 
-     }
 
-     if (offset >= q->len) {
 
-  802f3a6:	897b      	ldrh	r3, [r7, #10]
 
-  802f3a8:	9901      	ldr	r1, [sp, #4]
 
-  802f3aa:	4299      	cmp	r1, r3
 
-  802f3ac:	d30f      	bcc.n	802f3ce <dhcp_recv+0x25e>
 
-       offset -= q->len;
 
-  802f3ae:	1aca      	subs	r2, r1, r3
 
-       offset_max -= q->len;
 
-  802f3b0:	ebc3 0909 	rsb	r9, r3, r9
 
-         dhcp_got_option(dhcp, decode_idx);
 
-         dhcp_set_option_value(dhcp, decode_idx, value);
 
-       }
 
-     }
 
-     if (offset >= q->len) {
 
-       offset -= q->len;
 
-  802f3b4:	b292      	uxth	r2, r2
 
-       offset_max -= q->len;
 
-  802f3b6:	fa1f f989 	uxth.w	r9, r9
 
-       if ((offset < offset_max) && offset_max) {
 
-  802f3ba:	454a      	cmp	r2, r9
 
-         dhcp_got_option(dhcp, decode_idx);
 
-         dhcp_set_option_value(dhcp, decode_idx, value);
 
-       }
 
-     }
 
-     if (offset >= q->len) {
 
-       offset -= q->len;
 
-  802f3bc:	9201      	str	r2, [sp, #4]
 
-       offset_max -= q->len;
 
-       if ((offset < offset_max) && offset_max) {
 
-  802f3be:	d303      	bcc.n	802f3c8 <dhcp_recv+0x258>
 
-         break;
 
-       }
 
-     }
 
-   }
 
-   /* is this an overloaded message? */
 
-   if (dhcp_option_given(dhcp, DHCP_OPTION_IDX_OVERLOAD)) {
 
-  802f3c0:	4a1e      	ldr	r2, [pc, #120]	; (802f43c <dhcp_recv+0x2cc>)
 
-  802f3c2:	7813      	ldrb	r3, [r2, #0]
 
-  802f3c4:	b963      	cbnz	r3, 802f3e0 <dhcp_recv+0x270>
 
-  802f3c6:	e09f      	b.n	802f508 <dhcp_recv+0x398>
 
-     }
 
-     if (offset >= q->len) {
 
-       offset -= q->len;
 
-       offset_max -= q->len;
 
-       if ((offset < offset_max) && offset_max) {
 
-         q = q->next;
 
-  802f3c8:	683f      	ldr	r7, [r7, #0]
 
-         LWIP_ASSERT("next pbuf was null", q);
 
-         options = (u8_t*)q->payload;
 
-  802f3ca:	687b      	ldr	r3, [r7, #4]
 
-  802f3cc:	9303      	str	r3, [sp, #12]
 
-       u32_t value = 0;
 
-       u16_t copy_len;
 
- decode_next:
 
-       LWIP_ASSERT("check decode_idx", decode_idx >= 0 && decode_idx < DHCP_OPTION_IDX_MAX);
 
-       if (!dhcp_option_given(dhcp, decode_idx)) {
 
-         copy_len = LWIP_MIN(decode_len, 4);
 
-  802f3ce:	9a01      	ldr	r2, [sp, #4]
 
-   }
 
-   offset = options_idx;
 
-   offset_max = options_idx_max;
 
-   options = (u8_t*)q->payload;
 
-   /* at least 1 byte to read and no end marker, then at least 3 bytes to read? */
 
-   while((q != NULL) && (options[offset] != DHCP_OPTION_END) && (offset < offset_max)) {
 
-  802f3d0:	9803      	ldr	r0, [sp, #12]
 
-  802f3d2:	5c81      	ldrb	r1, [r0, r2]
 
-  802f3d4:	29ff      	cmp	r1, #255	; 0xff
 
-  802f3d6:	d0f3      	beq.n	802f3c0 <dhcp_recv+0x250>
 
-  802f3d8:	454a      	cmp	r2, r9
 
-  802f3da:	f4ff af1d 	bcc.w	802f218 <dhcp_recv+0xa8>
 
-  802f3de:	e7ef      	b.n	802f3c0 <dhcp_recv+0x250>
 
-       }
 
-     }
 
-   }
 
-   /* is this an overloaded message? */
 
-   if (dhcp_option_given(dhcp, DHCP_OPTION_IDX_OVERLOAD)) {
 
-     u32_t overload = dhcp_get_option_value(dhcp, DHCP_OPTION_IDX_OVERLOAD);
 
-  802f3e0:	4b17      	ldr	r3, [pc, #92]	; (802f440 <dhcp_recv+0x2d0>)
 
-     dhcp_clear_option(dhcp, DHCP_OPTION_IDX_OVERLOAD);
 
-  802f3e2:	4916      	ldr	r1, [pc, #88]	; (802f43c <dhcp_recv+0x2cc>)
 
-       }
 
-     }
 
-   }
 
-   /* is this an overloaded message? */
 
-   if (dhcp_option_given(dhcp, DHCP_OPTION_IDX_OVERLOAD)) {
 
-     u32_t overload = dhcp_get_option_value(dhcp, DHCP_OPTION_IDX_OVERLOAD);
 
-  802f3e4:	681b      	ldr	r3, [r3, #0]
 
-     dhcp_clear_option(dhcp, DHCP_OPTION_IDX_OVERLOAD);
 
-  802f3e6:	2200      	movs	r2, #0
 
-     if (overload == DHCP_OVERLOAD_FILE) {
 
-  802f3e8:	2b01      	cmp	r3, #1
 
-     }
 
-   }
 
-   /* is this an overloaded message? */
 
-   if (dhcp_option_given(dhcp, DHCP_OPTION_IDX_OVERLOAD)) {
 
-     u32_t overload = dhcp_get_option_value(dhcp, DHCP_OPTION_IDX_OVERLOAD);
 
-     dhcp_clear_option(dhcp, DHCP_OPTION_IDX_OVERLOAD);
 
-  802f3ea:	700a      	strb	r2, [r1, #0]
 
-     if (overload == DHCP_OVERLOAD_FILE) {
 
-  802f3ec:	f000 8093 	beq.w	802f516 <dhcp_recv+0x3a6>
 
-       parse_file_as_options = 1;
 
-       LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("overloaded file field\n"));
 
-     } else if (overload == DHCP_OVERLOAD_SNAME) {
 
-  802f3f0:	2b02      	cmp	r3, #2
 
-  802f3f2:	f43f aefa 	beq.w	802f1ea <dhcp_recv+0x7a>
 
-       parse_sname_as_options = 1;
 
-       LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("overloaded sname field\n"));
 
-     } else if (overload == DHCP_OVERLOAD_SNAME_FILE) {
 
-  802f3f6:	2b03      	cmp	r3, #3
 
-  802f3f8:	f040 8086 	bne.w	802f508 <dhcp_recv+0x398>
 
-  802f3fc:	e089      	b.n	802f512 <dhcp_recv+0x3a2>
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_WARNING, ("DHCP_OPTION_MESSAGE_TYPE option not found\n"));
 
-     goto free_pbuf_and_return;
 
-   }
 
-   /* read DHCP message type */
 
-   msg_type = (u8_t)dhcp_get_option_value(dhcp, DHCP_OPTION_IDX_MSG_TYPE);
 
-  802f3fe:	4a10      	ldr	r2, [pc, #64]	; (802f440 <dhcp_recv+0x2d0>)
 
-  802f400:	7911      	ldrb	r1, [r2, #4]
 
-   /* message type is DHCP ACK? */
 
-   if (msg_type == DHCP_ACK) {
 
-  802f402:	2905      	cmp	r1, #5
 
-  802f404:	d140      	bne.n	802f488 <dhcp_recv+0x318>
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("DHCP_ACK received\n"));
 
-     /* in requesting state? */
 
-     if (dhcp->state == DHCP_REQUESTING) {
 
-  802f406:	f898 100c 	ldrb.w	r1, [r8, #12]
 
-  802f40a:	2901      	cmp	r1, #1
 
-  802f40c:	d135      	bne.n	802f47a <dhcp_recv+0x30a>
 
-  * @param netif the netif under DHCP control
 
-  */
 
- static void
 
- dhcp_handle_ack(struct netif *netif)
 
- {
 
-   struct dhcp *dhcp = netif->dhcp;
 
-  802f40e:	6a2c      	ldr	r4, [r5, #32]
 
- #if LWIP_DHCP_BOOTP_FILE
 
-   ip_addr_set_zero(&dhcp->offered_si_addr);
 
- #endif /* LWIP_DHCP_BOOTP_FILE */
 
-   /* lease time given? */
 
-   if (dhcp_option_given(dhcp, DHCP_OPTION_IDX_LEASE_TIME)) {
 
-  802f410:	78db      	ldrb	r3, [r3, #3]
 
- #if LWIP_DNS
 
-   u8_t n;
 
- #endif /* LWIP_DNS */
 
-   /* clear options we might not get from the ACK */
 
-   ip_addr_set_zero(&dhcp->offered_sn_mask);
 
-  802f412:	f8c4 b028 	str.w	fp, [r4, #40]	; 0x28
 
-   ip_addr_set_zero(&dhcp->offered_gw_addr);
 
-  802f416:	f8c4 b02c 	str.w	fp, [r4, #44]	; 0x2c
 
- #if LWIP_DHCP_BOOTP_FILE
 
-   ip_addr_set_zero(&dhcp->offered_si_addr);
 
- #endif /* LWIP_DHCP_BOOTP_FILE */
 
-   /* lease time given? */
 
-   if (dhcp_option_given(dhcp, DHCP_OPTION_IDX_LEASE_TIME)) {
 
-  802f41a:	b10b      	cbz	r3, 802f420 <dhcp_recv+0x2b0>
 
-     /* remember offered lease time */
 
-     dhcp->offered_t0_lease = dhcp_get_option_value(dhcp, DHCP_OPTION_IDX_LEASE_TIME);
 
-  802f41c:	68d3      	ldr	r3, [r2, #12]
 
-  802f41e:	6323      	str	r3, [r4, #48]	; 0x30
 
-   }
 
-   /* renewal period given? */
 
-   if (dhcp_option_given(dhcp, DHCP_OPTION_IDX_T1)) {
 
-  802f420:	4b06      	ldr	r3, [pc, #24]	; (802f43c <dhcp_recv+0x2cc>)
 
-  802f422:	791a      	ldrb	r2, [r3, #4]
 
-  802f424:	b112      	cbz	r2, 802f42c <dhcp_recv+0x2bc>
 
-     /* remember given renewal period */
 
-     dhcp->offered_t1_renew = dhcp_get_option_value(dhcp, DHCP_OPTION_IDX_T1);
 
-  802f426:	4a06      	ldr	r2, [pc, #24]	; (802f440 <dhcp_recv+0x2d0>)
 
-  802f428:	6912      	ldr	r2, [r2, #16]
 
-  802f42a:	e001      	b.n	802f430 <dhcp_recv+0x2c0>
 
-   } else {
 
-     /* calculate safe periods for renewal */
 
-     dhcp->offered_t1_renew = dhcp->offered_t0_lease / 2;
 
-  802f42c:	6b22      	ldr	r2, [r4, #48]	; 0x30
 
-  802f42e:	0852      	lsrs	r2, r2, #1
 
-   }
 
-   /* renewal period given? */
 
-   if (dhcp_option_given(dhcp, DHCP_OPTION_IDX_T2)) {
 
-  802f430:	795b      	ldrb	r3, [r3, #5]
 
-   if (dhcp_option_given(dhcp, DHCP_OPTION_IDX_T1)) {
 
-     /* remember given renewal period */
 
-     dhcp->offered_t1_renew = dhcp_get_option_value(dhcp, DHCP_OPTION_IDX_T1);
 
-   } else {
 
-     /* calculate safe periods for renewal */
 
-     dhcp->offered_t1_renew = dhcp->offered_t0_lease / 2;
 
-  802f432:	6362      	str	r2, [r4, #52]	; 0x34
 
-   }
 
-   /* renewal period given? */
 
-   if (dhcp_option_given(dhcp, DHCP_OPTION_IDX_T2)) {
 
-  802f434:	b133      	cbz	r3, 802f444 <dhcp_recv+0x2d4>
 
-     /* remember given rebind period */
 
-     dhcp->offered_t2_rebind = dhcp_get_option_value(dhcp, DHCP_OPTION_IDX_T2);
 
-  802f436:	4b02      	ldr	r3, [pc, #8]	; (802f440 <dhcp_recv+0x2d0>)
 
-  802f438:	695b      	ldr	r3, [r3, #20]
 
-  802f43a:	e004      	b.n	802f446 <dhcp_recv+0x2d6>
 
-  802f43c:	2000e268 	.word	0x2000e268
 
-  802f440:	2000e274 	.word	0x2000e274
 
-   } else {
 
-     /* calculate safe periods for rebinding */
 
-     dhcp->offered_t2_rebind = dhcp->offered_t0_lease;
 
-  802f444:	6b23      	ldr	r3, [r4, #48]	; 0x30
 
-  802f446:	63a3      	str	r3, [r4, #56]	; 0x38
 
-   }
 
-   /* (y)our internet address */
 
-   ip_addr_copy(dhcp->offered_ip_addr, dhcp->msg_in->yiaddr);
 
-  802f448:	68a3      	ldr	r3, [r4, #8]
 
-      boot file name copied in dhcp_parse_reply if not overloaded */
 
-   ip_addr_copy(dhcp->offered_si_addr, dhcp->msg_in->siaddr);
 
- #endif /* LWIP_DHCP_BOOTP_FILE */
 
-   /* subnet mask given? */
 
-   if (dhcp_option_given(dhcp, DHCP_OPTION_IDX_SUBNET_MASK)) {
 
-  802f44a:	4a39      	ldr	r2, [pc, #228]	; (802f530 <dhcp_recv+0x3c0>)
 
-     /* calculate safe periods for rebinding */
 
-     dhcp->offered_t2_rebind = dhcp->offered_t0_lease;
 
-   }
 
-   /* (y)our internet address */
 
-   ip_addr_copy(dhcp->offered_ip_addr, dhcp->msg_in->yiaddr);
 
-  802f44c:	691b      	ldr	r3, [r3, #16]
 
-  802f44e:	6263      	str	r3, [r4, #36]	; 0x24
 
-      boot file name copied in dhcp_parse_reply if not overloaded */
 
-   ip_addr_copy(dhcp->offered_si_addr, dhcp->msg_in->siaddr);
 
- #endif /* LWIP_DHCP_BOOTP_FILE */
 
-   /* subnet mask given? */
 
-   if (dhcp_option_given(dhcp, DHCP_OPTION_IDX_SUBNET_MASK)) {
 
-  802f450:	7993      	ldrb	r3, [r2, #6]
 
-  802f452:	4616      	mov	r6, r2
 
-  802f454:	b12b      	cbz	r3, 802f462 <dhcp_recv+0x2f2>
 
-     /* remember given subnet mask */
 
-     ip4_addr_set_u32(&dhcp->offered_sn_mask, htonl(dhcp_get_option_value(dhcp, DHCP_OPTION_IDX_SUBNET_MASK)));
 
-  802f456:	4b37      	ldr	r3, [pc, #220]	; (802f534 <dhcp_recv+0x3c4>)
 
-  802f458:	6998      	ldr	r0, [r3, #24]
 
-  802f45a:	f7ff fba3 	bl	802eba4 <lwip_htonl>
 
-     dhcp->subnet_mask_given = 1;
 
-  802f45e:	2301      	movs	r3, #1
 
- #endif /* LWIP_DHCP_BOOTP_FILE */
 
-   /* subnet mask given? */
 
-   if (dhcp_option_given(dhcp, DHCP_OPTION_IDX_SUBNET_MASK)) {
 
-     /* remember given subnet mask */
 
-     ip4_addr_set_u32(&dhcp->offered_sn_mask, htonl(dhcp_get_option_value(dhcp, DHCP_OPTION_IDX_SUBNET_MASK)));
 
-  802f460:	62a0      	str	r0, [r4, #40]	; 0x28
 
-     dhcp->subnet_mask_given = 1;
 
-   } else {
 
-     dhcp->subnet_mask_given = 0;
 
-  802f462:	73a3      	strb	r3, [r4, #14]
 
-   }
 
-   /* gateway router */
 
-   if (dhcp_option_given(dhcp, DHCP_OPTION_IDX_ROUTER)) {
 
-  802f464:	79f3      	ldrb	r3, [r6, #7]
 
-  802f466:	b123      	cbz	r3, 802f472 <dhcp_recv+0x302>
 
-     ip4_addr_set_u32(&dhcp->offered_gw_addr, htonl(dhcp_get_option_value(dhcp, DHCP_OPTION_IDX_ROUTER)));
 
-  802f468:	4b32      	ldr	r3, [pc, #200]	; (802f534 <dhcp_recv+0x3c4>)
 
-  802f46a:	69d8      	ldr	r0, [r3, #28]
 
-  802f46c:	f7ff fb9a 	bl	802eba4 <lwip_htonl>
 
-  802f470:	62e0      	str	r0, [r4, #44]	; 0x2c
 
-     /* in requesting state? */
 
-     if (dhcp->state == DHCP_REQUESTING) {
 
-       dhcp_handle_ack(netif);
 
- #if DHCP_DOES_ARP_CHECK
 
-       /* check if the acknowledged lease address is already in use */
 
-       dhcp_check(netif);
 
-  802f472:	4628      	mov	r0, r5
 
-  802f474:	f7ff fe0a 	bl	802f08c <dhcp_check>
 
-  802f478:	e03f      	b.n	802f4fa <dhcp_recv+0x38a>
 
-       /* bind interface to the acknowledged lease address */
 
-       dhcp_bind(netif);
 
- #endif
 
-     }
 
-     /* already bound to the given lease address? */
 
-     else if ((dhcp->state == DHCP_REBOOTING) || (dhcp->state == DHCP_REBINDING) || (dhcp->state == DHCP_RENEWING)) {
 
-  802f47a:	3903      	subs	r1, #3
 
-  802f47c:	2902      	cmp	r1, #2
 
-  802f47e:	d83c      	bhi.n	802f4fa <dhcp_recv+0x38a>
 
-       dhcp_bind(netif);
 
-  802f480:	4628      	mov	r0, r5
 
-  802f482:	f7ff fe16 	bl	802f0b2 <dhcp_bind>
 
-  802f486:	e038      	b.n	802f4fa <dhcp_recv+0x38a>
 
-     }
 
-   }
 
-   /* received a DHCP_NAK in appropriate state? */
 
-   else if ((msg_type == DHCP_NAK) &&
 
-  802f488:	2906      	cmp	r1, #6
 
-  802f48a:	d121      	bne.n	802f4d0 <dhcp_recv+0x360>
 
-  802f48c:	f898 300c 	ldrb.w	r3, [r8, #12]
 
-  802f490:	2b05      	cmp	r3, #5
 
-  802f492:	d832      	bhi.n	802f4fa <dhcp_recv+0x38a>
 
-  802f494:	f998 300c 	ldrsb.w	r3, [r8, #12]
 
-  802f498:	f04f 42b8 	mov.w	r2, #1543503872	; 0x5c000000
 
-  802f49c:	409a      	lsls	r2, r3
 
-  802f49e:	d52c      	bpl.n	802f4fa <dhcp_recv+0x38a>
 
- {
 
-   struct dhcp *dhcp = netif->dhcp;
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_handle_nak(netif=%p) %c%c%"U16_F"\n", 
 
-     (void*)netif, netif->name[0], netif->name[1], (u16_t)netif->num));
 
-   /* Set the interface down since the address must no longer be used, as per RFC2131 */
 
-   netif_set_down(netif);
 
-  802f4a0:	4628      	mov	r0, r5
 
-  * @param netif the netif under DHCP control
 
-  */
 
- static void
 
- dhcp_handle_nak(struct netif *netif)
 
- {
 
-   struct dhcp *dhcp = netif->dhcp;
 
-  802f4a2:	6a2c      	ldr	r4, [r5, #32]
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_handle_nak(netif=%p) %c%c%"U16_F"\n", 
 
-     (void*)netif, netif->name[0], netif->name[1], (u16_t)netif->num));
 
-   /* Set the interface down since the address must no longer be used, as per RFC2131 */
 
-   netif_set_down(netif);
 
-  802f4a4:	f000 fc6e 	bl	802fd84 <netif_set_down>
 
-   /* remove IP address from interface */
 
-   netif_set_ipaddr(netif, IP_ADDR_ANY);
 
-  802f4a8:	4628      	mov	r0, r5
 
-  802f4aa:	4923      	ldr	r1, [pc, #140]	; (802f538 <dhcp_recv+0x3c8>)
 
-  802f4ac:	f000 fbba 	bl	802fc24 <netif_set_ipaddr>
 
-   netif_set_gw(netif, IP_ADDR_ANY);
 
-  802f4b0:	4628      	mov	r0, r5
 
-  802f4b2:	4921      	ldr	r1, [pc, #132]	; (802f538 <dhcp_recv+0x3c8>)
 
-  802f4b4:	f000 fbf2 	bl	802fc9c <netif_set_gw>
 
-   netif_set_netmask(netif, IP_ADDR_ANY); 
 
-  802f4b8:	4628      	mov	r0, r5
 
-  802f4ba:	491f      	ldr	r1, [pc, #124]	; (802f538 <dhcp_recv+0x3c8>)
 
-  802f4bc:	f000 fbf2 	bl	802fca4 <netif_set_netmask>
 
-   /* Change to a defined state */
 
-   dhcp_set_state(dhcp, DHCP_BACKING_OFF);
 
-  802f4c0:	4620      	mov	r0, r4
 
-  802f4c2:	210c      	movs	r1, #12
 
-  802f4c4:	f7ff fb72 	bl	802ebac <dhcp_set_state>
 
-   /* We can immediately restart discovery */
 
-   dhcp_discover(netif);
 
-  802f4c8:	4628      	mov	r0, r5
 
-  802f4ca:	f7ff fc7f 	bl	802edcc <dhcp_discover>
 
-  802f4ce:	e014      	b.n	802f4fa <dhcp_recv+0x38a>
 
-      (dhcp->state == DHCP_REBINDING) || (dhcp->state == DHCP_RENEWING  ))) {
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("DHCP_NAK received\n"));
 
-     dhcp_handle_nak(netif);
 
-   }
 
-   /* received a DHCP_OFFER in DHCP_SELECTING state? */
 
-   else if ((msg_type == DHCP_OFFER) && (dhcp->state == DHCP_SELECTING)) {
 
-  802f4d0:	2902      	cmp	r1, #2
 
-  802f4d2:	d112      	bne.n	802f4fa <dhcp_recv+0x38a>
 
-  802f4d4:	f898 100c 	ldrb.w	r1, [r8, #12]
 
-  802f4d8:	2906      	cmp	r1, #6
 
-  802f4da:	d10e      	bne.n	802f4fa <dhcp_recv+0x38a>
 
- {
 
-   struct dhcp *dhcp = netif->dhcp;
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_handle_offer(netif=%p) %c%c%"U16_F"\n",
 
-     (void*)netif, netif->name[0], netif->name[1], (u16_t)netif->num));
 
-   /* obtain the server address */
 
-   if (dhcp_option_given(dhcp, DHCP_OPTION_IDX_SERVER_ID)) {
 
-  802f4dc:	789b      	ldrb	r3, [r3, #2]
 
-     dhcp_handle_nak(netif);
 
-   }
 
-   /* received a DHCP_OFFER in DHCP_SELECTING state? */
 
-   else if ((msg_type == DHCP_OFFER) && (dhcp->state == DHCP_SELECTING)) {
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("DHCP_OFFER received in DHCP_SELECTING state\n"));
 
-     dhcp->request_timeout = 0;
 
-  802f4de:	f8a8 b01a 	strh.w	fp, [r8, #26]
 
-  * @param netif the netif under DHCP control
 
-  */
 
- static void
 
- dhcp_handle_offer(struct netif *netif)
 
- {
 
-   struct dhcp *dhcp = netif->dhcp;
 
-  802f4e2:	6a2c      	ldr	r4, [r5, #32]
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_handle_offer(netif=%p) %c%c%"U16_F"\n",
 
-     (void*)netif, netif->name[0], netif->name[1], (u16_t)netif->num));
 
-   /* obtain the server address */
 
-   if (dhcp_option_given(dhcp, DHCP_OPTION_IDX_SERVER_ID)) {
 
-  802f4e4:	b14b      	cbz	r3, 802f4fa <dhcp_recv+0x38a>
 
-     ip4_addr_set_u32(&dhcp->server_ip_addr, htonl(dhcp_get_option_value(dhcp, DHCP_OPTION_IDX_SERVER_ID)));
 
-  802f4e6:	6890      	ldr	r0, [r2, #8]
 
-  802f4e8:	f7ff fb5c 	bl	802eba4 <lwip_htonl>
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_STATE, ("dhcp_handle_offer(): server 0x%08"X32_F"\n",
 
-       ip4_addr_get_u32(&dhcp->server_ip_addr)));
 
-     /* remember offered address */
 
-     ip_addr_copy(dhcp->offered_ip_addr, dhcp->msg_in->yiaddr);
 
-  802f4ec:	68a3      	ldr	r3, [r4, #8]
 
-   struct dhcp *dhcp = netif->dhcp;
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_handle_offer(netif=%p) %c%c%"U16_F"\n",
 
-     (void*)netif, netif->name[0], netif->name[1], (u16_t)netif->num));
 
-   /* obtain the server address */
 
-   if (dhcp_option_given(dhcp, DHCP_OPTION_IDX_SERVER_ID)) {
 
-     ip4_addr_set_u32(&dhcp->server_ip_addr, htonl(dhcp_get_option_value(dhcp, DHCP_OPTION_IDX_SERVER_ID)));
 
-  802f4ee:	6220      	str	r0, [r4, #32]
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_STATE, ("dhcp_handle_offer(): server 0x%08"X32_F"\n",
 
-       ip4_addr_get_u32(&dhcp->server_ip_addr)));
 
-     /* remember offered address */
 
-     ip_addr_copy(dhcp->offered_ip_addr, dhcp->msg_in->yiaddr);
 
-  802f4f0:	691b      	ldr	r3, [r3, #16]
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_STATE, ("dhcp_handle_offer(): offer for 0x%08"X32_F"\n",
 
-       ip4_addr_get_u32(&dhcp->offered_ip_addr)));
 
-     dhcp_select(netif);
 
-  802f4f2:	4628      	mov	r0, r5
 
-   if (dhcp_option_given(dhcp, DHCP_OPTION_IDX_SERVER_ID)) {
 
-     ip4_addr_set_u32(&dhcp->server_ip_addr, htonl(dhcp_get_option_value(dhcp, DHCP_OPTION_IDX_SERVER_ID)));
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_STATE, ("dhcp_handle_offer(): server 0x%08"X32_F"\n",
 
-       ip4_addr_get_u32(&dhcp->server_ip_addr)));
 
-     /* remember offered address */
 
-     ip_addr_copy(dhcp->offered_ip_addr, dhcp->msg_in->yiaddr);
 
-  802f4f4:	6263      	str	r3, [r4, #36]	; 0x24
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_STATE, ("dhcp_handle_offer(): offer for 0x%08"X32_F"\n",
 
-       ip4_addr_get_u32(&dhcp->offered_ip_addr)));
 
-     dhcp_select(netif);
 
-  802f4f6:	f7ff fd57 	bl	802efa8 <dhcp_select>
 
-     dhcp->request_timeout = 0;
 
-     /* remember offered lease */
 
-     dhcp_handle_offer(netif);
 
-   }
 
- free_pbuf_and_return:
 
-   dhcp->msg_in = NULL;
 
-  802f4fa:	2300      	movs	r3, #0
 
-  802f4fc:	f8c8 3008 	str.w	r3, [r8, #8]
 
-   pbuf_free(p);
 
-  802f500:	4650      	mov	r0, sl
 
-  802f502:	f000 fc83 	bl	802fe0c <pbuf_free>
 
-  802f506:	e010      	b.n	802f52a <dhcp_recv+0x3ba>
 
-     /* if both are overloaded, parse file first and then sname (RFC 2131 ch. 4.1) */
 
-     parse_file_as_options = 0;
 
-     options_idx = DHCP_FILE_OFS;
 
-     options_idx_max = DHCP_FILE_OFS + DHCP_FILE_LEN;
 
-     goto again;
 
-   } else if (parse_sname_as_options) {
 
-  802f508:	f1bb 0f00 	cmp.w	fp, #0
 
-  802f50c:	f47f ae6d 	bne.w	802f1ea <dhcp_recv+0x7a>
 
-  802f510:	e005      	b.n	802f51e <dhcp_recv+0x3ae>
 
-       LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("overloaded file field\n"));
 
-     } else if (overload == DHCP_OVERLOAD_SNAME) {
 
-       parse_sname_as_options = 1;
 
-       LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("overloaded sname field\n"));
 
-     } else if (overload == DHCP_OVERLOAD_SNAME_FILE) {
 
-       parse_sname_as_options = 1;
 
-  802f512:	f04f 0b01 	mov.w	fp, #1
 
-   }
 
-   if (parse_file_as_options) {
 
-     /* if both are overloaded, parse file first and then sname (RFC 2131 ch. 4.1) */
 
-     parse_file_as_options = 0;
 
-     options_idx = DHCP_FILE_OFS;
 
-     options_idx_max = DHCP_FILE_OFS + DHCP_FILE_LEN;
 
-  802f516:	f04f 09ec 	mov.w	r9, #236	; 0xec
 
- #endif /* LWIP_DHCP_BOOTP_FILE */
 
-   }
 
-   if (parse_file_as_options) {
 
-     /* if both are overloaded, parse file first and then sname (RFC 2131 ch. 4.1) */
 
-     parse_file_as_options = 0;
 
-     options_idx = DHCP_FILE_OFS;
 
-  802f51a:	226c      	movs	r2, #108	; 0x6c
 
-  802f51c:	e66a      	b.n	802f1f4 <dhcp_recv+0x84>
 
-     goto free_pbuf_and_return;
 
-   }
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("searching DHCP_OPTION_MESSAGE_TYPE\n"));
 
-   /* obtain pointer to DHCP message type */
 
-   if (!dhcp_option_given(dhcp, DHCP_OPTION_IDX_MSG_TYPE)) {
 
-  802f51e:	4b04      	ldr	r3, [pc, #16]	; (802f530 <dhcp_recv+0x3c0>)
 
-  802f520:	785a      	ldrb	r2, [r3, #1]
 
-  802f522:	2a00      	cmp	r2, #0
 
-  802f524:	f47f af6b 	bne.w	802f3fe <dhcp_recv+0x28e>
 
-  802f528:	e7e7      	b.n	802f4fa <dhcp_recv+0x38a>
 
-     dhcp_handle_offer(netif);
 
-   }
 
- free_pbuf_and_return:
 
-   dhcp->msg_in = NULL;
 
-   pbuf_free(p);
 
- }
 
-  802f52a:	b00b      	add	sp, #44	; 0x2c
 
-  802f52c:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
-  802f530:	2000e268 	.word	0x2000e268
 
-  802f534:	2000e274 	.word	0x2000e274
 
-  802f538:	08045008 	.word	0x08045008
 
- 0802f53c <dhcp_arp_reply>:
 
-  *
 
-  * @param netif the network interface on which the reply was received
 
-  * @param addr The IP address we received a reply from
 
-  */
 
- void dhcp_arp_reply(struct netif *netif, ip_addr_t *addr)
 
- {
 
-  802f53c:	b537      	push	{r0, r1, r2, r4, r5, lr}
 
-   LWIP_ERROR("netif != NULL", (netif != NULL), return;);
 
-  802f53e:	4605      	mov	r5, r0
 
-  802f540:	2800      	cmp	r0, #0
 
-  802f542:	d037      	beq.n	802f5b4 <dhcp_arp_reply+0x78>
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_arp_reply()\n"));
 
-   /* is a DHCP client doing an ARP check? */
 
-   if ((netif->dhcp != NULL) && (netif->dhcp->state == DHCP_CHECKING)) {
 
-  802f544:	6a04      	ldr	r4, [r0, #32]
 
-  802f546:	2c00      	cmp	r4, #0
 
-  802f548:	d034      	beq.n	802f5b4 <dhcp_arp_reply+0x78>
 
-  802f54a:	7b23      	ldrb	r3, [r4, #12]
 
-  802f54c:	2b08      	cmp	r3, #8
 
-  802f54e:	d131      	bne.n	802f5b4 <dhcp_arp_reply+0x78>
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_arp_reply(): CHECKING, arp reply for 0x%08"X32_F"\n",
 
-       ip4_addr_get_u32(addr)));
 
-     /* did a host respond with the address we
 
-        were offered by the DHCP server? */
 
-     if (ip_addr_cmp(addr, &netif->dhcp->offered_ip_addr)) {
 
-  802f550:	680a      	ldr	r2, [r1, #0]
 
-  802f552:	6a63      	ldr	r3, [r4, #36]	; 0x24
 
-  802f554:	429a      	cmp	r2, r3
 
-  802f556:	d12d      	bne.n	802f5b4 <dhcp_arp_reply+0x78>
 
- {
 
-   struct dhcp *dhcp = netif->dhcp;
 
-   err_t result = ERR_OK;
 
-   u16_t msecs;
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_decline()\n"));
 
-   dhcp_set_state(dhcp, DHCP_BACKING_OFF);
 
-  802f558:	4620      	mov	r0, r4
 
-  802f55a:	210c      	movs	r1, #12
 
-  802f55c:	f7ff fb26 	bl	802ebac <dhcp_set_state>
 
-   /* create and initialize the DHCP message header */
 
-   result = dhcp_create_msg(netif, dhcp, DHCP_DECLINE);
 
-  802f560:	4628      	mov	r0, r5
 
-  802f562:	4621      	mov	r1, r4
 
-  802f564:	2204      	movs	r2, #4
 
-  802f566:	f7ff fb85 	bl	802ec74 <dhcp_create_msg>
 
-   if (result == ERR_OK) {
 
-  802f56a:	b9f0      	cbnz	r0, 802f5aa <dhcp_arp_reply+0x6e>
 
-     dhcp_option(dhcp, DHCP_OPTION_REQUESTED_IP, 4);
 
-  802f56c:	2204      	movs	r2, #4
 
-  802f56e:	2132      	movs	r1, #50	; 0x32
 
-  802f570:	4620      	mov	r0, r4
 
-  802f572:	f7ff fb23 	bl	802ebbc <dhcp_option>
 
-     dhcp_option_long(dhcp, ntohl(ip4_addr_get_u32(&dhcp->offered_ip_addr)));
 
-  802f576:	6a60      	ldr	r0, [r4, #36]	; 0x24
 
-  802f578:	f7ff fb16 	bl	802eba8 <lwip_ntohl>
 
-  802f57c:	4601      	mov	r1, r0
 
-  802f57e:	4620      	mov	r0, r4
 
-  802f580:	f7ff fb43 	bl	802ec0a <dhcp_option_long>
 
-     dhcp_option_trailer(dhcp);
 
-  802f584:	4620      	mov	r0, r4
 
-  802f586:	f7ff fb60 	bl	802ec4a <dhcp_option_trailer>
 
-     /* resize pbuf to reflect true size of options */
 
-     pbuf_realloc(dhcp->p_out, sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN + dhcp->options_out_len);
 
-  802f58a:	8b21      	ldrh	r1, [r4, #24]
 
-  802f58c:	6920      	ldr	r0, [r4, #16]
 
-  802f58e:	31f0      	adds	r1, #240	; 0xf0
 
-  802f590:	b289      	uxth	r1, r1
 
-  802f592:	f000 fc62 	bl	802fe5a <pbuf_realloc>
 
-     /* per section 4.4.4, broadcast DECLINE messages */
 
-     udp_sendto_if(dhcp->pcb, dhcp->p_out, IP_ADDR_BROADCAST, DHCP_SERVER_PORT, netif);
 
-  802f596:	9500      	str	r5, [sp, #0]
 
-  802f598:	6860      	ldr	r0, [r4, #4]
 
-  802f59a:	6921      	ldr	r1, [r4, #16]
 
-  802f59c:	4a06      	ldr	r2, [pc, #24]	; (802f5b8 <dhcp_arp_reply+0x7c>)
 
-  802f59e:	2343      	movs	r3, #67	; 0x43
 
-  802f5a0:	f003 f9f6 	bl	8032990 <udp_sendto_if>
 
-     dhcp_delete_msg(dhcp);
 
-  802f5a4:	4620      	mov	r0, r4
 
-  802f5a6:	f7ff fc05 	bl	802edb4 <dhcp_delete_msg>
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_decline: BACKING OFF\n"));
 
-   } else {
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS,
 
-       ("dhcp_decline: could not allocate DHCP request\n"));
 
-   }
 
-   dhcp->tries++;
 
-  802f5aa:	7b63      	ldrb	r3, [r4, #13]
 
-  802f5ac:	3301      	adds	r3, #1
 
-  802f5ae:	7363      	strb	r3, [r4, #13]
 
-   msecs = 10*1000;
 
-   dhcp->request_timeout = (msecs + DHCP_FINE_TIMER_MSECS - 1) / DHCP_FINE_TIMER_MSECS;
 
-  802f5b0:	2314      	movs	r3, #20
 
-  802f5b2:	8363      	strh	r3, [r4, #26]
 
-       LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE | LWIP_DBG_LEVEL_WARNING,
 
-         ("dhcp_arp_reply(): arp reply matched with offered address, declining\n"));
 
-       dhcp_decline(netif);
 
-     }
 
-   }
 
- }
 
-  802f5b4:	bd3e      	pop	{r1, r2, r3, r4, r5, pc}
 
-  802f5b6:	bf00      	nop
 
-  802f5b8:	08045004 	.word	0x08045004
 
- 0802f5bc <dhcp_renew>:
 
-  *
 
-  * @param netif network interface which must renew its lease
 
-  */
 
- err_t
 
- dhcp_renew(struct netif *netif)
 
- {
 
-  802f5bc:	b573      	push	{r0, r1, r4, r5, r6, lr}
 
-   struct dhcp *dhcp = netif->dhcp;
 
-  802f5be:	6a04      	ldr	r4, [r0, #32]
 
-  *
 
-  * @param netif network interface which must renew its lease
 
-  */
 
- err_t
 
- dhcp_renew(struct netif *netif)
 
- {
 
-  802f5c0:	4605      	mov	r5, r0
 
-   struct dhcp *dhcp = netif->dhcp;
 
-   err_t result;
 
-   u16_t msecs;
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_renew()\n"));
 
-   dhcp_set_state(dhcp, DHCP_RENEWING);
 
-  802f5c2:	2105      	movs	r1, #5
 
-  802f5c4:	4620      	mov	r0, r4
 
-  802f5c6:	f7ff faf1 	bl	802ebac <dhcp_set_state>
 
-   /* create and initialize the DHCP message header */
 
-   result = dhcp_create_msg(netif, dhcp, DHCP_REQUEST);
 
-  802f5ca:	4628      	mov	r0, r5
 
-  802f5cc:	4621      	mov	r1, r4
 
-  802f5ce:	2203      	movs	r2, #3
 
-  802f5d0:	f7ff fb50 	bl	802ec74 <dhcp_create_msg>
 
-   if (result == ERR_OK) {
 
-  802f5d4:	4606      	mov	r6, r0
 
-  802f5d6:	b9e0      	cbnz	r0, 802f612 <dhcp_renew+0x56>
 
-     dhcp_option(dhcp, DHCP_OPTION_MAX_MSG_SIZE, DHCP_OPTION_MAX_MSG_SIZE_LEN);
 
-  802f5d8:	2202      	movs	r2, #2
 
-  802f5da:	4620      	mov	r0, r4
 
-  802f5dc:	2139      	movs	r1, #57	; 0x39
 
-  802f5de:	f7ff faed 	bl	802ebbc <dhcp_option>
 
-     dhcp_option_short(dhcp, DHCP_MAX_MSG_LEN(netif));
 
-  802f5e2:	8ca9      	ldrh	r1, [r5, #36]	; 0x24
 
-  802f5e4:	4620      	mov	r0, r4
 
-  802f5e6:	f7ff fb00 	bl	802ebea <dhcp_option_short>
 
- #if LWIP_NETIF_HOSTNAME
 
-     dhcp_option_hostname(dhcp, netif);
 
- #endif /* LWIP_NETIF_HOSTNAME */
 
-     /* append DHCP message trailer */
 
-     dhcp_option_trailer(dhcp);
 
-  802f5ea:	4620      	mov	r0, r4
 
-  802f5ec:	f7ff fb2d 	bl	802ec4a <dhcp_option_trailer>
 
-     pbuf_realloc(dhcp->p_out, sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN + dhcp->options_out_len);
 
-  802f5f0:	8b21      	ldrh	r1, [r4, #24]
 
-  802f5f2:	6920      	ldr	r0, [r4, #16]
 
-  802f5f4:	31f0      	adds	r1, #240	; 0xf0
 
-  802f5f6:	b289      	uxth	r1, r1
 
-  802f5f8:	f000 fc2f 	bl	802fe5a <pbuf_realloc>
 
-     udp_sendto_if(dhcp->pcb, dhcp->p_out, &dhcp->server_ip_addr, DHCP_SERVER_PORT, netif);
 
-  802f5fc:	9500      	str	r5, [sp, #0]
 
-  802f5fe:	6860      	ldr	r0, [r4, #4]
 
-  802f600:	6921      	ldr	r1, [r4, #16]
 
-  802f602:	f104 0220 	add.w	r2, r4, #32
 
-  802f606:	2343      	movs	r3, #67	; 0x43
 
-  802f608:	f003 f9c2 	bl	8032990 <udp_sendto_if>
 
-     dhcp_delete_msg(dhcp);
 
-  802f60c:	4620      	mov	r0, r4
 
-  802f60e:	f7ff fbd1 	bl	802edb4 <dhcp_delete_msg>
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_renew: RENEWING\n"));
 
-   } else {
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, ("dhcp_renew: could not allocate DHCP request\n"));
 
-   }
 
-   dhcp->tries++;
 
-  802f612:	7b63      	ldrb	r3, [r4, #13]
 
-  802f614:	3301      	adds	r3, #1
 
-  802f616:	b2db      	uxtb	r3, r3
 
-   /* back-off on retries, but to a maximum of 20 seconds */
 
-   msecs = dhcp->tries < 10 ? dhcp->tries * 2000 : 20 * 1000;
 
-  802f618:	2b09      	cmp	r3, #9
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_renew: RENEWING\n"));
 
-   } else {
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, ("dhcp_renew: could not allocate DHCP request\n"));
 
-   }
 
-   dhcp->tries++;
 
-  802f61a:	7363      	strb	r3, [r4, #13]
 
-   /* back-off on retries, but to a maximum of 20 seconds */
 
-   msecs = dhcp->tries < 10 ? dhcp->tries * 2000 : 20 * 1000;
 
-  802f61c:	d804      	bhi.n	802f628 <dhcp_renew+0x6c>
 
-  802f61e:	f44f 62fa 	mov.w	r2, #2000	; 0x7d0
 
-  802f622:	4353      	muls	r3, r2
 
-  802f624:	b29b      	uxth	r3, r3
 
-  802f626:	e001      	b.n	802f62c <dhcp_renew+0x70>
 
-  802f628:	f644 6320 	movw	r3, #20000	; 0x4e20
 
-   dhcp->request_timeout = (msecs + DHCP_FINE_TIMER_MSECS - 1) / DHCP_FINE_TIMER_MSECS;
 
-  802f62c:	f44f 72fa 	mov.w	r2, #500	; 0x1f4
 
-  802f630:	f203 13f3 	addw	r3, r3, #499	; 0x1f3
 
-  802f634:	fb93 f3f2 	sdiv	r3, r3, r2
 
-  802f638:	8363      	strh	r3, [r4, #26]
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_renew(): set request timeout %"U16_F" msecs\n", msecs));
 
-   return result;
 
- }
 
-  802f63a:	4630      	mov	r0, r6
 
-  802f63c:	bd7c      	pop	{r2, r3, r4, r5, r6, pc}
 
-  802f63e:	0000      	movs	r0, r0
 
- 0802f640 <dhcp_coarse_tmr>:
 
- /**
 
-  * The DHCP timer that checks for lease renewal/rebind timeouts.
 
-  */
 
- void
 
- dhcp_coarse_tmr()
 
- {
 
-  802f640:	b538      	push	{r3, r4, r5, lr}
 
-   struct netif *netif = netif_list;
 
-  802f642:	4b15      	ldr	r3, [pc, #84]	; (802f698 <dhcp_coarse_tmr+0x58>)
 
-  802f644:	4d15      	ldr	r5, [pc, #84]	; (802f69c <dhcp_coarse_tmr+0x5c>)
 
-  802f646:	681c      	ldr	r4, [r3, #0]
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_coarse_tmr()\n"));
 
-   /* iterate through all network interfaces */
 
-   while (netif != NULL) {
 
-  802f648:	e023      	b.n	802f692 <dhcp_coarse_tmr+0x52>
 
-     /* only act on DHCP configured interfaces */
 
-     if (netif->dhcp != NULL) {
 
-  802f64a:	6a23      	ldr	r3, [r4, #32]
 
-  802f64c:	b303      	cbz	r3, 802f690 <dhcp_coarse_tmr+0x50>
 
-       /* timer is active (non zero), and triggers (zeroes) now? */
 
-       if (netif->dhcp->t2_timeout-- == 1) {
 
-  802f64e:	8bda      	ldrh	r2, [r3, #30]
 
-  802f650:	1e51      	subs	r1, r2, #1
 
-  802f652:	2a01      	cmp	r2, #1
 
-  802f654:	83d9      	strh	r1, [r3, #30]
 
-  802f656:	d10b      	bne.n	802f670 <dhcp_coarse_tmr+0x30>
 
-  802f658:	7b1a      	ldrb	r2, [r3, #12]
 
-  802f65a:	2a0a      	cmp	r2, #10
 
-  802f65c:	d818      	bhi.n	802f690 <dhcp_coarse_tmr+0x50>
 
-  802f65e:	f993 300c 	ldrsb.w	r3, [r3, #12]
 
-  802f662:	fa15 f303 	lsls.w	r3, r5, r3
 
-  802f666:	d513      	bpl.n	802f690 <dhcp_coarse_tmr+0x50>
 
-     /* just retry to rebind */
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE,
 
-                 ("dhcp_t2_timeout(): must rebind\n"));
 
-     /* This slightly different to RFC2131: DHCPREQUEST will be sent from state
 
-        DHCP_REBINDING, not DHCP_BOUND */
 
-     dhcp_rebind(netif);
 
-  802f668:	4620      	mov	r0, r4
 
-  802f66a:	f7ff fc0b 	bl	802ee84 <dhcp_rebind>
 
-  802f66e:	e00f      	b.n	802f690 <dhcp_coarse_tmr+0x50>
 
-       if (netif->dhcp->t2_timeout-- == 1) {
 
-         LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_coarse_tmr(): t2 timeout\n"));
 
-         /* this clients' rebind timeout triggered */
 
-         dhcp_t2_timeout(netif);
 
-       /* timer is active (non zero), and triggers (zeroes) now */
 
-       } else if (netif->dhcp->t1_timeout-- == 1) {
 
-  802f670:	8b9a      	ldrh	r2, [r3, #28]
 
-  802f672:	1e51      	subs	r1, r2, #1
 
-  802f674:	2a01      	cmp	r2, #1
 
-  802f676:	8399      	strh	r1, [r3, #28]
 
-  802f678:	d10a      	bne.n	802f690 <dhcp_coarse_tmr+0x50>
 
-  802f67a:	7b1a      	ldrb	r2, [r3, #12]
 
-  802f67c:	2a0a      	cmp	r2, #10
 
-  802f67e:	d807      	bhi.n	802f690 <dhcp_coarse_tmr+0x50>
 
-  802f680:	f993 300c 	ldrsb.w	r3, [r3, #12]
 
-  802f684:	fa15 f303 	lsls.w	r3, r5, r3
 
-  802f688:	d502      	bpl.n	802f690 <dhcp_coarse_tmr+0x50>
 
-      * eventually time-out if renew tries fail. */
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE,
 
-                 ("dhcp_t1_timeout(): must renew\n"));
 
-     /* This slightly different to RFC2131: DHCPREQUEST will be sent from state
 
-        DHCP_RENEWING, not DHCP_BOUND */
 
-     dhcp_renew(netif);
 
-  802f68a:	4620      	mov	r0, r4
 
-  802f68c:	f7ff ff96 	bl	802f5bc <dhcp_renew>
 
-         /* this clients' renewal timeout triggered */
 
-         dhcp_t1_timeout(netif);
 
-       }
 
-     }
 
-     /* proceed to next netif */
 
-     netif = netif->next;
 
-  802f690:	6824      	ldr	r4, [r4, #0]
 
- dhcp_coarse_tmr()
 
- {
 
-   struct netif *netif = netif_list;
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_coarse_tmr()\n"));
 
-   /* iterate through all network interfaces */
 
-   while (netif != NULL) {
 
-  802f692:	2c00      	cmp	r4, #0
 
-  802f694:	d1d9      	bne.n	802f64a <dhcp_coarse_tmr+0xa>
 
-       }
 
-     }
 
-     /* proceed to next netif */
 
-     netif = netif->next;
 
-   }
 
- }
 
-  802f696:	bd38      	pop	{r3, r4, r5, pc}
 
-  802f698:	2000f6b0 	.word	0x2000f6b0
 
-  802f69c:	44200000 	.word	0x44200000
 
- 0802f6a0 <dhcp_release>:
 
-  *
 
-  * @param netif network interface which must release its lease
 
-  */
 
- err_t
 
- dhcp_release(struct netif *netif)
 
- {
 
-  802f6a0:	b573      	push	{r0, r1, r4, r5, r6, lr}
 
-   struct dhcp *dhcp = netif->dhcp;
 
-  802f6a2:	6a04      	ldr	r4, [r0, #32]
 
-  *
 
-  * @param netif network interface which must release its lease
 
-  */
 
- err_t
 
- dhcp_release(struct netif *netif)
 
- {
 
-  802f6a4:	4605      	mov	r5, r0
 
-   err_t result;
 
-   u16_t msecs;
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_release()\n"));
 
-   /* idle DHCP client */
 
-   dhcp_set_state(dhcp, DHCP_OFF);
 
-  802f6a6:	2100      	movs	r1, #0
 
-  802f6a8:	4620      	mov	r0, r4
 
-  802f6aa:	f7ff fa7f 	bl	802ebac <dhcp_set_state>
 
-   /* clean old DHCP offer */
 
-   ip_addr_set_zero(&dhcp->server_ip_addr);
 
-  802f6ae:	2300      	movs	r3, #0
 
-  802f6b0:	6223      	str	r3, [r4, #32]
 
-   ip_addr_set_zero(&dhcp->offered_ip_addr);
 
-  802f6b2:	6263      	str	r3, [r4, #36]	; 0x24
 
-   ip_addr_set_zero(&dhcp->offered_sn_mask);
 
-  802f6b4:	62a3      	str	r3, [r4, #40]	; 0x28
 
-   ip_addr_set_zero(&dhcp->offered_gw_addr);
 
-  802f6b6:	62e3      	str	r3, [r4, #44]	; 0x2c
 
- #if LWIP_DHCP_BOOTP_FILE
 
-   ip_addr_set_zero(&dhcp->offered_si_addr);
 
- #endif /* LWIP_DHCP_BOOTP_FILE */
 
-   dhcp->offered_t0_lease = dhcp->offered_t1_renew = dhcp->offered_t2_rebind = 0;
 
-  802f6b8:	63a3      	str	r3, [r4, #56]	; 0x38
 
-  802f6ba:	6363      	str	r3, [r4, #52]	; 0x34
 
-  802f6bc:	6323      	str	r3, [r4, #48]	; 0x30
 
-   
 
-   /* create and initialize the DHCP message header */
 
-   result = dhcp_create_msg(netif, dhcp, DHCP_RELEASE);
 
-  802f6be:	4628      	mov	r0, r5
 
-  802f6c0:	4621      	mov	r1, r4
 
-  802f6c2:	2207      	movs	r2, #7
 
-  802f6c4:	f7ff fad6 	bl	802ec74 <dhcp_create_msg>
 
-   if (result == ERR_OK) {
 
-  802f6c8:	4606      	mov	r6, r0
 
-  802f6ca:	b998      	cbnz	r0, 802f6f4 <dhcp_release+0x54>
 
-     dhcp_option_trailer(dhcp);
 
-  802f6cc:	4620      	mov	r0, r4
 
-  802f6ce:	f7ff fabc 	bl	802ec4a <dhcp_option_trailer>
 
-     pbuf_realloc(dhcp->p_out, sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN + dhcp->options_out_len);
 
-  802f6d2:	8b21      	ldrh	r1, [r4, #24]
 
-  802f6d4:	6920      	ldr	r0, [r4, #16]
 
-  802f6d6:	31f0      	adds	r1, #240	; 0xf0
 
-  802f6d8:	b289      	uxth	r1, r1
 
-  802f6da:	f000 fbbe 	bl	802fe5a <pbuf_realloc>
 
-     udp_sendto_if(dhcp->pcb, dhcp->p_out, &dhcp->server_ip_addr, DHCP_SERVER_PORT, netif);
 
-  802f6de:	9500      	str	r5, [sp, #0]
 
-  802f6e0:	6860      	ldr	r0, [r4, #4]
 
-  802f6e2:	6921      	ldr	r1, [r4, #16]
 
-  802f6e4:	f104 0220 	add.w	r2, r4, #32
 
-  802f6e8:	2343      	movs	r3, #67	; 0x43
 
-  802f6ea:	f003 f951 	bl	8032990 <udp_sendto_if>
 
-     dhcp_delete_msg(dhcp);
 
-  802f6ee:	4620      	mov	r0, r4
 
-  802f6f0:	f7ff fb60 	bl	802edb4 <dhcp_delete_msg>
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_release: RELEASED, DHCP_OFF\n"));
 
-   } else {
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, ("dhcp_release: could not allocate DHCP request\n"));
 
-   }
 
-   dhcp->tries++;
 
-  802f6f4:	7b63      	ldrb	r3, [r4, #13]
 
-  802f6f6:	3301      	adds	r3, #1
 
-  802f6f8:	b2db      	uxtb	r3, r3
 
-   msecs = dhcp->tries < 10 ? dhcp->tries * 1000 : 10 * 1000;
 
-  802f6fa:	2b09      	cmp	r3, #9
 
-     dhcp_delete_msg(dhcp);
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_release: RELEASED, DHCP_OFF\n"));
 
-   } else {
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, ("dhcp_release: could not allocate DHCP request\n"));
 
-   }
 
-   dhcp->tries++;
 
-  802f6fc:	7363      	strb	r3, [r4, #13]
 
-   msecs = dhcp->tries < 10 ? dhcp->tries * 1000 : 10 * 1000;
 
-  802f6fe:	d804      	bhi.n	802f70a <dhcp_release+0x6a>
 
-  802f700:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
 
-  802f704:	4353      	muls	r3, r2
 
-  802f706:	b29b      	uxth	r3, r3
 
-  802f708:	e001      	b.n	802f70e <dhcp_release+0x6e>
 
-  802f70a:	f242 7310 	movw	r3, #10000	; 0x2710
 
-   dhcp->request_timeout = (msecs + DHCP_FINE_TIMER_MSECS - 1) / DHCP_FINE_TIMER_MSECS;
 
-  802f70e:	f44f 72fa 	mov.w	r2, #500	; 0x1f4
 
-  802f712:	f203 13f3 	addw	r3, r3, #499	; 0x1f3
 
-  802f716:	fb93 f3f2 	sdiv	r3, r3, r2
 
-  802f71a:	8363      	strh	r3, [r4, #26]
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_release(): set request timeout %"U16_F" msecs\n", msecs));
 
-   /* bring the interface down */
 
-   netif_set_down(netif);
 
-  802f71c:	4628      	mov	r0, r5
 
-  802f71e:	f000 fb31 	bl	802fd84 <netif_set_down>
 
-   /* remove IP address from interface */
 
-   netif_set_ipaddr(netif, IP_ADDR_ANY);
 
-  802f722:	4628      	mov	r0, r5
 
-  802f724:	4906      	ldr	r1, [pc, #24]	; (802f740 <dhcp_release+0xa0>)
 
-  802f726:	f000 fa7d 	bl	802fc24 <netif_set_ipaddr>
 
-   netif_set_gw(netif, IP_ADDR_ANY);
 
-  802f72a:	4628      	mov	r0, r5
 
-  802f72c:	4904      	ldr	r1, [pc, #16]	; (802f740 <dhcp_release+0xa0>)
 
-  802f72e:	f000 fab5 	bl	802fc9c <netif_set_gw>
 
-   netif_set_netmask(netif, IP_ADDR_ANY);
 
-  802f732:	4628      	mov	r0, r5
 
-  802f734:	4902      	ldr	r1, [pc, #8]	; (802f740 <dhcp_release+0xa0>)
 
-  802f736:	f000 fab5 	bl	802fca4 <netif_set_netmask>
 
-   
 
-   return result;
 
- }
 
-  802f73a:	4630      	mov	r0, r6
 
-  802f73c:	bd7c      	pop	{r2, r3, r4, r5, r6, pc}
 
-  802f73e:	bf00      	nop
 
-  802f740:	08045008 	.word	0x08045008
 
- 0802f744 <dhcp_fine_tmr>:
 
-  * A DHCP server is expected to respond within a short period of time.
 
-  * This timer checks whether an outstanding DHCP request is timed out.
 
-  */
 
- void
 
- dhcp_fine_tmr()
 
- {
 
-  802f744:	b538      	push	{r3, r4, r5, lr}
 
-   struct netif *netif = netif_list;
 
-  802f746:	4b26      	ldr	r3, [pc, #152]	; (802f7e0 <dhcp_fine_tmr+0x9c>)
 
-       /* timer is active (non zero), and is about to trigger now */      
 
-       if (netif->dhcp->request_timeout > 1) {
 
-         netif->dhcp->request_timeout--;
 
-       }
 
-       else if (netif->dhcp->request_timeout == 1) {
 
-         netif->dhcp->request_timeout--;
 
-  802f748:	2500      	movs	r5, #0
 
-  * This timer checks whether an outstanding DHCP request is timed out.
 
-  */
 
- void
 
- dhcp_fine_tmr()
 
- {
 
-   struct netif *netif = netif_list;
 
-  802f74a:	681c      	ldr	r4, [r3, #0]
 
-   /* loop through netif's */
 
-   while (netif != NULL) {
 
-  802f74c:	e044      	b.n	802f7d8 <dhcp_fine_tmr+0x94>
 
-     /* only act on DHCP configured interfaces */
 
-     if (netif->dhcp != NULL) {
 
-  802f74e:	6a23      	ldr	r3, [r4, #32]
 
-  802f750:	2b00      	cmp	r3, #0
 
-  802f752:	d040      	beq.n	802f7d6 <dhcp_fine_tmr+0x92>
 
-       /* timer is active (non zero), and is about to trigger now */      
 
-       if (netif->dhcp->request_timeout > 1) {
 
-  802f754:	8b5a      	ldrh	r2, [r3, #26]
 
-  802f756:	2a01      	cmp	r2, #1
 
-  802f758:	d902      	bls.n	802f760 <dhcp_fine_tmr+0x1c>
 
-         netif->dhcp->request_timeout--;
 
-  802f75a:	3a01      	subs	r2, #1
 
-  802f75c:	835a      	strh	r2, [r3, #26]
 
-  802f75e:	e03a      	b.n	802f7d6 <dhcp_fine_tmr+0x92>
 
-       }
 
-       else if (netif->dhcp->request_timeout == 1) {
 
-  802f760:	d139      	bne.n	802f7d6 <dhcp_fine_tmr+0x92>
 
- dhcp_timeout(struct netif *netif)
 
- {
 
-   struct dhcp *dhcp = netif->dhcp;
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_timeout()\n"));
 
-   /* back-off period has passed, or server selection timed out */
 
-   if ((dhcp->state == DHCP_BACKING_OFF) || (dhcp->state == DHCP_SELECTING)) {
 
-  802f762:	7b1a      	ldrb	r2, [r3, #12]
 
-       /* timer is active (non zero), and is about to trigger now */      
 
-       if (netif->dhcp->request_timeout > 1) {
 
-         netif->dhcp->request_timeout--;
 
-       }
 
-       else if (netif->dhcp->request_timeout == 1) {
 
-         netif->dhcp->request_timeout--;
 
-  802f764:	835d      	strh	r5, [r3, #26]
 
- dhcp_timeout(struct netif *netif)
 
- {
 
-   struct dhcp *dhcp = netif->dhcp;
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_timeout()\n"));
 
-   /* back-off period has passed, or server selection timed out */
 
-   if ((dhcp->state == DHCP_BACKING_OFF) || (dhcp->state == DHCP_SELECTING)) {
 
-  802f766:	2a0c      	cmp	r2, #12
 
-  802f768:	d028      	beq.n	802f7bc <dhcp_fine_tmr+0x78>
 
-  802f76a:	2a06      	cmp	r2, #6
 
-  802f76c:	d100      	bne.n	802f770 <dhcp_fine_tmr+0x2c>
 
-  802f76e:	e025      	b.n	802f7bc <dhcp_fine_tmr+0x78>
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_timeout(): restarting discovery\n"));
 
-     dhcp_discover(netif);
 
-   /* receiving the requested lease timed out */
 
-   } else if (dhcp->state == DHCP_REQUESTING) {
 
-  802f770:	2a01      	cmp	r2, #1
 
-  802f772:	d106      	bne.n	802f782 <dhcp_fine_tmr+0x3e>
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_timeout(): REQUESTING, DHCP request timed out\n"));
 
-     if (dhcp->tries <= 5) {
 
-  802f774:	7b5b      	ldrb	r3, [r3, #13]
 
-  802f776:	2b05      	cmp	r3, #5
 
-       dhcp_select(netif);
 
-  802f778:	4620      	mov	r0, r4
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_timeout(): restarting discovery\n"));
 
-     dhcp_discover(netif);
 
-   /* receiving the requested lease timed out */
 
-   } else if (dhcp->state == DHCP_REQUESTING) {
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_timeout(): REQUESTING, DHCP request timed out\n"));
 
-     if (dhcp->tries <= 5) {
 
-  802f77a:	d81d      	bhi.n	802f7b8 <dhcp_fine_tmr+0x74>
 
-       dhcp_select(netif);
 
-  802f77c:	f7ff fc14 	bl	802efa8 <dhcp_select>
 
-  802f780:	e029      	b.n	802f7d6 <dhcp_fine_tmr+0x92>
 
-       dhcp_release(netif);
 
-       dhcp_discover(netif);
 
-     }
 
- #if DHCP_DOES_ARP_CHECK
 
-   /* received no ARP reply for the offered address (which is good) */
 
-   } else if (dhcp->state == DHCP_CHECKING) {
 
-  802f782:	2a08      	cmp	r2, #8
 
-  802f784:	d109      	bne.n	802f79a <dhcp_fine_tmr+0x56>
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_timeout(): CHECKING, ARP request timed out\n"));
 
-     if (dhcp->tries <= 1) {
 
-  802f786:	7b5b      	ldrb	r3, [r3, #13]
 
-  802f788:	2b01      	cmp	r3, #1
 
-       dhcp_check(netif);
 
-  802f78a:	4620      	mov	r0, r4
 
-     }
 
- #if DHCP_DOES_ARP_CHECK
 
-   /* received no ARP reply for the offered address (which is good) */
 
-   } else if (dhcp->state == DHCP_CHECKING) {
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_timeout(): CHECKING, ARP request timed out\n"));
 
-     if (dhcp->tries <= 1) {
 
-  802f78c:	d802      	bhi.n	802f794 <dhcp_fine_tmr+0x50>
 
-       dhcp_check(netif);
 
-  802f78e:	f7ff fc7d 	bl	802f08c <dhcp_check>
 
-  802f792:	e020      	b.n	802f7d6 <dhcp_fine_tmr+0x92>
 
-     /* no ARP replies on the offered address,
 
-        looks like the IP address is indeed free */
 
-     } else {
 
-       /* bind the interface to the offered address */
 
-       dhcp_bind(netif);
 
-  802f794:	f7ff fc8d 	bl	802f0b2 <dhcp_bind>
 
-  802f798:	e01d      	b.n	802f7d6 <dhcp_fine_tmr+0x92>
 
-     }
 
- #endif /* DHCP_DOES_ARP_CHECK */
 
-   }
 
-   /* did not get response to renew request? */
 
-   else if (dhcp->state == DHCP_RENEWING) {
 
-  802f79a:	2a05      	cmp	r2, #5
 
-  802f79c:	d103      	bne.n	802f7a6 <dhcp_fine_tmr+0x62>
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_timeout(): RENEWING, DHCP request timed out\n"));
 
-     /* just retry renewal */
 
-     /* note that the rebind timer will eventually time-out if renew does not work */
 
-     dhcp_renew(netif);
 
-  802f79e:	4620      	mov	r0, r4
 
-  802f7a0:	f7ff ff0c 	bl	802f5bc <dhcp_renew>
 
-  802f7a4:	e017      	b.n	802f7d6 <dhcp_fine_tmr+0x92>
 
-   /* did not get response to rebind request? */
 
-   } else if (dhcp->state == DHCP_REBINDING) {
 
-  802f7a6:	2a04      	cmp	r2, #4
 
-  802f7a8:	d10a      	bne.n	802f7c0 <dhcp_fine_tmr+0x7c>
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_timeout(): REBINDING, DHCP request timed out\n"));
 
-     if (dhcp->tries <= 8) {
 
-  802f7aa:	7b5b      	ldrb	r3, [r3, #13]
 
-  802f7ac:	2b08      	cmp	r3, #8
 
-       dhcp_rebind(netif);
 
-  802f7ae:	4620      	mov	r0, r4
 
-     /* note that the rebind timer will eventually time-out if renew does not work */
 
-     dhcp_renew(netif);
 
-   /* did not get response to rebind request? */
 
-   } else if (dhcp->state == DHCP_REBINDING) {
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_timeout(): REBINDING, DHCP request timed out\n"));
 
-     if (dhcp->tries <= 8) {
 
-  802f7b0:	d802      	bhi.n	802f7b8 <dhcp_fine_tmr+0x74>
 
-       dhcp_rebind(netif);
 
-  802f7b2:	f7ff fb67 	bl	802ee84 <dhcp_rebind>
 
-  802f7b6:	e00e      	b.n	802f7d6 <dhcp_fine_tmr+0x92>
 
-     } else {
 
-       LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_timeout(): RELEASING, DISCOVERING\n"));
 
-       dhcp_release(netif);
 
-  802f7b8:	f7ff ff72 	bl	802f6a0 <dhcp_release>
 
-       dhcp_discover(netif);
 
-  802f7bc:	4620      	mov	r0, r4
 
-  802f7be:	e008      	b.n	802f7d2 <dhcp_fine_tmr+0x8e>
 
-     }
 
-   } else if (dhcp->state == DHCP_REBOOTING) {
 
-  802f7c0:	2a03      	cmp	r2, #3
 
-  802f7c2:	d108      	bne.n	802f7d6 <dhcp_fine_tmr+0x92>
 
-     if (dhcp->tries < REBOOT_TRIES) {
 
-  802f7c4:	7b5b      	ldrb	r3, [r3, #13]
 
-  802f7c6:	2b01      	cmp	r3, #1
 
-       dhcp_reboot(netif);
 
-  802f7c8:	4620      	mov	r0, r4
 
-       LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_timeout(): RELEASING, DISCOVERING\n"));
 
-       dhcp_release(netif);
 
-       dhcp_discover(netif);
 
-     }
 
-   } else if (dhcp->state == DHCP_REBOOTING) {
 
-     if (dhcp->tries < REBOOT_TRIES) {
 
-  802f7ca:	d802      	bhi.n	802f7d2 <dhcp_fine_tmr+0x8e>
 
-       dhcp_reboot(netif);
 
-  802f7cc:	f7ff fb9c 	bl	802ef08 <dhcp_reboot>
 
-  802f7d0:	e001      	b.n	802f7d6 <dhcp_fine_tmr+0x92>
 
-     } else {
 
-       dhcp_discover(netif);
 
-  802f7d2:	f7ff fafb 	bl	802edcc <dhcp_discover>
 
-         /* this client's request timeout triggered */
 
-         dhcp_timeout(netif);
 
-       }
 
-     }
 
-     /* proceed to next network interface */
 
-     netif = netif->next;
 
-  802f7d6:	6824      	ldr	r4, [r4, #0]
 
- void
 
- dhcp_fine_tmr()
 
- {
 
-   struct netif *netif = netif_list;
 
-   /* loop through netif's */
 
-   while (netif != NULL) {
 
-  802f7d8:	2c00      	cmp	r4, #0
 
-  802f7da:	d1b8      	bne.n	802f74e <dhcp_fine_tmr+0xa>
 
-       }
 
-     }
 
-     /* proceed to next network interface */
 
-     netif = netif->next;
 
-   }
 
- }
 
-  802f7dc:	bd38      	pop	{r3, r4, r5, pc}
 
-  802f7de:	bf00      	nop
 
-  802f7e0:	2000f6b0 	.word	0x2000f6b0
 
- 0802f7e4 <dhcp_stop>:
 
-  *
 
-  * @param netif The network interface to stop DHCP on
 
-  */
 
- void
 
- dhcp_stop(struct netif *netif)
 
- {
 
-  802f7e4:	b510      	push	{r4, lr}
 
-   struct dhcp *dhcp;
 
-   LWIP_ERROR("dhcp_stop: netif != NULL", (netif != NULL), return;);
 
-  802f7e6:	b198      	cbz	r0, 802f810 <dhcp_stop+0x2c>
 
-   dhcp = netif->dhcp;
 
-   /* Remove the flag that says this netif is handled by DHCP. */
 
-   netif->flags &= ~NETIF_FLAG_DHCP;
 
-  802f7e8:	f890 302d 	ldrb.w	r3, [r0, #45]	; 0x2d
 
- void
 
- dhcp_stop(struct netif *netif)
 
- {
 
-   struct dhcp *dhcp;
 
-   LWIP_ERROR("dhcp_stop: netif != NULL", (netif != NULL), return;);
 
-   dhcp = netif->dhcp;
 
-  802f7ec:	6a04      	ldr	r4, [r0, #32]
 
-   /* Remove the flag that says this netif is handled by DHCP. */
 
-   netif->flags &= ~NETIF_FLAG_DHCP;
 
-  802f7ee:	f023 0308 	bic.w	r3, r3, #8
 
-  802f7f2:	f880 302d 	strb.w	r3, [r0, #45]	; 0x2d
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_stop()\n"));
 
-   /* netif is DHCP configured? */
 
-   if (dhcp != NULL) {
 
-  802f7f6:	b15c      	cbz	r4, 802f810 <dhcp_stop+0x2c>
 
-       autoip_stop(netif);
 
-       dhcp->autoip_coop_state = DHCP_AUTOIP_COOP_STATE_OFF;
 
-     }
 
- #endif /* LWIP_DHCP_AUTOIP_COOP */
 
-     if (dhcp->pcb != NULL) {
 
-  802f7f8:	6860      	ldr	r0, [r4, #4]
 
-  802f7fa:	b118      	cbz	r0, 802f804 <dhcp_stop+0x20>
 
-       udp_remove(dhcp->pcb);
 
-  802f7fc:	f003 f974 	bl	8032ae8 <udp_remove>
 
-       dhcp->pcb = NULL;
 
-  802f800:	2300      	movs	r3, #0
 
-  802f802:	6063      	str	r3, [r4, #4]
 
-     }
 
-     LWIP_ASSERT("reply wasn't freed", dhcp->msg_in == NULL);
 
-     dhcp_set_state(dhcp, DHCP_OFF);
 
-  802f804:	4620      	mov	r0, r4
 
-  802f806:	2100      	movs	r1, #0
 
-   }
 
- }
 
-  802f808:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
-     if (dhcp->pcb != NULL) {
 
-       udp_remove(dhcp->pcb);
 
-       dhcp->pcb = NULL;
 
-     }
 
-     LWIP_ASSERT("reply wasn't freed", dhcp->msg_in == NULL);
 
-     dhcp_set_state(dhcp, DHCP_OFF);
 
-  802f80c:	f7ff b9ce 	b.w	802ebac <dhcp_set_state>
 
-  802f810:	bd10      	pop	{r4, pc}
 
-  802f812:	0000      	movs	r0, r0
 
- 0802f814 <dhcp_start>:
 
-  * - ERR_OK - No error
 
-  * - ERR_MEM - Out of memory
 
-  */
 
- err_t
 
- dhcp_start(struct netif *netif)
 
- {
 
-  802f814:	b538      	push	{r3, r4, r5, lr}
 
-   struct dhcp *dhcp;
 
-   err_t result = ERR_OK;
 
-   LWIP_ERROR("netif != NULL", (netif != NULL), return ERR_ARG;);
 
-  802f816:	4604      	mov	r4, r0
 
-  802f818:	b908      	cbnz	r0, 802f81e <dhcp_start+0xa>
 
-  802f81a:	20f2      	movs	r0, #242	; 0xf2
 
-  802f81c:	e047      	b.n	802f8ae <dhcp_start+0x9a>
 
-   dhcp = netif->dhcp;
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_start(netif=%p) %c%c%"U16_F"\n", (void*)netif, netif->name[0], netif->name[1], (u16_t)netif->num));
 
-   /* Remove the flag that says this netif is handled by DHCP,
 
-      it is set when we succeeded starting. */
 
-   netif->flags &= ~NETIF_FLAG_DHCP;
 
-  802f81e:	f890 302d 	ldrb.w	r3, [r0, #45]	; 0x2d
 
- {
 
-   struct dhcp *dhcp;
 
-   err_t result = ERR_OK;
 
-   LWIP_ERROR("netif != NULL", (netif != NULL), return ERR_ARG;);
 
-   dhcp = netif->dhcp;
 
-  802f822:	6a05      	ldr	r5, [r0, #32]
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_start(netif=%p) %c%c%"U16_F"\n", (void*)netif, netif->name[0], netif->name[1], (u16_t)netif->num));
 
-   /* Remove the flag that says this netif is handled by DHCP,
 
-      it is set when we succeeded starting. */
 
-   netif->flags &= ~NETIF_FLAG_DHCP;
 
-  802f824:	f023 0208 	bic.w	r2, r3, #8
 
-   /* check hwtype of the netif */
 
-   if ((netif->flags & NETIF_FLAG_ETHARP) == 0) {
 
-  802f828:	f003 0320 	and.w	r3, r3, #32
 
-  802f82c:	b2db      	uxtb	r3, r3
 
-   LWIP_ERROR("netif != NULL", (netif != NULL), return ERR_ARG;);
 
-   dhcp = netif->dhcp;
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_start(netif=%p) %c%c%"U16_F"\n", (void*)netif, netif->name[0], netif->name[1], (u16_t)netif->num));
 
-   /* Remove the flag that says this netif is handled by DHCP,
 
-      it is set when we succeeded starting. */
 
-   netif->flags &= ~NETIF_FLAG_DHCP;
 
-  802f82e:	f880 202d 	strb.w	r2, [r0, #45]	; 0x2d
 
-   /* check hwtype of the netif */
 
-   if ((netif->flags & NETIF_FLAG_ETHARP) == 0) {
 
-  802f832:	2b00      	cmp	r3, #0
 
-  802f834:	d0f1      	beq.n	802f81a <dhcp_start+0x6>
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_start(): No ETHARP netif\n"));
 
-     return ERR_ARG;
 
-   }
 
-   /* check MTU of the netif */
 
-   if (netif->mtu < DHCP_MAX_MSG_LEN_MIN_REQUIRED) {
 
-  802f836:	8c83      	ldrh	r3, [r0, #36]	; 0x24
 
-  802f838:	f5b3 7f10 	cmp.w	r3, #576	; 0x240
 
-  802f83c:	d200      	bcs.n	802f840 <dhcp_start+0x2c>
 
-  802f83e:	e02e      	b.n	802f89e <dhcp_start+0x8a>
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_start(): Cannot use this netif with DHCP: MTU is too small\n"));
 
-     return ERR_MEM;
 
-   }
 
-   /* no DHCP client attached yet? */
 
-   if (dhcp == NULL) {
 
-  802f840:	b935      	cbnz	r5, 802f850 <dhcp_start+0x3c>
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_start(): starting new DHCP client\n"));
 
-     dhcp = (struct dhcp *)mem_malloc(sizeof(struct dhcp));
 
-  802f842:	203c      	movs	r0, #60	; 0x3c
 
-  802f844:	f000 f938 	bl	802fab8 <mem_malloc>
 
-     if (dhcp == NULL) {
 
-  802f848:	4605      	mov	r5, r0
 
-  802f84a:	b340      	cbz	r0, 802f89e <dhcp_start+0x8a>
 
-       LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_start(): could not allocate dhcp\n"));
 
-       return ERR_MEM;
 
-     }
 
-     /* store this dhcp client in the netif */
 
-     netif->dhcp = dhcp;
 
-  802f84c:	6220      	str	r0, [r4, #32]
 
-  802f84e:	e003      	b.n	802f858 <dhcp_start+0x44>
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_start(): allocated dhcp"));
 
-   /* already has DHCP client attached */
 
-   } else {
 
-     LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_start(): restarting DHCP configuration\n"));
 
-     if (dhcp->pcb != NULL) {
 
-  802f850:	6868      	ldr	r0, [r5, #4]
 
-  802f852:	b108      	cbz	r0, 802f858 <dhcp_start+0x44>
 
-       udp_remove(dhcp->pcb);
 
-  802f854:	f003 f948 	bl	8032ae8 <udp_remove>
 
-     LWIP_ASSERT("pbuf p_out wasn't freed", dhcp->p_out == NULL);
 
-     LWIP_ASSERT("reply wasn't freed", dhcp->msg_in == NULL );
 
-   }
 
-     
 
-   /* clear data structure */
 
-   memset(dhcp, 0, sizeof(struct dhcp));
 
-  802f858:	2100      	movs	r1, #0
 
-  802f85a:	223c      	movs	r2, #60	; 0x3c
 
-  802f85c:	4628      	mov	r0, r5
 
-  802f85e:	f7f2 f94f 	bl	8021b00 <memset>
 
-   /* dhcp_set_state(&dhcp, DHCP_OFF); */
 
-   /* allocate UDP PCB */
 
-   dhcp->pcb = udp_new();
 
-  802f862:	f003 f95d 	bl	8032b20 <udp_new>
 
-  802f866:	6068      	str	r0, [r5, #4]
 
-   if (dhcp->pcb == NULL) {
 
-  802f868:	b1c8      	cbz	r0, 802f89e <dhcp_start+0x8a>
 
-     LWIP_DEBUGF(DHCP_DEBUG  | LWIP_DBG_TRACE, ("dhcp_start(): could not obtain pcb\n"));
 
-     return ERR_MEM;
 
-   }
 
-   ip_set_option(dhcp->pcb, SOF_BROADCAST);
 
-  802f86a:	7a03      	ldrb	r3, [r0, #8]
 
-   /* set up local and remote port for the pcb */
 
-   udp_bind(dhcp->pcb, IP_ADDR_ANY, DHCP_CLIENT_PORT);
 
-  802f86c:	4911      	ldr	r1, [pc, #68]	; (802f8b4 <dhcp_start+0xa0>)
 
-   dhcp->pcb = udp_new();
 
-   if (dhcp->pcb == NULL) {
 
-     LWIP_DEBUGF(DHCP_DEBUG  | LWIP_DBG_TRACE, ("dhcp_start(): could not obtain pcb\n"));
 
-     return ERR_MEM;
 
-   }
 
-   ip_set_option(dhcp->pcb, SOF_BROADCAST);
 
-  802f86e:	f043 0320 	orr.w	r3, r3, #32
 
-  802f872:	7203      	strb	r3, [r0, #8]
 
-   /* set up local and remote port for the pcb */
 
-   udp_bind(dhcp->pcb, IP_ADDR_ANY, DHCP_CLIENT_PORT);
 
-  802f874:	2244      	movs	r2, #68	; 0x44
 
-  802f876:	6868      	ldr	r0, [r5, #4]
 
-  802f878:	f003 f83a 	bl	80328f0 <udp_bind>
 
-   udp_connect(dhcp->pcb, IP_ADDR_ANY, DHCP_SERVER_PORT);
 
-  802f87c:	490d      	ldr	r1, [pc, #52]	; (802f8b4 <dhcp_start+0xa0>)
 
-  802f87e:	6868      	ldr	r0, [r5, #4]
 
-  802f880:	2243      	movs	r2, #67	; 0x43
 
-  802f882:	f003 f8ff 	bl	8032a84 <udp_connect>
 
-   /* set up the recv callback and argument */
 
-   udp_recv(dhcp->pcb, dhcp_recv, netif);
 
-  802f886:	6868      	ldr	r0, [r5, #4]
 
-  802f888:	490b      	ldr	r1, [pc, #44]	; (802f8b8 <dhcp_start+0xa4>)
 
-  802f88a:	4622      	mov	r2, r4
 
-  802f88c:	f003 f928 	bl	8032ae0 <udp_recv>
 
-   LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_start(): starting DHCP configuration\n"));
 
-   /* (re)start the DHCP negotiation */
 
-   result = dhcp_discover(netif);
 
-  802f890:	4620      	mov	r0, r4
 
-  802f892:	f7ff fa9b 	bl	802edcc <dhcp_discover>
 
-   if (result != ERR_OK) {
 
-  802f896:	b120      	cbz	r0, 802f8a2 <dhcp_start+0x8e>
 
-     /* free resources allocated above */
 
-     dhcp_stop(netif);
 
-  802f898:	4620      	mov	r0, r4
 
-  802f89a:	f7ff ffa3 	bl	802f7e4 <dhcp_stop>
 
-     return ERR_MEM;
 
-  802f89e:	20ff      	movs	r0, #255	; 0xff
 
-  802f8a0:	e005      	b.n	802f8ae <dhcp_start+0x9a>
 
-   }
 
-   /* Set the flag that says this netif is handled by DHCP. */
 
-   netif->flags |= NETIF_FLAG_DHCP;
 
-  802f8a2:	f894 302d 	ldrb.w	r3, [r4, #45]	; 0x2d
 
-  802f8a6:	f043 0308 	orr.w	r3, r3, #8
 
-  802f8aa:	f884 302d 	strb.w	r3, [r4, #45]	; 0x2d
 
-   return result;
 
- }
 
-  802f8ae:	b240      	sxtb	r0, r0
 
-  802f8b0:	bd38      	pop	{r3, r4, r5, pc}
 
-  802f8b2:	bf00      	nop
 
-  802f8b4:	08045008 	.word	0x08045008
 
-  802f8b8:	0802f171 	.word	0x0802f171
 
- 0802f8bc <lwip_init>:
 
- /**
 
-  * Perform Sanity check of user-configurable values, and initialize all modules.
 
-  */
 
- void
 
- lwip_init(void)
 
- {
 
-  802f8bc:	b508      	push	{r3, lr}
 
-   /* Modules initialization */
 
-   stats_init();
 
- #if !NO_SYS
 
-   sys_init();
 
-  802f8be:	f008 f8e8 	bl	8037a92 <sys_init>
 
- #endif /* !NO_SYS */
 
-   mem_init();
 
-  802f8c2:	f000 f80f 	bl	802f8e4 <mem_init>
 
-   memp_init();
 
-  802f8c6:	f000 f95b 	bl	802fb80 <memp_init>
 
-   pbuf_init();
 
-   netif_init();
 
-  802f8ca:	f000 f9a9 	bl	802fc20 <netif_init>
 
- #endif /* LWIP_ARP */
 
- #if LWIP_RAW
 
-   raw_init();
 
- #endif /* LWIP_RAW */
 
- #if LWIP_UDP
 
-   udp_init();
 
-  802f8ce:	f002 ff49 	bl	8032764 <udp_init>
 
- #endif /* LWIP_UDP */
 
- #if LWIP_TCP
 
-   tcp_init();
 
-  802f8d2:	f000 fd0d 	bl	80302f0 <tcp_init>
 
- #endif /* LWIP_TCP */
 
- #if LWIP_SNMP
 
-   snmp_init();
 
-  802f8d6:	f005 ff0b 	bl	80356f0 <snmp_init>
 
- #endif /* LWIP_DNS */
 
- #if LWIP_TIMERS
 
-   sys_timeouts_init();
 
- #endif /* LWIP_TIMERS */
 
- }
 
-  802f8da:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
 
- #if LWIP_DNS
 
-   dns_init();
 
- #endif /* LWIP_DNS */
 
- #if LWIP_TIMERS
 
-   sys_timeouts_init();
 
-  802f8de:	f002 be6b 	b.w	80325b8 <sys_timeouts_init>
 
-  802f8e2:	0000      	movs	r0, r0
 
- 0802f8e4 <mem_init>:
 
-   LWIP_ASSERT("Sanity check alignment",
 
-     (SIZEOF_STRUCT_MEM & (MEM_ALIGNMENT-1)) == 0);
 
-   /* align the heap */
 
-   ram = (u8_t *)LWIP_MEM_ALIGN(LWIP_RAM_HEAP_POINTER);
 
-  802f8e4:	4b0b      	ldr	r3, [pc, #44]	; (802f914 <mem_init+0x30>)
 
-  802f8e6:	4a0c      	ldr	r2, [pc, #48]	; (802f918 <mem_init+0x34>)
 
-   mem = (struct mem *)(void *)ram;
 
-   mem->next = MEM_SIZE_ALIGNED;
 
-   mem->prev = 0;
 
-   mem->used = 0;
 
-   /* initialize the end of the heap */
 
-   ram_end = (struct mem *)(void *)&ram[MEM_SIZE_ALIGNED];
 
-  802f8e8:	480c      	ldr	r0, [pc, #48]	; (802f91c <mem_init+0x38>)
 
-   LWIP_ASSERT("Sanity check alignment",
 
-     (SIZEOF_STRUCT_MEM & (MEM_ALIGNMENT-1)) == 0);
 
-   /* align the heap */
 
-   ram = (u8_t *)LWIP_MEM_ALIGN(LWIP_RAM_HEAP_POINTER);
 
-  802f8ea:	f023 0303 	bic.w	r3, r3, #3
 
-  802f8ee:	6013      	str	r3, [r2, #0]
 
-   /* initialize the start of the heap */
 
-   mem = (struct mem *)(void *)ram;
 
-   mem->next = MEM_SIZE_ALIGNED;
 
-  802f8f0:	f44f 51a0 	mov.w	r1, #5120	; 0x1400
 
-   mem->prev = 0;
 
-  802f8f4:	2200      	movs	r2, #0
 
-  802f8f6:	805a      	strh	r2, [r3, #2]
 
-   mem->used = 0;
 
-  802f8f8:	711a      	strb	r2, [r3, #4]
 
-   /* initialize the end of the heap */
 
-   ram_end = (struct mem *)(void *)&ram[MEM_SIZE_ALIGNED];
 
-  802f8fa:	185a      	adds	r2, r3, r1
 
-  802f8fc:	6002      	str	r2, [r0, #0]
 
-   ram_end->used = 1;
 
-  802f8fe:	2001      	movs	r0, #1
 
-  802f900:	7110      	strb	r0, [r2, #4]
 
-   ram_end->next = MEM_SIZE_ALIGNED;
 
-   ram_end->prev = MEM_SIZE_ALIGNED;
 
-  802f902:	8051      	strh	r1, [r2, #2]
 
-   /* align the heap */
 
-   ram = (u8_t *)LWIP_MEM_ALIGN(LWIP_RAM_HEAP_POINTER);
 
-   /* initialize the start of the heap */
 
-   mem = (struct mem *)(void *)ram;
 
-   mem->next = MEM_SIZE_ALIGNED;
 
-  802f904:	8019      	strh	r1, [r3, #0]
 
-   /* initialize the lowest-free pointer to the start of the heap */
 
-   lfree = (struct mem *)(void *)ram;
 
-   MEM_STATS_AVAIL(avail, MEM_SIZE_ALIGNED);
 
-   if(sys_mutex_new(&mem_mutex) != ERR_OK) {
 
-  802f906:	4806      	ldr	r0, [pc, #24]	; (802f920 <mem_init+0x3c>)
 
-   mem->prev = 0;
 
-   mem->used = 0;
 
-   /* initialize the end of the heap */
 
-   ram_end = (struct mem *)(void *)&ram[MEM_SIZE_ALIGNED];
 
-   ram_end->used = 1;
 
-   ram_end->next = MEM_SIZE_ALIGNED;
 
-  802f908:	8011      	strh	r1, [r2, #0]
 
-   ram_end->prev = MEM_SIZE_ALIGNED;
 
-   /* initialize the lowest-free pointer to the start of the heap */
 
-   lfree = (struct mem *)(void *)ram;
 
-  802f90a:	4a06      	ldr	r2, [pc, #24]	; (802f924 <mem_init+0x40>)
 
-  802f90c:	6013      	str	r3, [r2, #0]
 
-   MEM_STATS_AVAIL(avail, MEM_SIZE_ALIGNED);
 
-   if(sys_mutex_new(&mem_mutex) != ERR_OK) {
 
-  802f90e:	f008 b88d 	b.w	8037a2c <sys_mutex_new>
 
-  802f912:	bf00      	nop
 
-  802f914:	2000e29f 	.word	0x2000e29f
 
-  802f918:	20000d50 	.word	0x20000d50
 
-  802f91c:	20000d48 	.word	0x20000d48
 
-  802f920:	20000d4c 	.word	0x20000d4c
 
-  802f924:	20000d44 	.word	0x20000d44
 
- 0802f928 <mem_free>:
 
-  * @param rmem is the data portion of a struct mem as returned by a previous
 
-  *             call to mem_malloc()
 
-  */
 
- void
 
- mem_free(void *rmem)
 
- {
 
-  802f928:	b570      	push	{r4, r5, r6, lr}
 
-   struct mem *mem;
 
-   LWIP_MEM_FREE_DECL_PROTECT();
 
-   if (rmem == NULL) {
 
-  802f92a:	4604      	mov	r4, r0
 
-  802f92c:	2800      	cmp	r0, #0
 
-  802f92e:	d04c      	beq.n	802f9ca <mem_free+0xa2>
 
-   LWIP_ASSERT("mem_free: sanity check alignment", (((mem_ptr_t)rmem) & (MEM_ALIGNMENT-1)) == 0);
 
-   LWIP_ASSERT("mem_free: legal memory", (u8_t *)rmem >= (u8_t *)ram &&
 
-     (u8_t *)rmem < (u8_t *)ram_end);
 
-   if ((u8_t *)rmem < (u8_t *)ram || (u8_t *)rmem >= (u8_t *)ram_end) {
 
-  802f930:	4b26      	ldr	r3, [pc, #152]	; (802f9cc <mem_free+0xa4>)
 
-  802f932:	681b      	ldr	r3, [r3, #0]
 
-  802f934:	4298      	cmp	r0, r3
 
-  802f936:	d303      	bcc.n	802f940 <mem_free+0x18>
 
-  802f938:	4b25      	ldr	r3, [pc, #148]	; (802f9d0 <mem_free+0xa8>)
 
-  802f93a:	681b      	ldr	r3, [r3, #0]
 
-  802f93c:	4298      	cmp	r0, r3
 
-  802f93e:	d305      	bcc.n	802f94c <mem_free+0x24>
 
-     SYS_ARCH_DECL_PROTECT(lev);
 
-     LWIP_DEBUGF(MEM_DEBUG | LWIP_DBG_LEVEL_SEVERE, ("mem_free: illegal memory\n"));
 
-     /* protect mem stats from concurrent access */
 
-     SYS_ARCH_PROTECT(lev);
 
-  802f940:	f008 f8c2 	bl	8037ac8 <sys_arch_protect>
 
-   plug_holes(mem);
 
- #if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT
 
-   mem_free_count = 1;
 
- #endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */
 
-   LWIP_MEM_FREE_UNPROTECT();
 
- }
 
-  802f944:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
 
-     SYS_ARCH_DECL_PROTECT(lev);
 
-     LWIP_DEBUGF(MEM_DEBUG | LWIP_DBG_LEVEL_SEVERE, ("mem_free: illegal memory\n"));
 
-     /* protect mem stats from concurrent access */
 
-     SYS_ARCH_PROTECT(lev);
 
-     MEM_STATS_INC(illegal);
 
-     SYS_ARCH_UNPROTECT(lev);
 
-  802f948:	f008 b8c8 	b.w	8037adc <sys_arch_unprotect>
 
-     return;
 
-   }
 
-   /* protect the heap from concurrent access */
 
-   LWIP_MEM_FREE_PROTECT();
 
-  802f94c:	4821      	ldr	r0, [pc, #132]	; (802f9d4 <mem_free+0xac>)
 
-  802f94e:	f008 f879 	bl	8037a44 <sys_mutex_lock>
 
-   /* Get the corresponding struct mem ... */
 
-   mem = (struct mem *)(void *)((u8_t *)rmem - SIZEOF_STRUCT_MEM);
 
-   /* ... which has to be in a used state ... */
 
-   LWIP_ASSERT("mem_free: mem->used", mem->used);
 
-   /* ... and is now unused. */
 
-   mem->used = 0;
 
-  802f952:	2300      	movs	r3, #0
 
-  802f954:	f804 3c04 	strb.w	r3, [r4, #-4]
 
-   if (mem < lfree) {
 
-  802f958:	4b1f      	ldr	r3, [pc, #124]	; (802f9d8 <mem_free+0xb0>)
 
-   LWIP_ASSERT("plug_holes: mem->used == 0", mem->used == 0);
 
-   /* plug hole forward */
 
-   LWIP_ASSERT("plug_holes: mem->next <= MEM_SIZE_ALIGNED", mem->next <= MEM_SIZE_ALIGNED);
 
-   nmem = (struct mem *)(void *)&ram[mem->next];
 
-  802f95a:	f834 0c08 	ldrh.w	r0, [r4, #-8]
 
-   /* ... which has to be in a used state ... */
 
-   LWIP_ASSERT("mem_free: mem->used", mem->used);
 
-   /* ... and is now unused. */
 
-   mem->used = 0;
 
-   if (mem < lfree) {
 
-  802f95e:	6819      	ldr	r1, [r3, #0]
 
-     return;
 
-   }
 
-   /* protect the heap from concurrent access */
 
-   LWIP_MEM_FREE_PROTECT();
 
-   /* Get the corresponding struct mem ... */
 
-   mem = (struct mem *)(void *)((u8_t *)rmem - SIZEOF_STRUCT_MEM);
 
-  802f960:	f1a4 0208 	sub.w	r2, r4, #8
 
-   /* ... which has to be in a used state ... */
 
-   LWIP_ASSERT("mem_free: mem->used", mem->used);
 
-   /* ... and is now unused. */
 
-   mem->used = 0;
 
-   if (mem < lfree) {
 
-  802f964:	428a      	cmp	r2, r1
 
-     /* the newly freed struct is now the lowest */
 
-     lfree = mem;
 
-  802f966:	bf38      	it	cc
 
-  802f968:	601a      	strcc	r2, [r3, #0]
 
-   LWIP_ASSERT("plug_holes: mem->used == 0", mem->used == 0);
 
-   /* plug hole forward */
 
-   LWIP_ASSERT("plug_holes: mem->next <= MEM_SIZE_ALIGNED", mem->next <= MEM_SIZE_ALIGNED);
 
-   nmem = (struct mem *)(void *)&ram[mem->next];
 
-  802f96a:	4b18      	ldr	r3, [pc, #96]	; (802f9cc <mem_free+0xa4>)
 
-  802f96c:	681b      	ldr	r3, [r3, #0]
 
-  802f96e:	1819      	adds	r1, r3, r0
 
-   if (mem != nmem && nmem->used == 0 && (u8_t *)nmem != (u8_t *)ram_end) {
 
-  802f970:	428a      	cmp	r2, r1
 
-  802f972:	d011      	beq.n	802f998 <mem_free+0x70>
 
-  802f974:	790d      	ldrb	r5, [r1, #4]
 
-  802f976:	b97d      	cbnz	r5, 802f998 <mem_free+0x70>
 
-  802f978:	4d15      	ldr	r5, [pc, #84]	; (802f9d0 <mem_free+0xa8>)
 
-  802f97a:	682d      	ldr	r5, [r5, #0]
 
-  802f97c:	42a9      	cmp	r1, r5
 
-  802f97e:	d00b      	beq.n	802f998 <mem_free+0x70>
 
-     /* if mem->next is unused and not end of ram, combine mem and mem->next */
 
-     if (lfree == nmem) {
 
-  802f980:	4d15      	ldr	r5, [pc, #84]	; (802f9d8 <mem_free+0xb0>)
 
-  802f982:	682e      	ldr	r6, [r5, #0]
 
-  802f984:	428e      	cmp	r6, r1
 
-       lfree = mem;
 
-     }
 
-     mem->next = nmem->next;
 
-  802f986:	5a19      	ldrh	r1, [r3, r0]
 
-   nmem = (struct mem *)(void *)&ram[mem->next];
 
-   if (mem != nmem && nmem->used == 0 && (u8_t *)nmem != (u8_t *)ram_end) {
 
-     /* if mem->next is unused and not end of ram, combine mem and mem->next */
 
-     if (lfree == nmem) {
 
-       lfree = mem;
 
-  802f988:	bf08      	it	eq
 
-  802f98a:	602a      	streq	r2, [r5, #0]
 
-     }
 
-     mem->next = nmem->next;
 
-  802f98c:	f824 1c08 	strh.w	r1, [r4, #-8]
 
-     ((struct mem *)(void *)&ram[nmem->next])->prev = (mem_size_t)((u8_t *)mem - ram);
 
-  802f990:	5a19      	ldrh	r1, [r3, r0]
 
-  802f992:	1859      	adds	r1, r3, r1
 
-  802f994:	1ad0      	subs	r0, r2, r3
 
-  802f996:	8048      	strh	r0, [r1, #2]
 
-   }
 
-   /* plug hole backward */
 
-   pmem = (struct mem *)(void *)&ram[mem->prev];
 
-  802f998:	f834 0c06 	ldrh.w	r0, [r4, #-6]
 
-  802f99c:	1819      	adds	r1, r3, r0
 
-   if (pmem != mem && pmem->used == 0) {
 
-  802f99e:	4291      	cmp	r1, r2
 
-  802f9a0:	d00e      	beq.n	802f9c0 <mem_free+0x98>
 
-  802f9a2:	790d      	ldrb	r5, [r1, #4]
 
-  802f9a4:	b965      	cbnz	r5, 802f9c0 <mem_free+0x98>
 
-     /* if mem->prev is unused, combine mem and mem->prev */
 
-     if (lfree == mem) {
 
-  802f9a6:	4d0c      	ldr	r5, [pc, #48]	; (802f9d8 <mem_free+0xb0>)
 
-  802f9a8:	682e      	ldr	r6, [r5, #0]
 
-  802f9aa:	4296      	cmp	r6, r2
 
-       lfree = pmem;
 
-     }
 
-     pmem->next = mem->next;
 
-  802f9ac:	f834 2c08 	ldrh.w	r2, [r4, #-8]
 
-   /* plug hole backward */
 
-   pmem = (struct mem *)(void *)&ram[mem->prev];
 
-   if (pmem != mem && pmem->used == 0) {
 
-     /* if mem->prev is unused, combine mem and mem->prev */
 
-     if (lfree == mem) {
 
-       lfree = pmem;
 
-  802f9b0:	bf08      	it	eq
 
-  802f9b2:	6029      	streq	r1, [r5, #0]
 
-     }
 
-     pmem->next = mem->next;
 
-  802f9b4:	521a      	strh	r2, [r3, r0]
 
-     ((struct mem *)(void *)&ram[mem->next])->prev = (mem_size_t)((u8_t *)pmem - ram);
 
-  802f9b6:	f834 2c08 	ldrh.w	r2, [r4, #-8]
 
-  802f9ba:	189a      	adds	r2, r3, r2
 
-  802f9bc:	1acb      	subs	r3, r1, r3
 
-  802f9be:	8053      	strh	r3, [r2, #2]
 
-   /* finally, see if prev or next are free also */
 
-   plug_holes(mem);
 
- #if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT
 
-   mem_free_count = 1;
 
- #endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */
 
-   LWIP_MEM_FREE_UNPROTECT();
 
-  802f9c0:	4804      	ldr	r0, [pc, #16]	; (802f9d4 <mem_free+0xac>)
 
- }
 
-  802f9c2:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
 
-   /* finally, see if prev or next are free also */
 
-   plug_holes(mem);
 
- #if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT
 
-   mem_free_count = 1;
 
- #endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */
 
-   LWIP_MEM_FREE_UNPROTECT();
 
-  802f9c6:	f008 b849 	b.w	8037a5c <sys_mutex_unlock>
 
-  802f9ca:	bd70      	pop	{r4, r5, r6, pc}
 
-  802f9cc:	20000d50 	.word	0x20000d50
 
-  802f9d0:	20000d48 	.word	0x20000d48
 
-  802f9d4:	20000d4c 	.word	0x20000d4c
 
-  802f9d8:	20000d44 	.word	0x20000d44
 
- 0802f9dc <mem_trim>:
 
-  *         or NULL if newsize is > old size, in which case rmem is NOT touched
 
-  *         or freed!
 
-  */
 
- void *
 
- mem_trim(void *rmem, mem_size_t newsize)
 
- {
 
-  802f9dc:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
 
-   /* use the FREE_PROTECT here: it protects with sem OR SYS_ARCH_PROTECT */
 
-   LWIP_MEM_FREE_DECL_PROTECT();
 
-   /* Expand the size of the allocated memory region so that we can
 
-      adjust for alignment. */
 
-   newsize = LWIP_MEM_ALIGN_SIZE(newsize);
 
-  802f9e0:	3103      	adds	r1, #3
 
-  802f9e2:	f64f 75fc 	movw	r5, #65532	; 0xfffc
 
-  802f9e6:	400d      	ands	r5, r1
 
-   if(newsize < MIN_SIZE_ALIGNED) {
 
-  802f9e8:	2d0b      	cmp	r5, #11
 
-  *         or NULL if newsize is > old size, in which case rmem is NOT touched
 
-  *         or freed!
 
-  */
 
- void *
 
- mem_trim(void *rmem, mem_size_t newsize)
 
- {
 
-  802f9ea:	4604      	mov	r4, r0
 
-   /* Expand the size of the allocated memory region so that we can
 
-      adjust for alignment. */
 
-   newsize = LWIP_MEM_ALIGN_SIZE(newsize);
 
-   if(newsize < MIN_SIZE_ALIGNED) {
 
-  802f9ec:	d903      	bls.n	802f9f6 <mem_trim+0x1a>
 
-     /* every data block must be at least MIN_SIZE_ALIGNED long */
 
-     newsize = MIN_SIZE_ALIGNED;
 
-   }
 
-   if (newsize > MEM_SIZE_ALIGNED) {
 
-  802f9ee:	f5b5 5fa0 	cmp.w	r5, #5120	; 0x1400
 
-  802f9f2:	d901      	bls.n	802f9f8 <mem_trim+0x1c>
 
-  802f9f4:	e053      	b.n	802fa9e <mem_trim+0xc2>
 
-      adjust for alignment. */
 
-   newsize = LWIP_MEM_ALIGN_SIZE(newsize);
 
-   if(newsize < MIN_SIZE_ALIGNED) {
 
-     /* every data block must be at least MIN_SIZE_ALIGNED long */
 
-     newsize = MIN_SIZE_ALIGNED;
 
-  802f9f6:	250c      	movs	r5, #12
 
-   }
 
-   LWIP_ASSERT("mem_trim: legal memory", (u8_t *)rmem >= (u8_t *)ram &&
 
-    (u8_t *)rmem < (u8_t *)ram_end);
 
-   if ((u8_t *)rmem < (u8_t *)ram || (u8_t *)rmem >= (u8_t *)ram_end) {
 
-  802f9f8:	f8df 80b8 	ldr.w	r8, [pc, #184]	; 802fab4 <mem_trim+0xd8>
 
-  802f9fc:	f8d8 3000 	ldr.w	r3, [r8]
 
-  802fa00:	429c      	cmp	r4, r3
 
-  802fa02:	d303      	bcc.n	802fa0c <mem_trim+0x30>
 
-  802fa04:	4a28      	ldr	r2, [pc, #160]	; (802faa8 <mem_trim+0xcc>)
 
-  802fa06:	6812      	ldr	r2, [r2, #0]
 
-  802fa08:	4294      	cmp	r4, r2
 
-  802fa0a:	d304      	bcc.n	802fa16 <mem_trim+0x3a>
 
-     SYS_ARCH_DECL_PROTECT(lev);
 
-     LWIP_DEBUGF(MEM_DEBUG | LWIP_DBG_LEVEL_SEVERE, ("mem_trim: illegal memory\n"));
 
-     /* protect mem stats from concurrent access */
 
-     SYS_ARCH_PROTECT(lev);
 
-  802fa0c:	f008 f85c 	bl	8037ac8 <sys_arch_protect>
 
-     MEM_STATS_INC(illegal);
 
-     SYS_ARCH_UNPROTECT(lev);
 
-  802fa10:	f008 f864 	bl	8037adc <sys_arch_unprotect>
 
-     return rmem;
 
-  802fa14:	e044      	b.n	802faa0 <mem_trim+0xc4>
 
-   }
 
-   /* Get the corresponding struct mem ... */
 
-   mem = (struct mem *)(void *)((u8_t *)rmem - SIZEOF_STRUCT_MEM);
 
-  802fa16:	f1a4 0608 	sub.w	r6, r4, #8
 
-   /* ... and its offset pointer */
 
-   ptr = (mem_size_t)((u8_t *)mem - ram);
 
-   size = mem->next - ptr - SIZEOF_STRUCT_MEM;
 
-  802fa1a:	f834 7c08 	ldrh.w	r7, [r4, #-8]
 
-     return rmem;
 
-   }
 
-   /* Get the corresponding struct mem ... */
 
-   mem = (struct mem *)(void *)((u8_t *)rmem - SIZEOF_STRUCT_MEM);
 
-   /* ... and its offset pointer */
 
-   ptr = (mem_size_t)((u8_t *)mem - ram);
 
-  802fa1e:	1af6      	subs	r6, r6, r3
 
-   size = mem->next - ptr - SIZEOF_STRUCT_MEM;
 
-  802fa20:	3f08      	subs	r7, #8
 
-     return rmem;
 
-   }
 
-   /* Get the corresponding struct mem ... */
 
-   mem = (struct mem *)(void *)((u8_t *)rmem - SIZEOF_STRUCT_MEM);
 
-   /* ... and its offset pointer */
 
-   ptr = (mem_size_t)((u8_t *)mem - ram);
 
-  802fa22:	b2b6      	uxth	r6, r6
 
-   size = mem->next - ptr - SIZEOF_STRUCT_MEM;
 
-  802fa24:	1bbf      	subs	r7, r7, r6
 
-  802fa26:	b2bf      	uxth	r7, r7
 
-   LWIP_ASSERT("mem_trim can only shrink memory", newsize <= size);
 
-   if (newsize > size) {
 
-  802fa28:	42bd      	cmp	r5, r7
 
-  802fa2a:	d838      	bhi.n	802fa9e <mem_trim+0xc2>
 
-     /* not supported */
 
-     return NULL;
 
-   }
 
-   if (newsize == size) {
 
-  802fa2c:	d038      	beq.n	802faa0 <mem_trim+0xc4>
 
-     /* No change in size, simply return */
 
-     return rmem;
 
-   }
 
-   /* protect the heap from concurrent access */
 
-   LWIP_MEM_FREE_PROTECT();
 
-  802fa2e:	481f      	ldr	r0, [pc, #124]	; (802faac <mem_trim+0xd0>)
 
-  802fa30:	f008 f808 	bl	8037a44 <sys_mutex_lock>
 
-   mem2 = (struct mem *)(void *)&ram[mem->next];
 
-  802fa34:	f8d8 3000 	ldr.w	r3, [r8]
 
-  802fa38:	f834 1c08 	ldrh.w	r1, [r4, #-8]
 
-  802fa3c:	185a      	adds	r2, r3, r1
 
-   if(mem2->used == 0) {
 
-  802fa3e:	7910      	ldrb	r0, [r2, #4]
 
-  802fa40:	b978      	cbnz	r0, 802fa62 <mem_trim+0x86>
 
-     /* The next struct is unused, we can simply move it at little */
 
-     mem_size_t next;
 
-     /* remember the old next pointer */
 
-     next = mem2->next;
 
-  802fa42:	5a5f      	ldrh	r7, [r3, r1]
 
-     /* create new struct mem which is moved directly after the shrinked mem */
 
-     ptr2 = ptr + SIZEOF_STRUCT_MEM + newsize;
 
-  802fa44:	f106 0108 	add.w	r1, r6, #8
 
-  802fa48:	186d      	adds	r5, r5, r1
 
-     if (lfree == mem2) {
 
-  802fa4a:	4919      	ldr	r1, [pc, #100]	; (802fab0 <mem_trim+0xd4>)
 
-  802fa4c:	6808      	ldr	r0, [r1, #0]
 
-     /* The next struct is unused, we can simply move it at little */
 
-     mem_size_t next;
 
-     /* remember the old next pointer */
 
-     next = mem2->next;
 
-     /* create new struct mem which is moved directly after the shrinked mem */
 
-     ptr2 = ptr + SIZEOF_STRUCT_MEM + newsize;
 
-  802fa4e:	b2ad      	uxth	r5, r5
 
-     if (lfree == mem2) {
 
-  802fa50:	4290      	cmp	r0, r2
 
-  802fa52:	eb03 0205 	add.w	r2, r3, r5
 
-       lfree = (struct mem *)(void *)&ram[ptr2];
 
-  802fa56:	bf08      	it	eq
 
-  802fa58:	600a      	streq	r2, [r1, #0]
 
-     }
 
-     mem2 = (struct mem *)(void *)&ram[ptr2];
 
-     mem2->used = 0;
 
-  802fa5a:	2100      	movs	r1, #0
 
-  802fa5c:	7111      	strb	r1, [r2, #4]
 
-     /* restore the next pointer */
 
-     mem2->next = next;
 
-  802fa5e:	535f      	strh	r7, [r3, r5]
 
-  802fa60:	e010      	b.n	802fa84 <mem_trim+0xa8>
 
-     if (mem2->next != MEM_SIZE_ALIGNED) {
 
-       ((struct mem *)(void *)&ram[mem2->next])->prev = ptr2;
 
-     }
 
-     MEM_STATS_DEC_USED(used, (size - newsize));
 
-     /* no need to plug holes, we've already done that */
 
-   } else if (newsize + SIZEOF_STRUCT_MEM + MIN_SIZE_ALIGNED <= size) {
 
-  802fa62:	f105 0214 	add.w	r2, r5, #20
 
-  802fa66:	42ba      	cmp	r2, r7
 
-  802fa68:	d815      	bhi.n	802fa96 <mem_trim+0xba>
 
-      * @todo we could leave out MIN_SIZE_ALIGNED. We would create an empty
 
-      *       region that couldn't hold data, but when mem->next gets freed,
 
-      *       the 2 regions would be combined, resulting in more free memory */
 
-     ptr2 = ptr + SIZEOF_STRUCT_MEM + newsize;
 
-     mem2 = (struct mem *)(void *)&ram[ptr2];
 
-     if (mem2 < lfree) {
 
-  802fa6a:	4811      	ldr	r0, [pc, #68]	; (802fab0 <mem_trim+0xd4>)
 
-      * Old size ('size') must be big enough to contain at least 'newsize' plus a struct mem
 
-      * ('SIZEOF_STRUCT_MEM') with some data ('MIN_SIZE_ALIGNED').
 
-      * @todo we could leave out MIN_SIZE_ALIGNED. We would create an empty
 
-      *       region that couldn't hold data, but when mem->next gets freed,
 
-      *       the 2 regions would be combined, resulting in more free memory */
 
-     ptr2 = ptr + SIZEOF_STRUCT_MEM + newsize;
 
-  802fa6c:	f106 0208 	add.w	r2, r6, #8
 
-  802fa70:	18ad      	adds	r5, r5, r2
 
-     mem2 = (struct mem *)(void *)&ram[ptr2];
 
-     if (mem2 < lfree) {
 
-  802fa72:	6807      	ldr	r7, [r0, #0]
 
-      * Old size ('size') must be big enough to contain at least 'newsize' plus a struct mem
 
-      * ('SIZEOF_STRUCT_MEM') with some data ('MIN_SIZE_ALIGNED').
 
-      * @todo we could leave out MIN_SIZE_ALIGNED. We would create an empty
 
-      *       region that couldn't hold data, but when mem->next gets freed,
 
-      *       the 2 regions would be combined, resulting in more free memory */
 
-     ptr2 = ptr + SIZEOF_STRUCT_MEM + newsize;
 
-  802fa74:	b2ad      	uxth	r5, r5
 
-     mem2 = (struct mem *)(void *)&ram[ptr2];
 
-  802fa76:	195a      	adds	r2, r3, r5
 
-     if (mem2 < lfree) {
 
-  802fa78:	42ba      	cmp	r2, r7
 
-       lfree = mem2;
 
-  802fa7a:	bf38      	it	cc
 
-  802fa7c:	6002      	strcc	r2, [r0, #0]
 
-     }
 
-     mem2->used = 0;
 
-     mem2->next = mem->next;
 
-  802fa7e:	5359      	strh	r1, [r3, r5]
 
-     ptr2 = ptr + SIZEOF_STRUCT_MEM + newsize;
 
-     mem2 = (struct mem *)(void *)&ram[ptr2];
 
-     if (mem2 < lfree) {
 
-       lfree = mem2;
 
-     }
 
-     mem2->used = 0;
 
-  802fa80:	2000      	movs	r0, #0
 
-  802fa82:	7110      	strb	r0, [r2, #4]
 
-     mem2->next = mem->next;
 
-     mem2->prev = ptr;
 
-  802fa84:	8056      	strh	r6, [r2, #2]
 
-     mem->next = ptr2;
 
-  802fa86:	f824 5c08 	strh.w	r5, [r4, #-8]
 
-     if (mem2->next != MEM_SIZE_ALIGNED) {
 
-  802fa8a:	5b5a      	ldrh	r2, [r3, r5]
 
-  802fa8c:	f5b2 5fa0 	cmp.w	r2, #5120	; 0x1400
 
-       ((struct mem *)(void *)&ram[mem2->next])->prev = ptr2;
 
-  802fa90:	bf1c      	itt	ne
 
-  802fa92:	189b      	addne	r3, r3, r2
 
-  802fa94:	805d      	strhne	r5, [r3, #2]
 
-     -> the remaining space stays unused since it is too small
 
-   } */
 
- #if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT
 
-   mem_free_count = 1;
 
- #endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */
 
-   LWIP_MEM_FREE_UNPROTECT();
 
-  802fa96:	4805      	ldr	r0, [pc, #20]	; (802faac <mem_trim+0xd0>)
 
-  802fa98:	f007 ffe0 	bl	8037a5c <sys_mutex_unlock>
 
-   return rmem;
 
-  802fa9c:	e000      	b.n	802faa0 <mem_trim+0xc4>
 
-     /* every data block must be at least MIN_SIZE_ALIGNED long */
 
-     newsize = MIN_SIZE_ALIGNED;
 
-   }
 
-   if (newsize > MEM_SIZE_ALIGNED) {
 
-     return NULL;
 
-  802fa9e:	2400      	movs	r4, #0
 
- #if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT
 
-   mem_free_count = 1;
 
- #endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */
 
-   LWIP_MEM_FREE_UNPROTECT();
 
-   return rmem;
 
- }
 
-  802faa0:	4620      	mov	r0, r4
 
-  802faa2:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 
-  802faa6:	bf00      	nop
 
-  802faa8:	20000d48 	.word	0x20000d48
 
-  802faac:	20000d4c 	.word	0x20000d4c
 
-  802fab0:	20000d44 	.word	0x20000d44
 
-  802fab4:	20000d50 	.word	0x20000d50
 
- 0802fab8 <mem_malloc>:
 
-  *
 
-  * Note that the returned value will always be aligned (as defined by MEM_ALIGNMENT).
 
-  */
 
- void *
 
- mem_malloc(mem_size_t size)
 
- {
 
-  802fab8:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
- #if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT
 
-   u8_t local_mem_free_count = 0;
 
- #endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */
 
-   LWIP_MEM_ALLOC_DECL_PROTECT();
 
-   if (size == 0) {
 
-  802faba:	2800      	cmp	r0, #0
 
-  802fabc:	d056      	beq.n	802fb6c <mem_malloc+0xb4>
 
-     return NULL;
 
-   }
 
-   /* Expand the size of the allocated memory region so that we can
 
-      adjust for alignment. */
 
-   size = LWIP_MEM_ALIGN_SIZE(size);
 
-  802fabe:	3003      	adds	r0, #3
 
-  802fac0:	f64f 74fc 	movw	r4, #65532	; 0xfffc
 
-  802fac4:	4004      	ands	r4, r0
 
-   if(size < MIN_SIZE_ALIGNED) {
 
-  802fac6:	2c0b      	cmp	r4, #11
 
-  802fac8:	d903      	bls.n	802fad2 <mem_malloc+0x1a>
 
-     /* every data block must be at least MIN_SIZE_ALIGNED long */
 
-     size = MIN_SIZE_ALIGNED;
 
-   }
 
-   if (size > MEM_SIZE_ALIGNED) {
 
-  802faca:	f5b4 5fa0 	cmp.w	r4, #5120	; 0x1400
 
-  802face:	d901      	bls.n	802fad4 <mem_malloc+0x1c>
 
-  802fad0:	e04b      	b.n	802fb6a <mem_malloc+0xb2>
 
-      adjust for alignment. */
 
-   size = LWIP_MEM_ALIGN_SIZE(size);
 
-   if(size < MIN_SIZE_ALIGNED) {
 
-     /* every data block must be at least MIN_SIZE_ALIGNED long */
 
-     size = MIN_SIZE_ALIGNED;
 
-  802fad2:	240c      	movs	r4, #12
 
-   if (size > MEM_SIZE_ALIGNED) {
 
-     return NULL;
 
-   }
 
-   /* protect the heap from concurrent access */
 
-   sys_mutex_lock(&mem_mutex);
 
-  802fad4:	4826      	ldr	r0, [pc, #152]	; (802fb70 <mem_malloc+0xb8>)
 
-  802fad6:	f007 ffb5 	bl	8037a44 <sys_mutex_lock>
 
- #endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */
 
-     /* Scan through the heap searching for a free block that is big enough,
 
-      * beginning with the lowest free block.
 
-      */
 
-     for (ptr = (mem_size_t)((u8_t *)lfree - ram); ptr < MEM_SIZE_ALIGNED - size;
 
-  802fada:	4b26      	ldr	r3, [pc, #152]	; (802fb74 <mem_malloc+0xbc>)
 
-  802fadc:	6819      	ldr	r1, [r3, #0]
 
-  802fade:	4b26      	ldr	r3, [pc, #152]	; (802fb78 <mem_malloc+0xc0>)
 
-  802fae0:	681a      	ldr	r2, [r3, #0]
 
-  802fae2:	1a8b      	subs	r3, r1, r2
 
-  802fae4:	b29b      	uxth	r3, r3
 
-  802fae6:	f5c4 5ea0 	rsb	lr, r4, #5120	; 0x1400
 
-  802faea:	e039      	b.n	802fb60 <mem_malloc+0xa8>
 
-          ptr = ((struct mem *)(void *)&ram[ptr])->next) {
 
-       mem = (struct mem *)(void *)&ram[ptr];
 
-  802faec:	18d5      	adds	r5, r2, r3
 
-         local_mem_free_count = 1;
 
-         break;
 
-       }
 
- #endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */
 
-       if ((!mem->used) &&
 
-  802faee:	792f      	ldrb	r7, [r5, #4]
 
-  802faf0:	2f00      	cmp	r7, #0
 
-  802faf2:	d134      	bne.n	802fb5e <mem_malloc+0xa6>
 
-           (mem->next - (ptr + SIZEOF_STRUCT_MEM)) >= size) {
 
-  802faf4:	5ad6      	ldrh	r6, [r2, r3]
 
-  802faf6:	f1a6 0008 	sub.w	r0, r6, #8
 
-  802fafa:	1ac0      	subs	r0, r0, r3
 
-         local_mem_free_count = 1;
 
-         break;
 
-       }
 
- #endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */
 
-       if ((!mem->used) &&
 
-  802fafc:	42a0      	cmp	r0, r4
 
-  802fafe:	d32e      	bcc.n	802fb5e <mem_malloc+0xa6>
 
-           (mem->next - (ptr + SIZEOF_STRUCT_MEM)) >= size) {
 
-         /* mem is not used and at least perfect fit is possible:
 
-          * mem->next - (ptr + SIZEOF_STRUCT_MEM) gives us the 'user data size' of mem */
 
-         if (mem->next - (ptr + SIZEOF_STRUCT_MEM) >= (size + SIZEOF_STRUCT_MEM + MIN_SIZE_ALIGNED)) {
 
-  802fb00:	f104 0e14 	add.w	lr, r4, #20
 
-  802fb04:	4570      	cmp	r0, lr
 
-  802fb06:	d310      	bcc.n	802fb2a <mem_malloc+0x72>
 
-            * struct mem would fit in but no data between mem2 and mem2->next
 
-            * @todo we could leave out MIN_SIZE_ALIGNED. We would create an empty
 
-            *       region that couldn't hold data, but when mem->next gets freed,
 
-            *       the 2 regions would be combined, resulting in more free memory
 
-            */
 
-           ptr2 = ptr + SIZEOF_STRUCT_MEM + size;
 
-  802fb08:	3408      	adds	r4, #8
 
-  802fb0a:	191c      	adds	r4, r3, r4
 
-  802fb0c:	b2a4      	uxth	r4, r4
 
-           /* create mem2 struct */
 
-           mem2 = (struct mem *)(void *)&ram[ptr2];
 
-  802fb0e:	1910      	adds	r0, r2, r4
 
-           mem2->used = 0;
 
-           mem2->next = mem->next;
 
-  802fb10:	5316      	strh	r6, [r2, r4]
 
-           mem2->prev = ptr;
 
-  802fb12:	8043      	strh	r3, [r0, #2]
 
-           /* and insert it between mem and mem->next */
 
-           mem->next = ptr2;
 
-  802fb14:	802c      	strh	r4, [r5, #0]
 
-           mem->used = 1;
 
-  802fb16:	2301      	movs	r3, #1
 
-            *       the 2 regions would be combined, resulting in more free memory
 
-            */
 
-           ptr2 = ptr + SIZEOF_STRUCT_MEM + size;
 
-           /* create mem2 struct */
 
-           mem2 = (struct mem *)(void *)&ram[ptr2];
 
-           mem2->used = 0;
 
-  802fb18:	7107      	strb	r7, [r0, #4]
 
-           mem2->next = mem->next;
 
-           mem2->prev = ptr;
 
-           /* and insert it between mem and mem->next */
 
-           mem->next = ptr2;
 
-           mem->used = 1;
 
-  802fb1a:	712b      	strb	r3, [r5, #4]
 
-           if (mem2->next != MEM_SIZE_ALIGNED) {
 
-  802fb1c:	5b13      	ldrh	r3, [r2, r4]
 
-  802fb1e:	f5b3 5fa0 	cmp.w	r3, #5120	; 0x1400
 
-  802fb22:	d004      	beq.n	802fb2e <mem_malloc+0x76>
 
-             ((struct mem *)(void *)&ram[mem2->next])->prev = ptr2;
 
-  802fb24:	18d2      	adds	r2, r2, r3
 
-  802fb26:	8054      	strh	r4, [r2, #2]
 
-  802fb28:	e001      	b.n	802fb2e <mem_malloc+0x76>
 
-            * take care of this).
 
-            * -> near fit or excact fit: do not split, no mem2 creation
 
-            * also can't move mem->next directly behind mem, since mem->next
 
-            * will always be used at this point!
 
-            */
 
-           mem->used = 1;
 
-  802fb2a:	2301      	movs	r3, #1
 
-  802fb2c:	712b      	strb	r3, [r5, #4]
 
-           MEM_STATS_INC_USED(used, mem->next - (mem_size_t)((u8_t *)mem - ram));
 
-         }
 
- #if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT
 
- mem_malloc_adjust_lfree:
 
- #endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */
 
-         if (mem == lfree) {
 
-  802fb2e:	428d      	cmp	r5, r1
 
-  802fb30:	d10f      	bne.n	802fb52 <mem_malloc+0x9a>
 
-           struct mem *cur = lfree;
 
-           /* Find next free block after mem and update lowest free pointer */
 
-           while (cur->used && cur != ram_end) {
 
-  802fb32:	4b12      	ldr	r3, [pc, #72]	; (802fb7c <mem_malloc+0xc4>)
 
-  802fb34:	681a      	ldr	r2, [r3, #0]
 
-               /* If mem_free or mem_trim have run, we have to restart since they
 
-                  could have altered our current struct mem or lfree. */
 
-               goto mem_malloc_adjust_lfree;
 
-             }
 
- #endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */
 
-             cur = (struct mem *)(void *)&ram[cur->next];
 
-  802fb36:	4b10      	ldr	r3, [pc, #64]	; (802fb78 <mem_malloc+0xc0>)
 
-  802fb38:	6819      	ldr	r1, [r3, #0]
 
-  802fb3a:	462b      	mov	r3, r5
 
-  802fb3c:	e001      	b.n	802fb42 <mem_malloc+0x8a>
 
-  802fb3e:	881b      	ldrh	r3, [r3, #0]
 
-  802fb40:	18cb      	adds	r3, r1, r3
 
- mem_malloc_adjust_lfree:
 
- #endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */
 
-         if (mem == lfree) {
 
-           struct mem *cur = lfree;
 
-           /* Find next free block after mem and update lowest free pointer */
 
-           while (cur->used && cur != ram_end) {
 
-  802fb42:	7918      	ldrb	r0, [r3, #4]
 
-  802fb44:	b910      	cbnz	r0, 802fb4c <mem_malloc+0x94>
 
-               goto mem_malloc_adjust_lfree;
 
-             }
 
- #endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */
 
-             cur = (struct mem *)(void *)&ram[cur->next];
 
-           }
 
-           lfree = cur;
 
-  802fb46:	4a0b      	ldr	r2, [pc, #44]	; (802fb74 <mem_malloc+0xbc>)
 
-  802fb48:	6013      	str	r3, [r2, #0]
 
-  802fb4a:	e002      	b.n	802fb52 <mem_malloc+0x9a>
 
- mem_malloc_adjust_lfree:
 
- #endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */
 
-         if (mem == lfree) {
 
-           struct mem *cur = lfree;
 
-           /* Find next free block after mem and update lowest free pointer */
 
-           while (cur->used && cur != ram_end) {
 
-  802fb4c:	4293      	cmp	r3, r2
 
-  802fb4e:	d1f6      	bne.n	802fb3e <mem_malloc+0x86>
 
-  802fb50:	e7f9      	b.n	802fb46 <mem_malloc+0x8e>
 
-           }
 
-           lfree = cur;
 
-           LWIP_ASSERT("mem_malloc: !lfree->used", ((lfree == ram_end) || (!lfree->used)));
 
-         }
 
-         LWIP_MEM_ALLOC_UNPROTECT();
 
-         sys_mutex_unlock(&mem_mutex);
 
-  802fb52:	4807      	ldr	r0, [pc, #28]	; (802fb70 <mem_malloc+0xb8>)
 
-  802fb54:	f007 ff82 	bl	8037a5c <sys_mutex_unlock>
 
-         LWIP_ASSERT("mem_malloc: allocated memory properly aligned.",
 
-          ((mem_ptr_t)mem + SIZEOF_STRUCT_MEM) % MEM_ALIGNMENT == 0);
 
-         LWIP_ASSERT("mem_malloc: sanity check alignment",
 
-           (((mem_ptr_t)mem) & (MEM_ALIGNMENT-1)) == 0);
 
-         return (u8_t *)mem + SIZEOF_STRUCT_MEM;
 
-  802fb58:	f105 0008 	add.w	r0, r5, #8
 
-  802fb5c:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 
-     /* Scan through the heap searching for a free block that is big enough,
 
-      * beginning with the lowest free block.
 
-      */
 
-     for (ptr = (mem_size_t)((u8_t *)lfree - ram); ptr < MEM_SIZE_ALIGNED - size;
 
-          ptr = ((struct mem *)(void *)&ram[ptr])->next) {
 
-  802fb5e:	882b      	ldrh	r3, [r5, #0]
 
- #endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */
 
-     /* Scan through the heap searching for a free block that is big enough,
 
-      * beginning with the lowest free block.
 
-      */
 
-     for (ptr = (mem_size_t)((u8_t *)lfree - ram); ptr < MEM_SIZE_ALIGNED - size;
 
-  802fb60:	4573      	cmp	r3, lr
 
-  802fb62:	dbc3      	blt.n	802faec <mem_malloc+0x34>
 
-   } while(local_mem_free_count != 0);
 
- #endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */
 
-   LWIP_DEBUGF(MEM_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("mem_malloc: could not allocate %"S16_F" bytes\n", (s16_t)size));
 
-   MEM_STATS_INC(err);
 
-   LWIP_MEM_ALLOC_UNPROTECT();
 
-   sys_mutex_unlock(&mem_mutex);
 
-  802fb64:	4802      	ldr	r0, [pc, #8]	; (802fb70 <mem_malloc+0xb8>)
 
-  802fb66:	f007 ff79 	bl	8037a5c <sys_mutex_unlock>
 
-   u8_t local_mem_free_count = 0;
 
- #endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */
 
-   LWIP_MEM_ALLOC_DECL_PROTECT();
 
-   if (size == 0) {
 
-     return NULL;
 
-  802fb6a:	2000      	movs	r0, #0
 
-   LWIP_DEBUGF(MEM_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("mem_malloc: could not allocate %"S16_F" bytes\n", (s16_t)size));
 
-   MEM_STATS_INC(err);
 
-   LWIP_MEM_ALLOC_UNPROTECT();
 
-   sys_mutex_unlock(&mem_mutex);
 
-   return NULL;
 
- }
 
-  802fb6c:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 
-  802fb6e:	bf00      	nop
 
-  802fb70:	20000d4c 	.word	0x20000d4c
 
-  802fb74:	20000d44 	.word	0x20000d44
 
-  802fb78:	20000d50 	.word	0x20000d50
 
-  802fb7c:	20000d48 	.word	0x20000d48
 
- 0802fb80 <memp_init>:
 
-     MEMP_STATS_AVAIL(err, i, 0);
 
-     MEMP_STATS_AVAIL(avail, i, memp_num[i]);
 
-   }
 
- #if !MEMP_SEPARATE_POOLS
 
-   memp = (struct memp *)LWIP_MEM_ALIGN(memp_memory);
 
-  802fb80:	4a0e      	ldr	r2, [pc, #56]	; (802fbbc <memp_init+0x3c>)
 
-  802fb82:	490f      	ldr	r1, [pc, #60]	; (802fbc0 <memp_init+0x40>)
 
-  * 
 
-  * Carves out memp_memory into linked lists for each pool-type.
 
-  */
 
- void
 
- memp_init(void)
 
- {
 
-  802fb84:	b5f0      	push	{r4, r5, r6, r7, lr}
 
-     MEMP_STATS_AVAIL(err, i, 0);
 
-     MEMP_STATS_AVAIL(avail, i, memp_num[i]);
 
-   }
 
- #if !MEMP_SEPARATE_POOLS
 
-   memp = (struct memp *)LWIP_MEM_ALIGN(memp_memory);
 
-  802fb86:	2300      	movs	r3, #0
 
-     memp_tab[i] = NULL;
 
- #if MEMP_SEPARATE_POOLS
 
-     memp = (struct memp*)memp_bases[i];
 
- #endif /* MEMP_SEPARATE_POOLS */
 
-     /* create a linked list of memp elements */
 
-     for (j = 0; j < memp_num[i]; ++j) {
 
-  802fb88:	4e0e      	ldr	r6, [pc, #56]	; (802fbc4 <memp_init+0x44>)
 
-       memp->next = memp_tab[i];
 
-       memp_tab[i] = memp;
 
-       memp = (struct memp *)(void *)((u8_t *)memp + MEMP_SIZE + memp_sizes[i]
 
-  802fb8a:	4f0f      	ldr	r7, [pc, #60]	; (802fbc8 <memp_init+0x48>)
 
-     MEMP_STATS_AVAIL(err, i, 0);
 
-     MEMP_STATS_AVAIL(avail, i, memp_num[i]);
 
-   }
 
- #if !MEMP_SEPARATE_POOLS
 
-   memp = (struct memp *)LWIP_MEM_ALIGN(memp_memory);
 
-  802fb8c:	f022 0203 	bic.w	r2, r2, #3
 
- #endif /* !MEMP_SEPARATE_POOLS */
 
-   /* for every pool: */
 
-   for (i = 0; i < MEMP_MAX; ++i) {
 
-     memp_tab[i] = NULL;
 
-  802fb90:	461d      	mov	r5, r3
 
-  802fb92:	f841 5b04 	str.w	r5, [r1], #4
 
- #if MEMP_SEPARATE_POOLS
 
-     memp = (struct memp*)memp_bases[i];
 
- #endif /* MEMP_SEPARATE_POOLS */
 
-     /* create a linked list of memp elements */
 
-     for (j = 0; j < memp_num[i]; ++j) {
 
-  802fb96:	f833 c006 	ldrh.w	ip, [r3, r6]
 
-  802fb9a:	2000      	movs	r0, #0
 
-  802fb9c:	e008      	b.n	802fbb0 <memp_init+0x30>
 
-       memp->next = memp_tab[i];
 
-  802fb9e:	f851 4c04 	ldr.w	r4, [r1, #-4]
 
-  802fba2:	6014      	str	r4, [r2, #0]
 
-       memp_tab[i] = memp;
 
-       memp = (struct memp *)(void *)((u8_t *)memp + MEMP_SIZE + memp_sizes[i]
 
-  802fba4:	5bdc      	ldrh	r4, [r3, r7]
 
-     memp = (struct memp*)memp_bases[i];
 
- #endif /* MEMP_SEPARATE_POOLS */
 
-     /* create a linked list of memp elements */
 
-     for (j = 0; j < memp_num[i]; ++j) {
 
-       memp->next = memp_tab[i];
 
-       memp_tab[i] = memp;
 
-  802fba6:	f841 2c04 	str.w	r2, [r1, #-4]
 
-     memp_tab[i] = NULL;
 
- #if MEMP_SEPARATE_POOLS
 
-     memp = (struct memp*)memp_bases[i];
 
- #endif /* MEMP_SEPARATE_POOLS */
 
-     /* create a linked list of memp elements */
 
-     for (j = 0; j < memp_num[i]; ++j) {
 
-  802fbaa:	3001      	adds	r0, #1
 
-       memp->next = memp_tab[i];
 
-       memp_tab[i] = memp;
 
-       memp = (struct memp *)(void *)((u8_t *)memp + MEMP_SIZE + memp_sizes[i]
 
-  802fbac:	1912      	adds	r2, r2, r4
 
-     memp_tab[i] = NULL;
 
- #if MEMP_SEPARATE_POOLS
 
-     memp = (struct memp*)memp_bases[i];
 
- #endif /* MEMP_SEPARATE_POOLS */
 
-     /* create a linked list of memp elements */
 
-     for (j = 0; j < memp_num[i]; ++j) {
 
-  802fbae:	b280      	uxth	r0, r0
 
-  802fbb0:	4560      	cmp	r0, ip
 
-  802fbb2:	d1f4      	bne.n	802fb9e <memp_init+0x1e>
 
-  802fbb4:	3302      	adds	r3, #2
 
- #if !MEMP_SEPARATE_POOLS
 
-   memp = (struct memp *)LWIP_MEM_ALIGN(memp_memory);
 
- #endif /* !MEMP_SEPARATE_POOLS */
 
-   /* for every pool: */
 
-   for (i = 0; i < MEMP_MAX; ++i) {
 
-  802fbb6:	2b20      	cmp	r3, #32
 
-  802fbb8:	d1eb      	bne.n	802fb92 <memp_init+0x12>
 
- #if MEMP_OVERFLOW_CHECK
 
-   memp_overflow_init();
 
-   /* check everything a first time to see if it worked */
 
-   memp_overflow_check_all();
 
- #endif /* MEMP_OVERFLOW_CHECK */
 
- }
 
-  802fbba:	bdf0      	pop	{r4, r5, r6, r7, pc}
 
-  802fbbc:	20000d57 	.word	0x20000d57
 
-  802fbc0:	2000c394 	.word	0x2000c394
 
-  802fbc4:	08044fa0 	.word	0x08044fa0
 
-  802fbc8:	08044fc0 	.word	0x08044fc0
 
- 0802fbcc <memp_malloc>:
 
- #endif
 
- {
 
-   struct memp *memp;
 
-   SYS_ARCH_DECL_PROTECT(old_level);
 
-  
 
-   LWIP_ERROR("memp_malloc: type < MEMP_MAX", (type < MEMP_MAX), return NULL;);
 
-  802fbcc:	280f      	cmp	r0, #15
 
- #if !MEMP_OVERFLOW_CHECK
 
- memp_malloc(memp_t type)
 
- #else
 
- memp_malloc_fn(memp_t type, const char* file, const int line)
 
- #endif
 
- {
 
-  802fbce:	b538      	push	{r3, r4, r5, lr}
 
-  802fbd0:	4605      	mov	r5, r0
 
-   struct memp *memp;
 
-   SYS_ARCH_DECL_PROTECT(old_level);
 
-  
 
-   LWIP_ERROR("memp_malloc: type < MEMP_MAX", (type < MEMP_MAX), return NULL;);
 
-  802fbd2:	d80b      	bhi.n	802fbec <memp_malloc+0x20>
 
-   SYS_ARCH_PROTECT(old_level);
 
-  802fbd4:	f007 ff78 	bl	8037ac8 <sys_arch_protect>
 
- #if MEMP_OVERFLOW_CHECK >= 2
 
-   memp_overflow_check_all();
 
- #endif /* MEMP_OVERFLOW_CHECK >= 2 */
 
-   memp = memp_tab[type];
 
-  802fbd8:	4b06      	ldr	r3, [pc, #24]	; (802fbf4 <memp_malloc+0x28>)
 
-  802fbda:	f853 4025 	ldr.w	r4, [r3, r5, lsl #2]
 
-   
 
-   if (memp != NULL) {
 
-  802fbde:	b114      	cbz	r4, 802fbe6 <memp_malloc+0x1a>
 
-     memp_tab[type] = memp->next;
 
-  802fbe0:	6822      	ldr	r2, [r4, #0]
 
-  802fbe2:	f843 2025 	str.w	r2, [r3, r5, lsl #2]
 
-   } else {
 
-     LWIP_DEBUGF(MEMP_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("memp_malloc: out of memory in pool %s\n", memp_desc[type]));
 
-     MEMP_STATS_INC(err, type);
 
-   }
 
-   SYS_ARCH_UNPROTECT(old_level);
 
-  802fbe6:	f007 ff79 	bl	8037adc <sys_arch_unprotect>
 
-   return memp;
 
-  802fbea:	e000      	b.n	802fbee <memp_malloc+0x22>
 
- #endif
 
- {
 
-   struct memp *memp;
 
-   SYS_ARCH_DECL_PROTECT(old_level);
 
-  
 
-   LWIP_ERROR("memp_malloc: type < MEMP_MAX", (type < MEMP_MAX), return NULL;);
 
-  802fbec:	2400      	movs	r4, #0
 
-   }
 
-   SYS_ARCH_UNPROTECT(old_level);
 
-   return memp;
 
- }
 
-  802fbee:	4620      	mov	r0, r4
 
-  802fbf0:	bd38      	pop	{r3, r4, r5, pc}
 
-  802fbf2:	bf00      	nop
 
-  802fbf4:	2000c394 	.word	0x2000c394
 
- 0802fbf8 <memp_free>:
 
-  * @param type the pool where to put mem
 
-  * @param mem the memp element to free
 
-  */
 
- void
 
- memp_free(memp_t type, void *mem)
 
- {
 
-  802fbf8:	b538      	push	{r3, r4, r5, lr}
 
-  802fbfa:	4605      	mov	r5, r0
 
-   struct memp *memp;
 
-   SYS_ARCH_DECL_PROTECT(old_level);
 
-   if (mem == NULL) {
 
-  802fbfc:	460c      	mov	r4, r1
 
-  802fbfe:	b159      	cbz	r1, 802fc18 <memp_free+0x20>
 
-   LWIP_ASSERT("memp_free: mem properly aligned",
 
-                 ((mem_ptr_t)mem % MEM_ALIGNMENT) == 0);
 
-   memp = (struct memp *)(void *)((u8_t*)mem - MEMP_SIZE);
 
-   SYS_ARCH_PROTECT(old_level);
 
-  802fc00:	f007 ff62 	bl	8037ac8 <sys_arch_protect>
 
- #endif /* MEMP_OVERFLOW_CHECK >= 2 */
 
- #endif /* MEMP_OVERFLOW_CHECK */
 
-   MEMP_STATS_DEC(used, type); 
 
-   
 
-   memp->next = memp_tab[type]; 
 
-  802fc04:	4b05      	ldr	r3, [pc, #20]	; (802fc1c <memp_free+0x24>)
 
-  802fc06:	f853 2025 	ldr.w	r2, [r3, r5, lsl #2]
 
-  802fc0a:	6022      	str	r2, [r4, #0]
 
-   memp_tab[type] = memp;
 
-  802fc0c:	f843 4025 	str.w	r4, [r3, r5, lsl #2]
 
- #if MEMP_SANITY_CHECK
 
-   LWIP_ASSERT("memp sanity", memp_sanity());
 
- #endif /* MEMP_SANITY_CHECK */
 
-   SYS_ARCH_UNPROTECT(old_level);
 
- }
 
-  802fc10:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
 
- #if MEMP_SANITY_CHECK
 
-   LWIP_ASSERT("memp sanity", memp_sanity());
 
- #endif /* MEMP_SANITY_CHECK */
 
-   SYS_ARCH_UNPROTECT(old_level);
 
-  802fc14:	f007 bf62 	b.w	8037adc <sys_arch_unprotect>
 
-  802fc18:	bd38      	pop	{r3, r4, r5, pc}
 
-  802fc1a:	bf00      	nop
 
-  802fc1c:	2000c394 	.word	0x2000c394
 
- 0802fc20 <netif_init>:
 
- }
 
- #endif /* LWIP_HAVE_LOOPIF */
 
- void
 
- netif_init(void)
 
- {
 
-  802fc20:	4770      	bx	lr
 
-  802fc22:	0000      	movs	r0, r0
 
- 0802fc24 <netif_set_ipaddr>:
 
-  * @note call netif_set_addr() if you also want to change netmask and
 
-  * default gateway
 
-  */
 
- void
 
- netif_set_ipaddr(struct netif *netif, ip_addr_t *ipaddr)
 
- {
 
-  802fc24:	b570      	push	{r4, r5, r6, lr}
 
-  802fc26:	4604      	mov	r4, r0
 
- #if LWIP_TCP
 
-   struct tcp_pcb *pcb;
 
-   struct tcp_pcb_listen *lpcb;
 
-   /* address is actually being changed? */
 
-   if (ipaddr && (ip_addr_cmp(ipaddr, &(netif->ip_addr))) == 0) {
 
-  802fc28:	460d      	mov	r5, r1
 
-  802fc2a:	b941      	cbnz	r1, 802fc3e <netif_set_ipaddr+0x1a>
 
-         ip_addr_set(&(lpcb->local_ip), ipaddr);
 
-       }
 
-     }
 
-   }
 
- #endif
 
-   snmp_delete_ipaddridx_tree(netif);
 
-  802fc2c:	4620      	mov	r0, r4
 
-  802fc2e:	f004 fed7 	bl	80349e0 <snmp_delete_ipaddridx_tree>
 
-   snmp_delete_iprteidx_tree(0,netif);
 
-  802fc32:	2000      	movs	r0, #0
 
-  802fc34:	4621      	mov	r1, r4
 
-  802fc36:	f004 ff69 	bl	8034b0c <snmp_delete_iprteidx_tree>
 
-   /* set new IP address to netif */
 
-   ip_addr_set(&(netif->ip_addr), ipaddr);
 
-  802fc3a:	b9fd      	cbnz	r5, 802fc7c <netif_set_ipaddr+0x58>
 
-  802fc3c:	e01f      	b.n	802fc7e <netif_set_ipaddr+0x5a>
 
- #if LWIP_TCP
 
-   struct tcp_pcb *pcb;
 
-   struct tcp_pcb_listen *lpcb;
 
-   /* address is actually being changed? */
 
-   if (ipaddr && (ip_addr_cmp(ipaddr, &(netif->ip_addr))) == 0) {
 
-  802fc3e:	680a      	ldr	r2, [r1, #0]
 
-  802fc40:	6843      	ldr	r3, [r0, #4]
 
-  802fc42:	429a      	cmp	r2, r3
 
-  802fc44:	d0f2      	beq.n	802fc2c <netif_set_ipaddr+0x8>
 
-     /* extern struct tcp_pcb *tcp_active_pcbs; defined by tcp.h */
 
-     LWIP_DEBUGF(NETIF_DEBUG | LWIP_DBG_STATE, ("netif_set_ipaddr: netif address being changed\n"));
 
-     pcb = tcp_active_pcbs;
 
-  802fc46:	4b13      	ldr	r3, [pc, #76]	; (802fc94 <netif_set_ipaddr+0x70>)
 
-  802fc48:	6818      	ldr	r0, [r3, #0]
 
-     while (pcb != NULL) {
 
-  802fc4a:	e007      	b.n	802fc5c <netif_set_ipaddr+0x38>
 
-       /* PCB bound to current local interface address? */
 
-       if (ip_addr_cmp(&(pcb->local_ip), &(netif->ip_addr))
 
-  802fc4c:	6802      	ldr	r2, [r0, #0]
 
-  802fc4e:	6863      	ldr	r3, [r4, #4]
 
-  802fc50:	68c6      	ldr	r6, [r0, #12]
 
-  802fc52:	429a      	cmp	r2, r3
 
-  802fc54:	d101      	bne.n	802fc5a <netif_set_ipaddr+0x36>
 
- #endif /* LWIP_AUTOIP */
 
-         ) {
 
-         /* this connection must be aborted */
 
-         struct tcp_pcb *next = pcb->next;
 
-         LWIP_DEBUGF(NETIF_DEBUG | LWIP_DBG_STATE, ("netif_set_ipaddr: aborting TCP pcb %p\n", (void *)pcb));
 
-         tcp_abort(pcb);
 
-  802fc56:	f000 fe0b 	bl	8030870 <tcp_abort>
 
-         pcb = next;
 
-       } else {
 
-         pcb = pcb->next;
 
-  802fc5a:	4630      	mov	r0, r6
 
-   /* address is actually being changed? */
 
-   if (ipaddr && (ip_addr_cmp(ipaddr, &(netif->ip_addr))) == 0) {
 
-     /* extern struct tcp_pcb *tcp_active_pcbs; defined by tcp.h */
 
-     LWIP_DEBUGF(NETIF_DEBUG | LWIP_DBG_STATE, ("netif_set_ipaddr: netif address being changed\n"));
 
-     pcb = tcp_active_pcbs;
 
-     while (pcb != NULL) {
 
-  802fc5c:	2800      	cmp	r0, #0
 
-  802fc5e:	d1f5      	bne.n	802fc4c <netif_set_ipaddr+0x28>
 
-         pcb = next;
 
-       } else {
 
-         pcb = pcb->next;
 
-       }
 
-     }
 
-     for (lpcb = tcp_listen_pcbs.listen_pcbs; lpcb != NULL; lpcb = lpcb->next) {
 
-  802fc60:	4b0d      	ldr	r3, [pc, #52]	; (802fc98 <netif_set_ipaddr+0x74>)
 
-  802fc62:	681b      	ldr	r3, [r3, #0]
 
-  802fc64:	e007      	b.n	802fc76 <netif_set_ipaddr+0x52>
 
-       /* PCB bound to current local interface address? */
 
-       if ((!(ip_addr_isany(&(lpcb->local_ip)))) &&
 
-  802fc66:	681a      	ldr	r2, [r3, #0]
 
-  802fc68:	b122      	cbz	r2, 802fc74 <netif_set_ipaddr+0x50>
 
-  802fc6a:	6861      	ldr	r1, [r4, #4]
 
-  802fc6c:	428a      	cmp	r2, r1
 
-           (ip_addr_cmp(&(lpcb->local_ip), &(netif->ip_addr)))) {
 
-         /* The PCB is listening to the old ipaddr and
 
-          * is set to listen to the new one instead */
 
-         ip_addr_set(&(lpcb->local_ip), ipaddr);
 
-  802fc6e:	bf04      	itt	eq
 
-  802fc70:	682a      	ldreq	r2, [r5, #0]
 
-  802fc72:	601a      	streq	r2, [r3, #0]
 
-         pcb = next;
 
-       } else {
 
-         pcb = pcb->next;
 
-       }
 
-     }
 
-     for (lpcb = tcp_listen_pcbs.listen_pcbs; lpcb != NULL; lpcb = lpcb->next) {
 
-  802fc74:	68db      	ldr	r3, [r3, #12]
 
-  802fc76:	2b00      	cmp	r3, #0
 
-  802fc78:	d1f5      	bne.n	802fc66 <netif_set_ipaddr+0x42>
 
-  802fc7a:	e7d7      	b.n	802fc2c <netif_set_ipaddr+0x8>
 
-   }
 
- #endif
 
-   snmp_delete_ipaddridx_tree(netif);
 
-   snmp_delete_iprteidx_tree(0,netif);
 
-   /* set new IP address to netif */
 
-   ip_addr_set(&(netif->ip_addr), ipaddr);
 
-  802fc7c:	682d      	ldr	r5, [r5, #0]
 
-   snmp_insert_ipaddridx_tree(netif);
 
-  802fc7e:	4620      	mov	r0, r4
 
-   }
 
- #endif
 
-   snmp_delete_ipaddridx_tree(netif);
 
-   snmp_delete_iprteidx_tree(0,netif);
 
-   /* set new IP address to netif */
 
-   ip_addr_set(&(netif->ip_addr), ipaddr);
 
-  802fc80:	6065      	str	r5, [r4, #4]
 
-   snmp_insert_ipaddridx_tree(netif);
 
-  802fc82:	f004 fe6b 	bl	803495c <snmp_insert_ipaddridx_tree>
 
-   snmp_insert_iprteidx_tree(0,netif);
 
-  802fc86:	2000      	movs	r0, #0
 
-  802fc88:	4621      	mov	r1, r4
 
-     netif->name[0], netif->name[1],
 
-     ip4_addr1_16(&netif->ip_addr),
 
-     ip4_addr2_16(&netif->ip_addr),
 
-     ip4_addr3_16(&netif->ip_addr),
 
-     ip4_addr4_16(&netif->ip_addr)));
 
- }
 
-  802fc8a:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
 
-   snmp_delete_ipaddridx_tree(netif);
 
-   snmp_delete_iprteidx_tree(0,netif);
 
-   /* set new IP address to netif */
 
-   ip_addr_set(&(netif->ip_addr), ipaddr);
 
-   snmp_insert_ipaddridx_tree(netif);
 
-   snmp_insert_iprteidx_tree(0,netif);
 
-  802fc8e:	f004 bef1 	b.w	8034a74 <snmp_insert_iprteidx_tree>
 
-  802fc92:	bf00      	nop
 
-  802fc94:	2000f6bc 	.word	0x2000f6bc
 
-  802fc98:	2000f6c4 	.word	0x2000f6c4
 
- 0802fc9c <netif_set_gw>:
 
-  * @note call netif_set_addr() if you also want to change ip address and netmask
 
-  */
 
- void
 
- netif_set_gw(struct netif *netif, ip_addr_t *gw)
 
- {
 
-   ip_addr_set(&(netif->gw), gw);
 
-  802fc9c:	b101      	cbz	r1, 802fca0 <netif_set_gw+0x4>
 
-  802fc9e:	6809      	ldr	r1, [r1, #0]
 
-  802fca0:	60c1      	str	r1, [r0, #12]
 
-  802fca2:	4770      	bx	lr
 
- 0802fca4 <netif_set_netmask>:
 
-  * @note call netif_set_addr() if you also want to change ip address and
 
-  * default gateway
 
-  */
 
- void
 
- netif_set_netmask(struct netif *netif, ip_addr_t *netmask)
 
- {
 
-  802fca4:	b538      	push	{r3, r4, r5, lr}
 
-  802fca6:	4604      	mov	r4, r0
 
-  802fca8:	460d      	mov	r5, r1
 
-   snmp_delete_iprteidx_tree(0, netif);
 
-  802fcaa:	2000      	movs	r0, #0
 
-  802fcac:	4621      	mov	r1, r4
 
-  802fcae:	f004 ff2d 	bl	8034b0c <snmp_delete_iprteidx_tree>
 
-   /* set new netmask to netif */
 
-   ip_addr_set(&(netif->netmask), netmask);
 
-  802fcb2:	b105      	cbz	r5, 802fcb6 <netif_set_netmask+0x12>
 
-  802fcb4:	682d      	ldr	r5, [r5, #0]
 
-   snmp_insert_iprteidx_tree(0, netif);
 
-  802fcb6:	2000      	movs	r0, #0
 
-  802fcb8:	4621      	mov	r1, r4
 
- void
 
- netif_set_netmask(struct netif *netif, ip_addr_t *netmask)
 
- {
 
-   snmp_delete_iprteidx_tree(0, netif);
 
-   /* set new netmask to netif */
 
-   ip_addr_set(&(netif->netmask), netmask);
 
-  802fcba:	60a5      	str	r5, [r4, #8]
 
-     netif->name[0], netif->name[1],
 
-     ip4_addr1_16(&netif->netmask),
 
-     ip4_addr2_16(&netif->netmask),
 
-     ip4_addr3_16(&netif->netmask),
 
-     ip4_addr4_16(&netif->netmask)));
 
- }
 
-  802fcbc:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
 
- netif_set_netmask(struct netif *netif, ip_addr_t *netmask)
 
- {
 
-   snmp_delete_iprteidx_tree(0, netif);
 
-   /* set new netmask to netif */
 
-   ip_addr_set(&(netif->netmask), netmask);
 
-   snmp_insert_iprteidx_tree(0, netif);
 
-  802fcc0:	f004 bed8 	b.w	8034a74 <snmp_insert_iprteidx_tree>
 
- 0802fcc4 <netif_set_addr>:
 
-  * @param gw the new default gateway
 
-  */
 
- void
 
- netif_set_addr(struct netif *netif, ip_addr_t *ipaddr, ip_addr_t *netmask,
 
-     ip_addr_t *gw)
 
- {
 
-  802fcc4:	b570      	push	{r4, r5, r6, lr}
 
-  802fcc6:	4605      	mov	r5, r0
 
-  802fcc8:	4616      	mov	r6, r2
 
-  802fcca:	461c      	mov	r4, r3
 
-   netif_set_ipaddr(netif, ipaddr);
 
-  802fccc:	f7ff ffaa 	bl	802fc24 <netif_set_ipaddr>
 
-   netif_set_netmask(netif, netmask);
 
-  802fcd0:	4628      	mov	r0, r5
 
-  802fcd2:	4631      	mov	r1, r6
 
-  802fcd4:	f7ff ffe6 	bl	802fca4 <netif_set_netmask>
 
-  * @note call netif_set_addr() if you also want to change ip address and netmask
 
-  */
 
- void
 
- netif_set_gw(struct netif *netif, ip_addr_t *gw)
 
- {
 
-   ip_addr_set(&(netif->gw), gw);
 
-  802fcd8:	b104      	cbz	r4, 802fcdc <netif_set_addr+0x18>
 
-  802fcda:	6824      	ldr	r4, [r4, #0]
 
-  802fcdc:	60ec      	str	r4, [r5, #12]
 
-  802fcde:	bd70      	pop	{r4, r5, r6, pc}
 
- 0802fce0 <netif_add>:
 
-  * @return netif, or NULL if failed.
 
-  */
 
- struct netif *
 
- netif_add(struct netif *netif, ip_addr_t *ipaddr, ip_addr_t *netmask,
 
-   ip_addr_t *gw, void *state, netif_init_fn init, netif_input_fn input)
 
- {
 
-  802fce0:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
-   netif->loop_first = NULL;
 
-   netif->loop_last = NULL;
 
- #endif /* ENABLE_LOOPBACK */
 
-   /* remember netif specific state information data */
 
-   netif->state = state;
 
-  802fce2:	9e06      	ldr	r6, [sp, #24]
 
-  802fce4:	61c6      	str	r6, [r0, #28]
 
-   netif->num = netif_num++;
 
-  802fce6:	4e10      	ldr	r6, [pc, #64]	; (802fd28 <netif_add+0x48>)
 
-  802fce8:	7837      	ldrb	r7, [r6, #0]
 
-  802fcea:	f880 7030 	strb.w	r7, [r0, #48]	; 0x30
 
-  802fcee:	3701      	adds	r7, #1
 
-  802fcf0:	7037      	strb	r7, [r6, #0]
 
-   netif->input = input;
 
-  802fcf2:	9e08      	ldr	r6, [sp, #32]
 
- {
 
-   LWIP_ASSERT("No init function given", init != NULL);
 
-   /* reset new interface configuration state */
 
-   ip_addr_set_zero(&netif->ip_addr);
 
-  802fcf4:	2500      	movs	r5, #0
 
-  * @return netif, or NULL if failed.
 
-  */
 
- struct netif *
 
- netif_add(struct netif *netif, ip_addr_t *ipaddr, ip_addr_t *netmask,
 
-   ip_addr_t *gw, void *state, netif_init_fn init, netif_input_fn input)
 
- {
 
-  802fcf6:	4604      	mov	r4, r0
 
-   LWIP_ASSERT("No init function given", init != NULL);
 
-   /* reset new interface configuration state */
 
-   ip_addr_set_zero(&netif->ip_addr);
 
-  802fcf8:	6045      	str	r5, [r0, #4]
 
-   ip_addr_set_zero(&netif->netmask);
 
-  802fcfa:	6085      	str	r5, [r0, #8]
 
-   ip_addr_set_zero(&netif->gw);
 
-  802fcfc:	60c5      	str	r5, [r0, #12]
 
-   netif->flags = 0;
 
-  802fcfe:	f880 502d 	strb.w	r5, [r0, #45]	; 0x2d
 
- #if LWIP_DHCP
 
-   /* netif not under DHCP control by default */
 
-   netif->dhcp = NULL;
 
-  802fd02:	6205      	str	r5, [r0, #32]
 
- #endif /* ENABLE_LOOPBACK */
 
-   /* remember netif specific state information data */
 
-   netif->state = state;
 
-   netif->num = netif_num++;
 
-   netif->input = input;
 
-  802fd04:	6106      	str	r6, [r0, #16]
 
-   NETIF_SET_HWADDRHINT(netif, NULL);
 
- #if ENABLE_LOOPBACK && LWIP_LOOPBACK_MAX_PBUFS
 
-   netif->loop_cnt_current = 0;
 
- #endif /* ENABLE_LOOPBACK && LWIP_LOOPBACK_MAX_PBUFS */
 
-   netif_set_addr(netif, ipaddr, netmask, gw);
 
-  802fd06:	f7ff ffdd 	bl	802fcc4 <netif_set_addr>
 
-   /* call user specified initialization function for netif */
 
-   if (init(netif) != ERR_OK) {
 
-  802fd0a:	4620      	mov	r0, r4
 
-  802fd0c:	9b07      	ldr	r3, [sp, #28]
 
-  802fd0e:	4798      	blx	r3
 
-  802fd10:	b930      	cbnz	r0, 802fd20 <netif_add+0x40>
 
-     return NULL;
 
-   }
 
-   /* add this netif to the list */
 
-   netif->next = netif_list;
 
-  802fd12:	4b06      	ldr	r3, [pc, #24]	; (802fd2c <netif_add+0x4c>)
 
-  802fd14:	681a      	ldr	r2, [r3, #0]
 
-  802fd16:	6022      	str	r2, [r4, #0]
 
-   netif_list = netif;
 
-  802fd18:	601c      	str	r4, [r3, #0]
 
-   snmp_inc_iflist();
 
-  802fd1a:	f004 fd03 	bl	8034724 <snmp_inc_iflist>
 
-   LWIP_DEBUGF(NETIF_DEBUG, (" netmask "));
 
-   ip_addr_debug_print(NETIF_DEBUG, netmask);
 
-   LWIP_DEBUGF(NETIF_DEBUG, (" gw "));
 
-   ip_addr_debug_print(NETIF_DEBUG, gw);
 
-   LWIP_DEBUGF(NETIF_DEBUG, ("\n"));
 
-   return netif;
 
-  802fd1e:	e000      	b.n	802fd22 <netif_add+0x42>
 
-   netif_set_addr(netif, ipaddr, netmask, gw);
 
-   /* call user specified initialization function for netif */
 
-   if (init(netif) != ERR_OK) {
 
-     return NULL;
 
-  802fd20:	462c      	mov	r4, r5
 
-   ip_addr_debug_print(NETIF_DEBUG, netmask);
 
-   LWIP_DEBUGF(NETIF_DEBUG, (" gw "));
 
-   ip_addr_debug_print(NETIF_DEBUG, gw);
 
-   LWIP_DEBUGF(NETIF_DEBUG, ("\n"));
 
-   return netif;
 
- }
 
-  802fd22:	4620      	mov	r0, r4
 
-  802fd24:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 
-  802fd26:	bf00      	nop
 
-  802fd28:	2000c3d4 	.word	0x2000c3d4
 
-  802fd2c:	2000f6b0 	.word	0x2000f6b0
 
- 0802fd30 <netif_set_default>:
 
-  *
 
-  * @param netif the default network interface
 
-  */
 
- void
 
- netif_set_default(struct netif *netif)
 
- {
 
-  802fd30:	b510      	push	{r4, lr}
 
-   if (netif == NULL) {
 
-  802fd32:	4604      	mov	r4, r0
 
-     /* remove default route */
 
-     snmp_delete_iprteidx_tree(1, netif);
 
-  802fd34:	4621      	mov	r1, r4
 
-  802fd36:	2001      	movs	r0, #1
 
-  * @param netif the default network interface
 
-  */
 
- void
 
- netif_set_default(struct netif *netif)
 
- {
 
-   if (netif == NULL) {
 
-  802fd38:	b914      	cbnz	r4, 802fd40 <netif_set_default+0x10>
 
-     /* remove default route */
 
-     snmp_delete_iprteidx_tree(1, netif);
 
-  802fd3a:	f004 fee7 	bl	8034b0c <snmp_delete_iprteidx_tree>
 
-  802fd3e:	e001      	b.n	802fd44 <netif_set_default+0x14>
 
-   } else {
 
-     /* install default route */
 
-     snmp_insert_iprteidx_tree(1, netif);
 
-  802fd40:	f004 fe98 	bl	8034a74 <snmp_insert_iprteidx_tree>
 
-   }
 
-   netif_default = netif;
 
-  802fd44:	4b01      	ldr	r3, [pc, #4]	; (802fd4c <netif_set_default+0x1c>)
 
-  802fd46:	601c      	str	r4, [r3, #0]
 
-  802fd48:	bd10      	pop	{r4, pc}
 
-  802fd4a:	bf00      	nop
 
-  802fd4c:	2000f6b4 	.word	0x2000f6b4
 
- 0802fd50 <netif_set_up>:
 
-  * up once configured.
 
-  * 
 
-  * @see dhcp_start()
 
-  */ 
 
- void netif_set_up(struct netif *netif)
 
- {
 
-  802fd50:	b510      	push	{r4, lr}
 
-   if (!(netif->flags & NETIF_FLAG_UP)) {
 
-  802fd52:	f890 302d 	ldrb.w	r3, [r0, #45]	; 0x2d
 
-  802fd56:	07da      	lsls	r2, r3, #31
 
-  * up once configured.
 
-  * 
 
-  * @see dhcp_start()
 
-  */ 
 
- void netif_set_up(struct netif *netif)
 
- {
 
-  802fd58:	4604      	mov	r4, r0
 
-   if (!(netif->flags & NETIF_FLAG_UP)) {
 
-  802fd5a:	d412      	bmi.n	802fd82 <netif_set_up+0x32>
 
-     netif->flags |= NETIF_FLAG_UP;
 
-  802fd5c:	f043 0301 	orr.w	r3, r3, #1
 
-  802fd60:	f880 302d 	strb.w	r3, [r0, #45]	; 0x2d
 
-     
 
- #if LWIP_SNMP
 
-     snmp_get_sysuptime(&netif->ts);
 
-  802fd64:	3038      	adds	r0, #56	; 0x38
 
-  802fd66:	f004 fc77 	bl	8034658 <snmp_get_sysuptime>
 
-  * @note: Enabling DHCP on a down interface will make it come
 
-  * up once configured.
 
-  * 
 
-  * @see dhcp_start()
 
-  */ 
 
- void netif_set_up(struct netif *netif)
 
-  802fd6a:	f894 302d 	ldrb.w	r3, [r4, #45]	; 0x2d
 
-     NETIF_STATUS_CALLBACK(netif);
 
-     if (netif->flags & NETIF_FLAG_LINK_UP) {
 
- #if LWIP_ARP
 
-       /* For Ethernet network interfaces, we would like to send a "gratuitous ARP" */ 
 
-       if (netif->flags & (NETIF_FLAG_ETHARP)) {
 
-  802fd6e:	f003 0330 	and.w	r3, r3, #48	; 0x30
 
-  802fd72:	2b30      	cmp	r3, #48	; 0x30
 
-  802fd74:	d105      	bne.n	802fd82 <netif_set_up+0x32>
 
-         etharp_gratuitous(netif);
 
-  802fd76:	4620      	mov	r0, r4
 
-  802fd78:	1d21      	adds	r1, r4, #4
 
-         igmp_report_groups( netif);
 
-       }
 
- #endif /* LWIP_IGMP */
 
-     }
 
-   }
 
- }
 
-  802fd7a:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
-     if (netif->flags & NETIF_FLAG_LINK_UP) {
 
- #if LWIP_ARP
 
-       /* For Ethernet network interfaces, we would like to send a "gratuitous ARP" */ 
 
-       if (netif->flags & (NETIF_FLAG_ETHARP)) {
 
-         etharp_gratuitous(netif);
 
-  802fd7e:	f007 b9c9 	b.w	8037114 <etharp_request>
 
-  802fd82:	bd10      	pop	{r4, pc}
 
- 0802fd84 <netif_set_down>:
 
-  * up once configured.
 
-  * 
 
-  * @see dhcp_start()
 
-  */ 
 
- void netif_set_down(struct netif *netif)
 
- {
 
-  802fd84:	b510      	push	{r4, lr}
 
-   if (netif->flags & NETIF_FLAG_UP) {
 
-  802fd86:	f890 302d 	ldrb.w	r3, [r0, #45]	; 0x2d
 
-  802fd8a:	07d9      	lsls	r1, r3, #31
 
-  * up once configured.
 
-  * 
 
-  * @see dhcp_start()
 
-  */ 
 
- void netif_set_down(struct netif *netif)
 
- {
 
-  802fd8c:	4604      	mov	r4, r0
 
-   if (netif->flags & NETIF_FLAG_UP) {
 
-  802fd8e:	d511      	bpl.n	802fdb4 <netif_set_down+0x30>
 
-     netif->flags &= ~NETIF_FLAG_UP;
 
-  802fd90:	f023 0301 	bic.w	r3, r3, #1
 
-  802fd94:	f880 302d 	strb.w	r3, [r0, #45]	; 0x2d
 
- #if LWIP_SNMP
 
-     snmp_get_sysuptime(&netif->ts);
 
-  802fd98:	3038      	adds	r0, #56	; 0x38
 
-  802fd9a:	f004 fc5d 	bl	8034658 <snmp_get_sysuptime>
 
- #endif
 
- #if LWIP_ARP
 
-     if (netif->flags & NETIF_FLAG_ETHARP) {
 
-  802fd9e:	f894 302d 	ldrb.w	r3, [r4, #45]	; 0x2d
 
-  802fda2:	f003 0320 	and.w	r3, r3, #32
 
-  802fda6:	b2db      	uxtb	r3, r3
 
-  802fda8:	b123      	cbz	r3, 802fdb4 <netif_set_down+0x30>
 
-       etharp_cleanup_netif(netif);
 
-  802fdaa:	4620      	mov	r0, r4
 
-     }
 
- #endif /* LWIP_ARP */
 
-     NETIF_STATUS_CALLBACK(netif);
 
-   }
 
- }
 
-  802fdac:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
-     snmp_get_sysuptime(&netif->ts);
 
- #endif
 
- #if LWIP_ARP
 
-     if (netif->flags & NETIF_FLAG_ETHARP) {
 
-       etharp_cleanup_netif(netif);
 
-  802fdb0:	f007 b980 	b.w	80370b4 <etharp_cleanup_netif>
 
-  802fdb4:	bd10      	pop	{r4, pc}
 
- 0802fdb6 <pbuf_header>:
 
-  * @return non-zero on failure, zero on success.
 
-  *
 
-  */
 
- u8_t
 
- pbuf_header(struct pbuf *p, s16_t header_size_increment)
 
- {
 
-  802fdb6:	b510      	push	{r4, lr}
 
-   u16_t type;
 
-   void *payload;
 
-   u16_t increment_magnitude;
 
-   LWIP_ASSERT("p != NULL", p != NULL);
 
-   if ((header_size_increment == 0) || (p == NULL)) {
 
-  802fdb8:	b321      	cbz	r1, 802fe04 <pbuf_header+0x4e>
 
-  802fdba:	b330      	cbz	r0, 802fe0a <pbuf_header+0x54>
 
-     return 0;
 
-   }
 
-  
 
-   if (header_size_increment < 0){
 
-  802fdbc:	2900      	cmp	r1, #0
 
-  802fdbe:	da05      	bge.n	802fdcc <pbuf_header+0x16>
 
-     increment_magnitude = -header_size_increment;
 
-  802fdc0:	424b      	negs	r3, r1
 
-     /* Check that we aren't going to move off the end of the pbuf */
 
-     LWIP_ERROR("increment_magnitude <= p->len", (increment_magnitude <= p->len), return 1;);
 
-  802fdc2:	8942      	ldrh	r2, [r0, #10]
 
-   if ((header_size_increment == 0) || (p == NULL)) {
 
-     return 0;
 
-   }
 
-  
 
-   if (header_size_increment < 0){
 
-     increment_magnitude = -header_size_increment;
 
-  802fdc4:	b29b      	uxth	r3, r3
 
-     /* Check that we aren't going to move off the end of the pbuf */
 
-     LWIP_ERROR("increment_magnitude <= p->len", (increment_magnitude <= p->len), return 1;);
 
-  802fdc6:	429a      	cmp	r2, r3
 
-  802fdc8:	d201      	bcs.n	802fdce <pbuf_header+0x18>
 
-  802fdca:	e01d      	b.n	802fe08 <pbuf_header+0x52>
 
-   } else {
 
-     increment_magnitude = header_size_increment;
 
-  802fdcc:	b28b      	uxth	r3, r1
 
-     LWIP_ASSERT("p->payload - increment_magnitude >= p + SIZEOF_STRUCT_PBUF",
 
-                 (u8_t *)p->payload - increment_magnitude >= (u8_t *)p + SIZEOF_STRUCT_PBUF);
 
- #endif
 
-   }
 
-   type = p->type;
 
-  802fdce:	7b02      	ldrb	r2, [r0, #12]
 
-   /* remember current payload pointer */
 
-   payload = p->payload;
 
-  802fdd0:	6844      	ldr	r4, [r0, #4]
 
-   /* pbuf types containing payloads? */
 
-   if (type == PBUF_RAM || type == PBUF_POOL) {
 
-  802fdd2:	b10a      	cbz	r2, 802fdd8 <pbuf_header+0x22>
 
-  802fdd4:	2a03      	cmp	r2, #3
 
-  802fdd6:	d105      	bne.n	802fde4 <pbuf_header+0x2e>
 
-     /* set new payload pointer */
 
-     p->payload = (u8_t *)p->payload - header_size_increment;
 
-  802fdd8:	1a64      	subs	r4, r4, r1
 
-     /* boundary check fails? */
 
-     if ((u8_t *)p->payload < (u8_t *)p + SIZEOF_STRUCT_PBUF) {
 
-  802fdda:	f100 0310 	add.w	r3, r0, #16
 
-  802fdde:	429c      	cmp	r4, r3
 
-  802fde0:	d312      	bcc.n	802fe08 <pbuf_header+0x52>
 
-  802fde2:	e008      	b.n	802fdf6 <pbuf_header+0x40>
 
-       p->payload = payload;
 
-       /* bail out unsuccesfully */
 
-       return 1;
 
-     }
 
-   /* pbuf types refering to external payloads? */
 
-   } else if (type == PBUF_REF || type == PBUF_ROM) {
 
-  802fde4:	3a01      	subs	r2, #1
 
-  802fde6:	2a01      	cmp	r2, #1
 
-  802fde8:	d80e      	bhi.n	802fe08 <pbuf_header+0x52>
 
-     /* hide a header in the payload? */
 
-     if ((header_size_increment < 0) && (increment_magnitude <= p->len)) {
 
-  802fdea:	2900      	cmp	r1, #0
 
-  802fdec:	da0c      	bge.n	802fe08 <pbuf_header+0x52>
 
-  802fdee:	8942      	ldrh	r2, [r0, #10]
 
-  802fdf0:	429a      	cmp	r2, r3
 
-  802fdf2:	d309      	bcc.n	802fe08 <pbuf_header+0x52>
 
-       /* increase payload pointer */
 
-       p->payload = (u8_t *)p->payload - header_size_increment;
 
-  802fdf4:	1a64      	subs	r4, r4, r1
 
-     /* Unknown type */
 
-     LWIP_ASSERT("bad pbuf type", 0);
 
-     return 1;
 
-   }
 
-   /* modify pbuf length fields */
 
-   p->len += header_size_increment;
 
-  802fdf6:	8943      	ldrh	r3, [r0, #10]
 
-   /* pbuf types refering to external payloads? */
 
-   } else if (type == PBUF_REF || type == PBUF_ROM) {
 
-     /* hide a header in the payload? */
 
-     if ((header_size_increment < 0) && (increment_magnitude <= p->len)) {
 
-       /* increase payload pointer */
 
-       p->payload = (u8_t *)p->payload - header_size_increment;
 
-  802fdf8:	6044      	str	r4, [r0, #4]
 
-     /* Unknown type */
 
-     LWIP_ASSERT("bad pbuf type", 0);
 
-     return 1;
 
-   }
 
-   /* modify pbuf length fields */
 
-   p->len += header_size_increment;
 
-  802fdfa:	18cb      	adds	r3, r1, r3
 
-  802fdfc:	8143      	strh	r3, [r0, #10]
 
-   p->tot_len += header_size_increment;
 
-  802fdfe:	8903      	ldrh	r3, [r0, #8]
 
-  802fe00:	18c9      	adds	r1, r1, r3
 
-  802fe02:	8101      	strh	r1, [r0, #8]
 
-   LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_header: old %p new %p (%"S16_F")\n",
 
-     (void *)payload, (void *)p->payload, header_size_increment));
 
-   return 0;
 
-  802fe04:	2000      	movs	r0, #0
 
-  802fe06:	bd10      	pop	{r4, pc}
 
-   }
 
-  
 
-   if (header_size_increment < 0){
 
-     increment_magnitude = -header_size_increment;
 
-     /* Check that we aren't going to move off the end of the pbuf */
 
-     LWIP_ERROR("increment_magnitude <= p->len", (increment_magnitude <= p->len), return 1;);
 
-  802fe08:	2001      	movs	r0, #1
 
-   LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_header: old %p new %p (%"S16_F")\n",
 
-     (void *)payload, (void *)p->payload, header_size_increment));
 
-   return 0;
 
- }
 
-  802fe0a:	bd10      	pop	{r4, pc}
 
- 0802fe0c <pbuf_free>:
 
-  * 1->1->1 becomes .......
 
-  *
 
-  */
 
- u8_t
 
- pbuf_free(struct pbuf *p)
 
- {
 
-  802fe0c:	b570      	push	{r4, r5, r6, lr}
 
-   u16_t type;
 
-   struct pbuf *q;
 
-   u8_t count;
 
-   if (p == NULL) {
 
-  802fe0e:	4604      	mov	r4, r0
 
-  802fe10:	b300      	cbz	r0, 802fe54 <pbuf_free+0x48>
 
-  802fe12:	2500      	movs	r5, #0
 
-     u16_t ref;
 
-     SYS_ARCH_DECL_PROTECT(old_level);
 
-     /* Since decrementing ref cannot be guaranteed to be a single machine operation
 
-      * we must protect it. We put the new ref into a local variable to prevent
 
-      * further protection. */
 
-     SYS_ARCH_PROTECT(old_level);
 
-  802fe14:	f007 fe58 	bl	8037ac8 <sys_arch_protect>
 
-     /* all pbufs in a chain are referenced at least once */
 
-     LWIP_ASSERT("pbuf_free: p->ref > 0", p->ref > 0);
 
-     /* decrease reference count (number of pointers to pbuf) */
 
-     ref = --(p->ref);
 
-  802fe18:	89e6      	ldrh	r6, [r4, #14]
 
-  802fe1a:	3e01      	subs	r6, #1
 
-  802fe1c:	b2b6      	uxth	r6, r6
 
-  802fe1e:	81e6      	strh	r6, [r4, #14]
 
-     SYS_ARCH_UNPROTECT(old_level);
 
-  802fe20:	f007 fe5c 	bl	8037adc <sys_arch_unprotect>
 
-     /* this pbuf is no longer referenced to? */
 
-     if (ref == 0) {
 
-  802fe24:	b9be      	cbnz	r6, 802fe56 <pbuf_free+0x4a>
 
-       /* remember next pbuf in chain for next iteration */
 
-       q = p->next;
 
-       LWIP_DEBUGF( PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_free: deallocating %p\n", (void *)p));
 
-       type = p->type;
 
-  802fe26:	7b23      	ldrb	r3, [r4, #12]
 
-     ref = --(p->ref);
 
-     SYS_ARCH_UNPROTECT(old_level);
 
-     /* this pbuf is no longer referenced to? */
 
-     if (ref == 0) {
 
-       /* remember next pbuf in chain for next iteration */
 
-       q = p->next;
 
-  802fe28:	6826      	ldr	r6, [r4, #0]
 
-         pc->custom_free_function(p);
 
-       } else
 
- #endif /* LWIP_SUPPORT_CUSTOM_PBUF */
 
-       {
 
-         /* is this a pbuf from the pool? */
 
-         if (type == PBUF_POOL) {
 
-  802fe2a:	2b03      	cmp	r3, #3
 
-  802fe2c:	d101      	bne.n	802fe32 <pbuf_free+0x26>
 
-           memp_free(MEMP_PBUF_POOL, p);
 
-  802fe2e:	200f      	movs	r0, #15
 
-  802fe30:	e003      	b.n	802fe3a <pbuf_free+0x2e>
 
-         /* is this a ROM or RAM referencing pbuf? */
 
-         } else if (type == PBUF_ROM || type == PBUF_REF) {
 
-  802fe32:	3b01      	subs	r3, #1
 
-  802fe34:	2b01      	cmp	r3, #1
 
-  802fe36:	d804      	bhi.n	802fe42 <pbuf_free+0x36>
 
-           memp_free(MEMP_PBUF, p);
 
-  802fe38:	200e      	movs	r0, #14
 
-  802fe3a:	4621      	mov	r1, r4
 
-  802fe3c:	f7ff fedc 	bl	802fbf8 <memp_free>
 
-  802fe40:	e002      	b.n	802fe48 <pbuf_free+0x3c>
 
-         /* type == PBUF_RAM */
 
-         } else {
 
-           mem_free(p);
 
-  802fe42:	4620      	mov	r0, r4
 
-  802fe44:	f7ff fd70 	bl	802f928 <mem_free>
 
-         }
 
-       }
 
-       count++;
 
-  802fe48:	3501      	adds	r5, #1
 
-  802fe4a:	b2ed      	uxtb	r5, r5
 
-     p->type == PBUF_REF || p->type == PBUF_POOL);
 
-   count = 0;
 
-   /* de-allocate all consecutive pbufs from the head of the chain that
 
-    * obtain a zero reference count after decrementing*/
 
-   while (p != NULL) {
 
-  802fe4c:	4634      	mov	r4, r6
 
-  802fe4e:	2e00      	cmp	r6, #0
 
-  802fe50:	d1e0      	bne.n	802fe14 <pbuf_free+0x8>
 
-  802fe52:	e000      	b.n	802fe56 <pbuf_free+0x4a>
 
-   if (p == NULL) {
 
-     LWIP_ASSERT("p != NULL", p != NULL);
 
-     /* if assertions are disabled, proceed with debug output */
 
-     LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_LEVEL_SERIOUS,
 
-       ("pbuf_free(p == NULL) was called.\n"));
 
-     return 0;
 
-  802fe54:	4605      	mov	r5, r0
 
-     }
 
-   }
 
-   PERF_STOP("pbuf_free");
 
-   /* return number of de-allocated pbufs */
 
-   return count;
 
- }
 
-  802fe56:	4628      	mov	r0, r5
 
-  802fe58:	bd70      	pop	{r4, r5, r6, pc}
 
- 0802fe5a <pbuf_realloc>:
 
-  *
 
-  * @note Despite its name, pbuf_realloc cannot grow the size of a pbuf (chain).
 
-  */
 
- void
 
- pbuf_realloc(struct pbuf *p, u16_t new_len)
 
- {
 
-  802fe5a:	b538      	push	{r3, r4, r5, lr}
 
-               p->type == PBUF_ROM ||
 
-               p->type == PBUF_RAM ||
 
-               p->type == PBUF_REF);
 
-   /* desired length larger than current length? */
 
-   if (new_len >= p->tot_len) {
 
-  802fe5c:	8903      	ldrh	r3, [r0, #8]
 
-  802fe5e:	4299      	cmp	r1, r3
 
-  802fe60:	d220      	bcs.n	802fea4 <pbuf_realloc+0x4a>
 
-     return;
 
-   }
 
-   /* the pbuf chain grows by (new_len - p->tot_len) bytes
 
-    * (which may be negative in case of shrinking) */
 
-   grow = new_len - p->tot_len;
 
-  802fe62:	1aca      	subs	r2, r1, r3
 
-   /* first, step over any pbufs that should remain in the chain */
 
-   rem_len = new_len;
 
-   q = p;
 
-   /* should this pbuf be kept? */
 
-   while (rem_len > q->len) {
 
-  802fe64:	460d      	mov	r5, r1
 
-  802fe66:	4604      	mov	r4, r0
 
-  802fe68:	e005      	b.n	802fe76 <pbuf_realloc+0x1c>
 
-     /* decrease remaining length by pbuf length */
 
-     rem_len -= q->len;
 
-  802fe6a:	1aed      	subs	r5, r5, r3
 
-     /* decrease total length indicator */
 
-     LWIP_ASSERT("grow < max_u16_t", grow < 0xffff);
 
-     q->tot_len += (u16_t)grow;
 
-  802fe6c:	8923      	ldrh	r3, [r4, #8]
 
-  802fe6e:	18d3      	adds	r3, r2, r3
 
-  802fe70:	8123      	strh	r3, [r4, #8]
 
-     /* proceed to next pbuf in chain */
 
-     q = q->next;
 
-  802fe72:	6824      	ldr	r4, [r4, #0]
 
-   rem_len = new_len;
 
-   q = p;
 
-   /* should this pbuf be kept? */
 
-   while (rem_len > q->len) {
 
-     /* decrease remaining length by pbuf length */
 
-     rem_len -= q->len;
 
-  802fe74:	b2ad      	uxth	r5, r5
 
-   /* first, step over any pbufs that should remain in the chain */
 
-   rem_len = new_len;
 
-   q = p;
 
-   /* should this pbuf be kept? */
 
-   while (rem_len > q->len) {
 
-  802fe76:	8963      	ldrh	r3, [r4, #10]
 
-  802fe78:	429d      	cmp	r5, r3
 
-  802fe7a:	d8f6      	bhi.n	802fe6a <pbuf_realloc+0x10>
 
-   /* we have now reached the new last pbuf (in q) */
 
-   /* rem_len == desired length for pbuf q */
 
-   /* shrink allocated memory for PBUF_RAM */
 
-   /* (other types merely adjust their length fields */
 
-   if ((q->type == PBUF_RAM) && (rem_len != q->len)) {
 
-  802fe7c:	7b22      	ldrb	r2, [r4, #12]
 
-  802fe7e:	b94a      	cbnz	r2, 802fe94 <pbuf_realloc+0x3a>
 
-  802fe80:	429d      	cmp	r5, r3
 
-  802fe82:	d007      	beq.n	802fe94 <pbuf_realloc+0x3a>
 
-     /* reallocate and adjust the length of the pbuf that will be split */
 
-     q = (struct pbuf *)mem_trim(q, (u16_t)((u8_t *)q->payload - (u8_t *)q) + rem_len);
 
-  802fe84:	6863      	ldr	r3, [r4, #4]
 
-  802fe86:	1b1b      	subs	r3, r3, r4
 
-  802fe88:	18e9      	adds	r1, r5, r3
 
-  802fe8a:	4620      	mov	r0, r4
 
-  802fe8c:	b289      	uxth	r1, r1
 
-  802fe8e:	f7ff fda5 	bl	802f9dc <mem_trim>
 
-  802fe92:	4604      	mov	r4, r0
 
-   /* adjust length fields for new last pbuf */
 
-   q->len = rem_len;
 
-   q->tot_len = q->len;
 
-   /* any remaining pbufs in chain? */
 
-   if (q->next != NULL) {
 
-  802fe94:	6820      	ldr	r0, [r4, #0]
 
-     /* reallocate and adjust the length of the pbuf that will be split */
 
-     q = (struct pbuf *)mem_trim(q, (u16_t)((u8_t *)q->payload - (u8_t *)q) + rem_len);
 
-     LWIP_ASSERT("mem_trim returned q == NULL", q != NULL);
 
-   }
 
-   /* adjust length fields for new last pbuf */
 
-   q->len = rem_len;
 
-  802fe96:	8165      	strh	r5, [r4, #10]
 
-   q->tot_len = q->len;
 
-  802fe98:	8125      	strh	r5, [r4, #8]
 
-   /* any remaining pbufs in chain? */
 
-   if (q->next != NULL) {
 
-  802fe9a:	b108      	cbz	r0, 802fea0 <pbuf_realloc+0x46>
 
-     /* free remaining pbufs in chain */
 
-     pbuf_free(q->next);
 
-  802fe9c:	f7ff ffb6 	bl	802fe0c <pbuf_free>
 
-   }
 
-   /* q is last packet in chain */
 
-   q->next = NULL;
 
-  802fea0:	2300      	movs	r3, #0
 
-  802fea2:	6023      	str	r3, [r4, #0]
 
-  802fea4:	bd38      	pop	{r3, r4, r5, pc}
 
- 0802fea6 <pbuf_alloc>:
 
-  * @return the allocated pbuf. If multiple pbufs where allocated, this
 
-  * is the first pbuf of a pbuf chain.
 
-  */
 
- struct pbuf *
 
- pbuf_alloc(pbuf_layer layer, u16_t length, pbuf_type type)
 
- {
 
-  802fea6:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
 
-  802feaa:	460d      	mov	r5, r1
 
-  802feac:	4617      	mov	r7, r2
 
-   u16_t offset;
 
-   s32_t rem_len; /* remaining length */
 
-   LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_alloc(length=%"U16_F")\n", length));
 
-   /* determine header offset */
 
-   switch (layer) {
 
-  802feae:	2803      	cmp	r0, #3
 
-  802feb0:	d87c      	bhi.n	802ffac <pbuf_alloc+0x106>
 
-  802feb2:	e8df f000 	tbb	[pc, r0]
 
-  802feb6:	0802      	.short	0x0802
 
-  802feb8:	0604      	.short	0x0604
 
-   case PBUF_TRANSPORT:
 
-     /* add room for transport (often TCP) layer header */
 
-     offset = PBUF_LINK_HLEN + PBUF_IP_HLEN + PBUF_TRANSPORT_HLEN;
 
-  802feba:	2636      	movs	r6, #54	; 0x36
 
-  802febc:	e004      	b.n	802fec8 <pbuf_alloc+0x22>
 
-     /* add room for IP layer header */
 
-     offset = PBUF_LINK_HLEN + PBUF_IP_HLEN;
 
-     break;
 
-   case PBUF_LINK:
 
-     /* add room for link layer header */
 
-     offset = PBUF_LINK_HLEN;
 
-  802febe:	260e      	movs	r6, #14
 
-     break;
 
-  802fec0:	e002      	b.n	802fec8 <pbuf_alloc+0x22>
 
-   case PBUF_RAW:
 
-     offset = 0;
 
-  802fec2:	2600      	movs	r6, #0
 
-     break;
 
-  802fec4:	e000      	b.n	802fec8 <pbuf_alloc+0x22>
 
-     /* add room for transport (often TCP) layer header */
 
-     offset = PBUF_LINK_HLEN + PBUF_IP_HLEN + PBUF_TRANSPORT_HLEN;
 
-     break;
 
-   case PBUF_IP:
 
-     /* add room for IP layer header */
 
-     offset = PBUF_LINK_HLEN + PBUF_IP_HLEN;
 
-  802fec6:	2622      	movs	r6, #34	; 0x22
 
-   default:
 
-     LWIP_ASSERT("pbuf_alloc: bad pbuf layer", 0);
 
-     return NULL;
 
-   }
 
-   switch (type) {
 
-  802fec8:	2f03      	cmp	r7, #3
 
-  802feca:	d86f      	bhi.n	802ffac <pbuf_alloc+0x106>
 
-  802fecc:	e8df f007 	tbb	[pc, r7]
 
-  802fed0:	025e5e46 	.word	0x025e5e46
 
-   case PBUF_POOL:
 
-     /* allocate head of pbuf chain into p */
 
-     p = (struct pbuf *)memp_malloc(MEMP_PBUF_POOL);
 
-  802fed4:	200f      	movs	r0, #15
 
-  802fed6:	f7ff fe79 	bl	802fbcc <memp_malloc>
 
-     LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_alloc: allocated pbuf %p\n", (void *)p));
 
-     if (p == NULL) {
 
-  802feda:	4604      	mov	r4, r0
 
-  802fedc:	b900      	cbnz	r0, 802fee0 <pbuf_alloc+0x3a>
 
-  802fede:	e065      	b.n	802ffac <pbuf_alloc+0x106>
 
-     }
 
-     p->type = type;
 
-     p->next = NULL;
 
-     /* make the payload pointer point 'offset' bytes into pbuf data memory */
 
-     p->payload = LWIP_MEM_ALIGN((void *)((u8_t *)p + (SIZEOF_STRUCT_PBUF + offset)));
 
-  802fee0:	1982      	adds	r2, r0, r6
 
-     LWIP_ASSERT("pbuf_alloc: pbuf p->payload properly aligned",
 
-             ((mem_ptr_t)p->payload % MEM_ALIGNMENT) == 0);
 
-     /* the total length of the pbuf chain is the requested size */
 
-     p->tot_len = length;
 
-     /* set the length of the first pbuf in the chain */
 
-     p->len = LWIP_MIN(length, PBUF_POOL_BUFSIZE_ALIGNED - LWIP_MEM_ALIGN_SIZE(offset));
 
-  802fee2:	3603      	adds	r6, #3
 
-  802fee4:	f026 0603 	bic.w	r6, r6, #3
 
-     }
 
-     p->type = type;
 
-     p->next = NULL;
 
-     /* make the payload pointer point 'offset' bytes into pbuf data memory */
 
-     p->payload = LWIP_MEM_ALIGN((void *)((u8_t *)p + (SIZEOF_STRUCT_PBUF + offset)));
 
-  802fee8:	3213      	adds	r2, #19
 
-     LWIP_ASSERT("pbuf_alloc: pbuf p->payload properly aligned",
 
-             ((mem_ptr_t)p->payload % MEM_ALIGNMENT) == 0);
 
-     /* the total length of the pbuf chain is the requested size */
 
-     p->tot_len = length;
 
-     /* set the length of the first pbuf in the chain */
 
-     p->len = LWIP_MIN(length, PBUF_POOL_BUFSIZE_ALIGNED - LWIP_MEM_ALIGN_SIZE(offset));
 
-  802feea:	f5c6 66c0 	rsb	r6, r6, #1536	; 0x600
 
-     LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_alloc: allocated pbuf %p\n", (void *)p));
 
-     if (p == NULL) {
 
-       PBUF_POOL_IS_EMPTY();
 
-       return NULL;
 
-     }
 
-     p->type = type;
 
-  802feee:	2303      	movs	r3, #3
 
-     p->next = NULL;
 
-     /* make the payload pointer point 'offset' bytes into pbuf data memory */
 
-     p->payload = LWIP_MEM_ALIGN((void *)((u8_t *)p + (SIZEOF_STRUCT_PBUF + offset)));
 
-  802fef0:	f022 0203 	bic.w	r2, r2, #3
 
-     LWIP_ASSERT("pbuf_alloc: pbuf p->payload properly aligned",
 
-             ((mem_ptr_t)p->payload % MEM_ALIGNMENT) == 0);
 
-     /* the total length of the pbuf chain is the requested size */
 
-     p->tot_len = length;
 
-     /* set the length of the first pbuf in the chain */
 
-     p->len = LWIP_MIN(length, PBUF_POOL_BUFSIZE_ALIGNED - LWIP_MEM_ALIGN_SIZE(offset));
 
-  802fef4:	3604      	adds	r6, #4
 
-  802fef6:	42ae      	cmp	r6, r5
 
-  802fef8:	bfa8      	it	ge
 
-  802fefa:	462e      	movge	r6, r5
 
-     LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_alloc: allocated pbuf %p\n", (void *)p));
 
-     if (p == NULL) {
 
-       PBUF_POOL_IS_EMPTY();
 
-       return NULL;
 
-     }
 
-     p->type = type;
 
-  802fefc:	7303      	strb	r3, [r0, #12]
 
-     p->next = NULL;
 
-     /* make the payload pointer point 'offset' bytes into pbuf data memory */
 
-     p->payload = LWIP_MEM_ALIGN((void *)((u8_t *)p + (SIZEOF_STRUCT_PBUF + offset)));
 
-  802fefe:	6042      	str	r2, [r0, #4]
 
-     if (p == NULL) {
 
-       PBUF_POOL_IS_EMPTY();
 
-       return NULL;
 
-     }
 
-     p->type = type;
 
-     p->next = NULL;
 
-  802ff00:	2300      	movs	r3, #0
 
-                 ((u8_t*)p->payload + p->len <=
 
-                  (u8_t*)p + SIZEOF_STRUCT_PBUF + PBUF_POOL_BUFSIZE_ALIGNED));
 
-     LWIP_ASSERT("PBUF_POOL_BUFSIZE must be bigger than MEM_ALIGNMENT",
 
-       (PBUF_POOL_BUFSIZE_ALIGNED - LWIP_MEM_ALIGN_SIZE(offset)) > 0 );
 
-     /* set reference count (needed here in case we fail) */
 
-     p->ref = 1;
 
-  802ff02:	2201      	movs	r2, #1
 
-     LWIP_ASSERT("pbuf_alloc: pbuf p->payload properly aligned",
 
-             ((mem_ptr_t)p->payload % MEM_ALIGNMENT) == 0);
 
-     /* the total length of the pbuf chain is the requested size */
 
-     p->tot_len = length;
 
-     /* set the length of the first pbuf in the chain */
 
-     p->len = LWIP_MIN(length, PBUF_POOL_BUFSIZE_ALIGNED - LWIP_MEM_ALIGN_SIZE(offset));
 
-  802ff04:	8146      	strh	r6, [r0, #10]
 
-     if (p == NULL) {
 
-       PBUF_POOL_IS_EMPTY();
 
-       return NULL;
 
-     }
 
-     p->type = type;
 
-     p->next = NULL;
 
-  802ff06:	6003      	str	r3, [r0, #0]
 
-     /* make the payload pointer point 'offset' bytes into pbuf data memory */
 
-     p->payload = LWIP_MEM_ALIGN((void *)((u8_t *)p + (SIZEOF_STRUCT_PBUF + offset)));
 
-     LWIP_ASSERT("pbuf_alloc: pbuf p->payload properly aligned",
 
-             ((mem_ptr_t)p->payload % MEM_ALIGNMENT) == 0);
 
-     /* the total length of the pbuf chain is the requested size */
 
-     p->tot_len = length;
 
-  802ff08:	8105      	strh	r5, [r0, #8]
 
-                 ((u8_t*)p->payload + p->len <=
 
-                  (u8_t*)p + SIZEOF_STRUCT_PBUF + PBUF_POOL_BUFSIZE_ALIGNED));
 
-     LWIP_ASSERT("PBUF_POOL_BUFSIZE must be bigger than MEM_ALIGNMENT",
 
-       (PBUF_POOL_BUFSIZE_ALIGNED - LWIP_MEM_ALIGN_SIZE(offset)) > 0 );
 
-     /* set reference count (needed here in case we fail) */
 
-     p->ref = 1;
 
-  802ff0a:	81c2      	strh	r2, [r0, #14]
 
-     /* now allocate the tail of the pbuf chain */
 
-     /* remember first pbuf for linkage in next iteration */
 
-     r = p;
 
-     /* remaining length to be allocated */
 
-     rem_len = length - p->len;
 
-  802ff0c:	1bae      	subs	r6, r5, r6
 
-     /* any remaining pbufs to be allocated? */
 
-     while (rem_len > 0) {
 
-  802ff0e:	4607      	mov	r7, r0
 
-  802ff10:	4698      	mov	r8, r3
 
-       r->next = q;
 
-       /* set total length of this pbuf and next in chain */
 
-       LWIP_ASSERT("rem_len < max_u16_t", rem_len < 0xffff);
 
-       q->tot_len = (u16_t)rem_len;
 
-       /* this pbuf length is pool size, unless smaller sized tail */
 
-       q->len = LWIP_MIN((u16_t)rem_len, PBUF_POOL_BUFSIZE_ALIGNED);
 
-  802ff12:	f240 6903 	movw	r9, #1539	; 0x603
 
-  802ff16:	f240 6a04 	movw	sl, #1540	; 0x604
 
-     /* remember first pbuf for linkage in next iteration */
 
-     r = p;
 
-     /* remaining length to be allocated */
 
-     rem_len = length - p->len;
 
-     /* any remaining pbufs to be allocated? */
 
-     while (rem_len > 0) {
 
-  802ff1a:	e01c      	b.n	802ff56 <pbuf_alloc+0xb0>
 
-       q = (struct pbuf *)memp_malloc(MEMP_PBUF_POOL);
 
-  802ff1c:	200f      	movs	r0, #15
 
-  802ff1e:	f7ff fe55 	bl	802fbcc <memp_malloc>
 
-       if (q == NULL) {
 
-  802ff22:	4605      	mov	r5, r0
 
-  802ff24:	b918      	cbnz	r0, 802ff2e <pbuf_alloc+0x88>
 
-         PBUF_POOL_IS_EMPTY();
 
-         /* free chain so far allocated */
 
-         pbuf_free(p);
 
-  802ff26:	4620      	mov	r0, r4
 
-  802ff28:	f7ff ff70 	bl	802fe0c <pbuf_free>
 
-  802ff2c:	e03e      	b.n	802ffac <pbuf_alloc+0x106>
 
-         /* bail out unsuccesfully */
 
-         return NULL;
 
-       }
 
-       q->type = type;
 
-  802ff2e:	2303      	movs	r3, #3
 
-       /* set total length of this pbuf and next in chain */
 
-       LWIP_ASSERT("rem_len < max_u16_t", rem_len < 0xffff);
 
-       q->tot_len = (u16_t)rem_len;
 
-       /* this pbuf length is pool size, unless smaller sized tail */
 
-       q->len = LWIP_MIN((u16_t)rem_len, PBUF_POOL_BUFSIZE_ALIGNED);
 
-       q->payload = (void *)((u8_t *)q + SIZEOF_STRUCT_PBUF);
 
-  802ff30:	f100 0210 	add.w	r2, r0, #16
 
-         /* free chain so far allocated */
 
-         pbuf_free(p);
 
-         /* bail out unsuccesfully */
 
-         return NULL;
 
-       }
 
-       q->type = type;
 
-  802ff34:	7303      	strb	r3, [r0, #12]
 
-       q->next = NULL;
 
-       /* make previous pbuf point to this pbuf */
 
-       r->next = q;
 
-       /* set total length of this pbuf and next in chain */
 
-       LWIP_ASSERT("rem_len < max_u16_t", rem_len < 0xffff);
 
-       q->tot_len = (u16_t)rem_len;
 
-  802ff36:	b2b3      	uxth	r3, r6
 
-  802ff38:	8103      	strh	r3, [r0, #8]
 
-       /* this pbuf length is pool size, unless smaller sized tail */
 
-       q->len = LWIP_MIN((u16_t)rem_len, PBUF_POOL_BUFSIZE_ALIGNED);
 
-       q->payload = (void *)((u8_t *)q + SIZEOF_STRUCT_PBUF);
 
-  802ff3a:	6042      	str	r2, [r0, #4]
 
-       r->next = q;
 
-       /* set total length of this pbuf and next in chain */
 
-       LWIP_ASSERT("rem_len < max_u16_t", rem_len < 0xffff);
 
-       q->tot_len = (u16_t)rem_len;
 
-       /* this pbuf length is pool size, unless smaller sized tail */
 
-       q->len = LWIP_MIN((u16_t)rem_len, PBUF_POOL_BUFSIZE_ALIGNED);
 
-  802ff3c:	454b      	cmp	r3, r9
 
-  802ff3e:	bf88      	it	hi
 
-  802ff40:	4653      	movhi	r3, sl
 
-       LWIP_ASSERT("pbuf_alloc: pbuf q->payload properly aligned",
 
-               ((mem_ptr_t)q->payload % MEM_ALIGNMENT) == 0);
 
-       LWIP_ASSERT("check p->payload + p->len does not overflow pbuf",
 
-                   ((u8_t*)p->payload + p->len <=
 
-                    (u8_t*)p + SIZEOF_STRUCT_PBUF + PBUF_POOL_BUFSIZE_ALIGNED));
 
-       q->ref = 1;
 
-  802ff42:	2201      	movs	r2, #1
 
-         /* bail out unsuccesfully */
 
-         return NULL;
 
-       }
 
-       q->type = type;
 
-       q->flags = 0;
 
-       q->next = NULL;
 
-  802ff44:	f8c0 8000 	str.w	r8, [r0]
 
-         pbuf_free(p);
 
-         /* bail out unsuccesfully */
 
-         return NULL;
 
-       }
 
-       q->type = type;
 
-       q->flags = 0;
 
-  802ff48:	f880 800d 	strb.w	r8, [r0, #13]
 
-       q->next = NULL;
 
-       /* make previous pbuf point to this pbuf */
 
-       r->next = q;
 
-  802ff4c:	6038      	str	r0, [r7, #0]
 
-       /* set total length of this pbuf and next in chain */
 
-       LWIP_ASSERT("rem_len < max_u16_t", rem_len < 0xffff);
 
-       q->tot_len = (u16_t)rem_len;
 
-       /* this pbuf length is pool size, unless smaller sized tail */
 
-       q->len = LWIP_MIN((u16_t)rem_len, PBUF_POOL_BUFSIZE_ALIGNED);
 
-  802ff4e:	8143      	strh	r3, [r0, #10]
 
-       LWIP_ASSERT("pbuf_alloc: pbuf q->payload properly aligned",
 
-               ((mem_ptr_t)q->payload % MEM_ALIGNMENT) == 0);
 
-       LWIP_ASSERT("check p->payload + p->len does not overflow pbuf",
 
-                   ((u8_t*)p->payload + p->len <=
 
-                    (u8_t*)p + SIZEOF_STRUCT_PBUF + PBUF_POOL_BUFSIZE_ALIGNED));
 
-       q->ref = 1;
 
-  802ff50:	81c2      	strh	r2, [r0, #14]
 
-       /* calculate remaining length to be allocated */
 
-       rem_len -= q->len;
 
-  802ff52:	1af6      	subs	r6, r6, r3
 
-  802ff54:	4607      	mov	r7, r0
 
-     /* remember first pbuf for linkage in next iteration */
 
-     r = p;
 
-     /* remaining length to be allocated */
 
-     rem_len = length - p->len;
 
-     /* any remaining pbufs to be allocated? */
 
-     while (rem_len > 0) {
 
-  802ff56:	2e00      	cmp	r6, #0
 
-  802ff58:	dce0      	bgt.n	802ff1c <pbuf_alloc+0x76>
 
-  802ff5a:	e022      	b.n	802ffa2 <pbuf_alloc+0xfc>
 
-     /*r->next = NULL;*/
 
-     break;
 
-   case PBUF_RAM:
 
-     /* If pbuf is to be allocated in RAM, allocate memory for it. */
 
-     p = (struct pbuf*)mem_malloc(LWIP_MEM_ALIGN_SIZE(SIZEOF_STRUCT_PBUF + offset) + LWIP_MEM_ALIGN_SIZE(length));
 
-  802ff5c:	f106 0013 	add.w	r0, r6, #19
 
-  802ff60:	1ceb      	adds	r3, r5, #3
 
-  802ff62:	f023 0303 	bic.w	r3, r3, #3
 
-  802ff66:	f020 0003 	bic.w	r0, r0, #3
 
-  802ff6a:	18c0      	adds	r0, r0, r3
 
-  802ff6c:	b280      	uxth	r0, r0
 
-  802ff6e:	f7ff fda3 	bl	802fab8 <mem_malloc>
 
-     if (p == NULL) {
 
-  802ff72:	4604      	mov	r4, r0
 
-  802ff74:	b1d0      	cbz	r0, 802ffac <pbuf_alloc+0x106>
 
-       return NULL;
 
-     }
 
-     /* Set up internal structure of the pbuf. */
 
-     p->payload = LWIP_MEM_ALIGN((void *)((u8_t *)p + SIZEOF_STRUCT_PBUF + offset));
 
-  802ff76:	1986      	adds	r6, r0, r6
 
-  802ff78:	3613      	adds	r6, #19
 
-     p->len = p->tot_len = length;
 
-     p->next = NULL;
 
-  802ff7a:	2300      	movs	r3, #0
 
-     p = (struct pbuf*)mem_malloc(LWIP_MEM_ALIGN_SIZE(SIZEOF_STRUCT_PBUF + offset) + LWIP_MEM_ALIGN_SIZE(length));
 
-     if (p == NULL) {
 
-       return NULL;
 
-     }
 
-     /* Set up internal structure of the pbuf. */
 
-     p->payload = LWIP_MEM_ALIGN((void *)((u8_t *)p + SIZEOF_STRUCT_PBUF + offset));
 
-  802ff7c:	f026 0603 	bic.w	r6, r6, #3
 
-  802ff80:	6046      	str	r6, [r0, #4]
 
-     p->len = p->tot_len = length;
 
-  802ff82:	8105      	strh	r5, [r0, #8]
 
-  802ff84:	8145      	strh	r5, [r0, #10]
 
-     p->next = NULL;
 
-  802ff86:	6003      	str	r3, [r0, #0]
 
-     p->type = type;
 
-  802ff88:	7303      	strb	r3, [r0, #12]
 
-  802ff8a:	e00a      	b.n	802ffa2 <pbuf_alloc+0xfc>
 
-   /* pbuf references existing (non-volatile static constant) ROM payload? */
 
-   case PBUF_ROM:
 
-   /* pbuf references existing (externally allocated) RAM payload? */
 
-   case PBUF_REF:
 
-     /* only allocate memory for the pbuf structure */
 
-     p = (struct pbuf *)memp_malloc(MEMP_PBUF);
 
-  802ff8c:	200e      	movs	r0, #14
 
-  802ff8e:	f7ff fe1d 	bl	802fbcc <memp_malloc>
 
-     if (p == NULL) {
 
-  802ff92:	4604      	mov	r4, r0
 
-  802ff94:	b150      	cbz	r0, 802ffac <pbuf_alloc+0x106>
 
-                   ("pbuf_alloc: Could not allocate MEMP_PBUF for PBUF_%s.\n",
 
-                   (type == PBUF_ROM) ? "ROM" : "REF"));
 
-       return NULL;
 
-     }
 
-     /* caller must set this field properly, afterwards */
 
-     p->payload = NULL;
 
-  802ff96:	2300      	movs	r3, #0
 
-  802ff98:	6043      	str	r3, [r0, #4]
 
-     p->len = p->tot_len = length;
 
-  802ff9a:	8105      	strh	r5, [r0, #8]
 
-  802ff9c:	8145      	strh	r5, [r0, #10]
 
-     p->next = NULL;
 
-  802ff9e:	6003      	str	r3, [r0, #0]
 
-     p->type = type;
 
-  802ffa0:	7307      	strb	r7, [r0, #12]
 
-   default:
 
-     LWIP_ASSERT("pbuf_alloc: erroneous type", 0);
 
-     return NULL;
 
-   }
 
-   /* set reference count */
 
-   p->ref = 1;
 
-  802ffa2:	2301      	movs	r3, #1
 
-  802ffa4:	81e3      	strh	r3, [r4, #14]
 
-   /* set flags */
 
-   p->flags = 0;
 
-  802ffa6:	2300      	movs	r3, #0
 
-  802ffa8:	7363      	strb	r3, [r4, #13]
 
-   LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_alloc(length=%"U16_F") == %p\n", length, (void *)p));
 
-   return p;
 
-  802ffaa:	e000      	b.n	802ffae <pbuf_alloc+0x108>
 
-     p->next = NULL;
 
-     p->type = type;
 
-     break;
 
-   default:
 
-     LWIP_ASSERT("pbuf_alloc: erroneous type", 0);
 
-     return NULL;
 
-  802ffac:	2400      	movs	r4, #0
 
-   p->ref = 1;
 
-   /* set flags */
 
-   p->flags = 0;
 
-   LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_alloc(length=%"U16_F") == %p\n", length, (void *)p));
 
-   return p;
 
- }
 
-  802ffae:	4620      	mov	r0, r4
 
-  802ffb0:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
 
- 0802ffb4 <pbuf_clen>:
 
-  * @return the number of pbufs in a chain
 
-  */
 
- u8_t
 
- pbuf_clen(struct pbuf *p)
 
- {
 
-  802ffb4:	4603      	mov	r3, r0
 
-   u8_t len;
 
-   len = 0;
 
-  802ffb6:	2000      	movs	r0, #0
 
-   while (p != NULL) {
 
-  802ffb8:	e002      	b.n	802ffc0 <pbuf_clen+0xc>
 
-     ++len;
 
-  802ffba:	3001      	adds	r0, #1
 
-     p = p->next;
 
-  802ffbc:	681b      	ldr	r3, [r3, #0]
 
- {
 
-   u8_t len;
 
-   len = 0;
 
-   while (p != NULL) {
 
-     ++len;
 
-  802ffbe:	b2c0      	uxtb	r0, r0
 
- pbuf_clen(struct pbuf *p)
 
- {
 
-   u8_t len;
 
-   len = 0;
 
-   while (p != NULL) {
 
-  802ffc0:	2b00      	cmp	r3, #0
 
-  802ffc2:	d1fa      	bne.n	802ffba <pbuf_clen+0x6>
 
-     ++len;
 
-     p = p->next;
 
-   }
 
-   return len;
 
- }
 
-  802ffc4:	4770      	bx	lr
 
- 0802ffc6 <pbuf_ref>:
 
-  * @param p pbuf to increase reference counter of
 
-  *
 
-  */
 
- void
 
- pbuf_ref(struct pbuf *p)
 
- {
 
-  802ffc6:	b510      	push	{r4, lr}
 
-   SYS_ARCH_DECL_PROTECT(old_level);
 
-   /* pbuf given? */
 
-   if (p != NULL) {
 
-  802ffc8:	4604      	mov	r4, r0
 
-  802ffca:	b140      	cbz	r0, 802ffde <pbuf_ref+0x18>
 
-     SYS_ARCH_PROTECT(old_level);
 
-  802ffcc:	f007 fd7c 	bl	8037ac8 <sys_arch_protect>
 
-     ++(p->ref);
 
-  802ffd0:	89e3      	ldrh	r3, [r4, #14]
 
-  802ffd2:	3301      	adds	r3, #1
 
-  802ffd4:	81e3      	strh	r3, [r4, #14]
 
-     SYS_ARCH_UNPROTECT(old_level);
 
-   }
 
- }
 
-  802ffd6:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
-   SYS_ARCH_DECL_PROTECT(old_level);
 
-   /* pbuf given? */
 
-   if (p != NULL) {
 
-     SYS_ARCH_PROTECT(old_level);
 
-     ++(p->ref);
 
-     SYS_ARCH_UNPROTECT(old_level);
 
-  802ffda:	f007 bd7f 	b.w	8037adc <sys_arch_unprotect>
 
-  802ffde:	bd10      	pop	{r4, pc}
 
- 0802ffe0 <pbuf_cat>:
 
-  * @see pbuf_chain()
 
-  */
 
- void
 
- pbuf_cat(struct pbuf *h, struct pbuf *t)
 
- {
 
-  802ffe0:	b510      	push	{r4, lr}
 
-   struct pbuf *p;
 
-   LWIP_ERROR("(h != NULL) && (t != NULL) (programmer violates API)",
 
-  802ffe2:	b168      	cbz	r0, 8030000 <pbuf_cat+0x20>
 
-  802ffe4:	b161      	cbz	r1, 8030000 <pbuf_cat+0x20>
 
-  802ffe6:	e003      	b.n	802fff0 <pbuf_cat+0x10>
 
-              ((h != NULL) && (t != NULL)), return;);
 
-   /* proceed to last pbuf of chain */
 
-   for (p = h; p->next != NULL; p = p->next) {
 
-     /* add total length of second chain to all totals of first chain */
 
-     p->tot_len += t->tot_len;
 
-  802ffe8:	8904      	ldrh	r4, [r0, #8]
 
-  802ffea:	191b      	adds	r3, r3, r4
 
-  802ffec:	8103      	strh	r3, [r0, #8]
 
-   LWIP_ERROR("(h != NULL) && (t != NULL) (programmer violates API)",
 
-              ((h != NULL) && (t != NULL)), return;);
 
-   /* proceed to last pbuf of chain */
 
-   for (p = h; p->next != NULL; p = p->next) {
 
-  802ffee:	4610      	mov	r0, r2
 
-  802fff0:	6802      	ldr	r2, [r0, #0]
 
-  802fff2:	890b      	ldrh	r3, [r1, #8]
 
-  802fff4:	2a00      	cmp	r2, #0
 
-  802fff6:	d1f7      	bne.n	802ffe8 <pbuf_cat+0x8>
 
-   }
 
-   /* { p is last pbuf of first h chain, p->next == NULL } */
 
-   LWIP_ASSERT("p->tot_len == p->len (of last pbuf in chain)", p->tot_len == p->len);
 
-   LWIP_ASSERT("p->next == NULL", p->next == NULL);
 
-   /* add total length of second chain to last pbuf total of first chain */
 
-   p->tot_len += t->tot_len;
 
-  802fff8:	8902      	ldrh	r2, [r0, #8]
 
-   /* chain last pbuf of head (p) with first of tail (t) */
 
-   p->next = t;
 
-  802fffa:	6001      	str	r1, [r0, #0]
 
-   }
 
-   /* { p is last pbuf of first h chain, p->next == NULL } */
 
-   LWIP_ASSERT("p->tot_len == p->len (of last pbuf in chain)", p->tot_len == p->len);
 
-   LWIP_ASSERT("p->next == NULL", p->next == NULL);
 
-   /* add total length of second chain to last pbuf total of first chain */
 
-   p->tot_len += t->tot_len;
 
-  802fffc:	189b      	adds	r3, r3, r2
 
-  802fffe:	8103      	strh	r3, [r0, #8]
 
-  8030000:	bd10      	pop	{r4, pc}
 
- 08030002 <pbuf_chain>:
 
-  * The ->ref field of the first pbuf of the tail chain is adjusted.
 
-  *
 
-  */
 
- void
 
- pbuf_chain(struct pbuf *h, struct pbuf *t)
 
- {
 
-  8030002:	b510      	push	{r4, lr}
 
-  8030004:	460c      	mov	r4, r1
 
-   pbuf_cat(h, t);
 
-  8030006:	f7ff ffeb 	bl	802ffe0 <pbuf_cat>
 
-   /* t is now referenced by h */
 
-   pbuf_ref(t);
 
-  803000a:	4620      	mov	r0, r4
 
-   LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_chain: %p references %p\n", (void *)h, (void *)t));
 
- }
 
-  803000c:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
- void
 
- pbuf_chain(struct pbuf *h, struct pbuf *t)
 
- {
 
-   pbuf_cat(h, t);
 
-   /* t is now referenced by h */
 
-   pbuf_ref(t);
 
-  8030010:	f7ff bfd9 	b.w	802ffc6 <pbuf_ref>
 
- 08030014 <pbuf_copy>:
 
-  *         ERR_ARG if one of the pbufs is NULL or p_to is not big
 
-  *                 enough to hold p_from
 
-  */
 
- err_t
 
- pbuf_copy(struct pbuf *p_to, struct pbuf *p_from)
 
- {
 
-  8030014:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
 
-  8030018:	460c      	mov	r4, r1
 
-   LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_copy(%p, %p)\n",
 
-     (void*)p_to, (void*)p_from));
 
-   /* is the target big enough to hold the source? */
 
-   LWIP_ERROR("pbuf_copy: target not big enough to hold source", ((p_to != NULL) &&
 
-  803001a:	4605      	mov	r5, r0
 
-  803001c:	b908      	cbnz	r0, 8030022 <pbuf_copy+0xe>
 
-  803001e:	20f2      	movs	r0, #242	; 0xf2
 
-  8030020:	e03f      	b.n	80300a2 <pbuf_copy+0x8e>
 
-  8030022:	2900      	cmp	r1, #0
 
-  8030024:	d0fb      	beq.n	803001e <pbuf_copy+0xa>
 
-  8030026:	8902      	ldrh	r2, [r0, #8]
 
-  8030028:	890b      	ldrh	r3, [r1, #8]
 
-  803002a:	429a      	cmp	r2, r3
 
-  803002c:	d3f7      	bcc.n	803001e <pbuf_copy+0xa>
 
-  803002e:	2600      	movs	r6, #0
 
-  8030030:	4637      	mov	r7, r6
 
-   /* iterate through pbuf chain */
 
-   do
 
-   {
 
-     /* copy one part of the original chain */
 
-     if ((p_to->len - offset_to) >= (p_from->len - offset_from)) {
 
-  8030032:	f8b4 800a 	ldrh.w	r8, [r4, #10]
 
-  8030036:	896b      	ldrh	r3, [r5, #10]
 
-       len = p_from->len - offset_from;
 
-     } else {
 
-       /* current p_from does not fit into current p_to */
 
-       len = p_to->len - offset_to;
 
-     }
 
-     MEMCPY((u8_t*)p_to->payload + offset_to, (u8_t*)p_from->payload + offset_from, len);
 
-  8030038:	6861      	ldr	r1, [r4, #4]
 
-  803003a:	6868      	ldr	r0, [r5, #4]
 
-   /* iterate through pbuf chain */
 
-   do
 
-   {
 
-     /* copy one part of the original chain */
 
-     if ((p_to->len - offset_to) >= (p_from->len - offset_from)) {
 
-  803003c:	ebc6 0808 	rsb	r8, r6, r8
 
-  8030040:	1bdb      	subs	r3, r3, r7
 
-  8030042:	4543      	cmp	r3, r8
 
-       /* complete current p_from fits into current p_to */
 
-       len = p_from->len - offset_from;
 
-     } else {
 
-       /* current p_from does not fit into current p_to */
 
-       len = p_to->len - offset_to;
 
-  8030044:	bfb4      	ite	lt
 
-  8030046:	fa1f f883 	uxthlt.w	r8, r3
 
-   do
 
-   {
 
-     /* copy one part of the original chain */
 
-     if ((p_to->len - offset_to) >= (p_from->len - offset_from)) {
 
-       /* complete current p_from fits into current p_to */
 
-       len = p_from->len - offset_from;
 
-  803004a:	fa1f f888 	uxthge.w	r8, r8
 
-     } else {
 
-       /* current p_from does not fit into current p_to */
 
-       len = p_to->len - offset_to;
 
-     }
 
-     MEMCPY((u8_t*)p_to->payload + offset_to, (u8_t*)p_from->payload + offset_from, len);
 
-  803004e:	19c0      	adds	r0, r0, r7
 
-  8030050:	1989      	adds	r1, r1, r6
 
-  8030052:	4642      	mov	r2, r8
 
-  8030054:	f7f1 fc9a 	bl	802198c <memcpy>
 
-     offset_to += len;
 
-     offset_from += len;
 
-  8030058:	4446      	add	r6, r8
 
-     LWIP_ASSERT("offset_to <= p_to->len", offset_to <= p_to->len);
 
-     LWIP_ASSERT("offset_from <= p_from->len", offset_from <= p_from->len);
 
-     if (offset_from >= p_from->len) {
 
-  803005a:	8963      	ldrh	r3, [r4, #10]
 
-       /* current p_from does not fit into current p_to */
 
-       len = p_to->len - offset_to;
 
-     }
 
-     MEMCPY((u8_t*)p_to->payload + offset_to, (u8_t*)p_from->payload + offset_from, len);
 
-     offset_to += len;
 
-     offset_from += len;
 
-  803005c:	b2b6      	uxth	r6, r6
 
-     LWIP_ASSERT("offset_to <= p_to->len", offset_to <= p_to->len);
 
-     LWIP_ASSERT("offset_from <= p_from->len", offset_from <= p_from->len);
 
-     if (offset_from >= p_from->len) {
 
-  803005e:	42b3      	cmp	r3, r6
 
-     } else {
 
-       /* current p_from does not fit into current p_to */
 
-       len = p_to->len - offset_to;
 
-     }
 
-     MEMCPY((u8_t*)p_to->payload + offset_to, (u8_t*)p_from->payload + offset_from, len);
 
-     offset_to += len;
 
-  8030060:	4447      	add	r7, r8
 
-     if (offset_from >= p_from->len) {
 
-       /* on to next p_from (if any) */
 
-       offset_from = 0;
 
-       p_from = p_from->next;
 
-     }
 
-     if (offset_to == p_to->len) {
 
-  8030062:	896b      	ldrh	r3, [r5, #10]
 
-     LWIP_ASSERT("offset_to <= p_to->len", offset_to <= p_to->len);
 
-     LWIP_ASSERT("offset_from <= p_from->len", offset_from <= p_from->len);
 
-     if (offset_from >= p_from->len) {
 
-       /* on to next p_from (if any) */
 
-       offset_from = 0;
 
-       p_from = p_from->next;
 
-  8030064:	bf98      	it	ls
 
-  8030066:	6824      	ldrls	r4, [r4, #0]
 
-     } else {
 
-       /* current p_from does not fit into current p_to */
 
-       len = p_to->len - offset_to;
 
-     }
 
-     MEMCPY((u8_t*)p_to->payload + offset_to, (u8_t*)p_from->payload + offset_from, len);
 
-     offset_to += len;
 
-  8030068:	b2bf      	uxth	r7, r7
 
-     offset_from += len;
 
-     LWIP_ASSERT("offset_to <= p_to->len", offset_to <= p_to->len);
 
-     LWIP_ASSERT("offset_from <= p_from->len", offset_from <= p_from->len);
 
-     if (offset_from >= p_from->len) {
 
-       /* on to next p_from (if any) */
 
-       offset_from = 0;
 
-  803006a:	bf98      	it	ls
 
-  803006c:	2600      	movls	r6, #0
 
-       p_from = p_from->next;
 
-     }
 
-     if (offset_to == p_to->len) {
 
-  803006e:	42bb      	cmp	r3, r7
 
-  8030070:	d105      	bne.n	803007e <pbuf_copy+0x6a>
 
-       /* on to next p_to (if any) */
 
-       offset_to = 0;
 
-       p_to = p_to->next;
 
-  8030072:	682d      	ldr	r5, [r5, #0]
 
-       LWIP_ERROR("p_to != NULL", (p_to != NULL) || (p_from == NULL) , return ERR_ARG;);
 
-  8030074:	b915      	cbnz	r5, 803007c <pbuf_copy+0x68>
 
-  8030076:	2c00      	cmp	r4, #0
 
-  8030078:	d1d1      	bne.n	803001e <pbuf_copy+0xa>
 
-  803007a:	e00f      	b.n	803009c <pbuf_copy+0x88>
 
-       offset_from = 0;
 
-       p_from = p_from->next;
 
-     }
 
-     if (offset_to == p_to->len) {
 
-       /* on to next p_to (if any) */
 
-       offset_to = 0;
 
-  803007c:	2700      	movs	r7, #0
 
-       p_to = p_to->next;
 
-       LWIP_ERROR("p_to != NULL", (p_to != NULL) || (p_from == NULL) , return ERR_ARG;);
 
-     }
 
-     if((p_from != NULL) && (p_from->len == p_from->tot_len)) {
 
-  803007e:	b12c      	cbz	r4, 803008c <pbuf_copy+0x78>
 
-  8030080:	8962      	ldrh	r2, [r4, #10]
 
-  8030082:	8923      	ldrh	r3, [r4, #8]
 
-  8030084:	429a      	cmp	r2, r3
 
-  8030086:	d101      	bne.n	803008c <pbuf_copy+0x78>
 
-       /* don't copy more than one packet! */
 
-       LWIP_ERROR("pbuf_copy() does not allow packet queues!\n",
 
-  8030088:	6823      	ldr	r3, [r4, #0]
 
-  803008a:	b94b      	cbnz	r3, 80300a0 <pbuf_copy+0x8c>
 
-                  (p_from->next == NULL), return ERR_VAL;);
 
-     }
 
-     if((p_to != NULL) && (p_to->len == p_to->tot_len)) {
 
-  803008c:	896a      	ldrh	r2, [r5, #10]
 
-  803008e:	892b      	ldrh	r3, [r5, #8]
 
-  8030090:	429a      	cmp	r2, r3
 
-  8030092:	d101      	bne.n	8030098 <pbuf_copy+0x84>
 
-       /* don't copy more than one packet! */
 
-       LWIP_ERROR("pbuf_copy() does not allow packet queues!\n",
 
-  8030094:	682b      	ldr	r3, [r5, #0]
 
-  8030096:	b91b      	cbnz	r3, 80300a0 <pbuf_copy+0x8c>
 
-                   (p_to->next == NULL), return ERR_VAL;);
 
-     }
 
-   } while (p_from);
 
-  8030098:	2c00      	cmp	r4, #0
 
-  803009a:	d1ca      	bne.n	8030032 <pbuf_copy+0x1e>
 
-   LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_copy: end of chain reached.\n"));
 
-   return ERR_OK;
 
-  803009c:	4620      	mov	r0, r4
 
-  803009e:	e000      	b.n	80300a2 <pbuf_copy+0x8e>
 
-       LWIP_ERROR("p_to != NULL", (p_to != NULL) || (p_from == NULL) , return ERR_ARG;);
 
-     }
 
-     if((p_from != NULL) && (p_from->len == p_from->tot_len)) {
 
-       /* don't copy more than one packet! */
 
-       LWIP_ERROR("pbuf_copy() does not allow packet queues!\n",
 
-  80300a0:	20fa      	movs	r0, #250	; 0xfa
 
-                   (p_to->next == NULL), return ERR_VAL;);
 
-     }
 
-   } while (p_from);
 
-   LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_copy: end of chain reached.\n"));
 
-   return ERR_OK;
 
- }
 
-  80300a2:	b240      	sxtb	r0, r0
 
-  80300a4:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 
- 080300a8 <pbuf_copy_partial>:
 
-  * @param offset offset into the packet buffer from where to begin copying len bytes
 
-  * @return the number of bytes copied, or 0 on failure
 
-  */
 
- u16_t
 
- pbuf_copy_partial(struct pbuf *buf, void *dataptr, u16_t len, u16_t offset)
 
- {
 
-  80300a8:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
 
-  80300ac:	4688      	mov	r8, r1
 
-  80300ae:	4616      	mov	r6, r2
 
-   struct pbuf *p;
 
-   u16_t left;
 
-   u16_t buf_copy_len;
 
-   u16_t copied_total = 0;
 
-   LWIP_ERROR("pbuf_copy_partial: invalid buf", (buf != NULL), return 0;);
 
-  80300b0:	b328      	cbz	r0, 80300fe <pbuf_copy_partial+0x56>
 
-   LWIP_ERROR("pbuf_copy_partial: invalid dataptr", (dataptr != NULL), return 0;);
 
-  80300b2:	b331      	cbz	r1, 8030102 <pbuf_copy_partial+0x5a>
 
-  80300b4:	2400      	movs	r4, #0
 
-  80300b6:	4605      	mov	r5, r0
 
-  80300b8:	46a1      	mov	r9, r4
 
-  80300ba:	e01c      	b.n	80300f6 <pbuf_copy_partial+0x4e>
 
-     return 0;
 
-   }
 
-   /* Note some systems use byte copy if dataptr or one of the pbuf payload pointers are unaligned. */
 
-   for(p = buf; len != 0 && p != NULL; p = p->next) {
 
-     if ((offset != 0) && (offset >= p->len)) {
 
-  80300bc:	b12b      	cbz	r3, 80300ca <pbuf_copy_partial+0x22>
 
-  80300be:	896a      	ldrh	r2, [r5, #10]
 
-  80300c0:	4293      	cmp	r3, r2
 
-  80300c2:	d302      	bcc.n	80300ca <pbuf_copy_partial+0x22>
 
-       /* don't copy from this buffer -> on to the next */
 
-       offset -= p->len;
 
-  80300c4:	1a9b      	subs	r3, r3, r2
 
-  80300c6:	b29b      	uxth	r3, r3
 
-  80300c8:	e014      	b.n	80300f4 <pbuf_copy_partial+0x4c>
 
-     } else {
 
-       /* copy from this buffer. maybe only partially. */
 
-       buf_copy_len = p->len - offset;
 
-  80300ca:	896f      	ldrh	r7, [r5, #10]
 
-       if (buf_copy_len > len)
 
-           buf_copy_len = len;
 
-       /* copy the necessary parts of the buffer */
 
-       MEMCPY(&((char*)dataptr)[left], &((char*)p->payload)[offset], buf_copy_len);
 
-  80300cc:	6869      	ldr	r1, [r5, #4]
 
-     if ((offset != 0) && (offset >= p->len)) {
 
-       /* don't copy from this buffer -> on to the next */
 
-       offset -= p->len;
 
-     } else {
 
-       /* copy from this buffer. maybe only partially. */
 
-       buf_copy_len = p->len - offset;
 
-  80300ce:	1aff      	subs	r7, r7, r3
 
-  80300d0:	b2bf      	uxth	r7, r7
 
-  80300d2:	42b7      	cmp	r7, r6
 
-  80300d4:	bf28      	it	cs
 
-  80300d6:	4637      	movcs	r7, r6
 
-       if (buf_copy_len > len)
 
-           buf_copy_len = len;
 
-       /* copy the necessary parts of the buffer */
 
-       MEMCPY(&((char*)dataptr)[left], &((char*)p->payload)[offset], buf_copy_len);
 
-  80300d8:	eb08 0009 	add.w	r0, r8, r9
 
-  80300dc:	18c9      	adds	r1, r1, r3
 
-  80300de:	463a      	mov	r2, r7
 
-       copied_total += buf_copy_len;
 
-  80300e0:	193c      	adds	r4, r7, r4
 
-       left += buf_copy_len;
 
-  80300e2:	44b9      	add	r9, r7
 
-       len -= buf_copy_len;
 
-  80300e4:	1bf6      	subs	r6, r6, r7
 
-       /* copy from this buffer. maybe only partially. */
 
-       buf_copy_len = p->len - offset;
 
-       if (buf_copy_len > len)
 
-           buf_copy_len = len;
 
-       /* copy the necessary parts of the buffer */
 
-       MEMCPY(&((char*)dataptr)[left], &((char*)p->payload)[offset], buf_copy_len);
 
-  80300e6:	f7f1 fc51 	bl	802198c <memcpy>
 
-       copied_total += buf_copy_len;
 
-  80300ea:	b2a4      	uxth	r4, r4
 
-       left += buf_copy_len;
 
-  80300ec:	fa1f f989 	uxth.w	r9, r9
 
-       len -= buf_copy_len;
 
-  80300f0:	b2b6      	uxth	r6, r6
 
-       offset = 0;
 
-  80300f2:	2300      	movs	r3, #0
 
-   if((buf == NULL) || (dataptr == NULL)) {
 
-     return 0;
 
-   }
 
-   /* Note some systems use byte copy if dataptr or one of the pbuf payload pointers are unaligned. */
 
-   for(p = buf; len != 0 && p != NULL; p = p->next) {
 
-  80300f4:	682d      	ldr	r5, [r5, #0]
 
-  80300f6:	b12e      	cbz	r6, 8030104 <pbuf_copy_partial+0x5c>
 
-  80300f8:	2d00      	cmp	r5, #0
 
-  80300fa:	d1df      	bne.n	80300bc <pbuf_copy_partial+0x14>
 
-  80300fc:	e002      	b.n	8030104 <pbuf_copy_partial+0x5c>
 
-   struct pbuf *p;
 
-   u16_t left;
 
-   u16_t buf_copy_len;
 
-   u16_t copied_total = 0;
 
-   LWIP_ERROR("pbuf_copy_partial: invalid buf", (buf != NULL), return 0;);
 
-  80300fe:	4604      	mov	r4, r0
 
-  8030100:	e000      	b.n	8030104 <pbuf_copy_partial+0x5c>
 
-  8030102:	460c      	mov	r4, r1
 
-       len -= buf_copy_len;
 
-       offset = 0;
 
-     }
 
-   }
 
-   return copied_total;
 
- }
 
-  8030104:	4620      	mov	r0, r4
 
-  8030106:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
 
-  803010a:	0000      	movs	r0, r0
 
- 0803010c <raw_input>:
 
-  *           caller).
 
-  *
 
-  */
 
- u8_t
 
- raw_input(struct pbuf *p, struct netif *inp)
 
- {
 
-  803010c:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
 
-   u8_t eaten = 0;
 
-   LWIP_UNUSED_ARG(inp);
 
-   iphdr = (struct ip_hdr *)p->payload;
 
-   proto = IPH_PROTO(iphdr);
 
-  8030110:	6843      	ldr	r3, [r0, #4]
 
-   /* loop through all raw pcbs until the packet is eaten by one */
 
-   /* this allows multiple pcbs to match against the packet by design */
 
-   while ((eaten == 0) && (pcb != NULL)) {
 
-     if ((pcb->protocol == proto) &&
 
-         (ip_addr_isany(&pcb->local_ip) ||
 
-          ip_addr_cmp(&(pcb->local_ip), ¤t_iphdr_dest))) {
 
-  8030112:	f8df a074 	ldr.w	sl, [pc, #116]	; 8030188 <raw_input+0x7c>
 
-   u8_t eaten = 0;
 
-   LWIP_UNUSED_ARG(inp);
 
-   iphdr = (struct ip_hdr *)p->payload;
 
-   proto = IPH_PROTO(iphdr);
 
-  8030116:	f893 9009 	ldrb.w	r9, [r3, #9]
 
-   prev = NULL;
 
-   pcb = raw_pcbs;
 
-  803011a:	4b19      	ldr	r3, [pc, #100]	; (8030180 <raw_input+0x74>)
 
-  *           caller).
 
-  *
 
-  */
 
- u8_t
 
- raw_input(struct pbuf *p, struct netif *inp)
 
- {
 
-  803011c:	4606      	mov	r6, r0
 
-   iphdr = (struct ip_hdr *)p->payload;
 
-   proto = IPH_PROTO(iphdr);
 
-   prev = NULL;
 
-   pcb = raw_pcbs;
 
-  803011e:	681c      	ldr	r4, [r3, #0]
 
-   LWIP_UNUSED_ARG(inp);
 
-   iphdr = (struct ip_hdr *)p->payload;
 
-   proto = IPH_PROTO(iphdr);
 
-   prev = NULL;
 
-  8030120:	2500      	movs	r5, #0
 
-             eaten = 1;
 
-             if (prev != NULL) {
 
-             /* move the pcb to the front of raw_pcbs so that is
 
-                found faster next time */
 
-               prev->next = pcb->next;
 
-               pcb->next = raw_pcbs;
 
-  8030122:	4698      	mov	r8, r3
 
-  8030124:	e023      	b.n	803016e <raw_input+0x62>
 
-   prev = NULL;
 
-   pcb = raw_pcbs;
 
-   /* loop through all raw pcbs until the packet is eaten by one */
 
-   /* this allows multiple pcbs to match against the packet by design */
 
-   while ((eaten == 0) && (pcb != NULL)) {
 
-     if ((pcb->protocol == proto) &&
 
-  8030126:	7c23      	ldrb	r3, [r4, #16]
 
-  8030128:	454b      	cmp	r3, r9
 
-  803012a:	d118      	bne.n	803015e <raw_input+0x52>
 
-         (ip_addr_isany(&pcb->local_ip) ||
 
-  803012c:	6823      	ldr	r3, [r4, #0]
 
-  803012e:	b11b      	cbz	r3, 8030138 <raw_input+0x2c>
 
-  8030130:	f8da 2000 	ldr.w	r2, [sl]
 
-  8030134:	4293      	cmp	r3, r2
 
-  8030136:	d112      	bne.n	803015e <raw_input+0x52>
 
-       /* broadcast filter? */
 
-       if (ip_get_option(pcb, SOF_BROADCAST) || !ip_addr_isbroadcast(¤t_iphdr_dest, inp))
 
- #endif /* IP_SOF_BROADCAST_RECV */
 
-       {
 
-         /* receive callback function available? */
 
-         if (pcb->recv != NULL) {
 
-  8030138:	6967      	ldr	r7, [r4, #20]
 
-  803013a:	b187      	cbz	r7, 803015e <raw_input+0x52>
 
-           /* the receive callback function did not eat the packet? */
 
-           if (pcb->recv(pcb->recv_arg, pcb, p, ip_current_src_addr()) != 0) {
 
-  803013c:	69a0      	ldr	r0, [r4, #24]
 
-  803013e:	4b11      	ldr	r3, [pc, #68]	; (8030184 <raw_input+0x78>)
 
-  8030140:	4621      	mov	r1, r4
 
-  8030142:	4632      	mov	r2, r6
 
-  8030144:	47b8      	blx	r7
 
-  8030146:	b150      	cbz	r0, 803015e <raw_input+0x52>
 
-             /* receive function ate the packet */
 
-             p = NULL;
 
-             eaten = 1;
 
-             if (prev != NULL) {
 
-  8030148:	b15d      	cbz	r5, 8030162 <raw_input+0x56>
 
-             /* move the pcb to the front of raw_pcbs so that is
 
-                found faster next time */
 
-               prev->next = pcb->next;
 
-  803014a:	68e3      	ldr	r3, [r4, #12]
 
-  803014c:	60eb      	str	r3, [r5, #12]
 
-               pcb->next = raw_pcbs;
 
-  803014e:	f8d8 3000 	ldr.w	r3, [r8]
 
-               raw_pcbs = pcb;
 
-  8030152:	f8c8 4000 	str.w	r4, [r8]
 
-             eaten = 1;
 
-             if (prev != NULL) {
 
-             /* move the pcb to the front of raw_pcbs so that is
 
-                found faster next time */
 
-               prev->next = pcb->next;
 
-               pcb->next = raw_pcbs;
 
-  8030156:	60e3      	str	r3, [r4, #12]
 
-         /* receive callback function available? */
 
-         if (pcb->recv != NULL) {
 
-           /* the receive callback function did not eat the packet? */
 
-           if (pcb->recv(pcb->recv_arg, pcb, p, ip_current_src_addr()) != 0) {
 
-             /* receive function ate the packet */
 
-             p = NULL;
 
-  8030158:	2600      	movs	r6, #0
 
-             eaten = 1;
 
-  803015a:	2301      	movs	r3, #1
 
-  803015c:	e003      	b.n	8030166 <raw_input+0x5a>
 
-   pcb = raw_pcbs;
 
-   /* loop through all raw pcbs until the packet is eaten by one */
 
-   /* this allows multiple pcbs to match against the packet by design */
 
-   while ((eaten == 0) && (pcb != NULL)) {
 
-     if ((pcb->protocol == proto) &&
 
-         (ip_addr_isany(&pcb->local_ip) ||
 
-  803015e:	2300      	movs	r3, #0
 
-  8030160:	e001      	b.n	8030166 <raw_input+0x5a>
 
-         if (pcb->recv != NULL) {
 
-           /* the receive callback function did not eat the packet? */
 
-           if (pcb->recv(pcb->recv_arg, pcb, p, ip_current_src_addr()) != 0) {
 
-             /* receive function ate the packet */
 
-             p = NULL;
 
-             eaten = 1;
 
-  8030162:	2301      	movs	r3, #1
 
-         /* receive callback function available? */
 
-         if (pcb->recv != NULL) {
 
-           /* the receive callback function did not eat the packet? */
 
-           if (pcb->recv(pcb->recv_arg, pcb, p, ip_current_src_addr()) != 0) {
 
-             /* receive function ate the packet */
 
-             p = NULL;
 
-  8030164:	462e      	mov	r6, r5
 
-         /* no receive callback function was set for this raw PCB */
 
-       }
 
-       /* drop the packet */
 
-     }
 
-     prev = pcb;
 
-     pcb = pcb->next;
 
-  8030166:	68e2      	ldr	r2, [r4, #12]
 
-  8030168:	4625      	mov	r5, r4
 
-   prev = NULL;
 
-   pcb = raw_pcbs;
 
-   /* loop through all raw pcbs until the packet is eaten by one */
 
-   /* this allows multiple pcbs to match against the packet by design */
 
-   while ((eaten == 0) && (pcb != NULL)) {
 
-  803016a:	b92b      	cbnz	r3, 8030178 <raw_input+0x6c>
 
-         /* no receive callback function was set for this raw PCB */
 
-       }
 
-       /* drop the packet */
 
-     }
 
-     prev = pcb;
 
-     pcb = pcb->next;
 
-  803016c:	4614      	mov	r4, r2
 
-   prev = NULL;
 
-   pcb = raw_pcbs;
 
-   /* loop through all raw pcbs until the packet is eaten by one */
 
-   /* this allows multiple pcbs to match against the packet by design */
 
-   while ((eaten == 0) && (pcb != NULL)) {
 
-  803016e:	2c00      	cmp	r4, #0
 
-  8030170:	d1d9      	bne.n	8030126 <raw_input+0x1a>
 
-  8030172:	4620      	mov	r0, r4
 
-  8030174:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
 
-  8030178:	2001      	movs	r0, #1
 
-     }
 
-     prev = pcb;
 
-     pcb = pcb->next;
 
-   }
 
-   return eaten;
 
- }
 
-  803017a:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
 
-  803017e:	bf00      	nop
 
-  8030180:	2000c3d8 	.word	0x2000c3d8
 
-  8030184:	2000f6dc 	.word	0x2000f6dc
 
-  8030188:	2000f6e4 	.word	0x2000f6e4
 
- 0803018c <raw_bind>:
 
-  * @see raw_disconnect()
 
-  */
 
- err_t
 
- raw_bind(struct raw_pcb *pcb, ip_addr_t *ipaddr)
 
- {
 
-   ip_addr_set(&pcb->local_ip, ipaddr);
 
-  803018c:	b101      	cbz	r1, 8030190 <raw_bind+0x4>
 
-  803018e:	6809      	ldr	r1, [r1, #0]
 
-  8030190:	6001      	str	r1, [r0, #0]
 
-   return ERR_OK;
 
- }
 
-  8030192:	2000      	movs	r0, #0
 
-  8030194:	4770      	bx	lr
 
- 08030196 <raw_connect>:
 
-  * @see raw_disconnect() and raw_sendto()
 
-  */
 
- err_t
 
- raw_connect(struct raw_pcb *pcb, ip_addr_t *ipaddr)
 
- {
 
-   ip_addr_set(&pcb->remote_ip, ipaddr);
 
-  8030196:	b101      	cbz	r1, 803019a <raw_connect+0x4>
 
-  8030198:	6809      	ldr	r1, [r1, #0]
 
-  803019a:	6041      	str	r1, [r0, #4]
 
-   return ERR_OK;
 
- }
 
-  803019c:	2000      	movs	r0, #0
 
-  803019e:	4770      	bx	lr
 
- 080301a0 <raw_recv>:
 
-  */
 
- void
 
- raw_recv(struct raw_pcb *pcb, raw_recv_fn recv, void *recv_arg)
 
- {
 
-   /* remember recv() callback and user data */
 
-   pcb->recv = recv;
 
-  80301a0:	6141      	str	r1, [r0, #20]
 
-   pcb->recv_arg = recv_arg;
 
-  80301a2:	6182      	str	r2, [r0, #24]
 
-  80301a4:	4770      	bx	lr
 
- 080301a6 <raw_sendto>:
 
-  * @param ipaddr the destination address of the IP packet
 
-  *
 
-  */
 
- err_t
 
- raw_sendto(struct raw_pcb *pcb, struct pbuf *p, ip_addr_t *ipaddr)
 
- {
 
-  80301a6:	b5f0      	push	{r4, r5, r6, r7, lr}
 
-  80301a8:	4605      	mov	r5, r0
 
-  80301aa:	b085      	sub	sp, #20
 
-  80301ac:	460c      	mov	r4, r1
 
-   struct pbuf *q; /* q will be sent down the stack */
 
-   
 
-   LWIP_DEBUGF(RAW_DEBUG | LWIP_DBG_TRACE, ("raw_sendto\n"));
 
-   
 
-   /* not enough space to add an IP header to first pbuf in given p chain? */
 
-   if (pbuf_header(p, IP_HLEN)) {
 
-  80301ae:	4608      	mov	r0, r1
 
-  80301b0:	2114      	movs	r1, #20
 
-  * @param ipaddr the destination address of the IP packet
 
-  *
 
-  */
 
- err_t
 
- raw_sendto(struct raw_pcb *pcb, struct pbuf *p, ip_addr_t *ipaddr)
 
- {
 
-  80301b2:	4617      	mov	r7, r2
 
-   struct pbuf *q; /* q will be sent down the stack */
 
-   
 
-   LWIP_DEBUGF(RAW_DEBUG | LWIP_DBG_TRACE, ("raw_sendto\n"));
 
-   
 
-   /* not enough space to add an IP header to first pbuf in given p chain? */
 
-   if (pbuf_header(p, IP_HLEN)) {
 
-  80301b4:	f7ff fdff 	bl	802fdb6 <pbuf_header>
 
-  80301b8:	b170      	cbz	r0, 80301d8 <raw_sendto+0x32>
 
-     /* allocate header in new pbuf */
 
-     q = pbuf_alloc(PBUF_IP, 0, PBUF_RAM);
 
-  80301ba:	2100      	movs	r1, #0
 
-  80301bc:	2001      	movs	r0, #1
 
-  80301be:	460a      	mov	r2, r1
 
-  80301c0:	f7ff fe71 	bl	802fea6 <pbuf_alloc>
 
-     /* new header pbuf could not be allocated? */
 
-     if (q == NULL) {
 
-  80301c4:	4606      	mov	r6, r0
 
-  80301c6:	b908      	cbnz	r0, 80301cc <raw_sendto+0x26>
 
-       LWIP_DEBUGF(RAW_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, ("raw_sendto: could not allocate header\n"));
 
-       return ERR_MEM;
 
-  80301c8:	25ff      	movs	r5, #255	; 0xff
 
-  80301ca:	e02e      	b.n	803022a <raw_sendto+0x84>
 
-     }
 
-     if (p->tot_len != 0) {
 
-  80301cc:	8923      	ldrh	r3, [r4, #8]
 
-  80301ce:	b15b      	cbz	r3, 80301e8 <raw_sendto+0x42>
 
-       /* chain header q in front of given pbuf p */
 
-       pbuf_chain(q, p);
 
-  80301d0:	4621      	mov	r1, r4
 
-  80301d2:	f7ff ff16 	bl	8030002 <pbuf_chain>
 
-  80301d6:	e007      	b.n	80301e8 <raw_sendto+0x42>
 
-     /* { first pbuf q points to header pbuf } */
 
-     LWIP_DEBUGF(RAW_DEBUG, ("raw_sendto: added header pbuf %p before given pbuf %p\n", (void *)q, (void *)p));
 
-   }  else {
 
-     /* first pbuf q equals given pbuf */
 
-     q = p;
 
-     if(pbuf_header(q, -IP_HLEN)) {
 
-  80301d8:	4620      	mov	r0, r4
 
-  80301da:	f06f 0113 	mvn.w	r1, #19
 
-  80301de:	f7ff fdea 	bl	802fdb6 <pbuf_header>
 
-  80301e2:	2800      	cmp	r0, #0
 
-  80301e4:	d1f0      	bne.n	80301c8 <raw_sendto+0x22>
 
-  80301e6:	4626      	mov	r6, r4
 
-       LWIP_ASSERT("Can't restore header we just removed!", 0);
 
-       return ERR_MEM;
 
-     }
 
-   }
 
-   if ((netif = ip_route(ipaddr)) == NULL) {
 
-  80301e8:	4638      	mov	r0, r7
 
-  80301ea:	f002 febb 	bl	8032f64 <ip_route>
 
-  80301ee:	b928      	cbnz	r0, 80301fc <raw_sendto+0x56>
 
-     LWIP_DEBUGF(RAW_DEBUG | LWIP_DBG_LEVEL_WARNING, ("raw_sendto: No route to %"U16_F".%"U16_F".%"U16_F".%"U16_F"\n",
 
-       ip4_addr1_16(ipaddr), ip4_addr2_16(ipaddr), ip4_addr3_16(ipaddr), ip4_addr4_16(ipaddr)));
 
-     /* free any temporary header pbuf allocated by pbuf_header() */
 
-     if (q != p) {
 
-  80301f0:	42a6      	cmp	r6, r4
 
-  80301f2:	d019      	beq.n	8030228 <raw_sendto+0x82>
 
-       pbuf_free(q);
 
-  80301f4:	4630      	mov	r0, r6
 
-  80301f6:	f7ff fe09 	bl	802fe0c <pbuf_free>
 
-  80301fa:	e015      	b.n	8030228 <raw_sendto+0x82>
 
-     }
 
-     return ERR_VAL;
 
-   }
 
- #endif /* IP_SOF_BROADCAST */
 
-   if (ip_addr_isany(&pcb->local_ip)) {
 
-  80301fc:	4629      	mov	r1, r5
 
-  80301fe:	b10d      	cbz	r5, 8030204 <raw_sendto+0x5e>
 
-  8030200:	682b      	ldr	r3, [r5, #0]
 
-  8030202:	b903      	cbnz	r3, 8030206 <raw_sendto+0x60>
 
-     /* use outgoing network interface IP address as source address */
 
-     src_ip = &(netif->ip_addr);
 
-  8030204:	1d01      	adds	r1, r0, #4
 
-     /* use RAW PCB local IP address as source address */
 
-     src_ip = &(pcb->local_ip);
 
-   }
 
-   NETIF_SET_HWADDRHINT(netif, &pcb->addr_hint);
 
-   err = ip_output_if (q, src_ip, ipaddr, pcb->ttl, pcb->tos, pcb->protocol, netif);
 
-  8030206:	7a6a      	ldrb	r2, [r5, #9]
 
-  8030208:	7aab      	ldrb	r3, [r5, #10]
 
-  803020a:	9200      	str	r2, [sp, #0]
 
-  803020c:	7c2a      	ldrb	r2, [r5, #16]
 
-  803020e:	9002      	str	r0, [sp, #8]
 
-  8030210:	9201      	str	r2, [sp, #4]
 
-  8030212:	4630      	mov	r0, r6
 
-  8030214:	463a      	mov	r2, r7
 
-  8030216:	f002 ffa9 	bl	803316c <ip_output_if>
 
-   NETIF_SET_HWADDRHINT(netif, NULL);
 
-   /* did we chain a header earlier? */
 
-   if (q != p) {
 
-  803021a:	42a6      	cmp	r6, r4
 
-     /* use RAW PCB local IP address as source address */
 
-     src_ip = &(pcb->local_ip);
 
-   }
 
-   NETIF_SET_HWADDRHINT(netif, &pcb->addr_hint);
 
-   err = ip_output_if (q, src_ip, ipaddr, pcb->ttl, pcb->tos, pcb->protocol, netif);
 
-  803021c:	4605      	mov	r5, r0
 
-   NETIF_SET_HWADDRHINT(netif, NULL);
 
-   /* did we chain a header earlier? */
 
-   if (q != p) {
 
-  803021e:	d004      	beq.n	803022a <raw_sendto+0x84>
 
-     /* free the header */
 
-     pbuf_free(q);
 
-  8030220:	4630      	mov	r0, r6
 
-  8030222:	f7ff fdf3 	bl	802fe0c <pbuf_free>
 
-  8030226:	e000      	b.n	803022a <raw_sendto+0x84>
 
-       ip4_addr1_16(ipaddr), ip4_addr2_16(ipaddr), ip4_addr3_16(ipaddr), ip4_addr4_16(ipaddr)));
 
-     /* free any temporary header pbuf allocated by pbuf_header() */
 
-     if (q != p) {
 
-       pbuf_free(q);
 
-     }
 
-     return ERR_RTE;
 
-  8030228:	25fc      	movs	r5, #252	; 0xfc
 
-   if (q != p) {
 
-     /* free the header */
 
-     pbuf_free(q);
 
-   }
 
-   return err;
 
- }
 
-  803022a:	b268      	sxtb	r0, r5
 
-  803022c:	b005      	add	sp, #20
 
-  803022e:	bdf0      	pop	{r4, r5, r6, r7, pc}
 
- 08030230 <raw_send>:
 
-  *
 
-  */
 
- err_t
 
- raw_send(struct raw_pcb *pcb, struct pbuf *p)
 
- {
 
-   return raw_sendto(pcb, p, &pcb->remote_ip);
 
-  8030230:	1d02      	adds	r2, r0, #4
 
-  8030232:	f7ff bfb8 	b.w	80301a6 <raw_sendto>
 
-  8030236:	0000      	movs	r0, r0
 
- 08030238 <raw_remove>:
 
- void
 
- raw_remove(struct raw_pcb *pcb)
 
- {
 
-   struct raw_pcb *pcb2;
 
-   /* pcb to be removed is first in list? */
 
-   if (raw_pcbs == pcb) {
 
-  8030238:	4a09      	ldr	r2, [pc, #36]	; (8030260 <raw_remove+0x28>)
 
-  803023a:	6813      	ldr	r3, [r2, #0]
 
-  803023c:	4283      	cmp	r3, r0
 
-  *
 
-  * @see raw_new()
 
-  */
 
- void
 
- raw_remove(struct raw_pcb *pcb)
 
- {
 
-  803023e:	4601      	mov	r1, r0
 
-   struct raw_pcb *pcb2;
 
-   /* pcb to be removed is first in list? */
 
-   if (raw_pcbs == pcb) {
 
-  8030240:	d109      	bne.n	8030256 <raw_remove+0x1e>
 
-     /* make list start at 2nd pcb */
 
-     raw_pcbs = raw_pcbs->next;
 
-  8030242:	68c3      	ldr	r3, [r0, #12]
 
-  8030244:	6013      	str	r3, [r2, #0]
 
-  8030246:	e008      	b.n	803025a <raw_remove+0x22>
 
-     /* pcb not 1st in list */
 
-   } else {
 
-     for(pcb2 = raw_pcbs; pcb2 != NULL; pcb2 = pcb2->next) {
 
-       /* find pcb in raw_pcbs list */
 
-       if (pcb2->next != NULL && pcb2->next == pcb) {
 
-  8030248:	68da      	ldr	r2, [r3, #12]
 
-  803024a:	b11a      	cbz	r2, 8030254 <raw_remove+0x1c>
 
-  803024c:	428a      	cmp	r2, r1
 
-         /* remove pcb from list */
 
-         pcb2->next = pcb->next;
 
-  803024e:	bf04      	itt	eq
 
-  8030250:	68ca      	ldreq	r2, [r1, #12]
 
-  8030252:	60da      	streq	r2, [r3, #12]
 
-   if (raw_pcbs == pcb) {
 
-     /* make list start at 2nd pcb */
 
-     raw_pcbs = raw_pcbs->next;
 
-     /* pcb not 1st in list */
 
-   } else {
 
-     for(pcb2 = raw_pcbs; pcb2 != NULL; pcb2 = pcb2->next) {
 
-  8030254:	68db      	ldr	r3, [r3, #12]
 
-  8030256:	2b00      	cmp	r3, #0
 
-  8030258:	d1f6      	bne.n	8030248 <raw_remove+0x10>
 
-         /* remove pcb from list */
 
-         pcb2->next = pcb->next;
 
-       }
 
-     }
 
-   }
 
-   memp_free(MEMP_RAW_PCB, pcb);
 
-  803025a:	2000      	movs	r0, #0
 
-  803025c:	f7ff bccc 	b.w	802fbf8 <memp_free>
 
-  8030260:	2000c3d8 	.word	0x2000c3d8
 
- 08030264 <raw_new>:
 
-  *
 
-  * @see raw_remove()
 
-  */
 
- struct raw_pcb *
 
- raw_new(u8_t proto)
 
- {
 
-  8030264:	b538      	push	{r3, r4, r5, lr}
 
-  8030266:	4605      	mov	r5, r0
 
-   struct raw_pcb *pcb;
 
-   LWIP_DEBUGF(RAW_DEBUG | LWIP_DBG_TRACE, ("raw_new\n"));
 
-   pcb = (struct raw_pcb *)memp_malloc(MEMP_RAW_PCB);
 
-  8030268:	2000      	movs	r0, #0
 
-  803026a:	f7ff fcaf 	bl	802fbcc <memp_malloc>
 
-   /* could allocate RAW PCB? */
 
-   if (pcb != NULL) {
 
-  803026e:	4604      	mov	r4, r0
 
-  8030270:	b150      	cbz	r0, 8030288 <raw_new+0x24>
 
-     /* initialize PCB to all zeroes */
 
-     memset(pcb, 0, sizeof(struct raw_pcb));
 
-  8030272:	221c      	movs	r2, #28
 
-  8030274:	2100      	movs	r1, #0
 
-  8030276:	f7f1 fc43 	bl	8021b00 <memset>
 
-     pcb->protocol = proto;
 
-     pcb->ttl = RAW_TTL;
 
-  803027a:	23ff      	movs	r3, #255	; 0xff
 
-  803027c:	72a3      	strb	r3, [r4, #10]
 
-     pcb->next = raw_pcbs;
 
-  803027e:	4b03      	ldr	r3, [pc, #12]	; (803028c <raw_new+0x28>)
 
-   pcb = (struct raw_pcb *)memp_malloc(MEMP_RAW_PCB);
 
-   /* could allocate RAW PCB? */
 
-   if (pcb != NULL) {
 
-     /* initialize PCB to all zeroes */
 
-     memset(pcb, 0, sizeof(struct raw_pcb));
 
-     pcb->protocol = proto;
 
-  8030280:	7425      	strb	r5, [r4, #16]
 
-     pcb->ttl = RAW_TTL;
 
-     pcb->next = raw_pcbs;
 
-  8030282:	681a      	ldr	r2, [r3, #0]
 
-     raw_pcbs = pcb;
 
-  8030284:	601c      	str	r4, [r3, #0]
 
-   if (pcb != NULL) {
 
-     /* initialize PCB to all zeroes */
 
-     memset(pcb, 0, sizeof(struct raw_pcb));
 
-     pcb->protocol = proto;
 
-     pcb->ttl = RAW_TTL;
 
-     pcb->next = raw_pcbs;
 
-  8030286:	60e2      	str	r2, [r4, #12]
 
-     raw_pcbs = pcb;
 
-   }
 
-   return pcb;
 
- }
 
-  8030288:	4620      	mov	r0, r4
 
-  803028a:	bd38      	pop	{r3, r4, r5, pc}
 
-  803028c:	2000c3d8 	.word	0x2000c3d8
 
- 08030290 <tcp_accept_null>:
 
-   LWIP_UNUSED_ARG(arg);
 
-   LWIP_UNUSED_ARG(pcb);
 
-   LWIP_UNUSED_ARG(err);
 
-   return ERR_ABRT;
 
- }
 
-  8030290:	f06f 0009 	mvn.w	r0, #9
 
-  8030294:	4770      	bx	lr
 
-  8030296:	0000      	movs	r0, r0
 
- 08030298 <tcp_new_port>:
 
-  *
 
-  * @return a new (free) local TCP port number
 
-  */
 
- static u16_t
 
- tcp_new_port(void)
 
- {
 
-  8030298:	4b13      	ldr	r3, [pc, #76]	; (80302e8 <tcp_new_port+0x50>)
 
-  803029a:	b570      	push	{r4, r5, r6, lr}
 
-  803029c:	8818      	ldrh	r0, [r3, #0]
 
-   if (tcp_port++ == TCP_LOCAL_PORT_RANGE_END) {
 
-     tcp_port = TCP_LOCAL_PORT_RANGE_START;
 
-   }
 
-   /* Check all PCB lists. */
 
-   for (i = 0; i < NUM_TCP_PCB_LISTS; i++) {
 
-     for(pcb = *tcp_pcb_lists[i]; pcb != NULL; pcb = pcb->next) {
 
-  803029e:	4d13      	ldr	r5, [pc, #76]	; (80302ec <tcp_new_port+0x54>)
 
-  *
 
-  * @return a new (free) local TCP port number
 
-  */
 
- static u16_t
 
- tcp_new_port(void)
 
- {
 
-  80302a0:	f44f 4280 	mov.w	r2, #16384	; 0x4000
 
-   u8_t i;
 
-   u16_t n = 0;
 
-   struct tcp_pcb *pcb;
 
-   
 
- again:
 
-   if (tcp_port++ == TCP_LOCAL_PORT_RANGE_END) {
 
-  80302a4:	f64f 74ff 	movw	r4, #65535	; 0xffff
 
-  80302a8:	42a0      	cmp	r0, r4
 
-  80302aa:	d002      	beq.n	80302b2 <tcp_new_port+0x1a>
 
-  80302ac:	3001      	adds	r0, #1
 
-  80302ae:	b280      	uxth	r0, r0
 
-  80302b0:	e001      	b.n	80302b6 <tcp_new_port+0x1e>
 
-     tcp_port = TCP_LOCAL_PORT_RANGE_START;
 
-  80302b2:	f44f 4040 	mov.w	r0, #49152	; 0xc000
 
-  80302b6:	2300      	movs	r3, #0
 
-   }
 
-   /* Check all PCB lists. */
 
-   for (i = 0; i < NUM_TCP_PCB_LISTS; i++) {
 
-     for(pcb = *tcp_pcb_lists[i]; pcb != NULL; pcb = pcb->next) {
 
-  80302b8:	5959      	ldr	r1, [r3, r5]
 
-  80302ba:	6809      	ldr	r1, [r1, #0]
 
-  80302bc:	e00b      	b.n	80302d6 <tcp_new_port+0x3e>
 
-       if (pcb->local_port == tcp_port) {
 
-  80302be:	8b4e      	ldrh	r6, [r1, #26]
 
-  80302c0:	4286      	cmp	r6, r0
 
-  80302c2:	d107      	bne.n	80302d4 <tcp_new_port+0x3c>
 
-  80302c4:	3a01      	subs	r2, #1
 
-  80302c6:	b292      	uxth	r2, r2
 
-         if (++n > (TCP_LOCAL_PORT_RANGE_END - TCP_LOCAL_PORT_RANGE_START)) {
 
-  80302c8:	2a00      	cmp	r2, #0
 
-  80302ca:	d1ed      	bne.n	80302a8 <tcp_new_port+0x10>
 
-  80302cc:	4b06      	ldr	r3, [pc, #24]	; (80302e8 <tcp_new_port+0x50>)
 
-  80302ce:	8018      	strh	r0, [r3, #0]
 
-           return 0;
 
-  80302d0:	4610      	mov	r0, r2
 
-  80302d2:	bd70      	pop	{r4, r5, r6, pc}
 
-   if (tcp_port++ == TCP_LOCAL_PORT_RANGE_END) {
 
-     tcp_port = TCP_LOCAL_PORT_RANGE_START;
 
-   }
 
-   /* Check all PCB lists. */
 
-   for (i = 0; i < NUM_TCP_PCB_LISTS; i++) {
 
-     for(pcb = *tcp_pcb_lists[i]; pcb != NULL; pcb = pcb->next) {
 
-  80302d4:	68c9      	ldr	r1, [r1, #12]
 
-  80302d6:	2900      	cmp	r1, #0
 
-  80302d8:	d1f1      	bne.n	80302be <tcp_new_port+0x26>
 
-  80302da:	3304      	adds	r3, #4
 
- again:
 
-   if (tcp_port++ == TCP_LOCAL_PORT_RANGE_END) {
 
-     tcp_port = TCP_LOCAL_PORT_RANGE_START;
 
-   }
 
-   /* Check all PCB lists. */
 
-   for (i = 0; i < NUM_TCP_PCB_LISTS; i++) {
 
-  80302dc:	2b10      	cmp	r3, #16
 
-  80302de:	d1eb      	bne.n	80302b8 <tcp_new_port+0x20>
 
-  80302e0:	4b01      	ldr	r3, [pc, #4]	; (80302e8 <tcp_new_port+0x50>)
 
-  80302e2:	8018      	strh	r0, [r3, #0]
 
-         goto again;
 
-       }
 
-     }
 
-   }
 
-   return tcp_port;
 
- }
 
-  80302e4:	bd70      	pop	{r4, r5, r6, pc}
 
-  80302e6:	bf00      	nop
 
-  80302e8:	2000071c 	.word	0x2000071c
 
-  80302ec:	08044fe0 	.word	0x08044fe0
 
- 080302f0 <tcp_init>:
 
- /**
 
-  * Initialize this module.
 
-  */
 
- void
 
- tcp_init(void)
 
- {
 
-  80302f0:	4770      	bx	lr
 
-  80302f2:	0000      	movs	r0, r0
 
- 080302f4 <tcp_bind>:
 
-  *         ERR_VAL if bind failed because the PCB is not in a valid state
 
-  *         ERR_OK if bound
 
-  */
 
- err_t
 
- tcp_bind(struct tcp_pcb *pcb, ip_addr_t *ipaddr, u16_t port)
 
- {
 
-  80302f4:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
-   int i;
 
-   int max_pcb_list = NUM_TCP_PCB_LISTS;
 
-   struct tcp_pcb *cpcb;
 
-   LWIP_ERROR("tcp_bind: can only bind in state CLOSED", pcb->state == CLOSED, return ERR_VAL);
 
-  80302f6:	7e03      	ldrb	r3, [r0, #24]
 
-  *         ERR_VAL if bind failed because the PCB is not in a valid state
 
-  *         ERR_OK if bound
 
-  */
 
- err_t
 
- tcp_bind(struct tcp_pcb *pcb, ip_addr_t *ipaddr, u16_t port)
 
- {
 
-  80302f8:	4604      	mov	r4, r0
 
-  80302fa:	460d      	mov	r5, r1
 
-   int i;
 
-   int max_pcb_list = NUM_TCP_PCB_LISTS;
 
-   struct tcp_pcb *cpcb;
 
-   LWIP_ERROR("tcp_bind: can only bind in state CLOSED", pcb->state == CLOSED, return ERR_VAL);
 
-  80302fc:	bb33      	cbnz	r3, 803034c <tcp_bind+0x58>
 
-   if (ip_get_option(pcb, SOF_REUSEADDR)) {
 
-     max_pcb_list = NUM_TCP_PCB_LISTS_NO_TIME_WAIT;
 
-   }
 
- #endif /* SO_REUSE */
 
-   if (port == 0) {
 
-  80302fe:	b91a      	cbnz	r2, 8030308 <tcp_bind+0x14>
 
-     port = tcp_new_port();
 
-  8030300:	f7ff ffca 	bl	8030298 <tcp_new_port>
 
-     if (port == 0) {
 
-  8030304:	4602      	mov	r2, r0
 
-  8030306:	b318      	cbz	r0, 8030350 <tcp_bind+0x5c>
 
-     }
 
-   }
 
-   /* Check if the address already is in use (on all lists) */
 
-   for (i = 0; i < max_pcb_list; i++) {
 
-     for(cpcb = *tcp_pcb_lists[i]; cpcb != NULL; cpcb = cpcb->next) {
 
-  8030308:	4f14      	ldr	r7, [pc, #80]	; (803035c <tcp_bind+0x68>)
 
-  *         ERR_VAL if bind failed because the PCB is not in a valid state
 
-  *         ERR_OK if bound
 
-  */
 
- err_t
 
- tcp_bind(struct tcp_pcb *pcb, ip_addr_t *ipaddr, u16_t port)
 
- {
 
-  803030a:	2100      	movs	r1, #0
 
-     }
 
-   }
 
-   /* Check if the address already is in use (on all lists) */
 
-   for (i = 0; i < max_pcb_list; i++) {
 
-     for(cpcb = *tcp_pcb_lists[i]; cpcb != NULL; cpcb = cpcb->next) {
 
-  803030c:	59cb      	ldr	r3, [r1, r7]
 
-  803030e:	681b      	ldr	r3, [r3, #0]
 
-  8030310:	e00a      	b.n	8030328 <tcp_bind+0x34>
 
-       if (cpcb->local_port == port) {
 
-  8030312:	8b58      	ldrh	r0, [r3, #26]
 
-  8030314:	4290      	cmp	r0, r2
 
-  8030316:	d106      	bne.n	8030326 <tcp_bind+0x32>
 
-            tcp_connect. */
 
-         if (!ip_get_option(pcb, SOF_REUSEADDR) ||
 
-             !ip_get_option(cpcb, SOF_REUSEADDR))
 
- #endif /* SO_REUSE */
 
-         {
 
-           if (ip_addr_isany(&(cpcb->local_ip)) ||
 
-  8030318:	681e      	ldr	r6, [r3, #0]
 
-  803031a:	b1de      	cbz	r6, 8030354 <tcp_bind+0x60>
 
-  803031c:	b1d5      	cbz	r5, 8030354 <tcp_bind+0x60>
 
-               ip_addr_isany(ipaddr) ||
 
-  803031e:	6828      	ldr	r0, [r5, #0]
 
-  8030320:	b1c0      	cbz	r0, 8030354 <tcp_bind+0x60>
 
-  8030322:	4286      	cmp	r6, r0
 
-  8030324:	d016      	beq.n	8030354 <tcp_bind+0x60>
 
-     }
 
-   }
 
-   /* Check if the address already is in use (on all lists) */
 
-   for (i = 0; i < max_pcb_list; i++) {
 
-     for(cpcb = *tcp_pcb_lists[i]; cpcb != NULL; cpcb = cpcb->next) {
 
-  8030326:	68db      	ldr	r3, [r3, #12]
 
-  8030328:	2b00      	cmp	r3, #0
 
-  803032a:	d1f2      	bne.n	8030312 <tcp_bind+0x1e>
 
-  803032c:	3104      	adds	r1, #4
 
-       return ERR_BUF;
 
-     }
 
-   }
 
-   /* Check if the address already is in use (on all lists) */
 
-   for (i = 0; i < max_pcb_list; i++) {
 
-  803032e:	2910      	cmp	r1, #16
 
-  8030330:	d1ec      	bne.n	803030c <tcp_bind+0x18>
 
-         }
 
-       }
 
-     }
 
-   }
 
-   if (!ip_addr_isany(ipaddr)) {
 
-  8030332:	b115      	cbz	r5, 803033a <tcp_bind+0x46>
 
-  8030334:	682b      	ldr	r3, [r5, #0]
 
-  8030336:	b103      	cbz	r3, 803033a <tcp_bind+0x46>
 
-     pcb->local_ip = *ipaddr;
 
-  8030338:	6023      	str	r3, [r4, #0]
 
-   }
 
-   pcb->local_port = port;
 
-   TCP_REG(&tcp_bound_pcbs, pcb);
 
-  803033a:	4b09      	ldr	r3, [pc, #36]	; (8030360 <tcp_bind+0x6c>)
 
-   }
 
-   if (!ip_addr_isany(ipaddr)) {
 
-     pcb->local_ip = *ipaddr;
 
-   }
 
-   pcb->local_port = port;
 
-  803033c:	8362      	strh	r2, [r4, #26]
 
-   TCP_REG(&tcp_bound_pcbs, pcb);
 
-  803033e:	681a      	ldr	r2, [r3, #0]
 
-  8030340:	601c      	str	r4, [r3, #0]
 
-  8030342:	60e2      	str	r2, [r4, #12]
 
-  8030344:	f002 f97e 	bl	8032644 <tcp_timer_needed>
 
-   LWIP_DEBUGF(TCP_DEBUG, ("tcp_bind: bind to port %"U16_F"\n", port));
 
-   return ERR_OK;
 
-  8030348:	2000      	movs	r0, #0
 
-  803034a:	e004      	b.n	8030356 <tcp_bind+0x62>
 
- {
 
-   int i;
 
-   int max_pcb_list = NUM_TCP_PCB_LISTS;
 
-   struct tcp_pcb *cpcb;
 
-   LWIP_ERROR("tcp_bind: can only bind in state CLOSED", pcb->state == CLOSED, return ERR_VAL);
 
-  803034c:	20fa      	movs	r0, #250	; 0xfa
 
-  803034e:	e002      	b.n	8030356 <tcp_bind+0x62>
 
- #endif /* SO_REUSE */
 
-   if (port == 0) {
 
-     port = tcp_new_port();
 
-     if (port == 0) {
 
-       return ERR_BUF;
 
-  8030350:	20fe      	movs	r0, #254	; 0xfe
 
-  8030352:	e000      	b.n	8030356 <tcp_bind+0x62>
 
- #endif /* SO_REUSE */
 
-         {
 
-           if (ip_addr_isany(&(cpcb->local_ip)) ||
 
-               ip_addr_isany(ipaddr) ||
 
-               ip_addr_cmp(&(cpcb->local_ip), ipaddr)) {
 
-             return ERR_USE;
 
-  8030354:	20f8      	movs	r0, #248	; 0xf8
 
-   }
 
-   pcb->local_port = port;
 
-   TCP_REG(&tcp_bound_pcbs, pcb);
 
-   LWIP_DEBUGF(TCP_DEBUG, ("tcp_bind: bind to port %"U16_F"\n", port));
 
-   return ERR_OK;
 
- }
 
-  8030356:	b240      	sxtb	r0, r0
 
-  8030358:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 
-  803035a:	bf00      	nop
 
-  803035c:	08044fe0 	.word	0x08044fe0
 
-  8030360:	2000f6cc 	.word	0x2000f6cc
 
- 08030364 <tcp_listen_with_backlog>:
 
-  *       called like this:
 
-  *             tpcb = tcp_listen(tpcb);
 
-  */
 
- struct tcp_pcb *
 
- tcp_listen_with_backlog(struct tcp_pcb *pcb, u8_t backlog)
 
- {
 
-  8030364:	b538      	push	{r3, r4, r5, lr}
 
-   struct tcp_pcb_listen *lpcb;
 
-   LWIP_UNUSED_ARG(backlog);
 
-   LWIP_ERROR("tcp_listen: pcb already connected", pcb->state == CLOSED, return NULL);
 
-  8030366:	7e03      	ldrb	r3, [r0, #24]
 
-  *       called like this:
 
-  *             tpcb = tcp_listen(tpcb);
 
-  */
 
- struct tcp_pcb *
 
- tcp_listen_with_backlog(struct tcp_pcb *pcb, u8_t backlog)
 
- {
 
-  8030368:	4604      	mov	r4, r0
 
-   struct tcp_pcb_listen *lpcb;
 
-   LWIP_UNUSED_ARG(backlog);
 
-   LWIP_ERROR("tcp_listen: pcb already connected", pcb->state == CLOSED, return NULL);
 
-  803036a:	b10b      	cbz	r3, 8030370 <tcp_listen_with_backlog+0xc>
 
-  803036c:	2000      	movs	r0, #0
 
-  803036e:	bd38      	pop	{r3, r4, r5, pc}
 
-         }
 
-       }
 
-     }
 
-   }
 
- #endif /* SO_REUSE */
 
-   lpcb = (struct tcp_pcb_listen *)memp_malloc(MEMP_TCP_PCB_LISTEN);
 
-  8030370:	2003      	movs	r0, #3
 
-  8030372:	f7ff fc2b 	bl	802fbcc <memp_malloc>
 
-   if (lpcb == NULL) {
 
-  8030376:	4605      	mov	r5, r0
 
-  8030378:	2800      	cmp	r0, #0
 
-  803037a:	d0f7      	beq.n	803036c <tcp_listen_with_backlog+0x8>
 
-     return NULL;
 
-   }
 
-   lpcb->callback_arg = pcb->callback_arg;
 
-  803037c:	6923      	ldr	r3, [r4, #16]
 
-  803037e:	6103      	str	r3, [r0, #16]
 
-   lpcb->local_port = pcb->local_port;
 
-  8030380:	8b63      	ldrh	r3, [r4, #26]
 
-  8030382:	8343      	strh	r3, [r0, #26]
 
-   lpcb->state = LISTEN;
 
-  8030384:	2301      	movs	r3, #1
 
-  8030386:	7603      	strb	r3, [r0, #24]
 
-   lpcb->prio = pcb->prio;
 
-  8030388:	7e63      	ldrb	r3, [r4, #25]
 
-  803038a:	7643      	strb	r3, [r0, #25]
 
-   lpcb->so_options = pcb->so_options;
 
-   ip_set_option(lpcb, SOF_ACCEPTCONN);
 
-  803038c:	7a23      	ldrb	r3, [r4, #8]
 
-  803038e:	f043 0302 	orr.w	r3, r3, #2
 
-  8030392:	7203      	strb	r3, [r0, #8]
 
-   lpcb->ttl = pcb->ttl;
 
-  8030394:	7aa3      	ldrb	r3, [r4, #10]
 
-  8030396:	7283      	strb	r3, [r0, #10]
 
-   lpcb->tos = pcb->tos;
 
-  8030398:	7a63      	ldrb	r3, [r4, #9]
 
-  803039a:	7243      	strb	r3, [r0, #9]
 
-   ip_addr_copy(lpcb->local_ip, pcb->local_ip);
 
-  803039c:	6823      	ldr	r3, [r4, #0]
 
-  803039e:	6003      	str	r3, [r0, #0]
 
-   if (pcb->local_port != 0) {
 
-  80303a0:	8b63      	ldrh	r3, [r4, #26]
 
-  80303a2:	b1ab      	cbz	r3, 80303d0 <tcp_listen_with_backlog+0x6c>
 
-     TCP_RMV(&tcp_bound_pcbs, pcb);
 
-  80303a4:	4a11      	ldr	r2, [pc, #68]	; (80303ec <tcp_listen_with_backlog+0x88>)
 
-  80303a6:	6813      	ldr	r3, [r2, #0]
 
-  80303a8:	42a3      	cmp	r3, r4
 
-  80303aa:	d101      	bne.n	80303b0 <tcp_listen_with_backlog+0x4c>
 
-  80303ac:	68e3      	ldr	r3, [r4, #12]
 
-  80303ae:	e00c      	b.n	80303ca <tcp_listen_with_backlog+0x66>
 
-  80303b0:	4a0f      	ldr	r2, [pc, #60]	; (80303f0 <tcp_listen_with_backlog+0x8c>)
 
-  80303b2:	6013      	str	r3, [r2, #0]
 
-  80303b4:	e007      	b.n	80303c6 <tcp_listen_with_backlog+0x62>
 
-  80303b6:	68d9      	ldr	r1, [r3, #12]
 
-  80303b8:	42a1      	cmp	r1, r4
 
-  80303ba:	d103      	bne.n	80303c4 <tcp_listen_with_backlog+0x60>
 
-  80303bc:	6013      	str	r3, [r2, #0]
 
-  80303be:	68e2      	ldr	r2, [r4, #12]
 
-  80303c0:	60da      	str	r2, [r3, #12]
 
-  80303c2:	e003      	b.n	80303cc <tcp_listen_with_backlog+0x68>
 
-  80303c4:	460b      	mov	r3, r1
 
-  80303c6:	2b00      	cmp	r3, #0
 
-  80303c8:	d1f5      	bne.n	80303b6 <tcp_listen_with_backlog+0x52>
 
-  80303ca:	6013      	str	r3, [r2, #0]
 
-  80303cc:	2300      	movs	r3, #0
 
-  80303ce:	60e3      	str	r3, [r4, #12]
 
-   }
 
-   memp_free(MEMP_TCP_PCB, pcb);
 
-  80303d0:	2002      	movs	r0, #2
 
-  80303d2:	4621      	mov	r1, r4
 
-  80303d4:	f7ff fc10 	bl	802fbf8 <memp_free>
 
- #if LWIP_CALLBACK_API
 
-   lpcb->accept = tcp_accept_null;
 
-  80303d8:	4b06      	ldr	r3, [pc, #24]	; (80303f4 <tcp_listen_with_backlog+0x90>)
 
-  80303da:	616b      	str	r3, [r5, #20]
 
- #endif /* LWIP_CALLBACK_API */
 
- #if TCP_LISTEN_BACKLOG
 
-   lpcb->accepts_pending = 0;
 
-   lpcb->backlog = (backlog ? backlog : 1);
 
- #endif /* TCP_LISTEN_BACKLOG */
 
-   TCP_REG(&tcp_listen_pcbs.pcbs, (struct tcp_pcb *)lpcb);
 
-  80303dc:	4b06      	ldr	r3, [pc, #24]	; (80303f8 <tcp_listen_with_backlog+0x94>)
 
-  80303de:	681a      	ldr	r2, [r3, #0]
 
-  80303e0:	601d      	str	r5, [r3, #0]
 
-  80303e2:	60ea      	str	r2, [r5, #12]
 
-  80303e4:	f002 f92e 	bl	8032644 <tcp_timer_needed>
 
-   return (struct tcp_pcb *)lpcb;
 
-  80303e8:	4628      	mov	r0, r5
 
- }
 
-  80303ea:	bd38      	pop	{r3, r4, r5, pc}
 
-  80303ec:	2000f6cc 	.word	0x2000f6cc
 
-  80303f0:	2000f6c8 	.word	0x2000f6c8
 
-  80303f4:	08030291 	.word	0x08030291
 
-  80303f8:	2000f6c4 	.word	0x2000f6c4
 
- 080303fc <tcp_update_rcv_ann_wnd>:
 
-  *
 
-  * Returns how much extra window would be advertised if we sent an
 
-  * update now.
 
-  */
 
- u32_t tcp_update_rcv_ann_wnd(struct tcp_pcb *pcb)
 
- {
 
-  80303fc:	b530      	push	{r4, r5, lr}
 
-   u32_t new_right_edge = pcb->rcv_nxt + pcb->rcv_wnd;
 
-   if (TCP_SEQ_GEQ(new_right_edge, pcb->rcv_ann_right_edge + LWIP_MIN((TCP_WND / 2), pcb->mss))) {
 
-  80303fe:	6b01      	ldr	r1, [r0, #48]	; 0x30
 
-  * Returns how much extra window would be advertised if we sent an
 
-  * update now.
 
-  */
 
- u32_t tcp_update_rcv_ann_wnd(struct tcp_pcb *pcb)
 
- {
 
-   u32_t new_right_edge = pcb->rcv_nxt + pcb->rcv_wnd;
 
-  8030400:	8d84      	ldrh	r4, [r0, #44]	; 0x2c
 
-   if (TCP_SEQ_GEQ(new_right_edge, pcb->rcv_ann_right_edge + LWIP_MIN((TCP_WND / 2), pcb->mss))) {
 
-  8030402:	8ec5      	ldrh	r5, [r0, #54]	; 0x36
 
-  * Returns how much extra window would be advertised if we sent an
 
-  * update now.
 
-  */
 
- u32_t tcp_update_rcv_ann_wnd(struct tcp_pcb *pcb)
 
- {
 
-   u32_t new_right_edge = pcb->rcv_nxt + pcb->rcv_wnd;
 
-  8030404:	6a82      	ldr	r2, [r0, #40]	; 0x28
 
-  *
 
-  * Returns how much extra window would be advertised if we sent an
 
-  * update now.
 
-  */
 
- u32_t tcp_update_rcv_ann_wnd(struct tcp_pcb *pcb)
 
- {
 
-  8030406:	4603      	mov	r3, r0
 
-   u32_t new_right_edge = pcb->rcv_nxt + pcb->rcv_wnd;
 
-   if (TCP_SEQ_GEQ(new_right_edge, pcb->rcv_ann_right_edge + LWIP_MIN((TCP_WND / 2), pcb->mss))) {
 
-  8030408:	f640 3068 	movw	r0, #2920	; 0xb68
 
-  803040c:	4285      	cmp	r5, r0
 
-  803040e:	bf28      	it	cs
 
-  8030410:	4605      	movcs	r5, r0
 
-  * Returns how much extra window would be advertised if we sent an
 
-  * update now.
 
-  */
 
- u32_t tcp_update_rcv_ann_wnd(struct tcp_pcb *pcb)
 
- {
 
-   u32_t new_right_edge = pcb->rcv_nxt + pcb->rcv_wnd;
 
-  8030412:	1a60      	subs	r0, r4, r1
 
-   if (TCP_SEQ_GEQ(new_right_edge, pcb->rcv_ann_right_edge + LWIP_MIN((TCP_WND / 2), pcb->mss))) {
 
-  8030414:	1880      	adds	r0, r0, r2
 
-  8030416:	1b45      	subs	r5, r0, r5
 
-  8030418:	2d00      	cmp	r5, #0
 
-  803041a:	db01      	blt.n	8030420 <tcp_update_rcv_ann_wnd+0x24>
 
-     /* we can advertise more window */
 
-     pcb->rcv_ann_wnd = pcb->rcv_wnd;
 
-  803041c:	85dc      	strh	r4, [r3, #46]	; 0x2e
 
-     return new_right_edge - pcb->rcv_ann_right_edge;
 
-  803041e:	bd30      	pop	{r4, r5, pc}
 
-   } else {
 
-     if (TCP_SEQ_GT(pcb->rcv_nxt, pcb->rcv_ann_right_edge)) {
 
-  8030420:	1a50      	subs	r0, r2, r1
 
-  8030422:	2800      	cmp	r0, #0
 
-  8030424:	f04f 0000 	mov.w	r0, #0
 
-  8030428:	dd01      	ble.n	803042e <tcp_update_rcv_ann_wnd+0x32>
 
-       /* Can happen due to other end sending out of advertised window,
 
-        * but within actual available (but not yet advertised) window */
 
-       pcb->rcv_ann_wnd = 0;
 
-  803042a:	85d8      	strh	r0, [r3, #46]	; 0x2e
 
-  803042c:	bd30      	pop	{r4, r5, pc}
 
-     } else {
 
-       /* keep the right edge of window constant */
 
-       u32_t new_rcv_ann_wnd = pcb->rcv_ann_right_edge - pcb->rcv_nxt;
 
-  803042e:	1a8a      	subs	r2, r1, r2
 
-       LWIP_ASSERT("new_rcv_ann_wnd <= 0xffff", new_rcv_ann_wnd <= 0xffff);
 
-       pcb->rcv_ann_wnd = (u16_t)new_rcv_ann_wnd;
 
-  8030430:	85da      	strh	r2, [r3, #46]	; 0x2e
 
-     }
 
-     return 0;
 
-   }
 
- }
 
-  8030432:	bd30      	pop	{r4, r5, pc}
 
- 08030434 <tcp_recved>:
 
-   LWIP_ASSERT("don't call tcp_recved for listen-pcbs",
 
-     pcb->state != LISTEN);
 
-   LWIP_ASSERT("tcp_recved: len would wrap rcv_wnd\n",
 
-               len <= 0xffff - pcb->rcv_wnd );
 
-   pcb->rcv_wnd += len;
 
-  8030434:	8d83      	ldrh	r3, [r0, #44]	; 0x2c
 
-  8030436:	18c9      	adds	r1, r1, r3
 
-  8030438:	b289      	uxth	r1, r1
 
-   if (pcb->rcv_wnd > TCP_WND) {
 
-  803043a:	f241 63d0 	movw	r3, #5840	; 0x16d0
 
-  803043e:	4299      	cmp	r1, r3
 
-  * @param pcb the tcp_pcb for which data is read
 
-  * @param len the amount of bytes that have been read by the application
 
-  */
 
- void
 
- tcp_recved(struct tcp_pcb *pcb, u16_t len)
 
- {
 
-  8030440:	b510      	push	{r4, lr}
 
-   LWIP_ASSERT("tcp_recved: len would wrap rcv_wnd\n",
 
-               len <= 0xffff - pcb->rcv_wnd );
 
-   pcb->rcv_wnd += len;
 
-   if (pcb->rcv_wnd > TCP_WND) {
 
-     pcb->rcv_wnd = TCP_WND;
 
-  8030442:	bf8c      	ite	hi
 
-  8030444:	8583      	strhhi	r3, [r0, #44]	; 0x2c
 
-   LWIP_ASSERT("don't call tcp_recved for listen-pcbs",
 
-     pcb->state != LISTEN);
 
-   LWIP_ASSERT("tcp_recved: len would wrap rcv_wnd\n",
 
-               len <= 0xffff - pcb->rcv_wnd );
 
-   pcb->rcv_wnd += len;
 
-  8030446:	8581      	strhls	r1, [r0, #44]	; 0x2c
 
-  * @param pcb the tcp_pcb for which data is read
 
-  * @param len the amount of bytes that have been read by the application
 
-  */
 
- void
 
- tcp_recved(struct tcp_pcb *pcb, u16_t len)
 
- {
 
-  8030448:	4604      	mov	r4, r0
 
-   pcb->rcv_wnd += len;
 
-   if (pcb->rcv_wnd > TCP_WND) {
 
-     pcb->rcv_wnd = TCP_WND;
 
-   }
 
-   wnd_inflation = tcp_update_rcv_ann_wnd(pcb);
 
-  803044a:	f7ff ffd7 	bl	80303fc <tcp_update_rcv_ann_wnd>
 
-   /* If the change in the right edge of window is significant (default
 
-    * watermark is TCP_WND/4), then send an explicit update now.
 
-    * Otherwise wait for a packet to be sent in the normal course of
 
-    * events (or more window to be available later) */
 
-   if (wnd_inflation >= TCP_WND_UPDATE_THRESHOLD) {
 
-  803044e:	f240 53b3 	movw	r3, #1459	; 0x5b3
 
-  8030452:	4298      	cmp	r0, r3
 
-  8030454:	dd08      	ble.n	8030468 <tcp_recved+0x34>
 
-     tcp_ack_now(pcb);
 
-  8030456:	7fa3      	ldrb	r3, [r4, #30]
 
-     tcp_output(pcb);
 
-  8030458:	4620      	mov	r0, r4
 
-   /* If the change in the right edge of window is significant (default
 
-    * watermark is TCP_WND/4), then send an explicit update now.
 
-    * Otherwise wait for a packet to be sent in the normal course of
 
-    * events (or more window to be available later) */
 
-   if (wnd_inflation >= TCP_WND_UPDATE_THRESHOLD) {
 
-     tcp_ack_now(pcb);
 
-  803045a:	f043 0302 	orr.w	r3, r3, #2
 
-  803045e:	77a3      	strb	r3, [r4, #30]
 
-     tcp_output(pcb);
 
-   }
 
-   LWIP_DEBUGF(TCP_DEBUG, ("tcp_recved: recveived %"U16_F" bytes, wnd %"U16_F" (%"U16_F").\n",
 
-          len, pcb->rcv_wnd, TCP_WND - pcb->rcv_wnd));
 
- }
 
-  8030460:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
-    * watermark is TCP_WND/4), then send an explicit update now.
 
-    * Otherwise wait for a packet to be sent in the normal course of
 
-    * events (or more window to be available later) */
 
-   if (wnd_inflation >= TCP_WND_UPDATE_THRESHOLD) {
 
-     tcp_ack_now(pcb);
 
-     tcp_output(pcb);
 
-  8030464:	f001 be30 	b.w	80320c8 <tcp_output>
 
-  8030468:	bd10      	pop	{r4, pc}
 
- 0803046a <tcp_seg_free>:
 
-  *
 
-  * @param seg single tcp_seg to free
 
-  */
 
- void
 
- tcp_seg_free(struct tcp_seg *seg)
 
- {
 
-  803046a:	b510      	push	{r4, lr}
 
-   if (seg != NULL) {
 
-  803046c:	4604      	mov	r4, r0
 
-  803046e:	b148      	cbz	r0, 8030484 <tcp_seg_free+0x1a>
 
-     if (seg->p != NULL) {
 
-  8030470:	6840      	ldr	r0, [r0, #4]
 
-  8030472:	b108      	cbz	r0, 8030478 <tcp_seg_free+0xe>
 
-       pbuf_free(seg->p);
 
-  8030474:	f7ff fcca 	bl	802fe0c <pbuf_free>
 
- #if TCP_DEBUG
 
-       seg->p = NULL;
 
- #endif /* TCP_DEBUG */
 
-     }
 
-     memp_free(MEMP_TCP_SEG, seg);
 
-  8030478:	2004      	movs	r0, #4
 
-  803047a:	4621      	mov	r1, r4
 
-   }
 
- }
 
-  803047c:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
-       pbuf_free(seg->p);
 
- #if TCP_DEBUG
 
-       seg->p = NULL;
 
- #endif /* TCP_DEBUG */
 
-     }
 
-     memp_free(MEMP_TCP_SEG, seg);
 
-  8030480:	f7ff bbba 	b.w	802fbf8 <memp_free>
 
-  8030484:	bd10      	pop	{r4, pc}
 
- 08030486 <tcp_segs_free>:
 
-  *
 
-  * @param seg tcp_seg list of TCP segments to free
 
-  */
 
- void
 
- tcp_segs_free(struct tcp_seg *seg)
 
- {
 
-  8030486:	b510      	push	{r4, lr}
 
-   while (seg != NULL) {
 
-  8030488:	e003      	b.n	8030492 <tcp_segs_free+0xc>
 
-     struct tcp_seg *next = seg->next;
 
-  803048a:	6804      	ldr	r4, [r0, #0]
 
-     tcp_seg_free(seg);
 
-  803048c:	f7ff ffed 	bl	803046a <tcp_seg_free>
 
-     seg = next;
 
-  8030490:	4620      	mov	r0, r4
 
-  * @param seg tcp_seg list of TCP segments to free
 
-  */
 
- void
 
- tcp_segs_free(struct tcp_seg *seg)
 
- {
 
-   while (seg != NULL) {
 
-  8030492:	2800      	cmp	r0, #0
 
-  8030494:	d1f9      	bne.n	803048a <tcp_segs_free+0x4>
 
-     struct tcp_seg *next = seg->next;
 
-     tcp_seg_free(seg);
 
-     seg = next;
 
-   }
 
- }
 
-  8030496:	bd10      	pop	{r4, pc}
 
- 08030498 <tcp_arg>:
 
- void
 
- tcp_arg(struct tcp_pcb *pcb, void *arg)
 
- {
 
-   /* This function is allowed to be called for both listen pcbs and
 
-      connection pcbs. */
 
-   pcb->callback_arg = arg;
 
-  8030498:	6101      	str	r1, [r0, #16]
 
-  803049a:	4770      	bx	lr
 
- 0803049c <tcp_recv>:
 
-  */ 
 
- void
 
- tcp_recv(struct tcp_pcb *pcb, tcp_recv_fn recv)
 
- {
 
-   LWIP_ASSERT("invalid socket state for recv callback", pcb->state != LISTEN);
 
-   pcb->recv = recv;
 
-  803049c:	67c1      	str	r1, [r0, #124]	; 0x7c
 
-  803049e:	4770      	bx	lr
 
- 080304a0 <tcp_sent>:
 
-  */ 
 
- void
 
- tcp_sent(struct tcp_pcb *pcb, tcp_sent_fn sent)
 
- {
 
-   LWIP_ASSERT("invalid socket state for sent callback", pcb->state != LISTEN);
 
-   pcb->sent = sent;
 
-  80304a0:	6781      	str	r1, [r0, #120]	; 0x78
 
-  80304a2:	4770      	bx	lr
 
- 080304a4 <tcp_err>:
 
-  */ 
 
- void
 
- tcp_err(struct tcp_pcb *pcb, tcp_err_fn err)
 
- {
 
-   LWIP_ASSERT("invalid socket state for err callback", pcb->state != LISTEN);
 
-   pcb->errf = err;
 
-  80304a4:	f8c0 1088 	str.w	r1, [r0, #136]	; 0x88
 
-  80304a8:	4770      	bx	lr
 
- 080304aa <tcp_accept>:
 
- void
 
- tcp_accept(struct tcp_pcb *pcb, tcp_accept_fn accept)
 
- {
 
-   /* This function is allowed to be called for both listen pcbs and
 
-      connection pcbs. */
 
-   pcb->accept = accept;
 
-  80304aa:	6141      	str	r1, [r0, #20]
 
-  80304ac:	4770      	bx	lr
 
- 080304ae <tcp_poll>:
 
- void
 
- tcp_poll(struct tcp_pcb *pcb, tcp_poll_fn poll, u8_t interval)
 
- {
 
-   LWIP_ASSERT("invalid socket state for poll", pcb->state != LISTEN);
 
- #if LWIP_CALLBACK_API
 
-   pcb->poll = poll;
 
-  80304ae:	f8c0 1084 	str.w	r1, [r0, #132]	; 0x84
 
- #else /* LWIP_CALLBACK_API */  
 
-   LWIP_UNUSED_ARG(poll);
 
- #endif /* LWIP_CALLBACK_API */  
 
-   pcb->pollinterval = interval;
 
-  80304b2:	f880 2020 	strb.w	r2, [r0, #32]
 
-  80304b6:	4770      	bx	lr
 
- 080304b8 <tcp_pcb_purge>:
 
-  * @param pcb tcp_pcb to purge. The pcb itself is not deallocated!
 
-  */
 
- void
 
- tcp_pcb_purge(struct tcp_pcb *pcb)
 
- {
 
-   if (pcb->state != CLOSED &&
 
-  80304b8:	7e03      	ldrb	r3, [r0, #24]
 
-  *
 
-  * @param pcb tcp_pcb to purge. The pcb itself is not deallocated!
 
-  */
 
- void
 
- tcp_pcb_purge(struct tcp_pcb *pcb)
 
- {
 
-  80304ba:	b510      	push	{r4, lr}
 
-  80304bc:	4604      	mov	r4, r0
 
-   if (pcb->state != CLOSED &&
 
-  80304be:	b1bb      	cbz	r3, 80304f0 <tcp_pcb_purge+0x38>
 
-  80304c0:	2b0a      	cmp	r3, #10
 
-  80304c2:	d015      	beq.n	80304f0 <tcp_pcb_purge+0x38>
 
-      pcb->state != TIME_WAIT &&
 
-  80304c4:	2b01      	cmp	r3, #1
 
-  80304c6:	d013      	beq.n	80304f0 <tcp_pcb_purge+0x38>
 
-       }
 
-     }
 
- #endif /* TCP_LISTEN_BACKLOG */
 
-     if (pcb->refused_data != NULL) {
 
-  80304c8:	6f40      	ldr	r0, [r0, #116]	; 0x74
 
-  80304ca:	b118      	cbz	r0, 80304d4 <tcp_pcb_purge+0x1c>
 
-       LWIP_DEBUGF(TCP_DEBUG, ("tcp_pcb_purge: data left on ->refused_data\n"));
 
-       pbuf_free(pcb->refused_data);
 
-  80304cc:	f7ff fc9e 	bl	802fe0c <pbuf_free>
 
-       pcb->refused_data = NULL;
 
-  80304d0:	2300      	movs	r3, #0
 
-  80304d2:	6763      	str	r3, [r4, #116]	; 0x74
 
-     pcb->ooseq = NULL;
 
- #endif /* TCP_QUEUE_OOSEQ */
 
-     /* Stop the retransmission timer as it will expect data on unacked
 
-        queue if it fires */
 
-     pcb->rtime = -1;
 
-  80304d4:	f64f 73ff 	movw	r3, #65535	; 0xffff
 
-  80304d8:	86a3      	strh	r3, [r4, #52]	; 0x34
 
-     tcp_segs_free(pcb->unsent);
 
-  80304da:	6ee0      	ldr	r0, [r4, #108]	; 0x6c
 
-  80304dc:	f7ff ffd3 	bl	8030486 <tcp_segs_free>
 
-     tcp_segs_free(pcb->unacked);
 
-  80304e0:	6f20      	ldr	r0, [r4, #112]	; 0x70
 
-  80304e2:	f7ff ffd0 	bl	8030486 <tcp_segs_free>
 
-     pcb->unacked = pcb->unsent = NULL;
 
-  80304e6:	2300      	movs	r3, #0
 
-  80304e8:	66e3      	str	r3, [r4, #108]	; 0x6c
 
-  80304ea:	6723      	str	r3, [r4, #112]	; 0x70
 
- #if TCP_OVERSIZE
 
-     pcb->unsent_oversize = 0;
 
-  80304ec:	f8a4 306a 	strh.w	r3, [r4, #106]	; 0x6a
 
-  80304f0:	bd10      	pop	{r4, pc}
 
-  80304f2:	0000      	movs	r0, r0
 
- 080304f4 <tcp_slowtmr>:
 
-   u8_t pcb_reset;       /* flag if a RST should be sent when removing */
 
-   err_t err;
 
-   err = ERR_OK;
 
-   ++tcp_ticks;
 
-  80304f4:	4b9c      	ldr	r3, [pc, #624]	; (8030768 <tcp_slowtmr+0x274>)
 
-  *
 
-  * Automatically called from tcp_tmr().
 
-  */
 
- void
 
- tcp_slowtmr(void)
 
- {
 
-  80304f6:	e92d 4ff7 	stmdb	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-   u8_t pcb_reset;       /* flag if a RST should be sent when removing */
 
-   err_t err;
 
-   err = ERR_OK;
 
-   ++tcp_ticks;
 
-  80304fa:	681a      	ldr	r2, [r3, #0]
 
-       err_arg = pcb->callback_arg;
 
-       pcb2 = pcb;
 
-       pcb = pcb->next;
 
-       memp_free(MEMP_TCP_PCB, pcb2);
 
-       tcp_active_pcbs_changed = 0;
 
-  80304fc:	f8df 8284 	ldr.w	r8, [pc, #644]	; 8030784 <tcp_slowtmr+0x290>
 
-   u8_t pcb_reset;       /* flag if a RST should be sent when removing */
 
-   err_t err;
 
-   err = ERR_OK;
 
-   ++tcp_ticks;
 
-  8030500:	3201      	adds	r2, #1
 
-  8030502:	601a      	str	r2, [r3, #0]
 
-   ++tcp_timer_ctr;
 
-  8030504:	4b99      	ldr	r3, [pc, #612]	; (803076c <tcp_slowtmr+0x278>)
 
-  8030506:	781a      	ldrb	r2, [r3, #0]
 
-  8030508:	3201      	adds	r2, #1
 
-  803050a:	701a      	strb	r2, [r3, #0]
 
-  803050c:	46c1      	mov	r9, r8
 
- tcp_slowtmr_start:
 
-   /* Steps through all of the active PCBs. */
 
-   prev = NULL;
 
-   pcb = tcp_active_pcbs;
 
-  803050e:	4b98      	ldr	r3, [pc, #608]	; (8030770 <tcp_slowtmr+0x27c>)
 
-   while (pcb != NULL) {
 
-     LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: processing active pcb\n"));
 
-     LWIP_ASSERT("tcp_slowtmr: active pcb->state != CLOSED\n", pcb->state != CLOSED);
 
-     LWIP_ASSERT("tcp_slowtmr: active pcb->state != LISTEN\n", pcb->state != LISTEN);
 
-     LWIP_ASSERT("tcp_slowtmr: active pcb->state != TIME-WAIT\n", pcb->state != TIME_WAIT);
 
-     if (pcb->last_timer == tcp_timer_ctr) {
 
-  8030510:	f8df a258 	ldr.w	sl, [pc, #600]	; 803076c <tcp_slowtmr+0x278>
 
-   ++tcp_timer_ctr;
 
- tcp_slowtmr_start:
 
-   /* Steps through all of the active PCBs. */
 
-   prev = NULL;
 
-   pcb = tcp_active_pcbs;
 
-  8030514:	681c      	ldr	r4, [r3, #0]
 
-   ++tcp_ticks;
 
-   ++tcp_timer_ctr;
 
- tcp_slowtmr_start:
 
-   /* Steps through all of the active PCBs. */
 
-   prev = NULL;
 
-  8030516:	2600      	movs	r6, #0
 
-   pcb = tcp_active_pcbs;
 
-   if (pcb == NULL) {
 
-     LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: no active pcbs\n"));
 
-   }
 
-   while (pcb != NULL) {
 
-  8030518:	e0ff      	b.n	803071a <tcp_slowtmr+0x226>
 
-     LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: processing active pcb\n"));
 
-     LWIP_ASSERT("tcp_slowtmr: active pcb->state != CLOSED\n", pcb->state != CLOSED);
 
-     LWIP_ASSERT("tcp_slowtmr: active pcb->state != LISTEN\n", pcb->state != LISTEN);
 
-     LWIP_ASSERT("tcp_slowtmr: active pcb->state != TIME-WAIT\n", pcb->state != TIME_WAIT);
 
-     if (pcb->last_timer == tcp_timer_ctr) {
 
-  803051a:	f89a 3000 	ldrb.w	r3, [sl]
 
-  803051e:	f894 2021 	ldrb.w	r2, [r4, #33]	; 0x21
 
-  8030522:	429a      	cmp	r2, r3
 
-  8030524:	d101      	bne.n	803052a <tcp_slowtmr+0x36>
 
-       /* skip this pcb, we have already processed it */
 
-       pcb = pcb->next;
 
-  8030526:	68e7      	ldr	r7, [r4, #12]
 
-       continue;
 
-  8030528:	e0f6      	b.n	8030718 <tcp_slowtmr+0x224>
 
-     pcb->last_timer = tcp_timer_ctr;
 
-     pcb_remove = 0;
 
-     pcb_reset = 0;
 
-     if (pcb->state == SYN_SENT && pcb->nrtx == TCP_SYNMAXRTX) {
 
-  803052a:	7e21      	ldrb	r1, [r4, #24]
 
-     if (pcb->last_timer == tcp_timer_ctr) {
 
-       /* skip this pcb, we have already processed it */
 
-       pcb = pcb->next;
 
-       continue;
 
-     }
 
-     pcb->last_timer = tcp_timer_ctr;
 
-  803052c:	f884 3021 	strb.w	r3, [r4, #33]	; 0x21
 
-     pcb_remove = 0;
 
-     pcb_reset = 0;
 
-     if (pcb->state == SYN_SENT && pcb->nrtx == TCP_SYNMAXRTX) {
 
-  8030530:	2902      	cmp	r1, #2
 
-  8030532:	f894 2046 	ldrb.w	r2, [r4, #70]	; 0x46
 
-  8030536:	d101      	bne.n	803053c <tcp_slowtmr+0x48>
 
-  8030538:	2a06      	cmp	r2, #6
 
-  803053a:	d051      	beq.n	80305e0 <tcp_slowtmr+0xec>
 
-       ++pcb_remove;
 
-       LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: max SYN retries reached\n"));
 
-     }
 
-     else if (pcb->nrtx == TCP_MAXRTX) {
 
-  803053c:	2a0c      	cmp	r2, #12
 
-  803053e:	d04f      	beq.n	80305e0 <tcp_slowtmr+0xec>
 
-       ++pcb_remove;
 
-       LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: max DATA retries reached\n"));
 
-     } else {
 
-       if (pcb->persist_backoff > 0) {
 
-  8030540:	f894 3091 	ldrb.w	r3, [r4, #145]	; 0x91
 
-  8030544:	b1c3      	cbz	r3, 8030578 <tcp_slowtmr+0x84>
 
-         /* If snd_wnd is zero, use persist timer to send 1 byte probes
 
-          * instead of using the standard retransmission mechanism. */
 
-         pcb->persist_cnt++;
 
-         if (pcb->persist_cnt >= tcp_persist_backoff[pcb->persist_backoff-1]) {
 
-  8030546:	498b      	ldr	r1, [pc, #556]	; (8030774 <tcp_slowtmr+0x280>)
 
-       LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: max DATA retries reached\n"));
 
-     } else {
 
-       if (pcb->persist_backoff > 0) {
 
-         /* If snd_wnd is zero, use persist timer to send 1 byte probes
 
-          * instead of using the standard retransmission mechanism. */
 
-         pcb->persist_cnt++;
 
-  8030548:	f894 2090 	ldrb.w	r2, [r4, #144]	; 0x90
 
-         if (pcb->persist_cnt >= tcp_persist_backoff[pcb->persist_backoff-1]) {
 
-  803054c:	18c9      	adds	r1, r1, r3
 
-       LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: max DATA retries reached\n"));
 
-     } else {
 
-       if (pcb->persist_backoff > 0) {
 
-         /* If snd_wnd is zero, use persist timer to send 1 byte probes
 
-          * instead of using the standard retransmission mechanism. */
 
-         pcb->persist_cnt++;
 
-  803054e:	3201      	adds	r2, #1
 
-         if (pcb->persist_cnt >= tcp_persist_backoff[pcb->persist_backoff-1]) {
 
-  8030550:	f811 1c01 	ldrb.w	r1, [r1, #-1]
 
-       LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: max DATA retries reached\n"));
 
-     } else {
 
-       if (pcb->persist_backoff > 0) {
 
-         /* If snd_wnd is zero, use persist timer to send 1 byte probes
 
-          * instead of using the standard retransmission mechanism. */
 
-         pcb->persist_cnt++;
 
-  8030554:	b2d2      	uxtb	r2, r2
 
-         if (pcb->persist_cnt >= tcp_persist_backoff[pcb->persist_backoff-1]) {
 
-  8030556:	4291      	cmp	r1, r2
 
-       LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: max DATA retries reached\n"));
 
-     } else {
 
-       if (pcb->persist_backoff > 0) {
 
-         /* If snd_wnd is zero, use persist timer to send 1 byte probes
 
-          * instead of using the standard retransmission mechanism. */
 
-         pcb->persist_cnt++;
 
-  8030558:	f884 2090 	strb.w	r2, [r4, #144]	; 0x90
 
-         if (pcb->persist_cnt >= tcp_persist_backoff[pcb->persist_backoff-1]) {
 
-  803055c:	d900      	bls.n	8030560 <tcp_slowtmr+0x6c>
 
-  803055e:	e03d      	b.n	80305dc <tcp_slowtmr+0xe8>
 
-           pcb->persist_cnt = 0;
 
-  8030560:	2200      	movs	r2, #0
 
-           if (pcb->persist_backoff < sizeof(tcp_persist_backoff)) {
 
-  8030562:	2b06      	cmp	r3, #6
 
-       if (pcb->persist_backoff > 0) {
 
-         /* If snd_wnd is zero, use persist timer to send 1 byte probes
 
-          * instead of using the standard retransmission mechanism. */
 
-         pcb->persist_cnt++;
 
-         if (pcb->persist_cnt >= tcp_persist_backoff[pcb->persist_backoff-1]) {
 
-           pcb->persist_cnt = 0;
 
-  8030564:	f884 2090 	strb.w	r2, [r4, #144]	; 0x90
 
-           if (pcb->persist_backoff < sizeof(tcp_persist_backoff)) {
 
-  8030568:	d802      	bhi.n	8030570 <tcp_slowtmr+0x7c>
 
-             pcb->persist_backoff++;
 
-  803056a:	3301      	adds	r3, #1
 
-  803056c:	f884 3091 	strb.w	r3, [r4, #145]	; 0x91
 
-           }
 
-           tcp_zero_window_probe(pcb);
 
-  8030570:	4620      	mov	r0, r4
 
-  8030572:	f001 ffa4 	bl	80324be <tcp_zero_window_probe>
 
-  8030576:	e031      	b.n	80305dc <tcp_slowtmr+0xe8>
 
-         }
 
-       } else {
 
-         /* Increase the retransmission timer if it is running */
 
-         if(pcb->rtime >= 0) {
 
-  8030578:	8ea3      	ldrh	r3, [r4, #52]	; 0x34
 
-  803057a:	0418      	lsls	r0, r3, #16
 
-  803057c:	d401      	bmi.n	8030582 <tcp_slowtmr+0x8e>
 
-           ++pcb->rtime;
 
-  803057e:	3301      	adds	r3, #1
 
-  8030580:	86a3      	strh	r3, [r4, #52]	; 0x34
 
-         }
 
-         if (pcb->unacked != NULL && pcb->rtime >= pcb->rto) {
 
-  8030582:	6f23      	ldr	r3, [r4, #112]	; 0x70
 
-  8030584:	b353      	cbz	r3, 80305dc <tcp_slowtmr+0xe8>
 
-  8030586:	f9b4 0034 	ldrsh.w	r0, [r4, #52]	; 0x34
 
-  803058a:	f9b4 3044 	ldrsh.w	r3, [r4, #68]	; 0x44
 
-  803058e:	4298      	cmp	r0, r3
 
-  8030590:	db24      	blt.n	80305dc <tcp_slowtmr+0xe8>
 
-                                       " pcb->rto %"S16_F"\n",
 
-                                       pcb->rtime, pcb->rto));
 
-           /* Double retransmission time-out unless we are trying to
 
-            * connect to somebody (i.e., we are in SYN_SENT). */
 
-           if (pcb->state != SYN_SENT) {
 
-  8030592:	2902      	cmp	r1, #2
 
-  8030594:	d00b      	beq.n	80305ae <tcp_slowtmr+0xba>
 
-             pcb->rto = ((pcb->sa >> 3) + pcb->sv) << tcp_backoff[pcb->nrtx];
 
-  8030596:	f9b4 1040 	ldrsh.w	r1, [r4, #64]	; 0x40
 
-  803059a:	f9b4 3042 	ldrsh.w	r3, [r4, #66]	; 0x42
 
-  803059e:	eb03 03e1 	add.w	r3, r3, r1, asr #3
 
-  80305a2:	4975      	ldr	r1, [pc, #468]	; (8030778 <tcp_slowtmr+0x284>)
 
-  80305a4:	5c8a      	ldrb	r2, [r1, r2]
 
-  80305a6:	fa03 f302 	lsl.w	r3, r3, r2
 
-  80305aa:	f8a4 3044 	strh.w	r3, [r4, #68]	; 0x44
 
-           }
 
-           /* Reset the retransmission timer. */
 
-           pcb->rtime = 0;
 
-  80305ae:	2300      	movs	r3, #0
 
-           /* Reduce congestion window and ssthresh. */
 
-           eff_wnd = LWIP_MIN(pcb->cwnd, pcb->snd_wnd);
 
-  80305b0:	f8b4 104c 	ldrh.w	r1, [r4, #76]	; 0x4c
 
-           if (pcb->state != SYN_SENT) {
 
-             pcb->rto = ((pcb->sa >> 3) + pcb->sv) << tcp_backoff[pcb->nrtx];
 
-           }
 
-           /* Reset the retransmission timer. */
 
-           pcb->rtime = 0;
 
-  80305b4:	86a3      	strh	r3, [r4, #52]	; 0x34
 
-           /* Reduce congestion window and ssthresh. */
 
-           eff_wnd = LWIP_MIN(pcb->cwnd, pcb->snd_wnd);
 
-  80305b6:	f8b4 3060 	ldrh.w	r3, [r4, #96]	; 0x60
 
-           pcb->ssthresh = eff_wnd >> 1;
 
-  80305ba:	4299      	cmp	r1, r3
 
-  80305bc:	bf28      	it	cs
 
-  80305be:	4619      	movcs	r1, r3
 
-           if (pcb->ssthresh < (pcb->mss << 1)) {
 
-  80305c0:	8ee3      	ldrh	r3, [r4, #54]	; 0x36
 
-           /* Reset the retransmission timer. */
 
-           pcb->rtime = 0;
 
-           /* Reduce congestion window and ssthresh. */
 
-           eff_wnd = LWIP_MIN(pcb->cwnd, pcb->snd_wnd);
 
-           pcb->ssthresh = eff_wnd >> 1;
 
-  80305c2:	0849      	lsrs	r1, r1, #1
 
-           if (pcb->ssthresh < (pcb->mss << 1)) {
 
-  80305c4:	005a      	lsls	r2, r3, #1
 
-  80305c6:	4291      	cmp	r1, r2
 
-           /* Reset the retransmission timer. */
 
-           pcb->rtime = 0;
 
-           /* Reduce congestion window and ssthresh. */
 
-           eff_wnd = LWIP_MIN(pcb->cwnd, pcb->snd_wnd);
 
-           pcb->ssthresh = eff_wnd >> 1;
 
-  80305c8:	f8a4 104e 	strh.w	r1, [r4, #78]	; 0x4e
 
-           if (pcb->ssthresh < (pcb->mss << 1)) {
 
-             pcb->ssthresh = (pcb->mss << 1);
 
-           }
 
-           pcb->cwnd = pcb->mss;
 
-  80305cc:	f8a4 304c 	strh.w	r3, [r4, #76]	; 0x4c
 
-           /* Reduce congestion window and ssthresh. */
 
-           eff_wnd = LWIP_MIN(pcb->cwnd, pcb->snd_wnd);
 
-           pcb->ssthresh = eff_wnd >> 1;
 
-           if (pcb->ssthresh < (pcb->mss << 1)) {
 
-             pcb->ssthresh = (pcb->mss << 1);
 
-  80305d0:	bfb8      	it	lt
 
-  80305d2:	f8a4 204e 	strhlt.w	r2, [r4, #78]	; 0x4e
 
-                                        " ssthresh %"U16_F"\n",
 
-                                        pcb->cwnd, pcb->ssthresh));
 
-  
 
-           /* The following needs to be called AFTER cwnd is set to one
 
-              mss - STJ */
 
-           tcp_rexmit_rto(pcb);
 
-  80305d6:	4620      	mov	r0, r4
 
-  80305d8:	f001 fee0 	bl	803239c <tcp_rexmit_rto>
 
-       pcb = pcb->next;
 
-       continue;
 
-     }
 
-     pcb->last_timer = tcp_timer_ctr;
 
-     pcb_remove = 0;
 
-  80305dc:	2500      	movs	r5, #0
 
-  80305de:	e000      	b.n	80305e2 <tcp_slowtmr+0xee>
 
-     pcb_reset = 0;
 
-     if (pcb->state == SYN_SENT && pcb->nrtx == TCP_SYNMAXRTX) {
 
-       ++pcb_remove;
 
-  80305e0:	2501      	movs	r5, #1
 
-           tcp_rexmit_rto(pcb);
 
-         }
 
-       }
 
-     }
 
-     /* Check if this PCB has stayed too long in FIN-WAIT-2 */
 
-     if (pcb->state == FIN_WAIT_2) {
 
-  80305e2:	7e23      	ldrb	r3, [r4, #24]
 
-  80305e4:	2b06      	cmp	r3, #6
 
-  80305e6:	d10c      	bne.n	8030602 <tcp_slowtmr+0x10e>
 
-       /* If this PCB is in FIN_WAIT_2 because of SHUT_WR don't let it time out. */
 
-       if (pcb->flags & TF_RXCLOSED) {
 
-  80305e8:	7fa2      	ldrb	r2, [r4, #30]
 
-  80305ea:	f002 0210 	and.w	r2, r2, #16
 
-  80305ee:	b2d2      	uxtb	r2, r2
 
-  80305f0:	b13a      	cbz	r2, 8030602 <tcp_slowtmr+0x10e>
 
-         /* PCB was fully closed (either through close() or SHUT_RDWR):
 
-            normal FIN-WAIT timeout handling. */
 
-         if ((u32_t)(tcp_ticks - pcb->tmr) >
 
-  80305f2:	4a5d      	ldr	r2, [pc, #372]	; (8030768 <tcp_slowtmr+0x274>)
 
-  80305f4:	6811      	ldr	r1, [r2, #0]
 
-  80305f6:	6a62      	ldr	r2, [r4, #36]	; 0x24
 
-  80305f8:	1a8a      	subs	r2, r1, r2
 
-  80305fa:	2a28      	cmp	r2, #40	; 0x28
 
-  80305fc:	d901      	bls.n	8030602 <tcp_slowtmr+0x10e>
 
-             TCP_FIN_WAIT_TIMEOUT / TCP_SLOW_INTERVAL) {
 
-           ++pcb_remove;
 
-  80305fe:	3501      	adds	r5, #1
 
-  8030600:	b2ed      	uxtb	r5, r5
 
-         }
 
-       }
 
-     }
 
-     /* Check if KEEPALIVE should be sent */
 
-     if(ip_get_option(pcb, SOF_KEEPALIVE) &&
 
-  8030602:	7a27      	ldrb	r7, [r4, #8]
 
-  8030604:	f007 0708 	and.w	r7, r7, #8
 
-  8030608:	b2ff      	uxtb	r7, r7
 
-  803060a:	b34f      	cbz	r7, 8030660 <tcp_slowtmr+0x16c>
 
-  803060c:	2b04      	cmp	r3, #4
 
-  803060e:	d001      	beq.n	8030614 <tcp_slowtmr+0x120>
 
-        ((pcb->state == ESTABLISHED) ||
 
-  8030610:	2b07      	cmp	r3, #7
 
-  8030612:	d124      	bne.n	803065e <tcp_slowtmr+0x16a>
 
-         (pcb->state == CLOSE_WAIT))) {
 
-       if((u32_t)(tcp_ticks - pcb->tmr) >
 
-  8030614:	4b54      	ldr	r3, [pc, #336]	; (8030768 <tcp_slowtmr+0x274>)
 
-          (pcb->keep_idle + TCP_KEEP_DUR(pcb)) / TCP_SLOW_INTERVAL)
 
-  8030616:	f8d4 008c 	ldr.w	r0, [r4, #140]	; 0x8c
 
-     /* Check if KEEPALIVE should be sent */
 
-     if(ip_get_option(pcb, SOF_KEEPALIVE) &&
 
-        ((pcb->state == ESTABLISHED) ||
 
-         (pcb->state == CLOSE_WAIT))) {
 
-       if((u32_t)(tcp_ticks - pcb->tmr) >
 
-  803061a:	681a      	ldr	r2, [r3, #0]
 
-  803061c:	6a63      	ldr	r3, [r4, #36]	; 0x24
 
-  803061e:	1ad2      	subs	r2, r2, r3
 
-          (pcb->keep_idle + TCP_KEEP_DUR(pcb)) / TCP_SLOW_INTERVAL)
 
-  8030620:	f500 2324 	add.w	r3, r0, #671744	; 0xa4000
 
-  8030624:	f603 43b8 	addw	r3, r3, #3256	; 0xcb8
 
-  8030628:	f44f 71fa 	mov.w	r1, #500	; 0x1f4
 
-  803062c:	fbb3 f3f1 	udiv	r3, r3, r1
 
-     /* Check if KEEPALIVE should be sent */
 
-     if(ip_get_option(pcb, SOF_KEEPALIVE) &&
 
-        ((pcb->state == ESTABLISHED) ||
 
-         (pcb->state == CLOSE_WAIT))) {
 
-       if((u32_t)(tcp_ticks - pcb->tmr) >
 
-  8030630:	429a      	cmp	r2, r3
 
-  8030632:	d903      	bls.n	803063c <tcp_slowtmr+0x148>
 
-       {
 
-         LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: KEEPALIVE timeout. Aborting connection to %"U16_F".%"U16_F".%"U16_F".%"U16_F".\n",
 
-                                 ip4_addr1_16(&pcb->remote_ip), ip4_addr2_16(&pcb->remote_ip),
 
-                                 ip4_addr3_16(&pcb->remote_ip), ip4_addr4_16(&pcb->remote_ip)));
 
-         
 
-         ++pcb_remove;
 
-  8030634:	3501      	adds	r5, #1
 
-  8030636:	b2ed      	uxtb	r5, r5
 
-         ++pcb_reset;
 
-  8030638:	2701      	movs	r7, #1
 
-  803063a:	e011      	b.n	8030660 <tcp_slowtmr+0x16c>
 
-       }
 
-       else if((u32_t)(tcp_ticks - pcb->tmr) > 
 
-               (pcb->keep_idle + pcb->keep_cnt_sent * TCP_KEEP_INTVL(pcb))
 
-  803063c:	f894 3092 	ldrb.w	r3, [r4, #146]	; 0x92
 
-  8030640:	4f4e      	ldr	r7, [pc, #312]	; (803077c <tcp_slowtmr+0x288>)
 
-  8030642:	fb07 0003 	mla	r0, r7, r3, r0
 
-               / TCP_SLOW_INTERVAL)
 
-  8030646:	fbb0 f1f1 	udiv	r1, r0, r1
 
-                                 ip4_addr3_16(&pcb->remote_ip), ip4_addr4_16(&pcb->remote_ip)));
 
-         
 
-         ++pcb_remove;
 
-         ++pcb_reset;
 
-       }
 
-       else if((u32_t)(tcp_ticks - pcb->tmr) > 
 
-  803064a:	428a      	cmp	r2, r1
 
-  803064c:	d907      	bls.n	803065e <tcp_slowtmr+0x16a>
 
-               (pcb->keep_idle + pcb->keep_cnt_sent * TCP_KEEP_INTVL(pcb))
 
-               / TCP_SLOW_INTERVAL)
 
-       {
 
-         tcp_keepalive(pcb);
 
-  803064e:	4620      	mov	r0, r4
 
-  8030650:	f001 ff16 	bl	8032480 <tcp_keepalive>
 
-         pcb->keep_cnt_sent++;
 
-  8030654:	f894 3092 	ldrb.w	r3, [r4, #146]	; 0x92
 
-  8030658:	3301      	adds	r3, #1
 
-  803065a:	f884 3092 	strb.w	r3, [r4, #146]	; 0x92
 
-       continue;
 
-     }
 
-     pcb->last_timer = tcp_timer_ctr;
 
-     pcb_remove = 0;
 
-     pcb_reset = 0;
 
-  803065e:	2700      	movs	r7, #0
 
-       LWIP_DEBUGF(TCP_CWND_DEBUG, ("tcp_slowtmr: dropping OOSEQ queued data\n"));
 
-     }
 
- #endif /* TCP_QUEUE_OOSEQ */
 
-     /* Check if this PCB has stayed too long in SYN-RCVD */
 
-     if (pcb->state == SYN_RCVD) {
 
-  8030660:	7e23      	ldrb	r3, [r4, #24]
 
-  8030662:	2b03      	cmp	r3, #3
 
-  8030664:	d108      	bne.n	8030678 <tcp_slowtmr+0x184>
 
-       if ((u32_t)(tcp_ticks - pcb->tmr) >
 
-  8030666:	4b40      	ldr	r3, [pc, #256]	; (8030768 <tcp_slowtmr+0x274>)
 
-  8030668:	681a      	ldr	r2, [r3, #0]
 
-  803066a:	6a63      	ldr	r3, [r4, #36]	; 0x24
 
-  803066c:	1ad3      	subs	r3, r2, r3
 
-  803066e:	2b28      	cmp	r3, #40	; 0x28
 
-  8030670:	d90a      	bls.n	8030688 <tcp_slowtmr+0x194>
 
-           TCP_SYN_RCVD_TIMEOUT / TCP_SLOW_INTERVAL) {
 
-         ++pcb_remove;
 
-  8030672:	3501      	adds	r5, #1
 
-  8030674:	b2ed      	uxtb	r5, r5
 
-  8030676:	e007      	b.n	8030688 <tcp_slowtmr+0x194>
 
-         LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: removing pcb stuck in SYN-RCVD\n"));
 
-       }
 
-     }
 
-     /* Check if this PCB has stayed too long in LAST-ACK */
 
-     if (pcb->state == LAST_ACK) {
 
-  8030678:	2b09      	cmp	r3, #9
 
-  803067a:	d105      	bne.n	8030688 <tcp_slowtmr+0x194>
 
-       if ((u32_t)(tcp_ticks - pcb->tmr) > 2 * TCP_MSL / TCP_SLOW_INTERVAL) {
 
-  803067c:	4b3a      	ldr	r3, [pc, #232]	; (8030768 <tcp_slowtmr+0x274>)
 
-  803067e:	681a      	ldr	r2, [r3, #0]
 
-  8030680:	6a63      	ldr	r3, [r4, #36]	; 0x24
 
-  8030682:	1ad3      	subs	r3, r2, r3
 
-  8030684:	2bf0      	cmp	r3, #240	; 0xf0
 
-  8030686:	d800      	bhi.n	803068a <tcp_slowtmr+0x196>
 
-         LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: removing pcb stuck in LAST-ACK\n"));
 
-       }
 
-     }
 
-     /* If the PCB should be removed, do it. */
 
-     if (pcb_remove) {
 
-  8030688:	b345      	cbz	r5, 80306dc <tcp_slowtmr+0x1e8>
 
-       struct tcp_pcb *pcb2;
 
-       tcp_err_fn err_fn;
 
-       void *err_arg;
 
-       tcp_pcb_purge(pcb);
 
-  803068a:	4620      	mov	r0, r4
 
-  803068c:	f7ff ff14 	bl	80304b8 <tcp_pcb_purge>
 
-  8030690:	68e3      	ldr	r3, [r4, #12]
 
-       /* Remove PCB from tcp_active_pcbs list. */
 
-       if (prev != NULL) {
 
-  8030692:	b10e      	cbz	r6, 8030698 <tcp_slowtmr+0x1a4>
 
-         LWIP_ASSERT("tcp_slowtmr: middle tcp != tcp_active_pcbs", pcb != tcp_active_pcbs);
 
-         prev->next = pcb->next;
 
-  8030694:	60f3      	str	r3, [r6, #12]
 
-  8030696:	e001      	b.n	803069c <tcp_slowtmr+0x1a8>
 
-       } else {
 
-         /* This PCB was the first. */
 
-         LWIP_ASSERT("tcp_slowtmr: first pcb == tcp_active_pcbs", tcp_active_pcbs == pcb);
 
-         tcp_active_pcbs = pcb->next;
 
-  8030698:	4a35      	ldr	r2, [pc, #212]	; (8030770 <tcp_slowtmr+0x27c>)
 
-  803069a:	6013      	str	r3, [r2, #0]
 
-       }
 
-       if (pcb_reset) {
 
-  803069c:	b14f      	cbz	r7, 80306b2 <tcp_slowtmr+0x1be>
 
-         tcp_rst(pcb->snd_nxt, pcb->rcv_nxt, &pcb->local_ip, &pcb->remote_ip,
 
-  803069e:	8b63      	ldrh	r3, [r4, #26]
 
-  80306a0:	9300      	str	r3, [sp, #0]
 
-  80306a2:	8ba3      	ldrh	r3, [r4, #28]
 
-  80306a4:	9301      	str	r3, [sp, #4]
 
-  80306a6:	6d20      	ldr	r0, [r4, #80]	; 0x50
 
-  80306a8:	6aa1      	ldr	r1, [r4, #40]	; 0x28
 
-  80306aa:	4622      	mov	r2, r4
 
-  80306ac:	1d23      	adds	r3, r4, #4
 
-  80306ae:	f001 fe2f 	bl	8032310 <tcp_rst>
 
-           pcb->local_port, pcb->remote_port);
 
-       }
 
-       err_fn = pcb->errf;
 
-  80306b2:	f8d4 5088 	ldr.w	r5, [r4, #136]	; 0x88
 
-       err_arg = pcb->callback_arg;
 
-  80306b6:	f8d4 b010 	ldr.w	fp, [r4, #16]
 
-       pcb2 = pcb;
 
-       pcb = pcb->next;
 
-  80306ba:	68e7      	ldr	r7, [r4, #12]
 
-       memp_free(MEMP_TCP_PCB, pcb2);
 
-  80306bc:	2002      	movs	r0, #2
 
-  80306be:	4621      	mov	r1, r4
 
-  80306c0:	f7ff fa9a 	bl	802fbf8 <memp_free>
 
-       tcp_active_pcbs_changed = 0;
 
-  80306c4:	2300      	movs	r3, #0
 
-  80306c6:	f888 3000 	strb.w	r3, [r8]
 
-       TCP_EVENT_ERR(err_fn, err_arg, ERR_ABRT);
 
-  80306ca:	b11d      	cbz	r5, 80306d4 <tcp_slowtmr+0x1e0>
 
-  80306cc:	4658      	mov	r0, fp
 
-  80306ce:	f06f 0109 	mvn.w	r1, #9
 
-  80306d2:	47a8      	blx	r5
 
-       if (tcp_active_pcbs_changed) {
 
-  80306d4:	f899 3000 	ldrb.w	r3, [r9]
 
-  80306d8:	b1f3      	cbz	r3, 8030718 <tcp_slowtmr+0x224>
 
-  80306da:	e718      	b.n	803050e <tcp_slowtmr+0x1a>
 
-       /* get the 'next' element now and work with 'prev' below (in case of abort) */
 
-       prev = pcb;
 
-       pcb = pcb->next;
 
-       /* We check if we should poll the connection. */
 
-       ++prev->polltmr;
 
-  80306dc:	7fe3      	ldrb	r3, [r4, #31]
 
-       if (prev->polltmr >= prev->pollinterval) {
 
-  80306de:	f894 2020 	ldrb.w	r2, [r4, #32]
 
-         goto tcp_slowtmr_start;
 
-       }
 
-     } else {
 
-       /* get the 'next' element now and work with 'prev' below (in case of abort) */
 
-       prev = pcb;
 
-       pcb = pcb->next;
 
-  80306e2:	68e7      	ldr	r7, [r4, #12]
 
-       /* We check if we should poll the connection. */
 
-       ++prev->polltmr;
 
-  80306e4:	3301      	adds	r3, #1
 
-  80306e6:	b2db      	uxtb	r3, r3
 
-       if (prev->polltmr >= prev->pollinterval) {
 
-  80306e8:	429a      	cmp	r2, r3
 
-       /* get the 'next' element now and work with 'prev' below (in case of abort) */
 
-       prev = pcb;
 
-       pcb = pcb->next;
 
-       /* We check if we should poll the connection. */
 
-       ++prev->polltmr;
 
-  80306ea:	77e3      	strb	r3, [r4, #31]
 
-       if (prev->polltmr >= prev->pollinterval) {
 
-  80306ec:	d813      	bhi.n	8030716 <tcp_slowtmr+0x222>
 
-         prev->polltmr = 0;
 
-         LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: polling application\n"));
 
-         tcp_active_pcbs_changed = 0;
 
-         TCP_EVENT_POLL(prev, err);
 
-  80306ee:	f8d4 3084 	ldr.w	r3, [r4, #132]	; 0x84
 
-       pcb = pcb->next;
 
-       /* We check if we should poll the connection. */
 
-       ++prev->polltmr;
 
-       if (prev->polltmr >= prev->pollinterval) {
 
-         prev->polltmr = 0;
 
-  80306f2:	77e5      	strb	r5, [r4, #31]
 
-         LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: polling application\n"));
 
-         tcp_active_pcbs_changed = 0;
 
-  80306f4:	f888 5000 	strb.w	r5, [r8]
 
-         TCP_EVENT_POLL(prev, err);
 
-  80306f8:	b11b      	cbz	r3, 8030702 <tcp_slowtmr+0x20e>
 
-  80306fa:	6920      	ldr	r0, [r4, #16]
 
-  80306fc:	4621      	mov	r1, r4
 
-  80306fe:	4798      	blx	r3
 
-  8030700:	e000      	b.n	8030704 <tcp_slowtmr+0x210>
 
-  8030702:	4628      	mov	r0, r5
 
-         if (tcp_active_pcbs_changed) {
 
-  8030704:	f899 3000 	ldrb.w	r3, [r9]
 
-  8030708:	2b00      	cmp	r3, #0
 
-  803070a:	f47f af00 	bne.w	803050e <tcp_slowtmr+0x1a>
 
-           goto tcp_slowtmr_start;
 
-         }
 
-         /* if err == ERR_ABRT, 'prev' is already deallocated */
 
-         if (err == ERR_OK) {
 
-  803070e:	b910      	cbnz	r0, 8030716 <tcp_slowtmr+0x222>
 
-           tcp_output(prev);
 
-  8030710:	4620      	mov	r0, r4
 
-  8030712:	f001 fcd9 	bl	80320c8 <tcp_output>
 
-         TCP_EVENT_POLL(prev, err);
 
-         if (tcp_active_pcbs_changed) {
 
-           goto tcp_slowtmr_start;
 
-         }
 
-         /* if err == ERR_ABRT, 'prev' is already deallocated */
 
-         if (err == ERR_OK) {
 
-  8030716:	4626      	mov	r6, r4
 
-       prev = pcb;
 
-       pcb = pcb->next;
 
-       /* We check if we should poll the connection. */
 
-       ++prev->polltmr;
 
-       if (prev->polltmr >= prev->pollinterval) {
 
-  8030718:	463c      	mov	r4, r7
 
-   prev = NULL;
 
-   pcb = tcp_active_pcbs;
 
-   if (pcb == NULL) {
 
-     LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: no active pcbs\n"));
 
-   }
 
-   while (pcb != NULL) {
 
-  803071a:	2c00      	cmp	r4, #0
 
-  803071c:	f47f aefd 	bne.w	803051a <tcp_slowtmr+0x26>
 
-   }
 
-   
 
-   /* Steps through all of the TIME-WAIT PCBs. */
 
-   prev = NULL;
 
-   pcb = tcp_tw_pcbs;
 
-  8030720:	4b17      	ldr	r3, [pc, #92]	; (8030780 <tcp_slowtmr+0x28c>)
 
-   while (pcb != NULL) {
 
-     LWIP_ASSERT("tcp_slowtmr: TIME-WAIT pcb->state == TIME-WAIT", pcb->state == TIME_WAIT);
 
-     pcb_remove = 0;
 
-     /* Check if this PCB has stayed long enough in TIME-WAIT */
 
-     if ((u32_t)(tcp_ticks - pcb->tmr) > 2 * TCP_MSL / TCP_SLOW_INTERVAL) {
 
-  8030722:	4e11      	ldr	r6, [pc, #68]	; (8030768 <tcp_slowtmr+0x274>)
 
-   }
 
-   
 
-   /* Steps through all of the TIME-WAIT PCBs. */
 
-   prev = NULL;
 
-   pcb = tcp_tw_pcbs;
 
-  8030724:	681d      	ldr	r5, [r3, #0]
 
-         LWIP_ASSERT("tcp_slowtmr: middle tcp != tcp_tw_pcbs", pcb != tcp_tw_pcbs);
 
-         prev->next = pcb->next;
 
-       } else {
 
-         /* This PCB was the first. */
 
-         LWIP_ASSERT("tcp_slowtmr: first pcb == tcp_tw_pcbs", tcp_tw_pcbs == pcb);
 
-         tcp_tw_pcbs = pcb->next;
 
-  8030726:	461f      	mov	r7, r3
 
-   
 
-   /* Steps through all of the TIME-WAIT PCBs. */
 
-   prev = NULL;
 
-   pcb = tcp_tw_pcbs;
 
-   while (pcb != NULL) {
 
-  8030728:	e00f      	b.n	803074a <tcp_slowtmr+0x256>
 
-     LWIP_ASSERT("tcp_slowtmr: TIME-WAIT pcb->state == TIME-WAIT", pcb->state == TIME_WAIT);
 
-     pcb_remove = 0;
 
-     /* Check if this PCB has stayed long enough in TIME-WAIT */
 
-     if ((u32_t)(tcp_ticks - pcb->tmr) > 2 * TCP_MSL / TCP_SLOW_INTERVAL) {
 
-  803072a:	6832      	ldr	r2, [r6, #0]
 
-  803072c:	6a6b      	ldr	r3, [r5, #36]	; 0x24
 
-  803072e:	1ad3      	subs	r3, r2, r3
 
-  8030730:	2bf0      	cmp	r3, #240	; 0xf0
 
-  8030732:	d810      	bhi.n	8030756 <tcp_slowtmr+0x262>
 
-  8030734:	e00c      	b.n	8030750 <tcp_slowtmr+0x25c>
 
-       struct tcp_pcb *pcb2;
 
-       tcp_pcb_purge(pcb);
 
-       /* Remove PCB from tcp_tw_pcbs list. */
 
-       if (prev != NULL) {
 
-         LWIP_ASSERT("tcp_slowtmr: middle tcp != tcp_tw_pcbs", pcb != tcp_tw_pcbs);
 
-         prev->next = pcb->next;
 
-  8030736:	60e2      	str	r2, [r4, #12]
 
-  8030738:	e000      	b.n	803073c <tcp_slowtmr+0x248>
 
-       } else {
 
-         /* This PCB was the first. */
 
-         LWIP_ASSERT("tcp_slowtmr: first pcb == tcp_tw_pcbs", tcp_tw_pcbs == pcb);
 
-         tcp_tw_pcbs = pcb->next;
 
-  803073a:	603a      	str	r2, [r7, #0]
 
-       }
 
-       pcb2 = pcb;
 
-       pcb = pcb->next;
 
-       memp_free(MEMP_TCP_PCB, pcb2);
 
-  803073c:	4629      	mov	r1, r5
 
-  803073e:	2002      	movs	r0, #2
 
-         /* This PCB was the first. */
 
-         LWIP_ASSERT("tcp_slowtmr: first pcb == tcp_tw_pcbs", tcp_tw_pcbs == pcb);
 
-         tcp_tw_pcbs = pcb->next;
 
-       }
 
-       pcb2 = pcb;
 
-       pcb = pcb->next;
 
-  8030740:	f8d5 800c 	ldr.w	r8, [r5, #12]
 
-       memp_free(MEMP_TCP_PCB, pcb2);
 
-  8030744:	f7ff fa58 	bl	802fbf8 <memp_free>
 
-         /* This PCB was the first. */
 
-         LWIP_ASSERT("tcp_slowtmr: first pcb == tcp_tw_pcbs", tcp_tw_pcbs == pcb);
 
-         tcp_tw_pcbs = pcb->next;
 
-       }
 
-       pcb2 = pcb;
 
-       pcb = pcb->next;
 
-  8030748:	4645      	mov	r5, r8
 
-   
 
-   /* Steps through all of the TIME-WAIT PCBs. */
 
-   prev = NULL;
 
-   pcb = tcp_tw_pcbs;
 
-   while (pcb != NULL) {
 
-  803074a:	2d00      	cmp	r5, #0
 
-  803074c:	d1ed      	bne.n	803072a <tcp_slowtmr+0x236>
 
-  803074e:	e009      	b.n	8030764 <tcp_slowtmr+0x270>
 
-       pcb2 = pcb;
 
-       pcb = pcb->next;
 
-       memp_free(MEMP_TCP_PCB, pcb2);
 
-     } else {
 
-       prev = pcb;
 
-       pcb = pcb->next;
 
-  8030750:	462c      	mov	r4, r5
 
-  8030752:	68ed      	ldr	r5, [r5, #12]
 
-  8030754:	e7f9      	b.n	803074a <tcp_slowtmr+0x256>
 
-     /* If the PCB should be removed, do it. */
 
-     if (pcb_remove) {
 
-       struct tcp_pcb *pcb2;
 
-       tcp_pcb_purge(pcb);
 
-  8030756:	4628      	mov	r0, r5
 
-  8030758:	f7ff feae 	bl	80304b8 <tcp_pcb_purge>
 
-  803075c:	68ea      	ldr	r2, [r5, #12]
 
-       /* Remove PCB from tcp_tw_pcbs list. */
 
-       if (prev != NULL) {
 
-  803075e:	2c00      	cmp	r4, #0
 
-  8030760:	d1e9      	bne.n	8030736 <tcp_slowtmr+0x242>
 
-  8030762:	e7ea      	b.n	803073a <tcp_slowtmr+0x246>
 
-     } else {
 
-       prev = pcb;
 
-       pcb = pcb->next;
 
-     }
 
-   }
 
- }
 
-  8030764:	e8bd 8ffe 	ldmia.w	sp!, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
-  8030768:	2000f6c0 	.word	0x2000f6c0
 
-  803076c:	2000c3dd 	.word	0x2000c3dd
 
-  8030770:	2000f6bc 	.word	0x2000f6bc
 
-  8030774:	08044ffd 	.word	0x08044ffd
 
-  8030778:	08044ff0 	.word	0x08044ff0
 
-  803077c:	000124f8 	.word	0x000124f8
 
-  8030780:	2000f6d0 	.word	0x2000f6d0
 
-  8030784:	2000f6b8 	.word	0x2000f6b8
 
- 08030788 <tcp_pcb_remove>:
 
-  * @param pcb tcp_pcb to purge. The pcb itself is NOT deallocated!
 
-  */
 
- void
 
- tcp_pcb_remove(struct tcp_pcb **pcblist, struct tcp_pcb *pcb)
 
- {
 
-   TCP_RMV(pcblist, pcb);
 
-  8030788:	6803      	ldr	r3, [r0, #0]
 
-  803078a:	428b      	cmp	r3, r1
 
-  * @param pcblist PCB list to purge.
 
-  * @param pcb tcp_pcb to purge. The pcb itself is NOT deallocated!
 
-  */
 
- void
 
- tcp_pcb_remove(struct tcp_pcb **pcblist, struct tcp_pcb *pcb)
 
- {
 
-  803078c:	b510      	push	{r4, lr}
 
-  803078e:	460c      	mov	r4, r1
 
-   TCP_RMV(pcblist, pcb);
 
-  8030790:	d102      	bne.n	8030798 <tcp_pcb_remove+0x10>
 
-  8030792:	68cb      	ldr	r3, [r1, #12]
 
-  8030794:	6003      	str	r3, [r0, #0]
 
-  8030796:	e00d      	b.n	80307b4 <tcp_pcb_remove+0x2c>
 
-  8030798:	4a11      	ldr	r2, [pc, #68]	; (80307e0 <tcp_pcb_remove+0x58>)
 
-  803079a:	6013      	str	r3, [r2, #0]
 
-  803079c:	e007      	b.n	80307ae <tcp_pcb_remove+0x26>
 
-  803079e:	68d9      	ldr	r1, [r3, #12]
 
-  80307a0:	42a1      	cmp	r1, r4
 
-  80307a2:	d103      	bne.n	80307ac <tcp_pcb_remove+0x24>
 
-  80307a4:	6013      	str	r3, [r2, #0]
 
-  80307a6:	68e2      	ldr	r2, [r4, #12]
 
-  80307a8:	60da      	str	r2, [r3, #12]
 
-  80307aa:	e003      	b.n	80307b4 <tcp_pcb_remove+0x2c>
 
-  80307ac:	460b      	mov	r3, r1
 
-  80307ae:	2b00      	cmp	r3, #0
 
-  80307b0:	d1f5      	bne.n	803079e <tcp_pcb_remove+0x16>
 
-  80307b2:	6013      	str	r3, [r2, #0]
 
-  80307b4:	2300      	movs	r3, #0
 
-  80307b6:	60e3      	str	r3, [r4, #12]
 
-   tcp_pcb_purge(pcb);
 
-  80307b8:	4620      	mov	r0, r4
 
-  80307ba:	f7ff fe7d 	bl	80304b8 <tcp_pcb_purge>
 
-   
 
-   /* if there is an outstanding delayed ACKs, send it */
 
-   if (pcb->state != TIME_WAIT &&
 
-  80307be:	7e23      	ldrb	r3, [r4, #24]
 
-  80307c0:	2b0a      	cmp	r3, #10
 
-  80307c2:	d00a      	beq.n	80307da <tcp_pcb_remove+0x52>
 
-  80307c4:	2b01      	cmp	r3, #1
 
-  80307c6:	d008      	beq.n	80307da <tcp_pcb_remove+0x52>
 
-      pcb->state != LISTEN &&
 
-      pcb->flags & TF_ACK_DELAY) {
 
-  80307c8:	7fa3      	ldrb	r3, [r4, #30]
 
-   tcp_pcb_purge(pcb);
 
-   
 
-   /* if there is an outstanding delayed ACKs, send it */
 
-   if (pcb->state != TIME_WAIT &&
 
-      pcb->state != LISTEN &&
 
-  80307ca:	07da      	lsls	r2, r3, #31
 
-  80307cc:	d505      	bpl.n	80307da <tcp_pcb_remove+0x52>
 
-      pcb->flags & TF_ACK_DELAY) {
 
-     pcb->flags |= TF_ACK_NOW;
 
-  80307ce:	f043 0302 	orr.w	r3, r3, #2
 
-  80307d2:	77a3      	strb	r3, [r4, #30]
 
-     tcp_output(pcb);
 
-  80307d4:	4620      	mov	r0, r4
 
-  80307d6:	f001 fc77 	bl	80320c8 <tcp_output>
 
- #if TCP_QUEUE_OOSEQ
 
-     LWIP_ASSERT("ooseq segments leaking", pcb->ooseq == NULL);
 
- #endif /* TCP_QUEUE_OOSEQ */
 
-   }
 
-   pcb->state = CLOSED;
 
-  80307da:	2300      	movs	r3, #0
 
-  80307dc:	7623      	strb	r3, [r4, #24]
 
-  80307de:	bd10      	pop	{r4, pc}
 
-  80307e0:	2000f6c8 	.word	0x2000f6c8
 
- 080307e4 <tcp_abandon>:
 
-   LWIP_ASSERT("don't call tcp_abort/tcp_abandon for listen-pcbs",
 
-     pcb->state != LISTEN);
 
-   /* Figure out on which TCP PCB list we are, and remove us. If we
 
-      are in an active state, call the receive function associated with
 
-      the PCB with a NULL argument, and send an RST to the remote end. */
 
-   if (pcb->state == TIME_WAIT) {
 
-  80307e4:	7e03      	ldrb	r3, [r0, #24]
 
-  80307e6:	2b0a      	cmp	r3, #10
 
-  * @param pcb the tcp_pcb to abort
 
-  * @param reset boolean to indicate whether a reset should be sent
 
-  */
 
- void
 
- tcp_abandon(struct tcp_pcb *pcb, int reset)
 
- {
 
-  80307e8:	e92d 43f7 	stmdb	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
 
-  80307ec:	4604      	mov	r4, r0
 
-  80307ee:	4689      	mov	r9, r1
 
-   LWIP_ASSERT("don't call tcp_abort/tcp_abandon for listen-pcbs",
 
-     pcb->state != LISTEN);
 
-   /* Figure out on which TCP PCB list we are, and remove us. If we
 
-      are in an active state, call the receive function associated with
 
-      the PCB with a NULL argument, and send an RST to the remote end. */
 
-   if (pcb->state == TIME_WAIT) {
 
-  80307f0:	d10a      	bne.n	8030808 <tcp_abandon+0x24>
 
-     tcp_pcb_remove(&tcp_tw_pcbs, pcb);
 
-  80307f2:	4621      	mov	r1, r4
 
-  80307f4:	481b      	ldr	r0, [pc, #108]	; (8030864 <tcp_abandon+0x80>)
 
-  80307f6:	f7ff ffc7 	bl	8030788 <tcp_pcb_remove>
 
-     memp_free(MEMP_TCP_PCB, pcb);
 
-  80307fa:	2002      	movs	r0, #2
 
-  80307fc:	4621      	mov	r1, r4
 
-       tcp_rst(seqno, ackno, &pcb->local_ip, &pcb->remote_ip, pcb->local_port, pcb->remote_port);
 
-     }
 
-     memp_free(MEMP_TCP_PCB, pcb);
 
-     TCP_EVENT_ERR(errf, errf_arg, ERR_ABRT);
 
-   }
 
- }
 
-  80307fe:	b003      	add	sp, #12
 
-  8030800:	e8bd 43f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, lr}
 
-   /* Figure out on which TCP PCB list we are, and remove us. If we
 
-      are in an active state, call the receive function associated with
 
-      the PCB with a NULL argument, and send an RST to the remote end. */
 
-   if (pcb->state == TIME_WAIT) {
 
-     tcp_pcb_remove(&tcp_tw_pcbs, pcb);
 
-     memp_free(MEMP_TCP_PCB, pcb);
 
-  8030804:	f7ff b9f8 	b.w	802fbf8 <memp_free>
 
-   } else {
 
-     seqno = pcb->snd_nxt;
 
-  8030808:	f8d0 8050 	ldr.w	r8, [r0, #80]	; 0x50
 
-     ackno = pcb->rcv_nxt;
 
-  803080c:	6a87      	ldr	r7, [r0, #40]	; 0x28
 
- #if LWIP_CALLBACK_API
 
-     errf = pcb->errf;
 
-  803080e:	f8d0 5088 	ldr.w	r5, [r0, #136]	; 0x88
 
- #endif /* LWIP_CALLBACK_API */
 
-     errf_arg = pcb->callback_arg;
 
-  8030812:	6906      	ldr	r6, [r0, #16]
 
-     TCP_PCB_REMOVE_ACTIVE(pcb);
 
-  8030814:	4814      	ldr	r0, [pc, #80]	; (8030868 <tcp_abandon+0x84>)
 
-  8030816:	4621      	mov	r1, r4
 
-  8030818:	f7ff ffb6 	bl	8030788 <tcp_pcb_remove>
 
-  803081c:	4b13      	ldr	r3, [pc, #76]	; (803086c <tcp_abandon+0x88>)
 
-     if (pcb->unacked != NULL) {
 
-  803081e:	6f20      	ldr	r0, [r4, #112]	; 0x70
 
-     ackno = pcb->rcv_nxt;
 
- #if LWIP_CALLBACK_API
 
-     errf = pcb->errf;
 
- #endif /* LWIP_CALLBACK_API */
 
-     errf_arg = pcb->callback_arg;
 
-     TCP_PCB_REMOVE_ACTIVE(pcb);
 
-  8030820:	2201      	movs	r2, #1
 
-  8030822:	701a      	strb	r2, [r3, #0]
 
-     if (pcb->unacked != NULL) {
 
-  8030824:	b108      	cbz	r0, 803082a <tcp_abandon+0x46>
 
-       tcp_segs_free(pcb->unacked);
 
-  8030826:	f7ff fe2e 	bl	8030486 <tcp_segs_free>
 
-     }
 
-     if (pcb->unsent != NULL) {
 
-  803082a:	6ee0      	ldr	r0, [r4, #108]	; 0x6c
 
-  803082c:	b108      	cbz	r0, 8030832 <tcp_abandon+0x4e>
 
-       tcp_segs_free(pcb->unsent);
 
-  803082e:	f7ff fe2a 	bl	8030486 <tcp_segs_free>
 
- #if TCP_QUEUE_OOSEQ    
 
-     if (pcb->ooseq != NULL) {
 
-       tcp_segs_free(pcb->ooseq);
 
-     }
 
- #endif /* TCP_QUEUE_OOSEQ */
 
-     if (reset) {
 
-  8030832:	f1b9 0f00 	cmp.w	r9, #0
 
-  8030836:	d009      	beq.n	803084c <tcp_abandon+0x68>
 
-       LWIP_DEBUGF(TCP_RST_DEBUG, ("tcp_abandon: sending RST\n"));
 
-       tcp_rst(seqno, ackno, &pcb->local_ip, &pcb->remote_ip, pcb->local_port, pcb->remote_port);
 
-  8030838:	8b63      	ldrh	r3, [r4, #26]
 
-  803083a:	9300      	str	r3, [sp, #0]
 
-  803083c:	8ba3      	ldrh	r3, [r4, #28]
 
-  803083e:	4640      	mov	r0, r8
 
-  8030840:	9301      	str	r3, [sp, #4]
 
-  8030842:	4639      	mov	r1, r7
 
-  8030844:	4622      	mov	r2, r4
 
-  8030846:	1d23      	adds	r3, r4, #4
 
-  8030848:	f001 fd62 	bl	8032310 <tcp_rst>
 
-     }
 
-     memp_free(MEMP_TCP_PCB, pcb);
 
-  803084c:	2002      	movs	r0, #2
 
-  803084e:	4621      	mov	r1, r4
 
-  8030850:	f7ff f9d2 	bl	802fbf8 <memp_free>
 
-     TCP_EVENT_ERR(errf, errf_arg, ERR_ABRT);
 
-  8030854:	b11d      	cbz	r5, 803085e <tcp_abandon+0x7a>
 
-  8030856:	4630      	mov	r0, r6
 
-  8030858:	f06f 0109 	mvn.w	r1, #9
 
-  803085c:	47a8      	blx	r5
 
-   }
 
- }
 
-  803085e:	b003      	add	sp, #12
 
-  8030860:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
 
-  8030864:	2000f6d0 	.word	0x2000f6d0
 
-  8030868:	2000f6bc 	.word	0x2000f6bc
 
-  803086c:	2000f6b8 	.word	0x2000f6b8
 
- 08030870 <tcp_abort>:
 
-  * @param pcb the tcp pcb to abort
 
-  */
 
- void
 
- tcp_abort(struct tcp_pcb *pcb)
 
- {
 
-   tcp_abandon(pcb, 1);
 
-  8030870:	2101      	movs	r1, #1
 
-  8030872:	f7ff bfb7 	b.w	80307e4 <tcp_abandon>
 
-  8030876:	0000      	movs	r0, r0
 
- 08030878 <tcp_close_shutdown>:
 
-  * @return ERR_OK if connection has been closed
 
-  *         another err_t if closing failed and pcb is not freed
 
-  */
 
- static err_t
 
- tcp_close_shutdown(struct tcp_pcb *pcb, u8_t rst_on_unacked_data)
 
- {
 
-  8030878:	b537      	push	{r0, r1, r2, r4, r5, lr}
 
-  803087a:	4604      	mov	r4, r0
 
-   err_t err;
 
-   if (rst_on_unacked_data && ((pcb->state == ESTABLISHED) || (pcb->state == CLOSE_WAIT))) {
 
-  803087c:	2900      	cmp	r1, #0
 
-  803087e:	d043      	beq.n	8030908 <tcp_close_shutdown+0x90>
 
-  8030880:	7e03      	ldrb	r3, [r0, #24]
 
-  8030882:	2b04      	cmp	r3, #4
 
-  8030884:	d001      	beq.n	803088a <tcp_close_shutdown+0x12>
 
-  8030886:	2b07      	cmp	r3, #7
 
-  8030888:	d13e      	bne.n	8030908 <tcp_close_shutdown+0x90>
 
-     if ((pcb->refused_data != NULL) || (pcb->rcv_wnd != TCP_WND)) {
 
-  803088a:	6f63      	ldr	r3, [r4, #116]	; 0x74
 
-  803088c:	b923      	cbnz	r3, 8030898 <tcp_close_shutdown+0x20>
 
-  803088e:	8da2      	ldrh	r2, [r4, #44]	; 0x2c
 
-  8030890:	f241 63d0 	movw	r3, #5840	; 0x16d0
 
-  8030894:	429a      	cmp	r2, r3
 
-  8030896:	d037      	beq.n	8030908 <tcp_close_shutdown+0x90>
 
-          side about this. */
 
-       LWIP_ASSERT("pcb->flags & TF_RXCLOSED", pcb->flags & TF_RXCLOSED);
 
-       /* don't call tcp_abort here: we must not deallocate the pcb since
 
-          that might not be expected when calling tcp_close */
 
-       tcp_rst(pcb->snd_nxt, pcb->rcv_nxt, &pcb->local_ip, &pcb->remote_ip,
 
-  8030898:	8b63      	ldrh	r3, [r4, #26]
 
-  803089a:	6d20      	ldr	r0, [r4, #80]	; 0x50
 
-  803089c:	9300      	str	r3, [sp, #0]
 
-  803089e:	8ba3      	ldrh	r3, [r4, #28]
 
-  80308a0:	6aa1      	ldr	r1, [r4, #40]	; 0x28
 
-  80308a2:	9301      	str	r3, [sp, #4]
 
-  80308a4:	4622      	mov	r2, r4
 
-  80308a6:	1d23      	adds	r3, r4, #4
 
-  80308a8:	f001 fd32 	bl	8032310 <tcp_rst>
 
-         pcb->local_port, pcb->remote_port);
 
-       tcp_pcb_purge(pcb);
 
-  80308ac:	4620      	mov	r0, r4
 
-  80308ae:	f7ff fe03 	bl	80304b8 <tcp_pcb_purge>
 
-       TCP_RMV_ACTIVE(pcb);
 
-  80308b2:	4a42      	ldr	r2, [pc, #264]	; (80309bc <tcp_close_shutdown+0x144>)
 
-  80308b4:	6813      	ldr	r3, [r2, #0]
 
-  80308b6:	42a3      	cmp	r3, r4
 
-  80308b8:	d101      	bne.n	80308be <tcp_close_shutdown+0x46>
 
-  80308ba:	68e3      	ldr	r3, [r4, #12]
 
-  80308bc:	e00c      	b.n	80308d8 <tcp_close_shutdown+0x60>
 
-  80308be:	4a40      	ldr	r2, [pc, #256]	; (80309c0 <tcp_close_shutdown+0x148>)
 
-  80308c0:	6013      	str	r3, [r2, #0]
 
-  80308c2:	e007      	b.n	80308d4 <tcp_close_shutdown+0x5c>
 
-  80308c4:	68d9      	ldr	r1, [r3, #12]
 
-  80308c6:	42a1      	cmp	r1, r4
 
-  80308c8:	d103      	bne.n	80308d2 <tcp_close_shutdown+0x5a>
 
-  80308ca:	6013      	str	r3, [r2, #0]
 
-  80308cc:	68e2      	ldr	r2, [r4, #12]
 
-  80308ce:	60da      	str	r2, [r3, #12]
 
-  80308d0:	e003      	b.n	80308da <tcp_close_shutdown+0x62>
 
-  80308d2:	460b      	mov	r3, r1
 
-  80308d4:	2b00      	cmp	r3, #0
 
-  80308d6:	d1f5      	bne.n	80308c4 <tcp_close_shutdown+0x4c>
 
-  80308d8:	6013      	str	r3, [r2, #0]
 
-  80308da:	4b3a      	ldr	r3, [pc, #232]	; (80309c4 <tcp_close_shutdown+0x14c>)
 
-  80308dc:	2201      	movs	r2, #1
 
-  80308de:	701a      	strb	r2, [r3, #0]
 
-       if (pcb->state == ESTABLISHED) {
 
-  80308e0:	7e23      	ldrb	r3, [r4, #24]
 
-          that might not be expected when calling tcp_close */
 
-       tcp_rst(pcb->snd_nxt, pcb->rcv_nxt, &pcb->local_ip, &pcb->remote_ip,
 
-         pcb->local_port, pcb->remote_port);
 
-       tcp_pcb_purge(pcb);
 
-       TCP_RMV_ACTIVE(pcb);
 
-  80308e2:	2500      	movs	r5, #0
 
-       if (pcb->state == ESTABLISHED) {
 
-  80308e4:	2b04      	cmp	r3, #4
 
-          that might not be expected when calling tcp_close */
 
-       tcp_rst(pcb->snd_nxt, pcb->rcv_nxt, &pcb->local_ip, &pcb->remote_ip,
 
-         pcb->local_port, pcb->remote_port);
 
-       tcp_pcb_purge(pcb);
 
-       TCP_RMV_ACTIVE(pcb);
 
-  80308e6:	60e5      	str	r5, [r4, #12]
 
-       if (pcb->state == ESTABLISHED) {
 
-  80308e8:	d108      	bne.n	80308fc <tcp_close_shutdown+0x84>
 
-         /* move to TIME_WAIT since we close actively */
 
-         pcb->state = TIME_WAIT;
 
-  80308ea:	230a      	movs	r3, #10
 
-  80308ec:	7623      	strb	r3, [r4, #24]
 
-         TCP_REG(&tcp_tw_pcbs, pcb);
 
-  80308ee:	4b36      	ldr	r3, [pc, #216]	; (80309c8 <tcp_close_shutdown+0x150>)
 
-  80308f0:	681a      	ldr	r2, [r3, #0]
 
-  80308f2:	601c      	str	r4, [r3, #0]
 
-  80308f4:	60e2      	str	r2, [r4, #12]
 
-  80308f6:	f001 fea5 	bl	8032644 <tcp_timer_needed>
 
-  80308fa:	e003      	b.n	8030904 <tcp_close_shutdown+0x8c>
 
-       } else {
 
-         /* CLOSE_WAIT: deallocate the pcb since we already sent a RST for it */
 
-         memp_free(MEMP_TCP_PCB, pcb);
 
-  80308fc:	2002      	movs	r0, #2
 
-  80308fe:	4621      	mov	r1, r4
 
-  8030900:	f7ff f97a 	bl	802fbf8 <memp_free>
 
-       }
 
-       return ERR_OK;
 
-  8030904:	4628      	mov	r0, r5
 
-  8030906:	e051      	b.n	80309ac <tcp_close_shutdown+0x134>
 
-     }
 
-   }
 
-   switch (pcb->state) {
 
-  8030908:	7e23      	ldrb	r3, [r4, #24]
 
-  803090a:	2b07      	cmp	r3, #7
 
-  803090c:	d853      	bhi.n	80309b6 <tcp_close_shutdown+0x13e>
 
-  803090e:	e8df f003 	tbb	[pc, r3]
 
-  8030912:	1e04      	.short	0x1e04
 
-  8030914:	523c3527 	.word	0x523c3527
 
-  8030918:	4452      	.short	0x4452
 
-      * Calling tcp_close() with a pcb that has already been closed, (i.e. twice)
 
-      * or for a pcb that has been used and then entered the CLOSED state 
 
-      * is erroneous, but this should never happen as the pcb has in those cases
 
-      * been freed, and so any remaining handles are bogus. */
 
-     err = ERR_OK;
 
-     if (pcb->local_port != 0) {
 
-  803091a:	8b63      	ldrh	r3, [r4, #26]
 
-  803091c:	b1ab      	cbz	r3, 803094a <tcp_close_shutdown+0xd2>
 
-       TCP_RMV(&tcp_bound_pcbs, pcb);
 
-  803091e:	4a2b      	ldr	r2, [pc, #172]	; (80309cc <tcp_close_shutdown+0x154>)
 
-  8030920:	6813      	ldr	r3, [r2, #0]
 
-  8030922:	42a3      	cmp	r3, r4
 
-  8030924:	d101      	bne.n	803092a <tcp_close_shutdown+0xb2>
 
-  8030926:	68e3      	ldr	r3, [r4, #12]
 
-  8030928:	e00c      	b.n	8030944 <tcp_close_shutdown+0xcc>
 
-  803092a:	4a25      	ldr	r2, [pc, #148]	; (80309c0 <tcp_close_shutdown+0x148>)
 
-  803092c:	6013      	str	r3, [r2, #0]
 
-  803092e:	e007      	b.n	8030940 <tcp_close_shutdown+0xc8>
 
-  8030930:	68d9      	ldr	r1, [r3, #12]
 
-  8030932:	42a1      	cmp	r1, r4
 
-  8030934:	d103      	bne.n	803093e <tcp_close_shutdown+0xc6>
 
-  8030936:	6013      	str	r3, [r2, #0]
 
-  8030938:	68e2      	ldr	r2, [r4, #12]
 
-  803093a:	60da      	str	r2, [r3, #12]
 
-  803093c:	e003      	b.n	8030946 <tcp_close_shutdown+0xce>
 
-  803093e:	460b      	mov	r3, r1
 
-  8030940:	2b00      	cmp	r3, #0
 
-  8030942:	d1f5      	bne.n	8030930 <tcp_close_shutdown+0xb8>
 
-  8030944:	6013      	str	r3, [r2, #0]
 
-  8030946:	2300      	movs	r3, #0
 
-  8030948:	60e3      	str	r3, [r4, #12]
 
-     }
 
-     memp_free(MEMP_TCP_PCB, pcb);
 
-  803094a:	2002      	movs	r0, #2
 
-  803094c:	e004      	b.n	8030958 <tcp_close_shutdown+0xe0>
 
-     pcb = NULL;
 
-     break;
 
-   case LISTEN:
 
-     err = ERR_OK;
 
-     tcp_pcb_remove(&tcp_listen_pcbs.pcbs, pcb);
 
-  803094e:	4820      	ldr	r0, [pc, #128]	; (80309d0 <tcp_close_shutdown+0x158>)
 
-  8030950:	4621      	mov	r1, r4
 
-  8030952:	f7ff ff19 	bl	8030788 <tcp_pcb_remove>
 
-     memp_free(MEMP_TCP_PCB_LISTEN, pcb);
 
-  8030956:	2003      	movs	r0, #3
 
-  8030958:	4621      	mov	r1, r4
 
-  803095a:	f7ff f94d 	bl	802fbf8 <memp_free>
 
-     pcb = NULL;
 
-     break;
 
-  803095e:	e02a      	b.n	80309b6 <tcp_close_shutdown+0x13e>
 
-   case SYN_SENT:
 
-     err = ERR_OK;
 
-     TCP_PCB_REMOVE_ACTIVE(pcb);
 
-  8030960:	4621      	mov	r1, r4
 
-  8030962:	4816      	ldr	r0, [pc, #88]	; (80309bc <tcp_close_shutdown+0x144>)
 
-  8030964:	f7ff ff10 	bl	8030788 <tcp_pcb_remove>
 
-  8030968:	4b16      	ldr	r3, [pc, #88]	; (80309c4 <tcp_close_shutdown+0x14c>)
 
-  803096a:	2201      	movs	r2, #1
 
-     memp_free(MEMP_TCP_PCB, pcb);
 
-  803096c:	2002      	movs	r0, #2
 
-  803096e:	4621      	mov	r1, r4
 
-     memp_free(MEMP_TCP_PCB_LISTEN, pcb);
 
-     pcb = NULL;
 
-     break;
 
-   case SYN_SENT:
 
-     err = ERR_OK;
 
-     TCP_PCB_REMOVE_ACTIVE(pcb);
 
-  8030970:	701a      	strb	r2, [r3, #0]
 
-     memp_free(MEMP_TCP_PCB, pcb);
 
-  8030972:	f7ff f941 	bl	802fbf8 <memp_free>
 
-     pcb = NULL;
 
-     snmp_inc_tcpattemptfails();
 
-  8030976:	f004 f957 	bl	8034c28 <snmp_inc_tcpattemptfails>
 
-     break;
 
-  803097a:	e01c      	b.n	80309b6 <tcp_close_shutdown+0x13e>
 
-   case SYN_RCVD:
 
-     err = tcp_send_fin(pcb);
 
-  803097c:	4620      	mov	r0, r4
 
-  803097e:	f001 fb5e 	bl	803203e <tcp_send_fin>
 
-     if (err == ERR_OK) {
 
-  8030982:	b998      	cbnz	r0, 80309ac <tcp_close_shutdown+0x134>
 
-       snmp_inc_tcpattemptfails();
 
-  8030984:	f004 f950 	bl	8034c28 <snmp_inc_tcpattemptfails>
 
-  8030988:	e005      	b.n	8030996 <tcp_close_shutdown+0x11e>
 
-       pcb->state = FIN_WAIT_1;
 
-     }
 
-     break;
 
-   case ESTABLISHED:
 
-     err = tcp_send_fin(pcb);
 
-  803098a:	4620      	mov	r0, r4
 
-  803098c:	f001 fb57 	bl	803203e <tcp_send_fin>
 
-     if (err == ERR_OK) {
 
-  8030990:	b960      	cbnz	r0, 80309ac <tcp_close_shutdown+0x134>
 
-       snmp_inc_tcpestabresets();
 
-  8030992:	f004 f951 	bl	8034c38 <snmp_inc_tcpestabresets>
 
-       pcb->state = FIN_WAIT_1;
 
-  8030996:	2305      	movs	r3, #5
 
-  8030998:	e006      	b.n	80309a8 <tcp_close_shutdown+0x130>
 
-     }
 
-     break;
 
-   case CLOSE_WAIT:
 
-     err = tcp_send_fin(pcb);
 
-  803099a:	4620      	mov	r0, r4
 
-  803099c:	f001 fb4f 	bl	803203e <tcp_send_fin>
 
-     if (err == ERR_OK) {
 
-  80309a0:	b920      	cbnz	r0, 80309ac <tcp_close_shutdown+0x134>
 
-       snmp_inc_tcpestabresets();
 
-  80309a2:	f004 f949 	bl	8034c38 <snmp_inc_tcpestabresets>
 
-       pcb->state = LAST_ACK;
 
-  80309a6:	2309      	movs	r3, #9
 
-  80309a8:	7623      	strb	r3, [r4, #24]
 
-  80309aa:	e001      	b.n	80309b0 <tcp_close_shutdown+0x138>
 
-  80309ac:	b240      	sxtb	r0, r0
 
-  80309ae:	e004      	b.n	80309ba <tcp_close_shutdown+0x142>
 
-        returns (unsent data is sent from tcp timer functions, also), we don't care
 
-        for the return value of tcp_output for now. */
 
-     /* @todo: When implementing SO_LINGER, this must be changed somehow:
 
-        If SOF_LINGER is set, the data should be sent and acked before close returns.
 
-        This can only be valid for sequential APIs, not for the raw API. */
 
-     tcp_output(pcb);
 
-  80309b0:	4620      	mov	r0, r4
 
-  80309b2:	f001 fb89 	bl	80320c8 <tcp_output>
 
-  80309b6:	2000      	movs	r0, #0
 
-  80309b8:	e7f8      	b.n	80309ac <tcp_close_shutdown+0x134>
 
-   }
 
-   return err;
 
- }
 
-  80309ba:	bd3e      	pop	{r1, r2, r3, r4, r5, pc}
 
-  80309bc:	2000f6bc 	.word	0x2000f6bc
 
-  80309c0:	2000f6c8 	.word	0x2000f6c8
 
-  80309c4:	2000f6b8 	.word	0x2000f6b8
 
-  80309c8:	2000f6d0 	.word	0x2000f6d0
 
-  80309cc:	2000f6cc 	.word	0x2000f6cc
 
-  80309d0:	2000f6c4 	.word	0x2000f6c4
 
- 080309d4 <tcp_shutdown>:
 
-  *         another err_t on error.
 
-  */
 
- err_t
 
- tcp_shutdown(struct tcp_pcb *pcb, int shut_rx, int shut_tx)
 
- {
 
-   if (pcb->state == LISTEN) {
 
-  80309d4:	7e03      	ldrb	r3, [r0, #24]
 
-  80309d6:	2b01      	cmp	r3, #1
 
-  * @return ERR_OK if shutdown succeeded (or the PCB has already been shut down)
 
-  *         another err_t on error.
 
-  */
 
- err_t
 
- tcp_shutdown(struct tcp_pcb *pcb, int shut_rx, int shut_tx)
 
- {
 
-  80309d8:	b570      	push	{r4, r5, r6, lr}
 
-  80309da:	4604      	mov	r4, r0
 
-  80309dc:	460e      	mov	r6, r1
 
-  80309de:	4615      	mov	r5, r2
 
-   if (pcb->state == LISTEN) {
 
-  80309e0:	d019      	beq.n	8030a16 <tcp_shutdown+0x42>
 
-     return ERR_CONN;
 
-   }
 
-   if (shut_rx) {
 
-  80309e2:	b161      	cbz	r1, 80309fe <tcp_shutdown+0x2a>
 
-     /* shut down the receive side: set a flag not to receive any more data... */
 
-     pcb->flags |= TF_RXCLOSED;
 
-  80309e4:	7f83      	ldrb	r3, [r0, #30]
 
-  80309e6:	f043 0310 	orr.w	r3, r3, #16
 
-  80309ea:	7783      	strb	r3, [r0, #30]
 
-     if (shut_tx) {
 
-  80309ec:	b10a      	cbz	r2, 80309f2 <tcp_shutdown+0x1e>
 
-       /* shutting down the tx AND rx side is the same as closing for the raw API */
 
-       return tcp_close_shutdown(pcb, 1);
 
-  80309ee:	2101      	movs	r1, #1
 
-  80309f0:	e00d      	b.n	8030a0e <tcp_shutdown+0x3a>
 
-     }
 
-     /* ... and free buffered data */
 
-     if (pcb->refused_data != NULL) {
 
-  80309f2:	6f40      	ldr	r0, [r0, #116]	; 0x74
 
-  80309f4:	b190      	cbz	r0, 8030a1c <tcp_shutdown+0x48>
 
-       pbuf_free(pcb->refused_data);
 
-  80309f6:	f7ff fa09 	bl	802fe0c <pbuf_free>
 
-       pcb->refused_data = NULL;
 
-  80309fa:	6765      	str	r5, [r4, #116]	; 0x74
 
-  80309fc:	e00e      	b.n	8030a1c <tcp_shutdown+0x48>
 
-     }
 
-   }
 
-   if (shut_tx) {
 
-  80309fe:	b15a      	cbz	r2, 8030a18 <tcp_shutdown+0x44>
 
-     /* This can't happen twice since if it succeeds, the pcb's state is changed.
 
-        Only close in these states as the others directly deallocate the PCB */
 
-     switch (pcb->state) {
 
-  8030a00:	2b07      	cmp	r3, #7
 
-  8030a02:	d808      	bhi.n	8030a16 <tcp_shutdown+0x42>
 
-  8030a04:	b25b      	sxtb	r3, r3
 
-  8030a06:	f04f 52c8 	mov.w	r2, #419430400	; 0x19000000
 
-  8030a0a:	409a      	lsls	r2, r3
 
-  8030a0c:	d503      	bpl.n	8030a16 <tcp_shutdown+0x42>
 
-         into CLOSED state, where the PCB is deallocated. */
 
-       return ERR_CONN;
 
-     }
 
-   }
 
-   return ERR_OK;
 
- }
 
-  8030a0e:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
 
-        Only close in these states as the others directly deallocate the PCB */
 
-     switch (pcb->state) {
 
-     case SYN_RCVD:
 
-     case ESTABLISHED:
 
-     case CLOSE_WAIT:
 
-       return tcp_close_shutdown(pcb, shut_rx);
 
-  8030a12:	f7ff bf31 	b.w	8030878 <tcp_close_shutdown>
 
-     default:
 
-       /* Not (yet?) connected, cannot shutdown the TX side as that would bring us
 
-         into CLOSED state, where the PCB is deallocated. */
 
-       return ERR_CONN;
 
-  8030a16:	25f3      	movs	r5, #243	; 0xf3
 
-  8030a18:	b268      	sxtb	r0, r5
 
-  8030a1a:	bd70      	pop	{r4, r5, r6, pc}
 
-     }
 
-   }
 
-   return ERR_OK;
 
-  8030a1c:	2500      	movs	r5, #0
 
-  8030a1e:	e7fb      	b.n	8030a18 <tcp_shutdown+0x44>
 
- 08030a20 <tcp_close>:
 
- #if TCP_DEBUG
 
-   LWIP_DEBUGF(TCP_DEBUG, ("tcp_close: closing in "));
 
-   tcp_debug_print_state(pcb->state);
 
- #endif /* TCP_DEBUG */
 
-   if (pcb->state != LISTEN) {
 
-  8030a20:	7e03      	ldrb	r3, [r0, #24]
 
-  8030a22:	2b01      	cmp	r3, #1
 
-  8030a24:	d003      	beq.n	8030a2e <tcp_close+0xe>
 
-     /* Set a flag not to receive any more data... */
 
-     pcb->flags |= TF_RXCLOSED;
 
-  8030a26:	7f83      	ldrb	r3, [r0, #30]
 
-  8030a28:	f043 0310 	orr.w	r3, r3, #16
 
-  8030a2c:	7783      	strb	r3, [r0, #30]
 
-   }
 
-   /* ... and close */
 
-   return tcp_close_shutdown(pcb, 1);
 
-  8030a2e:	2101      	movs	r1, #1
 
-  8030a30:	f7ff bf22 	b.w	8030878 <tcp_close_shutdown>
 
- 08030a34 <tcp_recv_null>:
 
-  * Default receive callback that is called if the user didn't register
 
-  * a recv callback for the pcb.
 
-  */
 
- err_t
 
- tcp_recv_null(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err)
 
- {
 
-  8030a34:	b510      	push	{r4, lr}
 
-  8030a36:	4608      	mov	r0, r1
 
-   LWIP_UNUSED_ARG(arg);
 
-   if (p != NULL) {
 
-  8030a38:	4614      	mov	r4, r2
 
-  8030a3a:	b132      	cbz	r2, 8030a4a <tcp_recv_null+0x16>
 
-     tcp_recved(pcb, p->tot_len);
 
-  8030a3c:	8911      	ldrh	r1, [r2, #8]
 
-  8030a3e:	f7ff fcf9 	bl	8030434 <tcp_recved>
 
-     pbuf_free(p);
 
-  8030a42:	4620      	mov	r0, r4
 
-  8030a44:	f7ff f9e2 	bl	802fe0c <pbuf_free>
 
-  8030a48:	e004      	b.n	8030a54 <tcp_recv_null+0x20>
 
-   } else if (err == ERR_OK) {
 
-  8030a4a:	b91b      	cbnz	r3, 8030a54 <tcp_recv_null+0x20>
 
-     return tcp_close(pcb);
 
-   }
 
-   return ERR_OK;
 
- }
 
-  8030a4c:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
-   LWIP_UNUSED_ARG(arg);
 
-   if (p != NULL) {
 
-     tcp_recved(pcb, p->tot_len);
 
-     pbuf_free(p);
 
-   } else if (err == ERR_OK) {
 
-     return tcp_close(pcb);
 
-  8030a50:	f7ff bfe6 	b.w	8030a20 <tcp_close>
 
-   }
 
-   return ERR_OK;
 
- }
 
-  8030a54:	2000      	movs	r0, #0
 
-  8030a56:	bd10      	pop	{r4, pc}
 
- 08030a58 <tcp_process_refused_data>:
 
- }
 
- /** Pass pcb->refused_data to the recv callback */
 
- err_t
 
- tcp_process_refused_data(struct tcp_pcb *pcb)
 
- {
 
-  8030a58:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
-   err_t err;
 
-   u8_t refused_flags = pcb->refused_data->flags;
 
-  8030a5a:	6f45      	ldr	r5, [r0, #116]	; 0x74
 
-      closes the pcb */
 
-   struct pbuf *refused_data = pcb->refused_data;
 
-   pcb->refused_data = NULL;
 
-   /* Notify again application with data previously received. */
 
-   LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_input: notify kept packet\n"));
 
-   TCP_EVENT_RECV(pcb, refused_data, ERR_OK, err);
 
-  8030a5c:	6fc6      	ldr	r6, [r0, #124]	; 0x7c
 
- /** Pass pcb->refused_data to the recv callback */
 
- err_t
 
- tcp_process_refused_data(struct tcp_pcb *pcb)
 
- {
 
-   err_t err;
 
-   u8_t refused_flags = pcb->refused_data->flags;
 
-  8030a5e:	7b6f      	ldrb	r7, [r5, #13]
 
-   /* set pcb->refused_data to NULL in case the callback frees it and then
 
-      closes the pcb */
 
-   struct pbuf *refused_data = pcb->refused_data;
 
-   pcb->refused_data = NULL;
 
-  8030a60:	2300      	movs	r3, #0
 
- }
 
- /** Pass pcb->refused_data to the recv callback */
 
- err_t
 
- tcp_process_refused_data(struct tcp_pcb *pcb)
 
- {
 
-  8030a62:	4604      	mov	r4, r0
 
-   err_t err;
 
-   u8_t refused_flags = pcb->refused_data->flags;
 
-   /* set pcb->refused_data to NULL in case the callback frees it and then
 
-      closes the pcb */
 
-   struct pbuf *refused_data = pcb->refused_data;
 
-   pcb->refused_data = NULL;
 
-  8030a64:	6743      	str	r3, [r0, #116]	; 0x74
 
-   /* Notify again application with data previously received. */
 
-   LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_input: notify kept packet\n"));
 
-   TCP_EVENT_RECV(pcb, refused_data, ERR_OK, err);
 
-  8030a66:	b126      	cbz	r6, 8030a72 <tcp_process_refused_data+0x1a>
 
-  8030a68:	4621      	mov	r1, r4
 
-  8030a6a:	462a      	mov	r2, r5
 
-  8030a6c:	6900      	ldr	r0, [r0, #16]
 
-  8030a6e:	47b0      	blx	r6
 
-  8030a70:	e005      	b.n	8030a7e <tcp_process_refused_data+0x26>
 
-  8030a72:	4630      	mov	r0, r6
 
-  8030a74:	4621      	mov	r1, r4
 
-  8030a76:	462a      	mov	r2, r5
 
-  8030a78:	4633      	mov	r3, r6
 
-  8030a7a:	f7ff ffdb 	bl	8030a34 <tcp_recv_null>
 
-   if (err == ERR_OK) {
 
-  8030a7e:	b9b0      	cbnz	r0, 8030aae <tcp_process_refused_data+0x56>
 
-     /* did refused_data include a FIN? */
 
-     if (refused_flags & PBUF_FLAG_TCP_FIN) {
 
-  8030a80:	f007 0720 	and.w	r7, r7, #32
 
-  8030a84:	b2ff      	uxtb	r7, r7
 
-  8030a86:	b1bf      	cbz	r7, 8030ab8 <tcp_process_refused_data+0x60>
 
-       /* correct rcv_wnd as the application won't call tcp_recved()
 
-          for the FIN's seqno */
 
-       if (pcb->rcv_wnd != TCP_WND) {
 
-  8030a88:	8da3      	ldrh	r3, [r4, #44]	; 0x2c
 
-  8030a8a:	f241 62d0 	movw	r2, #5840	; 0x16d0
 
-  8030a8e:	4293      	cmp	r3, r2
 
-  8030a90:	d001      	beq.n	8030a96 <tcp_process_refused_data+0x3e>
 
-         pcb->rcv_wnd++;
 
-  8030a92:	3301      	adds	r3, #1
 
-  8030a94:	85a3      	strh	r3, [r4, #44]	; 0x2c
 
-       }
 
-       TCP_EVENT_CLOSED(pcb, err);
 
-  8030a96:	6fe5      	ldr	r5, [r4, #124]	; 0x7c
 
-  8030a98:	b905      	cbnz	r5, 8030a9c <tcp_process_refused_data+0x44>
 
-  8030a9a:	e00c      	b.n	8030ab6 <tcp_process_refused_data+0x5e>
 
-  8030a9c:	2200      	movs	r2, #0
 
-  8030a9e:	6920      	ldr	r0, [r4, #16]
 
-  8030aa0:	4621      	mov	r1, r4
 
-  8030aa2:	4613      	mov	r3, r2
 
-  8030aa4:	47a8      	blx	r5
 
-       if (err == ERR_ABRT) {
 
-  8030aa6:	300a      	adds	r0, #10
 
-  8030aa8:	d105      	bne.n	8030ab6 <tcp_process_refused_data+0x5e>
 
-         return ERR_ABRT;
 
-  8030aaa:	20f6      	movs	r0, #246	; 0xf6
 
-  8030aac:	e004      	b.n	8030ab8 <tcp_process_refused_data+0x60>
 
-       }
 
-     }
 
-   } else if (err == ERR_ABRT) {
 
-  8030aae:	b240      	sxtb	r0, r0
 
-  8030ab0:	300a      	adds	r0, #10
 
-  8030ab2:	d0fa      	beq.n	8030aaa <tcp_process_refused_data+0x52>
 
-        segment contains data). */
 
-     LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_input: drop incoming packets, because pcb is \"full\"\n"));
 
-     return ERR_ABRT;
 
-   } else {
 
-     /* data is still refused, pbuf is still valid (go on for ACK-only packets) */
 
-     pcb->refused_data = refused_data;
 
-  8030ab4:	6765      	str	r5, [r4, #116]	; 0x74
 
-   }
 
-   return ERR_OK;
 
-  8030ab6:	2000      	movs	r0, #0
 
- }
 
-  8030ab8:	b240      	sxtb	r0, r0
 
-  8030aba:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 
- 08030abc <tcp_fasttmr>:
 
-  *
 
-  * Automatically called from tcp_tmr().
 
-  */
 
- void
 
- tcp_fasttmr(void)
 
- {
 
-  8030abc:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
 
-   struct tcp_pcb *pcb;
 
-   ++tcp_timer_ctr;
 
-  8030ac0:	4b18      	ldr	r3, [pc, #96]	; (8030b24 <tcp_fasttmr+0x68>)
 
- tcp_fasttmr_start:
 
-   pcb = tcp_active_pcbs;
 
-  8030ac2:	4f19      	ldr	r7, [pc, #100]	; (8030b28 <tcp_fasttmr+0x6c>)
 
- void
 
- tcp_fasttmr(void)
 
- {
 
-   struct tcp_pcb *pcb;
 
-   ++tcp_timer_ctr;
 
-  8030ac4:	781a      	ldrb	r2, [r3, #0]
 
-  8030ac6:	3201      	adds	r2, #1
 
-  8030ac8:	701a      	strb	r2, [r3, #0]
 
- tcp_fasttmr_start:
 
-   pcb = tcp_active_pcbs;
 
-   while(pcb != NULL) {
 
-     if (pcb->last_timer != tcp_timer_ctr) {
 
-  8030aca:	4698      	mov	r8, r3
 
-   struct tcp_pcb *pcb;
 
-   ++tcp_timer_ctr;
 
- tcp_fasttmr_start:
 
-   pcb = tcp_active_pcbs;
 
-  8030acc:	683c      	ldr	r4, [r7, #0]
 
-       next = pcb->next;
 
-       /* If there is data which was previously "refused" by upper layer */
 
-       if (pcb->refused_data != NULL) {
 
-         tcp_active_pcbs_changed = 0;
 
-  8030ace:	4d17      	ldr	r5, [pc, #92]	; (8030b2c <tcp_fasttmr+0x70>)
 
-  8030ad0:	2600      	movs	r6, #0
 
-   ++tcp_timer_ctr;
 
- tcp_fasttmr_start:
 
-   pcb = tcp_active_pcbs;
 
-   while(pcb != NULL) {
 
-  8030ad2:	e022      	b.n	8030b1a <tcp_fasttmr+0x5e>
 
-     if (pcb->last_timer != tcp_timer_ctr) {
 
-  8030ad4:	f898 2000 	ldrb.w	r2, [r8]
 
-  8030ad8:	f894 3021 	ldrb.w	r3, [r4, #33]	; 0x21
 
-  8030adc:	4293      	cmp	r3, r2
 
-  8030ade:	d020      	beq.n	8030b22 <tcp_fasttmr+0x66>
 
-       struct tcp_pcb *next;
 
-       pcb->last_timer = tcp_timer_ctr;
 
-  8030ae0:	f884 2021 	strb.w	r2, [r4, #33]	; 0x21
 
-       /* send delayed ACKs */
 
-       if (pcb->flags & TF_ACK_DELAY) {
 
-  8030ae4:	7fa2      	ldrb	r2, [r4, #30]
 
-  8030ae6:	07d1      	lsls	r1, r2, #31
 
-  8030ae8:	d509      	bpl.n	8030afe <tcp_fasttmr+0x42>
 
-         LWIP_DEBUGF(TCP_DEBUG, ("tcp_fasttmr: delayed ACK\n"));
 
-         tcp_ack_now(pcb);
 
-  8030aea:	f042 0202 	orr.w	r2, r2, #2
 
-  8030aee:	77a2      	strb	r2, [r4, #30]
 
-         tcp_output(pcb);
 
-  8030af0:	4620      	mov	r0, r4
 
-  8030af2:	f001 fae9 	bl	80320c8 <tcp_output>
 
-         pcb->flags &= ~(TF_ACK_DELAY | TF_ACK_NOW);
 
-  8030af6:	7fa3      	ldrb	r3, [r4, #30]
 
-  8030af8:	f023 0303 	bic.w	r3, r3, #3
 
-  8030afc:	77a3      	strb	r3, [r4, #30]
 
-       }
 
-       next = pcb->next;
 
-       /* If there is data which was previously "refused" by upper layer */
 
-       if (pcb->refused_data != NULL) {
 
-  8030afe:	6f63      	ldr	r3, [r4, #116]	; 0x74
 
-         tcp_ack_now(pcb);
 
-         tcp_output(pcb);
 
-         pcb->flags &= ~(TF_ACK_DELAY | TF_ACK_NOW);
 
-       }
 
-       next = pcb->next;
 
-  8030b00:	f8d4 900c 	ldr.w	r9, [r4, #12]
 
-       /* If there is data which was previously "refused" by upper layer */
 
-       if (pcb->refused_data != NULL) {
 
-  8030b04:	b90b      	cbnz	r3, 8030b0a <tcp_fasttmr+0x4e>
 
-  8030b06:	464c      	mov	r4, r9
 
-  8030b08:	e007      	b.n	8030b1a <tcp_fasttmr+0x5e>
 
-         tcp_active_pcbs_changed = 0;
 
-         tcp_process_refused_data(pcb);
 
-  8030b0a:	4620      	mov	r0, r4
 
-       next = pcb->next;
 
-       /* If there is data which was previously "refused" by upper layer */
 
-       if (pcb->refused_data != NULL) {
 
-         tcp_active_pcbs_changed = 0;
 
-  8030b0c:	702e      	strb	r6, [r5, #0]
 
-         tcp_process_refused_data(pcb);
 
-  8030b0e:	f7ff ffa3 	bl	8030a58 <tcp_process_refused_data>
 
-         if (tcp_active_pcbs_changed) {
 
-  8030b12:	782b      	ldrb	r3, [r5, #0]
 
-  8030b14:	2b00      	cmp	r3, #0
 
-  8030b16:	d1d9      	bne.n	8030acc <tcp_fasttmr+0x10>
 
-  8030b18:	e7f5      	b.n	8030b06 <tcp_fasttmr+0x4a>
 
-   ++tcp_timer_ctr;
 
- tcp_fasttmr_start:
 
-   pcb = tcp_active_pcbs;
 
-   while(pcb != NULL) {
 
-  8030b1a:	2c00      	cmp	r4, #0
 
-  8030b1c:	d1da      	bne.n	8030ad4 <tcp_fasttmr+0x18>
 
-  8030b1e:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
 
-  8030b22:	e7fe      	b.n	8030b22 <tcp_fasttmr+0x66>
 
-  8030b24:	2000c3dd 	.word	0x2000c3dd
 
-  8030b28:	2000f6bc 	.word	0x2000f6bc
 
-  8030b2c:	2000f6b8 	.word	0x2000f6b8
 
- 08030b30 <tcp_tmr>:
 
- /**
 
-  * Called periodically to dispatch TCP timers.
 
-  */
 
- void
 
- tcp_tmr(void)
 
- {
 
-  8030b30:	b508      	push	{r3, lr}
 
-   /* Call tcp_fasttmr() every 250 ms */
 
-   tcp_fasttmr();
 
-  8030b32:	f7ff ffc3 	bl	8030abc <tcp_fasttmr>
 
-   if (++tcp_timer & 1) {
 
-  8030b36:	4a06      	ldr	r2, [pc, #24]	; (8030b50 <tcp_tmr+0x20>)
 
-  8030b38:	7813      	ldrb	r3, [r2, #0]
 
-  8030b3a:	3301      	adds	r3, #1
 
-  8030b3c:	b2db      	uxtb	r3, r3
 
-  8030b3e:	07d8      	lsls	r0, r3, #31
 
-  8030b40:	7013      	strb	r3, [r2, #0]
 
-  8030b42:	d503      	bpl.n	8030b4c <tcp_tmr+0x1c>
 
-     /* Call tcp_tmr() every 500 ms, i.e., every other timer
 
-        tcp_tmr() is called. */
 
-     tcp_slowtmr();
 
-   }
 
- }
 
-  8030b44:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
 
-   tcp_fasttmr();
 
-   if (++tcp_timer & 1) {
 
-     /* Call tcp_tmr() every 500 ms, i.e., every other timer
 
-        tcp_tmr() is called. */
 
-     tcp_slowtmr();
 
-  8030b48:	f7ff bcd4 	b.w	80304f4 <tcp_slowtmr>
 
-  8030b4c:	bd08      	pop	{r3, pc}
 
-  8030b4e:	bf00      	nop
 
-  8030b50:	2000c3dc 	.word	0x2000c3dc
 
- 08030b54 <tcp_next_iss>:
 
- u32_t
 
- tcp_next_iss(void)
 
- {
 
-   static u32_t iss = 6510;
 
-   
 
-   iss += tcp_ticks;       /* XXX */
 
-  8030b54:	4b03      	ldr	r3, [pc, #12]	; (8030b64 <tcp_next_iss+0x10>)
 
-  8030b56:	4a04      	ldr	r2, [pc, #16]	; (8030b68 <tcp_next_iss+0x14>)
 
-  8030b58:	6810      	ldr	r0, [r2, #0]
 
-  8030b5a:	681a      	ldr	r2, [r3, #0]
 
-  8030b5c:	1880      	adds	r0, r0, r2
 
-  8030b5e:	6018      	str	r0, [r3, #0]
 
-   return iss;
 
- }
 
-  8030b60:	4770      	bx	lr
 
-  8030b62:	bf00      	nop
 
-  8030b64:	20000718 	.word	0x20000718
 
-  8030b68:	2000f6c0 	.word	0x2000f6c0
 
- 08030b6c <tcp_alloc>:
 
-  * @param prio priority for the new pcb
 
-  * @return a new tcp_pcb that initially is in state CLOSED
 
-  */
 
- struct tcp_pcb *
 
- tcp_alloc(u8_t prio)
 
- {
 
-  8030b6c:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
-  8030b6e:	4605      	mov	r5, r0
 
-   struct tcp_pcb *pcb;
 
-   u32_t iss;
 
-   
 
-   pcb = (struct tcp_pcb *)memp_malloc(MEMP_TCP_PCB);
 
-  8030b70:	2002      	movs	r0, #2
 
-  8030b72:	f7ff f82b 	bl	802fbcc <memp_malloc>
 
-   if (pcb == NULL) {
 
-  8030b76:	4604      	mov	r4, r0
 
-  8030b78:	2800      	cmp	r0, #0
 
-  8030b7a:	d136      	bne.n	8030bea <tcp_alloc+0x7e>
 
-   u32_t inactivity;
 
-   inactivity = 0;
 
-   inactive = NULL;
 
-   /* Go through the list of TIME_WAIT pcbs and get the oldest pcb. */
 
-   for(pcb = tcp_tw_pcbs; pcb != NULL; pcb = pcb->next) {
 
-  8030b7c:	4b39      	ldr	r3, [pc, #228]	; (8030c64 <tcp_alloc+0xf8>)
 
-     if ((u32_t)(tcp_ticks - pcb->tmr) >= inactivity) {
 
-  8030b7e:	4a3a      	ldr	r2, [pc, #232]	; (8030c68 <tcp_alloc+0xfc>)
 
-   u32_t inactivity;
 
-   inactivity = 0;
 
-   inactive = NULL;
 
-   /* Go through the list of TIME_WAIT pcbs and get the oldest pcb. */
 
-   for(pcb = tcp_tw_pcbs; pcb != NULL; pcb = pcb->next) {
 
-  8030b80:	681b      	ldr	r3, [r3, #0]
 
-     if ((u32_t)(tcp_ticks - pcb->tmr) >= inactivity) {
 
-  8030b82:	6811      	ldr	r1, [r2, #0]
 
-  8030b84:	e007      	b.n	8030b96 <tcp_alloc+0x2a>
 
-  8030b86:	6a5a      	ldr	r2, [r3, #36]	; 0x24
 
-  8030b88:	1a8a      	subs	r2, r1, r2
 
-  8030b8a:	42a2      	cmp	r2, r4
 
-  8030b8c:	bf34      	ite	cc
 
-  8030b8e:	4622      	movcc	r2, r4
 
-  8030b90:	4618      	movcs	r0, r3
 
-   u32_t inactivity;
 
-   inactivity = 0;
 
-   inactive = NULL;
 
-   /* Go through the list of TIME_WAIT pcbs and get the oldest pcb. */
 
-   for(pcb = tcp_tw_pcbs; pcb != NULL; pcb = pcb->next) {
 
-  8030b92:	68db      	ldr	r3, [r3, #12]
 
-  8030b94:	4614      	mov	r4, r2
 
-  8030b96:	2b00      	cmp	r3, #0
 
-  8030b98:	d1f5      	bne.n	8030b86 <tcp_alloc+0x1a>
 
-     if ((u32_t)(tcp_ticks - pcb->tmr) >= inactivity) {
 
-       inactivity = tcp_ticks - pcb->tmr;
 
-       inactive = pcb;
 
-     }
 
-   }
 
-   if (inactive != NULL) {
 
-  8030b9a:	b108      	cbz	r0, 8030ba0 <tcp_alloc+0x34>
 
-     LWIP_DEBUGF(TCP_DEBUG, ("tcp_kill_timewait: killing oldest TIME-WAIT PCB %p (%"S32_F")\n",
 
-            (void *)inactive, inactivity));
 
-     tcp_abort(inactive);
 
-  8030b9c:	f7ff fe68 	bl	8030870 <tcp_abort>
 
-   if (pcb == NULL) {
 
-     /* Try killing oldest connection in TIME-WAIT. */
 
-     LWIP_DEBUGF(TCP_DEBUG, ("tcp_alloc: killing off oldest TIME-WAIT connection\n"));
 
-     tcp_kill_timewait();
 
-     /* Try to allocate a tcp_pcb again. */
 
-     pcb = (struct tcp_pcb *)memp_malloc(MEMP_TCP_PCB);
 
-  8030ba0:	2002      	movs	r0, #2
 
-  8030ba2:	f7ff f813 	bl	802fbcc <memp_malloc>
 
-     if (pcb == NULL) {
 
-  8030ba6:	4604      	mov	r4, r0
 
-  8030ba8:	b9f8      	cbnz	r0, 8030bea <tcp_alloc+0x7e>
 
-   inactivity = 0;
 
-   inactive = NULL;
 
-   for(pcb = tcp_active_pcbs; pcb != NULL; pcb = pcb->next) {
 
-     if (pcb->prio <= prio &&
 
-        pcb->prio <= mprio &&
 
-        (u32_t)(tcp_ticks - pcb->tmr) >= inactivity) {
 
-  8030baa:	4a2f      	ldr	r2, [pc, #188]	; (8030c68 <tcp_alloc+0xfc>)
 
-   mprio = TCP_PRIO_MAX;
 
-   
 
-   /* We kill the oldest active connection that has lower priority than prio. */
 
-   inactivity = 0;
 
-   inactive = NULL;
 
-   for(pcb = tcp_active_pcbs; pcb != NULL; pcb = pcb->next) {
 
-  8030bac:	4b2f      	ldr	r3, [pc, #188]	; (8030c6c <tcp_alloc+0x100>)
 
-     if (pcb->prio <= prio &&
 
-        pcb->prio <= mprio &&
 
-        (u32_t)(tcp_ticks - pcb->tmr) >= inactivity) {
 
-  8030bae:	6817      	ldr	r7, [r2, #0]
 
-   mprio = TCP_PRIO_MAX;
 
-   
 
-   /* We kill the oldest active connection that has lower priority than prio. */
 
-   inactivity = 0;
 
-   inactive = NULL;
 
-   for(pcb = tcp_active_pcbs; pcb != NULL; pcb = pcb->next) {
 
-  8030bb0:	681b      	ldr	r3, [r3, #0]
 
-   struct tcp_pcb *pcb, *inactive;
 
-   u32_t inactivity;
 
-   u8_t mprio;
 
-   mprio = TCP_PRIO_MAX;
 
-  8030bb2:	207f      	movs	r0, #127	; 0x7f
 
-   
 
-   /* We kill the oldest active connection that has lower priority than prio. */
 
-   inactivity = 0;
 
-   inactive = NULL;
 
-  8030bb4:	4622      	mov	r2, r4
 
-  8030bb6:	e00c      	b.n	8030bd2 <tcp_alloc+0x66>
 
-   for(pcb = tcp_active_pcbs; pcb != NULL; pcb = pcb->next) {
 
-     if (pcb->prio <= prio &&
 
-  8030bb8:	7e59      	ldrb	r1, [r3, #25]
 
-  8030bba:	42a9      	cmp	r1, r5
 
-  8030bbc:	d808      	bhi.n	8030bd0 <tcp_alloc+0x64>
 
-  8030bbe:	4281      	cmp	r1, r0
 
-  8030bc0:	d806      	bhi.n	8030bd0 <tcp_alloc+0x64>
 
-        pcb->prio <= mprio &&
 
-        (u32_t)(tcp_ticks - pcb->tmr) >= inactivity) {
 
-  8030bc2:	6a5e      	ldr	r6, [r3, #36]	; 0x24
 
-  8030bc4:	1bbe      	subs	r6, r7, r6
 
-   /* We kill the oldest active connection that has lower priority than prio. */
 
-   inactivity = 0;
 
-   inactive = NULL;
 
-   for(pcb = tcp_active_pcbs; pcb != NULL; pcb = pcb->next) {
 
-     if (pcb->prio <= prio &&
 
-        pcb->prio <= mprio &&
 
-  8030bc6:	42a6      	cmp	r6, r4
 
-  8030bc8:	d302      	bcc.n	8030bd0 <tcp_alloc+0x64>
 
-  8030bca:	4608      	mov	r0, r1
 
-  8030bcc:	4634      	mov	r4, r6
 
-  8030bce:	461a      	mov	r2, r3
 
-   mprio = TCP_PRIO_MAX;
 
-   
 
-   /* We kill the oldest active connection that has lower priority than prio. */
 
-   inactivity = 0;
 
-   inactive = NULL;
 
-   for(pcb = tcp_active_pcbs; pcb != NULL; pcb = pcb->next) {
 
-  8030bd0:	68db      	ldr	r3, [r3, #12]
 
-  8030bd2:	2b00      	cmp	r3, #0
 
-  8030bd4:	d1f0      	bne.n	8030bb8 <tcp_alloc+0x4c>
 
-       inactivity = tcp_ticks - pcb->tmr;
 
-       inactive = pcb;
 
-       mprio = pcb->prio;
 
-     }
 
-   }
 
-   if (inactive != NULL) {
 
-  8030bd6:	b112      	cbz	r2, 8030bde <tcp_alloc+0x72>
 
-     LWIP_DEBUGF(TCP_DEBUG, ("tcp_kill_prio: killing oldest PCB %p (%"S32_F")\n",
 
-            (void *)inactive, inactivity));
 
-     tcp_abort(inactive);
 
-  8030bd8:	4610      	mov	r0, r2
 
-  8030bda:	f7ff fe49 	bl	8030870 <tcp_abort>
 
-     if (pcb == NULL) {
 
-       /* Try killing active connections with lower priority than the new one. */
 
-       LWIP_DEBUGF(TCP_DEBUG, ("tcp_alloc: killing connection with prio lower than %d\n", prio));
 
-       tcp_kill_prio(prio);
 
-       /* Try to allocate a tcp_pcb again. */
 
-       pcb = (struct tcp_pcb *)memp_malloc(MEMP_TCP_PCB);
 
-  8030bde:	2002      	movs	r0, #2
 
-  8030be0:	f7fe fff4 	bl	802fbcc <memp_malloc>
 
-     if (pcb != NULL) {
 
-       /* adjust err stats: timewait PCB was freed above */
 
-       MEMP_STATS_DEC(err, MEMP_TCP_PCB);
 
-     }
 
-   }
 
-   if (pcb != NULL) {
 
-  8030be4:	4604      	mov	r4, r0
 
-  8030be6:	2800      	cmp	r0, #0
 
-  8030be8:	d039      	beq.n	8030c5e <tcp_alloc+0xf2>
 
-     memset(pcb, 0, sizeof(struct tcp_pcb));
 
-  8030bea:	2100      	movs	r1, #0
 
-  8030bec:	2294      	movs	r2, #148	; 0x94
 
-  8030bee:	4620      	mov	r0, r4
 
-  8030bf0:	f7f0 ff86 	bl	8021b00 <memset>
 
-     pcb->prio = prio;
 
-     pcb->snd_buf = TCP_SND_BUF;
 
-     pcb->snd_queuelen = 0;
 
-     pcb->rcv_wnd = TCP_WND;
 
-  8030bf4:	f241 62d0 	movw	r2, #5840	; 0x16d0
 
-     }
 
-   }
 
-   if (pcb != NULL) {
 
-     memset(pcb, 0, sizeof(struct tcp_pcb));
 
-     pcb->prio = prio;
 
-     pcb->snd_buf = TCP_SND_BUF;
 
-  8030bf8:	f246 63a8 	movw	r3, #26280	; 0x66a8
 
-  8030bfc:	f8a4 3066 	strh.w	r3, [r4, #102]	; 0x66
 
-     pcb->snd_queuelen = 0;
 
-     pcb->rcv_wnd = TCP_WND;
 
-  8030c00:	85a2      	strh	r2, [r4, #44]	; 0x2c
 
-   }
 
-   if (pcb != NULL) {
 
-     memset(pcb, 0, sizeof(struct tcp_pcb));
 
-     pcb->prio = prio;
 
-     pcb->snd_buf = TCP_SND_BUF;
 
-     pcb->snd_queuelen = 0;
 
-  8030c02:	2300      	movs	r3, #0
 
-     pcb->rcv_wnd = TCP_WND;
 
-     pcb->rcv_ann_wnd = TCP_WND;
 
-  8030c04:	85e2      	strh	r2, [r4, #46]	; 0x2e
 
-     pcb->tos = 0;
 
-     pcb->ttl = TCP_TTL;
 
-  8030c06:	22ff      	movs	r2, #255	; 0xff
 
-       MEMP_STATS_DEC(err, MEMP_TCP_PCB);
 
-     }
 
-   }
 
-   if (pcb != NULL) {
 
-     memset(pcb, 0, sizeof(struct tcp_pcb));
 
-     pcb->prio = prio;
 
-  8030c08:	7665      	strb	r5, [r4, #25]
 
-     pcb->snd_buf = TCP_SND_BUF;
 
-     pcb->snd_queuelen = 0;
 
-  8030c0a:	f8a4 3068 	strh.w	r3, [r4, #104]	; 0x68
 
-  8030c0e:	461d      	mov	r5, r3
 
-     pcb->rcv_wnd = TCP_WND;
 
-     pcb->rcv_ann_wnd = TCP_WND;
 
-     pcb->tos = 0;
 
-  8030c10:	7263      	strb	r3, [r4, #9]
 
-     pcb->ttl = TCP_TTL;
 
-  8030c12:	72a2      	strb	r2, [r4, #10]
 
-     /* As initial send MSS, we use TCP_MSS but limit it to 536.
 
-        The send MSS is updated when an MSS option is received. */
 
-     pcb->mss = (TCP_MSS > 536) ? 536 : TCP_MSS;
 
-     pcb->rto = 3000 / TCP_SLOW_INTERVAL;
 
-     pcb->sa = 0;
 
-  8030c14:	f8a4 3040 	strh.w	r3, [r4, #64]	; 0x40
 
-     pcb->rcv_ann_wnd = TCP_WND;
 
-     pcb->tos = 0;
 
-     pcb->ttl = TCP_TTL;
 
-     /* As initial send MSS, we use TCP_MSS but limit it to 536.
 
-        The send MSS is updated when an MSS option is received. */
 
-     pcb->mss = (TCP_MSS > 536) ? 536 : TCP_MSS;
 
-  8030c18:	f44f 7206 	mov.w	r2, #536	; 0x218
 
-     pcb->rto = 3000 / TCP_SLOW_INTERVAL;
 
-     pcb->sa = 0;
 
-     pcb->sv = 3000 / TCP_SLOW_INTERVAL;
 
-     pcb->rtime = -1;
 
-  8030c1c:	f64f 73ff 	movw	r3, #65535	; 0xffff
 
-     pcb->rcv_ann_wnd = TCP_WND;
 
-     pcb->tos = 0;
 
-     pcb->ttl = TCP_TTL;
 
-     /* As initial send MSS, we use TCP_MSS but limit it to 536.
 
-        The send MSS is updated when an MSS option is received. */
 
-     pcb->mss = (TCP_MSS > 536) ? 536 : TCP_MSS;
 
-  8030c20:	86e2      	strh	r2, [r4, #54]	; 0x36
 
-     pcb->rto = 3000 / TCP_SLOW_INTERVAL;
 
-     pcb->sa = 0;
 
-     pcb->sv = 3000 / TCP_SLOW_INTERVAL;
 
-     pcb->rtime = -1;
 
-  8030c22:	86a3      	strh	r3, [r4, #52]	; 0x34
 
-     pcb->tos = 0;
 
-     pcb->ttl = TCP_TTL;
 
-     /* As initial send MSS, we use TCP_MSS but limit it to 536.
 
-        The send MSS is updated when an MSS option is received. */
 
-     pcb->mss = (TCP_MSS > 536) ? 536 : TCP_MSS;
 
-     pcb->rto = 3000 / TCP_SLOW_INTERVAL;
 
-  8030c24:	2206      	movs	r2, #6
 
-     pcb->sa = 0;
 
-     pcb->sv = 3000 / TCP_SLOW_INTERVAL;
 
-     pcb->rtime = -1;
 
-     pcb->cwnd = 1;
 
-  8030c26:	2301      	movs	r3, #1
 
-  8030c28:	f8a4 304c 	strh.w	r3, [r4, #76]	; 0x4c
 
-     pcb->tos = 0;
 
-     pcb->ttl = TCP_TTL;
 
-     /* As initial send MSS, we use TCP_MSS but limit it to 536.
 
-        The send MSS is updated when an MSS option is received. */
 
-     pcb->mss = (TCP_MSS > 536) ? 536 : TCP_MSS;
 
-     pcb->rto = 3000 / TCP_SLOW_INTERVAL;
 
-  8030c2c:	f8a4 2044 	strh.w	r2, [r4, #68]	; 0x44
 
-     pcb->sa = 0;
 
-     pcb->sv = 3000 / TCP_SLOW_INTERVAL;
 
-  8030c30:	f8a4 2042 	strh.w	r2, [r4, #66]	; 0x42
 
-     pcb->rtime = -1;
 
-     pcb->cwnd = 1;
 
-     iss = tcp_next_iss();
 
-  8030c34:	f7ff ff8e 	bl	8030b54 <tcp_next_iss>
 
-     pcb->snd_wl2 = iss;
 
-     pcb->snd_nxt = iss;
 
-     pcb->lastack = iss;
 
-     pcb->snd_lbb = iss;   
 
-     pcb->tmr = tcp_ticks;
 
-  8030c38:	4b0b      	ldr	r3, [pc, #44]	; (8030c68 <tcp_alloc+0xfc>)
 
-     pcb->sa = 0;
 
-     pcb->sv = 3000 / TCP_SLOW_INTERVAL;
 
-     pcb->rtime = -1;
 
-     pcb->cwnd = 1;
 
-     iss = tcp_next_iss();
 
-     pcb->snd_wl2 = iss;
 
-  8030c3a:	65a0      	str	r0, [r4, #88]	; 0x58
 
-     pcb->snd_nxt = iss;
 
-     pcb->lastack = iss;
 
-     pcb->snd_lbb = iss;   
 
-     pcb->tmr = tcp_ticks;
 
-  8030c3c:	681b      	ldr	r3, [r3, #0]
 
-     pcb->sv = 3000 / TCP_SLOW_INTERVAL;
 
-     pcb->rtime = -1;
 
-     pcb->cwnd = 1;
 
-     iss = tcp_next_iss();
 
-     pcb->snd_wl2 = iss;
 
-     pcb->snd_nxt = iss;
 
-  8030c3e:	6520      	str	r0, [r4, #80]	; 0x50
 
-     pcb->lastack = iss;
 
-     pcb->snd_lbb = iss;   
 
-     pcb->tmr = tcp_ticks;
 
-  8030c40:	6263      	str	r3, [r4, #36]	; 0x24
 
-     pcb->last_timer = tcp_timer_ctr;
 
-  8030c42:	4b0b      	ldr	r3, [pc, #44]	; (8030c70 <tcp_alloc+0x104>)
 
-     pcb->rtime = -1;
 
-     pcb->cwnd = 1;
 
-     iss = tcp_next_iss();
 
-     pcb->snd_wl2 = iss;
 
-     pcb->snd_nxt = iss;
 
-     pcb->lastack = iss;
 
-  8030c44:	64a0      	str	r0, [r4, #72]	; 0x48
 
-     pcb->snd_lbb = iss;   
 
-     pcb->tmr = tcp_ticks;
 
-     pcb->last_timer = tcp_timer_ctr;
 
-  8030c46:	781b      	ldrb	r3, [r3, #0]
 
-     pcb->cwnd = 1;
 
-     iss = tcp_next_iss();
 
-     pcb->snd_wl2 = iss;
 
-     pcb->snd_nxt = iss;
 
-     pcb->lastack = iss;
 
-     pcb->snd_lbb = iss;   
 
-  8030c48:	65e0      	str	r0, [r4, #92]	; 0x5c
 
-     pcb->tmr = tcp_ticks;
 
-     pcb->last_timer = tcp_timer_ctr;
 
-  8030c4a:	f884 3021 	strb.w	r3, [r4, #33]	; 0x21
 
-     pcb->polltmr = 0;
 
- #if LWIP_CALLBACK_API
 
-     pcb->recv = tcp_recv_null;
 
-  8030c4e:	4b09      	ldr	r3, [pc, #36]	; (8030c74 <tcp_alloc+0x108>)
 
-     pcb->lastack = iss;
 
-     pcb->snd_lbb = iss;   
 
-     pcb->tmr = tcp_ticks;
 
-     pcb->last_timer = tcp_timer_ctr;
 
-     pcb->polltmr = 0;
 
-  8030c50:	77e5      	strb	r5, [r4, #31]
 
- #if LWIP_CALLBACK_API
 
-     pcb->recv = tcp_recv_null;
 
-  8030c52:	67e3      	str	r3, [r4, #124]	; 0x7c
 
- #endif /* LWIP_CALLBACK_API */  
 
-     
 
-     /* Init KEEPALIVE timer */
 
-     pcb->keep_idle  = TCP_KEEPIDLE_DEFAULT;
 
-  8030c54:	4b08      	ldr	r3, [pc, #32]	; (8030c78 <tcp_alloc+0x10c>)
 
- #if LWIP_TCP_KEEPALIVE
 
-     pcb->keep_intvl = TCP_KEEPINTVL_DEFAULT;
 
-     pcb->keep_cnt   = TCP_KEEPCNT_DEFAULT;
 
- #endif /* LWIP_TCP_KEEPALIVE */
 
-     pcb->keep_cnt_sent = 0;
 
-  8030c56:	f884 5092 	strb.w	r5, [r4, #146]	; 0x92
 
- #if LWIP_CALLBACK_API
 
-     pcb->recv = tcp_recv_null;
 
- #endif /* LWIP_CALLBACK_API */  
 
-     
 
-     /* Init KEEPALIVE timer */
 
-     pcb->keep_idle  = TCP_KEEPIDLE_DEFAULT;
 
-  8030c5a:	f8c4 308c 	str.w	r3, [r4, #140]	; 0x8c
 
- #endif /* LWIP_TCP_KEEPALIVE */
 
-     pcb->keep_cnt_sent = 0;
 
-   }
 
-   return pcb;
 
- }
 
-  8030c5e:	4620      	mov	r0, r4
 
-  8030c60:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 
-  8030c62:	bf00      	nop
 
-  8030c64:	2000f6d0 	.word	0x2000f6d0
 
-  8030c68:	2000f6c0 	.word	0x2000f6c0
 
-  8030c6c:	2000f6bc 	.word	0x2000f6bc
 
-  8030c70:	2000c3dd 	.word	0x2000c3dd
 
-  8030c74:	08030a35 	.word	0x08030a35
 
-  8030c78:	006ddd00 	.word	0x006ddd00
 
- 08030c7c <tcp_new>:
 
-  * @return a new tcp_pcb that initially is in state CLOSED
 
-  */
 
- struct tcp_pcb *
 
- tcp_new(void)
 
- {
 
-   return tcp_alloc(TCP_PRIO_NORMAL);
 
-  8030c7c:	2040      	movs	r0, #64	; 0x40
 
-  8030c7e:	f7ff bf75 	b.w	8030b6c <tcp_alloc>
 
- 08030c82 <tcp_eff_send_mss>:
 
-  * by using ip_route to determin the netif used to send to the address and
 
-  * calculating the minimum of TCP_MSS and that netif's mtu (if set).
 
-  */
 
- u16_t
 
- tcp_eff_send_mss(u16_t sendmss, ip_addr_t *addr)
 
- {
 
-  8030c82:	b510      	push	{r4, lr}
 
-  8030c84:	4604      	mov	r4, r0
 
-   u16_t mss_s;
 
-   struct netif *outif;
 
-   outif = ip_route(addr);
 
-  8030c86:	4608      	mov	r0, r1
 
-  8030c88:	f002 f96c 	bl	8032f64 <ip_route>
 
-   if ((outif != NULL) && (outif->mtu != 0)) {
 
-  8030c8c:	b130      	cbz	r0, 8030c9c <tcp_eff_send_mss+0x1a>
 
-  8030c8e:	8c83      	ldrh	r3, [r0, #36]	; 0x24
 
-  8030c90:	b123      	cbz	r3, 8030c9c <tcp_eff_send_mss+0x1a>
 
-     mss_s = outif->mtu - IP_HLEN - TCP_HLEN;
 
-  8030c92:	3b28      	subs	r3, #40	; 0x28
 
-     /* RFC 1122, chap 4.2.2.6:
 
-      * Eff.snd.MSS = min(SendMSS+20, MMS_S) - TCPhdrsize - IPoptionsize
 
-      * We correct for TCP options in tcp_write(), and don't support IP options.
 
-      */
 
-     sendmss = LWIP_MIN(sendmss, mss_s);
 
-  8030c94:	b29b      	uxth	r3, r3
 
-  8030c96:	429c      	cmp	r4, r3
 
-  8030c98:	bf28      	it	cs
 
-  8030c9a:	461c      	movcs	r4, r3
 
-   }
 
-   return sendmss;
 
- }
 
-  8030c9c:	4620      	mov	r0, r4
 
-  8030c9e:	bd10      	pop	{r4, pc}
 
- 08030ca0 <tcp_connect>:
 
-  *         other err_t values if connect request couldn't be sent
 
-  */
 
- err_t
 
- tcp_connect(struct tcp_pcb *pcb, ip_addr_t *ipaddr, u16_t port,
 
-       tcp_connected_fn connected)
 
- {
 
-  8030ca0:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
-  8030ca2:	461f      	mov	r7, r3
 
-   err_t ret;
 
-   u32_t iss;
 
-   u16_t old_local_port;
 
-   LWIP_ERROR("tcp_connect: can only connect from state CLOSED", pcb->state == CLOSED, return ERR_ISCONN);
 
-  8030ca4:	7e03      	ldrb	r3, [r0, #24]
 
-  *         other err_t values if connect request couldn't be sent
 
-  */
 
- err_t
 
- tcp_connect(struct tcp_pcb *pcb, ip_addr_t *ipaddr, u16_t port,
 
-       tcp_connected_fn connected)
 
- {
 
-  8030ca6:	4604      	mov	r4, r0
 
-  8030ca8:	460d      	mov	r5, r1
 
-   err_t ret;
 
-   u32_t iss;
 
-   u16_t old_local_port;
 
-   LWIP_ERROR("tcp_connect: can only connect from state CLOSED", pcb->state == CLOSED, return ERR_ISCONN);
 
-  8030caa:	2b00      	cmp	r3, #0
 
-  8030cac:	d161      	bne.n	8030d72 <tcp_connect+0xd2>
 
-   LWIP_DEBUGF(TCP_DEBUG, ("tcp_connect to port %"U16_F"\n", port));
 
-   if (ipaddr != NULL) {
 
-  8030cae:	2900      	cmp	r1, #0
 
-  8030cb0:	d061      	beq.n	8030d76 <tcp_connect+0xd6>
 
-     pcb->remote_ip = *ipaddr;
 
-  8030cb2:	680b      	ldr	r3, [r1, #0]
 
-   } else {
 
-     return ERR_VAL;
 
-   }
 
-   pcb->remote_port = port;
 
-  8030cb4:	8382      	strh	r2, [r0, #28]
 
-   LWIP_ERROR("tcp_connect: can only connect from state CLOSED", pcb->state == CLOSED, return ERR_ISCONN);
 
-   LWIP_DEBUGF(TCP_DEBUG, ("tcp_connect to port %"U16_F"\n", port));
 
-   if (ipaddr != NULL) {
 
-     pcb->remote_ip = *ipaddr;
 
-  8030cb6:	6043      	str	r3, [r0, #4]
 
-     return ERR_VAL;
 
-   }
 
-   pcb->remote_port = port;
 
-   /* check if we have a route to the remote host */
 
-   if (ip_addr_isany(&(pcb->local_ip))) {
 
-  8030cb8:	6803      	ldr	r3, [r0, #0]
 
-  8030cba:	b933      	cbnz	r3, 8030cca <tcp_connect+0x2a>
 
-     /* no local IP address set, yet. */
 
-     struct netif *netif = ip_route(&(pcb->remote_ip));
 
-  8030cbc:	3004      	adds	r0, #4
 
-  8030cbe:	f002 f951 	bl	8032f64 <ip_route>
 
-     if (netif == NULL) {
 
-  8030cc2:	2800      	cmp	r0, #0
 
-  8030cc4:	d059      	beq.n	8030d7a <tcp_connect+0xda>
 
-       /* Don't even try to send a SYN packet if we have no route
 
-          since that will fail. */
 
-       return ERR_RTE;
 
-     }
 
-     /* Use the netif's IP address as local address. */
 
-     ip_addr_copy(pcb->local_ip, netif->ip_addr);
 
-  8030cc6:	6843      	ldr	r3, [r0, #4]
 
-  8030cc8:	6023      	str	r3, [r4, #0]
 
-   }
 
-   old_local_port = pcb->local_port;
 
-  8030cca:	8b66      	ldrh	r6, [r4, #26]
 
-   if (pcb->local_port == 0) {
 
-  8030ccc:	b32e      	cbz	r6, 8030d1a <tcp_connect+0x7a>
 
-         }
 
-       }
 
-     }
 
-   }
 
- #endif /* SO_REUSE */
 
-   iss = tcp_next_iss();
 
-  8030cce:	f7ff ff41 	bl	8030b54 <tcp_next_iss>
 
-   pcb->rcv_nxt = 0;
 
-   pcb->snd_nxt = iss;
 
-  8030cd2:	6520      	str	r0, [r4, #80]	; 0x50
 
-   pcb->lastack = iss - 1;
 
-  8030cd4:	3801      	subs	r0, #1
 
-   pcb->snd_lbb = iss - 1;
 
-   pcb->rcv_wnd = TCP_WND;
 
-  8030cd6:	f241 62d0 	movw	r2, #5840	; 0x16d0
 
-       }
 
-     }
 
-   }
 
- #endif /* SO_REUSE */
 
-   iss = tcp_next_iss();
 
-   pcb->rcv_nxt = 0;
 
-  8030cda:	2300      	movs	r3, #0
 
-   pcb->snd_nxt = iss;
 
-   pcb->lastack = iss - 1;
 
-  8030cdc:	64a0      	str	r0, [r4, #72]	; 0x48
 
-   pcb->snd_lbb = iss - 1;
 
-  8030cde:	65e0      	str	r0, [r4, #92]	; 0x5c
 
-   pcb->rcv_ann_wnd = TCP_WND;
 
-   pcb->rcv_ann_right_edge = pcb->rcv_nxt;
 
-   pcb->snd_wnd = TCP_WND;
 
-   /* As initial send MSS, we use TCP_MSS but limit it to 536.
 
-      The send MSS is updated when an MSS option is received. */
 
-   pcb->mss = (TCP_MSS > 536) ? 536 : TCP_MSS;
 
-  8030ce0:	f44f 7006 	mov.w	r0, #536	; 0x218
 
- #if TCP_CALCULATE_EFF_SEND_MSS
 
-   pcb->mss = tcp_eff_send_mss(pcb->mss, ipaddr);
 
-  8030ce4:	4629      	mov	r1, r5
 
-       }
 
-     }
 
-   }
 
- #endif /* SO_REUSE */
 
-   iss = tcp_next_iss();
 
-   pcb->rcv_nxt = 0;
 
-  8030ce6:	62a3      	str	r3, [r4, #40]	; 0x28
 
-   pcb->snd_nxt = iss;
 
-   pcb->lastack = iss - 1;
 
-   pcb->snd_lbb = iss - 1;
 
-   pcb->rcv_wnd = TCP_WND;
 
-  8030ce8:	85a2      	strh	r2, [r4, #44]	; 0x2c
 
-   pcb->rcv_ann_wnd = TCP_WND;
 
-  8030cea:	85e2      	strh	r2, [r4, #46]	; 0x2e
 
-   pcb->rcv_ann_right_edge = pcb->rcv_nxt;
 
-  8030cec:	6323      	str	r3, [r4, #48]	; 0x30
 
-   pcb->snd_wnd = TCP_WND;
 
-  8030cee:	f8a4 2060 	strh.w	r2, [r4, #96]	; 0x60
 
-   /* As initial send MSS, we use TCP_MSS but limit it to 536.
 
-      The send MSS is updated when an MSS option is received. */
 
-   pcb->mss = (TCP_MSS > 536) ? 536 : TCP_MSS;
 
-  8030cf2:	86e0      	strh	r0, [r4, #54]	; 0x36
 
- #if TCP_CALCULATE_EFF_SEND_MSS
 
-   pcb->mss = tcp_eff_send_mss(pcb->mss, ipaddr);
 
-  8030cf4:	f7ff ffc5 	bl	8030c82 <tcp_eff_send_mss>
 
- #endif /* TCP_CALCULATE_EFF_SEND_MSS */
 
-   pcb->cwnd = 1;
 
-  8030cf8:	2301      	movs	r3, #1
 
-  8030cfa:	f8a4 304c 	strh.w	r3, [r4, #76]	; 0x4c
 
-   pcb->ssthresh = pcb->mss * 10;
 
-  8030cfe:	230a      	movs	r3, #10
 
-   pcb->snd_wnd = TCP_WND;
 
-   /* As initial send MSS, we use TCP_MSS but limit it to 536.
 
-      The send MSS is updated when an MSS option is received. */
 
-   pcb->mss = (TCP_MSS > 536) ? 536 : TCP_MSS;
 
- #if TCP_CALCULATE_EFF_SEND_MSS
 
-   pcb->mss = tcp_eff_send_mss(pcb->mss, ipaddr);
 
-  8030d00:	86e0      	strh	r0, [r4, #54]	; 0x36
 
- #endif /* TCP_CALCULATE_EFF_SEND_MSS */
 
-   pcb->cwnd = 1;
 
-   pcb->ssthresh = pcb->mss * 10;
 
-  8030d02:	4358      	muls	r0, r3
 
-  8030d04:	f8a4 004e 	strh.w	r0, [r4, #78]	; 0x4e
 
- #if LWIP_CALLBACK_API
 
-   pcb->connected = connected;
 
-  8030d08:	f8c4 7080 	str.w	r7, [r4, #128]	; 0x80
 
- #else /* LWIP_CALLBACK_API */  
 
-   LWIP_UNUSED_ARG(connected);
 
- #endif /* LWIP_CALLBACK_API */
 
-   /* Send a SYN together with the MSS option. */
 
-   ret = tcp_enqueue_flags(pcb, TCP_SYN);
 
-  8030d0c:	4620      	mov	r0, r4
 
-  8030d0e:	2102      	movs	r1, #2
 
-  8030d10:	f001 f94a 	bl	8031fa8 <tcp_enqueue_flags>
 
-   if (ret == ERR_OK) {
 
-  8030d14:	4605      	mov	r5, r0
 
-  8030d16:	b130      	cbz	r0, 8030d26 <tcp_connect+0x86>
 
-  8030d18:	e032      	b.n	8030d80 <tcp_connect+0xe0>
 
-     ip_addr_copy(pcb->local_ip, netif->ip_addr);
 
-   }
 
-   old_local_port = pcb->local_port;
 
-   if (pcb->local_port == 0) {
 
-     pcb->local_port = tcp_new_port();
 
-  8030d1a:	f7ff fabd 	bl	8030298 <tcp_new_port>
 
-  8030d1e:	8360      	strh	r0, [r4, #26]
 
-     if (pcb->local_port == 0) {
 
-  8030d20:	2800      	cmp	r0, #0
 
-  8030d22:	d1d4      	bne.n	8030cce <tcp_connect+0x2e>
 
-  8030d24:	e02b      	b.n	8030d7e <tcp_connect+0xde>
 
-   /* Send a SYN together with the MSS option. */
 
-   ret = tcp_enqueue_flags(pcb, TCP_SYN);
 
-   if (ret == ERR_OK) {
 
-     /* SYN segment was enqueued, changed the pcbs state now */
 
-     pcb->state = SYN_SENT;
 
-  8030d26:	2302      	movs	r3, #2
 
-  8030d28:	7623      	strb	r3, [r4, #24]
 
-     if (old_local_port != 0) {
 
-  8030d2a:	b19e      	cbz	r6, 8030d54 <tcp_connect+0xb4>
 
-       TCP_RMV(&tcp_bound_pcbs, pcb);
 
-  8030d2c:	4a15      	ldr	r2, [pc, #84]	; (8030d84 <tcp_connect+0xe4>)
 
-  8030d2e:	6813      	ldr	r3, [r2, #0]
 
-  8030d30:	42a3      	cmp	r3, r4
 
-  8030d32:	d101      	bne.n	8030d38 <tcp_connect+0x98>
 
-  8030d34:	68e3      	ldr	r3, [r4, #12]
 
-  8030d36:	e00c      	b.n	8030d52 <tcp_connect+0xb2>
 
-  8030d38:	4a13      	ldr	r2, [pc, #76]	; (8030d88 <tcp_connect+0xe8>)
 
-  8030d3a:	6013      	str	r3, [r2, #0]
 
-  8030d3c:	e007      	b.n	8030d4e <tcp_connect+0xae>
 
-  8030d3e:	68d9      	ldr	r1, [r3, #12]
 
-  8030d40:	42a1      	cmp	r1, r4
 
-  8030d42:	d103      	bne.n	8030d4c <tcp_connect+0xac>
 
-  8030d44:	6013      	str	r3, [r2, #0]
 
-  8030d46:	68e2      	ldr	r2, [r4, #12]
 
-  8030d48:	60da      	str	r2, [r3, #12]
 
-  8030d4a:	e003      	b.n	8030d54 <tcp_connect+0xb4>
 
-  8030d4c:	460b      	mov	r3, r1
 
-  8030d4e:	2b00      	cmp	r3, #0
 
-  8030d50:	d1f5      	bne.n	8030d3e <tcp_connect+0x9e>
 
-  8030d52:	6013      	str	r3, [r2, #0]
 
-     }
 
-     TCP_REG_ACTIVE(pcb);
 
-  8030d54:	4b0d      	ldr	r3, [pc, #52]	; (8030d8c <tcp_connect+0xec>)
 
-  8030d56:	681a      	ldr	r2, [r3, #0]
 
-  8030d58:	601c      	str	r4, [r3, #0]
 
-  8030d5a:	60e2      	str	r2, [r4, #12]
 
-  8030d5c:	f001 fc72 	bl	8032644 <tcp_timer_needed>
 
-  8030d60:	4b0b      	ldr	r3, [pc, #44]	; (8030d90 <tcp_connect+0xf0>)
 
-  8030d62:	2201      	movs	r2, #1
 
-  8030d64:	701a      	strb	r2, [r3, #0]
 
-     snmp_inc_tcpactiveopens();
 
-  8030d66:	f003 ff4f 	bl	8034c08 <snmp_inc_tcpactiveopens>
 
-     tcp_output(pcb);
 
-  8030d6a:	4620      	mov	r0, r4
 
-  8030d6c:	f001 f9ac 	bl	80320c8 <tcp_output>
 
-  8030d70:	e006      	b.n	8030d80 <tcp_connect+0xe0>
 
- {
 
-   err_t ret;
 
-   u32_t iss;
 
-   u16_t old_local_port;
 
-   LWIP_ERROR("tcp_connect: can only connect from state CLOSED", pcb->state == CLOSED, return ERR_ISCONN);
 
-  8030d72:	25f7      	movs	r5, #247	; 0xf7
 
-  8030d74:	e004      	b.n	8030d80 <tcp_connect+0xe0>
 
-   LWIP_DEBUGF(TCP_DEBUG, ("tcp_connect to port %"U16_F"\n", port));
 
-   if (ipaddr != NULL) {
 
-     pcb->remote_ip = *ipaddr;
 
-   } else {
 
-     return ERR_VAL;
 
-  8030d76:	25fa      	movs	r5, #250	; 0xfa
 
-  8030d78:	e002      	b.n	8030d80 <tcp_connect+0xe0>
 
-     /* no local IP address set, yet. */
 
-     struct netif *netif = ip_route(&(pcb->remote_ip));
 
-     if (netif == NULL) {
 
-       /* Don't even try to send a SYN packet if we have no route
 
-          since that will fail. */
 
-       return ERR_RTE;
 
-  8030d7a:	25fc      	movs	r5, #252	; 0xfc
 
-  8030d7c:	e000      	b.n	8030d80 <tcp_connect+0xe0>
 
-   old_local_port = pcb->local_port;
 
-   if (pcb->local_port == 0) {
 
-     pcb->local_port = tcp_new_port();
 
-     if (pcb->local_port == 0) {
 
-       return ERR_BUF;
 
-  8030d7e:	25fe      	movs	r5, #254	; 0xfe
 
-     snmp_inc_tcpactiveopens();
 
-     tcp_output(pcb);
 
-   }
 
-   return ret;
 
- }
 
-  8030d80:	b268      	sxtb	r0, r5
 
-  8030d82:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 
-  8030d84:	2000f6cc 	.word	0x2000f6cc
 
-  8030d88:	2000f6c8 	.word	0x2000f6c8
 
-  8030d8c:	2000f6bc 	.word	0x2000f6bc
 
-  8030d90:	2000f6b8 	.word	0x2000f6b8
 
- 08030d94 <tcp_parseopt>:
 
-  *
 
-  * @param pcb the tcp_pcb for which a segment arrived
 
-  */
 
- static void
 
- tcp_parseopt(struct tcp_pcb *pcb)
 
- {
 
-  8030d94:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
-   u8_t *opts, opt;
 
- #if LWIP_TCP_TIMESTAMPS
 
-   u32_t tsval;
 
- #endif
 
-   opts = (u8_t *)tcphdr + TCP_HLEN;
 
-  8030d96:	4d1e      	ldr	r5, [pc, #120]	; (8030e10 <tcp_parseopt+0x7c>)
 
-  8030d98:	682c      	ldr	r4, [r5, #0]
 
-  *
 
-  * @param pcb the tcp_pcb for which a segment arrived
 
-  */
 
- static void
 
- tcp_parseopt(struct tcp_pcb *pcb)
 
- {
 
-  8030d9a:	4606      	mov	r6, r0
 
- #endif
 
-   opts = (u8_t *)tcphdr + TCP_HLEN;
 
-   /* Parse the TCP MSS option, if present. */
 
-   if(TCPH_HDRLEN(tcphdr) > 0x5) {
 
-  8030d9c:	89a0      	ldrh	r0, [r4, #12]
 
-  8030d9e:	f7fd fefc 	bl	802eb9a <lwip_ntohs>
 
-  8030da2:	f3c0 300f 	ubfx	r0, r0, #12, #16
 
-  8030da6:	2805      	cmp	r0, #5
 
-  8030da8:	d931      	bls.n	8030e0e <tcp_parseopt+0x7a>
 
-     max_c = (TCPH_HDRLEN(tcphdr) - 5) << 2;
 
-  8030daa:	682b      	ldr	r3, [r5, #0]
 
-  8030dac:	8998      	ldrh	r0, [r3, #12]
 
-  8030dae:	f7fd fef4 	bl	802eb9a <lwip_ntohs>
 
-  8030db2:	0b00      	lsrs	r0, r0, #12
 
-  8030db4:	1f41      	subs	r1, r0, #5
 
-  8030db6:	0089      	lsls	r1, r1, #2
 
-   u8_t *opts, opt;
 
- #if LWIP_TCP_TIMESTAMPS
 
-   u32_t tsval;
 
- #endif
 
-   opts = (u8_t *)tcphdr + TCP_HLEN;
 
-  8030db8:	3414      	adds	r4, #20
 
-   /* Parse the TCP MSS option, if present. */
 
-   if(TCPH_HDRLEN(tcphdr) > 0x5) {
 
-     max_c = (TCPH_HDRLEN(tcphdr) - 5) << 2;
 
-  8030dba:	b289      	uxth	r1, r1
 
-     for (c = 0; c < max_c; ) {
 
-  8030dbc:	2300      	movs	r3, #0
 
-           return;
 
-         }
 
-         /* An MSS option with the right option length. */
 
-         mss = (opts[c + 2] << 8) | opts[c + 3];
 
-         /* Limit the mss to the configured TCP_MSS and prevent division by zero */
 
-         pcb->mss = ((mss > TCP_MSS) || (mss == 0)) ? TCP_MSS : mss;
 
-  8030dbe:	f240 50b3 	movw	r0, #1459	; 0x5b3
 
-  8030dc2:	f240 55b4 	movw	r5, #1460	; 0x5b4
 
-   opts = (u8_t *)tcphdr + TCP_HLEN;
 
-   /* Parse the TCP MSS option, if present. */
 
-   if(TCPH_HDRLEN(tcphdr) > 0x5) {
 
-     max_c = (TCPH_HDRLEN(tcphdr) - 5) << 2;
 
-     for (c = 0; c < max_c; ) {
 
-  8030dc6:	e020      	b.n	8030e0a <tcp_parseopt+0x76>
 
-       opt = opts[c];
 
-       switch (opt) {
 
-  8030dc8:	5ce2      	ldrb	r2, [r4, r3]
 
-  8030dca:	2a01      	cmp	r2, #1
 
-  8030dcc:	d005      	beq.n	8030dda <tcp_parseopt+0x46>
 
-  8030dce:	d31e      	bcc.n	8030e0e <tcp_parseopt+0x7a>
 
-  8030dd0:	2a02      	cmp	r2, #2
 
-  8030dd2:	eb04 0203 	add.w	r2, r4, r3
 
-  8030dd6:	d114      	bne.n	8030e02 <tcp_parseopt+0x6e>
 
-  8030dd8:	e001      	b.n	8030dde <tcp_parseopt+0x4a>
 
-         /* End of options. */
 
-         LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_parseopt: EOL\n"));
 
-         return;
 
-       case 0x01:
 
-         /* NOP option. */
 
-         ++c;
 
-  8030dda:	3301      	adds	r3, #1
 
-  8030ddc:	e014      	b.n	8030e08 <tcp_parseopt+0x74>
 
-         LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_parseopt: NOP\n"));
 
-         break;
 
-       case 0x02:
 
-         LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_parseopt: MSS\n"));
 
-         if (opts[c + 1] != 0x04 || c + 0x04 > max_c) {
 
-  8030dde:	7857      	ldrb	r7, [r2, #1]
 
-  8030de0:	2f04      	cmp	r7, #4
 
-  8030de2:	d114      	bne.n	8030e0e <tcp_parseopt+0x7a>
 
-  8030de4:	1cdf      	adds	r7, r3, #3
 
-  8030de6:	428f      	cmp	r7, r1
 
-  8030de8:	da11      	bge.n	8030e0e <tcp_parseopt+0x7a>
 
-           /* Bad length */
 
-           LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_parseopt: bad length\n"));
 
-           return;
 
-         }
 
-         /* An MSS option with the right option length. */
 
-         mss = (opts[c + 2] << 8) | opts[c + 3];
 
-  8030dea:	7897      	ldrb	r7, [r2, #2]
 
-  8030dec:	78d2      	ldrb	r2, [r2, #3]
 
-  8030dee:	ea42 2207 	orr.w	r2, r2, r7, lsl #8
 
-         /* Limit the mss to the configured TCP_MSS and prevent division by zero */
 
-         pcb->mss = ((mss > TCP_MSS) || (mss == 0)) ? TCP_MSS : mss;
 
-  8030df2:	1e57      	subs	r7, r2, #1
 
-  8030df4:	b2bf      	uxth	r7, r7
 
-  8030df6:	4287      	cmp	r7, r0
 
-  8030df8:	bf88      	it	hi
 
-  8030dfa:	462a      	movhi	r2, r5
 
-  8030dfc:	86f2      	strh	r2, [r6, #54]	; 0x36
 
-         /* Advance to next option */
 
-         c += 0x04;
 
-  8030dfe:	3304      	adds	r3, #4
 
-  8030e00:	e002      	b.n	8030e08 <tcp_parseopt+0x74>
 
-         c += 0x0A;
 
-         break;
 
- #endif
 
-       default:
 
-         LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_parseopt: other\n"));
 
-         if (opts[c + 1] == 0) {
 
-  8030e02:	7852      	ldrb	r2, [r2, #1]
 
-  8030e04:	b11a      	cbz	r2, 8030e0e <tcp_parseopt+0x7a>
 
-              and we don't process them further. */
 
-           return;
 
-         }
 
-         /* All other options have a length field, so that we easily
 
-            can skip past them. */
 
-         c += opts[c + 1];
 
-  8030e06:	18d3      	adds	r3, r2, r3
 
-  8030e08:	b29b      	uxth	r3, r3
 
-   opts = (u8_t *)tcphdr + TCP_HLEN;
 
-   /* Parse the TCP MSS option, if present. */
 
-   if(TCPH_HDRLEN(tcphdr) > 0x5) {
 
-     max_c = (TCPH_HDRLEN(tcphdr) - 5) << 2;
 
-     for (c = 0; c < max_c; ) {
 
-  8030e0a:	428b      	cmp	r3, r1
 
-  8030e0c:	d3dc      	bcc.n	8030dc8 <tcp_parseopt+0x34>
 
-  8030e0e:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 
-  8030e10:	2000c3e0 	.word	0x2000c3e0
 
- 08030e14 <tcp_receive>:
 
-  *
 
-  * Called from tcp_process().
 
-  */
 
- static void
 
- tcp_receive(struct tcp_pcb *pcb)
 
- {
 
-  8030e14:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
 
-   u16_t ooseq_qlen;
 
- #endif /* TCP_OOSEQ_MAX_BYTES || TCP_OOSEQ_MAX_PBUFS */
 
-   LWIP_ASSERT("tcp_receive: wrong state", pcb->state >= ESTABLISHED);
 
-   if (flags & TCP_ACK) {
 
-  8030e18:	4ba0      	ldr	r3, [pc, #640]	; (803109c <tcp_receive+0x288>)
 
-  8030e1a:	781b      	ldrb	r3, [r3, #0]
 
-  8030e1c:	f003 0310 	and.w	r3, r3, #16
 
-  8030e20:	b2db      	uxtb	r3, r3
 
-  *
 
-  * Called from tcp_process().
 
-  */
 
- static void
 
- tcp_receive(struct tcp_pcb *pcb)
 
- {
 
-  8030e22:	4604      	mov	r4, r0
 
-   u16_t ooseq_qlen;
 
- #endif /* TCP_OOSEQ_MAX_BYTES || TCP_OOSEQ_MAX_PBUFS */
 
-   LWIP_ASSERT("tcp_receive: wrong state", pcb->state >= ESTABLISHED);
 
-   if (flags & TCP_ACK) {
 
-  8030e24:	2b00      	cmp	r3, #0
 
-  8030e26:	f000 816b 	beq.w	8031100 <tcp_receive+0x2ec>
 
-     right_wnd_edge = pcb->snd_wnd + pcb->snd_wl2;
 
-     /* Update window. */
 
-     if (TCP_SEQ_LT(pcb->snd_wl1, seqno) ||
 
-  8030e2a:	4a9d      	ldr	r2, [pc, #628]	; (80310a0 <tcp_receive+0x28c>)
 
-  8030e2c:	6d43      	ldr	r3, [r0, #84]	; 0x54
 
-  8030e2e:	6812      	ldr	r2, [r2, #0]
 
- #endif /* TCP_OOSEQ_MAX_BYTES || TCP_OOSEQ_MAX_PBUFS */
 
-   LWIP_ASSERT("tcp_receive: wrong state", pcb->state >= ESTABLISHED);
 
-   if (flags & TCP_ACK) {
 
-     right_wnd_edge = pcb->snd_wnd + pcb->snd_wl2;
 
-  8030e30:	f8b0 5060 	ldrh.w	r5, [r0, #96]	; 0x60
 
-  8030e34:	6d81      	ldr	r1, [r0, #88]	; 0x58
 
-     /* Update window. */
 
-     if (TCP_SEQ_LT(pcb->snd_wl1, seqno) ||
 
-  8030e36:	1a98      	subs	r0, r3, r2
 
-  8030e38:	2800      	cmp	r0, #0
 
-  8030e3a:	db0e      	blt.n	8030e5a <tcp_receive+0x46>
 
-  8030e3c:	4293      	cmp	r3, r2
 
-  8030e3e:	4b99      	ldr	r3, [pc, #612]	; (80310a4 <tcp_receive+0x290>)
 
-  8030e40:	d103      	bne.n	8030e4a <tcp_receive+0x36>
 
-        (pcb->snd_wl1 == seqno && TCP_SEQ_LT(pcb->snd_wl2, ackno)) ||
 
-  8030e42:	6818      	ldr	r0, [r3, #0]
 
-  8030e44:	1a08      	subs	r0, r1, r0
 
-  8030e46:	2800      	cmp	r0, #0
 
-  8030e48:	db07      	blt.n	8030e5a <tcp_receive+0x46>
 
-  8030e4a:	681b      	ldr	r3, [r3, #0]
 
-  8030e4c:	4299      	cmp	r1, r3
 
-  8030e4e:	d11f      	bne.n	8030e90 <tcp_receive+0x7c>
 
-        (pcb->snd_wl2 == ackno && tcphdr->wnd > pcb->snd_wnd)) {
 
-  8030e50:	4b95      	ldr	r3, [pc, #596]	; (80310a8 <tcp_receive+0x294>)
 
-  8030e52:	681b      	ldr	r3, [r3, #0]
 
-  8030e54:	89db      	ldrh	r3, [r3, #14]
 
-  8030e56:	42ab      	cmp	r3, r5
 
-  8030e58:	d91a      	bls.n	8030e90 <tcp_receive+0x7c>
 
-       pcb->snd_wnd = tcphdr->wnd;
 
-  8030e5a:	4b93      	ldr	r3, [pc, #588]	; (80310a8 <tcp_receive+0x294>)
 
-       /* keep track of the biggest window announced by the remote host to calculate
 
-          the maximum segment size */
 
-       if (pcb->snd_wnd_max < tcphdr->wnd) {
 
-  8030e5c:	f8b4 6062 	ldrh.w	r6, [r4, #98]	; 0x62
 
-     /* Update window. */
 
-     if (TCP_SEQ_LT(pcb->snd_wl1, seqno) ||
 
-        (pcb->snd_wl1 == seqno && TCP_SEQ_LT(pcb->snd_wl2, ackno)) ||
 
-        (pcb->snd_wl2 == ackno && tcphdr->wnd > pcb->snd_wnd)) {
 
-       pcb->snd_wnd = tcphdr->wnd;
 
-  8030e60:	681b      	ldr	r3, [r3, #0]
 
-  8030e62:	89d8      	ldrh	r0, [r3, #14]
 
-       /* keep track of the biggest window announced by the remote host to calculate
 
-          the maximum segment size */
 
-       if (pcb->snd_wnd_max < tcphdr->wnd) {
 
-         pcb->snd_wnd_max = tcphdr->wnd;
 
-       }
 
-       pcb->snd_wl1 = seqno;
 
-  8030e64:	6562      	str	r2, [r4, #84]	; 0x54
 
-       pcb->snd_wl2 = ackno;
 
-  8030e66:	4a8f      	ldr	r2, [pc, #572]	; (80310a4 <tcp_receive+0x290>)
 
-     /* Update window. */
 
-     if (TCP_SEQ_LT(pcb->snd_wl1, seqno) ||
 
-        (pcb->snd_wl1 == seqno && TCP_SEQ_LT(pcb->snd_wl2, ackno)) ||
 
-        (pcb->snd_wl2 == ackno && tcphdr->wnd > pcb->snd_wnd)) {
 
-       pcb->snd_wnd = tcphdr->wnd;
 
-  8030e68:	f8a4 0060 	strh.w	r0, [r4, #96]	; 0x60
 
-          the maximum segment size */
 
-       if (pcb->snd_wnd_max < tcphdr->wnd) {
 
-         pcb->snd_wnd_max = tcphdr->wnd;
 
-       }
 
-       pcb->snd_wl1 = seqno;
 
-       pcb->snd_wl2 = ackno;
 
-  8030e6c:	6812      	ldr	r2, [r2, #0]
 
-        (pcb->snd_wl1 == seqno && TCP_SEQ_LT(pcb->snd_wl2, ackno)) ||
 
-        (pcb->snd_wl2 == ackno && tcphdr->wnd > pcb->snd_wnd)) {
 
-       pcb->snd_wnd = tcphdr->wnd;
 
-       /* keep track of the biggest window announced by the remote host to calculate
 
-          the maximum segment size */
 
-       if (pcb->snd_wnd_max < tcphdr->wnd) {
 
-  8030e6e:	4286      	cmp	r6, r0
 
-         pcb->snd_wnd_max = tcphdr->wnd;
 
-       }
 
-       pcb->snd_wl1 = seqno;
 
-       pcb->snd_wl2 = ackno;
 
-  8030e70:	65a2      	str	r2, [r4, #88]	; 0x58
 
-        (pcb->snd_wl2 == ackno && tcphdr->wnd > pcb->snd_wnd)) {
 
-       pcb->snd_wnd = tcphdr->wnd;
 
-       /* keep track of the biggest window announced by the remote host to calculate
 
-          the maximum segment size */
 
-       if (pcb->snd_wnd_max < tcphdr->wnd) {
 
-         pcb->snd_wnd_max = tcphdr->wnd;
 
-  8030e72:	bf38      	it	cc
 
-  8030e74:	f8a4 0062 	strhcc.w	r0, [r4, #98]	; 0x62
 
-  8030e78:	f894 2091 	ldrb.w	r2, [r4, #145]	; 0x91
 
-       }
 
-       pcb->snd_wl1 = seqno;
 
-       pcb->snd_wl2 = ackno;
 
-       if (pcb->snd_wnd == 0) {
 
-  8030e7c:	b920      	cbnz	r0, 8030e88 <tcp_receive+0x74>
 
-         if (pcb->persist_backoff == 0) {
 
-  8030e7e:	b93a      	cbnz	r2, 8030e90 <tcp_receive+0x7c>
 
-           /* start persist timer */
 
-           pcb->persist_cnt = 0;
 
-  8030e80:	f884 0090 	strb.w	r0, [r4, #144]	; 0x90
 
-           pcb->persist_backoff = 1;
 
-  8030e84:	2301      	movs	r3, #1
 
-  8030e86:	e001      	b.n	8030e8c <tcp_receive+0x78>
 
-         }
 
-       } else if (pcb->persist_backoff > 0) {
 
-  8030e88:	b112      	cbz	r2, 8030e90 <tcp_receive+0x7c>
 
-         /* stop persist timer */
 
-           pcb->persist_backoff = 0;
 
-  8030e8a:	2300      	movs	r3, #0
 
-  8030e8c:	f884 3091 	strb.w	r3, [r4, #145]	; 0x91
 
-      * If it only passes 1, should reset dupack counter
 
-      *
 
-      */
 
-     /* Clause 1 */
 
-     if (TCP_SEQ_LEQ(ackno, pcb->lastack)) {
 
-  8030e90:	4b84      	ldr	r3, [pc, #528]	; (80310a4 <tcp_receive+0x290>)
 
-  8030e92:	6ca2      	ldr	r2, [r4, #72]	; 0x48
 
-  8030e94:	681b      	ldr	r3, [r3, #0]
 
-  8030e96:	1a98      	subs	r0, r3, r2
 
-  8030e98:	2800      	cmp	r0, #0
 
-  8030e9a:	dc34      	bgt.n	8030f06 <tcp_receive+0xf2>
 
-       pcb->acked = 0;
 
-  8030e9c:	2000      	movs	r0, #0
 
-  8030e9e:	f8a4 0064 	strh.w	r0, [r4, #100]	; 0x64
 
-       /* Clause 2 */
 
-       if (tcplen == 0) {
 
-  8030ea2:	4882      	ldr	r0, [pc, #520]	; (80310ac <tcp_receive+0x298>)
 
-  8030ea4:	8800      	ldrh	r0, [r0, #0]
 
-  8030ea6:	2800      	cmp	r0, #0
 
-  8030ea8:	f040 81f4 	bne.w	8031294 <tcp_receive+0x480>
 
-         /* Clause 3 */
 
-         if (pcb->snd_wl2 + pcb->snd_wnd == right_wnd_edge){
 
-  8030eac:	f8b4 6060 	ldrh.w	r6, [r4, #96]	; 0x60
 
-  8030eb0:	6da0      	ldr	r0, [r4, #88]	; 0x58
 
- #endif /* TCP_OOSEQ_MAX_BYTES || TCP_OOSEQ_MAX_PBUFS */
 
-   LWIP_ASSERT("tcp_receive: wrong state", pcb->state >= ESTABLISHED);
 
-   if (flags & TCP_ACK) {
 
-     right_wnd_edge = pcb->snd_wnd + pcb->snd_wl2;
 
-  8030eb2:	1869      	adds	r1, r5, r1
 
-     if (TCP_SEQ_LEQ(ackno, pcb->lastack)) {
 
-       pcb->acked = 0;
 
-       /* Clause 2 */
 
-       if (tcplen == 0) {
 
-         /* Clause 3 */
 
-         if (pcb->snd_wl2 + pcb->snd_wnd == right_wnd_edge){
 
-  8030eb4:	1830      	adds	r0, r6, r0
 
-  8030eb6:	4288      	cmp	r0, r1
 
-  8030eb8:	f040 81ec 	bne.w	8031294 <tcp_receive+0x480>
 
-           /* Clause 4 */
 
-           if (pcb->rtime >= 0) {
 
-  8030ebc:	f9b4 1034 	ldrsh.w	r1, [r4, #52]	; 0x34
 
-  8030ec0:	2900      	cmp	r1, #0
 
-  8030ec2:	f2c0 81e7 	blt.w	8031294 <tcp_receive+0x480>
 
-             /* Clause 5 */
 
-             if (pcb->lastack == ackno) {
 
-  8030ec6:	429a      	cmp	r2, r3
 
-  8030ec8:	f040 81e4 	bne.w	8031294 <tcp_receive+0x480>
 
-               found_dupack = 1;
 
-               if ((u8_t)(pcb->dupacks + 1) > pcb->dupacks) {
 
-  8030ecc:	f894 2047 	ldrb.w	r2, [r4, #71]	; 0x47
 
-  8030ed0:	1c53      	adds	r3, r2, #1
 
-  8030ed2:	b2db      	uxtb	r3, r3
 
-  8030ed4:	4293      	cmp	r3, r2
 
-                 ++pcb->dupacks;
 
-  8030ed6:	bf88      	it	hi
 
-  8030ed8:	f884 3047 	strbhi.w	r3, [r4, #71]	; 0x47
 
-               }
 
-               if (pcb->dupacks > 3) {
 
-  8030edc:	f894 3047 	ldrb.w	r3, [r4, #71]	; 0x47
 
-  8030ee0:	2b03      	cmp	r3, #3
 
-  8030ee2:	d90a      	bls.n	8030efa <tcp_receive+0xe6>
 
-                 /* Inflate the congestion window, but not if it means that
 
-                    the value overflows. */
 
-                 if ((u16_t)(pcb->cwnd + pcb->mss) > pcb->cwnd) {
 
-  8030ee4:	f8b4 204c 	ldrh.w	r2, [r4, #76]	; 0x4c
 
-  8030ee8:	8ee3      	ldrh	r3, [r4, #54]	; 0x36
 
-  8030eea:	18d3      	adds	r3, r2, r3
 
-  8030eec:	b29b      	uxth	r3, r3
 
-  8030eee:	4293      	cmp	r3, r2
 
-  8030ef0:	f240 80b2 	bls.w	8031058 <tcp_receive+0x244>
 
-                   pcb->cwnd += pcb->mss;
 
-  8030ef4:	f8a4 304c 	strh.w	r3, [r4, #76]	; 0x4c
 
-  8030ef8:	e0ae      	b.n	8031058 <tcp_receive+0x244>
 
-                 }
 
-               } else if (pcb->dupacks == 3) {
 
-  8030efa:	f040 80ad 	bne.w	8031058 <tcp_receive+0x244>
 
-                 /* Do fast retransmit */
 
-                 tcp_rexmit_fast(pcb);
 
-  8030efe:	4620      	mov	r0, r4
 
-  8030f00:	f001 fa92 	bl	8032428 <tcp_rexmit_fast>
 
-  8030f04:	e0a8      	b.n	8031058 <tcp_receive+0x244>
 
-       /* If Clause (1) or more is true, but not a duplicate ack, reset
 
-        * count of consecutive duplicate acks */
 
-       if (!found_dupack) {
 
-         pcb->dupacks = 0;
 
-       }
 
-     } else if (TCP_SEQ_BETWEEN(ackno, pcb->lastack+1, pcb->snd_nxt)){
 
-  8030f06:	43d1      	mvns	r1, r2
 
-  8030f08:	42d9      	cmn	r1, r3
 
-  8030f0a:	d47e      	bmi.n	803100a <tcp_receive+0x1f6>
 
-  8030f0c:	6d21      	ldr	r1, [r4, #80]	; 0x50
 
-  8030f0e:	1a59      	subs	r1, r3, r1
 
-  8030f10:	2900      	cmp	r1, #0
 
-  8030f12:	dc7a      	bgt.n	803100a <tcp_receive+0x1f6>
 
-       /* We come here when the ACK acknowledges new data. */
 
-       /* Reset the "IN Fast Retransmit" flag, since we are no longer
 
-          in fast retransmit. Also reset the congestion window to the
 
-          slow start threshold. */
 
-       if (pcb->flags & TF_INFR) {
 
-  8030f14:	7fa1      	ldrb	r1, [r4, #30]
 
-  8030f16:	f001 0004 	and.w	r0, r1, #4
 
-  8030f1a:	b2c0      	uxtb	r0, r0
 
-  8030f1c:	b130      	cbz	r0, 8030f2c <tcp_receive+0x118>
 
-         pcb->flags &= ~TF_INFR;
 
-  8030f1e:	f021 0104 	bic.w	r1, r1, #4
 
-  8030f22:	77a1      	strb	r1, [r4, #30]
 
-         pcb->cwnd = pcb->ssthresh;
 
-  8030f24:	f8b4 104e 	ldrh.w	r1, [r4, #78]	; 0x4e
 
-  8030f28:	f8a4 104c 	strh.w	r1, [r4, #76]	; 0x4c
 
-       /* Reset the number of retransmissions. */
 
-       pcb->nrtx = 0;
 
-       /* Reset the retransmission time-out. */
 
-       pcb->rto = (pcb->sa >> 3) + pcb->sv;
 
-  8030f2c:	f9b4 5040 	ldrsh.w	r5, [r4, #64]	; 0x40
 
-  8030f30:	f8b4 0042 	ldrh.w	r0, [r4, #66]	; 0x42
 
-       pcb->snd_buf += pcb->acked;
 
-       /* Reset the fast retransmit variables. */
 
-       pcb->dupacks = 0;
 
-       pcb->lastack = ackno;
 
-  8030f34:	64a3      	str	r3, [r4, #72]	; 0x48
 
-       /* Reset the number of retransmissions. */
 
-       pcb->nrtx = 0;
 
-       /* Reset the retransmission time-out. */
 
-       pcb->rto = (pcb->sa >> 3) + pcb->sv;
 
-  8030f36:	eb00 00e5 	add.w	r0, r0, r5, asr #3
 
-       /* Update the send buffer space. Diff between the two can never exceed 64K? */
 
-       pcb->acked = (u16_t)(ackno - pcb->lastack);
 
-  8030f3a:	1a9a      	subs	r2, r3, r2
 
-       /* Reset the number of retransmissions. */
 
-       pcb->nrtx = 0;
 
-       /* Reset the retransmission time-out. */
 
-       pcb->rto = (pcb->sa >> 3) + pcb->sv;
 
-  8030f3c:	f8a4 0044 	strh.w	r0, [r4, #68]	; 0x44
 
-       pcb->dupacks = 0;
 
-       pcb->lastack = ackno;
 
-       /* Update the congestion control variables (cwnd and
 
-          ssthresh). */
 
-       if (pcb->state >= ESTABLISHED) {
 
-  8030f40:	7e23      	ldrb	r3, [r4, #24]
 
-       pcb->rto = (pcb->sa >> 3) + pcb->sv;
 
-       /* Update the send buffer space. Diff between the two can never exceed 64K? */
 
-       pcb->acked = (u16_t)(ackno - pcb->lastack);
 
-       pcb->snd_buf += pcb->acked;
 
-  8030f42:	f8b4 0066 	ldrh.w	r0, [r4, #102]	; 0x66
 
-       /* Reset the retransmission time-out. */
 
-       pcb->rto = (pcb->sa >> 3) + pcb->sv;
 
-       /* Update the send buffer space. Diff between the two can never exceed 64K? */
 
-       pcb->acked = (u16_t)(ackno - pcb->lastack);
 
-  8030f46:	f8a4 2064 	strh.w	r2, [r4, #100]	; 0x64
 
-         pcb->flags &= ~TF_INFR;
 
-         pcb->cwnd = pcb->ssthresh;
 
-       }
 
-       /* Reset the number of retransmissions. */
 
-       pcb->nrtx = 0;
 
-  8030f4a:	2100      	movs	r1, #0
 
-       pcb->rto = (pcb->sa >> 3) + pcb->sv;
 
-       /* Update the send buffer space. Diff between the two can never exceed 64K? */
 
-       pcb->acked = (u16_t)(ackno - pcb->lastack);
 
-       pcb->snd_buf += pcb->acked;
 
-  8030f4c:	1812      	adds	r2, r2, r0
 
-       pcb->dupacks = 0;
 
-       pcb->lastack = ackno;
 
-       /* Update the congestion control variables (cwnd and
 
-          ssthresh). */
 
-       if (pcb->state >= ESTABLISHED) {
 
-  8030f4e:	2b03      	cmp	r3, #3
 
-         pcb->flags &= ~TF_INFR;
 
-         pcb->cwnd = pcb->ssthresh;
 
-       }
 
-       /* Reset the number of retransmissions. */
 
-       pcb->nrtx = 0;
 
-  8030f50:	f884 1046 	strb.w	r1, [r4, #70]	; 0x46
 
-       pcb->rto = (pcb->sa >> 3) + pcb->sv;
 
-       /* Update the send buffer space. Diff between the two can never exceed 64K? */
 
-       pcb->acked = (u16_t)(ackno - pcb->lastack);
 
-       pcb->snd_buf += pcb->acked;
 
-  8030f54:	f8a4 2066 	strh.w	r2, [r4, #102]	; 0x66
 
-       /* Reset the fast retransmit variables. */
 
-       pcb->dupacks = 0;
 
-  8030f58:	f884 1047 	strb.w	r1, [r4, #71]	; 0x47
 
-       pcb->lastack = ackno;
 
-       /* Update the congestion control variables (cwnd and
 
-          ssthresh). */
 
-       if (pcb->state >= ESTABLISHED) {
 
-  8030f5c:	d931      	bls.n	8030fc2 <tcp_receive+0x1ae>
 
-         if (pcb->cwnd < pcb->ssthresh) {
 
-  8030f5e:	f8b4 204e 	ldrh.w	r2, [r4, #78]	; 0x4e
 
-  8030f62:	f8b4 304c 	ldrh.w	r3, [r4, #76]	; 0x4c
 
-  8030f66:	429a      	cmp	r2, r3
 
-           if ((u16_t)(pcb->cwnd + pcb->mss) > pcb->cwnd) {
 
-  8030f68:	8ee2      	ldrh	r2, [r4, #54]	; 0x36
 
-       pcb->lastack = ackno;
 
-       /* Update the congestion control variables (cwnd and
 
-          ssthresh). */
 
-       if (pcb->state >= ESTABLISHED) {
 
-         if (pcb->cwnd < pcb->ssthresh) {
 
-  8030f6a:	d900      	bls.n	8030f6e <tcp_receive+0x15a>
 
-  8030f6c:	e002      	b.n	8030f74 <tcp_receive+0x160>
 
-           if ((u16_t)(pcb->cwnd + pcb->mss) > pcb->cwnd) {
 
-             pcb->cwnd += pcb->mss;
 
-           }
 
-           LWIP_DEBUGF(TCP_CWND_DEBUG, ("tcp_receive: slow start cwnd %"U16_F"\n", pcb->cwnd));
 
-         } else {
 
-           u16_t new_cwnd = (pcb->cwnd + pcb->mss * pcb->mss / pcb->cwnd);
 
-  8030f6e:	4352      	muls	r2, r2
 
-  8030f70:	fb92 f2f3 	sdiv	r2, r2, r3
 
-  8030f74:	189a      	adds	r2, r3, r2
 
-  8030f76:	b292      	uxth	r2, r2
 
-           if (new_cwnd > pcb->cwnd) {
 
-  8030f78:	429a      	cmp	r2, r3
 
-  8030f7a:	d922      	bls.n	8030fc2 <tcp_receive+0x1ae>
 
-             pcb->cwnd = new_cwnd;
 
-  8030f7c:	f8a4 204c 	strh.w	r2, [r4, #76]	; 0x4c
 
-  8030f80:	e01f      	b.n	8030fc2 <tcp_receive+0x1ae>
 
-         LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_receive: removing %"U32_F":%"U32_F" from pcb->unacked\n",
 
-                                       ntohl(pcb->unacked->tcphdr->seqno),
 
-                                       ntohl(pcb->unacked->tcphdr->seqno) +
 
-                                       TCP_TCPLEN(pcb->unacked)));
 
-         next = pcb->unacked;
 
-  8030f82:	6f25      	ldr	r5, [r4, #112]	; 0x70
 
-         pcb->unacked = pcb->unacked->next;
 
-  8030f84:	682b      	ldr	r3, [r5, #0]
 
-         LWIP_DEBUGF(TCP_QLEN_DEBUG, ("tcp_receive: queuelen %"U16_F" ... ", (u16_t)pcb->snd_queuelen));
 
-         LWIP_ASSERT("pcb->snd_queuelen >= pbuf_clen(next->p)", (pcb->snd_queuelen >= pbuf_clen(next->p)));
 
-  8030f86:	6868      	ldr	r0, [r5, #4]
 
-                                       ntohl(pcb->unacked->tcphdr->seqno),
 
-                                       ntohl(pcb->unacked->tcphdr->seqno) +
 
-                                       TCP_TCPLEN(pcb->unacked)));
 
-         next = pcb->unacked;
 
-         pcb->unacked = pcb->unacked->next;
 
-  8030f88:	6723      	str	r3, [r4, #112]	; 0x70
 
-         LWIP_DEBUGF(TCP_QLEN_DEBUG, ("tcp_receive: queuelen %"U16_F" ... ", (u16_t)pcb->snd_queuelen));
 
-         LWIP_ASSERT("pcb->snd_queuelen >= pbuf_clen(next->p)", (pcb->snd_queuelen >= pbuf_clen(next->p)));
 
-  8030f8a:	f7ff f813 	bl	802ffb4 <pbuf_clen>
 
-         /* Prevent ACK for FIN to generate a sent event */
 
-         if ((pcb->acked != 0) && ((TCPH_FLAGS(next->tcphdr) & TCP_FIN) != 0)) {
 
-  8030f8e:	f8b4 3064 	ldrh.w	r3, [r4, #100]	; 0x64
 
-  8030f92:	b153      	cbz	r3, 8030faa <tcp_receive+0x196>
 
-  8030f94:	68eb      	ldr	r3, [r5, #12]
 
-  8030f96:	8998      	ldrh	r0, [r3, #12]
 
-  8030f98:	f7fd fdff 	bl	802eb9a <lwip_ntohs>
 
-  8030f9c:	07c3      	lsls	r3, r0, #31
 
-  8030f9e:	d504      	bpl.n	8030faa <tcp_receive+0x196>
 
-           pcb->acked--;
 
-  8030fa0:	f8b4 3064 	ldrh.w	r3, [r4, #100]	; 0x64
 
-  8030fa4:	3b01      	subs	r3, #1
 
-  8030fa6:	f8a4 3064 	strh.w	r3, [r4, #100]	; 0x64
 
-         }
 
-         pcb->snd_queuelen -= pbuf_clen(next->p);
 
-  8030faa:	6868      	ldr	r0, [r5, #4]
 
-  8030fac:	f8b4 7068 	ldrh.w	r7, [r4, #104]	; 0x68
 
-  8030fb0:	f7ff f800 	bl	802ffb4 <pbuf_clen>
 
-  8030fb4:	1a38      	subs	r0, r7, r0
 
-  8030fb6:	f8a4 0068 	strh.w	r0, [r4, #104]	; 0x68
 
-         tcp_seg_free(next);
 
-  8030fba:	4628      	mov	r0, r5
 
-  8030fbc:	f7ff fa55 	bl	803046a <tcp_seg_free>
 
-  8030fc0:	e000      	b.n	8030fc4 <tcp_receive+0x1b0>
 
-                                     ntohl(pcb->unacked->tcphdr->seqno) + TCP_TCPLEN(pcb->unacked): 0));
 
-       /* Remove segment from the unacknowledged list if the incoming
 
-          ACK acknowlegdes them. */
 
-       while (pcb->unacked != NULL &&
 
-              TCP_SEQ_LEQ(ntohl(pcb->unacked->tcphdr->seqno) +
 
-  8030fc2:	4e38      	ldr	r6, [pc, #224]	; (80310a4 <tcp_receive+0x290>)
 
-                                     pcb->unacked != NULL?
 
-                                     ntohl(pcb->unacked->tcphdr->seqno) + TCP_TCPLEN(pcb->unacked): 0));
 
-       /* Remove segment from the unacknowledged list if the incoming
 
-          ACK acknowlegdes them. */
 
-       while (pcb->unacked != NULL &&
 
-  8030fc4:	6f23      	ldr	r3, [r4, #112]	; 0x70
 
-  8030fc6:	b91b      	cbnz	r3, 8030fd0 <tcp_receive+0x1bc>
 
-         }
 
-       }
 
-       /* If there's nothing left to acknowledge, stop the retransmit
 
-          timer, otherwise reset it to start again */
 
-       if(pcb->unacked == NULL)
 
-  8030fc8:	6f22      	ldr	r2, [r4, #112]	; 0x70
 
-  8030fca:	2300      	movs	r3, #0
 
-  8030fcc:	b9d2      	cbnz	r2, 8031004 <tcp_receive+0x1f0>
 
-  8030fce:	e015      	b.n	8030ffc <tcp_receive+0x1e8>
 
-                                     ntohl(pcb->unacked->tcphdr->seqno) + TCP_TCPLEN(pcb->unacked): 0));
 
-       /* Remove segment from the unacknowledged list if the incoming
 
-          ACK acknowlegdes them. */
 
-       while (pcb->unacked != NULL &&
 
-              TCP_SEQ_LEQ(ntohl(pcb->unacked->tcphdr->seqno) +
 
-  8030fd0:	68db      	ldr	r3, [r3, #12]
 
-  8030fd2:	6858      	ldr	r0, [r3, #4]
 
-  8030fd4:	f7fd fde8 	bl	802eba8 <lwip_ntohl>
 
-  8030fd8:	6f23      	ldr	r3, [r4, #112]	; 0x70
 
-  8030fda:	891d      	ldrh	r5, [r3, #8]
 
-  8030fdc:	68db      	ldr	r3, [r3, #12]
 
-  8030fde:	4607      	mov	r7, r0
 
-  8030fe0:	8998      	ldrh	r0, [r3, #12]
 
-  8030fe2:	f7fd fdda 	bl	802eb9a <lwip_ntohs>
 
-  8030fe6:	6833      	ldr	r3, [r6, #0]
 
-  8030fe8:	f010 0003 	ands.w	r0, r0, #3
 
-  8030fec:	bf18      	it	ne
 
-  8030fee:	2001      	movne	r0, #1
 
-  8030ff0:	1afb      	subs	r3, r7, r3
 
-  8030ff2:	1828      	adds	r0, r5, r0
 
-  8030ff4:	181b      	adds	r3, r3, r0
 
-                                     pcb->unacked != NULL?
 
-                                     ntohl(pcb->unacked->tcphdr->seqno) + TCP_TCPLEN(pcb->unacked): 0));
 
-       /* Remove segment from the unacknowledged list if the incoming
 
-          ACK acknowlegdes them. */
 
-       while (pcb->unacked != NULL &&
 
-  8030ff6:	2b00      	cmp	r3, #0
 
-  8030ff8:	ddc3      	ble.n	8030f82 <tcp_receive+0x16e>
 
-  8030ffa:	e7e5      	b.n	8030fc8 <tcp_receive+0x1b4>
 
-       }
 
-       /* If there's nothing left to acknowledge, stop the retransmit
 
-          timer, otherwise reset it to start again */
 
-       if(pcb->unacked == NULL)
 
-         pcb->rtime = -1;
 
-  8030ffc:	f64f 72ff 	movw	r2, #65535	; 0xffff
 
-  8031000:	86a2      	strh	r2, [r4, #52]	; 0x34
 
-  8031002:	e000      	b.n	8031006 <tcp_receive+0x1f2>
 
-       else
 
-         pcb->rtime = 0;
 
-  8031004:	86a3      	strh	r3, [r4, #52]	; 0x34
 
-       pcb->polltmr = 0;
 
-  8031006:	77e3      	strb	r3, [r4, #31]
 
-  8031008:	e026      	b.n	8031058 <tcp_receive+0x244>
 
-     } else {
 
-       /* Fix bug bug #21582: out of sequence ACK, didn't really ack anything */
 
-       pcb->acked = 0;
 
-  803100a:	2300      	movs	r3, #0
 
-  803100c:	f8a4 3064 	strh.w	r3, [r4, #100]	; 0x64
 
-  8031010:	e022      	b.n	8031058 <tcp_receive+0x244>
 
-                            TCP_TCPLEN(pcb->unsent), pcb->snd_nxt)) {
 
-       LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_receive: removing %"U32_F":%"U32_F" from pcb->unsent\n",
 
-                                     ntohl(pcb->unsent->tcphdr->seqno), ntohl(pcb->unsent->tcphdr->seqno) +
 
-                                     TCP_TCPLEN(pcb->unsent)));
 
-       next = pcb->unsent;
 
-  8031012:	6ee5      	ldr	r5, [r4, #108]	; 0x6c
 
-       pcb->unsent = pcb->unsent->next;
 
-  8031014:	682b      	ldr	r3, [r5, #0]
 
-  8031016:	66e3      	str	r3, [r4, #108]	; 0x6c
 
- #if TCP_OVERSIZE
 
-       if (pcb->unsent == NULL) {
 
-  8031018:	b90b      	cbnz	r3, 803101e <tcp_receive+0x20a>
 
-         pcb->unsent_oversize = 0;
 
-  803101a:	f8a4 306a 	strh.w	r3, [r4, #106]	; 0x6a
 
-       }
 
- #endif /* TCP_OVERSIZE */ 
 
-       LWIP_DEBUGF(TCP_QLEN_DEBUG, ("tcp_receive: queuelen %"U16_F" ... ", (u16_t)pcb->snd_queuelen));
 
-       LWIP_ASSERT("pcb->snd_queuelen >= pbuf_clen(next->p)", (pcb->snd_queuelen >= pbuf_clen(next->p)));
 
-  803101e:	6868      	ldr	r0, [r5, #4]
 
-  8031020:	f7fe ffc8 	bl	802ffb4 <pbuf_clen>
 
-       /* Prevent ACK for FIN to generate a sent event */
 
-       if ((pcb->acked != 0) && ((TCPH_FLAGS(next->tcphdr) & TCP_FIN) != 0)) {
 
-  8031024:	f8b4 3064 	ldrh.w	r3, [r4, #100]	; 0x64
 
-  8031028:	b153      	cbz	r3, 8031040 <tcp_receive+0x22c>
 
-  803102a:	68eb      	ldr	r3, [r5, #12]
 
-  803102c:	8998      	ldrh	r0, [r3, #12]
 
-  803102e:	f7fd fdb4 	bl	802eb9a <lwip_ntohs>
 
-  8031032:	07c7      	lsls	r7, r0, #31
 
-  8031034:	d504      	bpl.n	8031040 <tcp_receive+0x22c>
 
-         pcb->acked--;
 
-  8031036:	f8b4 3064 	ldrh.w	r3, [r4, #100]	; 0x64
 
-  803103a:	3b01      	subs	r3, #1
 
-  803103c:	f8a4 3064 	strh.w	r3, [r4, #100]	; 0x64
 
-       }
 
-       pcb->snd_queuelen -= pbuf_clen(next->p);
 
-  8031040:	6868      	ldr	r0, [r5, #4]
 
-  8031042:	f8b4 7068 	ldrh.w	r7, [r4, #104]	; 0x68
 
-  8031046:	f7fe ffb5 	bl	802ffb4 <pbuf_clen>
 
-  803104a:	1a38      	subs	r0, r7, r0
 
-  803104c:	f8a4 0068 	strh.w	r0, [r4, #104]	; 0x68
 
-       tcp_seg_free(next);
 
-  8031050:	4628      	mov	r0, r5
 
-  8031052:	f7ff fa0a 	bl	803046a <tcp_seg_free>
 
-  8031056:	e000      	b.n	803105a <tcp_receive+0x246>
 
-        strange since an "unsent" segment shouldn't be acked. The
 
-        rationale is that lwIP puts all outstanding segments on the
 
-        ->unsent list after a retransmission, so these segments may
 
-        in fact have been sent once. */
 
-     while (pcb->unsent != NULL &&
 
-            TCP_SEQ_BETWEEN(ackno, ntohl(pcb->unsent->tcphdr->seqno) + 
 
-  8031058:	4e12      	ldr	r6, [pc, #72]	; (80310a4 <tcp_receive+0x290>)
 
-        on the list are acknowledged by the ACK. This may seem
 
-        strange since an "unsent" segment shouldn't be acked. The
 
-        rationale is that lwIP puts all outstanding segments on the
 
-        ->unsent list after a retransmission, so these segments may
 
-        in fact have been sent once. */
 
-     while (pcb->unsent != NULL &&
 
-  803105a:	6ee3      	ldr	r3, [r4, #108]	; 0x6c
 
-  803105c:	b913      	cbnz	r3, 8031064 <tcp_receive+0x250>
 
-                                 pcb->rttest, pcb->rtseq, ackno));
 
-     /* RTT estimation calculations. This is done by checking if the
 
-        incoming segment acknowledges the segment we use to take a
 
-        round-trip time measurement. */
 
-     if (pcb->rttest && TCP_SEQ_LT(pcb->rtseq, ackno)) {
 
-  803105e:	6ba3      	ldr	r3, [r4, #56]	; 0x38
 
-  8031060:	bb33      	cbnz	r3, 80310b0 <tcp_receive+0x29c>
 
-  8031062:	e04d      	b.n	8031100 <tcp_receive+0x2ec>
 
-        strange since an "unsent" segment shouldn't be acked. The
 
-        rationale is that lwIP puts all outstanding segments on the
 
-        ->unsent list after a retransmission, so these segments may
 
-        in fact have been sent once. */
 
-     while (pcb->unsent != NULL &&
 
-            TCP_SEQ_BETWEEN(ackno, ntohl(pcb->unsent->tcphdr->seqno) + 
 
-  8031064:	68db      	ldr	r3, [r3, #12]
 
-  8031066:	6835      	ldr	r5, [r6, #0]
 
-  8031068:	6858      	ldr	r0, [r3, #4]
 
-  803106a:	f7fd fd9d 	bl	802eba8 <lwip_ntohl>
 
-  803106e:	6ee3      	ldr	r3, [r4, #108]	; 0x6c
 
-  8031070:	891f      	ldrh	r7, [r3, #8]
 
-  8031072:	68db      	ldr	r3, [r3, #12]
 
-  8031074:	4680      	mov	r8, r0
 
-  8031076:	8998      	ldrh	r0, [r3, #12]
 
-  8031078:	f7fd fd8f 	bl	802eb9a <lwip_ntohs>
 
-  803107c:	f010 0003 	ands.w	r0, r0, #3
 
-  8031080:	bf18      	it	ne
 
-  8031082:	2001      	movne	r0, #1
 
-  8031084:	ebc8 0505 	rsb	r5, r8, r5
 
-  8031088:	1838      	adds	r0, r7, r0
 
-  803108a:	1a2d      	subs	r5, r5, r0
 
-        on the list are acknowledged by the ACK. This may seem
 
-        strange since an "unsent" segment shouldn't be acked. The
 
-        rationale is that lwIP puts all outstanding segments on the
 
-        ->unsent list after a retransmission, so these segments may
 
-        in fact have been sent once. */
 
-     while (pcb->unsent != NULL &&
 
-  803108c:	2d00      	cmp	r5, #0
 
-  803108e:	dbe6      	blt.n	803105e <tcp_receive+0x24a>
 
-            TCP_SEQ_BETWEEN(ackno, ntohl(pcb->unsent->tcphdr->seqno) + 
 
-  8031090:	6832      	ldr	r2, [r6, #0]
 
-  8031092:	6d23      	ldr	r3, [r4, #80]	; 0x50
 
-  8031094:	1ad3      	subs	r3, r2, r3
 
-  8031096:	2b00      	cmp	r3, #0
 
-  8031098:	ddbb      	ble.n	8031012 <tcp_receive+0x1fe>
 
-  803109a:	e7e0      	b.n	803105e <tcp_receive+0x24a>
 
-  803109c:	2000c3f0 	.word	0x2000c3f0
 
-  80310a0:	2000c3e4 	.word	0x2000c3e4
 
-  80310a4:	2000c3ec 	.word	0x2000c3ec
 
-  80310a8:	2000c3e0 	.word	0x2000c3e0
 
-  80310ac:	2000c3e8 	.word	0x2000c3e8
 
-                                 pcb->rttest, pcb->rtseq, ackno));
 
-     /* RTT estimation calculations. This is done by checking if the
 
-        incoming segment acknowledges the segment we use to take a
 
-        round-trip time measurement. */
 
-     if (pcb->rttest && TCP_SEQ_LT(pcb->rtseq, ackno)) {
 
-  80310b0:	497b      	ldr	r1, [pc, #492]	; (80312a0 <tcp_receive+0x48c>)
 
-  80310b2:	6be2      	ldr	r2, [r4, #60]	; 0x3c
 
-  80310b4:	6809      	ldr	r1, [r1, #0]
 
-  80310b6:	1a52      	subs	r2, r2, r1
 
-  80310b8:	2a00      	cmp	r2, #0
 
-  80310ba:	da21      	bge.n	8031100 <tcp_receive+0x2ec>
 
-       /* diff between this shouldn't exceed 32K since this are tcp timer ticks
 
-          and a round-trip shouldn't be that long... */
 
-       m = (s16_t)(tcp_ticks - pcb->rttest);
 
-  80310bc:	4a79      	ldr	r2, [pc, #484]	; (80312a4 <tcp_receive+0x490>)
 
-       LWIP_DEBUGF(TCP_RTO_DEBUG, ("tcp_receive: experienced rtt %"U16_F" ticks (%"U16_F" msec).\n",
 
-                                   m, m * TCP_SLOW_INTERVAL));
 
-       /* This is taken directly from VJs original code in his paper */
 
-       m = m - (pcb->sa >> 3);
 
-  80310be:	f8b4 1040 	ldrh.w	r1, [r4, #64]	; 0x40
 
-        incoming segment acknowledges the segment we use to take a
 
-        round-trip time measurement. */
 
-     if (pcb->rttest && TCP_SEQ_LT(pcb->rtseq, ackno)) {
 
-       /* diff between this shouldn't exceed 32K since this are tcp timer ticks
 
-          and a round-trip shouldn't be that long... */
 
-       m = (s16_t)(tcp_ticks - pcb->rttest);
 
-  80310c2:	6812      	ldr	r2, [r2, #0]
 
-       LWIP_DEBUGF(TCP_RTO_DEBUG, ("tcp_receive: experienced rtt %"U16_F" ticks (%"U16_F" msec).\n",
 
-                                   m, m * TCP_SLOW_INTERVAL));
 
-       /* This is taken directly from VJs original code in his paper */
 
-       m = m - (pcb->sa >> 3);
 
-  80310c4:	f341 00cc 	sbfx	r0, r1, #3, #13
 
-        incoming segment acknowledges the segment we use to take a
 
-        round-trip time measurement. */
 
-     if (pcb->rttest && TCP_SEQ_LT(pcb->rtseq, ackno)) {
 
-       /* diff between this shouldn't exceed 32K since this are tcp timer ticks
 
-          and a round-trip shouldn't be that long... */
 
-       m = (s16_t)(tcp_ticks - pcb->rttest);
 
-  80310c8:	1ad2      	subs	r2, r2, r3
 
-       LWIP_DEBUGF(TCP_RTO_DEBUG, ("tcp_receive: experienced rtt %"U16_F" ticks (%"U16_F" msec).\n",
 
-                                   m, m * TCP_SLOW_INTERVAL));
 
-       /* This is taken directly from VJs original code in his paper */
 
-       m = m - (pcb->sa >> 3);
 
-  80310ca:	1a12      	subs	r2, r2, r0
 
-  80310cc:	b292      	uxth	r2, r2
 
-  80310ce:	b293      	uxth	r3, r2
 
-       pcb->sa += m;
 
-  80310d0:	1851      	adds	r1, r2, r1
 
-  80310d2:	b289      	uxth	r1, r1
 
-       if (m < 0) {
 
-  80310d4:	0418      	lsls	r0, r3, #16
 
-       LWIP_DEBUGF(TCP_RTO_DEBUG, ("tcp_receive: experienced rtt %"U16_F" ticks (%"U16_F" msec).\n",
 
-                                   m, m * TCP_SLOW_INTERVAL));
 
-       /* This is taken directly from VJs original code in his paper */
 
-       m = m - (pcb->sa >> 3);
 
-       pcb->sa += m;
 
-  80310d6:	f8a4 1040 	strh.w	r1, [r4, #64]	; 0x40
 
-       if (m < 0) {
 
-  80310da:	d501      	bpl.n	80310e0 <tcp_receive+0x2cc>
 
-         m = -m;
 
-  80310dc:	4253      	negs	r3, r2
 
-  80310de:	b29b      	uxth	r3, r3
 
-       }
 
-       m = m - (pcb->sv >> 2);
 
-  80310e0:	f8b4 2042 	ldrh.w	r2, [r4, #66]	; 0x42
 
-  80310e4:	f342 008d 	sbfx	r0, r2, #2, #14
 
-  80310e8:	1a12      	subs	r2, r2, r0
 
-       pcb->sv += m;
 
-  80310ea:	18d3      	adds	r3, r2, r3
 
-  80310ec:	b29b      	uxth	r3, r3
 
-       pcb->rto = (pcb->sa >> 3) + pcb->sv;
 
-  80310ee:	f341 01cc 	sbfx	r1, r1, #3, #13
 
-       pcb->sa += m;
 
-       if (m < 0) {
 
-         m = -m;
 
-       }
 
-       m = m - (pcb->sv >> 2);
 
-       pcb->sv += m;
 
-  80310f2:	f8a4 3042 	strh.w	r3, [r4, #66]	; 0x42
 
-       pcb->rto = (pcb->sa >> 3) + pcb->sv;
 
-  80310f6:	185b      	adds	r3, r3, r1
 
-  80310f8:	f8a4 3044 	strh.w	r3, [r4, #68]	; 0x44
 
-       LWIP_DEBUGF(TCP_RTO_DEBUG, ("tcp_receive: RTO %"U16_F" (%"U16_F" milliseconds)\n",
 
-                                   pcb->rto, pcb->rto * TCP_SLOW_INTERVAL));
 
-       pcb->rttest = 0;
 
-  80310fc:	2300      	movs	r3, #0
 
-  80310fe:	63a3      	str	r3, [r4, #56]	; 0x38
 
-   /* If the incoming segment contains data, we must process it
 
-      further unless the pcb already received a FIN.
 
-      (RFC 793, chapeter 3.9, "SEGMENT ARRIVES" in states CLOSE-WAIT, CLOSING,
 
-      LAST-ACK and TIME-WAIT: "Ignore the segment text.") */
 
-   if ((tcplen > 0) && (pcb->state < CLOSE_WAIT)) {
 
-  8031100:	4b69      	ldr	r3, [pc, #420]	; (80312a8 <tcp_receive+0x494>)
 
-  8031102:	4a6a      	ldr	r2, [pc, #424]	; (80312ac <tcp_receive+0x498>)
 
-  8031104:	8818      	ldrh	r0, [r3, #0]
 
-  8031106:	2800      	cmp	r0, #0
 
-  8031108:	f000 80b3 	beq.w	8031272 <tcp_receive+0x45e>
 
-  803110c:	7e23      	ldrb	r3, [r4, #24]
 
-  803110e:	2b06      	cmp	r3, #6
 
-  8031110:	f200 80af 	bhi.w	8031272 <tcp_receive+0x45e>
 
-        this if the sequence number of the incoming segment is less
 
-        than rcv_nxt, and the sequence number plus the length of the
 
-        segment is larger than rcv_nxt. */
 
-     /*    if (TCP_SEQ_LT(seqno, pcb->rcv_nxt)){
 
-           if (TCP_SEQ_LT(pcb->rcv_nxt, seqno + tcplen)) {*/
 
-     if (TCP_SEQ_BETWEEN(pcb->rcv_nxt, seqno + 1, seqno + tcplen - 1)){
 
-  8031114:	6811      	ldr	r1, [r2, #0]
 
-  8031116:	6aa3      	ldr	r3, [r4, #40]	; 0x28
 
-  8031118:	43ca      	mvns	r2, r1
 
-  803111a:	42da      	cmn	r2, r3
 
-  803111c:	d425      	bmi.n	803116a <tcp_receive+0x356>
 
-  803111e:	1c5a      	adds	r2, r3, #1
 
-  8031120:	1a52      	subs	r2, r2, r1
 
-  8031122:	1a10      	subs	r0, r2, r0
 
-  8031124:	2800      	cmp	r0, #0
 
-  8031126:	dc20      	bgt.n	803116a <tcp_receive+0x356>
 
-          After we are done with adjusting the pbuf pointers we must
 
-          adjust the ->data pointer in the seg and the segment
 
-          length.*/
 
-       off = pcb->rcv_nxt - seqno;
 
-  8031128:	1a59      	subs	r1, r3, r1
 
-       p = inseg.p;
 
-  803112a:	4b61      	ldr	r3, [pc, #388]	; (80312b0 <tcp_receive+0x49c>)
 
-  803112c:	6858      	ldr	r0, [r3, #4]
 
-       LWIP_ASSERT("inseg.p != NULL", inseg.p);
 
-       LWIP_ASSERT("insane offset!", (off < 0x7fff));
 
-       if (inseg.p->len < off) {
 
-  803112e:	8943      	ldrh	r3, [r0, #10]
 
-  8031130:	428b      	cmp	r3, r1
 
-  8031132:	da0a      	bge.n	803114a <tcp_receive+0x336>
 
-         LWIP_ASSERT("pbuf too short!", (((s32_t)inseg.p->tot_len) >= off));
 
-         new_tot_len = (u16_t)(inseg.p->tot_len - off);
 
-  8031134:	8902      	ldrh	r2, [r0, #8]
 
-           off -= p->len;
 
-           /* KJM following line changed (with addition of new_tot_len var)
 
-              to fix bug #9076
 
-              inseg.p->tot_len -= p->len; */
 
-           p->tot_len = new_tot_len;
 
-           p->len = 0;
 
-  8031136:	2500      	movs	r5, #0
 
-       p = inseg.p;
 
-       LWIP_ASSERT("inseg.p != NULL", inseg.p);
 
-       LWIP_ASSERT("insane offset!", (off < 0x7fff));
 
-       if (inseg.p->len < off) {
 
-         LWIP_ASSERT("pbuf too short!", (((s32_t)inseg.p->tot_len) >= off));
 
-         new_tot_len = (u16_t)(inseg.p->tot_len - off);
 
-  8031138:	1a52      	subs	r2, r2, r1
 
-         while (p->len < off) {
 
-  803113a:	e003      	b.n	8031144 <tcp_receive+0x330>
 
-           off -= p->len;
 
-           /* KJM following line changed (with addition of new_tot_len var)
 
-              to fix bug #9076
 
-              inseg.p->tot_len -= p->len; */
 
-           p->tot_len = new_tot_len;
 
-  803113c:	8102      	strh	r2, [r0, #8]
 
-           p->len = 0;
 
-  803113e:	8145      	strh	r5, [r0, #10]
 
-           p = p->next;
 
-  8031140:	6800      	ldr	r0, [r0, #0]
 
-       LWIP_ASSERT("insane offset!", (off < 0x7fff));
 
-       if (inseg.p->len < off) {
 
-         LWIP_ASSERT("pbuf too short!", (((s32_t)inseg.p->tot_len) >= off));
 
-         new_tot_len = (u16_t)(inseg.p->tot_len - off);
 
-         while (p->len < off) {
 
-           off -= p->len;
 
-  8031142:	1ac9      	subs	r1, r1, r3
 
-       LWIP_ASSERT("inseg.p != NULL", inseg.p);
 
-       LWIP_ASSERT("insane offset!", (off < 0x7fff));
 
-       if (inseg.p->len < off) {
 
-         LWIP_ASSERT("pbuf too short!", (((s32_t)inseg.p->tot_len) >= off));
 
-         new_tot_len = (u16_t)(inseg.p->tot_len - off);
 
-         while (p->len < off) {
 
-  8031144:	8943      	ldrh	r3, [r0, #10]
 
-  8031146:	428b      	cmp	r3, r1
 
-  8031148:	dbf8      	blt.n	803113c <tcp_receive+0x328>
 
-         if(pbuf_header(p, (s16_t)-off)) {
 
-           /* Do we need to cope with this failing?  Assert for now */
 
-           LWIP_ASSERT("pbuf_header failed", 0);
 
-         }
 
-       } else {
 
-         if(pbuf_header(inseg.p, (s16_t)-off)) {
 
-  803114a:	4249      	negs	r1, r1
 
-  803114c:	b209      	sxth	r1, r1
 
-  803114e:	f7fe fe32 	bl	802fdb6 <pbuf_header>
 
-           /* Do we need to cope with this failing?  Assert for now */
 
-           LWIP_ASSERT("pbuf_header failed", 0);
 
-         }
 
-       }
 
-       inseg.len -= (u16_t)(pcb->rcv_nxt - seqno);
 
-  8031152:	4a57      	ldr	r2, [pc, #348]	; (80312b0 <tcp_receive+0x49c>)
 
-  8031154:	4955      	ldr	r1, [pc, #340]	; (80312ac <tcp_receive+0x498>)
 
-  8031156:	8915      	ldrh	r5, [r2, #8]
 
-  8031158:	6808      	ldr	r0, [r1, #0]
 
-  803115a:	6aa3      	ldr	r3, [r4, #40]	; 0x28
 
-  803115c:	1940      	adds	r0, r0, r5
 
-  803115e:	1ac0      	subs	r0, r0, r3
 
-  8031160:	8110      	strh	r0, [r2, #8]
 
-       inseg.tcphdr->seqno = seqno = pcb->rcv_nxt;
 
-  8031162:	68d2      	ldr	r2, [r2, #12]
 
-  8031164:	600b      	str	r3, [r1, #0]
 
-  8031166:	6053      	str	r3, [r2, #4]
 
-  8031168:	e006      	b.n	8031178 <tcp_receive+0x364>
 
-     }
 
-     else {
 
-       if (TCP_SEQ_LT(seqno, pcb->rcv_nxt)){
 
-  803116a:	1ac9      	subs	r1, r1, r3
 
-  803116c:	2900      	cmp	r1, #0
 
-  803116e:	da03      	bge.n	8031178 <tcp_receive+0x364>
 
-         /* the whole segment is < rcv_nxt */
 
-         /* must be a duplicate of a packet that has already been correctly handled */
 
-         LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_receive: duplicate seqno %"U32_F"\n", seqno));
 
-         tcp_ack_now(pcb);
 
-  8031170:	7fa3      	ldrb	r3, [r4, #30]
 
-  8031172:	f043 0302 	orr.w	r3, r3, #2
 
-  8031176:	77a3      	strb	r3, [r4, #30]
 
-     }
 
-     /* The sequence number must be within the window (above rcv_nxt
 
-        and below rcv_nxt + rcv_wnd) in order to be further
 
-        processed. */
 
-     if (TCP_SEQ_BETWEEN(seqno, pcb->rcv_nxt, 
 
-  8031178:	4b4c      	ldr	r3, [pc, #304]	; (80312ac <tcp_receive+0x498>)
 
-  803117a:	6aa2      	ldr	r2, [r4, #40]	; 0x28
 
-  803117c:	681b      	ldr	r3, [r3, #0]
 
-  803117e:	1a99      	subs	r1, r3, r2
 
-  8031180:	2900      	cmp	r1, #0
 
-  8031182:	db71      	blt.n	8031268 <tcp_receive+0x454>
 
-  8031184:	1c59      	adds	r1, r3, #1
 
-  8031186:	8da0      	ldrh	r0, [r4, #44]	; 0x2c
 
-  8031188:	1a89      	subs	r1, r1, r2
 
-  803118a:	1a09      	subs	r1, r1, r0
 
-  803118c:	2900      	cmp	r1, #0
 
-  803118e:	dc6b      	bgt.n	8031268 <tcp_receive+0x454>
 
-                         pcb->rcv_nxt + pcb->rcv_wnd - 1)){
 
-       if (pcb->rcv_nxt == seqno) {
 
-  8031190:	429a      	cmp	r2, r3
 
-  8031192:	d169      	bne.n	8031268 <tcp_receive+0x454>
 
-         /* The incoming segment is the next in sequence. We check if
 
-            we have to trim the end of the segment and update rcv_nxt
 
-            and pass the data to the application. */
 
-         tcplen = TCP_TCPLEN(&inseg);
 
-  8031194:	4d46      	ldr	r5, [pc, #280]	; (80312b0 <tcp_receive+0x49c>)
 
-  8031196:	68eb      	ldr	r3, [r5, #12]
 
-  8031198:	892e      	ldrh	r6, [r5, #8]
 
-  803119a:	8998      	ldrh	r0, [r3, #12]
 
-  803119c:	f7fd fcfd 	bl	802eb9a <lwip_ntohs>
 
-  80311a0:	f010 0003 	ands.w	r0, r0, #3
 
-  80311a4:	bf18      	it	ne
 
-  80311a6:	2001      	movne	r0, #1
 
-  80311a8:	4b3f      	ldr	r3, [pc, #252]	; (80312a8 <tcp_receive+0x494>)
 
-  80311aa:	1830      	adds	r0, r6, r0
 
-  80311ac:	b280      	uxth	r0, r0
 
-  80311ae:	8018      	strh	r0, [r3, #0]
 
-         if (tcplen > pcb->rcv_wnd) {
 
-  80311b0:	8da3      	ldrh	r3, [r4, #44]	; 0x2c
 
-  80311b2:	4283      	cmp	r3, r0
 
-  80311b4:	d230      	bcs.n	8031218 <tcp_receive+0x404>
 
-           LWIP_DEBUGF(TCP_INPUT_DEBUG, 
 
-                       ("tcp_receive: other end overran receive window"
 
-                        "seqno %"U32_F" len %"U16_F" right edge %"U32_F"\n",
 
-                        seqno, tcplen, pcb->rcv_nxt + pcb->rcv_wnd));
 
-           if (TCPH_FLAGS(inseg.tcphdr) & TCP_FIN) {
 
-  80311b6:	68eb      	ldr	r3, [r5, #12]
 
-  80311b8:	8998      	ldrh	r0, [r3, #12]
 
-  80311ba:	f7fd fcee 	bl	802eb9a <lwip_ntohs>
 
-  80311be:	07c0      	lsls	r0, r0, #31
 
-  80311c0:	d50c      	bpl.n	80311dc <tcp_receive+0x3c8>
 
-             /* Must remove the FIN from the header as we're trimming 
 
-              * that byte of sequence-space from the packet */
 
-             TCPH_FLAGS_SET(inseg.tcphdr, TCPH_FLAGS(inseg.tcphdr) &~ TCP_FIN);
 
-  80311c2:	68ed      	ldr	r5, [r5, #12]
 
-  80311c4:	89ae      	ldrh	r6, [r5, #12]
 
-  80311c6:	4630      	mov	r0, r6
 
-  80311c8:	f7fd fce7 	bl	802eb9a <lwip_ntohs>
 
-  80311cc:	f000 003e 	and.w	r0, r0, #62	; 0x3e
 
-  80311d0:	f7fd fcde 	bl	802eb90 <lwip_htons>
 
-  80311d4:	f426 567c 	bic.w	r6, r6, #16128	; 0x3f00
 
-  80311d8:	4330      	orrs	r0, r6
 
-  80311da:	81a8      	strh	r0, [r5, #12]
 
-           }
 
-           /* Adjust length of segment to fit in the window. */
 
-           inseg.len = pcb->rcv_wnd;
 
-  80311dc:	8da3      	ldrh	r3, [r4, #44]	; 0x2c
 
-  80311de:	4d34      	ldr	r5, [pc, #208]	; (80312b0 <tcp_receive+0x49c>)
 
-  80311e0:	812b      	strh	r3, [r5, #8]
 
-           if (TCPH_FLAGS(inseg.tcphdr) & TCP_SYN) {
 
-  80311e2:	68eb      	ldr	r3, [r5, #12]
 
-  80311e4:	8998      	ldrh	r0, [r3, #12]
 
-  80311e6:	f7fd fcd8 	bl	802eb9a <lwip_ntohs>
 
-  80311ea:	f000 0002 	and.w	r0, r0, #2
 
-  80311ee:	b280      	uxth	r0, r0
 
-  80311f0:	b110      	cbz	r0, 80311f8 <tcp_receive+0x3e4>
 
-             inseg.len -= 1;
 
-  80311f2:	892b      	ldrh	r3, [r5, #8]
 
-  80311f4:	3b01      	subs	r3, #1
 
-  80311f6:	812b      	strh	r3, [r5, #8]
 
-           }
 
-           pbuf_realloc(inseg.p, inseg.len);
 
-  80311f8:	6868      	ldr	r0, [r5, #4]
 
-  80311fa:	8929      	ldrh	r1, [r5, #8]
 
-  80311fc:	f7fe fe2d 	bl	802fe5a <pbuf_realloc>
 
-           tcplen = TCP_TCPLEN(&inseg);
 
-  8031200:	68eb      	ldr	r3, [r5, #12]
 
-  8031202:	892e      	ldrh	r6, [r5, #8]
 
-  8031204:	8998      	ldrh	r0, [r3, #12]
 
-  8031206:	f7fd fcc8 	bl	802eb9a <lwip_ntohs>
 
-  803120a:	f010 0003 	ands.w	r0, r0, #3
 
-  803120e:	bf18      	it	ne
 
-  8031210:	2001      	movne	r0, #1
 
-  8031212:	4b25      	ldr	r3, [pc, #148]	; (80312a8 <tcp_receive+0x494>)
 
-  8031214:	1830      	adds	r0, r6, r0
 
-  8031216:	8018      	strh	r0, [r3, #0]
 
-             pcb->ooseq = next;
 
-           }
 
-         }
 
- #endif /* TCP_QUEUE_OOSEQ */
 
-         pcb->rcv_nxt = seqno + tcplen;
 
-  8031218:	4b23      	ldr	r3, [pc, #140]	; (80312a8 <tcp_receive+0x494>)
 
-  803121a:	4a24      	ldr	r2, [pc, #144]	; (80312ac <tcp_receive+0x498>)
 
-  803121c:	881b      	ldrh	r3, [r3, #0]
 
-  803121e:	6812      	ldr	r2, [r2, #0]
 
-  8031220:	189a      	adds	r2, r3, r2
 
-  8031222:	62a2      	str	r2, [r4, #40]	; 0x28
 
-         /* Update the receiver's (our) window. */
 
-         LWIP_ASSERT("tcp_receive: tcplen > rcv_wnd\n", pcb->rcv_wnd >= tcplen);
 
-         pcb->rcv_wnd -= tcplen;
 
-  8031224:	8da2      	ldrh	r2, [r4, #44]	; 0x2c
 
-  8031226:	1ad3      	subs	r3, r2, r3
 
-  8031228:	85a3      	strh	r3, [r4, #44]	; 0x2c
 
-         tcp_update_rcv_ann_wnd(pcb);
 
-  803122a:	4620      	mov	r0, r4
 
-  803122c:	f7ff f8e6 	bl	80303fc <tcp_update_rcv_ann_wnd>
 
-            chains its data on this pbuf as well.
 
-            If the segment was a FIN, we set the TF_GOT_FIN flag that will
 
-            be used to indicate to the application that the remote side has
 
-            closed its end of the connection. */
 
-         if (inseg.p->tot_len > 0) {
 
-  8031230:	4b1f      	ldr	r3, [pc, #124]	; (80312b0 <tcp_receive+0x49c>)
 
-  8031232:	685a      	ldr	r2, [r3, #4]
 
-  8031234:	8911      	ldrh	r1, [r2, #8]
 
-  8031236:	b119      	cbz	r1, 8031240 <tcp_receive+0x42c>
 
-           recv_data = inseg.p;
 
-  8031238:	491e      	ldr	r1, [pc, #120]	; (80312b4 <tcp_receive+0x4a0>)
 
-  803123a:	600a      	str	r2, [r1, #0]
 
-           /* Since this pbuf now is the responsibility of the
 
-              application, we delete our reference to it so that we won't
 
-              (mistakingly) deallocate it. */
 
-           inseg.p = NULL;
 
-  803123c:	2200      	movs	r2, #0
 
-  803123e:	605a      	str	r2, [r3, #4]
 
-         }
 
-         if (TCPH_FLAGS(inseg.tcphdr) & TCP_FIN) {
 
-  8031240:	68db      	ldr	r3, [r3, #12]
 
-  8031242:	8998      	ldrh	r0, [r3, #12]
 
-  8031244:	f7fd fca9 	bl	802eb9a <lwip_ntohs>
 
-  8031248:	07c1      	lsls	r1, r0, #31
 
-  803124a:	d504      	bpl.n	8031256 <tcp_receive+0x442>
 
-           LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_receive: received FIN.\n"));
 
-           recv_flags |= TF_GOT_FIN;
 
-  803124c:	4b1a      	ldr	r3, [pc, #104]	; (80312b8 <tcp_receive+0x4a4>)
 
-  803124e:	781a      	ldrb	r2, [r3, #0]
 
-  8031250:	f042 0220 	orr.w	r2, r2, #32
 
-  8031254:	701a      	strb	r2, [r3, #0]
 
-         }
 
- #endif /* TCP_QUEUE_OOSEQ */
 
-         /* Acknowledge the segment(s). */
 
-         tcp_ack(pcb);
 
-  8031256:	7fa3      	ldrb	r3, [r4, #30]
 
-  8031258:	07da      	lsls	r2, r3, #31
 
-  803125a:	d502      	bpl.n	8031262 <tcp_receive+0x44e>
 
-  803125c:	f023 0301 	bic.w	r3, r3, #1
 
-  8031260:	e013      	b.n	803128a <tcp_receive+0x476>
 
-  8031262:	f043 0301 	orr.w	r3, r3, #1
 
-  8031266:	e012      	b.n	803128e <tcp_receive+0x47a>
 
-       } else {
 
-         /* We get here if the incoming segment is out-of-sequence. */
 
-         tcp_send_empty_ack(pcb);
 
-  8031268:	4620      	mov	r0, r4
 
-       TCP_SEQ_GEQ(seqno, pcb->rcv_nxt + pcb->rcv_wnd)) {*/
 
-     if(!TCP_SEQ_BETWEEN(seqno, pcb->rcv_nxt, pcb->rcv_nxt + pcb->rcv_wnd-1)){
 
-       tcp_ack_now(pcb);
 
-     }
 
-   }
 
- }
 
-  803126a:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
 
-         /* Acknowledge the segment(s). */
 
-         tcp_ack(pcb);
 
-       } else {
 
-         /* We get here if the incoming segment is out-of-sequence. */
 
-         tcp_send_empty_ack(pcb);
 
-  803126e:	f000 bf09 	b.w	8032084 <tcp_send_empty_ack>
 
-   } else {
 
-     /* Segments with length 0 is taken care of here. Segments that
 
-        fall out of the window are ACKed. */
 
-     /*if (TCP_SEQ_GT(pcb->rcv_nxt, seqno) ||
 
-       TCP_SEQ_GEQ(seqno, pcb->rcv_nxt + pcb->rcv_wnd)) {*/
 
-     if(!TCP_SEQ_BETWEEN(seqno, pcb->rcv_nxt, pcb->rcv_nxt + pcb->rcv_wnd-1)){
 
-  8031272:	6812      	ldr	r2, [r2, #0]
 
-  8031274:	6aa3      	ldr	r3, [r4, #40]	; 0x28
 
-  8031276:	1ad1      	subs	r1, r2, r3
 
-  8031278:	2900      	cmp	r1, #0
 
-  803127a:	db05      	blt.n	8031288 <tcp_receive+0x474>
 
-  803127c:	3201      	adds	r2, #1
 
-  803127e:	8da1      	ldrh	r1, [r4, #44]	; 0x2c
 
-  8031280:	1ad3      	subs	r3, r2, r3
 
-  8031282:	1a5b      	subs	r3, r3, r1
 
-  8031284:	2b00      	cmp	r3, #0
 
-  8031286:	dd09      	ble.n	803129c <tcp_receive+0x488>
 
-       tcp_ack_now(pcb);
 
-  8031288:	7fa3      	ldrb	r3, [r4, #30]
 
-  803128a:	f043 0302 	orr.w	r3, r3, #2
 
-  803128e:	77a3      	strb	r3, [r4, #30]
 
-  8031290:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 
-         }
 
-       }
 
-       /* If Clause (1) or more is true, but not a duplicate ack, reset
 
-        * count of consecutive duplicate acks */
 
-       if (!found_dupack) {
 
-         pcb->dupacks = 0;
 
-  8031294:	2300      	movs	r3, #0
 
-  8031296:	f884 3047 	strb.w	r3, [r4, #71]	; 0x47
 
-  803129a:	e6dd      	b.n	8031058 <tcp_receive+0x244>
 
-  803129c:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 
-  80312a0:	2000c3ec 	.word	0x2000c3ec
 
-  80312a4:	2000f6c0 	.word	0x2000f6c0
 
-  80312a8:	2000c3e8 	.word	0x2000c3e8
 
-  80312ac:	2000c3e4 	.word	0x2000c3e4
 
-  80312b0:	2000c3fc 	.word	0x2000c3fc
 
-  80312b4:	2000c3f4 	.word	0x2000c3f4
 
-  80312b8:	2000c3f1 	.word	0x2000c3f1
 
- 080312bc <tcp_input>:
 
-  * @param p received TCP segment to process (p->payload pointing to the IP header)
 
-  * @param inp network interface on which this segment was received
 
-  */
 
- void
 
- tcp_input(struct pbuf *p, struct netif *inp)
 
- {
 
-  80312bc:	e92d 4ff7 	stmdb	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-  80312c0:	4606      	mov	r6, r0
 
-  80312c2:	460f      	mov	r7, r1
 
-   err_t err;
 
-   PERF_START;
 
-   TCP_STATS_INC(tcp.recv);
 
-   snmp_inc_tcpinsegs();
 
-  80312c4:	f003 fcc0 	bl	8034c48 <snmp_inc_tcpinsegs>
 
-   iphdr = (struct ip_hdr *)p->payload;
 
-  80312c8:	6873      	ldr	r3, [r6, #4]
 
-  80312ca:	4aa7      	ldr	r2, [pc, #668]	; (8031568 <tcp_input+0x2ac>)
 
-   tcphdr = (struct tcp_hdr *)((u8_t *)p->payload + IPH_HL(iphdr) * 4);
 
-  80312cc:	4ca7      	ldr	r4, [pc, #668]	; (803156c <tcp_input+0x2b0>)
 
-   PERF_START;
 
-   TCP_STATS_INC(tcp.recv);
 
-   snmp_inc_tcpinsegs();
 
-   iphdr = (struct ip_hdr *)p->payload;
 
-  80312ce:	6013      	str	r3, [r2, #0]
 
-   tcphdr = (struct tcp_hdr *)((u8_t *)p->payload + IPH_HL(iphdr) * 4);
 
-  80312d0:	781a      	ldrb	r2, [r3, #0]
 
-  80312d2:	f002 020f 	and.w	r2, r2, #15
 
- #if TCP_INPUT_DEBUG
 
-   tcp_debug_print(tcphdr);
 
- #endif
 
-   /* remove header from payload */
 
-   if (pbuf_header(p, -((s16_t)(IPH_HL(iphdr) * 4))) || (p->tot_len < sizeof(struct tcp_hdr))) {
 
-  80312d6:	0091      	lsls	r1, r2, #2
 
-   TCP_STATS_INC(tcp.recv);
 
-   snmp_inc_tcpinsegs();
 
-   iphdr = (struct ip_hdr *)p->payload;
 
-   tcphdr = (struct tcp_hdr *)((u8_t *)p->payload + IPH_HL(iphdr) * 4);
 
-  80312d8:	eb03 0382 	add.w	r3, r3, r2, lsl #2
 
- #if TCP_INPUT_DEBUG
 
-   tcp_debug_print(tcphdr);
 
- #endif
 
-   /* remove header from payload */
 
-   if (pbuf_header(p, -((s16_t)(IPH_HL(iphdr) * 4))) || (p->tot_len < sizeof(struct tcp_hdr))) {
 
-  80312dc:	4630      	mov	r0, r6
 
-  80312de:	4249      	negs	r1, r1
 
-   TCP_STATS_INC(tcp.recv);
 
-   snmp_inc_tcpinsegs();
 
-   iphdr = (struct ip_hdr *)p->payload;
 
-   tcphdr = (struct tcp_hdr *)((u8_t *)p->payload + IPH_HL(iphdr) * 4);
 
-  80312e0:	6023      	str	r3, [r4, #0]
 
- #if TCP_INPUT_DEBUG
 
-   tcp_debug_print(tcphdr);
 
- #endif
 
-   /* remove header from payload */
 
-   if (pbuf_header(p, -((s16_t)(IPH_HL(iphdr) * 4))) || (p->tot_len < sizeof(struct tcp_hdr))) {
 
-  80312e2:	f7fe fd68 	bl	802fdb6 <pbuf_header>
 
-  80312e6:	2800      	cmp	r0, #0
 
-  80312e8:	f040 83ce 	bne.w	8031a88 <tcp_input+0x7cc>
 
-  80312ec:	8933      	ldrh	r3, [r6, #8]
 
-  80312ee:	2b13      	cmp	r3, #19
 
-  80312f0:	f240 83ca 	bls.w	8031a88 <tcp_input+0x7cc>
 
-     TCP_STATS_INC(tcp.lenerr);
 
-     goto dropped;
 
-   }
 
-   /* Don't even process incoming broadcasts/multicasts. */
 
-   if (ip_addr_isbroadcast(¤t_iphdr_dest, inp) ||
 
-  80312f4:	4d9e      	ldr	r5, [pc, #632]	; (8031570 <tcp_input+0x2b4>)
 
-  80312f6:	4639      	mov	r1, r7
 
-  80312f8:	6828      	ldr	r0, [r5, #0]
 
-  80312fa:	f001 fd43 	bl	8032d84 <ip4_addr_isbroadcast>
 
-  80312fe:	2800      	cmp	r0, #0
 
-  8031300:	f040 83c2 	bne.w	8031a88 <tcp_input+0x7cc>
 
-       ip_addr_ismulticast(¤t_iphdr_dest)) {
 
-  8031304:	682b      	ldr	r3, [r5, #0]
 
-  8031306:	f003 03f0 	and.w	r3, r3, #240	; 0xf0
 
-     TCP_STATS_INC(tcp.lenerr);
 
-     goto dropped;
 
-   }
 
-   /* Don't even process incoming broadcasts/multicasts. */
 
-   if (ip_addr_isbroadcast(¤t_iphdr_dest, inp) ||
 
-  803130a:	2be0      	cmp	r3, #224	; 0xe0
 
-  803130c:	f000 83bc 	beq.w	8031a88 <tcp_input+0x7cc>
 
-   }
 
- #endif
 
-   /* Move the payload pointer in the pbuf so that it points to the
 
-      TCP data instead of the TCP header. */
 
-   hdrlen = TCPH_HDRLEN(tcphdr);
 
-  8031310:	6823      	ldr	r3, [r4, #0]
 
-  8031312:	8998      	ldrh	r0, [r3, #12]
 
-  8031314:	f7fd fc41 	bl	802eb9a <lwip_ntohs>
 
-   if(pbuf_header(p, -(hdrlen * 4))){
 
-  8031318:	f06f 0103 	mvn.w	r1, #3
 
-  803131c:	f3c0 3307 	ubfx	r3, r0, #12, #8
 
-  8031320:	4359      	muls	r1, r3
 
-  8031322:	4630      	mov	r0, r6
 
-  8031324:	f7fe fd47 	bl	802fdb6 <pbuf_header>
 
-  8031328:	4683      	mov	fp, r0
 
-  803132a:	2800      	cmp	r0, #0
 
-  803132c:	f040 83ac 	bne.w	8031a88 <tcp_input+0x7cc>
 
-     TCP_STATS_INC(tcp.lenerr);
 
-     goto dropped;
 
-   }
 
-   /* Convert fields in TCP header to host byte order. */
 
-   tcphdr->src = ntohs(tcphdr->src);
 
-  8031330:	6827      	ldr	r7, [r4, #0]
 
-  8031332:	8838      	ldrh	r0, [r7, #0]
 
-  8031334:	f7fd fc31 	bl	802eb9a <lwip_ntohs>
 
-  8031338:	8038      	strh	r0, [r7, #0]
 
-   tcphdr->dest = ntohs(tcphdr->dest);
 
-  803133a:	6827      	ldr	r7, [r4, #0]
 
-  803133c:	8878      	ldrh	r0, [r7, #2]
 
-  803133e:	f7fd fc2c 	bl	802eb9a <lwip_ntohs>
 
-  8031342:	8078      	strh	r0, [r7, #2]
 
-   seqno = tcphdr->seqno = ntohl(tcphdr->seqno);
 
-  8031344:	6827      	ldr	r7, [r4, #0]
 
-  8031346:	6878      	ldr	r0, [r7, #4]
 
-  8031348:	f7fd fc2e 	bl	802eba8 <lwip_ntohl>
 
-  803134c:	4b89      	ldr	r3, [pc, #548]	; (8031574 <tcp_input+0x2b8>)
 
-  803134e:	6078      	str	r0, [r7, #4]
 
-   ackno = tcphdr->ackno = ntohl(tcphdr->ackno);
 
-  8031350:	6827      	ldr	r7, [r4, #0]
 
-   }
 
-   /* Convert fields in TCP header to host byte order. */
 
-   tcphdr->src = ntohs(tcphdr->src);
 
-   tcphdr->dest = ntohs(tcphdr->dest);
 
-   seqno = tcphdr->seqno = ntohl(tcphdr->seqno);
 
-  8031352:	6018      	str	r0, [r3, #0]
 
-   ackno = tcphdr->ackno = ntohl(tcphdr->ackno);
 
-  8031354:	68b8      	ldr	r0, [r7, #8]
 
-  8031356:	f7fd fc27 	bl	802eba8 <lwip_ntohl>
 
-  803135a:	4b87      	ldr	r3, [pc, #540]	; (8031578 <tcp_input+0x2bc>)
 
-  803135c:	60b8      	str	r0, [r7, #8]
 
-   tcphdr->wnd = ntohs(tcphdr->wnd);
 
-  803135e:	6827      	ldr	r7, [r4, #0]
 
-   /* Convert fields in TCP header to host byte order. */
 
-   tcphdr->src = ntohs(tcphdr->src);
 
-   tcphdr->dest = ntohs(tcphdr->dest);
 
-   seqno = tcphdr->seqno = ntohl(tcphdr->seqno);
 
-   ackno = tcphdr->ackno = ntohl(tcphdr->ackno);
 
-  8031360:	6018      	str	r0, [r3, #0]
 
-   tcphdr->wnd = ntohs(tcphdr->wnd);
 
-  8031362:	89f8      	ldrh	r0, [r7, #14]
 
-  8031364:	f7fd fc19 	bl	802eb9a <lwip_ntohs>
 
-  8031368:	81f8      	strh	r0, [r7, #14]
 
-   flags = TCPH_FLAGS(tcphdr);
 
-  803136a:	6823      	ldr	r3, [r4, #0]
 
-  803136c:	8998      	ldrh	r0, [r3, #12]
 
-  803136e:	f7fd fc14 	bl	802eb9a <lwip_ntohs>
 
-  8031372:	4b82      	ldr	r3, [pc, #520]	; (803157c <tcp_input+0x2c0>)
 
-   tcplen = p->tot_len + ((flags & (TCP_FIN | TCP_SYN)) ? 1 : 0);
 
-  8031374:	f8b6 8008 	ldrh.w	r8, [r6, #8]
 
-   
 
-   for(pcb = tcp_active_pcbs; pcb != NULL; pcb = pcb->next) {
 
-     LWIP_ASSERT("tcp_input: active pcb->state != CLOSED", pcb->state != CLOSED);
 
-     LWIP_ASSERT("tcp_input: active pcb->state != TIME-WAIT", pcb->state != TIME_WAIT);
 
-     LWIP_ASSERT("tcp_input: active pcb->state != LISTEN", pcb->state != LISTEN);
 
-     if (pcb->remote_port == tcphdr->src &&
 
-  8031378:	6827      	ldr	r7, [r4, #0]
 
-   seqno = tcphdr->seqno = ntohl(tcphdr->seqno);
 
-   ackno = tcphdr->ackno = ntohl(tcphdr->ackno);
 
-   tcphdr->wnd = ntohs(tcphdr->wnd);
 
-   flags = TCPH_FLAGS(tcphdr);
 
-   tcplen = p->tot_len + ((flags & (TCP_FIN | TCP_SYN)) ? 1 : 0);
 
-  803137a:	f010 0c03 	ands.w	ip, r0, #3
 
-   tcphdr->dest = ntohs(tcphdr->dest);
 
-   seqno = tcphdr->seqno = ntohl(tcphdr->seqno);
 
-   ackno = tcphdr->ackno = ntohl(tcphdr->ackno);
 
-   tcphdr->wnd = ntohs(tcphdr->wnd);
 
-   flags = TCPH_FLAGS(tcphdr);
 
-  803137e:	f000 013f 	and.w	r1, r0, #63	; 0x3f
 
-   tcplen = p->tot_len + ((flags & (TCP_FIN | TCP_SYN)) ? 1 : 0);
 
-  8031382:	bf18      	it	ne
 
-  8031384:	f04f 0c01 	movne.w	ip, #1
 
-   tcphdr->dest = ntohs(tcphdr->dest);
 
-   seqno = tcphdr->seqno = ntohl(tcphdr->seqno);
 
-   ackno = tcphdr->ackno = ntohl(tcphdr->ackno);
 
-   tcphdr->wnd = ntohs(tcphdr->wnd);
 
-   flags = TCPH_FLAGS(tcphdr);
 
-  8031388:	7019      	strb	r1, [r3, #0]
 
-   tcplen = p->tot_len + ((flags & (TCP_FIN | TCP_SYN)) ? 1 : 0);
 
-  803138a:	44c4      	add	ip, r8
 
-  803138c:	4b7c      	ldr	r3, [pc, #496]	; (8031580 <tcp_input+0x2c4>)
 
-     LWIP_ASSERT("tcp_input: active pcb->state != TIME-WAIT", pcb->state != TIME_WAIT);
 
-     LWIP_ASSERT("tcp_input: active pcb->state != LISTEN", pcb->state != LISTEN);
 
-     if (pcb->remote_port == tcphdr->src &&
 
-        pcb->local_port == tcphdr->dest &&
 
-        ip_addr_cmp(&(pcb->remote_ip), ¤t_iphdr_src) &&
 
-        ip_addr_cmp(&(pcb->local_ip), ¤t_iphdr_dest)) {
 
-  803138e:	6829      	ldr	r1, [r5, #0]
 
-   seqno = tcphdr->seqno = ntohl(tcphdr->seqno);
 
-   ackno = tcphdr->ackno = ntohl(tcphdr->ackno);
 
-   tcphdr->wnd = ntohs(tcphdr->wnd);
 
-   flags = TCPH_FLAGS(tcphdr);
 
-   tcplen = p->tot_len + ((flags & (TCP_FIN | TCP_SYN)) ? 1 : 0);
 
-  8031390:	fa1f fc8c 	uxth.w	ip, ip
 
-  8031394:	f8a3 c000 	strh.w	ip, [r3]
 
-   /* Demultiplex an incoming segment. First, we check if it is destined
 
-      for an active connection. */
 
-   prev = NULL;
 
-   
 
-   for(pcb = tcp_active_pcbs; pcb != NULL; pcb = pcb->next) {
 
-  8031398:	4b7a      	ldr	r3, [pc, #488]	; (8031584 <tcp_input+0x2c8>)
 
-  803139a:	f8d3 a000 	ldr.w	sl, [r3]
 
-     LWIP_ASSERT("tcp_input: active pcb->state != CLOSED", pcb->state != CLOSED);
 
-     LWIP_ASSERT("tcp_input: active pcb->state != TIME-WAIT", pcb->state != TIME_WAIT);
 
-     LWIP_ASSERT("tcp_input: active pcb->state != LISTEN", pcb->state != LISTEN);
 
-     if (pcb->remote_port == tcphdr->src &&
 
-        pcb->local_port == tcphdr->dest &&
 
-        ip_addr_cmp(&(pcb->remote_ip), ¤t_iphdr_src) &&
 
-  803139e:	4b7a      	ldr	r3, [pc, #488]	; (8031588 <tcp_input+0x2cc>)
 
-   tcphdr->dest = ntohs(tcphdr->dest);
 
-   seqno = tcphdr->seqno = ntohl(tcphdr->seqno);
 
-   ackno = tcphdr->ackno = ntohl(tcphdr->ackno);
 
-   tcphdr->wnd = ntohs(tcphdr->wnd);
 
-   flags = TCPH_FLAGS(tcphdr);
 
-  80313a0:	4602      	mov	r2, r0
 
-     LWIP_ASSERT("tcp_input: active pcb->state != CLOSED", pcb->state != CLOSED);
 
-     LWIP_ASSERT("tcp_input: active pcb->state != TIME-WAIT", pcb->state != TIME_WAIT);
 
-     LWIP_ASSERT("tcp_input: active pcb->state != LISTEN", pcb->state != LISTEN);
 
-     if (pcb->remote_port == tcphdr->src &&
 
-        pcb->local_port == tcphdr->dest &&
 
-        ip_addr_cmp(&(pcb->remote_ip), ¤t_iphdr_src) &&
 
-  80313a2:	f8d3 9000 	ldr.w	r9, [r3]
 
-   /* Demultiplex an incoming segment. First, we check if it is destined
 
-      for an active connection. */
 
-   prev = NULL;
 
-   
 
-   for(pcb = tcp_active_pcbs; pcb != NULL; pcb = pcb->next) {
 
-  80313a6:	4654      	mov	r4, sl
 
-   flags = TCPH_FLAGS(tcphdr);
 
-   tcplen = p->tot_len + ((flags & (TCP_FIN | TCP_SYN)) ? 1 : 0);
 
-   /* Demultiplex an incoming segment. First, we check if it is destined
 
-      for an active connection. */
 
-   prev = NULL;
 
-  80313a8:	4658      	mov	r0, fp
 
-   
 
-   for(pcb = tcp_active_pcbs; pcb != NULL; pcb = pcb->next) {
 
-  80313aa:	e019      	b.n	80313e0 <tcp_input+0x124>
 
-     LWIP_ASSERT("tcp_input: active pcb->state != CLOSED", pcb->state != CLOSED);
 
-     LWIP_ASSERT("tcp_input: active pcb->state != TIME-WAIT", pcb->state != TIME_WAIT);
 
-     LWIP_ASSERT("tcp_input: active pcb->state != LISTEN", pcb->state != LISTEN);
 
-     if (pcb->remote_port == tcphdr->src &&
 
-  80313ac:	8ba5      	ldrh	r5, [r4, #28]
 
-  80313ae:	883b      	ldrh	r3, [r7, #0]
 
-  80313b0:	429d      	cmp	r5, r3
 
-  80313b2:	d113      	bne.n	80313dc <tcp_input+0x120>
 
-  80313b4:	8b65      	ldrh	r5, [r4, #26]
 
-  80313b6:	887b      	ldrh	r3, [r7, #2]
 
-  80313b8:	429d      	cmp	r5, r3
 
-  80313ba:	d10f      	bne.n	80313dc <tcp_input+0x120>
 
-        pcb->local_port == tcphdr->dest &&
 
-  80313bc:	6863      	ldr	r3, [r4, #4]
 
-  80313be:	454b      	cmp	r3, r9
 
-  80313c0:	d10c      	bne.n	80313dc <tcp_input+0x120>
 
-        ip_addr_cmp(&(pcb->remote_ip), ¤t_iphdr_src) &&
 
-  80313c2:	6823      	ldr	r3, [r4, #0]
 
-  80313c4:	428b      	cmp	r3, r1
 
-  80313c6:	d109      	bne.n	80313dc <tcp_input+0x120>
 
-       /* Move this PCB to the front of the list so that subsequent
 
-          lookups will be faster (we exploit locality in TCP segment
 
-          arrivals). */
 
-       LWIP_ASSERT("tcp_input: pcb->next != pcb (before cache)", pcb->next != pcb);
 
-       if (prev != NULL) {
 
-  80313c8:	2800      	cmp	r0, #0
 
-  80313ca:	f000 8382 	beq.w	8031ad2 <tcp_input+0x816>
 
-         prev->next = pcb->next;
 
-  80313ce:	68e3      	ldr	r3, [r4, #12]
 
-  80313d0:	60c3      	str	r3, [r0, #12]
 
-         pcb->next = tcp_active_pcbs;
 
-         tcp_active_pcbs = pcb;
 
-  80313d2:	4b6c      	ldr	r3, [pc, #432]	; (8031584 <tcp_input+0x2c8>)
 
-          lookups will be faster (we exploit locality in TCP segment
 
-          arrivals). */
 
-       LWIP_ASSERT("tcp_input: pcb->next != pcb (before cache)", pcb->next != pcb);
 
-       if (prev != NULL) {
 
-         prev->next = pcb->next;
 
-         pcb->next = tcp_active_pcbs;
 
-  80313d4:	f8c4 a00c 	str.w	sl, [r4, #12]
 
-         tcp_active_pcbs = pcb;
 
-  80313d8:	601c      	str	r4, [r3, #0]
 
-  80313da:	e37a      	b.n	8031ad2 <tcp_input+0x816>
 
-  80313dc:	4620      	mov	r0, r4
 
-   /* Demultiplex an incoming segment. First, we check if it is destined
 
-      for an active connection. */
 
-   prev = NULL;
 
-   
 
-   for(pcb = tcp_active_pcbs; pcb != NULL; pcb = pcb->next) {
 
-  80313de:	68e4      	ldr	r4, [r4, #12]
 
-  80313e0:	2c00      	cmp	r4, #0
 
-  80313e2:	d1e3      	bne.n	80313ac <tcp_input+0xf0>
 
-  80313e4:	e372      	b.n	8031acc <tcp_input+0x810>
 
-   if (pcb == NULL) {
 
-     /* If it did not go to an active connection, we check the connections
 
-        in the TIME-WAIT state. */
 
-     for(pcb = tcp_tw_pcbs; pcb != NULL; pcb = pcb->next) {
 
-       LWIP_ASSERT("tcp_input: TIME-WAIT pcb->state == TIME-WAIT", pcb->state == TIME_WAIT);
 
-       if (pcb->remote_port == tcphdr->src &&
 
-  80313e6:	8b98      	ldrh	r0, [r3, #28]
 
-  80313e8:	883c      	ldrh	r4, [r7, #0]
 
-  80313ea:	4284      	cmp	r4, r0
 
-  80313ec:	d130      	bne.n	8031450 <tcp_input+0x194>
 
-          pcb->local_port == tcphdr->dest &&
 
-  80313ee:	8b58      	ldrh	r0, [r3, #26]
 
-   if (pcb == NULL) {
 
-     /* If it did not go to an active connection, we check the connections
 
-        in the TIME-WAIT state. */
 
-     for(pcb = tcp_tw_pcbs; pcb != NULL; pcb = pcb->next) {
 
-       LWIP_ASSERT("tcp_input: TIME-WAIT pcb->state == TIME-WAIT", pcb->state == TIME_WAIT);
 
-       if (pcb->remote_port == tcphdr->src &&
 
-  80313f0:	887d      	ldrh	r5, [r7, #2]
 
-  80313f2:	4285      	cmp	r5, r0
 
-  80313f4:	d12c      	bne.n	8031450 <tcp_input+0x194>
 
-          pcb->local_port == tcphdr->dest &&
 
-  80313f6:	6858      	ldr	r0, [r3, #4]
 
-  80313f8:	4548      	cmp	r0, r9
 
-  80313fa:	d129      	bne.n	8031450 <tcp_input+0x194>
 
-          ip_addr_cmp(&(pcb->remote_ip), ¤t_iphdr_src) &&
 
-  80313fc:	6818      	ldr	r0, [r3, #0]
 
-  80313fe:	4288      	cmp	r0, r1
 
-  8031400:	d126      	bne.n	8031450 <tcp_input+0x194>
 
-   /* RFC 1337: in TIME_WAIT, ignore RST and ACK FINs + any 'acceptable' segments */
 
-   /* RFC 793 3.9 Event Processing - Segment Arrives:
 
-    * - first check sequence number - we skip that one in TIME_WAIT (always
 
-    *   acceptable since we only send ACKs)
 
-    * - second check the RST bit (... return) */
 
-   if (flags & TCP_RST)  {
 
-  8031402:	f002 0104 	and.w	r1, r2, #4
 
-  8031406:	b2c9      	uxtb	r1, r1
 
-  8031408:	2900      	cmp	r1, #0
 
-  803140a:	f040 833f 	bne.w	8031a8c <tcp_input+0x7d0>
 
-     return ERR_OK;
 
-   }
 
-   /* - fourth, check the SYN bit, */
 
-   if (flags & TCP_SYN) {
 
-  803140e:	f002 0102 	and.w	r1, r2, #2
 
-  8031412:	b2c9      	uxtb	r1, r1
 
-  8031414:	b159      	cbz	r1, 803142e <tcp_input+0x172>
 
-     /* If an incoming segment is not acceptable, an acknowledgment
 
-        should be sent in reply */
 
-     if (TCP_SEQ_BETWEEN(seqno, pcb->rcv_nxt, pcb->rcv_nxt+pcb->rcv_wnd)) {
 
-  8031416:	4a57      	ldr	r2, [pc, #348]	; (8031574 <tcp_input+0x2b8>)
 
-  8031418:	6811      	ldr	r1, [r2, #0]
 
-  803141a:	6a9a      	ldr	r2, [r3, #40]	; 0x28
 
-  803141c:	1a8a      	subs	r2, r1, r2
 
-  803141e:	d40b      	bmi.n	8031438 <tcp_input+0x17c>
 
-  8031420:	8d98      	ldrh	r0, [r3, #44]	; 0x2c
 
-  8031422:	1a12      	subs	r2, r2, r0
 
-  8031424:	2a00      	cmp	r2, #0
 
-  8031426:	dc07      	bgt.n	8031438 <tcp_input+0x17c>
 
-       /* If the SYN is in the window it is an error, send a reset */
 
-       tcp_rst(ackno, seqno + tcplen, ip_current_dest_addr(), ip_current_src_addr(),
 
-  8031428:	9500      	str	r5, [sp, #0]
 
-  803142a:	9401      	str	r4, [sp, #4]
 
-  803142c:	e041      	b.n	80314b2 <tcp_input+0x1f6>
 
-         tcphdr->dest, tcphdr->src);
 
-       return ERR_OK;
 
-     }
 
-   } else if (flags & TCP_FIN) {
 
-  803142e:	07d2      	lsls	r2, r2, #31
 
-  8031430:	d502      	bpl.n	8031438 <tcp_input+0x17c>
 
-     /* - eighth, check the FIN bit: Remain in the TIME-WAIT state.
 
-          Restart the 2 MSL time-wait timeout.*/
 
-     pcb->tmr = tcp_ticks;
 
-  8031432:	4a56      	ldr	r2, [pc, #344]	; (803158c <tcp_input+0x2d0>)
 
-  8031434:	6812      	ldr	r2, [r2, #0]
 
-  8031436:	625a      	str	r2, [r3, #36]	; 0x24
 
-   }
 
-   if ((tcplen > 0))  {
 
-  8031438:	f1bc 0f00 	cmp.w	ip, #0
 
-  803143c:	f000 8326 	beq.w	8031a8c <tcp_input+0x7d0>
 
-     /* Acknowledge data, FIN or out-of-window SYN */
 
-     pcb->flags |= TF_ACK_NOW;
 
-  8031440:	7f9a      	ldrb	r2, [r3, #30]
 
-  8031442:	f042 0202 	orr.w	r2, r2, #2
 
-  8031446:	779a      	strb	r2, [r3, #30]
 
-     return tcp_output(pcb);
 
-  8031448:	4618      	mov	r0, r3
 
-  803144a:	f000 fe3d 	bl	80320c8 <tcp_output>
 
-  803144e:	e31d      	b.n	8031a8c <tcp_input+0x7d0>
 
-   }
 
-   if (pcb == NULL) {
 
-     /* If it did not go to an active connection, we check the connections
 
-        in the TIME-WAIT state. */
 
-     for(pcb = tcp_tw_pcbs; pcb != NULL; pcb = pcb->next) {
 
-  8031450:	68db      	ldr	r3, [r3, #12]
 
-  8031452:	2b00      	cmp	r3, #0
 
-  8031454:	d1c7      	bne.n	80313e6 <tcp_input+0x12a>
 
-     }
 
-     /* Finally, if we still did not get a match, we check all PCBs that
 
-        are LISTENing for incoming connections. */
 
-     prev = NULL;
 
-     for(lpcb = tcp_listen_pcbs.listen_pcbs; lpcb != NULL; lpcb = lpcb->next) {
 
-  8031456:	484e      	ldr	r0, [pc, #312]	; (8031590 <tcp_input+0x2d4>)
 
-  8031458:	6804      	ldr	r4, [r0, #0]
 
-  803145a:	4625      	mov	r5, r4
 
-  803145c:	e00f      	b.n	803147e <tcp_input+0x1c2>
 
-       if (lpcb->local_port == tcphdr->dest) {
 
-  803145e:	8b68      	ldrh	r0, [r5, #26]
 
-  8031460:	f8b7 8002 	ldrh.w	r8, [r7, #2]
 
-  8031464:	4580      	cmp	r8, r0
 
-  8031466:	d108      	bne.n	803147a <tcp_input+0x1be>
 
-           /* found an ANY-match */
 
-           lpcb_any = lpcb;
 
-           lpcb_prev = prev;
 
-         }
 
- #else /* SO_REUSE */
 
-         if (ip_addr_cmp(&(lpcb->local_ip), ¤t_iphdr_dest) ||
 
-  8031468:	f8d5 8000 	ldr.w	r8, [r5]
 
-  803146c:	4588      	cmp	r8, r1
 
-  803146e:	f000 8342 	beq.w	8031af6 <tcp_input+0x83a>
 
-             ip_addr_isany(&(lpcb->local_ip))) {
 
-  8031472:	f1b8 0f00 	cmp.w	r8, #0
 
-  8031476:	f000 833e 	beq.w	8031af6 <tcp_input+0x83a>
 
-  803147a:	462b      	mov	r3, r5
 
-     }
 
-     /* Finally, if we still did not get a match, we check all PCBs that
 
-        are LISTENing for incoming connections. */
 
-     prev = NULL;
 
-     for(lpcb = tcp_listen_pcbs.listen_pcbs; lpcb != NULL; lpcb = lpcb->next) {
 
-  803147c:	68ed      	ldr	r5, [r5, #12]
 
-  803147e:	2d00      	cmp	r5, #0
 
-  8031480:	d1ed      	bne.n	803145e <tcp_input+0x1a2>
 
-  8031482:	e33c      	b.n	8031afe <tcp_input+0x842>
 
-     if (lpcb != NULL) {
 
-       /* Move this PCB to the front of the list so that subsequent
 
-          lookups will be faster (we exploit locality in TCP segment
 
-          arrivals). */
 
-       if (prev != NULL) {
 
-         ((struct tcp_pcb_listen *)prev)->next = lpcb->next;
 
-  8031484:	68e9      	ldr	r1, [r5, #12]
 
-  8031486:	60d9      	str	r1, [r3, #12]
 
-               /* our successor is the remainder of the listening list */
 
-         lpcb->next = tcp_listen_pcbs.listen_pcbs;
 
-               /* put this listening pcb at the head of the listening list */
 
-         tcp_listen_pcbs.listen_pcbs = lpcb;
 
-  8031488:	4b41      	ldr	r3, [pc, #260]	; (8031590 <tcp_input+0x2d4>)
 
-          lookups will be faster (we exploit locality in TCP segment
 
-          arrivals). */
 
-       if (prev != NULL) {
 
-         ((struct tcp_pcb_listen *)prev)->next = lpcb->next;
 
-               /* our successor is the remainder of the listening list */
 
-         lpcb->next = tcp_listen_pcbs.listen_pcbs;
 
-  803148a:	60ec      	str	r4, [r5, #12]
 
-               /* put this listening pcb at the head of the listening list */
 
-         tcp_listen_pcbs.listen_pcbs = lpcb;
 
-  803148c:	601d      	str	r5, [r3, #0]
 
- tcp_listen_input(struct tcp_pcb_listen *pcb)
 
- {
 
-   struct tcp_pcb *npcb;
 
-   err_t rc;
 
-   if (flags & TCP_RST) {
 
-  803148e:	f002 0304 	and.w	r3, r2, #4
 
-  8031492:	b2db      	uxtb	r3, r3
 
-  8031494:	2b00      	cmp	r3, #0
 
-  8031496:	f040 82f9 	bne.w	8031a8c <tcp_input+0x7d0>
 
-     return ERR_OK;
 
-   }
 
-   /* In the LISTEN state, we check for incoming SYN segments,
 
-      creates a new PCB, and responds with a SYN|ACK. */
 
-   if (flags & TCP_ACK) {
 
-  803149a:	f002 0810 	and.w	r8, r2, #16
 
-  803149e:	fa5f f888 	uxtb.w	r8, r8
 
-  80314a2:	f1b8 0f00 	cmp.w	r8, #0
 
-  80314a6:	d00c      	beq.n	80314c2 <tcp_input+0x206>
 
-     /* For incoming segments with the ACK flag set, respond with a
 
-        RST. */
 
-     LWIP_DEBUGF(TCP_RST_DEBUG, ("tcp_listen_input: ACK in LISTEN, sending reset\n"));
 
-     tcp_rst(ackno, seqno + tcplen, ip_current_dest_addr(),
 
-  80314a8:	4b32      	ldr	r3, [pc, #200]	; (8031574 <tcp_input+0x2b8>)
 
-  80314aa:	6819      	ldr	r1, [r3, #0]
 
-  80314ac:	9000      	str	r0, [sp, #0]
 
-  80314ae:	883b      	ldrh	r3, [r7, #0]
 
-  80314b0:	9301      	str	r3, [sp, #4]
 
-  80314b2:	4b31      	ldr	r3, [pc, #196]	; (8031578 <tcp_input+0x2bc>)
 
-  80314b4:	6818      	ldr	r0, [r3, #0]
 
-  80314b6:	4461      	add	r1, ip
 
-  80314b8:	4a2d      	ldr	r2, [pc, #180]	; (8031570 <tcp_input+0x2b4>)
 
-  80314ba:	4b33      	ldr	r3, [pc, #204]	; (8031588 <tcp_input+0x2cc>)
 
-  80314bc:	f000 ff28 	bl	8032310 <tcp_rst>
 
-  80314c0:	e2e4      	b.n	8031a8c <tcp_input+0x7d0>
 
-       ip_current_src_addr(), tcphdr->dest, tcphdr->src);
 
-   } else if (flags & TCP_SYN) {
 
-  80314c2:	f002 0202 	and.w	r2, r2, #2
 
-  80314c6:	b2d2      	uxtb	r2, r2
 
-  80314c8:	2a00      	cmp	r2, #0
 
-  80314ca:	f000 82df 	beq.w	8031a8c <tcp_input+0x7d0>
 
-     if (pcb->accepts_pending >= pcb->backlog) {
 
-       LWIP_DEBUGF(TCP_DEBUG, ("tcp_listen_input: listen backlog exceeded for port %"U16_F"\n", tcphdr->dest));
 
-       return ERR_ABRT;
 
-     }
 
- #endif /* TCP_LISTEN_BACKLOG */
 
-     npcb = tcp_alloc(pcb->prio);
 
-  80314ce:	7e68      	ldrb	r0, [r5, #25]
 
-  80314d0:	f7ff fb4c 	bl	8030b6c <tcp_alloc>
 
-     /* If a new PCB could not be created (probably due to lack of memory),
 
-        we don't do anything, but rely on the sender will retransmit the
 
-        SYN at a time when we have more memory available. */
 
-     if (npcb == NULL) {
 
-  80314d4:	4604      	mov	r4, r0
 
-  80314d6:	2800      	cmp	r0, #0
 
-  80314d8:	f000 82d8 	beq.w	8031a8c <tcp_input+0x7d0>
 
-     }
 
- #if TCP_LISTEN_BACKLOG
 
-     pcb->accepts_pending++;
 
- #endif /* TCP_LISTEN_BACKLOG */
 
-     /* Set up the new PCB. */
 
-     ip_addr_copy(npcb->local_ip, current_iphdr_dest);
 
-  80314dc:	4b24      	ldr	r3, [pc, #144]	; (8031570 <tcp_input+0x2b4>)
 
-  80314de:	681b      	ldr	r3, [r3, #0]
 
-  80314e0:	6003      	str	r3, [r0, #0]
 
-     npcb->local_port = pcb->local_port;
 
-  80314e2:	8b6b      	ldrh	r3, [r5, #26]
 
-  80314e4:	8343      	strh	r3, [r0, #26]
 
-     ip_addr_copy(npcb->remote_ip, current_iphdr_src);
 
-  80314e6:	4b28      	ldr	r3, [pc, #160]	; (8031588 <tcp_input+0x2cc>)
 
-  80314e8:	681b      	ldr	r3, [r3, #0]
 
-  80314ea:	6043      	str	r3, [r0, #4]
 
-     npcb->remote_port = tcphdr->src;
 
-  80314ec:	4b1f      	ldr	r3, [pc, #124]	; (803156c <tcp_input+0x2b0>)
 
-  80314ee:	681b      	ldr	r3, [r3, #0]
 
-  80314f0:	7859      	ldrb	r1, [r3, #1]
 
-  80314f2:	781a      	ldrb	r2, [r3, #0]
 
-  80314f4:	ea42 2201 	orr.w	r2, r2, r1, lsl #8
 
-  80314f8:	8382      	strh	r2, [r0, #28]
 
-     npcb->state = SYN_RCVD;
 
-  80314fa:	2203      	movs	r2, #3
 
-  80314fc:	7602      	strb	r2, [r0, #24]
 
-     npcb->rcv_nxt = seqno + 1;
 
-  80314fe:	4a1d      	ldr	r2, [pc, #116]	; (8031574 <tcp_input+0x2b8>)
 
-  8031500:	6812      	ldr	r2, [r2, #0]
 
-  8031502:	1c51      	adds	r1, r2, #1
 
-  8031504:	6281      	str	r1, [r0, #40]	; 0x28
 
-     npcb->rcv_ann_right_edge = npcb->rcv_nxt;
 
-  8031506:	6301      	str	r1, [r0, #48]	; 0x30
 
-     npcb->snd_wnd = tcphdr->wnd;
 
-  8031508:	89db      	ldrh	r3, [r3, #14]
 
-  803150a:	f8a0 3060 	strh.w	r3, [r0, #96]	; 0x60
 
-     npcb->snd_wnd_max = tcphdr->wnd;
 
-  803150e:	f8a0 3062 	strh.w	r3, [r0, #98]	; 0x62
 
-     npcb->ssthresh = npcb->snd_wnd;
 
-  8031512:	f8a0 304e 	strh.w	r3, [r0, #78]	; 0x4e
 
-     npcb->snd_wl1 = seqno - 1;/* initialise to seqno-1 to force window update */
 
-     npcb->callback_arg = pcb->callback_arg;
 
-  8031516:	692b      	ldr	r3, [r5, #16]
 
-  8031518:	6103      	str	r3, [r0, #16]
 
- #if LWIP_CALLBACK_API
 
-     npcb->accept = pcb->accept;
 
-  803151a:	696b      	ldr	r3, [r5, #20]
 
-     npcb->rcv_nxt = seqno + 1;
 
-     npcb->rcv_ann_right_edge = npcb->rcv_nxt;
 
-     npcb->snd_wnd = tcphdr->wnd;
 
-     npcb->snd_wnd_max = tcphdr->wnd;
 
-     npcb->ssthresh = npcb->snd_wnd;
 
-     npcb->snd_wl1 = seqno - 1;/* initialise to seqno-1 to force window update */
 
-  803151c:	3a01      	subs	r2, #1
 
-  803151e:	6542      	str	r2, [r0, #84]	; 0x54
 
-     npcb->callback_arg = pcb->callback_arg;
 
- #if LWIP_CALLBACK_API
 
-     npcb->accept = pcb->accept;
 
-  8031520:	6143      	str	r3, [r0, #20]
 
- #endif /* LWIP_CALLBACK_API */
 
-     /* inherit socket options */
 
-     npcb->so_options = pcb->so_options & SOF_INHERITED;
 
-  8031522:	7a2b      	ldrb	r3, [r5, #8]
 
-  8031524:	f023 0373 	bic.w	r3, r3, #115	; 0x73
 
-  8031528:	7203      	strb	r3, [r0, #8]
 
-     /* Register the new PCB so that we can begin receiving segments
 
-        for it. */
 
-     TCP_REG_ACTIVE(npcb);
 
-  803152a:	4b16      	ldr	r3, [pc, #88]	; (8031584 <tcp_input+0x2c8>)
 
-  803152c:	681a      	ldr	r2, [r3, #0]
 
-  803152e:	6018      	str	r0, [r3, #0]
 
-  8031530:	60c2      	str	r2, [r0, #12]
 
-  8031532:	f001 f887 	bl	8032644 <tcp_timer_needed>
 
-  8031536:	4b17      	ldr	r3, [pc, #92]	; (8031594 <tcp_input+0x2d8>)
 
-  8031538:	2201      	movs	r2, #1
 
-     /* Parse any options in the SYN. */
 
-     tcp_parseopt(npcb);
 
-  803153a:	4620      	mov	r0, r4
 
- #endif /* LWIP_CALLBACK_API */
 
-     /* inherit socket options */
 
-     npcb->so_options = pcb->so_options & SOF_INHERITED;
 
-     /* Register the new PCB so that we can begin receiving segments
 
-        for it. */
 
-     TCP_REG_ACTIVE(npcb);
 
-  803153c:	701a      	strb	r2, [r3, #0]
 
-     /* Parse any options in the SYN. */
 
-     tcp_parseopt(npcb);
 
-  803153e:	f7ff fc29 	bl	8030d94 <tcp_parseopt>
 
- #if TCP_CALCULATE_EFF_SEND_MSS
 
-     npcb->mss = tcp_eff_send_mss(npcb->mss, &(npcb->remote_ip));
 
-  8031542:	1d21      	adds	r1, r4, #4
 
-  8031544:	8ee0      	ldrh	r0, [r4, #54]	; 0x36
 
-  8031546:	f7ff fb9c 	bl	8030c82 <tcp_eff_send_mss>
 
-  803154a:	86e0      	strh	r0, [r4, #54]	; 0x36
 
- #endif /* TCP_CALCULATE_EFF_SEND_MSS */
 
-     snmp_inc_tcppassiveopens();
 
-  803154c:	f003 fb64 	bl	8034c18 <snmp_inc_tcppassiveopens>
 
-     /* Send a SYN|ACK together with the MSS option. */
 
-     rc = tcp_enqueue_flags(npcb, TCP_SYN | TCP_ACK);
 
-  8031550:	4620      	mov	r0, r4
 
-  8031552:	2112      	movs	r1, #18
 
-  8031554:	f000 fd28 	bl	8031fa8 <tcp_enqueue_flags>
 
-     if (rc != ERR_OK) {
 
-  8031558:	b120      	cbz	r0, 8031564 <tcp_input+0x2a8>
 
-       tcp_abandon(npcb, 0);
 
-  803155a:	4620      	mov	r0, r4
 
-  803155c:	4641      	mov	r1, r8
 
-  803155e:	f7ff f941 	bl	80307e4 <tcp_abandon>
 
-  8031562:	e293      	b.n	8031a8c <tcp_input+0x7d0>
 
-       return rc;
 
-     }
 
-     return tcp_output(npcb);
 
-  8031564:	4620      	mov	r0, r4
 
-  8031566:	e770      	b.n	803144a <tcp_input+0x18e>
 
-  8031568:	2000c3f8 	.word	0x2000c3f8
 
-  803156c:	2000c3e0 	.word	0x2000c3e0
 
-  8031570:	2000f6e4 	.word	0x2000f6e4
 
-  8031574:	2000c3e4 	.word	0x2000c3e4
 
-  8031578:	2000c3ec 	.word	0x2000c3ec
 
-  803157c:	2000c3f0 	.word	0x2000c3f0
 
-  8031580:	2000c3e8 	.word	0x2000c3e8
 
-  8031584:	2000f6bc 	.word	0x2000f6bc
 
-  8031588:	2000f6dc 	.word	0x2000f6dc
 
-  803158c:	2000f6c0 	.word	0x2000f6c0
 
-  8031590:	2000f6c4 	.word	0x2000f6c4
 
-  8031594:	2000f6b8 	.word	0x2000f6b8
 
-     recv_data = NULL;
 
-     recv_flags = 0;
 
-     if (flags & TCP_PSH) {
 
-       p->flags |= PBUF_FLAG_PUSH;
 
-  8031598:	7b73      	ldrb	r3, [r6, #13]
 
-  803159a:	f043 0301 	orr.w	r3, r3, #1
 
-  803159e:	7373      	strb	r3, [r6, #13]
 
-     }
 
-     /* If there is data which was previously "refused" by upper layer */
 
-     if (pcb->refused_data != NULL) {
 
-  80315a0:	6f63      	ldr	r3, [r4, #116]	; 0x74
 
-  80315a2:	b163      	cbz	r3, 80315be <tcp_input+0x302>
 
-       if ((tcp_process_refused_data(pcb) == ERR_ABRT) ||
 
-  80315a4:	4620      	mov	r0, r4
 
-  80315a6:	f7ff fa57 	bl	8030a58 <tcp_process_refused_data>
 
-  80315aa:	300a      	adds	r0, #10
 
-  80315ac:	d004      	beq.n	80315b8 <tcp_input+0x2fc>
 
-  80315ae:	6f63      	ldr	r3, [r4, #116]	; 0x74
 
-  80315b0:	b12b      	cbz	r3, 80315be <tcp_input+0x302>
 
-         ((pcb->refused_data != NULL) && (tcplen > 0))) {
 
-  80315b2:	4b9f      	ldr	r3, [pc, #636]	; (8031830 <tcp_input+0x574>)
 
-  80315b4:	881b      	ldrh	r3, [r3, #0]
 
-  80315b6:	b113      	cbz	r3, 80315be <tcp_input+0x302>
 
-         /* pcb has been aborted or refused data is still refused and the new
 
-            segment contains data */
 
-         TCP_STATS_INC(tcp.drop);
 
-         snmp_inc_tcpinerrs();
 
-  80315b8:	f003 fb5e 	bl	8034c78 <snmp_inc_tcpinerrs>
 
-         goto aborted;
 
-  80315bc:	e249      	b.n	8031a52 <tcp_input+0x796>
 
-       }
 
-     }
 
-     tcp_input_pcb = pcb;
 
-  80315be:	4b9d      	ldr	r3, [pc, #628]	; (8031834 <tcp_input+0x578>)
 
-  80315c0:	601c      	str	r4, [r3, #0]
 
-   err_t err;
 
-   err = ERR_OK;
 
-   /* Process incoming RST segments. */
 
-   if (flags & TCP_RST) {
 
-  80315c2:	4b9d      	ldr	r3, [pc, #628]	; (8031838 <tcp_input+0x57c>)
 
-  80315c4:	781b      	ldrb	r3, [r3, #0]
 
-  80315c6:	f003 0204 	and.w	r2, r3, #4
 
-  80315ca:	b2d2      	uxtb	r2, r2
 
-  80315cc:	b1aa      	cbz	r2, 80315fa <tcp_input+0x33e>
 
-     /* First, determine if the reset is acceptable. */
 
-     if (pcb->state == SYN_SENT) {
 
-  80315ce:	7e23      	ldrb	r3, [r4, #24]
 
-  80315d0:	2b02      	cmp	r3, #2
 
-  80315d2:	d106      	bne.n	80315e2 <tcp_input+0x326>
 
-       if (ackno == pcb->snd_nxt) {
 
-  80315d4:	4b99      	ldr	r3, [pc, #612]	; (803183c <tcp_input+0x580>)
 
-  80315d6:	681a      	ldr	r2, [r3, #0]
 
-  80315d8:	6d23      	ldr	r3, [r4, #80]	; 0x50
 
-  80315da:	429a      	cmp	r2, r3
 
-  80315dc:	f040 82a1 	bne.w	8031b22 <tcp_input+0x866>
 
-  80315e0:	e296      	b.n	8031b10 <tcp_input+0x854>
 
-         acceptable = 1;
 
-       }
 
-     } else {
 
-       if (TCP_SEQ_BETWEEN(seqno, pcb->rcv_nxt, 
 
-  80315e2:	4b97      	ldr	r3, [pc, #604]	; (8031840 <tcp_input+0x584>)
 
-  80315e4:	681a      	ldr	r2, [r3, #0]
 
-  80315e6:	6aa3      	ldr	r3, [r4, #40]	; 0x28
 
-  80315e8:	1ad3      	subs	r3, r2, r3
 
-  80315ea:	f100 829a 	bmi.w	8031b22 <tcp_input+0x866>
 
-  80315ee:	8da1      	ldrh	r1, [r4, #44]	; 0x2c
 
-  80315f0:	1a5b      	subs	r3, r3, r1
 
-  80315f2:	2b00      	cmp	r3, #0
 
-  80315f4:	f300 8295 	bgt.w	8031b22 <tcp_input+0x866>
 
-  80315f8:	e28a      	b.n	8031b10 <tcp_input+0x854>
 
-        seqno, pcb->rcv_nxt));
 
-       return ERR_OK;
 
-     }
 
-   }
 
-   if ((flags & TCP_SYN) && (pcb->state != SYN_SENT && pcb->state != SYN_RCVD)) { 
 
-  80315fa:	f003 0302 	and.w	r3, r3, #2
 
-  80315fe:	b2db      	uxtb	r3, r3
 
-  8031600:	b123      	cbz	r3, 803160c <tcp_input+0x350>
 
-  8031602:	7e23      	ldrb	r3, [r4, #24]
 
-  8031604:	3b02      	subs	r3, #2
 
-  8031606:	2b01      	cmp	r3, #1
 
-  8031608:	d900      	bls.n	803160c <tcp_input+0x350>
 
-  803160a:	e06b      	b.n	80316e4 <tcp_input+0x428>
 
-     /* Cope with new connection attempt after remote end crashed */
 
-     tcp_ack_now(pcb);
 
-     return ERR_OK;
 
-   }
 
-   
 
-   if ((pcb->flags & TF_RXCLOSED) == 0) {
 
-  803160c:	7fa3      	ldrb	r3, [r4, #30]
 
-  803160e:	f003 0310 	and.w	r3, r3, #16
 
-  8031612:	b2db      	uxtb	r3, r3
 
-  8031614:	b913      	cbnz	r3, 803161c <tcp_input+0x360>
 
-     /* Update the PCB (in)activity timer unless rx is closed (see tcp_shutdown) */
 
-     pcb->tmr = tcp_ticks;
 
-  8031616:	4b8b      	ldr	r3, [pc, #556]	; (8031844 <tcp_input+0x588>)
 
-  8031618:	681b      	ldr	r3, [r3, #0]
 
-  803161a:	6263      	str	r3, [r4, #36]	; 0x24
 
-   }
 
-   pcb->keep_cnt_sent = 0;
 
-  803161c:	2300      	movs	r3, #0
 
-  803161e:	f884 3092 	strb.w	r3, [r4, #146]	; 0x92
 
-   tcp_parseopt(pcb);
 
-  8031622:	4620      	mov	r0, r4
 
-  8031624:	f7ff fbb6 	bl	8030d94 <tcp_parseopt>
 
-   /* Do different things depending on the TCP state. */
 
-   switch (pcb->state) {
 
-  8031628:	7e23      	ldrb	r3, [r4, #24]
 
-  803162a:	3b02      	subs	r3, #2
 
-  803162c:	2b07      	cmp	r3, #7
 
-  803162e:	f200 8278 	bhi.w	8031b22 <tcp_input+0x866>
 
-  8031632:	e8df f013 	tbh	[pc, r3, lsl #1]
 
-  8031636:	0008      	.short	0x0008
 
-  8031638:	00c90077 	.word	0x00c90077
 
-  803163c:	013000da 	.word	0x013000da
 
-  8031640:	015200c9 	.word	0x015200c9
 
-  8031644:	0186      	.short	0x0186
 
-   case SYN_SENT:
 
-     LWIP_DEBUGF(TCP_INPUT_DEBUG, ("SYN-SENT: ackno %"U32_F" pcb->snd_nxt %"U32_F" unacked %"U32_F"\n", ackno,
 
-      pcb->snd_nxt, ntohl(pcb->unacked->tcphdr->seqno)));
 
-     /* received SYN ACK with expected sequence number? */
 
-     if ((flags & TCP_ACK) && (flags & TCP_SYN)
 
-  8031646:	4b7c      	ldr	r3, [pc, #496]	; (8031838 <tcp_input+0x57c>)
 
-  8031648:	781b      	ldrb	r3, [r3, #0]
 
-  803164a:	f003 0312 	and.w	r3, r3, #18
 
-  803164e:	2b12      	cmp	r3, #18
 
-  8031650:	d153      	bne.n	80316fa <tcp_input+0x43e>
 
-         && ackno == ntohl(pcb->unacked->tcphdr->seqno) + 1) {
 
-  8031652:	6f23      	ldr	r3, [r4, #112]	; 0x70
 
-  8031654:	4d79      	ldr	r5, [pc, #484]	; (803183c <tcp_input+0x580>)
 
-  8031656:	68db      	ldr	r3, [r3, #12]
 
-  8031658:	682e      	ldr	r6, [r5, #0]
 
-  803165a:	6858      	ldr	r0, [r3, #4]
 
-  803165c:	f7fd faa4 	bl	802eba8 <lwip_ntohl>
 
-  8031660:	3001      	adds	r0, #1
 
-  8031662:	4286      	cmp	r6, r0
 
-  8031664:	d149      	bne.n	80316fa <tcp_input+0x43e>
 
-       pcb->snd_buf++;
 
-  8031666:	f8b4 3066 	ldrh.w	r3, [r4, #102]	; 0x66
 
-       pcb->snd_wnd_max = tcphdr->wnd;
 
-       pcb->snd_wl1 = seqno - 1; /* initialise to seqno - 1 to force window update */
 
-       pcb->state = ESTABLISHED;
 
- #if TCP_CALCULATE_EFF_SEND_MSS
 
-       pcb->mss = tcp_eff_send_mss(pcb->mss, &(pcb->remote_ip));
 
-  803166a:	8ee0      	ldrh	r0, [r4, #54]	; 0x36
 
-     LWIP_DEBUGF(TCP_INPUT_DEBUG, ("SYN-SENT: ackno %"U32_F" pcb->snd_nxt %"U32_F" unacked %"U32_F"\n", ackno,
 
-      pcb->snd_nxt, ntohl(pcb->unacked->tcphdr->seqno)));
 
-     /* received SYN ACK with expected sequence number? */
 
-     if ((flags & TCP_ACK) && (flags & TCP_SYN)
 
-         && ackno == ntohl(pcb->unacked->tcphdr->seqno) + 1) {
 
-       pcb->snd_buf++;
 
-  803166c:	3301      	adds	r3, #1
 
-  803166e:	f8a4 3066 	strh.w	r3, [r4, #102]	; 0x66
 
-       pcb->rcv_nxt = seqno + 1;
 
-  8031672:	4b73      	ldr	r3, [pc, #460]	; (8031840 <tcp_input+0x584>)
 
-  8031674:	681b      	ldr	r3, [r3, #0]
 
-  8031676:	1c5a      	adds	r2, r3, #1
 
-  8031678:	62a2      	str	r2, [r4, #40]	; 0x28
 
-       pcb->rcv_ann_right_edge = pcb->rcv_nxt;
 
-  803167a:	6322      	str	r2, [r4, #48]	; 0x30
 
-       pcb->lastack = ackno;
 
-  803167c:	682a      	ldr	r2, [r5, #0]
 
-  803167e:	64a2      	str	r2, [r4, #72]	; 0x48
 
-       pcb->snd_wnd = tcphdr->wnd;
 
-  8031680:	4a71      	ldr	r2, [pc, #452]	; (8031848 <tcp_input+0x58c>)
 
-  8031682:	6812      	ldr	r2, [r2, #0]
 
-       pcb->snd_wnd_max = tcphdr->wnd;
 
-       pcb->snd_wl1 = seqno - 1; /* initialise to seqno - 1 to force window update */
 
-  8031684:	3b01      	subs	r3, #1
 
-         && ackno == ntohl(pcb->unacked->tcphdr->seqno) + 1) {
 
-       pcb->snd_buf++;
 
-       pcb->rcv_nxt = seqno + 1;
 
-       pcb->rcv_ann_right_edge = pcb->rcv_nxt;
 
-       pcb->lastack = ackno;
 
-       pcb->snd_wnd = tcphdr->wnd;
 
-  8031686:	89d2      	ldrh	r2, [r2, #14]
 
-       pcb->snd_wnd_max = tcphdr->wnd;
 
-       pcb->snd_wl1 = seqno - 1; /* initialise to seqno - 1 to force window update */
 
-  8031688:	6563      	str	r3, [r4, #84]	; 0x54
 
-       pcb->state = ESTABLISHED;
 
-  803168a:	2304      	movs	r3, #4
 
-  803168c:	7623      	strb	r3, [r4, #24]
 
- #if TCP_CALCULATE_EFF_SEND_MSS
 
-       pcb->mss = tcp_eff_send_mss(pcb->mss, &(pcb->remote_ip));
 
-  803168e:	18e1      	adds	r1, r4, r3
 
-         && ackno == ntohl(pcb->unacked->tcphdr->seqno) + 1) {
 
-       pcb->snd_buf++;
 
-       pcb->rcv_nxt = seqno + 1;
 
-       pcb->rcv_ann_right_edge = pcb->rcv_nxt;
 
-       pcb->lastack = ackno;
 
-       pcb->snd_wnd = tcphdr->wnd;
 
-  8031690:	f8a4 2060 	strh.w	r2, [r4, #96]	; 0x60
 
-       pcb->snd_wnd_max = tcphdr->wnd;
 
-  8031694:	f8a4 2062 	strh.w	r2, [r4, #98]	; 0x62
 
-       pcb->snd_wl1 = seqno - 1; /* initialise to seqno - 1 to force window update */
 
-       pcb->state = ESTABLISHED;
 
- #if TCP_CALCULATE_EFF_SEND_MSS
 
-       pcb->mss = tcp_eff_send_mss(pcb->mss, &(pcb->remote_ip));
 
-  8031698:	f7ff faf3 	bl	8030c82 <tcp_eff_send_mss>
 
- #endif /* TCP_CALCULATE_EFF_SEND_MSS */
 
-       /* Set ssthresh again after changing pcb->mss (already set in tcp_connect
 
-        * but for the default value of pcb->mss) */
 
-       pcb->ssthresh = pcb->mss * 10;
 
-  803169c:	230a      	movs	r3, #10
 
-  803169e:	4343      	muls	r3, r0
 
-  80316a0:	f8a4 304e 	strh.w	r3, [r4, #78]	; 0x4e
 
-       pcb->cwnd = ((pcb->cwnd == 1) ? (pcb->mss * 2) : pcb->mss);
 
-  80316a4:	f8b4 304c 	ldrh.w	r3, [r4, #76]	; 0x4c
 
-       pcb->snd_wnd_max = tcphdr->wnd;
 
-       pcb->snd_wl1 = seqno - 1; /* initialise to seqno - 1 to force window update */
 
-       pcb->state = ESTABLISHED;
 
- #if TCP_CALCULATE_EFF_SEND_MSS
 
-       pcb->mss = tcp_eff_send_mss(pcb->mss, &(pcb->remote_ip));
 
-  80316a8:	86e0      	strh	r0, [r4, #54]	; 0x36
 
-       /* Set ssthresh again after changing pcb->mss (already set in tcp_connect
 
-        * but for the default value of pcb->mss) */
 
-       pcb->ssthresh = pcb->mss * 10;
 
-       pcb->cwnd = ((pcb->cwnd == 1) ? (pcb->mss * 2) : pcb->mss);
 
-  80316aa:	2b01      	cmp	r3, #1
 
-  80316ac:	d101      	bne.n	80316b2 <tcp_input+0x3f6>
 
-  80316ae:	0040      	lsls	r0, r0, #1
 
-  80316b0:	b280      	uxth	r0, r0
 
-       LWIP_ASSERT("pcb->snd_queuelen > 0", (pcb->snd_queuelen > 0));
 
-       --pcb->snd_queuelen;
 
-  80316b2:	f8b4 3068 	ldrh.w	r3, [r4, #104]	; 0x68
 
-       /* Set ssthresh again after changing pcb->mss (already set in tcp_connect
 
-        * but for the default value of pcb->mss) */
 
-       pcb->ssthresh = pcb->mss * 10;
 
-       pcb->cwnd = ((pcb->cwnd == 1) ? (pcb->mss * 2) : pcb->mss);
 
-  80316b6:	f8a4 004c 	strh.w	r0, [r4, #76]	; 0x4c
 
-       LWIP_ASSERT("pcb->snd_queuelen > 0", (pcb->snd_queuelen > 0));
 
-       --pcb->snd_queuelen;
 
-       LWIP_DEBUGF(TCP_QLEN_DEBUG, ("tcp_process: SYN-SENT --queuelen %"U16_F"\n", (u16_t)pcb->snd_queuelen));
 
-       rseg = pcb->unacked;
 
-  80316ba:	6f20      	ldr	r0, [r4, #112]	; 0x70
 
-        * but for the default value of pcb->mss) */
 
-       pcb->ssthresh = pcb->mss * 10;
 
-       pcb->cwnd = ((pcb->cwnd == 1) ? (pcb->mss * 2) : pcb->mss);
 
-       LWIP_ASSERT("pcb->snd_queuelen > 0", (pcb->snd_queuelen > 0));
 
-       --pcb->snd_queuelen;
 
-  80316bc:	3b01      	subs	r3, #1
 
-  80316be:	f8a4 3068 	strh.w	r3, [r4, #104]	; 0x68
 
-       LWIP_DEBUGF(TCP_QLEN_DEBUG, ("tcp_process: SYN-SENT --queuelen %"U16_F"\n", (u16_t)pcb->snd_queuelen));
 
-       rseg = pcb->unacked;
 
-       pcb->unacked = rseg->next;
 
-  80316c2:	6803      	ldr	r3, [r0, #0]
 
-  80316c4:	6723      	str	r3, [r4, #112]	; 0x70
 
-       tcp_seg_free(rseg);
 
-  80316c6:	f7fe fed0 	bl	803046a <tcp_seg_free>
 
-       /* If there's nothing left to acknowledge, stop the retransmit
 
-          timer, otherwise reset it to start again */
 
-       if(pcb->unacked == NULL)
 
-  80316ca:	6f23      	ldr	r3, [r4, #112]	; 0x70
 
-  80316cc:	b91b      	cbnz	r3, 80316d6 <tcp_input+0x41a>
 
-         pcb->rtime = -1;
 
-  80316ce:	f64f 73ff 	movw	r3, #65535	; 0xffff
 
-  80316d2:	86a3      	strh	r3, [r4, #52]	; 0x34
 
-  80316d4:	e003      	b.n	80316de <tcp_input+0x422>
 
-       else {
 
-         pcb->rtime = 0;
 
-  80316d6:	2300      	movs	r3, #0
 
-  80316d8:	86a3      	strh	r3, [r4, #52]	; 0x34
 
-         pcb->nrtx = 0;
 
-  80316da:	f884 3046 	strb.w	r3, [r4, #70]	; 0x46
 
-       }
 
-       /* Call the user specified function to call when sucessfully
 
-        * connected. */
 
-       TCP_EVENT_CONNECTED(pcb, ERR_OK, err);
 
-  80316de:	f8d4 3080 	ldr.w	r3, [r4, #128]	; 0x80
 
-  80316e2:	b91b      	cbnz	r3, 80316ec <tcp_input+0x430>
 
-       if (err == ERR_ABRT) {
 
-         return ERR_ABRT;
 
-       }
 
-       tcp_ack_now(pcb);
 
-  80316e4:	7fa3      	ldrb	r3, [r4, #30]
 
-  80316e6:	f043 0302 	orr.w	r3, r3, #2
 
-  80316ea:	e219      	b.n	8031b20 <tcp_input+0x864>
 
-         pcb->nrtx = 0;
 
-       }
 
-       /* Call the user specified function to call when sucessfully
 
-        * connected. */
 
-       TCP_EVENT_CONNECTED(pcb, ERR_OK, err);
 
-  80316ec:	2200      	movs	r2, #0
 
-  80316ee:	6920      	ldr	r0, [r4, #16]
 
-  80316f0:	4621      	mov	r1, r4
 
-  80316f2:	4798      	blx	r3
 
-       if (err == ERR_ABRT) {
 
-  80316f4:	300a      	adds	r0, #10
 
-  80316f6:	d1f5      	bne.n	80316e4 <tcp_input+0x428>
 
-  80316f8:	e1ab      	b.n	8031a52 <tcp_input+0x796>
 
-         return ERR_ABRT;
 
-       }
 
-       tcp_ack_now(pcb);
 
-     }
 
-     /* received ACK? possibly a half-open connection */
 
-     else if (flags & TCP_ACK) {
 
-  80316fa:	4b4f      	ldr	r3, [pc, #316]	; (8031838 <tcp_input+0x57c>)
 
-  80316fc:	781b      	ldrb	r3, [r3, #0]
 
-  80316fe:	f003 0310 	and.w	r3, r3, #16
 
-  8031702:	b2db      	uxtb	r3, r3
 
-  8031704:	2b00      	cmp	r3, #0
 
-  8031706:	f000 820c 	beq.w	8031b22 <tcp_input+0x866>
 
-       /* send a RST to bring the other side in a non-synchronized state. */
 
-       tcp_rst(ackno, seqno + tcplen, ip_current_dest_addr(), ip_current_src_addr(),
 
-         tcphdr->dest, tcphdr->src);
 
-  803170a:	4b4f      	ldr	r3, [pc, #316]	; (8031848 <tcp_input+0x58c>)
 
-       tcp_ack_now(pcb);
 
-     }
 
-     /* received ACK? possibly a half-open connection */
 
-     else if (flags & TCP_ACK) {
 
-       /* send a RST to bring the other side in a non-synchronized state. */
 
-       tcp_rst(ackno, seqno + tcplen, ip_current_dest_addr(), ip_current_src_addr(),
 
-  803170c:	4a48      	ldr	r2, [pc, #288]	; (8031830 <tcp_input+0x574>)
 
-         tcphdr->dest, tcphdr->src);
 
-  803170e:	681b      	ldr	r3, [r3, #0]
 
-       tcp_ack_now(pcb);
 
-     }
 
-     /* received ACK? possibly a half-open connection */
 
-     else if (flags & TCP_ACK) {
 
-       /* send a RST to bring the other side in a non-synchronized state. */
 
-       tcp_rst(ackno, seqno + tcplen, ip_current_dest_addr(), ip_current_src_addr(),
 
-  8031710:	8811      	ldrh	r1, [r2, #0]
 
-  8031712:	8858      	ldrh	r0, [r3, #2]
 
-  8031714:	4a4a      	ldr	r2, [pc, #296]	; (8031840 <tcp_input+0x584>)
 
-  8031716:	6812      	ldr	r2, [r2, #0]
 
-  8031718:	9000      	str	r0, [sp, #0]
 
-  803171a:	881b      	ldrh	r3, [r3, #0]
 
-  803171c:	9301      	str	r3, [sp, #4]
 
-  803171e:	4b47      	ldr	r3, [pc, #284]	; (803183c <tcp_input+0x580>)
 
-  8031720:	6818      	ldr	r0, [r3, #0]
 
-  8031722:	e03a      	b.n	803179a <tcp_input+0x4de>
 
-         tcphdr->dest, tcphdr->src);
 
-     }
 
-     break;
 
-   case SYN_RCVD:
 
-     if (flags & TCP_ACK) {
 
-  8031724:	4b44      	ldr	r3, [pc, #272]	; (8031838 <tcp_input+0x57c>)
 
-  8031726:	781b      	ldrb	r3, [r3, #0]
 
-  8031728:	f003 0210 	and.w	r2, r3, #16
 
-  803172c:	b2d2      	uxtb	r2, r2
 
-  803172e:	2a00      	cmp	r2, #0
 
-  8031730:	d039      	beq.n	80317a6 <tcp_input+0x4ea>
 
-       /* expected ACK number? */
 
-       if (TCP_SEQ_BETWEEN(ackno, pcb->lastack+1, pcb->snd_nxt)) {
 
-  8031732:	4b42      	ldr	r3, [pc, #264]	; (803183c <tcp_input+0x580>)
 
-  8031734:	6818      	ldr	r0, [r3, #0]
 
-  8031736:	6ca3      	ldr	r3, [r4, #72]	; 0x48
 
-  8031738:	43db      	mvns	r3, r3
 
-  803173a:	42c3      	cmn	r3, r0
 
-  803173c:	d423      	bmi.n	8031786 <tcp_input+0x4ca>
 
-  803173e:	6d23      	ldr	r3, [r4, #80]	; 0x50
 
-  8031740:	1ac3      	subs	r3, r0, r3
 
-  8031742:	2b00      	cmp	r3, #0
 
-  8031744:	dc1f      	bgt.n	8031786 <tcp_input+0x4ca>
 
-         u16_t old_cwnd;
 
-         pcb->state = ESTABLISHED;
 
-  8031746:	2304      	movs	r3, #4
 
-  8031748:	7623      	strb	r3, [r4, #24]
 
-         LWIP_DEBUGF(TCP_DEBUG, ("TCP connection established %"U16_F" -> %"U16_F".\n", inseg.tcphdr->src, inseg.tcphdr->dest));
 
- #if LWIP_CALLBACK_API
 
-         LWIP_ASSERT("pcb->accept != NULL", pcb->accept != NULL);
 
- #endif
 
-         /* Call the accept function. */
 
-         TCP_EVENT_ACCEPT(pcb, ERR_OK, err);
 
-  803174a:	6963      	ldr	r3, [r4, #20]
 
-  803174c:	b903      	cbnz	r3, 8031750 <tcp_input+0x494>
 
-  803174e:	e147      	b.n	80319e0 <tcp_input+0x724>
 
-  8031750:	6920      	ldr	r0, [r4, #16]
 
-  8031752:	4621      	mov	r1, r4
 
-  8031754:	2200      	movs	r2, #0
 
-  8031756:	4798      	blx	r3
 
-         if (err != ERR_OK) {
 
-  8031758:	b118      	cbz	r0, 8031762 <tcp_input+0x4a6>
 
-           /* If the accept function returns with an error, we abort
 
-            * the connection. */
 
-           /* Already aborted? */
 
-           if (err != ERR_ABRT) {
 
-  803175a:	300a      	adds	r0, #10
 
-  803175c:	f040 8140 	bne.w	80319e0 <tcp_input+0x724>
 
-  8031760:	e177      	b.n	8031a52 <tcp_input+0x796>
 
-           return ERR_ABRT;
 
-         }
 
-         old_cwnd = pcb->cwnd;
 
-         /* If there was any data contained within this ACK,
 
-          * we'd better pass it on to the application as well. */
 
-         tcp_receive(pcb);
 
-  8031762:	4620      	mov	r0, r4
 
-           if (err != ERR_ABRT) {
 
-             tcp_abort(pcb);
 
-           }
 
-           return ERR_ABRT;
 
-         }
 
-         old_cwnd = pcb->cwnd;
 
-  8031764:	f8b4 504c 	ldrh.w	r5, [r4, #76]	; 0x4c
 
-         /* If there was any data contained within this ACK,
 
-          * we'd better pass it on to the application as well. */
 
-         tcp_receive(pcb);
 
-  8031768:	f7ff fb54 	bl	8030e14 <tcp_receive>
 
-         /* Prevent ACK for SYN to generate a sent event */
 
-         if (pcb->acked != 0) {
 
-  803176c:	f8b4 3064 	ldrh.w	r3, [r4, #100]	; 0x64
 
-  8031770:	b113      	cbz	r3, 8031778 <tcp_input+0x4bc>
 
-           pcb->acked--;
 
-  8031772:	3b01      	subs	r3, #1
 
-  8031774:	f8a4 3064 	strh.w	r3, [r4, #100]	; 0x64
 
-         }
 
-         pcb->cwnd = ((old_cwnd == 1) ? (pcb->mss * 2) : pcb->mss);
 
-  8031778:	8ee3      	ldrh	r3, [r4, #54]	; 0x36
 
-  803177a:	2d01      	cmp	r5, #1
 
-  803177c:	bf08      	it	eq
 
-  803177e:	005b      	lsleq	r3, r3, #1
 
-  8031780:	f8a4 304c 	strh.w	r3, [r4, #76]	; 0x4c
 
-  8031784:	e023      	b.n	80317ce <tcp_input+0x512>
 
-           pcb->state = CLOSE_WAIT;
 
-         }
 
-       } else {
 
-         /* incorrect ACK number, send RST */
 
-         tcp_rst(ackno, seqno + tcplen, ip_current_dest_addr(), ip_current_src_addr(),
 
-                 tcphdr->dest, tcphdr->src);
 
-  8031786:	4b30      	ldr	r3, [pc, #192]	; (8031848 <tcp_input+0x58c>)
 
-           tcp_ack_now(pcb);
 
-           pcb->state = CLOSE_WAIT;
 
-         }
 
-       } else {
 
-         /* incorrect ACK number, send RST */
 
-         tcp_rst(ackno, seqno + tcplen, ip_current_dest_addr(), ip_current_src_addr(),
 
-  8031788:	4a29      	ldr	r2, [pc, #164]	; (8031830 <tcp_input+0x574>)
 
-                 tcphdr->dest, tcphdr->src);
 
-  803178a:	681b      	ldr	r3, [r3, #0]
 
-           tcp_ack_now(pcb);
 
-           pcb->state = CLOSE_WAIT;
 
-         }
 
-       } else {
 
-         /* incorrect ACK number, send RST */
 
-         tcp_rst(ackno, seqno + tcplen, ip_current_dest_addr(), ip_current_src_addr(),
 
-  803178c:	8811      	ldrh	r1, [r2, #0]
 
-  803178e:	885d      	ldrh	r5, [r3, #2]
 
-  8031790:	4a2b      	ldr	r2, [pc, #172]	; (8031840 <tcp_input+0x584>)
 
-  8031792:	6812      	ldr	r2, [r2, #0]
 
-  8031794:	9500      	str	r5, [sp, #0]
 
-  8031796:	881b      	ldrh	r3, [r3, #0]
 
-  8031798:	9301      	str	r3, [sp, #4]
 
-  803179a:	1889      	adds	r1, r1, r2
 
-  803179c:	4b2b      	ldr	r3, [pc, #172]	; (803184c <tcp_input+0x590>)
 
-  803179e:	4a2c      	ldr	r2, [pc, #176]	; (8031850 <tcp_input+0x594>)
 
-  80317a0:	f000 fdb6 	bl	8032310 <tcp_rst>
 
-  80317a4:	e1bd      	b.n	8031b22 <tcp_input+0x866>
 
-                 tcphdr->dest, tcphdr->src);
 
-       }
 
-     } else if ((flags & TCP_SYN) && (seqno == pcb->rcv_nxt - 1)) {
 
-  80317a6:	f003 0302 	and.w	r3, r3, #2
 
-  80317aa:	b2db      	uxtb	r3, r3
 
-  80317ac:	2b00      	cmp	r3, #0
 
-  80317ae:	f000 81b8 	beq.w	8031b22 <tcp_input+0x866>
 
-  80317b2:	4a23      	ldr	r2, [pc, #140]	; (8031840 <tcp_input+0x584>)
 
-  80317b4:	6aa3      	ldr	r3, [r4, #40]	; 0x28
 
-  80317b6:	6812      	ldr	r2, [r2, #0]
 
-  80317b8:	3b01      	subs	r3, #1
 
-  80317ba:	429a      	cmp	r2, r3
 
-  80317bc:	f040 81b1 	bne.w	8031b22 <tcp_input+0x866>
 
-       /* Looks like another copy of the SYN - retransmit our SYN-ACK */
 
-       tcp_rexmit(pcb);
 
-  80317c0:	4620      	mov	r0, r4
 
-  80317c2:	f000 fe03 	bl	80323cc <tcp_rexmit>
 
-  80317c6:	e1ac      	b.n	8031b22 <tcp_input+0x866>
 
-     }
 
-     break;
 
-   case CLOSE_WAIT:
 
-     /* FALLTHROUGH */
 
-   case ESTABLISHED:
 
-     tcp_receive(pcb);
 
-  80317c8:	4620      	mov	r0, r4
 
-  80317ca:	f7ff fb23 	bl	8030e14 <tcp_receive>
 
-     if (recv_flags & TF_GOT_FIN) { /* passive close */
 
-  80317ce:	4b21      	ldr	r3, [pc, #132]	; (8031854 <tcp_input+0x598>)
 
-  80317d0:	781b      	ldrb	r3, [r3, #0]
 
-  80317d2:	f003 0320 	and.w	r3, r3, #32
 
-  80317d6:	b2db      	uxtb	r3, r3
 
-  80317d8:	2b00      	cmp	r3, #0
 
-  80317da:	f000 81a2 	beq.w	8031b22 <tcp_input+0x866>
 
-       tcp_ack_now(pcb);
 
-  80317de:	7fa3      	ldrb	r3, [r4, #30]
 
-  80317e0:	f043 0302 	orr.w	r3, r3, #2
 
-  80317e4:	77a3      	strb	r3, [r4, #30]
 
-       pcb->state = CLOSE_WAIT;
 
-  80317e6:	2307      	movs	r3, #7
 
-  80317e8:	e053      	b.n	8031892 <tcp_input+0x5d6>
 
-     }
 
-     break;
 
-   case FIN_WAIT_1:
 
-     tcp_receive(pcb);
 
-  80317ea:	4620      	mov	r0, r4
 
-  80317ec:	f7ff fb12 	bl	8030e14 <tcp_receive>
 
-     if (recv_flags & TF_GOT_FIN) {
 
-  80317f0:	4b18      	ldr	r3, [pc, #96]	; (8031854 <tcp_input+0x598>)
 
-  80317f2:	781a      	ldrb	r2, [r3, #0]
 
-  80317f4:	4b10      	ldr	r3, [pc, #64]	; (8031838 <tcp_input+0x57c>)
 
-       if ((flags & TCP_ACK) && (ackno == pcb->snd_nxt)) {
 
-  80317f6:	781b      	ldrb	r3, [r3, #0]
 
-       pcb->state = CLOSE_WAIT;
 
-     }
 
-     break;
 
-   case FIN_WAIT_1:
 
-     tcp_receive(pcb);
 
-     if (recv_flags & TF_GOT_FIN) {
 
-  80317f8:	f002 0220 	and.w	r2, r2, #32
 
-       if ((flags & TCP_ACK) && (ackno == pcb->snd_nxt)) {
 
-  80317fc:	f003 0310 	and.w	r3, r3, #16
 
-       pcb->state = CLOSE_WAIT;
 
-     }
 
-     break;
 
-   case FIN_WAIT_1:
 
-     tcp_receive(pcb);
 
-     if (recv_flags & TF_GOT_FIN) {
 
-  8031800:	b2d2      	uxtb	r2, r2
 
-       if ((flags & TCP_ACK) && (ackno == pcb->snd_nxt)) {
 
-  8031802:	b2db      	uxtb	r3, r3
 
-       pcb->state = CLOSE_WAIT;
 
-     }
 
-     break;
 
-   case FIN_WAIT_1:
 
-     tcp_receive(pcb);
 
-     if (recv_flags & TF_GOT_FIN) {
 
-  8031804:	2a00      	cmp	r2, #0
 
-  8031806:	d03a      	beq.n	803187e <tcp_input+0x5c2>
 
-       if ((flags & TCP_ACK) && (ackno == pcb->snd_nxt)) {
 
-  8031808:	2b00      	cmp	r3, #0
 
-  803180a:	d032      	beq.n	8031872 <tcp_input+0x5b6>
 
-  803180c:	4b0b      	ldr	r3, [pc, #44]	; (803183c <tcp_input+0x580>)
 
-  803180e:	681a      	ldr	r2, [r3, #0]
 
-  8031810:	6d23      	ldr	r3, [r4, #80]	; 0x50
 
-  8031812:	429a      	cmp	r2, r3
 
-  8031814:	d12d      	bne.n	8031872 <tcp_input+0x5b6>
 
-         LWIP_DEBUGF(TCP_DEBUG,
 
-           ("TCP connection closed: FIN_WAIT_1 %"U16_F" -> %"U16_F".\n", inseg.tcphdr->src, inseg.tcphdr->dest));
 
-         tcp_ack_now(pcb);
 
-  8031816:	7fa3      	ldrb	r3, [r4, #30]
 
-  8031818:	f043 0302 	orr.w	r3, r3, #2
 
-  803181c:	77a3      	strb	r3, [r4, #30]
 
-         tcp_pcb_purge(pcb);
 
-  803181e:	4620      	mov	r0, r4
 
-  8031820:	f7fe fe4a 	bl	80304b8 <tcp_pcb_purge>
 
-         TCP_RMV_ACTIVE(pcb);
 
-  8031824:	4a0c      	ldr	r2, [pc, #48]	; (8031858 <tcp_input+0x59c>)
 
-  8031826:	6813      	ldr	r3, [r2, #0]
 
-  8031828:	42a3      	cmp	r3, r4
 
-  803182a:	d117      	bne.n	803185c <tcp_input+0x5a0>
 
-  803182c:	e06d      	b.n	803190a <tcp_input+0x64e>
 
-  803182e:	bf00      	nop
 
-  8031830:	2000c3e8 	.word	0x2000c3e8
 
-  8031834:	2000f6d4 	.word	0x2000f6d4
 
-  8031838:	2000c3f0 	.word	0x2000c3f0
 
-  803183c:	2000c3ec 	.word	0x2000c3ec
 
-  8031840:	2000c3e4 	.word	0x2000c3e4
 
-  8031844:	2000f6c0 	.word	0x2000f6c0
 
-  8031848:	2000c3e0 	.word	0x2000c3e0
 
-  803184c:	2000f6dc 	.word	0x2000f6dc
 
-  8031850:	2000f6e4 	.word	0x2000f6e4
 
-  8031854:	2000c3f1 	.word	0x2000c3f1
 
-  8031858:	2000f6bc 	.word	0x2000f6bc
 
-  803185c:	4a8e      	ldr	r2, [pc, #568]	; (8031a98 <tcp_input+0x7dc>)
 
-  803185e:	6013      	str	r3, [r2, #0]
 
-  8031860:	e004      	b.n	803186c <tcp_input+0x5b0>
 
-  8031862:	68d9      	ldr	r1, [r3, #12]
 
-  8031864:	42a1      	cmp	r1, r4
 
-  8031866:	d100      	bne.n	803186a <tcp_input+0x5ae>
 
-  8031868:	e057      	b.n	803191a <tcp_input+0x65e>
 
-  803186a:	460b      	mov	r3, r1
 
-  803186c:	2b00      	cmp	r3, #0
 
-  803186e:	d1f8      	bne.n	8031862 <tcp_input+0x5a6>
 
-  8031870:	e05a      	b.n	8031928 <tcp_input+0x66c>
 
-         pcb->state = TIME_WAIT;
 
-         TCP_REG(&tcp_tw_pcbs, pcb);
 
-       } else {
 
-         tcp_ack_now(pcb);
 
-  8031872:	7fa3      	ldrb	r3, [r4, #30]
 
-  8031874:	f043 0302 	orr.w	r3, r3, #2
 
-  8031878:	77a3      	strb	r3, [r4, #30]
 
-         pcb->state = CLOSING;
 
-  803187a:	2308      	movs	r3, #8
 
-  803187c:	e009      	b.n	8031892 <tcp_input+0x5d6>
 
-       }
 
-     } else if ((flags & TCP_ACK) && (ackno == pcb->snd_nxt)) {
 
-  803187e:	2b00      	cmp	r3, #0
 
-  8031880:	f000 814f 	beq.w	8031b22 <tcp_input+0x866>
 
-  8031884:	4b85      	ldr	r3, [pc, #532]	; (8031a9c <tcp_input+0x7e0>)
 
-  8031886:	681a      	ldr	r2, [r3, #0]
 
-  8031888:	6d23      	ldr	r3, [r4, #80]	; 0x50
 
-  803188a:	429a      	cmp	r2, r3
 
-  803188c:	f040 8149 	bne.w	8031b22 <tcp_input+0x866>
 
-       pcb->state = FIN_WAIT_2;
 
-  8031890:	2306      	movs	r3, #6
 
-  8031892:	7623      	strb	r3, [r4, #24]
 
-  8031894:	e145      	b.n	8031b22 <tcp_input+0x866>
 
-     }
 
-     break;
 
-   case FIN_WAIT_2:
 
-     tcp_receive(pcb);
 
-  8031896:	4620      	mov	r0, r4
 
-  8031898:	f7ff fabc 	bl	8030e14 <tcp_receive>
 
-     if (recv_flags & TF_GOT_FIN) {
 
-  803189c:	4b80      	ldr	r3, [pc, #512]	; (8031aa0 <tcp_input+0x7e4>)
 
-  803189e:	781b      	ldrb	r3, [r3, #0]
 
-  80318a0:	f003 0320 	and.w	r3, r3, #32
 
-  80318a4:	b2db      	uxtb	r3, r3
 
-  80318a6:	2b00      	cmp	r3, #0
 
-  80318a8:	f000 813b 	beq.w	8031b22 <tcp_input+0x866>
 
-       LWIP_DEBUGF(TCP_DEBUG, ("TCP connection closed: FIN_WAIT_2 %"U16_F" -> %"U16_F".\n", inseg.tcphdr->src, inseg.tcphdr->dest));
 
-       tcp_ack_now(pcb);
 
-  80318ac:	7fa3      	ldrb	r3, [r4, #30]
 
-  80318ae:	f043 0302 	orr.w	r3, r3, #2
 
-  80318b2:	77a3      	strb	r3, [r4, #30]
 
-       tcp_pcb_purge(pcb);
 
-  80318b4:	4620      	mov	r0, r4
 
-  80318b6:	f7fe fdff 	bl	80304b8 <tcp_pcb_purge>
 
-       TCP_RMV_ACTIVE(pcb);
 
-  80318ba:	4a7a      	ldr	r2, [pc, #488]	; (8031aa4 <tcp_input+0x7e8>)
 
-  80318bc:	6813      	ldr	r3, [r2, #0]
 
-  80318be:	42a3      	cmp	r3, r4
 
-  80318c0:	d100      	bne.n	80318c4 <tcp_input+0x608>
 
-  80318c2:	e022      	b.n	803190a <tcp_input+0x64e>
 
-  80318c4:	4a74      	ldr	r2, [pc, #464]	; (8031a98 <tcp_input+0x7dc>)
 
-  80318c6:	6013      	str	r3, [r2, #0]
 
-  80318c8:	e004      	b.n	80318d4 <tcp_input+0x618>
 
-  80318ca:	68d9      	ldr	r1, [r3, #12]
 
-  80318cc:	42a1      	cmp	r1, r4
 
-  80318ce:	d100      	bne.n	80318d2 <tcp_input+0x616>
 
-  80318d0:	e023      	b.n	803191a <tcp_input+0x65e>
 
-  80318d2:	460b      	mov	r3, r1
 
-  80318d4:	2b00      	cmp	r3, #0
 
-  80318d6:	d1f8      	bne.n	80318ca <tcp_input+0x60e>
 
-  80318d8:	e026      	b.n	8031928 <tcp_input+0x66c>
 
-       pcb->state = TIME_WAIT;
 
-       TCP_REG(&tcp_tw_pcbs, pcb);
 
-     }
 
-     break;
 
-   case CLOSING:
 
-     tcp_receive(pcb);
 
-  80318da:	4620      	mov	r0, r4
 
-  80318dc:	f7ff fa9a 	bl	8030e14 <tcp_receive>
 
-     if (flags & TCP_ACK && ackno == pcb->snd_nxt) {
 
-  80318e0:	4b71      	ldr	r3, [pc, #452]	; (8031aa8 <tcp_input+0x7ec>)
 
-  80318e2:	781b      	ldrb	r3, [r3, #0]
 
-  80318e4:	f003 0310 	and.w	r3, r3, #16
 
-  80318e8:	b2db      	uxtb	r3, r3
 
-  80318ea:	2b00      	cmp	r3, #0
 
-  80318ec:	f000 8119 	beq.w	8031b22 <tcp_input+0x866>
 
-  80318f0:	4b6a      	ldr	r3, [pc, #424]	; (8031a9c <tcp_input+0x7e0>)
 
-  80318f2:	681a      	ldr	r2, [r3, #0]
 
-  80318f4:	6d23      	ldr	r3, [r4, #80]	; 0x50
 
-  80318f6:	429a      	cmp	r2, r3
 
-  80318f8:	f040 8113 	bne.w	8031b22 <tcp_input+0x866>
 
-       LWIP_DEBUGF(TCP_DEBUG, ("TCP connection closed: CLOSING %"U16_F" -> %"U16_F".\n", inseg.tcphdr->src, inseg.tcphdr->dest));
 
-       tcp_pcb_purge(pcb);
 
-  80318fc:	4620      	mov	r0, r4
 
-  80318fe:	f7fe fddb 	bl	80304b8 <tcp_pcb_purge>
 
-       TCP_RMV_ACTIVE(pcb);
 
-  8031902:	4a68      	ldr	r2, [pc, #416]	; (8031aa4 <tcp_input+0x7e8>)
 
-  8031904:	6813      	ldr	r3, [r2, #0]
 
-  8031906:	42a3      	cmp	r3, r4
 
-  8031908:	d101      	bne.n	803190e <tcp_input+0x652>
 
-  803190a:	68e3      	ldr	r3, [r4, #12]
 
-  803190c:	e00c      	b.n	8031928 <tcp_input+0x66c>
 
-  803190e:	4a62      	ldr	r2, [pc, #392]	; (8031a98 <tcp_input+0x7dc>)
 
-  8031910:	6013      	str	r3, [r2, #0]
 
-  8031912:	e007      	b.n	8031924 <tcp_input+0x668>
 
-  8031914:	68d9      	ldr	r1, [r3, #12]
 
-  8031916:	42a1      	cmp	r1, r4
 
-  8031918:	d103      	bne.n	8031922 <tcp_input+0x666>
 
-  803191a:	6013      	str	r3, [r2, #0]
 
-  803191c:	68e2      	ldr	r2, [r4, #12]
 
-  803191e:	60da      	str	r2, [r3, #12]
 
-  8031920:	e003      	b.n	803192a <tcp_input+0x66e>
 
-  8031922:	460b      	mov	r3, r1
 
-  8031924:	2b00      	cmp	r3, #0
 
-  8031926:	d1f5      	bne.n	8031914 <tcp_input+0x658>
 
-  8031928:	6013      	str	r3, [r2, #0]
 
-  803192a:	4b60      	ldr	r3, [pc, #384]	; (8031aac <tcp_input+0x7f0>)
 
-  803192c:	2201      	movs	r2, #1
 
-  803192e:	701a      	strb	r2, [r3, #0]
 
-       pcb->state = TIME_WAIT;
 
-  8031930:	230a      	movs	r3, #10
 
-  8031932:	7623      	strb	r3, [r4, #24]
 
-       TCP_REG(&tcp_tw_pcbs, pcb);
 
-  8031934:	4b5e      	ldr	r3, [pc, #376]	; (8031ab0 <tcp_input+0x7f4>)
 
-  8031936:	681a      	ldr	r2, [r3, #0]
 
-  8031938:	601c      	str	r4, [r3, #0]
 
-  803193a:	60e2      	str	r2, [r4, #12]
 
-  803193c:	f000 fe82 	bl	8032644 <tcp_timer_needed>
 
-  8031940:	e0ef      	b.n	8031b22 <tcp_input+0x866>
 
-     }
 
-     break;
 
-   case LAST_ACK:
 
-     tcp_receive(pcb);
 
-  8031942:	4620      	mov	r0, r4
 
-  8031944:	f7ff fa66 	bl	8030e14 <tcp_receive>
 
-     if (flags & TCP_ACK && ackno == pcb->snd_nxt) {
 
-  8031948:	4b57      	ldr	r3, [pc, #348]	; (8031aa8 <tcp_input+0x7ec>)
 
-  803194a:	781b      	ldrb	r3, [r3, #0]
 
-  803194c:	f003 0310 	and.w	r3, r3, #16
 
-  8031950:	b2db      	uxtb	r3, r3
 
-  8031952:	2b00      	cmp	r3, #0
 
-  8031954:	f000 80e5 	beq.w	8031b22 <tcp_input+0x866>
 
-  8031958:	4b50      	ldr	r3, [pc, #320]	; (8031a9c <tcp_input+0x7e0>)
 
-  803195a:	681a      	ldr	r2, [r3, #0]
 
-  803195c:	6d23      	ldr	r3, [r4, #80]	; 0x50
 
-  803195e:	429a      	cmp	r2, r3
 
-  8031960:	f040 80df 	bne.w	8031b22 <tcp_input+0x866>
 
-       LWIP_DEBUGF(TCP_DEBUG, ("TCP connection closed: LAST_ACK %"U16_F" -> %"U16_F".\n", inseg.tcphdr->src, inseg.tcphdr->dest));
 
-       /* bugfix #21699: don't set pcb->state to CLOSED here or we risk leaking segments */
 
-       recv_flags |= TF_CLOSED;
 
-  8031964:	4b4e      	ldr	r3, [pc, #312]	; (8031aa0 <tcp_input+0x7e4>)
 
-  8031966:	781a      	ldrb	r2, [r3, #0]
 
-  8031968:	f042 0210 	orr.w	r2, r2, #16
 
-  803196c:	701a      	strb	r2, [r3, #0]
 
-  803196e:	e0d8      	b.n	8031b22 <tcp_input+0x866>
 
-       if (recv_flags & TF_RESET) {
 
-         /* TF_RESET means that the connection was reset by the other
 
-            end. We then call the error callback to inform the
 
-            application that the connection is dead before we
 
-            deallocate the PCB. */
 
-         TCP_EVENT_ERR(pcb->errf, pcb->callback_arg, ERR_RST);
 
-  8031970:	f8d4 3088 	ldr.w	r3, [r4, #136]	; 0x88
 
-  8031974:	b19b      	cbz	r3, 803199e <tcp_input+0x6e2>
 
-  8031976:	6920      	ldr	r0, [r4, #16]
 
-  8031978:	f06f 010a 	mvn.w	r1, #10
 
-  803197c:	e00e      	b.n	803199c <tcp_input+0x6e0>
 
-         tcp_pcb_remove(&tcp_active_pcbs, pcb);
 
-         memp_free(MEMP_TCP_PCB, pcb);
 
-       } else if (recv_flags & TF_CLOSED) {
 
-  803197e:	f003 0310 	and.w	r3, r3, #16
 
-  8031982:	b2db      	uxtb	r3, r3
 
-  8031984:	b1a3      	cbz	r3, 80319b0 <tcp_input+0x6f4>
 
-         /* The connection has been closed and we will deallocate the
 
-            PCB. */
 
-         if (!(pcb->flags & TF_RXCLOSED)) {
 
-  8031986:	7fa3      	ldrb	r3, [r4, #30]
 
-  8031988:	f003 0310 	and.w	r3, r3, #16
 
-  803198c:	b2db      	uxtb	r3, r3
 
-  803198e:	b933      	cbnz	r3, 803199e <tcp_input+0x6e2>
 
-           /* Connection closed although the application has only shut down the
 
-              tx side: call the PCB's err callback and indicate the closure to
 
-              ensure the application doesn't continue using the PCB. */
 
-           TCP_EVENT_ERR(pcb->errf, pcb->callback_arg, ERR_CLSD);
 
-  8031990:	f8d4 3088 	ldr.w	r3, [r4, #136]	; 0x88
 
-  8031994:	b11b      	cbz	r3, 803199e <tcp_input+0x6e2>
 
-  8031996:	6920      	ldr	r0, [r4, #16]
 
-  8031998:	f06f 010b 	mvn.w	r1, #11
 
-  803199c:	4798      	blx	r3
 
-         }
 
-         tcp_pcb_remove(&tcp_active_pcbs, pcb);
 
-  803199e:	4621      	mov	r1, r4
 
-  80319a0:	4840      	ldr	r0, [pc, #256]	; (8031aa4 <tcp_input+0x7e8>)
 
-  80319a2:	f7fe fef1 	bl	8030788 <tcp_pcb_remove>
 
-         memp_free(MEMP_TCP_PCB, pcb);
 
-  80319a6:	2002      	movs	r0, #2
 
-  80319a8:	4621      	mov	r1, r4
 
-  80319aa:	f7fe f925 	bl	802fbf8 <memp_free>
 
-  80319ae:	e050      	b.n	8031a52 <tcp_input+0x796>
 
-       } else {
 
-         err = ERR_OK;
 
-         /* If the application has registered a "sent" function to be
 
-            called when new send buffer space is available, we call it
 
-            now. */
 
-         if (pcb->acked > 0) {
 
-  80319b0:	f8b4 2064 	ldrh.w	r2, [r4, #100]	; 0x64
 
-  80319b4:	b91a      	cbnz	r2, 80319be <tcp_input+0x702>
 
-           if (err == ERR_ABRT) {
 
-             goto aborted;
 
-           }
 
-         }
 
-         if (recv_data != NULL) {
 
-  80319b6:	4b3f      	ldr	r3, [pc, #252]	; (8031ab4 <tcp_input+0x7f8>)
 
-  80319b8:	681a      	ldr	r2, [r3, #0]
 
-  80319ba:	b94a      	cbnz	r2, 80319d0 <tcp_input+0x714>
 
-  80319bc:	e026      	b.n	8031a0c <tcp_input+0x750>
 
-         err = ERR_OK;
 
-         /* If the application has registered a "sent" function to be
 
-            called when new send buffer space is available, we call it
 
-            now. */
 
-         if (pcb->acked > 0) {
 
-           TCP_EVENT_SENT(pcb, pcb->acked, err);
 
-  80319be:	6fa3      	ldr	r3, [r4, #120]	; 0x78
 
-  80319c0:	2b00      	cmp	r3, #0
 
-  80319c2:	d0f8      	beq.n	80319b6 <tcp_input+0x6fa>
 
-  80319c4:	6920      	ldr	r0, [r4, #16]
 
-  80319c6:	4621      	mov	r1, r4
 
-  80319c8:	4798      	blx	r3
 
-           if (err == ERR_ABRT) {
 
-  80319ca:	300a      	adds	r0, #10
 
-  80319cc:	d1f3      	bne.n	80319b6 <tcp_input+0x6fa>
 
-  80319ce:	e040      	b.n	8031a52 <tcp_input+0x796>
 
-           }
 
-         }
 
-         if (recv_data != NULL) {
 
-           LWIP_ASSERT("pcb->refused_data == NULL", pcb->refused_data == NULL);
 
-           if (pcb->flags & TF_RXCLOSED) {
 
-  80319d0:	7fa3      	ldrb	r3, [r4, #30]
 
-  80319d2:	f003 0310 	and.w	r3, r3, #16
 
-  80319d6:	b2db      	uxtb	r3, r3
 
-  80319d8:	b133      	cbz	r3, 80319e8 <tcp_input+0x72c>
 
-             /* received data although already closed -> abort (send RST) to
 
-                notify the remote host that not all data has been processed */
 
-             pbuf_free(recv_data);
 
-  80319da:	4610      	mov	r0, r2
 
-  80319dc:	f7fe fa16 	bl	802fe0c <pbuf_free>
 
-             tcp_abort(pcb);
 
-  80319e0:	4620      	mov	r0, r4
 
-  80319e2:	f7fe ff45 	bl	8030870 <tcp_abort>
 
-             goto aborted;
 
-  80319e6:	e034      	b.n	8031a52 <tcp_input+0x796>
 
-           }
 
-           /* Notify application that data has been received. */
 
-           TCP_EVENT_RECV(pcb, recv_data, ERR_OK, err);
 
-  80319e8:	6fe5      	ldr	r5, [r4, #124]	; 0x7c
 
-  80319ea:	b11d      	cbz	r5, 80319f4 <tcp_input+0x738>
 
-  80319ec:	6920      	ldr	r0, [r4, #16]
 
-  80319ee:	4621      	mov	r1, r4
 
-  80319f0:	47a8      	blx	r5
 
-  80319f2:	e004      	b.n	80319fe <tcp_input+0x742>
 
-  80319f4:	4628      	mov	r0, r5
 
-  80319f6:	4621      	mov	r1, r4
 
-  80319f8:	462b      	mov	r3, r5
 
-  80319fa:	f7ff f81b 	bl	8030a34 <tcp_recv_null>
 
-           if (err == ERR_ABRT) {
 
-  80319fe:	b243      	sxtb	r3, r0
 
-  8031a00:	330a      	adds	r3, #10
 
-  8031a02:	d026      	beq.n	8031a52 <tcp_input+0x796>
 
-             goto aborted;
 
-           }
 
-           /* If the upper layer can't receive this data, store it */
 
-           if (err != ERR_OK) {
 
-  8031a04:	b110      	cbz	r0, 8031a0c <tcp_input+0x750>
 
-             pcb->refused_data = recv_data;
 
-  8031a06:	4b2b      	ldr	r3, [pc, #172]	; (8031ab4 <tcp_input+0x7f8>)
 
-  8031a08:	681b      	ldr	r3, [r3, #0]
 
-  8031a0a:	6763      	str	r3, [r4, #116]	; 0x74
 
-           }
 
-         }
 
-         /* If a FIN segment was received, we call the callback
 
-            function with a NULL buffer to indicate EOF. */
 
-         if (recv_flags & TF_GOT_FIN) {
 
-  8031a0c:	4b24      	ldr	r3, [pc, #144]	; (8031aa0 <tcp_input+0x7e4>)
 
-  8031a0e:	781b      	ldrb	r3, [r3, #0]
 
-  8031a10:	f003 0320 	and.w	r3, r3, #32
 
-  8031a14:	b2db      	uxtb	r3, r3
 
-  8031a16:	b1b3      	cbz	r3, 8031a46 <tcp_input+0x78a>
 
-           if (pcb->refused_data != NULL) {
 
-  8031a18:	6f63      	ldr	r3, [r4, #116]	; 0x74
 
-  8031a1a:	b123      	cbz	r3, 8031a26 <tcp_input+0x76a>
 
-             /* Delay this if we have refused data. */
 
-             pcb->refused_data->flags |= PBUF_FLAG_TCP_FIN;
 
-  8031a1c:	7b5a      	ldrb	r2, [r3, #13]
 
-  8031a1e:	f042 0220 	orr.w	r2, r2, #32
 
-  8031a22:	735a      	strb	r2, [r3, #13]
 
-  8031a24:	e00f      	b.n	8031a46 <tcp_input+0x78a>
 
-           } else {
 
-             /* correct rcv_wnd as the application won't call tcp_recved()
 
-                for the FIN's seqno */
 
-             if (pcb->rcv_wnd != TCP_WND) {
 
-  8031a26:	8da3      	ldrh	r3, [r4, #44]	; 0x2c
 
-  8031a28:	f241 62d0 	movw	r2, #5840	; 0x16d0
 
-  8031a2c:	4293      	cmp	r3, r2
 
-  8031a2e:	d001      	beq.n	8031a34 <tcp_input+0x778>
 
-               pcb->rcv_wnd++;
 
-  8031a30:	3301      	adds	r3, #1
 
-  8031a32:	85a3      	strh	r3, [r4, #44]	; 0x2c
 
-             }
 
-             TCP_EVENT_CLOSED(pcb, err);
 
-  8031a34:	6fe5      	ldr	r5, [r4, #124]	; 0x7c
 
-  8031a36:	b135      	cbz	r5, 8031a46 <tcp_input+0x78a>
 
-  8031a38:	2200      	movs	r2, #0
 
-  8031a3a:	6920      	ldr	r0, [r4, #16]
 
-  8031a3c:	4621      	mov	r1, r4
 
-  8031a3e:	4613      	mov	r3, r2
 
-  8031a40:	47a8      	blx	r5
 
-             if (err == ERR_ABRT) {
 
-  8031a42:	300a      	adds	r0, #10
 
-  8031a44:	d005      	beq.n	8031a52 <tcp_input+0x796>
 
-               goto aborted;
 
-             }
 
-           }
 
-         }
 
-         tcp_input_pcb = NULL;
 
-  8031a46:	4b1c      	ldr	r3, [pc, #112]	; (8031ab8 <tcp_input+0x7fc>)
 
-  8031a48:	2200      	movs	r2, #0
 
-         /* Try to send something out. */
 
-         tcp_output(pcb);
 
-  8031a4a:	4620      	mov	r0, r4
 
-               goto aborted;
 
-             }
 
-           }
 
-         }
 
-         tcp_input_pcb = NULL;
 
-  8031a4c:	601a      	str	r2, [r3, #0]
 
-         /* Try to send something out. */
 
-         tcp_output(pcb);
 
-  8031a4e:	f000 fb3b 	bl	80320c8 <tcp_output>
 
-       }
 
-     }
 
-     /* Jump target if pcb has been aborted in a callback (by calling tcp_abort()).
 
-        Below this line, 'pcb' may not be dereferenced! */
 
- aborted:
 
-     tcp_input_pcb = NULL;
 
-  8031a52:	4b19      	ldr	r3, [pc, #100]	; (8031ab8 <tcp_input+0x7fc>)
 
-     recv_data = NULL;
 
-     /* give up our reference to inseg.p */
 
-     if (inseg.p != NULL)
 
-  8031a54:	4d19      	ldr	r5, [pc, #100]	; (8031abc <tcp_input+0x800>)
 
-       }
 
-     }
 
-     /* Jump target if pcb has been aborted in a callback (by calling tcp_abort()).
 
-        Below this line, 'pcb' may not be dereferenced! */
 
- aborted:
 
-     tcp_input_pcb = NULL;
 
-  8031a56:	2400      	movs	r4, #0
 
-  8031a58:	601c      	str	r4, [r3, #0]
 
-     recv_data = NULL;
 
-     /* give up our reference to inseg.p */
 
-     if (inseg.p != NULL)
 
-  8031a5a:	6868      	ldr	r0, [r5, #4]
 
-     }
 
-     /* Jump target if pcb has been aborted in a callback (by calling tcp_abort()).
 
-        Below this line, 'pcb' may not be dereferenced! */
 
- aborted:
 
-     tcp_input_pcb = NULL;
 
-     recv_data = NULL;
 
-  8031a5c:	4b15      	ldr	r3, [pc, #84]	; (8031ab4 <tcp_input+0x7f8>)
 
-  8031a5e:	601c      	str	r4, [r3, #0]
 
-     /* give up our reference to inseg.p */
 
-     if (inseg.p != NULL)
 
-  8031a60:	2800      	cmp	r0, #0
 
-  8031a62:	d067      	beq.n	8031b34 <tcp_input+0x878>
 
-     {
 
-       pbuf_free(inseg.p);
 
-  8031a64:	f7fe f9d2 	bl	802fe0c <pbuf_free>
 
-       inseg.p = NULL;
 
-  8031a68:	606c      	str	r4, [r5, #4]
 
-  8031a6a:	e063      	b.n	8031b34 <tcp_input+0x878>
 
-     if (!(TCPH_FLAGS(tcphdr) & TCP_RST)) {
 
-       TCP_STATS_INC(tcp.proterr);
 
-       TCP_STATS_INC(tcp.drop);
 
-       tcp_rst(ackno, seqno + tcplen,
 
-         ip_current_dest_addr(), ip_current_src_addr(),
 
-         tcphdr->dest, tcphdr->src);
 
-  8031a6c:	4b14      	ldr	r3, [pc, #80]	; (8031ac0 <tcp_input+0x804>)
 
-        sender. */
 
-     LWIP_DEBUGF(TCP_RST_DEBUG, ("tcp_input: no PCB match found, resetting.\n"));
 
-     if (!(TCPH_FLAGS(tcphdr) & TCP_RST)) {
 
-       TCP_STATS_INC(tcp.proterr);
 
-       TCP_STATS_INC(tcp.drop);
 
-       tcp_rst(ackno, seqno + tcplen,
 
-  8031a6e:	4a15      	ldr	r2, [pc, #84]	; (8031ac4 <tcp_input+0x808>)
 
-         ip_current_dest_addr(), ip_current_src_addr(),
 
-         tcphdr->dest, tcphdr->src);
 
-  8031a70:	681b      	ldr	r3, [r3, #0]
 
-        sender. */
 
-     LWIP_DEBUGF(TCP_RST_DEBUG, ("tcp_input: no PCB match found, resetting.\n"));
 
-     if (!(TCPH_FLAGS(tcphdr) & TCP_RST)) {
 
-       TCP_STATS_INC(tcp.proterr);
 
-       TCP_STATS_INC(tcp.drop);
 
-       tcp_rst(ackno, seqno + tcplen,
 
-  8031a72:	8811      	ldrh	r1, [r2, #0]
 
-  8031a74:	8858      	ldrh	r0, [r3, #2]
 
-  8031a76:	4a14      	ldr	r2, [pc, #80]	; (8031ac8 <tcp_input+0x80c>)
 
-  8031a78:	6812      	ldr	r2, [r2, #0]
 
-  8031a7a:	9000      	str	r0, [sp, #0]
 
-  8031a7c:	881b      	ldrh	r3, [r3, #0]
 
-  8031a7e:	9301      	str	r3, [sp, #4]
 
-  8031a80:	4b06      	ldr	r3, [pc, #24]	; (8031a9c <tcp_input+0x7e0>)
 
-  8031a82:	1889      	adds	r1, r1, r2
 
-  8031a84:	6818      	ldr	r0, [r3, #0]
 
-  8031a86:	e517      	b.n	80314b8 <tcp_input+0x1fc>
 
-   LWIP_ASSERT("tcp_input: tcp_pcbs_sane()", tcp_pcbs_sane());
 
-   PERF_STOP("tcp_input");
 
-   return;
 
- dropped:
 
-   TCP_STATS_INC(tcp.drop);
 
-   snmp_inc_tcpinerrs();
 
-  8031a88:	f003 f8f6 	bl	8034c78 <snmp_inc_tcpinerrs>
 
-   pbuf_free(p);
 
-  8031a8c:	4630      	mov	r0, r6
 
- }
 
-  8031a8e:	b003      	add	sp, #12
 
-  8031a90:	e8bd 4ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-   PERF_STOP("tcp_input");
 
-   return;
 
- dropped:
 
-   TCP_STATS_INC(tcp.drop);
 
-   snmp_inc_tcpinerrs();
 
-   pbuf_free(p);
 
-  8031a94:	f7fe b9ba 	b.w	802fe0c <pbuf_free>
 
-  8031a98:	2000f6c8 	.word	0x2000f6c8
 
-  8031a9c:	2000c3ec 	.word	0x2000c3ec
 
-  8031aa0:	2000c3f1 	.word	0x2000c3f1
 
-  8031aa4:	2000f6bc 	.word	0x2000f6bc
 
-  8031aa8:	2000c3f0 	.word	0x2000c3f0
 
-  8031aac:	2000f6b8 	.word	0x2000f6b8
 
-  8031ab0:	2000f6d0 	.word	0x2000f6d0
 
-  8031ab4:	2000c3f4 	.word	0x2000c3f4
 
-  8031ab8:	2000f6d4 	.word	0x2000f6d4
 
-  8031abc:	2000c3fc 	.word	0x2000c3fc
 
-  8031ac0:	2000c3e0 	.word	0x2000c3e0
 
-  8031ac4:	2000c3e8 	.word	0x2000c3e8
 
-  8031ac8:	2000c3e4 	.word	0x2000c3e4
 
-   }
 
-   if (pcb == NULL) {
 
-     /* If it did not go to an active connection, we check the connections
 
-        in the TIME-WAIT state. */
 
-     for(pcb = tcp_tw_pcbs; pcb != NULL; pcb = pcb->next) {
 
-  8031acc:	4b1b      	ldr	r3, [pc, #108]	; (8031b3c <tcp_input+0x880>)
 
-  8031ace:	681b      	ldr	r3, [r3, #0]
 
-  8031ad0:	e4bf      	b.n	8031452 <tcp_input+0x196>
 
-     tcp_debug_print_state(pcb->state);
 
- #endif /* TCP_DEBUG */
 
- #endif /* TCP_INPUT_DEBUG */
 
-     /* Set up a tcp_seg structure. */
 
-     inseg.next = NULL;
 
-  8031ad2:	4b1b      	ldr	r3, [pc, #108]	; (8031b40 <tcp_input+0x884>)
 
-  8031ad4:	2100      	movs	r1, #0
 
-  8031ad6:	6019      	str	r1, [r3, #0]
 
-     inseg.len = p->tot_len;
 
-  8031ad8:	f8a3 8008 	strh.w	r8, [r3, #8]
 
-     inseg.p = p;
 
-  8031adc:	605e      	str	r6, [r3, #4]
 
-     inseg.tcphdr = tcphdr;
 
-  8031ade:	60df      	str	r7, [r3, #12]
 
-     recv_data = NULL;
 
-  8031ae0:	4b18      	ldr	r3, [pc, #96]	; (8031b44 <tcp_input+0x888>)
 
-     recv_flags = 0;
 
-     if (flags & TCP_PSH) {
 
-  8031ae2:	f002 0208 	and.w	r2, r2, #8
 
-     inseg.next = NULL;
 
-     inseg.len = p->tot_len;
 
-     inseg.p = p;
 
-     inseg.tcphdr = tcphdr;
 
-     recv_data = NULL;
 
-  8031ae6:	6019      	str	r1, [r3, #0]
 
-     recv_flags = 0;
 
-  8031ae8:	4b17      	ldr	r3, [pc, #92]	; (8031b48 <tcp_input+0x88c>)
 
-     if (flags & TCP_PSH) {
 
-  8031aea:	b2d2      	uxtb	r2, r2
 
-     inseg.len = p->tot_len;
 
-     inseg.p = p;
 
-     inseg.tcphdr = tcphdr;
 
-     recv_data = NULL;
 
-     recv_flags = 0;
 
-  8031aec:	7019      	strb	r1, [r3, #0]
 
-     if (flags & TCP_PSH) {
 
-  8031aee:	2a00      	cmp	r2, #0
 
-  8031af0:	f47f ad52 	bne.w	8031598 <tcp_input+0x2dc>
 
-  8031af4:	e554      	b.n	80315a0 <tcp_input+0x2e4>
 
- #endif /* SO_REUSE */
 
-     if (lpcb != NULL) {
 
-       /* Move this PCB to the front of the list so that subsequent
 
-          lookups will be faster (we exploit locality in TCP segment
 
-          arrivals). */
 
-       if (prev != NULL) {
 
-  8031af6:	2b00      	cmp	r3, #0
 
-  8031af8:	f47f acc4 	bne.w	8031484 <tcp_input+0x1c8>
 
-  8031afc:	e4c7      	b.n	803148e <tcp_input+0x1d2>
 
-   } else {
 
-     /* If no matching PCB was found, send a TCP RST (reset) to the
 
-        sender. */
 
-     LWIP_DEBUGF(TCP_RST_DEBUG, ("tcp_input: no PCB match found, resetting.\n"));
 
-     if (!(TCPH_FLAGS(tcphdr) & TCP_RST)) {
 
-  8031afe:	89b8      	ldrh	r0, [r7, #12]
 
-  8031b00:	f7fd f84b 	bl	802eb9a <lwip_ntohs>
 
-  8031b04:	f000 0004 	and.w	r0, r0, #4
 
-  8031b08:	b280      	uxth	r0, r0
 
-  8031b0a:	2800      	cmp	r0, #0
 
-  8031b0c:	d1be      	bne.n	8031a8c <tcp_input+0x7d0>
 
-  8031b0e:	e7ad      	b.n	8031a6c <tcp_input+0x7b0>
 
-     }
 
-     if (acceptable) {
 
-       LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_process: Connection RESET\n"));
 
-       LWIP_ASSERT("tcp_input: pcb->state != CLOSED", pcb->state != CLOSED);
 
-       recv_flags |= TF_RESET;
 
-  8031b10:	4b0d      	ldr	r3, [pc, #52]	; (8031b48 <tcp_input+0x88c>)
 
-  8031b12:	781a      	ldrb	r2, [r3, #0]
 
-  8031b14:	f042 0208 	orr.w	r2, r2, #8
 
-  8031b18:	701a      	strb	r2, [r3, #0]
 
-       pcb->flags &= ~TF_ACK_DELAY;
 
-  8031b1a:	7fa3      	ldrb	r3, [r4, #30]
 
-  8031b1c:	f023 0301 	bic.w	r3, r3, #1
 
-  8031b20:	77a3      	strb	r3, [r4, #30]
 
-     tcp_input_pcb = pcb;
 
-     err = tcp_process(pcb);
 
-     /* A return value of ERR_ABRT means that tcp_abort() was called
 
-        and that the pcb has been freed. If so, we don't do anything. */
 
-     if (err != ERR_ABRT) {
 
-       if (recv_flags & TF_RESET) {
 
-  8031b22:	4b09      	ldr	r3, [pc, #36]	; (8031b48 <tcp_input+0x88c>)
 
-  8031b24:	781b      	ldrb	r3, [r3, #0]
 
-  8031b26:	f003 0208 	and.w	r2, r3, #8
 
-  8031b2a:	b2d2      	uxtb	r2, r2
 
-  8031b2c:	2a00      	cmp	r2, #0
 
-  8031b2e:	f47f af1f 	bne.w	8031970 <tcp_input+0x6b4>
 
-  8031b32:	e724      	b.n	803197e <tcp_input+0x6c2>
 
-   return;
 
- dropped:
 
-   TCP_STATS_INC(tcp.drop);
 
-   snmp_inc_tcpinerrs();
 
-   pbuf_free(p);
 
- }
 
-  8031b34:	b003      	add	sp, #12
 
-  8031b36:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
-  8031b3a:	bf00      	nop
 
-  8031b3c:	2000f6d0 	.word	0x2000f6d0
 
-  8031b40:	2000c3fc 	.word	0x2000c3fc
 
-  8031b44:	2000c3f4 	.word	0x2000c3f4
 
-  8031b48:	2000c3f1 	.word	0x2000c3f1
 
- 08031b4c <tcp_pbuf_prealloc>:
 
- #if TCP_OVERSIZE
 
- static struct pbuf *
 
- tcp_pbuf_prealloc(pbuf_layer layer, u16_t length, u16_t max_length,
 
-                   u16_t *oversize, struct tcp_pcb *pcb, u8_t apiflags,
 
-                   u8_t first_seg)
 
- {
 
-  8031b4c:	b570      	push	{r4, r5, r6, lr}
 
-   LWIP_UNUSED_ARG(apiflags);
 
-   LWIP_UNUSED_ARG(first_seg);
 
-   /* always create MSS-sized pbufs */
 
-   alloc = max_length;
 
- #else /* LWIP_NETIF_TX_SINGLE_PBUF */
 
-   if (length < max_length) {
 
-  8031b4e:	4291      	cmp	r1, r2
 
- #if TCP_OVERSIZE
 
- static struct pbuf *
 
- tcp_pbuf_prealloc(pbuf_layer layer, u16_t length, u16_t max_length,
 
-                   u16_t *oversize, struct tcp_pcb *pcb, u8_t apiflags,
 
-                   u8_t first_seg)
 
- {
 
-  8031b50:	460c      	mov	r4, r1
 
-  8031b52:	461e      	mov	r6, r3
 
-  8031b54:	9d04      	ldr	r5, [sp, #16]
 
-   LWIP_UNUSED_ARG(apiflags);
 
-   LWIP_UNUSED_ARG(first_seg);
 
-   /* always create MSS-sized pbufs */
 
-   alloc = max_length;
 
- #else /* LWIP_NETIF_TX_SINGLE_PBUF */
 
-   if (length < max_length) {
 
-  8031b56:	d21a      	bcs.n	8031b8e <tcp_pbuf_prealloc+0x42>
 
-      *
 
-      * Did the user set TCP_WRITE_FLAG_MORE?
 
-      *
 
-      * Will the Nagle algorithm defer transmission of this segment?
 
-      */
 
-     if ((apiflags & TCP_WRITE_FLAG_MORE) ||
 
-  8031b58:	f89d 3014 	ldrb.w	r3, [sp, #20]
 
-  8031b5c:	f003 0302 	and.w	r3, r3, #2
 
-  8031b60:	b2db      	uxtb	r3, r3
 
-  8031b62:	b95b      	cbnz	r3, 8031b7c <tcp_pbuf_prealloc+0x30>
 
-         (!(pcb->flags & TF_NODELAY) &&
 
-  8031b64:	7fab      	ldrb	r3, [r5, #30]
 
-      *
 
-      * Did the user set TCP_WRITE_FLAG_MORE?
 
-      *
 
-      * Will the Nagle algorithm defer transmission of this segment?
 
-      */
 
-     if ((apiflags & TCP_WRITE_FLAG_MORE) ||
 
-  8031b66:	f003 0340 	and.w	r3, r3, #64	; 0x40
 
-  8031b6a:	b2db      	uxtb	r3, r3
 
-  8031b6c:	b97b      	cbnz	r3, 8031b8e <tcp_pbuf_prealloc+0x42>
 
-         (!(pcb->flags & TF_NODELAY) &&
 
-  8031b6e:	f89d 3018 	ldrb.w	r3, [sp, #24]
 
-  8031b72:	b11b      	cbz	r3, 8031b7c <tcp_pbuf_prealloc+0x30>
 
-          (!first_seg ||
 
-  8031b74:	6ee9      	ldr	r1, [r5, #108]	; 0x6c
 
-  8031b76:	b909      	cbnz	r1, 8031b7c <tcp_pbuf_prealloc+0x30>
 
-           pcb->unsent != NULL ||
 
-  8031b78:	6f2b      	ldr	r3, [r5, #112]	; 0x70
 
-  8031b7a:	b143      	cbz	r3, 8031b8e <tcp_pbuf_prealloc+0x42>
 
-           pcb->unacked != NULL))) {
 
-       alloc = LWIP_MIN(max_length, LWIP_MEM_ALIGN_SIZE(length + TCP_OVERSIZE));
 
-  8031b7c:	f204 51b7 	addw	r1, r4, #1463	; 0x5b7
 
-  8031b80:	f021 0103 	bic.w	r1, r1, #3
 
-  8031b84:	4291      	cmp	r1, r2
 
-  8031b86:	bfa8      	it	ge
 
-  8031b88:	4611      	movge	r1, r2
 
-  8031b8a:	b289      	uxth	r1, r1
 
-  8031b8c:	e000      	b.n	8031b90 <tcp_pbuf_prealloc+0x44>
 
-      * Will the Nagle algorithm defer transmission of this segment?
 
-      */
 
-     if ((apiflags & TCP_WRITE_FLAG_MORE) ||
 
-         (!(pcb->flags & TF_NODELAY) &&
 
-          (!first_seg ||
 
-           pcb->unsent != NULL ||
 
-  8031b8e:	4621      	mov	r1, r4
 
-           pcb->unacked != NULL))) {
 
-       alloc = LWIP_MIN(max_length, LWIP_MEM_ALIGN_SIZE(length + TCP_OVERSIZE));
 
-     }
 
-   }
 
- #endif /* LWIP_NETIF_TX_SINGLE_PBUF */
 
-   p = pbuf_alloc(layer, alloc, PBUF_RAM);
 
-  8031b90:	2200      	movs	r2, #0
 
-  8031b92:	f7fe f988 	bl	802fea6 <pbuf_alloc>
 
-   if (p == NULL) {
 
-  8031b96:	b120      	cbz	r0, 8031ba2 <tcp_pbuf_prealloc+0x56>
 
-     return NULL;
 
-   }
 
-   LWIP_ASSERT("need unchained pbuf", p->next == NULL);
 
-   *oversize = p->len - length;
 
-  8031b98:	8943      	ldrh	r3, [r0, #10]
 
-  8031b9a:	1b1b      	subs	r3, r3, r4
 
-  8031b9c:	8033      	strh	r3, [r6, #0]
 
-   /* trim p->len to the currently used size */
 
-   p->len = p->tot_len = length;
 
-  8031b9e:	8104      	strh	r4, [r0, #8]
 
-  8031ba0:	8144      	strh	r4, [r0, #10]
 
-   return p;
 
- }
 
-  8031ba2:	bd70      	pop	{r4, r5, r6, pc}
 
- 08031ba4 <tcp_create_segment>:
 
-  * The TCP header is filled in except ackno and wnd.
 
-  * p is freed on failure.
 
-  */
 
- static struct tcp_seg *
 
- tcp_create_segment(struct tcp_pcb *pcb, struct pbuf *p, u8_t flags, u32_t seqno, u8_t optflags)
 
- {
 
-  8031ba4:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
 
-  8031ba8:	f89d 6020 	ldrb.w	r6, [sp, #32]
 
-   struct tcp_seg *seg;
 
-   u8_t optlen = LWIP_TCP_OPT_LENGTH(optflags);
 
-  8031bac:	f006 0702 	and.w	r7, r6, #2
 
-  8031bb0:	f016 0f01 	tst.w	r6, #1
 
-  8031bb4:	b2ff      	uxtb	r7, r7
 
-  * The TCP header is filled in except ackno and wnd.
 
-  * p is freed on failure.
 
-  */
 
- static struct tcp_seg *
 
- tcp_create_segment(struct tcp_pcb *pcb, struct pbuf *p, u8_t flags, u32_t seqno, u8_t optflags)
 
- {
 
-  8031bb6:	4680      	mov	r8, r0
 
-  8031bb8:	469a      	mov	sl, r3
 
-   struct tcp_seg *seg;
 
-   u8_t optlen = LWIP_TCP_OPT_LENGTH(optflags);
 
-  8031bba:	bf0c      	ite	eq
 
-  8031bbc:	2300      	moveq	r3, #0
 
-  8031bbe:	2304      	movne	r3, #4
 
-  8031bc0:	2f00      	cmp	r7, #0
 
-  8031bc2:	bf14      	ite	ne
 
-  8031bc4:	270c      	movne	r7, #12
 
-  8031bc6:	2700      	moveq	r7, #0
 
-   if ((seg = (struct tcp_seg *)memp_malloc(MEMP_TCP_SEG)) == NULL) {
 
-  8031bc8:	2004      	movs	r0, #4
 
-  * The TCP header is filled in except ackno and wnd.
 
-  * p is freed on failure.
 
-  */
 
- static struct tcp_seg *
 
- tcp_create_segment(struct tcp_pcb *pcb, struct pbuf *p, u8_t flags, u32_t seqno, u8_t optflags)
 
- {
 
-  8031bca:	460d      	mov	r5, r1
 
-  8031bcc:	4691      	mov	r9, r2
 
-   struct tcp_seg *seg;
 
-   u8_t optlen = LWIP_TCP_OPT_LENGTH(optflags);
 
-  8031bce:	18ff      	adds	r7, r7, r3
 
-   if ((seg = (struct tcp_seg *)memp_malloc(MEMP_TCP_SEG)) == NULL) {
 
-  8031bd0:	f7fd fffc 	bl	802fbcc <memp_malloc>
 
-  8031bd4:	4604      	mov	r4, r0
 
-  8031bd6:	b918      	cbnz	r0, 8031be0 <tcp_create_segment+0x3c>
 
-     LWIP_DEBUGF(TCP_OUTPUT_DEBUG | 2, ("tcp_create_segment: no memory.\n"));
 
-     pbuf_free(p);
 
-  8031bd8:	4628      	mov	r0, r5
 
-  8031bda:	f7fe f917 	bl	802fe0c <pbuf_free>
 
-     return NULL;
 
-  8031bde:	e030      	b.n	8031c42 <tcp_create_segment+0x9e>
 
-   }
 
-   seg->flags = optflags;
 
-  8031be0:	7286      	strb	r6, [r0, #10]
 
-   seg->next = NULL;
 
-   seg->p = p;
 
-   seg->len = p->tot_len - optlen;
 
-  8031be2:	892b      	ldrh	r3, [r5, #8]
 
-     pbuf_free(p);
 
-     return NULL;
 
-   }
 
-   seg->flags = optflags;
 
-   seg->next = NULL;
 
-   seg->p = p;
 
-  8031be4:	6045      	str	r5, [r0, #4]
 
-   seg->len = p->tot_len - optlen;
 
-  8031be6:	1bdb      	subs	r3, r3, r7
 
-     LWIP_DEBUGF(TCP_OUTPUT_DEBUG | 2, ("tcp_create_segment: no memory.\n"));
 
-     pbuf_free(p);
 
-     return NULL;
 
-   }
 
-   seg->flags = optflags;
 
-   seg->next = NULL;
 
-  8031be8:	2600      	movs	r6, #0
 
-  8031bea:	6006      	str	r6, [r0, #0]
 
-   seg->p = p;
 
-   seg->len = p->tot_len - optlen;
 
-  8031bec:	8103      	strh	r3, [r0, #8]
 
-   LWIP_ASSERT("invalid optflags passed: TF_SEG_DATA_CHECKSUMMED",
 
-               (optflags & TF_SEG_DATA_CHECKSUMMED) == 0);
 
- #endif /* TCP_CHECKSUM_ON_COPY */
 
-   /* build TCP header */
 
-   if (pbuf_header(p, TCP_HLEN)) {
 
-  8031bee:	2114      	movs	r1, #20
 
-  8031bf0:	4628      	mov	r0, r5
 
-  8031bf2:	f7fe f8e0 	bl	802fdb6 <pbuf_header>
 
-  8031bf6:	4605      	mov	r5, r0
 
-  8031bf8:	b120      	cbz	r0, 8031c04 <tcp_create_segment+0x60>
 
-     LWIP_DEBUGF(TCP_OUTPUT_DEBUG | 2, ("tcp_create_segment: no room for TCP header in pbuf.\n"));
 
-     TCP_STATS_INC(tcp.err);
 
-     tcp_seg_free(seg);
 
-  8031bfa:	4620      	mov	r0, r4
 
-  8031bfc:	f7fe fc35 	bl	803046a <tcp_seg_free>
 
-     return NULL;
 
-  8031c00:	4634      	mov	r4, r6
 
-  8031c02:	e01e      	b.n	8031c42 <tcp_create_segment+0x9e>
 
-   }
 
-   seg->tcphdr = (struct tcp_hdr *)seg->p->payload;
 
-  8031c04:	6863      	ldr	r3, [r4, #4]
 
-   seg->tcphdr->src = htons(pcb->local_port);
 
-  8031c06:	f8b8 001a 	ldrh.w	r0, [r8, #26]
 
-     LWIP_DEBUGF(TCP_OUTPUT_DEBUG | 2, ("tcp_create_segment: no room for TCP header in pbuf.\n"));
 
-     TCP_STATS_INC(tcp.err);
 
-     tcp_seg_free(seg);
 
-     return NULL;
 
-   }
 
-   seg->tcphdr = (struct tcp_hdr *)seg->p->payload;
 
-  8031c0a:	685e      	ldr	r6, [r3, #4]
 
-  8031c0c:	60e6      	str	r6, [r4, #12]
 
-   seg->tcphdr->src = htons(pcb->local_port);
 
-  8031c0e:	f7fc ffbf 	bl	802eb90 <lwip_htons>
 
-  8031c12:	8030      	strh	r0, [r6, #0]
 
-   seg->tcphdr->dest = htons(pcb->remote_port);
 
-  8031c14:	f8b8 001c 	ldrh.w	r0, [r8, #28]
 
-  8031c18:	68e6      	ldr	r6, [r4, #12]
 
-  8031c1a:	f7fc ffb9 	bl	802eb90 <lwip_htons>
 
-  8031c1e:	8070      	strh	r0, [r6, #2]
 
-   seg->tcphdr->seqno = htonl(seqno);
 
-  8031c20:	4650      	mov	r0, sl
 
-  8031c22:	68e6      	ldr	r6, [r4, #12]
 
-  8031c24:	f7fc ffbe 	bl	802eba4 <lwip_htonl>
 
-   /* ackno is set in tcp_output */
 
-   TCPH_HDRLEN_FLAGS_SET(seg->tcphdr, (5 + optlen / 4), flags);
 
-  8031c28:	02bf      	lsls	r7, r7, #10
 
-     return NULL;
 
-   }
 
-   seg->tcphdr = (struct tcp_hdr *)seg->p->payload;
 
-   seg->tcphdr->src = htons(pcb->local_port);
 
-   seg->tcphdr->dest = htons(pcb->remote_port);
 
-   seg->tcphdr->seqno = htonl(seqno);
 
-  8031c2a:	6070      	str	r0, [r6, #4]
 
-   /* ackno is set in tcp_output */
 
-   TCPH_HDRLEN_FLAGS_SET(seg->tcphdr, (5 + optlen / 4), flags);
 
-  8031c2c:	f507 40a0 	add.w	r0, r7, #20480	; 0x5000
 
-  8031c30:	ea40 0009 	orr.w	r0, r0, r9
 
-  8031c34:	68e6      	ldr	r6, [r4, #12]
 
-  8031c36:	f7fc ffab 	bl	802eb90 <lwip_htons>
 
-  8031c3a:	81b0      	strh	r0, [r6, #12]
 
-   /* wnd and chksum are set in tcp_output */
 
-   seg->tcphdr->urgp = 0;
 
-  8031c3c:	68e3      	ldr	r3, [r4, #12]
 
-  8031c3e:	749d      	strb	r5, [r3, #18]
 
-  8031c40:	74dd      	strb	r5, [r3, #19]
 
-   return seg;
 
- } 
 
-  8031c42:	4620      	mov	r0, r4
 
-  8031c44:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
 
- 08031c48 <tcp_output_alloc_header.constprop.0>:
 
- static struct pbuf *
 
- tcp_output_alloc_header(struct tcp_pcb *pcb, u16_t optlen, u16_t datalen,
 
-                       u32_t seqno_be /* already in network byte order */)
 
- {
 
-   struct tcp_hdr *tcphdr;
 
-   struct pbuf *p = pbuf_alloc(PBUF_IP, TCP_HLEN + optlen + datalen, PBUF_RAM);
 
-  8031c48:	3114      	adds	r1, #20
 
-  * @param datalen length of tcp data to reserve in pbuf
 
-  * @param seqno_be seqno in network byte order (big-endian)
 
-  * @return pbuf with p->payload being the tcp_hdr
 
-  */
 
- static struct pbuf *
 
- tcp_output_alloc_header(struct tcp_pcb *pcb, u16_t optlen, u16_t datalen,
 
-  8031c4a:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
-                       u32_t seqno_be /* already in network byte order */)
 
- {
 
-   struct tcp_hdr *tcphdr;
 
-   struct pbuf *p = pbuf_alloc(PBUF_IP, TCP_HLEN + optlen + datalen, PBUF_RAM);
 
-  8031c4c:	b289      	uxth	r1, r1
 
-  * @param datalen length of tcp data to reserve in pbuf
 
-  * @param seqno_be seqno in network byte order (big-endian)
 
-  * @return pbuf with p->payload being the tcp_hdr
 
-  */
 
- static struct pbuf *
 
- tcp_output_alloc_header(struct tcp_pcb *pcb, u16_t optlen, u16_t datalen,
 
-  8031c4e:	4605      	mov	r5, r0
 
-  8031c50:	4617      	mov	r7, r2
 
-                       u32_t seqno_be /* already in network byte order */)
 
- {
 
-   struct tcp_hdr *tcphdr;
 
-   struct pbuf *p = pbuf_alloc(PBUF_IP, TCP_HLEN + optlen + datalen, PBUF_RAM);
 
-  8031c52:	2001      	movs	r0, #1
 
-  8031c54:	2200      	movs	r2, #0
 
-  8031c56:	f7fe f926 	bl	802fea6 <pbuf_alloc>
 
-   if (p != NULL) {
 
-  8031c5a:	4606      	mov	r6, r0
 
-  8031c5c:	b1f8      	cbz	r0, 8031c9e <tcp_output_alloc_header.constprop.0+0x56>
 
-     LWIP_ASSERT("check that first pbuf can hold struct tcp_hdr",
 
-                  (p->len >= TCP_HLEN + optlen));
 
-     tcphdr = (struct tcp_hdr *)p->payload;
 
-  8031c5e:	6844      	ldr	r4, [r0, #4]
 
-     tcphdr->src = htons(pcb->local_port);
 
-  8031c60:	8b68      	ldrh	r0, [r5, #26]
 
-  8031c62:	f7fc ff95 	bl	802eb90 <lwip_htons>
 
-  8031c66:	8020      	strh	r0, [r4, #0]
 
-     tcphdr->dest = htons(pcb->remote_port);
 
-  8031c68:	8ba8      	ldrh	r0, [r5, #28]
 
-  8031c6a:	f7fc ff91 	bl	802eb90 <lwip_htons>
 
-     tcphdr->seqno = seqno_be;
 
-  8031c6e:	6067      	str	r7, [r4, #4]
 
-   if (p != NULL) {
 
-     LWIP_ASSERT("check that first pbuf can hold struct tcp_hdr",
 
-                  (p->len >= TCP_HLEN + optlen));
 
-     tcphdr = (struct tcp_hdr *)p->payload;
 
-     tcphdr->src = htons(pcb->local_port);
 
-     tcphdr->dest = htons(pcb->remote_port);
 
-  8031c70:	8060      	strh	r0, [r4, #2]
 
-     tcphdr->seqno = seqno_be;
 
-     tcphdr->ackno = htonl(pcb->rcv_nxt);
 
-  8031c72:	6aa8      	ldr	r0, [r5, #40]	; 0x28
 
-  8031c74:	f7fc ff96 	bl	802eba4 <lwip_htonl>
 
-  8031c78:	60a0      	str	r0, [r4, #8]
 
-     TCPH_HDRLEN_FLAGS_SET(tcphdr, (5 + optlen / 4), TCP_ACK);
 
-  8031c7a:	f245 0010 	movw	r0, #20496	; 0x5010
 
-  8031c7e:	f7fc ff87 	bl	802eb90 <lwip_htons>
 
-  8031c82:	81a0      	strh	r0, [r4, #12]
 
-     tcphdr->wnd = htons(pcb->rcv_ann_wnd);
 
-  8031c84:	8de8      	ldrh	r0, [r5, #46]	; 0x2e
 
-  8031c86:	f7fc ff83 	bl	802eb90 <lwip_htons>
 
-     tcphdr->chksum = 0;
 
-  8031c8a:	2300      	movs	r3, #0
 
-     tcphdr->src = htons(pcb->local_port);
 
-     tcphdr->dest = htons(pcb->remote_port);
 
-     tcphdr->seqno = seqno_be;
 
-     tcphdr->ackno = htonl(pcb->rcv_nxt);
 
-     TCPH_HDRLEN_FLAGS_SET(tcphdr, (5 + optlen / 4), TCP_ACK);
 
-     tcphdr->wnd = htons(pcb->rcv_ann_wnd);
 
-  8031c8c:	81e0      	strh	r0, [r4, #14]
 
-     tcphdr->chksum = 0;
 
-  8031c8e:	7423      	strb	r3, [r4, #16]
 
-  8031c90:	7463      	strb	r3, [r4, #17]
 
-     tcphdr->urgp = 0;
 
-  8031c92:	74a3      	strb	r3, [r4, #18]
 
-  8031c94:	74e3      	strb	r3, [r4, #19]
 
-     /* If we're sending a packet, update the announced right window edge */
 
-     pcb->rcv_ann_right_edge = pcb->rcv_nxt + pcb->rcv_ann_wnd;
 
-  8031c96:	8dea      	ldrh	r2, [r5, #46]	; 0x2e
 
-  8031c98:	6aab      	ldr	r3, [r5, #40]	; 0x28
 
-  8031c9a:	18d3      	adds	r3, r2, r3
 
-  8031c9c:	632b      	str	r3, [r5, #48]	; 0x30
 
-   }
 
-   return p;
 
- }
 
-  8031c9e:	4630      	mov	r0, r6
 
-  8031ca0:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 
- 08031ca2 <tcp_write>:
 
-  * - TCP_WRITE_FLAG_MORE (0x02) for TCP connection, PSH flag will be set on last segment sent,
 
-  * @return ERR_OK if enqueued, another err_t on error
 
-  */
 
- err_t
 
- tcp_write(struct tcp_pcb *pcb, const void *arg, u16_t len, u8_t apiflags)
 
- {
 
-  8031ca2:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-  8031ca6:	b08f      	sub	sp, #60	; 0x3c
 
-  8031ca8:	4691      	mov	r9, r2
 
-  8031caa:	9307      	str	r3, [sp, #28]
 
-   u16_t pos = 0; /* position in 'arg' data */
 
-   u16_t queuelen;
 
-   u8_t optlen = 0;
 
-   u8_t optflags = 0;
 
- #if TCP_OVERSIZE
 
-   u16_t oversize = 0;
 
-  8031cac:	2300      	movs	r3, #0
 
-  8031cae:	f8ad 3036 	strh.w	r3, [sp, #54]	; 0x36
 
-  * - TCP_WRITE_FLAG_MORE (0x02) for TCP connection, PSH flag will be set on last segment sent,
 
-  * @return ERR_OK if enqueued, another err_t on error
 
-  */
 
- err_t
 
- tcp_write(struct tcp_pcb *pcb, const void *arg, u16_t len, u8_t apiflags)
 
- {
 
-  8031cb2:	4604      	mov	r4, r0
 
-   u8_t concat_chksum_swapped = 0;
 
-   u16_t concat_chksummed = 0;
 
- #endif /* TCP_CHECKSUM_ON_COPY */
 
-   err_t err;
 
-   /* don't allocate segments bigger than half the maximum window we ever received */
 
-   u16_t mss_local = LWIP_MIN(pcb->mss, pcb->snd_wnd_max/2);
 
-  8031cb4:	f8b0 2062 	ldrh.w	r2, [r0, #98]	; 0x62
 
-  8031cb8:	8ec3      	ldrh	r3, [r0, #54]	; 0x36
 
-   apiflags |= TCP_WRITE_FLAG_COPY;
 
- #endif /* LWIP_NETIF_TX_SINGLE_PBUF */
 
-   LWIP_DEBUGF(TCP_OUTPUT_DEBUG, ("tcp_write(pcb=%p, data=%p, len=%"U16_F", apiflags=%"U16_F")\n",
 
-     (void *)pcb, arg, len, (u16_t)apiflags));
 
-   LWIP_ERROR("tcp_write: arg == NULL (programmer violates API)", 
 
-  8031cba:	9106      	str	r1, [sp, #24]
 
-  8031cbc:	2900      	cmp	r1, #0
 
-  8031cbe:	f000 8168 	beq.w	8031f92 <tcp_write+0x2f0>
 
-  8031cc2:	7e01      	ldrb	r1, [r0, #24]
 
-  8031cc4:	2907      	cmp	r1, #7
 
-  8031cc6:	f200 8166 	bhi.w	8031f96 <tcp_write+0x2f4>
 
-  8031cca:	f990 1018 	ldrsb.w	r1, [r0, #24]
 
-  8031cce:	f04f 5064 	mov.w	r0, #956301312	; 0x39000000
 
-  8031cd2:	4088      	lsls	r0, r1
 
-  8031cd4:	f140 815f 	bpl.w	8031f96 <tcp_write+0x2f4>
 
-       (pcb->state != CLOSE_WAIT) &&
 
-       (pcb->state != SYN_SENT) &&
 
-       (pcb->state != SYN_RCVD)) {
 
-     LWIP_DEBUGF(TCP_OUTPUT_DEBUG | LWIP_DBG_STATE | LWIP_DBG_LEVEL_SEVERE, ("tcp_write() called in invalid state\n"));
 
-     return ERR_CONN;
 
-   } else if (len == 0) {
 
-  8031cd8:	f1b9 0f00 	cmp.w	r9, #0
 
-  8031cdc:	d00d      	beq.n	8031cfa <tcp_write+0x58>
 
-     return ERR_OK;
 
-   }
 
-   /* fail on too much data */
 
-   if (len > pcb->snd_buf) {
 
-  8031cde:	f8b4 1066 	ldrh.w	r1, [r4, #102]	; 0x66
 
-  8031ce2:	4549      	cmp	r1, r9
 
-  8031ce4:	d200      	bcs.n	8031ce8 <tcp_write+0x46>
 
-  8031ce6:	e003      	b.n	8031cf0 <tcp_write+0x4e>
 
-   LWIP_DEBUGF(TCP_QLEN_DEBUG, ("tcp_write: queuelen: %"U16_F"\n", (u16_t)pcb->snd_queuelen));
 
-   /* If total number of pbufs on the unsent/unacked queues exceeds the
 
-    * configured maximum, return an error */
 
-   /* check for configured max queuelen and possible overflow */
 
-   if ((pcb->snd_queuelen >= TCP_SND_QUEUELEN) || (pcb->snd_queuelen > TCP_SNDQUEUELEN_OVERFLOW)) {
 
-  8031ce8:	f8b4 1068 	ldrh.w	r1, [r4, #104]	; 0x68
 
-  8031cec:	2947      	cmp	r1, #71	; 0x47
 
-  8031cee:	d904      	bls.n	8031cfa <tcp_write+0x58>
 
-     LWIP_DEBUGF(TCP_OUTPUT_DEBUG | 3, ("tcp_write: too long queue %"U16_F" (max %"U16_F")\n",
 
-       pcb->snd_queuelen, TCP_SND_QUEUELEN));
 
-     TCP_STATS_INC(tcp.memerr);
 
-     pcb->flags |= TF_NAGLEMEMERR;
 
-  8031cf0:	7fa3      	ldrb	r3, [r4, #30]
 
-  8031cf2:	f063 037f 	orn	r3, r3, #127	; 0x7f
 
-  8031cf6:	77a3      	strb	r3, [r4, #30]
 
-  8031cf8:	e151      	b.n	8031f9e <tcp_write+0x2fc>
 
-   u8_t concat_chksum_swapped = 0;
 
-   u16_t concat_chksummed = 0;
 
- #endif /* TCP_CHECKSUM_ON_COPY */
 
-   err_t err;
 
-   /* don't allocate segments bigger than half the maximum window we ever received */
 
-   u16_t mss_local = LWIP_MIN(pcb->mss, pcb->snd_wnd_max/2);
 
-  8031cfa:	0852      	lsrs	r2, r2, #1
 
-    *
 
-    * pos records progress as data is segmented.
 
-    */
 
-   /* Find the tail of the unsent queue. */
 
-   if (pcb->unsent != NULL) {
 
-  8031cfc:	6ee6      	ldr	r6, [r4, #108]	; 0x6c
 
-   err = tcp_write_checks(pcb, len);
 
-   if (err != ERR_OK) {
 
-     return err;
 
-   }
 
-   queuelen = pcb->snd_queuelen;
 
-  8031cfe:	f8b4 b068 	ldrh.w	fp, [r4, #104]	; 0x68
 
-   u8_t concat_chksum_swapped = 0;
 
-   u16_t concat_chksummed = 0;
 
- #endif /* TCP_CHECKSUM_ON_COPY */
 
-   err_t err;
 
-   /* don't allocate segments bigger than half the maximum window we ever received */
 
-   u16_t mss_local = LWIP_MIN(pcb->mss, pcb->snd_wnd_max/2);
 
-  8031d02:	429a      	cmp	r2, r3
 
-  8031d04:	bf28      	it	cs
 
-  8031d06:	461a      	movcs	r2, r3
 
-  8031d08:	920a      	str	r2, [sp, #40]	; 0x28
 
-    *
 
-    * pos records progress as data is segmented.
 
-    */
 
-   /* Find the tail of the unsent queue. */
 
-   if (pcb->unsent != NULL) {
 
-  8031d0a:	b90e      	cbnz	r6, 8031d10 <tcp_write+0x6e>
 
-  8031d0c:	e066      	b.n	8031ddc <tcp_write+0x13a>
 
-     u16_t space;
 
-     u16_t unsent_optlen;
 
-     /* @todo: this could be sped up by keeping last_unsent in the pcb */
 
-     for (last_unsent = pcb->unsent; last_unsent->next != NULL;
 
-          last_unsent = last_unsent->next);
 
-  8031d0e:	461e      	mov	r6, r3
 
-   if (pcb->unsent != NULL) {
 
-     u16_t space;
 
-     u16_t unsent_optlen;
 
-     /* @todo: this could be sped up by keeping last_unsent in the pcb */
 
-     for (last_unsent = pcb->unsent; last_unsent->next != NULL;
 
-  8031d10:	6833      	ldr	r3, [r6, #0]
 
-  8031d12:	2b00      	cmp	r3, #0
 
-  8031d14:	d1fb      	bne.n	8031d0e <tcp_write+0x6c>
 
-          last_unsent = last_unsent->next);
 
-     /* Usable space at the end of the last unsent segment */
 
-     unsent_optlen = LWIP_TCP_OPT_LENGTH(last_unsent->flags);
 
-  8031d16:	7ab3      	ldrb	r3, [r6, #10]
 
-     space = mss_local - (last_unsent->len + unsent_optlen);
 
-  8031d18:	8937      	ldrh	r7, [r6, #8]
 
-     /* @todo: this could be sped up by keeping last_unsent in the pcb */
 
-     for (last_unsent = pcb->unsent; last_unsent->next != NULL;
 
-          last_unsent = last_unsent->next);
 
-     /* Usable space at the end of the last unsent segment */
 
-     unsent_optlen = LWIP_TCP_OPT_LENGTH(last_unsent->flags);
 
-  8031d1a:	980a      	ldr	r0, [sp, #40]	; 0x28
 
- #if TCP_OVERSIZE_DBGCHECK
 
-     /* check that pcb->unsent_oversize matches last_unsent->unsent_oversize */
 
-     LWIP_ASSERT("unsent_oversize mismatch (pcb vs. last_unsent)",
 
-                 pcb->unsent_oversize == last_unsent->oversize_left);
 
- #endif /* TCP_OVERSIZE_DBGCHECK */
 
-     oversize = pcb->unsent_oversize;
 
-  8031d1c:	f8b4 506a 	ldrh.w	r5, [r4, #106]	; 0x6a
 
-     /* @todo: this could be sped up by keeping last_unsent in the pcb */
 
-     for (last_unsent = pcb->unsent; last_unsent->next != NULL;
 
-          last_unsent = last_unsent->next);
 
-     /* Usable space at the end of the last unsent segment */
 
-     unsent_optlen = LWIP_TCP_OPT_LENGTH(last_unsent->flags);
 
-  8031d20:	f013 0f01 	tst.w	r3, #1
 
-  8031d24:	f003 0302 	and.w	r3, r3, #2
 
-  8031d28:	bf0c      	ite	eq
 
-  8031d2a:	2100      	moveq	r1, #0
 
-  8031d2c:	2104      	movne	r1, #4
 
-  8031d2e:	b2db      	uxtb	r3, r3
 
-  8031d30:	1bc2      	subs	r2, r0, r7
 
-  8031d32:	2b00      	cmp	r3, #0
 
-  8031d34:	bf14      	ite	ne
 
-  8031d36:	230c      	movne	r3, #12
 
-  8031d38:	2300      	moveq	r3, #0
 
-     space = mss_local - (last_unsent->len + unsent_optlen);
 
-  8031d3a:	1a52      	subs	r2, r2, r1
 
-  8031d3c:	1ad2      	subs	r2, r2, r3
 
-  8031d3e:	b292      	uxth	r2, r2
 
-     /* check that pcb->unsent_oversize matches last_unsent->unsent_oversize */
 
-     LWIP_ASSERT("unsent_oversize mismatch (pcb vs. last_unsent)",
 
-                 pcb->unsent_oversize == last_unsent->oversize_left);
 
- #endif /* TCP_OVERSIZE_DBGCHECK */
 
-     oversize = pcb->unsent_oversize;
 
-     if (oversize > 0) {
 
-  8031d40:	b91d      	cbnz	r5, 8031d4a <tcp_write+0xa8>
 
- #if TCP_OVERSIZE_DBGCHECK
 
-     /* check that pcb->unsent_oversize matches last_unsent->unsent_oversize */
 
-     LWIP_ASSERT("unsent_oversize mismatch (pcb vs. last_unsent)",
 
-                 pcb->unsent_oversize == last_unsent->oversize_left);
 
- #endif /* TCP_OVERSIZE_DBGCHECK */
 
-     oversize = pcb->unsent_oversize;
 
-  8031d42:	f8ad 5036 	strh.w	r5, [sp, #54]	; 0x36
 
-  */
 
- err_t
 
- tcp_write(struct tcp_pcb *pcb, const void *arg, u16_t len, u8_t apiflags)
 
- {
 
-   struct pbuf *concat_p = NULL;
 
-   struct tcp_seg *last_unsent = NULL, *seg = NULL, *prev_seg = NULL, *queue = NULL;
 
-  8031d46:	462b      	mov	r3, r5
 
-  8031d48:	e00a      	b.n	8031d60 <tcp_write+0xbe>
 
- #endif /* TCP_OVERSIZE_DBGCHECK */
 
-     oversize = pcb->unsent_oversize;
 
-     if (oversize > 0) {
 
-       LWIP_ASSERT("inconsistent oversize vs. space", oversize_used <= space);
 
-       seg = last_unsent;
 
-       oversize_used = oversize < len ? oversize : len;
 
-  8031d4a:	45a9      	cmp	r9, r5
 
-  8031d4c:	bf34      	ite	cc
 
-  8031d4e:	464b      	movcc	r3, r9
 
-  8031d50:	462b      	movcs	r3, r5
 
-       pos += oversize_used;
 
-       oversize -= oversize_used;
 
-  8031d52:	1aed      	subs	r5, r5, r3
 
-       space -= oversize_used;
 
-  8031d54:	1ad2      	subs	r2, r2, r3
 
-     if (oversize > 0) {
 
-       LWIP_ASSERT("inconsistent oversize vs. space", oversize_used <= space);
 
-       seg = last_unsent;
 
-       oversize_used = oversize < len ? oversize : len;
 
-       pos += oversize_used;
 
-       oversize -= oversize_used;
 
-  8031d56:	f8ad 5036 	strh.w	r5, [sp, #54]	; 0x36
 
-       space -= oversize_used;
 
-  8031d5a:	b292      	uxth	r2, r2
 
-     oversize = pcb->unsent_oversize;
 
-     if (oversize > 0) {
 
-       LWIP_ASSERT("inconsistent oversize vs. space", oversize_used <= space);
 
-       seg = last_unsent;
 
-       oversize_used = oversize < len ? oversize : len;
 
-       pos += oversize_used;
 
-  8031d5c:	461d      	mov	r5, r3
 
-       oversize -= oversize_used;
 
-       space -= oversize_used;
 
-  8031d5e:	4633      	mov	r3, r6
 
-      *
 
-      * We don't extend segments containing SYN/FIN flags or options
 
-      * (len==0). The new pbuf is kept in concat_p and pbuf_cat'ed at
 
-      * the end.
 
-      */
 
-     if ((pos < len) && (space > 0) && (last_unsent->len > 0)) {
 
-  8031d60:	454d      	cmp	r5, r9
 
-  8031d62:	d23f      	bcs.n	8031de4 <tcp_write+0x142>
 
-  8031d64:	2a00      	cmp	r2, #0
 
-  8031d66:	d03d      	beq.n	8031de4 <tcp_write+0x142>
 
-  8031d68:	2f00      	cmp	r7, #0
 
-  8031d6a:	d03e      	beq.n	8031dea <tcp_write+0x148>
 
-       seg = last_unsent;
 
-       /* Create a pbuf with a copy or reference to seglen bytes. We
 
-        * can use PBUF_RAW here since the data appears in the middle of
 
-        * a segment. A header will never be prepended. */
 
-       if (apiflags & TCP_WRITE_FLAG_COPY) {
 
-  8031d6c:	9907      	ldr	r1, [sp, #28]
 
-      * We don't extend segments containing SYN/FIN flags or options
 
-      * (len==0). The new pbuf is kept in concat_p and pbuf_cat'ed at
 
-      * the end.
 
-      */
 
-     if ((pos < len) && (space > 0) && (last_unsent->len > 0)) {
 
-       u16_t seglen = space < len - pos ? space : len - pos;
 
-  8031d6e:	ebc5 0a09 	rsb	sl, r5, r9
 
-  8031d72:	4592      	cmp	sl, r2
 
-  8031d74:	bfa8      	it	ge
 
-  8031d76:	4692      	movge	sl, r2
 
-       seg = last_unsent;
 
-       /* Create a pbuf with a copy or reference to seglen bytes. We
 
-        * can use PBUF_RAW here since the data appears in the middle of
 
-        * a segment. A header will never be prepended. */
 
-       if (apiflags & TCP_WRITE_FLAG_COPY) {
 
-  8031d78:	07cb      	lsls	r3, r1, #31
 
-      * We don't extend segments containing SYN/FIN flags or options
 
-      * (len==0). The new pbuf is kept in concat_p and pbuf_cat'ed at
 
-      * the end.
 
-      */
 
-     if ((pos < len) && (space > 0) && (last_unsent->len > 0)) {
 
-       u16_t seglen = space < len - pos ? space : len - pos;
 
-  8031d7a:	fa1f f88a 	uxth.w	r8, sl
 
-       seg = last_unsent;
 
-       /* Create a pbuf with a copy or reference to seglen bytes. We
 
-        * can use PBUF_RAW here since the data appears in the middle of
 
-        * a segment. A header will never be prepended. */
 
-       if (apiflags & TCP_WRITE_FLAG_COPY) {
 
-  8031d7e:	d514      	bpl.n	8031daa <tcp_write+0x108>
 
-         /* Data is copied */
 
-         if ((concat_p = tcp_pbuf_prealloc(PBUF_RAW, seglen, space, &oversize, pcb, apiflags, 1)) == NULL) {
 
-  8031d80:	2301      	movs	r3, #1
 
-  8031d82:	9101      	str	r1, [sp, #4]
 
-  8031d84:	9302      	str	r3, [sp, #8]
 
-  8031d86:	9400      	str	r4, [sp, #0]
 
-  8031d88:	2003      	movs	r0, #3
 
-  8031d8a:	4641      	mov	r1, r8
 
-  8031d8c:	f10d 0336 	add.w	r3, sp, #54	; 0x36
 
-  8031d90:	f7ff fedc 	bl	8031b4c <tcp_pbuf_prealloc>
 
-  8031d94:	4607      	mov	r7, r0
 
-  8031d96:	2800      	cmp	r0, #0
 
-  8031d98:	f000 80e9 	beq.w	8031f6e <tcp_write+0x2cc>
 
-           goto memerr;
 
-         }
 
- #if TCP_OVERSIZE_DBGCHECK
 
-         last_unsent->oversize_left += oversize;
 
- #endif /* TCP_OVERSIZE_DBGCHECK */
 
-         TCP_DATA_COPY2(concat_p->payload, (u8_t*)arg + pos, seglen, &concat_chksum, &concat_chksum_swapped);
 
-  8031d9c:	9a06      	ldr	r2, [sp, #24]
 
-  8031d9e:	6840      	ldr	r0, [r0, #4]
 
-  8031da0:	1951      	adds	r1, r2, r5
 
-  8031da2:	4642      	mov	r2, r8
 
-  8031da4:	f7ef fdf2 	bl	802198c <memcpy>
 
-  8031da8:	e00b      	b.n	8031dc2 <tcp_write+0x120>
 
- #if TCP_CHECKSUM_ON_COPY
 
-         concat_chksummed += seglen;
 
- #endif /* TCP_CHECKSUM_ON_COPY */
 
-       } else {
 
-         /* Data is not copied */
 
-         if ((concat_p = pbuf_alloc(PBUF_RAW, seglen, PBUF_ROM)) == NULL) {
 
-  8031daa:	2003      	movs	r0, #3
 
-  8031dac:	4641      	mov	r1, r8
 
-  8031dae:	2201      	movs	r2, #1
 
-  8031db0:	f7fe f879 	bl	802fea6 <pbuf_alloc>
 
-  8031db4:	4607      	mov	r7, r0
 
-  8031db6:	2800      	cmp	r0, #0
 
-  8031db8:	f000 80d9 	beq.w	8031f6e <tcp_write+0x2cc>
 
-         tcp_seg_add_chksum(~inet_chksum((u8_t*)arg + pos, seglen), seglen,
 
-           &concat_chksum, &concat_chksum_swapped);
 
-         concat_chksummed += seglen;
 
- #endif /* TCP_CHECKSUM_ON_COPY */
 
-         /* reference the non-volatile payload data */
 
-         concat_p->payload = (u8_t*)arg + pos;
 
-  8031dbc:	9806      	ldr	r0, [sp, #24]
 
-  8031dbe:	1943      	adds	r3, r0, r5
 
-  8031dc0:	607b      	str	r3, [r7, #4]
 
-       }
 
-       pos += seglen;
 
-       queuelen += pbuf_clen(concat_p);
 
-  8031dc2:	4638      	mov	r0, r7
 
-  8031dc4:	f7fe f8f6 	bl	802ffb4 <pbuf_clen>
 
- #endif /* TCP_CHECKSUM_ON_COPY */
 
-         /* reference the non-volatile payload data */
 
-         concat_p->payload = (u8_t*)arg + pos;
 
-       }
 
-       pos += seglen;
 
-  8031dc8:	44a8      	add	r8, r5
 
-  8031dca:	fa1f f888 	uxth.w	r8, r8
 
-       queuelen += pbuf_clen(concat_p);
 
-  8031dce:	4458      	add	r0, fp
 
-  8031dd0:	46aa      	mov	sl, r5
 
-  8031dd2:	fa1f fb80 	uxth.w	fp, r0
 
- #endif /* TCP_CHECKSUM_ON_COPY */
 
-         /* reference the non-volatile payload data */
 
-         concat_p->payload = (u8_t*)arg + pos;
 
-       }
 
-       pos += seglen;
 
-  8031dd6:	4645      	mov	r5, r8
 
-       queuelen += pbuf_clen(concat_p);
 
-  8031dd8:	4633      	mov	r3, r6
 
-  8031dda:	e007      	b.n	8031dec <tcp_write+0x14a>
 
-   u16_t queuelen;
 
-   u8_t optlen = 0;
 
-   u8_t optflags = 0;
 
- #if TCP_OVERSIZE
 
-   u16_t oversize = 0;
 
-   u16_t oversize_used = 0;
 
-  8031ddc:	46b2      	mov	sl, r6
 
- err_t
 
- tcp_write(struct tcp_pcb *pcb, const void *arg, u16_t len, u8_t apiflags)
 
- {
 
-   struct pbuf *concat_p = NULL;
 
-   struct tcp_seg *last_unsent = NULL, *seg = NULL, *prev_seg = NULL, *queue = NULL;
 
-   u16_t pos = 0; /* position in 'arg' data */
 
-  8031dde:	4635      	mov	r5, r6
 
-  */
 
- err_t
 
- tcp_write(struct tcp_pcb *pcb, const void *arg, u16_t len, u8_t apiflags)
 
- {
 
-   struct pbuf *concat_p = NULL;
 
-   struct tcp_seg *last_unsent = NULL, *seg = NULL, *prev_seg = NULL, *queue = NULL;
 
-  8031de0:	4633      	mov	r3, r6
 
-  8031de2:	e000      	b.n	8031de6 <tcp_write+0x144>
 
-      *
 
-      * We don't extend segments containing SYN/FIN flags or options
 
-      * (len==0). The new pbuf is kept in concat_p and pbuf_cat'ed at
 
-      * the end.
 
-      */
 
-     if ((pos < len) && (space > 0) && (last_unsent->len > 0)) {
 
-  8031de4:	46aa      	mov	sl, r5
 
-  * @return ERR_OK if enqueued, another err_t on error
 
-  */
 
- err_t
 
- tcp_write(struct tcp_pcb *pcb, const void *arg, u16_t len, u8_t apiflags)
 
- {
 
-   struct pbuf *concat_p = NULL;
 
-  8031de6:	2700      	movs	r7, #0
 
-  8031de8:	e000      	b.n	8031dec <tcp_write+0x14a>
 
-      *
 
-      * We don't extend segments containing SYN/FIN flags or options
 
-      * (len==0). The new pbuf is kept in concat_p and pbuf_cat'ed at
 
-      * the end.
 
-      */
 
-     if ((pos < len) && (space > 0) && (last_unsent->len > 0)) {
 
-  8031dea:	46aa      	mov	sl, r5
 
- #if TCP_CHECKSUM_ON_COPY
 
-     u16_t chksum = 0;
 
-     u8_t chksum_swapped = 0;
 
- #endif /* TCP_CHECKSUM_ON_COPY */
 
-     if (apiflags & TCP_WRITE_FLAG_COPY) {
 
-  8031dec:	9907      	ldr	r1, [sp, #28]
 
-     seg->chksum_swapped = chksum_swapped;
 
-     seg->flags |= TF_SEG_DATA_CHECKSUMMED;
 
- #endif /* TCP_CHECKSUM_ON_COPY */
 
-     /* first segment of to-be-queued data? */
 
-     if (queue == NULL) {
 
-  8031dee:	f04f 0800 	mov.w	r8, #0
 
- #if TCP_CHECKSUM_ON_COPY
 
-     u16_t chksum = 0;
 
-     u8_t chksum_swapped = 0;
 
- #endif /* TCP_CHECKSUM_ON_COPY */
 
-     if (apiflags & TCP_WRITE_FLAG_COPY) {
 
-  8031df2:	f001 0101 	and.w	r1, r1, #1
 
-     seg->chksum_swapped = chksum_swapped;
 
-     seg->flags |= TF_SEG_DATA_CHECKSUMMED;
 
- #endif /* TCP_CHECKSUM_ON_COPY */
 
-     /* first segment of to-be-queued data? */
 
-     if (queue == NULL) {
 
-  8031df6:	f8cd 802c 	str.w	r8, [sp, #44]	; 0x2c
 
- #if TCP_CHECKSUM_ON_COPY
 
-     u16_t chksum = 0;
 
-     u8_t chksum_swapped = 0;
 
- #endif /* TCP_CHECKSUM_ON_COPY */
 
-     if (apiflags & TCP_WRITE_FLAG_COPY) {
 
-  8031dfa:	9108      	str	r1, [sp, #32]
 
-  8031dfc:	e068      	b.n	8031ed0 <tcp_write+0x22e>
 
-    * The new segments are chained together in the local 'queue'
 
-    * variable, ready to be appended to pcb->unsent.
 
-    */
 
-   while (pos < len) {
 
-     struct pbuf *p;
 
-     u16_t left = len - pos;
 
-  8031dfe:	ebc5 0309 	rsb	r3, r5, r9
 
-     u16_t max_len = mss_local - optlen;
 
-     u16_t seglen = left > max_len ? max_len : left;
 
-  8031e02:	9a0a      	ldr	r2, [sp, #40]	; 0x28
 
-  8031e04:	b29b      	uxth	r3, r3
 
-  8031e06:	4293      	cmp	r3, r2
 
-  8031e08:	bf38      	it	cc
 
-  8031e0a:	461a      	movcc	r2, r3
 
- #if TCP_CHECKSUM_ON_COPY
 
-     u16_t chksum = 0;
 
-     u8_t chksum_swapped = 0;
 
- #endif /* TCP_CHECKSUM_ON_COPY */
 
-     if (apiflags & TCP_WRITE_FLAG_COPY) {
 
-  8031e0c:	9b08      	ldr	r3, [sp, #32]
 
-    */
 
-   while (pos < len) {
 
-     struct pbuf *p;
 
-     u16_t left = len - pos;
 
-     u16_t max_len = mss_local - optlen;
 
-     u16_t seglen = left > max_len ? max_len : left;
 
-  8031e0e:	9209      	str	r2, [sp, #36]	; 0x24
 
- #if TCP_CHECKSUM_ON_COPY
 
-     u16_t chksum = 0;
 
-     u8_t chksum_swapped = 0;
 
- #endif /* TCP_CHECKSUM_ON_COPY */
 
-     if (apiflags & TCP_WRITE_FLAG_COPY) {
 
-  8031e10:	b1db      	cbz	r3, 8031e4a <tcp_write+0x1a8>
 
-       /* If copy is set, memory should be allocated and data copied
 
-        * into pbuf */
 
-       if ((p = tcp_pbuf_prealloc(PBUF_TRANSPORT, seglen + optlen, mss_local, &oversize, pcb, apiflags, queue == NULL)) == NULL) {
 
-  8031e12:	f1d8 0301 	rsbs	r3, r8, #1
 
-  8031e16:	9807      	ldr	r0, [sp, #28]
 
-  8031e18:	9400      	str	r4, [sp, #0]
 
-  8031e1a:	bf38      	it	cc
 
-  8031e1c:	2300      	movcc	r3, #0
 
-  8031e1e:	9001      	str	r0, [sp, #4]
 
-  8031e20:	9302      	str	r3, [sp, #8]
 
-  8031e22:	4611      	mov	r1, r2
 
-  8031e24:	2000      	movs	r0, #0
 
-  8031e26:	9a0a      	ldr	r2, [sp, #40]	; 0x28
 
-  8031e28:	f10d 0336 	add.w	r3, sp, #54	; 0x36
 
-  8031e2c:	f7ff fe8e 	bl	8031b4c <tcp_pbuf_prealloc>
 
-  8031e30:	4684      	mov	ip, r0
 
-  8031e32:	2800      	cmp	r0, #0
 
-  8031e34:	f000 809e 	beq.w	8031f74 <tcp_write+0x2d2>
 
-         LWIP_DEBUGF(TCP_OUTPUT_DEBUG | 2, ("tcp_write : could not allocate memory for pbuf copy size %"U16_F"\n", seglen));
 
-         goto memerr;
 
-       }
 
-       LWIP_ASSERT("tcp_write: check that first pbuf can hold the complete seglen",
 
-                   (p->len >= seglen));
 
-       TCP_DATA_COPY2((char *)p->payload + optlen, (u8_t*)arg + pos, seglen, &chksum, &chksum_swapped);
 
-  8031e38:	9a06      	ldr	r2, [sp, #24]
 
-  8031e3a:	6840      	ldr	r0, [r0, #4]
 
-  8031e3c:	f8cd c014 	str.w	ip, [sp, #20]
 
-  8031e40:	1951      	adds	r1, r2, r5
 
-  8031e42:	9a09      	ldr	r2, [sp, #36]	; 0x24
 
-  8031e44:	f7ef fda2 	bl	802198c <memcpy>
 
-  8031e48:	e019      	b.n	8031e7e <tcp_write+0x1dc>
 
-        */
 
-       struct pbuf *p2;
 
- #if TCP_OVERSIZE
 
-       LWIP_ASSERT("oversize == 0", oversize == 0);
 
- #endif /* TCP_OVERSIZE */
 
-       if ((p2 = pbuf_alloc(PBUF_TRANSPORT, seglen, PBUF_ROM)) == NULL) {
 
-  8031e4a:	9808      	ldr	r0, [sp, #32]
 
-  8031e4c:	9909      	ldr	r1, [sp, #36]	; 0x24
 
-  8031e4e:	2201      	movs	r2, #1
 
-  8031e50:	f7fe f829 	bl	802fea6 <pbuf_alloc>
 
-  8031e54:	4603      	mov	r3, r0
 
-  8031e56:	2800      	cmp	r0, #0
 
-  8031e58:	f000 808c 	beq.w	8031f74 <tcp_write+0x2d2>
 
- #if TCP_CHECKSUM_ON_COPY
 
-       /* calculate the checksum of nocopy-data */
 
-       chksum = ~inet_chksum((u8_t*)arg + pos, seglen);
 
- #endif /* TCP_CHECKSUM_ON_COPY */
 
-       /* reference the non-volatile payload data */
 
-       p2->payload = (u8_t*)arg + pos;
 
-  8031e5c:	9806      	ldr	r0, [sp, #24]
 
-  8031e5e:	1942      	adds	r2, r0, r5
 
-       /* Second, allocate a pbuf for the headers. */
 
-       if ((p = pbuf_alloc(PBUF_TRANSPORT, optlen, PBUF_RAM)) == NULL) {
 
-  8031e60:	9808      	ldr	r0, [sp, #32]
 
- #if TCP_CHECKSUM_ON_COPY
 
-       /* calculate the checksum of nocopy-data */
 
-       chksum = ~inet_chksum((u8_t*)arg + pos, seglen);
 
- #endif /* TCP_CHECKSUM_ON_COPY */
 
-       /* reference the non-volatile payload data */
 
-       p2->payload = (u8_t*)arg + pos;
 
-  8031e62:	605a      	str	r2, [r3, #4]
 
-       /* Second, allocate a pbuf for the headers. */
 
-       if ((p = pbuf_alloc(PBUF_TRANSPORT, optlen, PBUF_RAM)) == NULL) {
 
-  8031e64:	4601      	mov	r1, r0
 
-  8031e66:	4602      	mov	r2, r0
 
-  8031e68:	9305      	str	r3, [sp, #20]
 
-  8031e6a:	f7fe f81c 	bl	802fea6 <pbuf_alloc>
 
-  8031e6e:	9b05      	ldr	r3, [sp, #20]
 
-  8031e70:	b908      	cbnz	r0, 8031e76 <tcp_write+0x1d4>
 
-         /* If allocation fails, we have to deallocate the data pbuf as
 
-          * well. */
 
-         pbuf_free(p2);
 
-  8031e72:	4618      	mov	r0, r3
 
-  8031e74:	e013      	b.n	8031e9e <tcp_write+0x1fc>
 
-         LWIP_DEBUGF(TCP_OUTPUT_DEBUG | 2, ("tcp_write: could not allocate memory for header pbuf\n"));
 
-         goto memerr;
 
-       }
 
-       /* Concatenate the headers and data pbufs together. */
 
-       pbuf_cat(p/*header*/, p2/*data*/);
 
-  8031e76:	4619      	mov	r1, r3
 
-  8031e78:	9005      	str	r0, [sp, #20]
 
-  8031e7a:	f7fe f8b1 	bl	802ffe0 <pbuf_cat>
 
-  8031e7e:	f8dd c014 	ldr.w	ip, [sp, #20]
 
-     }
 
-     queuelen += pbuf_clen(p);
 
-  8031e82:	4660      	mov	r0, ip
 
-  8031e84:	f8cd c014 	str.w	ip, [sp, #20]
 
-  8031e88:	f7fe f894 	bl	802ffb4 <pbuf_clen>
 
-  8031e8c:	4458      	add	r0, fp
 
-  8031e8e:	fa1f fb80 	uxth.w	fp, r0
 
-     /* Now that there are more segments queued, we check again if the
 
-      * length of the queue exceeds the configured maximum or
 
-      * overflows. */
 
-     if ((queuelen > TCP_SND_QUEUELEN) || (queuelen > TCP_SNDQUEUELEN_OVERFLOW)) {
 
-  8031e92:	f1bb 0f48 	cmp.w	fp, #72	; 0x48
 
-  8031e96:	f8dd c014 	ldr.w	ip, [sp, #20]
 
-  8031e9a:	d903      	bls.n	8031ea4 <tcp_write+0x202>
 
-       LWIP_DEBUGF(TCP_OUTPUT_DEBUG | 2, ("tcp_write: queue too long %"U16_F" (%"U16_F")\n", queuelen, TCP_SND_QUEUELEN));
 
-       pbuf_free(p);
 
-  8031e9c:	4660      	mov	r0, ip
 
-  8031e9e:	f7fd ffb5 	bl	802fe0c <pbuf_free>
 
-       goto memerr;
 
-  8031ea2:	e067      	b.n	8031f74 <tcp_write+0x2d2>
 
-     }
 
-     if ((seg = tcp_create_segment(pcb, p, 0, pcb->snd_lbb + pos, optflags)) == NULL) {
 
-  8031ea4:	6de3      	ldr	r3, [r4, #92]	; 0x5c
 
-  8031ea6:	2200      	movs	r2, #0
 
-  8031ea8:	18eb      	adds	r3, r5, r3
 
-  8031eaa:	9200      	str	r2, [sp, #0]
 
-  8031eac:	4620      	mov	r0, r4
 
-  8031eae:	4661      	mov	r1, ip
 
-  8031eb0:	f7ff fe78 	bl	8031ba4 <tcp_create_segment>
 
-  8031eb4:	4603      	mov	r3, r0
 
-  8031eb6:	2800      	cmp	r0, #0
 
-  8031eb8:	d05c      	beq.n	8031f74 <tcp_write+0x2d2>
 
-     seg->chksum_swapped = chksum_swapped;
 
-     seg->flags |= TF_SEG_DATA_CHECKSUMMED;
 
- #endif /* TCP_CHECKSUM_ON_COPY */
 
-     /* first segment of to-be-queued data? */
 
-     if (queue == NULL) {
 
-  8031eba:	f1b8 0f00 	cmp.w	r8, #0
 
-  8031ebe:	d002      	beq.n	8031ec6 <tcp_write+0x224>
 
-       queue = seg;
 
-     } else {
 
-       /* Attach the segment to the end of the queued segments */
 
-       LWIP_ASSERT("prev_seg != NULL", prev_seg != NULL);
 
-       prev_seg->next = seg;
 
-  8031ec0:	990b      	ldr	r1, [sp, #44]	; 0x2c
 
-  8031ec2:	6008      	str	r0, [r1, #0]
 
-  8031ec4:	e000      	b.n	8031ec8 <tcp_write+0x226>
 
-     seg->chksum_swapped = chksum_swapped;
 
-     seg->flags |= TF_SEG_DATA_CHECKSUMMED;
 
- #endif /* TCP_CHECKSUM_ON_COPY */
 
-     /* first segment of to-be-queued data? */
 
-     if (queue == NULL) {
 
-  8031ec6:	4680      	mov	r8, r0
 
-     LWIP_DEBUGF(TCP_OUTPUT_DEBUG | LWIP_DBG_TRACE, ("tcp_write: queueing %"U32_F":%"U32_F"\n",
 
-       ntohl(seg->tcphdr->seqno),
 
-       ntohl(seg->tcphdr->seqno) + TCP_TCPLEN(seg)));
 
-     pos += seglen;
 
-  8031ec8:	9a09      	ldr	r2, [sp, #36]	; 0x24
 
-  8031eca:	930b      	str	r3, [sp, #44]	; 0x2c
 
-  8031ecc:	1955      	adds	r5, r2, r5
 
-  8031ece:	b2ad      	uxth	r5, r5
 
-    * Phase 3: Create new segments.
 
-    *
 
-    * The new segments are chained together in the local 'queue'
 
-    * variable, ready to be appended to pcb->unsent.
 
-    */
 
-   while (pos < len) {
 
-  8031ed0:	454d      	cmp	r5, r9
 
-  8031ed2:	d394      	bcc.n	8031dfe <tcp_write+0x15c>
 
-   /*
 
-    * Phase 1: If data has been added to the preallocated tail of
 
-    * last_unsent, we update the length fields of the pbuf chain.
 
-    */
 
- #if TCP_OVERSIZE
 
-   if (oversize_used > 0) {
 
-  8031ed4:	f1ba 0f00 	cmp.w	sl, #0
 
-  8031ed8:	d019      	beq.n	8031f0e <tcp_write+0x26c>
 
-     struct pbuf *p;
 
-     /* Bump tot_len of whole chain, len of tail */
 
-     for (p = last_unsent->p; p; p = p->next) {
 
-  8031eda:	6875      	ldr	r5, [r6, #4]
 
-  8031edc:	e011      	b.n	8031f02 <tcp_write+0x260>
 
-       p->tot_len += oversize_used;
 
-  8031ede:	892a      	ldrh	r2, [r5, #8]
 
-  8031ee0:	4452      	add	r2, sl
 
-  8031ee2:	812a      	strh	r2, [r5, #8]
 
-       if (p->next == NULL) {
 
-  8031ee4:	682a      	ldr	r2, [r5, #0]
 
-  8031ee6:	b95a      	cbnz	r2, 8031f00 <tcp_write+0x25e>
 
-         TCP_DATA_COPY((char *)p->payload + p->len, arg, oversize_used, last_unsent);
 
-  8031ee8:	686a      	ldr	r2, [r5, #4]
 
-  8031eea:	8968      	ldrh	r0, [r5, #10]
 
-  8031eec:	9906      	ldr	r1, [sp, #24]
 
-  8031eee:	9305      	str	r3, [sp, #20]
 
-  8031ef0:	1810      	adds	r0, r2, r0
 
-  8031ef2:	4652      	mov	r2, sl
 
-  8031ef4:	f7ef fd4a 	bl	802198c <memcpy>
 
-         p->len += oversize_used;
 
-  8031ef8:	896a      	ldrh	r2, [r5, #10]
 
-  8031efa:	9b05      	ldr	r3, [sp, #20]
 
-  8031efc:	4452      	add	r2, sl
 
-  8031efe:	816a      	strh	r2, [r5, #10]
 
-    */
 
- #if TCP_OVERSIZE
 
-   if (oversize_used > 0) {
 
-     struct pbuf *p;
 
-     /* Bump tot_len of whole chain, len of tail */
 
-     for (p = last_unsent->p; p; p = p->next) {
 
-  8031f00:	682d      	ldr	r5, [r5, #0]
 
-  8031f02:	2d00      	cmp	r5, #0
 
-  8031f04:	d1eb      	bne.n	8031ede <tcp_write+0x23c>
 
-       if (p->next == NULL) {
 
-         TCP_DATA_COPY((char *)p->payload + p->len, arg, oversize_used, last_unsent);
 
-         p->len += oversize_used;
 
-       }
 
-     }
 
-     last_unsent->len += oversize_used;
 
-  8031f06:	8932      	ldrh	r2, [r6, #8]
 
-  8031f08:	4492      	add	sl, r2
 
-  8031f0a:	f8a6 a008 	strh.w	sl, [r6, #8]
 
-     LWIP_ASSERT("last_unsent->oversize_left >= oversize_used",
 
-                 last_unsent->oversize_left >= oversize_used);
 
-     last_unsent->oversize_left -= oversize_used;
 
- #endif /* TCP_OVERSIZE_DBGCHECK */
 
-   }
 
-   pcb->unsent_oversize = oversize;
 
-  8031f0e:	f8bd 2036 	ldrh.w	r2, [sp, #54]	; 0x36
 
-  8031f12:	f8a4 206a 	strh.w	r2, [r4, #106]	; 0x6a
 
- #endif /* TCP_OVERSIZE */
 
-   /*
 
-    * Phase 2: concat_p can be concatenated onto last_unsent->p
 
-    */
 
-   if (concat_p != NULL) {
 
-  8031f16:	b157      	cbz	r7, 8031f2e <tcp_write+0x28c>
 
-     LWIP_ASSERT("tcp_write: cannot concatenate when pcb->unsent is empty",
 
-       (last_unsent != NULL));
 
-     pbuf_cat(last_unsent->p, concat_p);
 
-  8031f18:	6870      	ldr	r0, [r6, #4]
 
-  8031f1a:	9305      	str	r3, [sp, #20]
 
-  8031f1c:	4639      	mov	r1, r7
 
-  8031f1e:	f7fe f85f 	bl	802ffe0 <pbuf_cat>
 
-     last_unsent->len += concat_p->tot_len;
 
-  8031f22:	8939      	ldrh	r1, [r7, #8]
 
-  8031f24:	8932      	ldrh	r2, [r6, #8]
 
-  8031f26:	9b05      	ldr	r3, [sp, #20]
 
-  8031f28:	188a      	adds	r2, r1, r2
 
-  8031f2a:	8132      	strh	r2, [r6, #8]
 
-  8031f2c:	e003      	b.n	8031f36 <tcp_write+0x294>
 
-   /*
 
-    * Phase 3: Append queue to pcb->unsent. Queue may be NULL, but that
 
-    * is harmless
 
-    */
 
-   if (last_unsent == NULL) {
 
-  8031f2e:	b916      	cbnz	r6, 8031f36 <tcp_write+0x294>
 
-     pcb->unsent = queue;
 
-  8031f30:	f8c4 806c 	str.w	r8, [r4, #108]	; 0x6c
 
-  8031f34:	e001      	b.n	8031f3a <tcp_write+0x298>
 
-   } else {
 
-     last_unsent->next = queue;
 
-  8031f36:	f8c6 8000 	str.w	r8, [r6]
 
-   }
 
-   /*
 
-    * Finally update the pcb state.
 
-    */
 
-   pcb->snd_lbb += len;
 
-  8031f3a:	6de2      	ldr	r2, [r4, #92]	; 0x5c
 
-   pcb->snd_buf -= len;
 
-   pcb->snd_queuelen = queuelen;
 
-  8031f3c:	f8a4 b068 	strh.w	fp, [r4, #104]	; 0x68
 
-   }
 
-   /*
 
-    * Finally update the pcb state.
 
-    */
 
-   pcb->snd_lbb += len;
 
-  8031f40:	444a      	add	r2, r9
 
-  8031f42:	65e2      	str	r2, [r4, #92]	; 0x5c
 
-   pcb->snd_buf -= len;
 
-  8031f44:	f8b4 2066 	ldrh.w	r2, [r4, #102]	; 0x66
 
-  8031f48:	ebc9 0902 	rsb	r9, r9, r2
 
-  8031f4c:	f8a4 9066 	strh.w	r9, [r4, #102]	; 0x66
 
-     LWIP_ASSERT("tcp_write: valid queue length",
 
-                 pcb->unacked != NULL || pcb->unsent != NULL);
 
-   }
 
-   /* Set the PSH flag in the last segment that we enqueued. */
 
-   if (seg != NULL && seg->tcphdr != NULL && ((apiflags & TCP_WRITE_FLAG_MORE)==0)) {
 
-  8031f50:	b333      	cbz	r3, 8031fa0 <tcp_write+0x2fe>
 
-  8031f52:	68dc      	ldr	r4, [r3, #12]
 
-  8031f54:	b30c      	cbz	r4, 8031f9a <tcp_write+0x2f8>
 
-  8031f56:	9b07      	ldr	r3, [sp, #28]
 
-  8031f58:	f003 0502 	and.w	r5, r3, #2
 
-  8031f5c:	b2ed      	uxtb	r5, r5
 
-  8031f5e:	b9e5      	cbnz	r5, 8031f9a <tcp_write+0x2f8>
 
-     TCPH_SET_FLAG(seg->tcphdr, TCP_PSH);
 
-  8031f60:	2008      	movs	r0, #8
 
-  8031f62:	89a6      	ldrh	r6, [r4, #12]
 
-  8031f64:	f7fc fe14 	bl	802eb90 <lwip_htons>
 
-  8031f68:	4330      	orrs	r0, r6
 
-  8031f6a:	81a0      	strh	r0, [r4, #12]
 
-  8031f6c:	e015      	b.n	8031f9a <tcp_write+0x2f8>
 
-  */
 
- err_t
 
- tcp_write(struct tcp_pcb *pcb, const void *arg, u16_t len, u8_t apiflags)
 
- {
 
-   struct pbuf *concat_p = NULL;
 
-   struct tcp_seg *last_unsent = NULL, *seg = NULL, *prev_seg = NULL, *queue = NULL;
 
-  8031f6e:	f04f 0800 	mov.w	r8, #0
 
-  8031f72:	4647      	mov	r7, r8
 
-     TCPH_SET_FLAG(seg->tcphdr, TCP_PSH);
 
-   }
 
-   return ERR_OK;
 
- memerr:
 
-   pcb->flags |= TF_NAGLEMEMERR;
 
-  8031f74:	7fa3      	ldrb	r3, [r4, #30]
 
-  8031f76:	f063 037f 	orn	r3, r3, #127	; 0x7f
 
-  8031f7a:	77a3      	strb	r3, [r4, #30]
 
-   TCP_STATS_INC(tcp.memerr);
 
-   if (concat_p != NULL) {
 
-  8031f7c:	b117      	cbz	r7, 8031f84 <tcp_write+0x2e2>
 
-     pbuf_free(concat_p);
 
-  8031f7e:	4638      	mov	r0, r7
 
-  8031f80:	f7fd ff44 	bl	802fe0c <pbuf_free>
 
-   }
 
-   if (queue != NULL) {
 
-  8031f84:	f1b8 0f00 	cmp.w	r8, #0
 
-  8031f88:	d009      	beq.n	8031f9e <tcp_write+0x2fc>
 
-     tcp_segs_free(queue);
 
-  8031f8a:	4640      	mov	r0, r8
 
-  8031f8c:	f7fe fa7b 	bl	8030486 <tcp_segs_free>
 
-  8031f90:	e005      	b.n	8031f9e <tcp_write+0x2fc>
 
-   apiflags |= TCP_WRITE_FLAG_COPY;
 
- #endif /* LWIP_NETIF_TX_SINGLE_PBUF */
 
-   LWIP_DEBUGF(TCP_OUTPUT_DEBUG, ("tcp_write(pcb=%p, data=%p, len=%"U16_F", apiflags=%"U16_F")\n",
 
-     (void *)pcb, arg, len, (u16_t)apiflags));
 
-   LWIP_ERROR("tcp_write: arg == NULL (programmer violates API)", 
 
-  8031f92:	23f2      	movs	r3, #242	; 0xf2
 
-  8031f94:	e004      	b.n	8031fa0 <tcp_write+0x2fe>
 
-   if ((pcb->state != ESTABLISHED) &&
 
-       (pcb->state != CLOSE_WAIT) &&
 
-       (pcb->state != SYN_SENT) &&
 
-       (pcb->state != SYN_RCVD)) {
 
-     LWIP_DEBUGF(TCP_OUTPUT_DEBUG | LWIP_DBG_STATE | LWIP_DBG_LEVEL_SEVERE, ("tcp_write() called in invalid state\n"));
 
-     return ERR_CONN;
 
-  8031f96:	23f3      	movs	r3, #243	; 0xf3
 
-  8031f98:	e002      	b.n	8031fa0 <tcp_write+0x2fe>
 
-   /* Set the PSH flag in the last segment that we enqueued. */
 
-   if (seg != NULL && seg->tcphdr != NULL && ((apiflags & TCP_WRITE_FLAG_MORE)==0)) {
 
-     TCPH_SET_FLAG(seg->tcphdr, TCP_PSH);
 
-   }
 
-   return ERR_OK;
 
-  8031f9a:	2300      	movs	r3, #0
 
-  8031f9c:	e000      	b.n	8031fa0 <tcp_write+0x2fe>
 
-   if (pcb->snd_queuelen != 0) {
 
-     LWIP_ASSERT("tcp_write: valid queue length", pcb->unacked != NULL ||
 
-       pcb->unsent != NULL);
 
-   }
 
-   LWIP_DEBUGF(TCP_QLEN_DEBUG | LWIP_DBG_STATE, ("tcp_write: %"S16_F" (with mem err)\n", pcb->snd_queuelen));
 
-   return ERR_MEM;
 
-  8031f9e:	23ff      	movs	r3, #255	; 0xff
 
-  8031fa0:	b258      	sxtb	r0, r3
 
- }
 
-  8031fa2:	b00f      	add	sp, #60	; 0x3c
 
-  8031fa4:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
- 08031fa8 <tcp_enqueue_flags>:
 
-   LWIP_ASSERT("tcp_enqueue_flags: need either TCP_SYN or TCP_FIN in flags (programmer violates API)",
 
-               (flags & (TCP_SYN | TCP_FIN)) != 0);
 
-   /* check for configured max queuelen and possible overflow */
 
-   if ((pcb->snd_queuelen >= TCP_SND_QUEUELEN) || (pcb->snd_queuelen > TCP_SNDQUEUELEN_OVERFLOW)) {
 
-  8031fa8:	f8b0 3068 	ldrh.w	r3, [r0, #104]	; 0x68
 
-  8031fac:	2b47      	cmp	r3, #71	; 0x47
 
-  * @param optdata pointer to TCP options, or NULL.
 
-  * @param optlen length of TCP options in bytes.
 
-  */
 
- err_t
 
- tcp_enqueue_flags(struct tcp_pcb *pcb, u8_t flags)
 
- {
 
-  8031fae:	b573      	push	{r0, r1, r4, r5, r6, lr}
 
-  8031fb0:	4604      	mov	r4, r0
 
-  8031fb2:	460d      	mov	r5, r1
 
-   LWIP_ASSERT("tcp_enqueue_flags: need either TCP_SYN or TCP_FIN in flags (programmer violates API)",
 
-               (flags & (TCP_SYN | TCP_FIN)) != 0);
 
-   /* check for configured max queuelen and possible overflow */
 
-   if ((pcb->snd_queuelen >= TCP_SND_QUEUELEN) || (pcb->snd_queuelen > TCP_SNDQUEUELEN_OVERFLOW)) {
 
-  8031fb4:	d900      	bls.n	8031fb8 <tcp_enqueue_flags+0x10>
 
-  8031fb6:	e014      	b.n	8031fe2 <tcp_enqueue_flags+0x3a>
 
-   /* tcp_enqueue_flags is always called with either SYN or FIN in flags.
 
-    * We need one available snd_buf byte to do that.
 
-    * This means we can't send FIN while snd_buf==0. A better fix would be to
 
-    * not include SYN and FIN sequence numbers in the snd_buf count. */
 
-   if (pcb->snd_buf == 0) {
 
-  8031fb8:	f8b0 3066 	ldrh.w	r3, [r0, #102]	; 0x66
 
- err_t
 
- tcp_enqueue_flags(struct tcp_pcb *pcb, u8_t flags)
 
- {
 
-   struct pbuf *p;
 
-   struct tcp_seg *seg;
 
-   u8_t optflags = 0;
 
-  8031fbc:	f3c1 0640 	ubfx	r6, r1, #1, #1
 
- #if LWIP_TCP_TIMESTAMPS
 
-   if ((pcb->flags & TF_TIMESTAMP)) {
 
-     optflags |= TF_SEG_OPTS_TS;
 
-   }
 
- #endif /* LWIP_TCP_TIMESTAMPS */
 
-   optlen = LWIP_TCP_OPT_LENGTH(optflags);
 
-  8031fc0:	00b1      	lsls	r1, r6, #2
 
-   /* tcp_enqueue_flags is always called with either SYN or FIN in flags.
 
-    * We need one available snd_buf byte to do that.
 
-    * This means we can't send FIN while snd_buf==0. A better fix would be to
 
-    * not include SYN and FIN sequence numbers in the snd_buf count. */
 
-   if (pcb->snd_buf == 0) {
 
-  8031fc2:	2b00      	cmp	r3, #0
 
-  8031fc4:	d038      	beq.n	8032038 <tcp_enqueue_flags+0x90>
 
-     TCP_STATS_INC(tcp.memerr);
 
-     return ERR_MEM;
 
-   }
 
-   /* Allocate pbuf with room for TCP header + options */
 
-   if ((p = pbuf_alloc(PBUF_TRANSPORT, optlen, PBUF_RAM)) == NULL) {
 
-  8031fc6:	2000      	movs	r0, #0
 
-  8031fc8:	4602      	mov	r2, r0
 
-  8031fca:	f7fd ff6c 	bl	802fea6 <pbuf_alloc>
 
-  8031fce:	4601      	mov	r1, r0
 
-  8031fd0:	b900      	cbnz	r0, 8031fd4 <tcp_enqueue_flags+0x2c>
 
-  8031fd2:	e006      	b.n	8031fe2 <tcp_enqueue_flags+0x3a>
 
-   }
 
-   LWIP_ASSERT("tcp_enqueue_flags: check that first pbuf can hold optlen",
 
-               (p->len >= optlen));
 
-   /* Allocate memory for tcp_seg, and fill in fields. */
 
-   if ((seg = tcp_create_segment(pcb, p, flags, pcb->snd_lbb, optflags)) == NULL) {
 
-  8031fd4:	9600      	str	r6, [sp, #0]
 
-  8031fd6:	4620      	mov	r0, r4
 
-  8031fd8:	462a      	mov	r2, r5
 
-  8031fda:	6de3      	ldr	r3, [r4, #92]	; 0x5c
 
-  8031fdc:	f7ff fde2 	bl	8031ba4 <tcp_create_segment>
 
-  8031fe0:	b920      	cbnz	r0, 8031fec <tcp_enqueue_flags+0x44>
 
-     pcb->flags |= TF_NAGLEMEMERR;
 
-  8031fe2:	7fa3      	ldrb	r3, [r4, #30]
 
-  8031fe4:	f063 037f 	orn	r3, r3, #127	; 0x7f
 
-  8031fe8:	77a3      	strb	r3, [r4, #30]
 
-  8031fea:	e025      	b.n	8032038 <tcp_enqueue_flags+0x90>
 
-                ntohl(seg->tcphdr->seqno),
 
-                ntohl(seg->tcphdr->seqno) + TCP_TCPLEN(seg),
 
-                (u16_t)flags));
 
-   /* Now append seg to pcb->unsent queue */
 
-   if (pcb->unsent == NULL) {
 
-  8031fec:	6ee3      	ldr	r3, [r4, #108]	; 0x6c
 
-  8031fee:	b913      	cbnz	r3, 8031ff6 <tcp_enqueue_flags+0x4e>
 
-     pcb->unsent = seg;
 
-  8031ff0:	66e0      	str	r0, [r4, #108]	; 0x6c
 
-  8031ff2:	e004      	b.n	8031ffe <tcp_enqueue_flags+0x56>
 
-   } else {
 
-     struct tcp_seg *useg;
 
-     for (useg = pcb->unsent; useg->next != NULL; useg = useg->next);
 
-  8031ff4:	4613      	mov	r3, r2
 
-  8031ff6:	681a      	ldr	r2, [r3, #0]
 
-  8031ff8:	2a00      	cmp	r2, #0
 
-  8031ffa:	d1fb      	bne.n	8031ff4 <tcp_enqueue_flags+0x4c>
 
-     useg->next = seg;
 
-  8031ffc:	6018      	str	r0, [r3, #0]
 
-   }
 
- #if TCP_OVERSIZE
 
-   /* The new unsent tail has no space */
 
-   pcb->unsent_oversize = 0;
 
-  8031ffe:	2300      	movs	r3, #0
 
- #endif /* TCP_OVERSIZE */
 
-   /* SYN and FIN bump the sequence number */
 
-   if ((flags & TCP_SYN) || (flags & TCP_FIN)) {
 
-  8032000:	07a9      	lsls	r1, r5, #30
 
-     for (useg = pcb->unsent; useg->next != NULL; useg = useg->next);
 
-     useg->next = seg;
 
-   }
 
- #if TCP_OVERSIZE
 
-   /* The new unsent tail has no space */
 
-   pcb->unsent_oversize = 0;
 
-  8032002:	f8a4 306a 	strh.w	r3, [r4, #106]	; 0x6a
 
- #endif /* TCP_OVERSIZE */
 
-   /* SYN and FIN bump the sequence number */
 
-   if ((flags & TCP_SYN) || (flags & TCP_FIN)) {
 
-  8032006:	d007      	beq.n	8032018 <tcp_enqueue_flags+0x70>
 
-     pcb->snd_lbb++;
 
-  8032008:	6de3      	ldr	r3, [r4, #92]	; 0x5c
 
-  803200a:	3301      	adds	r3, #1
 
-  803200c:	65e3      	str	r3, [r4, #92]	; 0x5c
 
-     /* optlen does not influence snd_buf */
 
-     pcb->snd_buf--;
 
-  803200e:	f8b4 3066 	ldrh.w	r3, [r4, #102]	; 0x66
 
-  8032012:	3b01      	subs	r3, #1
 
-  8032014:	f8a4 3066 	strh.w	r3, [r4, #102]	; 0x66
 
-   }
 
-   if (flags & TCP_FIN) {
 
-  8032018:	07ea      	lsls	r2, r5, #31
 
-  803201a:	d503      	bpl.n	8032024 <tcp_enqueue_flags+0x7c>
 
-     pcb->flags |= TF_FIN;
 
-  803201c:	7fa3      	ldrb	r3, [r4, #30]
 
-  803201e:	f043 0320 	orr.w	r3, r3, #32
 
-  8032022:	77a3      	strb	r3, [r4, #30]
 
-   }
 
-   /* update number of segments on the queues */
 
-   pcb->snd_queuelen += pbuf_clen(seg->p);
 
-  8032024:	6840      	ldr	r0, [r0, #4]
 
-  8032026:	f8b4 5068 	ldrh.w	r5, [r4, #104]	; 0x68
 
-  803202a:	f7fd ffc3 	bl	802ffb4 <pbuf_clen>
 
-  803202e:	1940      	adds	r0, r0, r5
 
-  8032030:	f8a4 0068 	strh.w	r0, [r4, #104]	; 0x68
 
-   if (pcb->snd_queuelen != 0) {
 
-     LWIP_ASSERT("tcp_enqueue_flags: invalid queue length",
 
-       pcb->unacked != NULL || pcb->unsent != NULL);
 
-   }
 
-   return ERR_OK;
 
-  8032034:	2000      	movs	r0, #0
 
-  8032036:	e000      	b.n	803203a <tcp_enqueue_flags+0x92>
 
-    * This means we can't send FIN while snd_buf==0. A better fix would be to
 
-    * not include SYN and FIN sequence numbers in the snd_buf count. */
 
-   if (pcb->snd_buf == 0) {
 
-     LWIP_DEBUGF(TCP_OUTPUT_DEBUG | 3, ("tcp_enqueue_flags: no send buffer available\n"));
 
-     TCP_STATS_INC(tcp.memerr);
 
-     return ERR_MEM;
 
-  8032038:	20ff      	movs	r0, #255	; 0xff
 
-     LWIP_ASSERT("tcp_enqueue_flags: invalid queue length",
 
-       pcb->unacked != NULL || pcb->unsent != NULL);
 
-   }
 
-   return ERR_OK;
 
- }
 
-  803203a:	b240      	sxtb	r0, r0
 
-  803203c:	bd7c      	pop	{r2, r3, r4, r5, r6, pc}
 
- 0803203e <tcp_send_fin>:
 
-  * @param pcb the tcp_pcb over which to send a segment
 
-  * @return ERR_OK if sent, another err_t otherwise
 
-  */
 
- err_t
 
- tcp_send_fin(struct tcp_pcb *pcb)
 
- {
 
-  803203e:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
-   /* first, try to add the fin to the last unsent segment */
 
-   if (pcb->unsent != NULL) {
 
-  8032040:	6ec4      	ldr	r4, [r0, #108]	; 0x6c
 
-  * @param pcb the tcp_pcb over which to send a segment
 
-  * @return ERR_OK if sent, another err_t otherwise
 
-  */
 
- err_t
 
- tcp_send_fin(struct tcp_pcb *pcb)
 
- {
 
-  8032042:	4605      	mov	r5, r0
 
-   /* first, try to add the fin to the last unsent segment */
 
-   if (pcb->unsent != NULL) {
 
-  8032044:	b90c      	cbnz	r4, 803204a <tcp_send_fin+0xc>
 
-  8032046:	e00a      	b.n	803205e <tcp_send_fin+0x20>
 
-     struct tcp_seg *last_unsent;
 
-     for (last_unsent = pcb->unsent; last_unsent->next != NULL;
 
-          last_unsent = last_unsent->next);
 
-  8032048:	461c      	mov	r4, r3
 
- tcp_send_fin(struct tcp_pcb *pcb)
 
- {
 
-   /* first, try to add the fin to the last unsent segment */
 
-   if (pcb->unsent != NULL) {
 
-     struct tcp_seg *last_unsent;
 
-     for (last_unsent = pcb->unsent; last_unsent->next != NULL;
 
-  803204a:	6823      	ldr	r3, [r4, #0]
 
-  803204c:	2b00      	cmp	r3, #0
 
-  803204e:	d1fb      	bne.n	8032048 <tcp_send_fin+0xa>
 
-          last_unsent = last_unsent->next);
 
-     if ((TCPH_FLAGS(last_unsent->tcphdr) & (TCP_SYN | TCP_FIN | TCP_RST)) == 0) {
 
-  8032050:	68e3      	ldr	r3, [r4, #12]
 
-  8032052:	8998      	ldrh	r0, [r3, #12]
 
-  8032054:	f7fc fda1 	bl	802eb9a <lwip_ntohs>
 
-  8032058:	f010 0607 	ands.w	r6, r0, #7
 
-  803205c:	d005      	beq.n	803206a <tcp_send_fin+0x2c>
 
-       pcb->flags |= TF_FIN;
 
-       return ERR_OK;
 
-     }
 
-   }
 
-   /* no data, no length, flags, copy=1, no optdata */
 
-   return tcp_enqueue_flags(pcb, TCP_FIN);
 
-  803205e:	4628      	mov	r0, r5
 
-  8032060:	2101      	movs	r1, #1
 
- }
 
-  8032062:	e8bd 40f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, lr}
 
-       pcb->flags |= TF_FIN;
 
-       return ERR_OK;
 
-     }
 
-   }
 
-   /* no data, no length, flags, copy=1, no optdata */
 
-   return tcp_enqueue_flags(pcb, TCP_FIN);
 
-  8032066:	f7ff bf9f 	b.w	8031fa8 <tcp_enqueue_flags>
 
-     for (last_unsent = pcb->unsent; last_unsent->next != NULL;
 
-          last_unsent = last_unsent->next);
 
-     if ((TCPH_FLAGS(last_unsent->tcphdr) & (TCP_SYN | TCP_FIN | TCP_RST)) == 0) {
 
-       /* no SYN/FIN/RST flag in the header, we can add the FIN flag */
 
-       TCPH_SET_FLAG(last_unsent->tcphdr, TCP_FIN);
 
-  803206a:	68e4      	ldr	r4, [r4, #12]
 
-  803206c:	2001      	movs	r0, #1
 
-  803206e:	89a7      	ldrh	r7, [r4, #12]
 
-  8032070:	f7fc fd8e 	bl	802eb90 <lwip_htons>
 
-  8032074:	4338      	orrs	r0, r7
 
-  8032076:	81a0      	strh	r0, [r4, #12]
 
-       pcb->flags |= TF_FIN;
 
-  8032078:	7fab      	ldrb	r3, [r5, #30]
 
-  803207a:	f043 0320 	orr.w	r3, r3, #32
 
-  803207e:	77ab      	strb	r3, [r5, #30]
 
-       return ERR_OK;
 
-     }
 
-   }
 
-   /* no data, no length, flags, copy=1, no optdata */
 
-   return tcp_enqueue_flags(pcb, TCP_FIN);
 
- }
 
-  8032080:	4630      	mov	r0, r6
 
-  8032082:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 
- 08032084 <tcp_send_empty_ack>:
 
-  *
 
-  * @param pcb Protocol control block for the TCP connection to send the ACK
 
-  */
 
- err_t
 
- tcp_send_empty_ack(struct tcp_pcb *pcb)
 
- {
 
-  8032084:	b537      	push	{r0, r1, r2, r4, r5, lr}
 
-  8032086:	4604      	mov	r4, r0
 
-   if (pcb->flags & TF_TIMESTAMP) {
 
-     optlen = LWIP_TCP_OPT_LENGTH(TF_SEG_OPTS_TS);
 
-   }
 
- #endif
 
-   p = tcp_output_alloc_header(pcb, optlen, 0, htonl(pcb->snd_nxt));
 
-  8032088:	6d00      	ldr	r0, [r0, #80]	; 0x50
 
-  803208a:	f7fc fd8b 	bl	802eba4 <lwip_htonl>
 
-  803208e:	2100      	movs	r1, #0
 
-  8032090:	4602      	mov	r2, r0
 
-  8032092:	4620      	mov	r0, r4
 
-  8032094:	f7ff fdd8 	bl	8031c48 <tcp_output_alloc_header.constprop.0>
 
-   if (p == NULL) {
 
-  8032098:	4605      	mov	r5, r0
 
-  803209a:	b188      	cbz	r0, 80320c0 <tcp_send_empty_ack+0x3c>
 
-   }
 
-   tcphdr = (struct tcp_hdr *)p->payload;
 
-   LWIP_DEBUGF(TCP_OUTPUT_DEBUG, 
 
-               ("tcp_output: sending ACK for %"U32_F"\n", pcb->rcv_nxt));
 
-   /* remove ACK flags from the PCB, as we send an empty ACK now */
 
-   pcb->flags &= ~(TF_ACK_DELAY | TF_ACK_NOW);
 
-  803209c:	7fa3      	ldrb	r3, [r4, #30]
 
- #endif
 
- #if LWIP_NETIF_HWADDRHINT
 
-   ip_output_hinted(p, &(pcb->local_ip), &(pcb->remote_ip), pcb->ttl, pcb->tos,
 
-       IP_PROTO_TCP, &(pcb->addr_hint));
 
- #else /* LWIP_NETIF_HWADDRHINT*/
 
-   ip_output(p, &(pcb->local_ip), &(pcb->remote_ip), pcb->ttl, pcb->tos,
 
-  803209e:	7a62      	ldrb	r2, [r4, #9]
 
-   }
 
-   tcphdr = (struct tcp_hdr *)p->payload;
 
-   LWIP_DEBUGF(TCP_OUTPUT_DEBUG, 
 
-               ("tcp_output: sending ACK for %"U32_F"\n", pcb->rcv_nxt));
 
-   /* remove ACK flags from the PCB, as we send an empty ACK now */
 
-   pcb->flags &= ~(TF_ACK_DELAY | TF_ACK_NOW);
 
-  80320a0:	f023 0303 	bic.w	r3, r3, #3
 
- #endif
 
- #if LWIP_NETIF_HWADDRHINT
 
-   ip_output_hinted(p, &(pcb->local_ip), &(pcb->remote_ip), pcb->ttl, pcb->tos,
 
-       IP_PROTO_TCP, &(pcb->addr_hint));
 
- #else /* LWIP_NETIF_HWADDRHINT*/
 
-   ip_output(p, &(pcb->local_ip), &(pcb->remote_ip), pcb->ttl, pcb->tos,
 
-  80320a4:	9200      	str	r2, [sp, #0]
 
-  80320a6:	2206      	movs	r2, #6
 
-   }
 
-   tcphdr = (struct tcp_hdr *)p->payload;
 
-   LWIP_DEBUGF(TCP_OUTPUT_DEBUG, 
 
-               ("tcp_output: sending ACK for %"U32_F"\n", pcb->rcv_nxt));
 
-   /* remove ACK flags from the PCB, as we send an empty ACK now */
 
-   pcb->flags &= ~(TF_ACK_DELAY | TF_ACK_NOW);
 
-  80320a8:	77a3      	strb	r3, [r4, #30]
 
- #endif
 
- #if LWIP_NETIF_HWADDRHINT
 
-   ip_output_hinted(p, &(pcb->local_ip), &(pcb->remote_ip), pcb->ttl, pcb->tos,
 
-       IP_PROTO_TCP, &(pcb->addr_hint));
 
- #else /* LWIP_NETIF_HWADDRHINT*/
 
-   ip_output(p, &(pcb->local_ip), &(pcb->remote_ip), pcb->ttl, pcb->tos,
 
-  80320aa:	9201      	str	r2, [sp, #4]
 
-  80320ac:	7aa3      	ldrb	r3, [r4, #10]
 
-  80320ae:	4621      	mov	r1, r4
 
-  80320b0:	1d22      	adds	r2, r4, #4
 
-  80320b2:	f001 f8ab 	bl	803320c <ip_output>
 
-       IP_PROTO_TCP);
 
- #endif /* LWIP_NETIF_HWADDRHINT*/
 
-   pbuf_free(p);
 
-  80320b6:	4628      	mov	r0, r5
 
-  80320b8:	f7fd fea8 	bl	802fe0c <pbuf_free>
 
-   return ERR_OK;
 
-  80320bc:	2000      	movs	r0, #0
 
-  80320be:	e000      	b.n	80320c2 <tcp_send_empty_ack+0x3e>
 
- #endif
 
-   p = tcp_output_alloc_header(pcb, optlen, 0, htonl(pcb->snd_nxt));
 
-   if (p == NULL) {
 
-     LWIP_DEBUGF(TCP_OUTPUT_DEBUG, ("tcp_output: (ACK) could not allocate pbuf\n"));
 
-     return ERR_BUF;
 
-  80320c0:	20fe      	movs	r0, #254	; 0xfe
 
-       IP_PROTO_TCP);
 
- #endif /* LWIP_NETIF_HWADDRHINT*/
 
-   pbuf_free(p);
 
-   return ERR_OK;
 
- }
 
-  80320c2:	b240      	sxtb	r0, r0
 
-  80320c4:	bd3e      	pop	{r1, r2, r3, r4, r5, pc}
 
-  80320c6:	0000      	movs	r0, r0
 
- 080320c8 <tcp_output>:
 
-   /* First, check if we are invoked by the TCP input processing
 
-      code. If so, we do not output anything. Instead, we rely on the
 
-      input processing code to call us when input processing is done
 
-      with. */
 
-   if (tcp_input_pcb == pcb) {
 
-  80320c8:	4b8f      	ldr	r3, [pc, #572]	; (8032308 <tcp_output+0x240>)
 
-  80320ca:	681b      	ldr	r3, [r3, #0]
 
-  80320cc:	4283      	cmp	r3, r0
 
-  * @return ERR_OK if data has been sent or nothing to send
 
-  *         another err_t on error
 
-  */
 
- err_t
 
- tcp_output(struct tcp_pcb *pcb)
 
- {
 
-  80320ce:	e92d 4ff7 	stmdb	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-  80320d2:	4604      	mov	r4, r0
 
-   /* First, check if we are invoked by the TCP input processing
 
-      code. If so, we do not output anything. Instead, we rely on the
 
-      input processing code to call us when input processing is done
 
-      with. */
 
-   if (tcp_input_pcb == pcb) {
 
-  80320d4:	f000 8113 	beq.w	80322fe <tcp_output+0x236>
 
-     return ERR_OK;
 
-   }
 
-   wnd = LWIP_MIN(pcb->snd_wnd, pcb->cwnd);
 
-  80320d8:	f8b0 304c 	ldrh.w	r3, [r0, #76]	; 0x4c
 
-  80320dc:	f8b0 9060 	ldrh.w	r9, [r0, #96]	; 0x60
 
-   seg = pcb->unsent;
 
-  80320e0:	6ec5      	ldr	r5, [r0, #108]	; 0x6c
 
-      with. */
 
-   if (tcp_input_pcb == pcb) {
 
-     return ERR_OK;
 
-   }
 
-   wnd = LWIP_MIN(pcb->snd_wnd, pcb->cwnd);
 
-  80320e2:	4599      	cmp	r9, r3
 
-  80320e4:	bf28      	it	cs
 
-  80320e6:	4699      	movcs	r9, r3
 
-    * because the ->unsent queue is empty or because the window does
 
-    * not allow it), construct an empty ACK segment and send it.
 
-    *
 
-    * If data is to be sent, we will just piggyback the ACK (see below).
 
-    */
 
-   if (pcb->flags & TF_ACK_NOW &&
 
-  80320e8:	7f83      	ldrb	r3, [r0, #30]
 
-  80320ea:	f003 0302 	and.w	r3, r3, #2
 
-  80320ee:	b2db      	uxtb	r3, r3
 
-  80320f0:	b183      	cbz	r3, 8032114 <tcp_output+0x4c>
 
-  80320f2:	b92d      	cbnz	r5, 8032100 <tcp_output+0x38>
 
-      (seg == NULL ||
 
-       ntohl(seg->tcphdr->seqno) - pcb->lastack + seg->len > wnd)) {
 
-      return tcp_send_empty_ack(pcb);
 
-  80320f4:	4620      	mov	r0, r4
 
-   }
 
- #endif /* TCP_OVERSIZE */
 
-   pcb->flags &= ~TF_NAGLEMEMERR;
 
-   return ERR_OK;
 
- }
 
-  80320f6:	b003      	add	sp, #12
 
-  80320f8:	e8bd 4ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-    * If data is to be sent, we will just piggyback the ACK (see below).
 
-    */
 
-   if (pcb->flags & TF_ACK_NOW &&
 
-      (seg == NULL ||
 
-       ntohl(seg->tcphdr->seqno) - pcb->lastack + seg->len > wnd)) {
 
-      return tcp_send_empty_ack(pcb);
 
-  80320fc:	f7ff bfc2 	b.w	8032084 <tcp_send_empty_ack>
 
-    *
 
-    * If data is to be sent, we will just piggyback the ACK (see below).
 
-    */
 
-   if (pcb->flags & TF_ACK_NOW &&
 
-      (seg == NULL ||
 
-       ntohl(seg->tcphdr->seqno) - pcb->lastack + seg->len > wnd)) {
 
-  8032100:	68eb      	ldr	r3, [r5, #12]
 
-  8032102:	6858      	ldr	r0, [r3, #4]
 
-  8032104:	f7fc fd50 	bl	802eba8 <lwip_ntohl>
 
-  8032108:	892a      	ldrh	r2, [r5, #8]
 
-  803210a:	6ca3      	ldr	r3, [r4, #72]	; 0x48
 
-  803210c:	1ad3      	subs	r3, r2, r3
 
-  803210e:	1818      	adds	r0, r3, r0
 
-    * not allow it), construct an empty ACK segment and send it.
 
-    *
 
-    * If data is to be sent, we will just piggyback the ACK (see below).
 
-    */
 
-   if (pcb->flags & TF_ACK_NOW &&
 
-      (seg == NULL ||
 
-  8032110:	4548      	cmp	r0, r9
 
-  8032112:	d8ef      	bhi.n	80320f4 <tcp_output+0x2c>
 
-       ntohl(seg->tcphdr->seqno) - pcb->lastack + seg->len > wnd)) {
 
-      return tcp_send_empty_ack(pcb);
 
-   }
 
-   /* useg should point to last segment on unacked queue */
 
-   useg = pcb->unacked;
 
-  8032114:	6f26      	ldr	r6, [r4, #112]	; 0x70
 
-   if (useg != NULL) {
 
-  8032116:	b90e      	cbnz	r6, 803211c <tcp_output+0x54>
 
-  8032118:	e0d1      	b.n	80322be <tcp_output+0x1f6>
 
-     for (; useg->next != NULL; useg = useg->next);
 
-  803211a:	461e      	mov	r6, r3
 
-  803211c:	6833      	ldr	r3, [r6, #0]
 
-  803211e:	2b00      	cmp	r3, #0
 
-  8032120:	d1fb      	bne.n	803211a <tcp_output+0x52>
 
-  8032122:	e0cc      	b.n	80322be <tcp_output+0x1f6>
 
-   }
 
- #endif /* TCP_CWND_DEBUG */
 
-   /* data available and window allows it to be sent? */
 
-   while (seg != NULL &&
 
-          ntohl(seg->tcphdr->seqno) - pcb->lastack + seg->len <= wnd) {
 
-     LWIP_ASSERT("RST not expected here!", 
 
-  8032124:	68eb      	ldr	r3, [r5, #12]
 
-  8032126:	8998      	ldrh	r0, [r3, #12]
 
-  8032128:	f7fc fd37 	bl	802eb9a <lwip_ntohs>
 
-      * - if tcp_write had a memory error before (prevent delayed ACK timeout) or
 
-      * - if FIN was already enqueued for this PCB (SYN is always alone in a segment -
 
-      *   either seg->next != NULL or pcb->unacked == NULL;
 
-      *   RST is no sent using tcp_write/tcp_output.
 
-      */
 
-     if((tcp_do_output_nagle(pcb) == 0) &&
 
-  803212c:	6f23      	ldr	r3, [r4, #112]	; 0x70
 
-  803212e:	b19b      	cbz	r3, 8032158 <tcp_output+0x90>
 
-  8032130:	7fa2      	ldrb	r2, [r4, #30]
 
-  8032132:	f012 0f44 	tst.w	r2, #68	; 0x44
 
-  8032136:	d10f      	bne.n	8032158 <tcp_output+0x90>
 
-  8032138:	6ee3      	ldr	r3, [r4, #108]	; 0x6c
 
-  803213a:	b12b      	cbz	r3, 8032148 <tcp_output+0x80>
 
-  803213c:	6819      	ldr	r1, [r3, #0]
 
-  803213e:	b959      	cbnz	r1, 8032158 <tcp_output+0x90>
 
-  8032140:	8919      	ldrh	r1, [r3, #8]
 
-  8032142:	8ee3      	ldrh	r3, [r4, #54]	; 0x36
 
-  8032144:	4299      	cmp	r1, r3
 
-  8032146:	d207      	bcs.n	8032158 <tcp_output+0x90>
 
-  8032148:	f8b4 3066 	ldrh.w	r3, [r4, #102]	; 0x66
 
-  803214c:	b123      	cbz	r3, 8032158 <tcp_output+0x90>
 
-  803214e:	f8b4 3068 	ldrh.w	r3, [r4, #104]	; 0x68
 
-  8032152:	2b47      	cmp	r3, #71	; 0x47
 
-  8032154:	f240 80ce 	bls.w	80322f4 <tcp_output+0x22c>
 
-                             pcb->lastack,
 
-                             ntohl(seg->tcphdr->seqno), pcb->lastack, i));
 
-     ++i;
 
- #endif /* TCP_CWND_DEBUG */
 
-     pcb->unsent = seg->next;
 
-  8032158:	682b      	ldr	r3, [r5, #0]
 
-  803215a:	66e3      	str	r3, [r4, #108]	; 0x6c
 
-     if (pcb->state != SYN_SENT) {
 
-  803215c:	7e23      	ldrb	r3, [r4, #24]
 
-  803215e:	2b02      	cmp	r3, #2
 
-  8032160:	d00c      	beq.n	803217c <tcp_output+0xb4>
 
-       TCPH_SET_FLAG(seg->tcphdr, TCP_ACK);
 
-  8032162:	68ef      	ldr	r7, [r5, #12]
 
-  8032164:	2010      	movs	r0, #16
 
-  8032166:	f8b7 b00c 	ldrh.w	fp, [r7, #12]
 
-  803216a:	f7fc fd11 	bl	802eb90 <lwip_htons>
 
-  803216e:	ea40 000b 	orr.w	r0, r0, fp
 
-  8032172:	81b8      	strh	r0, [r7, #12]
 
-       pcb->flags &= ~(TF_ACK_DELAY | TF_ACK_NOW);
 
-  8032174:	7fa3      	ldrb	r3, [r4, #30]
 
-  8032176:	f023 0303 	bic.w	r3, r3, #3
 
-  803217a:	77a3      	strb	r3, [r4, #30]
 
-   u16_t len;
 
-   struct netif *netif;
 
-   u32_t *opts;
 
-   /** @bug Exclude retransmitted segments from this count. */
 
-   snmp_inc_tcpoutsegs();
 
-  803217c:	f002 fd6c 	bl	8034c58 <snmp_inc_tcpoutsegs>
 
-   /* The TCP header has already been constructed, but the ackno and
 
-    wnd fields remain. */
 
-   seg->tcphdr->ackno = htonl(pcb->rcv_nxt);
 
-  8032180:	6aa0      	ldr	r0, [r4, #40]	; 0x28
 
-  8032182:	68ef      	ldr	r7, [r5, #12]
 
-  8032184:	f7fc fd0e 	bl	802eba4 <lwip_htonl>
 
-  8032188:	60b8      	str	r0, [r7, #8]
 
-   /* advertise our receive window size in this TCP segment */
 
-   seg->tcphdr->wnd = htons(pcb->rcv_ann_wnd);
 
-  803218a:	8de0      	ldrh	r0, [r4, #46]	; 0x2e
 
-  803218c:	68ef      	ldr	r7, [r5, #12]
 
-  803218e:	f7fc fcff 	bl	802eb90 <lwip_htons>
 
-  8032192:	81f8      	strh	r0, [r7, #14]
 
-   pcb->rcv_ann_right_edge = pcb->rcv_nxt + pcb->rcv_ann_wnd;
 
-  8032194:	8de2      	ldrh	r2, [r4, #46]	; 0x2e
 
-  8032196:	6aa3      	ldr	r3, [r4, #40]	; 0x28
 
-   /* Add any requested options.  NB MSS option is only set on SYN
 
-      packets, so ignore it here */
 
-   opts = (u32_t *)(void *)(seg->tcphdr + 1);
 
-  8032198:	68ef      	ldr	r7, [r5, #12]
 
-   seg->tcphdr->ackno = htonl(pcb->rcv_nxt);
 
-   /* advertise our receive window size in this TCP segment */
 
-   seg->tcphdr->wnd = htons(pcb->rcv_ann_wnd);
 
-   pcb->rcv_ann_right_edge = pcb->rcv_nxt + pcb->rcv_ann_wnd;
 
-  803219a:	18d3      	adds	r3, r2, r3
 
-  803219c:	6323      	str	r3, [r4, #48]	; 0x30
 
-   /* Add any requested options.  NB MSS option is only set on SYN
 
-      packets, so ignore it here */
 
-   opts = (u32_t *)(void *)(seg->tcphdr + 1);
 
-   if (seg->flags & TF_SEG_OPTS_MSS) {
 
-  803219e:	7aab      	ldrb	r3, [r5, #10]
 
-  80321a0:	07d8      	lsls	r0, r3, #31
 
-  80321a2:	d509      	bpl.n	80321b8 <tcp_output+0xf0>
 
-     u16_t mss;
 
- #if TCP_CALCULATE_EFF_SEND_MSS
 
-     mss = tcp_eff_send_mss(TCP_MSS, &pcb->remote_ip);
 
-  80321a4:	4641      	mov	r1, r8
 
-  80321a6:	f240 50b4 	movw	r0, #1460	; 0x5b4
 
-  80321aa:	f7fe fd6a 	bl	8030c82 <tcp_eff_send_mss>
 
- #else /* TCP_CALCULATE_EFF_SEND_MSS */
 
-     mss = TCP_MSS;
 
- #endif /* TCP_CALCULATE_EFF_SEND_MSS */
 
-     *opts = TCP_BUILD_MSS_OPTION(mss);
 
-  80321ae:	f040 7001 	orr.w	r0, r0, #33816576	; 0x2040000
 
-  80321b2:	f7fc fcf7 	bl	802eba4 <lwip_htonl>
 
-  80321b6:	6178      	str	r0, [r7, #20]
 
-   }
 
- #endif
 
-   /* Set retransmission timer running if it is not currently enabled 
 
-      This must be set before checking the route. */
 
-   if (pcb->rtime == -1) {
 
-  80321b8:	f9b4 3034 	ldrsh.w	r3, [r4, #52]	; 0x34
 
-  80321bc:	3301      	adds	r3, #1
 
-  80321be:	d101      	bne.n	80321c4 <tcp_output+0xfc>
 
-     pcb->rtime = 0;
 
-  80321c0:	2300      	movs	r3, #0
 
-  80321c2:	86a3      	strh	r3, [r4, #52]	; 0x34
 
-   }
 
-   /* If we don't have a local IP address, we get one by
 
-      calling ip_route(). */
 
-   if (ip_addr_isany(&(pcb->local_ip))) {
 
-  80321c4:	6823      	ldr	r3, [r4, #0]
 
-  80321c6:	b92b      	cbnz	r3, 80321d4 <tcp_output+0x10c>
 
-     netif = ip_route(&(pcb->remote_ip));
 
-  80321c8:	4640      	mov	r0, r8
 
-  80321ca:	f000 fecb 	bl	8032f64 <ip_route>
 
-     if (netif == NULL) {
 
-  80321ce:	b310      	cbz	r0, 8032216 <tcp_output+0x14e>
 
-       return;
 
-     }
 
-     ip_addr_copy(pcb->local_ip, netif->ip_addr);
 
-  80321d0:	6843      	ldr	r3, [r0, #4]
 
-  80321d2:	6023      	str	r3, [r4, #0]
 
-   }
 
-   if (pcb->rttest == 0) {
 
-  80321d4:	6ba3      	ldr	r3, [r4, #56]	; 0x38
 
-  80321d6:	b93b      	cbnz	r3, 80321e8 <tcp_output+0x120>
 
-     pcb->rttest = tcp_ticks;
 
-  80321d8:	f8da 3000 	ldr.w	r3, [sl]
 
-  80321dc:	63a3      	str	r3, [r4, #56]	; 0x38
 
-     pcb->rtseq = ntohl(seg->tcphdr->seqno);
 
-  80321de:	68eb      	ldr	r3, [r5, #12]
 
-  80321e0:	6858      	ldr	r0, [r3, #4]
 
-  80321e2:	f7fc fce1 	bl	802eba8 <lwip_ntohl>
 
-  80321e6:	63e0      	str	r0, [r4, #60]	; 0x3c
 
-   }
 
-   LWIP_DEBUGF(TCP_OUTPUT_DEBUG, ("tcp_output_segment: %"U32_F":%"U32_F"\n",
 
-           htonl(seg->tcphdr->seqno), htonl(seg->tcphdr->seqno) +
 
-           seg->len));
 
-   len = (u16_t)((u8_t *)seg->tcphdr - (u8_t *)seg->p->payload);
 
-  80321e8:	6868      	ldr	r0, [r5, #4]
 
-  80321ea:	68eb      	ldr	r3, [r5, #12]
 
-  80321ec:	6842      	ldr	r2, [r0, #4]
 
-   seg->p->len -= len;
 
-  80321ee:	8941      	ldrh	r1, [r0, #10]
 
-   seg->p->tot_len -= len;
 
-   seg->p->payload = seg->tcphdr;
 
-  80321f0:	6043      	str	r3, [r0, #4]
 
-   }
 
-   LWIP_DEBUGF(TCP_OUTPUT_DEBUG, ("tcp_output_segment: %"U32_F":%"U32_F"\n",
 
-           htonl(seg->tcphdr->seqno), htonl(seg->tcphdr->seqno) +
 
-           seg->len));
 
-   len = (u16_t)((u8_t *)seg->tcphdr - (u8_t *)seg->p->payload);
 
-  80321f2:	1a9a      	subs	r2, r3, r2
 
-   seg->p->len -= len;
 
-  80321f4:	1a89      	subs	r1, r1, r2
 
-  80321f6:	8141      	strh	r1, [r0, #10]
 
-   seg->p->tot_len -= len;
 
-  80321f8:	8901      	ldrh	r1, [r0, #8]
 
-  80321fa:	1a8a      	subs	r2, r1, r2
 
-  80321fc:	8102      	strh	r2, [r0, #8]
 
-   seg->p->payload = seg->tcphdr;
 
-   seg->tcphdr->chksum = 0;
 
-  80321fe:	2200      	movs	r2, #0
 
-  8032200:	741a      	strb	r2, [r3, #16]
 
-  8032202:	745a      	strb	r2, [r3, #17]
 
- #if LWIP_NETIF_HWADDRHINT
 
-   ip_output_hinted(seg->p, &(pcb->local_ip), &(pcb->remote_ip), pcb->ttl, pcb->tos,
 
-       IP_PROTO_TCP, &(pcb->addr_hint));
 
- #else /* LWIP_NETIF_HWADDRHINT*/
 
-   ip_output(seg->p, &(pcb->local_ip), &(pcb->remote_ip), pcb->ttl, pcb->tos,
 
-  8032204:	7a62      	ldrb	r2, [r4, #9]
 
-  8032206:	7aa3      	ldrb	r3, [r4, #10]
 
-  8032208:	9200      	str	r2, [sp, #0]
 
-  803220a:	2206      	movs	r2, #6
 
-  803220c:	9201      	str	r2, [sp, #4]
 
-  803220e:	4621      	mov	r1, r4
 
-  8032210:	4642      	mov	r2, r8
 
-  8032212:	f000 fffb 	bl	803320c <ip_output>
 
-       TCPH_SET_FLAG(seg->tcphdr, TCP_ACK);
 
-       pcb->flags &= ~(TF_ACK_DELAY | TF_ACK_NOW);
 
-     }
 
-     tcp_output_segment(seg, pcb);
 
-     snd_nxt = ntohl(seg->tcphdr->seqno) + TCP_TCPLEN(seg);
 
-  8032216:	68eb      	ldr	r3, [r5, #12]
 
-  8032218:	6858      	ldr	r0, [r3, #4]
 
-  803221a:	f7fc fcc5 	bl	802eba8 <lwip_ntohl>
 
-  803221e:	68ea      	ldr	r2, [r5, #12]
 
-  8032220:	f8b5 b008 	ldrh.w	fp, [r5, #8]
 
-  8032224:	4607      	mov	r7, r0
 
-  8032226:	8990      	ldrh	r0, [r2, #12]
 
-  8032228:	f7fc fcb7 	bl	802eb9a <lwip_ntohs>
 
-  803222c:	f010 0003 	ands.w	r0, r0, #3
 
-  8032230:	bf18      	it	ne
 
-  8032232:	2001      	movne	r0, #1
 
-     if (TCP_SEQ_LT(pcb->snd_nxt, snd_nxt)) {
 
-  8032234:	6d22      	ldr	r2, [r4, #80]	; 0x50
 
-       TCPH_SET_FLAG(seg->tcphdr, TCP_ACK);
 
-       pcb->flags &= ~(TF_ACK_DELAY | TF_ACK_NOW);
 
-     }
 
-     tcp_output_segment(seg, pcb);
 
-     snd_nxt = ntohl(seg->tcphdr->seqno) + TCP_TCPLEN(seg);
 
-  8032236:	eb0b 0300 	add.w	r3, fp, r0
 
-  803223a:	19db      	adds	r3, r3, r7
 
-     if (TCP_SEQ_LT(pcb->snd_nxt, snd_nxt)) {
 
-  803223c:	1ad2      	subs	r2, r2, r3
 
-  803223e:	2a00      	cmp	r2, #0
 
-       pcb->snd_nxt = snd_nxt;
 
-  8032240:	bfb8      	it	lt
 
-  8032242:	6523      	strlt	r3, [r4, #80]	; 0x50
 
-     }
 
-     /* put segment on unacknowledged list if length > 0 */
 
-     if (TCP_TCPLEN(seg) > 0) {
 
-  8032244:	68eb      	ldr	r3, [r5, #12]
 
-  8032246:	892f      	ldrh	r7, [r5, #8]
 
-  8032248:	8998      	ldrh	r0, [r3, #12]
 
-  803224a:	f7fc fca6 	bl	802eb9a <lwip_ntohs>
 
-  803224e:	f010 0003 	ands.w	r0, r0, #3
 
-  8032252:	bf18      	it	ne
 
-  8032254:	2001      	movne	r0, #1
 
-  8032256:	1838      	adds	r0, r7, r0
 
-  8032258:	b360      	cbz	r0, 80322b4 <tcp_output+0x1ec>
 
-       seg->next = NULL;
 
-  803225a:	2300      	movs	r3, #0
 
-  803225c:	602b      	str	r3, [r5, #0]
 
-       /* unacked list is empty? */
 
-       if (pcb->unacked == NULL) {
 
-  803225e:	6f23      	ldr	r3, [r4, #112]	; 0x70
 
-  8032260:	b90b      	cbnz	r3, 8032266 <tcp_output+0x19e>
 
-         pcb->unacked = seg;
 
-  8032262:	6725      	str	r5, [r4, #112]	; 0x70
 
-  8032264:	e024      	b.n	80322b0 <tcp_output+0x1e8>
 
-       /* unacked list is not empty? */
 
-       } else {
 
-         /* In the case of fast retransmit, the packet should not go to the tail
 
-          * of the unacked queue, but rather somewhere before it. We need to check for
 
-          * this case. -STJ Jul 27, 2004 */
 
-         if (TCP_SEQ_LT(ntohl(seg->tcphdr->seqno), ntohl(useg->tcphdr->seqno))) {
 
-  8032266:	68eb      	ldr	r3, [r5, #12]
 
-  8032268:	6858      	ldr	r0, [r3, #4]
 
-  803226a:	f7fc fc9d 	bl	802eba8 <lwip_ntohl>
 
-  803226e:	68f3      	ldr	r3, [r6, #12]
 
-  8032270:	4607      	mov	r7, r0
 
-  8032272:	6858      	ldr	r0, [r3, #4]
 
-  8032274:	f7fc fc98 	bl	802eba8 <lwip_ntohl>
 
-  8032278:	1a38      	subs	r0, r7, r0
 
-  803227a:	2800      	cmp	r0, #0
 
-  803227c:	da17      	bge.n	80322ae <tcp_output+0x1e6>
 
-           /* add segment to before tail of unacked list, keeping the list sorted */
 
-           struct tcp_seg **cur_seg = &(pcb->unacked);
 
-  803227e:	f104 0770 	add.w	r7, r4, #112	; 0x70
 
-           while (*cur_seg &&
 
-  8032282:	e000      	b.n	8032286 <tcp_output+0x1be>
 
-             TCP_SEQ_LT(ntohl((*cur_seg)->tcphdr->seqno), ntohl(seg->tcphdr->seqno))) {
 
-               cur_seg = &((*cur_seg)->next );
 
-  8032284:	683f      	ldr	r7, [r7, #0]
 
-          * of the unacked queue, but rather somewhere before it. We need to check for
 
-          * this case. -STJ Jul 27, 2004 */
 
-         if (TCP_SEQ_LT(ntohl(seg->tcphdr->seqno), ntohl(useg->tcphdr->seqno))) {
 
-           /* add segment to before tail of unacked list, keeping the list sorted */
 
-           struct tcp_seg **cur_seg = &(pcb->unacked);
 
-           while (*cur_seg &&
 
-  8032286:	683b      	ldr	r3, [r7, #0]
 
-  8032288:	b91b      	cbnz	r3, 8032292 <tcp_output+0x1ca>
 
-             TCP_SEQ_LT(ntohl((*cur_seg)->tcphdr->seqno), ntohl(seg->tcphdr->seqno))) {
 
-               cur_seg = &((*cur_seg)->next );
 
-           }
 
-           seg->next = (*cur_seg);
 
-  803228a:	683b      	ldr	r3, [r7, #0]
 
-  803228c:	602b      	str	r3, [r5, #0]
 
-           (*cur_seg) = seg;
 
-  803228e:	603d      	str	r5, [r7, #0]
 
-  8032290:	e013      	b.n	80322ba <tcp_output+0x1f2>
 
-          * this case. -STJ Jul 27, 2004 */
 
-         if (TCP_SEQ_LT(ntohl(seg->tcphdr->seqno), ntohl(useg->tcphdr->seqno))) {
 
-           /* add segment to before tail of unacked list, keeping the list sorted */
 
-           struct tcp_seg **cur_seg = &(pcb->unacked);
 
-           while (*cur_seg &&
 
-             TCP_SEQ_LT(ntohl((*cur_seg)->tcphdr->seqno), ntohl(seg->tcphdr->seqno))) {
 
-  8032292:	68db      	ldr	r3, [r3, #12]
 
-  8032294:	6858      	ldr	r0, [r3, #4]
 
-  8032296:	f7fc fc87 	bl	802eba8 <lwip_ntohl>
 
-  803229a:	68eb      	ldr	r3, [r5, #12]
 
-  803229c:	4683      	mov	fp, r0
 
-  803229e:	6858      	ldr	r0, [r3, #4]
 
-  80322a0:	f7fc fc82 	bl	802eba8 <lwip_ntohl>
 
-  80322a4:	ebc0 000b 	rsb	r0, r0, fp
 
-          * of the unacked queue, but rather somewhere before it. We need to check for
 
-          * this case. -STJ Jul 27, 2004 */
 
-         if (TCP_SEQ_LT(ntohl(seg->tcphdr->seqno), ntohl(useg->tcphdr->seqno))) {
 
-           /* add segment to before tail of unacked list, keeping the list sorted */
 
-           struct tcp_seg **cur_seg = &(pcb->unacked);
 
-           while (*cur_seg &&
 
-  80322a8:	2800      	cmp	r0, #0
 
-  80322aa:	dbeb      	blt.n	8032284 <tcp_output+0x1bc>
 
-  80322ac:	e7ed      	b.n	803228a <tcp_output+0x1c2>
 
-           }
 
-           seg->next = (*cur_seg);
 
-           (*cur_seg) = seg;
 
-         } else {
 
-           /* add segment to tail of unacked list */
 
-           useg->next = seg;
 
-  80322ae:	6035      	str	r5, [r6, #0]
 
-  80322b0:	462e      	mov	r6, r5
 
-  80322b2:	e002      	b.n	80322ba <tcp_output+0x1f2>
 
-           useg = useg->next;
 
-         }
 
-       }
 
-     /* do not queue empty segments on the unacked list */
 
-     } else {
 
-       tcp_seg_free(seg);
 
-  80322b4:	4628      	mov	r0, r5
 
-  80322b6:	f7fe f8d8 	bl	803046a <tcp_seg_free>
 
-     }
 
-     seg = pcb->unsent;
 
-  80322ba:	6ee5      	ldr	r5, [r4, #108]	; 0x6c
 
-  80322bc:	e003      	b.n	80322c6 <tcp_output+0x1fe>
 
-     }
 
-     ip_addr_copy(pcb->local_ip, netif->ip_addr);
 
-   }
 
-   if (pcb->rttest == 0) {
 
-     pcb->rttest = tcp_ticks;
 
-  80322be:	f8df a04c 	ldr.w	sl, [pc, #76]	; 803230c <tcp_output+0x244>
 
-      packets, so ignore it here */
 
-   opts = (u32_t *)(void *)(seg->tcphdr + 1);
 
-   if (seg->flags & TF_SEG_OPTS_MSS) {
 
-     u16_t mss;
 
- #if TCP_CALCULATE_EFF_SEND_MSS
 
-     mss = tcp_eff_send_mss(TCP_MSS, &pcb->remote_ip);
 
-  80322c2:	f104 0804 	add.w	r8, r4, #4
 
-                  ntohl(seg->tcphdr->seqno) - pcb->lastack + seg->len,
 
-                  ntohl(seg->tcphdr->seqno), pcb->lastack));
 
-   }
 
- #endif /* TCP_CWND_DEBUG */
 
-   /* data available and window allows it to be sent? */
 
-   while (seg != NULL &&
 
-  80322c6:	b915      	cbnz	r5, 80322ce <tcp_output+0x206>
 
-       tcp_seg_free(seg);
 
-     }
 
-     seg = pcb->unsent;
 
-   }
 
- #if TCP_OVERSIZE
 
-   if (pcb->unsent == NULL) {
 
-  80322c8:	6ee3      	ldr	r3, [r4, #108]	; 0x6c
 
-  80322ca:	b973      	cbnz	r3, 80322ea <tcp_output+0x222>
 
-  80322cc:	e00b      	b.n	80322e6 <tcp_output+0x21e>
 
-                  ntohl(seg->tcphdr->seqno), pcb->lastack));
 
-   }
 
- #endif /* TCP_CWND_DEBUG */
 
-   /* data available and window allows it to be sent? */
 
-   while (seg != NULL &&
 
-          ntohl(seg->tcphdr->seqno) - pcb->lastack + seg->len <= wnd) {
 
-  80322ce:	68eb      	ldr	r3, [r5, #12]
 
-  80322d0:	6858      	ldr	r0, [r3, #4]
 
-  80322d2:	f7fc fc69 	bl	802eba8 <lwip_ntohl>
 
-  80322d6:	892a      	ldrh	r2, [r5, #8]
 
-  80322d8:	6ca3      	ldr	r3, [r4, #72]	; 0x48
 
-  80322da:	1ad3      	subs	r3, r2, r3
 
-  80322dc:	1818      	adds	r0, r3, r0
 
-                  ntohl(seg->tcphdr->seqno) - pcb->lastack + seg->len,
 
-                  ntohl(seg->tcphdr->seqno), pcb->lastack));
 
-   }
 
- #endif /* TCP_CWND_DEBUG */
 
-   /* data available and window allows it to be sent? */
 
-   while (seg != NULL &&
 
-  80322de:	4548      	cmp	r0, r9
 
-  80322e0:	f67f af20 	bls.w	8032124 <tcp_output+0x5c>
 
-  80322e4:	e7f0      	b.n	80322c8 <tcp_output+0x200>
 
-     seg = pcb->unsent;
 
-   }
 
- #if TCP_OVERSIZE
 
-   if (pcb->unsent == NULL) {
 
-     /* last unsent has been removed, reset unsent_oversize */
 
-     pcb->unsent_oversize = 0;
 
-  80322e6:	f8a4 306a 	strh.w	r3, [r4, #106]	; 0x6a
 
-   }
 
- #endif /* TCP_OVERSIZE */
 
-   pcb->flags &= ~TF_NAGLEMEMERR;
 
-  80322ea:	7fa3      	ldrb	r3, [r4, #30]
 
-  80322ec:	f003 037f 	and.w	r3, r3, #127	; 0x7f
 
-  80322f0:	77a3      	strb	r3, [r4, #30]
 
-   return ERR_OK;
 
-  80322f2:	e004      	b.n	80322fe <tcp_output+0x236>
 
-      * - if tcp_write had a memory error before (prevent delayed ACK timeout) or
 
-      * - if FIN was already enqueued for this PCB (SYN is always alone in a segment -
 
-      *   either seg->next != NULL or pcb->unacked == NULL;
 
-      *   RST is no sent using tcp_write/tcp_output.
 
-      */
 
-     if((tcp_do_output_nagle(pcb) == 0) &&
 
-  80322f4:	f012 0fa0 	tst.w	r2, #160	; 0xa0
 
-  80322f8:	f47f af2e 	bne.w	8032158 <tcp_output+0x90>
 
-  80322fc:	e7e4      	b.n	80322c8 <tcp_output+0x200>
 
-   }
 
- #endif /* TCP_OVERSIZE */
 
-   pcb->flags &= ~TF_NAGLEMEMERR;
 
-   return ERR_OK;
 
- }
 
-  80322fe:	2000      	movs	r0, #0
 
-  8032300:	b003      	add	sp, #12
 
-  8032302:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
-  8032306:	bf00      	nop
 
-  8032308:	2000f6d4 	.word	0x2000f6d4
 
-  803230c:	2000f6c0 	.word	0x2000f6c0
 
- 08032310 <tcp_rst>:
 
-  */
 
- void
 
- tcp_rst(u32_t seqno, u32_t ackno,
 
-   ip_addr_t *local_ip, ip_addr_t *remote_ip,
 
-   u16_t local_port, u16_t remote_port)
 
- {
 
-  8032310:	e92d 4ff7 	stmdb	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-  8032314:	4681      	mov	r9, r0
 
-  8032316:	460d      	mov	r5, r1
 
-  8032318:	4690      	mov	r8, r2
 
-   struct pbuf *p;
 
-   struct tcp_hdr *tcphdr;
 
-   p = pbuf_alloc(PBUF_IP, TCP_HLEN, PBUF_RAM);
 
-  803231a:	2001      	movs	r0, #1
 
-  803231c:	2114      	movs	r1, #20
 
-  803231e:	2200      	movs	r2, #0
 
-  */
 
- void
 
- tcp_rst(u32_t seqno, u32_t ackno,
 
-   ip_addr_t *local_ip, ip_addr_t *remote_ip,
 
-   u16_t local_port, u16_t remote_port)
 
- {
 
-  8032320:	461f      	mov	r7, r3
 
-  8032322:	f8bd b030 	ldrh.w	fp, [sp, #48]	; 0x30
 
-  8032326:	f8bd a034 	ldrh.w	sl, [sp, #52]	; 0x34
 
-   struct pbuf *p;
 
-   struct tcp_hdr *tcphdr;
 
-   p = pbuf_alloc(PBUF_IP, TCP_HLEN, PBUF_RAM);
 
-  803232a:	f7fd fdbc 	bl	802fea6 <pbuf_alloc>
 
-   if (p == NULL) {
 
-  803232e:	4606      	mov	r6, r0
 
-  8032330:	2800      	cmp	r0, #0
 
-  8032332:	d030      	beq.n	8032396 <tcp_rst+0x86>
 
-       return;
 
-   }
 
-   LWIP_ASSERT("check that first pbuf can hold struct tcp_hdr",
 
-               (p->len >= sizeof(struct tcp_hdr)));
 
-   tcphdr = (struct tcp_hdr *)p->payload;
 
-  8032334:	6844      	ldr	r4, [r0, #4]
 
-   tcphdr->src = htons(local_port);
 
-  8032336:	4658      	mov	r0, fp
 
-  8032338:	f7fc fc2a 	bl	802eb90 <lwip_htons>
 
-  803233c:	8020      	strh	r0, [r4, #0]
 
-   tcphdr->dest = htons(remote_port);
 
-  803233e:	4650      	mov	r0, sl
 
-  8032340:	f7fc fc26 	bl	802eb90 <lwip_htons>
 
-  8032344:	8060      	strh	r0, [r4, #2]
 
-   tcphdr->seqno = htonl(seqno);
 
-  8032346:	4648      	mov	r0, r9
 
-  8032348:	f7fc fc2c 	bl	802eba4 <lwip_htonl>
 
-  803234c:	6060      	str	r0, [r4, #4]
 
-   tcphdr->ackno = htonl(ackno);
 
-  803234e:	4628      	mov	r0, r5
 
-  8032350:	f7fc fc28 	bl	802eba4 <lwip_htonl>
 
-  8032354:	60a0      	str	r0, [r4, #8]
 
-   TCPH_HDRLEN_FLAGS_SET(tcphdr, TCP_HLEN/4, TCP_RST | TCP_ACK);
 
-  8032356:	f245 0014 	movw	r0, #20500	; 0x5014
 
-  803235a:	f7fc fc19 	bl	802eb90 <lwip_htons>
 
-   tcphdr->wnd = PP_HTONS(TCP_WND);
 
-  803235e:	2316      	movs	r3, #22
 
-  8032360:	2500      	movs	r5, #0
 
-  8032362:	73a3      	strb	r3, [r4, #14]
 
-  8032364:	f06f 032f 	mvn.w	r3, #47	; 0x2f
 
-   tcphdr = (struct tcp_hdr *)p->payload;
 
-   tcphdr->src = htons(local_port);
 
-   tcphdr->dest = htons(remote_port);
 
-   tcphdr->seqno = htonl(seqno);
 
-   tcphdr->ackno = htonl(ackno);
 
-   TCPH_HDRLEN_FLAGS_SET(tcphdr, TCP_HLEN/4, TCP_RST | TCP_ACK);
 
-  8032368:	81a0      	strh	r0, [r4, #12]
 
-   tcphdr->wnd = PP_HTONS(TCP_WND);
 
-  803236a:	73e3      	strb	r3, [r4, #15]
 
-   tcphdr->chksum = 0;
 
-  803236c:	7425      	strb	r5, [r4, #16]
 
-  803236e:	7465      	strb	r5, [r4, #17]
 
-   tcphdr->urgp = 0;
 
-  8032370:	74a5      	strb	r5, [r4, #18]
 
-  8032372:	74e5      	strb	r5, [r4, #19]
 
- #if CHECKSUM_GEN_TCP
 
-   tcphdr->chksum = inet_chksum_pseudo(p, local_ip, remote_ip,
 
-               IP_PROTO_TCP, p->tot_len);
 
- #endif
 
-   TCP_STATS_INC(tcp.xmit);
 
-   snmp_inc_tcpoutrsts();
 
-  8032374:	f002 fc88 	bl	8034c88 <snmp_inc_tcpoutrsts>
 
-    /* Send output with hardcoded TTL since we have no access to the pcb */
 
-   ip_output(p, local_ip, remote_ip, TCP_TTL, 0, IP_PROTO_TCP);
 
-  8032378:	2306      	movs	r3, #6
 
-  803237a:	9301      	str	r3, [sp, #4]
 
-  803237c:	9500      	str	r5, [sp, #0]
 
-  803237e:	4630      	mov	r0, r6
 
-  8032380:	4641      	mov	r1, r8
 
-  8032382:	463a      	mov	r2, r7
 
-  8032384:	23ff      	movs	r3, #255	; 0xff
 
-  8032386:	f000 ff41 	bl	803320c <ip_output>
 
-   pbuf_free(p);
 
-  803238a:	4630      	mov	r0, r6
 
-   LWIP_DEBUGF(TCP_RST_DEBUG, ("tcp_rst: seqno %"U32_F" ackno %"U32_F".\n", seqno, ackno));
 
- }
 
-  803238c:	b003      	add	sp, #12
 
-  803238e:	e8bd 4ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
- #endif
 
-   TCP_STATS_INC(tcp.xmit);
 
-   snmp_inc_tcpoutrsts();
 
-    /* Send output with hardcoded TTL since we have no access to the pcb */
 
-   ip_output(p, local_ip, remote_ip, TCP_TTL, 0, IP_PROTO_TCP);
 
-   pbuf_free(p);
 
-  8032392:	f7fd bd3b 	b.w	802fe0c <pbuf_free>
 
-   LWIP_DEBUGF(TCP_RST_DEBUG, ("tcp_rst: seqno %"U32_F" ackno %"U32_F".\n", seqno, ackno));
 
- }
 
-  8032396:	b003      	add	sp, #12
 
-  8032398:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
- 0803239c <tcp_rexmit_rto>:
 
- void
 
- tcp_rexmit_rto(struct tcp_pcb *pcb)
 
- {
 
-   struct tcp_seg *seg;
 
-   if (pcb->unacked == NULL) {
 
-  803239c:	6f02      	ldr	r2, [r0, #112]	; 0x70
 
-  *
 
-  * @param pcb the tcp_pcb for which to re-enqueue all unacked segments
 
-  */
 
- void
 
- tcp_rexmit_rto(struct tcp_pcb *pcb)
 
- {
 
-  803239e:	b510      	push	{r4, lr}
 
-   struct tcp_seg *seg;
 
-   if (pcb->unacked == NULL) {
 
-  80323a0:	b19a      	cbz	r2, 80323ca <tcp_rexmit_rto+0x2e>
 
-  80323a2:	4611      	mov	r1, r2
 
-  80323a4:	e000      	b.n	80323a8 <tcp_rexmit_rto+0xc>
 
-     return;
 
-   }
 
-   /* Move all unacked segments to the head of the unsent queue */
 
-   for (seg = pcb->unacked; seg->next != NULL; seg = seg->next);
 
-  80323a6:	4619      	mov	r1, r3
 
-  80323a8:	680b      	ldr	r3, [r1, #0]
 
-  80323aa:	2b00      	cmp	r3, #0
 
-  80323ac:	d1fb      	bne.n	80323a6 <tcp_rexmit_rto+0xa>
 
-   /* concatenate unsent queue after unacked queue */
 
-   seg->next = pcb->unsent;
 
-  80323ae:	6ec4      	ldr	r4, [r0, #108]	; 0x6c
 
-  80323b0:	600c      	str	r4, [r1, #0]
 
-   /* unsent queue is the concatenated queue (of unacked, unsent) */
 
-   pcb->unsent = pcb->unacked;
 
-  80323b2:	66c2      	str	r2, [r0, #108]	; 0x6c
 
-   /* unacked queue is now empty */
 
-   pcb->unacked = NULL;
 
-   /* last unsent hasn't changed, no need to reset unsent_oversize */
 
-   /* increment number of retransmissions */
 
-   ++pcb->nrtx;
 
-  80323b4:	f890 2046 	ldrb.w	r2, [r0, #70]	; 0x46
 
-   /* concatenate unsent queue after unacked queue */
 
-   seg->next = pcb->unsent;
 
-   /* unsent queue is the concatenated queue (of unacked, unsent) */
 
-   pcb->unsent = pcb->unacked;
 
-   /* unacked queue is now empty */
 
-   pcb->unacked = NULL;
 
-  80323b8:	6703      	str	r3, [r0, #112]	; 0x70
 
-   /* last unsent hasn't changed, no need to reset unsent_oversize */
 
-   /* increment number of retransmissions */
 
-   ++pcb->nrtx;
 
-  80323ba:	3201      	adds	r2, #1
 
-  80323bc:	f880 2046 	strb.w	r2, [r0, #70]	; 0x46
 
-   /* Don't take any RTT measurements after retransmitting. */
 
-   pcb->rttest = 0;
 
-  80323c0:	6383      	str	r3, [r0, #56]	; 0x38
 
-   /* Do the actual retransmission */
 
-   tcp_output(pcb);
 
- }
 
-  80323c2:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
-   /* Don't take any RTT measurements after retransmitting. */
 
-   pcb->rttest = 0;
 
-   /* Do the actual retransmission */
 
-   tcp_output(pcb);
 
-  80323c6:	f7ff be7f 	b.w	80320c8 <tcp_output>
 
-  80323ca:	bd10      	pop	{r4, pc}
 
- 080323cc <tcp_rexmit>:
 
-  *
 
-  * @param pcb the tcp_pcb for which to retransmit the first unacked segment
 
-  */
 
- void
 
- tcp_rexmit(struct tcp_pcb *pcb)
 
- {
 
-  80323cc:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
-   struct tcp_seg *seg;
 
-   struct tcp_seg **cur_seg;
 
-   if (pcb->unacked == NULL) {
 
-  80323ce:	6f05      	ldr	r5, [r0, #112]	; 0x70
 
-  *
 
-  * @param pcb the tcp_pcb for which to retransmit the first unacked segment
 
-  */
 
- void
 
- tcp_rexmit(struct tcp_pcb *pcb)
 
- {
 
-  80323d0:	4604      	mov	r4, r0
 
-   struct tcp_seg *seg;
 
-   struct tcp_seg **cur_seg;
 
-   if (pcb->unacked == NULL) {
 
-  80323d2:	2d00      	cmp	r5, #0
 
-  80323d4:	d027      	beq.n	8032426 <tcp_rexmit+0x5a>
 
-   }
 
-   /* Move the first unacked segment to the unsent queue */
 
-   /* Keep the unsent queue sorted. */
 
-   seg = pcb->unacked;
 
-   pcb->unacked = seg->next;
 
-  80323d6:	682b      	ldr	r3, [r5, #0]
 
-   cur_seg = &(pcb->unsent);
 
-  80323d8:	f100 066c 	add.w	r6, r0, #108	; 0x6c
 
-   }
 
-   /* Move the first unacked segment to the unsent queue */
 
-   /* Keep the unsent queue sorted. */
 
-   seg = pcb->unacked;
 
-   pcb->unacked = seg->next;
 
-  80323dc:	6703      	str	r3, [r0, #112]	; 0x70
 
-   cur_seg = &(pcb->unsent);
 
-   while (*cur_seg &&
 
-  80323de:	e000      	b.n	80323e2 <tcp_rexmit+0x16>
 
-     TCP_SEQ_LT(ntohl((*cur_seg)->tcphdr->seqno), ntohl(seg->tcphdr->seqno))) {
 
-       cur_seg = &((*cur_seg)->next );
 
-  80323e0:	6836      	ldr	r6, [r6, #0]
 
-   /* Keep the unsent queue sorted. */
 
-   seg = pcb->unacked;
 
-   pcb->unacked = seg->next;
 
-   cur_seg = &(pcb->unsent);
 
-   while (*cur_seg &&
 
-  80323e2:	6833      	ldr	r3, [r6, #0]
 
-  80323e4:	b92b      	cbnz	r3, 80323f2 <tcp_rexmit+0x26>
 
-     TCP_SEQ_LT(ntohl((*cur_seg)->tcphdr->seqno), ntohl(seg->tcphdr->seqno))) {
 
-       cur_seg = &((*cur_seg)->next );
 
-   }
 
-   seg->next = *cur_seg;
 
-  80323e6:	6833      	ldr	r3, [r6, #0]
 
-  80323e8:	602b      	str	r3, [r5, #0]
 
-   *cur_seg = seg;
 
-  80323ea:	6035      	str	r5, [r6, #0]
 
- #if TCP_OVERSIZE
 
-   if (seg->next == NULL) {
 
-  80323ec:	682b      	ldr	r3, [r5, #0]
 
-  80323ee:	b97b      	cbnz	r3, 8032410 <tcp_rexmit+0x44>
 
-  80323f0:	e00c      	b.n	803240c <tcp_rexmit+0x40>
 
-   seg = pcb->unacked;
 
-   pcb->unacked = seg->next;
 
-   cur_seg = &(pcb->unsent);
 
-   while (*cur_seg &&
 
-     TCP_SEQ_LT(ntohl((*cur_seg)->tcphdr->seqno), ntohl(seg->tcphdr->seqno))) {
 
-  80323f2:	68db      	ldr	r3, [r3, #12]
 
-  80323f4:	6858      	ldr	r0, [r3, #4]
 
-  80323f6:	f7fc fbd7 	bl	802eba8 <lwip_ntohl>
 
-  80323fa:	68eb      	ldr	r3, [r5, #12]
 
-  80323fc:	4607      	mov	r7, r0
 
-  80323fe:	6858      	ldr	r0, [r3, #4]
 
-  8032400:	f7fc fbd2 	bl	802eba8 <lwip_ntohl>
 
-  8032404:	1a38      	subs	r0, r7, r0
 
-   /* Keep the unsent queue sorted. */
 
-   seg = pcb->unacked;
 
-   pcb->unacked = seg->next;
 
-   cur_seg = &(pcb->unsent);
 
-   while (*cur_seg &&
 
-  8032406:	2800      	cmp	r0, #0
 
-  8032408:	dbea      	blt.n	80323e0 <tcp_rexmit+0x14>
 
-  803240a:	e7ec      	b.n	80323e6 <tcp_rexmit+0x1a>
 
-   seg->next = *cur_seg;
 
-   *cur_seg = seg;
 
- #if TCP_OVERSIZE
 
-   if (seg->next == NULL) {
 
-     /* the retransmitted segment is last in unsent, so reset unsent_oversize */
 
-     pcb->unsent_oversize = 0;
 
-  803240c:	f8a4 306a 	strh.w	r3, [r4, #106]	; 0x6a
 
-   }
 
- #endif /* TCP_OVERSIZE */
 
-   ++pcb->nrtx;
 
-  8032410:	f894 3046 	ldrb.w	r3, [r4, #70]	; 0x46
 
-  8032414:	3301      	adds	r3, #1
 
-  8032416:	f884 3046 	strb.w	r3, [r4, #70]	; 0x46
 
-   /* Don't take any rtt measurements after retransmitting. */
 
-   pcb->rttest = 0;
 
-  803241a:	2300      	movs	r3, #0
 
-  803241c:	63a3      	str	r3, [r4, #56]	; 0x38
 
-   /* Do the actual retransmission. */
 
-   snmp_inc_tcpretranssegs();
 
-   /* No need to call tcp_output: we are always called from tcp_input()
 
-      and thus tcp_output directly returns. */
 
- }
 
-  803241e:	e8bd 40f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, lr}
 
-   /* Don't take any rtt measurements after retransmitting. */
 
-   pcb->rttest = 0;
 
-   /* Do the actual retransmission. */
 
-   snmp_inc_tcpretranssegs();
 
-  8032422:	f002 bc21 	b.w	8034c68 <snmp_inc_tcpretranssegs>
 
-  8032426:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 
- 08032428 <tcp_rexmit_fast>:
 
-  * @param pcb the tcp_pcb for which to retransmit the first unacked segment
 
-  */
 
- void 
 
- tcp_rexmit_fast(struct tcp_pcb *pcb)
 
- {
 
-   if (pcb->unacked != NULL && !(pcb->flags & TF_INFR)) {
 
-  8032428:	6f03      	ldr	r3, [r0, #112]	; 0x70
 
-  *
 
-  * @param pcb the tcp_pcb for which to retransmit the first unacked segment
 
-  */
 
- void 
 
- tcp_rexmit_fast(struct tcp_pcb *pcb)
 
- {
 
-  803242a:	b510      	push	{r4, lr}
 
-  803242c:	4604      	mov	r4, r0
 
-   if (pcb->unacked != NULL && !(pcb->flags & TF_INFR)) {
 
-  803242e:	b333      	cbz	r3, 803247e <tcp_rexmit_fast+0x56>
 
-  8032430:	7f83      	ldrb	r3, [r0, #30]
 
-  8032432:	f003 0304 	and.w	r3, r3, #4
 
-  8032436:	b2db      	uxtb	r3, r3
 
-  8032438:	bb0b      	cbnz	r3, 803247e <tcp_rexmit_fast+0x56>
 
-     LWIP_DEBUGF(TCP_FR_DEBUG, 
 
-                 ("tcp_receive: dupacks %"U16_F" (%"U32_F
 
-                  "), fast retransmit %"U32_F"\n",
 
-                  (u16_t)pcb->dupacks, pcb->lastack,
 
-                  ntohl(pcb->unacked->tcphdr->seqno)));
 
-     tcp_rexmit(pcb);
 
-  803243a:	f7ff ffc7 	bl	80323cc <tcp_rexmit>
 
-     /* Set ssthresh to half of the minimum of the current
 
-      * cwnd and the advertised window */
 
-     if (pcb->cwnd > pcb->snd_wnd) {
 
-  803243e:	f8b4 304c 	ldrh.w	r3, [r4, #76]	; 0x4c
 
-  8032442:	f8b4 2060 	ldrh.w	r2, [r4, #96]	; 0x60
 
-  8032446:	4293      	cmp	r3, r2
 
-  8032448:	d903      	bls.n	8032452 <tcp_rexmit_fast+0x2a>
 
-       pcb->ssthresh = pcb->snd_wnd / 2;
 
-  803244a:	0852      	lsrs	r2, r2, #1
 
-  803244c:	f8a4 204e 	strh.w	r2, [r4, #78]	; 0x4e
 
-  8032450:	e002      	b.n	8032458 <tcp_rexmit_fast+0x30>
 
-     } else {
 
-       pcb->ssthresh = pcb->cwnd / 2;
 
-  8032452:	085b      	lsrs	r3, r3, #1
 
-  8032454:	f8a4 304e 	strh.w	r3, [r4, #78]	; 0x4e
 
-     }
 
-     
 
-     /* The minimum value for ssthresh should be 2 MSS */
 
-     if (pcb->ssthresh < 2*pcb->mss) {
 
-  8032458:	8ee3      	ldrh	r3, [r4, #54]	; 0x36
 
-  803245a:	f8b4 104e 	ldrh.w	r1, [r4, #78]	; 0x4e
 
-  803245e:	005a      	lsls	r2, r3, #1
 
-  8032460:	4291      	cmp	r1, r2
 
-       LWIP_DEBUGF(TCP_FR_DEBUG, 
 
-                   ("tcp_receive: The minimum value for ssthresh %"U16_F
 
-                    " should be min 2 mss %"U16_F"...\n",
 
-                    pcb->ssthresh, 2*pcb->mss));
 
-       pcb->ssthresh = 2*pcb->mss;
 
-  8032462:	bfb8      	it	lt
 
-  8032464:	f8a4 204e 	strhlt.w	r2, [r4, #78]	; 0x4e
 
-     }
 
-     
 
-     pcb->cwnd = pcb->ssthresh + 3 * pcb->mss;
 
-  8032468:	f8b4 204e 	ldrh.w	r2, [r4, #78]	; 0x4e
 
-  803246c:	2103      	movs	r1, #3
 
-  803246e:	fb01 2303 	mla	r3, r1, r3, r2
 
-  8032472:	f8a4 304c 	strh.w	r3, [r4, #76]	; 0x4c
 
-     pcb->flags |= TF_INFR;
 
-  8032476:	7fa3      	ldrb	r3, [r4, #30]
 
-  8032478:	f043 0304 	orr.w	r3, r3, #4
 
-  803247c:	77a3      	strb	r3, [r4, #30]
 
-  803247e:	bd10      	pop	{r4, pc}
 
- 08032480 <tcp_keepalive>:
 
-  *
 
-  * @param pcb the tcp_pcb for which to send a keepalive packet
 
-  */
 
- void
 
- tcp_keepalive(struct tcp_pcb *pcb)
 
- {
 
-  8032480:	b537      	push	{r0, r1, r2, r4, r5, lr}
 
-  8032482:	4604      	mov	r4, r0
 
-                           ip4_addr3_16(&pcb->remote_ip), ip4_addr4_16(&pcb->remote_ip)));
 
-   LWIP_DEBUGF(TCP_DEBUG, ("tcp_keepalive: tcp_ticks %"U32_F"   pcb->tmr %"U32_F" pcb->keep_cnt_sent %"U16_F"\n", 
 
-                           tcp_ticks, pcb->tmr, pcb->keep_cnt_sent));
 
-    
 
-   p = tcp_output_alloc_header(pcb, 0, 0, htonl(pcb->snd_nxt - 1));
 
-  8032484:	6d00      	ldr	r0, [r0, #80]	; 0x50
 
-  8032486:	3801      	subs	r0, #1
 
-  8032488:	f7fc fb8c 	bl	802eba4 <lwip_htonl>
 
-  803248c:	2100      	movs	r1, #0
 
-  803248e:	4602      	mov	r2, r0
 
-  8032490:	4620      	mov	r0, r4
 
-  8032492:	f7ff fbd9 	bl	8031c48 <tcp_output_alloc_header.constprop.0>
 
-   if(p == NULL) {
 
-  8032496:	4605      	mov	r5, r0
 
-  8032498:	b178      	cbz	r0, 80324ba <tcp_keepalive+0x3a>
 
-   /* Send output to IP */
 
- #if LWIP_NETIF_HWADDRHINT
 
-   ip_output_hinted(p, &pcb->local_ip, &pcb->remote_ip, pcb->ttl, 0, IP_PROTO_TCP,
 
-     &(pcb->addr_hint));
 
- #else /* LWIP_NETIF_HWADDRHINT*/
 
-   ip_output(p, &pcb->local_ip, &pcb->remote_ip, pcb->ttl, 0, IP_PROTO_TCP);
 
-  803249a:	2200      	movs	r2, #0
 
-  803249c:	f04f 0e06 	mov.w	lr, #6
 
-  80324a0:	e88d 4004 	stmia.w	sp, {r2, lr}
 
-  80324a4:	7aa3      	ldrb	r3, [r4, #10]
 
-  80324a6:	4621      	mov	r1, r4
 
-  80324a8:	1d22      	adds	r2, r4, #4
 
-  80324aa:	f000 feaf 	bl	803320c <ip_output>
 
- #endif /* LWIP_NETIF_HWADDRHINT*/
 
-   pbuf_free(p);
 
-  80324ae:	4628      	mov	r0, r5
 
-   LWIP_DEBUGF(TCP_DEBUG, ("tcp_keepalive: seqno %"U32_F" ackno %"U32_F".\n",
 
-                           pcb->snd_nxt - 1, pcb->rcv_nxt));
 
- }
 
-  80324b0:	b003      	add	sp, #12
 
-  80324b2:	e8bd 4030 	ldmia.w	sp!, {r4, r5, lr}
 
-     &(pcb->addr_hint));
 
- #else /* LWIP_NETIF_HWADDRHINT*/
 
-   ip_output(p, &pcb->local_ip, &pcb->remote_ip, pcb->ttl, 0, IP_PROTO_TCP);
 
- #endif /* LWIP_NETIF_HWADDRHINT*/
 
-   pbuf_free(p);
 
-  80324b6:	f7fd bca9 	b.w	802fe0c <pbuf_free>
 
-   LWIP_DEBUGF(TCP_DEBUG, ("tcp_keepalive: seqno %"U32_F" ackno %"U32_F".\n",
 
-                           pcb->snd_nxt - 1, pcb->rcv_nxt));
 
- }
 
-  80324ba:	b003      	add	sp, #12
 
-  80324bc:	bd30      	pop	{r4, r5, pc}
 
- 080324be <tcp_zero_window_probe>:
 
-  *
 
-  * @param pcb the tcp_pcb for which to send a zero-window probe packet
 
-  */
 
- void
 
- tcp_zero_window_probe(struct tcp_pcb *pcb)
 
- {
 
-  80324be:	e92d 41f3 	stmdb	sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
 
-   LWIP_DEBUGF(TCP_DEBUG, 
 
-               ("tcp_zero_window_probe: tcp_ticks %"U32_F
 
-                "   pcb->tmr %"U32_F" pcb->keep_cnt_sent %"U16_F"\n", 
 
-                tcp_ticks, pcb->tmr, pcb->keep_cnt_sent));
 
-   seg = pcb->unacked;
 
-  80324c2:	6f04      	ldr	r4, [r0, #112]	; 0x70
 
-  *
 
-  * @param pcb the tcp_pcb for which to send a zero-window probe packet
 
-  */
 
- void
 
- tcp_zero_window_probe(struct tcp_pcb *pcb)
 
- {
 
-  80324c4:	4605      	mov	r5, r0
 
-                "   pcb->tmr %"U32_F" pcb->keep_cnt_sent %"U16_F"\n", 
 
-                tcp_ticks, pcb->tmr, pcb->keep_cnt_sent));
 
-   seg = pcb->unacked;
 
-   if(seg == NULL) {
 
-  80324c6:	b914      	cbnz	r4, 80324ce <tcp_zero_window_probe+0x10>
 
-     seg = pcb->unsent;
 
-  80324c8:	6ec4      	ldr	r4, [r0, #108]	; 0x6c
 
-   }
 
-   if(seg == NULL) {
 
-  80324ca:	2c00      	cmp	r4, #0
 
-  80324cc:	d042      	beq.n	8032554 <tcp_zero_window_probe+0x96>
 
-     return;
 
-   }
 
-   is_fin = ((TCPH_FLAGS(seg->tcphdr) & TCP_FIN) != 0) && (seg->len == 0);
 
-  80324ce:	68e3      	ldr	r3, [r4, #12]
 
-  80324d0:	8998      	ldrh	r0, [r3, #12]
 
-  80324d2:	f7fc fb62 	bl	802eb9a <lwip_ntohs>
 
-  80324d6:	f010 0001 	ands.w	r0, r0, #1
 
-  80324da:	d005      	beq.n	80324e8 <tcp_zero_window_probe+0x2a>
 
-  80324dc:	8921      	ldrh	r1, [r4, #8]
 
-  80324de:	f1d1 0101 	rsbs	r1, r1, #1
 
-  80324e2:	bf38      	it	cc
 
-  80324e4:	2100      	movcc	r1, #0
 
-  80324e6:	e000      	b.n	80324ea <tcp_zero_window_probe+0x2c>
 
-  80324e8:	4601      	mov	r1, r0
 
-   /* we want to send one seqno: either FIN or data (no options) */
 
-   len = is_fin ? 0 : 1;
 
-   p = tcp_output_alloc_header(pcb, 0, len, seg->tcphdr->seqno);
 
-  80324ea:	68e3      	ldr	r3, [r4, #12]
 
-   }
 
-   if(seg == NULL) {
 
-     return;
 
-   }
 
-   is_fin = ((TCPH_FLAGS(seg->tcphdr) & TCP_FIN) != 0) && (seg->len == 0);
 
-  80324ec:	fa5f f881 	uxtb.w	r8, r1
 
-   /* we want to send one seqno: either FIN or data (no options) */
 
-   len = is_fin ? 0 : 1;
 
-   p = tcp_output_alloc_header(pcb, 0, len, seg->tcphdr->seqno);
 
-  80324f0:	4628      	mov	r0, r5
 
-  80324f2:	f081 0101 	eor.w	r1, r1, #1
 
-  80324f6:	685a      	ldr	r2, [r3, #4]
 
-  80324f8:	f7ff fba6 	bl	8031c48 <tcp_output_alloc_header.constprop.0>
 
-   if(p == NULL) {
 
-  80324fc:	4606      	mov	r6, r0
 
-  80324fe:	2800      	cmp	r0, #0
 
-  8032500:	d028      	beq.n	8032554 <tcp_zero_window_probe+0x96>
 
-     LWIP_DEBUGF(TCP_DEBUG, ("tcp_zero_window_probe: no memory for pbuf\n"));
 
-     return;
 
-   }
 
-   tcphdr = (struct tcp_hdr *)p->payload;
 
-  8032502:	6847      	ldr	r7, [r0, #4]
 
-   if (is_fin) {
 
-  8032504:	f1b8 0f00 	cmp.w	r8, #0
 
-  8032508:	d009      	beq.n	803251e <tcp_zero_window_probe+0x60>
 
-     /* FIN segment, no data */
 
-     TCPH_FLAGS_SET(tcphdr, TCP_ACK | TCP_FIN);
 
-  803250a:	89bc      	ldrh	r4, [r7, #12]
 
-  803250c:	2011      	movs	r0, #17
 
-  803250e:	f7fc fb3f 	bl	802eb90 <lwip_htons>
 
-  8032512:	f424 547c 	bic.w	r4, r4, #16128	; 0x3f00
 
-  8032516:	b2a4      	uxth	r4, r4
 
-  8032518:	4320      	orrs	r0, r4
 
-  803251a:	81b8      	strh	r0, [r7, #12]
 
-  803251c:	e009      	b.n	8032532 <tcp_zero_window_probe+0x74>
 
-     /* Data segment, copy in one byte from the head of the unacked queue */
 
-     char *d = ((char *)p->payload + TCP_HLEN);
 
-     /* Depending on whether the segment has already been sent (unacked) or not
 
-        (unsent), seg->p->payload points to the IP header or TCP header.
 
-        Ensure we copy the first TCP data byte: */
 
-     pbuf_copy_partial(seg->p, d, 1, seg->p->tot_len - seg->len);
 
-  803251e:	6860      	ldr	r0, [r4, #4]
 
-  8032520:	8923      	ldrh	r3, [r4, #8]
 
-  8032522:	8902      	ldrh	r2, [r0, #8]
 
-  8032524:	1ad3      	subs	r3, r2, r3
 
-  8032526:	f107 0114 	add.w	r1, r7, #20
 
-  803252a:	2201      	movs	r2, #1
 
-  803252c:	b29b      	uxth	r3, r3
 
-  803252e:	f7fd fdbb 	bl	80300a8 <pbuf_copy_partial>
 
-   /* Send output to IP */
 
- #if LWIP_NETIF_HWADDRHINT
 
-   ip_output_hinted(p, &pcb->local_ip, &pcb->remote_ip, pcb->ttl, 0, IP_PROTO_TCP,
 
-     &(pcb->addr_hint));
 
- #else /* LWIP_NETIF_HWADDRHINT*/
 
-   ip_output(p, &pcb->local_ip, &pcb->remote_ip, pcb->ttl, 0, IP_PROTO_TCP);
 
-  8032532:	2200      	movs	r2, #0
 
-  8032534:	f04f 0c06 	mov.w	ip, #6
 
-  8032538:	e88d 1004 	stmia.w	sp, {r2, ip}
 
-  803253c:	7aab      	ldrb	r3, [r5, #10]
 
-  803253e:	4630      	mov	r0, r6
 
-  8032540:	4629      	mov	r1, r5
 
-  8032542:	1d2a      	adds	r2, r5, #4
 
-  8032544:	f000 fe62 	bl	803320c <ip_output>
 
- #endif /* LWIP_NETIF_HWADDRHINT*/
 
-   pbuf_free(p);
 
-  8032548:	4630      	mov	r0, r6
 
-   LWIP_DEBUGF(TCP_DEBUG, ("tcp_zero_window_probe: seqno %"U32_F
 
-                           " ackno %"U32_F".\n",
 
-                           pcb->snd_nxt - 1, pcb->rcv_nxt));
 
- }
 
-  803254a:	b002      	add	sp, #8
 
-  803254c:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
 
-     &(pcb->addr_hint));
 
- #else /* LWIP_NETIF_HWADDRHINT*/
 
-   ip_output(p, &pcb->local_ip, &pcb->remote_ip, pcb->ttl, 0, IP_PROTO_TCP);
 
- #endif /* LWIP_NETIF_HWADDRHINT*/
 
-   pbuf_free(p);
 
-  8032550:	f7fd bc5c 	b.w	802fe0c <pbuf_free>
 
-   LWIP_DEBUGF(TCP_DEBUG, ("tcp_zero_window_probe: seqno %"U32_F
 
-                           " ackno %"U32_F".\n",
 
-                           pcb->snd_nxt - 1, pcb->rcv_nxt));
 
- }
 
-  8032554:	b002      	add	sp, #8
 
-  8032556:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 
-  803255a:	0000      	movs	r0, r0
 
- 0803255c <sys_timeout>:
 
- sys_timeout_debug(u32_t msecs, sys_timeout_handler handler, void *arg, const char* handler_name)
 
- #else /* LWIP_DEBUG_TIMERNAMES */
 
- void
 
- sys_timeout(u32_t msecs, sys_timeout_handler handler, void *arg)
 
- #endif /* LWIP_DEBUG_TIMERNAMES */
 
- {
 
-  803255c:	b570      	push	{r4, r5, r6, lr}
 
-  803255e:	4604      	mov	r4, r0
 
-   struct sys_timeo *timeout, *t;
 
-   timeout = (struct sys_timeo *)memp_malloc(MEMP_SYS_TIMEOUT);
 
-  8032560:	2009      	movs	r0, #9
 
- sys_timeout_debug(u32_t msecs, sys_timeout_handler handler, void *arg, const char* handler_name)
 
- #else /* LWIP_DEBUG_TIMERNAMES */
 
- void
 
- sys_timeout(u32_t msecs, sys_timeout_handler handler, void *arg)
 
- #endif /* LWIP_DEBUG_TIMERNAMES */
 
- {
 
-  8032562:	460d      	mov	r5, r1
 
-  8032564:	4616      	mov	r6, r2
 
-   struct sys_timeo *timeout, *t;
 
-   timeout = (struct sys_timeo *)memp_malloc(MEMP_SYS_TIMEOUT);
 
-  8032566:	f7fd fb31 	bl	802fbcc <memp_malloc>
 
-   if (timeout == NULL) {
 
-  803256a:	4603      	mov	r3, r0
 
-  803256c:	b308      	cbz	r0, 80325b2 <sys_timeout+0x56>
 
-   timeout->handler_name = handler_name;
 
-   LWIP_DEBUGF(TIMERS_DEBUG, ("sys_timeout: %p msecs=%"U32_F" handler=%s arg=%p\n",
 
-     (void *)timeout, msecs, handler_name, (void *)arg));
 
- #endif /* LWIP_DEBUG_TIMERNAMES */
 
-   if (next_timeout == NULL) {
 
-  803256e:	4911      	ldr	r1, [pc, #68]	; (80325b4 <sys_timeout+0x58>)
 
-   timeout = (struct sys_timeo *)memp_malloc(MEMP_SYS_TIMEOUT);
 
-   if (timeout == NULL) {
 
-     LWIP_ASSERT("sys_timeout: timeout != NULL, pool MEMP_SYS_TIMEOUT is empty", timeout != NULL);
 
-     return;
 
-   }
 
-   timeout->next = NULL;
 
-  8032570:	2200      	movs	r2, #0
 
-   timeout->h = handler;
 
-   timeout->arg = arg;
 
-   timeout->time = msecs;
 
-  8032572:	e880 0074 	stmia.w	r0, {r2, r4, r5, r6}
 
-   timeout->handler_name = handler_name;
 
-   LWIP_DEBUGF(TIMERS_DEBUG, ("sys_timeout: %p msecs=%"U32_F" handler=%s arg=%p\n",
 
-     (void *)timeout, msecs, handler_name, (void *)arg));
 
- #endif /* LWIP_DEBUG_TIMERNAMES */
 
-   if (next_timeout == NULL) {
 
-  8032576:	680a      	ldr	r2, [r1, #0]
 
-  8032578:	b902      	cbnz	r2, 803257c <sys_timeout+0x20>
 
-  803257a:	e005      	b.n	8032588 <sys_timeout+0x2c>
 
-     next_timeout = timeout;
 
-     return;
 
-   }
 
-   if (next_timeout->time > msecs) {
 
-  803257c:	6850      	ldr	r0, [r2, #4]
 
-  803257e:	42a0      	cmp	r0, r4
 
-  8032580:	d90c      	bls.n	803259c <sys_timeout+0x40>
 
-     next_timeout->time -= msecs;
 
-  8032582:	1b04      	subs	r4, r0, r4
 
-  8032584:	6054      	str	r4, [r2, #4]
 
-     timeout->next = next_timeout;
 
-  8032586:	601a      	str	r2, [r3, #0]
 
-     next_timeout = timeout;
 
-  8032588:	600b      	str	r3, [r1, #0]
 
-  803258a:	bd70      	pop	{r4, r5, r6, pc}
 
-   } else {
 
-     for(t = next_timeout; t != NULL; t = t->next) {
 
-       timeout->time -= t->time;
 
-       if (t->next == NULL || t->next->time > timeout->time) {
 
-  803258c:	684c      	ldr	r4, [r1, #4]
 
-  803258e:	4284      	cmp	r4, r0
 
-  8032590:	d80c      	bhi.n	80325ac <sys_timeout+0x50>
 
-  8032592:	460a      	mov	r2, r1
 
-  8032594:	e002      	b.n	803259c <sys_timeout+0x40>
 
-         if (t->next != NULL) {
 
-           t->next->time -= timeout->time;
 
-         }
 
-         timeout->next = t->next;
 
-  8032596:	6019      	str	r1, [r3, #0]
 
-         t->next = timeout;
 
-  8032598:	6013      	str	r3, [r2, #0]
 
-         break;
 
-  803259a:	bd70      	pop	{r4, r5, r6, pc}
 
-     next_timeout->time -= msecs;
 
-     timeout->next = next_timeout;
 
-     next_timeout = timeout;
 
-   } else {
 
-     for(t = next_timeout; t != NULL; t = t->next) {
 
-       timeout->time -= t->time;
 
-  803259c:	6851      	ldr	r1, [r2, #4]
 
-  803259e:	6858      	ldr	r0, [r3, #4]
 
-  80325a0:	1a40      	subs	r0, r0, r1
 
-       if (t->next == NULL || t->next->time > timeout->time) {
 
-  80325a2:	6811      	ldr	r1, [r2, #0]
 
-     next_timeout->time -= msecs;
 
-     timeout->next = next_timeout;
 
-     next_timeout = timeout;
 
-   } else {
 
-     for(t = next_timeout; t != NULL; t = t->next) {
 
-       timeout->time -= t->time;
 
-  80325a4:	6058      	str	r0, [r3, #4]
 
-       if (t->next == NULL || t->next->time > timeout->time) {
 
-  80325a6:	2900      	cmp	r1, #0
 
-  80325a8:	d1f0      	bne.n	803258c <sys_timeout+0x30>
 
-  80325aa:	e7f4      	b.n	8032596 <sys_timeout+0x3a>
 
-         if (t->next != NULL) {
 
-           t->next->time -= timeout->time;
 
-  80325ac:	1a20      	subs	r0, r4, r0
 
-  80325ae:	6048      	str	r0, [r1, #4]
 
-  80325b0:	e7f1      	b.n	8032596 <sys_timeout+0x3a>
 
-  80325b2:	bd70      	pop	{r4, r5, r6, pc}
 
-  80325b4:	2000c410 	.word	0x2000c410
 
- 080325b8 <sys_timeouts_init>:
 
- }
 
- #endif /* LWIP_DNS */
 
- /** Initialize this module */
 
- void sys_timeouts_init(void)
 
- {
 
-  80325b8:	b508      	push	{r3, lr}
 
- #if IP_REASSEMBLY
 
-   sys_timeout(IP_TMR_INTERVAL, ip_reass_timer, NULL);
 
- #endif /* IP_REASSEMBLY */
 
- #if LWIP_ARP
 
-   sys_timeout(ARP_TMR_INTERVAL, arp_timer, NULL);
 
-  80325ba:	2200      	movs	r2, #0
 
-  80325bc:	f241 3088 	movw	r0, #5000	; 0x1388
 
-  80325c0:	4908      	ldr	r1, [pc, #32]	; (80325e4 <sys_timeouts_init+0x2c>)
 
-  80325c2:	f7ff ffcb 	bl	803255c <sys_timeout>
 
- #endif /* LWIP_ARP */
 
- #if LWIP_DHCP
 
-   sys_timeout(DHCP_COARSE_TIMER_MSECS, dhcp_timer_coarse, NULL);
 
-  80325c6:	2200      	movs	r2, #0
 
-  80325c8:	f64e 2060 	movw	r0, #60000	; 0xea60
 
-  80325cc:	4906      	ldr	r1, [pc, #24]	; (80325e8 <sys_timeouts_init+0x30>)
 
-  80325ce:	f7ff ffc5 	bl	803255c <sys_timeout>
 
-   sys_timeout(DHCP_FINE_TIMER_MSECS, dhcp_timer_fine, NULL);
 
-  80325d2:	4906      	ldr	r1, [pc, #24]	; (80325ec <sys_timeouts_init+0x34>)
 
-  80325d4:	f44f 70fa 	mov.w	r0, #500	; 0x1f4
 
-  80325d8:	2200      	movs	r2, #0
 
- #if NO_SYS
 
-   /* Initialise timestamp for sys_check_timeouts */
 
-   timeouts_last_time = sys_now();
 
- #endif
 
- }
 
-  80325da:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
 
- #if LWIP_ARP
 
-   sys_timeout(ARP_TMR_INTERVAL, arp_timer, NULL);
 
- #endif /* LWIP_ARP */
 
- #if LWIP_DHCP
 
-   sys_timeout(DHCP_COARSE_TIMER_MSECS, dhcp_timer_coarse, NULL);
 
-   sys_timeout(DHCP_FINE_TIMER_MSECS, dhcp_timer_fine, NULL);
 
-  80325de:	f7ff bfbd 	b.w	803255c <sys_timeout>
 
-  80325e2:	bf00      	nop
 
-  80325e4:	08032629 	.word	0x08032629
 
-  80325e8:	0803260d 	.word	0x0803260d
 
-  80325ec:	080325f1 	.word	0x080325f1
 
- 080325f0 <dhcp_timer_fine>:
 
-  *
 
-  * @param arg unused argument
 
-  */
 
- static void
 
- dhcp_timer_fine(void *arg)
 
- {
 
-  80325f0:	b508      	push	{r3, lr}
 
-   LWIP_UNUSED_ARG(arg);
 
-   LWIP_DEBUGF(TIMERS_DEBUG, ("tcpip: dhcp_fine_tmr()\n"));
 
-   dhcp_fine_tmr();
 
-  80325f2:	f7fd f8a7 	bl	802f744 <dhcp_fine_tmr>
 
-   sys_timeout(DHCP_FINE_TIMER_MSECS, dhcp_timer_fine, NULL);
 
-  80325f6:	4904      	ldr	r1, [pc, #16]	; (8032608 <dhcp_timer_fine+0x18>)
 
-  80325f8:	f44f 70fa 	mov.w	r0, #500	; 0x1f4
 
-  80325fc:	2200      	movs	r2, #0
 
- }
 
-  80325fe:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
 
- dhcp_timer_fine(void *arg)
 
- {
 
-   LWIP_UNUSED_ARG(arg);
 
-   LWIP_DEBUGF(TIMERS_DEBUG, ("tcpip: dhcp_fine_tmr()\n"));
 
-   dhcp_fine_tmr();
 
-   sys_timeout(DHCP_FINE_TIMER_MSECS, dhcp_timer_fine, NULL);
 
-  8032602:	f7ff bfab 	b.w	803255c <sys_timeout>
 
-  8032606:	bf00      	nop
 
-  8032608:	080325f1 	.word	0x080325f1
 
- 0803260c <dhcp_timer_coarse>:
 
-  *
 
-  * @param arg unused argument
 
-  */
 
- static void
 
- dhcp_timer_coarse(void *arg)
 
- {
 
-  803260c:	b508      	push	{r3, lr}
 
-   LWIP_UNUSED_ARG(arg);
 
-   LWIP_DEBUGF(TIMERS_DEBUG, ("tcpip: dhcp_coarse_tmr()\n"));
 
-   dhcp_coarse_tmr();
 
-  803260e:	f7fd f817 	bl	802f640 <dhcp_coarse_tmr>
 
-   sys_timeout(DHCP_COARSE_TIMER_MSECS, dhcp_timer_coarse, NULL);
 
-  8032612:	4904      	ldr	r1, [pc, #16]	; (8032624 <dhcp_timer_coarse+0x18>)
 
-  8032614:	f64e 2060 	movw	r0, #60000	; 0xea60
 
-  8032618:	2200      	movs	r2, #0
 
- }
 
-  803261a:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
 
- dhcp_timer_coarse(void *arg)
 
- {
 
-   LWIP_UNUSED_ARG(arg);
 
-   LWIP_DEBUGF(TIMERS_DEBUG, ("tcpip: dhcp_coarse_tmr()\n"));
 
-   dhcp_coarse_tmr();
 
-   sys_timeout(DHCP_COARSE_TIMER_MSECS, dhcp_timer_coarse, NULL);
 
-  803261e:	f7ff bf9d 	b.w	803255c <sys_timeout>
 
-  8032622:	bf00      	nop
 
-  8032624:	0803260d 	.word	0x0803260d
 
- 08032628 <arp_timer>:
 
-  *
 
-  * @param arg unused argument
 
-  */
 
- static void
 
- arp_timer(void *arg)
 
- {
 
-  8032628:	b508      	push	{r3, lr}
 
-   LWIP_UNUSED_ARG(arg);
 
-   LWIP_DEBUGF(TIMERS_DEBUG, ("tcpip: etharp_tmr()\n"));
 
-   etharp_tmr();
 
-  803262a:	f004 fd25 	bl	8037078 <etharp_tmr>
 
-   sys_timeout(ARP_TMR_INTERVAL, arp_timer, NULL);
 
-  803262e:	4904      	ldr	r1, [pc, #16]	; (8032640 <arp_timer+0x18>)
 
-  8032630:	f241 3088 	movw	r0, #5000	; 0x1388
 
-  8032634:	2200      	movs	r2, #0
 
- }
 
-  8032636:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
 
- arp_timer(void *arg)
 
- {
 
-   LWIP_UNUSED_ARG(arg);
 
-   LWIP_DEBUGF(TIMERS_DEBUG, ("tcpip: etharp_tmr()\n"));
 
-   etharp_tmr();
 
-   sys_timeout(ARP_TMR_INTERVAL, arp_timer, NULL);
 
-  803263a:	f7ff bf8f 	b.w	803255c <sys_timeout>
 
-  803263e:	bf00      	nop
 
-  8032640:	08032629 	.word	0x08032629
 
- 08032644 <tcp_timer_needed>:
 
-  */
 
- void
 
- tcp_timer_needed(void)
 
- {
 
-   /* timer is off but needed again? */
 
-   if (!tcpip_tcp_timer_active && (tcp_active_pcbs || tcp_tw_pcbs)) {
 
-  8032644:	4b08      	ldr	r3, [pc, #32]	; (8032668 <tcp_timer_needed+0x24>)
 
-  8032646:	681b      	ldr	r3, [r3, #0]
 
-  8032648:	b96b      	cbnz	r3, 8032666 <tcp_timer_needed+0x22>
 
-  803264a:	4b08      	ldr	r3, [pc, #32]	; (803266c <tcp_timer_needed+0x28>)
 
-  803264c:	681b      	ldr	r3, [r3, #0]
 
-  803264e:	b913      	cbnz	r3, 8032656 <tcp_timer_needed+0x12>
 
-  8032650:	4b07      	ldr	r3, [pc, #28]	; (8032670 <tcp_timer_needed+0x2c>)
 
-  8032652:	681b      	ldr	r3, [r3, #0]
 
-  8032654:	b13b      	cbz	r3, 8032666 <tcp_timer_needed+0x22>
 
-     /* enable and start timer */
 
-     tcpip_tcp_timer_active = 1;
 
-  8032656:	4b04      	ldr	r3, [pc, #16]	; (8032668 <tcp_timer_needed+0x24>)
 
-     sys_timeout(TCP_TMR_INTERVAL, tcpip_tcp_timer, NULL);
 
-  8032658:	4906      	ldr	r1, [pc, #24]	; (8032674 <tcp_timer_needed+0x30>)
 
- tcp_timer_needed(void)
 
- {
 
-   /* timer is off but needed again? */
 
-   if (!tcpip_tcp_timer_active && (tcp_active_pcbs || tcp_tw_pcbs)) {
 
-     /* enable and start timer */
 
-     tcpip_tcp_timer_active = 1;
 
-  803265a:	2201      	movs	r2, #1
 
-  803265c:	601a      	str	r2, [r3, #0]
 
-     sys_timeout(TCP_TMR_INTERVAL, tcpip_tcp_timer, NULL);
 
-  803265e:	20fa      	movs	r0, #250	; 0xfa
 
-  8032660:	2200      	movs	r2, #0
 
-  8032662:	f7ff bf7b 	b.w	803255c <sys_timeout>
 
-  8032666:	4770      	bx	lr
 
-  8032668:	2000c40c 	.word	0x2000c40c
 
-  803266c:	2000f6bc 	.word	0x2000f6bc
 
-  8032670:	2000f6d0 	.word	0x2000f6d0
 
-  8032674:	08032679 	.word	0x08032679
 
- 08032678 <tcpip_tcp_timer>:
 
-  *
 
-  * @param arg unused argument
 
-  */
 
- static void
 
- tcpip_tcp_timer(void *arg)
 
- {
 
-  8032678:	b508      	push	{r3, lr}
 
-   LWIP_UNUSED_ARG(arg);
 
-   /* call TCP timer handler */
 
-   tcp_tmr();
 
-  803267a:	f7fe fa59 	bl	8030b30 <tcp_tmr>
 
-   /* timer still needed? */
 
-   if (tcp_active_pcbs || tcp_tw_pcbs) {
 
-  803267e:	4b08      	ldr	r3, [pc, #32]	; (80326a0 <tcpip_tcp_timer+0x28>)
 
-  8032680:	681b      	ldr	r3, [r3, #0]
 
-  8032682:	b913      	cbnz	r3, 803268a <tcpip_tcp_timer+0x12>
 
-  8032684:	4b07      	ldr	r3, [pc, #28]	; (80326a4 <tcpip_tcp_timer+0x2c>)
 
-  8032686:	681b      	ldr	r3, [r3, #0]
 
-  8032688:	b133      	cbz	r3, 8032698 <tcpip_tcp_timer+0x20>
 
-     /* restart timer */
 
-     sys_timeout(TCP_TMR_INTERVAL, tcpip_tcp_timer, NULL);
 
-  803268a:	4907      	ldr	r1, [pc, #28]	; (80326a8 <tcpip_tcp_timer+0x30>)
 
-  803268c:	20fa      	movs	r0, #250	; 0xfa
 
-  803268e:	2200      	movs	r2, #0
 
-   } else {
 
-     /* disable timer */
 
-     tcpip_tcp_timer_active = 0;
 
-   }
 
- }
 
-  8032690:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
 
-   /* call TCP timer handler */
 
-   tcp_tmr();
 
-   /* timer still needed? */
 
-   if (tcp_active_pcbs || tcp_tw_pcbs) {
 
-     /* restart timer */
 
-     sys_timeout(TCP_TMR_INTERVAL, tcpip_tcp_timer, NULL);
 
-  8032694:	f7ff bf62 	b.w	803255c <sys_timeout>
 
-   } else {
 
-     /* disable timer */
 
-     tcpip_tcp_timer_active = 0;
 
-  8032698:	4a04      	ldr	r2, [pc, #16]	; (80326ac <tcpip_tcp_timer+0x34>)
 
-  803269a:	6013      	str	r3, [r2, #0]
 
-  803269c:	bd08      	pop	{r3, pc}
 
-  803269e:	bf00      	nop
 
-  80326a0:	2000f6bc 	.word	0x2000f6bc
 
-  80326a4:	2000f6d0 	.word	0x2000f6d0
 
-  80326a8:	08032679 	.word	0x08032679
 
-  80326ac:	2000c40c 	.word	0x2000c40c
 
- 080326b0 <sys_untimeout>:
 
- void
 
- sys_untimeout(sys_timeout_handler handler, void *arg)
 
- {
 
-   struct sys_timeo *prev_t, *t;
 
-   if (next_timeout == NULL) {
 
-  80326b0:	4b10      	ldr	r3, [pc, #64]	; (80326f4 <sys_untimeout+0x44>)
 
-  80326b2:	681b      	ldr	r3, [r3, #0]
 
-  * @param handler callback function that would be called by the timeout
 
-  * @param arg callback argument that would be passed to handler
 
- */
 
- void
 
- sys_untimeout(sys_timeout_handler handler, void *arg)
 
- {
 
-  80326b4:	b510      	push	{r4, lr}
 
-   struct sys_timeo *prev_t, *t;
 
-   if (next_timeout == NULL) {
 
-  80326b6:	b1e3      	cbz	r3, 80326f2 <sys_untimeout+0x42>
 
-  80326b8:	2200      	movs	r2, #0
 
-  80326ba:	e000      	b.n	80326be <sys_untimeout+0xe>
 
-     return;
 
-   }
 
-   for (t = next_timeout, prev_t = NULL; t != NULL; prev_t = t, t = t->next) {
 
-  80326bc:	4623      	mov	r3, r4
 
-     if ((t->h == handler) && (t->arg == arg)) {
 
-  80326be:	689c      	ldr	r4, [r3, #8]
 
-  80326c0:	4284      	cmp	r4, r0
 
-  80326c2:	d112      	bne.n	80326ea <sys_untimeout+0x3a>
 
-  80326c4:	68dc      	ldr	r4, [r3, #12]
 
-  80326c6:	428c      	cmp	r4, r1
 
-  80326c8:	d10f      	bne.n	80326ea <sys_untimeout+0x3a>
 
-  80326ca:	6819      	ldr	r1, [r3, #0]
 
-       /* We have a match */
 
-       /* Unlink from previous in list */
 
-       if (prev_t == NULL) {
 
-  80326cc:	b902      	cbnz	r2, 80326d0 <sys_untimeout+0x20>
 
-         next_timeout = t->next;
 
-  80326ce:	4a09      	ldr	r2, [pc, #36]	; (80326f4 <sys_untimeout+0x44>)
 
-       } else {
 
-         prev_t->next = t->next;
 
-  80326d0:	6011      	str	r1, [r2, #0]
 
-       }
 
-       /* If not the last one, add time of this one back to next */
 
-       if (t->next != NULL) {
 
-  80326d2:	681a      	ldr	r2, [r3, #0]
 
-  80326d4:	b11a      	cbz	r2, 80326de <sys_untimeout+0x2e>
 
-         t->next->time += t->time;
 
-  80326d6:	6850      	ldr	r0, [r2, #4]
 
-  80326d8:	6859      	ldr	r1, [r3, #4]
 
-  80326da:	1841      	adds	r1, r0, r1
 
-  80326dc:	6051      	str	r1, [r2, #4]
 
-       }
 
-       memp_free(MEMP_SYS_TIMEOUT, t);
 
-  80326de:	2009      	movs	r0, #9
 
-  80326e0:	4619      	mov	r1, r3
 
-       return;
 
-     }
 
-   }
 
-   return;
 
- }
 
-  80326e2:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
-       }
 
-       /* If not the last one, add time of this one back to next */
 
-       if (t->next != NULL) {
 
-         t->next->time += t->time;
 
-       }
 
-       memp_free(MEMP_SYS_TIMEOUT, t);
 
-  80326e6:	f7fd ba87 	b.w	802fbf8 <memp_free>
 
-   if (next_timeout == NULL) {
 
-     return;
 
-   }
 
-   for (t = next_timeout, prev_t = NULL; t != NULL; prev_t = t, t = t->next) {
 
-  80326ea:	681c      	ldr	r4, [r3, #0]
 
-  80326ec:	461a      	mov	r2, r3
 
-  80326ee:	2c00      	cmp	r4, #0
 
-  80326f0:	d1e4      	bne.n	80326bc <sys_untimeout+0xc>
 
-  80326f2:	bd10      	pop	{r4, pc}
 
-  80326f4:	2000c410 	.word	0x2000c410
 
- 080326f8 <sys_timeouts_mbox_fetch>:
 
-  * @param mbox the mbox to fetch the message from
 
-  * @param msg the place to store the message
 
-  */
 
- void
 
- sys_timeouts_mbox_fetch(sys_mbox_t *mbox, void **msg)
 
- {
 
-  80326f8:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
 
-   struct sys_timeo *tmptimeout;
 
-   sys_timeout_handler handler;
 
-   void *arg;
 
-  again:
 
-   if (!next_timeout) {
 
-  80326fc:	4e18      	ldr	r6, [pc, #96]	; (8032760 <sys_timeouts_mbox_fetch+0x68>)
 
-  * @param mbox the mbox to fetch the message from
 
-  * @param msg the place to store the message
 
-  */
 
- void
 
- sys_timeouts_mbox_fetch(sys_mbox_t *mbox, void **msg)
 
- {
 
-  80326fe:	4604      	mov	r4, r0
 
-  8032700:	460d      	mov	r5, r1
 
-  8032702:	4637      	mov	r7, r6
 
-   struct sys_timeo *tmptimeout;
 
-   sys_timeout_handler handler;
 
-   void *arg;
 
-  again:
 
-   if (!next_timeout) {
 
-  8032704:	6832      	ldr	r2, [r6, #0]
 
-  8032706:	b92a      	cbnz	r2, 8032714 <sys_timeouts_mbox_fetch+0x1c>
 
-     time_needed = sys_arch_mbox_fetch(mbox, msg, 0);
 
-  8032708:	4620      	mov	r0, r4
 
-  803270a:	4629      	mov	r1, r5
 
-       } else {
 
-         next_timeout->time = 0;
 
-       }
 
-     }
 
-   }
 
- }
 
-  803270c:	e8bd 43f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
 
-   sys_timeout_handler handler;
 
-   void *arg;
 
-  again:
 
-   if (!next_timeout) {
 
-     time_needed = sys_arch_mbox_fetch(mbox, msg, 0);
 
-  8032710:	f005 b8fc 	b.w	803790c <sys_arch_mbox_fetch>
 
-   } else {
 
-     if (next_timeout->time > 0) {
 
-  8032714:	6852      	ldr	r2, [r2, #4]
 
-  8032716:	b96a      	cbnz	r2, 8032734 <sys_timeouts_mbox_fetch+0x3c>
 
-     if (time_needed == SYS_ARCH_TIMEOUT) {
 
-       /* If time == SYS_ARCH_TIMEOUT, a timeout occured before a message
 
-          could be fetched. We should now call the timeout handler and
 
-          deallocate the memory allocated for the timeout. */
 
-       tmptimeout = next_timeout;
 
-  8032718:	6839      	ldr	r1, [r7, #0]
 
-       next_timeout = tmptimeout->next;
 
-  803271a:	680a      	ldr	r2, [r1, #0]
 
-       handler = tmptimeout->h;
 
-  803271c:	f8d1 8008 	ldr.w	r8, [r1, #8]
 
-     if (time_needed == SYS_ARCH_TIMEOUT) {
 
-       /* If time == SYS_ARCH_TIMEOUT, a timeout occured before a message
 
-          could be fetched. We should now call the timeout handler and
 
-          deallocate the memory allocated for the timeout. */
 
-       tmptimeout = next_timeout;
 
-       next_timeout = tmptimeout->next;
 
-  8032720:	603a      	str	r2, [r7, #0]
 
-       if (handler != NULL) {
 
-         LWIP_DEBUGF(TIMERS_DEBUG, ("stmf calling h=%s arg=%p\n",
 
-           tmptimeout->handler_name, arg));
 
-       }
 
- #endif /* LWIP_DEBUG_TIMERNAMES */
 
-       memp_free(MEMP_SYS_TIMEOUT, tmptimeout);
 
-  8032722:	2009      	movs	r0, #9
 
-          could be fetched. We should now call the timeout handler and
 
-          deallocate the memory allocated for the timeout. */
 
-       tmptimeout = next_timeout;
 
-       next_timeout = tmptimeout->next;
 
-       handler = tmptimeout->h;
 
-       arg = tmptimeout->arg;
 
-  8032724:	f8d1 900c 	ldr.w	r9, [r1, #12]
 
-       if (handler != NULL) {
 
-         LWIP_DEBUGF(TIMERS_DEBUG, ("stmf calling h=%s arg=%p\n",
 
-           tmptimeout->handler_name, arg));
 
-       }
 
- #endif /* LWIP_DEBUG_TIMERNAMES */
 
-       memp_free(MEMP_SYS_TIMEOUT, tmptimeout);
 
-  8032728:	f7fd fa66 	bl	802fbf8 <memp_free>
 
-       if (handler != NULL) {
 
-  803272c:	f1b8 0f00 	cmp.w	r8, #0
 
-  8032730:	d0e8      	beq.n	8032704 <sys_timeouts_mbox_fetch+0xc>
 
-  8032732:	e006      	b.n	8032742 <sys_timeouts_mbox_fetch+0x4a>
 
-  again:
 
-   if (!next_timeout) {
 
-     time_needed = sys_arch_mbox_fetch(mbox, msg, 0);
 
-   } else {
 
-     if (next_timeout->time > 0) {
 
-       time_needed = sys_arch_mbox_fetch(mbox, msg, next_timeout->time);
 
-  8032734:	4620      	mov	r0, r4
 
-  8032736:	4629      	mov	r1, r5
 
-  8032738:	f005 f8e8 	bl	803790c <sys_arch_mbox_fetch>
 
-     } else {
 
-       time_needed = SYS_ARCH_TIMEOUT;
 
-     }
 
-     if (time_needed == SYS_ARCH_TIMEOUT) {
 
-  803273c:	1c43      	adds	r3, r0, #1
 
-  803273e:	d0eb      	beq.n	8032718 <sys_timeouts_mbox_fetch+0x20>
 
-  8032740:	e002      	b.n	8032748 <sys_timeouts_mbox_fetch+0x50>
 
-       memp_free(MEMP_SYS_TIMEOUT, tmptimeout);
 
-       if (handler != NULL) {
 
-         /* For LWIP_TCPIP_CORE_LOCKING, lock the core before calling the
 
-            timeout handler function. */
 
-         LOCK_TCPIP_CORE();
 
-         handler(arg);
 
-  8032742:	4648      	mov	r0, r9
 
-  8032744:	47c0      	blx	r8
 
-  8032746:	e7dd      	b.n	8032704 <sys_timeouts_mbox_fetch+0xc>
 
-       goto again;
 
-     } else {
 
-       /* If time != SYS_ARCH_TIMEOUT, a message was received before the timeout
 
-          occured. The time variable is set to the number of
 
-          milliseconds we waited for the message. */
 
-       if (time_needed < next_timeout->time) {
 
-  8032748:	4b05      	ldr	r3, [pc, #20]	; (8032760 <sys_timeouts_mbox_fetch+0x68>)
 
-  803274a:	681b      	ldr	r3, [r3, #0]
 
-  803274c:	6859      	ldr	r1, [r3, #4]
 
-  803274e:	4288      	cmp	r0, r1
 
-         next_timeout->time -= time_needed;
 
-  8032750:	bf34      	ite	cc
 
-  8032752:	ebc0 0201 	rsbcc	r2, r0, r1
 
-       } else {
 
-         next_timeout->time = 0;
 
-  8032756:	2200      	movcs	r2, #0
 
-  8032758:	605a      	str	r2, [r3, #4]
 
-  803275a:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
 
-  803275e:	bf00      	nop
 
-  8032760:	2000c410 	.word	0x2000c410
 
- 08032764 <udp_init>:
 
- /**
 
-  * Initialize this module.
 
-  */
 
- void
 
- udp_init(void)
 
- {
 
-  8032764:	4770      	bx	lr
 
-  8032766:	0000      	movs	r0, r0
 
- 08032768 <udp_input>:
 
-  * @param inp network interface on which the datagram was received.
 
-  *
 
-  */
 
- void
 
- udp_input(struct pbuf *p, struct netif *inp)
 
- {
 
-  8032768:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-   PERF_START;
 
-   UDP_STATS_INC(udp.recv);
 
-   iphdr = (struct ip_hdr *)p->payload;
 
-  803276c:	f8d0 9004 	ldr.w	r9, [r0, #4]
 
-   /* Check minimum length (IP header + UDP header)
 
-    * and move payload pointer to UDP header */
 
-   if (p->tot_len < (IPH_HL(iphdr) * 4 + UDP_HLEN) || pbuf_header(p, -(s16_t)(IPH_HL(iphdr) * 4))) {
 
-  8032770:	8903      	ldrh	r3, [r0, #8]
 
-  * @param inp network interface on which the datagram was received.
 
-  *
 
-  */
 
- void
 
- udp_input(struct pbuf *p, struct netif *inp)
 
- {
 
-  8032772:	460e      	mov	r6, r1
 
-   iphdr = (struct ip_hdr *)p->payload;
 
-   /* Check minimum length (IP header + UDP header)
 
-    * and move payload pointer to UDP header */
 
-   if (p->tot_len < (IPH_HL(iphdr) * 4 + UDP_HLEN) || pbuf_header(p, -(s16_t)(IPH_HL(iphdr) * 4))) {
 
-  8032774:	f899 1000 	ldrb.w	r1, [r9]
 
-  8032778:	f001 010f 	and.w	r1, r1, #15
 
-  803277c:	1c8a      	adds	r2, r1, #2
 
-  803277e:	ebb3 0f82 	cmp.w	r3, r2, lsl #2
 
-  * @param inp network interface on which the datagram was received.
 
-  *
 
-  */
 
- void
 
- udp_input(struct pbuf *p, struct netif *inp)
 
- {
 
-  8032782:	b085      	sub	sp, #20
 
-  8032784:	4605      	mov	r5, r0
 
-   iphdr = (struct ip_hdr *)p->payload;
 
-   /* Check minimum length (IP header + UDP header)
 
-    * and move payload pointer to UDP header */
 
-   if (p->tot_len < (IPH_HL(iphdr) * 4 + UDP_HLEN) || pbuf_header(p, -(s16_t)(IPH_HL(iphdr) * 4))) {
 
-  8032786:	db05      	blt.n	8032794 <udp_input+0x2c>
 
-  8032788:	0089      	lsls	r1, r1, #2
 
-  803278a:	4249      	negs	r1, r1
 
-  803278c:	f7fd fb13 	bl	802fdb6 <pbuf_header>
 
-  8032790:	4683      	mov	fp, r0
 
-  8032792:	b110      	cbz	r0, 803279a <udp_input+0x32>
 
-     /* drop short packets */
 
-     LWIP_DEBUGF(UDP_DEBUG,
 
-                 ("udp_input: short UDP datagram (%"U16_F" bytes) discarded\n", p->tot_len));
 
-     UDP_STATS_INC(udp.lenerr);
 
-     UDP_STATS_INC(udp.drop);
 
-     snmp_inc_udpinerrors();
 
-  8032794:	f002 fa90 	bl	8034cb8 <snmp_inc_udpinerrors>
 
-  8032798:	e096      	b.n	80328c8 <udp_input+0x160>
 
-   }
 
-   udphdr = (struct udp_hdr *)p->payload;
 
-   /* is broadcast packet ? */
 
-   broadcast = ip_addr_isbroadcast(¤t_iphdr_dest, inp);
 
-  803279a:	f8df a150 	ldr.w	sl, [pc, #336]	; 80328ec <udp_input+0x184>
 
-     snmp_inc_udpinerrors();
 
-     pbuf_free(p);
 
-     goto end;
 
-   }
 
-   udphdr = (struct udp_hdr *)p->payload;
 
-  803279e:	686c      	ldr	r4, [r5, #4]
 
-   /* is broadcast packet ? */
 
-   broadcast = ip_addr_isbroadcast(¤t_iphdr_dest, inp);
 
-  80327a0:	f8da 0000 	ldr.w	r0, [sl]
 
-  80327a4:	4631      	mov	r1, r6
 
-  80327a6:	f000 faed 	bl	8032d84 <ip4_addr_isbroadcast>
 
-  80327aa:	4680      	mov	r8, r0
 
-   LWIP_DEBUGF(UDP_DEBUG, ("udp_input: received datagram of length %"U16_F"\n", p->tot_len));
 
-   /* convert src and dest ports to host byte order */
 
-   src = ntohs(udphdr->src);
 
-  80327ac:	8820      	ldrh	r0, [r4, #0]
 
-  80327ae:	f7fc f9f4 	bl	802eb9a <lwip_ntohs>
 
-  80327b2:	4607      	mov	r7, r0
 
-   dest = ntohs(udphdr->dest);
 
-  80327b4:	8860      	ldrh	r0, [r4, #2]
 
-  80327b6:	f7fc f9f0 	bl	802eb9a <lwip_ntohs>
 
- #if LWIP_DHCP
 
-   pcb = NULL;
 
-   /* when LWIP_DHCP is active, packets to DHCP_CLIENT_PORT may only be processed by
 
-      the dhcp module, no other UDP pcb may use the local UDP port DHCP_CLIENT_PORT */
 
-   if (dest == DHCP_CLIENT_PORT) {
 
-  80327ba:	2844      	cmp	r0, #68	; 0x44
 
-  80327bc:	d10f      	bne.n	80327de <udp_input+0x76>
 
-     /* all packets for DHCP_CLIENT_PORT not coming from DHCP_SERVER_PORT are dropped! */
 
-     if (src == DHCP_SERVER_PORT) {
 
-  80327be:	2f43      	cmp	r7, #67	; 0x43
 
-  80327c0:	d14f      	bne.n	8032862 <udp_input+0xfa>
 
-       if ((inp->dhcp != NULL) && (inp->dhcp->pcb != NULL)) {
 
-  80327c2:	6a33      	ldr	r3, [r6, #32]
 
-  80327c4:	2b00      	cmp	r3, #0
 
-  80327c6:	d04c      	beq.n	8032862 <udp_input+0xfa>
 
-  80327c8:	685c      	ldr	r4, [r3, #4]
 
-  80327ca:	2c00      	cmp	r4, #0
 
-  80327cc:	d049      	beq.n	8032862 <udp_input+0xfa>
 
-         /* accept the packe if 
 
-            (- broadcast or directed to us) -> DHCP is link-layer-addressed, local ip is always ANY!
 
-            - inp->dhcp->pcb->remote == ANY or iphdr->src */
 
-         if ((ip_addr_isany(&inp->dhcp->pcb->remote_ip) ||
 
-  80327ce:	6863      	ldr	r3, [r4, #4]
 
-  80327d0:	2b00      	cmp	r3, #0
 
-  80327d2:	d04e      	beq.n	8032872 <udp_input+0x10a>
 
-            ip_addr_cmp(&(inp->dhcp->pcb->remote_ip), ¤t_iphdr_src))) {
 
-  80327d4:	4a43      	ldr	r2, [pc, #268]	; (80328e4 <udp_input+0x17c>)
 
-     if (src == DHCP_SERVER_PORT) {
 
-       if ((inp->dhcp != NULL) && (inp->dhcp->pcb != NULL)) {
 
-         /* accept the packe if 
 
-            (- broadcast or directed to us) -> DHCP is link-layer-addressed, local ip is always ANY!
 
-            - inp->dhcp->pcb->remote == ANY or iphdr->src */
 
-         if ((ip_addr_isany(&inp->dhcp->pcb->remote_ip) ||
 
-  80327d6:	6812      	ldr	r2, [r2, #0]
 
-  80327d8:	4293      	cmp	r3, r2
 
-  80327da:	d142      	bne.n	8032862 <udp_input+0xfa>
 
-  80327dc:	e049      	b.n	8032872 <udp_input+0x10a>
 
-     uncon_pcb = NULL;
 
-     /* Iterate through the UDP pcb list for a matching pcb.
 
-      * 'Perfect match' pcbs (connected to the remote port & ip address) are
 
-      * preferred. If no perfect match is found, the first unconnected pcb that
 
-      * matches the local port and ip address gets the datagram. */
 
-     for (pcb = udp_pcbs; pcb != NULL; pcb = pcb->next) {
 
-  80327de:	4b42      	ldr	r3, [pc, #264]	; (80328e8 <udp_input+0x180>)
 
-       /* compare PCB local addr+port to UDP destination addr+port */
 
-       if (pcb->local_port == dest) {
 
-         if (
 
-            (!broadcast && ip_addr_isany(&pcb->local_ip)) ||
 
-            ip_addr_cmp(&(pcb->local_ip), ¤t_iphdr_dest) ||
 
-  80327e0:	f8da a000 	ldr.w	sl, [sl]
 
-     uncon_pcb = NULL;
 
-     /* Iterate through the UDP pcb list for a matching pcb.
 
-      * 'Perfect match' pcbs (connected to the remote port & ip address) are
 
-      * preferred. If no perfect match is found, the first unconnected pcb that
 
-      * matches the local port and ip address gets the datagram. */
 
-     for (pcb = udp_pcbs; pcb != NULL; pcb = pcb->next) {
 
-  80327e4:	f8d3 c000 	ldr.w	ip, [r3]
 
-       }
 
-       /* compare PCB remote addr+port to UDP source addr+port */
 
-       if ((local_match != 0) &&
 
-           (pcb->remote_port == src) &&
 
-           (ip_addr_isany(&pcb->remote_ip) ||
 
-            ip_addr_cmp(&(pcb->remote_ip), ¤t_iphdr_src))) {
 
-  80327e8:	4b3e      	ldr	r3, [pc, #248]	; (80328e4 <udp_input+0x17c>)
 
-  80327ea:	681b      	ldr	r3, [r3, #0]
 
-     uncon_pcb = NULL;
 
-     /* Iterate through the UDP pcb list for a matching pcb.
 
-      * 'Perfect match' pcbs (connected to the remote port & ip address) are
 
-      * preferred. If no perfect match is found, the first unconnected pcb that
 
-      * matches the local port and ip address gets the datagram. */
 
-     for (pcb = udp_pcbs; pcb != NULL; pcb = pcb->next) {
 
-  80327ec:	4664      	mov	r4, ip
 
-       }
 
-       /* compare PCB remote addr+port to UDP source addr+port */
 
-       if ((local_match != 0) &&
 
-           (pcb->remote_port == src) &&
 
-           (ip_addr_isany(&pcb->remote_ip) ||
 
-            ip_addr_cmp(&(pcb->remote_ip), ¤t_iphdr_src))) {
 
-  80327ee:	9303      	str	r3, [sp, #12]
 
-       }
 
-     }
 
-   } else
 
- #endif /* LWIP_DHCP */
 
-   {
 
-     prev = NULL;
 
-  80327f0:	4659      	mov	r1, fp
 
-     local_match = 0;
 
-     uncon_pcb = NULL;
 
-  80327f2:	465b      	mov	r3, fp
 
-     /* Iterate through the UDP pcb list for a matching pcb.
 
-      * 'Perfect match' pcbs (connected to the remote port & ip address) are
 
-      * preferred. If no perfect match is found, the first unconnected pcb that
 
-      * matches the local port and ip address gets the datagram. */
 
-     for (pcb = udp_pcbs; pcb != NULL; pcb = pcb->next) {
 
-  80327f4:	e032      	b.n	803285c <udp_input+0xf4>
 
-                    ip4_addr3_16(&pcb->local_ip), ip4_addr4_16(&pcb->local_ip), pcb->local_port,
 
-                    ip4_addr1_16(&pcb->remote_ip), ip4_addr2_16(&pcb->remote_ip),
 
-                    ip4_addr3_16(&pcb->remote_ip), ip4_addr4_16(&pcb->remote_ip), pcb->remote_port));
 
-       /* compare PCB local addr+port to UDP destination addr+port */
 
-       if (pcb->local_port == dest) {
 
-  80327f6:	8a62      	ldrh	r2, [r4, #18]
 
-  80327f8:	4282      	cmp	r2, r0
 
-  80327fa:	d12d      	bne.n	8032858 <udp_input+0xf0>
 
-  80327fc:	6822      	ldr	r2, [r4, #0]
 
-         if (
 
-  80327fe:	f1b8 0f00 	cmp.w	r8, #0
 
-  8032802:	d100      	bne.n	8032806 <udp_input+0x9e>
 
-            (!broadcast && ip_addr_isany(&pcb->local_ip)) ||
 
-  8032804:	b15a      	cbz	r2, 803281e <udp_input+0xb6>
 
-  8032806:	4552      	cmp	r2, sl
 
-  8032808:	d009      	beq.n	803281e <udp_input+0xb6>
 
-            ip_addr_cmp(&(pcb->local_ip), ¤t_iphdr_dest) ||
 
-  803280a:	f1b8 0f00 	cmp.w	r8, #0
 
-  803280e:	d023      	beq.n	8032858 <udp_input+0xf0>
 
-             (broadcast && ip_get_option(pcb, SOF_BROADCAST) &&
 
-              (ip_addr_isany(&pcb->local_ip) ||
 
-               ip_addr_netcmp(&pcb->local_ip, ip_current_dest_addr(), &inp->netmask)))) {
 
- #else /* IP_SOF_BROADCAST_RECV */
 
-             (broadcast &&
 
-              (ip_addr_isany(&pcb->local_ip) ||
 
-  8032810:	b12a      	cbz	r2, 803281e <udp_input+0xb6>
 
-               ip_addr_netcmp(&pcb->local_ip, ip_current_dest_addr(), &inp->netmask)))) {
 
-  8032812:	ea8a 0b02 	eor.w	fp, sl, r2
 
-  8032816:	68b2      	ldr	r2, [r6, #8]
 
-             (broadcast && ip_get_option(pcb, SOF_BROADCAST) &&
 
-              (ip_addr_isany(&pcb->local_ip) ||
 
-               ip_addr_netcmp(&pcb->local_ip, ip_current_dest_addr(), &inp->netmask)))) {
 
- #else /* IP_SOF_BROADCAST_RECV */
 
-             (broadcast &&
 
-              (ip_addr_isany(&pcb->local_ip) ||
 
-  8032818:	ea1b 0f02 	tst.w	fp, r2
 
-  803281c:	d11c      	bne.n	8032858 <udp_input+0xf0>
 
-               ip_addr_netcmp(&pcb->local_ip, ip_current_dest_addr(), &inp->netmask)))) {
 
- #endif /* IP_SOF_BROADCAST_RECV */ 
 
-           local_match = 1;
 
-           if ((uncon_pcb == NULL) && 
 
-  803281e:	2b00      	cmp	r3, #0
 
-  8032820:	d158      	bne.n	80328d4 <udp_input+0x16c>
 
-               ((pcb->flags & UDP_FLAGS_CONNECTED) == 0)) {
 
-  8032822:	7c23      	ldrb	r3, [r4, #16]
 
-             (broadcast &&
 
-              (ip_addr_isany(&pcb->local_ip) ||
 
-               ip_addr_netcmp(&pcb->local_ip, ip_current_dest_addr(), &inp->netmask)))) {
 
- #endif /* IP_SOF_BROADCAST_RECV */ 
 
-           local_match = 1;
 
-           if ((uncon_pcb == NULL) && 
 
-  8032824:	f003 0304 	and.w	r3, r3, #4
 
-  8032828:	b2db      	uxtb	r3, r3
 
-  803282a:	2b00      	cmp	r3, #0
 
-  803282c:	bf0c      	ite	eq
 
-  803282e:	4623      	moveq	r3, r4
 
-  8032830:	2300      	movne	r3, #0
 
-  8032832:	e04f      	b.n	80328d4 <udp_input+0x16c>
 
-         }
 
-       }
 
-       /* compare PCB remote addr+port to UDP source addr+port */
 
-       if ((local_match != 0) &&
 
-           (pcb->remote_port == src) &&
 
-           (ip_addr_isany(&pcb->remote_ip) ||
 
-  8032834:	f8d4 b004 	ldr.w	fp, [r4, #4]
 
-  8032838:	f1bb 0f00 	cmp.w	fp, #0
 
-  803283c:	d101      	bne.n	8032842 <udp_input+0xda>
 
-            ip_addr_cmp(&(pcb->remote_ip), ¤t_iphdr_src))) {
 
-         /* the first fully matching PCB */
 
-         if (prev != NULL) {
 
-  803283e:	b921      	cbnz	r1, 803284a <udp_input+0xe2>
 
-  8032840:	e017      	b.n	8032872 <udp_input+0x10a>
 
-         }
 
-       }
 
-       /* compare PCB remote addr+port to UDP source addr+port */
 
-       if ((local_match != 0) &&
 
-           (pcb->remote_port == src) &&
 
-           (ip_addr_isany(&pcb->remote_ip) ||
 
-  8032842:	9a03      	ldr	r2, [sp, #12]
 
-  8032844:	4593      	cmp	fp, r2
 
-  8032846:	d107      	bne.n	8032858 <udp_input+0xf0>
 
-  8032848:	e7f9      	b.n	803283e <udp_input+0xd6>
 
-            ip_addr_cmp(&(pcb->remote_ip), ¤t_iphdr_src))) {
 
-         /* the first fully matching PCB */
 
-         if (prev != NULL) {
 
-           /* move the pcb to the front of udp_pcbs so that is
 
-              found faster next time */
 
-           prev->next = pcb->next;
 
-  803284a:	68e3      	ldr	r3, [r4, #12]
 
-  803284c:	60cb      	str	r3, [r1, #12]
 
-           pcb->next = udp_pcbs;
 
-           udp_pcbs = pcb;
 
-  803284e:	4b26      	ldr	r3, [pc, #152]	; (80328e8 <udp_input+0x180>)
 
-         /* the first fully matching PCB */
 
-         if (prev != NULL) {
 
-           /* move the pcb to the front of udp_pcbs so that is
 
-              found faster next time */
 
-           prev->next = pcb->next;
 
-           pcb->next = udp_pcbs;
 
-  8032850:	f8c4 c00c 	str.w	ip, [r4, #12]
 
-           udp_pcbs = pcb;
 
-  8032854:	601c      	str	r4, [r3, #0]
 
-  8032856:	e00c      	b.n	8032872 <udp_input+0x10a>
 
-  8032858:	4621      	mov	r1, r4
 
-     uncon_pcb = NULL;
 
-     /* Iterate through the UDP pcb list for a matching pcb.
 
-      * 'Perfect match' pcbs (connected to the remote port & ip address) are
 
-      * preferred. If no perfect match is found, the first unconnected pcb that
 
-      * matches the local port and ip address gets the datagram. */
 
-     for (pcb = udp_pcbs; pcb != NULL; pcb = pcb->next) {
 
-  803285a:	68e4      	ldr	r4, [r4, #12]
 
-  803285c:	2c00      	cmp	r4, #0
 
-  803285e:	d1ca      	bne.n	80327f6 <udp_input+0x8e>
 
-       pcb = uncon_pcb;
 
-     }
 
-   }
 
-   /* Check checksum if this is a match or if it was directed at us. */
 
-   if (pcb != NULL || ip_addr_cmp(&inp->ip_addr, ¤t_iphdr_dest)) {
 
-  8032860:	b933      	cbnz	r3, 8032870 <udp_input+0x108>
 
-  8032862:	4b22      	ldr	r3, [pc, #136]	; (80328ec <udp_input+0x184>)
 
-  8032864:	6872      	ldr	r2, [r6, #4]
 
-  8032866:	681b      	ldr	r3, [r3, #0]
 
-  8032868:	429a      	cmp	r2, r3
 
-  803286a:	d12d      	bne.n	80328c8 <udp_input+0x160>
 
-  803286c:	2400      	movs	r4, #0
 
-  803286e:	e000      	b.n	8032872 <udp_input+0x10a>
 
-  8032870:	461c      	mov	r4, r3
 
-           goto end;
 
-         }
 
-       }
 
- #endif /* CHECKSUM_CHECK_UDP */
 
-     }
 
-     if(pbuf_header(p, -UDP_HLEN)) {
 
-  8032872:	4628      	mov	r0, r5
 
-  8032874:	f06f 0107 	mvn.w	r1, #7
 
-  8032878:	f7fd fa9d 	bl	802fdb6 <pbuf_header>
 
-  803287c:	2800      	cmp	r0, #0
 
-  803287e:	d189      	bne.n	8032794 <udp_input+0x2c>
 
-       UDP_STATS_INC(udp.drop);
 
-       snmp_inc_udpinerrors();
 
-       pbuf_free(p);
 
-       goto end;
 
-     }
 
-     if (pcb != NULL) {
 
-  8032880:	b154      	cbz	r4, 8032898 <udp_input+0x130>
 
-       snmp_inc_udpindatagrams();
 
-  8032882:	f002 fa09 	bl	8034c98 <snmp_inc_udpindatagrams>
 
-           pbuf_header(p, -(s16_t)((IPH_HL(iphdr) * 4) + UDP_HLEN));
 
-         }
 
-       }
 
- #endif /* SO_REUSE && SO_REUSE_RXTOALL */
 
-       /* callback */
 
-       if (pcb->recv != NULL) {
 
-  8032886:	69a6      	ldr	r6, [r4, #24]
 
-  8032888:	b1f6      	cbz	r6, 80328c8 <udp_input+0x160>
 
-         /* now the recv function is responsible for freeing p */
 
-         pcb->recv(pcb->recv_arg, pcb, p, ip_current_src_addr(), src);
 
-  803288a:	9700      	str	r7, [sp, #0]
 
-  803288c:	69e0      	ldr	r0, [r4, #28]
 
-  803288e:	4b15      	ldr	r3, [pc, #84]	; (80328e4 <udp_input+0x17c>)
 
-  8032890:	4621      	mov	r1, r4
 
-  8032892:	462a      	mov	r2, r5
 
-  8032894:	47b0      	blx	r6
 
-  8032896:	e021      	b.n	80328dc <udp_input+0x174>
 
-       LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE, ("udp_input: not for us.\n"));
 
- #if LWIP_ICMP
 
-       /* No match was found, send ICMP destination port unreachable unless
 
-          destination address was broadcast/multicast. */
 
-       if (!broadcast &&
 
-  8032898:	f1b8 0f00 	cmp.w	r8, #0
 
-  803289c:	d112      	bne.n	80328c4 <udp_input+0x15c>
 
-           !ip_addr_ismulticast(¤t_iphdr_dest)) {
 
-  803289e:	4b13      	ldr	r3, [pc, #76]	; (80328ec <udp_input+0x184>)
 
-  80328a0:	681b      	ldr	r3, [r3, #0]
 
-  80328a2:	f003 03f0 	and.w	r3, r3, #240	; 0xf0
 
-       LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE, ("udp_input: not for us.\n"));
 
- #if LWIP_ICMP
 
-       /* No match was found, send ICMP destination port unreachable unless
 
-          destination address was broadcast/multicast. */
 
-       if (!broadcast &&
 
-  80328a6:	2be0      	cmp	r3, #224	; 0xe0
 
-  80328a8:	d00c      	beq.n	80328c4 <udp_input+0x15c>
 
-           !ip_addr_ismulticast(¤t_iphdr_dest)) {
 
-         /* move payload pointer back to ip header */
 
-         pbuf_header(p, (IPH_HL(iphdr) * 4) + UDP_HLEN);
 
-  80328aa:	f899 1000 	ldrb.w	r1, [r9]
 
-  80328ae:	f001 010f 	and.w	r1, r1, #15
 
-  80328b2:	3102      	adds	r1, #2
 
-  80328b4:	0089      	lsls	r1, r1, #2
 
-  80328b6:	4628      	mov	r0, r5
 
-  80328b8:	f7fd fa7d 	bl	802fdb6 <pbuf_header>
 
-         LWIP_ASSERT("p->payload == iphdr", (p->payload == iphdr));
 
-         icmp_dest_unreach(p, ICMP_DUR_PORT);
 
-  80328bc:	4628      	mov	r0, r5
 
-  80328be:	2103      	movs	r1, #3
 
-  80328c0:	f000 f9d2 	bl	8032c68 <icmp_dest_unreach>
 
-       }
 
- #endif /* LWIP_ICMP */
 
-       UDP_STATS_INC(udp.proterr);
 
-       UDP_STATS_INC(udp.drop);
 
-       snmp_inc_udpnoports();
 
-  80328c4:	f002 f9f0 	bl	8034ca8 <snmp_inc_udpnoports>
 
-       pbuf_free(p);
 
-  80328c8:	4628      	mov	r0, r5
 
-   } else {
 
-     pbuf_free(p);
 
-   }
 
- end:
 
-   PERF_STOP("udp_input");
 
- }
 
-  80328ca:	b005      	add	sp, #20
 
-  80328cc:	e8bd 4ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-       }
 
- #endif /* LWIP_ICMP */
 
-       UDP_STATS_INC(udp.proterr);
 
-       UDP_STATS_INC(udp.drop);
 
-       snmp_inc_udpnoports();
 
-       pbuf_free(p);
 
-  80328d0:	f7fd ba9c 	b.w	802fe0c <pbuf_free>
 
-             uncon_pcb = pcb;
 
-           }
 
-         }
 
-       }
 
-       /* compare PCB remote addr+port to UDP source addr+port */
 
-       if ((local_match != 0) &&
 
-  80328d4:	8aa2      	ldrh	r2, [r4, #20]
 
-  80328d6:	42ba      	cmp	r2, r7
 
-  80328d8:	d1be      	bne.n	8032858 <udp_input+0xf0>
 
-  80328da:	e7ab      	b.n	8032834 <udp_input+0xcc>
 
-   } else {
 
-     pbuf_free(p);
 
-   }
 
- end:
 
-   PERF_STOP("udp_input");
 
- }
 
-  80328dc:	b005      	add	sp, #20
 
-  80328de:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
-  80328e2:	bf00      	nop
 
-  80328e4:	2000f6dc 	.word	0x2000f6dc
 
-  80328e8:	2000f6d8 	.word	0x2000f6d8
 
-  80328ec:	2000f6e4 	.word	0x2000f6e4
 
- 080328f0 <udp_bind>:
 
-  *
 
-  * @see udp_disconnect()
 
-  */
 
- err_t
 
- udp_bind(struct udp_pcb *pcb, ip_addr_t *ipaddr, u16_t port)
 
- {
 
-  80328f0:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
-   ip_addr_debug_print(UDP_DEBUG, ipaddr);
 
-   LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE, (", port = %"U16_F")\n", port));
 
-   rebind = 0;
 
-   /* Check for double bind and rebind of the same pcb */
 
-   for (ipcb = udp_pcbs; ipcb != NULL; ipcb = ipcb->next) {
 
-  80328f2:	4b25      	ldr	r3, [pc, #148]	; (8032988 <udp_bind+0x98>)
 
-  *
 
-  * @see udp_disconnect()
 
-  */
 
- err_t
 
- udp_bind(struct udp_pcb *pcb, ip_addr_t *ipaddr, u16_t port)
 
- {
 
-  80328f4:	4604      	mov	r4, r0
 
-   ip_addr_debug_print(UDP_DEBUG, ipaddr);
 
-   LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE, (", port = %"U16_F")\n", port));
 
-   rebind = 0;
 
-   /* Check for double bind and rebind of the same pcb */
 
-   for (ipcb = udp_pcbs; ipcb != NULL; ipcb = ipcb->next) {
 
-  80328f6:	6818      	ldr	r0, [r3, #0]
 
-   LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE, ("udp_bind(ipaddr = "));
 
-   ip_addr_debug_print(UDP_DEBUG, ipaddr);
 
-   LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE, (", port = %"U16_F")\n", port));
 
-   rebind = 0;
 
-  80328f8:	2500      	movs	r5, #0
 
-   /* Check for double bind and rebind of the same pcb */
 
-   for (ipcb = udp_pcbs; ipcb != NULL; ipcb = ipcb->next) {
 
-  80328fa:	4603      	mov	r3, r0
 
-  80328fc:	e012      	b.n	8032924 <udp_bind+0x34>
 
-     /* is this UDP PCB already on active list? */
 
-     if (pcb == ipcb) {
 
-  80328fe:	429c      	cmp	r4, r3
 
-  8032900:	d00e      	beq.n	8032920 <udp_bind+0x30>
 
-              !ip_get_option(ipcb, SOF_REUSEADDR)) {
 
- #else /* SO_REUSE */
 
-     /* port matches that of PCB in list and REUSEADDR not set -> reject */
 
-     else {
 
- #endif /* SO_REUSE */
 
-       if ((ipcb->local_port == port) &&
 
-  8032902:	8a5e      	ldrh	r6, [r3, #18]
 
-  8032904:	4296      	cmp	r6, r2
 
-  8032906:	d10c      	bne.n	8032922 <udp_bind+0x32>
 
-           /* IP address matches, or one is IP_ADDR_ANY? */
 
-           (ip_addr_isany(&(ipcb->local_ip)) ||
 
-  8032908:	681f      	ldr	r7, [r3, #0]
 
-  803290a:	b90f      	cbnz	r7, 8032910 <udp_bind+0x20>
 
-            ip_addr_isany(ipaddr) ||
 
-            ip_addr_cmp(&(ipcb->local_ip), ipaddr))) {
 
-         /* other PCB already binds to this local IP and port */
 
-         LWIP_DEBUGF(UDP_DEBUG,
 
-                     ("udp_bind: local port %"U16_F" already bound by another pcb\n", port));
 
-         return ERR_USE;
 
-  803290c:	20f8      	movs	r0, #248	; 0xf8
 
-  803290e:	e039      	b.n	8032984 <udp_bind+0x94>
 
-     /* port matches that of PCB in list and REUSEADDR not set -> reject */
 
-     else {
 
- #endif /* SO_REUSE */
 
-       if ((ipcb->local_port == port) &&
 
-           /* IP address matches, or one is IP_ADDR_ANY? */
 
-           (ip_addr_isany(&(ipcb->local_ip)) ||
 
-  8032910:	2900      	cmp	r1, #0
 
-  8032912:	d0fb      	beq.n	803290c <udp_bind+0x1c>
 
-            ip_addr_isany(ipaddr) ||
 
-  8032914:	680e      	ldr	r6, [r1, #0]
 
-  8032916:	2e00      	cmp	r6, #0
 
-  8032918:	d0f8      	beq.n	803290c <udp_bind+0x1c>
 
-  803291a:	42b7      	cmp	r7, r6
 
-  803291c:	d101      	bne.n	8032922 <udp_bind+0x32>
 
-  803291e:	e7f5      	b.n	803290c <udp_bind+0x1c>
 
-     /* is this UDP PCB already on active list? */
 
-     if (pcb == ipcb) {
 
-       /* pcb may occur at most once in active list */
 
-       LWIP_ASSERT("rebind == 0", rebind == 0);
 
-       /* pcb already in list, just rebind */
 
-       rebind = 1;
 
-  8032920:	2501      	movs	r5, #1
 
-   ip_addr_debug_print(UDP_DEBUG, ipaddr);
 
-   LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE, (", port = %"U16_F")\n", port));
 
-   rebind = 0;
 
-   /* Check for double bind and rebind of the same pcb */
 
-   for (ipcb = udp_pcbs; ipcb != NULL; ipcb = ipcb->next) {
 
-  8032922:	68db      	ldr	r3, [r3, #12]
 
-  8032924:	2b00      	cmp	r3, #0
 
-  8032926:	d1ea      	bne.n	80328fe <udp_bind+0xe>
 
-         return ERR_USE;
 
-       }
 
-     }
 
-   }
 
-   ip_addr_set(&pcb->local_ip, ipaddr);
 
-  8032928:	b101      	cbz	r1, 803292c <udp_bind+0x3c>
 
-  803292a:	6809      	ldr	r1, [r1, #0]
 
-  803292c:	6021      	str	r1, [r4, #0]
 
-   /* no port specified? */
 
-   if (port == 0) {
 
-  803292e:	b9fa      	cbnz	r2, 8032970 <udp_bind+0x80>
 
-  8032930:	4b16      	ldr	r3, [pc, #88]	; (803298c <udp_bind+0x9c>)
 
-  8032932:	881a      	ldrh	r2, [r3, #0]
 
-  8032934:	f44f 4180 	mov.w	r1, #16384	; 0x4000
 
- {
 
-   u16_t n = 0;
 
-   struct udp_pcb *pcb;
 
-   
 
- again:
 
-   if (udp_port++ == UDP_LOCAL_PORT_RANGE_END) {
 
-  8032938:	f64f 76ff 	movw	r6, #65535	; 0xffff
 
-  803293c:	42b2      	cmp	r2, r6
 
-  803293e:	d002      	beq.n	8032946 <udp_bind+0x56>
 
-  8032940:	3201      	adds	r2, #1
 
-  8032942:	b292      	uxth	r2, r2
 
-  8032944:	e001      	b.n	803294a <udp_bind+0x5a>
 
-     udp_port = UDP_LOCAL_PORT_RANGE_START;
 
-  8032946:	f44f 4240 	mov.w	r2, #49152	; 0xc000
 
-   }
 
-   /* Check all PCBs. */
 
-   for(pcb = udp_pcbs; pcb != NULL; pcb = pcb->next) {
 
-  803294a:	4603      	mov	r3, r0
 
-  803294c:	e00a      	b.n	8032964 <udp_bind+0x74>
 
-     if (pcb->local_port == udp_port) {
 
-  803294e:	8a5f      	ldrh	r7, [r3, #18]
 
-  8032950:	4297      	cmp	r7, r2
 
-  8032952:	d106      	bne.n	8032962 <udp_bind+0x72>
 
-  8032954:	3901      	subs	r1, #1
 
-  8032956:	b289      	uxth	r1, r1
 
-       if (++n > (UDP_LOCAL_PORT_RANGE_END - UDP_LOCAL_PORT_RANGE_START)) {
 
-  8032958:	2900      	cmp	r1, #0
 
-  803295a:	d1ef      	bne.n	803293c <udp_bind+0x4c>
 
-  803295c:	4b0b      	ldr	r3, [pc, #44]	; (803298c <udp_bind+0x9c>)
 
-  803295e:	801a      	strh	r2, [r3, #0]
 
-  8032960:	e7d4      	b.n	803290c <udp_bind+0x1c>
 
- again:
 
-   if (udp_port++ == UDP_LOCAL_PORT_RANGE_END) {
 
-     udp_port = UDP_LOCAL_PORT_RANGE_START;
 
-   }
 
-   /* Check all PCBs. */
 
-   for(pcb = udp_pcbs; pcb != NULL; pcb = pcb->next) {
 
-  8032962:	68db      	ldr	r3, [r3, #12]
 
-  8032964:	2b00      	cmp	r3, #0
 
-  8032966:	d1f2      	bne.n	803294e <udp_bind+0x5e>
 
-  8032968:	4b08      	ldr	r3, [pc, #32]	; (803298c <udp_bind+0x9c>)
 
-  803296a:	801a      	strh	r2, [r3, #0]
 
-   ip_addr_set(&pcb->local_ip, ipaddr);
 
-   /* no port specified? */
 
-   if (port == 0) {
 
-     port = udp_new_port();
 
-     if (port == 0) {
 
-  803296c:	2a00      	cmp	r2, #0
 
-  803296e:	d0cd      	beq.n	803290c <udp_bind+0x1c>
 
-       /* no more ports available in local range */
 
-       LWIP_DEBUGF(UDP_DEBUG, ("udp_bind: out of free UDP ports\n"));
 
-       return ERR_USE;
 
-     }
 
-   }
 
-   pcb->local_port = port;
 
-  8032970:	8262      	strh	r2, [r4, #18]
 
-   snmp_insert_udpidx_tree(pcb);
 
-  8032972:	4620      	mov	r0, r4
 
-  8032974:	f002 f9b0 	bl	8034cd8 <snmp_insert_udpidx_tree>
 
-   /* pcb not active yet? */
 
-   if (rebind == 0) {
 
-  8032978:	b91d      	cbnz	r5, 8032982 <udp_bind+0x92>
 
-     /* place the PCB on the active list if not already there */
 
-     pcb->next = udp_pcbs;
 
-  803297a:	4b03      	ldr	r3, [pc, #12]	; (8032988 <udp_bind+0x98>)
 
-  803297c:	681a      	ldr	r2, [r3, #0]
 
-     udp_pcbs = pcb;
 
-  803297e:	601c      	str	r4, [r3, #0]
 
-   pcb->local_port = port;
 
-   snmp_insert_udpidx_tree(pcb);
 
-   /* pcb not active yet? */
 
-   if (rebind == 0) {
 
-     /* place the PCB on the active list if not already there */
 
-     pcb->next = udp_pcbs;
 
-  8032980:	60e2      	str	r2, [r4, #12]
 
-   LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE,
 
-               ("udp_bind: bound to %"U16_F".%"U16_F".%"U16_F".%"U16_F", port %"U16_F"\n",
 
-                ip4_addr1_16(&pcb->local_ip), ip4_addr2_16(&pcb->local_ip),
 
-                ip4_addr3_16(&pcb->local_ip), ip4_addr4_16(&pcb->local_ip),
 
-                pcb->local_port));
 
-   return ERR_OK;
 
-  8032982:	2000      	movs	r0, #0
 
- }
 
-  8032984:	b240      	sxtb	r0, r0
 
-  8032986:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 
-  8032988:	2000f6d8 	.word	0x2000f6d8
 
-  803298c:	2000071e 	.word	0x2000071e
 
- 08032990 <udp_sendto_if>:
 
-  * @see udp_disconnect() udp_send()
 
-  */
 
- err_t
 
- udp_sendto_if(struct udp_pcb *pcb, struct pbuf *p,
 
-   ip_addr_t *dst_ip, u16_t dst_port, struct netif *netif)
 
- {
 
-  8032990:	e92d 47ff 	stmdb	sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, lr}
 
-  8032994:	4692      	mov	sl, r2
 
-     return ERR_VAL;
 
-   }
 
- #endif /* IP_SOF_BROADCAST */
 
-   /* if the PCB is not yet bound to a port, bind it here */
 
-   if (pcb->local_port == 0) {
 
-  8032996:	8a42      	ldrh	r2, [r0, #18]
 
-  * @see udp_disconnect() udp_send()
 
-  */
 
- err_t
 
- udp_sendto_if(struct udp_pcb *pcb, struct pbuf *p,
 
-   ip_addr_t *dst_ip, u16_t dst_port, struct netif *netif)
 
- {
 
-  8032998:	f8dd 8030 	ldr.w	r8, [sp, #48]	; 0x30
 
-  803299c:	4605      	mov	r5, r0
 
-  803299e:	460e      	mov	r6, r1
 
-  80329a0:	4699      	mov	r9, r3
 
-     return ERR_VAL;
 
-   }
 
- #endif /* IP_SOF_BROADCAST */
 
-   /* if the PCB is not yet bound to a port, bind it here */
 
-   if (pcb->local_port == 0) {
 
-  80329a2:	b132      	cbz	r2, 80329b2 <udp_sendto_if+0x22>
 
-       return err;
 
-     }
 
-   }
 
-   /* not enough space to add an UDP header to first pbuf in given p chain? */
 
-   if (pbuf_header(p, UDP_HLEN)) {
 
-  80329a4:	4630      	mov	r0, r6
 
-  80329a6:	2108      	movs	r1, #8
 
-  80329a8:	f7fd fa05 	bl	802fdb6 <pbuf_header>
 
-  80329ac:	b940      	cbnz	r0, 80329c0 <udp_sendto_if+0x30>
 
-  80329ae:	4634      	mov	r4, r6
 
-  80329b0:	e013      	b.n	80329da <udp_sendto_if+0x4a>
 
- #endif /* IP_SOF_BROADCAST */
 
-   /* if the PCB is not yet bound to a port, bind it here */
 
-   if (pcb->local_port == 0) {
 
-     LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE, ("udp_send: not yet bound to a port, binding now\n"));
 
-     err = udp_bind(pcb, &pcb->local_ip, pcb->local_port);
 
-  80329b2:	4601      	mov	r1, r0
 
-  80329b4:	f7ff ff9c 	bl	80328f0 <udp_bind>
 
-     if (err != ERR_OK) {
 
-  80329b8:	4607      	mov	r7, r0
 
-  80329ba:	2800      	cmp	r0, #0
 
-  80329bc:	d0f2      	beq.n	80329a4 <udp_sendto_if+0x14>
 
-  80329be:	e044      	b.n	8032a4a <udp_sendto_if+0xba>
 
-   }
 
-   /* not enough space to add an UDP header to first pbuf in given p chain? */
 
-   if (pbuf_header(p, UDP_HLEN)) {
 
-     /* allocate header in a separate new pbuf */
 
-     q = pbuf_alloc(PBUF_IP, UDP_HLEN, PBUF_RAM);
 
-  80329c0:	2001      	movs	r0, #1
 
-  80329c2:	2108      	movs	r1, #8
 
-  80329c4:	2200      	movs	r2, #0
 
-  80329c6:	f7fd fa6e 	bl	802fea6 <pbuf_alloc>
 
-     /* new header pbuf could not be allocated? */
 
-     if (q == NULL) {
 
-  80329ca:	4604      	mov	r4, r0
 
-  80329cc:	2800      	cmp	r0, #0
 
-  80329ce:	d039      	beq.n	8032a44 <udp_sendto_if+0xb4>
 
-       LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, ("udp_send: could not allocate header\n"));
 
-       return ERR_MEM;
 
-     }
 
-     if (p->tot_len != 0) {
 
-  80329d0:	8933      	ldrh	r3, [r6, #8]
 
-  80329d2:	b113      	cbz	r3, 80329da <udp_sendto_if+0x4a>
 
-       /* chain header q in front of given pbuf p (only if p contains data) */
 
-       pbuf_chain(q, p);
 
-  80329d4:	4631      	mov	r1, r6
 
-  80329d6:	f7fd fb14 	bl	8030002 <pbuf_chain>
 
-   }
 
-   LWIP_ASSERT("check that first pbuf can hold struct udp_hdr",
 
-               (q->len >= sizeof(struct udp_hdr)));
 
-   /* q now represents the packet to be sent */
 
-   udphdr = (struct udp_hdr *)q->payload;
 
-   udphdr->src = htons(pcb->local_port);
 
-  80329da:	8a68      	ldrh	r0, [r5, #18]
 
-     LWIP_DEBUGF(UDP_DEBUG, ("udp_send: added header in given pbuf %p\n", (void *)p));
 
-   }
 
-   LWIP_ASSERT("check that first pbuf can hold struct udp_hdr",
 
-               (q->len >= sizeof(struct udp_hdr)));
 
-   /* q now represents the packet to be sent */
 
-   udphdr = (struct udp_hdr *)q->payload;
 
-  80329dc:	6867      	ldr	r7, [r4, #4]
 
-   udphdr->src = htons(pcb->local_port);
 
-  80329de:	f7fc f8d7 	bl	802eb90 <lwip_htons>
 
-  80329e2:	8038      	strh	r0, [r7, #0]
 
-   udphdr->dest = htons(dst_port);
 
-  80329e4:	4648      	mov	r0, r9
 
-  80329e6:	f7fc f8d3 	bl	802eb90 <lwip_htons>
 
-   /* in UDP, 0 checksum means 'no checksum' */
 
-   udphdr->chksum = 0x0000; 
 
-  80329ea:	2300      	movs	r3, #0
 
-   LWIP_ASSERT("check that first pbuf can hold struct udp_hdr",
 
-               (q->len >= sizeof(struct udp_hdr)));
 
-   /* q now represents the packet to be sent */
 
-   udphdr = (struct udp_hdr *)q->payload;
 
-   udphdr->src = htons(pcb->local_port);
 
-   udphdr->dest = htons(dst_port);
 
-  80329ec:	8078      	strh	r0, [r7, #2]
 
-   /* in UDP, 0 checksum means 'no checksum' */
 
-   udphdr->chksum = 0x0000; 
 
-  80329ee:	71bb      	strb	r3, [r7, #6]
 
-  80329f0:	71fb      	strb	r3, [r7, #7]
 
-   }
 
- #endif /* LWIP_IGMP */
 
-   /* PCB local address is IP_ANY_ADDR? */
 
-   if (ip_addr_isany(&pcb->local_ip)) {
 
-  80329f2:	682b      	ldr	r3, [r5, #0]
 
-  80329f4:	b913      	cbnz	r3, 80329fc <udp_sendto_if+0x6c>
 
-     /* use outgoing network interface IP address as source address */
 
-     src_ip = &(netif->ip_addr);
 
-  80329f6:	f108 0904 	add.w	r9, r8, #4
 
-  80329fa:	e00a      	b.n	8032a12 <udp_sendto_if+0x82>
 
-   } else {
 
-     /* check if UDP PCB local IP address is correct
 
-      * this could be an old address if netif->ip_addr has changed */
 
-     if (!ip_addr_cmp(&(pcb->local_ip), &(netif->ip_addr))) {
 
-  80329fc:	f8d8 2004 	ldr.w	r2, [r8, #4]
 
-  8032a00:	4293      	cmp	r3, r2
 
-  8032a02:	d005      	beq.n	8032a10 <udp_sendto_if+0x80>
 
-       /* local_ip doesn't match, drop the packet */
 
-       if (q != p) {
 
-  8032a04:	42b4      	cmp	r4, r6
 
-  8032a06:	d01f      	beq.n	8032a48 <udp_sendto_if+0xb8>
 
-         /* free the header pbuf */
 
-         pbuf_free(q);
 
-  8032a08:	4620      	mov	r0, r4
 
-  8032a0a:	f7fd f9ff 	bl	802fe0c <pbuf_free>
 
-  8032a0e:	e01b      	b.n	8032a48 <udp_sendto_if+0xb8>
 
-   }
 
- #endif /* LWIP_IGMP */
 
-   /* PCB local address is IP_ANY_ADDR? */
 
-   if (ip_addr_isany(&pcb->local_ip)) {
 
-  8032a10:	46a9      	mov	r9, r5
 
-     NETIF_SET_HWADDRHINT(netif, NULL);
 
-   } else
 
- #endif /* LWIP_UDPLITE */
 
-   {      /* UDP */
 
-     LWIP_DEBUGF(UDP_DEBUG, ("udp_send: UDP packet length %"U16_F"\n", q->tot_len));
 
-     udphdr->len = htons(q->tot_len);
 
-  8032a12:	8920      	ldrh	r0, [r4, #8]
 
-  8032a14:	f7fc f8bc 	bl	802eb90 <lwip_htons>
 
-  8032a18:	80b8      	strh	r0, [r7, #4]
 
- #endif /* CHECKSUM_GEN_UDP */
 
-     LWIP_DEBUGF(UDP_DEBUG, ("udp_send: UDP checksum 0x%04"X16_F"\n", udphdr->chksum));
 
-     LWIP_DEBUGF(UDP_DEBUG, ("udp_send: ip_output_if (,,,,IP_PROTO_UDP,)\n"));
 
-     /* output to IP */
 
-     NETIF_SET_HWADDRHINT(netif, &pcb->addr_hint);
 
-     err = ip_output_if(q, src_ip, dst_ip, pcb->ttl, pcb->tos, IP_PROTO_UDP, netif);
 
-  8032a1a:	7a6a      	ldrb	r2, [r5, #9]
 
-  8032a1c:	7aab      	ldrb	r3, [r5, #10]
 
-  8032a1e:	9200      	str	r2, [sp, #0]
 
-  8032a20:	2211      	movs	r2, #17
 
-  8032a22:	9201      	str	r2, [sp, #4]
 
-  8032a24:	4649      	mov	r1, r9
 
-  8032a26:	4652      	mov	r2, sl
 
-  8032a28:	f8cd 8008 	str.w	r8, [sp, #8]
 
-  8032a2c:	4620      	mov	r0, r4
 
-  8032a2e:	f000 fb9d 	bl	803316c <ip_output_if>
 
-  8032a32:	4607      	mov	r7, r0
 
-     NETIF_SET_HWADDRHINT(netif, NULL);
 
-   }
 
-   /* TODO: must this be increased even if error occured? */
 
-   snmp_inc_udpoutdatagrams();
 
-  8032a34:	f002 f948 	bl	8034cc8 <snmp_inc_udpoutdatagrams>
 
-   /* did we chain a separate header pbuf earlier? */
 
-   if (q != p) {
 
-  8032a38:	42b4      	cmp	r4, r6
 
-  8032a3a:	d006      	beq.n	8032a4a <udp_sendto_if+0xba>
 
-     /* free the header pbuf */
 
-     pbuf_free(q);
 
-  8032a3c:	4620      	mov	r0, r4
 
-  8032a3e:	f7fd f9e5 	bl	802fe0c <pbuf_free>
 
-  8032a42:	e002      	b.n	8032a4a <udp_sendto_if+0xba>
 
-     /* allocate header in a separate new pbuf */
 
-     q = pbuf_alloc(PBUF_IP, UDP_HLEN, PBUF_RAM);
 
-     /* new header pbuf could not be allocated? */
 
-     if (q == NULL) {
 
-       LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS, ("udp_send: could not allocate header\n"));
 
-       return ERR_MEM;
 
-  8032a44:	27ff      	movs	r7, #255	; 0xff
 
-  8032a46:	e000      	b.n	8032a4a <udp_sendto_if+0xba>
 
-         /* free the header pbuf */
 
-         pbuf_free(q);
 
-         q = NULL;
 
-         /* p is still referenced by the caller, and will live on */
 
-       }
 
-       return ERR_VAL;
 
-  8032a48:	27fa      	movs	r7, #250	; 0xfa
 
-     /* p is still referenced by the caller, and will live on */
 
-   }
 
-   UDP_STATS_INC(udp.xmit);
 
-   return err;
 
- }
 
-  8032a4a:	b278      	sxtb	r0, r7
 
-  8032a4c:	b004      	add	sp, #16
 
-  8032a4e:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
 
- 08032a52 <udp_sendto>:
 
-  * @see udp_disconnect() udp_send()
 
-  */
 
- err_t
 
- udp_sendto(struct udp_pcb *pcb, struct pbuf *p,
 
-   ip_addr_t *dst_ip, u16_t dst_port)
 
- {
 
-  8032a52:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
 
-  8032a54:	4605      	mov	r5, r0
 
-   /* find the outgoing network interface for this packet */
 
- #if LWIP_IGMP
 
-   netif = ip_route((ip_addr_ismulticast(dst_ip))?(&(pcb->multicast_ip)):(dst_ip));
 
- #else
 
-   netif = ip_route(dst_ip);
 
-  8032a56:	4610      	mov	r0, r2
 
-  * @see udp_disconnect() udp_send()
 
-  */
 
- err_t
 
- udp_sendto(struct udp_pcb *pcb, struct pbuf *p,
 
-   ip_addr_t *dst_ip, u16_t dst_port)
 
- {
 
-  8032a58:	460f      	mov	r7, r1
 
-  8032a5a:	4614      	mov	r4, r2
 
-  8032a5c:	461e      	mov	r6, r3
 
-   /* find the outgoing network interface for this packet */
 
- #if LWIP_IGMP
 
-   netif = ip_route((ip_addr_ismulticast(dst_ip))?(&(pcb->multicast_ip)):(dst_ip));
 
- #else
 
-   netif = ip_route(dst_ip);
 
-  8032a5e:	f000 fa81 	bl	8032f64 <ip_route>
 
- #endif /* LWIP_IGMP */
 
-   /* no outgoing network interface could be found? */
 
-   if (netif == NULL) {
 
-  8032a62:	b138      	cbz	r0, 8032a74 <udp_sendto+0x22>
 
-     return ERR_RTE;
 
-   }
 
- #if LWIP_CHECKSUM_ON_COPY
 
-   return udp_sendto_if_chksum(pcb, p, dst_ip, dst_port, netif, have_chksum, chksum);
 
- #else /* LWIP_CHECKSUM_ON_COPY */
 
-   return udp_sendto_if(pcb, p, dst_ip, dst_port, netif);
 
-  8032a64:	9000      	str	r0, [sp, #0]
 
-  8032a66:	4639      	mov	r1, r7
 
-  8032a68:	4628      	mov	r0, r5
 
-  8032a6a:	4622      	mov	r2, r4
 
-  8032a6c:	4633      	mov	r3, r6
 
-  8032a6e:	f7ff ff8f 	bl	8032990 <udp_sendto_if>
 
-  8032a72:	e000      	b.n	8032a76 <udp_sendto+0x24>
 
-   /* no outgoing network interface could be found? */
 
-   if (netif == NULL) {
 
-     LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("udp_send: No route to %"U16_F".%"U16_F".%"U16_F".%"U16_F"\n",
 
-       ip4_addr1_16(dst_ip), ip4_addr2_16(dst_ip), ip4_addr3_16(dst_ip), ip4_addr4_16(dst_ip)));
 
-     UDP_STATS_INC(udp.rterr);
 
-     return ERR_RTE;
 
-  8032a74:	20fc      	movs	r0, #252	; 0xfc
 
- #if LWIP_CHECKSUM_ON_COPY
 
-   return udp_sendto_if_chksum(pcb, p, dst_ip, dst_port, netif, have_chksum, chksum);
 
- #else /* LWIP_CHECKSUM_ON_COPY */
 
-   return udp_sendto_if(pcb, p, dst_ip, dst_port, netif);
 
- #endif /* LWIP_CHECKSUM_ON_COPY */
 
- }
 
-  8032a76:	b240      	sxtb	r0, r0
 
-  8032a78:	bdfe      	pop	{r1, r2, r3, r4, r5, r6, r7, pc}
 
- 08032a7a <udp_send>:
 
-  */
 
- err_t
 
- udp_send(struct udp_pcb *pcb, struct pbuf *p)
 
- {
 
-   /* send to the packet using remote ip and port stored in the pcb */
 
-   return udp_sendto(pcb, p, &pcb->remote_ip, pcb->remote_port);
 
-  8032a7a:	8a83      	ldrh	r3, [r0, #20]
 
-  8032a7c:	1d02      	adds	r2, r0, #4
 
-  8032a7e:	f7ff bfe8 	b.w	8032a52 <udp_sendto>
 
-  8032a82:	0000      	movs	r0, r0
 
- 08032a84 <udp_connect>:
 
-  *
 
-  * @see udp_disconnect()
 
-  */
 
- err_t
 
- udp_connect(struct udp_pcb *pcb, ip_addr_t *ipaddr, u16_t port)
 
- {
 
-  8032a84:	b570      	push	{r4, r5, r6, lr}
 
-  8032a86:	4616      	mov	r6, r2
 
-   struct udp_pcb *ipcb;
 
-   if (pcb->local_port == 0) {
 
-  8032a88:	8a42      	ldrh	r2, [r0, #18]
 
-  *
 
-  * @see udp_disconnect()
 
-  */
 
- err_t
 
- udp_connect(struct udp_pcb *pcb, ip_addr_t *ipaddr, u16_t port)
 
- {
 
-  8032a8a:	4604      	mov	r4, r0
 
-  8032a8c:	460d      	mov	r5, r1
 
-   struct udp_pcb *ipcb;
 
-   if (pcb->local_port == 0) {
 
-  8032a8e:	b10a      	cbz	r2, 8032a94 <udp_connect+0x10>
 
-     if (err != ERR_OK) {
 
-       return err;
 
-     }
 
-   }
 
-   ip_addr_set(&pcb->remote_ip, ipaddr);
 
-  8032a90:	b935      	cbnz	r5, 8032aa0 <udp_connect+0x1c>
 
-  8032a92:	e006      	b.n	8032aa2 <udp_connect+0x1e>
 
- udp_connect(struct udp_pcb *pcb, ip_addr_t *ipaddr, u16_t port)
 
- {
 
-   struct udp_pcb *ipcb;
 
-   if (pcb->local_port == 0) {
 
-     err_t err = udp_bind(pcb, &pcb->local_ip, pcb->local_port);
 
-  8032a94:	4601      	mov	r1, r0
 
-  8032a96:	f7ff ff2b 	bl	80328f0 <udp_bind>
 
-     if (err != ERR_OK) {
 
-  8032a9a:	2800      	cmp	r0, #0
 
-  8032a9c:	d0f8      	beq.n	8032a90 <udp_connect+0xc>
 
-  8032a9e:	e013      	b.n	8032ac8 <udp_connect+0x44>
 
-       return err;
 
-     }
 
-   }
 
-   ip_addr_set(&pcb->remote_ip, ipaddr);
 
-  8032aa0:	682d      	ldr	r5, [r5, #0]
 
-   pcb->remote_port = port;
 
-   pcb->flags |= UDP_FLAGS_CONNECTED;
 
-  8032aa2:	7c23      	ldrb	r3, [r4, #16]
 
-                ip4_addr1_16(&pcb->local_ip), ip4_addr2_16(&pcb->local_ip),
 
-                ip4_addr3_16(&pcb->local_ip), ip4_addr4_16(&pcb->local_ip),
 
-                pcb->local_port));
 
-   /* Insert UDP PCB into the list of active UDP PCBs. */
 
-   for (ipcb = udp_pcbs; ipcb != NULL; ipcb = ipcb->next) {
 
-  8032aa4:	4a09      	ldr	r2, [pc, #36]	; (8032acc <udp_connect+0x48>)
 
-     if (err != ERR_OK) {
 
-       return err;
 
-     }
 
-   }
 
-   ip_addr_set(&pcb->remote_ip, ipaddr);
 
-  8032aa6:	6065      	str	r5, [r4, #4]
 
-   pcb->remote_port = port;
 
-   pcb->flags |= UDP_FLAGS_CONNECTED;
 
-  8032aa8:	f043 0304 	orr.w	r3, r3, #4
 
-  8032aac:	7423      	strb	r3, [r4, #16]
 
-                ip4_addr1_16(&pcb->local_ip), ip4_addr2_16(&pcb->local_ip),
 
-                ip4_addr3_16(&pcb->local_ip), ip4_addr4_16(&pcb->local_ip),
 
-                pcb->local_port));
 
-   /* Insert UDP PCB into the list of active UDP PCBs. */
 
-   for (ipcb = udp_pcbs; ipcb != NULL; ipcb = ipcb->next) {
 
-  8032aae:	6813      	ldr	r3, [r2, #0]
 
-       return err;
 
-     }
 
-   }
 
-   ip_addr_set(&pcb->remote_ip, ipaddr);
 
-   pcb->remote_port = port;
 
-  8032ab0:	82a6      	strh	r6, [r4, #20]
 
-                ip4_addr1_16(&pcb->local_ip), ip4_addr2_16(&pcb->local_ip),
 
-                ip4_addr3_16(&pcb->local_ip), ip4_addr4_16(&pcb->local_ip),
 
-                pcb->local_port));
 
-   /* Insert UDP PCB into the list of active UDP PCBs. */
 
-   for (ipcb = udp_pcbs; ipcb != NULL; ipcb = ipcb->next) {
 
-  8032ab2:	4618      	mov	r0, r3
 
-  8032ab4:	e002      	b.n	8032abc <udp_connect+0x38>
 
-     if (pcb == ipcb) {
 
-  8032ab6:	4284      	cmp	r4, r0
 
-  8032ab8:	d005      	beq.n	8032ac6 <udp_connect+0x42>
 
-                ip4_addr1_16(&pcb->local_ip), ip4_addr2_16(&pcb->local_ip),
 
-                ip4_addr3_16(&pcb->local_ip), ip4_addr4_16(&pcb->local_ip),
 
-                pcb->local_port));
 
-   /* Insert UDP PCB into the list of active UDP PCBs. */
 
-   for (ipcb = udp_pcbs; ipcb != NULL; ipcb = ipcb->next) {
 
-  8032aba:	68c0      	ldr	r0, [r0, #12]
 
-  8032abc:	2800      	cmp	r0, #0
 
-  8032abe:	d1fa      	bne.n	8032ab6 <udp_connect+0x32>
 
-       /* already on the list, just return */
 
-       return ERR_OK;
 
-     }
 
-   }
 
-   /* PCB not yet on the list, add PCB now */
 
-   pcb->next = udp_pcbs;
 
-  8032ac0:	60e3      	str	r3, [r4, #12]
 
-   udp_pcbs = pcb;
 
-  8032ac2:	6014      	str	r4, [r2, #0]
 
-   return ERR_OK;
 
-  8032ac4:	e000      	b.n	8032ac8 <udp_connect+0x44>
 
-   /* Insert UDP PCB into the list of active UDP PCBs. */
 
-   for (ipcb = udp_pcbs; ipcb != NULL; ipcb = ipcb->next) {
 
-     if (pcb == ipcb) {
 
-       /* already on the list, just return */
 
-       return ERR_OK;
 
-  8032ac6:	2000      	movs	r0, #0
 
-   }
 
-   /* PCB not yet on the list, add PCB now */
 
-   pcb->next = udp_pcbs;
 
-   udp_pcbs = pcb;
 
-   return ERR_OK;
 
- }
 
-  8032ac8:	b240      	sxtb	r0, r0
 
-  8032aca:	bd70      	pop	{r4, r5, r6, pc}
 
-  8032acc:	2000f6d8 	.word	0x2000f6d8
 
- 08032ad0 <udp_disconnect>:
 
-  */
 
- void
 
- udp_disconnect(struct udp_pcb *pcb)
 
- {
 
-   /* reset remote address association */
 
-   ip_addr_set_any(&pcb->remote_ip);
 
-  8032ad0:	2300      	movs	r3, #0
 
-  8032ad2:	6043      	str	r3, [r0, #4]
 
-   pcb->remote_port = 0;
 
-  8032ad4:	8283      	strh	r3, [r0, #20]
 
-   /* mark PCB as unconnected */
 
-   pcb->flags &= ~UDP_FLAGS_CONNECTED;
 
-  8032ad6:	7c03      	ldrb	r3, [r0, #16]
 
-  8032ad8:	f023 0304 	bic.w	r3, r3, #4
 
-  8032adc:	7403      	strb	r3, [r0, #16]
 
-  8032ade:	4770      	bx	lr
 
- 08032ae0 <udp_recv>:
 
-  */
 
- void
 
- udp_recv(struct udp_pcb *pcb, udp_recv_fn recv, void *recv_arg)
 
- {
 
-   /* remember recv() callback and user data */
 
-   pcb->recv = recv;
 
-  8032ae0:	6181      	str	r1, [r0, #24]
 
-   pcb->recv_arg = recv_arg;
 
-  8032ae2:	61c2      	str	r2, [r0, #28]
 
-  8032ae4:	4770      	bx	lr
 
-  8032ae6:	0000      	movs	r0, r0
 
- 08032ae8 <udp_remove>:
 
-  *
 
-  * @see udp_new()
 
-  */
 
- void
 
- udp_remove(struct udp_pcb *pcb)
 
- {
 
-  8032ae8:	b510      	push	{r4, lr}
 
-  8032aea:	4604      	mov	r4, r0
 
-   struct udp_pcb *pcb2;
 
-   snmp_delete_udpidx_tree(pcb);
 
-  8032aec:	f002 f938 	bl	8034d60 <snmp_delete_udpidx_tree>
 
-   /* pcb to be removed is first in list? */
 
-   if (udp_pcbs == pcb) {
 
-  8032af0:	4a0a      	ldr	r2, [pc, #40]	; (8032b1c <udp_remove+0x34>)
 
-  8032af2:	6813      	ldr	r3, [r2, #0]
 
-  8032af4:	42a3      	cmp	r3, r4
 
-  8032af6:	d109      	bne.n	8032b0c <udp_remove+0x24>
 
-     /* make list start at 2nd pcb */
 
-     udp_pcbs = udp_pcbs->next;
 
-  8032af8:	68e3      	ldr	r3, [r4, #12]
 
-  8032afa:	6013      	str	r3, [r2, #0]
 
-  8032afc:	e008      	b.n	8032b10 <udp_remove+0x28>
 
-     /* pcb not 1st in list */
 
-   } else {
 
-     for (pcb2 = udp_pcbs; pcb2 != NULL; pcb2 = pcb2->next) {
 
-       /* find pcb in udp_pcbs list */
 
-       if (pcb2->next != NULL && pcb2->next == pcb) {
 
-  8032afe:	68da      	ldr	r2, [r3, #12]
 
-  8032b00:	b11a      	cbz	r2, 8032b0a <udp_remove+0x22>
 
-  8032b02:	42a2      	cmp	r2, r4
 
-         /* remove pcb from list */
 
-         pcb2->next = pcb->next;
 
-  8032b04:	bf04      	itt	eq
 
-  8032b06:	68e2      	ldreq	r2, [r4, #12]
 
-  8032b08:	60da      	streq	r2, [r3, #12]
 
-   if (udp_pcbs == pcb) {
 
-     /* make list start at 2nd pcb */
 
-     udp_pcbs = udp_pcbs->next;
 
-     /* pcb not 1st in list */
 
-   } else {
 
-     for (pcb2 = udp_pcbs; pcb2 != NULL; pcb2 = pcb2->next) {
 
-  8032b0a:	68db      	ldr	r3, [r3, #12]
 
-  8032b0c:	2b00      	cmp	r3, #0
 
-  8032b0e:	d1f6      	bne.n	8032afe <udp_remove+0x16>
 
-         /* remove pcb from list */
 
-         pcb2->next = pcb->next;
 
-       }
 
-     }
 
-   }
 
-   memp_free(MEMP_UDP_PCB, pcb);
 
-  8032b10:	2001      	movs	r0, #1
 
-  8032b12:	4621      	mov	r1, r4
 
- }
 
-  8032b14:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
-         /* remove pcb from list */
 
-         pcb2->next = pcb->next;
 
-       }
 
-     }
 
-   }
 
-   memp_free(MEMP_UDP_PCB, pcb);
 
-  8032b18:	f7fd b86e 	b.w	802fbf8 <memp_free>
 
-  8032b1c:	2000f6d8 	.word	0x2000f6d8
 
- 08032b20 <udp_new>:
 
-  *
 
-  * @see udp_remove()
 
-  */
 
- struct udp_pcb *
 
- udp_new(void)
 
- {
 
-  8032b20:	b510      	push	{r4, lr}
 
-   struct udp_pcb *pcb;
 
-   pcb = (struct udp_pcb *)memp_malloc(MEMP_UDP_PCB);
 
-  8032b22:	2001      	movs	r0, #1
 
-  8032b24:	f7fd f852 	bl	802fbcc <memp_malloc>
 
-   /* could allocate UDP PCB? */
 
-   if (pcb != NULL) {
 
-  8032b28:	4604      	mov	r4, r0
 
-  8032b2a:	b128      	cbz	r0, 8032b38 <udp_new+0x18>
 
-     /* UDP Lite: by initializing to all zeroes, chksum_len is set to 0
 
-      * which means checksum is generated over the whole datagram per default
 
-      * (recommended as default by RFC 3828). */
 
-     /* initialize PCB to all zeroes */
 
-     memset(pcb, 0, sizeof(struct udp_pcb));
 
-  8032b2c:	2100      	movs	r1, #0
 
-  8032b2e:	2220      	movs	r2, #32
 
-  8032b30:	f7ee ffe6 	bl	8021b00 <memset>
 
-     pcb->ttl = UDP_TTL;
 
-  8032b34:	23ff      	movs	r3, #255	; 0xff
 
-  8032b36:	72a3      	strb	r3, [r4, #10]
 
-   }
 
-   return pcb;
 
- }
 
-  8032b38:	4620      	mov	r0, r4
 
-  8032b3a:	bd10      	pop	{r4, pc}
 
- 08032b3c <icmp_input>:
 
-  * @param p the icmp echo request packet, p->payload pointing to the ip header
 
-  * @param inp the netif on which this packet was received
 
-  */
 
- void
 
- icmp_input(struct pbuf *p, struct netif *inp)
 
- {
 
-  8032b3c:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
 
-  8032b40:	4604      	mov	r4, r0
 
-  8032b42:	b085      	sub	sp, #20
 
-  8032b44:	460f      	mov	r7, r1
 
-   struct icmp_echo_hdr *iecho;
 
-   struct ip_hdr *iphdr;
 
-   s16_t hlen;
 
-   ICMP_STATS_INC(icmp.recv);
 
-   snmp_inc_icmpinmsgs();
 
-  8032b46:	f002 f837 	bl	8034bb8 <snmp_inc_icmpinmsgs>
 
-   iphdr = (struct ip_hdr *)p->payload;
 
-  8032b4a:	6865      	ldr	r5, [r4, #4]
 
-   hlen = IPH_HL(iphdr) * 4;
 
-  8032b4c:	f895 8000 	ldrb.w	r8, [r5]
 
-  8032b50:	f008 080f 	and.w	r8, r8, #15
 
-  8032b54:	ea4f 0888 	mov.w	r8, r8, lsl #2
 
-   if (pbuf_header(p, -hlen) || (p->tot_len < sizeof(u16_t)*2)) {
 
-  8032b58:	f1c8 0900 	rsb	r9, r8, #0
 
-  8032b5c:	4620      	mov	r0, r4
 
-  8032b5e:	fa0f f189 	sxth.w	r1, r9
 
-  8032b62:	f7fd f928 	bl	802fdb6 <pbuf_header>
 
-  8032b66:	2800      	cmp	r0, #0
 
-  8032b68:	d172      	bne.n	8032c50 <icmp_input+0x114>
 
-  8032b6a:	8923      	ldrh	r3, [r4, #8]
 
-  8032b6c:	2b03      	cmp	r3, #3
 
-  8032b6e:	d96f      	bls.n	8032c50 <icmp_input+0x114>
 
-     LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: short ICMP (%"U16_F" bytes) received\n", p->tot_len));
 
-     goto lenerr;
 
-   }
 
-   type = *((u8_t *)p->payload);
 
-  8032b70:	6863      	ldr	r3, [r4, #4]
 
- #ifdef LWIP_DEBUG
 
-   code = *(((u8_t *)p->payload)+1);
 
- #endif /* LWIP_DEBUG */
 
-   switch (type) {
 
-  8032b72:	781b      	ldrb	r3, [r3, #0]
 
-  8032b74:	2b08      	cmp	r3, #8
 
-  8032b76:	d165      	bne.n	8032c44 <icmp_input+0x108>
 
- #if !LWIP_MULTICAST_PING || !LWIP_BROADCAST_PING
 
-     {
 
-       int accepted = 1;
 
- #if !LWIP_MULTICAST_PING
 
-       /* multicast destination address? */
 
-       if (ip_addr_ismulticast(¤t_iphdr_dest)) {
 
-  8032b78:	4b39      	ldr	r3, [pc, #228]	; (8032c60 <icmp_input+0x124>)
 
-  8032b7a:	681e      	ldr	r6, [r3, #0]
 
-         accepted = 0;
 
-       }
 
- #endif /* LWIP_MULTICAST_PING */
 
- #if !LWIP_BROADCAST_PING
 
-       /* broadcast destination address? */
 
-       if (ip_addr_isbroadcast(¤t_iphdr_dest, inp)) {
 
-  8032b7c:	4639      	mov	r1, r7
 
-  8032b7e:	4630      	mov	r0, r6
 
-  8032b80:	f000 f900 	bl	8032d84 <ip4_addr_isbroadcast>
 
-  8032b84:	2800      	cmp	r0, #0
 
-  8032b86:	d15d      	bne.n	8032c44 <icmp_input+0x108>
 
- #if !LWIP_MULTICAST_PING || !LWIP_BROADCAST_PING
 
-     {
 
-       int accepted = 1;
 
- #if !LWIP_MULTICAST_PING
 
-       /* multicast destination address? */
 
-       if (ip_addr_ismulticast(¤t_iphdr_dest)) {
 
-  8032b88:	f006 06f0 	and.w	r6, r6, #240	; 0xf0
 
-       if (ip_addr_isbroadcast(¤t_iphdr_dest, inp)) {
 
-         accepted = 0;
 
-       }
 
- #endif /* LWIP_BROADCAST_PING */
 
-       /* broadcast or multicast destination address not acceptd? */
 
-       if (!accepted) {
 
-  8032b8c:	2ee0      	cmp	r6, #224	; 0xe0
 
-  8032b8e:	d100      	bne.n	8032b92 <icmp_input+0x56>
 
-  8032b90:	e058      	b.n	8032c44 <icmp_input+0x108>
 
-         return;
 
-       }
 
-     }
 
- #endif /* !LWIP_MULTICAST_PING || !LWIP_BROADCAST_PING */
 
-     LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: ping\n"));
 
-     if (p->tot_len < sizeof(struct icmp_echo_hdr)) {
 
-  8032b92:	8923      	ldrh	r3, [r4, #8]
 
-  8032b94:	2b07      	cmp	r3, #7
 
-  8032b96:	d95b      	bls.n	8032c50 <icmp_input+0x114>
 
-       LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: bad ICMP echo received\n"));
 
-       goto lenerr;
 
-     }
 
-     if (inet_chksum_pbuf(p) != 0) {
 
-  8032b98:	4620      	mov	r0, r4
 
-  8032b9a:	f000 f8cf 	bl	8032d3c <inet_chksum_pbuf>
 
-  8032b9e:	b100      	cbz	r0, 8032ba2 <icmp_input+0x66>
 
-  8032ba0:	e056      	b.n	8032c50 <icmp_input+0x114>
 
-       ICMP_STATS_INC(icmp.chkerr);
 
-       snmp_inc_icmpinerrors();
 
-       return;
 
-     }
 
- #if LWIP_ICMP_ECHO_CHECK_INPUT_PBUF_LEN
 
-     if (pbuf_header(p, (PBUF_IP_HLEN + PBUF_LINK_HLEN))) {
 
-  8032ba2:	4620      	mov	r0, r4
 
-  8032ba4:	2122      	movs	r1, #34	; 0x22
 
-   ICMP_STATS_INC(icmp.recv);
 
-   snmp_inc_icmpinmsgs();
 
-   iphdr = (struct ip_hdr *)p->payload;
 
-   hlen = IPH_HL(iphdr) * 4;
 
-  8032ba6:	fa1f f888 	uxth.w	r8, r8
 
-       ICMP_STATS_INC(icmp.chkerr);
 
-       snmp_inc_icmpinerrors();
 
-       return;
 
-     }
 
- #if LWIP_ICMP_ECHO_CHECK_INPUT_PBUF_LEN
 
-     if (pbuf_header(p, (PBUF_IP_HLEN + PBUF_LINK_HLEN))) {
 
-  8032baa:	f7fd f904 	bl	802fdb6 <pbuf_header>
 
-  8032bae:	b1f8      	cbz	r0, 8032bf0 <icmp_input+0xb4>
 
-       /* p is not big enough to contain link headers
 
-        * allocate a new one and copy p into it
 
-        */
 
-       struct pbuf *r;
 
-       /* switch p->payload to ip header */
 
-       if (pbuf_header(p, hlen)) {
 
-  8032bb0:	4620      	mov	r0, r4
 
-  8032bb2:	4641      	mov	r1, r8
 
-  8032bb4:	f7fd f8ff 	bl	802fdb6 <pbuf_header>
 
-  8032bb8:	4602      	mov	r2, r0
 
-  8032bba:	2800      	cmp	r0, #0
 
-  8032bbc:	d148      	bne.n	8032c50 <icmp_input+0x114>
 
-         LWIP_ASSERT("icmp_input: moving p->payload to ip header failed\n", 0);
 
-         goto memerr;
 
-       }
 
-       /* allocate new packet buffer with space for link headers */
 
-       r = pbuf_alloc(PBUF_LINK, p->tot_len, PBUF_RAM);
 
-  8032bbe:	2002      	movs	r0, #2
 
-  8032bc0:	8921      	ldrh	r1, [r4, #8]
 
-  8032bc2:	f7fd f970 	bl	802fea6 <pbuf_alloc>
 
-       if (r == NULL) {
 
-  8032bc6:	4606      	mov	r6, r0
 
-  8032bc8:	2800      	cmp	r0, #0
 
-  8032bca:	d041      	beq.n	8032c50 <icmp_input+0x114>
 
-         goto memerr;
 
-       }
 
-       LWIP_ASSERT("check that first pbuf can hold struct the ICMP header",
 
-                   (r->len >= hlen + sizeof(struct icmp_echo_hdr)));
 
-       /* copy the whole packet including ip header */
 
-       if (pbuf_copy(r, p) != ERR_OK) {
 
-  8032bcc:	4621      	mov	r1, r4
 
-  8032bce:	f7fd fa21 	bl	8030014 <pbuf_copy>
 
-  8032bd2:	2800      	cmp	r0, #0
 
-  8032bd4:	d13c      	bne.n	8032c50 <icmp_input+0x114>
 
-         LWIP_ASSERT("icmp_input: copying to new pbuf failed\n", 0);
 
-         goto memerr;
 
-       }
 
-       iphdr = (struct ip_hdr *)r->payload;
 
-       /* switch r->payload back to icmp header */
 
-       if (pbuf_header(r, -hlen)) {
 
-  8032bd6:	4630      	mov	r0, r6
 
-  8032bd8:	fa0f f189 	sxth.w	r1, r9
 
-       /* copy the whole packet including ip header */
 
-       if (pbuf_copy(r, p) != ERR_OK) {
 
-         LWIP_ASSERT("icmp_input: copying to new pbuf failed\n", 0);
 
-         goto memerr;
 
-       }
 
-       iphdr = (struct ip_hdr *)r->payload;
 
-  8032bdc:	6875      	ldr	r5, [r6, #4]
 
-       /* switch r->payload back to icmp header */
 
-       if (pbuf_header(r, -hlen)) {
 
-  8032bde:	f7fd f8ea 	bl	802fdb6 <pbuf_header>
 
-  8032be2:	2800      	cmp	r0, #0
 
-  8032be4:	d134      	bne.n	8032c50 <icmp_input+0x114>
 
-         LWIP_ASSERT("icmp_input: restoring original p->payload failed\n", 0);
 
-         goto memerr;
 
-       }
 
-       /* free the original p */
 
-       pbuf_free(p);
 
-  8032be6:	4620      	mov	r0, r4
 
-  8032be8:	f7fd f910 	bl	802fe0c <pbuf_free>
 
-  8032bec:	4634      	mov	r4, r6
 
-  8032bee:	e006      	b.n	8032bfe <icmp_input+0xc2>
 
-       /* we now have an identical copy of p that has room for link headers */
 
-       p = r;
 
-     } else {
 
-       /* restore p->payload to point to icmp header */
 
-       if (pbuf_header(p, -(s16_t)(PBUF_IP_HLEN + PBUF_LINK_HLEN))) {
 
-  8032bf0:	4620      	mov	r0, r4
 
-  8032bf2:	f06f 0121 	mvn.w	r1, #33	; 0x21
 
-  8032bf6:	f7fd f8de 	bl	802fdb6 <pbuf_header>
 
-  8032bfa:	2800      	cmp	r0, #0
 
-  8032bfc:	d128      	bne.n	8032c50 <icmp_input+0x114>
 
- #endif /* LWIP_ICMP_ECHO_CHECK_INPUT_PBUF_LEN */
 
-     /* At this point, all checks are OK. */
 
-     /* We generate an answer by switching the dest and src ip addresses,
 
-      * setting the icmp type to ECHO_RESPONSE and updating the checksum. */
 
-     iecho = (struct icmp_echo_hdr *)p->payload;
 
-     ip_addr_copy(iphdr->src, *ip_current_dest_addr());
 
-  8032bfe:	f8df 9060 	ldr.w	r9, [pc, #96]	; 8032c60 <icmp_input+0x124>
 
-     }
 
- #endif /* LWIP_ICMP_ECHO_CHECK_INPUT_PBUF_LEN */
 
-     /* At this point, all checks are OK. */
 
-     /* We generate an answer by switching the dest and src ip addresses,
 
-      * setting the icmp type to ECHO_RESPONSE and updating the checksum. */
 
-     iecho = (struct icmp_echo_hdr *)p->payload;
 
-  8032c02:	6863      	ldr	r3, [r4, #4]
 
-     ip_addr_copy(iphdr->src, *ip_current_dest_addr());
 
-  8032c04:	f8d9 2000 	ldr.w	r2, [r9]
 
-  8032c08:	60ea      	str	r2, [r5, #12]
 
-     ip_addr_copy(iphdr->dest, *ip_current_src_addr());
 
-  8032c0a:	4a16      	ldr	r2, [pc, #88]	; (8032c64 <icmp_input+0x128>)
 
-  8032c0c:	6812      	ldr	r2, [r2, #0]
 
- #else // CHECKSUM_GEN_ICMP 
 
-     iecho->chksum = 0;
 
- #endif // CHECKSUM_GEN_ICMP 
 
- */
 
-     /* Set the correct TTL and recalculate the header checksum. */
 
-     IPH_TTL_SET(iphdr, ICMP_TTL);
 
-  8032c0e:	26ff      	movs	r6, #255	; 0xff
 
-     /* At this point, all checks are OK. */
 
-     /* We generate an answer by switching the dest and src ip addresses,
 
-      * setting the icmp type to ECHO_RESPONSE and updating the checksum. */
 
-     iecho = (struct icmp_echo_hdr *)p->payload;
 
-     ip_addr_copy(iphdr->src, *ip_current_dest_addr());
 
-     ip_addr_copy(iphdr->dest, *ip_current_src_addr());
 
-  8032c10:	612a      	str	r2, [r5, #16]
 
-     ICMPH_TYPE_SET(iecho, ICMP_ER);
 
-  8032c12:	2200      	movs	r2, #0
 
-  8032c14:	701a      	strb	r2, [r3, #0]
 
- //-----------------------------------------------------------    
 
- // Добавил фикс 15.08.15.
 
- // Фикс исправляет баг с пингом.    
 
- #ifdef CHECKSUM_BY_HARDWARE
 
-     iecho->chksum = 0;
 
-  8032c16:	709a      	strb	r2, [r3, #2]
 
-  8032c18:	70da      	strb	r2, [r3, #3]
 
-     iecho->chksum = 0;
 
- #endif // CHECKSUM_GEN_ICMP 
 
- */
 
-     /* Set the correct TTL and recalculate the header checksum. */
 
-     IPH_TTL_SET(iphdr, ICMP_TTL);
 
-     IPH_CHKSUM_SET(iphdr, 0);
 
-  8032c1a:	72aa      	strb	r2, [r5, #10]
 
-  8032c1c:	72ea      	strb	r2, [r5, #11]
 
- #else // CHECKSUM_GEN_ICMP 
 
-     iecho->chksum = 0;
 
- #endif // CHECKSUM_GEN_ICMP 
 
- */
 
-     /* Set the correct TTL and recalculate the header checksum. */
 
-     IPH_TTL_SET(iphdr, ICMP_TTL);
 
-  8032c1e:	722e      	strb	r6, [r5, #8]
 
-     IPH_CHKSUM_SET(iphdr, inet_chksum(iphdr, IP_HLEN));
 
- #endif /* CHECKSUM_GEN_IP */
 
-     ICMP_STATS_INC(icmp.xmit);
 
-     /* increase number of messages attempted to send */
 
-     snmp_inc_icmpoutmsgs();
 
-  8032c20:	f001 ffda 	bl	8034bd8 <snmp_inc_icmpoutmsgs>
 
-     /* increase number of echo replies attempted to send */
 
-     snmp_inc_icmpoutechoreps();
 
-  8032c24:	f001 ffe8 	bl	8034bf8 <snmp_inc_icmpoutechoreps>
 
-     if(pbuf_header(p, hlen)) {
 
-  8032c28:	4620      	mov	r0, r4
 
-  8032c2a:	4641      	mov	r1, r8
 
-  8032c2c:	f7fd f8c3 	bl	802fdb6 <pbuf_header>
 
-  8032c30:	4602      	mov	r2, r0
 
-  8032c32:	b938      	cbnz	r0, 8032c44 <icmp_input+0x108>
 
-       LWIP_ASSERT("Can't move over header in packet", 0);
 
-     } else {
 
-       err_t ret;
 
-       /* send an ICMP packet, src addr is the dest addr of the curren packet */
 
-       ret = ip_output_if(p, ip_current_dest_addr(), IP_HDRINCL,
 
-  8032c34:	2301      	movs	r3, #1
 
-  8032c36:	e88d 0089 	stmia.w	sp, {r0, r3, r7}
 
-  8032c3a:	4620      	mov	r0, r4
 
-  8032c3c:	4649      	mov	r1, r9
 
-  8032c3e:	4633      	mov	r3, r6
 
-  8032c40:	f000 fa94 	bl	803316c <ip_output_if>
 
-     LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: ICMP type %"S16_F" code %"S16_F" not supported.\n", 
 
-                 (s16_t)type, (s16_t)code));
 
-     ICMP_STATS_INC(icmp.proterr);
 
-     ICMP_STATS_INC(icmp.drop);
 
-   }
 
-   pbuf_free(p);
 
-  8032c44:	4620      	mov	r0, r4
 
-   pbuf_free(p);
 
-   ICMP_STATS_INC(icmp.err);
 
-   snmp_inc_icmpinerrors();
 
-   return;
 
- #endif /* LWIP_ICMP_ECHO_CHECK_INPUT_PBUF_LEN */
 
- }
 
-  8032c46:	b005      	add	sp, #20
 
-  8032c48:	e8bd 43f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, lr}
 
-     LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: ICMP type %"S16_F" code %"S16_F" not supported.\n", 
 
-                 (s16_t)type, (s16_t)code));
 
-     ICMP_STATS_INC(icmp.proterr);
 
-     ICMP_STATS_INC(icmp.drop);
 
-   }
 
-   pbuf_free(p);
 
-  8032c4c:	f7fd b8de 	b.w	802fe0c <pbuf_free>
 
-   ICMP_STATS_INC(icmp.lenerr);
 
-   snmp_inc_icmpinerrors();
 
-   return;
 
- #if LWIP_ICMP_ECHO_CHECK_INPUT_PBUF_LEN
 
- memerr:
 
-   pbuf_free(p);
 
-  8032c50:	4620      	mov	r0, r4
 
-  8032c52:	f7fd f8db 	bl	802fe0c <pbuf_free>
 
-   ICMP_STATS_INC(icmp.err);
 
-   snmp_inc_icmpinerrors();
 
-   return;
 
- #endif /* LWIP_ICMP_ECHO_CHECK_INPUT_PBUF_LEN */
 
- }
 
-  8032c56:	b005      	add	sp, #20
 
-  8032c58:	e8bd 43f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, lr}
 
-   return;
 
- #if LWIP_ICMP_ECHO_CHECK_INPUT_PBUF_LEN
 
- memerr:
 
-   pbuf_free(p);
 
-   ICMP_STATS_INC(icmp.err);
 
-   snmp_inc_icmpinerrors();
 
-  8032c5c:	f001 bfb4 	b.w	8034bc8 <snmp_inc_icmpinerrors>
 
-  8032c60:	2000f6e4 	.word	0x2000f6e4
 
-  8032c64:	2000f6dc 	.word	0x2000f6dc
 
- 08032c68 <icmp_dest_unreach>:
 
-  *          p->payload pointing to the IP header
 
-  * @param t type of the 'unreachable' packet
 
-  */
 
- void
 
- icmp_dest_unreach(struct pbuf *p, enum icmp_dur_type t)
 
- {
 
-  8032c68:	e92d 41ff 	stmdb	sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
 
-  8032c6c:	4607      	mov	r7, r0
 
-  8032c6e:	460d      	mov	r5, r1
 
-   /* we can use the echo header here */
 
-   struct icmp_echo_hdr *icmphdr;
 
-   ip_addr_t iphdr_src;
 
-   /* ICMP header + IP header + 8 bytes of data */
 
-   q = pbuf_alloc(PBUF_IP, sizeof(struct icmp_echo_hdr) + IP_HLEN + ICMP_DEST_UNREACH_DATASIZE,
 
-  8032c70:	2001      	movs	r0, #1
 
-  8032c72:	2124      	movs	r1, #36	; 0x24
 
-  8032c74:	2200      	movs	r2, #0
 
-  8032c76:	f7fd f916 	bl	802fea6 <pbuf_alloc>
 
-                  PBUF_RAM);
 
-   if (q == NULL) {
 
-  8032c7a:	4606      	mov	r6, r0
 
-  8032c7c:	b358      	cbz	r0, 8032cd6 <icmp_dest_unreach+0x6e>
 
-   ip_addr_debug_print(ICMP_DEBUG, &(iphdr->src));
 
-   LWIP_DEBUGF(ICMP_DEBUG, (" to "));
 
-   ip_addr_debug_print(ICMP_DEBUG, &(iphdr->dest));
 
-   LWIP_DEBUGF(ICMP_DEBUG, ("\n"));
 
-   icmphdr = (struct icmp_echo_hdr *)q->payload;
 
-  8032c7e:	6844      	ldr	r4, [r0, #4]
 
-     return;
 
-   }
 
-   LWIP_ASSERT("check that first pbuf can hold icmp message",
 
-              (q->len >= (sizeof(struct icmp_echo_hdr) + IP_HLEN + ICMP_DEST_UNREACH_DATASIZE)));
 
-   iphdr = (struct ip_hdr *)p->payload;
 
-  8032c80:	f8d7 8004 	ldr.w	r8, [r7, #4]
 
-   ip_addr_debug_print(ICMP_DEBUG, &(iphdr->dest));
 
-   LWIP_DEBUGF(ICMP_DEBUG, ("\n"));
 
-   icmphdr = (struct icmp_echo_hdr *)q->payload;
 
-   icmphdr->type = type;
 
-   icmphdr->code = code;
 
-  8032c84:	7065      	strb	r5, [r4, #1]
 
-   LWIP_DEBUGF(ICMP_DEBUG, (" to "));
 
-   ip_addr_debug_print(ICMP_DEBUG, &(iphdr->dest));
 
-   LWIP_DEBUGF(ICMP_DEBUG, ("\n"));
 
-   icmphdr = (struct icmp_echo_hdr *)q->payload;
 
-   icmphdr->type = type;
 
-  8032c86:	2303      	movs	r3, #3
 
-   icmphdr->code = code;
 
-   icmphdr->id = 0;
 
-  8032c88:	2500      	movs	r5, #0
 
-   LWIP_DEBUGF(ICMP_DEBUG, (" to "));
 
-   ip_addr_debug_print(ICMP_DEBUG, &(iphdr->dest));
 
-   LWIP_DEBUGF(ICMP_DEBUG, ("\n"));
 
-   icmphdr = (struct icmp_echo_hdr *)q->payload;
 
-   icmphdr->type = type;
 
-  8032c8a:	7023      	strb	r3, [r4, #0]
 
-   icmphdr->code = code;
 
-   icmphdr->id = 0;
 
-  8032c8c:	7125      	strb	r5, [r4, #4]
 
-  8032c8e:	7165      	strb	r5, [r4, #5]
 
-   icmphdr->seqno = 0;
 
-  8032c90:	71a5      	strb	r5, [r4, #6]
 
-  8032c92:	71e5      	strb	r5, [r4, #7]
 
-   /* copy fields from original packet */
 
-   SMEMCPY((u8_t *)q->payload + sizeof(struct icmp_echo_hdr), (u8_t *)p->payload,
 
-  8032c94:	6840      	ldr	r0, [r0, #4]
 
-  8032c96:	6879      	ldr	r1, [r7, #4]
 
-  8032c98:	221c      	movs	r2, #28
 
-  8032c9a:	3008      	adds	r0, #8
 
-  8032c9c:	f7ee fe76 	bl	802198c <memcpy>
 
-           IP_HLEN + ICMP_DEST_UNREACH_DATASIZE);
 
-   /* calculate checksum */
 
-   icmphdr->chksum = 0;
 
-  8032ca0:	70a5      	strb	r5, [r4, #2]
 
-  8032ca2:	70e5      	strb	r5, [r4, #3]
 
-   icmphdr->chksum = inet_chksum(icmphdr, q->len);
 
-  8032ca4:	8971      	ldrh	r1, [r6, #10]
 
-  8032ca6:	4620      	mov	r0, r4
 
-  8032ca8:	f000 f842 	bl	8032d30 <inet_chksum>
 
-  8032cac:	8060      	strh	r0, [r4, #2]
 
-   ICMP_STATS_INC(icmp.xmit);
 
-   /* increase number of messages attempted to send */
 
-   snmp_inc_icmpoutmsgs();
 
-  8032cae:	f001 ff93 	bl	8034bd8 <snmp_inc_icmpoutmsgs>
 
-   /* increase number of destination unreachable messages attempted to send */
 
-   snmp_inc_icmpouttimeexcds();
 
-  8032cb2:	f001 ff99 	bl	8034be8 <snmp_inc_icmpouttimeexcds>
 
-   ip_addr_copy(iphdr_src, iphdr->src);
 
-  8032cb6:	f8d8 300c 	ldr.w	r3, [r8, #12]
 
-  8032cba:	aa04      	add	r2, sp, #16
 
-   ip_output(q, NULL, &iphdr_src, ICMP_TTL, 0, IP_PROTO_ICMP);
 
-  8032cbc:	4630      	mov	r0, r6
 
-   ICMP_STATS_INC(icmp.xmit);
 
-   /* increase number of messages attempted to send */
 
-   snmp_inc_icmpoutmsgs();
 
-   /* increase number of destination unreachable messages attempted to send */
 
-   snmp_inc_icmpouttimeexcds();
 
-   ip_addr_copy(iphdr_src, iphdr->src);
 
-  8032cbe:	f842 3d04 	str.w	r3, [r2, #-4]!
 
-   ip_output(q, NULL, &iphdr_src, ICMP_TTL, 0, IP_PROTO_ICMP);
 
-  8032cc2:	2301      	movs	r3, #1
 
-  8032cc4:	9301      	str	r3, [sp, #4]
 
-  8032cc6:	9500      	str	r5, [sp, #0]
 
-  8032cc8:	4629      	mov	r1, r5
 
-  8032cca:	23ff      	movs	r3, #255	; 0xff
 
-  8032ccc:	f000 fa9e 	bl	803320c <ip_output>
 
-   pbuf_free(q);
 
-  8032cd0:	4630      	mov	r0, r6
 
-  8032cd2:	f7fd f89b 	bl	802fe0c <pbuf_free>
 
-  */
 
- void
 
- icmp_dest_unreach(struct pbuf *p, enum icmp_dur_type t)
 
- {
 
-   icmp_send_response(p, ICMP_DUR, t);
 
- }
 
-  8032cd6:	e8bd 81ff 	ldmia.w	sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, pc}
 
- 08032cda <lwip_standard_chksum>:
 
-  * @return host order (!) lwip checksum (non-inverted Internet sum) 
 
-  */
 
- static u16_t
 
- lwip_standard_chksum(void *dataptr, int len)
 
- {
 
-  8032cda:	b513      	push	{r0, r1, r4, lr}
 
-   u8_t *pb = (u8_t *)dataptr;
 
-   u16_t *ps, t = 0;
 
-  8032cdc:	2300      	movs	r3, #0
 
-   u32_t sum = 0;
 
-   int odd = ((mem_ptr_t)pb & 1);
 
-   /* Get aligned to u16_t */
 
-   if (odd && len > 0) {
 
-  8032cde:	f010 0201 	ands.w	r2, r0, #1
 
- static u16_t
 
- lwip_standard_chksum(void *dataptr, int len)
 
- {
 
-   u8_t *pb = (u8_t *)dataptr;
 
-   u16_t *ps, t = 0;
 
-  8032ce2:	f8ad 3006 	strh.w	r3, [sp, #6]
 
-   u32_t sum = 0;
 
-   int odd = ((mem_ptr_t)pb & 1);
 
-   /* Get aligned to u16_t */
 
-   if (odd && len > 0) {
 
-  8032ce6:	d006      	beq.n	8032cf6 <lwip_standard_chksum+0x1c>
 
-  8032ce8:	4299      	cmp	r1, r3
 
-  8032cea:	dd04      	ble.n	8032cf6 <lwip_standard_chksum+0x1c>
 
-     ((u8_t *)&t)[1] = *pb++;
 
-  8032cec:	f810 3b01 	ldrb.w	r3, [r0], #1
 
-     len--;
 
-  8032cf0:	3901      	subs	r1, #1
 
-   u32_t sum = 0;
 
-   int odd = ((mem_ptr_t)pb & 1);
 
-   /* Get aligned to u16_t */
 
-   if (odd && len > 0) {
 
-     ((u8_t *)&t)[1] = *pb++;
 
-  8032cf2:	f88d 3007 	strb.w	r3, [sp, #7]
 
- static u16_t
 
- lwip_standard_chksum(void *dataptr, int len)
 
- {
 
-   u8_t *pb = (u8_t *)dataptr;
 
-   u16_t *ps, t = 0;
 
-   u32_t sum = 0;
 
-  8032cf6:	2300      	movs	r3, #0
 
-     len--;
 
-   }
 
-   /* Add the bulk of the data */
 
-   ps = (u16_t *)(void *)pb;
 
-   while (len > 1) {
 
-  8032cf8:	e003      	b.n	8032d02 <lwip_standard_chksum+0x28>
 
-     sum += *ps++;
 
-  8032cfa:	f830 4b02 	ldrh.w	r4, [r0], #2
 
-     len -= 2;
 
-  8032cfe:	3902      	subs	r1, #2
 
-   }
 
-   /* Add the bulk of the data */
 
-   ps = (u16_t *)(void *)pb;
 
-   while (len > 1) {
 
-     sum += *ps++;
 
-  8032d00:	191b      	adds	r3, r3, r4
 
-     len--;
 
-   }
 
-   /* Add the bulk of the data */
 
-   ps = (u16_t *)(void *)pb;
 
-   while (len > 1) {
 
-  8032d02:	2901      	cmp	r1, #1
 
-  8032d04:	dcf9      	bgt.n	8032cfa <lwip_standard_chksum+0x20>
 
-     len -= 2;
 
-   }
 
-   /* Consume left-over byte, if any */
 
-   if (len > 0) {
 
-     ((u8_t *)&t)[0] = *(u8_t *)ps;
 
-  8032d06:	bf04      	itt	eq
 
-  8032d08:	7801      	ldrbeq	r1, [r0, #0]
 
-  8032d0a:	f88d 1006 	strbeq.w	r1, [sp, #6]
 
-   }
 
-   /* Add end bytes */
 
-   sum += t;
 
-  8032d0e:	f8bd 0006 	ldrh.w	r0, [sp, #6]
 
-  8032d12:	181b      	adds	r3, r3, r0
 
-   /* Fold 32-bit sum to 16 bits
 
-      calling this twice is propably faster than if statements... */
 
-   sum = FOLD_U32T(sum);
 
-  8032d14:	b298      	uxth	r0, r3
 
-  8032d16:	eb00 4313 	add.w	r3, r0, r3, lsr #16
 
-   sum = FOLD_U32T(sum);
 
-  8032d1a:	b298      	uxth	r0, r3
 
-  8032d1c:	eb00 4013 	add.w	r0, r0, r3, lsr #16
 
-   /* Swap if alignment was odd */
 
-   if (odd) {
 
-  8032d20:	b122      	cbz	r2, 8032d2c <lwip_standard_chksum+0x52>
 
-     sum = SWAP_BYTES_IN_WORD(sum);
 
-  8032d22:	0603      	lsls	r3, r0, #24
 
-  8032d24:	f3c0 2007 	ubfx	r0, r0, #8, #8
 
-  8032d28:	ea40 4013 	orr.w	r0, r0, r3, lsr #16
 
-   }
 
-   return (u16_t)sum;
 
- }
 
-  8032d2c:	b280      	uxth	r0, r0
 
-  8032d2e:	bd1c      	pop	{r2, r3, r4, pc}
 
- 08032d30 <inet_chksum>:
 
-  * @return checksum (as u16_t) to be saved directly in the protocol header
 
-  */
 
- u16_t
 
- inet_chksum(void *dataptr, u16_t len)
 
- {
 
-  8032d30:	b508      	push	{r3, lr}
 
-   return ~LWIP_CHKSUM(dataptr, len);
 
-  8032d32:	f7ff ffd2 	bl	8032cda <lwip_standard_chksum>
 
-  8032d36:	43c0      	mvns	r0, r0
 
- }
 
-  8032d38:	b280      	uxth	r0, r0
 
-  8032d3a:	bd08      	pop	{r3, pc}
 
- 08032d3c <inet_chksum_pbuf>:
 
-  * @param p pbuf chain over that the checksum should be calculated
 
-  * @return checksum (as u16_t) to be saved directly in the protocol header
 
-  */
 
- u16_t
 
- inet_chksum_pbuf(struct pbuf *p)
 
- {
 
-  8032d3c:	b570      	push	{r4, r5, r6, lr}
 
-   u32_t acc;
 
-   struct pbuf *q;
 
-   u8_t swapped;
 
-   acc = 0;
 
-   swapped = 0;
 
-  8032d3e:	2600      	movs	r6, #0
 
-  * @param p pbuf chain over that the checksum should be calculated
 
-  * @return checksum (as u16_t) to be saved directly in the protocol header
 
-  */
 
- u16_t
 
- inet_chksum_pbuf(struct pbuf *p)
 
- {
 
-  8032d40:	4605      	mov	r5, r0
 
-   u32_t acc;
 
-   struct pbuf *q;
 
-   u8_t swapped;
 
-   acc = 0;
 
-  8032d42:	4634      	mov	r4, r6
 
-   swapped = 0;
 
-   for(q = p; q != NULL; q = q->next) {
 
-  8032d44:	e013      	b.n	8032d6e <inet_chksum_pbuf+0x32>
 
-     acc += LWIP_CHKSUM(q->payload, q->len);
 
-  8032d46:	8969      	ldrh	r1, [r5, #10]
 
-  8032d48:	6868      	ldr	r0, [r5, #4]
 
-  8032d4a:	f7ff ffc6 	bl	8032cda <lwip_standard_chksum>
 
-     acc = FOLD_U32T(acc);
 
-     if (q->len % 2 != 0) {
 
-  8032d4e:	896b      	ldrh	r3, [r5, #10]
 
-   u8_t swapped;
 
-   acc = 0;
 
-   swapped = 0;
 
-   for(q = p; q != NULL; q = q->next) {
 
-     acc += LWIP_CHKSUM(q->payload, q->len);
 
-  8032d50:	1900      	adds	r0, r0, r4
 
-     acc = FOLD_U32T(acc);
 
-  8032d52:	b284      	uxth	r4, r0
 
-     if (q->len % 2 != 0) {
 
-  8032d54:	07d9      	lsls	r1, r3, #31
 
-   acc = 0;
 
-   swapped = 0;
 
-   for(q = p; q != NULL; q = q->next) {
 
-     acc += LWIP_CHKSUM(q->payload, q->len);
 
-     acc = FOLD_U32T(acc);
 
-  8032d56:	eb04 4410 	add.w	r4, r4, r0, lsr #16
 
-     if (q->len % 2 != 0) {
 
-  8032d5a:	d507      	bpl.n	8032d6c <inet_chksum_pbuf+0x30>
 
-       swapped = 1 - swapped;
 
-       acc = SWAP_BYTES_IN_WORD(acc);
 
-  8032d5c:	0623      	lsls	r3, r4, #24
 
-   swapped = 0;
 
-   for(q = p; q != NULL; q = q->next) {
 
-     acc += LWIP_CHKSUM(q->payload, q->len);
 
-     acc = FOLD_U32T(acc);
 
-     if (q->len % 2 != 0) {
 
-       swapped = 1 - swapped;
 
-  8032d5e:	f1c6 0601 	rsb	r6, r6, #1
 
-       acc = SWAP_BYTES_IN_WORD(acc);
 
-  8032d62:	f3c4 2407 	ubfx	r4, r4, #8, #8
 
-   swapped = 0;
 
-   for(q = p; q != NULL; q = q->next) {
 
-     acc += LWIP_CHKSUM(q->payload, q->len);
 
-     acc = FOLD_U32T(acc);
 
-     if (q->len % 2 != 0) {
 
-       swapped = 1 - swapped;
 
-  8032d66:	b2f6      	uxtb	r6, r6
 
-       acc = SWAP_BYTES_IN_WORD(acc);
 
-  8032d68:	ea44 4413 	orr.w	r4, r4, r3, lsr #16
 
-   struct pbuf *q;
 
-   u8_t swapped;
 
-   acc = 0;
 
-   swapped = 0;
 
-   for(q = p; q != NULL; q = q->next) {
 
-  8032d6c:	682d      	ldr	r5, [r5, #0]
 
-  8032d6e:	2d00      	cmp	r5, #0
 
-  8032d70:	d1e9      	bne.n	8032d46 <inet_chksum_pbuf+0xa>
 
-       swapped = 1 - swapped;
 
-       acc = SWAP_BYTES_IN_WORD(acc);
 
-     }
 
-   }
 
-   if (swapped) {
 
-  8032d72:	b126      	cbz	r6, 8032d7e <inet_chksum_pbuf+0x42>
 
-     acc = SWAP_BYTES_IN_WORD(acc);
 
-  8032d74:	0623      	lsls	r3, r4, #24
 
-  8032d76:	f3c4 2407 	ubfx	r4, r4, #8, #8
 
-  8032d7a:	ea44 4413 	orr.w	r4, r4, r3, lsr #16
 
-   }
 
-   return (u16_t)~(acc & 0xffffUL);
 
-  8032d7e:	43e0      	mvns	r0, r4
 
- }
 
-  8032d80:	b280      	uxth	r0, r0
 
-  8032d82:	bd70      	pop	{r4, r5, r6, pc}
 
- 08032d84 <ip4_addr_isbroadcast>:
 
- {
 
-   ip_addr_t ipaddr;
 
-   ip4_addr_set_u32(&ipaddr, addr);
 
-   /* all ones (broadcast) or all zeroes (old skool broadcast) */
 
-   if ((~addr == IPADDR_ANY) ||
 
-  8032d84:	1e43      	subs	r3, r0, #1
 
-  8032d86:	3303      	adds	r3, #3
 
-  8032d88:	d811      	bhi.n	8032dae <ip4_addr_isbroadcast+0x2a>
 
-       (addr == IPADDR_ANY)) {
 
-     return 1;
 
-   /* no broadcast support on this network interface? */
 
-   } else if ((netif->flags & NETIF_FLAG_BROADCAST) == 0) {
 
-  8032d8a:	f891 302d 	ldrb.w	r3, [r1, #45]	; 0x2d
 
-  8032d8e:	f003 0302 	and.w	r3, r3, #2
 
-  8032d92:	b2db      	uxtb	r3, r3
 
-  8032d94:	b16b      	cbz	r3, 8032db2 <ip4_addr_isbroadcast+0x2e>
 
-     /* the given address cannot be a broadcast address
 
-      * nor can we check against any broadcast addresses */
 
-     return 0;
 
-   /* address matches network interface address exactly? => no broadcast */
 
-   } else if (addr == ip4_addr_get_u32(&netif->ip_addr)) {
 
-  8032d96:	684a      	ldr	r2, [r1, #4]
 
-  8032d98:	4290      	cmp	r0, r2
 
-  8032d9a:	d00a      	beq.n	8032db2 <ip4_addr_isbroadcast+0x2e>
 
-     return 0;
 
-   /*  on the same (sub) network... */
 
-   } else if (ip_addr_netcmp(&ipaddr, &(netif->ip_addr), &(netif->netmask))
 
-  8032d9c:	688b      	ldr	r3, [r1, #8]
 
-  8032d9e:	4042      	eors	r2, r0
 
-  8032da0:	421a      	tst	r2, r3
 
-  8032da2:	d000      	beq.n	8032da6 <ip4_addr_isbroadcast+0x22>
 
-  8032da4:	e005      	b.n	8032db2 <ip4_addr_isbroadcast+0x2e>
 
-          /* ...and host identifier bits are all ones? =>... */
 
-           && ((addr & ~ip4_addr_get_u32(&netif->netmask)) ==
 
-  8032da6:	43db      	mvns	r3, r3
 
-  8032da8:	4018      	ands	r0, r3
 
-  8032daa:	4298      	cmp	r0, r3
 
-  8032dac:	d101      	bne.n	8032db2 <ip4_addr_isbroadcast+0x2e>
 
-   ip4_addr_set_u32(&ipaddr, addr);
 
-   /* all ones (broadcast) or all zeroes (old skool broadcast) */
 
-   if ((~addr == IPADDR_ANY) ||
 
-       (addr == IPADDR_ANY)) {
 
-     return 1;
 
-  8032dae:	2001      	movs	r0, #1
 
-  8032db0:	4770      	bx	lr
 
-   /* no broadcast support on this network interface? */
 
-   } else if ((netif->flags & NETIF_FLAG_BROADCAST) == 0) {
 
-     /* the given address cannot be a broadcast address
 
-      * nor can we check against any broadcast addresses */
 
-     return 0;
 
-  8032db2:	2000      	movs	r0, #0
 
-     /* => network broadcast address */
 
-     return 1;
 
-   } else {
 
-     return 0;
 
-   }
 
- }
 
-  8032db4:	4770      	bx	lr
 
- 08032db6 <ipaddr_aton>:
 
-  * @param addr pointer to which to save the ip address in network order
 
-  * @return 1 if cp could be converted to addr, 0 on failure
 
-  */
 
- int
 
- ipaddr_aton(const char *cp, ip_addr_t *addr)
 
- {
 
-  8032db6:	b5f0      	push	{r4, r5, r6, r7, lr}
 
-   u8_t base;
 
-   char c;
 
-   u32_t parts[4];
 
-   u32_t *pp = parts;
 
-   c = *cp;
 
-  8032db8:	7803      	ldrb	r3, [r0, #0]
 
-  * @param addr pointer to which to save the ip address in network order
 
-  * @return 1 if cp could be converted to addr, 0 on failure
 
-  */
 
- int
 
- ipaddr_aton(const char *cp, ip_addr_t *addr)
 
- {
 
-  8032dba:	b085      	sub	sp, #20
 
-  8032dbc:	460e      	mov	r6, r1
 
-   u8_t base;
 
-   char c;
 
-   u32_t parts[4];
 
-   u32_t *pp = parts;
 
-   c = *cp;
 
-  8032dbe:	2400      	movs	r4, #0
 
-  * @param cp IP address in ascii represenation (e.g. "127.0.0.1")
 
-  * @param addr pointer to which to save the ip address in network order
 
-  * @return 1 if cp could be converted to addr, 0 on failure
 
-  */
 
- int
 
- ipaddr_aton(const char *cp, ip_addr_t *addr)
 
-  8032dc0:	aa00      	add	r2, sp, #0
 
-  8032dc2:	18a7      	adds	r7, r4, r2
 
-     /*
 
-      * Collect number up to ``.''.
 
-      * Values are specified as for C:
 
-      * 0x=hex, 0=octal, 1-9=decimal.
 
-      */
 
-     if (!isdigit(c))
 
-  8032dc4:	f1a3 0230 	sub.w	r2, r3, #48	; 0x30
 
-  8032dc8:	2a09      	cmp	r2, #9
 
-  8032dca:	d86d      	bhi.n	8032ea8 <ipaddr_aton+0xf2>
 
-       return (0);
 
-     val = 0;
 
-     base = 10;
 
-     if (c == '0') {
 
-  8032dcc:	2b30      	cmp	r3, #48	; 0x30
 
-  8032dce:	d10b      	bne.n	8032de8 <ipaddr_aton+0x32>
 
-       c = *++cp;
 
-  8032dd0:	7843      	ldrb	r3, [r0, #1]
 
-       if (c == 'x' || c == 'X') {
 
-  8032dd2:	2b78      	cmp	r3, #120	; 0x78
 
-  8032dd4:	d004      	beq.n	8032de0 <ipaddr_aton+0x2a>
 
-  8032dd6:	2b58      	cmp	r3, #88	; 0x58
 
-  8032dd8:	d002      	beq.n	8032de0 <ipaddr_aton+0x2a>
 
-     if (!isdigit(c))
 
-       return (0);
 
-     val = 0;
 
-     base = 10;
 
-     if (c == '0') {
 
-       c = *++cp;
 
-  8032dda:	3001      	adds	r0, #1
 
-       if (c == 'x' || c == 'X') {
 
-         base = 16;
 
-         c = *++cp;
 
-       } else
 
-         base = 8;
 
-  8032ddc:	2508      	movs	r5, #8
 
-  8032dde:	e004      	b.n	8032dea <ipaddr_aton+0x34>
 
-     base = 10;
 
-     if (c == '0') {
 
-       c = *++cp;
 
-       if (c == 'x' || c == 'X') {
 
-         base = 16;
 
-         c = *++cp;
 
-  8032de0:	7883      	ldrb	r3, [r0, #2]
 
-     val = 0;
 
-     base = 10;
 
-     if (c == '0') {
 
-       c = *++cp;
 
-       if (c == 'x' || c == 'X') {
 
-         base = 16;
 
-  8032de2:	2510      	movs	r5, #16
 
-         c = *++cp;
 
-  8032de4:	3002      	adds	r0, #2
 
-  8032de6:	e000      	b.n	8032dea <ipaddr_aton+0x34>
 
-      * 0x=hex, 0=octal, 1-9=decimal.
 
-      */
 
-     if (!isdigit(c))
 
-       return (0);
 
-     val = 0;
 
-     base = 10;
 
-  8032de8:	250a      	movs	r5, #10
 
-  8032dea:	4602      	mov	r2, r0
 
-     if (c == '0') {
 
-       c = *++cp;
 
-       if (c == 'x' || c == 'X') {
 
-         base = 16;
 
-  8032dec:	2000      	movs	r0, #0
 
-  8032dee:	e000      	b.n	8032df2 <ipaddr_aton+0x3c>
 
-  8032df0:	3201      	adds	r2, #1
 
-         c = *++cp;
 
-       } else
 
-         base = 8;
 
-     }
 
-     for (;;) {
 
-       if (isdigit(c)) {
 
-  8032df2:	f1a3 0130 	sub.w	r1, r3, #48	; 0x30
 
-  8032df6:	2909      	cmp	r1, #9
 
-  8032df8:	d803      	bhi.n	8032e02 <ipaddr_aton+0x4c>
 
-         val = (val * base) + (int)(c - '0');
 
-  8032dfa:	fb05 3000 	mla	r0, r5, r0, r3
 
-  8032dfe:	3830      	subs	r0, #48	; 0x30
 
-  8032e00:	e013      	b.n	8032e2a <ipaddr_aton+0x74>
 
-         c = *++cp;
 
-       } else if (base == 16 && isxdigit(c)) {
 
-  8032e02:	2d10      	cmp	r5, #16
 
-  8032e04:	d113      	bne.n	8032e2e <ipaddr_aton+0x78>
 
-  8032e06:	f1a3 0161 	sub.w	r1, r3, #97	; 0x61
 
-  8032e0a:	b2c9      	uxtb	r1, r1
 
-  8032e0c:	2905      	cmp	r1, #5
 
-  8032e0e:	d904      	bls.n	8032e1a <ipaddr_aton+0x64>
 
-  8032e10:	f1a3 0c41 	sub.w	ip, r3, #65	; 0x41
 
-  8032e14:	f1bc 0f05 	cmp.w	ip, #5
 
-  8032e18:	d809      	bhi.n	8032e2e <ipaddr_aton+0x78>
 
-         val = (val << 4) | (int)(c + 10 - (islower(c) ? 'a' : 'A'));
 
-  8032e1a:	330a      	adds	r3, #10
 
-  8032e1c:	2919      	cmp	r1, #25
 
-  8032e1e:	bf8c      	ite	hi
 
-  8032e20:	2141      	movhi	r1, #65	; 0x41
 
-  8032e22:	2161      	movls	r1, #97	; 0x61
 
-  8032e24:	1a5b      	subs	r3, r3, r1
 
-  8032e26:	ea43 1000 	orr.w	r0, r3, r0, lsl #4
 
-         c = *++cp;
 
-  8032e2a:	7853      	ldrb	r3, [r2, #1]
 
-  8032e2c:	e7e0      	b.n	8032df0 <ipaddr_aton+0x3a>
 
-       } else
 
-         break;
 
-     }
 
-     if (c == '.') {
 
-  8032e2e:	2b2e      	cmp	r3, #46	; 0x2e
 
-  8032e30:	d107      	bne.n	8032e42 <ipaddr_aton+0x8c>
 
-        * Internet format:
 
-        *  a.b.c.d
 
-        *  a.b.c   (with c treated as 16 bits)
 
-        *  a.b (with b treated as 24 bits)
 
-        */
 
-       if (pp >= parts + 3) {
 
-  8032e32:	2c0c      	cmp	r4, #12
 
-  8032e34:	d038      	beq.n	8032ea8 <ipaddr_aton+0xf2>
 
-         return (0);
 
-       }
 
-       *pp++ = val;
 
-  8032e36:	f84d 0004 	str.w	r0, [sp, r4]
 
-       c = *++cp;
 
-  8032e3a:	7853      	ldrb	r3, [r2, #1]
 
-  8032e3c:	1c50      	adds	r0, r2, #1
 
-  8032e3e:	3404      	adds	r4, #4
 
-     } else
 
-       break;
 
-   }
 
-  8032e40:	e7be      	b.n	8032dc0 <ipaddr_aton+0xa>
 
-  8032e42:	2b0d      	cmp	r3, #13
 
-  8032e44:	d803      	bhi.n	8032e4e <ipaddr_aton+0x98>
 
-  8032e46:	2b09      	cmp	r3, #9
 
-  8032e48:	d203      	bcs.n	8032e52 <ipaddr_aton+0x9c>
 
-  8032e4a:	b113      	cbz	r3, 8032e52 <ipaddr_aton+0x9c>
 
-  8032e4c:	e02c      	b.n	8032ea8 <ipaddr_aton+0xf2>
 
-  8032e4e:	2b20      	cmp	r3, #32
 
-  8032e50:	d12a      	bne.n	8032ea8 <ipaddr_aton+0xf2>
 
-   }
 
-   /*
 
-    * Concoct the address according to
 
-    * the number of parts specified.
 
-    */
 
-   switch (pp - parts + 1) {
 
-  8032e52:	466b      	mov	r3, sp
 
-  8032e54:	1afb      	subs	r3, r7, r3
 
-  8032e56:	109b      	asrs	r3, r3, #2
 
-  8032e58:	3301      	adds	r3, #1
 
-  8032e5a:	2b04      	cmp	r3, #4
 
-  8032e5c:	d81f      	bhi.n	8032e9e <ipaddr_aton+0xe8>
 
-  8032e5e:	e8df f003 	tbb	[pc, r3]
 
-  8032e62:	1e23      	.short	0x1e23
 
-  8032e64:	0a03      	.short	0x0a03
 
-  8032e66:	13          	.byte	0x13
 
-  8032e67:	00          	.byte	0x00
 
-   case 1:             /* a -- 32 bits */
 
-     break;
 
-   case 2:             /* a.b -- 8.24 bits */
 
-     if (val > 0xffffffUL) {
 
-  8032e68:	f1b0 7f80 	cmp.w	r0, #16777216	; 0x1000000
 
-  8032e6c:	d21c      	bcs.n	8032ea8 <ipaddr_aton+0xf2>
 
-       return (0);
 
-     }
 
-     val |= parts[0] << 24;
 
-  8032e6e:	9b00      	ldr	r3, [sp, #0]
 
-  8032e70:	ea40 6003 	orr.w	r0, r0, r3, lsl #24
 
-     break;
 
-  8032e74:	e013      	b.n	8032e9e <ipaddr_aton+0xe8>
 
-   case 3:             /* a.b.c -- 8.8.16 bits */
 
-     if (val > 0xffff) {
 
-  8032e76:	f5b0 3f80 	cmp.w	r0, #65536	; 0x10000
 
-  8032e7a:	d215      	bcs.n	8032ea8 <ipaddr_aton+0xf2>
 
-       return (0);
 
-     }
 
-     val |= (parts[0] << 24) | (parts[1] << 16);
 
-  8032e7c:	9b00      	ldr	r3, [sp, #0]
 
-  8032e7e:	061a      	lsls	r2, r3, #24
 
-  8032e80:	9b01      	ldr	r3, [sp, #4]
 
-  8032e82:	ea42 4303 	orr.w	r3, r2, r3, lsl #16
 
-  8032e86:	e009      	b.n	8032e9c <ipaddr_aton+0xe6>
 
-     break;
 
-   case 4:             /* a.b.c.d -- 8.8.8.8 bits */
 
-     if (val > 0xff) {
 
-  8032e88:	28ff      	cmp	r0, #255	; 0xff
 
-  8032e8a:	d80d      	bhi.n	8032ea8 <ipaddr_aton+0xf2>
 
-       return (0);
 
-     }
 
-     val |= (parts[0] << 24) | (parts[1] << 16) | (parts[2] << 8);
 
-  8032e8c:	9b00      	ldr	r3, [sp, #0]
 
-  8032e8e:	061a      	lsls	r2, r3, #24
 
-  8032e90:	9b01      	ldr	r3, [sp, #4]
 
-  8032e92:	ea42 4203 	orr.w	r2, r2, r3, lsl #16
 
-  8032e96:	9b02      	ldr	r3, [sp, #8]
 
-  8032e98:	ea42 2303 	orr.w	r3, r2, r3, lsl #8
 
-  8032e9c:	4318      	orrs	r0, r3
 
-     break;
 
-   default:
 
-     LWIP_ASSERT("unhandled", 0);
 
-     break;
 
-   }
 
-   if (addr) {
 
-  8032e9e:	b12e      	cbz	r6, 8032eac <ipaddr_aton+0xf6>
 
-     ip4_addr_set_u32(addr, htonl(val));
 
-  8032ea0:	f7fb fe80 	bl	802eba4 <lwip_htonl>
 
-  8032ea4:	6030      	str	r0, [r6, #0]
 
-  8032ea6:	e001      	b.n	8032eac <ipaddr_aton+0xf6>
 
-      * Collect number up to ``.''.
 
-      * Values are specified as for C:
 
-      * 0x=hex, 0=octal, 1-9=decimal.
 
-      */
 
-     if (!isdigit(c))
 
-       return (0);
 
-  8032ea8:	2000      	movs	r0, #0
 
-  8032eaa:	e000      	b.n	8032eae <ipaddr_aton+0xf8>
 
-     break;
 
-   }
 
-   if (addr) {
 
-     ip4_addr_set_u32(addr, htonl(val));
 
-   }
 
-   return (1);
 
-  8032eac:	2001      	movs	r0, #1
 
- }
 
-  8032eae:	b005      	add	sp, #20
 
-  8032eb0:	bdf0      	pop	{r4, r5, r6, r7, pc}
 
- 08032eb2 <ipaddr_addr>:
 
-  * @param cp IP address in ascii represenation (e.g. "127.0.0.1")
 
-  * @return ip address in network order
 
-  */
 
- u32_t
 
- ipaddr_addr(const char *cp)
 
- {
 
-  8032eb2:	b507      	push	{r0, r1, r2, lr}
 
-   ip_addr_t val;
 
-   if (ipaddr_aton(cp, &val)) {
 
-  8032eb4:	a901      	add	r1, sp, #4
 
-  8032eb6:	f7ff ff7e 	bl	8032db6 <ipaddr_aton>
 
-  8032eba:	b108      	cbz	r0, 8032ec0 <ipaddr_addr+0xe>
 
-     return ip4_addr_get_u32(&val);
 
-  8032ebc:	9801      	ldr	r0, [sp, #4]
 
-  8032ebe:	e001      	b.n	8032ec4 <ipaddr_addr+0x12>
 
-   }
 
-   return (IPADDR_NONE);
 
-  8032ec0:	f04f 30ff 	mov.w	r0, #4294967295
 
- }
 
-  8032ec4:	bd0e      	pop	{r1, r2, r3, pc}
 
- 08032ec6 <ipaddr_ntoa_r>:
 
-  * @param buflen length of buf
 
-  * @return either pointer to buf which now holds the ASCII
 
-  *         representation of addr or NULL if buf was too small
 
-  */
 
- char *ipaddr_ntoa_r(const ip_addr_t *addr, char *buf, int buflen)
 
- {
 
-  8032ec6:	e92d 4ff7 	stmdb	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-   u8_t rem;
 
-   u8_t n;
 
-   u8_t i;
 
-   int len = 0;
 
-   s_addr = ip4_addr_get_u32(addr);
 
-  8032eca:	6803      	ldr	r3, [r0, #0]
 
-  8032ecc:	a802      	add	r0, sp, #8
 
-  * @param buf target buffer where the string is stored
 
-  * @param buflen length of buf
 
-  * @return either pointer to buf which now holds the ASCII
 
-  *         representation of addr or NULL if buf was too small
 
-  */
 
- char *ipaddr_ntoa_r(const ip_addr_t *addr, char *buf, int buflen)
 
-  8032ece:	f10d 0807 	add.w	r8, sp, #7
 
-   u8_t rem;
 
-   u8_t n;
 
-   u8_t i;
 
-   int len = 0;
 
-   s_addr = ip4_addr_get_u32(addr);
 
-  8032ed2:	f840 3d04 	str.w	r3, [r0, #-4]!
 
-   rp = buf;
 
-  8032ed6:	460c      	mov	r4, r1
 
-  * @param buf target buffer where the string is stored
 
-  * @param buflen length of buf
 
-  * @return either pointer to buf which now holds the ASCII
 
-  *         representation of addr or NULL if buf was too small
 
-  */
 
- char *ipaddr_ntoa_r(const ip_addr_t *addr, char *buf, int buflen)
 
-  8032ed8:	3801      	subs	r0, #1
 
-   char *rp;
 
-   u8_t *ap;
 
-   u8_t rem;
 
-   u8_t n;
 
-   u8_t i;
 
-   int len = 0;
 
-  8032eda:	2700      	movs	r7, #0
 
-   rp = buf;
 
-   ap = (u8_t *)&s_addr;
 
-   for(n = 0; n < 4; n++) {
 
-     i = 0;
 
-     do {
 
-       rem = *ap % (u8_t)10;
 
-  8032edc:	f04f 0c0a 	mov.w	ip, #10
 
-       *rp++ = inv[i];
 
-     }
 
-     if (len++ >= buflen) {
 
-       return NULL;
 
-     }
 
-     *rp++ = '.';
 
-  8032ee0:	f04f 092e 	mov.w	r9, #46	; 0x2e
 
-  8032ee4:	7843      	ldrb	r3, [r0, #1]
 
-  * @param buf target buffer where the string is stored
 
-  * @param buflen length of buf
 
-  * @return either pointer to buf which now holds the ASCII
 
-  *         representation of addr or NULL if buf was too small
 
-  */
 
- char *ipaddr_ntoa_r(const ip_addr_t *addr, char *buf, int buflen)
 
-  8032ee6:	2500      	movs	r5, #0
 
-   rp = buf;
 
-   ap = (u8_t *)&s_addr;
 
-   for(n = 0; n < 4; n++) {
 
-     i = 0;
 
-     do {
 
-       rem = *ap % (u8_t)10;
 
-  8032ee8:	fbb3 f6fc 	udiv	r6, r3, ip
 
-       *ap /= (u8_t)10;
 
-       inv[i++] = '0' + rem;
 
-  8032eec:	f10d 0b08 	add.w	fp, sp, #8
 
-   rp = buf;
 
-   ap = (u8_t *)&s_addr;
 
-   for(n = 0; n < 4; n++) {
 
-     i = 0;
 
-     do {
 
-       rem = *ap % (u8_t)10;
 
-  8032ef0:	fb0c 3a16 	mls	sl, ip, r6, r3
 
-       *ap /= (u8_t)10;
 
-       inv[i++] = '0' + rem;
 
-  8032ef4:	eb0b 0305 	add.w	r3, fp, r5
 
-  8032ef8:	f10a 0a30 	add.w	sl, sl, #48	; 0x30
 
-  8032efc:	3501      	adds	r5, #1
 
-  8032efe:	f803 ac08 	strb.w	sl, [r3, #-8]
 
-     } while(*ap);
 
-  8032f02:	f016 03ff 	ands.w	r3, r6, #255	; 0xff
 
-   for(n = 0; n < 4; n++) {
 
-     i = 0;
 
-     do {
 
-       rem = *ap % (u8_t)10;
 
-       *ap /= (u8_t)10;
 
-       inv[i++] = '0' + rem;
 
-  8032f06:	b2ed      	uxtb	r5, r5
 
-     } while(*ap);
 
-  8032f08:	d1ee      	bne.n	8032ee8 <ipaddr_ntoa_r+0x22>
 
-  8032f0a:	3d01      	subs	r5, #1
 
-  * @param buf target buffer where the string is stored
 
-  * @param buflen length of buf
 
-  * @return either pointer to buf which now holds the ASCII
 
-  *         representation of addr or NULL if buf was too small
 
-  */
 
- char *ipaddr_ntoa_r(const ip_addr_t *addr, char *buf, int buflen)
 
-  8032f0c:	1be6      	subs	r6, r4, r7
 
-  8032f0e:	f800 3f01 	strb.w	r3, [r0, #1]!
 
-  8032f12:	b2ed      	uxtb	r5, r5
 
-  8032f14:	463b      	mov	r3, r7
 
-  8032f16:	4637      	mov	r7, r6
 
-  8032f18:	e00b      	b.n	8032f32 <ipaddr_ntoa_r+0x6c>
 
-  8032f1a:	1e6c      	subs	r4, r5, #1
 
-       rem = *ap % (u8_t)10;
 
-       *ap /= (u8_t)10;
 
-       inv[i++] = '0' + rem;
 
-     } while(*ap);
 
-     while(i--) {
 
-       if (len++ >= buflen) {
 
-  8032f1c:	4293      	cmp	r3, r2
 
-  8032f1e:	b2e4      	uxtb	r4, r4
 
-  8032f20:	da16      	bge.n	8032f50 <ipaddr_ntoa_r+0x8a>
 
-         return NULL;
 
-       }
 
-       *rp++ = inv[i];
 
-  8032f22:	f10d 0a08 	add.w	sl, sp, #8
 
-  8032f26:	4455      	add	r5, sl
 
-  8032f28:	f815 5c08 	ldrb.w	r5, [r5, #-8]
 
-  8032f2c:	54fd      	strb	r5, [r7, r3]
 
-  8032f2e:	3301      	adds	r3, #1
 
-  8032f30:	4625      	mov	r5, r4
 
-     do {
 
-       rem = *ap % (u8_t)10;
 
-       *ap /= (u8_t)10;
 
-       inv[i++] = '0' + rem;
 
-     } while(*ap);
 
-     while(i--) {
 
-  8032f32:	2dff      	cmp	r5, #255	; 0xff
 
-  * @param buf target buffer where the string is stored
 
-  * @param buflen length of buf
 
-  * @return either pointer to buf which now holds the ASCII
 
-  *         representation of addr or NULL if buf was too small
 
-  */
 
- char *ipaddr_ntoa_r(const ip_addr_t *addr, char *buf, int buflen)
 
-  8032f34:	eb06 0403 	add.w	r4, r6, r3
 
-     do {
 
-       rem = *ap % (u8_t)10;
 
-       *ap /= (u8_t)10;
 
-       inv[i++] = '0' + rem;
 
-     } while(*ap);
 
-     while(i--) {
 
-  8032f38:	d1ef      	bne.n	8032f1a <ipaddr_ntoa_r+0x54>
 
-       if (len++ >= buflen) {
 
-         return NULL;
 
-       }
 
-       *rp++ = inv[i];
 
-     }
 
-     if (len++ >= buflen) {
 
-  8032f3a:	1c5f      	adds	r7, r3, #1
 
-  8032f3c:	4293      	cmp	r3, r2
 
-  8032f3e:	da07      	bge.n	8032f50 <ipaddr_ntoa_r+0x8a>
 
-   s_addr = ip4_addr_get_u32(addr);
 
-   rp = buf;
 
-   ap = (u8_t *)&s_addr;
 
-   for(n = 0; n < 4; n++) {
 
-  8032f40:	4540      	cmp	r0, r8
 
-       *rp++ = inv[i];
 
-     }
 
-     if (len++ >= buflen) {
 
-       return NULL;
 
-     }
 
-     *rp++ = '.';
 
-  8032f42:	f804 9b01 	strb.w	r9, [r4], #1
 
-   s_addr = ip4_addr_get_u32(addr);
 
-   rp = buf;
 
-   ap = (u8_t *)&s_addr;
 
-   for(n = 0; n < 4; n++) {
 
-  8032f46:	d1cd      	bne.n	8032ee4 <ipaddr_ntoa_r+0x1e>
 
-       return NULL;
 
-     }
 
-     *rp++ = '.';
 
-     ap++;
 
-   }
 
-   *--rp = 0;
 
-  8032f48:	2300      	movs	r3, #0
 
-  8032f4a:	f804 3c01 	strb.w	r3, [r4, #-1]
 
-  8032f4e:	e000      	b.n	8032f52 <ipaddr_ntoa_r+0x8c>
 
-       *ap /= (u8_t)10;
 
-       inv[i++] = '0' + rem;
 
-     } while(*ap);
 
-     while(i--) {
 
-       if (len++ >= buflen) {
 
-         return NULL;
 
-  8032f50:	2100      	movs	r1, #0
 
-     *rp++ = '.';
 
-     ap++;
 
-   }
 
-   *--rp = 0;
 
-   return buf;
 
- }
 
-  8032f52:	4608      	mov	r0, r1
 
-  8032f54:	e8bd 8ffe 	ldmia.w	sp!, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
- 08032f58 <ipaddr_ntoa>:
 
-  */
 
- char *
 
- ipaddr_ntoa(const ip_addr_t *addr)
 
- {
 
-   static char str[16];
 
-   return ipaddr_ntoa_r(addr, str, 16);
 
-  8032f58:	4901      	ldr	r1, [pc, #4]	; (8032f60 <ipaddr_ntoa+0x8>)
 
-  8032f5a:	2210      	movs	r2, #16
 
-  8032f5c:	f7ff bfb3 	b.w	8032ec6 <ipaddr_ntoa_r>
 
-  8032f60:	2000c414 	.word	0x2000c414
 
- 08032f64 <ip_route>:
 
-     return netif;
 
-   }
 
- #endif
 
-   /* iterate through netifs */
 
-   for (netif = netif_list; netif != NULL; netif = netif->next) {
 
-  8032f64:	4b0f      	ldr	r3, [pc, #60]	; (8032fa4 <ip_route+0x40>)
 
-  * @param dest the destination IP address for which to find the route
 
-  * @return the netif on which to send to reach dest
 
-  */
 
- struct netif *
 
- ip_route(ip_addr_t *dest)
 
- {
 
-  8032f66:	b510      	push	{r4, lr}
 
-     return netif;
 
-   }
 
- #endif
 
-   /* iterate through netifs */
 
-   for (netif = netif_list; netif != NULL; netif = netif->next) {
 
-  8032f68:	681c      	ldr	r4, [r3, #0]
 
-  8032f6a:	e00a      	b.n	8032f82 <ip_route+0x1e>
 
-     /* network mask matches? */
 
-     if (netif_is_up(netif)) {
 
-  8032f6c:	f894 302d 	ldrb.w	r3, [r4, #45]	; 0x2d
 
-  8032f70:	07d9      	lsls	r1, r3, #31
 
-  8032f72:	d505      	bpl.n	8032f80 <ip_route+0x1c>
 
-       if (ip_addr_netcmp(dest, &(netif->ip_addr), &(netif->netmask))) {
 
-  8032f74:	6803      	ldr	r3, [r0, #0]
 
-  8032f76:	6862      	ldr	r2, [r4, #4]
 
-  8032f78:	405a      	eors	r2, r3
 
-  8032f7a:	68a3      	ldr	r3, [r4, #8]
 
-  8032f7c:	421a      	tst	r2, r3
 
-  8032f7e:	d00e      	beq.n	8032f9e <ip_route+0x3a>
 
-     return netif;
 
-   }
 
- #endif
 
-   /* iterate through netifs */
 
-   for (netif = netif_list; netif != NULL; netif = netif->next) {
 
-  8032f80:	6824      	ldr	r4, [r4, #0]
 
-  8032f82:	2c00      	cmp	r4, #0
 
-  8032f84:	d1f2      	bne.n	8032f6c <ip_route+0x8>
 
-         /* return netif on which to forward IP packet */
 
-         return netif;
 
-       }
 
-     }
 
-   }
 
-   if ((netif_default == NULL) || (!netif_is_up(netif_default))) {
 
-  8032f86:	4b08      	ldr	r3, [pc, #32]	; (8032fa8 <ip_route+0x44>)
 
-  8032f88:	681b      	ldr	r3, [r3, #0]
 
-  8032f8a:	b12b      	cbz	r3, 8032f98 <ip_route+0x34>
 
-  8032f8c:	f893 202d 	ldrb.w	r2, [r3, #45]	; 0x2d
 
-  8032f90:	07d2      	lsls	r2, r2, #31
 
-  8032f92:	bf48      	it	mi
 
-  8032f94:	461c      	movmi	r4, r3
 
-  8032f96:	d402      	bmi.n	8032f9e <ip_route+0x3a>
 
-     LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("ip_route: No route to %"U16_F".%"U16_F".%"U16_F".%"U16_F"\n",
 
-       ip4_addr1_16(dest), ip4_addr2_16(dest), ip4_addr3_16(dest), ip4_addr4_16(dest)));
 
-     IP_STATS_INC(ip.rterr);
 
-     snmp_inc_ipoutnoroutes();
 
-  8032f98:	f001 fcd8 	bl	803494c <snmp_inc_ipoutnoroutes>
 
-     return NULL;
 
-  8032f9c:	e7ff      	b.n	8032f9e <ip_route+0x3a>
 
-   }
 
-   /* no matching netif found, use default netif */
 
-   return netif_default;
 
- }
 
-  8032f9e:	4620      	mov	r0, r4
 
-  8032fa0:	bd10      	pop	{r4, pc}
 
-  8032fa2:	bf00      	nop
 
-  8032fa4:	2000f6b0 	.word	0x2000f6b0
 
-  8032fa8:	2000f6b4 	.word	0x2000f6b4
 
- 08032fac <ip_input>:
 
-  * @return ERR_OK if the packet was processed (could return ERR_* if it wasn't
 
-  *         processed, but currently always returns ERR_OK)
 
-  */
 
- err_t
 
- ip_input(struct pbuf *p, struct netif *inp)
 
- {
 
-  8032fac:	e92d 4ff8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-  8032fb0:	4604      	mov	r4, r0
 
-  8032fb2:	460f      	mov	r7, r1
 
- #if IP_ACCEPT_LINK_LAYER_ADDRESSING
 
-   int check_ip_src=1;
 
- #endif /* IP_ACCEPT_LINK_LAYER_ADDRESSING */
 
-   IP_STATS_INC(ip.recv);
 
-   snmp_inc_ipinreceives();
 
-  8032fb4:	f001 fc8a 	bl	80348cc <snmp_inc_ipinreceives>
 
-   /* identify the IP header */
 
-   iphdr = (struct ip_hdr *)p->payload;
 
-  8032fb8:	6866      	ldr	r6, [r4, #4]
 
-   if (IPH_V(iphdr) != 4) {
 
-  8032fba:	f896 8000 	ldrb.w	r8, [r6]
 
-  8032fbe:	ea4f 1318 	mov.w	r3, r8, lsr #4
 
-  8032fc2:	2b04      	cmp	r3, #4
 
-  8032fc4:	d005      	beq.n	8032fd2 <ip_input+0x26>
 
-     LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_LEVEL_WARNING, ("IP packet dropped due to bad version number %"U16_F"\n", IPH_V(iphdr)));
 
-     ip_debug_print(p);
 
-     pbuf_free(p);
 
-  8032fc6:	4620      	mov	r0, r4
 
-  8032fc8:	f7fc ff20 	bl	802fe0c <pbuf_free>
 
-     IP_STATS_INC(ip.err);
 
-     IP_STATS_INC(ip.drop);
 
-     snmp_inc_ipinhdrerrors();
 
-  8032fcc:	f001 fc86 	bl	80348dc <snmp_inc_ipinhdrerrors>
 
-     return ERR_OK;
 
-  8032fd0:	e0be      	b.n	8033150 <ip_input+0x1a4>
 
-   /* obtain IP header length in number of 32-bit words */
 
-   iphdr_hlen = IPH_HL(iphdr);
 
-   /* calculate IP header length in bytes */
 
-   iphdr_hlen *= 4;
 
-   /* obtain ip length in bytes */
 
-   iphdr_len = ntohs(IPH_LEN(iphdr));
 
-  8032fd2:	8870      	ldrh	r0, [r6, #2]
 
-  8032fd4:	f7fb fde1 	bl	802eb9a <lwip_ntohs>
 
-     return ERR_OK;
 
-   }
 
- #endif
 
-   /* obtain IP header length in number of 32-bit words */
 
-   iphdr_hlen = IPH_HL(iphdr);
 
-  8032fd8:	f008 080f 	and.w	r8, r8, #15
 
-   iphdr_hlen *= 4;
 
-   /* obtain ip length in bytes */
 
-   iphdr_len = ntohs(IPH_LEN(iphdr));
 
-   /* header length exceeds first pbuf length, or ip length exceeds total pbuf length? */
 
-   if ((iphdr_hlen > p->len) || (iphdr_len > p->tot_len)) {
 
-  8032fdc:	8963      	ldrh	r3, [r4, #10]
 
- #endif
 
-   /* obtain IP header length in number of 32-bit words */
 
-   iphdr_hlen = IPH_HL(iphdr);
 
-   /* calculate IP header length in bytes */
 
-   iphdr_hlen *= 4;
 
-  8032fde:	ea4f 0888 	mov.w	r8, r8, lsl #2
 
-   /* obtain ip length in bytes */
 
-   iphdr_len = ntohs(IPH_LEN(iphdr));
 
-   /* header length exceeds first pbuf length, or ip length exceeds total pbuf length? */
 
-   if ((iphdr_hlen > p->len) || (iphdr_len > p->tot_len)) {
 
-  8032fe2:	4543      	cmp	r3, r8
 
-   /* obtain IP header length in number of 32-bit words */
 
-   iphdr_hlen = IPH_HL(iphdr);
 
-   /* calculate IP header length in bytes */
 
-   iphdr_hlen *= 4;
 
-   /* obtain ip length in bytes */
 
-   iphdr_len = ntohs(IPH_LEN(iphdr));
 
-  8032fe4:	4601      	mov	r1, r0
 
-       LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_LEVEL_SERIOUS,
 
-         ("IP (len %"U16_F") is longer than pbuf (len %"U16_F"), IP packet dropped.\n",
 
-         iphdr_len, p->tot_len));
 
-     }
 
-     /* free (drop) packet pbufs */
 
-     pbuf_free(p);
 
-  8032fe6:	4620      	mov	r0, r4
 
-   iphdr_hlen *= 4;
 
-   /* obtain ip length in bytes */
 
-   iphdr_len = ntohs(IPH_LEN(iphdr));
 
-   /* header length exceeds first pbuf length, or ip length exceeds total pbuf length? */
 
-   if ((iphdr_hlen > p->len) || (iphdr_len > p->tot_len)) {
 
-  8032fe8:	d302      	bcc.n	8032ff0 <ip_input+0x44>
 
-  8032fea:	8923      	ldrh	r3, [r4, #8]
 
-  8032fec:	428b      	cmp	r3, r1
 
-  8032fee:	d202      	bcs.n	8032ff6 <ip_input+0x4a>
 
-       LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_LEVEL_SERIOUS,
 
-         ("IP (len %"U16_F") is longer than pbuf (len %"U16_F"), IP packet dropped.\n",
 
-         iphdr_len, p->tot_len));
 
-     }
 
-     /* free (drop) packet pbufs */
 
-     pbuf_free(p);
 
-  8032ff0:	f7fc ff0c 	bl	802fe0c <pbuf_free>
 
-  8032ff4:	e045      	b.n	8033082 <ip_input+0xd6>
 
-   }
 
- #endif
 
-   /* Trim pbuf. This should have been done at the netif layer,
 
-    * but we'll do it anyway just to be sure that its done. */
 
-   pbuf_realloc(p, iphdr_len);
 
-  8032ff6:	f7fc ff30 	bl	802fe5a <pbuf_realloc>
 
-   /* copy IP addresses to aligned ip_addr_t */
 
-   ip_addr_copy(current_iphdr_dest, iphdr->dest);
 
-  8032ffa:	6932      	ldr	r2, [r6, #16]
 
-  8032ffc:	4b56      	ldr	r3, [pc, #344]	; (8033158 <ip_input+0x1ac>)
 
-         }
 
- #endif /* LWIP_AUTOIP */
 
-       }
 
-       if (first) {
 
-         first = 0;
 
-         netif = netif_list;
 
-  8032ffe:	f8df b168 	ldr.w	fp, [pc, #360]	; 8033168 <ip_input+0x1bc>
 
-   /* Trim pbuf. This should have been done at the netif layer,
 
-    * but we'll do it anyway just to be sure that its done. */
 
-   pbuf_realloc(p, iphdr_len);
 
-   /* copy IP addresses to aligned ip_addr_t */
 
-   ip_addr_copy(current_iphdr_dest, iphdr->dest);
 
-  8033002:	601a      	str	r2, [r3, #0]
 
-   ip_addr_copy(current_iphdr_src, iphdr->src);
 
-  8033004:	68f1      	ldr	r1, [r6, #12]
 
-  8033006:	4a55      	ldr	r2, [pc, #340]	; (803315c <ip_input+0x1b0>)
 
-  8033008:	463d      	mov	r5, r7
 
-  803300a:	6011      	str	r1, [r2, #0]
 
- #endif /* LWIP_IGMP */
 
-   {
 
-     /* start trying with inp. if that's not acceptable, start walking the
 
-        list of configured netifs.
 
-        'first' is used as a boolean to mark whether we started walking the list */
 
-     int first = 1;
 
-  803300c:	f04f 0901 	mov.w	r9, #1
 
-           ip4_addr_get_u32(&iphdr->dest) & ~ip4_addr_get_u32(&netif->netmask)));
 
-       /* interface is up and configured? */
 
-       if ((netif_is_up(netif)) && (!ip_addr_isany(&(netif->ip_addr)))) {
 
-         /* unicast to this interface address? */
 
-         if (ip_addr_cmp(¤t_iphdr_dest, &(netif->ip_addr)) ||
 
-  8033010:	469a      	mov	sl, r3
 
-           ip4_addr_get_u32(&iphdr->dest) & ip4_addr_get_u32(&netif->netmask),
 
-           ip4_addr_get_u32(&netif->ip_addr) & ip4_addr_get_u32(&netif->netmask),
 
-           ip4_addr_get_u32(&iphdr->dest) & ~ip4_addr_get_u32(&netif->netmask)));
 
-       /* interface is up and configured? */
 
-       if ((netif_is_up(netif)) && (!ip_addr_isany(&(netif->ip_addr)))) {
 
-  8033012:	f895 302d 	ldrb.w	r3, [r5, #45]	; 0x2d
 
-  8033016:	07d8      	lsls	r0, r3, #31
 
-  8033018:	d403      	bmi.n	8033022 <ip_input+0x76>
 
-           /* break out of for loop */
 
-           break;
 
-         }
 
- #endif /* LWIP_AUTOIP */
 
-       }
 
-       if (first) {
 
-  803301a:	f1b9 0f00 	cmp.w	r9, #0
 
-  803301e:	d10e      	bne.n	803303e <ip_input+0x92>
 
-  8033020:	e010      	b.n	8033044 <ip_input+0x98>
 
-           ip4_addr_get_u32(&iphdr->dest) & ip4_addr_get_u32(&netif->netmask),
 
-           ip4_addr_get_u32(&netif->ip_addr) & ip4_addr_get_u32(&netif->netmask),
 
-           ip4_addr_get_u32(&iphdr->dest) & ~ip4_addr_get_u32(&netif->netmask)));
 
-       /* interface is up and configured? */
 
-       if ((netif_is_up(netif)) && (!ip_addr_isany(&(netif->ip_addr)))) {
 
-  8033022:	686b      	ldr	r3, [r5, #4]
 
-  8033024:	2b00      	cmp	r3, #0
 
-  8033026:	d0f8      	beq.n	803301a <ip_input+0x6e>
 
-         /* unicast to this interface address? */
 
-         if (ip_addr_cmp(¤t_iphdr_dest, &(netif->ip_addr)) ||
 
-  8033028:	f8da 0000 	ldr.w	r0, [sl]
 
-  803302c:	4298      	cmp	r0, r3
 
-  803302e:	f000 8088 	beq.w	8033142 <ip_input+0x196>
 
-             /* or broadcast on this interface network address? */
 
-             ip_addr_isbroadcast(¤t_iphdr_dest, netif)) {
 
-  8033032:	4629      	mov	r1, r5
 
-  8033034:	f7ff fea6 	bl	8032d84 <ip4_addr_isbroadcast>
 
-           ip4_addr_get_u32(&iphdr->dest) & ~ip4_addr_get_u32(&netif->netmask)));
 
-       /* interface is up and configured? */
 
-       if ((netif_is_up(netif)) && (!ip_addr_isany(&(netif->ip_addr)))) {
 
-         /* unicast to this interface address? */
 
-         if (ip_addr_cmp(¤t_iphdr_dest, &(netif->ip_addr)) ||
 
-  8033038:	2800      	cmp	r0, #0
 
-  803303a:	d0ee      	beq.n	803301a <ip_input+0x6e>
 
-  803303c:	e081      	b.n	8033142 <ip_input+0x196>
 
-         }
 
- #endif /* LWIP_AUTOIP */
 
-       }
 
-       if (first) {
 
-         first = 0;
 
-         netif = netif_list;
 
-  803303e:	f8db 5000 	ldr.w	r5, [fp]
 
-  8033042:	e000      	b.n	8033046 <ip_input+0x9a>
 
-       } else {
 
-         netif = netif->next;
 
-  8033044:	682d      	ldr	r5, [r5, #0]
 
-       }
 
-       if (netif == inp) {
 
-  8033046:	42bd      	cmp	r5, r7
 
-         netif = netif->next;
 
-  8033048:	bf08      	it	eq
 
-  803304a:	682d      	ldreq	r5, [r5, #0]
 
-  803304c:	f04f 0900 	mov.w	r9, #0
 
-       }
 
-     } while(netif != NULL);
 
-  8033050:	2d00      	cmp	r5, #0
 
-  8033052:	d1de      	bne.n	8033012 <ip_input+0x66>
 
-  8033054:	e072      	b.n	803313c <ip_input+0x190>
 
-     /* remote port is DHCP server? */
 
-     if (IPH_PROTO(iphdr) == IP_PROTO_UDP) {
 
-       struct udp_hdr *udphdr = (struct udp_hdr *)((u8_t *)iphdr + iphdr_hlen);
 
-       LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_TRACE, ("ip_input: UDP packet to DHCP client port %"U16_F"\n",
 
-         ntohs(udphdr->dest)));
 
-       if (IP_ACCEPT_LINK_LAYER_ADDRESSED_PORT(udphdr->dest)) {
 
-  8033056:	eb06 0308 	add.w	r3, r6, r8
 
-  803305a:	885b      	ldrh	r3, [r3, #2]
 
-  803305c:	f5b3 4f88 	cmp.w	r3, #17408	; 0x4400
 
-  8033060:	d16f      	bne.n	8033142 <ip_input+0x196>
 
-  8033062:	e011      	b.n	8033088 <ip_input+0xdc>
 
-   /* broadcast or multicast packet source address? Compliant with RFC 1122: 3.2.1.3 */
 
- #if IP_ACCEPT_LINK_LAYER_ADDRESSING
 
-   /* DHCP servers need 0.0.0.0 to be allowed as source address (RFC 1.1.2.2: 3.2.1.3/a) */
 
-   if (check_ip_src && !ip_addr_isany(¤t_iphdr_src))
 
- #endif /* IP_ACCEPT_LINK_LAYER_ADDRESSING */
 
-   {  if ((ip_addr_isbroadcast(¤t_iphdr_src, inp)) ||
 
-  8033064:	4639      	mov	r1, r7
 
-  8033066:	f7ff fe8d 	bl	8032d84 <ip4_addr_isbroadcast>
 
-  803306a:	b928      	cbnz	r0, 8033078 <ip_input+0xcc>
 
-          (ip_addr_ismulticast(¤t_iphdr_src))) {
 
-  803306c:	f8d8 3000 	ldr.w	r3, [r8]
 
-  8033070:	f003 03f0 	and.w	r3, r3, #240	; 0xf0
 
-   /* broadcast or multicast packet source address? Compliant with RFC 1122: 3.2.1.3 */
 
- #if IP_ACCEPT_LINK_LAYER_ADDRESSING
 
-   /* DHCP servers need 0.0.0.0 to be allowed as source address (RFC 1.1.2.2: 3.2.1.3/a) */
 
-   if (check_ip_src && !ip_addr_isany(¤t_iphdr_src))
 
- #endif /* IP_ACCEPT_LINK_LAYER_ADDRESSING */
 
-   {  if ((ip_addr_isbroadcast(¤t_iphdr_src, inp)) ||
 
-  8033074:	2be0      	cmp	r3, #224	; 0xe0
 
-  8033076:	d108      	bne.n	803308a <ip_input+0xde>
 
-          (ip_addr_ismulticast(¤t_iphdr_src))) {
 
-       /* packet source is not valid */
 
-       LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_WARNING, ("ip_input: packet source is not valid.\n"));
 
-       /* free (drop) packet pbufs */
 
-       pbuf_free(p);
 
-  8033078:	4620      	mov	r0, r4
 
-  803307a:	f7fc fec7 	bl	802fe0c <pbuf_free>
 
-       IP_STATS_INC(ip.drop);
 
-       snmp_inc_ipinaddrerrors();
 
-  803307e:	f001 fc35 	bl	80348ec <snmp_inc_ipinaddrerrors>
 
-       snmp_inc_ipindiscards();
 
-  8033082:	f001 fc43 	bl	803490c <snmp_inc_ipindiscards>
 
-       return ERR_OK;
 
-  8033086:	e063      	b.n	8033150 <ip_input+0x1a4>
 
-     /* remote port is DHCP server? */
 
-     if (IPH_PROTO(iphdr) == IP_PROTO_UDP) {
 
-       struct udp_hdr *udphdr = (struct udp_hdr *)((u8_t *)iphdr + iphdr_hlen);
 
-       LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_TRACE, ("ip_input: UDP packet to DHCP client port %"U16_F"\n",
 
-         ntohs(udphdr->dest)));
 
-       if (IP_ACCEPT_LINK_LAYER_ADDRESSED_PORT(udphdr->dest)) {
 
-  8033088:	463d      	mov	r5, r7
 
-       return ERR_OK;
 
-     }
 
-   }
 
-   /* packet not for us? */
 
-   if (netif == NULL) {
 
-  803308a:	b93d      	cbnz	r5, 803309c <ip_input+0xf0>
 
-       /* try to forward IP packet on (other) interfaces */
 
-       ip_forward(p, iphdr, inp);
 
-     } else
 
- #endif /* IP_FORWARD */
 
-     {
 
-       snmp_inc_ipinaddrerrors();
 
-  803308c:	f001 fc2e 	bl	80348ec <snmp_inc_ipinaddrerrors>
 
-       snmp_inc_ipindiscards();
 
-  8033090:	f001 fc3c 	bl	803490c <snmp_inc_ipindiscards>
 
-     }
 
-     pbuf_free(p);
 
-  8033094:	4620      	mov	r0, r4
 
-  8033096:	f7fc feb9 	bl	802fe0c <pbuf_free>
 
-     return ERR_OK;
 
-  803309a:	e059      	b.n	8033150 <ip_input+0x1a4>
 
-   }
 
-   /* packet consists of multiple fragments? */
 
-   if ((IPH_OFFSET(iphdr) & PP_HTONS(IP_OFFMASK | IP_MF)) != 0) {
 
-  803309c:	88f3      	ldrh	r3, [r6, #6]
 
-  803309e:	f023 03c0 	bic.w	r3, r3, #192	; 0xc0
 
-  80330a2:	b29b      	uxth	r3, r3
 
-  80330a4:	b12b      	cbz	r3, 80330b2 <ip_input+0x106>
 
-     if (p == NULL) {
 
-       return ERR_OK;
 
-     }
 
-     iphdr = (struct ip_hdr *)p->payload;
 
- #else /* IP_REASSEMBLY == 0, no packet fragment reassembly code present */
 
-     pbuf_free(p);
 
-  80330a6:	4620      	mov	r0, r4
 
-  80330a8:	f7fc feb0 	bl	802fe0c <pbuf_free>
 
-     LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("IP packet dropped since it was fragmented (0x%"X16_F") (while IP_REASSEMBLY == 0).\n",
 
-       ntohs(IPH_OFFSET(iphdr))));
 
-     IP_STATS_INC(ip.opterr);
 
-     IP_STATS_INC(ip.drop);
 
-     /* unsupported protocol feature */
 
-     snmp_inc_ipinunknownprotos();
 
-  80330ac:	f001 fc26 	bl	80348fc <snmp_inc_ipinunknownprotos>
 
-     return ERR_OK;
 
-  80330b0:	e04e      	b.n	8033150 <ip_input+0x1a4>
 
-   /* send to upper layers */
 
-   LWIP_DEBUGF(IP_DEBUG, ("ip_input: \n"));
 
-   ip_debug_print(p);
 
-   LWIP_DEBUGF(IP_DEBUG, ("ip_input: p->len %"U16_F" p->tot_len %"U16_F"\n", p->len, p->tot_len));
 
-   current_netif = inp;
 
-  80330b2:	4b2b      	ldr	r3, [pc, #172]	; (8033160 <ip_input+0x1b4>)
 
-  80330b4:	601f      	str	r7, [r3, #0]
 
-   current_header = iphdr;
 
-  80330b6:	4b2b      	ldr	r3, [pc, #172]	; (8033164 <ip_input+0x1b8>)
 
- #if LWIP_RAW
 
-   /* raw input did not eat the packet? */
 
-   if (raw_input(p, inp) == 0)
 
-  80330b8:	4620      	mov	r0, r4
 
-  80330ba:	4639      	mov	r1, r7
 
-   LWIP_DEBUGF(IP_DEBUG, ("ip_input: \n"));
 
-   ip_debug_print(p);
 
-   LWIP_DEBUGF(IP_DEBUG, ("ip_input: p->len %"U16_F" p->tot_len %"U16_F"\n", p->len, p->tot_len));
 
-   current_netif = inp;
 
-   current_header = iphdr;
 
-  80330bc:	601e      	str	r6, [r3, #0]
 
- #if LWIP_RAW
 
-   /* raw input did not eat the packet? */
 
-   if (raw_input(p, inp) == 0)
 
-  80330be:	f7fd f825 	bl	803010c <raw_input>
 
-  80330c2:	bb88      	cbnz	r0, 8033128 <ip_input+0x17c>
 
- #endif /* LWIP_RAW */
 
-   {
 
-     switch (IPH_PROTO(iphdr)) {
 
-  80330c4:	7a73      	ldrb	r3, [r6, #9]
 
-  80330c6:	2b06      	cmp	r3, #6
 
-  80330c8:	d00b      	beq.n	80330e2 <ip_input+0x136>
 
-  80330ca:	2b11      	cmp	r3, #17
 
-  80330cc:	d002      	beq.n	80330d4 <ip_input+0x128>
 
-  80330ce:	2b01      	cmp	r3, #1
 
-  80330d0:	d115      	bne.n	80330fe <ip_input+0x152>
 
-  80330d2:	e00d      	b.n	80330f0 <ip_input+0x144>
 
- #if LWIP_UDP
 
-     case IP_PROTO_UDP:
 
- #if LWIP_UDPLITE
 
-     case IP_PROTO_UDPLITE:
 
- #endif /* LWIP_UDPLITE */
 
-       snmp_inc_ipindelivers();
 
-  80330d4:	f001 fc22 	bl	803491c <snmp_inc_ipindelivers>
 
-       udp_input(p, inp);
 
-  80330d8:	4620      	mov	r0, r4
 
-  80330da:	4639      	mov	r1, r7
 
-  80330dc:	f7ff fb44 	bl	8032768 <udp_input>
 
-       break;
 
-  80330e0:	e022      	b.n	8033128 <ip_input+0x17c>
 
- #endif /* LWIP_UDP */
 
- #if LWIP_TCP
 
-     case IP_PROTO_TCP:
 
-       snmp_inc_ipindelivers();
 
-  80330e2:	f001 fc1b 	bl	803491c <snmp_inc_ipindelivers>
 
-       tcp_input(p, inp);
 
-  80330e6:	4620      	mov	r0, r4
 
-  80330e8:	4639      	mov	r1, r7
 
-  80330ea:	f7fe f8e7 	bl	80312bc <tcp_input>
 
-       break;
 
-  80330ee:	e01b      	b.n	8033128 <ip_input+0x17c>
 
- #endif /* LWIP_TCP */
 
- #if LWIP_ICMP
 
-     case IP_PROTO_ICMP:
 
-       snmp_inc_ipindelivers();
 
-  80330f0:	f001 fc14 	bl	803491c <snmp_inc_ipindelivers>
 
-       icmp_input(p, inp);
 
-  80330f4:	4620      	mov	r0, r4
 
-  80330f6:	4639      	mov	r1, r7
 
-  80330f8:	f7ff fd20 	bl	8032b3c <icmp_input>
 
-       break;
 
-  80330fc:	e014      	b.n	8033128 <ip_input+0x17c>
 
-       break;
 
- #endif /* LWIP_IGMP */
 
-     default:
 
- #if LWIP_ICMP
 
-       /* send ICMP destination protocol unreachable unless is was a broadcast */
 
-       if (!ip_addr_isbroadcast(¤t_iphdr_dest, inp) &&
 
-  80330fe:	4d16      	ldr	r5, [pc, #88]	; (8033158 <ip_input+0x1ac>)
 
-  8033100:	4639      	mov	r1, r7
 
-  8033102:	6828      	ldr	r0, [r5, #0]
 
-  8033104:	f7ff fe3e 	bl	8032d84 <ip4_addr_isbroadcast>
 
-  8033108:	b948      	cbnz	r0, 803311e <ip_input+0x172>
 
-           !ip_addr_ismulticast(¤t_iphdr_dest)) {
 
-  803310a:	682b      	ldr	r3, [r5, #0]
 
-  803310c:	f003 03f0 	and.w	r3, r3, #240	; 0xf0
 
-       break;
 
- #endif /* LWIP_IGMP */
 
-     default:
 
- #if LWIP_ICMP
 
-       /* send ICMP destination protocol unreachable unless is was a broadcast */
 
-       if (!ip_addr_isbroadcast(¤t_iphdr_dest, inp) &&
 
-  8033110:	2be0      	cmp	r3, #224	; 0xe0
 
-  8033112:	d004      	beq.n	803311e <ip_input+0x172>
 
-           !ip_addr_ismulticast(¤t_iphdr_dest)) {
 
-         p->payload = iphdr;
 
-  8033114:	6066      	str	r6, [r4, #4]
 
-         icmp_dest_unreach(p, ICMP_DUR_PROTO);
 
-  8033116:	4620      	mov	r0, r4
 
-  8033118:	2102      	movs	r1, #2
 
-  803311a:	f7ff fda5 	bl	8032c68 <icmp_dest_unreach>
 
-       }
 
- #endif /* LWIP_ICMP */
 
-       pbuf_free(p);
 
-  803311e:	4620      	mov	r0, r4
 
-  8033120:	f7fc fe74 	bl	802fe0c <pbuf_free>
 
-       LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("Unsupported transport protocol %"U16_F"\n", IPH_PROTO(iphdr)));
 
-       IP_STATS_INC(ip.proterr);
 
-       IP_STATS_INC(ip.drop);
 
-       snmp_inc_ipinunknownprotos();
 
-  8033124:	f001 fbea 	bl	80348fc <snmp_inc_ipinunknownprotos>
 
-     }
 
-   }
 
-   current_netif = NULL;
 
-  8033128:	4a0d      	ldr	r2, [pc, #52]	; (8033160 <ip_input+0x1b4>)
 
-  803312a:	2300      	movs	r3, #0
 
-  803312c:	6013      	str	r3, [r2, #0]
 
-   current_header = NULL;
 
-  803312e:	4a0d      	ldr	r2, [pc, #52]	; (8033164 <ip_input+0x1b8>)
 
-  8033130:	6013      	str	r3, [r2, #0]
 
-   ip_addr_set_any(¤t_iphdr_src);
 
-  8033132:	4a0a      	ldr	r2, [pc, #40]	; (803315c <ip_input+0x1b0>)
 
-  8033134:	6013      	str	r3, [r2, #0]
 
-   ip_addr_set_any(¤t_iphdr_dest);
 
-  8033136:	4a08      	ldr	r2, [pc, #32]	; (8033158 <ip_input+0x1ac>)
 
-  8033138:	6013      	str	r3, [r2, #0]
 
-   return ERR_OK;
 
-  803313a:	e009      	b.n	8033150 <ip_input+0x1a4>
 
-    *
 
-    * #define LWIP_IP_ACCEPT_UDP_PORT(dst_port) ((dst_port) == PP_NTOHS(12345))
 
-    */
 
-   if (netif == NULL) {
 
-     /* remote port is DHCP server? */
 
-     if (IPH_PROTO(iphdr) == IP_PROTO_UDP) {
 
-  803313c:	7a73      	ldrb	r3, [r6, #9]
 
-  803313e:	2b11      	cmp	r3, #17
 
-  8033140:	d089      	beq.n	8033056 <ip_input+0xaa>
 
- #endif /* IP_ACCEPT_LINK_LAYER_ADDRESSING */
 
-   /* broadcast or multicast packet source address? Compliant with RFC 1122: 3.2.1.3 */
 
- #if IP_ACCEPT_LINK_LAYER_ADDRESSING
 
-   /* DHCP servers need 0.0.0.0 to be allowed as source address (RFC 1.1.2.2: 3.2.1.3/a) */
 
-   if (check_ip_src && !ip_addr_isany(¤t_iphdr_src))
 
-  8033142:	f8df 8018 	ldr.w	r8, [pc, #24]	; 803315c <ip_input+0x1b0>
 
-  8033146:	f8d8 0000 	ldr.w	r0, [r8]
 
-  803314a:	2800      	cmp	r0, #0
 
-  803314c:	d09d      	beq.n	803308a <ip_input+0xde>
 
-  803314e:	e789      	b.n	8033064 <ip_input+0xb8>
 
-   current_header = NULL;
 
-   ip_addr_set_any(¤t_iphdr_src);
 
-   ip_addr_set_any(¤t_iphdr_dest);
 
-   return ERR_OK;
 
- }
 
-  8033150:	2000      	movs	r0, #0
 
-  8033152:	e8bd 8ff8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
-  8033156:	bf00      	nop
 
-  8033158:	2000f6e4 	.word	0x2000f6e4
 
-  803315c:	2000f6dc 	.word	0x2000f6dc
 
-  8033160:	2000f6e0 	.word	0x2000f6e0
 
-  8033164:	2000f6e8 	.word	0x2000f6e8
 
-  8033168:	2000f6b0 	.word	0x2000f6b0
 
- 0803316c <ip_output_if>:
 
-  */
 
- err_t
 
- ip_output_if(struct pbuf *p, ip_addr_t *src, ip_addr_t *dest,
 
-              u8_t ttl, u8_t tos,
 
-              u8_t proto, struct netif *netif)
 
- {
 
-  803316c:	e92d 47f3 	stmdb	sp!, {r0, r1, r4, r5, r6, r7, r8, r9, sl, lr}
 
-  8033170:	4615      	mov	r5, r2
 
-  8033172:	4606      	mov	r6, r0
 
-  8033174:	4689      	mov	r9, r1
 
-  8033176:	469a      	mov	sl, r3
 
-  8033178:	9f0c      	ldr	r7, [sp, #48]	; 0x30
 
-   /* pbufs passed to IP must have a ref-count of 1 as their payload pointer
 
-      gets altered as the packet is passed down the stack */
 
-   LWIP_ASSERT("p->ref == 1", p->ref == 1);
 
-   snmp_inc_ipoutrequests();
 
-  803317a:	f001 fbd7 	bl	803492c <snmp_inc_ipoutrequests>
 
-   /* Should the IP header be generated or is it already included in p? */
 
-   if (dest != IP_HDRINCL) {
 
-  803317e:	b3b5      	cbz	r5, 80331ee <ip_output_if+0x82>
 
-       }
 
- #endif /* CHECKSUM_GEN_IP_INLINE */
 
-     }
 
- #endif /* IP_OPTIONS_SEND */
 
-     /* generate IP header */
 
-     if (pbuf_header(p, IP_HLEN)) {
 
-  8033180:	4630      	mov	r0, r6
 
-  8033182:	2114      	movs	r1, #20
 
-  8033184:	f7fc fe17 	bl	802fdb6 <pbuf_header>
 
-  8033188:	4680      	mov	r8, r0
 
-  803318a:	b118      	cbz	r0, 8033194 <ip_output_if+0x28>
 
-       LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("ip_output: not enough room for IP header in pbuf\n"));
 
-       IP_STATS_INC(ip.err);
 
-       snmp_inc_ipoutdiscards();
 
-  803318c:	f001 fbd6 	bl	803493c <snmp_inc_ipoutdiscards>
 
-       return ERR_BUF;
 
-  8033190:	20fe      	movs	r0, #254	; 0xfe
 
-  8033192:	e036      	b.n	8033202 <ip_output_if+0x96>
 
-     }
 
-     iphdr = (struct ip_hdr *)p->payload;
 
-  8033194:	6874      	ldr	r4, [r6, #4]
 
-     LWIP_ASSERT("check that first pbuf can hold struct ip_hdr",
 
-                (p->len >= sizeof(struct ip_hdr)));
 
-     IPH_TTL_SET(iphdr, ttl);
 
-     IPH_PROTO_SET(iphdr, proto);
 
-  8033196:	f89d 302c 	ldrb.w	r3, [sp, #44]	; 0x2c
 
-     iphdr = (struct ip_hdr *)p->payload;
 
-     LWIP_ASSERT("check that first pbuf can hold struct ip_hdr",
 
-                (p->len >= sizeof(struct ip_hdr)));
 
-     IPH_TTL_SET(iphdr, ttl);
 
-  803319a:	f884 a008 	strb.w	sl, [r4, #8]
 
-     IPH_PROTO_SET(iphdr, proto);
 
-  803319e:	7263      	strb	r3, [r4, #9]
 
- #if CHECKSUM_GEN_IP_INLINE
 
-     chk_sum += LWIP_MAKE_U16(proto, ttl);
 
- #endif /* CHECKSUM_GEN_IP_INLINE */
 
-     /* dest cannot be NULL here */
 
-     ip_addr_copy(iphdr->dest, *dest);
 
-  80331a0:	682b      	ldr	r3, [r5, #0]
 
-  80331a2:	6123      	str	r3, [r4, #16]
 
- #if CHECKSUM_GEN_IP_INLINE
 
-     chk_sum += ip4_addr_get_u32(&iphdr->dest) & 0xFFFF;
 
-     chk_sum += ip4_addr_get_u32(&iphdr->dest) >> 16;
 
- #endif /* CHECKSUM_GEN_IP_INLINE */
 
-     IPH_VHL_SET(iphdr, 4, ip_hlen / 4);
 
-  80331a4:	2345      	movs	r3, #69	; 0x45
 
-  80331a6:	7023      	strb	r3, [r4, #0]
 
-     IPH_TOS_SET(iphdr, tos);
 
-  80331a8:	f89d 3028 	ldrb.w	r3, [sp, #40]	; 0x28
 
-  80331ac:	7063      	strb	r3, [r4, #1]
 
- #if CHECKSUM_GEN_IP_INLINE
 
-     chk_sum += LWIP_MAKE_U16(tos, iphdr->_v_hl);
 
- #endif /* CHECKSUM_GEN_IP_INLINE */
 
-     IPH_LEN_SET(iphdr, htons(p->tot_len));
 
-  80331ae:	8930      	ldrh	r0, [r6, #8]
 
-  80331b0:	f7fb fcee 	bl	802eb90 <lwip_htons>
 
- #if CHECKSUM_GEN_IP_INLINE
 
-     chk_sum += iphdr->_len;
 
- #endif /* CHECKSUM_GEN_IP_INLINE */
 
-     IPH_OFFSET_SET(iphdr, 0);
 
-  80331b4:	f884 8006 	strb.w	r8, [r4, #6]
 
-  80331b8:	f884 8007 	strb.w	r8, [r4, #7]
 
-     IPH_ID_SET(iphdr, htons(ip_id));
 
-  80331bc:	f8df 8048 	ldr.w	r8, [pc, #72]	; 8033208 <ip_output_if+0x9c>
 
-     IPH_VHL_SET(iphdr, 4, ip_hlen / 4);
 
-     IPH_TOS_SET(iphdr, tos);
 
- #if CHECKSUM_GEN_IP_INLINE
 
-     chk_sum += LWIP_MAKE_U16(tos, iphdr->_v_hl);
 
- #endif /* CHECKSUM_GEN_IP_INLINE */
 
-     IPH_LEN_SET(iphdr, htons(p->tot_len));
 
-  80331c0:	8060      	strh	r0, [r4, #2]
 
- #if CHECKSUM_GEN_IP_INLINE
 
-     chk_sum += iphdr->_len;
 
- #endif /* CHECKSUM_GEN_IP_INLINE */
 
-     IPH_OFFSET_SET(iphdr, 0);
 
-     IPH_ID_SET(iphdr, htons(ip_id));
 
-  80331c2:	f8b8 0000 	ldrh.w	r0, [r8]
 
-  80331c6:	f7fb fce3 	bl	802eb90 <lwip_htons>
 
-  80331ca:	80a0      	strh	r0, [r4, #4]
 
- #if CHECKSUM_GEN_IP_INLINE
 
-     chk_sum += iphdr->_id;
 
- #endif /* CHECKSUM_GEN_IP_INLINE */
 
-     ++ip_id;
 
-  80331cc:	f8b8 3000 	ldrh.w	r3, [r8]
 
-  80331d0:	3301      	adds	r3, #1
 
-  80331d2:	f8a8 3000 	strh.w	r3, [r8]
 
-     if (ip_addr_isany(src)) {
 
-  80331d6:	f1b9 0f00 	cmp.w	r9, #0
 
-  80331da:	d002      	beq.n	80331e2 <ip_output_if+0x76>
 
-  80331dc:	f8d9 3000 	ldr.w	r3, [r9]
 
-  80331e0:	b903      	cbnz	r3, 80331e4 <ip_output_if+0x78>
 
-       ip_addr_copy(iphdr->src, netif->ip_addr);
 
-  80331e2:	687b      	ldr	r3, [r7, #4]
 
-     } else {
 
-       /* src cannot be NULL here */
 
-       ip_addr_copy(iphdr->src, *src);
 
-  80331e4:	60e3      	str	r3, [r4, #12]
 
-     chk_sum = (chk_sum >> 16) + (chk_sum & 0xFFFF);
 
-     chk_sum = (chk_sum >> 16) + chk_sum;
 
-     chk_sum = ~chk_sum;
 
-     iphdr->_chksum = chk_sum; /* network order */
 
- #else /* CHECKSUM_GEN_IP_INLINE */
 
-     IPH_CHKSUM_SET(iphdr, 0);
 
-  80331e6:	2300      	movs	r3, #0
 
-  80331e8:	72a3      	strb	r3, [r4, #10]
 
-  80331ea:	72e3      	strb	r3, [r4, #11]
 
-  80331ec:	e004      	b.n	80331f8 <ip_output_if+0x8c>
 
- #endif
 
- #endif /* CHECKSUM_GEN_IP_INLINE */
 
-   } else {
 
-     /* IP header already included in p */
 
-     iphdr = (struct ip_hdr *)p->payload;
 
-     ip_addr_copy(dest_addr, iphdr->dest);
 
-  80331ee:	6873      	ldr	r3, [r6, #4]
 
-  80331f0:	ad02      	add	r5, sp, #8
 
-  80331f2:	691b      	ldr	r3, [r3, #16]
 
-  80331f4:	f845 3d04 	str.w	r3, [r5, #-4]!
 
-     return ip_frag(p, netif, dest);
 
-   }
 
- #endif /* IP_FRAG */
 
-   LWIP_DEBUGF(IP_DEBUG, ("netif->output()"));
 
-   return netif->output(netif, p, dest);
 
-  80331f8:	697b      	ldr	r3, [r7, #20]
 
-  80331fa:	4638      	mov	r0, r7
 
-  80331fc:	4631      	mov	r1, r6
 
-  80331fe:	462a      	mov	r2, r5
 
-  8033200:	4798      	blx	r3
 
- }
 
-  8033202:	b240      	sxtb	r0, r0
 
-  8033204:	e8bd 87fc 	ldmia.w	sp!, {r2, r3, r4, r5, r6, r7, r8, r9, sl, pc}
 
-  8033208:	2000c424 	.word	0x2000c424
 
- 0803320c <ip_output>:
 
-  *         see ip_output_if() for more return values
 
-  */
 
- err_t
 
- ip_output(struct pbuf *p, ip_addr_t *src, ip_addr_t *dest,
 
-           u8_t ttl, u8_t tos, u8_t proto)
 
- {
 
-  803320c:	b5f0      	push	{r4, r5, r6, r7, lr}
 
-  803320e:	4605      	mov	r5, r0
 
-  8033210:	b085      	sub	sp, #20
 
-   /* pbufs passed to IP must have a ref-count of 1 as their payload pointer
 
-      gets altered as the packet is passed down the stack */
 
-   LWIP_ASSERT("p->ref == 1", p->ref == 1);
 
-   if ((netif = ip_route(dest)) == NULL) {
 
-  8033212:	4610      	mov	r0, r2
 
-  *         see ip_output_if() for more return values
 
-  */
 
- err_t
 
- ip_output(struct pbuf *p, ip_addr_t *src, ip_addr_t *dest,
 
-           u8_t ttl, u8_t tos, u8_t proto)
 
- {
 
-  8033214:	460f      	mov	r7, r1
 
-  8033216:	4614      	mov	r4, r2
 
-  8033218:	461e      	mov	r6, r3
 
-   /* pbufs passed to IP must have a ref-count of 1 as their payload pointer
 
-      gets altered as the packet is passed down the stack */
 
-   LWIP_ASSERT("p->ref == 1", p->ref == 1);
 
-   if ((netif = ip_route(dest)) == NULL) {
 
-  803321a:	f7ff fea3 	bl	8032f64 <ip_route>
 
-  803321e:	b168      	cbz	r0, 803323c <ip_output+0x30>
 
-       ip4_addr1_16(dest), ip4_addr2_16(dest), ip4_addr3_16(dest), ip4_addr4_16(dest)));
 
-     IP_STATS_INC(ip.rterr);
 
-     return ERR_RTE;
 
-   }
 
-   return ip_output_if(p, src, dest, ttl, tos, proto, netif);
 
-  8033220:	f89d 3028 	ldrb.w	r3, [sp, #40]	; 0x28
 
-  8033224:	9002      	str	r0, [sp, #8]
 
-  8033226:	9300      	str	r3, [sp, #0]
 
-  8033228:	f89d 302c 	ldrb.w	r3, [sp, #44]	; 0x2c
 
-  803322c:	4628      	mov	r0, r5
 
-  803322e:	9301      	str	r3, [sp, #4]
 
-  8033230:	4639      	mov	r1, r7
 
-  8033232:	4622      	mov	r2, r4
 
-  8033234:	4633      	mov	r3, r6
 
-  8033236:	f7ff ff99 	bl	803316c <ip_output_if>
 
-  803323a:	e000      	b.n	803323e <ip_output+0x32>
 
-   if ((netif = ip_route(dest)) == NULL) {
 
-     LWIP_DEBUGF(IP_DEBUG, ("ip_output: No route to %"U16_F".%"U16_F".%"U16_F".%"U16_F"\n",
 
-       ip4_addr1_16(dest), ip4_addr2_16(dest), ip4_addr3_16(dest), ip4_addr4_16(dest)));
 
-     IP_STATS_INC(ip.rterr);
 
-     return ERR_RTE;
 
-  803323c:	20fc      	movs	r0, #252	; 0xfc
 
-   }
 
-   return ip_output_if(p, src, dest, ttl, tos, proto, netif);
 
- }
 
-  803323e:	b240      	sxtb	r0, r0
 
-  8033240:	b005      	add	sp, #20
 
-  8033242:	bdf0      	pop	{r4, r5, r6, r7, pc}
 
- 08033244 <snmp_asn1_dec_type>:
 
-  * @param type return ASN1 type
 
-  * @return ERR_OK if successfull, ERR_ARG if we can't (or won't) decode
 
-  */
 
- err_t
 
- snmp_asn1_dec_type(struct pbuf *p, u16_t ofs, u8_t *type)
 
- {
 
-  8033244:	b510      	push	{r4, lr}
 
-   u16_t plen, base;
 
-   u8_t *msg_ptr;
 
-   plen = 0;
 
-  8033246:	2300      	movs	r3, #0
 
-   while (p != NULL)
 
-  8033248:	e00c      	b.n	8033264 <snmp_asn1_dec_type+0x20>
 
-   {
 
-     base = plen;
 
-     plen += p->len;
 
-  803324a:	8944      	ldrh	r4, [r0, #10]
 
-  803324c:	191c      	adds	r4, r3, r4
 
-  803324e:	b2a4      	uxth	r4, r4
 
-     if (ofs < plen)
 
-  8033250:	42a1      	cmp	r1, r4
 
-  8033252:	d205      	bcs.n	8033260 <snmp_asn1_dec_type+0x1c>
 
-     {
 
-       msg_ptr = (u8_t*)p->payload;
 
-  8033254:	6840      	ldr	r0, [r0, #4]
 
-       msg_ptr += ofs - base;
 
-  8033256:	1acb      	subs	r3, r1, r3
 
-       *type = *msg_ptr;
 
-  8033258:	5cc3      	ldrb	r3, [r0, r3]
 
-       return ERR_OK;
 
-  803325a:	2000      	movs	r0, #0
 
-     plen += p->len;
 
-     if (ofs < plen)
 
-     {
 
-       msg_ptr = (u8_t*)p->payload;
 
-       msg_ptr += ofs - base;
 
-       *type = *msg_ptr;
 
-  803325c:	7013      	strb	r3, [r2, #0]
 
-       return ERR_OK;
 
-  803325e:	e004      	b.n	803326a <snmp_asn1_dec_type+0x26>
 
-     }
 
-     p = p->next;
 
-  8033260:	6800      	ldr	r0, [r0, #0]
 
-   plen = 0;
 
-   while (p != NULL)
 
-   {
 
-     base = plen;
 
-     plen += p->len;
 
-  8033262:	4623      	mov	r3, r4
 
- {
 
-   u16_t plen, base;
 
-   u8_t *msg_ptr;
 
-   plen = 0;
 
-   while (p != NULL)
 
-  8033264:	2800      	cmp	r0, #0
 
-  8033266:	d1f0      	bne.n	803324a <snmp_asn1_dec_type+0x6>
 
-       return ERR_OK;
 
-     }
 
-     p = p->next;
 
-   }
 
-   /* p == NULL, ofs >= plen */
 
-   return ERR_ARG;
 
-  8033268:	20f2      	movs	r0, #242	; 0xf2
 
- }
 
-  803326a:	b240      	sxtb	r0, r0
 
-  803326c:	bd10      	pop	{r4, pc}
 
- 0803326e <snmp_asn1_dec_length>:
 
-  * @param length return host order length, upto 64k
 
-  * @return ERR_OK if successfull, ERR_ARG if we can't (or won't) decode
 
-  */
 
- err_t
 
- snmp_asn1_dec_length(struct pbuf *p, u16_t ofs, u8_t *octets_used, u16_t *length)
 
- {
 
-  803326e:	b5f0      	push	{r4, r5, r6, r7, lr}
 
-   u16_t plen, base;
 
-   u8_t *msg_ptr;
 
-   plen = 0;
 
-  8033270:	2500      	movs	r5, #0
 
-   while (p != NULL)
 
-  8033272:	e079      	b.n	8033368 <snmp_asn1_dec_length+0xfa>
 
-   {
 
-     base = plen;
 
-     plen += p->len;
 
-  8033274:	8944      	ldrh	r4, [r0, #10]
 
-  8033276:	192c      	adds	r4, r5, r4
 
-  8033278:	b2a4      	uxth	r4, r4
 
-     if (ofs < plen)
 
-  803327a:	42a1      	cmp	r1, r4
 
-  803327c:	d272      	bcs.n	8033364 <snmp_asn1_dec_length+0xf6>
 
-     {
 
-       msg_ptr = (u8_t*)p->payload;
 
-  803327e:	f8d0 c004 	ldr.w	ip, [r0, #4]
 
-       msg_ptr += ofs - base;
 
-  8033282:	1b4f      	subs	r7, r1, r5
 
-  8033284:	eb0c 0507 	add.w	r5, ip, r7
 
-       if (*msg_ptr < 0x80)
 
-  8033288:	f81c 6007 	ldrb.w	r6, [ip, r7]
 
-  803328c:	f016 0f80 	tst.w	r6, #128	; 0x80
 
-  8033290:	d105      	bne.n	803329e <snmp_asn1_dec_length+0x30>
 
-       {
 
-         /* primitive definite length format */
 
-         *octets_used = 1;
 
-  8033292:	2101      	movs	r1, #1
 
-  8033294:	7011      	strb	r1, [r2, #0]
 
-         *length = *msg_ptr;
 
-  8033296:	f81c 2007 	ldrb.w	r2, [ip, r7]
 
-  803329a:	801a      	strh	r2, [r3, #0]
 
-  803329c:	e05a      	b.n	8033354 <snmp_asn1_dec_length+0xe6>
 
-         return ERR_OK;
 
-       }
 
-       else if (*msg_ptr == 0x80)
 
-  803329e:	2e80      	cmp	r6, #128	; 0x80
 
-  80332a0:	d12a      	bne.n	80332f8 <snmp_asn1_dec_length+0x8a>
 
-       {
 
-         /* constructed indefinite length format, termination with two zero octets */
 
-         u8_t zeros;
 
-         u8_t i;
 
-         *length = 0;
 
-  80332a2:	2600      	movs	r6, #0
 
-  80332a4:	801e      	strh	r6, [r3, #0]
 
-  80332a6:	e022      	b.n	80332ee <snmp_asn1_dec_length+0x80>
 
-         {
 
-           i = 2;
 
-           while (i > 0)
 
-           {
 
-             i--;
 
-             (*length) += 1;
 
-  80332a8:	f8b3 c000 	ldrh.w	ip, [r3]
 
-             ofs += 1;
 
-  80332ac:	3101      	adds	r1, #1
 
-  80332ae:	b289      	uxth	r1, r1
 
-         {
 
-           i = 2;
 
-           while (i > 0)
 
-           {
 
-             i--;
 
-             (*length) += 1;
 
-  80332b0:	f10c 0c01 	add.w	ip, ip, #1
 
-             ofs += 1;
 
-             if (ofs >= plen)
 
-  80332b4:	42a1      	cmp	r1, r4
 
-         {
 
-           i = 2;
 
-           while (i > 0)
 
-           {
 
-             i--;
 
-             (*length) += 1;
 
-  80332b6:	f8a3 c000 	strh.w	ip, [r3]
 
-             ofs += 1;
 
-             if (ofs >= plen)
 
-  80332ba:	d308      	bcc.n	80332ce <snmp_asn1_dec_length+0x60>
 
-             {
 
-               /* next octet in next pbuf */
 
-               p = p->next;
 
-  80332bc:	6800      	ldr	r0, [r0, #0]
 
-               if (p == NULL) { return ERR_ARG; }
 
-  80332be:	b900      	cbnz	r0, 80332c2 <snmp_asn1_dec_length+0x54>
 
-  80332c0:	e04e      	b.n	8033360 <snmp_asn1_dec_length+0xf2>
 
-               msg_ptr = (u8_t*)p->payload;
 
-               plen += p->len;
 
-  80332c2:	f8b0 c00a 	ldrh.w	ip, [r0, #10]
 
-             if (ofs >= plen)
 
-             {
 
-               /* next octet in next pbuf */
 
-               p = p->next;
 
-               if (p == NULL) { return ERR_ARG; }
 
-               msg_ptr = (u8_t*)p->payload;
 
-  80332c6:	6845      	ldr	r5, [r0, #4]
 
-               plen += p->len;
 
-  80332c8:	4464      	add	r4, ip
 
-  80332ca:	b2a4      	uxth	r4, r4
 
-  80332cc:	e000      	b.n	80332d0 <snmp_asn1_dec_length+0x62>
 
-             }
 
-             else
 
-             {
 
-               /* next octet in same pbuf */
 
-               msg_ptr++;
 
-  80332ce:	3501      	adds	r5, #1
 
-             }
 
-             if (*msg_ptr == 0)
 
-  80332d0:	f895 c000 	ldrb.w	ip, [r5]
 
-  80332d4:	f1bc 0f00 	cmp.w	ip, #0
 
-  80332d8:	d104      	bne.n	80332e4 <snmp_asn1_dec_length+0x76>
 
-             {
 
-               zeros++;
 
-  80332da:	3601      	adds	r6, #1
 
-  80332dc:	b2f6      	uxtb	r6, r6
 
-               if (zeros == 2)
 
-  80332de:	2e02      	cmp	r6, #2
 
-  80332e0:	d101      	bne.n	80332e6 <snmp_asn1_dec_length+0x78>
 
-  80332e2:	e007      	b.n	80332f4 <snmp_asn1_dec_length+0x86>
 
-                 i = 0;
 
-               }
 
-             }
 
-             else
 
-             {
 
-               zeros = 0;
 
-  80332e4:	2600      	movs	r6, #0
 
-         *length = 0;
 
-         zeros = 0;
 
-         while (zeros != 2)
 
-         {
 
-           i = 2;
 
-           while (i > 0)
 
-  80332e6:	42b9      	cmp	r1, r7
 
-  80332e8:	d1de      	bne.n	80332a8 <snmp_asn1_dec_length+0x3a>
 
-         u8_t zeros;
 
-         u8_t i;
 
-         *length = 0;
 
-         zeros = 0;
 
-         while (zeros != 2)
 
-  80332ea:	2e02      	cmp	r6, #2
 
-  80332ec:	d002      	beq.n	80332f4 <snmp_asn1_dec_length+0x86>
 
-  * @param octets_used returns number of octets used by the length code
 
-  * @param length return host order length, upto 64k
 
-  * @return ERR_OK if successfull, ERR_ARG if we can't (or won't) decode
 
-  */
 
- err_t
 
- snmp_asn1_dec_length(struct pbuf *p, u16_t ofs, u8_t *octets_used, u16_t *length)
 
-  80332ee:	1c8f      	adds	r7, r1, #2
 
-  80332f0:	b2bf      	uxth	r7, r7
 
-  80332f2:	e7d9      	b.n	80332a8 <snmp_asn1_dec_length+0x3a>
 
-             {
 
-               zeros = 0;
 
-             }
 
-           }
 
-         }
 
-         *octets_used = 1;
 
-  80332f4:	2301      	movs	r3, #1
 
-  80332f6:	e02c      	b.n	8033352 <snmp_asn1_dec_length+0xe4>
 
-         return ERR_OK;
 
-       }
 
-       else if (*msg_ptr == 0x81)
 
-  80332f8:	2e81      	cmp	r6, #129	; 0x81
 
-  80332fa:	d10c      	bne.n	8033316 <snmp_asn1_dec_length+0xa8>
 
-       {
 
-         /* constructed definite length format, one octet */
 
-         ofs += 1;
 
-  80332fc:	3101      	adds	r1, #1
 
-         if (ofs >= plen)
 
-  80332fe:	b289      	uxth	r1, r1
 
-  8033300:	42a1      	cmp	r1, r4
 
-  8033302:	d303      	bcc.n	803330c <snmp_asn1_dec_length+0x9e>
 
-         {
 
-           /* next octet in next pbuf */
 
-           p = p->next;
 
-  8033304:	6801      	ldr	r1, [r0, #0]
 
-           if (p == NULL) { return ERR_ARG; }
 
-  8033306:	b359      	cbz	r1, 8033360 <snmp_asn1_dec_length+0xf2>
 
-           msg_ptr = (u8_t*)p->payload;
 
-  8033308:	684d      	ldr	r5, [r1, #4]
 
-  803330a:	e000      	b.n	803330e <snmp_asn1_dec_length+0xa0>
 
-         }
 
-         else
 
-         {
 
-           /* next octet in same pbuf */
 
-           msg_ptr++;
 
-  803330c:	3501      	adds	r5, #1
 
-         }
 
-         *length = *msg_ptr;
 
-  803330e:	7829      	ldrb	r1, [r5, #0]
 
-  8033310:	8019      	strh	r1, [r3, #0]
 
-         *octets_used = 2;
 
-  8033312:	2302      	movs	r3, #2
 
-  8033314:	e01d      	b.n	8033352 <snmp_asn1_dec_length+0xe4>
 
-         return ERR_OK;
 
-       }
 
-       else if (*msg_ptr == 0x82)
 
-  8033316:	2e82      	cmp	r6, #130	; 0x82
 
-  8033318:	d11e      	bne.n	8033358 <snmp_asn1_dec_length+0xea>
 
-         /* constructed definite length format, two octets */
 
-         i = 2;
 
-         while (i > 0)
 
-         {
 
-           i--;
 
-           ofs += 1;
 
-  803331a:	1c4e      	adds	r6, r1, #1
 
-           if (ofs >= plen)
 
-  803331c:	b2b6      	uxth	r6, r6
 
-  803331e:	42a6      	cmp	r6, r4
 
-  8033320:	d201      	bcs.n	8033326 <snmp_asn1_dec_length+0xb8>
 
-             plen += p->len;
 
-           }
 
-           else
 
-           {
 
-             /* next octet in same pbuf */
 
-             msg_ptr++;
 
-  8033322:	3501      	adds	r5, #1
 
-  8033324:	e005      	b.n	8033332 <snmp_asn1_dec_length+0xc4>
 
-           i--;
 
-           ofs += 1;
 
-           if (ofs >= plen)
 
-           {
 
-             /* next octet in next pbuf */
 
-             p = p->next;
 
-  8033326:	6800      	ldr	r0, [r0, #0]
 
-             if (p == NULL) { return ERR_ARG; }
 
-  8033328:	b1d0      	cbz	r0, 8033360 <snmp_asn1_dec_length+0xf2>
 
-             msg_ptr = (u8_t*)p->payload;
 
-             plen += p->len;
 
-  803332a:	8946      	ldrh	r6, [r0, #10]
 
-           if (ofs >= plen)
 
-           {
 
-             /* next octet in next pbuf */
 
-             p = p->next;
 
-             if (p == NULL) { return ERR_ARG; }
 
-             msg_ptr = (u8_t*)p->payload;
 
-  803332c:	6845      	ldr	r5, [r0, #4]
 
-             plen += p->len;
 
-  803332e:	19a4      	adds	r4, r4, r6
 
-  8033330:	b2a4      	uxth	r4, r4
 
-             *length |= *msg_ptr;
 
-           }
 
-           else
 
-           {
 
-             /* most significant length octet */
 
-             *length = (*msg_ptr) << 8;
 
-  8033332:	782e      	ldrb	r6, [r5, #0]
 
-         /* constructed definite length format, two octets */
 
-         i = 2;
 
-         while (i > 0)
 
-         {
 
-           i--;
 
-           ofs += 1;
 
-  8033334:	3102      	adds	r1, #2
 
-           if (ofs >= plen)
 
-  8033336:	b289      	uxth	r1, r1
 
-             *length |= *msg_ptr;
 
-           }
 
-           else
 
-           {
 
-             /* most significant length octet */
 
-             *length = (*msg_ptr) << 8;
 
-  8033338:	0236      	lsls	r6, r6, #8
 
-         i = 2;
 
-         while (i > 0)
 
-         {
 
-           i--;
 
-           ofs += 1;
 
-           if (ofs >= plen)
 
-  803333a:	42a1      	cmp	r1, r4
 
-             *length |= *msg_ptr;
 
-           }
 
-           else
 
-           {
 
-             /* most significant length octet */
 
-             *length = (*msg_ptr) << 8;
 
-  803333c:	801e      	strh	r6, [r3, #0]
 
-         i = 2;
 
-         while (i > 0)
 
-         {
 
-           i--;
 
-           ofs += 1;
 
-           if (ofs >= plen)
 
-  803333e:	d201      	bcs.n	8033344 <snmp_asn1_dec_length+0xd6>
 
-             plen += p->len;
 
-           }
 
-           else
 
-           {
 
-             /* next octet in same pbuf */
 
-             msg_ptr++;
 
-  8033340:	3501      	adds	r5, #1
 
-  8033342:	e002      	b.n	803334a <snmp_asn1_dec_length+0xdc>
 
-           i--;
 
-           ofs += 1;
 
-           if (ofs >= plen)
 
-           {
 
-             /* next octet in next pbuf */
 
-             p = p->next;
 
-  8033344:	6801      	ldr	r1, [r0, #0]
 
-             if (p == NULL) { return ERR_ARG; }
 
-  8033346:	b159      	cbz	r1, 8033360 <snmp_asn1_dec_length+0xf2>
 
-             msg_ptr = (u8_t*)p->payload;
 
-  8033348:	684d      	ldr	r5, [r1, #4]
 
-             msg_ptr++;
 
-           }
 
-           if (i == 0)
 
-           {
 
-             /* least significant length octet */
 
-             *length |= *msg_ptr;
 
-  803334a:	7829      	ldrb	r1, [r5, #0]
 
-  803334c:	430e      	orrs	r6, r1
 
-  803334e:	801e      	strh	r6, [r3, #0]
 
-           {
 
-             /* most significant length octet */
 
-             *length = (*msg_ptr) << 8;
 
-           }
 
-         }
 
-         *octets_used = 3;
 
-  8033350:	2303      	movs	r3, #3
 
-  8033352:	7013      	strb	r3, [r2, #0]
 
-         return ERR_OK;
 
-  8033354:	2000      	movs	r0, #0
 
-  8033356:	e00a      	b.n	803336e <snmp_asn1_dec_length+0x100>
 
-       }
 
-       else
 
-       {
 
-         /* constructed definite length format 3..127 octets, this is too big (>64k) */
 
-         /**  @todo: do we need to accept inefficient codings with many leading zero's? */
 
-         *octets_used = 1 + ((*msg_ptr) & 0x7f);
 
-  8033358:	f006 067f 	and.w	r6, r6, #127	; 0x7f
 
-  803335c:	3601      	adds	r6, #1
 
-  803335e:	7016      	strb	r6, [r2, #0]
 
-         return ERR_ARG;
 
-  8033360:	20f2      	movs	r0, #242	; 0xf2
 
-  8033362:	e004      	b.n	803336e <snmp_asn1_dec_length+0x100>
 
-       }
 
-     }
 
-     p = p->next;
 
-  8033364:	6800      	ldr	r0, [r0, #0]
 
-   plen = 0;
 
-   while (p != NULL)
 
-   {
 
-     base = plen;
 
-     plen += p->len;
 
-  8033366:	4625      	mov	r5, r4
 
- {
 
-   u16_t plen, base;
 
-   u8_t *msg_ptr;
 
-   plen = 0;
 
-   while (p != NULL)
 
-  8033368:	2800      	cmp	r0, #0
 
-  803336a:	d183      	bne.n	8033274 <snmp_asn1_dec_length+0x6>
 
-  803336c:	e7f8      	b.n	8033360 <snmp_asn1_dec_length+0xf2>
 
-     p = p->next;
 
-   }
 
-   /* p == NULL, ofs >= plen */
 
-   return ERR_ARG;
 
- }
 
-  803336e:	b240      	sxtb	r0, r0
 
-  8033370:	bdf0      	pop	{r4, r5, r6, r7, pc}
 
- 08033372 <snmp_asn1_dec_u32t>:
 
-  * as 0x00,0xFF,0xFF. Note the leading sign octet. A positive value
 
-  * of 0xFFFFFFFF is preceded with 0x00 and the length is 5 octets!!
 
-  */
 
- err_t
 
- snmp_asn1_dec_u32t(struct pbuf *p, u16_t ofs, u16_t len, u32_t *value)
 
- {
 
-  8033372:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
 
-   u16_t plen, base;
 
-   u8_t *msg_ptr;
 
-   plen = 0;
 
-  8033376:	2500      	movs	r5, #0
 
-   while (p != NULL)
 
-  8033378:	e049      	b.n	803340e <snmp_asn1_dec_u32t+0x9c>
 
-   {
 
-     base = plen;
 
-     plen += p->len;
 
-  803337a:	8944      	ldrh	r4, [r0, #10]
 
-  803337c:	192c      	adds	r4, r5, r4
 
-  803337e:	b2a4      	uxth	r4, r4
 
-     if (ofs < plen)
 
-  8033380:	42a1      	cmp	r1, r4
 
-  8033382:	d242      	bcs.n	803340a <snmp_asn1_dec_u32t+0x98>
 
-     {
 
-       msg_ptr = (u8_t*)p->payload;
 
-       msg_ptr += ofs - base;
 
-       if ((len > 0) && (len < 6))
 
-  8033384:	1e56      	subs	r6, r2, #1
 
-   {
 
-     base = plen;
 
-     plen += p->len;
 
-     if (ofs < plen)
 
-     {
 
-       msg_ptr = (u8_t*)p->payload;
 
-  8033386:	f8d0 c004 	ldr.w	ip, [r0, #4]
 
-       msg_ptr += ofs - base;
 
-       if ((len > 0) && (len < 6))
 
-  803338a:	b2b6      	uxth	r6, r6
 
-     base = plen;
 
-     plen += p->len;
 
-     if (ofs < plen)
 
-     {
 
-       msg_ptr = (u8_t*)p->payload;
 
-       msg_ptr += ofs - base;
 
-  803338c:	1b4f      	subs	r7, r1, r5
 
-       if ((len > 0) && (len < 6))
 
-  803338e:	2e04      	cmp	r6, #4
 
-     base = plen;
 
-     plen += p->len;
 
-     if (ofs < plen)
 
-     {
 
-       msg_ptr = (u8_t*)p->payload;
 
-       msg_ptr += ofs - base;
 
-  8033390:	eb0c 0507 	add.w	r5, ip, r7
 
-       if ((len > 0) && (len < 6))
 
-  8033394:	d901      	bls.n	803339a <snmp_asn1_dec_u32t+0x28>
 
-         *value |= *msg_ptr;
 
-         return ERR_OK;
 
-       }
 
-       else
 
-       {
 
-         return ERR_ARG;
 
-  8033396:	20f2      	movs	r0, #242	; 0xf2
 
-  8033398:	e03c      	b.n	8033414 <snmp_asn1_dec_u32t+0xa2>
 
-       msg_ptr = (u8_t*)p->payload;
 
-       msg_ptr += ofs - base;
 
-       if ((len > 0) && (len < 6))
 
-       {
 
-         /* start from zero */
 
-         *value = 0;
 
-  803339a:	f04f 0800 	mov.w	r8, #0
 
-  803339e:	f8c3 8000 	str.w	r8, [r3]
 
-         if (*msg_ptr & 0x80)
 
-  80333a2:	f81c 7007 	ldrb.w	r7, [ip, r7]
 
-  80333a6:	f017 0f80 	tst.w	r7, #128	; 0x80
 
-  80333aa:	d1f4      	bne.n	8033396 <snmp_asn1_dec_u32t+0x24>
 
-           return ERR_ARG;
 
-         }
 
-         else
 
-         {
 
-           /* positive */
 
-           if ((len > 1) && (*msg_ptr == 0))
 
-  80333ac:	2a01      	cmp	r2, #1
 
-  80333ae:	d00e      	beq.n	80333ce <snmp_asn1_dec_u32t+0x5c>
 
-  80333b0:	b96f      	cbnz	r7, 80333ce <snmp_asn1_dec_u32t+0x5c>
 
-           {
 
-             /* skip leading "sign byte" octet 0x00 */
 
-             len--;
 
-             ofs += 1;
 
-  80333b2:	3101      	adds	r1, #1
 
-  80333b4:	b289      	uxth	r1, r1
 
-             if (ofs >= plen)
 
-  80333b6:	42a1      	cmp	r1, r4
 
-         {
 
-           /* positive */
 
-           if ((len > 1) && (*msg_ptr == 0))
 
-           {
 
-             /* skip leading "sign byte" octet 0x00 */
 
-             len--;
 
-  80333b8:	4632      	mov	r2, r6
 
-             ofs += 1;
 
-             if (ofs >= plen)
 
-  80333ba:	d307      	bcc.n	80333cc <snmp_asn1_dec_u32t+0x5a>
 
-             {
 
-               /* next octet in next pbuf */
 
-               p = p->next;
 
-  80333bc:	6800      	ldr	r0, [r0, #0]
 
-               if (p == NULL) { return ERR_ARG; }
 
-  80333be:	2800      	cmp	r0, #0
 
-  80333c0:	d0e9      	beq.n	8033396 <snmp_asn1_dec_u32t+0x24>
 
-               msg_ptr = (u8_t*)p->payload;
 
-               plen += p->len;
 
-  80333c2:	8946      	ldrh	r6, [r0, #10]
 
-             if (ofs >= plen)
 
-             {
 
-               /* next octet in next pbuf */
 
-               p = p->next;
 
-               if (p == NULL) { return ERR_ARG; }
 
-               msg_ptr = (u8_t*)p->payload;
 
-  80333c4:	6845      	ldr	r5, [r0, #4]
 
-               plen += p->len;
 
-  80333c6:	19a4      	adds	r4, r4, r6
 
-  80333c8:	b2a4      	uxth	r4, r4
 
-  80333ca:	e000      	b.n	80333ce <snmp_asn1_dec_u32t+0x5c>
 
-             }
 
-             else
 
-             {
 
-               /* next octet in same pbuf */
 
-               msg_ptr++;
 
-  80333cc:	3501      	adds	r5, #1
 
-  80333ce:	1c4e      	adds	r6, r1, #1
 
-  * @note ASN coded integers are _always_ signed. E.g. +0xFFFF is coded
 
-  * as 0x00,0xFF,0xFF. Note the leading sign octet. A positive value
 
-  * of 0xFFFFFFFF is preceded with 0x00 and the length is 5 octets!!
 
-  */
 
- err_t
 
- snmp_asn1_dec_u32t(struct pbuf *p, u16_t ofs, u16_t len, u32_t *value)
 
-  80333d0:	188a      	adds	r2, r1, r2
 
-  80333d2:	b2b6      	uxth	r6, r6
 
-  80333d4:	b292      	uxth	r2, r2
 
-  80333d6:	e010      	b.n	80333fa <snmp_asn1_dec_u32t+0x88>
 
-         }
 
-         /* OR octets with value */
 
-         while (len > 1)
 
-         {
 
-           len--;
 
-           *value |= *msg_ptr;
 
-  80333d8:	7829      	ldrb	r1, [r5, #0]
 
-  80333da:	430f      	orrs	r7, r1
 
-           *value <<= 8;
 
-  80333dc:	023f      	lsls	r7, r7, #8
 
-           ofs += 1;
 
-           if (ofs >= plen)
 
-  80333de:	42a6      	cmp	r6, r4
 
-         /* OR octets with value */
 
-         while (len > 1)
 
-         {
 
-           len--;
 
-           *value |= *msg_ptr;
 
-           *value <<= 8;
 
-  80333e0:	601f      	str	r7, [r3, #0]
 
-           ofs += 1;
 
-           if (ofs >= plen)
 
-  80333e2:	d307      	bcc.n	80333f4 <snmp_asn1_dec_u32t+0x82>
 
-           {
 
-             /* next octet in next pbuf */
 
-             p = p->next;
 
-  80333e4:	6800      	ldr	r0, [r0, #0]
 
-             if (p == NULL) { return ERR_ARG; }
 
-  80333e6:	2800      	cmp	r0, #0
 
-  80333e8:	d0d5      	beq.n	8033396 <snmp_asn1_dec_u32t+0x24>
 
-             msg_ptr = (u8_t*)p->payload;
 
-             plen += p->len;
 
-  80333ea:	8941      	ldrh	r1, [r0, #10]
 
-           if (ofs >= plen)
 
-           {
 
-             /* next octet in next pbuf */
 
-             p = p->next;
 
-             if (p == NULL) { return ERR_ARG; }
 
-             msg_ptr = (u8_t*)p->payload;
 
-  80333ec:	6845      	ldr	r5, [r0, #4]
 
-             plen += p->len;
 
-  80333ee:	1864      	adds	r4, r4, r1
 
-  80333f0:	b2a4      	uxth	r4, r4
 
-  80333f2:	e000      	b.n	80333f6 <snmp_asn1_dec_u32t+0x84>
 
-           }
 
-           else
 
-           {
 
-             /* next octet in same pbuf */
 
-             msg_ptr++;
 
-  80333f4:	3501      	adds	r5, #1
 
-  80333f6:	3601      	adds	r6, #1
 
-  80333f8:	b2b6      	uxth	r6, r6
 
-               msg_ptr++;
 
-             }
 
-           }
 
-         }
 
-         /* OR octets with value */
 
-         while (len > 1)
 
-  80333fa:	4296      	cmp	r6, r2
 
-  80333fc:	681f      	ldr	r7, [r3, #0]
 
-  80333fe:	d1eb      	bne.n	80333d8 <snmp_asn1_dec_u32t+0x66>
 
-           {
 
-             /* next octet in same pbuf */
 
-             msg_ptr++;
 
-           }
 
-         }
 
-         *value |= *msg_ptr;
 
-  8033400:	782a      	ldrb	r2, [r5, #0]
 
-  8033402:	4317      	orrs	r7, r2
 
-  8033404:	601f      	str	r7, [r3, #0]
 
-         return ERR_OK;
 
-  8033406:	2000      	movs	r0, #0
 
-  8033408:	e004      	b.n	8033414 <snmp_asn1_dec_u32t+0xa2>
 
-       else
 
-       {
 
-         return ERR_ARG;
 
-       }
 
-     }
 
-     p = p->next;
 
-  803340a:	6800      	ldr	r0, [r0, #0]
 
-   plen = 0;
 
-   while (p != NULL)
 
-   {
 
-     base = plen;
 
-     plen += p->len;
 
-  803340c:	4625      	mov	r5, r4
 
- {
 
-   u16_t plen, base;
 
-   u8_t *msg_ptr;
 
-   plen = 0;
 
-   while (p != NULL)
 
-  803340e:	2800      	cmp	r0, #0
 
-  8033410:	d1b3      	bne.n	803337a <snmp_asn1_dec_u32t+0x8>
 
-  8033412:	e7c0      	b.n	8033396 <snmp_asn1_dec_u32t+0x24>
 
-     }
 
-     p = p->next;
 
-   }
 
-   /* p == NULL, ofs >= plen */
 
-   return ERR_ARG;
 
- }
 
-  8033414:	b240      	sxtb	r0, r0
 
-  8033416:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 
- 0803341a <snmp_asn1_dec_s32t>:
 
-  *
 
-  * @note ASN coded integers are _always_ signed!
 
-  */
 
- err_t
 
- snmp_asn1_dec_s32t(struct pbuf *p, u16_t ofs, u16_t len, s32_t *value)
 
- {
 
-  803341a:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
 
- #if BYTE_ORDER == BIG_ENDIAN
 
-   u8_t *lsb_ptr = (u8_t*)value + sizeof(s32_t) - 1;
 
- #endif
 
-   u8_t sign;
 
-   plen = 0;
 
-  803341e:	2500      	movs	r5, #0
 
-   while (p != NULL)
 
-  8033420:	e04e      	b.n	80334c0 <snmp_asn1_dec_s32t+0xa6>
 
-   {
 
-     base = plen;
 
-     plen += p->len;
 
-  8033422:	8944      	ldrh	r4, [r0, #10]
 
-  8033424:	192c      	adds	r4, r5, r4
 
-  8033426:	b2a4      	uxth	r4, r4
 
-     if (ofs < plen)
 
-  8033428:	42a1      	cmp	r1, r4
 
-  803342a:	d247      	bcs.n	80334bc <snmp_asn1_dec_s32t+0xa2>
 
-     {
 
-       msg_ptr = (u8_t*)p->payload;
 
-  803342c:	6847      	ldr	r7, [r0, #4]
 
-       msg_ptr += ofs - base;
 
-       if ((len > 0) && (len < 5))
 
-  803342e:	f102 3cff 	add.w	ip, r2, #4294967295
 
-     base = plen;
 
-     plen += p->len;
 
-     if (ofs < plen)
 
-     {
 
-       msg_ptr = (u8_t*)p->payload;
 
-       msg_ptr += ofs - base;
 
-  8033432:	1b4e      	subs	r6, r1, r5
 
-       if ((len > 0) && (len < 5))
 
-  8033434:	f1bc 0f03 	cmp.w	ip, #3
 
-     base = plen;
 
-     plen += p->len;
 
-     if (ofs < plen)
 
-     {
 
-       msg_ptr = (u8_t*)p->payload;
 
-       msg_ptr += ofs - base;
 
-  8033438:	eb07 0506 	add.w	r5, r7, r6
 
-       if ((len > 0) && (len < 5))
 
-  803343c:	d901      	bls.n	8033442 <snmp_asn1_dec_s32t+0x28>
 
-         }
 
-         return ERR_OK;
 
-       }
 
-       else
 
-       {
 
-         return ERR_ARG;
 
-  803343e:	20f2      	movs	r0, #242	; 0xf2
 
-  8033440:	e041      	b.n	80334c6 <snmp_asn1_dec_s32t+0xac>
 
-     {
 
-       msg_ptr = (u8_t*)p->payload;
 
-       msg_ptr += ofs - base;
 
-       if ((len > 0) && (len < 5))
 
-       {
 
-         if (*msg_ptr & 0x80)
 
-  8033442:	57be      	ldrsb	r6, [r7, r6]
 
-  8033444:	2e00      	cmp	r6, #0
 
-  8033446:	da0b      	bge.n	8033460 <snmp_asn1_dec_s32t+0x46>
 
-         {
 
-           /* negative, start from -1 */
 
-           *value = -1;
 
-  8033448:	f04f 36ff 	mov.w	r6, #4294967295
 
-  803344c:	601e      	str	r6, [r3, #0]
 
-           sign = 1;
 
-  803344e:	2601      	movs	r6, #1
 
-  8033450:	f101 0c01 	add.w	ip, r1, #1
 
-  * @return ERR_OK if successfull, ERR_ARG if we can't (or won't) decode
 
-  *
 
-  * @note ASN coded integers are _always_ signed!
 
-  */
 
- err_t
 
- snmp_asn1_dec_s32t(struct pbuf *p, u16_t ofs, u16_t len, s32_t *value)
 
-  8033454:	1852      	adds	r2, r2, r1
 
-  8033456:	fa1f fc8c 	uxth.w	ip, ip
 
-  803345a:	b292      	uxth	r2, r2
 
-           len--;
 
-           if (sign)
 
-           {
 
-             *lsb_ptr &= *msg_ptr;
 
-             *value <<= 8;
 
-             *lsb_ptr |= 255;
 
-  803345c:	21ff      	movs	r1, #255	; 0xff
 
-  803345e:	e022      	b.n	80334a6 <snmp_asn1_dec_s32t+0x8c>
 
-           sign = 1;
 
-         }
 
-         else
 
-         {
 
-           /* positive, start from 0 */
 
-           *value = 0;
 
-  8033460:	2600      	movs	r6, #0
 
-  8033462:	601e      	str	r6, [r3, #0]
 
-  8033464:	e7f4      	b.n	8033450 <snmp_asn1_dec_s32t+0x36>
 
-  8033466:	f895 8000 	ldrb.w	r8, [r5]
 
-         }
 
-         /* OR/AND octets with value */
 
-         while (len > 1)
 
-         {
 
-           len--;
 
-           if (sign)
 
-  803346a:	b13e      	cbz	r6, 803347c <snmp_asn1_dec_s32t+0x62>
 
-           {
 
-             *lsb_ptr &= *msg_ptr;
 
-  803346c:	ea08 0707 	and.w	r7, r8, r7
 
-  8033470:	701f      	strb	r7, [r3, #0]
 
-             *value <<= 8;
 
-  8033472:	681f      	ldr	r7, [r3, #0]
 
-  8033474:	023f      	lsls	r7, r7, #8
 
-  8033476:	601f      	str	r7, [r3, #0]
 
-             *lsb_ptr |= 255;
 
-  8033478:	7019      	strb	r1, [r3, #0]
 
-  803347a:	e005      	b.n	8033488 <snmp_asn1_dec_s32t+0x6e>
 
-           }
 
-           else
 
-           {
 
-             *lsb_ptr |= *msg_ptr;
 
-  803347c:	ea48 0707 	orr.w	r7, r8, r7
 
-  8033480:	701f      	strb	r7, [r3, #0]
 
-             *value <<= 8;
 
-  8033482:	681f      	ldr	r7, [r3, #0]
 
-  8033484:	023f      	lsls	r7, r7, #8
 
-  8033486:	601f      	str	r7, [r3, #0]
 
-           }
 
-           ofs += 1;
 
-           if (ofs >= plen)
 
-  8033488:	45a4      	cmp	ip, r4
 
-  803348a:	d307      	bcc.n	803349c <snmp_asn1_dec_s32t+0x82>
 
-           {
 
-             /* next octet in next pbuf */
 
-             p = p->next;
 
-  803348c:	6800      	ldr	r0, [r0, #0]
 
-             if (p == NULL) { return ERR_ARG; }
 
-  803348e:	2800      	cmp	r0, #0
 
-  8033490:	d0d5      	beq.n	803343e <snmp_asn1_dec_s32t+0x24>
 
-             msg_ptr = (u8_t*)p->payload;
 
-             plen += p->len;
 
-  8033492:	8947      	ldrh	r7, [r0, #10]
 
-           if (ofs >= plen)
 
-           {
 
-             /* next octet in next pbuf */
 
-             p = p->next;
 
-             if (p == NULL) { return ERR_ARG; }
 
-             msg_ptr = (u8_t*)p->payload;
 
-  8033494:	6845      	ldr	r5, [r0, #4]
 
-             plen += p->len;
 
-  8033496:	19e4      	adds	r4, r4, r7
 
-  8033498:	b2a4      	uxth	r4, r4
 
-  803349a:	e000      	b.n	803349e <snmp_asn1_dec_s32t+0x84>
 
-           }
 
-           else
 
-           {
 
-             /* next octet in same pbuf */
 
-             msg_ptr++;
 
-  803349c:	3501      	adds	r5, #1
 
-  803349e:	f10c 0c01 	add.w	ip, ip, #1
 
-  80334a2:	fa1f fc8c 	uxth.w	ip, ip
 
-           /* positive, start from 0 */
 
-           *value = 0;
 
-           sign = 0;
 
-         }
 
-         /* OR/AND octets with value */
 
-         while (len > 1)
 
-  80334a6:	4594      	cmp	ip, r2
 
-  80334a8:	781f      	ldrb	r7, [r3, #0]
 
-  80334aa:	d1dc      	bne.n	8033466 <snmp_asn1_dec_s32t+0x4c>
 
-  80334ac:	782a      	ldrb	r2, [r5, #0]
 
-           {
 
-             /* next octet in same pbuf */
 
-             msg_ptr++;
 
-           }
 
-         }
 
-         if (sign)
 
-  80334ae:	b11e      	cbz	r6, 80334b8 <snmp_asn1_dec_s32t+0x9e>
 
-         {
 
-           *lsb_ptr &= *msg_ptr;
 
-  80334b0:	4017      	ands	r7, r2
 
-  80334b2:	701f      	strb	r7, [r3, #0]
 
-         }
 
-         else
 
-         {
 
-           *lsb_ptr |= *msg_ptr;
 
-         }
 
-         return ERR_OK;
 
-  80334b4:	2000      	movs	r0, #0
 
-  80334b6:	e006      	b.n	80334c6 <snmp_asn1_dec_s32t+0xac>
 
-         {
 
-           *lsb_ptr &= *msg_ptr;
 
-         }
 
-         else
 
-         {
 
-           *lsb_ptr |= *msg_ptr;
 
-  80334b8:	4317      	orrs	r7, r2
 
-  80334ba:	e7fa      	b.n	80334b2 <snmp_asn1_dec_s32t+0x98>
 
-       else
 
-       {
 
-         return ERR_ARG;
 
-       }
 
-     }
 
-     p = p->next;
 
-  80334bc:	6800      	ldr	r0, [r0, #0]
 
-   plen = 0;
 
-   while (p != NULL)
 
-   {
 
-     base = plen;
 
-     plen += p->len;
 
-  80334be:	4625      	mov	r5, r4
 
-   u8_t *lsb_ptr = (u8_t*)value + sizeof(s32_t) - 1;
 
- #endif
 
-   u8_t sign;
 
-   plen = 0;
 
-   while (p != NULL)
 
-  80334c0:	2800      	cmp	r0, #0
 
-  80334c2:	d1ae      	bne.n	8033422 <snmp_asn1_dec_s32t+0x8>
 
-  80334c4:	e7bb      	b.n	803343e <snmp_asn1_dec_s32t+0x24>
 
-     }
 
-     p = p->next;
 
-   }
 
-   /* p == NULL, ofs >= plen */
 
-   return ERR_ARG;
 
- }
 
-  80334c6:	b240      	sxtb	r0, r0
 
-  80334c8:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 
- 080334cc <snmp_asn1_dec_oid>:
 
-  * @param oid return object identifier struct
 
-  * @return ERR_OK if successfull, ERR_ARG if we can't (or won't) decode
 
-  */
 
- err_t
 
- snmp_asn1_dec_oid(struct pbuf *p, u16_t ofs, u16_t len, struct snmp_obj_id *oid)
 
- {
 
-  80334cc:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
 
-   u16_t plen, base;
 
-   u8_t *msg_ptr;
 
-   s32_t *oid_ptr;
 
-   plen = 0;
 
-  80334d0:	2600      	movs	r6, #0
 
-   while (p != NULL)
 
-  80334d2:	e08d      	b.n	80335f0 <snmp_asn1_dec_oid+0x124>
 
-   {
 
-     base = plen;
 
-     plen += p->len;
 
-  80334d4:	8944      	ldrh	r4, [r0, #10]
 
-  80334d6:	1934      	adds	r4, r6, r4
 
-  80334d8:	b2a4      	uxth	r4, r4
 
-     if (ofs < plen)
 
-  80334da:	42a1      	cmp	r1, r4
 
-  80334dc:	f080 8086 	bcs.w	80335ec <snmp_asn1_dec_oid+0x120>
 
-     {
 
-       msg_ptr = (u8_t*)p->payload;
 
-       msg_ptr += ofs - base;
 
-       oid->len = 0;
 
-  80334e0:	f04f 0800 	mov.w	r8, #0
 
-   {
 
-     base = plen;
 
-     plen += p->len;
 
-     if (ofs < plen)
 
-     {
 
-       msg_ptr = (u8_t*)p->payload;
 
-  80334e4:	6847      	ldr	r7, [r0, #4]
 
-       msg_ptr += ofs - base;
 
-       oid->len = 0;
 
-  80334e6:	f883 8000 	strb.w	r8, [r3]
 
-       oid_ptr = &oid->id[0];
 
-       if (len > 0)
 
-  80334ea:	b90a      	cbnz	r2, 80334f0 <snmp_asn1_dec_oid+0x24>
 
-       }
 
-       else
 
-       {
 
-         /* accepting zero length identifiers e.g. for
 
-            getnext operation. uncommon but valid */
 
-         return ERR_OK;
 
-  80334ec:	2000      	movs	r0, #0
 
-  80334ee:	e083      	b.n	80335f8 <snmp_asn1_dec_oid+0x12c>
 
-     base = plen;
 
-     plen += p->len;
 
-     if (ofs < plen)
 
-     {
 
-       msg_ptr = (u8_t*)p->payload;
 
-       msg_ptr += ofs - base;
 
-  80334f0:	1b8e      	subs	r6, r1, r6
 
-  80334f2:	19bd      	adds	r5, r7, r6
 
-       oid->len = 0;
 
-       oid_ptr = &oid->id[0];
 
-       if (len > 0)
 
-       {
 
-         /* first compressed octet */
 
-         if (*msg_ptr == 0x2B)
 
-  80334f4:	f817 c006 	ldrb.w	ip, [r7, r6]
 
-  80334f8:	f1bc 0f2b 	cmp.w	ip, #43	; 0x2b
 
-  80334fc:	d103      	bne.n	8033506 <snmp_asn1_dec_oid+0x3a>
 
-         {
 
-           /* (most) common case 1.3 (iso.org) */
 
-           *oid_ptr = 1;
 
-  80334fe:	2601      	movs	r6, #1
 
-  8033500:	605e      	str	r6, [r3, #4]
 
-           oid_ptr++;
 
-           *oid_ptr = 3;
 
-  8033502:	2603      	movs	r6, #3
 
-  8033504:	e016      	b.n	8033534 <snmp_asn1_dec_oid+0x68>
 
-           oid_ptr++;
 
-         }
 
-         else if (*msg_ptr < 40)
 
-  8033506:	f1bc 0f27 	cmp.w	ip, #39	; 0x27
 
-  803350a:	d803      	bhi.n	8033514 <snmp_asn1_dec_oid+0x48>
 
-         {
 
-           *oid_ptr = 0;
 
-  803350c:	f8c3 8004 	str.w	r8, [r3, #4]
 
-           oid_ptr++;
 
-           *oid_ptr = *msg_ptr;
 
-  8033510:	5dbe      	ldrb	r6, [r7, r6]
 
-  8033512:	e00f      	b.n	8033534 <snmp_asn1_dec_oid+0x68>
 
-           oid_ptr++;
 
-         }
 
-         else if (*msg_ptr < 80)
 
-  8033514:	f1bc 0f4f 	cmp.w	ip, #79	; 0x4f
 
-  8033518:	d806      	bhi.n	8033528 <snmp_asn1_dec_oid+0x5c>
 
-         {
 
-           *oid_ptr = 1;
 
-  803351a:	f04f 0c01 	mov.w	ip, #1
 
-  803351e:	f8c3 c004 	str.w	ip, [r3, #4]
 
-           oid_ptr++;
 
-           *oid_ptr = (*msg_ptr) - 40;
 
-  8033522:	5dbe      	ldrb	r6, [r7, r6]
 
-  8033524:	3e28      	subs	r6, #40	; 0x28
 
-  8033526:	e005      	b.n	8033534 <snmp_asn1_dec_oid+0x68>
 
-           oid_ptr++;
 
-         }
 
-         else
 
-         {
 
-           *oid_ptr = 2;
 
-  8033528:	f04f 0c02 	mov.w	ip, #2
 
-  803352c:	f8c3 c004 	str.w	ip, [r3, #4]
 
-           oid_ptr++;
 
-           *oid_ptr = (*msg_ptr) - 80;
 
-  8033530:	5dbe      	ldrb	r6, [r7, r6]
 
-  8033532:	3e50      	subs	r6, #80	; 0x50
 
-       {
 
-         /* accepting zero length identifiers e.g. for
 
-            getnext operation. uncommon but valid */
 
-         return ERR_OK;
 
-       }
 
-       len--;
 
-  8033534:	3a01      	subs	r2, #1
 
-           *oid_ptr = 2;
 
-           oid_ptr++;
 
-           *oid_ptr = (*msg_ptr) - 80;
 
-           oid_ptr++;
 
-         }
 
-         oid->len = 2;
 
-  8033536:	2702      	movs	r7, #2
 
-       {
 
-         /* accepting zero length identifiers e.g. for
 
-            getnext operation. uncommon but valid */
 
-         return ERR_OK;
 
-       }
 
-       len--;
 
-  8033538:	b292      	uxth	r2, r2
 
-         }
 
-         else
 
-         {
 
-           *oid_ptr = 2;
 
-           oid_ptr++;
 
-           *oid_ptr = (*msg_ptr) - 80;
 
-  803353a:	609e      	str	r6, [r3, #8]
 
-           oid_ptr++;
 
-         }
 
-         oid->len = 2;
 
-  803353c:	701f      	strb	r7, [r3, #0]
 
-         else
 
-         {
 
-           *oid_ptr = 2;
 
-           oid_ptr++;
 
-           *oid_ptr = (*msg_ptr) - 80;
 
-           oid_ptr++;
 
-  803353e:	f103 060c 	add.w	r6, r3, #12
 
-         /* accepting zero length identifiers e.g. for
 
-            getnext operation. uncommon but valid */
 
-         return ERR_OK;
 
-       }
 
-       len--;
 
-       if (len > 0)
 
-  8033542:	2a00      	cmp	r2, #0
 
-  8033544:	d04b      	beq.n	80335de <snmp_asn1_dec_oid+0x112>
 
-       {
 
-         ofs += 1;
 
-  8033546:	3101      	adds	r1, #1
 
-  8033548:	b289      	uxth	r1, r1
 
-         if (ofs >= plen)
 
-  803354a:	42a1      	cmp	r1, r4
 
-  803354c:	d308      	bcc.n	8033560 <snmp_asn1_dec_oid+0x94>
 
-         {
 
-           /* next octet in next pbuf */
 
-           p = p->next;
 
-  803354e:	6800      	ldr	r0, [r0, #0]
 
-           if (p == NULL) { return ERR_ARG; }
 
-  8033550:	b908      	cbnz	r0, 8033556 <snmp_asn1_dec_oid+0x8a>
 
-  8033552:	20f2      	movs	r0, #242	; 0xf2
 
-  8033554:	e050      	b.n	80335f8 <snmp_asn1_dec_oid+0x12c>
 
-           msg_ptr = (u8_t*)p->payload;
 
-           plen += p->len;
 
-  8033556:	8947      	ldrh	r7, [r0, #10]
 
-         if (ofs >= plen)
 
-         {
 
-           /* next octet in next pbuf */
 
-           p = p->next;
 
-           if (p == NULL) { return ERR_ARG; }
 
-           msg_ptr = (u8_t*)p->payload;
 
-  8033558:	6845      	ldr	r5, [r0, #4]
 
-           plen += p->len;
 
-  803355a:	19e4      	adds	r4, r4, r7
 
-  803355c:	b2a4      	uxth	r4, r4
 
-  803355e:	e03e      	b.n	80335de <snmp_asn1_dec_oid+0x112>
 
-         }
 
-         else
 
-         {
 
-           /* next octet in same pbuf */
 
-           msg_ptr++;
 
-  8033560:	3501      	adds	r5, #1
 
-  8033562:	e03c      	b.n	80335de <snmp_asn1_dec_oid+0x112>
 
-         }
 
-       }
 
-       while ((len > 0) && (oid->len < LWIP_SNMP_OBJ_ID_LEN))
 
-       {
 
-         /* sub-identifier uses multiple octets */
 
-         if (*msg_ptr & 0x80)
 
-  8033564:	782f      	ldrb	r7, [r5, #0]
 
-  8033566:	f017 0f80 	tst.w	r7, #128	; 0x80
 
-  803356a:	d023      	beq.n	80335b4 <snmp_asn1_dec_oid+0xe8>
 
-  803356c:	e014      	b.n	8033598 <snmp_asn1_dec_oid+0xcc>
 
-           while ((*msg_ptr & 0x80) && (len > 1))
 
-           {
 
-             len--;
 
-             sub_id = (sub_id << 7) + (*msg_ptr & ~0x80);
 
-             ofs += 1;
 
-  803356e:	3101      	adds	r1, #1
 
-  8033570:	b289      	uxth	r1, r1
 
-         {
 
-           s32_t sub_id = 0;
 
-           while ((*msg_ptr & 0x80) && (len > 1))
 
-           {
 
-             len--;
 
-  8033572:	3a01      	subs	r2, #1
 
-             sub_id = (sub_id << 7) + (*msg_ptr & ~0x80);
 
-  8033574:	f02c 0c80 	bic.w	ip, ip, #128	; 0x80
 
-             ofs += 1;
 
-             if (ofs >= plen)
 
-  8033578:	42a1      	cmp	r1, r4
 
-         {
 
-           s32_t sub_id = 0;
 
-           while ((*msg_ptr & 0x80) && (len > 1))
 
-           {
 
-             len--;
 
-  803357a:	b292      	uxth	r2, r2
 
-             sub_id = (sub_id << 7) + (*msg_ptr & ~0x80);
 
-  803357c:	eb0c 17c7 	add.w	r7, ip, r7, lsl #7
 
-             ofs += 1;
 
-             if (ofs >= plen)
 
-  8033580:	d308      	bcc.n	8033594 <snmp_asn1_dec_oid+0xc8>
 
-             {
 
-               /* next octet in next pbuf */
 
-               p = p->next;
 
-  8033582:	6800      	ldr	r0, [r0, #0]
 
-               if (p == NULL) { return ERR_ARG; }
 
-  8033584:	2800      	cmp	r0, #0
 
-  8033586:	d0e4      	beq.n	8033552 <snmp_asn1_dec_oid+0x86>
 
-               msg_ptr = (u8_t*)p->payload;
 
-               plen += p->len;
 
-  8033588:	f8b0 c00a 	ldrh.w	ip, [r0, #10]
 
-             if (ofs >= plen)
 
-             {
 
-               /* next octet in next pbuf */
 
-               p = p->next;
 
-               if (p == NULL) { return ERR_ARG; }
 
-               msg_ptr = (u8_t*)p->payload;
 
-  803358c:	6845      	ldr	r5, [r0, #4]
 
-               plen += p->len;
 
-  803358e:	4464      	add	r4, ip
 
-  8033590:	b2a4      	uxth	r4, r4
 
-  8033592:	e002      	b.n	803359a <snmp_asn1_dec_oid+0xce>
 
-             }
 
-             else
 
-             {
 
-               /* next octet in same pbuf */
 
-               msg_ptr++;
 
-  8033594:	3501      	adds	r5, #1
 
-  8033596:	e000      	b.n	803359a <snmp_asn1_dec_oid+0xce>
 
-         }
 
-       }
 
-       while ((len > 0) && (oid->len < LWIP_SNMP_OBJ_ID_LEN))
 
-       {
 
-         /* sub-identifier uses multiple octets */
 
-         if (*msg_ptr & 0x80)
 
-  8033598:	2700      	movs	r7, #0
 
-         {
 
-           s32_t sub_id = 0;
 
-           while ((*msg_ptr & 0x80) && (len > 1))
 
-  803359a:	f895 c000 	ldrb.w	ip, [r5]
 
-  803359e:	f01c 0f80 	tst.w	ip, #128	; 0x80
 
-  80335a2:	d02c      	beq.n	80335fe <snmp_asn1_dec_oid+0x132>
 
-  80335a4:	2a01      	cmp	r2, #1
 
-  80335a6:	d1e2      	bne.n	803356e <snmp_asn1_dec_oid+0xa2>
 
-  80335a8:	e009      	b.n	80335be <snmp_asn1_dec_oid+0xf2>
 
-             }
 
-           }
 
-           if (!(*msg_ptr & 0x80) && (len > 0))
 
-           {
 
-             /* last octet sub-identifier */
 
-             len--;
 
-  80335aa:	3a01      	subs	r2, #1
 
-  80335ac:	b292      	uxth	r2, r2
 
-             sub_id = (sub_id << 7) + *msg_ptr;
 
-  80335ae:	eb0c 17c7 	add.w	r7, ip, r7, lsl #7
 
-  80335b2:	e001      	b.n	80335b8 <snmp_asn1_dec_oid+0xec>
 
-           }
 
-         }
 
-         else
 
-         {
 
-           /* !(*msg_ptr & 0x80) sub-identifier uses single octet */
 
-           len--;
 
-  80335b4:	3a01      	subs	r2, #1
 
-  80335b6:	b292      	uxth	r2, r2
 
-           *oid_ptr = *msg_ptr;
 
-  80335b8:	f846 7c04 	str.w	r7, [r6, #-4]
 
-         }
 
-         if (len > 0)
 
-  80335bc:	b162      	cbz	r2, 80335d8 <snmp_asn1_dec_oid+0x10c>
 
-         {
 
-           /* remaining oid bytes available ... */
 
-           ofs += 1;
 
-  80335be:	3101      	adds	r1, #1
 
-  80335c0:	b289      	uxth	r1, r1
 
-           if (ofs >= plen)
 
-  80335c2:	42a1      	cmp	r1, r4
 
-  80335c4:	d307      	bcc.n	80335d6 <snmp_asn1_dec_oid+0x10a>
 
-           {
 
-             /* next octet in next pbuf */
 
-             p = p->next;
 
-  80335c6:	6800      	ldr	r0, [r0, #0]
 
-             if (p == NULL) { return ERR_ARG; }
 
-  80335c8:	2800      	cmp	r0, #0
 
-  80335ca:	d0c2      	beq.n	8033552 <snmp_asn1_dec_oid+0x86>
 
-             msg_ptr = (u8_t*)p->payload;
 
-             plen += p->len;
 
-  80335cc:	8947      	ldrh	r7, [r0, #10]
 
-           if (ofs >= plen)
 
-           {
 
-             /* next octet in next pbuf */
 
-             p = p->next;
 
-             if (p == NULL) { return ERR_ARG; }
 
-             msg_ptr = (u8_t*)p->payload;
 
-  80335ce:	6845      	ldr	r5, [r0, #4]
 
-             plen += p->len;
 
-  80335d0:	19e4      	adds	r4, r4, r7
 
-  80335d2:	b2a4      	uxth	r4, r4
 
-  80335d4:	e000      	b.n	80335d8 <snmp_asn1_dec_oid+0x10c>
 
-           }
 
-           else
 
-           {
 
-             /* next octet in same pbuf */
 
-             msg_ptr++;
 
-  80335d6:	3501      	adds	r5, #1
 
-           }
 
-         }
 
-         oid_ptr++;
 
-         oid->len++;
 
-  80335d8:	781f      	ldrb	r7, [r3, #0]
 
-  80335da:	3701      	adds	r7, #1
 
-  80335dc:	701f      	strb	r7, [r3, #0]
 
-  80335de:	3604      	adds	r6, #4
 
-         {
 
-           /* next octet in same pbuf */
 
-           msg_ptr++;
 
-         }
 
-       }
 
-       while ((len > 0) && (oid->len < LWIP_SNMP_OBJ_ID_LEN))
 
-  80335e0:	2a00      	cmp	r2, #0
 
-  80335e2:	d083      	beq.n	80334ec <snmp_asn1_dec_oid+0x20>
 
-  80335e4:	781f      	ldrb	r7, [r3, #0]
 
-  80335e6:	2f1f      	cmp	r7, #31
 
-  80335e8:	d9bc      	bls.n	8033564 <snmp_asn1_dec_oid+0x98>
 
-  80335ea:	e7b2      	b.n	8033552 <snmp_asn1_dec_oid+0x86>
 
-         /* len > 0, oid->len == LWIP_SNMP_OBJ_ID_LEN or malformed encoding */
 
-         return ERR_ARG;
 
-       }
 
-     }
 
-     p = p->next;
 
-  80335ec:	6800      	ldr	r0, [r0, #0]
 
-   plen = 0;
 
-   while (p != NULL)
 
-   {
 
-     base = plen;
 
-     plen += p->len;
 
-  80335ee:	4626      	mov	r6, r4
 
-   u16_t plen, base;
 
-   u8_t *msg_ptr;
 
-   s32_t *oid_ptr;
 
-   plen = 0;
 
-   while (p != NULL)
 
-  80335f0:	2800      	cmp	r0, #0
 
-  80335f2:	f47f af6f 	bne.w	80334d4 <snmp_asn1_dec_oid+0x8>
 
-  80335f6:	e7ac      	b.n	8033552 <snmp_asn1_dec_oid+0x86>
 
-  80335f8:	b240      	sxtb	r0, r0
 
-  80335fa:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 
-             {
 
-               /* next octet in same pbuf */
 
-               msg_ptr++;
 
-             }
 
-           }
 
-           if (!(*msg_ptr & 0x80) && (len > 0))
 
-  80335fe:	2a00      	cmp	r2, #0
 
-  8033600:	d1d3      	bne.n	80335aa <snmp_asn1_dec_oid+0xde>
 
-  8033602:	e7e9      	b.n	80335d8 <snmp_asn1_dec_oid+0x10c>
 
- 08033604 <snmp_asn1_dec_raw>:
 
-  * @param raw return raw bytes
 
-  * @return ERR_OK if successfull, ERR_ARG if we can't (or won't) decode
 
-  */
 
- err_t
 
- snmp_asn1_dec_raw(struct pbuf *p, u16_t ofs, u16_t len, u16_t raw_len, u8_t *raw)
 
- {
 
-  8033604:	b5f0      	push	{r4, r5, r6, r7, lr}
 
-   u16_t plen, base;
 
-   u8_t *msg_ptr;
 
-   if (len > 0)
 
-  8033606:	2a00      	cmp	r2, #0
 
-  8033608:	d12d      	bne.n	8033666 <snmp_asn1_dec_raw+0x62>
 
-  803360a:	e027      	b.n	803365c <snmp_asn1_dec_raw+0x58>
 
-   {
 
-     plen = 0;
 
-     while (p != NULL)
 
-     {
 
-       base = plen;
 
-       plen += p->len;
 
-  803360c:	8944      	ldrh	r4, [r0, #10]
 
-  803360e:	1934      	adds	r4, r6, r4
 
-  8033610:	b2a4      	uxth	r4, r4
 
-       if (ofs < plen)
 
-  8033612:	42a1      	cmp	r1, r4
 
-  8033614:	d224      	bcs.n	8033660 <snmp_asn1_dec_raw+0x5c>
 
-       {
 
-         msg_ptr = (u8_t*)p->payload;
 
-  8033616:	6847      	ldr	r7, [r0, #4]
 
-         msg_ptr += ofs - base;
 
-  8033618:	1b8d      	subs	r5, r1, r6
 
-         if (raw_len >= len)
 
-  803361a:	4293      	cmp	r3, r2
 
-       base = plen;
 
-       plen += p->len;
 
-       if (ofs < plen)
 
-       {
 
-         msg_ptr = (u8_t*)p->payload;
 
-         msg_ptr += ofs - base;
 
-  803361c:	443d      	add	r5, r7
 
-         if (raw_len >= len)
 
-  803361e:	d305      	bcc.n	803362c <snmp_asn1_dec_raw+0x28>
 
-  8033620:	9b05      	ldr	r3, [sp, #20]
 
-  * @param raw_len length of the raw return value
 
-  * @param raw return raw bytes
 
-  * @return ERR_OK if successfull, ERR_ARG if we can't (or won't) decode
 
-  */
 
- err_t
 
- snmp_asn1_dec_raw(struct pbuf *p, u16_t ofs, u16_t len, u16_t raw_len, u8_t *raw)
 
-  8033622:	b29e      	uxth	r6, r3
 
-  8033624:	18b2      	adds	r2, r6, r2
 
-  8033626:	b292      	uxth	r2, r2
 
-  8033628:	1b89      	subs	r1, r1, r6
 
-  803362a:	e011      	b.n	8033650 <snmp_asn1_dec_raw+0x4c>
 
-           return ERR_OK;
 
-         }
 
-         else
 
-         {
 
-           /* raw_len < len, not enough dst space */
 
-           return ERR_ARG;
 
-  803362c:	20f2      	movs	r0, #242	; 0xf2
 
-  803362e:	e01e      	b.n	803366e <snmp_asn1_dec_raw+0x6a>
 
-         {
 
-           while (len > 1)
 
-           {
 
-             /* copy len - 1 octets */
 
-             len--;
 
-             *raw = *msg_ptr;
 
-  8033630:	782e      	ldrb	r6, [r5, #0]
 
-  8033632:	f803 6b01 	strb.w	r6, [r3], #1
 
-  * @param raw_len length of the raw return value
 
-  * @param raw return raw bytes
 
-  * @return ERR_OK if successfull, ERR_ARG if we can't (or won't) decode
 
-  */
 
- err_t
 
- snmp_asn1_dec_raw(struct pbuf *p, u16_t ofs, u16_t len, u16_t raw_len, u8_t *raw)
 
-  8033636:	18ce      	adds	r6, r1, r3
 
-             /* copy len - 1 octets */
 
-             len--;
 
-             *raw = *msg_ptr;
 
-             raw++;
 
-             ofs += 1;
 
-             if (ofs >= plen)
 
-  8033638:	b2b6      	uxth	r6, r6
 
-  803363a:	42a6      	cmp	r6, r4
 
-  803363c:	d307      	bcc.n	803364e <snmp_asn1_dec_raw+0x4a>
 
-             {
 
-               /* next octet in next pbuf */
 
-               p = p->next;
 
-  803363e:	6800      	ldr	r0, [r0, #0]
 
-               if (p == NULL) { return ERR_ARG; }
 
-  8033640:	2800      	cmp	r0, #0
 
-  8033642:	d0f3      	beq.n	803362c <snmp_asn1_dec_raw+0x28>
 
-               msg_ptr = (u8_t*)p->payload;
 
-               plen += p->len;
 
-  8033644:	8946      	ldrh	r6, [r0, #10]
 
-             if (ofs >= plen)
 
-             {
 
-               /* next octet in next pbuf */
 
-               p = p->next;
 
-               if (p == NULL) { return ERR_ARG; }
 
-               msg_ptr = (u8_t*)p->payload;
 
-  8033646:	6845      	ldr	r5, [r0, #4]
 
-               plen += p->len;
 
-  8033648:	19a4      	adds	r4, r4, r6
 
-  803364a:	b2a4      	uxth	r4, r4
 
-  803364c:	e000      	b.n	8033650 <snmp_asn1_dec_raw+0x4c>
 
-             }
 
-             else
 
-             {
 
-               /* next octet in same pbuf */
 
-               msg_ptr++;
 
-  803364e:	3501      	adds	r5, #1
 
-       {
 
-         msg_ptr = (u8_t*)p->payload;
 
-         msg_ptr += ofs - base;
 
-         if (raw_len >= len)
 
-         {
 
-           while (len > 1)
 
-  8033650:	1ad7      	subs	r7, r2, r3
 
-  8033652:	b2bf      	uxth	r7, r7
 
-  8033654:	2f01      	cmp	r7, #1
 
-  8033656:	d8eb      	bhi.n	8033630 <snmp_asn1_dec_raw+0x2c>
 
-               /* next octet in same pbuf */
 
-               msg_ptr++;
 
-             }
 
-           }
 
-           /* copy last octet */
 
-           *raw = *msg_ptr;
 
-  8033658:	782a      	ldrb	r2, [r5, #0]
 
-  803365a:	701a      	strb	r2, [r3, #0]
 
-           return ERR_OK;
 
-  803365c:	2000      	movs	r0, #0
 
-  803365e:	e006      	b.n	803366e <snmp_asn1_dec_raw+0x6a>
 
-         {
 
-           /* raw_len < len, not enough dst space */
 
-           return ERR_ARG;
 
-         }
 
-       }
 
-       p = p->next;
 
-  8033660:	6800      	ldr	r0, [r0, #0]
 
-   {
 
-     plen = 0;
 
-     while (p != NULL)
 
-     {
 
-       base = plen;
 
-       plen += p->len;
 
-  8033662:	4626      	mov	r6, r4
 
-  8033664:	e000      	b.n	8033668 <snmp_asn1_dec_raw+0x64>
 
- snmp_asn1_dec_raw(struct pbuf *p, u16_t ofs, u16_t len, u16_t raw_len, u8_t *raw)
 
- {
 
-   u16_t plen, base;
 
-   u8_t *msg_ptr;
 
-   if (len > 0)
 
-  8033666:	2600      	movs	r6, #0
 
-   {
 
-     plen = 0;
 
-     while (p != NULL)
 
-  8033668:	2800      	cmp	r0, #0
 
-  803366a:	d1cf      	bne.n	803360c <snmp_asn1_dec_raw+0x8>
 
-  803366c:	e7de      	b.n	803362c <snmp_asn1_dec_raw+0x28>
 
-   else
 
-   {
 
-     /* len == 0, empty string */
 
-     return ERR_OK;
 
-   }
 
- }
 
-  803366e:	b240      	sxtb	r0, r0
 
-  8033670:	bdf0      	pop	{r4, r5, r6, r7, pc}
 
- 08033672 <snmp_asn1_enc_length_cnt>:
 
-  * @param octets_needed points to the return value
 
-  */
 
- void
 
- snmp_asn1_enc_length_cnt(u16_t length, u8_t *octets_needed)
 
- {
 
-   if (length < 0x80U)
 
-  8033672:	287f      	cmp	r0, #127	; 0x7f
 
-  8033674:	d801      	bhi.n	803367a <snmp_asn1_enc_length_cnt+0x8>
 
-   {
 
-     *octets_needed = 1;
 
-  8033676:	2301      	movs	r3, #1
 
-  8033678:	e004      	b.n	8033684 <snmp_asn1_enc_length_cnt+0x12>
 
-   }
 
-   else if (length < 0x100U)
 
-  803367a:	28ff      	cmp	r0, #255	; 0xff
 
-  803367c:	d801      	bhi.n	8033682 <snmp_asn1_enc_length_cnt+0x10>
 
-   {
 
-     *octets_needed = 2;
 
-  803367e:	2302      	movs	r3, #2
 
-  8033680:	e000      	b.n	8033684 <snmp_asn1_enc_length_cnt+0x12>
 
-   }
 
-   else
 
-   {
 
-     *octets_needed = 3;
 
-  8033682:	2303      	movs	r3, #3
 
-  8033684:	700b      	strb	r3, [r1, #0]
 
-  8033686:	4770      	bx	lr
 
- 08033688 <snmp_asn1_enc_u32t_cnt>:
 
-  * of 0xFFFFFFFF is preceded with 0x00 and the length is 5 octets!!
 
-  */
 
- void
 
- snmp_asn1_enc_u32t_cnt(u32_t value, u16_t *octets_needed)
 
- {
 
-   if (value < 0x80UL)
 
-  8033688:	287f      	cmp	r0, #127	; 0x7f
 
-  803368a:	d801      	bhi.n	8033690 <snmp_asn1_enc_u32t_cnt+0x8>
 
-   {
 
-     *octets_needed = 1;
 
-  803368c:	2301      	movs	r3, #1
 
-  803368e:	e00e      	b.n	80336ae <snmp_asn1_enc_u32t_cnt+0x26>
 
-   }
 
-   else if (value < 0x8000UL)
 
-  8033690:	f5b0 4f00 	cmp.w	r0, #32768	; 0x8000
 
-  8033694:	d201      	bcs.n	803369a <snmp_asn1_enc_u32t_cnt+0x12>
 
-   {
 
-     *octets_needed = 2;
 
-  8033696:	2302      	movs	r3, #2
 
-  8033698:	e009      	b.n	80336ae <snmp_asn1_enc_u32t_cnt+0x26>
 
-   }
 
-   else if (value < 0x800000UL)
 
-  803369a:	f5b0 0f00 	cmp.w	r0, #8388608	; 0x800000
 
-  803369e:	d201      	bcs.n	80336a4 <snmp_asn1_enc_u32t_cnt+0x1c>
 
-   {
 
-     *octets_needed = 3;
 
-  80336a0:	2303      	movs	r3, #3
 
-  80336a2:	e004      	b.n	80336ae <snmp_asn1_enc_u32t_cnt+0x26>
 
-   }
 
-   else if (value < 0x80000000UL)
 
-  80336a4:	2800      	cmp	r0, #0
 
-  80336a6:	db01      	blt.n	80336ac <snmp_asn1_enc_u32t_cnt+0x24>
 
-   {
 
-     *octets_needed = 4;
 
-  80336a8:	2304      	movs	r3, #4
 
-  80336aa:	e000      	b.n	80336ae <snmp_asn1_enc_u32t_cnt+0x26>
 
-   }
 
-   else
 
-   {
 
-     *octets_needed = 5;
 
-  80336ac:	2305      	movs	r3, #5
 
-  80336ae:	800b      	strh	r3, [r1, #0]
 
-  80336b0:	4770      	bx	lr
 
- 080336b2 <snmp_asn1_enc_s32t_cnt>:
 
- void
 
- snmp_asn1_enc_s32t_cnt(s32_t value, u16_t *octets_needed)
 
- {
 
-   if (value < 0)
 
-   {
 
-     value = ~value;
 
-  80336b2:	43c3      	mvns	r3, r0
 
-  80336b4:	4283      	cmp	r3, r0
 
-  80336b6:	bfa8      	it	ge
 
-  80336b8:	4618      	movge	r0, r3
 
-   }
 
-   if (value < 0x80L)
 
-  80336ba:	287f      	cmp	r0, #127	; 0x7f
 
-  80336bc:	dc01      	bgt.n	80336c2 <snmp_asn1_enc_s32t_cnt+0x10>
 
-   {
 
-     *octets_needed = 1;
 
-  80336be:	2301      	movs	r3, #1
 
-  80336c0:	e00a      	b.n	80336d8 <snmp_asn1_enc_s32t_cnt+0x26>
 
-   }
 
-   else if (value < 0x8000L)
 
-  80336c2:	f5b0 4f00 	cmp.w	r0, #32768	; 0x8000
 
-  80336c6:	da01      	bge.n	80336cc <snmp_asn1_enc_s32t_cnt+0x1a>
 
-   {
 
-     *octets_needed = 2;
 
-  80336c8:	2302      	movs	r3, #2
 
-  80336ca:	e005      	b.n	80336d8 <snmp_asn1_enc_s32t_cnt+0x26>
 
-   }
 
-   else if (value < 0x800000L)
 
-  80336cc:	f5b0 0f00 	cmp.w	r0, #8388608	; 0x800000
 
-  80336d0:	da01      	bge.n	80336d6 <snmp_asn1_enc_s32t_cnt+0x24>
 
-   {
 
-     *octets_needed = 3;
 
-  80336d2:	2303      	movs	r3, #3
 
-  80336d4:	e000      	b.n	80336d8 <snmp_asn1_enc_s32t_cnt+0x26>
 
-   }
 
-   else
 
-   {
 
-     *octets_needed = 4;
 
-  80336d6:	2304      	movs	r3, #4
 
-  80336d8:	800b      	strh	r3, [r1, #0]
 
-  80336da:	4770      	bx	lr
 
- 080336dc <snmp_asn1_enc_oid_cnt>:
 
- {
 
-   s32_t sub_id;
 
-   u8_t cnt;
 
-   cnt = 0;
 
-   if (ident_len > 1)
 
-  80336dc:	2801      	cmp	r0, #1
 
-  * @param ident points to object identifier array
 
-  * @param octets_needed points to the return value
 
-  */
 
- void
 
- snmp_asn1_enc_oid_cnt(u8_t ident_len, s32_t *ident, u16_t *octets_needed)
 
- {
 
-  80336de:	b510      	push	{r4, lr}
 
-   s32_t sub_id;
 
-   u8_t cnt;
 
-   cnt = 0;
 
-   if (ident_len > 1)
 
-  80336e0:	d904      	bls.n	80336ec <snmp_asn1_enc_oid_cnt+0x10>
 
-   {
 
-     /* compressed prefix in one octet */
 
-     cnt++;
 
-     ident_len -= 2;
 
-  80336e2:	3802      	subs	r0, #2
 
-  80336e4:	b2c0      	uxtb	r0, r0
 
-     ident += 2;
 
-  80336e6:	3108      	adds	r1, #8
 
-   cnt = 0;
 
-   if (ident_len > 1)
 
-   {
 
-     /* compressed prefix in one octet */
 
-     cnt++;
 
-  80336e8:	2301      	movs	r3, #1
 
-  80336ea:	e000      	b.n	80336ee <snmp_asn1_enc_oid_cnt+0x12>
 
- snmp_asn1_enc_oid_cnt(u8_t ident_len, s32_t *ident, u16_t *octets_needed)
 
- {
 
-   s32_t sub_id;
 
-   u8_t cnt;
 
-   cnt = 0;
 
-  80336ec:	2300      	movs	r3, #0
 
-  * @param ident_len object identifier array length
 
-  * @param ident points to object identifier array
 
-  * @param octets_needed points to the return value
 
-  */
 
- void
 
- snmp_asn1_enc_oid_cnt(u8_t ident_len, s32_t *ident, u16_t *octets_needed)
 
-  80336ee:	3904      	subs	r1, #4
 
-  80336f0:	e008      	b.n	8033704 <snmp_asn1_enc_oid_cnt+0x28>
 
-     ident_len -= 2;
 
-     ident += 2;
 
-   }
 
-   while(ident_len > 0)
 
-   {
 
-     ident_len--;
 
-  80336f2:	3801      	subs	r0, #1
 
-     sub_id = *ident;
 
-  80336f4:	f851 4f04 	ldr.w	r4, [r1, #4]!
 
-     ident_len -= 2;
 
-     ident += 2;
 
-   }
 
-   while(ident_len > 0)
 
-   {
 
-     ident_len--;
 
-  80336f8:	b2c0      	uxtb	r0, r0
 
-     sub_id >>= 7;
 
-     cnt++;
 
-     while(sub_id > 0)
 
-     {
 
-       sub_id >>= 7;
 
-  80336fa:	11e4      	asrs	r4, r4, #7
 
-       cnt++;
 
-  80336fc:	3301      	adds	r3, #1
 
-     ident_len--;
 
-     sub_id = *ident;
 
-     sub_id >>= 7;
 
-     cnt++;
 
-     while(sub_id > 0)
 
-  80336fe:	2c00      	cmp	r4, #0
 
-     {
 
-       sub_id >>= 7;
 
-       cnt++;
 
-  8033700:	b2db      	uxtb	r3, r3
 
-     ident_len--;
 
-     sub_id = *ident;
 
-     sub_id >>= 7;
 
-     cnt++;
 
-     while(sub_id > 0)
 
-  8033702:	dcfa      	bgt.n	80336fa <snmp_asn1_enc_oid_cnt+0x1e>
 
-     /* compressed prefix in one octet */
 
-     cnt++;
 
-     ident_len -= 2;
 
-     ident += 2;
 
-   }
 
-   while(ident_len > 0)
 
-  8033704:	2800      	cmp	r0, #0
 
-  8033706:	d1f4      	bne.n	80336f2 <snmp_asn1_enc_oid_cnt+0x16>
 
-       sub_id >>= 7;
 
-       cnt++;
 
-     }
 
-     ident++;
 
-   }
 
-   *octets_needed = cnt;
 
-  8033708:	8013      	strh	r3, [r2, #0]
 
-  803370a:	bd10      	pop	{r4, pc}
 
- 0803370c <snmp_asn1_enc_type>:
 
-  * @param type input ASN1 type
 
-  * @return ERR_OK if successfull, ERR_ARG if we can't (or won't) encode
 
-  */
 
- err_t
 
- snmp_asn1_enc_type(struct pbuf *p, u16_t ofs, u8_t type)
 
- {
 
-  803370c:	b510      	push	{r4, lr}
 
-   u16_t plen, base;
 
-   u8_t *msg_ptr;
 
-   plen = 0;
 
-  803370e:	2300      	movs	r3, #0
 
-   while (p != NULL)
 
-  8033710:	e00b      	b.n	803372a <snmp_asn1_enc_type+0x1e>
 
-   {
 
-     base = plen;
 
-     plen += p->len;
 
-  8033712:	8944      	ldrh	r4, [r0, #10]
 
-  8033714:	191c      	adds	r4, r3, r4
 
-  8033716:	b2a4      	uxth	r4, r4
 
-     if (ofs < plen)
 
-  8033718:	42a1      	cmp	r1, r4
 
-  803371a:	d204      	bcs.n	8033726 <snmp_asn1_enc_type+0x1a>
 
-     {
 
-       msg_ptr = (u8_t*)p->payload;
 
-  803371c:	6840      	ldr	r0, [r0, #4]
 
-       msg_ptr += ofs - base;
 
-  803371e:	1acb      	subs	r3, r1, r3
 
-       *msg_ptr = type;
 
-  8033720:	54c2      	strb	r2, [r0, r3]
 
-       return ERR_OK;
 
-  8033722:	2000      	movs	r0, #0
 
-  8033724:	e004      	b.n	8033730 <snmp_asn1_enc_type+0x24>
 
-     }
 
-     p = p->next;
 
-  8033726:	6800      	ldr	r0, [r0, #0]
 
-   plen = 0;
 
-   while (p != NULL)
 
-   {
 
-     base = plen;
 
-     plen += p->len;
 
-  8033728:	4623      	mov	r3, r4
 
- {
 
-   u16_t plen, base;
 
-   u8_t *msg_ptr;
 
-   plen = 0;
 
-   while (p != NULL)
 
-  803372a:	2800      	cmp	r0, #0
 
-  803372c:	d1f1      	bne.n	8033712 <snmp_asn1_enc_type+0x6>
 
-       return ERR_OK;
 
-     }
 
-     p = p->next;
 
-   }
 
-   /* p == NULL, ofs >= plen */
 
-   return ERR_ARG;
 
-  803372e:	20f2      	movs	r0, #242	; 0xf2
 
- }
 
-  8033730:	b240      	sxtb	r0, r0
 
-  8033732:	bd10      	pop	{r4, pc}
 
- 08033734 <snmp_asn1_enc_length>:
 
-  * @param length is the host order length to be encoded
 
-  * @return ERR_OK if successfull, ERR_ARG if we can't (or won't) encode
 
-  */
 
- err_t
 
- snmp_asn1_enc_length(struct pbuf *p, u16_t ofs, u16_t length)
 
- {
 
-  8033734:	b5f0      	push	{r4, r5, r6, r7, lr}
 
-   u16_t plen, base;
 
-   u8_t *msg_ptr;
 
-   plen = 0;
 
-  8033736:	2400      	movs	r4, #0
 
-   while (p != NULL)
 
-  8033738:	e03f      	b.n	80337ba <snmp_asn1_enc_length+0x86>
 
-   {
 
-     base = plen;
 
-     plen += p->len;
 
-  803373a:	8943      	ldrh	r3, [r0, #10]
 
-  803373c:	18e3      	adds	r3, r4, r3
 
-  803373e:	b29b      	uxth	r3, r3
 
-     if (ofs < plen)
 
-  8033740:	4299      	cmp	r1, r3
 
-  8033742:	d238      	bcs.n	80337b6 <snmp_asn1_enc_length+0x82>
 
-     {
 
-       msg_ptr = (u8_t*)p->payload;
 
-  8033744:	6845      	ldr	r5, [r0, #4]
 
-       msg_ptr += ofs - base;
 
-  8033746:	1b0c      	subs	r4, r1, r4
 
-       if (length < 0x80)
 
-  8033748:	2a7f      	cmp	r2, #127	; 0x7f
 
-     base = plen;
 
-     plen += p->len;
 
-     if (ofs < plen)
 
-     {
 
-       msg_ptr = (u8_t*)p->payload;
 
-       msg_ptr += ofs - base;
 
-  803374a:	eb05 0604 	add.w	r6, r5, r4
 
-       if (length < 0x80)
 
-  803374e:	d801      	bhi.n	8033754 <snmp_asn1_enc_length+0x20>
 
-       {
 
-         *msg_ptr = (u8_t)length;
 
-  8033750:	552a      	strb	r2, [r5, r4]
 
-  8033752:	e02e      	b.n	80337b2 <snmp_asn1_enc_length+0x7e>
 
-         return ERR_OK;
 
-       }
 
-       else if (length < 0x100)
 
-  8033754:	2aff      	cmp	r2, #255	; 0xff
 
-  8033756:	f101 0701 	add.w	r7, r1, #1
 
-  803375a:	d80d      	bhi.n	8033778 <snmp_asn1_enc_length+0x44>
 
-       {
 
-         *msg_ptr = 0x81;
 
-         ofs += 1;
 
-         if (ofs >= plen)
 
-  803375c:	b2bf      	uxth	r7, r7
 
-         *msg_ptr = (u8_t)length;
 
-         return ERR_OK;
 
-       }
 
-       else if (length < 0x100)
 
-       {
 
-         *msg_ptr = 0x81;
 
-  803375e:	2181      	movs	r1, #129	; 0x81
 
-         ofs += 1;
 
-         if (ofs >= plen)
 
-  8033760:	429f      	cmp	r7, r3
 
-         *msg_ptr = (u8_t)length;
 
-         return ERR_OK;
 
-       }
 
-       else if (length < 0x100)
 
-       {
 
-         *msg_ptr = 0x81;
 
-  8033762:	5529      	strb	r1, [r5, r4]
 
-         ofs += 1;
 
-         if (ofs >= plen)
 
-  8033764:	d305      	bcc.n	8033772 <snmp_asn1_enc_length+0x3e>
 
-         {
 
-           /* next octet in next pbuf */
 
-           p = p->next;
 
-  8033766:	6803      	ldr	r3, [r0, #0]
 
-           if (p == NULL) { return ERR_ARG; }
 
-  8033768:	b90b      	cbnz	r3, 803376e <snmp_asn1_enc_length+0x3a>
 
-  803376a:	20f2      	movs	r0, #242	; 0xf2
 
-  803376c:	e028      	b.n	80337c0 <snmp_asn1_enc_length+0x8c>
 
-           msg_ptr = (u8_t*)p->payload;
 
-  803376e:	685e      	ldr	r6, [r3, #4]
 
-  8033770:	e000      	b.n	8033774 <snmp_asn1_enc_length+0x40>
 
-         }
 
-         else
 
-         {
 
-           /* next octet in same pbuf */
 
-           msg_ptr++;
 
-  8033772:	3601      	adds	r6, #1
 
-         }
 
-         *msg_ptr = (u8_t)length;
 
-  8033774:	7032      	strb	r2, [r6, #0]
 
-  8033776:	e01c      	b.n	80337b2 <snmp_asn1_enc_length+0x7e>
 
-         i = 2;
 
-         while (i > 0)
 
-         {
 
-           i--;
 
-           ofs += 1;
 
-           if (ofs >= plen)
 
-  8033778:	b2bf      	uxth	r7, r7
 
-       else
 
-       {
 
-         u8_t i;
 
-         /* length >= 0x100 && length <= 0xFFFF */
 
-         *msg_ptr = 0x82;
 
-  803377a:	f04f 0c82 	mov.w	ip, #130	; 0x82
 
-         i = 2;
 
-         while (i > 0)
 
-         {
 
-           i--;
 
-           ofs += 1;
 
-           if (ofs >= plen)
 
-  803377e:	429f      	cmp	r7, r3
 
-       else
 
-       {
 
-         u8_t i;
 
-         /* length >= 0x100 && length <= 0xFFFF */
 
-         *msg_ptr = 0x82;
 
-  8033780:	f805 c004 	strb.w	ip, [r5, r4]
 
-         i = 2;
 
-         while (i > 0)
 
-         {
 
-           i--;
 
-           ofs += 1;
 
-           if (ofs >= plen)
 
-  8033784:	d201      	bcs.n	803378a <snmp_asn1_enc_length+0x56>
 
-             plen += p->len;
 
-           }
 
-           else
 
-           {
 
-             /* next octet in same pbuf */
 
-             msg_ptr++;
 
-  8033786:	1c74      	adds	r4, r6, #1
 
-  8033788:	e006      	b.n	8033798 <snmp_asn1_enc_length+0x64>
 
-           i--;
 
-           ofs += 1;
 
-           if (ofs >= plen)
 
-           {
 
-             /* next octet in next pbuf */
 
-             p = p->next;
 
-  803378a:	6800      	ldr	r0, [r0, #0]
 
-             if (p == NULL) { return ERR_ARG; }
 
-  803378c:	2800      	cmp	r0, #0
 
-  803378e:	d0ec      	beq.n	803376a <snmp_asn1_enc_length+0x36>
 
-             msg_ptr = (u8_t*)p->payload;
 
-             plen += p->len;
 
-  8033790:	8945      	ldrh	r5, [r0, #10]
 
-           if (ofs >= plen)
 
-           {
 
-             /* next octet in next pbuf */
 
-             p = p->next;
 
-             if (p == NULL) { return ERR_ARG; }
 
-             msg_ptr = (u8_t*)p->payload;
 
-  8033792:	6844      	ldr	r4, [r0, #4]
 
-             plen += p->len;
 
-  8033794:	195b      	adds	r3, r3, r5
 
-  8033796:	b29b      	uxth	r3, r3
 
-         *msg_ptr = 0x82;
 
-         i = 2;
 
-         while (i > 0)
 
-         {
 
-           i--;
 
-           ofs += 1;
 
-  8033798:	3102      	adds	r1, #2
 
-           if (ofs >= plen)
 
-  803379a:	b289      	uxth	r1, r1
 
-             *msg_ptr = (u8_t)length;
 
-           }
 
-           else
 
-           {
 
-             /* most significant length octet */
 
-             *msg_ptr = (u8_t)(length >> 8);
 
-  803379c:	0a15      	lsrs	r5, r2, #8
 
-         i = 2;
 
-         while (i > 0)
 
-         {
 
-           i--;
 
-           ofs += 1;
 
-           if (ofs >= plen)
 
-  803379e:	4299      	cmp	r1, r3
 
-             *msg_ptr = (u8_t)length;
 
-           }
 
-           else
 
-           {
 
-             /* most significant length octet */
 
-             *msg_ptr = (u8_t)(length >> 8);
 
-  80337a0:	7025      	strb	r5, [r4, #0]
 
-         i = 2;
 
-         while (i > 0)
 
-         {
 
-           i--;
 
-           ofs += 1;
 
-           if (ofs >= plen)
 
-  80337a2:	d201      	bcs.n	80337a8 <snmp_asn1_enc_length+0x74>
 
-             plen += p->len;
 
-           }
 
-           else
 
-           {
 
-             /* next octet in same pbuf */
 
-             msg_ptr++;
 
-  80337a4:	3401      	adds	r4, #1
 
-  80337a6:	e003      	b.n	80337b0 <snmp_asn1_enc_length+0x7c>
 
-           i--;
 
-           ofs += 1;
 
-           if (ofs >= plen)
 
-           {
 
-             /* next octet in next pbuf */
 
-             p = p->next;
 
-  80337a8:	6803      	ldr	r3, [r0, #0]
 
-             if (p == NULL) { return ERR_ARG; }
 
-  80337aa:	2b00      	cmp	r3, #0
 
-  80337ac:	d0dd      	beq.n	803376a <snmp_asn1_enc_length+0x36>
 
-             msg_ptr = (u8_t*)p->payload;
 
-  80337ae:	685c      	ldr	r4, [r3, #4]
 
-             msg_ptr++;
 
-           }
 
-           if (i == 0)
 
-           {
 
-             /* least significant length octet */
 
-             *msg_ptr = (u8_t)length;
 
-  80337b0:	7022      	strb	r2, [r4, #0]
 
-           {
 
-             /* most significant length octet */
 
-             *msg_ptr = (u8_t)(length >> 8);
 
-           }
 
-         }
 
-         return ERR_OK;
 
-  80337b2:	2000      	movs	r0, #0
 
-  80337b4:	e004      	b.n	80337c0 <snmp_asn1_enc_length+0x8c>
 
-       }
 
-     }
 
-     p = p->next;
 
-  80337b6:	6800      	ldr	r0, [r0, #0]
 
-   plen = 0;
 
-   while (p != NULL)
 
-   {
 
-     base = plen;
 
-     plen += p->len;
 
-  80337b8:	461c      	mov	r4, r3
 
- {
 
-   u16_t plen, base;
 
-   u8_t *msg_ptr;
 
-   plen = 0;
 
-   while (p != NULL)
 
-  80337ba:	2800      	cmp	r0, #0
 
-  80337bc:	d1bd      	bne.n	803373a <snmp_asn1_enc_length+0x6>
 
-  80337be:	e7d4      	b.n	803376a <snmp_asn1_enc_length+0x36>
 
-     }
 
-     p = p->next;
 
-   }
 
-   /* p == NULL, ofs >= plen */
 
-   return ERR_ARG;
 
- }
 
-  80337c0:	b240      	sxtb	r0, r0
 
-  80337c2:	bdf0      	pop	{r4, r5, r6, r7, pc}
 
- 080337c4 <snmp_asn1_enc_u32t>:
 
-  *
 
-  * @see snmp_asn1_enc_u32t_cnt()
 
-  */
 
- err_t
 
- snmp_asn1_enc_u32t(struct pbuf *p, u16_t ofs, u16_t octets_needed, u32_t value)
 
- {
 
-  80337c4:	b5f0      	push	{r4, r5, r6, r7, lr}
 
-   u16_t plen, base;
 
-   u8_t *msg_ptr;
 
-   plen = 0;
 
-  80337c6:	2500      	movs	r5, #0
 
-   while (p != NULL)
 
-  80337c8:	e037      	b.n	803383a <snmp_asn1_enc_u32t+0x76>
 
-   {
 
-     base = plen;
 
-     plen += p->len;
 
-  80337ca:	8944      	ldrh	r4, [r0, #10]
 
-  80337cc:	192c      	adds	r4, r5, r4
 
-  80337ce:	b2a4      	uxth	r4, r4
 
-     if (ofs < plen)
 
-  80337d0:	42a1      	cmp	r1, r4
 
-  80337d2:	d230      	bcs.n	8033836 <snmp_asn1_enc_u32t+0x72>
 
-     {
 
-       msg_ptr = (u8_t*)p->payload;
 
-  80337d4:	6847      	ldr	r7, [r0, #4]
 
-       msg_ptr += ofs - base;
 
-  80337d6:	1b4e      	subs	r6, r1, r5
 
-       if (octets_needed == 5)
 
-  80337d8:	2a05      	cmp	r2, #5
 
-     base = plen;
 
-     plen += p->len;
 
-     if (ofs < plen)
 
-     {
 
-       msg_ptr = (u8_t*)p->payload;
 
-       msg_ptr += ofs - base;
 
-  80337da:	eb07 0506 	add.w	r5, r7, r6
 
-       if (octets_needed == 5)
 
-  80337de:	d110      	bne.n	8033802 <snmp_asn1_enc_u32t+0x3e>
 
-       {
 
-         /* not enough bits in 'value' add leading 0x00 */
 
-         octets_needed--;
 
-         *msg_ptr = 0x00;
 
-         ofs += 1;
 
-  80337e0:	3101      	adds	r1, #1
 
-  80337e2:	b289      	uxth	r1, r1
 
-       if (octets_needed == 5)
 
-       {
 
-         /* not enough bits in 'value' add leading 0x00 */
 
-         octets_needed--;
 
-         *msg_ptr = 0x00;
 
-  80337e4:	2200      	movs	r2, #0
 
-         ofs += 1;
 
-         if (ofs >= plen)
 
-  80337e6:	42a1      	cmp	r1, r4
 
-       if (octets_needed == 5)
 
-       {
 
-         /* not enough bits in 'value' add leading 0x00 */
 
-         octets_needed--;
 
-         *msg_ptr = 0x00;
 
-  80337e8:	55ba      	strb	r2, [r7, r6]
 
-         ofs += 1;
 
-         if (ofs >= plen)
 
-  80337ea:	d308      	bcc.n	80337fe <snmp_asn1_enc_u32t+0x3a>
 
-         {
 
-           /* next octet in next pbuf */
 
-           p = p->next;
 
-  80337ec:	6800      	ldr	r0, [r0, #0]
 
-           if (p == NULL) { return ERR_ARG; }
 
-  80337ee:	b908      	cbnz	r0, 80337f4 <snmp_asn1_enc_u32t+0x30>
 
-  80337f0:	20f2      	movs	r0, #242	; 0xf2
 
-  80337f2:	e025      	b.n	8033840 <snmp_asn1_enc_u32t+0x7c>
 
-           msg_ptr = (u8_t*)p->payload;
 
-           plen += p->len;
 
-  80337f4:	8942      	ldrh	r2, [r0, #10]
 
-         if (ofs >= plen)
 
-         {
 
-           /* next octet in next pbuf */
 
-           p = p->next;
 
-           if (p == NULL) { return ERR_ARG; }
 
-           msg_ptr = (u8_t*)p->payload;
 
-  80337f6:	6845      	ldr	r5, [r0, #4]
 
-           plen += p->len;
 
-  80337f8:	18a4      	adds	r4, r4, r2
 
-  80337fa:	b2a4      	uxth	r4, r4
 
-  80337fc:	e000      	b.n	8033800 <snmp_asn1_enc_u32t+0x3c>
 
-         }
 
-         else
 
-         {
 
-           /* next octet in same pbuf */
 
-           msg_ptr++;
 
-  80337fe:	3501      	adds	r5, #1
 
-       msg_ptr += ofs - base;
 
-       if (octets_needed == 5)
 
-       {
 
-         /* not enough bits in 'value' add leading 0x00 */
 
-         octets_needed--;
 
-  8033800:	2204      	movs	r2, #4
 
-  * @return ERR_OK if successfull, ERR_ARG if we can't (or won't) encode
 
-  *
 
-  * @see snmp_asn1_enc_u32t_cnt()
 
-  */
 
- err_t
 
- snmp_asn1_enc_u32t(struct pbuf *p, u16_t ofs, u16_t octets_needed, u32_t value)
 
-  8033802:	1851      	adds	r1, r2, r1
 
-  8033804:	e012      	b.n	803382c <snmp_asn1_enc_u32t+0x68>
 
-           msg_ptr++;
 
-         }
 
-       }
 
-       while (octets_needed > 1)
 
-       {
 
-         octets_needed--;
 
-  8033806:	3a01      	subs	r2, #1
 
-  8033808:	b292      	uxth	r2, r2
 
-         *msg_ptr = (u8_t)(value >> (octets_needed << 3));
 
-  803380a:	00d6      	lsls	r6, r2, #3
 
-  803380c:	fa23 f606 	lsr.w	r6, r3, r6
 
-  8033810:	702e      	strb	r6, [r5, #0]
 
-  * @return ERR_OK if successfull, ERR_ARG if we can't (or won't) encode
 
-  *
 
-  * @see snmp_asn1_enc_u32t_cnt()
 
-  */
 
- err_t
 
- snmp_asn1_enc_u32t(struct pbuf *p, u16_t ofs, u16_t octets_needed, u32_t value)
 
-  8033812:	1a8e      	subs	r6, r1, r2
 
-       while (octets_needed > 1)
 
-       {
 
-         octets_needed--;
 
-         *msg_ptr = (u8_t)(value >> (octets_needed << 3));
 
-         ofs += 1;
 
-         if (ofs >= plen)
 
-  8033814:	b2b6      	uxth	r6, r6
 
-  8033816:	42a6      	cmp	r6, r4
 
-  8033818:	d307      	bcc.n	803382a <snmp_asn1_enc_u32t+0x66>
 
-         {
 
-           /* next octet in next pbuf */
 
-           p = p->next;
 
-  803381a:	6800      	ldr	r0, [r0, #0]
 
-           if (p == NULL) { return ERR_ARG; }
 
-  803381c:	2800      	cmp	r0, #0
 
-  803381e:	d0e7      	beq.n	80337f0 <snmp_asn1_enc_u32t+0x2c>
 
-           msg_ptr = (u8_t*)p->payload;
 
-           plen += p->len;
 
-  8033820:	8946      	ldrh	r6, [r0, #10]
 
-         if (ofs >= plen)
 
-         {
 
-           /* next octet in next pbuf */
 
-           p = p->next;
 
-           if (p == NULL) { return ERR_ARG; }
 
-           msg_ptr = (u8_t*)p->payload;
 
-  8033822:	6845      	ldr	r5, [r0, #4]
 
-           plen += p->len;
 
-  8033824:	19a4      	adds	r4, r4, r6
 
-  8033826:	b2a4      	uxth	r4, r4
 
-  8033828:	e000      	b.n	803382c <snmp_asn1_enc_u32t+0x68>
 
-         }
 
-         else
 
-         {
 
-           /* next octet in same pbuf */
 
-           msg_ptr++;
 
-  803382a:	3501      	adds	r5, #1
 
-         {
 
-           /* next octet in same pbuf */
 
-           msg_ptr++;
 
-         }
 
-       }
 
-       while (octets_needed > 1)
 
-  803382c:	2a01      	cmp	r2, #1
 
-  803382e:	d8ea      	bhi.n	8033806 <snmp_asn1_enc_u32t+0x42>
 
-           /* next octet in same pbuf */
 
-           msg_ptr++;
 
-         }
 
-       }
 
-       /* (only) one least significant octet */
 
-       *msg_ptr = (u8_t)value;
 
-  8033830:	702b      	strb	r3, [r5, #0]
 
-       return ERR_OK;
 
-  8033832:	2000      	movs	r0, #0
 
-  8033834:	e004      	b.n	8033840 <snmp_asn1_enc_u32t+0x7c>
 
-     }
 
-     p = p->next;
 
-  8033836:	6800      	ldr	r0, [r0, #0]
 
-   plen = 0;
 
-   while (p != NULL)
 
-   {
 
-     base = plen;
 
-     plen += p->len;
 
-  8033838:	4625      	mov	r5, r4
 
- {
 
-   u16_t plen, base;
 
-   u8_t *msg_ptr;
 
-   plen = 0;
 
-   while (p != NULL)
 
-  803383a:	2800      	cmp	r0, #0
 
-  803383c:	d1c5      	bne.n	80337ca <snmp_asn1_enc_u32t+0x6>
 
-  803383e:	e7d7      	b.n	80337f0 <snmp_asn1_enc_u32t+0x2c>
 
-     }
 
-     p = p->next;
 
-   }
 
-   /* p == NULL, ofs >= plen */
 
-   return ERR_ARG;
 
- }
 
-  8033840:	b240      	sxtb	r0, r0
 
-  8033842:	bdf0      	pop	{r4, r5, r6, r7, pc}
 
- 08033844 <snmp_asn1_enc_s32t>:
 
-  *
 
-  * @see snmp_asn1_enc_s32t_cnt()
 
-  */
 
- err_t
 
- snmp_asn1_enc_s32t(struct pbuf *p, u16_t ofs, u16_t octets_needed, s32_t value)
 
- {
 
-  8033844:	b5f0      	push	{r4, r5, r6, r7, lr}
 
-   u16_t plen, base;
 
-   u8_t *msg_ptr;
 
-   plen = 0;
 
-  8033846:	2600      	movs	r6, #0
 
-   while (p != NULL)
 
-  8033848:	e024      	b.n	8033894 <snmp_asn1_enc_s32t+0x50>
 
-   {
 
-     base = plen;
 
-     plen += p->len;
 
-  803384a:	8944      	ldrh	r4, [r0, #10]
 
-  803384c:	1934      	adds	r4, r6, r4
 
-  803384e:	b2a4      	uxth	r4, r4
 
-     if (ofs < plen)
 
-  8033850:	42a1      	cmp	r1, r4
 
-  8033852:	d21d      	bcs.n	8033890 <snmp_asn1_enc_s32t+0x4c>
 
-     {
 
-       msg_ptr = (u8_t*)p->payload;
 
-  8033854:	6847      	ldr	r7, [r0, #4]
 
-       msg_ptr += ofs - base;
 
-  8033856:	1b8d      	subs	r5, r1, r6
 
-  8033858:	197d      	adds	r5, r7, r5
 
-  * @return ERR_OK if successfull, ERR_ARG if we can't (or won't) encode
 
-  *
 
-  * @see snmp_asn1_enc_s32t_cnt()
 
-  */
 
- err_t
 
- snmp_asn1_enc_s32t(struct pbuf *p, u16_t ofs, u16_t octets_needed, s32_t value)
 
-  803385a:	1851      	adds	r1, r2, r1
 
-     if (ofs < plen)
 
-     {
 
-       msg_ptr = (u8_t*)p->payload;
 
-       msg_ptr += ofs - base;
 
-       while (octets_needed > 1)
 
-  803385c:	e013      	b.n	8033886 <snmp_asn1_enc_s32t+0x42>
 
-       {
 
-         octets_needed--;
 
-  803385e:	3a01      	subs	r2, #1
 
-  8033860:	b292      	uxth	r2, r2
 
-         *msg_ptr = (u8_t)(value >> (octets_needed << 3));
 
-  8033862:	00d6      	lsls	r6, r2, #3
 
-  8033864:	fa43 f606 	asr.w	r6, r3, r6
 
-  8033868:	702e      	strb	r6, [r5, #0]
 
-  * @return ERR_OK if successfull, ERR_ARG if we can't (or won't) encode
 
-  *
 
-  * @see snmp_asn1_enc_s32t_cnt()
 
-  */
 
- err_t
 
- snmp_asn1_enc_s32t(struct pbuf *p, u16_t ofs, u16_t octets_needed, s32_t value)
 
-  803386a:	1a8e      	subs	r6, r1, r2
 
-       while (octets_needed > 1)
 
-       {
 
-         octets_needed--;
 
-         *msg_ptr = (u8_t)(value >> (octets_needed << 3));
 
-         ofs += 1;
 
-         if (ofs >= plen)
 
-  803386c:	b2b6      	uxth	r6, r6
 
-  803386e:	42a6      	cmp	r6, r4
 
-  8033870:	d308      	bcc.n	8033884 <snmp_asn1_enc_s32t+0x40>
 
-         {
 
-           /* next octet in next pbuf */
 
-           p = p->next;
 
-  8033872:	6800      	ldr	r0, [r0, #0]
 
-           if (p == NULL) { return ERR_ARG; }
 
-  8033874:	b908      	cbnz	r0, 803387a <snmp_asn1_enc_s32t+0x36>
 
-  8033876:	20f2      	movs	r0, #242	; 0xf2
 
-  8033878:	e00f      	b.n	803389a <snmp_asn1_enc_s32t+0x56>
 
-           msg_ptr = (u8_t*)p->payload;
 
-           plen += p->len;
 
-  803387a:	8946      	ldrh	r6, [r0, #10]
 
-         if (ofs >= plen)
 
-         {
 
-           /* next octet in next pbuf */
 
-           p = p->next;
 
-           if (p == NULL) { return ERR_ARG; }
 
-           msg_ptr = (u8_t*)p->payload;
 
-  803387c:	6845      	ldr	r5, [r0, #4]
 
-           plen += p->len;
 
-  803387e:	19a4      	adds	r4, r4, r6
 
-  8033880:	b2a4      	uxth	r4, r4
 
-  8033882:	e000      	b.n	8033886 <snmp_asn1_enc_s32t+0x42>
 
-         }
 
-         else
 
-         {
 
-           /* next octet in same pbuf */
 
-           msg_ptr++;
 
-  8033884:	3501      	adds	r5, #1
 
-     if (ofs < plen)
 
-     {
 
-       msg_ptr = (u8_t*)p->payload;
 
-       msg_ptr += ofs - base;
 
-       while (octets_needed > 1)
 
-  8033886:	2a01      	cmp	r2, #1
 
-  8033888:	d8e9      	bhi.n	803385e <snmp_asn1_enc_s32t+0x1a>
 
-           /* next octet in same pbuf */
 
-           msg_ptr++;
 
-         }
 
-       }
 
-       /* (only) one least significant octet */
 
-       *msg_ptr = (u8_t)value;
 
-  803388a:	702b      	strb	r3, [r5, #0]
 
-       return ERR_OK;
 
-  803388c:	2000      	movs	r0, #0
 
-  803388e:	e004      	b.n	803389a <snmp_asn1_enc_s32t+0x56>
 
-     }
 
-     p = p->next;
 
-  8033890:	6800      	ldr	r0, [r0, #0]
 
-   plen = 0;
 
-   while (p != NULL)
 
-   {
 
-     base = plen;
 
-     plen += p->len;
 
-  8033892:	4626      	mov	r6, r4
 
- {
 
-   u16_t plen, base;
 
-   u8_t *msg_ptr;
 
-   plen = 0;
 
-   while (p != NULL)
 
-  8033894:	2800      	cmp	r0, #0
 
-  8033896:	d1d8      	bne.n	803384a <snmp_asn1_enc_s32t+0x6>
 
-  8033898:	e7ed      	b.n	8033876 <snmp_asn1_enc_s32t+0x32>
 
-     }
 
-     p = p->next;
 
-   }
 
-   /* p == NULL, ofs >= plen */
 
-   return ERR_ARG;
 
- }
 
-  803389a:	b240      	sxtb	r0, r0
 
-  803389c:	bdf0      	pop	{r4, r5, r6, r7, pc}
 
- 0803389e <snmp_asn1_enc_oid>:
 
-  * @param ident points to object identifier array
 
-  * @return ERR_OK if successfull, ERR_ARG if we can't (or won't) encode
 
-  */
 
- err_t
 
- snmp_asn1_enc_oid(struct pbuf *p, u16_t ofs, u8_t ident_len, s32_t *ident)
 
- {
 
-  803389e:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
 
-   u16_t plen, base;
 
-   u8_t *msg_ptr;
 
-   plen = 0;
 
-  80338a2:	2500      	movs	r5, #0
 
-   while (p != NULL)
 
-  80338a4:	e068      	b.n	8033978 <snmp_asn1_enc_oid+0xda>
 
-   {
 
-     base = plen;
 
-     plen += p->len;
 
-  80338a6:	8944      	ldrh	r4, [r0, #10]
 
-  80338a8:	192c      	adds	r4, r5, r4
 
-  80338aa:	b2a4      	uxth	r4, r4
 
-     if (ofs < plen)
 
-  80338ac:	42a1      	cmp	r1, r4
 
-  80338ae:	d261      	bcs.n	8033974 <snmp_asn1_enc_oid+0xd6>
 
-     {
 
-       msg_ptr = (u8_t*)p->payload;
 
-  80338b0:	6846      	ldr	r6, [r0, #4]
 
-       msg_ptr += ofs - base;
 
-  80338b2:	1b4d      	subs	r5, r1, r5
 
-       if (ident_len > 1)
 
-  80338b4:	2a01      	cmp	r2, #1
 
-     base = plen;
 
-     plen += p->len;
 
-     if (ofs < plen)
 
-     {
 
-       msg_ptr = (u8_t*)p->payload;
 
-       msg_ptr += ofs - base;
 
-  80338b6:	eb06 0805 	add.w	r8, r6, r5
 
-       if (ident_len > 1)
 
-  80338ba:	d801      	bhi.n	80338c0 <snmp_asn1_enc_oid+0x22>
 
-       }
 
-       else
 
-       {
 
- /* @bug:  allow empty varbinds for symmetry (we must decode them for getnext), allow partial compression??  */
 
-         /* ident_len <= 1, at least we need zeroDotZero (0.0) (ident_len == 2) */
 
-         return ERR_ARG;
 
-  80338bc:	20f2      	movs	r0, #242	; 0xf2
 
-  80338be:	e05e      	b.n	803397e <snmp_asn1_enc_oid+0xe0>
 
-       msg_ptr = (u8_t*)p->payload;
 
-       msg_ptr += ofs - base;
 
-       if (ident_len > 1)
 
-       {
 
-         if ((ident[0] == 1) && (ident[1] == 3))
 
-  80338c0:	f8d3 c000 	ldr.w	ip, [r3]
 
-  80338c4:	f1bc 0f01 	cmp.w	ip, #1
 
-  80338c8:	d105      	bne.n	80338d6 <snmp_asn1_enc_oid+0x38>
 
-  80338ca:	685f      	ldr	r7, [r3, #4]
 
-  80338cc:	2f03      	cmp	r7, #3
 
-  80338ce:	d102      	bne.n	80338d6 <snmp_asn1_enc_oid+0x38>
 
-         {
 
-           /* compressed (most common) prefix .iso.org */
 
-           *msg_ptr = 0x2b;
 
-  80338d0:	272b      	movs	r7, #43	; 0x2b
 
-  80338d2:	5577      	strb	r7, [r6, r5]
 
-  80338d4:	e006      	b.n	80338e4 <snmp_asn1_enc_oid+0x46>
 
-         }
 
-         else
 
-         {
 
-           /* calculate prefix */
 
-           *msg_ptr = (u8_t)((ident[0] * 40) + ident[1]);
 
-  80338d6:	685f      	ldr	r7, [r3, #4]
 
-  80338d8:	f04f 0928 	mov.w	r9, #40	; 0x28
 
-  80338dc:	fb09 7c0c 	mla	ip, r9, ip, r7
 
-  80338e0:	f806 c005 	strb.w	ip, [r6, r5]
 
-         }
 
-         ofs += 1;
 
-  80338e4:	3101      	adds	r1, #1
 
-  80338e6:	b289      	uxth	r1, r1
 
-         if (ofs >= plen)
 
-  80338e8:	42a1      	cmp	r1, r4
 
-  80338ea:	d307      	bcc.n	80338fc <snmp_asn1_enc_oid+0x5e>
 
-         {
 
-           /* next octet in next pbuf */
 
-           p = p->next;
 
-  80338ec:	6800      	ldr	r0, [r0, #0]
 
-           if (p == NULL) { return ERR_ARG; }
 
-  80338ee:	2800      	cmp	r0, #0
 
-  80338f0:	d0e4      	beq.n	80338bc <snmp_asn1_enc_oid+0x1e>
 
-           msg_ptr = (u8_t*)p->payload;
 
-           plen += p->len;
 
-  80338f2:	8946      	ldrh	r6, [r0, #10]
 
-         if (ofs >= plen)
 
-         {
 
-           /* next octet in next pbuf */
 
-           p = p->next;
 
-           if (p == NULL) { return ERR_ARG; }
 
-           msg_ptr = (u8_t*)p->payload;
 
-  80338f4:	6845      	ldr	r5, [r0, #4]
 
-           plen += p->len;
 
-  80338f6:	19a4      	adds	r4, r4, r6
 
-  80338f8:	b2a4      	uxth	r4, r4
 
-  80338fa:	e001      	b.n	8033900 <snmp_asn1_enc_oid+0x62>
 
-         }
 
-         else
 
-         {
 
-           /* next octet in same pbuf */
 
-           msg_ptr++;
 
-  80338fc:	f108 0501 	add.w	r5, r8, #1
 
-         }
 
-         ident_len -= 2;
 
-  8033900:	3a02      	subs	r2, #2
 
-  8033902:	b2d2      	uxtb	r2, r2
 
-  * @param ident_len object identifier array length
 
-  * @param ident points to object identifier array
 
-  * @return ERR_OK if successfull, ERR_ARG if we can't (or won't) encode
 
-  */
 
- err_t
 
- snmp_asn1_enc_oid(struct pbuf *p, u16_t ofs, u8_t ident_len, s32_t *ident)
 
-  8033904:	3304      	adds	r3, #4
 
-       {
 
- /* @bug:  allow empty varbinds for symmetry (we must decode them for getnext), allow partial compression??  */
 
-         /* ident_len <= 1, at least we need zeroDotZero (0.0) (ident_len == 2) */
 
-         return ERR_ARG;
 
-       }
 
-       while (ident_len > 0)
 
-  8033906:	e031      	b.n	803396c <snmp_asn1_enc_oid+0xce>
 
-       {
 
-         s32_t sub_id;
 
-         u8_t shift, tail;
 
-         ident_len--;
 
-  8033908:	3a01      	subs	r2, #1
 
-         sub_id = *ident;
 
-  803390a:	f853 cf04 	ldr.w	ip, [r3, #4]!
 
-       while (ident_len > 0)
 
-       {
 
-         s32_t sub_id;
 
-         u8_t shift, tail;
 
-         ident_len--;
 
-  803390e:	b2d2      	uxtb	r2, r2
 
-         sub_id = *ident;
 
-  8033910:	261c      	movs	r6, #28
 
-         tail = 0;
 
-  8033912:	2700      	movs	r7, #0
 
-         shift = 28;
 
-         while(shift > 0)
 
-         {
 
-           u8_t code;
 
-           code = (u8_t)(sub_id >> shift);
 
-  8033914:	fa4c f806 	asr.w	r8, ip, r6
 
-           if ((code != 0) || (tail != 0))
 
-  8033918:	f018 0fff 	tst.w	r8, #255	; 0xff
 
-  803391c:	d100      	bne.n	8033920 <snmp_asn1_enc_oid+0x82>
 
-  803391e:	b18f      	cbz	r7, 8033944 <snmp_asn1_enc_oid+0xa6>
 
-           {
 
-             tail = 1;
 
-             *msg_ptr = code | 0x80;
 
-             ofs += 1;
 
-  8033920:	3101      	adds	r1, #1
 
-  8033922:	b289      	uxth	r1, r1
 
-           code = (u8_t)(sub_id >> shift);
 
-           if ((code != 0) || (tail != 0))
 
-           {
 
-             tail = 1;
 
-             *msg_ptr = code | 0x80;
 
-  8033924:	f048 0880 	orr.w	r8, r8, #128	; 0x80
 
-             ofs += 1;
 
-             if (ofs >= plen)
 
-  8033928:	42a1      	cmp	r1, r4
 
-           code = (u8_t)(sub_id >> shift);
 
-           if ((code != 0) || (tail != 0))
 
-           {
 
-             tail = 1;
 
-             *msg_ptr = code | 0x80;
 
-  803392a:	f885 8000 	strb.w	r8, [r5]
 
-             ofs += 1;
 
-             if (ofs >= plen)
 
-  803392e:	d307      	bcc.n	8033940 <snmp_asn1_enc_oid+0xa2>
 
-             {
 
-               /* next octet in next pbuf */
 
-               p = p->next;
 
-  8033930:	6800      	ldr	r0, [r0, #0]
 
-               if (p == NULL) { return ERR_ARG; }
 
-  8033932:	2800      	cmp	r0, #0
 
-  8033934:	d0c2      	beq.n	80338bc <snmp_asn1_enc_oid+0x1e>
 
-               msg_ptr = (u8_t*)p->payload;
 
-               plen += p->len;
 
-  8033936:	8947      	ldrh	r7, [r0, #10]
 
-             if (ofs >= plen)
 
-             {
 
-               /* next octet in next pbuf */
 
-               p = p->next;
 
-               if (p == NULL) { return ERR_ARG; }
 
-               msg_ptr = (u8_t*)p->payload;
 
-  8033938:	6845      	ldr	r5, [r0, #4]
 
-               plen += p->len;
 
-  803393a:	19e4      	adds	r4, r4, r7
 
-  803393c:	b2a4      	uxth	r4, r4
 
-  803393e:	e000      	b.n	8033942 <snmp_asn1_enc_oid+0xa4>
 
-             }
 
-             else
 
-             {
 
-               /* next octet in same pbuf */
 
-               msg_ptr++;
 
-  8033940:	3501      	adds	r5, #1
 
-           u8_t code;
 
-           code = (u8_t)(sub_id >> shift);
 
-           if ((code != 0) || (tail != 0))
 
-           {
 
-             tail = 1;
 
-  8033942:	2701      	movs	r7, #1
 
-         ident_len--;
 
-         sub_id = *ident;
 
-         tail = 0;
 
-         shift = 28;
 
-         while(shift > 0)
 
-  8033944:	3e07      	subs	r6, #7
 
-  8033946:	d1e5      	bne.n	8033914 <snmp_asn1_enc_oid+0x76>
 
-               msg_ptr++;
 
-             }
 
-           }
 
-           shift -= 7;
 
-         }
 
-         *msg_ptr = (u8_t)sub_id & 0x7F;
 
-  8033948:	f00c 0c7f 	and.w	ip, ip, #127	; 0x7f
 
-  803394c:	f885 c000 	strb.w	ip, [r5]
 
-         if (ident_len > 0)
 
-  8033950:	b172      	cbz	r2, 8033970 <snmp_asn1_enc_oid+0xd2>
 
-         {
 
-           ofs += 1;
 
-  8033952:	3101      	adds	r1, #1
 
-  8033954:	b289      	uxth	r1, r1
 
-           if (ofs >= plen)
 
-  8033956:	42a1      	cmp	r1, r4
 
-  8033958:	d307      	bcc.n	803396a <snmp_asn1_enc_oid+0xcc>
 
-           {
 
-             /* next octet in next pbuf */
 
-             p = p->next;
 
-  803395a:	6800      	ldr	r0, [r0, #0]
 
-             if (p == NULL) { return ERR_ARG; }
 
-  803395c:	2800      	cmp	r0, #0
 
-  803395e:	d0ad      	beq.n	80338bc <snmp_asn1_enc_oid+0x1e>
 
-             msg_ptr = (u8_t*)p->payload;
 
-             plen += p->len;
 
-  8033960:	8946      	ldrh	r6, [r0, #10]
 
-           if (ofs >= plen)
 
-           {
 
-             /* next octet in next pbuf */
 
-             p = p->next;
 
-             if (p == NULL) { return ERR_ARG; }
 
-             msg_ptr = (u8_t*)p->payload;
 
-  8033962:	6845      	ldr	r5, [r0, #4]
 
-             plen += p->len;
 
-  8033964:	19a4      	adds	r4, r4, r6
 
-  8033966:	b2a4      	uxth	r4, r4
 
-  8033968:	e000      	b.n	803396c <snmp_asn1_enc_oid+0xce>
 
-           }
 
-           else
 
-           {
 
-             /* next octet in same pbuf */
 
-             msg_ptr++;
 
-  803396a:	3501      	adds	r5, #1
 
-       {
 
- /* @bug:  allow empty varbinds for symmetry (we must decode them for getnext), allow partial compression??  */
 
-         /* ident_len <= 1, at least we need zeroDotZero (0.0) (ident_len == 2) */
 
-         return ERR_ARG;
 
-       }
 
-       while (ident_len > 0)
 
-  803396c:	2a00      	cmp	r2, #0
 
-  803396e:	d1cb      	bne.n	8033908 <snmp_asn1_enc_oid+0x6a>
 
-           }
 
-         }
 
-         /* proceed to next sub-identifier */
 
-         ident++;
 
-       }
 
-       return ERR_OK;
 
-  8033970:	2000      	movs	r0, #0
 
-  8033972:	e004      	b.n	803397e <snmp_asn1_enc_oid+0xe0>
 
-     }
 
-     p = p->next;
 
-  8033974:	6800      	ldr	r0, [r0, #0]
 
-   plen = 0;
 
-   while (p != NULL)
 
-   {
 
-     base = plen;
 
-     plen += p->len;
 
-  8033976:	4625      	mov	r5, r4
 
- {
 
-   u16_t plen, base;
 
-   u8_t *msg_ptr;
 
-   plen = 0;
 
-   while (p != NULL)
 
-  8033978:	2800      	cmp	r0, #0
 
-  803397a:	d194      	bne.n	80338a6 <snmp_asn1_enc_oid+0x8>
 
-  803397c:	e79e      	b.n	80338bc <snmp_asn1_enc_oid+0x1e>
 
-     }
 
-     p = p->next;
 
-   }
 
-   /* p == NULL, ofs >= plen */
 
-   return ERR_ARG;
 
- }
 
-  803397e:	b240      	sxtb	r0, r0
 
-  8033980:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
 
- 08033984 <snmp_asn1_enc_raw>:
 
-  * @param raw points raw data
 
-  * @return ERR_OK if successfull, ERR_ARG if we can't (or won't) encode
 
-  */
 
- err_t
 
- snmp_asn1_enc_raw(struct pbuf *p, u16_t ofs, u16_t raw_len, u8_t *raw)
 
- {
 
-  8033984:	b5f0      	push	{r4, r5, r6, r7, lr}
 
-   u16_t plen, base;
 
-   u8_t *msg_ptr;
 
-   plen = 0;
 
-  8033986:	2600      	movs	r6, #0
 
-   while (p != NULL)
 
-  8033988:	e025      	b.n	80339d6 <snmp_asn1_enc_raw+0x52>
 
-   {
 
-     base = plen;
 
-     plen += p->len;
 
-  803398a:	8944      	ldrh	r4, [r0, #10]
 
-  803398c:	1934      	adds	r4, r6, r4
 
-  803398e:	b2a4      	uxth	r4, r4
 
-     if (ofs < plen)
 
-  8033990:	42a1      	cmp	r1, r4
 
-  8033992:	d21e      	bcs.n	80339d2 <snmp_asn1_enc_raw+0x4e>
 
-     {
 
-       msg_ptr = (u8_t*)p->payload;
 
-  8033994:	6847      	ldr	r7, [r0, #4]
 
-       msg_ptr += ofs - base;
 
-  8033996:	1b8d      	subs	r5, r1, r6
 
-  8033998:	197d      	adds	r5, r7, r5
 
-  * @param raw_len raw data length
 
-  * @param raw points raw data
 
-  * @return ERR_OK if successfull, ERR_ARG if we can't (or won't) encode
 
-  */
 
- err_t
 
- snmp_asn1_enc_raw(struct pbuf *p, u16_t ofs, u16_t raw_len, u8_t *raw)
 
-  803399a:	1851      	adds	r1, r2, r1
 
-     if (ofs < plen)
 
-     {
 
-       msg_ptr = (u8_t*)p->payload;
 
-       msg_ptr += ofs - base;
 
-       while (raw_len > 1)
 
-  803399c:	e012      	b.n	80339c4 <snmp_asn1_enc_raw+0x40>
 
-       {
 
-         /* copy raw_len - 1 octets */
 
-         raw_len--;
 
-  803399e:	3a01      	subs	r2, #1
 
-         *msg_ptr = *raw;
 
-  80339a0:	f813 6b01 	ldrb.w	r6, [r3], #1
 
-       msg_ptr += ofs - base;
 
-       while (raw_len > 1)
 
-       {
 
-         /* copy raw_len - 1 octets */
 
-         raw_len--;
 
-  80339a4:	b292      	uxth	r2, r2
 
-         *msg_ptr = *raw;
 
-  80339a6:	702e      	strb	r6, [r5, #0]
 
-  * @param raw_len raw data length
 
-  * @param raw points raw data
 
-  * @return ERR_OK if successfull, ERR_ARG if we can't (or won't) encode
 
-  */
 
- err_t
 
- snmp_asn1_enc_raw(struct pbuf *p, u16_t ofs, u16_t raw_len, u8_t *raw)
 
-  80339a8:	1a8e      	subs	r6, r1, r2
 
-         /* copy raw_len - 1 octets */
 
-         raw_len--;
 
-         *msg_ptr = *raw;
 
-         raw++;
 
-         ofs += 1;
 
-         if (ofs >= plen)
 
-  80339aa:	b2b6      	uxth	r6, r6
 
-  80339ac:	42a6      	cmp	r6, r4
 
-  80339ae:	d308      	bcc.n	80339c2 <snmp_asn1_enc_raw+0x3e>
 
-         {
 
-           /* next octet in next pbuf */
 
-           p = p->next;
 
-  80339b0:	6800      	ldr	r0, [r0, #0]
 
-           if (p == NULL) { return ERR_ARG; }
 
-  80339b2:	b908      	cbnz	r0, 80339b8 <snmp_asn1_enc_raw+0x34>
 
-  80339b4:	20f2      	movs	r0, #242	; 0xf2
 
-  80339b6:	e012      	b.n	80339de <snmp_asn1_enc_raw+0x5a>
 
-           msg_ptr = (u8_t*)p->payload;
 
-           plen += p->len;
 
-  80339b8:	8946      	ldrh	r6, [r0, #10]
 
-         if (ofs >= plen)
 
-         {
 
-           /* next octet in next pbuf */
 
-           p = p->next;
 
-           if (p == NULL) { return ERR_ARG; }
 
-           msg_ptr = (u8_t*)p->payload;
 
-  80339ba:	6845      	ldr	r5, [r0, #4]
 
-           plen += p->len;
 
-  80339bc:	19a4      	adds	r4, r4, r6
 
-  80339be:	b2a4      	uxth	r4, r4
 
-  80339c0:	e000      	b.n	80339c4 <snmp_asn1_enc_raw+0x40>
 
-         }
 
-         else
 
-         {
 
-           /* next octet in same pbuf */
 
-           msg_ptr++;
 
-  80339c2:	3501      	adds	r5, #1
 
-     if (ofs < plen)
 
-     {
 
-       msg_ptr = (u8_t*)p->payload;
 
-       msg_ptr += ofs - base;
 
-       while (raw_len > 1)
 
-  80339c4:	2a01      	cmp	r2, #1
 
-  80339c6:	d8ea      	bhi.n	803399e <snmp_asn1_enc_raw+0x1a>
 
-         {
 
-           /* next octet in same pbuf */
 
-           msg_ptr++;
 
-         }
 
-       }
 
-       if (raw_len > 0)
 
-  80339c8:	b142      	cbz	r2, 80339dc <snmp_asn1_enc_raw+0x58>
 
-       {
 
-         /* copy last or single octet */
 
-         *msg_ptr = *raw;
 
-  80339ca:	781b      	ldrb	r3, [r3, #0]
 
-       }
 
-       return ERR_OK;
 
-  80339cc:	2000      	movs	r0, #0
 
-         }
 
-       }
 
-       if (raw_len > 0)
 
-       {
 
-         /* copy last or single octet */
 
-         *msg_ptr = *raw;
 
-  80339ce:	702b      	strb	r3, [r5, #0]
 
-  80339d0:	e005      	b.n	80339de <snmp_asn1_enc_raw+0x5a>
 
-       }
 
-       return ERR_OK;
 
-     }
 
-     p = p->next;
 
-  80339d2:	6800      	ldr	r0, [r0, #0]
 
-   plen = 0;
 
-   while (p != NULL)
 
-   {
 
-     base = plen;
 
-     plen += p->len;
 
-  80339d4:	4626      	mov	r6, r4
 
- {
 
-   u16_t plen, base;
 
-   u8_t *msg_ptr;
 
-   plen = 0;
 
-   while (p != NULL)
 
-  80339d6:	2800      	cmp	r0, #0
 
-  80339d8:	d1d7      	bne.n	803398a <snmp_asn1_enc_raw+0x6>
 
-  80339da:	e7eb      	b.n	80339b4 <snmp_asn1_enc_raw+0x30>
 
-       if (raw_len > 0)
 
-       {
 
-         /* copy last or single octet */
 
-         *msg_ptr = *raw;
 
-       }
 
-       return ERR_OK;
 
-  80339dc:	4610      	mov	r0, r2
 
-     }
 
-     p = p->next;
 
-   }
 
-   /* p == NULL, ofs >= plen */
 
-   return ERR_ARG;
 
- }
 
-  80339de:	b240      	sxtb	r0, r0
 
-  80339e0:	bdf0      	pop	{r4, r5, r6, r7, pc}
 
- 080339e2 <noleafs_get_object_def>:
 
- void
 
- noleafs_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od)
 
- {
 
-   LWIP_UNUSED_ARG(ident_len);
 
-   LWIP_UNUSED_ARG(ident);
 
-   od->instance = MIB_OBJECT_NONE;
 
-  80339e2:	2300      	movs	r3, #0
 
-  80339e4:	7013      	strb	r3, [r2, #0]
 
-  80339e6:	4770      	bx	lr
 
- 080339e8 <noleafs_get_value>:
 
- }
 
- void
 
- noleafs_get_value(struct obj_def *od, u16_t len, void *value)
 
- {
 
-  80339e8:	4770      	bx	lr
 
- 080339ea <noleafs_set_test>:
 
-   LWIP_UNUSED_ARG(od);
 
-   LWIP_UNUSED_ARG(len);
 
-   LWIP_UNUSED_ARG(value);
 
-   /* can't set */
 
-   return 0;
 
- }
 
-  80339ea:	2000      	movs	r0, #0
 
-  80339ec:	4770      	bx	lr
 
- 080339ee <noleafs_set_value>:
 
- void
 
- noleafs_set_value(struct obj_def *od, u16_t len, void *value)
 
- {
 
-  80339ee:	4770      	bx	lr
 
- 080339f0 <system_get_object_def>:
 
-   u8_t id;
 
-   /* return to object name, adding index depth (1) */
 
-   ident_len += 1;
 
-   ident -= 1;
 
-   if (ident_len == 2)
 
-  80339f0:	2801      	cmp	r0, #1
 
-  80339f2:	d145      	bne.n	8033a80 <system_get_object_def+0x90>
 
-   {
 
-     od->id_inst_len = ident_len;
 
-  80339f4:	2002      	movs	r0, #2
 
- {
 
-   u8_t id;
 
-   /* return to object name, adding index depth (1) */
 
-   ident_len += 1;
 
-   ident -= 1;
 
-  80339f6:	1f0b      	subs	r3, r1, #4
 
-   if (ident_len == 2)
 
-   {
 
-     od->id_inst_len = ident_len;
 
-  80339f8:	7190      	strb	r0, [r2, #6]
 
-     od->id_inst_ptr = ident;
 
-  80339fa:	6093      	str	r3, [r2, #8]
 
-     LWIP_ASSERT("invalid id", (ident[0] >= 0) && (ident[0] <= 0xff));
 
-     id = (u8_t)ident[0];
 
-     LWIP_DEBUGF(SNMP_MIB_DEBUG,("get_object_def system.%"U16_F".0\n",(u16_t)id));
 
-     switch (id)
 
-  80339fc:	f811 3c04 	ldrb.w	r3, [r1, #-4]
 
-  8033a00:	3b01      	subs	r3, #1
 
-  8033a02:	2b06      	cmp	r3, #6
 
-  8033a04:	d83c      	bhi.n	8033a80 <system_get_object_def+0x90>
 
-  8033a06:	e8df f003 	tbb	[pc, r3]
 
-  8033a0a:	0b04      	.short	0x0b04
 
-  8033a0c:	2a221a14 	.word	0x2a221a14
 
-  8033a10:	34          	.byte	0x34
 
-  8033a11:	00          	.byte	0x00
 
-     {
 
-       case 1: /* sysDescr */
 
-         od->instance = MIB_OBJECT_SCALAR;
 
-  8033a12:	2301      	movs	r3, #1
 
-  8033a14:	7013      	strb	r3, [r2, #0]
 
-         od->access = MIB_OBJECT_READ_ONLY;
 
-  8033a16:	7053      	strb	r3, [r2, #1]
 
-         od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OC_STR);
 
-  8033a18:	2304      	movs	r3, #4
 
-  8033a1a:	7093      	strb	r3, [r2, #2]
 
-         od->v_len = *sysdescr_len_ptr;
 
-  8033a1c:	4b1a      	ldr	r3, [pc, #104]	; (8033a88 <system_get_object_def+0x98>)
 
-  8033a1e:	e025      	b.n	8033a6c <system_get_object_def+0x7c>
 
-         break;
 
-       case 2: /* sysObjectID */
 
-         od->instance = MIB_OBJECT_SCALAR;
 
-  8033a20:	2301      	movs	r3, #1
 
-  8033a22:	7013      	strb	r3, [r2, #0]
 
-         od->access = MIB_OBJECT_READ_ONLY;
 
-  8033a24:	7053      	strb	r3, [r2, #1]
 
-         od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OBJ_ID);
 
-  8033a26:	2306      	movs	r3, #6
 
-  8033a28:	7093      	strb	r3, [r2, #2]
 
-         od->v_len = sysobjid.len * sizeof(s32_t);
 
-  8033a2a:	4b18      	ldr	r3, [pc, #96]	; (8033a8c <system_get_object_def+0x9c>)
 
-  8033a2c:	781b      	ldrb	r3, [r3, #0]
 
-  8033a2e:	009b      	lsls	r3, r3, #2
 
-  8033a30:	e024      	b.n	8033a7c <system_get_object_def+0x8c>
 
-         break;
 
-       case 3: /* sysUpTime */
 
-         od->instance = MIB_OBJECT_SCALAR;
 
-  8033a32:	2301      	movs	r3, #1
 
-  8033a34:	7013      	strb	r3, [r2, #0]
 
-         od->access = MIB_OBJECT_READ_ONLY;
 
-  8033a36:	7053      	strb	r3, [r2, #1]
 
-         od->asn_type = (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_TIMETICKS);
 
-  8033a38:	2343      	movs	r3, #67	; 0x43
 
-  8033a3a:	7093      	strb	r3, [r2, #2]
 
-  8033a3c:	e01d      	b.n	8033a7a <system_get_object_def+0x8a>
 
-         od->v_len = sizeof(u32_t);
 
-         break;
 
-       case 4: /* sysContact */
 
-         od->instance = MIB_OBJECT_SCALAR;
 
-  8033a3e:	2301      	movs	r3, #1
 
-  8033a40:	7013      	strb	r3, [r2, #0]
 
-         od->access = MIB_OBJECT_READ_WRITE;
 
-  8033a42:	2303      	movs	r3, #3
 
-  8033a44:	7053      	strb	r3, [r2, #1]
 
-         od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OC_STR);
 
-  8033a46:	2304      	movs	r3, #4
 
-  8033a48:	7093      	strb	r3, [r2, #2]
 
-         od->v_len = *syscontact_len_ptr;
 
-  8033a4a:	4b11      	ldr	r3, [pc, #68]	; (8033a90 <system_get_object_def+0xa0>)
 
-  8033a4c:	e00e      	b.n	8033a6c <system_get_object_def+0x7c>
 
-         break;
 
-       case 5: /* sysName */
 
-         od->instance = MIB_OBJECT_SCALAR;
 
-  8033a4e:	2301      	movs	r3, #1
 
-  8033a50:	7013      	strb	r3, [r2, #0]
 
-         od->access = MIB_OBJECT_READ_WRITE;
 
-  8033a52:	2303      	movs	r3, #3
 
-  8033a54:	7053      	strb	r3, [r2, #1]
 
-         od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OC_STR);
 
-  8033a56:	2304      	movs	r3, #4
 
-  8033a58:	7093      	strb	r3, [r2, #2]
 
-         od->v_len = *sysname_len_ptr;
 
-  8033a5a:	4b0e      	ldr	r3, [pc, #56]	; (8033a94 <system_get_object_def+0xa4>)
 
-  8033a5c:	e006      	b.n	8033a6c <system_get_object_def+0x7c>
 
-         break;
 
-       case 6: /* sysLocation */
 
-         od->instance = MIB_OBJECT_SCALAR;
 
-  8033a5e:	2301      	movs	r3, #1
 
-  8033a60:	7013      	strb	r3, [r2, #0]
 
-         od->access = MIB_OBJECT_READ_WRITE;
 
-  8033a62:	2303      	movs	r3, #3
 
-  8033a64:	7053      	strb	r3, [r2, #1]
 
-         od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OC_STR);
 
-  8033a66:	2304      	movs	r3, #4
 
-  8033a68:	7093      	strb	r3, [r2, #2]
 
-         od->v_len = *syslocation_len_ptr;
 
-  8033a6a:	4b0b      	ldr	r3, [pc, #44]	; (8033a98 <system_get_object_def+0xa8>)
 
-  8033a6c:	681b      	ldr	r3, [r3, #0]
 
-  8033a6e:	781b      	ldrb	r3, [r3, #0]
 
-  8033a70:	e004      	b.n	8033a7c <system_get_object_def+0x8c>
 
-         break;
 
-       case 7: /* sysServices */
 
-         od->instance = MIB_OBJECT_SCALAR;
 
-  8033a72:	2301      	movs	r3, #1
 
-  8033a74:	7013      	strb	r3, [r2, #0]
 
-         od->access = MIB_OBJECT_READ_ONLY;
 
-  8033a76:	7053      	strb	r3, [r2, #1]
 
-         od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG);
 
-  8033a78:	7090      	strb	r0, [r2, #2]
 
-         od->v_len = sizeof(s32_t);
 
-  8033a7a:	2304      	movs	r3, #4
 
-  8033a7c:	8093      	strh	r3, [r2, #4]
 
-         break;
 
-  8033a7e:	4770      	bx	lr
 
-     };
 
-   }
 
-   else
 
-   {
 
-     LWIP_DEBUGF(SNMP_MIB_DEBUG,("system_get_object_def: no scalar\n"));
 
-     od->instance = MIB_OBJECT_NONE;
 
-  8033a80:	2300      	movs	r3, #0
 
-  8033a82:	7013      	strb	r3, [r2, #0]
 
-  8033a84:	4770      	bx	lr
 
-  8033a86:	bf00      	nop
 
-  8033a88:	2000093c 	.word	0x2000093c
 
-  8033a8c:	200007ec 	.word	0x200007ec
 
-  8033a90:	20000798 	.word	0x20000798
 
-  8033a94:	20000794 	.word	0x20000794
 
-  8033a98:	20000980 	.word	0x20000980
 
- 08033a9c <interfaces_get_object_def>:
 
- interfaces_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od)
 
- {
 
-   /* return to object name, adding index depth (1) */
 
-   ident_len += 1;
 
-   ident -= 1;
 
-   if (ident_len == 2)
 
-  8033a9c:	2801      	cmp	r0, #1
 
-  8033a9e:	d109      	bne.n	8033ab4 <interfaces_get_object_def+0x18>
 
-   {
 
-     od->id_inst_len = ident_len;
 
-  8033aa0:	2302      	movs	r3, #2
 
-  8033aa2:	7193      	strb	r3, [r2, #6]
 
- static void
 
- interfaces_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od)
 
- {
 
-   /* return to object name, adding index depth (1) */
 
-   ident_len += 1;
 
-   ident -= 1;
 
-  8033aa4:	3904      	subs	r1, #4
 
-     od->id_inst_len = ident_len;
 
-     od->id_inst_ptr = ident;
 
-     od->instance = MIB_OBJECT_SCALAR;
 
-     od->access = MIB_OBJECT_READ_ONLY;
 
-     od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG);
 
-  8033aa6:	7093      	strb	r3, [r2, #2]
 
-     od->v_len = sizeof(s32_t);
 
-  8033aa8:	2304      	movs	r3, #4
 
-   ident_len += 1;
 
-   ident -= 1;
 
-   if (ident_len == 2)
 
-   {
 
-     od->id_inst_len = ident_len;
 
-     od->id_inst_ptr = ident;
 
-  8033aaa:	6091      	str	r1, [r2, #8]
 
-     od->instance = MIB_OBJECT_SCALAR;
 
-  8033aac:	7010      	strb	r0, [r2, #0]
 
-     od->access = MIB_OBJECT_READ_ONLY;
 
-  8033aae:	7050      	strb	r0, [r2, #1]
 
-     od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG);
 
-     od->v_len = sizeof(s32_t);
 
-  8033ab0:	8093      	strh	r3, [r2, #4]
 
-  8033ab2:	4770      	bx	lr
 
-   }
 
-   else
 
-   {
 
-     LWIP_DEBUGF(SNMP_MIB_DEBUG,("interfaces_get_object_def: no scalar\n"));
 
-     od->instance = MIB_OBJECT_NONE;
 
-  8033ab4:	2300      	movs	r3, #0
 
-  8033ab6:	7013      	strb	r3, [r2, #0]
 
-  8033ab8:	4770      	bx	lr
 
-  8033aba:	0000      	movs	r0, r0
 
- 08033abc <interfaces_get_value>:
 
-  */
 
- static void
 
- interfaces_get_value(struct obj_def *od, u16_t len, void *value)
 
- {
 
-   LWIP_UNUSED_ARG(len);
 
-   if (od->id_inst_ptr[0] == 1)
 
-  8033abc:	6883      	ldr	r3, [r0, #8]
 
-  8033abe:	681b      	ldr	r3, [r3, #0]
 
-  8033ac0:	2b01      	cmp	r3, #1
 
-  8033ac2:	d102      	bne.n	8033aca <interfaces_get_value+0xe>
 
-   {
 
-     s32_t *sint_ptr = (s32_t*)value;
 
-     *sint_ptr = iflist_root.count;
 
-  8033ac4:	4b01      	ldr	r3, [pc, #4]	; (8033acc <interfaces_get_value+0x10>)
 
-  8033ac6:	8b9b      	ldrh	r3, [r3, #28]
 
-  8033ac8:	6013      	str	r3, [r2, #0]
 
-  8033aca:	4770      	bx	lr
 
-  8033acc:	200007cc 	.word	0x200007cc
 
- 08033ad0 <ip_get_value>:
 
- {
 
-   u8_t id;
 
-   LWIP_UNUSED_ARG(len);
 
-   LWIP_ASSERT("invalid id", (od->id_inst_ptr[0] >= 0) && (od->id_inst_ptr[0] <= 0xff));
 
-   id = (u8_t)od->id_inst_ptr[0];
 
-  8033ad0:	6883      	ldr	r3, [r0, #8]
 
-   switch (id)
 
-  8033ad2:	781b      	ldrb	r3, [r3, #0]
 
-  8033ad4:	3b01      	subs	r3, #1
 
-  8033ad6:	2b16      	cmp	r3, #22
 
-  8033ad8:	d836      	bhi.n	8033b48 <ip_get_value+0x78>
 
-  8033ada:	e8df f003 	tbb	[pc, r3]
 
-  8033ade:	0e0c      	.short	0x0e0c
 
-  8033ae0:	16141210 	.word	0x16141210
 
-  8033ae4:	1e1c1a18 	.word	0x1e1c1a18
 
-  8033ae8:	26242220 	.word	0x26242220
 
-  8033aec:	2e2c2a28 	.word	0x2e2c2a28
 
-  8033af0:	35353530 	.word	0x35353530
 
-  8033af4:	32          	.byte	0x32
 
-  8033af5:	00          	.byte	0x00
 
- #if IP_FORWARD
 
-         /* forwarding */
 
-         *sint_ptr = 1;
 
- #else
 
-         /* not-forwarding */
 
-         *sint_ptr = 2;
 
-  8033af6:	2302      	movs	r3, #2
 
-  8033af8:	e025      	b.n	8033b46 <ip_get_value+0x76>
 
-       }
 
-       break;
 
-     case 2: /* ipDefaultTTL */
 
-       {
 
-         s32_t *sint_ptr = (s32_t*)value;
 
-         *sint_ptr = IP_DEFAULT_TTL;
 
-  8033afa:	23ff      	movs	r3, #255	; 0xff
 
-  8033afc:	e023      	b.n	8033b46 <ip_get_value+0x76>
 
-       }
 
-       break;
 
-     case 3: /* ipInReceives */
 
-       {
 
-         u32_t *uint_ptr = (u32_t*)value;
 
-         *uint_ptr = ipinreceives;
 
-  8033afe:	4b13      	ldr	r3, [pc, #76]	; (8033b4c <ip_get_value+0x7c>)
 
-  8033b00:	e020      	b.n	8033b44 <ip_get_value+0x74>
 
-       }
 
-       break;
 
-     case 4: /* ipInHdrErrors */
 
-       {
 
-         u32_t *uint_ptr = (u32_t*)value;
 
-         *uint_ptr = ipinhdrerrors;
 
-  8033b02:	4b13      	ldr	r3, [pc, #76]	; (8033b50 <ip_get_value+0x80>)
 
-  8033b04:	e01e      	b.n	8033b44 <ip_get_value+0x74>
 
-       }
 
-       break;
 
-     case 5: /* ipInAddrErrors */
 
-       {
 
-         u32_t *uint_ptr = (u32_t*)value;
 
-         *uint_ptr = ipinaddrerrors;
 
-  8033b06:	4b13      	ldr	r3, [pc, #76]	; (8033b54 <ip_get_value+0x84>)
 
-  8033b08:	e01c      	b.n	8033b44 <ip_get_value+0x74>
 
-       }
 
-       break;
 
-     case 6: /* ipForwDatagrams */
 
-       {
 
-         u32_t *uint_ptr = (u32_t*)value;
 
-         *uint_ptr = ipforwdatagrams;
 
-  8033b0a:	4b13      	ldr	r3, [pc, #76]	; (8033b58 <ip_get_value+0x88>)
 
-  8033b0c:	e01a      	b.n	8033b44 <ip_get_value+0x74>
 
-       }
 
-       break;
 
-     case 7: /* ipInUnknownProtos */
 
-       {
 
-         u32_t *uint_ptr = (u32_t*)value;
 
-         *uint_ptr = ipinunknownprotos;
 
-  8033b0e:	4b13      	ldr	r3, [pc, #76]	; (8033b5c <ip_get_value+0x8c>)
 
-  8033b10:	e018      	b.n	8033b44 <ip_get_value+0x74>
 
-       }
 
-       break;
 
-     case 8: /* ipInDiscards */
 
-       {
 
-         u32_t *uint_ptr = (u32_t*)value;
 
-         *uint_ptr = ipindiscards;
 
-  8033b12:	4b13      	ldr	r3, [pc, #76]	; (8033b60 <ip_get_value+0x90>)
 
-  8033b14:	e016      	b.n	8033b44 <ip_get_value+0x74>
 
-       }
 
-       break;
 
-     case 9: /* ipInDelivers */
 
-       {
 
-         u32_t *uint_ptr = (u32_t*)value;
 
-         *uint_ptr = ipindelivers;
 
-  8033b16:	4b13      	ldr	r3, [pc, #76]	; (8033b64 <ip_get_value+0x94>)
 
-  8033b18:	e014      	b.n	8033b44 <ip_get_value+0x74>
 
-       }
 
-       break;
 
-     case 10: /* ipOutRequests */
 
-       {
 
-         u32_t *uint_ptr = (u32_t*)value;
 
-         *uint_ptr = ipoutrequests;
 
-  8033b1a:	4b13      	ldr	r3, [pc, #76]	; (8033b68 <ip_get_value+0x98>)
 
-  8033b1c:	e012      	b.n	8033b44 <ip_get_value+0x74>
 
-       }
 
-       break;
 
-     case 11: /* ipOutDiscards */
 
-       {
 
-         u32_t *uint_ptr = (u32_t*)value;
 
-         *uint_ptr = ipoutdiscards;
 
-  8033b1e:	4b13      	ldr	r3, [pc, #76]	; (8033b6c <ip_get_value+0x9c>)
 
-  8033b20:	e010      	b.n	8033b44 <ip_get_value+0x74>
 
-       }
 
-       break;
 
-     case 12: /* ipOutNoRoutes */
 
-       {
 
-         u32_t *uint_ptr = (u32_t*)value;
 
-         *uint_ptr = ipoutnoroutes;
 
-  8033b22:	4b13      	ldr	r3, [pc, #76]	; (8033b70 <ip_get_value+0xa0>)
 
-  8033b24:	e00e      	b.n	8033b44 <ip_get_value+0x74>
 
-       {
 
-         s32_t *sint_ptr = (s32_t*)value;
 
- #if IP_REASSEMBLY
 
-         *sint_ptr = IP_REASS_MAXAGE;
 
- #else
 
-         *sint_ptr = 0;
 
-  8033b26:	2300      	movs	r3, #0
 
-  8033b28:	e00d      	b.n	8033b46 <ip_get_value+0x76>
 
-       }
 
-       break;
 
-     case 14: /* ipReasmReqds */
 
-       {
 
-         u32_t *uint_ptr = (u32_t*)value;
 
-         *uint_ptr = ipreasmreqds;
 
-  8033b2a:	4b12      	ldr	r3, [pc, #72]	; (8033b74 <ip_get_value+0xa4>)
 
-  8033b2c:	e00a      	b.n	8033b44 <ip_get_value+0x74>
 
-       }
 
-       break;
 
-     case 15: /* ipReasmOKs */
 
-       {
 
-         u32_t *uint_ptr = (u32_t*)value;
 
-         *uint_ptr = ipreasmoks;
 
-  8033b2e:	4b12      	ldr	r3, [pc, #72]	; (8033b78 <ip_get_value+0xa8>)
 
-  8033b30:	e008      	b.n	8033b44 <ip_get_value+0x74>
 
-       }
 
-       break;
 
-     case 16: /* ipReasmFails */
 
-       {
 
-         u32_t *uint_ptr = (u32_t*)value;
 
-         *uint_ptr = ipreasmfails;
 
-  8033b32:	4b12      	ldr	r3, [pc, #72]	; (8033b7c <ip_get_value+0xac>)
 
-  8033b34:	e006      	b.n	8033b44 <ip_get_value+0x74>
 
-       }
 
-       break;
 
-     case 17: /* ipFragOKs */
 
-       {
 
-         u32_t *uint_ptr = (u32_t*)value;
 
-         *uint_ptr = ipfragoks;
 
-  8033b36:	4b12      	ldr	r3, [pc, #72]	; (8033b80 <ip_get_value+0xb0>)
 
-  8033b38:	e004      	b.n	8033b44 <ip_get_value+0x74>
 
-       }
 
-       break;
 
-     case 18: /* ipFragFails */
 
-       {
 
-         u32_t *uint_ptr = (u32_t*)value;
 
-         *uint_ptr = ipfragfails;
 
-  8033b3a:	4b12      	ldr	r3, [pc, #72]	; (8033b84 <ip_get_value+0xb4>)
 
-  8033b3c:	e002      	b.n	8033b44 <ip_get_value+0x74>
 
-       }
 
-       break;
 
-     case 19: /* ipFragCreates */
 
-       {
 
-         u32_t *uint_ptr = (u32_t*)value;
 
-         *uint_ptr = ipfragcreates;
 
-  8033b3e:	4b12      	ldr	r3, [pc, #72]	; (8033b88 <ip_get_value+0xb8>)
 
-  8033b40:	e000      	b.n	8033b44 <ip_get_value+0x74>
 
-       break;
 
-     case 23: /* ipRoutingDiscards */
 
-       /** @todo can lwIP discard routes at all?? hardwire this to 0?? */
 
-       {
 
-         u32_t *uint_ptr = (u32_t*)value;
 
-         *uint_ptr = iproutingdiscards;
 
-  8033b42:	4b12      	ldr	r3, [pc, #72]	; (8033b8c <ip_get_value+0xbc>)
 
-  8033b44:	681b      	ldr	r3, [r3, #0]
 
-  8033b46:	6013      	str	r3, [r2, #0]
 
-  8033b48:	4770      	bx	lr
 
-  8033b4a:	bf00      	nop
 
-  8033b4c:	2000c4d4 	.word	0x2000c4d4
 
-  8033b50:	2000c45c 	.word	0x2000c45c
 
-  8033b54:	2000c440 	.word	0x2000c440
 
-  8033b58:	2000c55c 	.word	0x2000c55c
 
-  8033b5c:	2000c49c 	.word	0x2000c49c
 
-  8033b60:	2000c528 	.word	0x2000c528
 
-  8033b64:	2000c560 	.word	0x2000c560
 
-  8033b68:	2000c548 	.word	0x2000c548
 
-  8033b6c:	2000c4ec 	.word	0x2000c4ec
 
-  8033b70:	2000c56c 	.word	0x2000c56c
 
-  8033b74:	2000c4bc 	.word	0x2000c4bc
 
-  8033b78:	2000c468 	.word	0x2000c468
 
-  8033b7c:	2000c51c 	.word	0x2000c51c
 
-  8033b80:	2000c42c 	.word	0x2000c42c
 
-  8033b84:	2000c498 	.word	0x2000c498
 
-  8033b88:	2000c538 	.word	0x2000c538
 
-  8033b8c:	2000c524 	.word	0x2000c524
 
- 08033b90 <ip_set_test>:
 
-   s32_t *sint_ptr = (s32_t*)value;
 
-   LWIP_UNUSED_ARG(len);
 
-   set_ok = 0;
 
-   LWIP_ASSERT("invalid id", (od->id_inst_ptr[0] >= 0) && (od->id_inst_ptr[0] <= 0xff));
 
-   id = (u8_t)od->id_inst_ptr[0];
 
-  8033b90:	6883      	ldr	r3, [r0, #8]
 
-   switch (id)
 
-  8033b92:	781b      	ldrb	r3, [r3, #0]
 
-  8033b94:	2b01      	cmp	r3, #1
 
-  8033b96:	d002      	beq.n	8033b9e <ip_set_test+0xe>
 
-  8033b98:	2b02      	cmp	r3, #2
 
-  8033b9a:	d109      	bne.n	8033bb0 <ip_set_test+0x20>
 
-  8033b9c:	e002      	b.n	8033ba4 <ip_set_test+0x14>
 
- #if IP_FORWARD
 
-       /* forwarding */
 
-       if (*sint_ptr == 1)
 
- #else
 
-       /* not-forwarding */
 
-       if (*sint_ptr == 2)
 
-  8033b9e:	6810      	ldr	r0, [r2, #0]
 
- {
 
-   u8_t id, set_ok;
 
-   s32_t *sint_ptr = (s32_t*)value;
 
-   LWIP_UNUSED_ARG(len);
 
-   set_ok = 0;
 
-  8033ba0:	2802      	cmp	r0, #2
 
-  8033ba2:	e001      	b.n	8033ba8 <ip_set_test+0x18>
 
-       {
 
-         set_ok = 1;
 
-       }
 
-       break;
 
-     case 2: /* ipDefaultTTL */
 
-       if (*sint_ptr == IP_DEFAULT_TTL)
 
-  8033ba4:	6810      	ldr	r0, [r2, #0]
 
- {
 
-   u8_t id, set_ok;
 
-   s32_t *sint_ptr = (s32_t*)value;
 
-   LWIP_UNUSED_ARG(len);
 
-   set_ok = 0;
 
-  8033ba6:	28ff      	cmp	r0, #255	; 0xff
 
-  8033ba8:	bf14      	ite	ne
 
-  8033baa:	2000      	movne	r0, #0
 
-  8033bac:	2001      	moveq	r0, #1
 
-  8033bae:	4770      	bx	lr
 
-  8033bb0:	2000      	movs	r0, #0
 
-         set_ok = 1;
 
-       }
 
-       break;
 
-   };
 
-   return set_ok;
 
- }
 
-  8033bb2:	4770      	bx	lr
 
- 08033bb4 <ip_rteentry_get_object_def>:
 
-   /* return to object name, adding index depth (4) */
 
-   ident_len += 4;
 
-   ident -= 4;
 
-   if (ident_len == 5)
 
-  8033bb4:	2801      	cmp	r0, #1
 
-  8033bb6:	d12c      	bne.n	8033c12 <ip_rteentry_get_object_def+0x5e>
 
-   {
 
-     od->id_inst_len = ident_len;
 
-  8033bb8:	2305      	movs	r3, #5
 
-  8033bba:	7193      	strb	r3, [r2, #6]
 
- {
 
-   u8_t id;
 
-   /* return to object name, adding index depth (4) */
 
-   ident_len += 4;
 
-   ident -= 4;
 
-  8033bbc:	f1a1 0310 	sub.w	r3, r1, #16
 
-   if (ident_len == 5)
 
-   {
 
-     od->id_inst_len = ident_len;
 
-     od->id_inst_ptr = ident;
 
-  8033bc0:	6093      	str	r3, [r2, #8]
 
-     LWIP_ASSERT("invalid id", (ident[0] >= 0) && (ident[0] <= 0xff));
 
-     id = (u8_t)ident[0];
 
-     switch (id)
 
-  8033bc2:	f811 3c10 	ldrb.w	r3, [r1, #-16]
 
-  8033bc6:	3b01      	subs	r3, #1
 
-  8033bc8:	2b0c      	cmp	r3, #12
 
-  8033bca:	d822      	bhi.n	8033c12 <ip_rteentry_get_object_def+0x5e>
 
-  8033bcc:	e8df f003 	tbb	[pc, r3]
 
-  8033bd0:	0d0d0d07 	.word	0x0d0d0d07
 
-  8033bd4:	0d070d0d 	.word	0x0d070d0d
 
-  8033bd8:	0d070d11 	.word	0x0d070d11
 
-  8033bdc:	18          	.byte	0x18
 
-  8033bdd:	00          	.byte	0x00
 
-     {
 
-       case 1: /* ipRouteDest */
 
-       case 7: /* ipRouteNextHop */
 
-       case 11: /* ipRouteMask */
 
-         od->instance = MIB_OBJECT_TAB;
 
-  8033bde:	2302      	movs	r3, #2
 
-  8033be0:	7013      	strb	r3, [r2, #0]
 
-         od->access = MIB_OBJECT_READ_WRITE;
 
-  8033be2:	2303      	movs	r3, #3
 
-  8033be4:	7053      	strb	r3, [r2, #1]
 
-         od->asn_type = (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_IPADDR);
 
-  8033be6:	2340      	movs	r3, #64	; 0x40
 
-  8033be8:	e007      	b.n	8033bfa <ip_rteentry_get_object_def+0x46>
 
-       case 5: /* ipRouteMetric3 */
 
-       case 6: /* ipRouteMetric4 */
 
-       case 8: /* ipRouteType */
 
-       case 10: /* ipRouteAge */
 
-       case 12: /* ipRouteMetric5 */
 
-         od->instance = MIB_OBJECT_TAB;
 
-  8033bea:	2302      	movs	r3, #2
 
-  8033bec:	7013      	strb	r3, [r2, #0]
 
-         od->access = MIB_OBJECT_READ_WRITE;
 
-  8033bee:	2103      	movs	r1, #3
 
-  8033bf0:	e002      	b.n	8033bf8 <ip_rteentry_get_object_def+0x44>
 
-         od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG);
 
-         od->v_len = sizeof(s32_t);
 
-         break;
 
-       case 9: /* ipRouteProto */
 
-         od->instance = MIB_OBJECT_TAB;
 
-  8033bf2:	2302      	movs	r3, #2
 
-  8033bf4:	7013      	strb	r3, [r2, #0]
 
-         od->access = MIB_OBJECT_READ_ONLY;
 
-  8033bf6:	2101      	movs	r1, #1
 
-  8033bf8:	7051      	strb	r1, [r2, #1]
 
-         od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG);
 
-  8033bfa:	7093      	strb	r3, [r2, #2]
 
-         od->v_len = sizeof(s32_t);
 
-  8033bfc:	2304      	movs	r3, #4
 
-  8033bfe:	e006      	b.n	8033c0e <ip_rteentry_get_object_def+0x5a>
 
-         break;
 
-       case 13: /* ipRouteInfo */
 
-         /** @note returning zeroDotZero (0.0) no routing protocol specific MIB */
 
-         od->instance = MIB_OBJECT_TAB;
 
-  8033c00:	2302      	movs	r3, #2
 
-  8033c02:	7013      	strb	r3, [r2, #0]
 
-         od->access = MIB_OBJECT_READ_ONLY;
 
-  8033c04:	2301      	movs	r3, #1
 
-  8033c06:	7053      	strb	r3, [r2, #1]
 
-         od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OBJ_ID);
 
-  8033c08:	2306      	movs	r3, #6
 
-  8033c0a:	7093      	strb	r3, [r2, #2]
 
-         od->v_len = iprouteinfo.len * sizeof(s32_t);
 
-  8033c0c:	2308      	movs	r3, #8
 
-  8033c0e:	8093      	strh	r3, [r2, #4]
 
-         break;
 
-  8033c10:	4770      	bx	lr
 
-     }
 
-   }
 
-   else
 
-   {
 
-     LWIP_DEBUGF(SNMP_MIB_DEBUG,("ip_rteentry_get_object_def: no scalar\n"));
 
-     od->instance = MIB_OBJECT_NONE;
 
-  8033c12:	2300      	movs	r3, #0
 
-  8033c14:	7013      	strb	r3, [r2, #0]
 
-  8033c16:	4770      	bx	lr
 
- 08033c18 <icmp_get_object_def>:
 
- icmp_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od)
 
- {
 
-   /* return to object name, adding index depth (1) */
 
-   ident_len += 1;
 
-   ident -= 1;
 
-   if ((ident_len == 2) &&
 
-  8033c18:	2801      	cmp	r0, #1
 
-  8033c1a:	d110      	bne.n	8033c3e <icmp_get_object_def+0x26>
 
-       (ident[0] > 0) && (ident[0] < 27))
 
-  8033c1c:	f851 3c04 	ldr.w	r3, [r1, #-4]
 
- icmp_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od)
 
- {
 
-   /* return to object name, adding index depth (1) */
 
-   ident_len += 1;
 
-   ident -= 1;
 
-   if ((ident_len == 2) &&
 
-  8033c20:	2b00      	cmp	r3, #0
 
-  8033c22:	dd0c      	ble.n	8033c3e <icmp_get_object_def+0x26>
 
-       (ident[0] > 0) && (ident[0] < 27))
 
-  8033c24:	2b1a      	cmp	r3, #26
 
-  8033c26:	dc0a      	bgt.n	8033c3e <icmp_get_object_def+0x26>
 
-   {
 
-     od->id_inst_len = ident_len;
 
-  8033c28:	2302      	movs	r3, #2
 
-  8033c2a:	7193      	strb	r3, [r2, #6]
 
-     od->id_inst_ptr = ident;
 
-     od->instance = MIB_OBJECT_SCALAR;
 
-     od->access = MIB_OBJECT_READ_ONLY;
 
-     od->asn_type = (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_COUNTER);
 
-  8033c2c:	2341      	movs	r3, #65	; 0x41
 
- static void
 
- icmp_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od)
 
- {
 
-   /* return to object name, adding index depth (1) */
 
-   ident_len += 1;
 
-   ident -= 1;
 
-  8033c2e:	3904      	subs	r1, #4
 
-     od->id_inst_len = ident_len;
 
-     od->id_inst_ptr = ident;
 
-     od->instance = MIB_OBJECT_SCALAR;
 
-     od->access = MIB_OBJECT_READ_ONLY;
 
-     od->asn_type = (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_COUNTER);
 
-  8033c30:	7093      	strb	r3, [r2, #2]
 
-     od->v_len = sizeof(u32_t);
 
-  8033c32:	2304      	movs	r3, #4
 
-   ident -= 1;
 
-   if ((ident_len == 2) &&
 
-       (ident[0] > 0) && (ident[0] < 27))
 
-   {
 
-     od->id_inst_len = ident_len;
 
-     od->id_inst_ptr = ident;
 
-  8033c34:	6091      	str	r1, [r2, #8]
 
-     od->instance = MIB_OBJECT_SCALAR;
 
-  8033c36:	7010      	strb	r0, [r2, #0]
 
-     od->access = MIB_OBJECT_READ_ONLY;
 
-  8033c38:	7050      	strb	r0, [r2, #1]
 
-     od->asn_type = (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_COUNTER);
 
-     od->v_len = sizeof(u32_t);
 
-  8033c3a:	8093      	strh	r3, [r2, #4]
 
-  8033c3c:	4770      	bx	lr
 
-   }
 
-   else
 
-   {
 
-     LWIP_DEBUGF(SNMP_MIB_DEBUG,("icmp_get_object_def: no scalar\n"));
 
-     od->instance = MIB_OBJECT_NONE;
 
-  8033c3e:	2300      	movs	r3, #0
 
-  8033c40:	7013      	strb	r3, [r2, #0]
 
-  8033c42:	4770      	bx	lr
 
- 08033c44 <icmp_get_value>:
 
-   u32_t *uint_ptr = (u32_t*)value;
 
-   u8_t id;
 
-   LWIP_UNUSED_ARG(len);
 
-   LWIP_ASSERT("invalid id", (od->id_inst_ptr[0] >= 0) && (od->id_inst_ptr[0] <= 0xff));
 
-   id = (u8_t)od->id_inst_ptr[0];
 
-  8033c44:	6883      	ldr	r3, [r0, #8]
 
-   switch (id)
 
-  8033c46:	781b      	ldrb	r3, [r3, #0]
 
-  8033c48:	3b01      	subs	r3, #1
 
-  8033c4a:	2b19      	cmp	r3, #25
 
-  8033c4c:	d843      	bhi.n	8033cd6 <icmp_get_value+0x92>
 
-  8033c4e:	e8df f003 	tbb	[pc, r3]
 
-  8033c52:	0f0d      	.short	0x0f0d
 
-  8033c54:	17151311 	.word	0x17151311
 
-  8033c58:	1f1d1b19 	.word	0x1f1d1b19
 
-  8033c5c:	27252321 	.word	0x27252321
 
-  8033c60:	2f2d2b29 	.word	0x2f2d2b29
 
-  8033c64:	37353331 	.word	0x37353331
 
-  8033c68:	3f3d3b39 	.word	0x3f3d3b39
 
-   {
 
-     case 1: /* icmpInMsgs */
 
-       *uint_ptr = icmpinmsgs;
 
-  8033c6c:	4b1a      	ldr	r3, [pc, #104]	; (8033cd8 <icmp_get_value+0x94>)
 
-  8033c6e:	e030      	b.n	8033cd2 <icmp_get_value+0x8e>
 
-       break;
 
-     case 2: /* icmpInErrors */
 
-       *uint_ptr = icmpinerrors;
 
-  8033c70:	4b1a      	ldr	r3, [pc, #104]	; (8033cdc <icmp_get_value+0x98>)
 
-  8033c72:	e02e      	b.n	8033cd2 <icmp_get_value+0x8e>
 
-       break;
 
-     case 3: /* icmpInDestUnreachs */
 
-       *uint_ptr = icmpindestunreachs;
 
-  8033c74:	4b1a      	ldr	r3, [pc, #104]	; (8033ce0 <icmp_get_value+0x9c>)
 
-  8033c76:	e02c      	b.n	8033cd2 <icmp_get_value+0x8e>
 
-       break;
 
-     case 4: /* icmpInTimeExcds */
 
-       *uint_ptr = icmpintimeexcds;
 
-  8033c78:	4b1a      	ldr	r3, [pc, #104]	; (8033ce4 <icmp_get_value+0xa0>)
 
-  8033c7a:	e02a      	b.n	8033cd2 <icmp_get_value+0x8e>
 
-       break;
 
-     case 5: /* icmpInParmProbs */
 
-       *uint_ptr = icmpinparmprobs;
 
-  8033c7c:	4b1a      	ldr	r3, [pc, #104]	; (8033ce8 <icmp_get_value+0xa4>)
 
-  8033c7e:	e028      	b.n	8033cd2 <icmp_get_value+0x8e>
 
-       break;
 
-     case 6: /* icmpInSrcQuenchs */
 
-       *uint_ptr = icmpinsrcquenchs;
 
-  8033c80:	4b1a      	ldr	r3, [pc, #104]	; (8033cec <icmp_get_value+0xa8>)
 
-  8033c82:	e026      	b.n	8033cd2 <icmp_get_value+0x8e>
 
-       break;
 
-     case 7: /* icmpInRedirects */
 
-       *uint_ptr = icmpinredirects;
 
-  8033c84:	4b1a      	ldr	r3, [pc, #104]	; (8033cf0 <icmp_get_value+0xac>)
 
-  8033c86:	e024      	b.n	8033cd2 <icmp_get_value+0x8e>
 
-       break;
 
-     case 8: /* icmpInEchos */
 
-       *uint_ptr = icmpinechos;
 
-  8033c88:	4b1a      	ldr	r3, [pc, #104]	; (8033cf4 <icmp_get_value+0xb0>)
 
-  8033c8a:	e022      	b.n	8033cd2 <icmp_get_value+0x8e>
 
-       break;
 
-     case 9: /* icmpInEchoReps */
 
-       *uint_ptr = icmpinechoreps;
 
-  8033c8c:	4b1a      	ldr	r3, [pc, #104]	; (8033cf8 <icmp_get_value+0xb4>)
 
-  8033c8e:	e020      	b.n	8033cd2 <icmp_get_value+0x8e>
 
-       break;
 
-     case 10: /* icmpInTimestamps */
 
-       *uint_ptr = icmpintimestamps;
 
-  8033c90:	4b1a      	ldr	r3, [pc, #104]	; (8033cfc <icmp_get_value+0xb8>)
 
-  8033c92:	e01e      	b.n	8033cd2 <icmp_get_value+0x8e>
 
-       break;
 
-     case 11: /* icmpInTimestampReps */
 
-       *uint_ptr = icmpintimestampreps;
 
-  8033c94:	4b1a      	ldr	r3, [pc, #104]	; (8033d00 <icmp_get_value+0xbc>)
 
-  8033c96:	e01c      	b.n	8033cd2 <icmp_get_value+0x8e>
 
-       break;
 
-     case 12: /* icmpInAddrMasks */
 
-       *uint_ptr = icmpinaddrmasks;
 
-  8033c98:	4b1a      	ldr	r3, [pc, #104]	; (8033d04 <icmp_get_value+0xc0>)
 
-  8033c9a:	e01a      	b.n	8033cd2 <icmp_get_value+0x8e>
 
-       break;
 
-     case 13: /* icmpInAddrMaskReps */
 
-       *uint_ptr = icmpinaddrmaskreps;
 
-  8033c9c:	4b1a      	ldr	r3, [pc, #104]	; (8033d08 <icmp_get_value+0xc4>)
 
-  8033c9e:	e018      	b.n	8033cd2 <icmp_get_value+0x8e>
 
-       break;
 
-     case 14: /* icmpOutMsgs */
 
-       *uint_ptr = icmpoutmsgs;
 
-  8033ca0:	4b1a      	ldr	r3, [pc, #104]	; (8033d0c <icmp_get_value+0xc8>)
 
-  8033ca2:	e016      	b.n	8033cd2 <icmp_get_value+0x8e>
 
-       break;
 
-     case 15: /* icmpOutErrors */
 
-       *uint_ptr = icmpouterrors;
 
-  8033ca4:	4b1a      	ldr	r3, [pc, #104]	; (8033d10 <icmp_get_value+0xcc>)
 
-  8033ca6:	e014      	b.n	8033cd2 <icmp_get_value+0x8e>
 
-       break;
 
-     case 16: /* icmpOutDestUnreachs */
 
-       *uint_ptr = icmpoutdestunreachs;
 
-  8033ca8:	4b1a      	ldr	r3, [pc, #104]	; (8033d14 <icmp_get_value+0xd0>)
 
-  8033caa:	e012      	b.n	8033cd2 <icmp_get_value+0x8e>
 
-       break;
 
-     case 17: /* icmpOutTimeExcds */
 
-       *uint_ptr = icmpouttimeexcds;
 
-  8033cac:	4b1a      	ldr	r3, [pc, #104]	; (8033d18 <icmp_get_value+0xd4>)
 
-  8033cae:	e010      	b.n	8033cd2 <icmp_get_value+0x8e>
 
-       break;
 
-     case 18: /* icmpOutParmProbs */
 
-       *uint_ptr = icmpoutparmprobs;
 
-  8033cb0:	4b1a      	ldr	r3, [pc, #104]	; (8033d1c <icmp_get_value+0xd8>)
 
-  8033cb2:	e00e      	b.n	8033cd2 <icmp_get_value+0x8e>
 
-       break;
 
-     case 19: /* icmpOutSrcQuenchs */
 
-       *uint_ptr = icmpoutsrcquenchs;
 
-  8033cb4:	4b1a      	ldr	r3, [pc, #104]	; (8033d20 <icmp_get_value+0xdc>)
 
-  8033cb6:	e00c      	b.n	8033cd2 <icmp_get_value+0x8e>
 
-       break;
 
-     case 20: /* icmpOutRedirects */
 
-       *uint_ptr = icmpoutredirects;
 
-  8033cb8:	4b1a      	ldr	r3, [pc, #104]	; (8033d24 <icmp_get_value+0xe0>)
 
-  8033cba:	e00a      	b.n	8033cd2 <icmp_get_value+0x8e>
 
-       break;
 
-     case 21: /* icmpOutEchos */
 
-       *uint_ptr = icmpoutechos;
 
-  8033cbc:	4b1a      	ldr	r3, [pc, #104]	; (8033d28 <icmp_get_value+0xe4>)
 
-  8033cbe:	e008      	b.n	8033cd2 <icmp_get_value+0x8e>
 
-       break;
 
-     case 22: /* icmpOutEchoReps */
 
-       *uint_ptr = icmpoutechoreps;
 
-  8033cc0:	4b1a      	ldr	r3, [pc, #104]	; (8033d2c <icmp_get_value+0xe8>)
 
-  8033cc2:	e006      	b.n	8033cd2 <icmp_get_value+0x8e>
 
-       break;
 
-     case 23: /* icmpOutTimestamps */
 
-       *uint_ptr = icmpouttimestamps;
 
-  8033cc4:	4b1a      	ldr	r3, [pc, #104]	; (8033d30 <icmp_get_value+0xec>)
 
-  8033cc6:	e004      	b.n	8033cd2 <icmp_get_value+0x8e>
 
-       break;
 
-     case 24: /* icmpOutTimestampReps */
 
-       *uint_ptr = icmpouttimestampreps;
 
-  8033cc8:	4b1a      	ldr	r3, [pc, #104]	; (8033d34 <icmp_get_value+0xf0>)
 
-  8033cca:	e002      	b.n	8033cd2 <icmp_get_value+0x8e>
 
-       break;
 
-     case 25: /* icmpOutAddrMasks */
 
-       *uint_ptr = icmpoutaddrmasks;
 
-  8033ccc:	4b1a      	ldr	r3, [pc, #104]	; (8033d38 <icmp_get_value+0xf4>)
 
-  8033cce:	e000      	b.n	8033cd2 <icmp_get_value+0x8e>
 
-       break;
 
-     case 26: /* icmpOutAddrMaskReps */
 
-       *uint_ptr = icmpoutaddrmaskreps;
 
-  8033cd0:	4b1a      	ldr	r3, [pc, #104]	; (8033d3c <icmp_get_value+0xf8>)
 
-  8033cd2:	681b      	ldr	r3, [r3, #0]
 
-  8033cd4:	6013      	str	r3, [r2, #0]
 
-  8033cd6:	4770      	bx	lr
 
-  8033cd8:	2000c464 	.word	0x2000c464
 
-  8033cdc:	2000c460 	.word	0x2000c460
 
-  8033ce0:	2000c43c 	.word	0x2000c43c
 
-  8033ce4:	2000c520 	.word	0x2000c520
 
-  8033ce8:	2000c554 	.word	0x2000c554
 
-  8033cec:	2000c44c 	.word	0x2000c44c
 
-  8033cf0:	2000c478 	.word	0x2000c478
 
-  8033cf4:	2000c518 	.word	0x2000c518
 
-  8033cf8:	2000c490 	.word	0x2000c490
 
-  8033cfc:	2000c480 	.word	0x2000c480
 
-  8033d00:	2000c4c0 	.word	0x2000c4c0
 
-  8033d04:	2000c558 	.word	0x2000c558
 
-  8033d08:	2000c4f4 	.word	0x2000c4f4
 
-  8033d0c:	2000c4e4 	.word	0x2000c4e4
 
-  8033d10:	2000c568 	.word	0x2000c568
 
-  8033d14:	2000c4fc 	.word	0x2000c4fc
 
-  8033d18:	2000c4b0 	.word	0x2000c4b0
 
-  8033d1c:	2000c474 	.word	0x2000c474
 
-  8033d20:	2000c4c8 	.word	0x2000c4c8
 
-  8033d24:	2000c484 	.word	0x2000c484
 
-  8033d28:	2000c564 	.word	0x2000c564
 
-  8033d2c:	2000c504 	.word	0x2000c504
 
-  8033d30:	2000c4d0 	.word	0x2000c4d0
 
-  8033d34:	2000c4b4 	.word	0x2000c4b4
 
-  8033d38:	2000c47c 	.word	0x2000c47c
 
-  8033d3c:	2000c4dc 	.word	0x2000c4dc
 
- 08033d40 <tcp_get_value>:
 
-   s32_t *sint_ptr = (s32_t*)value;
 
-   u8_t id;
 
-   LWIP_UNUSED_ARG(len);
 
-   LWIP_ASSERT("invalid id", (od->id_inst_ptr[0] >= 0) && (od->id_inst_ptr[0] <= 0xff));
 
-   id = (u8_t)od->id_inst_ptr[0];
 
-  8033d40:	6883      	ldr	r3, [r0, #8]
 
-   switch (id)
 
-  8033d42:	781b      	ldrb	r3, [r3, #0]
 
-  8033d44:	3b01      	subs	r3, #1
 
-  8033d46:	2b0e      	cmp	r3, #14
 
-  8033d48:	d836      	bhi.n	8033db8 <tcp_get_value+0x78>
 
-  8033d4a:	e8df f003 	tbb	[pc, r3]
 
-  8033d4e:	0a08      	.short	0x0a08
 
-  8033d50:	1412100d 	.word	0x1412100d
 
-  8033d54:	2a1a1816 	.word	0x2a1a1816
 
-  8033d58:	30352e2c 	.word	0x30352e2c
 
-  8033d5c:	32          	.byte	0x32
 
-  8033d5d:	00          	.byte	0x00
 
-   {
 
-     case 1: /* tcpRtoAlgorithm, vanj(4) */
 
-       *sint_ptr = 4;
 
-  8033d5e:	2304      	movs	r3, #4
 
-  8033d60:	e029      	b.n	8033db6 <tcp_get_value+0x76>
 
-       break;
 
-     case 2: /* tcpRtoMin */
 
-       /* @todo not the actual value, a guess,
 
-           needs to be calculated */
 
-       *sint_ptr = 1000;
 
-  8033d62:	f44f 737a 	mov.w	r3, #1000	; 0x3e8
 
-  8033d66:	e026      	b.n	8033db6 <tcp_get_value+0x76>
 
-       break;
 
-     case 3: /* tcpRtoMax */
 
-       /* @todo not the actual value, a guess,
 
-          needs to be calculated */
 
-       *sint_ptr = 60000;
 
-  8033d68:	f64e 2360 	movw	r3, #60000	; 0xea60
 
-  8033d6c:	e023      	b.n	8033db6 <tcp_get_value+0x76>
 
-       break;
 
-     case 4: /* tcpMaxConn */
 
-       *sint_ptr = MEMP_NUM_TCP_PCB;
 
-  8033d6e:	230c      	movs	r3, #12
 
-  8033d70:	e021      	b.n	8033db6 <tcp_get_value+0x76>
 
-       break;
 
-     case 5: /* tcpActiveOpens */
 
-       *uint_ptr = tcpactiveopens;
 
-  8033d72:	4b12      	ldr	r3, [pc, #72]	; (8033dbc <tcp_get_value+0x7c>)
 
-  8033d74:	e01e      	b.n	8033db4 <tcp_get_value+0x74>
 
-       break;
 
-     case 6: /* tcpPassiveOpens */
 
-       *uint_ptr = tcppassiveopens;
 
-  8033d76:	4b12      	ldr	r3, [pc, #72]	; (8033dc0 <tcp_get_value+0x80>)
 
-  8033d78:	e01c      	b.n	8033db4 <tcp_get_value+0x74>
 
-       break;
 
-     case 7: /* tcpAttemptFails */
 
-       *uint_ptr = tcpattemptfails;
 
-  8033d7a:	4b12      	ldr	r3, [pc, #72]	; (8033dc4 <tcp_get_value+0x84>)
 
-  8033d7c:	e01a      	b.n	8033db4 <tcp_get_value+0x74>
 
-       break;
 
-     case 8: /* tcpEstabResets */
 
-       *uint_ptr = tcpestabresets;
 
-  8033d7e:	4b12      	ldr	r3, [pc, #72]	; (8033dc8 <tcp_get_value+0x88>)
 
-  8033d80:	e018      	b.n	8033db4 <tcp_get_value+0x74>
 
-       break;
 
-     case 9: /* tcpCurrEstab */
 
-       {
 
-         u16_t tcpcurrestab = 0;
 
-         struct tcp_pcb *pcb = tcp_active_pcbs;
 
-  8033d82:	4b12      	ldr	r3, [pc, #72]	; (8033dcc <tcp_get_value+0x8c>)
 
-     case 8: /* tcpEstabResets */
 
-       *uint_ptr = tcpestabresets;
 
-       break;
 
-     case 9: /* tcpCurrEstab */
 
-       {
 
-         u16_t tcpcurrestab = 0;
 
-  8033d84:	2100      	movs	r1, #0
 
-         struct tcp_pcb *pcb = tcp_active_pcbs;
 
-  8033d86:	681b      	ldr	r3, [r3, #0]
 
-         while (pcb != NULL)
 
-  8033d88:	e007      	b.n	8033d9a <tcp_get_value+0x5a>
 
-         {
 
-           if ((pcb->state == ESTABLISHED) ||
 
-  8033d8a:	7e18      	ldrb	r0, [r3, #24]
 
-  8033d8c:	2804      	cmp	r0, #4
 
-  8033d8e:	d001      	beq.n	8033d94 <tcp_get_value+0x54>
 
-  8033d90:	2807      	cmp	r0, #7
 
-  8033d92:	d101      	bne.n	8033d98 <tcp_get_value+0x58>
 
-               (pcb->state == CLOSE_WAIT))
 
-           {
 
-             tcpcurrestab++;
 
-  8033d94:	3101      	adds	r1, #1
 
-  8033d96:	b289      	uxth	r1, r1
 
-           }
 
-           pcb = pcb->next;
 
-  8033d98:	68db      	ldr	r3, [r3, #12]
 
-       break;
 
-     case 9: /* tcpCurrEstab */
 
-       {
 
-         u16_t tcpcurrestab = 0;
 
-         struct tcp_pcb *pcb = tcp_active_pcbs;
 
-         while (pcb != NULL)
 
-  8033d9a:	2b00      	cmp	r3, #0
 
-  8033d9c:	d1f5      	bne.n	8033d8a <tcp_get_value+0x4a>
 
-           {
 
-             tcpcurrestab++;
 
-           }
 
-           pcb = pcb->next;
 
-         }
 
-         *uint_ptr = tcpcurrestab;
 
-  8033d9e:	6011      	str	r1, [r2, #0]
 
-       }
 
-       break;
 
-  8033da0:	4770      	bx	lr
 
-     case 10: /* tcpInSegs */
 
-       *uint_ptr = tcpinsegs;
 
-  8033da2:	4b0b      	ldr	r3, [pc, #44]	; (8033dd0 <tcp_get_value+0x90>)
 
-  8033da4:	e006      	b.n	8033db4 <tcp_get_value+0x74>
 
-       break;
 
-     case 11: /* tcpOutSegs */
 
-       *uint_ptr = tcpoutsegs;
 
-  8033da6:	4b0b      	ldr	r3, [pc, #44]	; (8033dd4 <tcp_get_value+0x94>)
 
-  8033da8:	e004      	b.n	8033db4 <tcp_get_value+0x74>
 
-       break;
 
-     case 12: /* tcpRetransSegs */
 
-       *uint_ptr = tcpretranssegs;
 
-  8033daa:	4b0b      	ldr	r3, [pc, #44]	; (8033dd8 <tcp_get_value+0x98>)
 
-  8033dac:	e002      	b.n	8033db4 <tcp_get_value+0x74>
 
-       break;
 
-     case 14: /* tcpInErrs */
 
-       *uint_ptr = tcpinerrs;
 
-  8033dae:	4b0b      	ldr	r3, [pc, #44]	; (8033ddc <tcp_get_value+0x9c>)
 
-  8033db0:	e000      	b.n	8033db4 <tcp_get_value+0x74>
 
-       break;
 
-     case 15: /* tcpOutRsts */
 
-       *uint_ptr = tcpoutrsts;
 
-  8033db2:	4b0b      	ldr	r3, [pc, #44]	; (8033de0 <tcp_get_value+0xa0>)
 
-  8033db4:	681b      	ldr	r3, [r3, #0]
 
-  8033db6:	6013      	str	r3, [r2, #0]
 
-  8033db8:	4770      	bx	lr
 
-  8033dba:	bf00      	nop
 
-  8033dbc:	2000c458 	.word	0x2000c458
 
-  8033dc0:	2000c48c 	.word	0x2000c48c
 
-  8033dc4:	2000c4d8 	.word	0x2000c4d8
 
-  8033dc8:	2000c46c 	.word	0x2000c46c
 
-  8033dcc:	2000f6bc 	.word	0x2000f6bc
 
-  8033dd0:	2000c4e8 	.word	0x2000c4e8
 
-  8033dd4:	2000c534 	.word	0x2000c534
 
-  8033dd8:	2000c508 	.word	0x2000c508
 
-  8033ddc:	2000c494 	.word	0x2000c494
 
-  8033de0:	2000c4f8 	.word	0x2000c4f8
 
- 08033de4 <udp_get_object_def>:
 
- udp_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od)
 
- {
 
-   /* return to object name, adding index depth (1) */
 
-   ident_len += 1;
 
-   ident -= 1;
 
-   if ((ident_len == 2) &&
 
-  8033de4:	2801      	cmp	r0, #1
 
-  8033de6:	d110      	bne.n	8033e0a <udp_get_object_def+0x26>
 
-       (ident[0] > 0) && (ident[0] < 6))
 
-  8033de8:	f851 3c04 	ldr.w	r3, [r1, #-4]
 
- udp_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od)
 
- {
 
-   /* return to object name, adding index depth (1) */
 
-   ident_len += 1;
 
-   ident -= 1;
 
-   if ((ident_len == 2) &&
 
-  8033dec:	2b00      	cmp	r3, #0
 
-  8033dee:	dd0c      	ble.n	8033e0a <udp_get_object_def+0x26>
 
-       (ident[0] > 0) && (ident[0] < 6))
 
-  8033df0:	2b05      	cmp	r3, #5
 
-  8033df2:	dc0a      	bgt.n	8033e0a <udp_get_object_def+0x26>
 
-   {
 
-     od->id_inst_len = ident_len;
 
-  8033df4:	2302      	movs	r3, #2
 
-  8033df6:	7193      	strb	r3, [r2, #6]
 
-     od->id_inst_ptr = ident;
 
-     od->instance = MIB_OBJECT_SCALAR;
 
-     od->access = MIB_OBJECT_READ_ONLY;
 
-     od->asn_type = (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_COUNTER);
 
-  8033df8:	2341      	movs	r3, #65	; 0x41
 
- static void
 
- udp_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od)
 
- {
 
-   /* return to object name, adding index depth (1) */
 
-   ident_len += 1;
 
-   ident -= 1;
 
-  8033dfa:	3904      	subs	r1, #4
 
-     od->id_inst_len = ident_len;
 
-     od->id_inst_ptr = ident;
 
-     od->instance = MIB_OBJECT_SCALAR;
 
-     od->access = MIB_OBJECT_READ_ONLY;
 
-     od->asn_type = (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_COUNTER);
 
-  8033dfc:	7093      	strb	r3, [r2, #2]
 
-     od->v_len = sizeof(u32_t);
 
-  8033dfe:	2304      	movs	r3, #4
 
-   ident -= 1;
 
-   if ((ident_len == 2) &&
 
-       (ident[0] > 0) && (ident[0] < 6))
 
-   {
 
-     od->id_inst_len = ident_len;
 
-     od->id_inst_ptr = ident;
 
-  8033e00:	6091      	str	r1, [r2, #8]
 
-     od->instance = MIB_OBJECT_SCALAR;
 
-  8033e02:	7010      	strb	r0, [r2, #0]
 
-     od->access = MIB_OBJECT_READ_ONLY;
 
-  8033e04:	7050      	strb	r0, [r2, #1]
 
-     od->asn_type = (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_COUNTER);
 
-     od->v_len = sizeof(u32_t);
 
-  8033e06:	8093      	strh	r3, [r2, #4]
 
-  8033e08:	4770      	bx	lr
 
-   }
 
-   else
 
-   {
 
-     LWIP_DEBUGF(SNMP_MIB_DEBUG,("udp_get_object_def: no scalar\n"));
 
-     od->instance = MIB_OBJECT_NONE;
 
-  8033e0a:	2300      	movs	r3, #0
 
-  8033e0c:	7013      	strb	r3, [r2, #0]
 
-  8033e0e:	4770      	bx	lr
 
- 08033e10 <udp_get_value>:
 
-   u32_t *uint_ptr = (u32_t*)value;
 
-   u8_t id;
 
-   LWIP_UNUSED_ARG(len);
 
-   LWIP_ASSERT("invalid id", (od->id_inst_ptr[0] >= 0) && (od->id_inst_ptr[0] <= 0xff));
 
-   id = (u8_t)od->id_inst_ptr[0];
 
-  8033e10:	6883      	ldr	r3, [r0, #8]
 
-   switch (id)
 
-  8033e12:	781b      	ldrb	r3, [r3, #0]
 
-  8033e14:	3b01      	subs	r3, #1
 
-  8033e16:	2b03      	cmp	r3, #3
 
-  8033e18:	d80c      	bhi.n	8033e34 <udp_get_value+0x24>
 
-  8033e1a:	e8df f003 	tbb	[pc, r3]
 
-  8033e1e:	0402      	.short	0x0402
 
-  8033e20:	0806      	.short	0x0806
 
-   {
 
-     case 1: /* udpInDatagrams */
 
-       *uint_ptr = udpindatagrams;
 
-  8033e22:	4b05      	ldr	r3, [pc, #20]	; (8033e38 <udp_get_value+0x28>)
 
-  8033e24:	e004      	b.n	8033e30 <udp_get_value+0x20>
 
-       break;
 
-     case 2: /* udpNoPorts */
 
-       *uint_ptr = udpnoports;
 
-  8033e26:	4b05      	ldr	r3, [pc, #20]	; (8033e3c <udp_get_value+0x2c>)
 
-  8033e28:	e002      	b.n	8033e30 <udp_get_value+0x20>
 
-       break;
 
-     case 3: /* udpInErrors */
 
-       *uint_ptr = udpinerrors;
 
-  8033e2a:	4b05      	ldr	r3, [pc, #20]	; (8033e40 <udp_get_value+0x30>)
 
-  8033e2c:	e000      	b.n	8033e30 <udp_get_value+0x20>
 
-       break;
 
-     case 4: /* udpOutDatagrams */
 
-       *uint_ptr = udpoutdatagrams;
 
-  8033e2e:	4b05      	ldr	r3, [pc, #20]	; (8033e44 <udp_get_value+0x34>)
 
-  8033e30:	681b      	ldr	r3, [r3, #0]
 
-  8033e32:	6013      	str	r3, [r2, #0]
 
-  8033e34:	4770      	bx	lr
 
-  8033e36:	bf00      	nop
 
-  8033e38:	2000c514 	.word	0x2000c514
 
-  8033e3c:	2000c4cc 	.word	0x2000c4cc
 
-  8033e40:	2000c53c 	.word	0x2000c53c
 
-  8033e44:	2000c4c4 	.word	0x2000c4c4
 
- 08033e48 <snmp_get_value>:
 
-   u32_t *uint_ptr = (u32_t*)value;
 
-   u8_t id;
 
-   LWIP_UNUSED_ARG(len);
 
-   LWIP_ASSERT("invalid id", (od->id_inst_ptr[0] >= 0) && (od->id_inst_ptr[0] <= 0xff));
 
-   id = (u8_t)od->id_inst_ptr[0];
 
-  8033e48:	6883      	ldr	r3, [r0, #8]
 
-   switch (id)
 
-  8033e4a:	781b      	ldrb	r3, [r3, #0]
 
-  8033e4c:	3b01      	subs	r3, #1
 
-  8033e4e:	2b1d      	cmp	r3, #29
 
-  8033e50:	d84b      	bhi.n	8033eea <snmp_get_value+0xa2>
 
-  8033e52:	e8df f003 	tbb	[pc, r3]
 
-  8033e56:	110f      	.short	0x110f
 
-  8033e58:	19171513 	.word	0x19171513
 
-  8033e5c:	1f1d1b4a 	.word	0x1f1d1b4a
 
-  8033e60:	27252321 	.word	0x27252321
 
-  8033e64:	2f2d2b29 	.word	0x2f2d2b29
 
-  8033e68:	37353331 	.word	0x37353331
 
-  8033e6c:	3d3b394a 	.word	0x3d3b394a
 
-  8033e70:	4643413f 	.word	0x4643413f
 
-   {
 
-       case 1: /* snmpInPkts */
 
-         *uint_ptr = snmpinpkts;
 
-  8033e74:	4b1d      	ldr	r3, [pc, #116]	; (8033eec <snmp_get_value+0xa4>)
 
-  8033e76:	e032      	b.n	8033ede <snmp_get_value+0x96>
 
-         break;
 
-       case 2: /* snmpOutPkts */
 
-         *uint_ptr = snmpoutpkts;
 
-  8033e78:	4b1d      	ldr	r3, [pc, #116]	; (8033ef0 <snmp_get_value+0xa8>)
 
-  8033e7a:	e030      	b.n	8033ede <snmp_get_value+0x96>
 
-         break;
 
-       case 3: /* snmpInBadVersions */
 
-         *uint_ptr = snmpinbadversions;
 
-  8033e7c:	4b1d      	ldr	r3, [pc, #116]	; (8033ef4 <snmp_get_value+0xac>)
 
-  8033e7e:	e02e      	b.n	8033ede <snmp_get_value+0x96>
 
-         break;
 
-       case 4: /* snmpInBadCommunityNames */
 
-         *uint_ptr = snmpinbadcommunitynames;
 
-  8033e80:	4b1d      	ldr	r3, [pc, #116]	; (8033ef8 <snmp_get_value+0xb0>)
 
-  8033e82:	e02c      	b.n	8033ede <snmp_get_value+0x96>
 
-         break;
 
-       case 5: /* snmpInBadCommunityUses */
 
-         *uint_ptr = snmpinbadcommunityuses;
 
-  8033e84:	4b1d      	ldr	r3, [pc, #116]	; (8033efc <snmp_get_value+0xb4>)
 
-  8033e86:	e02a      	b.n	8033ede <snmp_get_value+0x96>
 
-         break;
 
-       case 6: /* snmpInASNParseErrs */
 
-         *uint_ptr = snmpinasnparseerrs;
 
-  8033e88:	4b1d      	ldr	r3, [pc, #116]	; (8033f00 <snmp_get_value+0xb8>)
 
-  8033e8a:	e028      	b.n	8033ede <snmp_get_value+0x96>
 
-         break;
 
-       case 8: /* snmpInTooBigs */
 
-         *uint_ptr = snmpintoobigs;
 
-  8033e8c:	4b1d      	ldr	r3, [pc, #116]	; (8033f04 <snmp_get_value+0xbc>)
 
-  8033e8e:	e026      	b.n	8033ede <snmp_get_value+0x96>
 
-         break;
 
-       case 9: /* snmpInNoSuchNames */
 
-         *uint_ptr = snmpinnosuchnames;
 
-  8033e90:	4b1d      	ldr	r3, [pc, #116]	; (8033f08 <snmp_get_value+0xc0>)
 
-  8033e92:	e024      	b.n	8033ede <snmp_get_value+0x96>
 
-         break;
 
-       case 10: /* snmpInBadValues */
 
-         *uint_ptr = snmpinbadvalues;
 
-  8033e94:	4b1d      	ldr	r3, [pc, #116]	; (8033f0c <snmp_get_value+0xc4>)
 
-  8033e96:	e022      	b.n	8033ede <snmp_get_value+0x96>
 
-         break;
 
-       case 11: /* snmpInReadOnlys */
 
-         *uint_ptr = snmpinreadonlys;
 
-  8033e98:	4b1d      	ldr	r3, [pc, #116]	; (8033f10 <snmp_get_value+0xc8>)
 
-  8033e9a:	e020      	b.n	8033ede <snmp_get_value+0x96>
 
-         break;
 
-       case 12: /* snmpInGenErrs */
 
-         *uint_ptr = snmpingenerrs;
 
-  8033e9c:	4b1d      	ldr	r3, [pc, #116]	; (8033f14 <snmp_get_value+0xcc>)
 
-  8033e9e:	e01e      	b.n	8033ede <snmp_get_value+0x96>
 
-         break;
 
-       case 13: /* snmpInTotalReqVars */
 
-         *uint_ptr = snmpintotalreqvars;
 
-  8033ea0:	4b1d      	ldr	r3, [pc, #116]	; (8033f18 <snmp_get_value+0xd0>)
 
-  8033ea2:	e01c      	b.n	8033ede <snmp_get_value+0x96>
 
-         break;
 
-       case 14: /* snmpInTotalSetVars */
 
-         *uint_ptr = snmpintotalsetvars;
 
-  8033ea4:	4b1d      	ldr	r3, [pc, #116]	; (8033f1c <snmp_get_value+0xd4>)
 
-  8033ea6:	e01a      	b.n	8033ede <snmp_get_value+0x96>
 
-         break;
 
-       case 15: /* snmpInGetRequests */
 
-         *uint_ptr = snmpingetrequests;
 
-  8033ea8:	4b1d      	ldr	r3, [pc, #116]	; (8033f20 <snmp_get_value+0xd8>)
 
-  8033eaa:	e018      	b.n	8033ede <snmp_get_value+0x96>
 
-         break;
 
-       case 16: /* snmpInGetNexts */
 
-         *uint_ptr = snmpingetnexts;
 
-  8033eac:	4b1d      	ldr	r3, [pc, #116]	; (8033f24 <snmp_get_value+0xdc>)
 
-  8033eae:	e016      	b.n	8033ede <snmp_get_value+0x96>
 
-         break;
 
-       case 17: /* snmpInSetRequests */
 
-         *uint_ptr = snmpinsetrequests;
 
-  8033eb0:	4b1d      	ldr	r3, [pc, #116]	; (8033f28 <snmp_get_value+0xe0>)
 
-  8033eb2:	e014      	b.n	8033ede <snmp_get_value+0x96>
 
-         break;
 
-       case 18: /* snmpInGetResponses */
 
-         *uint_ptr = snmpingetresponses;
 
-  8033eb4:	4b1d      	ldr	r3, [pc, #116]	; (8033f2c <snmp_get_value+0xe4>)
 
-  8033eb6:	e012      	b.n	8033ede <snmp_get_value+0x96>
 
-         break;
 
-       case 19: /* snmpInTraps */
 
-         *uint_ptr = snmpintraps;
 
-  8033eb8:	4b1d      	ldr	r3, [pc, #116]	; (8033f30 <snmp_get_value+0xe8>)
 
-  8033eba:	e010      	b.n	8033ede <snmp_get_value+0x96>
 
-         break;
 
-       case 20: /* snmpOutTooBigs */
 
-         *uint_ptr = snmpouttoobigs;
 
-  8033ebc:	4b1d      	ldr	r3, [pc, #116]	; (8033f34 <snmp_get_value+0xec>)
 
-  8033ebe:	e00e      	b.n	8033ede <snmp_get_value+0x96>
 
-         break;
 
-       case 21: /* snmpOutNoSuchNames */
 
-         *uint_ptr = snmpoutnosuchnames;
 
-  8033ec0:	4b1d      	ldr	r3, [pc, #116]	; (8033f38 <snmp_get_value+0xf0>)
 
-  8033ec2:	e00c      	b.n	8033ede <snmp_get_value+0x96>
 
-         break;
 
-       case 22: /* snmpOutBadValues */
 
-         *uint_ptr = snmpoutbadvalues;
 
-  8033ec4:	4b1d      	ldr	r3, [pc, #116]	; (8033f3c <snmp_get_value+0xf4>)
 
-  8033ec6:	e00a      	b.n	8033ede <snmp_get_value+0x96>
 
-         break;
 
-       case 24: /* snmpOutGenErrs */
 
-         *uint_ptr = snmpoutgenerrs;
 
-  8033ec8:	4b1d      	ldr	r3, [pc, #116]	; (8033f40 <snmp_get_value+0xf8>)
 
-  8033eca:	e008      	b.n	8033ede <snmp_get_value+0x96>
 
-         break;
 
-       case 25: /* snmpOutGetRequests */
 
-         *uint_ptr = snmpoutgetrequests;
 
-  8033ecc:	4b1d      	ldr	r3, [pc, #116]	; (8033f44 <snmp_get_value+0xfc>)
 
-  8033ece:	e006      	b.n	8033ede <snmp_get_value+0x96>
 
-         break;
 
-       case 26: /* snmpOutGetNexts */
 
-         *uint_ptr = snmpoutgetnexts;
 
-  8033ed0:	4b1d      	ldr	r3, [pc, #116]	; (8033f48 <snmp_get_value+0x100>)
 
-  8033ed2:	e004      	b.n	8033ede <snmp_get_value+0x96>
 
-         break;
 
-       case 27: /* snmpOutSetRequests */
 
-         *uint_ptr = snmpoutsetrequests;
 
-  8033ed4:	4b1d      	ldr	r3, [pc, #116]	; (8033f4c <snmp_get_value+0x104>)
 
-  8033ed6:	e002      	b.n	8033ede <snmp_get_value+0x96>
 
-         break;
 
-       case 28: /* snmpOutGetResponses */
 
-         *uint_ptr = snmpoutgetresponses;
 
-  8033ed8:	4b1d      	ldr	r3, [pc, #116]	; (8033f50 <snmp_get_value+0x108>)
 
-  8033eda:	e000      	b.n	8033ede <snmp_get_value+0x96>
 
-         break;
 
-       case 29: /* snmpOutTraps */
 
-         *uint_ptr = snmpouttraps;
 
-  8033edc:	4b1d      	ldr	r3, [pc, #116]	; (8033f54 <snmp_get_value+0x10c>)
 
-  8033ede:	681b      	ldr	r3, [r3, #0]
 
-  8033ee0:	e002      	b.n	8033ee8 <snmp_get_value+0xa0>
 
-         break;
 
-       case 30: /* snmpEnableAuthenTraps */
 
-         *uint_ptr = *snmpenableauthentraps_ptr;
 
-  8033ee2:	4b1d      	ldr	r3, [pc, #116]	; (8033f58 <snmp_get_value+0x110>)
 
-  8033ee4:	681b      	ldr	r3, [r3, #0]
 
-  8033ee6:	781b      	ldrb	r3, [r3, #0]
 
-  8033ee8:	6013      	str	r3, [r2, #0]
 
-  8033eea:	4770      	bx	lr
 
-  8033eec:	2000c470 	.word	0x2000c470
 
-  8033ef0:	2000c540 	.word	0x2000c540
 
-  8033ef4:	2000c52c 	.word	0x2000c52c
 
-  8033ef8:	2000c444 	.word	0x2000c444
 
-  8033efc:	2000c448 	.word	0x2000c448
 
-  8033f00:	2000c530 	.word	0x2000c530
 
-  8033f04:	2000c4f0 	.word	0x2000c4f0
 
-  8033f08:	2000c570 	.word	0x2000c570
 
-  8033f0c:	2000c50c 	.word	0x2000c50c
 
-  8033f10:	2000c4e0 	.word	0x2000c4e0
 
-  8033f14:	2000c4b8 	.word	0x2000c4b8
 
-  8033f18:	2000c510 	.word	0x2000c510
 
-  8033f1c:	2000c450 	.word	0x2000c450
 
-  8033f20:	2000c4a4 	.word	0x2000c4a4
 
-  8033f24:	2000c428 	.word	0x2000c428
 
-  8033f28:	2000c54c 	.word	0x2000c54c
 
-  8033f2c:	2000c4a0 	.word	0x2000c4a0
 
-  8033f30:	2000c438 	.word	0x2000c438
 
-  8033f34:	2000c488 	.word	0x2000c488
 
-  8033f38:	2000c454 	.word	0x2000c454
 
-  8033f3c:	2000c434 	.word	0x2000c434
 
-  8033f40:	2000c574 	.word	0x2000c574
 
-  8033f44:	2000c4ac 	.word	0x2000c4ac
 
-  8033f48:	2000c544 	.word	0x2000c544
 
-  8033f4c:	2000c550 	.word	0x2000c550
 
-  8033f50:	2000c430 	.word	0x2000c430
 
-  8033f54:	2000c4a8 	.word	0x2000c4a8
 
-  8033f58:	20000898 	.word	0x20000898
 
- 08033f5c <snmp_set_value>:
 
- {
 
-   u8_t id;
 
-   LWIP_UNUSED_ARG(len);
 
-   LWIP_ASSERT("invalid id", (od->id_inst_ptr[0] >= 0) && (od->id_inst_ptr[0] <= 0xff));
 
-   id = (u8_t)od->id_inst_ptr[0];
 
-  8033f5c:	6883      	ldr	r3, [r0, #8]
 
-   if (id == 30)
 
-  8033f5e:	781b      	ldrb	r3, [r3, #0]
 
-  8033f60:	2b1e      	cmp	r3, #30
 
-  8033f62:	d103      	bne.n	8033f6c <snmp_set_value+0x10>
 
-   {
 
-     /* snmpEnableAuthenTraps */
 
-     /* @todo @fixme: which kind of pointer is 'value'? s32_t or u8_t??? */
 
-     u8_t *ptr = (u8_t*)value;
 
-     *snmpenableauthentraps_ptr = *ptr;
 
-  8033f64:	4b02      	ldr	r3, [pc, #8]	; (8033f70 <snmp_set_value+0x14>)
 
-  8033f66:	7812      	ldrb	r2, [r2, #0]
 
-  8033f68:	681b      	ldr	r3, [r3, #0]
 
-  8033f6a:	701a      	strb	r2, [r3, #0]
 
-  8033f6c:	4770      	bx	lr
 
-  8033f6e:	bf00      	nop
 
-  8033f70:	20000898 	.word	0x20000898
 
- 08033f74 <ifentry_get_object_def>:
 
-   u8_t id;
 
-   /* return to object name, adding index depth (1) */
 
-   ident_len += 1;
 
-   ident -= 1;
 
-   if (ident_len == 2)
 
-  8033f74:	2801      	cmp	r0, #1
 
-  * @param ident points to objectname.index
 
-  * @param od points to object definition.
 
-  */
 
- static void
 
- ifentry_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od)
 
- {
 
-  8033f76:	b513      	push	{r0, r1, r4, lr}
 
-  8033f78:	4614      	mov	r4, r2
 
-   u8_t id;
 
-   /* return to object name, adding index depth (1) */
 
-   ident_len += 1;
 
-   ident -= 1;
 
-   if (ident_len == 2)
 
-  8033f7a:	d149      	bne.n	8034010 <ifentry_get_object_def+0x9c>
 
-   {
 
-     od->id_inst_len = ident_len;
 
-  8033f7c:	2302      	movs	r3, #2
 
-  8033f7e:	7193      	strb	r3, [r2, #6]
 
- {
 
-   u8_t id;
 
-   /* return to object name, adding index depth (1) */
 
-   ident_len += 1;
 
-   ident -= 1;
 
-  8033f80:	1f0a      	subs	r2, r1, #4
 
-   if (ident_len == 2)
 
-   {
 
-     od->id_inst_len = ident_len;
 
-     od->id_inst_ptr = ident;
 
-  8033f82:	60a2      	str	r2, [r4, #8]
 
-     LWIP_ASSERT("invalid id", (ident[0] >= 0) && (ident[0] <= 0xff));
 
-     id = (u8_t)ident[0];
 
-     LWIP_DEBUGF(SNMP_MIB_DEBUG,("get_object_def ifentry.%"U16_F"\n",(u16_t)id));
 
-     switch (id)
 
-  8033f84:	f811 2c04 	ldrb.w	r2, [r1, #-4]
 
-  8033f88:	3a01      	subs	r2, #1
 
-  8033f8a:	2a15      	cmp	r2, #21
 
-  8033f8c:	d840      	bhi.n	8034010 <ifentry_get_object_def+0x9c>
 
-  8033f8e:	e8df f002 	tbb	[pc, r2]
 
-  8033f92:	0e0b      	.short	0x0e0b
 
-  8033f94:	19140b0b 	.word	0x19140b0b
 
-  8033f98:	302b0b27 	.word	0x302b0b27
 
-  8033f9c:	30303030 	.word	0x30303030
 
-  8033fa0:	30303030 	.word	0x30303030
 
-  8033fa4:	37143030 	.word	0x37143030
 
-     {
 
-       case 1: /* ifIndex */
 
-       case 3: /* ifType */
 
-       case 4: /* ifMtu */
 
-       case 8: /* ifOperStatus */
 
-         od->instance = MIB_OBJECT_TAB;
 
-  8033fa8:	7023      	strb	r3, [r4, #0]
 
-         od->access = MIB_OBJECT_READ_ONLY;
 
-  8033faa:	2201      	movs	r2, #1
 
-  8033fac:	e01a      	b.n	8033fe4 <ifentry_get_object_def+0x70>
 
-         od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG);
 
-         od->v_len = sizeof(s32_t);
 
-         break;
 
-       case 2: /* ifDescr */
 
-         od->instance = MIB_OBJECT_TAB;
 
-         od->access = MIB_OBJECT_READ_ONLY;
 
-  8033fae:	2201      	movs	r2, #1
 
-  8033fb0:	7062      	strb	r2, [r4, #1]
 
-         od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OC_STR);
 
-  8033fb2:	2204      	movs	r2, #4
 
-         od->access = MIB_OBJECT_READ_ONLY;
 
-         od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG);
 
-         od->v_len = sizeof(s32_t);
 
-         break;
 
-       case 2: /* ifDescr */
 
-         od->instance = MIB_OBJECT_TAB;
 
-  8033fb4:	7023      	strb	r3, [r4, #0]
 
-         od->access = MIB_OBJECT_READ_ONLY;
 
-         od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OC_STR);
 
-  8033fb6:	70a2      	strb	r2, [r4, #2]
 
-  8033fb8:	e028      	b.n	803400c <ifentry_get_object_def+0x98>
 
-         /** @todo this should be some sort of sizeof(struct netif.name) */
 
-         od->v_len = 2;
 
-         break;
 
-       case 5: /* ifSpeed */
 
-       case 21: /* ifOutQLen */
 
-         od->instance = MIB_OBJECT_TAB;
 
-  8033fba:	7023      	strb	r3, [r4, #0]
 
-         od->access = MIB_OBJECT_READ_ONLY;
 
-  8033fbc:	2301      	movs	r3, #1
 
-  8033fbe:	7063      	strb	r3, [r4, #1]
 
-         od->asn_type = (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_GAUGE);
 
-  8033fc0:	2342      	movs	r3, #66	; 0x42
 
-  8033fc2:	e01a      	b.n	8033ffa <ifentry_get_object_def+0x86>
 
-         break;
 
-       case 6: /* ifPhysAddress */
 
-         {
 
-           struct netif *netif;
 
-           snmp_ifindextonetif(ident[1], &netif);
 
-  8033fc4:	6808      	ldr	r0, [r1, #0]
 
-  8033fc6:	a901      	add	r1, sp, #4
 
-  8033fc8:	f001 f824 	bl	8035014 <snmp_ifindextonetif>
 
-           od->instance = MIB_OBJECT_TAB;
 
-  8033fcc:	2302      	movs	r3, #2
 
-  8033fce:	7023      	strb	r3, [r4, #0]
 
-           od->access = MIB_OBJECT_READ_ONLY;
 
-  8033fd0:	2301      	movs	r3, #1
 
-  8033fd2:	7063      	strb	r3, [r4, #1]
 
-           od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OC_STR);
 
-  8033fd4:	2304      	movs	r3, #4
 
-  8033fd6:	70a3      	strb	r3, [r4, #2]
 
-           od->v_len = netif->hwaddr_len;
 
-  8033fd8:	9b01      	ldr	r3, [sp, #4]
 
-  8033fda:	f893 3026 	ldrb.w	r3, [r3, #38]	; 0x26
 
-  8033fde:	e015      	b.n	803400c <ifentry_get_object_def+0x98>
 
-         }
 
-         break;
 
-       case 7: /* ifAdminStatus */
 
-         od->instance = MIB_OBJECT_TAB;
 
-  8033fe0:	7023      	strb	r3, [r4, #0]
 
-         od->access = MIB_OBJECT_READ_WRITE;
 
-  8033fe2:	2203      	movs	r2, #3
 
-  8033fe4:	7062      	strb	r2, [r4, #1]
 
-  8033fe6:	e008      	b.n	8033ffa <ifentry_get_object_def+0x86>
 
-         od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG);
 
-         od->v_len = sizeof(s32_t);
 
-         break;
 
-       case 9: /* ifLastChange */
 
-         od->instance = MIB_OBJECT_TAB;
 
-  8033fe8:	7023      	strb	r3, [r4, #0]
 
-         od->access = MIB_OBJECT_READ_ONLY;
 
-  8033fea:	2301      	movs	r3, #1
 
-  8033fec:	7063      	strb	r3, [r4, #1]
 
-         od->asn_type = (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_TIMETICKS);
 
-  8033fee:	2343      	movs	r3, #67	; 0x43
 
-  8033ff0:	e003      	b.n	8033ffa <ifentry_get_object_def+0x86>
 
-       case 16: /* ifOutOctets */
 
-       case 17: /* ifOutUcastPkts */
 
-       case 18: /* ifOutNUcastPkts */
 
-       case 19: /* ifOutDiscarts */
 
-       case 20: /* ifOutErrors */
 
-         od->instance = MIB_OBJECT_TAB;
 
-  8033ff2:	7023      	strb	r3, [r4, #0]
 
-         od->access = MIB_OBJECT_READ_ONLY;
 
-  8033ff4:	2301      	movs	r3, #1
 
-  8033ff6:	7063      	strb	r3, [r4, #1]
 
-         od->asn_type = (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_COUNTER);
 
-  8033ff8:	2341      	movs	r3, #65	; 0x41
 
-  8033ffa:	70a3      	strb	r3, [r4, #2]
 
-         od->v_len = sizeof(u32_t);
 
-  8033ffc:	2304      	movs	r3, #4
 
-  8033ffe:	e005      	b.n	803400c <ifentry_get_object_def+0x98>
 
-         break;
 
-       case 22: /* ifSpecific */
 
-         /** @note returning zeroDotZero (0.0) no media specific MIB support */
 
-         od->instance = MIB_OBJECT_TAB;
 
-  8034000:	7023      	strb	r3, [r4, #0]
 
-         od->access = MIB_OBJECT_READ_ONLY;
 
-  8034002:	2301      	movs	r3, #1
 
-  8034004:	7063      	strb	r3, [r4, #1]
 
-         od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OBJ_ID);
 
-  8034006:	2306      	movs	r3, #6
 
-  8034008:	70a3      	strb	r3, [r4, #2]
 
-         od->v_len = ifspecific.len * sizeof(s32_t);
 
-  803400a:	2308      	movs	r3, #8
 
-  803400c:	80a3      	strh	r3, [r4, #4]
 
-         break;
 
-  803400e:	e001      	b.n	8034014 <ifentry_get_object_def+0xa0>
 
-     };
 
-   }
 
-   else
 
-   {
 
-     LWIP_DEBUGF(SNMP_MIB_DEBUG,("ifentry_get_object_def: no scalar\n"));
 
-     od->instance = MIB_OBJECT_NONE;
 
-  8034010:	2300      	movs	r3, #0
 
-  8034012:	7023      	strb	r3, [r4, #0]
 
-   }
 
- }
 
-  8034014:	bd1c      	pop	{r2, r3, r4, pc}
 
-  8034016:	0000      	movs	r0, r0
 
- 08034018 <udpentry_get_value>:
 
-   }
 
- }
 
- static void
 
- udpentry_get_value(struct obj_def *od, u16_t len, void *value)
 
- {
 
-  8034018:	b537      	push	{r0, r1, r2, r4, r5, lr}
 
-  803401a:	4604      	mov	r4, r0
 
-   struct udp_pcb *pcb;
 
-   ip_addr_t ip;
 
-   u16_t port;
 
-   LWIP_UNUSED_ARG(len);
 
-   snmp_oidtoip(&od->id_inst_ptr[1], &ip);
 
-  803401c:	6880      	ldr	r0, [r0, #8]
 
-  803401e:	a901      	add	r1, sp, #4
 
-  8034020:	3004      	adds	r0, #4
 
-   }
 
- }
 
- static void
 
- udpentry_get_value(struct obj_def *od, u16_t len, void *value)
 
- {
 
-  8034022:	4615      	mov	r5, r2
 
-   struct udp_pcb *pcb;
 
-   ip_addr_t ip;
 
-   u16_t port;
 
-   LWIP_UNUSED_ARG(len);
 
-   snmp_oidtoip(&od->id_inst_ptr[1], &ip);
 
-  8034024:	f001 f814 	bl	8035050 <snmp_oidtoip>
 
-   LWIP_ASSERT("invalid port", (od->id_inst_ptr[5] >= 0) && (od->id_inst_ptr[5] <= 0xffff));
 
-   port = (u16_t)od->id_inst_ptr[5];
 
-  8034028:	68a1      	ldr	r1, [r4, #8]
 
-   pcb = udp_pcbs;
 
-  803402a:	4b0c      	ldr	r3, [pc, #48]	; (803405c <udpentry_get_value+0x44>)
 
-   u16_t port;
 
-   LWIP_UNUSED_ARG(len);
 
-   snmp_oidtoip(&od->id_inst_ptr[1], &ip);
 
-   LWIP_ASSERT("invalid port", (od->id_inst_ptr[5] >= 0) && (od->id_inst_ptr[5] <= 0xffff));
 
-   port = (u16_t)od->id_inst_ptr[5];
 
-  803402c:	8a8a      	ldrh	r2, [r1, #20]
 
-   pcb = udp_pcbs;
 
-  803402e:	681b      	ldr	r3, [r3, #0]
 
-   while ((pcb != NULL) &&
 
-          !(ip_addr_cmp(&pcb->local_ip, &ip) &&
 
-  8034030:	9801      	ldr	r0, [sp, #4]
 
-   snmp_oidtoip(&od->id_inst_ptr[1], &ip);
 
-   LWIP_ASSERT("invalid port", (od->id_inst_ptr[5] >= 0) && (od->id_inst_ptr[5] <= 0xffff));
 
-   port = (u16_t)od->id_inst_ptr[5];
 
-   pcb = udp_pcbs;
 
-   while ((pcb != NULL) &&
 
-  8034032:	e000      	b.n	8034036 <udpentry_get_value+0x1e>
 
-          !(ip_addr_cmp(&pcb->local_ip, &ip) &&
 
-            (pcb->local_port == port)))
 
-   {
 
-     pcb = pcb->next;
 
-  8034034:	68db      	ldr	r3, [r3, #12]
 
-   snmp_oidtoip(&od->id_inst_ptr[1], &ip);
 
-   LWIP_ASSERT("invalid port", (od->id_inst_ptr[5] >= 0) && (od->id_inst_ptr[5] <= 0xffff));
 
-   port = (u16_t)od->id_inst_ptr[5];
 
-   pcb = udp_pcbs;
 
-   while ((pcb != NULL) &&
 
-  8034036:	b17b      	cbz	r3, 8034058 <udpentry_get_value+0x40>
 
-  8034038:	681c      	ldr	r4, [r3, #0]
 
-  803403a:	4284      	cmp	r4, r0
 
-  803403c:	d1fa      	bne.n	8034034 <udpentry_get_value+0x1c>
 
-          !(ip_addr_cmp(&pcb->local_ip, &ip) &&
 
-            (pcb->local_port == port)))
 
-  803403e:	8a5c      	ldrh	r4, [r3, #18]
 
-   LWIP_ASSERT("invalid port", (od->id_inst_ptr[5] >= 0) && (od->id_inst_ptr[5] <= 0xffff));
 
-   port = (u16_t)od->id_inst_ptr[5];
 
-   pcb = udp_pcbs;
 
-   while ((pcb != NULL) &&
 
-          !(ip_addr_cmp(&pcb->local_ip, &ip) &&
 
-  8034040:	4294      	cmp	r4, r2
 
-  8034042:	d1f7      	bne.n	8034034 <udpentry_get_value+0x1c>
 
-  8034044:	e003      	b.n	803404e <udpentry_get_value+0x36>
 
-     switch (id)
 
-     {
 
-       case 1: /* udpLocalAddress */
 
-         {
 
-           ip_addr_t *dst = (ip_addr_t*)value;
 
-           *dst = pcb->local_ip;
 
-  8034046:	6028      	str	r0, [r5, #0]
 
-         }
 
-         break;
 
-  8034048:	e006      	b.n	8034058 <udpentry_get_value+0x40>
 
-       case 2: /* udpLocalPort */
 
-         {
 
-           s32_t *sint_ptr = (s32_t*)value;
 
-           *sint_ptr = pcb->local_port;
 
-  803404a:	602a      	str	r2, [r5, #0]
 
-         }
 
-         break;
 
-  803404c:	e004      	b.n	8034058 <udpentry_get_value+0x40>
 
-   if (pcb != NULL)
 
-   {
 
-     LWIP_ASSERT("invalid id", (od->id_inst_ptr[0] >= 0) && (od->id_inst_ptr[0] <= 0xff));
 
-     id = (u8_t)od->id_inst_ptr[0];
 
-     switch (id)
 
-  803404e:	780b      	ldrb	r3, [r1, #0]
 
-  8034050:	2b01      	cmp	r3, #1
 
-  8034052:	d0f8      	beq.n	8034046 <udpentry_get_value+0x2e>
 
-  8034054:	2b02      	cmp	r3, #2
 
-  8034056:	d0f8      	beq.n	803404a <udpentry_get_value+0x32>
 
-           *sint_ptr = pcb->local_port;
 
-         }
 
-         break;
 
-     }
 
-   }
 
- }
 
-  8034058:	bd3e      	pop	{r1, r2, r3, r4, r5, pc}
 
-  803405a:	bf00      	nop
 
-  803405c:	2000f6d8 	.word	0x2000f6d8
 
- 08034060 <ip_addrentry_get_value>:
 
-   }
 
- }
 
- static void
 
- ip_addrentry_get_value(struct obj_def *od, u16_t len, void *value)
 
- {
 
-  8034060:	b573      	push	{r0, r1, r4, r5, r6, lr}
 
-  8034062:	4606      	mov	r6, r0
 
-   u16_t ifidx;
 
-   ip_addr_t ip;
 
-   struct netif *netif = netif_list;
 
-   LWIP_UNUSED_ARG(len);
 
-   snmp_oidtoip(&od->id_inst_ptr[1], &ip);
 
-  8034064:	6880      	ldr	r0, [r0, #8]
 
- ip_addrentry_get_value(struct obj_def *od, u16_t len, void *value)
 
- {
 
-   u8_t id;
 
-   u16_t ifidx;
 
-   ip_addr_t ip;
 
-   struct netif *netif = netif_list;
 
-  8034066:	4b18      	ldr	r3, [pc, #96]	; (80340c8 <ip_addrentry_get_value+0x68>)
 
-   LWIP_UNUSED_ARG(len);
 
-   snmp_oidtoip(&od->id_inst_ptr[1], &ip);
 
-  8034068:	a901      	add	r1, sp, #4
 
-  803406a:	3004      	adds	r0, #4
 
- ip_addrentry_get_value(struct obj_def *od, u16_t len, void *value)
 
- {
 
-   u8_t id;
 
-   u16_t ifidx;
 
-   ip_addr_t ip;
 
-   struct netif *netif = netif_list;
 
-  803406c:	681c      	ldr	r4, [r3, #0]
 
-   }
 
- }
 
- static void
 
- ip_addrentry_get_value(struct obj_def *od, u16_t len, void *value)
 
- {
 
-  803406e:	4615      	mov	r5, r2
 
-   u16_t ifidx;
 
-   ip_addr_t ip;
 
-   struct netif *netif = netif_list;
 
-   LWIP_UNUSED_ARG(len);
 
-   snmp_oidtoip(&od->id_inst_ptr[1], &ip);
 
-  8034070:	f000 ffee 	bl	8035050 <snmp_oidtoip>
 
-   ifidx = 0;
 
-   while ((netif != NULL) && !ip_addr_cmp(&ip, &netif->ip_addr))
 
-  8034074:	9901      	ldr	r1, [sp, #4]
 
-   ip_addr_t ip;
 
-   struct netif *netif = netif_list;
 
-   LWIP_UNUSED_ARG(len);
 
-   snmp_oidtoip(&od->id_inst_ptr[1], &ip);
 
-   ifidx = 0;
 
-  8034076:	2300      	movs	r3, #0
 
-   while ((netif != NULL) && !ip_addr_cmp(&ip, &netif->ip_addr))
 
-  8034078:	e002      	b.n	8034080 <ip_addrentry_get_value+0x20>
 
-   {
 
-     netif = netif->next;
 
-     ifidx++;
 
-  803407a:	3301      	adds	r3, #1
 
-   LWIP_UNUSED_ARG(len);
 
-   snmp_oidtoip(&od->id_inst_ptr[1], &ip);
 
-   ifidx = 0;
 
-   while ((netif != NULL) && !ip_addr_cmp(&ip, &netif->ip_addr))
 
-   {
 
-     netif = netif->next;
 
-  803407c:	6824      	ldr	r4, [r4, #0]
 
-     ifidx++;
 
-  803407e:	b29b      	uxth	r3, r3
 
-   struct netif *netif = netif_list;
 
-   LWIP_UNUSED_ARG(len);
 
-   snmp_oidtoip(&od->id_inst_ptr[1], &ip);
 
-   ifidx = 0;
 
-   while ((netif != NULL) && !ip_addr_cmp(&ip, &netif->ip_addr))
 
-  8034080:	b304      	cbz	r4, 80340c4 <ip_addrentry_get_value+0x64>
 
-  8034082:	6862      	ldr	r2, [r4, #4]
 
-  8034084:	4291      	cmp	r1, r2
 
-  8034086:	d1f8      	bne.n	803407a <ip_addrentry_get_value+0x1a>
 
-  8034088:	e00a      	b.n	80340a0 <ip_addrentry_get_value+0x40>
 
-     switch (id)
 
-     {
 
-       case 1: /* ipAdEntAddr */
 
-         {
 
-           ip_addr_t *dst = (ip_addr_t*)value;
 
-           *dst = netif->ip_addr;
 
-  803408a:	6863      	ldr	r3, [r4, #4]
 
-  803408c:	e006      	b.n	803409c <ip_addrentry_get_value+0x3c>
 
-         }
 
-         break;
 
-       case 2: /* ipAdEntIfIndex */
 
-         {
 
-           s32_t *sint_ptr = (s32_t*)value;
 
-           *sint_ptr = ifidx + 1;
 
-  803408e:	3301      	adds	r3, #1
 
-  8034090:	e004      	b.n	803409c <ip_addrentry_get_value+0x3c>
 
-         }
 
-         break;
 
-       case 3: /* ipAdEntNetMask */
 
-         {
 
-           ip_addr_t *dst = (ip_addr_t*)value;
 
-           *dst = netif->netmask;
 
-  8034092:	68a3      	ldr	r3, [r4, #8]
 
-  8034094:	e002      	b.n	803409c <ip_addrentry_get_value+0x3c>
 
-         {
 
-           s32_t *sint_ptr = (s32_t*)value;
 
-           /* lwIP oddity, there's no broadcast
 
-             address in the netif we can rely on */
 
-           *sint_ptr = IPADDR_BROADCAST & 1;
 
-  8034096:	2301      	movs	r3, #1
 
-  8034098:	e000      	b.n	803409c <ip_addrentry_get_value+0x3c>
 
-           *sint_ptr = (IP_HLEN + ((IP_REASS_MAX_PBUFS/2) *
 
-             (PBUF_POOL_BUFSIZE - PBUF_LINK_HLEN - IP_HLEN)));
 
- #else
 
-           /** @todo returning MTU would be a bad thing and
 
-              returning a wild guess like '576' isn't good either */
 
-           *sint_ptr = 0;
 
-  803409a:	2300      	movs	r3, #0
 
-  803409c:	602b      	str	r3, [r5, #0]
 
- #endif
 
-         }
 
-         break;
 
-  803409e:	e011      	b.n	80340c4 <ip_addrentry_get_value+0x64>
 
-   }
 
-   if (netif != NULL)
 
-   {
 
-     LWIP_ASSERT("invalid id", (od->id_inst_ptr[0] >= 0) && (od->id_inst_ptr[0] <= 0xff));
 
-     id = (u8_t)od->id_inst_ptr[0];
 
-  80340a0:	68b2      	ldr	r2, [r6, #8]
 
-     switch (id)
 
-  80340a2:	7812      	ldrb	r2, [r2, #0]
 
-  80340a4:	3a01      	subs	r2, #1
 
-  80340a6:	2a04      	cmp	r2, #4
 
-  80340a8:	d80c      	bhi.n	80340c4 <ip_addrentry_get_value+0x64>
 
-  80340aa:	a101      	add	r1, pc, #4	; (adr r1, 80340b0 <ip_addrentry_get_value+0x50>)
 
-  80340ac:	f851 f022 	ldr.w	pc, [r1, r2, lsl #2]
 
-  80340b0:	0803408b 	.word	0x0803408b
 
-  80340b4:	0803408f 	.word	0x0803408f
 
-  80340b8:	08034093 	.word	0x08034093
 
-  80340bc:	08034097 	.word	0x08034097
 
-  80340c0:	0803409b 	.word	0x0803409b
 
- #endif
 
-         }
 
-         break;
 
-     }
 
-   }
 
- }
 
-  80340c4:	bd7c      	pop	{r2, r3, r4, r5, r6, pc}
 
-  80340c6:	bf00      	nop
 
-  80340c8:	2000f6b0 	.word	0x2000f6b0
 
- 080340cc <ip_ntomentry_get_value>:
 
-   }
 
- }
 
- static void
 
- ip_ntomentry_get_value(struct obj_def *od, u16_t len, void *value)
 
- {
 
-  80340cc:	b530      	push	{r4, r5, lr}
 
-   struct netif *netif;
 
-   LWIP_UNUSED_ARG(len);
 
-   LWIP_UNUSED_ARG(value);/* if !LWIP_ARP */
 
-   snmp_ifindextonetif(od->id_inst_ptr[1], &netif);
 
-  80340ce:	6883      	ldr	r3, [r0, #8]
 
-   }
 
- }
 
- static void
 
- ip_ntomentry_get_value(struct obj_def *od, u16_t len, void *value)
 
- {
 
-  80340d0:	b085      	sub	sp, #20
 
-  80340d2:	4605      	mov	r5, r0
 
-   struct netif *netif;
 
-   LWIP_UNUSED_ARG(len);
 
-   LWIP_UNUSED_ARG(value);/* if !LWIP_ARP */
 
-   snmp_ifindextonetif(od->id_inst_ptr[1], &netif);
 
-  80340d4:	a903      	add	r1, sp, #12
 
-  80340d6:	6858      	ldr	r0, [r3, #4]
 
-   }
 
- }
 
- static void
 
- ip_ntomentry_get_value(struct obj_def *od, u16_t len, void *value)
 
- {
 
-  80340d8:	4614      	mov	r4, r2
 
-   struct netif *netif;
 
-   LWIP_UNUSED_ARG(len);
 
-   LWIP_UNUSED_ARG(value);/* if !LWIP_ARP */
 
-   snmp_ifindextonetif(od->id_inst_ptr[1], &netif);
 
-  80340da:	f000 ff9b 	bl	8035014 <snmp_ifindextonetif>
 
-   snmp_oidtoip(&od->id_inst_ptr[2], &ip);
 
-  80340de:	68a8      	ldr	r0, [r5, #8]
 
-  80340e0:	a902      	add	r1, sp, #8
 
-  80340e2:	3008      	adds	r0, #8
 
-  80340e4:	f000 ffb4 	bl	8035050 <snmp_oidtoip>
 
- #if LWIP_ARP /** @todo implement a netif_find_addr */
 
-   if (etharp_find_addr(netif, &ip, ðaddr_ret, &ipaddr_ret) > -1)
 
-  80340e8:	9803      	ldr	r0, [sp, #12]
 
-  80340ea:	a902      	add	r1, sp, #8
 
-  80340ec:	466a      	mov	r2, sp
 
-  80340ee:	ab01      	add	r3, sp, #4
 
-  80340f0:	f002 fff4 	bl	80370dc <etharp_find_addr>
 
-  80340f4:	2800      	cmp	r0, #0
 
-  80340f6:	db15      	blt.n	8034124 <ip_ntomentry_get_value+0x58>
 
-   {
 
-     LWIP_ASSERT("invalid id", (od->id_inst_ptr[0] >= 0) && (od->id_inst_ptr[0] <= 0xff));
 
-     id = (u8_t)od->id_inst_ptr[0];
 
-  80340f8:	68ab      	ldr	r3, [r5, #8]
 
-     switch (id)
 
-  80340fa:	781a      	ldrb	r2, [r3, #0]
 
-  80340fc:	3a01      	subs	r2, #1
 
-  80340fe:	2a03      	cmp	r2, #3
 
-  8034100:	d810      	bhi.n	8034124 <ip_ntomentry_get_value+0x58>
 
-  8034102:	e8df f002 	tbb	[pc, r2]
 
-  8034106:	0402      	.short	0x0402
 
-  8034108:	0d0a      	.short	0x0d0a
 
-     {
 
-       case 1: /* ipNetToMediaIfIndex */
 
-         {
 
-           s32_t *sint_ptr = (s32_t*)value;
 
-           *sint_ptr = od->id_inst_ptr[1];
 
-  803410a:	685b      	ldr	r3, [r3, #4]
 
-  803410c:	e009      	b.n	8034122 <ip_ntomentry_get_value+0x56>
 
-         break;
 
-       case 2: /* ipNetToMediaPhysAddress */
 
-         {
 
-           struct eth_addr *dst = (struct eth_addr*)value;
 
-           *dst = *ethaddr_ret;
 
-  803410e:	9b00      	ldr	r3, [sp, #0]
 
-  8034110:	681a      	ldr	r2, [r3, #0]
 
-  8034112:	6022      	str	r2, [r4, #0]
 
-  8034114:	889b      	ldrh	r3, [r3, #4]
 
-  8034116:	80a3      	strh	r3, [r4, #4]
 
-         }
 
-         break;
 
-  8034118:	e004      	b.n	8034124 <ip_ntomentry_get_value+0x58>
 
-       case 3: /* ipNetToMediaNetAddress */
 
-         {
 
-           ip_addr_t *dst = (ip_addr_t*)value;
 
-           *dst = *ipaddr_ret;
 
-  803411a:	9b01      	ldr	r3, [sp, #4]
 
-  803411c:	681b      	ldr	r3, [r3, #0]
 
-  803411e:	e000      	b.n	8034122 <ip_ntomentry_get_value+0x56>
 
-         break;
 
-       case 4: /* ipNetToMediaType */
 
-         {
 
-           s32_t *sint_ptr = (s32_t*)value;
 
-           /* dynamic (?) */
 
-           *sint_ptr = 3;
 
-  8034120:	2303      	movs	r3, #3
 
-  8034122:	6023      	str	r3, [r4, #0]
 
-         }
 
-         break;
 
-     }
 
-   }
 
- #endif /* LWIP_ARP */
 
- }
 
-  8034124:	b005      	add	sp, #20
 
-  8034126:	bd30      	pop	{r4, r5, pc}
 
- 08034128 <atentry_get_value>:
 
-   }
 
- }
 
- static void
 
- atentry_get_value(struct obj_def *od, u16_t len, void *value)
 
- {
 
-  8034128:	b530      	push	{r4, r5, lr}
 
-   struct netif *netif;
 
-   LWIP_UNUSED_ARG(len);
 
-   LWIP_UNUSED_ARG(value);/* if !LWIP_ARP */
 
-   snmp_ifindextonetif(od->id_inst_ptr[1], &netif);
 
-  803412a:	6883      	ldr	r3, [r0, #8]
 
-   }
 
- }
 
- static void
 
- atentry_get_value(struct obj_def *od, u16_t len, void *value)
 
- {
 
-  803412c:	b085      	sub	sp, #20
 
-  803412e:	4605      	mov	r5, r0
 
-   struct netif *netif;
 
-   LWIP_UNUSED_ARG(len);
 
-   LWIP_UNUSED_ARG(value);/* if !LWIP_ARP */
 
-   snmp_ifindextonetif(od->id_inst_ptr[1], &netif);
 
-  8034130:	a903      	add	r1, sp, #12
 
-  8034132:	6858      	ldr	r0, [r3, #4]
 
-   }
 
- }
 
- static void
 
- atentry_get_value(struct obj_def *od, u16_t len, void *value)
 
- {
 
-  8034134:	4614      	mov	r4, r2
 
-   struct netif *netif;
 
-   LWIP_UNUSED_ARG(len);
 
-   LWIP_UNUSED_ARG(value);/* if !LWIP_ARP */
 
-   snmp_ifindextonetif(od->id_inst_ptr[1], &netif);
 
-  8034136:	f000 ff6d 	bl	8035014 <snmp_ifindextonetif>
 
-   snmp_oidtoip(&od->id_inst_ptr[2], &ip);
 
-  803413a:	68a8      	ldr	r0, [r5, #8]
 
-  803413c:	a902      	add	r1, sp, #8
 
-  803413e:	3008      	adds	r0, #8
 
-  8034140:	f000 ff86 	bl	8035050 <snmp_oidtoip>
 
- #if LWIP_ARP /** @todo implement a netif_find_addr */
 
-   if (etharp_find_addr(netif, &ip, ðaddr_ret, &ipaddr_ret) > -1)
 
-  8034144:	9803      	ldr	r0, [sp, #12]
 
-  8034146:	a902      	add	r1, sp, #8
 
-  8034148:	466a      	mov	r2, sp
 
-  803414a:	ab01      	add	r3, sp, #4
 
-  803414c:	f002 ffc6 	bl	80370dc <etharp_find_addr>
 
-  8034150:	2800      	cmp	r0, #0
 
-  8034152:	db12      	blt.n	803417a <atentry_get_value+0x52>
 
-   {
 
-     LWIP_ASSERT("invalid id", (od->id_inst_ptr[0] >= 0) && (od->id_inst_ptr[0] <= 0xff));
 
-     id = (u8_t)od->id_inst_ptr[0];
 
-  8034154:	68aa      	ldr	r2, [r5, #8]
 
-     switch (id)
 
-  8034156:	7813      	ldrb	r3, [r2, #0]
 
-  8034158:	2b02      	cmp	r3, #2
 
-  803415a:	d005      	beq.n	8034168 <atentry_get_value+0x40>
 
-  803415c:	2b03      	cmp	r3, #3
 
-  803415e:	d009      	beq.n	8034174 <atentry_get_value+0x4c>
 
-  8034160:	2b01      	cmp	r3, #1
 
-  8034162:	d10a      	bne.n	803417a <atentry_get_value+0x52>
 
-     {
 
-       case 1: /* atIfIndex */
 
-         {
 
-           s32_t *sint_ptr = (s32_t*)value;
 
-           *sint_ptr = od->id_inst_ptr[1];
 
-  8034164:	6853      	ldr	r3, [r2, #4]
 
-  8034166:	e007      	b.n	8034178 <atentry_get_value+0x50>
 
-         break;
 
-       case 2: /* atPhysAddress */
 
-         {
 
-           struct eth_addr *dst = (struct eth_addr*)value;
 
-           *dst = *ethaddr_ret;
 
-  8034168:	9b00      	ldr	r3, [sp, #0]
 
-  803416a:	681a      	ldr	r2, [r3, #0]
 
-  803416c:	6022      	str	r2, [r4, #0]
 
-  803416e:	889b      	ldrh	r3, [r3, #4]
 
-  8034170:	80a3      	strh	r3, [r4, #4]
 
-         }
 
-         break;
 
-  8034172:	e002      	b.n	803417a <atentry_get_value+0x52>
 
-       case 3: /* atNetAddress */
 
-         {
 
-           ip_addr_t *dst = (ip_addr_t*)value;
 
-           *dst = *ipaddr_ret;
 
-  8034174:	9b01      	ldr	r3, [sp, #4]
 
-  8034176:	681b      	ldr	r3, [r3, #0]
 
-  8034178:	6023      	str	r3, [r4, #0]
 
-         }
 
-         break;
 
-     }
 
-   }
 
- #endif /* LWIP_ARP */
 
- }
 
-  803417a:	b005      	add	sp, #20
 
-  803417c:	bd30      	pop	{r4, r5, pc}
 
-  803417e:	0000      	movs	r0, r0
 
- 08034180 <system_set_test>:
 
-   u8_t id, set_ok;
 
-   LWIP_UNUSED_ARG(value);
 
-   set_ok = 0;
 
-   LWIP_ASSERT("invalid id", (od->id_inst_ptr[0] >= 0) && (od->id_inst_ptr[0] <= 0xff));
 
-   id = (u8_t)od->id_inst_ptr[0];
 
-  8034180:	6883      	ldr	r3, [r0, #8]
 
-   switch (id)
 
-  8034182:	781b      	ldrb	r3, [r3, #0]
 
-  8034184:	2b05      	cmp	r3, #5
 
-  8034186:	d007      	beq.n	8034198 <system_set_test+0x18>
 
-  8034188:	2b06      	cmp	r3, #6
 
-  803418a:	d00f      	beq.n	80341ac <system_set_test+0x2c>
 
-  803418c:	2b04      	cmp	r3, #4
 
-  803418e:	d111      	bne.n	80341b4 <system_set_test+0x34>
 
-   {
 
-     case 4: /* sysContact */
 
-       if ((syscontact_ptr != syscontact_default) &&
 
-  8034190:	4b09      	ldr	r3, [pc, #36]	; (80341b8 <system_set_test+0x38>)
 
-  8034192:	681a      	ldr	r2, [r3, #0]
 
-  8034194:	4b09      	ldr	r3, [pc, #36]	; (80341bc <system_set_test+0x3c>)
 
-  8034196:	e002      	b.n	803419e <system_set_test+0x1e>
 
-       {
 
-         set_ok = 1;
 
-       }
 
-       break;
 
-     case 5: /* sysName */
 
-       if ((sysname_ptr != sysname_default) &&
 
-  8034198:	4b09      	ldr	r3, [pc, #36]	; (80341c0 <system_set_test+0x40>)
 
-  803419a:	681a      	ldr	r2, [r3, #0]
 
-  803419c:	4b09      	ldr	r3, [pc, #36]	; (80341c4 <system_set_test+0x44>)
 
-  803419e:	429a      	cmp	r2, r3
 
-  80341a0:	d008      	beq.n	80341b4 <system_set_test+0x34>
 
- system_set_test(struct obj_def *od, u16_t len, void *value)
 
- {
 
-   u8_t id, set_ok;
 
-   LWIP_UNUSED_ARG(value);
 
-   set_ok = 0;
 
-  80341a2:	29ff      	cmp	r1, #255	; 0xff
 
-  80341a4:	bf8c      	ite	hi
 
-  80341a6:	2000      	movhi	r0, #0
 
-  80341a8:	2001      	movls	r0, #1
 
-  80341aa:	4770      	bx	lr
 
-       {
 
-         set_ok = 1;
 
-       }
 
-       break;
 
-     case 6: /* sysLocation */
 
-       if ((syslocation_ptr != syslocation_default) &&
 
-  80341ac:	4b06      	ldr	r3, [pc, #24]	; (80341c8 <system_set_test+0x48>)
 
-  80341ae:	681a      	ldr	r2, [r3, #0]
 
-  80341b0:	4b06      	ldr	r3, [pc, #24]	; (80341cc <system_set_test+0x4c>)
 
-  80341b2:	e7f4      	b.n	803419e <system_set_test+0x1e>
 
- system_set_test(struct obj_def *od, u16_t len, void *value)
 
- {
 
-   u8_t id, set_ok;
 
-   LWIP_UNUSED_ARG(value);
 
-   set_ok = 0;
 
-  80341b4:	2000      	movs	r0, #0
 
-         set_ok = 1;
 
-       }
 
-       break;
 
-   };
 
-   return set_ok;
 
- }
 
-  80341b6:	4770      	bx	lr
 
-  80341b8:	20000914 	.word	0x20000914
 
-  80341bc:	08045408 	.word	0x08045408
 
-  80341c0:	200008a0 	.word	0x200008a0
 
-  80341c4:	08045120 	.word	0x08045120
 
-  80341c8:	20000a2c 	.word	0x20000a2c
 
-  80341cc:	08045150 	.word	0x08045150
 
- 080341d0 <atentry_get_object_def>:
 
- {
 
-   /* return to object name, adding index depth (5) */
 
-   ident_len += 5;
 
-   ident -= 5;
 
-   if (ident_len == 6)
 
-  80341d0:	2801      	cmp	r0, #1
 
-  80341d2:	d120      	bne.n	8034216 <atentry_get_object_def+0x46>
 
-   {
 
-     od->id_inst_len = ident_len;
 
-  80341d4:	2006      	movs	r0, #6
 
- static void
 
- atentry_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od)
 
- {
 
-   /* return to object name, adding index depth (5) */
 
-   ident_len += 5;
 
-   ident -= 5;
 
-  80341d6:	f1a1 0314 	sub.w	r3, r1, #20
 
-   if (ident_len == 6)
 
-   {
 
-     od->id_inst_len = ident_len;
 
-  80341da:	7190      	strb	r0, [r2, #6]
 
-     od->id_inst_ptr = ident;
 
-  80341dc:	6093      	str	r3, [r2, #8]
 
-     switch (ident[0])
 
-  80341de:	f851 3c14 	ldr.w	r3, [r1, #-20]
 
-  80341e2:	2b02      	cmp	r3, #2
 
-  80341e4:	d008      	beq.n	80341f8 <atentry_get_object_def+0x28>
 
-  80341e6:	2b03      	cmp	r3, #3
 
-  80341e8:	d00d      	beq.n	8034206 <atentry_get_object_def+0x36>
 
-  80341ea:	2b01      	cmp	r3, #1
 
-  80341ec:	d113      	bne.n	8034216 <atentry_get_object_def+0x46>
 
-     {
 
-       case 1: /* atIfIndex */
 
-         od->instance = MIB_OBJECT_TAB;
 
-  80341ee:	2302      	movs	r3, #2
 
-         od->access = MIB_OBJECT_READ_WRITE;
 
-  80341f0:	2103      	movs	r1, #3
 
-     od->id_inst_ptr = ident;
 
-     switch (ident[0])
 
-     {
 
-       case 1: /* atIfIndex */
 
-         od->instance = MIB_OBJECT_TAB;
 
-  80341f2:	7013      	strb	r3, [r2, #0]
 
-         od->access = MIB_OBJECT_READ_WRITE;
 
-  80341f4:	7051      	strb	r1, [r2, #1]
 
-  80341f6:	e00a      	b.n	803420e <atentry_get_object_def+0x3e>
 
-         od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG);
 
-         od->v_len = sizeof(s32_t);
 
-         break;
 
-       case 2: /* atPhysAddress */
 
-         od->instance = MIB_OBJECT_TAB;
 
-  80341f8:	7013      	strb	r3, [r2, #0]
 
-         od->access = MIB_OBJECT_READ_WRITE;
 
-  80341fa:	2303      	movs	r3, #3
 
-  80341fc:	7053      	strb	r3, [r2, #1]
 
-         od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OC_STR);
 
-  80341fe:	2304      	movs	r3, #4
 
-  8034200:	7093      	strb	r3, [r2, #2]
 
-         od->v_len = 6; /** @todo try to use netif::hwaddr_len */
 
-  8034202:	8090      	strh	r0, [r2, #4]
 
-         break;
 
-  8034204:	4770      	bx	lr
 
-       case 3: /* atNetAddress */
 
-         od->instance = MIB_OBJECT_TAB;
 
-  8034206:	2102      	movs	r1, #2
 
-         od->access = MIB_OBJECT_READ_WRITE;
 
-  8034208:	7053      	strb	r3, [r2, #1]
 
-         od->access = MIB_OBJECT_READ_WRITE;
 
-         od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OC_STR);
 
-         od->v_len = 6; /** @todo try to use netif::hwaddr_len */
 
-         break;
 
-       case 3: /* atNetAddress */
 
-         od->instance = MIB_OBJECT_TAB;
 
-  803420a:	7011      	strb	r1, [r2, #0]
 
-         od->access = MIB_OBJECT_READ_WRITE;
 
-         od->asn_type = (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_IPADDR);
 
-  803420c:	2340      	movs	r3, #64	; 0x40
 
-  803420e:	7093      	strb	r3, [r2, #2]
 
-         od->v_len = 4;
 
-  8034210:	2304      	movs	r3, #4
 
-  8034212:	8093      	strh	r3, [r2, #4]
 
-         break;
 
-  8034214:	4770      	bx	lr
 
-     }
 
-   }
 
-   else
 
-   {
 
-     LWIP_DEBUGF(SNMP_MIB_DEBUG,("atentry_get_object_def: no scalar\n"));
 
-     od->instance = MIB_OBJECT_NONE;
 
-  8034216:	2300      	movs	r3, #0
 
-  8034218:	7013      	strb	r3, [r2, #0]
 
-  803421a:	4770      	bx	lr
 
- 0803421c <ip_get_object_def>:
 
-   u8_t id;
 
-   /* return to object name, adding index depth (1) */
 
-   ident_len += 1;
 
-   ident -= 1;
 
-   if (ident_len == 2)
 
-  803421c:	2801      	cmp	r0, #1
 
- #endif /* LWIP_ARP */
 
- }
 
- static void
 
- ip_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od)
 
- {
 
-  803421e:	b510      	push	{r4, lr}
 
-   u8_t id;
 
-   /* return to object name, adding index depth (1) */
 
-   ident_len += 1;
 
-   ident -= 1;
 
-   if (ident_len == 2)
 
-  8034220:	d121      	bne.n	8034266 <ip_get_object_def+0x4a>
 
-   {
 
-     od->id_inst_len = ident_len;
 
-  8034222:	2402      	movs	r4, #2
 
- {
 
-   u8_t id;
 
-   /* return to object name, adding index depth (1) */
 
-   ident_len += 1;
 
-   ident -= 1;
 
-  8034224:	1f0b      	subs	r3, r1, #4
 
-   if (ident_len == 2)
 
-   {
 
-     od->id_inst_len = ident_len;
 
-  8034226:	7194      	strb	r4, [r2, #6]
 
-     od->id_inst_ptr = ident;
 
-  8034228:	6093      	str	r3, [r2, #8]
 
-     LWIP_ASSERT("invalid id", (ident[0] >= 0) && (ident[0] <= 0xff));
 
-     id = (u8_t)ident[0];
 
-     LWIP_DEBUGF(SNMP_MIB_DEBUG,("get_object_def ip.%"U16_F".0\n",(u16_t)id));
 
-     switch (id)
 
-  803422a:	f811 3c04 	ldrb.w	r3, [r1, #-4]
 
-  803422e:	2b17      	cmp	r3, #23
 
-  8034230:	d819      	bhi.n	8034266 <ip_get_object_def+0x4a>
 
-  8034232:	490e      	ldr	r1, [pc, #56]	; (803426c <ip_get_object_def+0x50>)
 
-  8034234:	4099      	lsls	r1, r3
 
-  8034236:	d40b      	bmi.n	8034250 <ip_get_object_def+0x34>
 
-  8034238:	f44f 2180 	mov.w	r1, #262144	; 0x40000
 
-  803423c:	4099      	lsls	r1, r3
 
-  803423e:	d40c      	bmi.n	803425a <ip_get_object_def+0x3e>
 
-  8034240:	f04f 41c0 	mov.w	r1, #1610612736	; 0x60000000
 
-  8034244:	4099      	lsls	r1, r3
 
-  8034246:	d50e      	bpl.n	8034266 <ip_get_object_def+0x4a>
 
-     {
 
-       case 1: /* ipForwarding */
 
-       case 2: /* ipDefaultTTL */
 
-         od->instance = MIB_OBJECT_SCALAR;
 
-         od->access = MIB_OBJECT_READ_WRITE;
 
-  8034248:	2303      	movs	r3, #3
 
-     LWIP_DEBUGF(SNMP_MIB_DEBUG,("get_object_def ip.%"U16_F".0\n",(u16_t)id));
 
-     switch (id)
 
-     {
 
-       case 1: /* ipForwarding */
 
-       case 2: /* ipDefaultTTL */
 
-         od->instance = MIB_OBJECT_SCALAR;
 
-  803424a:	7010      	strb	r0, [r2, #0]
 
-         od->access = MIB_OBJECT_READ_WRITE;
 
-  803424c:	7053      	strb	r3, [r2, #1]
 
-  803424e:	e006      	b.n	803425e <ip_get_object_def+0x42>
 
-       case 18: /* ipFragFails */
 
-       case 19: /* ipFragCreates */
 
-       case 23: /* ipRoutingDiscards */
 
-         od->instance = MIB_OBJECT_SCALAR;
 
-         od->access = MIB_OBJECT_READ_ONLY;
 
-         od->asn_type = (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_COUNTER);
 
-  8034250:	2341      	movs	r3, #65	; 0x41
 
-       case 16: /* ipReasmFails */
 
-       case 17: /* ipFragOKs */
 
-       case 18: /* ipFragFails */
 
-       case 19: /* ipFragCreates */
 
-       case 23: /* ipRoutingDiscards */
 
-         od->instance = MIB_OBJECT_SCALAR;
 
-  8034252:	7010      	strb	r0, [r2, #0]
 
-         od->access = MIB_OBJECT_READ_ONLY;
 
-  8034254:	7050      	strb	r0, [r2, #1]
 
-         od->asn_type = (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_COUNTER);
 
-  8034256:	7093      	strb	r3, [r2, #2]
 
-  8034258:	e002      	b.n	8034260 <ip_get_object_def+0x44>
 
-         od->v_len = sizeof(u32_t);
 
-         break;
 
-       case 13: /* ipReasmTimeout */
 
-         od->instance = MIB_OBJECT_SCALAR;
 
-  803425a:	7010      	strb	r0, [r2, #0]
 
-         od->access = MIB_OBJECT_READ_ONLY;
 
-  803425c:	7050      	strb	r0, [r2, #1]
 
-         od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG);
 
-  803425e:	7094      	strb	r4, [r2, #2]
 
-         od->v_len = sizeof(s32_t);
 
-  8034260:	2304      	movs	r3, #4
 
-  8034262:	8093      	strh	r3, [r2, #4]
 
-         break;
 
-  8034264:	bd10      	pop	{r4, pc}
 
-     };
 
-   }
 
-   else
 
-   {
 
-     LWIP_DEBUGF(SNMP_MIB_DEBUG,("ip_get_object_def: no scalar\n"));
 
-     od->instance = MIB_OBJECT_NONE;
 
-  8034266:	2300      	movs	r3, #0
 
-  8034268:	7013      	strb	r3, [r2, #0]
 
-  803426a:	bd10      	pop	{r4, pc}
 
-  803426c:	1ffbf100 	.word	0x1ffbf100
 
- 08034270 <ip_addrentry_get_object_def>:
 
- {
 
-   /* return to object name, adding index depth (4) */
 
-   ident_len += 4;
 
-   ident -= 4;
 
-   if (ident_len == 5)
 
-  8034270:	2801      	cmp	r0, #1
 
-  8034272:	d11c      	bne.n	80342ae <ip_addrentry_get_object_def+0x3e>
 
-   {
 
-     u8_t id;
 
-     od->id_inst_len = ident_len;
 
-  8034274:	2305      	movs	r3, #5
 
-  8034276:	7193      	strb	r3, [r2, #6]
 
- static void
 
- ip_addrentry_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od)
 
- {
 
-   /* return to object name, adding index depth (4) */
 
-   ident_len += 4;
 
-   ident -= 4;
 
-  8034278:	f1a1 0310 	sub.w	r3, r1, #16
 
-   if (ident_len == 5)
 
-   {
 
-     u8_t id;
 
-     od->id_inst_len = ident_len;
 
-     od->id_inst_ptr = ident;
 
-  803427c:	6093      	str	r3, [r2, #8]
 
-     LWIP_ASSERT("invalid id", (ident[0] >= 0) && (ident[0] <= 0xff));
 
-     id = (u8_t)ident[0];
 
-     switch (id)
 
-  803427e:	f811 3c10 	ldrb.w	r3, [r1, #-16]
 
-  8034282:	2b05      	cmp	r3, #5
 
-  8034284:	d813      	bhi.n	80342ae <ip_addrentry_get_object_def+0x3e>
 
-  8034286:	f04f 5130 	mov.w	r1, #738197504	; 0x2c000000
 
-  803428a:	4099      	lsls	r1, r3
 
-  803428c:	d408      	bmi.n	80342a0 <ip_addrentry_get_object_def+0x30>
 
-  803428e:	f04f 41a0 	mov.w	r1, #1342177280	; 0x50000000
 
-  8034292:	4099      	lsls	r1, r3
 
-  8034294:	d50b      	bpl.n	80342ae <ip_addrentry_get_object_def+0x3e>
 
-     {
 
-       case 1: /* ipAdEntAddr */
 
-       case 3: /* ipAdEntNetMask */
 
-         od->instance = MIB_OBJECT_TAB;
 
-  8034296:	2302      	movs	r3, #2
 
-  8034298:	7013      	strb	r3, [r2, #0]
 
-         od->access = MIB_OBJECT_READ_ONLY;
 
-  803429a:	7050      	strb	r0, [r2, #1]
 
-         od->asn_type = (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_IPADDR);
 
-  803429c:	2340      	movs	r3, #64	; 0x40
 
-  803429e:	e002      	b.n	80342a6 <ip_addrentry_get_object_def+0x36>
 
-         od->v_len = 4;
 
-         break;
 
-       case 2: /* ipAdEntIfIndex */
 
-       case 4: /* ipAdEntBcastAddr */
 
-       case 5: /* ipAdEntReasmMaxSize */
 
-         od->instance = MIB_OBJECT_TAB;
 
-  80342a0:	2302      	movs	r3, #2
 
-  80342a2:	7013      	strb	r3, [r2, #0]
 
-         od->access = MIB_OBJECT_READ_ONLY;
 
-  80342a4:	7050      	strb	r0, [r2, #1]
 
-         od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG);
 
-  80342a6:	7093      	strb	r3, [r2, #2]
 
-         od->v_len = sizeof(s32_t);
 
-  80342a8:	2304      	movs	r3, #4
 
-  80342aa:	8093      	strh	r3, [r2, #4]
 
-         break;
 
-  80342ac:	4770      	bx	lr
 
-     }
 
-   }
 
-   else
 
-   {
 
-     LWIP_DEBUGF(SNMP_MIB_DEBUG,("ip_addrentry_get_object_def: no scalar\n"));
 
-     od->instance = MIB_OBJECT_NONE;
 
-  80342ae:	2300      	movs	r3, #0
 
-  80342b0:	7013      	strb	r3, [r2, #0]
 
-  80342b2:	4770      	bx	lr
 
- 080342b4 <ip_ntomentry_get_object_def>:
 
- {
 
-   /* return to object name, adding index depth (5) */
 
-   ident_len += 5;
 
-   ident -= 5;
 
-   if (ident_len == 6)
 
-  80342b4:	2801      	cmp	r0, #1
 
-  80342b6:	d123      	bne.n	8034300 <ip_ntomentry_get_object_def+0x4c>
 
-   {
 
-     u8_t id;
 
-     od->id_inst_len = ident_len;
 
-  80342b8:	2306      	movs	r3, #6
 
-  80342ba:	7193      	strb	r3, [r2, #6]
 
- static void
 
- ip_ntomentry_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od)
 
- {
 
-   /* return to object name, adding index depth (5) */
 
-   ident_len += 5;
 
-   ident -= 5;
 
-  80342bc:	f1a1 0314 	sub.w	r3, r1, #20
 
-   if (ident_len == 6)
 
-   {
 
-     u8_t id;
 
-     od->id_inst_len = ident_len;
 
-     od->id_inst_ptr = ident;
 
-  80342c0:	6093      	str	r3, [r2, #8]
 
-     LWIP_ASSERT("invalid id", (ident[0] >= 0) && (ident[0] <= 0xff));
 
-     id = (u8_t)ident[0];
 
-     switch (id)
 
-  80342c2:	f811 3c14 	ldrb.w	r3, [r1, #-20]
 
-  80342c6:	3b01      	subs	r3, #1
 
-  80342c8:	2b03      	cmp	r3, #3
 
-  80342ca:	d819      	bhi.n	8034300 <ip_ntomentry_get_object_def+0x4c>
 
-  80342cc:	e8df f003 	tbb	[pc, r3]
 
-  80342d0:	020f0702 	.word	0x020f0702
 
-     {
 
-       case 1: /* ipNetToMediaIfIndex */
 
-       case 4: /* ipNetToMediaType */
 
-         od->instance = MIB_OBJECT_TAB;
 
-  80342d4:	2302      	movs	r3, #2
 
-         od->access = MIB_OBJECT_READ_WRITE;
 
-  80342d6:	2103      	movs	r1, #3
 
-     id = (u8_t)ident[0];
 
-     switch (id)
 
-     {
 
-       case 1: /* ipNetToMediaIfIndex */
 
-       case 4: /* ipNetToMediaType */
 
-         od->instance = MIB_OBJECT_TAB;
 
-  80342d8:	7013      	strb	r3, [r2, #0]
 
-         od->access = MIB_OBJECT_READ_WRITE;
 
-  80342da:	7051      	strb	r1, [r2, #1]
 
-  80342dc:	e00c      	b.n	80342f8 <ip_ntomentry_get_object_def+0x44>
 
-         od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG);
 
-         od->v_len = sizeof(s32_t);
 
-         break;
 
-       case 2: /* ipNetToMediaPhysAddress */
 
-         od->instance = MIB_OBJECT_TAB;
 
-  80342de:	2302      	movs	r3, #2
 
-  80342e0:	7013      	strb	r3, [r2, #0]
 
-         od->access = MIB_OBJECT_READ_WRITE;
 
-  80342e2:	2303      	movs	r3, #3
 
-  80342e4:	7053      	strb	r3, [r2, #1]
 
-         od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OC_STR);
 
-  80342e6:	2304      	movs	r3, #4
 
-  80342e8:	7093      	strb	r3, [r2, #2]
 
-         od->v_len = 6; /** @todo try to use netif::hwaddr_len */
 
-  80342ea:	2306      	movs	r3, #6
 
-  80342ec:	e006      	b.n	80342fc <ip_ntomentry_get_object_def+0x48>
 
-         break;
 
-       case 3: /* ipNetToMediaNetAddress */
 
-         od->instance = MIB_OBJECT_TAB;
 
-  80342ee:	2302      	movs	r3, #2
 
-  80342f0:	7013      	strb	r3, [r2, #0]
 
-         od->access = MIB_OBJECT_READ_WRITE;
 
-  80342f2:	2303      	movs	r3, #3
 
-  80342f4:	7053      	strb	r3, [r2, #1]
 
-         od->asn_type = (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_IPADDR);
 
-  80342f6:	2340      	movs	r3, #64	; 0x40
 
-  80342f8:	7093      	strb	r3, [r2, #2]
 
-         od->v_len = 4;
 
-  80342fa:	2304      	movs	r3, #4
 
-  80342fc:	8093      	strh	r3, [r2, #4]
 
-         break;
 
-  80342fe:	4770      	bx	lr
 
-     }
 
-   }
 
-   else
 
-   {
 
-     LWIP_DEBUGF(SNMP_MIB_DEBUG,("ip_ntomentry_get_object_def: no scalar\n"));
 
-     od->instance = MIB_OBJECT_NONE;
 
-  8034300:	2300      	movs	r3, #0
 
-  8034302:	7013      	strb	r3, [r2, #0]
 
-  8034304:	4770      	bx	lr
 
-  8034306:	0000      	movs	r0, r0
 
- 08034308 <tcp_get_object_def>:
 
-   u8_t id;
 
-   /* return to object name, adding index depth (1) */
 
-   ident_len += 1;
 
-   ident -= 1;
 
-   if (ident_len == 2)
 
-  8034308:	2801      	cmp	r0, #1
 
- #if LWIP_TCP
 
- /** @todo tcp grp */
 
- static void
 
- tcp_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od)
 
- {
 
-  803430a:	b510      	push	{r4, lr}
 
-   u8_t id;
 
-   /* return to object name, adding index depth (1) */
 
-   ident_len += 1;
 
-   ident -= 1;
 
-   if (ident_len == 2)
 
-  803430c:	d121      	bne.n	8034352 <tcp_get_object_def+0x4a>
 
-   {
 
-     od->id_inst_len = ident_len;
 
-  803430e:	2402      	movs	r4, #2
 
- {
 
-   u8_t id;
 
-   /* return to object name, adding index depth (1) */
 
-   ident_len += 1;
 
-   ident -= 1;
 
-  8034310:	1f0b      	subs	r3, r1, #4
 
-   if (ident_len == 2)
 
-   {
 
-     od->id_inst_len = ident_len;
 
-  8034312:	7194      	strb	r4, [r2, #6]
 
-     od->id_inst_ptr = ident;
 
-  8034314:	6093      	str	r3, [r2, #8]
 
-     LWIP_ASSERT("invalid id", (ident[0] >= 0) && (ident[0] <= 0xff));
 
-     id = (u8_t)ident[0];
 
-     LWIP_DEBUGF(SNMP_MIB_DEBUG,("get_object_def tcp.%"U16_F".0\n",(u16_t)id));
 
-     switch (id)
 
-  8034316:	f811 3c04 	ldrb.w	r3, [r1, #-4]
 
-  803431a:	2b0f      	cmp	r3, #15
 
-  803431c:	d819      	bhi.n	8034352 <tcp_get_object_def+0x4a>
 
-  803431e:	490e      	ldr	r1, [pc, #56]	; (8034358 <tcp_get_object_def+0x50>)
 
-  8034320:	4099      	lsls	r1, r3
 
-  8034322:	d40b      	bmi.n	803433c <tcp_get_object_def+0x34>
 
-  8034324:	f44f 0180 	mov.w	r1, #4194304	; 0x400000
 
-  8034328:	4099      	lsls	r1, r3
 
-  803432a:	d40b      	bmi.n	8034344 <tcp_get_object_def+0x3c>
 
-  803432c:	f04f 41f0 	mov.w	r1, #2013265920	; 0x78000000
 
-  8034330:	4099      	lsls	r1, r3
 
-  8034332:	d50e      	bpl.n	8034352 <tcp_get_object_def+0x4a>
 
-     {
 
-       case 1: /* tcpRtoAlgorithm */
 
-       case 2: /* tcpRtoMin */
 
-       case 3: /* tcpRtoMax */
 
-       case 4: /* tcpMaxConn */
 
-         od->instance = MIB_OBJECT_SCALAR;
 
-  8034334:	7010      	strb	r0, [r2, #0]
 
-         od->access = MIB_OBJECT_READ_ONLY;
 
-  8034336:	7050      	strb	r0, [r2, #1]
 
-         od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG);
 
-  8034338:	7094      	strb	r4, [r2, #2]
 
-  803433a:	e007      	b.n	803434c <tcp_get_object_def+0x44>
 
-       case 10: /* tcpInSegs */
 
-       case 11: /* tcpOutSegs */
 
-       case 12: /* tcpRetransSegs */
 
-       case 14: /* tcpInErrs */
 
-       case 15: /* tcpOutRsts */
 
-         od->instance = MIB_OBJECT_SCALAR;
 
-  803433c:	7010      	strb	r0, [r2, #0]
 
-         od->access = MIB_OBJECT_READ_ONLY;
 
-  803433e:	7050      	strb	r0, [r2, #1]
 
-         od->asn_type = (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_COUNTER);
 
-  8034340:	2341      	movs	r3, #65	; 0x41
 
-  8034342:	e002      	b.n	803434a <tcp_get_object_def+0x42>
 
-         od->v_len = sizeof(u32_t);
 
-         break;
 
-       case 9: /* tcpCurrEstab */
 
-         od->instance = MIB_OBJECT_TAB;
 
-  8034344:	7014      	strb	r4, [r2, #0]
 
-         od->access = MIB_OBJECT_READ_ONLY;
 
-  8034346:	7050      	strb	r0, [r2, #1]
 
-         od->asn_type = (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_GAUGE);
 
-  8034348:	2342      	movs	r3, #66	; 0x42
 
-  803434a:	7093      	strb	r3, [r2, #2]
 
-         od->v_len = sizeof(u32_t);
 
-  803434c:	2304      	movs	r3, #4
 
-  803434e:	8093      	strh	r3, [r2, #4]
 
-         break;
 
-  8034350:	bd10      	pop	{r4, pc}
 
-     };
 
-   }
 
-   else
 
-   {
 
-     LWIP_DEBUGF(SNMP_MIB_DEBUG,("tcp_get_object_def: no scalar\n"));
 
-     od->instance = MIB_OBJECT_NONE;
 
-  8034352:	2300      	movs	r3, #0
 
-  8034354:	7013      	strb	r3, [r2, #0]
 
-  8034356:	bd10      	pop	{r4, pc}
 
-  8034358:	07bb0000 	.word	0x07bb0000
 
- 0803435c <udpentry_get_object_def>:
 
- {
 
-   /* return to object name, adding index depth (5) */
 
-   ident_len += 5;
 
-   ident -= 5;
 
-   if (ident_len == 6)
 
-  803435c:	2801      	cmp	r0, #1
 
-  803435e:	d116      	bne.n	803438e <udpentry_get_object_def+0x32>
 
-   {
 
-     od->id_inst_len = ident_len;
 
-  8034360:	2306      	movs	r3, #6
 
-  8034362:	7193      	strb	r3, [r2, #6]
 
- static void
 
- udpentry_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od)
 
- {
 
-   /* return to object name, adding index depth (5) */
 
-   ident_len += 5;
 
-   ident -= 5;
 
-  8034364:	f1a1 0314 	sub.w	r3, r1, #20
 
-   if (ident_len == 6)
 
-   {
 
-     od->id_inst_len = ident_len;
 
-     od->id_inst_ptr = ident;
 
-  8034368:	6093      	str	r3, [r2, #8]
 
-     switch (ident[0])
 
-  803436a:	f851 3c14 	ldr.w	r3, [r1, #-20]
 
-  803436e:	2b01      	cmp	r3, #1
 
-  8034370:	d002      	beq.n	8034378 <udpentry_get_object_def+0x1c>
 
-  8034372:	2b02      	cmp	r3, #2
 
-  8034374:	d10b      	bne.n	803438e <udpentry_get_object_def+0x32>
 
-  8034376:	e004      	b.n	8034382 <udpentry_get_object_def+0x26>
 
-     {
 
-       case 1: /* udpLocalAddress */
 
-         od->instance = MIB_OBJECT_TAB;
 
-  8034378:	2102      	movs	r1, #2
 
-         od->access = MIB_OBJECT_READ_ONLY;
 
-  803437a:	7053      	strb	r3, [r2, #1]
 
-     od->id_inst_ptr = ident;
 
-     switch (ident[0])
 
-     {
 
-       case 1: /* udpLocalAddress */
 
-         od->instance = MIB_OBJECT_TAB;
 
-  803437c:	7011      	strb	r1, [r2, #0]
 
-         od->access = MIB_OBJECT_READ_ONLY;
 
-         od->asn_type = (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_IPADDR);
 
-  803437e:	2340      	movs	r3, #64	; 0x40
 
-  8034380:	e001      	b.n	8034386 <udpentry_get_object_def+0x2a>
 
-         od->v_len = 4;
 
-         break;
 
-       case 2: /* udpLocalPort */
 
-         od->instance = MIB_OBJECT_TAB;
 
-  8034382:	7013      	strb	r3, [r2, #0]
 
-         od->access = MIB_OBJECT_READ_ONLY;
 
-  8034384:	7050      	strb	r0, [r2, #1]
 
-         od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG);
 
-  8034386:	7093      	strb	r3, [r2, #2]
 
-         od->v_len = sizeof(s32_t);
 
-  8034388:	2304      	movs	r3, #4
 
-  803438a:	8093      	strh	r3, [r2, #4]
 
-         break;
 
-  803438c:	4770      	bx	lr
 
-     }
 
-   }
 
-   else
 
-   {
 
-     LWIP_DEBUGF(SNMP_MIB_DEBUG,("udpentry_get_object_def: no scalar\n"));
 
-     od->instance = MIB_OBJECT_NONE;
 
-  803438e:	2300      	movs	r3, #0
 
-  8034390:	7013      	strb	r3, [r2, #0]
 
-  8034392:	4770      	bx	lr
 
- 08034394 <snmp_get_object_def>:
 
- snmp_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od)
 
- {
 
-   /* return to object name, adding index depth (1) */
 
-   ident_len += 1;
 
-   ident -= 1;
 
-   if (ident_len == 2)
 
-  8034394:	2801      	cmp	r0, #1
 
-   }
 
- }
 
- static void
 
- snmp_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od)
 
- {
 
-  8034396:	b510      	push	{r4, lr}
 
-   /* return to object name, adding index depth (1) */
 
-   ident_len += 1;
 
-   ident -= 1;
 
-   if (ident_len == 2)
 
-  8034398:	d119      	bne.n	80343ce <snmp_get_object_def+0x3a>
 
-   {
 
-     u8_t id;
 
-     od->id_inst_len = ident_len;
 
-  803439a:	2302      	movs	r3, #2
 
-  803439c:	7193      	strb	r3, [r2, #6]
 
- static void
 
- snmp_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od)
 
- {
 
-   /* return to object name, adding index depth (1) */
 
-   ident_len += 1;
 
-   ident -= 1;
 
-  803439e:	1f0c      	subs	r4, r1, #4
 
-     od->id_inst_len = ident_len;
 
-     od->id_inst_ptr = ident;
 
-     LWIP_ASSERT("invalid id", (ident[0] >= 0) && (ident[0] <= 0xff));
 
-     id = (u8_t)ident[0];
 
-     switch (id)
 
-  80343a0:	f811 1c04 	ldrb.w	r1, [r1, #-4]
 
-   if (ident_len == 2)
 
-   {
 
-     u8_t id;
 
-     od->id_inst_len = ident_len;
 
-     od->id_inst_ptr = ident;
 
-  80343a4:	6094      	str	r4, [r2, #8]
 
-     LWIP_ASSERT("invalid id", (ident[0] >= 0) && (ident[0] <= 0xff));
 
-     id = (u8_t)ident[0];
 
-     switch (id)
 
-  80343a6:	291e      	cmp	r1, #30
 
-  80343a8:	d811      	bhi.n	80343ce <snmp_get_object_def+0x3a>
 
-  80343aa:	4c0a      	ldr	r4, [pc, #40]	; (80343d4 <snmp_get_object_def+0x40>)
 
-  80343ac:	408c      	lsls	r4, r1
 
-  80343ae:	d403      	bmi.n	80343b8 <snmp_get_object_def+0x24>
 
-  80343b0:	fa13 f101 	lsls.w	r1, r3, r1
 
-  80343b4:	d404      	bmi.n	80343c0 <snmp_get_object_def+0x2c>
 
-  80343b6:	e00a      	b.n	80343ce <snmp_get_object_def+0x3a>
 
-       case 25: /* snmpOutGetRequests */
 
-       case 26: /* snmpOutGetNexts */
 
-       case 27: /* snmpOutSetRequests */
 
-       case 28: /* snmpOutGetResponses */
 
-       case 29: /* snmpOutTraps */
 
-         od->instance = MIB_OBJECT_SCALAR;
 
-  80343b8:	7010      	strb	r0, [r2, #0]
 
-         od->access = MIB_OBJECT_READ_ONLY;
 
-  80343ba:	7050      	strb	r0, [r2, #1]
 
-         od->asn_type = (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_COUNTER);
 
-  80343bc:	2341      	movs	r3, #65	; 0x41
 
-  80343be:	e002      	b.n	80343c6 <snmp_get_object_def+0x32>
 
-         od->v_len = sizeof(u32_t);
 
-         break;
 
-       case 30: /* snmpEnableAuthenTraps */
 
-         od->instance = MIB_OBJECT_SCALAR;
 
-         od->access = MIB_OBJECT_READ_WRITE;
 
-  80343c0:	2103      	movs	r1, #3
 
-         od->access = MIB_OBJECT_READ_ONLY;
 
-         od->asn_type = (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_COUNTER);
 
-         od->v_len = sizeof(u32_t);
 
-         break;
 
-       case 30: /* snmpEnableAuthenTraps */
 
-         od->instance = MIB_OBJECT_SCALAR;
 
-  80343c2:	7010      	strb	r0, [r2, #0]
 
-         od->access = MIB_OBJECT_READ_WRITE;
 
-  80343c4:	7051      	strb	r1, [r2, #1]
 
-         od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG);
 
-  80343c6:	7093      	strb	r3, [r2, #2]
 
-         od->v_len = sizeof(s32_t);
 
-  80343c8:	2304      	movs	r3, #4
 
-  80343ca:	8093      	strh	r3, [r2, #4]
 
-         break;
 
-  80343cc:	bd10      	pop	{r4, pc}
 
-     };
 
-   }
 
-   else
 
-   {
 
-     LWIP_DEBUGF(SNMP_MIB_DEBUG,("snmp_get_object_def: no scalar\n"));
 
-     od->instance = MIB_OBJECT_NONE;
 
-  80343ce:	2300      	movs	r3, #0
 
-  80343d0:	7013      	strb	r3, [r2, #0]
 
-  80343d2:	bd10      	pop	{r4, pc}
 
-  80343d4:	7efffefc 	.word	0x7efffefc
 
- 080343d8 <snmp_set_test>:
 
-   u8_t id, set_ok;
 
-   LWIP_UNUSED_ARG(len);
 
-   set_ok = 0;
 
-   LWIP_ASSERT("invalid id", (od->id_inst_ptr[0] >= 0) && (od->id_inst_ptr[0] <= 0xff));
 
-   id = (u8_t)od->id_inst_ptr[0];
 
-  80343d8:	6883      	ldr	r3, [r0, #8]
 
-   if (id == 30)
 
-  80343da:	781b      	ldrb	r3, [r3, #0]
 
-  80343dc:	2b1e      	cmp	r3, #30
 
-  80343de:	d10f      	bne.n	8034400 <snmp_set_test+0x28>
 
-   {
 
-     /* snmpEnableAuthenTraps */
 
-     s32_t *sint_ptr = (s32_t*)value;
 
-     if (snmpenableauthentraps_ptr != &snmpenableauthentraps_default)
 
-  80343e0:	4b08      	ldr	r3, [pc, #32]	; (8034404 <snmp_set_test+0x2c>)
 
-  80343e2:	6810      	ldr	r0, [r2, #0]
 
-  80343e4:	6819      	ldr	r1, [r3, #0]
 
-  80343e6:	4b08      	ldr	r3, [pc, #32]	; (8034408 <snmp_set_test+0x30>)
 
-  80343e8:	4299      	cmp	r1, r3
 
-  80343ea:	d005      	beq.n	80343f8 <snmp_set_test+0x20>
 
-     {
 
-       /* we should have writable non-volatile mem here */
 
-       if ((*sint_ptr == 1) || (*sint_ptr == 2))
 
-  80343ec:	3801      	subs	r0, #1
 
- snmp_set_test(struct obj_def *od, u16_t len, void *value)
 
- {
 
-   u8_t id, set_ok;
 
-   LWIP_UNUSED_ARG(len);
 
-   set_ok = 0;
 
-  80343ee:	2801      	cmp	r0, #1
 
-  80343f0:	bf8c      	ite	hi
 
-  80343f2:	2000      	movhi	r0, #0
 
-  80343f4:	2001      	movls	r0, #1
 
-  80343f6:	4770      	bx	lr
 
-  80343f8:	1e83      	subs	r3, r0, #2
 
-  80343fa:	4258      	negs	r0, r3
 
-  80343fc:	4158      	adcs	r0, r3
 
-  80343fe:	4770      	bx	lr
 
-  8034400:	2000      	movs	r0, #0
 
-         set_ok = 1;
 
-       }
 
-     }
 
-   }
 
-   return set_ok;
 
- }
 
-  8034402:	4770      	bx	lr
 
-  8034404:	20000898 	.word	0x20000898
 
-  8034408:	08045204 	.word	0x08045204
 
- 0803440c <ocstrncpy>:
 
-  * @param dst points to destination
 
-  * @param src points to source
 
-  * @param n number of octets to copy.
 
-  */
 
- void ocstrncpy(u8_t *dst, u8_t *src, u16_t n)
 
- {
 
-  803440c:	b510      	push	{r4, lr}
 
-   u16_t i = n;
 
-   while (i > 0) {
 
-  803440e:	2300      	movs	r3, #0
 
-  8034410:	e002      	b.n	8034418 <ocstrncpy+0xc>
 
-     i--;
 
-     *dst++ = *src++;
 
-  8034412:	5ccc      	ldrb	r4, [r1, r3]
 
-  8034414:	54c4      	strb	r4, [r0, r3]
 
-  8034416:	3301      	adds	r3, #1
 
-  * @param n number of octets to copy.
 
-  */
 
- void ocstrncpy(u8_t *dst, u8_t *src, u16_t n)
 
- {
 
-   u16_t i = n;
 
-   while (i > 0) {
 
-  8034418:	b29c      	uxth	r4, r3
 
-  803441a:	42a2      	cmp	r2, r4
 
-  803441c:	d1f9      	bne.n	8034412 <ocstrncpy+0x6>
 
-     i--;
 
-     *dst++ = *src++;
 
-   }
 
- }
 
-  803441e:	bd10      	pop	{r4, pc}
 
- 08034420 <system_set_value>:
 
- {
 
-   u8_t id;
 
-   LWIP_ASSERT("invalid len", len <= 0xff);
 
-   LWIP_ASSERT("invalid id", (od->id_inst_ptr[0] >= 0) && (od->id_inst_ptr[0] <= 0xff));
 
-   id = (u8_t)od->id_inst_ptr[0];
 
-  8034420:	6883      	ldr	r3, [r0, #8]
 
-   switch (id)
 
-  8034422:	781b      	ldrb	r3, [r3, #0]
 
-  8034424:	2b05      	cmp	r3, #5
 
-   return set_ok;
 
- }
 
- static void
 
- system_set_value(struct obj_def *od, u16_t len, void *value)
 
- {
 
-  8034426:	b510      	push	{r4, lr}
 
-  8034428:	460c      	mov	r4, r1
 
-  803442a:	4611      	mov	r1, r2
 
-   u8_t id;
 
-   LWIP_ASSERT("invalid len", len <= 0xff);
 
-   LWIP_ASSERT("invalid id", (od->id_inst_ptr[0] >= 0) && (od->id_inst_ptr[0] <= 0xff));
 
-   id = (u8_t)od->id_inst_ptr[0];
 
-   switch (id)
 
-  803442c:	d00a      	beq.n	8034444 <system_set_value+0x24>
 
-  803442e:	2b06      	cmp	r3, #6
 
-  8034430:	d00f      	beq.n	8034452 <system_set_value+0x32>
 
-  8034432:	2b04      	cmp	r3, #4
 
-  8034434:	d115      	bne.n	8034462 <system_set_value+0x42>
 
-   {
 
-     case 4: /* sysContact */
 
-       ocstrncpy(syscontact_ptr, (u8_t*)value, len);
 
-  8034436:	4b0b      	ldr	r3, [pc, #44]	; (8034464 <system_set_value+0x44>)
 
-  8034438:	4622      	mov	r2, r4
 
-  803443a:	6818      	ldr	r0, [r3, #0]
 
-  803443c:	f7ff ffe6 	bl	803440c <ocstrncpy>
 
-       *syscontact_len_ptr = (u8_t)len;
 
-  8034440:	4b09      	ldr	r3, [pc, #36]	; (8034468 <system_set_value+0x48>)
 
-  8034442:	e00c      	b.n	803445e <system_set_value+0x3e>
 
-       break;
 
-     case 5: /* sysName */
 
-       ocstrncpy(sysname_ptr, (u8_t*)value, len);
 
-  8034444:	4b09      	ldr	r3, [pc, #36]	; (803446c <system_set_value+0x4c>)
 
-  8034446:	4622      	mov	r2, r4
 
-  8034448:	6818      	ldr	r0, [r3, #0]
 
-  803444a:	f7ff ffdf 	bl	803440c <ocstrncpy>
 
-       *sysname_len_ptr = (u8_t)len;
 
-  803444e:	4b08      	ldr	r3, [pc, #32]	; (8034470 <system_set_value+0x50>)
 
-  8034450:	e005      	b.n	803445e <system_set_value+0x3e>
 
-       break;
 
-     case 6: /* sysLocation */
 
-       ocstrncpy(syslocation_ptr, (u8_t*)value, len);
 
-  8034452:	4b08      	ldr	r3, [pc, #32]	; (8034474 <system_set_value+0x54>)
 
-  8034454:	4622      	mov	r2, r4
 
-  8034456:	6818      	ldr	r0, [r3, #0]
 
-  8034458:	f7ff ffd8 	bl	803440c <ocstrncpy>
 
-       *syslocation_len_ptr = (u8_t)len;
 
-  803445c:	4b06      	ldr	r3, [pc, #24]	; (8034478 <system_set_value+0x58>)
 
-  803445e:	681b      	ldr	r3, [r3, #0]
 
-  8034460:	701c      	strb	r4, [r3, #0]
 
-  8034462:	bd10      	pop	{r4, pc}
 
-  8034464:	20000914 	.word	0x20000914
 
-  8034468:	20000798 	.word	0x20000798
 
-  803446c:	200008a0 	.word	0x200008a0
 
-  8034470:	20000794 	.word	0x20000794
 
-  8034474:	20000a2c 	.word	0x20000a2c
 
-  8034478:	20000980 	.word	0x20000980
 
- 0803447c <objectidncpy>:
 
-  *
 
-  * @param dst points to destination
 
-  * @param src points to source
 
-  * @param n number of sub identifiers to copy.
 
-  */
 
- void objectidncpy(s32_t *dst, s32_t *src, u8_t n)
 
-  803447c:	3904      	subs	r1, #4
 
- {
 
-   u8_t i = n;
 
-   while(i > 0) {
 
-  803447e:	e005      	b.n	803448c <objectidncpy+0x10>
 
-     i--;
 
-     *dst++ = *src++;
 
-  8034480:	f851 3f04 	ldr.w	r3, [r1, #4]!
 
-  */
 
- void objectidncpy(s32_t *dst, s32_t *src, u8_t n)
 
- {
 
-   u8_t i = n;
 
-   while(i > 0) {
 
-     i--;
 
-  8034484:	3a01      	subs	r2, #1
 
-     *dst++ = *src++;
 
-  8034486:	f840 3b04 	str.w	r3, [r0], #4
 
-  */
 
- void objectidncpy(s32_t *dst, s32_t *src, u8_t n)
 
- {
 
-   u8_t i = n;
 
-   while(i > 0) {
 
-     i--;
 
-  803448a:	b2d2      	uxtb	r2, r2
 
-  * @param n number of sub identifiers to copy.
 
-  */
 
- void objectidncpy(s32_t *dst, s32_t *src, u8_t n)
 
- {
 
-   u8_t i = n;
 
-   while(i > 0) {
 
-  803448c:	2a00      	cmp	r2, #0
 
-  803448e:	d1f7      	bne.n	8034480 <objectidncpy+0x4>
 
-     i--;
 
-     *dst++ = *src++;
 
-   }
 
- }
 
-  8034490:	4770      	bx	lr
 
-  8034492:	0000      	movs	r0, r0
 
- 08034494 <ifentry_get_value>:
 
-  * @param len return value space (in bytes)
 
-  * @param value points to (varbind) space to copy value into.
 
-  */
 
- static void
 
- ifentry_get_value(struct obj_def *od, u16_t len, void *value)
 
- {
 
-  8034494:	b573      	push	{r0, r1, r4, r5, r6, lr}
 
-   struct netif *netif;
 
-   u8_t id;
 
-   snmp_ifindextonetif(od->id_inst_ptr[1], &netif);
 
-  8034496:	6883      	ldr	r3, [r0, #8]
 
-  * @param len return value space (in bytes)
 
-  * @param value points to (varbind) space to copy value into.
 
-  */
 
- static void
 
- ifentry_get_value(struct obj_def *od, u16_t len, void *value)
 
- {
 
-  8034498:	4606      	mov	r6, r0
 
-  803449a:	460d      	mov	r5, r1
 
-   struct netif *netif;
 
-   u8_t id;
 
-   snmp_ifindextonetif(od->id_inst_ptr[1], &netif);
 
-  803449c:	6858      	ldr	r0, [r3, #4]
 
-  803449e:	a901      	add	r1, sp, #4
 
-  * @param len return value space (in bytes)
 
-  * @param value points to (varbind) space to copy value into.
 
-  */
 
- static void
 
- ifentry_get_value(struct obj_def *od, u16_t len, void *value)
 
- {
 
-  80344a0:	4614      	mov	r4, r2
 
-   struct netif *netif;
 
-   u8_t id;
 
-   snmp_ifindextonetif(od->id_inst_ptr[1], &netif);
 
-  80344a2:	f000 fdb7 	bl	8035014 <snmp_ifindextonetif>
 
-   LWIP_ASSERT("invalid id", (od->id_inst_ptr[0] >= 0) && (od->id_inst_ptr[0] <= 0xff));
 
-   id = (u8_t)od->id_inst_ptr[0];
 
-  80344a6:	68b3      	ldr	r3, [r6, #8]
 
-   switch (id)
 
-  80344a8:	781a      	ldrb	r2, [r3, #0]
 
-  80344aa:	3a01      	subs	r2, #1
 
-  80344ac:	2a15      	cmp	r2, #21
 
-  80344ae:	d85c      	bhi.n	803456a <ifentry_get_value+0xd6>
 
-  80344b0:	e8df f002 	tbb	[pc, r2]
 
-  80344b4:	15110d0b 	.word	0x15110d0b
 
-  80344b8:	2e221b18 	.word	0x2e221b18
 
-  80344bc:	403d3a37 	.word	0x403d3a37
 
-  80344c0:	46525243 	.word	0x46525243
 
-  80344c4:	524f4c49 	.word	0x524f4c49
 
-  80344c8:	5552      	.short	0x5552
 
-   {
 
-     case 1: /* ifIndex */
 
-       {
 
-         s32_t *sint_ptr = (s32_t*)value;
 
-         *sint_ptr = od->id_inst_ptr[1];
 
-  80344ca:	685b      	ldr	r3, [r3, #4]
 
-  80344cc:	e045      	b.n	803455a <ifentry_get_value+0xc6>
 
-       }
 
-       break;
 
-     case 2: /* ifDescr */
 
-       ocstrncpy((u8_t*)value, (u8_t*)netif->name, len);
 
-  80344ce:	9901      	ldr	r1, [sp, #4]
 
-  80344d0:	4620      	mov	r0, r4
 
-  80344d2:	312e      	adds	r1, #46	; 0x2e
 
-  80344d4:	e00c      	b.n	80344f0 <ifentry_get_value+0x5c>
 
-       break;
 
-     case 3: /* ifType */
 
-       {
 
-         s32_t *sint_ptr = (s32_t*)value;
 
-         *sint_ptr = netif->link_type;
 
-  80344d6:	9b01      	ldr	r3, [sp, #4]
 
-  80344d8:	f893 3031 	ldrb.w	r3, [r3, #49]	; 0x31
 
-  80344dc:	e03d      	b.n	803455a <ifentry_get_value+0xc6>
 
-       }
 
-       break;
 
-     case 4: /* ifMtu */
 
-       {
 
-         s32_t *sint_ptr = (s32_t*)value;
 
-         *sint_ptr = netif->mtu;
 
-  80344de:	9b01      	ldr	r3, [sp, #4]
 
-  80344e0:	8c9b      	ldrh	r3, [r3, #36]	; 0x24
 
-  80344e2:	e03a      	b.n	803455a <ifentry_get_value+0xc6>
 
-       }
 
-       break;
 
-     case 5: /* ifSpeed */
 
-       {
 
-         u32_t *uint_ptr = (u32_t*)value;
 
-         *uint_ptr = netif->link_speed;
 
-  80344e4:	9b01      	ldr	r3, [sp, #4]
 
-  80344e6:	6b5b      	ldr	r3, [r3, #52]	; 0x34
 
-  80344e8:	e037      	b.n	803455a <ifentry_get_value+0xc6>
 
-       }
 
-       break;
 
-     case 6: /* ifPhysAddress */
 
-       ocstrncpy((u8_t*)value, netif->hwaddr, len);
 
-  80344ea:	9901      	ldr	r1, [sp, #4]
 
-  80344ec:	4620      	mov	r0, r4
 
-  80344ee:	3127      	adds	r1, #39	; 0x27
 
-  80344f0:	462a      	mov	r2, r5
 
-  80344f2:	f7ff ff8b 	bl	803440c <ocstrncpy>
 
-       break;
 
-  80344f6:	e038      	b.n	803456a <ifentry_get_value+0xd6>
 
-     case 7: /* ifAdminStatus */
 
-       {
 
-         s32_t *sint_ptr = (s32_t*)value;
 
-         if (netif_is_up(netif))
 
-  80344f8:	9b01      	ldr	r3, [sp, #4]
 
-  80344fa:	f893 302d 	ldrb.w	r3, [r3, #45]	; 0x2d
 
-  80344fe:	07d9      	lsls	r1, r3, #31
 
-  8034500:	d50d      	bpl.n	803451e <ifentry_get_value+0x8a>
 
-         {
 
-           if (netif_is_link_up(netif))
 
-  8034502:	f003 0310 	and.w	r3, r3, #16
 
-  8034506:	b2db      	uxtb	r3, r3
 
-  8034508:	b103      	cbz	r3, 803450c <ifentry_get_value+0x78>
 
-  803450a:	e006      	b.n	803451a <ifentry_get_value+0x86>
 
-           {
 
-             *sint_ptr = 1; /* up */
 
-           }
 
-           else
 
-           {
 
-             *sint_ptr = 7; /* lowerLayerDown */
 
-  803450c:	2307      	movs	r3, #7
 
-  803450e:	e024      	b.n	803455a <ifentry_get_value+0xc6>
 
-       }
 
-       break;
 
-     case 8: /* ifOperStatus */
 
-       {
 
-         s32_t *sint_ptr = (s32_t*)value;
 
-         if (netif_is_up(netif))
 
-  8034510:	9b01      	ldr	r3, [sp, #4]
 
-  8034512:	f893 302d 	ldrb.w	r3, [r3, #45]	; 0x2d
 
-  8034516:	07da      	lsls	r2, r3, #31
 
-  8034518:	d501      	bpl.n	803451e <ifentry_get_value+0x8a>
 
-         {
 
-           *sint_ptr = 1;
 
-  803451a:	2301      	movs	r3, #1
 
-  803451c:	e01d      	b.n	803455a <ifentry_get_value+0xc6>
 
-         }
 
-         else
 
-         {
 
-           *sint_ptr = 2;
 
-  803451e:	2302      	movs	r3, #2
 
-  8034520:	e01b      	b.n	803455a <ifentry_get_value+0xc6>
 
-       }
 
-       break;
 
-     case 9: /* ifLastChange */
 
-       {
 
-         u32_t *uint_ptr = (u32_t*)value;
 
-         *uint_ptr = netif->ts;
 
-  8034522:	9b01      	ldr	r3, [sp, #4]
 
-  8034524:	6b9b      	ldr	r3, [r3, #56]	; 0x38
 
-  8034526:	e018      	b.n	803455a <ifentry_get_value+0xc6>
 
-       }
 
-       break;
 
-     case 10: /* ifInOctets */
 
-       {
 
-         u32_t *uint_ptr = (u32_t*)value;
 
-         *uint_ptr = netif->ifinoctets;
 
-  8034528:	9b01      	ldr	r3, [sp, #4]
 
-  803452a:	6bdb      	ldr	r3, [r3, #60]	; 0x3c
 
-  803452c:	e015      	b.n	803455a <ifentry_get_value+0xc6>
 
-       }
 
-       break;
 
-     case 11: /* ifInUcastPkts */
 
-       {
 
-         u32_t *uint_ptr = (u32_t*)value;
 
-         *uint_ptr = netif->ifinucastpkts;
 
-  803452e:	9b01      	ldr	r3, [sp, #4]
 
-  8034530:	6c1b      	ldr	r3, [r3, #64]	; 0x40
 
-  8034532:	e012      	b.n	803455a <ifentry_get_value+0xc6>
 
-       }
 
-       break;
 
-     case 12: /* ifInNUcastPkts */
 
-       {
 
-         u32_t *uint_ptr = (u32_t*)value;
 
-         *uint_ptr = netif->ifinnucastpkts;
 
-  8034534:	9b01      	ldr	r3, [sp, #4]
 
-  8034536:	6c5b      	ldr	r3, [r3, #68]	; 0x44
 
-  8034538:	e00f      	b.n	803455a <ifentry_get_value+0xc6>
 
-       }
 
-       break;
 
-     case 13: /* ifInDiscarts */
 
-       {
 
-         u32_t *uint_ptr = (u32_t*)value;
 
-         *uint_ptr = netif->ifindiscards;
 
-  803453a:	9b01      	ldr	r3, [sp, #4]
 
-  803453c:	6c9b      	ldr	r3, [r3, #72]	; 0x48
 
-  803453e:	e00c      	b.n	803455a <ifentry_get_value+0xc6>
 
-       }
 
-       break;
 
-     case 16: /* ifOutOctets */
 
-       {
 
-         u32_t *uint_ptr = (u32_t*)value;
 
-         *uint_ptr = netif->ifoutoctets;
 
-  8034540:	9b01      	ldr	r3, [sp, #4]
 
-  8034542:	6cdb      	ldr	r3, [r3, #76]	; 0x4c
 
-  8034544:	e009      	b.n	803455a <ifentry_get_value+0xc6>
 
-       }
 
-       break;
 
-     case 17: /* ifOutUcastPkts */
 
-       {
 
-         u32_t *uint_ptr = (u32_t*)value;
 
-         *uint_ptr = netif->ifoutucastpkts;
 
-  8034546:	9b01      	ldr	r3, [sp, #4]
 
-  8034548:	6d1b      	ldr	r3, [r3, #80]	; 0x50
 
-  803454a:	e006      	b.n	803455a <ifentry_get_value+0xc6>
 
-       }
 
-       break;
 
-     case 18: /* ifOutNUcastPkts */
 
-       {
 
-         u32_t *uint_ptr = (u32_t*)value;
 
-         *uint_ptr = netif->ifoutnucastpkts;
 
-  803454c:	9b01      	ldr	r3, [sp, #4]
 
-  803454e:	6d5b      	ldr	r3, [r3, #84]	; 0x54
 
-  8034550:	e003      	b.n	803455a <ifentry_get_value+0xc6>
 
-       }
 
-       break;
 
-     case 19: /* ifOutDiscarts */
 
-       {
 
-         u32_t *uint_ptr = (u32_t*)value;
 
-         *uint_ptr = netif->ifoutdiscards;
 
-  8034552:	9b01      	ldr	r3, [sp, #4]
 
-  8034554:	6d9b      	ldr	r3, [r3, #88]	; 0x58
 
-  8034556:	e000      	b.n	803455a <ifentry_get_value+0xc6>
 
-       break;
 
-     case 21: /* ifOutQLen */
 
-       /** @todo figure out if this must be 0 (no queue) or 1? */
 
-       {
 
-         u32_t *uint_ptr = (u32_t*)value;
 
-         *uint_ptr = 0;
 
-  8034558:	2300      	movs	r3, #0
 
-  803455a:	6023      	str	r3, [r4, #0]
 
-       }
 
-       break;
 
-  803455c:	e005      	b.n	803456a <ifentry_get_value+0xd6>
 
-     case 22: /* ifSpecific */
 
-       objectidncpy((s32_t*)value, (s32_t*)ifspecific.id, (u8_t)(len / sizeof(s32_t)));
 
-  803455e:	4620      	mov	r0, r4
 
-  8034560:	4902      	ldr	r1, [pc, #8]	; (803456c <ifentry_get_value+0xd8>)
 
-  8034562:	f3c5 0287 	ubfx	r2, r5, #2, #8
 
-  8034566:	f7ff ff89 	bl	803447c <objectidncpy>
 
-       break;
 
-   };
 
- }
 
-  803456a:	bd7c      	pop	{r2, r3, r4, r5, r6, pc}
 
-  803456c:	0804528c 	.word	0x0804528c
 
- 08034570 <ip_rteentry_get_value>:
 
-   }
 
- }
 
- static void
 
- ip_rteentry_get_value(struct obj_def *od, u16_t len, void *value)
 
- {
 
-  8034570:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
 
-   struct netif *netif;
 
-   ip_addr_t dest;
 
-   s32_t *ident;
 
-   u8_t id;
 
-   ident = od->id_inst_ptr;
 
-  8034572:	6885      	ldr	r5, [r0, #8]
 
-   }
 
- }
 
- static void
 
- ip_rteentry_get_value(struct obj_def *od, u16_t len, void *value)
 
- {
 
-  8034574:	460f      	mov	r7, r1
 
-   ip_addr_t dest;
 
-   s32_t *ident;
 
-   u8_t id;
 
-   ident = od->id_inst_ptr;
 
-   snmp_oidtoip(&ident[1], &dest);
 
-  8034576:	1d28      	adds	r0, r5, #4
 
-  8034578:	a901      	add	r1, sp, #4
 
-   }
 
- }
 
- static void
 
- ip_rteentry_get_value(struct obj_def *od, u16_t len, void *value)
 
- {
 
-  803457a:	4614      	mov	r4, r2
 
-   ip_addr_t dest;
 
-   s32_t *ident;
 
-   u8_t id;
 
-   ident = od->id_inst_ptr;
 
-   snmp_oidtoip(&ident[1], &dest);
 
-  803457c:	f000 fd68 	bl	8035050 <snmp_oidtoip>
 
-   if (ip_addr_isany(&dest))
 
-  8034580:	9b01      	ldr	r3, [sp, #4]
 
-  8034582:	b91b      	cbnz	r3, 803458c <ip_rteentry_get_value+0x1c>
 
-   {
 
-     /* ip_route() uses default netif for default route */
 
-     netif = netif_default;
 
-  8034584:	4a23      	ldr	r2, [pc, #140]	; (8034614 <ip_rteentry_get_value+0xa4>)
 
-  8034586:	6810      	ldr	r0, [r2, #0]
 
-             !ip_addr_netcmp(&dest, &(netif->ip_addr), &(netif->netmask)) )
 
-     {
 
-       netif = netif->next;
 
-     }
 
-   }
 
-   if (netif != NULL)
 
-  8034588:	b960      	cbnz	r0, 80345a4 <ip_rteentry_get_value+0x34>
 
-  803458a:	e041      	b.n	8034610 <ip_rteentry_get_value+0xa0>
 
-     netif = netif_default;
 
-   }
 
-   else
 
-   {
 
-     /* not using ip_route(), need exact match! */
 
-     netif = netif_list;
 
-  803458c:	4a22      	ldr	r2, [pc, #136]	; (8034618 <ip_rteentry_get_value+0xa8>)
 
-  803458e:	6810      	ldr	r0, [r2, #0]
 
-     while ((netif != NULL) &&
 
-  8034590:	e000      	b.n	8034594 <ip_rteentry_get_value+0x24>
 
-             !ip_addr_netcmp(&dest, &(netif->ip_addr), &(netif->netmask)) )
 
-     {
 
-       netif = netif->next;
 
-  8034592:	6800      	ldr	r0, [r0, #0]
 
-   }
 
-   else
 
-   {
 
-     /* not using ip_route(), need exact match! */
 
-     netif = netif_list;
 
-     while ((netif != NULL) &&
 
-  8034594:	2800      	cmp	r0, #0
 
-  8034596:	d03b      	beq.n	8034610 <ip_rteentry_get_value+0xa0>
 
-             !ip_addr_netcmp(&dest, &(netif->ip_addr), &(netif->netmask)) )
 
-  8034598:	6846      	ldr	r6, [r0, #4]
 
-  803459a:	ea83 0206 	eor.w	r2, r3, r6
 
-  803459e:	6886      	ldr	r6, [r0, #8]
 
-   }
 
-   else
 
-   {
 
-     /* not using ip_route(), need exact match! */
 
-     netif = netif_list;
 
-     while ((netif != NULL) &&
 
-  80345a0:	4232      	tst	r2, r6
 
-  80345a2:	d1f6      	bne.n	8034592 <ip_rteentry_get_value+0x22>
 
-   }
 
-   if (netif != NULL)
 
-   {
 
-     LWIP_ASSERT("invalid id", (ident[0] >= 0) && (ident[0] <= 0xff));
 
-     id = (u8_t)ident[0];
 
-     switch (id)
 
-  80345a4:	782d      	ldrb	r5, [r5, #0]
 
-  80345a6:	3d01      	subs	r5, #1
 
-  80345a8:	2d0c      	cmp	r5, #12
 
-  80345aa:	d831      	bhi.n	8034610 <ip_rteentry_get_value+0xa0>
 
-  80345ac:	e8df f005 	tbb	[pc, r5]
 
-  80345b0:	14110d07 	.word	0x14110d07
 
-  80345b4:	1c171414 	.word	0x1c171414
 
-  80345b8:	14252321 	.word	0x14252321
 
-  80345bc:	2a          	.byte	0x2a
 
-  80345bd:	00          	.byte	0x00
 
-     {
 
-       case 1: /* ipRouteDest */
 
-         {
 
-           ip_addr_t *dst = (ip_addr_t*)value;
 
-           if (ip_addr_isany(&dest))
 
-  80345be:	b903      	cbnz	r3, 80345c2 <ip_rteentry_get_value+0x52>
 
-  80345c0:	e01e      	b.n	8034600 <ip_rteentry_get_value+0x90>
 
-             ip_addr_set_zero(dst);
 
-           }
 
-           else
 
-           {
 
-             /* netifs have netaddress dest */
 
-             ip_addr_get_network(dst, &netif->ip_addr, &netif->netmask);
 
-  80345c2:	6882      	ldr	r2, [r0, #8]
 
-  80345c4:	6843      	ldr	r3, [r0, #4]
 
-  80345c6:	4013      	ands	r3, r2
 
-  80345c8:	e01a      	b.n	8034600 <ip_rteentry_get_value+0x90>
 
-         break;
 
-       case 2: /* ipRouteIfIndex */
 
-         {
 
-           s32_t *sint_ptr = (s32_t*)value;
 
-           snmp_netiftoifindex(netif, sint_ptr);
 
-  80345ca:	4621      	mov	r1, r4
 
-  80345cc:	f000 fd30 	bl	8035030 <snmp_netiftoifindex>
 
-         }
 
-         break;
 
-  80345d0:	e01e      	b.n	8034610 <ip_rteentry_get_value+0xa0>
 
-       case 3: /* ipRouteMetric1 */
 
-         {
 
-           s32_t *sint_ptr = (s32_t*)value;
 
-           if (ip_addr_isany(&dest))
 
-  80345d2:	b983      	cbnz	r3, 80345f6 <ip_rteentry_get_value+0x86>
 
-           {
 
-             /* default rte has metric 1 */
 
-             *sint_ptr = 1;
 
-  80345d4:	2301      	movs	r3, #1
 
-  80345d6:	e013      	b.n	8034600 <ip_rteentry_get_value+0x90>
 
-       case 6: /* ipRouteMetric4 */
 
-       case 12: /* ipRouteMetric5 */
 
-         {
 
-           s32_t *sint_ptr = (s32_t*)value;
 
-           /* not used */
 
-           *sint_ptr = -1;
 
-  80345d8:	f04f 33ff 	mov.w	r3, #4294967295
 
-  80345dc:	e010      	b.n	8034600 <ip_rteentry_get_value+0x90>
 
-         break;
 
-       case 7: /* ipRouteNextHop */
 
-         {
 
-           ip_addr_t *dst = (ip_addr_t*)value;
 
-           if (ip_addr_isany(&dest))
 
-  80345de:	b90b      	cbnz	r3, 80345e4 <ip_rteentry_get_value+0x74>
 
-           {
 
-             /* default rte: gateway */
 
-             *dst = netif->gw;
 
-  80345e0:	68c3      	ldr	r3, [r0, #12]
 
-  80345e2:	e00d      	b.n	8034600 <ip_rteentry_get_value+0x90>
 
-           }
 
-           else
 
-           {
 
-             /* other rtes: netif ip_addr  */
 
-             *dst = netif->ip_addr;
 
-  80345e4:	6843      	ldr	r3, [r0, #4]
 
-  80345e6:	e00b      	b.n	8034600 <ip_rteentry_get_value+0x90>
 
-         break;
 
-       case 8: /* ipRouteType */
 
-         {
 
-           s32_t *sint_ptr = (s32_t*)value;
 
-           if (ip_addr_isany(&dest))
 
-  80345e8:	b90b      	cbnz	r3, 80345ee <ip_rteentry_get_value+0x7e>
 
-           {
 
-             /* default rte is indirect */
 
-             *sint_ptr = 4;
 
-  80345ea:	2304      	movs	r3, #4
 
-  80345ec:	e008      	b.n	8034600 <ip_rteentry_get_value+0x90>
 
-           }
 
-           else
 
-           {
 
-             /* other rtes are direct */
 
-             *sint_ptr = 3;
 
-  80345ee:	2303      	movs	r3, #3
 
-  80345f0:	e006      	b.n	8034600 <ip_rteentry_get_value+0x90>
 
-         break;
 
-       case 9: /* ipRouteProto */
 
-         {
 
-           s32_t *sint_ptr = (s32_t*)value;
 
-           /* locally defined routes */
 
-           *sint_ptr = 2;
 
-  80345f2:	2302      	movs	r3, #2
 
-  80345f4:	e004      	b.n	8034600 <ip_rteentry_get_value+0x90>
 
-       case 10: /* ipRouteAge */
 
-         {
 
-           s32_t *sint_ptr = (s32_t*)value;
 
-           /** @todo (sysuptime - timestamp last change) / 100
 
-               @see snmp_insert_iprteidx_tree() */
 
-           *sint_ptr = 0;
 
-  80345f6:	2300      	movs	r3, #0
 
-  80345f8:	e002      	b.n	8034600 <ip_rteentry_get_value+0x90>
 
-         break;
 
-       case 11: /* ipRouteMask */
 
-         {
 
-           ip_addr_t *dst = (ip_addr_t*)value;
 
-           if (ip_addr_isany(&dest))
 
-  80345fa:	b903      	cbnz	r3, 80345fe <ip_rteentry_get_value+0x8e>
 
-  80345fc:	e000      	b.n	8034600 <ip_rteentry_get_value+0x90>
 
-             ip_addr_set_zero(dst);
 
-           }
 
-           else
 
-           {
 
-             /* other rtes use netmask */
 
-             *dst = netif->netmask;
 
-  80345fe:	6883      	ldr	r3, [r0, #8]
 
-  8034600:	6023      	str	r3, [r4, #0]
 
-  8034602:	e005      	b.n	8034610 <ip_rteentry_get_value+0xa0>
 
-           }
 
-         }
 
-         break;
 
-       case 13: /* ipRouteInfo */
 
-         objectidncpy((s32_t*)value, (s32_t*)iprouteinfo.id, (u8_t)(len / sizeof(s32_t)));
 
-  8034604:	4620      	mov	r0, r4
 
-  8034606:	4905      	ldr	r1, [pc, #20]	; (803461c <ip_rteentry_get_value+0xac>)
 
-  8034608:	f3c7 0287 	ubfx	r2, r7, #2, #8
 
-  803460c:	f7ff ff36 	bl	803447c <objectidncpy>
 
-         break;
 
-     }
 
-   }
 
- }
 
-  8034610:	bdfe      	pop	{r1, r2, r3, r4, r5, r6, r7, pc}
 
-  8034612:	bf00      	nop
 
-  8034614:	2000f6b4 	.word	0x2000f6b4
 
-  8034618:	2000f6b0 	.word	0x2000f6b0
 
-  803461c:	080450a0 	.word	0x080450a0
 
- 08034620 <snmp_set_sysdesr>:
 
-  * @param str if non-NULL then copy str pointer
 
-  * @param len points to string length, excluding zero terminator
 
-  */
 
- void snmp_set_sysdesr(u8_t *str, u8_t *len)
 
- {
 
-   if (str != NULL)
 
-  8034620:	b118      	cbz	r0, 803462a <snmp_set_sysdesr+0xa>
 
-   {
 
-     sysdescr_ptr = str;
 
-  8034622:	4b02      	ldr	r3, [pc, #8]	; (803462c <snmp_set_sysdesr+0xc>)
 
-  8034624:	6018      	str	r0, [r3, #0]
 
-     sysdescr_len_ptr = len;
 
-  8034626:	4b02      	ldr	r3, [pc, #8]	; (8034630 <snmp_set_sysdesr+0x10>)
 
-  8034628:	6019      	str	r1, [r3, #0]
 
-  803462a:	4770      	bx	lr
 
-  803462c:	200008c0 	.word	0x200008c0
 
-  8034630:	2000093c 	.word	0x2000093c
 
- 08034634 <snmp_set_sysobjid>:
 
-  * Initializes sysObjectID value.
 
-  *
 
-  * @param oid points to stuct snmp_obj_id to copy
 
-  */
 
- void snmp_set_sysobjid(struct snmp_obj_id *oid)
 
- {
 
-  8034634:	4601      	mov	r1, r0
 
-  8034636:	b508      	push	{r3, lr}
 
-   sysobjid = *oid;
 
-  8034638:	2284      	movs	r2, #132	; 0x84
 
-  803463a:	4802      	ldr	r0, [pc, #8]	; (8034644 <snmp_set_sysobjid+0x10>)
 
-  803463c:	f7ed f9a6 	bl	802198c <memcpy>
 
-  8034640:	bd08      	pop	{r3, pc}
 
-  8034642:	bf00      	nop
 
-  8034644:	200007ec 	.word	0x200007ec
 
- 08034648 <snmp_inc_sysuptime>:
 
-  * Must be called at regular 10 msec interval from a timer interrupt
 
-  * or signal handler depending on your runtime environment.
 
-  */
 
- void snmp_inc_sysuptime(void)
 
- {
 
-   sysuptime++;
 
-  8034648:	4b02      	ldr	r3, [pc, #8]	; (8034654 <snmp_inc_sysuptime+0xc>)
 
-  803464a:	681a      	ldr	r2, [r3, #0]
 
-  803464c:	3201      	adds	r2, #1
 
-  803464e:	601a      	str	r2, [r3, #0]
 
-  8034650:	4770      	bx	lr
 
-  8034652:	bf00      	nop
 
-  8034654:	2000c500 	.word	0x2000c500
 
- 08034658 <snmp_get_sysuptime>:
 
- {
 
-   sysuptime+=value;
 
- }
 
- void snmp_get_sysuptime(u32_t *value)
 
- {
 
-  8034658:	b510      	push	{r4, lr}
 
-  803465a:	4604      	mov	r4, r0
 
-   SNMP_GET_SYSUPTIME(sysuptime);
 
-  803465c:	f003 fa1a 	bl	8037a94 <sys_now>
 
-  8034660:	230a      	movs	r3, #10
 
-  8034662:	4a03      	ldr	r2, [pc, #12]	; (8034670 <snmp_get_sysuptime+0x18>)
 
-  8034664:	fbb0 f0f3 	udiv	r0, r0, r3
 
-  8034668:	6010      	str	r0, [r2, #0]
 
-   *value = sysuptime;
 
-  803466a:	6020      	str	r0, [r4, #0]
 
-  803466c:	bd10      	pop	{r4, pc}
 
-  803466e:	bf00      	nop
 
-  8034670:	2000c500 	.word	0x2000c500
 
- 08034674 <system_get_value>:
 
-  * @param len return value space (in bytes)
 
-  * @param value points to (varbind) space to copy value into.
 
-  */
 
- static void
 
- system_get_value(struct obj_def *od, u16_t len, void *value)
 
- {
 
-  8034674:	4613      	mov	r3, r2
 
-   u8_t id;
 
-   LWIP_ASSERT("invalid id", (od->id_inst_ptr[0] >= 0) && (od->id_inst_ptr[0] <= 0xff));
 
-   id = (u8_t)od->id_inst_ptr[0];
 
-  8034676:	6882      	ldr	r2, [r0, #8]
 
-   switch (id)
 
-  8034678:	7812      	ldrb	r2, [r2, #0]
 
-  803467a:	3a01      	subs	r2, #1
 
-  * @param len return value space (in bytes)
 
-  * @param value points to (varbind) space to copy value into.
 
-  */
 
- static void
 
- system_get_value(struct obj_def *od, u16_t len, void *value)
 
- {
 
-  803467c:	b510      	push	{r4, lr}
 
-  803467e:	460c      	mov	r4, r1
 
-   u8_t id;
 
-   LWIP_ASSERT("invalid id", (od->id_inst_ptr[0] >= 0) && (od->id_inst_ptr[0] <= 0xff));
 
-   id = (u8_t)od->id_inst_ptr[0];
 
-   switch (id)
 
-  8034680:	2a06      	cmp	r2, #6
 
-  8034682:	d825      	bhi.n	80346d0 <system_get_value+0x5c>
 
-  8034684:	e8df f002 	tbb	[pc, r2]
 
-  8034688:	140f0704 	.word	0x140f0704
 
-  803468c:	1a17      	.short	0x1a17
 
-  803468e:	22          	.byte	0x22
 
-  803468f:	00          	.byte	0x00
 
-   {
 
-     case 1: /* sysDescr */
 
-       ocstrncpy((u8_t*)value, sysdescr_ptr, len);
 
-  8034690:	4618      	mov	r0, r3
 
-  8034692:	4b10      	ldr	r3, [pc, #64]	; (80346d4 <system_get_value+0x60>)
 
-  8034694:	e014      	b.n	80346c0 <system_get_value+0x4c>
 
-       break;
 
-     case 2: /* sysObjectID */
 
-       objectidncpy((s32_t*)value, (s32_t*)sysobjid.id, (u8_t)(len / sizeof(s32_t)));
 
-  8034696:	4910      	ldr	r1, [pc, #64]	; (80346d8 <system_get_value+0x64>)
 
-  8034698:	4618      	mov	r0, r3
 
-  803469a:	f3c4 0287 	ubfx	r2, r4, #2, #8
 
-         s32_t *sint_ptr = (s32_t*)value;
 
-         *sint_ptr = sysservices;
 
-       }
 
-       break;
 
-   };
 
- }
 
-  803469e:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
-   {
 
-     case 1: /* sysDescr */
 
-       ocstrncpy((u8_t*)value, sysdescr_ptr, len);
 
-       break;
 
-     case 2: /* sysObjectID */
 
-       objectidncpy((s32_t*)value, (s32_t*)sysobjid.id, (u8_t)(len / sizeof(s32_t)));
 
-  80346a2:	f7ff beeb 	b.w	803447c <objectidncpy>
 
-       break;
 
-     case 3: /* sysUpTime */
 
-       {
 
-         snmp_get_sysuptime((u32_t*)value);
 
-  80346a6:	4618      	mov	r0, r3
 
-         s32_t *sint_ptr = (s32_t*)value;
 
-         *sint_ptr = sysservices;
 
-       }
 
-       break;
 
-   };
 
- }
 
-  80346a8:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
-     case 2: /* sysObjectID */
 
-       objectidncpy((s32_t*)value, (s32_t*)sysobjid.id, (u8_t)(len / sizeof(s32_t)));
 
-       break;
 
-     case 3: /* sysUpTime */
 
-       {
 
-         snmp_get_sysuptime((u32_t*)value);
 
-  80346ac:	f7ff bfd4 	b.w	8034658 <snmp_get_sysuptime>
 
-       }
 
-       break;
 
-     case 4: /* sysContact */
 
-       ocstrncpy((u8_t*)value, syscontact_ptr, len);
 
-  80346b0:	4618      	mov	r0, r3
 
-  80346b2:	4b0a      	ldr	r3, [pc, #40]	; (80346dc <system_get_value+0x68>)
 
-  80346b4:	e004      	b.n	80346c0 <system_get_value+0x4c>
 
-       break;
 
-     case 5: /* sysName */
 
-       ocstrncpy((u8_t*)value, sysname_ptr, len);
 
-  80346b6:	4618      	mov	r0, r3
 
-  80346b8:	4b09      	ldr	r3, [pc, #36]	; (80346e0 <system_get_value+0x6c>)
 
-  80346ba:	e001      	b.n	80346c0 <system_get_value+0x4c>
 
-       break;
 
-     case 6: /* sysLocation */
 
-       ocstrncpy((u8_t*)value, syslocation_ptr, len);
 
-  80346bc:	4618      	mov	r0, r3
 
-  80346be:	4b09      	ldr	r3, [pc, #36]	; (80346e4 <system_get_value+0x70>)
 
-  80346c0:	6819      	ldr	r1, [r3, #0]
 
-  80346c2:	4622      	mov	r2, r4
 
-         s32_t *sint_ptr = (s32_t*)value;
 
-         *sint_ptr = sysservices;
 
-       }
 
-       break;
 
-   };
 
- }
 
-  80346c4:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
-       break;
 
-     case 5: /* sysName */
 
-       ocstrncpy((u8_t*)value, sysname_ptr, len);
 
-       break;
 
-     case 6: /* sysLocation */
 
-       ocstrncpy((u8_t*)value, syslocation_ptr, len);
 
-  80346c8:	f7ff bea0 	b.w	803440c <ocstrncpy>
 
-       break;
 
-     case 7: /* sysServices */
 
-       {
 
-         s32_t *sint_ptr = (s32_t*)value;
 
-         *sint_ptr = sysservices;
 
-  80346cc:	2248      	movs	r2, #72	; 0x48
 
-  80346ce:	601a      	str	r2, [r3, #0]
 
-  80346d0:	bd10      	pop	{r4, pc}
 
-  80346d2:	bf00      	nop
 
-  80346d4:	200008c0 	.word	0x200008c0
 
-  80346d8:	200007f0 	.word	0x200007f0
 
-  80346dc:	20000914 	.word	0x20000914
 
-  80346e0:	200008a0 	.word	0x200008a0
 
-  80346e4:	20000a2c 	.word	0x20000a2c
 
- 080346e8 <snmp_set_syscontact>:
 
-  * @param ocstr if non-NULL then copy str pointer
 
-  * @param ocstrlen points to string length, excluding zero terminator
 
-  */
 
- void snmp_set_syscontact(u8_t *ocstr, u8_t *ocstrlen)
 
- {
 
-   if (ocstr != NULL)
 
-  80346e8:	b118      	cbz	r0, 80346f2 <snmp_set_syscontact+0xa>
 
-   {
 
-     syscontact_ptr = ocstr;
 
-  80346ea:	4b02      	ldr	r3, [pc, #8]	; (80346f4 <snmp_set_syscontact+0xc>)
 
-  80346ec:	6018      	str	r0, [r3, #0]
 
-     syscontact_len_ptr = ocstrlen;
 
-  80346ee:	4b02      	ldr	r3, [pc, #8]	; (80346f8 <snmp_set_syscontact+0x10>)
 
-  80346f0:	6019      	str	r1, [r3, #0]
 
-  80346f2:	4770      	bx	lr
 
-  80346f4:	20000914 	.word	0x20000914
 
-  80346f8:	20000798 	.word	0x20000798
 
- 080346fc <snmp_set_sysname>:
 
-  * @param ocstr if non-NULL then copy str pointer
 
-  * @param ocstrlen points to string length, excluding zero terminator
 
-  */
 
- void snmp_set_sysname(u8_t *ocstr, u8_t *ocstrlen)
 
- {
 
-   if (ocstr != NULL)
 
-  80346fc:	b118      	cbz	r0, 8034706 <snmp_set_sysname+0xa>
 
-   {
 
-     sysname_ptr = ocstr;
 
-  80346fe:	4b02      	ldr	r3, [pc, #8]	; (8034708 <snmp_set_sysname+0xc>)
 
-  8034700:	6018      	str	r0, [r3, #0]
 
-     sysname_len_ptr = ocstrlen;
 
-  8034702:	4b02      	ldr	r3, [pc, #8]	; (803470c <snmp_set_sysname+0x10>)
 
-  8034704:	6019      	str	r1, [r3, #0]
 
-  8034706:	4770      	bx	lr
 
-  8034708:	200008a0 	.word	0x200008a0
 
-  803470c:	20000794 	.word	0x20000794
 
- 08034710 <snmp_set_syslocation>:
 
-  * @param ocstr if non-NULL then copy str pointer
 
-  * @param ocstrlen points to string length, excluding zero terminator
 
-  */
 
- void snmp_set_syslocation(u8_t *ocstr, u8_t *ocstrlen)
 
- {
 
-   if (ocstr != NULL)
 
-  8034710:	b118      	cbz	r0, 803471a <snmp_set_syslocation+0xa>
 
-   {
 
-     syslocation_ptr = ocstr;
 
-  8034712:	4b02      	ldr	r3, [pc, #8]	; (803471c <snmp_set_syslocation+0xc>)
 
-  8034714:	6018      	str	r0, [r3, #0]
 
-     syslocation_len_ptr = ocstrlen;
 
-  8034716:	4b02      	ldr	r3, [pc, #8]	; (8034720 <snmp_set_syslocation+0x10>)
 
-  8034718:	6019      	str	r1, [r3, #0]
 
-  803471a:	4770      	bx	lr
 
-  803471c:	20000a2c 	.word	0x20000a2c
 
-  8034720:	20000980 	.word	0x20000980
 
- 08034724 <snmp_inc_iflist>:
 
- {
 
-   (ni->ifoutdiscards)++;
 
- }
 
- void snmp_inc_iflist(void)
 
- {
 
-  8034724:	b507      	push	{r0, r1, r2, lr}
 
-   struct mib_list_node *if_node = NULL;
 
-   snmp_mib_node_insert(&iflist_root, iflist_root.count + 1, &if_node);
 
-  8034726:	4806      	ldr	r0, [pc, #24]	; (8034740 <snmp_inc_iflist+0x1c>)
 
-   (ni->ifoutdiscards)++;
 
- }
 
- void snmp_inc_iflist(void)
 
- {
 
-   struct mib_list_node *if_node = NULL;
 
-  8034728:	aa02      	add	r2, sp, #8
 
-   snmp_mib_node_insert(&iflist_root, iflist_root.count + 1, &if_node);
 
-  803472a:	8b81      	ldrh	r1, [r0, #28]
 
-   (ni->ifoutdiscards)++;
 
- }
 
- void snmp_inc_iflist(void)
 
- {
 
-   struct mib_list_node *if_node = NULL;
 
-  803472c:	2300      	movs	r3, #0
 
-  803472e:	f842 3d04 	str.w	r3, [r2, #-4]!
 
-   snmp_mib_node_insert(&iflist_root, iflist_root.count + 1, &if_node);
 
-  8034732:	3101      	adds	r1, #1
 
-  8034734:	f000 fcd4 	bl	80350e0 <snmp_mib_node_insert>
 
-   /* enable getnext traversal on filled table */
 
-   iftable.maxlength = 1;
 
-  8034738:	4b02      	ldr	r3, [pc, #8]	; (8034744 <snmp_inc_iflist+0x20>)
 
-  803473a:	2201      	movs	r2, #1
 
-  803473c:	825a      	strh	r2, [r3, #18]
 
- }
 
-  803473e:	bd0e      	pop	{r1, r2, r3, pc}
 
-  8034740:	200007cc 	.word	0x200007cc
 
-  8034744:	20000944 	.word	0x20000944
 
- 08034748 <snmp_insert_arpidx_tree>:
 
- /**
 
-  * Inserts ARP table indexes (.xIfIndex.xNetAddress)
 
-  * into arp table index trees (both atTable and ipNetToMediaTable).
 
-  */
 
- void snmp_insert_arpidx_tree(struct netif *ni, ip_addr_t *ip)
 
- {
 
-  8034748:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
 
-  803474c:	b086      	sub	sp, #24
 
-  803474e:	460c      	mov	r4, r1
 
-   struct mib_list_node *at_node;
 
-   s32_t arpidx[5];
 
-   u8_t level, tree;
 
-   LWIP_ASSERT("ni != NULL", ni != NULL);
 
-   snmp_netiftoifindex(ni, &arpidx[0]);
 
-  8034750:	a901      	add	r1, sp, #4
 
-  8034752:	f000 fc6d 	bl	8035030 <snmp_netiftoifindex>
 
-   snmp_iptooid(ip, &arpidx[1]);
 
-  8034756:	4620      	mov	r0, r4
 
-  8034758:	a902      	add	r1, sp, #8
 
-  803475a:	f000 fc86 	bl	803506a <snmp_iptooid>
 
-   for (tree = 0; tree < 2; tree++)
 
-   {
 
-     if (tree == 0)
 
-     {
 
-       at_rn = &arptree_root;
 
-  803475e:	f8df 80a0 	ldr.w	r8, [pc, #160]	; 8034800 <snmp_insert_arpidx_tree+0xb8>
 
-   LWIP_ASSERT("ni != NULL", ni != NULL);
 
-   snmp_netiftoifindex(ni, &arpidx[0]);
 
-   snmp_iptooid(ip, &arpidx[1]);
 
-   for (tree = 0; tree < 2; tree++)
 
-  8034762:	2500      	movs	r5, #0
 
-   {
 
-     if (tree == 0)
 
-     {
 
-       at_rn = &arptree_root;
 
-  8034764:	4c1f      	ldr	r4, [pc, #124]	; (80347e4 <snmp_insert_arpidx_tree+0x9c>)
 
-               else
 
-               {
 
-                 at_rn->get_object_def = ip_ntomentry_get_object_def;
 
-                 at_rn->get_value = ip_ntomentry_get_value;
 
-               }
 
-               at_rn->set_test = noleafs_set_test;
 
-  8034766:	f8df 909c 	ldr.w	r9, [pc, #156]	; 8034804 <snmp_insert_arpidx_tree+0xbc>
 
-               at_rn->set_value = noleafs_set_value;
 
-  803476a:	f8df a09c 	ldr.w	sl, [pc, #156]	; 8034808 <snmp_insert_arpidx_tree+0xc0>
 
-   for (tree = 0; tree < 2; tree++)
 
-   {
 
-     if (tree == 0)
 
-     {
 
-       at_rn = &arptree_root;
 
-  803476e:	2d00      	cmp	r5, #0
 
-  8034770:	bf18      	it	ne
 
-  8034772:	4644      	movne	r4, r8
 
-     }
 
-     else
 
-     {
 
-       at_rn = &ipntomtree_root;
 
-  8034774:	2600      	movs	r6, #0
 
-     }
 
-     for (level = 0; level < 5; level++)
 
-     {
 
-       at_node = NULL;
 
-  8034776:	2300      	movs	r3, #0
 
-  8034778:	9300      	str	r3, [sp, #0]
 
-       snmp_mib_node_insert(at_rn, arpidx[level], &at_node);
 
-  803477a:	ab01      	add	r3, sp, #4
 
-  803477c:	4620      	mov	r0, r4
 
-  803477e:	f853 1026 	ldr.w	r1, [r3, r6, lsl #2]
 
-  8034782:	aa00      	add	r2, sp, #0
 
-  8034784:	b2f7      	uxtb	r7, r6
 
-  8034786:	f000 fcab 	bl	80350e0 <snmp_mib_node_insert>
 
-       if ((level != 4) && (at_node != NULL))
 
-  803478a:	2f04      	cmp	r7, #4
 
-  803478c:	d01d      	beq.n	80347ca <snmp_insert_arpidx_tree+0x82>
 
-  803478e:	9b00      	ldr	r3, [sp, #0]
 
-  8034790:	b1db      	cbz	r3, 80347ca <snmp_insert_arpidx_tree+0x82>
 
-       {
 
-         if (at_node->nptr == NULL)
 
-  8034792:	68dc      	ldr	r4, [r3, #12]
 
-  8034794:	b9cc      	cbnz	r4, 80347ca <snmp_insert_arpidx_tree+0x82>
 
-         {
 
-           at_rn = snmp_mib_lrn_alloc();
 
-  8034796:	f000 fc81 	bl	803509c <snmp_mib_lrn_alloc>
 
-           at_node->nptr = (struct mib_node*)at_rn;
 
-  803479a:	9b00      	ldr	r3, [sp, #0]
 
-       snmp_mib_node_insert(at_rn, arpidx[level], &at_node);
 
-       if ((level != 4) && (at_node != NULL))
 
-       {
 
-         if (at_node->nptr == NULL)
 
-         {
 
-           at_rn = snmp_mib_lrn_alloc();
 
-  803479c:	4604      	mov	r4, r0
 
-           at_node->nptr = (struct mib_node*)at_rn;
 
-  803479e:	60d8      	str	r0, [r3, #12]
 
-           if (at_rn != NULL)
 
-  80347a0:	b920      	cbnz	r0, 80347ac <snmp_insert_arpidx_tree+0x64>
 
-   LWIP_ASSERT("ni != NULL", ni != NULL);
 
-   snmp_netiftoifindex(ni, &arpidx[0]);
 
-   snmp_iptooid(ip, &arpidx[1]);
 
-   for (tree = 0; tree < 2; tree++)
 
-  80347a2:	3501      	adds	r5, #1
 
-  80347a4:	b2ed      	uxtb	r5, r5
 
-  80347a6:	2d02      	cmp	r5, #2
 
-  80347a8:	d1dc      	bne.n	8034764 <snmp_insert_arpidx_tree+0x1c>
 
-  80347aa:	e012      	b.n	80347d2 <snmp_insert_arpidx_tree+0x8a>
 
-         {
 
-           at_rn = snmp_mib_lrn_alloc();
 
-           at_node->nptr = (struct mib_node*)at_rn;
 
-           if (at_rn != NULL)
 
-           {
 
-             if (level == 3)
 
-  80347ac:	2f03      	cmp	r7, #3
 
-  80347ae:	d10c      	bne.n	80347ca <snmp_insert_arpidx_tree+0x82>
 
-             {
 
-               if (tree == 0)
 
-  80347b0:	b91d      	cbnz	r5, 80347ba <snmp_insert_arpidx_tree+0x72>
 
-               {
 
-                 at_rn->get_object_def = atentry_get_object_def;
 
-  80347b2:	4b0d      	ldr	r3, [pc, #52]	; (80347e8 <snmp_insert_arpidx_tree+0xa0>)
 
-  80347b4:	6003      	str	r3, [r0, #0]
 
-                 at_rn->get_value = atentry_get_value;
 
-  80347b6:	4b0d      	ldr	r3, [pc, #52]	; (80347ec <snmp_insert_arpidx_tree+0xa4>)
 
-  80347b8:	e002      	b.n	80347c0 <snmp_insert_arpidx_tree+0x78>
 
-               }
 
-               else
 
-               {
 
-                 at_rn->get_object_def = ip_ntomentry_get_object_def;
 
-  80347ba:	4b0d      	ldr	r3, [pc, #52]	; (80347f0 <snmp_insert_arpidx_tree+0xa8>)
 
-  80347bc:	6003      	str	r3, [r0, #0]
 
-                 at_rn->get_value = ip_ntomentry_get_value;
 
-  80347be:	4b0d      	ldr	r3, [pc, #52]	; (80347f4 <snmp_insert_arpidx_tree+0xac>)
 
-  80347c0:	6063      	str	r3, [r4, #4]
 
-               }
 
-               at_rn->set_test = noleafs_set_test;
 
-  80347c2:	f8c4 9008 	str.w	r9, [r4, #8]
 
-               at_rn->set_value = noleafs_set_value;
 
-  80347c6:	f8c4 a00c 	str.w	sl, [r4, #12]
 
-  80347ca:	3601      	adds	r6, #1
 
-     }
 
-     else
 
-     {
 
-       at_rn = &ipntomtree_root;
 
-     }
 
-     for (level = 0; level < 5; level++)
 
-  80347cc:	2e05      	cmp	r6, #5
 
-  80347ce:	d1d2      	bne.n	8034776 <snmp_insert_arpidx_tree+0x2e>
 
-  80347d0:	e7e7      	b.n	80347a2 <snmp_insert_arpidx_tree+0x5a>
 
-         }
 
-       }
 
-     }
 
-   }
 
-   /* enable getnext traversal on filled tables */
 
-   at.maxlength = 1;
 
-  80347d2:	4a09      	ldr	r2, [pc, #36]	; (80347f8 <snmp_insert_arpidx_tree+0xb0>)
 
-  80347d4:	2301      	movs	r3, #1
 
-  80347d6:	8253      	strh	r3, [r2, #18]
 
-   ipntomtable.maxlength = 1;
 
-  80347d8:	4a08      	ldr	r2, [pc, #32]	; (80347fc <snmp_insert_arpidx_tree+0xb4>)
 
-  80347da:	8253      	strh	r3, [r2, #18]
 
- }
 
-  80347dc:	b006      	add	sp, #24
 
-  80347de:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
 
-  80347e2:	bf00      	nop
 
-  80347e4:	20000918 	.word	0x20000918
 
-  80347e8:	080341d1 	.word	0x080341d1
 
-  80347ec:	08034129 	.word	0x08034129
 
-  80347f0:	080342b5 	.word	0x080342b5
 
-  80347f4:	080340cd 	.word	0x080340cd
 
-  80347f8:	2000073c 	.word	0x2000073c
 
-  80347fc:	20000720 	.word	0x20000720
 
-  8034800:	20000a08 	.word	0x20000a08
 
-  8034804:	080339eb 	.word	0x080339eb
 
-  8034808:	080339ef 	.word	0x080339ef
 
- 0803480c <snmp_delete_arpidx_tree>:
 
- /**
 
-  * Removes ARP table indexes (.xIfIndex.xNetAddress)
 
-  * from arp table index trees.
 
-  */
 
- void snmp_delete_arpidx_tree(struct netif *ni, ip_addr_t *ip)
 
- {
 
-  803480c:	b5f0      	push	{r4, r5, r6, r7, lr}
 
-  803480e:	b091      	sub	sp, #68	; 0x44
 
-  8034810:	460c      	mov	r4, r1
 
-   struct mib_list_rootnode *at_rn, *next, *del_rn[5];
 
-   struct mib_list_node *at_n, *del_n[5];
 
-   s32_t arpidx[5];
 
-   u8_t fc, tree, level, del_cnt;
 
-   snmp_netiftoifindex(ni, &arpidx[0]);
 
-  8034812:	a90b      	add	r1, sp, #44	; 0x2c
 
-  8034814:	f000 fc0c 	bl	8035030 <snmp_netiftoifindex>
 
-   snmp_iptooid(ip, &arpidx[1]);
 
-  8034818:	4620      	mov	r0, r4
 
-  803481a:	a90c      	add	r1, sp, #48	; 0x30
 
-  803481c:	f000 fc25 	bl	803506a <snmp_iptooid>
 
-   for (tree = 0; tree < 2; tree++)
 
-  8034820:	2700      	movs	r7, #0
 
-   {
 
-     /* mark nodes for deletion */
 
-     if (tree == 0)
 
-     {
 
-       at_rn = &arptree_root;
 
-  8034822:	4b26      	ldr	r3, [pc, #152]	; (80348bc <snmp_delete_arpidx_tree+0xb0>)
 
-  8034824:	4d26      	ldr	r5, [pc, #152]	; (80348c0 <snmp_delete_arpidx_tree+0xb4>)
 
-     }
 
-     else
 
-     {
 
-       at_rn = &ipntomtree_root;
 
-  8034826:	2600      	movs	r6, #0
 
-   for (tree = 0; tree < 2; tree++)
 
-   {
 
-     /* mark nodes for deletion */
 
-     if (tree == 0)
 
-     {
 
-       at_rn = &arptree_root;
 
-  8034828:	2f00      	cmp	r7, #0
 
-  803482a:	bf08      	it	eq
 
-  803482c:	461d      	moveq	r5, r3
 
-     }
 
-     else
 
-     {
 
-       at_rn = &ipntomtree_root;
 
-  803482e:	4634      	mov	r4, r6
 
-     }
 
-     level = 0;
 
-     del_cnt = 0;
 
-     while ((level < 5) && (at_rn != NULL))
 
-     {
 
-       fc = snmp_mib_node_find(at_rn, arpidx[level], &at_n);
 
-  8034830:	ab0b      	add	r3, sp, #44	; 0x2c
 
-  8034832:	4628      	mov	r0, r5
 
-  8034834:	58f1      	ldr	r1, [r6, r3]
 
-  8034836:	aa00      	add	r2, sp, #0
 
-  8034838:	f000 fc8d 	bl	8035156 <snmp_mib_node_find>
 
-  803483c:	b2c0      	uxtb	r0, r0
 
-       if (fc == 0)
 
-  803483e:	b198      	cbz	r0, 8034868 <snmp_delete_arpidx_tree+0x5c>
 
-       {
 
-         /* arpidx[level] does not exist */
 
-         del_cnt = 0;
 
-         at_rn = NULL;
 
-       }
 
-       else if (fc == 1)
 
-  8034840:	2801      	cmp	r0, #1
 
-  8034842:	d10b      	bne.n	803485c <snmp_delete_arpidx_tree+0x50>
 
-       {
 
-         del_rn[del_cnt] = at_rn;
 
-  8034844:	ab10      	add	r3, sp, #64	; 0x40
 
-  8034846:	eb03 0284 	add.w	r2, r3, r4, lsl #2
 
-         del_n[del_cnt] = at_n;
 
-  803484a:	9b00      	ldr	r3, [sp, #0]
 
-         del_cnt = 0;
 
-         at_rn = NULL;
 
-       }
 
-       else if (fc == 1)
 
-       {
 
-         del_rn[del_cnt] = at_rn;
 
-  803484c:	f842 5c3c 	str.w	r5, [r2, #-60]
 
-         del_n[del_cnt] = at_n;
 
-         del_cnt++;
 
-  8034850:	3401      	adds	r4, #1
 
-         at_rn = NULL;
 
-       }
 
-       else if (fc == 1)
 
-       {
 
-         del_rn[del_cnt] = at_rn;
 
-         del_n[del_cnt] = at_n;
 
-  8034852:	f842 3c28 	str.w	r3, [r2, #-40]
 
-         del_cnt++;
 
-  8034856:	b2e4      	uxtb	r4, r4
 
-         at_rn = (struct mib_list_rootnode*)(at_n->nptr);
 
-  8034858:	68dd      	ldr	r5, [r3, #12]
 
-  803485a:	e007      	b.n	803486c <snmp_delete_arpidx_tree+0x60>
 
-       }
 
-       else if (fc == 2)
 
-  803485c:	2802      	cmp	r0, #2
 
-  803485e:	d105      	bne.n	803486c <snmp_delete_arpidx_tree+0x60>
 
-       {
 
-         /* reset delete (2 or more childs) */
 
-         del_cnt = 0;
 
-         at_rn = (struct mib_list_rootnode*)(at_n->nptr);
 
-  8034860:	9b00      	ldr	r3, [sp, #0]
 
-         at_rn = (struct mib_list_rootnode*)(at_n->nptr);
 
-       }
 
-       else if (fc == 2)
 
-       {
 
-         /* reset delete (2 or more childs) */
 
-         del_cnt = 0;
 
-  8034862:	2400      	movs	r4, #0
 
-         at_rn = (struct mib_list_rootnode*)(at_n->nptr);
 
-  8034864:	68dd      	ldr	r5, [r3, #12]
 
-  8034866:	e001      	b.n	803486c <snmp_delete_arpidx_tree+0x60>
 
-     {
 
-       fc = snmp_mib_node_find(at_rn, arpidx[level], &at_n);
 
-       if (fc == 0)
 
-       {
 
-         /* arpidx[level] does not exist */
 
-         del_cnt = 0;
 
-  8034868:	4604      	mov	r4, r0
 
-         at_rn = NULL;
 
-  803486a:	4605      	mov	r5, r0
 
-  803486c:	3604      	adds	r6, #4
 
-     {
 
-       at_rn = &ipntomtree_root;
 
-     }
 
-     level = 0;
 
-     del_cnt = 0;
 
-     while ((level < 5) && (at_rn != NULL))
 
-  803486e:	2e14      	cmp	r6, #20
 
-  8034870:	d011      	beq.n	8034896 <snmp_delete_arpidx_tree+0x8a>
 
-  8034872:	2d00      	cmp	r5, #0
 
-  8034874:	d1dc      	bne.n	8034830 <snmp_delete_arpidx_tree+0x24>
 
-  8034876:	e00e      	b.n	8034896 <snmp_delete_arpidx_tree+0x8a>
 
-       level++;
 
-     }
 
-     /* delete marked index nodes */
 
-     while (del_cnt > 0)
 
-     {
 
-       del_cnt--;
 
-  8034878:	3c01      	subs	r4, #1
 
-  803487a:	b2e4      	uxtb	r4, r4
 
-       at_rn = del_rn[del_cnt];
 
-  803487c:	aa10      	add	r2, sp, #64	; 0x40
 
-  803487e:	eb02 0384 	add.w	r3, r2, r4, lsl #2
 
-       at_n = del_n[del_cnt];
 
-  8034882:	f853 1c28 	ldr.w	r1, [r3, #-40]
 
-     /* delete marked index nodes */
 
-     while (del_cnt > 0)
 
-     {
 
-       del_cnt--;
 
-       at_rn = del_rn[del_cnt];
 
-  8034886:	f853 0c3c 	ldr.w	r0, [r3, #-60]
 
-       at_n = del_n[del_cnt];
 
-  803488a:	9100      	str	r1, [sp, #0]
 
-       next = snmp_mib_node_delete(at_rn, at_n);
 
-  803488c:	f000 fc7d 	bl	803518a <snmp_mib_node_delete>
 
-       if (next != NULL)
 
-  8034890:	b108      	cbz	r0, 8034896 <snmp_delete_arpidx_tree+0x8a>
 
-       {
 
-         LWIP_ASSERT("next_count == 0",next->count == 0);
 
-         snmp_mib_lrn_free(next);
 
-  8034892:	f000 fc21 	bl	80350d8 <snmp_mib_lrn_free>
 
-         at_rn = (struct mib_list_rootnode*)(at_n->nptr);
 
-       }
 
-       level++;
 
-     }
 
-     /* delete marked index nodes */
 
-     while (del_cnt > 0)
 
-  8034896:	2c00      	cmp	r4, #0
 
-  8034898:	d1ee      	bne.n	8034878 <snmp_delete_arpidx_tree+0x6c>
 
-   u8_t fc, tree, level, del_cnt;
 
-   snmp_netiftoifindex(ni, &arpidx[0]);
 
-   snmp_iptooid(ip, &arpidx[1]);
 
-   for (tree = 0; tree < 2; tree++)
 
-  803489a:	3701      	adds	r7, #1
 
-  803489c:	b2ff      	uxtb	r7, r7
 
-  803489e:	2f02      	cmp	r7, #2
 
-  80348a0:	d1bf      	bne.n	8034822 <snmp_delete_arpidx_tree+0x16>
 
-         snmp_mib_lrn_free(next);
 
-       }
 
-     }
 
-   }
 
-   /* disable getnext traversal on empty tables */
 
-   if(arptree_root.count == 0) at.maxlength = 0;
 
-  80348a2:	4b06      	ldr	r3, [pc, #24]	; (80348bc <snmp_delete_arpidx_tree+0xb0>)
 
-  80348a4:	8b9b      	ldrh	r3, [r3, #28]
 
-  80348a6:	b90b      	cbnz	r3, 80348ac <snmp_delete_arpidx_tree+0xa0>
 
-  80348a8:	4b06      	ldr	r3, [pc, #24]	; (80348c4 <snmp_delete_arpidx_tree+0xb8>)
 
-  80348aa:	825c      	strh	r4, [r3, #18]
 
-   if(ipntomtree_root.count == 0) ipntomtable.maxlength = 0;
 
-  80348ac:	4b04      	ldr	r3, [pc, #16]	; (80348c0 <snmp_delete_arpidx_tree+0xb4>)
 
-  80348ae:	8b9b      	ldrh	r3, [r3, #28]
 
-  80348b0:	b90b      	cbnz	r3, 80348b6 <snmp_delete_arpidx_tree+0xaa>
 
-  80348b2:	4a05      	ldr	r2, [pc, #20]	; (80348c8 <snmp_delete_arpidx_tree+0xbc>)
 
-  80348b4:	8253      	strh	r3, [r2, #18]
 
- }
 
-  80348b6:	b011      	add	sp, #68	; 0x44
 
-  80348b8:	bdf0      	pop	{r4, r5, r6, r7, pc}
 
-  80348ba:	bf00      	nop
 
-  80348bc:	20000918 	.word	0x20000918
 
-  80348c0:	20000a08 	.word	0x20000a08
 
-  80348c4:	2000073c 	.word	0x2000073c
 
-  80348c8:	20000720 	.word	0x20000720
 
- 080348cc <snmp_inc_ipinreceives>:
 
- void snmp_inc_ipinreceives(void)
 
- {
 
-   ipinreceives++;
 
-  80348cc:	4b02      	ldr	r3, [pc, #8]	; (80348d8 <snmp_inc_ipinreceives+0xc>)
 
-  80348ce:	681a      	ldr	r2, [r3, #0]
 
-  80348d0:	3201      	adds	r2, #1
 
-  80348d2:	601a      	str	r2, [r3, #0]
 
-  80348d4:	4770      	bx	lr
 
-  80348d6:	bf00      	nop
 
-  80348d8:	2000c4d4 	.word	0x2000c4d4
 
- 080348dc <snmp_inc_ipinhdrerrors>:
 
- }
 
- void snmp_inc_ipinhdrerrors(void)
 
- {
 
-   ipinhdrerrors++;
 
-  80348dc:	4b02      	ldr	r3, [pc, #8]	; (80348e8 <snmp_inc_ipinhdrerrors+0xc>)
 
-  80348de:	681a      	ldr	r2, [r3, #0]
 
-  80348e0:	3201      	adds	r2, #1
 
-  80348e2:	601a      	str	r2, [r3, #0]
 
-  80348e4:	4770      	bx	lr
 
-  80348e6:	bf00      	nop
 
-  80348e8:	2000c45c 	.word	0x2000c45c
 
- 080348ec <snmp_inc_ipinaddrerrors>:
 
- }
 
- void snmp_inc_ipinaddrerrors(void)
 
- {
 
-   ipinaddrerrors++;
 
-  80348ec:	4b02      	ldr	r3, [pc, #8]	; (80348f8 <snmp_inc_ipinaddrerrors+0xc>)
 
-  80348ee:	681a      	ldr	r2, [r3, #0]
 
-  80348f0:	3201      	adds	r2, #1
 
-  80348f2:	601a      	str	r2, [r3, #0]
 
-  80348f4:	4770      	bx	lr
 
-  80348f6:	bf00      	nop
 
-  80348f8:	2000c440 	.word	0x2000c440
 
- 080348fc <snmp_inc_ipinunknownprotos>:
 
-   ipforwdatagrams++;
 
- }
 
- void snmp_inc_ipinunknownprotos(void)
 
- {
 
-   ipinunknownprotos++;
 
-  80348fc:	4b02      	ldr	r3, [pc, #8]	; (8034908 <snmp_inc_ipinunknownprotos+0xc>)
 
-  80348fe:	681a      	ldr	r2, [r3, #0]
 
-  8034900:	3201      	adds	r2, #1
 
-  8034902:	601a      	str	r2, [r3, #0]
 
-  8034904:	4770      	bx	lr
 
-  8034906:	bf00      	nop
 
-  8034908:	2000c49c 	.word	0x2000c49c
 
- 0803490c <snmp_inc_ipindiscards>:
 
- }
 
- void snmp_inc_ipindiscards(void)
 
- {
 
-   ipindiscards++;
 
-  803490c:	4b02      	ldr	r3, [pc, #8]	; (8034918 <snmp_inc_ipindiscards+0xc>)
 
-  803490e:	681a      	ldr	r2, [r3, #0]
 
-  8034910:	3201      	adds	r2, #1
 
-  8034912:	601a      	str	r2, [r3, #0]
 
-  8034914:	4770      	bx	lr
 
-  8034916:	bf00      	nop
 
-  8034918:	2000c528 	.word	0x2000c528
 
- 0803491c <snmp_inc_ipindelivers>:
 
- }
 
- void snmp_inc_ipindelivers(void)
 
- {
 
-   ipindelivers++;
 
-  803491c:	4b02      	ldr	r3, [pc, #8]	; (8034928 <snmp_inc_ipindelivers+0xc>)
 
-  803491e:	681a      	ldr	r2, [r3, #0]
 
-  8034920:	3201      	adds	r2, #1
 
-  8034922:	601a      	str	r2, [r3, #0]
 
-  8034924:	4770      	bx	lr
 
-  8034926:	bf00      	nop
 
-  8034928:	2000c560 	.word	0x2000c560
 
- 0803492c <snmp_inc_ipoutrequests>:
 
- }
 
- void snmp_inc_ipoutrequests(void)
 
- {
 
-   ipoutrequests++;
 
-  803492c:	4b02      	ldr	r3, [pc, #8]	; (8034938 <snmp_inc_ipoutrequests+0xc>)
 
-  803492e:	681a      	ldr	r2, [r3, #0]
 
-  8034930:	3201      	adds	r2, #1
 
-  8034932:	601a      	str	r2, [r3, #0]
 
-  8034934:	4770      	bx	lr
 
-  8034936:	bf00      	nop
 
-  8034938:	2000c548 	.word	0x2000c548
 
- 0803493c <snmp_inc_ipoutdiscards>:
 
- }
 
- void snmp_inc_ipoutdiscards(void)
 
- {
 
-   ipoutdiscards++;
 
-  803493c:	4b02      	ldr	r3, [pc, #8]	; (8034948 <snmp_inc_ipoutdiscards+0xc>)
 
-  803493e:	681a      	ldr	r2, [r3, #0]
 
-  8034940:	3201      	adds	r2, #1
 
-  8034942:	601a      	str	r2, [r3, #0]
 
-  8034944:	4770      	bx	lr
 
-  8034946:	bf00      	nop
 
-  8034948:	2000c4ec 	.word	0x2000c4ec
 
- 0803494c <snmp_inc_ipoutnoroutes>:
 
- }
 
- void snmp_inc_ipoutnoroutes(void)
 
- {
 
-   ipoutnoroutes++;
 
-  803494c:	4b02      	ldr	r3, [pc, #8]	; (8034958 <snmp_inc_ipoutnoroutes+0xc>)
 
-  803494e:	681a      	ldr	r2, [r3, #0]
 
-  8034950:	3201      	adds	r2, #1
 
-  8034952:	601a      	str	r2, [r3, #0]
 
-  8034954:	4770      	bx	lr
 
-  8034956:	bf00      	nop
 
-  8034958:	2000c56c 	.word	0x2000c56c
 
- 0803495c <snmp_insert_ipaddridx_tree>:
 
- /**
 
-  * Inserts ipAddrTable indexes (.ipAdEntAddr)
 
-  * into index tree.
 
-  */
 
- void snmp_insert_ipaddridx_tree(struct netif *ni)
 
- {
 
-  803495c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
 
-  8034960:	b086      	sub	sp, #24
 
-   struct mib_list_node *ipa_node;
 
-   s32_t ipaddridx[4];
 
-   u8_t level;
 
-   LWIP_ASSERT("ni != NULL", ni != NULL);
 
-   snmp_iptooid(&ni->ip_addr, &ipaddridx[0]);
 
-  8034962:	3004      	adds	r0, #4
 
-  8034964:	a902      	add	r1, sp, #8
 
-  8034966:	f000 fb80 	bl	803506a <snmp_iptooid>
 
-   level = 0;
 
-   ipa_rn = &ipaddrtree_root;
 
-  803496a:	4c17      	ldr	r4, [pc, #92]	; (80349c8 <snmp_insert_ipaddridx_tree+0x6c>)
 
-         ipa_node->nptr = (struct mib_node*)ipa_rn;
 
-         if (ipa_rn != NULL)
 
-         {
 
-           if (level == 2)
 
-           {
 
-             ipa_rn->get_object_def = ip_addrentry_get_object_def;
 
-  803496c:	4f17      	ldr	r7, [pc, #92]	; (80349cc <snmp_insert_ipaddridx_tree+0x70>)
 
-             ipa_rn->get_value = ip_addrentry_get_value;
 
-  803496e:	f8df 806c 	ldr.w	r8, [pc, #108]	; 80349dc <snmp_insert_ipaddridx_tree+0x80>
 
-   struct mib_list_node *ipa_node;
 
-   s32_t ipaddridx[4];
 
-   u8_t level;
 
-   LWIP_ASSERT("ni != NULL", ni != NULL);
 
-   snmp_iptooid(&ni->ip_addr, &ipaddridx[0]);
 
-  8034972:	2500      	movs	r5, #0
 
-   level = 0;
 
-   ipa_rn = &ipaddrtree_root;
 
-   while (level < 4)
 
-   {
 
-     ipa_node = NULL;
 
-  8034974:	2300      	movs	r3, #0
 
-  8034976:	9301      	str	r3, [sp, #4]
 
-     snmp_mib_node_insert(ipa_rn, ipaddridx[level], &ipa_node);
 
-  8034978:	ab02      	add	r3, sp, #8
 
-  803497a:	4620      	mov	r0, r4
 
-  803497c:	f853 1025 	ldr.w	r1, [r3, r5, lsl #2]
 
-  8034980:	aa01      	add	r2, sp, #4
 
-  8034982:	b2ee      	uxtb	r6, r5
 
-  8034984:	f000 fbac 	bl	80350e0 <snmp_mib_node_insert>
 
-     if ((level != 3) && (ipa_node != NULL))
 
-  8034988:	2e03      	cmp	r6, #3
 
-  803498a:	d015      	beq.n	80349b8 <snmp_insert_ipaddridx_tree+0x5c>
 
-  803498c:	9b01      	ldr	r3, [sp, #4]
 
-  803498e:	b19b      	cbz	r3, 80349b8 <snmp_insert_ipaddridx_tree+0x5c>
 
-     {
 
-       if (ipa_node->nptr == NULL)
 
-  8034990:	68dc      	ldr	r4, [r3, #12]
 
-  8034992:	b98c      	cbnz	r4, 80349b8 <snmp_insert_ipaddridx_tree+0x5c>
 
-       {
 
-         ipa_rn = snmp_mib_lrn_alloc();
 
-  8034994:	f000 fb82 	bl	803509c <snmp_mib_lrn_alloc>
 
-         ipa_node->nptr = (struct mib_node*)ipa_rn;
 
-  8034998:	9b01      	ldr	r3, [sp, #4]
 
-     snmp_mib_node_insert(ipa_rn, ipaddridx[level], &ipa_node);
 
-     if ((level != 3) && (ipa_node != NULL))
 
-     {
 
-       if (ipa_node->nptr == NULL)
 
-       {
 
-         ipa_rn = snmp_mib_lrn_alloc();
 
-  803499a:	4604      	mov	r4, r0
 
-         ipa_node->nptr = (struct mib_node*)ipa_rn;
 
-  803499c:	60d8      	str	r0, [r3, #12]
 
-         if (ipa_rn != NULL)
 
-  803499e:	b918      	cbnz	r0, 80349a8 <snmp_insert_ipaddridx_tree+0x4c>
 
-       }
 
-     }
 
-     level++;
 
-   }
 
-   /* enable getnext traversal on filled table */
 
-   ipaddrtable.maxlength = 1;
 
-  80349a0:	4b0b      	ldr	r3, [pc, #44]	; (80349d0 <snmp_insert_ipaddridx_tree+0x74>)
 
-  80349a2:	2201      	movs	r2, #1
 
-  80349a4:	825a      	strh	r2, [r3, #18]
 
-  80349a6:	e00b      	b.n	80349c0 <snmp_insert_ipaddridx_tree+0x64>
 
-       {
 
-         ipa_rn = snmp_mib_lrn_alloc();
 
-         ipa_node->nptr = (struct mib_node*)ipa_rn;
 
-         if (ipa_rn != NULL)
 
-         {
 
-           if (level == 2)
 
-  80349a8:	2e02      	cmp	r6, #2
 
-  80349aa:	d105      	bne.n	80349b8 <snmp_insert_ipaddridx_tree+0x5c>
 
-           {
 
-             ipa_rn->get_object_def = ip_addrentry_get_object_def;
 
-             ipa_rn->get_value = ip_addrentry_get_value;
 
-             ipa_rn->set_test = noleafs_set_test;
 
-  80349ac:	4b09      	ldr	r3, [pc, #36]	; (80349d4 <snmp_insert_ipaddridx_tree+0x78>)
 
-         if (ipa_rn != NULL)
 
-         {
 
-           if (level == 2)
 
-           {
 
-             ipa_rn->get_object_def = ip_addrentry_get_object_def;
 
-             ipa_rn->get_value = ip_addrentry_get_value;
 
-  80349ae:	e880 0180 	stmia.w	r0, {r7, r8}
 
-             ipa_rn->set_test = noleafs_set_test;
 
-  80349b2:	6083      	str	r3, [r0, #8]
 
-             ipa_rn->set_value = noleafs_set_value;
 
-  80349b4:	4b08      	ldr	r3, [pc, #32]	; (80349d8 <snmp_insert_ipaddridx_tree+0x7c>)
 
-  80349b6:	60c3      	str	r3, [r0, #12]
 
-  80349b8:	3501      	adds	r5, #1
 
-   LWIP_ASSERT("ni != NULL", ni != NULL);
 
-   snmp_iptooid(&ni->ip_addr, &ipaddridx[0]);
 
-   level = 0;
 
-   ipa_rn = &ipaddrtree_root;
 
-   while (level < 4)
 
-  80349ba:	2d04      	cmp	r5, #4
 
-  80349bc:	d1da      	bne.n	8034974 <snmp_insert_ipaddridx_tree+0x18>
 
-  80349be:	e7ef      	b.n	80349a0 <snmp_insert_ipaddridx_tree+0x44>
 
-     }
 
-     level++;
 
-   }
 
-   /* enable getnext traversal on filled table */
 
-   ipaddrtable.maxlength = 1;
 
- }
 
-  80349c0:	b006      	add	sp, #24
 
-  80349c2:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 
-  80349c6:	bf00      	nop
 
-  80349c8:	20000874 	.word	0x20000874
 
-  80349cc:	08034271 	.word	0x08034271
 
-  80349d0:	200008f8 	.word	0x200008f8
 
-  80349d4:	080339eb 	.word	0x080339eb
 
-  80349d8:	080339ef 	.word	0x080339ef
 
-  80349dc:	08034061 	.word	0x08034061
 
- 080349e0 <snmp_delete_ipaddridx_tree>:
 
- /**
 
-  * Removes ipAddrTable indexes (.ipAdEntAddr)
 
-  * from index tree.
 
-  */
 
- void snmp_delete_ipaddridx_tree(struct netif *ni)
 
- {
 
-  80349e0:	b570      	push	{r4, r5, r6, lr}
 
-  80349e2:	b08e      	sub	sp, #56	; 0x38
 
-   struct mib_list_node *ipa_n, *del_n[4];
 
-   s32_t ipaddridx[4];
 
-   u8_t fc, level, del_cnt;
 
-   LWIP_ASSERT("ni != NULL", ni != NULL);
 
-   snmp_iptooid(&ni->ip_addr, &ipaddridx[0]);
 
-  80349e4:	3004      	adds	r0, #4
 
-  80349e6:	a90a      	add	r1, sp, #40	; 0x28
 
-  80349e8:	f000 fb3f 	bl	803506a <snmp_iptooid>
 
-  80349ec:	2600      	movs	r6, #0
 
-   /* mark nodes for deletion */
 
-   level = 0;
 
-   del_cnt = 0;
 
-   ipa_rn = &ipaddrtree_root;
 
-  80349ee:	4d1f      	ldr	r5, [pc, #124]	; (8034a6c <snmp_delete_ipaddridx_tree+0x8c>)
 
-   LWIP_ASSERT("ni != NULL", ni != NULL);
 
-   snmp_iptooid(&ni->ip_addr, &ipaddridx[0]);
 
-   /* mark nodes for deletion */
 
-   level = 0;
 
-   del_cnt = 0;
 
-  80349f0:	4634      	mov	r4, r6
 
-   ipa_rn = &ipaddrtree_root;
 
-   while ((level < 4) && (ipa_rn != NULL))
 
-   {
 
-     fc = snmp_mib_node_find(ipa_rn, ipaddridx[level], &ipa_n);
 
-  80349f2:	ab0a      	add	r3, sp, #40	; 0x28
 
-  80349f4:	4628      	mov	r0, r5
 
-  80349f6:	58f1      	ldr	r1, [r6, r3]
 
-  80349f8:	aa01      	add	r2, sp, #4
 
-  80349fa:	f000 fbac 	bl	8035156 <snmp_mib_node_find>
 
-  80349fe:	b2c0      	uxtb	r0, r0
 
-     if (fc == 0)
 
-  8034a00:	b198      	cbz	r0, 8034a2a <snmp_delete_ipaddridx_tree+0x4a>
 
-     {
 
-       /* ipaddridx[level] does not exist */
 
-       del_cnt = 0;
 
-       ipa_rn = NULL;
 
-     }
 
-     else if (fc == 1)
 
-  8034a02:	2801      	cmp	r0, #1
 
-  8034a04:	d10b      	bne.n	8034a1e <snmp_delete_ipaddridx_tree+0x3e>
 
-     {
 
-       del_rn[del_cnt] = ipa_rn;
 
-  8034a06:	ab0e      	add	r3, sp, #56	; 0x38
 
-  8034a08:	eb03 0284 	add.w	r2, r3, r4, lsl #2
 
-       del_n[del_cnt] = ipa_n;
 
-  8034a0c:	9b01      	ldr	r3, [sp, #4]
 
-       del_cnt = 0;
 
-       ipa_rn = NULL;
 
-     }
 
-     else if (fc == 1)
 
-     {
 
-       del_rn[del_cnt] = ipa_rn;
 
-  8034a0e:	f842 5c30 	str.w	r5, [r2, #-48]
 
-       del_n[del_cnt] = ipa_n;
 
-       del_cnt++;
 
-  8034a12:	3401      	adds	r4, #1
 
-       ipa_rn = NULL;
 
-     }
 
-     else if (fc == 1)
 
-     {
 
-       del_rn[del_cnt] = ipa_rn;
 
-       del_n[del_cnt] = ipa_n;
 
-  8034a14:	f842 3c20 	str.w	r3, [r2, #-32]
 
-       del_cnt++;
 
-  8034a18:	b2e4      	uxtb	r4, r4
 
-       ipa_rn = (struct mib_list_rootnode*)(ipa_n->nptr);
 
-  8034a1a:	68dd      	ldr	r5, [r3, #12]
 
-  8034a1c:	e007      	b.n	8034a2e <snmp_delete_ipaddridx_tree+0x4e>
 
-     }
 
-     else if (fc == 2)
 
-  8034a1e:	2802      	cmp	r0, #2
 
-  8034a20:	d105      	bne.n	8034a2e <snmp_delete_ipaddridx_tree+0x4e>
 
-     {
 
-       /* reset delete (2 or more childs) */
 
-       del_cnt = 0;
 
-       ipa_rn = (struct mib_list_rootnode*)(ipa_n->nptr);
 
-  8034a22:	9b01      	ldr	r3, [sp, #4]
 
-       ipa_rn = (struct mib_list_rootnode*)(ipa_n->nptr);
 
-     }
 
-     else if (fc == 2)
 
-     {
 
-       /* reset delete (2 or more childs) */
 
-       del_cnt = 0;
 
-  8034a24:	2400      	movs	r4, #0
 
-       ipa_rn = (struct mib_list_rootnode*)(ipa_n->nptr);
 
-  8034a26:	68dd      	ldr	r5, [r3, #12]
 
-  8034a28:	e001      	b.n	8034a2e <snmp_delete_ipaddridx_tree+0x4e>
 
-   {
 
-     fc = snmp_mib_node_find(ipa_rn, ipaddridx[level], &ipa_n);
 
-     if (fc == 0)
 
-     {
 
-       /* ipaddridx[level] does not exist */
 
-       del_cnt = 0;
 
-  8034a2a:	4604      	mov	r4, r0
 
-       ipa_rn = NULL;
 
-  8034a2c:	4605      	mov	r5, r0
 
-   /* mark nodes for deletion */
 
-   level = 0;
 
-   del_cnt = 0;
 
-   ipa_rn = &ipaddrtree_root;
 
-   while ((level < 4) && (ipa_rn != NULL))
 
-  8034a2e:	2e0c      	cmp	r6, #12
 
-  8034a30:	d012      	beq.n	8034a58 <snmp_delete_ipaddridx_tree+0x78>
 
-  8034a32:	3604      	adds	r6, #4
 
-  8034a34:	2d00      	cmp	r5, #0
 
-  8034a36:	d1dc      	bne.n	80349f2 <snmp_delete_ipaddridx_tree+0x12>
 
-  8034a38:	e00e      	b.n	8034a58 <snmp_delete_ipaddridx_tree+0x78>
 
-     level++;
 
-   }
 
-   /* delete marked index nodes */
 
-   while (del_cnt > 0)
 
-   {
 
-     del_cnt--;
 
-  8034a3a:	3c01      	subs	r4, #1
 
-  8034a3c:	b2e4      	uxtb	r4, r4
 
-     ipa_rn = del_rn[del_cnt];
 
-  8034a3e:	aa0e      	add	r2, sp, #56	; 0x38
 
-  8034a40:	eb02 0384 	add.w	r3, r2, r4, lsl #2
 
-     ipa_n = del_n[del_cnt];
 
-  8034a44:	f853 1c20 	ldr.w	r1, [r3, #-32]
 
-   /* delete marked index nodes */
 
-   while (del_cnt > 0)
 
-   {
 
-     del_cnt--;
 
-     ipa_rn = del_rn[del_cnt];
 
-  8034a48:	f853 0c30 	ldr.w	r0, [r3, #-48]
 
-     ipa_n = del_n[del_cnt];
 
-  8034a4c:	9101      	str	r1, [sp, #4]
 
-     next = snmp_mib_node_delete(ipa_rn, ipa_n);
 
-  8034a4e:	f000 fb9c 	bl	803518a <snmp_mib_node_delete>
 
-     if (next != NULL)
 
-  8034a52:	b108      	cbz	r0, 8034a58 <snmp_delete_ipaddridx_tree+0x78>
 
-     {
 
-       LWIP_ASSERT("next_count == 0",next->count == 0);
 
-       snmp_mib_lrn_free(next);
 
-  8034a54:	f000 fb40 	bl	80350d8 <snmp_mib_lrn_free>
 
-       ipa_rn = (struct mib_list_rootnode*)(ipa_n->nptr);
 
-     }
 
-     level++;
 
-   }
 
-   /* delete marked index nodes */
 
-   while (del_cnt > 0)
 
-  8034a58:	2c00      	cmp	r4, #0
 
-  8034a5a:	d1ee      	bne.n	8034a3a <snmp_delete_ipaddridx_tree+0x5a>
 
-       LWIP_ASSERT("next_count == 0",next->count == 0);
 
-       snmp_mib_lrn_free(next);
 
-     }
 
-   }
 
-   /* disable getnext traversal on empty table */
 
-   if (ipaddrtree_root.count == 0) ipaddrtable.maxlength = 0;
 
-  8034a5c:	4b03      	ldr	r3, [pc, #12]	; (8034a6c <snmp_delete_ipaddridx_tree+0x8c>)
 
-  8034a5e:	8b9b      	ldrh	r3, [r3, #28]
 
-  8034a60:	b90b      	cbnz	r3, 8034a66 <snmp_delete_ipaddridx_tree+0x86>
 
-  8034a62:	4b03      	ldr	r3, [pc, #12]	; (8034a70 <snmp_delete_ipaddridx_tree+0x90>)
 
-  8034a64:	825c      	strh	r4, [r3, #18]
 
- }
 
-  8034a66:	b00e      	add	sp, #56	; 0x38
 
-  8034a68:	bd70      	pop	{r4, r5, r6, pc}
 
-  8034a6a:	bf00      	nop
 
-  8034a6c:	20000874 	.word	0x20000874
 
-  8034a70:	200008f8 	.word	0x200008f8
 
- 08034a74 <snmp_insert_iprteidx_tree>:
 
-  *
 
-  * @todo record sysuptime for _this_ route when it is installed
 
-  *   (needed for ipRouteAge) in the netif.
 
-  */
 
- void snmp_insert_iprteidx_tree(u8_t dflt, struct netif *ni)
 
- {
 
-  8034a74:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
 
-  8034a78:	b086      	sub	sp, #24
 
-   u8_t insert = 0;
 
-   ip_addr_t dst;
 
-   if (dflt != 0)
 
-  8034a7a:	b110      	cbz	r0, 8034a82 <snmp_insert_iprteidx_tree+0xe>
 
-   {
 
-     /* the default route 0.0.0.0 */
 
-     ip_addr_set_any(&dst);
 
-  8034a7c:	2300      	movs	r3, #0
 
-  8034a7e:	9300      	str	r3, [sp, #0]
 
-  8034a80:	e02b      	b.n	8034ada <snmp_insert_iprteidx_tree+0x66>
 
-     insert = 1;
 
-   }
 
-   else
 
-   {
 
-     /* route to the network address */
 
-     ip_addr_get_network(&dst, &ni->ip_addr, &ni->netmask);
 
-  8034a82:	688a      	ldr	r2, [r1, #8]
 
-  8034a84:	684b      	ldr	r3, [r1, #4]
 
-  8034a86:	4013      	ands	r3, r2
 
-  8034a88:	9300      	str	r3, [sp, #0]
 
-     /* exclude 0.0.0.0 network (reserved for default rte) */
 
-     if (!ip_addr_isany(&dst)) {
 
-  8034a8a:	bb33      	cbnz	r3, 8034ada <snmp_insert_iprteidx_tree+0x66>
 
-  8034a8c:	e021      	b.n	8034ad2 <snmp_insert_iprteidx_tree+0x5e>
 
-     snmp_iptooid(&dst, &iprteidx[0]);
 
-     level = 0;
 
-     iprte_rn = &iprtetree_root;
 
-     while (level < 4)
 
-     {
 
-       iprte_node = NULL;
 
-  8034a8e:	2300      	movs	r3, #0
 
-  8034a90:	9301      	str	r3, [sp, #4]
 
-       snmp_mib_node_insert(iprte_rn, iprteidx[level], &iprte_node);
 
-  8034a92:	ab02      	add	r3, sp, #8
 
-  8034a94:	4620      	mov	r0, r4
 
-  8034a96:	f853 1025 	ldr.w	r1, [r3, r5, lsl #2]
 
-  8034a9a:	aa01      	add	r2, sp, #4
 
-  8034a9c:	b2ee      	uxtb	r6, r5
 
-  8034a9e:	f000 fb1f 	bl	80350e0 <snmp_mib_node_insert>
 
-       if ((level != 3) && (iprte_node != NULL))
 
-  8034aa2:	2e03      	cmp	r6, #3
 
-  8034aa4:	d012      	beq.n	8034acc <snmp_insert_iprteidx_tree+0x58>
 
-  8034aa6:	9b01      	ldr	r3, [sp, #4]
 
-  8034aa8:	b183      	cbz	r3, 8034acc <snmp_insert_iprteidx_tree+0x58>
 
-       {
 
-         if (iprte_node->nptr == NULL)
 
-  8034aaa:	68dc      	ldr	r4, [r3, #12]
 
-  8034aac:	b974      	cbnz	r4, 8034acc <snmp_insert_iprteidx_tree+0x58>
 
-         {
 
-           iprte_rn = snmp_mib_lrn_alloc();
 
-  8034aae:	f000 faf5 	bl	803509c <snmp_mib_lrn_alloc>
 
-           iprte_node->nptr = (struct mib_node*)iprte_rn;
 
-  8034ab2:	9b01      	ldr	r3, [sp, #4]
 
-       snmp_mib_node_insert(iprte_rn, iprteidx[level], &iprte_node);
 
-       if ((level != 3) && (iprte_node != NULL))
 
-       {
 
-         if (iprte_node->nptr == NULL)
 
-         {
 
-           iprte_rn = snmp_mib_lrn_alloc();
 
-  8034ab4:	4604      	mov	r4, r0
 
-           iprte_node->nptr = (struct mib_node*)iprte_rn;
 
-  8034ab6:	60d8      	str	r0, [r3, #12]
 
-           if (iprte_rn != NULL)
 
-  8034ab8:	b158      	cbz	r0, 8034ad2 <snmp_insert_iprteidx_tree+0x5e>
 
-           {
 
-             if (level == 2)
 
-  8034aba:	2e02      	cmp	r6, #2
 
-  8034abc:	d106      	bne.n	8034acc <snmp_insert_iprteidx_tree+0x58>
 
-             {
 
-               iprte_rn->get_object_def = ip_rteentry_get_object_def;
 
-               iprte_rn->get_value = ip_rteentry_get_value;
 
-               iprte_rn->set_test = noleafs_set_test;
 
-  8034abe:	4b0d      	ldr	r3, [pc, #52]	; (8034af4 <snmp_insert_iprteidx_tree+0x80>)
 
-           iprte_node->nptr = (struct mib_node*)iprte_rn;
 
-           if (iprte_rn != NULL)
 
-           {
 
-             if (level == 2)
 
-             {
 
-               iprte_rn->get_object_def = ip_rteentry_get_object_def;
 
-  8034ac0:	f8c0 8000 	str.w	r8, [r0]
 
-               iprte_rn->get_value = ip_rteentry_get_value;
 
-               iprte_rn->set_test = noleafs_set_test;
 
-  8034ac4:	6083      	str	r3, [r0, #8]
 
-               iprte_rn->set_value = noleafs_set_value;
 
-  8034ac6:	4b0c      	ldr	r3, [pc, #48]	; (8034af8 <snmp_insert_iprteidx_tree+0x84>)
 
-           if (iprte_rn != NULL)
 
-           {
 
-             if (level == 2)
 
-             {
 
-               iprte_rn->get_object_def = ip_rteentry_get_object_def;
 
-               iprte_rn->get_value = ip_rteentry_get_value;
 
-  8034ac8:	6047      	str	r7, [r0, #4]
 
-               iprte_rn->set_test = noleafs_set_test;
 
-               iprte_rn->set_value = noleafs_set_value;
 
-  8034aca:	60c3      	str	r3, [r0, #12]
 
-  8034acc:	3501      	adds	r5, #1
 
-     u8_t level;
 
-     snmp_iptooid(&dst, &iprteidx[0]);
 
-     level = 0;
 
-     iprte_rn = &iprtetree_root;
 
-     while (level < 4)
 
-  8034ace:	2d04      	cmp	r5, #4
 
-  8034ad0:	d1dd      	bne.n	8034a8e <snmp_insert_iprteidx_tree+0x1a>
 
-       }
 
-       level++;
 
-     }
 
-   }
 
-   /* enable getnext traversal on filled table */
 
-   iprtetable.maxlength = 1;
 
-  8034ad2:	4b0a      	ldr	r3, [pc, #40]	; (8034afc <snmp_insert_iprteidx_tree+0x88>)
 
-  8034ad4:	2201      	movs	r2, #1
 
-  8034ad6:	825a      	strh	r2, [r3, #18]
 
-  8034ad8:	e009      	b.n	8034aee <snmp_insert_iprteidx_tree+0x7a>
 
-     struct mib_list_rootnode *iprte_rn;
 
-     struct mib_list_node *iprte_node;
 
-     s32_t iprteidx[4];
 
-     u8_t level;
 
-     snmp_iptooid(&dst, &iprteidx[0]);
 
-  8034ada:	4668      	mov	r0, sp
 
-  8034adc:	a902      	add	r1, sp, #8
 
-  8034ade:	f000 fac4 	bl	803506a <snmp_iptooid>
 
-  8034ae2:	2500      	movs	r5, #0
 
-     level = 0;
 
-     iprte_rn = &iprtetree_root;
 
-  8034ae4:	4c06      	ldr	r4, [pc, #24]	; (8034b00 <snmp_insert_iprteidx_tree+0x8c>)
 
-           iprte_node->nptr = (struct mib_node*)iprte_rn;
 
-           if (iprte_rn != NULL)
 
-           {
 
-             if (level == 2)
 
-             {
 
-               iprte_rn->get_object_def = ip_rteentry_get_object_def;
 
-  8034ae6:	f8df 8020 	ldr.w	r8, [pc, #32]	; 8034b08 <snmp_insert_iprteidx_tree+0x94>
 
-               iprte_rn->get_value = ip_rteentry_get_value;
 
-  8034aea:	4f06      	ldr	r7, [pc, #24]	; (8034b04 <snmp_insert_iprteidx_tree+0x90>)
 
-  8034aec:	e7cf      	b.n	8034a8e <snmp_insert_iprteidx_tree+0x1a>
 
-       level++;
 
-     }
 
-   }
 
-   /* enable getnext traversal on filled table */
 
-   iprtetable.maxlength = 1;
 
- }
 
-  8034aee:	b006      	add	sp, #24
 
-  8034af0:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 
-  8034af4:	080339eb 	.word	0x080339eb
 
-  8034af8:	080339ef 	.word	0x080339ef
 
-  8034afc:	20000960 	.word	0x20000960
 
-  8034b00:	200007a4 	.word	0x200007a4
 
-  8034b04:	08034571 	.word	0x08034571
 
-  8034b08:	08033bb5 	.word	0x08033bb5
 
- 08034b0c <snmp_delete_iprteidx_tree>:
 
-  * @param dflt non-zero for the default rte, zero for network rte
 
-  * @param ni points to network interface for this rte or NULL
 
-  *   for default route to be removed.
 
-  */
 
- void snmp_delete_iprteidx_tree(u8_t dflt, struct netif *ni)
 
- {
 
-  8034b0c:	b570      	push	{r4, r5, r6, lr}
 
-  8034b0e:	b08e      	sub	sp, #56	; 0x38
 
-   u8_t del = 0;
 
-   ip_addr_t dst;
 
-   if (dflt != 0)
 
-  8034b10:	b110      	cbz	r0, 8034b18 <snmp_delete_iprteidx_tree+0xc>
 
-   {
 
-     /* the default route 0.0.0.0 */
 
-     ip_addr_set_any(&dst);
 
-  8034b12:	2300      	movs	r3, #0
 
-  8034b14:	9300      	str	r3, [sp, #0]
 
-  8034b16:	e041      	b.n	8034b9c <snmp_delete_iprteidx_tree+0x90>
 
-     del = 1;
 
-   }
 
-   else
 
-   {
 
-     /* route to the network address */
 
-     ip_addr_get_network(&dst, &ni->ip_addr, &ni->netmask);
 
-  8034b18:	688a      	ldr	r2, [r1, #8]
 
-  8034b1a:	684b      	ldr	r3, [r1, #4]
 
-  8034b1c:	4013      	ands	r3, r2
 
-  8034b1e:	9300      	str	r3, [sp, #0]
 
-     /* exclude 0.0.0.0 network (reserved for default rte) */
 
-     if (!ip_addr_isany(&dst)) {
 
-  8034b20:	2b00      	cmp	r3, #0
 
-  8034b22:	d13b      	bne.n	8034b9c <snmp_delete_iprteidx_tree+0x90>
 
-  8034b24:	e034      	b.n	8034b90 <snmp_delete_iprteidx_tree+0x84>
 
-     level = 0;
 
-     del_cnt = 0;
 
-     iprte_rn = &iprtetree_root;
 
-     while ((level < 4) && (iprte_rn != NULL))
 
-     {
 
-       fc = snmp_mib_node_find(iprte_rn, iprteidx[level], &iprte_n);
 
-  8034b26:	ab0a      	add	r3, sp, #40	; 0x28
 
-  8034b28:	4628      	mov	r0, r5
 
-  8034b2a:	58f1      	ldr	r1, [r6, r3]
 
-  8034b2c:	aa01      	add	r2, sp, #4
 
-  8034b2e:	f000 fb12 	bl	8035156 <snmp_mib_node_find>
 
-  8034b32:	b2c0      	uxtb	r0, r0
 
-       if (fc == 0)
 
-  8034b34:	b198      	cbz	r0, 8034b5e <snmp_delete_iprteidx_tree+0x52>
 
-       {
 
-         /* iprteidx[level] does not exist */
 
-         del_cnt = 0;
 
-         iprte_rn = NULL;
 
-       }
 
-       else if (fc == 1)
 
-  8034b36:	2801      	cmp	r0, #1
 
-  8034b38:	d10b      	bne.n	8034b52 <snmp_delete_iprteidx_tree+0x46>
 
-       {
 
-         del_rn[del_cnt] = iprte_rn;
 
-  8034b3a:	ab0e      	add	r3, sp, #56	; 0x38
 
-  8034b3c:	eb03 0284 	add.w	r2, r3, r4, lsl #2
 
-         del_n[del_cnt] = iprte_n;
 
-  8034b40:	9b01      	ldr	r3, [sp, #4]
 
-         del_cnt = 0;
 
-         iprte_rn = NULL;
 
-       }
 
-       else if (fc == 1)
 
-       {
 
-         del_rn[del_cnt] = iprte_rn;
 
-  8034b42:	f842 5c30 	str.w	r5, [r2, #-48]
 
-         del_n[del_cnt] = iprte_n;
 
-         del_cnt++;
 
-  8034b46:	3401      	adds	r4, #1
 
-         iprte_rn = NULL;
 
-       }
 
-       else if (fc == 1)
 
-       {
 
-         del_rn[del_cnt] = iprte_rn;
 
-         del_n[del_cnt] = iprte_n;
 
-  8034b48:	f842 3c20 	str.w	r3, [r2, #-32]
 
-         del_cnt++;
 
-  8034b4c:	b2e4      	uxtb	r4, r4
 
-         iprte_rn = (struct mib_list_rootnode*)(iprte_n->nptr);
 
-  8034b4e:	68dd      	ldr	r5, [r3, #12]
 
-  8034b50:	e007      	b.n	8034b62 <snmp_delete_iprteidx_tree+0x56>
 
-       }
 
-       else if (fc == 2)
 
-  8034b52:	2802      	cmp	r0, #2
 
-  8034b54:	d105      	bne.n	8034b62 <snmp_delete_iprteidx_tree+0x56>
 
-       {
 
-         /* reset delete (2 or more childs) */
 
-         del_cnt = 0;
 
-         iprte_rn = (struct mib_list_rootnode*)(iprte_n->nptr);
 
-  8034b56:	9b01      	ldr	r3, [sp, #4]
 
-         iprte_rn = (struct mib_list_rootnode*)(iprte_n->nptr);
 
-       }
 
-       else if (fc == 2)
 
-       {
 
-         /* reset delete (2 or more childs) */
 
-         del_cnt = 0;
 
-  8034b58:	2400      	movs	r4, #0
 
-         iprte_rn = (struct mib_list_rootnode*)(iprte_n->nptr);
 
-  8034b5a:	68dd      	ldr	r5, [r3, #12]
 
-  8034b5c:	e001      	b.n	8034b62 <snmp_delete_iprteidx_tree+0x56>
 
-     {
 
-       fc = snmp_mib_node_find(iprte_rn, iprteidx[level], &iprte_n);
 
-       if (fc == 0)
 
-       {
 
-         /* iprteidx[level] does not exist */
 
-         del_cnt = 0;
 
-  8034b5e:	4604      	mov	r4, r0
 
-         iprte_rn = NULL;
 
-  8034b60:	4605      	mov	r5, r0
 
-     snmp_iptooid(&dst, &iprteidx[0]);
 
-     /* mark nodes for deletion */
 
-     level = 0;
 
-     del_cnt = 0;
 
-     iprte_rn = &iprtetree_root;
 
-     while ((level < 4) && (iprte_rn != NULL))
 
-  8034b62:	2e0c      	cmp	r6, #12
 
-  8034b64:	d012      	beq.n	8034b8c <snmp_delete_iprteidx_tree+0x80>
 
-  8034b66:	3604      	adds	r6, #4
 
-  8034b68:	2d00      	cmp	r5, #0
 
-  8034b6a:	d1dc      	bne.n	8034b26 <snmp_delete_iprteidx_tree+0x1a>
 
-  8034b6c:	e00e      	b.n	8034b8c <snmp_delete_iprteidx_tree+0x80>
 
-       level++;
 
-     }
 
-     /* delete marked index nodes */
 
-     while (del_cnt > 0)
 
-     {
 
-       del_cnt--;
 
-  8034b6e:	3c01      	subs	r4, #1
 
-  8034b70:	b2e4      	uxtb	r4, r4
 
-       iprte_rn = del_rn[del_cnt];
 
-  8034b72:	aa0e      	add	r2, sp, #56	; 0x38
 
-  8034b74:	eb02 0384 	add.w	r3, r2, r4, lsl #2
 
-       iprte_n = del_n[del_cnt];
 
-  8034b78:	f853 1c20 	ldr.w	r1, [r3, #-32]
 
-     /* delete marked index nodes */
 
-     while (del_cnt > 0)
 
-     {
 
-       del_cnt--;
 
-       iprte_rn = del_rn[del_cnt];
 
-  8034b7c:	f853 0c30 	ldr.w	r0, [r3, #-48]
 
-       iprte_n = del_n[del_cnt];
 
-  8034b80:	9101      	str	r1, [sp, #4]
 
-       next = snmp_mib_node_delete(iprte_rn, iprte_n);
 
-  8034b82:	f000 fb02 	bl	803518a <snmp_mib_node_delete>
 
-       if (next != NULL)
 
-  8034b86:	b108      	cbz	r0, 8034b8c <snmp_delete_iprteidx_tree+0x80>
 
-       {
 
-         LWIP_ASSERT("next_count == 0",next->count == 0);
 
-         snmp_mib_lrn_free(next);
 
-  8034b88:	f000 faa6 	bl	80350d8 <snmp_mib_lrn_free>
 
-         iprte_rn = (struct mib_list_rootnode*)(iprte_n->nptr);
 
-       }
 
-       level++;
 
-     }
 
-     /* delete marked index nodes */
 
-     while (del_cnt > 0)
 
-  8034b8c:	2c00      	cmp	r4, #0
 
-  8034b8e:	d1ee      	bne.n	8034b6e <snmp_delete_iprteidx_tree+0x62>
 
-         snmp_mib_lrn_free(next);
 
-       }
 
-     }
 
-   }
 
-   /* disable getnext traversal on empty table */
 
-   if (iprtetree_root.count == 0) iprtetable.maxlength = 0;
 
-  8034b90:	4b07      	ldr	r3, [pc, #28]	; (8034bb0 <snmp_delete_iprteidx_tree+0xa4>)
 
-  8034b92:	8b9b      	ldrh	r3, [r3, #28]
 
-  8034b94:	b953      	cbnz	r3, 8034bac <snmp_delete_iprteidx_tree+0xa0>
 
-  8034b96:	4a07      	ldr	r2, [pc, #28]	; (8034bb4 <snmp_delete_iprteidx_tree+0xa8>)
 
-  8034b98:	8253      	strh	r3, [r2, #18]
 
-  8034b9a:	e007      	b.n	8034bac <snmp_delete_iprteidx_tree+0xa0>
 
-     struct mib_list_rootnode *iprte_rn, *next, *del_rn[4];
 
-     struct mib_list_node *iprte_n, *del_n[4];
 
-     s32_t iprteidx[4];
 
-     u8_t fc, level, del_cnt;
 
-     snmp_iptooid(&dst, &iprteidx[0]);
 
-  8034b9c:	4668      	mov	r0, sp
 
-  8034b9e:	a90a      	add	r1, sp, #40	; 0x28
 
-  8034ba0:	2600      	movs	r6, #0
 
-  8034ba2:	f000 fa62 	bl	803506a <snmp_iptooid>
 
-     /* mark nodes for deletion */
 
-     level = 0;
 
-     del_cnt = 0;
 
-  8034ba6:	4634      	mov	r4, r6
 
-     iprte_rn = &iprtetree_root;
 
-  8034ba8:	4d01      	ldr	r5, [pc, #4]	; (8034bb0 <snmp_delete_iprteidx_tree+0xa4>)
 
-  8034baa:	e7bc      	b.n	8034b26 <snmp_delete_iprteidx_tree+0x1a>
 
-       }
 
-     }
 
-   }
 
-   /* disable getnext traversal on empty table */
 
-   if (iprtetree_root.count == 0) iprtetable.maxlength = 0;
 
- }
 
-  8034bac:	b00e      	add	sp, #56	; 0x38
 
-  8034bae:	bd70      	pop	{r4, r5, r6, pc}
 
-  8034bb0:	200007a4 	.word	0x200007a4
 
-  8034bb4:	20000960 	.word	0x20000960
 
- 08034bb8 <snmp_inc_icmpinmsgs>:
 
- void snmp_inc_icmpinmsgs(void)
 
- {
 
-   icmpinmsgs++;
 
-  8034bb8:	4b02      	ldr	r3, [pc, #8]	; (8034bc4 <snmp_inc_icmpinmsgs+0xc>)
 
-  8034bba:	681a      	ldr	r2, [r3, #0]
 
-  8034bbc:	3201      	adds	r2, #1
 
-  8034bbe:	601a      	str	r2, [r3, #0]
 
-  8034bc0:	4770      	bx	lr
 
-  8034bc2:	bf00      	nop
 
-  8034bc4:	2000c464 	.word	0x2000c464
 
- 08034bc8 <snmp_inc_icmpinerrors>:
 
- }
 
- void snmp_inc_icmpinerrors(void)
 
- {
 
-   icmpinerrors++;
 
-  8034bc8:	4b02      	ldr	r3, [pc, #8]	; (8034bd4 <snmp_inc_icmpinerrors+0xc>)
 
-  8034bca:	681a      	ldr	r2, [r3, #0]
 
-  8034bcc:	3201      	adds	r2, #1
 
-  8034bce:	601a      	str	r2, [r3, #0]
 
-  8034bd0:	4770      	bx	lr
 
-  8034bd2:	bf00      	nop
 
-  8034bd4:	2000c460 	.word	0x2000c460
 
- 08034bd8 <snmp_inc_icmpoutmsgs>:
 
-   icmpinaddrmaskreps++;
 
- }
 
- void snmp_inc_icmpoutmsgs(void)
 
- {
 
-   icmpoutmsgs++;
 
-  8034bd8:	4b02      	ldr	r3, [pc, #8]	; (8034be4 <snmp_inc_icmpoutmsgs+0xc>)
 
-  8034bda:	681a      	ldr	r2, [r3, #0]
 
-  8034bdc:	3201      	adds	r2, #1
 
-  8034bde:	601a      	str	r2, [r3, #0]
 
-  8034be0:	4770      	bx	lr
 
-  8034be2:	bf00      	nop
 
-  8034be4:	2000c4e4 	.word	0x2000c4e4
 
- 08034be8 <snmp_inc_icmpouttimeexcds>:
 
-   icmpoutdestunreachs++;
 
- }
 
- void snmp_inc_icmpouttimeexcds(void)
 
- {
 
-   icmpouttimeexcds++;
 
-  8034be8:	4b02      	ldr	r3, [pc, #8]	; (8034bf4 <snmp_inc_icmpouttimeexcds+0xc>)
 
-  8034bea:	681a      	ldr	r2, [r3, #0]
 
-  8034bec:	3201      	adds	r2, #1
 
-  8034bee:	601a      	str	r2, [r3, #0]
 
-  8034bf0:	4770      	bx	lr
 
-  8034bf2:	bf00      	nop
 
-  8034bf4:	2000c4b0 	.word	0x2000c4b0
 
- 08034bf8 <snmp_inc_icmpoutechoreps>:
 
-   icmpoutechos++;
 
- }
 
- void snmp_inc_icmpoutechoreps(void)
 
- {
 
-   icmpoutechoreps++;
 
-  8034bf8:	4b02      	ldr	r3, [pc, #8]	; (8034c04 <snmp_inc_icmpoutechoreps+0xc>)
 
-  8034bfa:	681a      	ldr	r2, [r3, #0]
 
-  8034bfc:	3201      	adds	r2, #1
 
-  8034bfe:	601a      	str	r2, [r3, #0]
 
-  8034c00:	4770      	bx	lr
 
-  8034c02:	bf00      	nop
 
-  8034c04:	2000c504 	.word	0x2000c504
 
- 08034c08 <snmp_inc_tcpactiveopens>:
 
-   icmpoutaddrmaskreps++;
 
- }
 
- void snmp_inc_tcpactiveopens(void)
 
- {
 
-   tcpactiveopens++;
 
-  8034c08:	4b02      	ldr	r3, [pc, #8]	; (8034c14 <snmp_inc_tcpactiveopens+0xc>)
 
-  8034c0a:	681a      	ldr	r2, [r3, #0]
 
-  8034c0c:	3201      	adds	r2, #1
 
-  8034c0e:	601a      	str	r2, [r3, #0]
 
-  8034c10:	4770      	bx	lr
 
-  8034c12:	bf00      	nop
 
-  8034c14:	2000c458 	.word	0x2000c458
 
- 08034c18 <snmp_inc_tcppassiveopens>:
 
- }
 
- void snmp_inc_tcppassiveopens(void)
 
- {
 
-   tcppassiveopens++;
 
-  8034c18:	4b02      	ldr	r3, [pc, #8]	; (8034c24 <snmp_inc_tcppassiveopens+0xc>)
 
-  8034c1a:	681a      	ldr	r2, [r3, #0]
 
-  8034c1c:	3201      	adds	r2, #1
 
-  8034c1e:	601a      	str	r2, [r3, #0]
 
-  8034c20:	4770      	bx	lr
 
-  8034c22:	bf00      	nop
 
-  8034c24:	2000c48c 	.word	0x2000c48c
 
- 08034c28 <snmp_inc_tcpattemptfails>:
 
- }
 
- void snmp_inc_tcpattemptfails(void)
 
- {
 
-   tcpattemptfails++;
 
-  8034c28:	4b02      	ldr	r3, [pc, #8]	; (8034c34 <snmp_inc_tcpattemptfails+0xc>)
 
-  8034c2a:	681a      	ldr	r2, [r3, #0]
 
-  8034c2c:	3201      	adds	r2, #1
 
-  8034c2e:	601a      	str	r2, [r3, #0]
 
-  8034c30:	4770      	bx	lr
 
-  8034c32:	bf00      	nop
 
-  8034c34:	2000c4d8 	.word	0x2000c4d8
 
- 08034c38 <snmp_inc_tcpestabresets>:
 
- }
 
- void snmp_inc_tcpestabresets(void)
 
- {
 
-   tcpestabresets++;
 
-  8034c38:	4b02      	ldr	r3, [pc, #8]	; (8034c44 <snmp_inc_tcpestabresets+0xc>)
 
-  8034c3a:	681a      	ldr	r2, [r3, #0]
 
-  8034c3c:	3201      	adds	r2, #1
 
-  8034c3e:	601a      	str	r2, [r3, #0]
 
-  8034c40:	4770      	bx	lr
 
-  8034c42:	bf00      	nop
 
-  8034c44:	2000c46c 	.word	0x2000c46c
 
- 08034c48 <snmp_inc_tcpinsegs>:
 
- }
 
- void snmp_inc_tcpinsegs(void)
 
- {
 
-   tcpinsegs++;
 
-  8034c48:	4b02      	ldr	r3, [pc, #8]	; (8034c54 <snmp_inc_tcpinsegs+0xc>)
 
-  8034c4a:	681a      	ldr	r2, [r3, #0]
 
-  8034c4c:	3201      	adds	r2, #1
 
-  8034c4e:	601a      	str	r2, [r3, #0]
 
-  8034c50:	4770      	bx	lr
 
-  8034c52:	bf00      	nop
 
-  8034c54:	2000c4e8 	.word	0x2000c4e8
 
- 08034c58 <snmp_inc_tcpoutsegs>:
 
- }
 
- void snmp_inc_tcpoutsegs(void)
 
- {
 
-   tcpoutsegs++;
 
-  8034c58:	4b02      	ldr	r3, [pc, #8]	; (8034c64 <snmp_inc_tcpoutsegs+0xc>)
 
-  8034c5a:	681a      	ldr	r2, [r3, #0]
 
-  8034c5c:	3201      	adds	r2, #1
 
-  8034c5e:	601a      	str	r2, [r3, #0]
 
-  8034c60:	4770      	bx	lr
 
-  8034c62:	bf00      	nop
 
-  8034c64:	2000c534 	.word	0x2000c534
 
- 08034c68 <snmp_inc_tcpretranssegs>:
 
- }
 
- void snmp_inc_tcpretranssegs(void)
 
- {
 
-   tcpretranssegs++;
 
-  8034c68:	4b02      	ldr	r3, [pc, #8]	; (8034c74 <snmp_inc_tcpretranssegs+0xc>)
 
-  8034c6a:	681a      	ldr	r2, [r3, #0]
 
-  8034c6c:	3201      	adds	r2, #1
 
-  8034c6e:	601a      	str	r2, [r3, #0]
 
-  8034c70:	4770      	bx	lr
 
-  8034c72:	bf00      	nop
 
-  8034c74:	2000c508 	.word	0x2000c508
 
- 08034c78 <snmp_inc_tcpinerrs>:
 
- }
 
- void snmp_inc_tcpinerrs(void)
 
- {
 
-   tcpinerrs++;
 
-  8034c78:	4b02      	ldr	r3, [pc, #8]	; (8034c84 <snmp_inc_tcpinerrs+0xc>)
 
-  8034c7a:	681a      	ldr	r2, [r3, #0]
 
-  8034c7c:	3201      	adds	r2, #1
 
-  8034c7e:	601a      	str	r2, [r3, #0]
 
-  8034c80:	4770      	bx	lr
 
-  8034c82:	bf00      	nop
 
-  8034c84:	2000c494 	.word	0x2000c494
 
- 08034c88 <snmp_inc_tcpoutrsts>:
 
- }
 
- void snmp_inc_tcpoutrsts(void)
 
- {
 
-   tcpoutrsts++;
 
-  8034c88:	4b02      	ldr	r3, [pc, #8]	; (8034c94 <snmp_inc_tcpoutrsts+0xc>)
 
-  8034c8a:	681a      	ldr	r2, [r3, #0]
 
-  8034c8c:	3201      	adds	r2, #1
 
-  8034c8e:	601a      	str	r2, [r3, #0]
 
-  8034c90:	4770      	bx	lr
 
-  8034c92:	bf00      	nop
 
-  8034c94:	2000c4f8 	.word	0x2000c4f8
 
- 08034c98 <snmp_inc_udpindatagrams>:
 
- }
 
- void snmp_inc_udpindatagrams(void)
 
- {
 
-   udpindatagrams++;
 
-  8034c98:	4b02      	ldr	r3, [pc, #8]	; (8034ca4 <snmp_inc_udpindatagrams+0xc>)
 
-  8034c9a:	681a      	ldr	r2, [r3, #0]
 
-  8034c9c:	3201      	adds	r2, #1
 
-  8034c9e:	601a      	str	r2, [r3, #0]
 
-  8034ca0:	4770      	bx	lr
 
-  8034ca2:	bf00      	nop
 
-  8034ca4:	2000c514 	.word	0x2000c514
 
- 08034ca8 <snmp_inc_udpnoports>:
 
- }
 
- void snmp_inc_udpnoports(void)
 
- {
 
-   udpnoports++;
 
-  8034ca8:	4b02      	ldr	r3, [pc, #8]	; (8034cb4 <snmp_inc_udpnoports+0xc>)
 
-  8034caa:	681a      	ldr	r2, [r3, #0]
 
-  8034cac:	3201      	adds	r2, #1
 
-  8034cae:	601a      	str	r2, [r3, #0]
 
-  8034cb0:	4770      	bx	lr
 
-  8034cb2:	bf00      	nop
 
-  8034cb4:	2000c4cc 	.word	0x2000c4cc
 
- 08034cb8 <snmp_inc_udpinerrors>:
 
- }
 
- void snmp_inc_udpinerrors(void)
 
- {
 
-   udpinerrors++;
 
-  8034cb8:	4b02      	ldr	r3, [pc, #8]	; (8034cc4 <snmp_inc_udpinerrors+0xc>)
 
-  8034cba:	681a      	ldr	r2, [r3, #0]
 
-  8034cbc:	3201      	adds	r2, #1
 
-  8034cbe:	601a      	str	r2, [r3, #0]
 
-  8034cc0:	4770      	bx	lr
 
-  8034cc2:	bf00      	nop
 
-  8034cc4:	2000c53c 	.word	0x2000c53c
 
- 08034cc8 <snmp_inc_udpoutdatagrams>:
 
- }
 
- void snmp_inc_udpoutdatagrams(void)
 
- {
 
-   udpoutdatagrams++;
 
-  8034cc8:	4b02      	ldr	r3, [pc, #8]	; (8034cd4 <snmp_inc_udpoutdatagrams+0xc>)
 
-  8034cca:	681a      	ldr	r2, [r3, #0]
 
-  8034ccc:	3201      	adds	r2, #1
 
-  8034cce:	601a      	str	r2, [r3, #0]
 
-  8034cd0:	4770      	bx	lr
 
-  8034cd2:	bf00      	nop
 
-  8034cd4:	2000c4c4 	.word	0x2000c4c4
 
- 08034cd8 <snmp_insert_udpidx_tree>:
 
- /**
 
-  * Inserts udpTable indexes (.udpLocalAddress.udpLocalPort)
 
-  * into index tree.
 
-  */
 
- void snmp_insert_udpidx_tree(struct udp_pcb *pcb)
 
- {
 
-  8034cd8:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
 
-  8034cdc:	4604      	mov	r4, r0
 
-  8034cde:	b086      	sub	sp, #24
 
-   struct mib_list_node *udp_node;
 
-   s32_t udpidx[5];
 
-   u8_t level;
 
-   LWIP_ASSERT("pcb != NULL", pcb != NULL);
 
-   snmp_iptooid(&pcb->local_ip, &udpidx[0]);
 
-  8034ce0:	a901      	add	r1, sp, #4
 
-  8034ce2:	f000 f9c2 	bl	803506a <snmp_iptooid>
 
-   udpidx[4] = pcb->local_port;
 
-  8034ce6:	8a63      	ldrh	r3, [r4, #18]
 
-         udp_node->nptr = (struct mib_node*)udp_rn;
 
-         if (udp_rn != NULL)
 
-         {
 
-           if (level == 3)
 
-           {
 
-             udp_rn->get_object_def = udpentry_get_object_def;
 
-  8034ce8:	4f17      	ldr	r7, [pc, #92]	; (8034d48 <snmp_insert_udpidx_tree+0x70>)
 
-   LWIP_ASSERT("pcb != NULL", pcb != NULL);
 
-   snmp_iptooid(&pcb->local_ip, &udpidx[0]);
 
-   udpidx[4] = pcb->local_port;
 
-   udp_rn = &udp_root;
 
-  8034cea:	4c18      	ldr	r4, [pc, #96]	; (8034d4c <snmp_insert_udpidx_tree+0x74>)
 
-         if (udp_rn != NULL)
 
-         {
 
-           if (level == 3)
 
-           {
 
-             udp_rn->get_object_def = udpentry_get_object_def;
 
-             udp_rn->get_value = udpentry_get_value;
 
-  8034cec:	f8df 806c 	ldr.w	r8, [pc, #108]	; 8034d5c <snmp_insert_udpidx_tree+0x84>
 
-   s32_t udpidx[5];
 
-   u8_t level;
 
-   LWIP_ASSERT("pcb != NULL", pcb != NULL);
 
-   snmp_iptooid(&pcb->local_ip, &udpidx[0]);
 
-   udpidx[4] = pcb->local_port;
 
-  8034cf0:	9305      	str	r3, [sp, #20]
 
-  8034cf2:	2500      	movs	r5, #0
 
-   udp_rn = &udp_root;
 
-   for (level = 0; level < 5; level++)
 
-   {
 
-     udp_node = NULL;
 
-  8034cf4:	2300      	movs	r3, #0
 
-  8034cf6:	9300      	str	r3, [sp, #0]
 
-     snmp_mib_node_insert(udp_rn, udpidx[level], &udp_node);
 
-  8034cf8:	ab01      	add	r3, sp, #4
 
-  8034cfa:	4620      	mov	r0, r4
 
-  8034cfc:	f853 1025 	ldr.w	r1, [r3, r5, lsl #2]
 
-  8034d00:	466a      	mov	r2, sp
 
-  8034d02:	b2ee      	uxtb	r6, r5
 
-  8034d04:	f000 f9ec 	bl	80350e0 <snmp_mib_node_insert>
 
-     if ((level != 4) && (udp_node != NULL))
 
-  8034d08:	2e04      	cmp	r6, #4
 
-  8034d0a:	d015      	beq.n	8034d38 <snmp_insert_udpidx_tree+0x60>
 
-  8034d0c:	9b00      	ldr	r3, [sp, #0]
 
-  8034d0e:	b19b      	cbz	r3, 8034d38 <snmp_insert_udpidx_tree+0x60>
 
-     {
 
-       if (udp_node->nptr == NULL)
 
-  8034d10:	68dc      	ldr	r4, [r3, #12]
 
-  8034d12:	b98c      	cbnz	r4, 8034d38 <snmp_insert_udpidx_tree+0x60>
 
-       {
 
-         udp_rn = snmp_mib_lrn_alloc();
 
-  8034d14:	f000 f9c2 	bl	803509c <snmp_mib_lrn_alloc>
 
-         udp_node->nptr = (struct mib_node*)udp_rn;
 
-  8034d18:	9b00      	ldr	r3, [sp, #0]
 
-     snmp_mib_node_insert(udp_rn, udpidx[level], &udp_node);
 
-     if ((level != 4) && (udp_node != NULL))
 
-     {
 
-       if (udp_node->nptr == NULL)
 
-       {
 
-         udp_rn = snmp_mib_lrn_alloc();
 
-  8034d1a:	4604      	mov	r4, r0
 
-         udp_node->nptr = (struct mib_node*)udp_rn;
 
-  8034d1c:	60d8      	str	r0, [r3, #12]
 
-         if (udp_rn != NULL)
 
-  8034d1e:	b918      	cbnz	r0, 8034d28 <snmp_insert_udpidx_tree+0x50>
 
-       {
 
-         udp_rn = (struct mib_list_rootnode*)udp_node->nptr;
 
-       }
 
-     }
 
-   }
 
-   udptable.maxlength = 1;
 
-  8034d20:	4b0b      	ldr	r3, [pc, #44]	; (8034d50 <snmp_insert_udpidx_tree+0x78>)
 
-  8034d22:	2201      	movs	r2, #1
 
-  8034d24:	825a      	strh	r2, [r3, #18]
 
-  8034d26:	e00b      	b.n	8034d40 <snmp_insert_udpidx_tree+0x68>
 
-       {
 
-         udp_rn = snmp_mib_lrn_alloc();
 
-         udp_node->nptr = (struct mib_node*)udp_rn;
 
-         if (udp_rn != NULL)
 
-         {
 
-           if (level == 3)
 
-  8034d28:	2e03      	cmp	r6, #3
 
-  8034d2a:	d105      	bne.n	8034d38 <snmp_insert_udpidx_tree+0x60>
 
-           {
 
-             udp_rn->get_object_def = udpentry_get_object_def;
 
-             udp_rn->get_value = udpentry_get_value;
 
-             udp_rn->set_test = noleafs_set_test;
 
-  8034d2c:	4b09      	ldr	r3, [pc, #36]	; (8034d54 <snmp_insert_udpidx_tree+0x7c>)
 
-         if (udp_rn != NULL)
 
-         {
 
-           if (level == 3)
 
-           {
 
-             udp_rn->get_object_def = udpentry_get_object_def;
 
-             udp_rn->get_value = udpentry_get_value;
 
-  8034d2e:	e880 0180 	stmia.w	r0, {r7, r8}
 
-             udp_rn->set_test = noleafs_set_test;
 
-  8034d32:	6083      	str	r3, [r0, #8]
 
-             udp_rn->set_value = noleafs_set_value;
 
-  8034d34:	4b08      	ldr	r3, [pc, #32]	; (8034d58 <snmp_insert_udpidx_tree+0x80>)
 
-  8034d36:	60c3      	str	r3, [r0, #12]
 
-  8034d38:	3501      	adds	r5, #1
 
-   LWIP_ASSERT("pcb != NULL", pcb != NULL);
 
-   snmp_iptooid(&pcb->local_ip, &udpidx[0]);
 
-   udpidx[4] = pcb->local_port;
 
-   udp_rn = &udp_root;
 
-   for (level = 0; level < 5; level++)
 
-  8034d3a:	2d05      	cmp	r5, #5
 
-  8034d3c:	d1da      	bne.n	8034cf4 <snmp_insert_udpidx_tree+0x1c>
 
-  8034d3e:	e7ef      	b.n	8034d20 <snmp_insert_udpidx_tree+0x48>
 
-         udp_rn = (struct mib_list_rootnode*)udp_node->nptr;
 
-       }
 
-     }
 
-   }
 
-   udptable.maxlength = 1;
 
- }
 
-  8034d40:	b006      	add	sp, #24
 
-  8034d42:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 
-  8034d46:	bf00      	nop
 
-  8034d48:	0803435d 	.word	0x0803435d
 
-  8034d4c:	20000774 	.word	0x20000774
 
-  8034d50:	20000758 	.word	0x20000758
 
-  8034d54:	080339eb 	.word	0x080339eb
 
-  8034d58:	080339ef 	.word	0x080339ef
 
-  8034d5c:	08034019 	.word	0x08034019
 
- 08034d60 <snmp_delete_udpidx_tree>:
 
- /**
 
-  * Removes udpTable indexes (.udpLocalAddress.udpLocalPort)
 
-  * from index tree.
 
-  */
 
- void snmp_delete_udpidx_tree(struct udp_pcb *pcb)
 
- {
 
-  8034d60:	b570      	push	{r4, r5, r6, lr}
 
-  8034d62:	4604      	mov	r4, r0
 
-  8034d64:	b090      	sub	sp, #64	; 0x40
 
-   struct mib_list_node *udp_n, *del_n[5];
 
-   s32_t udpidx[5];
 
-   u8_t bindings, fc, level, del_cnt;
 
-   LWIP_ASSERT("pcb != NULL", pcb != NULL);
 
-   snmp_iptooid(&pcb->local_ip, &udpidx[0]);
 
-  8034d66:	a90b      	add	r1, sp, #44	; 0x2c
 
-  8034d68:	f000 f97f 	bl	803506a <snmp_iptooid>
 
-   udpidx[4] = pcb->local_port;
 
-  8034d6c:	8a61      	ldrh	r1, [r4, #18]
 
-   /* count PCBs for a given binding
 
-      (e.g. when reusing ports or for temp output PCBs) */
 
-   bindings = 0;
 
-   npcb = udp_pcbs;
 
-  8034d6e:	4b2a      	ldr	r3, [pc, #168]	; (8034e18 <snmp_delete_udpidx_tree+0xb8>)
 
-   s32_t udpidx[5];
 
-   u8_t bindings, fc, level, del_cnt;
 
-   LWIP_ASSERT("pcb != NULL", pcb != NULL);
 
-   snmp_iptooid(&pcb->local_ip, &udpidx[0]);
 
-   udpidx[4] = pcb->local_port;
 
-  8034d70:	910f      	str	r1, [sp, #60]	; 0x3c
 
-   /* count PCBs for a given binding
 
-      (e.g. when reusing ports or for temp output PCBs) */
 
-   bindings = 0;
 
-   npcb = udp_pcbs;
 
-  8034d72:	681b      	ldr	r3, [r3, #0]
 
-   snmp_iptooid(&pcb->local_ip, &udpidx[0]);
 
-   udpidx[4] = pcb->local_port;
 
-   /* count PCBs for a given binding
 
-      (e.g. when reusing ports or for temp output PCBs) */
 
-   bindings = 0;
 
-  8034d74:	2200      	movs	r2, #0
 
-   npcb = udp_pcbs;
 
-   while ((npcb != NULL))
 
-  8034d76:	e009      	b.n	8034d8c <snmp_delete_udpidx_tree+0x2c>
 
-   {
 
-     if (ip_addr_cmp(&npcb->local_ip, &pcb->local_ip) &&
 
-  8034d78:	681d      	ldr	r5, [r3, #0]
 
-  8034d7a:	6820      	ldr	r0, [r4, #0]
 
-  8034d7c:	4285      	cmp	r5, r0
 
-  8034d7e:	d104      	bne.n	8034d8a <snmp_delete_udpidx_tree+0x2a>
 
-         (npcb->local_port == udpidx[4]))
 
-  8034d80:	8a58      	ldrh	r0, [r3, #18]
 
-      (e.g. when reusing ports or for temp output PCBs) */
 
-   bindings = 0;
 
-   npcb = udp_pcbs;
 
-   while ((npcb != NULL))
 
-   {
 
-     if (ip_addr_cmp(&npcb->local_ip, &pcb->local_ip) &&
 
-  8034d82:	4288      	cmp	r0, r1
 
-  8034d84:	d101      	bne.n	8034d8a <snmp_delete_udpidx_tree+0x2a>
 
-         (npcb->local_port == udpidx[4]))
 
-     {
 
-       bindings++;
 
-  8034d86:	3201      	adds	r2, #1
 
-  8034d88:	b2d2      	uxtb	r2, r2
 
-     }
 
-     npcb = npcb->next;
 
-  8034d8a:	68db      	ldr	r3, [r3, #12]
 
-   /* count PCBs for a given binding
 
-      (e.g. when reusing ports or for temp output PCBs) */
 
-   bindings = 0;
 
-   npcb = udp_pcbs;
 
-   while ((npcb != NULL))
 
-  8034d8c:	2b00      	cmp	r3, #0
 
-  8034d8e:	d1f3      	bne.n	8034d78 <snmp_delete_udpidx_tree+0x18>
 
-     {
 
-       bindings++;
 
-     }
 
-     npcb = npcb->next;
 
-   }
 
-   if (bindings == 1)
 
-  8034d90:	2a01      	cmp	r2, #1
 
-  8034d92:	d004      	beq.n	8034d9e <snmp_delete_udpidx_tree+0x3e>
 
-         snmp_mib_lrn_free(next);
 
-       }
 
-     }
 
-   }
 
-   /* disable getnext traversal on empty table */
 
-   if (udp_root.count == 0) udptable.maxlength = 0;
 
-  8034d94:	4b21      	ldr	r3, [pc, #132]	; (8034e1c <snmp_delete_udpidx_tree+0xbc>)
 
-  8034d96:	8b9b      	ldrh	r3, [r3, #28]
 
-  8034d98:	2b00      	cmp	r3, #0
 
-  8034d9a:	d039      	beq.n	8034e10 <snmp_delete_udpidx_tree+0xb0>
 
-  8034d9c:	e03a      	b.n	8034e14 <snmp_delete_udpidx_tree+0xb4>
 
-   {
 
-     /* selectively remove */
 
-     /* mark nodes for deletion */
 
-     level = 0;
 
-     del_cnt = 0;
 
-     udp_rn = &udp_root;
 
-  8034d9e:	4d1f      	ldr	r5, [pc, #124]	; (8034e1c <snmp_delete_udpidx_tree+0xbc>)
 
-     {
 
-       bindings++;
 
-     }
 
-     npcb = npcb->next;
 
-   }
 
-   if (bindings == 1)
 
-  8034da0:	461e      	mov	r6, r3
 
-  8034da2:	461c      	mov	r4, r3
 
-     level = 0;
 
-     del_cnt = 0;
 
-     udp_rn = &udp_root;
 
-     while ((level < 5) && (udp_rn != NULL))
 
-     {
 
-       fc = snmp_mib_node_find(udp_rn, udpidx[level], &udp_n);
 
-  8034da4:	ab0b      	add	r3, sp, #44	; 0x2c
 
-  8034da6:	4628      	mov	r0, r5
 
-  8034da8:	58f1      	ldr	r1, [r6, r3]
 
-  8034daa:	466a      	mov	r2, sp
 
-  8034dac:	f000 f9d3 	bl	8035156 <snmp_mib_node_find>
 
-  8034db0:	b2c0      	uxtb	r0, r0
 
-       if (fc == 0)
 
-  8034db2:	b198      	cbz	r0, 8034ddc <snmp_delete_udpidx_tree+0x7c>
 
-       {
 
-         /* udpidx[level] does not exist */
 
-         del_cnt = 0;
 
-         udp_rn = NULL;
 
-       }
 
-       else if (fc == 1)
 
-  8034db4:	2801      	cmp	r0, #1
 
-  8034db6:	d10b      	bne.n	8034dd0 <snmp_delete_udpidx_tree+0x70>
 
-       {
 
-         del_rn[del_cnt] = udp_rn;
 
-  8034db8:	ab10      	add	r3, sp, #64	; 0x40
 
-  8034dba:	eb03 0284 	add.w	r2, r3, r4, lsl #2
 
-         del_n[del_cnt] = udp_n;
 
-  8034dbe:	9b00      	ldr	r3, [sp, #0]
 
-         del_cnt = 0;
 
-         udp_rn = NULL;
 
-       }
 
-       else if (fc == 1)
 
-       {
 
-         del_rn[del_cnt] = udp_rn;
 
-  8034dc0:	f842 5c3c 	str.w	r5, [r2, #-60]
 
-         del_n[del_cnt] = udp_n;
 
-         del_cnt++;
 
-  8034dc4:	3401      	adds	r4, #1
 
-         udp_rn = NULL;
 
-       }
 
-       else if (fc == 1)
 
-       {
 
-         del_rn[del_cnt] = udp_rn;
 
-         del_n[del_cnt] = udp_n;
 
-  8034dc6:	f842 3c28 	str.w	r3, [r2, #-40]
 
-         del_cnt++;
 
-  8034dca:	b2e4      	uxtb	r4, r4
 
-         udp_rn = (struct mib_list_rootnode*)(udp_n->nptr);
 
-  8034dcc:	68dd      	ldr	r5, [r3, #12]
 
-  8034dce:	e007      	b.n	8034de0 <snmp_delete_udpidx_tree+0x80>
 
-       }
 
-       else if (fc == 2)
 
-  8034dd0:	2802      	cmp	r0, #2
 
-  8034dd2:	d105      	bne.n	8034de0 <snmp_delete_udpidx_tree+0x80>
 
-       {
 
-         /* reset delete (2 or more childs) */
 
-         del_cnt = 0;
 
-         udp_rn = (struct mib_list_rootnode*)(udp_n->nptr);
 
-  8034dd4:	9b00      	ldr	r3, [sp, #0]
 
-         udp_rn = (struct mib_list_rootnode*)(udp_n->nptr);
 
-       }
 
-       else if (fc == 2)
 
-       {
 
-         /* reset delete (2 or more childs) */
 
-         del_cnt = 0;
 
-  8034dd6:	2400      	movs	r4, #0
 
-         udp_rn = (struct mib_list_rootnode*)(udp_n->nptr);
 
-  8034dd8:	68dd      	ldr	r5, [r3, #12]
 
-  8034dda:	e001      	b.n	8034de0 <snmp_delete_udpidx_tree+0x80>
 
-     {
 
-       fc = snmp_mib_node_find(udp_rn, udpidx[level], &udp_n);
 
-       if (fc == 0)
 
-       {
 
-         /* udpidx[level] does not exist */
 
-         del_cnt = 0;
 
-  8034ddc:	4604      	mov	r4, r0
 
-         udp_rn = NULL;
 
-  8034dde:	4605      	mov	r5, r0
 
-     /* selectively remove */
 
-     /* mark nodes for deletion */
 
-     level = 0;
 
-     del_cnt = 0;
 
-     udp_rn = &udp_root;
 
-     while ((level < 5) && (udp_rn != NULL))
 
-  8034de0:	2e10      	cmp	r6, #16
 
-  8034de2:	d012      	beq.n	8034e0a <snmp_delete_udpidx_tree+0xaa>
 
-  8034de4:	3604      	adds	r6, #4
 
-  8034de6:	2d00      	cmp	r5, #0
 
-  8034de8:	d1dc      	bne.n	8034da4 <snmp_delete_udpidx_tree+0x44>
 
-  8034dea:	e00e      	b.n	8034e0a <snmp_delete_udpidx_tree+0xaa>
 
-       level++;
 
-     }
 
-     /* delete marked index nodes */
 
-     while (del_cnt > 0)
 
-     {
 
-       del_cnt--;
 
-  8034dec:	3c01      	subs	r4, #1
 
-  8034dee:	b2e4      	uxtb	r4, r4
 
-       udp_rn = del_rn[del_cnt];
 
-  8034df0:	aa10      	add	r2, sp, #64	; 0x40
 
-  8034df2:	eb02 0384 	add.w	r3, r2, r4, lsl #2
 
-       udp_n = del_n[del_cnt];
 
-  8034df6:	f853 1c28 	ldr.w	r1, [r3, #-40]
 
-     /* delete marked index nodes */
 
-     while (del_cnt > 0)
 
-     {
 
-       del_cnt--;
 
-       udp_rn = del_rn[del_cnt];
 
-  8034dfa:	f853 0c3c 	ldr.w	r0, [r3, #-60]
 
-       udp_n = del_n[del_cnt];
 
-  8034dfe:	9100      	str	r1, [sp, #0]
 
-       next = snmp_mib_node_delete(udp_rn, udp_n);
 
-  8034e00:	f000 f9c3 	bl	803518a <snmp_mib_node_delete>
 
-       if (next != NULL)
 
-  8034e04:	b108      	cbz	r0, 8034e0a <snmp_delete_udpidx_tree+0xaa>
 
-       {
 
-         LWIP_ASSERT("next_count == 0",next->count == 0);
 
-         snmp_mib_lrn_free(next);
 
-  8034e06:	f000 f967 	bl	80350d8 <snmp_mib_lrn_free>
 
-         udp_rn = (struct mib_list_rootnode*)(udp_n->nptr);
 
-       }
 
-       level++;
 
-     }
 
-     /* delete marked index nodes */
 
-     while (del_cnt > 0)
 
-  8034e0a:	2c00      	cmp	r4, #0
 
-  8034e0c:	d1ee      	bne.n	8034dec <snmp_delete_udpidx_tree+0x8c>
 
-  8034e0e:	e7c1      	b.n	8034d94 <snmp_delete_udpidx_tree+0x34>
 
-         snmp_mib_lrn_free(next);
 
-       }
 
-     }
 
-   }
 
-   /* disable getnext traversal on empty table */
 
-   if (udp_root.count == 0) udptable.maxlength = 0;
 
-  8034e10:	4a03      	ldr	r2, [pc, #12]	; (8034e20 <snmp_delete_udpidx_tree+0xc0>)
 
-  8034e12:	8253      	strh	r3, [r2, #18]
 
- }
 
-  8034e14:	b010      	add	sp, #64	; 0x40
 
-  8034e16:	bd70      	pop	{r4, r5, r6, pc}
 
-  8034e18:	2000f6d8 	.word	0x2000f6d8
 
-  8034e1c:	20000774 	.word	0x20000774
 
-  8034e20:	20000758 	.word	0x20000758
 
- 08034e24 <snmp_inc_snmpinpkts>:
 
- void snmp_inc_snmpinpkts(void)
 
- {
 
-   snmpinpkts++;
 
-  8034e24:	4b02      	ldr	r3, [pc, #8]	; (8034e30 <snmp_inc_snmpinpkts+0xc>)
 
-  8034e26:	681a      	ldr	r2, [r3, #0]
 
-  8034e28:	3201      	adds	r2, #1
 
-  8034e2a:	601a      	str	r2, [r3, #0]
 
-  8034e2c:	4770      	bx	lr
 
-  8034e2e:	bf00      	nop
 
-  8034e30:	2000c470 	.word	0x2000c470
 
- 08034e34 <snmp_inc_snmpoutpkts>:
 
- }
 
- void snmp_inc_snmpoutpkts(void)
 
- {
 
-   snmpoutpkts++;
 
-  8034e34:	4b02      	ldr	r3, [pc, #8]	; (8034e40 <snmp_inc_snmpoutpkts+0xc>)
 
-  8034e36:	681a      	ldr	r2, [r3, #0]
 
-  8034e38:	3201      	adds	r2, #1
 
-  8034e3a:	601a      	str	r2, [r3, #0]
 
-  8034e3c:	4770      	bx	lr
 
-  8034e3e:	bf00      	nop
 
-  8034e40:	2000c540 	.word	0x2000c540
 
- 08034e44 <snmp_inc_snmpinbadversions>:
 
- }
 
- void snmp_inc_snmpinbadversions(void)
 
- {
 
-   snmpinbadversions++;
 
-  8034e44:	4b02      	ldr	r3, [pc, #8]	; (8034e50 <snmp_inc_snmpinbadversions+0xc>)
 
-  8034e46:	681a      	ldr	r2, [r3, #0]
 
-  8034e48:	3201      	adds	r2, #1
 
-  8034e4a:	601a      	str	r2, [r3, #0]
 
-  8034e4c:	4770      	bx	lr
 
-  8034e4e:	bf00      	nop
 
-  8034e50:	2000c52c 	.word	0x2000c52c
 
- 08034e54 <snmp_inc_snmpinbadcommunitynames>:
 
- }
 
- void snmp_inc_snmpinbadcommunitynames(void)
 
- {
 
-   snmpinbadcommunitynames++;
 
-  8034e54:	4b02      	ldr	r3, [pc, #8]	; (8034e60 <snmp_inc_snmpinbadcommunitynames+0xc>)
 
-  8034e56:	681a      	ldr	r2, [r3, #0]
 
-  8034e58:	3201      	adds	r2, #1
 
-  8034e5a:	601a      	str	r2, [r3, #0]
 
-  8034e5c:	4770      	bx	lr
 
-  8034e5e:	bf00      	nop
 
-  8034e60:	2000c444 	.word	0x2000c444
 
- 08034e64 <snmp_inc_snmpinasnparseerrs>:
 
-   snmpinbadcommunityuses++;
 
- }
 
- void snmp_inc_snmpinasnparseerrs(void)
 
- {
 
-   snmpinasnparseerrs++;
 
-  8034e64:	4b02      	ldr	r3, [pc, #8]	; (8034e70 <snmp_inc_snmpinasnparseerrs+0xc>)
 
-  8034e66:	681a      	ldr	r2, [r3, #0]
 
-  8034e68:	3201      	adds	r2, #1
 
-  8034e6a:	601a      	str	r2, [r3, #0]
 
-  8034e6c:	4770      	bx	lr
 
-  8034e6e:	bf00      	nop
 
-  8034e70:	2000c530 	.word	0x2000c530
 
- 08034e74 <snmp_inc_snmpintoobigs>:
 
- }
 
- void snmp_inc_snmpintoobigs(void)
 
- {
 
-   snmpintoobigs++;
 
-  8034e74:	4b02      	ldr	r3, [pc, #8]	; (8034e80 <snmp_inc_snmpintoobigs+0xc>)
 
-  8034e76:	681a      	ldr	r2, [r3, #0]
 
-  8034e78:	3201      	adds	r2, #1
 
-  8034e7a:	601a      	str	r2, [r3, #0]
 
-  8034e7c:	4770      	bx	lr
 
-  8034e7e:	bf00      	nop
 
-  8034e80:	2000c4f0 	.word	0x2000c4f0
 
- 08034e84 <snmp_inc_snmpinnosuchnames>:
 
- }
 
- void snmp_inc_snmpinnosuchnames(void)
 
- {
 
-   snmpinnosuchnames++;
 
-  8034e84:	4b02      	ldr	r3, [pc, #8]	; (8034e90 <snmp_inc_snmpinnosuchnames+0xc>)
 
-  8034e86:	681a      	ldr	r2, [r3, #0]
 
-  8034e88:	3201      	adds	r2, #1
 
-  8034e8a:	601a      	str	r2, [r3, #0]
 
-  8034e8c:	4770      	bx	lr
 
-  8034e8e:	bf00      	nop
 
-  8034e90:	2000c570 	.word	0x2000c570
 
- 08034e94 <snmp_inc_snmpinbadvalues>:
 
- }
 
- void snmp_inc_snmpinbadvalues(void)
 
- {
 
-   snmpinbadvalues++;
 
-  8034e94:	4b02      	ldr	r3, [pc, #8]	; (8034ea0 <snmp_inc_snmpinbadvalues+0xc>)
 
-  8034e96:	681a      	ldr	r2, [r3, #0]
 
-  8034e98:	3201      	adds	r2, #1
 
-  8034e9a:	601a      	str	r2, [r3, #0]
 
-  8034e9c:	4770      	bx	lr
 
-  8034e9e:	bf00      	nop
 
-  8034ea0:	2000c50c 	.word	0x2000c50c
 
- 08034ea4 <snmp_inc_snmpinreadonlys>:
 
- }
 
- void snmp_inc_snmpinreadonlys(void)
 
- {
 
-   snmpinreadonlys++;
 
-  8034ea4:	4b02      	ldr	r3, [pc, #8]	; (8034eb0 <snmp_inc_snmpinreadonlys+0xc>)
 
-  8034ea6:	681a      	ldr	r2, [r3, #0]
 
-  8034ea8:	3201      	adds	r2, #1
 
-  8034eaa:	601a      	str	r2, [r3, #0]
 
-  8034eac:	4770      	bx	lr
 
-  8034eae:	bf00      	nop
 
-  8034eb0:	2000c4e0 	.word	0x2000c4e0
 
- 08034eb4 <snmp_inc_snmpingenerrs>:
 
- }
 
- void snmp_inc_snmpingenerrs(void)
 
- {
 
-   snmpingenerrs++;
 
-  8034eb4:	4b02      	ldr	r3, [pc, #8]	; (8034ec0 <snmp_inc_snmpingenerrs+0xc>)
 
-  8034eb6:	681a      	ldr	r2, [r3, #0]
 
-  8034eb8:	3201      	adds	r2, #1
 
-  8034eba:	601a      	str	r2, [r3, #0]
 
-  8034ebc:	4770      	bx	lr
 
-  8034ebe:	bf00      	nop
 
-  8034ec0:	2000c4b8 	.word	0x2000c4b8
 
- 08034ec4 <snmp_add_snmpintotalreqvars>:
 
- }
 
- void snmp_add_snmpintotalreqvars(u8_t value)
 
- {
 
-   snmpintotalreqvars += value;
 
-  8034ec4:	4b02      	ldr	r3, [pc, #8]	; (8034ed0 <snmp_add_snmpintotalreqvars+0xc>)
 
-  8034ec6:	681a      	ldr	r2, [r3, #0]
 
-  8034ec8:	1880      	adds	r0, r0, r2
 
-  8034eca:	6018      	str	r0, [r3, #0]
 
-  8034ecc:	4770      	bx	lr
 
-  8034ece:	bf00      	nop
 
-  8034ed0:	2000c510 	.word	0x2000c510
 
- 08034ed4 <snmp_add_snmpintotalsetvars>:
 
- }
 
- void snmp_add_snmpintotalsetvars(u8_t value)
 
- {
 
-   snmpintotalsetvars += value;
 
-  8034ed4:	4b02      	ldr	r3, [pc, #8]	; (8034ee0 <snmp_add_snmpintotalsetvars+0xc>)
 
-  8034ed6:	681a      	ldr	r2, [r3, #0]
 
-  8034ed8:	1880      	adds	r0, r0, r2
 
-  8034eda:	6018      	str	r0, [r3, #0]
 
-  8034edc:	4770      	bx	lr
 
-  8034ede:	bf00      	nop
 
-  8034ee0:	2000c450 	.word	0x2000c450
 
- 08034ee4 <snmp_inc_snmpingetrequests>:
 
- }
 
- void snmp_inc_snmpingetrequests(void)
 
- {
 
-   snmpingetrequests++;
 
-  8034ee4:	4b02      	ldr	r3, [pc, #8]	; (8034ef0 <snmp_inc_snmpingetrequests+0xc>)
 
-  8034ee6:	681a      	ldr	r2, [r3, #0]
 
-  8034ee8:	3201      	adds	r2, #1
 
-  8034eea:	601a      	str	r2, [r3, #0]
 
-  8034eec:	4770      	bx	lr
 
-  8034eee:	bf00      	nop
 
-  8034ef0:	2000c4a4 	.word	0x2000c4a4
 
- 08034ef4 <snmp_inc_snmpingetnexts>:
 
- }
 
- void snmp_inc_snmpingetnexts(void)
 
- {
 
-   snmpingetnexts++;
 
-  8034ef4:	4b02      	ldr	r3, [pc, #8]	; (8034f00 <snmp_inc_snmpingetnexts+0xc>)
 
-  8034ef6:	681a      	ldr	r2, [r3, #0]
 
-  8034ef8:	3201      	adds	r2, #1
 
-  8034efa:	601a      	str	r2, [r3, #0]
 
-  8034efc:	4770      	bx	lr
 
-  8034efe:	bf00      	nop
 
-  8034f00:	2000c428 	.word	0x2000c428
 
- 08034f04 <snmp_inc_snmpinsetrequests>:
 
- }
 
- void snmp_inc_snmpinsetrequests(void)
 
- {
 
-   snmpinsetrequests++;
 
-  8034f04:	4b02      	ldr	r3, [pc, #8]	; (8034f10 <snmp_inc_snmpinsetrequests+0xc>)
 
-  8034f06:	681a      	ldr	r2, [r3, #0]
 
-  8034f08:	3201      	adds	r2, #1
 
-  8034f0a:	601a      	str	r2, [r3, #0]
 
-  8034f0c:	4770      	bx	lr
 
-  8034f0e:	bf00      	nop
 
-  8034f10:	2000c54c 	.word	0x2000c54c
 
- 08034f14 <snmp_inc_snmpingetresponses>:
 
- }
 
- void snmp_inc_snmpingetresponses(void)
 
- {
 
-   snmpingetresponses++;
 
-  8034f14:	4b02      	ldr	r3, [pc, #8]	; (8034f20 <snmp_inc_snmpingetresponses+0xc>)
 
-  8034f16:	681a      	ldr	r2, [r3, #0]
 
-  8034f18:	3201      	adds	r2, #1
 
-  8034f1a:	601a      	str	r2, [r3, #0]
 
-  8034f1c:	4770      	bx	lr
 
-  8034f1e:	bf00      	nop
 
-  8034f20:	2000c4a0 	.word	0x2000c4a0
 
- 08034f24 <snmp_inc_snmpintraps>:
 
- }
 
- void snmp_inc_snmpintraps(void)
 
- {
 
-   snmpintraps++;
 
-  8034f24:	4b02      	ldr	r3, [pc, #8]	; (8034f30 <snmp_inc_snmpintraps+0xc>)
 
-  8034f26:	681a      	ldr	r2, [r3, #0]
 
-  8034f28:	3201      	adds	r2, #1
 
-  8034f2a:	601a      	str	r2, [r3, #0]
 
-  8034f2c:	4770      	bx	lr
 
-  8034f2e:	bf00      	nop
 
-  8034f30:	2000c438 	.word	0x2000c438
 
- 08034f34 <snmp_inc_snmpouttoobigs>:
 
- }
 
- void snmp_inc_snmpouttoobigs(void)
 
- {
 
-   snmpouttoobigs++;
 
-  8034f34:	4b02      	ldr	r3, [pc, #8]	; (8034f40 <snmp_inc_snmpouttoobigs+0xc>)
 
-  8034f36:	681a      	ldr	r2, [r3, #0]
 
-  8034f38:	3201      	adds	r2, #1
 
-  8034f3a:	601a      	str	r2, [r3, #0]
 
-  8034f3c:	4770      	bx	lr
 
-  8034f3e:	bf00      	nop
 
-  8034f40:	2000c488 	.word	0x2000c488
 
- 08034f44 <snmp_inc_snmpoutnosuchnames>:
 
- }
 
- void snmp_inc_snmpoutnosuchnames(void)
 
- {
 
-   snmpoutnosuchnames++;
 
-  8034f44:	4b02      	ldr	r3, [pc, #8]	; (8034f50 <snmp_inc_snmpoutnosuchnames+0xc>)
 
-  8034f46:	681a      	ldr	r2, [r3, #0]
 
-  8034f48:	3201      	adds	r2, #1
 
-  8034f4a:	601a      	str	r2, [r3, #0]
 
-  8034f4c:	4770      	bx	lr
 
-  8034f4e:	bf00      	nop
 
-  8034f50:	2000c454 	.word	0x2000c454
 
- 08034f54 <snmp_inc_snmpoutbadvalues>:
 
- }
 
- void snmp_inc_snmpoutbadvalues(void)
 
- {
 
-   snmpoutbadvalues++;
 
-  8034f54:	4b02      	ldr	r3, [pc, #8]	; (8034f60 <snmp_inc_snmpoutbadvalues+0xc>)
 
-  8034f56:	681a      	ldr	r2, [r3, #0]
 
-  8034f58:	3201      	adds	r2, #1
 
-  8034f5a:	601a      	str	r2, [r3, #0]
 
-  8034f5c:	4770      	bx	lr
 
-  8034f5e:	bf00      	nop
 
-  8034f60:	2000c434 	.word	0x2000c434
 
- 08034f64 <snmp_inc_snmpoutgenerrs>:
 
- }
 
- void snmp_inc_snmpoutgenerrs(void)
 
- {
 
-   snmpoutgenerrs++;
 
-  8034f64:	4b02      	ldr	r3, [pc, #8]	; (8034f70 <snmp_inc_snmpoutgenerrs+0xc>)
 
-  8034f66:	681a      	ldr	r2, [r3, #0]
 
-  8034f68:	3201      	adds	r2, #1
 
-  8034f6a:	601a      	str	r2, [r3, #0]
 
-  8034f6c:	4770      	bx	lr
 
-  8034f6e:	bf00      	nop
 
-  8034f70:	2000c574 	.word	0x2000c574
 
- 08034f74 <snmp_inc_snmpoutgetresponses>:
 
-   snmpoutsetrequests++;
 
- }
 
- void snmp_inc_snmpoutgetresponses(void)
 
- {
 
-   snmpoutgetresponses++;
 
-  8034f74:	4b02      	ldr	r3, [pc, #8]	; (8034f80 <snmp_inc_snmpoutgetresponses+0xc>)
 
-  8034f76:	681a      	ldr	r2, [r3, #0]
 
-  8034f78:	3201      	adds	r2, #1
 
-  8034f7a:	601a      	str	r2, [r3, #0]
 
-  8034f7c:	4770      	bx	lr
 
-  8034f7e:	bf00      	nop
 
-  8034f80:	2000c430 	.word	0x2000c430
 
- 08034f84 <snmp_inc_snmpouttraps>:
 
- }
 
- void snmp_inc_snmpouttraps(void)
 
- {
 
-   snmpouttraps++;
 
-  8034f84:	4b02      	ldr	r3, [pc, #8]	; (8034f90 <snmp_inc_snmpouttraps+0xc>)
 
-  8034f86:	681a      	ldr	r2, [r3, #0]
 
-  8034f88:	3201      	adds	r2, #1
 
-  8034f8a:	601a      	str	r2, [r3, #0]
 
-  8034f8c:	4770      	bx	lr
 
-  8034f8e:	bf00      	nop
 
-  8034f90:	2000c4a8 	.word	0x2000c4a8
 
- 08034f94 <snmp_get_snmpgrpid_ptr>:
 
- }
 
- void snmp_get_snmpgrpid_ptr(struct snmp_obj_id **oid)
 
- {
 
-   *oid = &snmpgrp_id;
 
-  8034f94:	4b01      	ldr	r3, [pc, #4]	; (8034f9c <snmp_get_snmpgrpid_ptr+0x8>)
 
-  8034f96:	6003      	str	r3, [r0, #0]
 
-  8034f98:	4770      	bx	lr
 
-  8034f9a:	bf00      	nop
 
-  8034f9c:	20000984 	.word	0x20000984
 
- 08034fa0 <snmp_get_snmpenableauthentraps>:
 
-   }
 
- }
 
- void snmp_get_snmpenableauthentraps(u8_t *value)
 
- {
 
-   *value = *snmpenableauthentraps_ptr;
 
-  8034fa0:	4b02      	ldr	r3, [pc, #8]	; (8034fac <snmp_get_snmpenableauthentraps+0xc>)
 
-  8034fa2:	681b      	ldr	r3, [r3, #0]
 
-  8034fa4:	781b      	ldrb	r3, [r3, #0]
 
-  8034fa6:	7003      	strb	r3, [r0, #0]
 
-  8034fa8:	4770      	bx	lr
 
-  8034faa:	bf00      	nop
 
-  8034fac:	20000898 	.word	0x20000898
 
- 08034fb0 <push_node>:
 
- /**
 
-  * Pushes nse struct onto stack.
 
-  */
 
- static void
 
- push_node(struct nse* node)
 
- {
 
-  8034fb0:	b530      	push	{r4, r5, lr}
 
-   LWIP_ASSERT("node_stack_cnt < NODE_STACK_SIZE",node_stack_cnt < NODE_STACK_SIZE);
 
-   LWIP_DEBUGF(SNMP_MIB_DEBUG,("push_node() node=%p id=%"S32_F"\n",(void*)(node->r_ptr),node->r_id));
 
-   if (node_stack_cnt < NODE_STACK_SIZE)
 
-  8034fb2:	4d07      	ldr	r5, [pc, #28]	; (8034fd0 <push_node+0x20>)
 
-  8034fb4:	782b      	ldrb	r3, [r5, #0]
 
-  8034fb6:	2b1f      	cmp	r3, #31
 
-  8034fb8:	d808      	bhi.n	8034fcc <push_node+0x1c>
 
-   {
 
-     node_stack[node_stack_cnt] = *node;
 
-  8034fba:	4a06      	ldr	r2, [pc, #24]	; (8034fd4 <push_node+0x24>)
 
-  8034fbc:	240c      	movs	r4, #12
 
-  8034fbe:	fb04 2403 	mla	r4, r4, r3, r2
 
-  8034fc2:	c807      	ldmia	r0, {r0, r1, r2}
 
-  8034fc4:	e884 0007 	stmia.w	r4, {r0, r1, r2}
 
-     node_stack_cnt++;
 
-  8034fc8:	3301      	adds	r3, #1
 
-  8034fca:	702b      	strb	r3, [r5, #0]
 
-  8034fcc:	bd30      	pop	{r4, r5, pc}
 
-  8034fce:	bf00      	nop
 
-  8034fd0:	2000c578 	.word	0x2000c578
 
-  8034fd4:	2000c57c 	.word	0x2000c57c
 
- 08034fd8 <empty_table>:
 
- empty_table(struct mib_node *node)
 
- {
 
-   u8_t node_type;
 
-   u8_t empty = 0;
 
-   if (node != NULL)
 
-  8034fd8:	b1d0      	cbz	r0, 8035010 <empty_table+0x38>
 
-   {
 
-     node_type = node->node_type;
 
-  8034fda:	7c03      	ldrb	r3, [r0, #16]
 
-     if (node_type == MIB_NODE_LR)
 
-  8034fdc:	2b04      	cmp	r3, #4
 
-  8034fde:	d105      	bne.n	8034fec <empty_table+0x14>
 
-     {
 
-       struct mib_list_rootnode *lrn;
 
-       lrn = (struct mib_list_rootnode *)node;
 
-       if ((lrn->count == 0) || (lrn->head == NULL))
 
-  8034fe0:	8b83      	ldrh	r3, [r0, #28]
 
-  8034fe2:	b903      	cbnz	r3, 8034fe6 <empty_table+0xe>
 
-  8034fe4:	e009      	b.n	8034ffa <empty_table+0x22>
 
-  8034fe6:	6943      	ldr	r3, [r0, #20]
 
-  8034fe8:	b13b      	cbz	r3, 8034ffa <empty_table+0x22>
 
-  8034fea:	e010      	b.n	803500e <empty_table+0x36>
 
-       {
 
-         empty = 1;
 
-       }
 
-     }
 
-     else if ((node_type == MIB_NODE_AR) || (node_type == MIB_NODE_RA))
 
-  8034fec:	1e9a      	subs	r2, r3, #2
 
-  8034fee:	2a01      	cmp	r2, #1
 
-  8034ff0:	d805      	bhi.n	8034ffe <empty_table+0x26>
 
-     {
 
-       struct mib_array_node *an;
 
-       an = (struct mib_array_node *)node;
 
-       if ((an->maxlength == 0) || (an->nptr == NULL))
 
-  8034ff2:	8a43      	ldrh	r3, [r0, #18]
 
-  8034ff4:	b10b      	cbz	r3, 8034ffa <empty_table+0x22>
 
-  8034ff6:	6980      	ldr	r0, [r0, #24]
 
-  8034ff8:	e004      	b.n	8035004 <empty_table+0x2c>
 
-       {
 
-         empty = 1;
 
-  8034ffa:	2001      	movs	r0, #1
 
-  8034ffc:	4770      	bx	lr
 
-       }
 
-     }
 
-     else if (node_type == MIB_NODE_EX)
 
-  8034ffe:	2b05      	cmp	r3, #5
 
-  8035000:	d105      	bne.n	803500e <empty_table+0x36>
 
-     {
 
-       struct mib_external_node *en;
 
-       en = (struct mib_external_node *)node;
 
-       if (en->tree_levels == 0)
 
-  8035002:	7e00      	ldrb	r0, [r0, #24]
 
-  */
 
- static u8_t
 
- empty_table(struct mib_node *node)
 
- {
 
-   u8_t node_type;
 
-   u8_t empty = 0;
 
-  8035004:	f1d0 0001 	rsbs	r0, r0, #1
 
-  8035008:	bf38      	it	cc
 
-  803500a:	2000      	movcc	r0, #0
 
-  803500c:	4770      	bx	lr
 
-  803500e:	2000      	movs	r0, #0
 
-         empty = 1;
 
-       }
 
-     }
 
-   }
 
-   return empty;
 
- }
 
-  8035010:	4770      	bx	lr
 
-  8035012:	0000      	movs	r0, r0
 
- 08035014 <snmp_ifindextonetif>:
 
-  * @param netif points to returned netif struct pointer
 
-  */
 
- void
 
- snmp_ifindextonetif(s32_t ifindex, struct netif **netif)
 
- {
 
-   struct netif *nif = netif_list;
 
-  8035014:	4b05      	ldr	r3, [pc, #20]	; (803502c <snmp_ifindextonetif+0x18>)
 
-   s32_t i, ifidx;
 
-   ifidx = ifindex - 1;
 
-  8035016:	3801      	subs	r0, #1
 
-  * @param netif points to returned netif struct pointer
 
-  */
 
- void
 
- snmp_ifindextonetif(s32_t ifindex, struct netif **netif)
 
- {
 
-   struct netif *nif = netif_list;
 
-  8035018:	681b      	ldr	r3, [r3, #0]
 
-   s32_t i, ifidx;
 
-   ifidx = ifindex - 1;
 
-   i = 0;
 
-  803501a:	2200      	movs	r2, #0
 
-   while ((nif != NULL) && (i < ifidx))
 
-  803501c:	e001      	b.n	8035022 <snmp_ifindextonetif+0xe>
 
-   {
 
-     nif = nif->next;
 
-  803501e:	681b      	ldr	r3, [r3, #0]
 
-     i++;
 
-  8035020:	3201      	adds	r2, #1
 
-   struct netif *nif = netif_list;
 
-   s32_t i, ifidx;
 
-   ifidx = ifindex - 1;
 
-   i = 0;
 
-   while ((nif != NULL) && (i < ifidx))
 
-  8035022:	b10b      	cbz	r3, 8035028 <snmp_ifindextonetif+0x14>
 
-  8035024:	4282      	cmp	r2, r0
 
-  8035026:	dbfa      	blt.n	803501e <snmp_ifindextonetif+0xa>
 
-   {
 
-     nif = nif->next;
 
-     i++;
 
-   }
 
-   *netif = nif;
 
-  8035028:	600b      	str	r3, [r1, #0]
 
-  803502a:	4770      	bx	lr
 
-  803502c:	2000f6b0 	.word	0x2000f6b0
 
- 08035030 <snmp_netiftoifindex>:
 
-  * @param ifidx points to s32_t object sub-identifier
 
-  */
 
- void
 
- snmp_netiftoifindex(struct netif *netif, s32_t *ifidx)
 
- {
 
-   struct netif *nif = netif_list;
 
-  8035030:	4b06      	ldr	r3, [pc, #24]	; (803504c <snmp_netiftoifindex+0x1c>)
 
-   u16_t i;
 
-   i = 0;
 
-  8035032:	2200      	movs	r2, #0
 
-  * @param ifidx points to s32_t object sub-identifier
 
-  */
 
- void
 
- snmp_netiftoifindex(struct netif *netif, s32_t *ifidx)
 
- {
 
-   struct netif *nif = netif_list;
 
-  8035034:	681b      	ldr	r3, [r3, #0]
 
-   u16_t i;
 
-   i = 0;
 
-   while ((nif != NULL) && (nif != netif))
 
-  8035036:	e001      	b.n	803503c <snmp_netiftoifindex+0xc>
 
-   {
 
-     nif = nif->next;
 
-  8035038:	681b      	ldr	r3, [r3, #0]
 
-     i++;
 
-  803503a:	b292      	uxth	r2, r2
 
-  803503c:	3201      	adds	r2, #1
 
- {
 
-   struct netif *nif = netif_list;
 
-   u16_t i;
 
-   i = 0;
 
-   while ((nif != NULL) && (nif != netif))
 
-  803503e:	b90b      	cbnz	r3, 8035044 <snmp_netiftoifindex+0x14>
 
-   {
 
-     nif = nif->next;
 
-     i++;
 
-   }
 
-   *ifidx = i+1;
 
-  8035040:	600a      	str	r2, [r1, #0]
 
-  8035042:	4770      	bx	lr
 
- {
 
-   struct netif *nif = netif_list;
 
-   u16_t i;
 
-   i = 0;
 
-   while ((nif != NULL) && (nif != netif))
 
-  8035044:	4283      	cmp	r3, r0
 
-  8035046:	d1f7      	bne.n	8035038 <snmp_netiftoifindex+0x8>
 
-  8035048:	e7fa      	b.n	8035040 <snmp_netiftoifindex+0x10>
 
-  803504a:	bf00      	nop
 
-  803504c:	2000f6b0 	.word	0x2000f6b0
 
- 08035050 <snmp_oidtoip>:
 
-  * @param ip points to output struct
 
-  */
 
- void
 
- snmp_oidtoip(s32_t *ident, ip_addr_t *ip)
 
- {
 
-   IP4_ADDR(ip, ident[0], ident[1], ident[2], ident[3]);
 
-  8035050:	7802      	ldrb	r2, [r0, #0]
 
-  8035052:	68c3      	ldr	r3, [r0, #12]
 
-  8035054:	ea42 6303 	orr.w	r3, r2, r3, lsl #24
 
-  8035058:	7a02      	ldrb	r2, [r0, #8]
 
-  803505a:	ea43 4302 	orr.w	r3, r3, r2, lsl #16
 
-  803505e:	6842      	ldr	r2, [r0, #4]
 
-  8035060:	0612      	lsls	r2, r2, #24
 
-  8035062:	ea43 4312 	orr.w	r3, r3, r2, lsr #16
 
-  8035066:	600b      	str	r3, [r1, #0]
 
-  8035068:	4770      	bx	lr
 
- 0803506a <snmp_iptooid>:
 
-  * @param ident points to s32_t ident[4] output
 
-  */
 
- void
 
- snmp_iptooid(ip_addr_t *ip, s32_t *ident)
 
- {
 
-   ident[0] = ip4_addr1(ip);
 
-  803506a:	7803      	ldrb	r3, [r0, #0]
 
-  803506c:	600b      	str	r3, [r1, #0]
 
-   ident[1] = ip4_addr2(ip);
 
-  803506e:	7843      	ldrb	r3, [r0, #1]
 
-  8035070:	604b      	str	r3, [r1, #4]
 
-   ident[2] = ip4_addr3(ip);
 
-  8035072:	7883      	ldrb	r3, [r0, #2]
 
-  8035074:	608b      	str	r3, [r1, #8]
 
-   ident[3] = ip4_addr4(ip);
 
-  8035076:	78c3      	ldrb	r3, [r0, #3]
 
-  8035078:	60cb      	str	r3, [r1, #12]
 
-  803507a:	4770      	bx	lr
 
- 0803507c <snmp_mib_ln_alloc>:
 
- }
 
- struct mib_list_node *
 
- snmp_mib_ln_alloc(s32_t id)
 
- {
 
-  803507c:	b510      	push	{r4, lr}
 
-  803507e:	4604      	mov	r4, r0
 
-   struct mib_list_node *ln;
 
-   ln = (struct mib_list_node *)memp_malloc(MEMP_SNMP_NODE);
 
-  8035080:	200b      	movs	r0, #11
 
-  8035082:	f7fa fda3 	bl	802fbcc <memp_malloc>
 
-   if (ln != NULL)
 
-  8035086:	b120      	cbz	r0, 8035092 <snmp_mib_ln_alloc+0x16>
 
-   {
 
-     ln->prev = NULL;
 
-  8035088:	2300      	movs	r3, #0
 
-  803508a:	6003      	str	r3, [r0, #0]
 
-     ln->next = NULL;
 
-  803508c:	6043      	str	r3, [r0, #4]
 
-     ln->objid = id;
 
-  803508e:	6084      	str	r4, [r0, #8]
 
-     ln->nptr = NULL;
 
-  8035090:	60c3      	str	r3, [r0, #12]
 
-   }
 
-   return ln;
 
- }
 
-  8035092:	bd10      	pop	{r4, pc}
 
- 08035094 <snmp_mib_ln_free>:
 
- void
 
- snmp_mib_ln_free(struct mib_list_node *ln)
 
- {
 
-  8035094:	4601      	mov	r1, r0
 
-   memp_free(MEMP_SNMP_NODE, ln);
 
-  8035096:	200b      	movs	r0, #11
 
-  8035098:	f7fa bdae 	b.w	802fbf8 <memp_free>
 
- 0803509c <snmp_mib_lrn_alloc>:
 
- }
 
- struct mib_list_rootnode *
 
- snmp_mib_lrn_alloc(void)
 
- {
 
-  803509c:	b508      	push	{r3, lr}
 
-   struct mib_list_rootnode *lrn;
 
-   lrn = (struct mib_list_rootnode*)memp_malloc(MEMP_SNMP_ROOTNODE);
 
-  803509e:	200a      	movs	r0, #10
 
-  80350a0:	f7fa fd94 	bl	802fbcc <memp_malloc>
 
-   if (lrn != NULL)
 
-  80350a4:	b170      	cbz	r0, 80350c4 <snmp_mib_lrn_alloc+0x28>
 
-   {
 
-     lrn->get_object_def = noleafs_get_object_def;
 
-  80350a6:	4b08      	ldr	r3, [pc, #32]	; (80350c8 <snmp_mib_lrn_alloc+0x2c>)
 
-  80350a8:	6003      	str	r3, [r0, #0]
 
-     lrn->get_value = noleafs_get_value;
 
-  80350aa:	4b08      	ldr	r3, [pc, #32]	; (80350cc <snmp_mib_lrn_alloc+0x30>)
 
-  80350ac:	6043      	str	r3, [r0, #4]
 
-     lrn->set_test = noleafs_set_test;
 
-  80350ae:	4b08      	ldr	r3, [pc, #32]	; (80350d0 <snmp_mib_lrn_alloc+0x34>)
 
-  80350b0:	6083      	str	r3, [r0, #8]
 
-     lrn->set_value = noleafs_set_value;
 
-  80350b2:	4b08      	ldr	r3, [pc, #32]	; (80350d4 <snmp_mib_lrn_alloc+0x38>)
 
-  80350b4:	60c3      	str	r3, [r0, #12]
 
-     lrn->node_type = MIB_NODE_LR;
 
-  80350b6:	2304      	movs	r3, #4
 
-  80350b8:	7403      	strb	r3, [r0, #16]
 
-     lrn->maxlength = 0;
 
-  80350ba:	2300      	movs	r3, #0
 
-  80350bc:	8243      	strh	r3, [r0, #18]
 
-     lrn->head = NULL;
 
-  80350be:	6143      	str	r3, [r0, #20]
 
-     lrn->tail = NULL;
 
-  80350c0:	6183      	str	r3, [r0, #24]
 
-     lrn->count = 0;
 
-  80350c2:	8383      	strh	r3, [r0, #28]
 
-   }
 
-   return lrn;
 
- }
 
-  80350c4:	bd08      	pop	{r3, pc}
 
-  80350c6:	bf00      	nop
 
-  80350c8:	080339e3 	.word	0x080339e3
 
-  80350cc:	080339e9 	.word	0x080339e9
 
-  80350d0:	080339eb 	.word	0x080339eb
 
-  80350d4:	080339ef 	.word	0x080339ef
 
- 080350d8 <snmp_mib_lrn_free>:
 
- void
 
- snmp_mib_lrn_free(struct mib_list_rootnode *lrn)
 
- {
 
-  80350d8:	4601      	mov	r1, r0
 
-   memp_free(MEMP_SNMP_ROOTNODE, lrn);
 
-  80350da:	200a      	movs	r0, #10
 
-  80350dc:	f7fa bd8c 	b.w	802fbf8 <memp_free>
 
- 080350e0 <snmp_mib_node_insert>:
 
-  *   used for constructing the tree.
 
-  * @return -1 if failed, 1 if inserted, 2 if present.
 
-  */
 
- s8_t
 
- snmp_mib_node_insert(struct mib_list_rootnode *rn, s32_t objid, struct mib_list_node **insn)
 
- {
 
-  80350e0:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
-  80350e2:	4605      	mov	r5, r0
 
-  80350e4:	4616      	mov	r6, r2
 
-   LWIP_ASSERT("rn != NULL",rn != NULL);
 
-   /* -1 = malloc failure, 0 = not inserted, 1 = inserted, 2 = was present */
 
-   insert = 0;
 
-   if (rn->head == NULL)
 
-  80350e6:	696c      	ldr	r4, [r5, #20]
 
-  *   used for constructing the tree.
 
-  * @return -1 if failed, 1 if inserted, 2 if present.
 
-  */
 
- s8_t
 
- snmp_mib_node_insert(struct mib_list_rootnode *rn, s32_t objid, struct mib_list_node **insn)
 
- {
 
-  80350e8:	4608      	mov	r0, r1
 
-   LWIP_ASSERT("rn != NULL",rn != NULL);
 
-   /* -1 = malloc failure, 0 = not inserted, 1 = inserted, 2 = was present */
 
-   insert = 0;
 
-   if (rn->head == NULL)
 
-  80350ea:	b93c      	cbnz	r4, 80350fc <snmp_mib_node_insert+0x1c>
 
-   {
 
-     /* empty list, add first node */
 
-     LWIP_DEBUGF(SNMP_MIB_DEBUG,("alloc empty list objid==%"S32_F"\n",objid));
 
-     nn = snmp_mib_ln_alloc(objid);
 
-  80350ec:	f7ff ffc6 	bl	803507c <snmp_mib_ln_alloc>
 
-     if (nn != NULL)
 
-  80350f0:	b350      	cbz	r0, 8035148 <snmp_mib_node_insert+0x68>
 
-     {
 
-       rn->head = nn;
 
-  80350f2:	6168      	str	r0, [r5, #20]
 
-       rn->tail = nn;
 
-  80350f4:	61a8      	str	r0, [r5, #24]
 
-       *insn = nn;
 
-  80350f6:	6030      	str	r0, [r6, #0]
 
-  80350f8:	e021      	b.n	803513e <snmp_mib_node_insert+0x5e>
 
-         *insn = n;
 
-         insert = 2;
 
-       }
 
-       else if (n->objid < objid)
 
-       {
 
-         if (n->next == NULL)
 
-  80350fa:	463c      	mov	r4, r7
 
-     struct mib_list_node *n;
 
-     /* at least one node is present */
 
-     n = rn->head;
 
-     while ((n != NULL) && (insert == 0))
 
-     {
 
-       if (n->objid == objid)
 
-  80350fc:	68a3      	ldr	r3, [r4, #8]
 
-  80350fe:	4283      	cmp	r3, r0
 
-  8035100:	d102      	bne.n	8035108 <snmp_mib_node_insert+0x28>
 
-       {
 
-         /* node is already there */
 
-         LWIP_DEBUGF(SNMP_MIB_DEBUG,("node already there objid==%"S32_F"\n",objid));
 
-         *insn = n;
 
-  8035102:	6034      	str	r4, [r6, #0]
 
-         insert = 2;
 
-  8035104:	2302      	movs	r3, #2
 
-  8035106:	e023      	b.n	8035150 <snmp_mib_node_insert+0x70>
 
-       }
 
-       else if (n->objid < objid)
 
-  8035108:	da0a      	bge.n	8035120 <snmp_mib_node_insert+0x40>
 
-       {
 
-         if (n->next == NULL)
 
-  803510a:	6867      	ldr	r7, [r4, #4]
 
-  803510c:	2f00      	cmp	r7, #0
 
-  803510e:	d1f4      	bne.n	80350fa <snmp_mib_node_insert+0x1a>
 
-         {
 
-           /* alloc and insert at the tail */
 
-           LWIP_DEBUGF(SNMP_MIB_DEBUG,("alloc ins tail objid==%"S32_F"\n",objid));
 
-           nn = snmp_mib_ln_alloc(objid);
 
-  8035110:	f7ff ffb4 	bl	803507c <snmp_mib_ln_alloc>
 
-           if (nn != NULL)
 
-  8035114:	b1d8      	cbz	r0, 803514e <snmp_mib_node_insert+0x6e>
 
-           {
 
-             nn->next = NULL;
 
-             nn->prev = n;
 
-  8035116:	e880 0090 	stmia.w	r0, {r4, r7}
 
-             n->next = nn;
 
-  803511a:	6060      	str	r0, [r4, #4]
 
-             rn->tail = nn;
 
-  803511c:	61a8      	str	r0, [r5, #24]
 
-  803511e:	e00b      	b.n	8035138 <snmp_mib_node_insert+0x58>
 
-       else
 
-       {
 
-         /* n->objid > objid */
 
-         /* alloc and insert between n->prev and n */
 
-         LWIP_DEBUGF(SNMP_MIB_DEBUG,("alloc ins n->prev, objid==%"S32_F", n\n",objid));
 
-         nn = snmp_mib_ln_alloc(objid);
 
-  8035120:	f7ff ffac 	bl	803507c <snmp_mib_ln_alloc>
 
-         if (nn != NULL)
 
-  8035124:	b198      	cbz	r0, 803514e <snmp_mib_node_insert+0x6e>
 
-         {
 
-           if (n->prev == NULL)
 
-  8035126:	6822      	ldr	r2, [r4, #0]
 
-           {
 
-             /* insert at the head */
 
-             nn->next = n;
 
-             nn->prev = NULL;
 
-  8035128:	e880 0014 	stmia.w	r0, {r2, r4}
 
-         /* alloc and insert between n->prev and n */
 
-         LWIP_DEBUGF(SNMP_MIB_DEBUG,("alloc ins n->prev, objid==%"S32_F", n\n",objid));
 
-         nn = snmp_mib_ln_alloc(objid);
 
-         if (nn != NULL)
 
-         {
 
-           if (n->prev == NULL)
 
-  803512c:	b90a      	cbnz	r2, 8035132 <snmp_mib_node_insert+0x52>
 
-           {
 
-             /* insert at the head */
 
-             nn->next = n;
 
-             nn->prev = NULL;
 
-             rn->head = nn;
 
-  803512e:	6168      	str	r0, [r5, #20]
 
-  8035130:	e001      	b.n	8035136 <snmp_mib_node_insert+0x56>
 
-           else
 
-           {
 
-             /* insert in the middle */
 
-             nn->next = n;
 
-             nn->prev = n->prev;
 
-             n->prev->next = nn;
 
-  8035132:	6822      	ldr	r2, [r4, #0]
 
-  8035134:	6050      	str	r0, [r2, #4]
 
-             n->prev = nn;
 
-  8035136:	6020      	str	r0, [r4, #0]
 
-           }
 
-           *insn = nn;
 
-  8035138:	6030      	str	r0, [r6, #0]
 
-           insert = 1;
 
-  803513a:	2301      	movs	r3, #1
 
-  803513c:	e008      	b.n	8035150 <snmp_mib_node_insert+0x70>
 
-       }
 
-     }
 
-   }
 
-   if (insert == 1)
 
-   {
 
-     rn->count += 1;
 
-  803513e:	8bab      	ldrh	r3, [r5, #28]
 
-  8035140:	3301      	adds	r3, #1
 
-  8035142:	83ab      	strh	r3, [r5, #28]
 
-  8035144:	2301      	movs	r3, #1
 
-  8035146:	e000      	b.n	803514a <snmp_mib_node_insert+0x6a>
 
-       *insn = nn;
 
-       insert = 1;
 
-     }
 
-     else
 
-     {
 
-       insert = -1;
 
-  8035148:	23ff      	movs	r3, #255	; 0xff
 
-   if (insert == 1)
 
-   {
 
-     rn->count += 1;
 
-   }
 
-   LWIP_ASSERT("insert != 0",insert != 0);
 
-   return insert;
 
-  803514a:	b258      	sxtb	r0, r3
 
-  803514c:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 
-           insert = 1;
 
-         }
 
-         else
 
-         {
 
-           /* insertion failure */
 
-           insert = -1;
 
-  803514e:	23ff      	movs	r3, #255	; 0xff
 
-         }
 
-       }
 
-     }
 
-   }
 
-   if (insert == 1)
 
-  8035150:	2b01      	cmp	r3, #1
 
-  8035152:	d1fa      	bne.n	803514a <snmp_mib_node_insert+0x6a>
 
-  8035154:	e7f3      	b.n	803513e <snmp_mib_node_insert+0x5e>
 
- 08035156 <snmp_mib_node_find>:
 
- {
 
-   s8_t fc;
 
-   struct mib_list_node *n;
 
-   LWIP_ASSERT("rn != NULL",rn != NULL);
 
-   n = rn->head;
 
-  8035156:	6943      	ldr	r3, [r0, #20]
 
-   while ((n != NULL) && (n->objid != objid))
 
-  8035158:	e000      	b.n	803515c <snmp_mib_node_find+0x6>
 
-   {
 
-     n = n->next;
 
-  803515a:	685b      	ldr	r3, [r3, #4]
 
-   s8_t fc;
 
-   struct mib_list_node *n;
 
-   LWIP_ASSERT("rn != NULL",rn != NULL);
 
-   n = rn->head;
 
-   while ((n != NULL) && (n->objid != objid))
 
-  803515c:	b16b      	cbz	r3, 803517a <snmp_mib_node_find+0x24>
 
-  803515e:	6898      	ldr	r0, [r3, #8]
 
-  8035160:	4288      	cmp	r0, r1
 
-  8035162:	d1fa      	bne.n	803515a <snmp_mib_node_find+0x4>
 
-   }
 
-   if (n == NULL)
 
-   {
 
-     fc = 0;
 
-   }
 
-   else if (n->nptr == NULL)
 
-  8035164:	68d9      	ldr	r1, [r3, #12]
 
-  8035166:	b161      	cbz	r1, 8035182 <snmp_mib_node_find+0x2c>
 
-   }
 
-   else
 
-   {
 
-     struct mib_list_rootnode *r;
 
-     if (n->nptr->node_type == MIB_NODE_LR)
 
-  8035168:	7c08      	ldrb	r0, [r1, #16]
 
-  803516a:	2804      	cmp	r0, #4
 
-  803516c:	d107      	bne.n	803517e <snmp_mib_node_find+0x28>
 
-     {
 
-       r = (struct mib_list_rootnode *)n->nptr;
 
-       if (r->count > 1)
 
-  803516e:	8b88      	ldrh	r0, [r1, #28]
 
-       {
 
-         /* can't delete node */
 
-         fc = 2;
 
-  8035170:	2801      	cmp	r0, #1
 
-  8035172:	bf94      	ite	ls
 
-  8035174:	2001      	movls	r0, #1
 
-  8035176:	2002      	movhi	r0, #2
 
-  8035178:	e004      	b.n	8035184 <snmp_mib_node_find+0x2e>
 
-   {
 
-     n = n->next;
 
-   }
 
-   if (n == NULL)
 
-   {
 
-     fc = 0;
 
-  803517a:	4618      	mov	r0, r3
 
-  803517c:	e002      	b.n	8035184 <snmp_mib_node_find+0x2e>
 
-       }
 
-     }
 
-     else
 
-     {
 
-       /* other node type */
 
-       fc = 3;
 
-  803517e:	2003      	movs	r0, #3
 
-  8035180:	e000      	b.n	8035184 <snmp_mib_node_find+0x2e>
 
-     fc = 0;
 
-   }
 
-   else if (n->nptr == NULL)
 
-   {
 
-     /* leaf, can delete node */
 
-     fc = 1;
 
-  8035182:	2001      	movs	r0, #1
 
-     {
 
-       /* other node type */
 
-       fc = 3;
 
-     }
 
-   }
 
-   *fn = n;
 
-  8035184:	6013      	str	r3, [r2, #0]
 
-   return fc;
 
- }
 
-  8035186:	b240      	sxtb	r0, r0
 
-  8035188:	4770      	bx	lr
 
- 0803518a <snmp_mib_node_delete>:
 
-  * @param n points to the node to delete
 
-  * @return the nptr to be freed by caller
 
-  */
 
- struct mib_list_rootnode *
 
- snmp_mib_node_delete(struct mib_list_rootnode *rn, struct mib_list_node *n)
 
- {
 
-  803518a:	b538      	push	{r3, r4, r5, lr}
 
-   LWIP_ASSERT("rn != NULL",rn != NULL);
 
-   LWIP_ASSERT("n != NULL",n != NULL);
 
-   /* caller must remove this sub-tree */
 
-   next = (struct mib_list_rootnode*)(n->nptr);
 
-   rn->count -= 1;
 
-  803518c:	8b83      	ldrh	r3, [r0, #28]
 
-   LWIP_ASSERT("rn != NULL",rn != NULL);
 
-   LWIP_ASSERT("n != NULL",n != NULL);
 
-   /* caller must remove this sub-tree */
 
-   next = (struct mib_list_rootnode*)(n->nptr);
 
-  803518e:	68cd      	ldr	r5, [r1, #12]
 
-   rn->count -= 1;
 
-  8035190:	3b01      	subs	r3, #1
 
-  8035192:	8383      	strh	r3, [r0, #28]
 
-   if (n == rn->head)
 
-  8035194:	6943      	ldr	r3, [r0, #20]
 
-  8035196:	4299      	cmp	r1, r3
 
-  * @param n points to the node to delete
 
-  * @return the nptr to be freed by caller
 
-  */
 
- struct mib_list_rootnode *
 
- snmp_mib_node_delete(struct mib_list_rootnode *rn, struct mib_list_node *n)
 
- {
 
-  8035198:	4604      	mov	r4, r0
 
-   /* caller must remove this sub-tree */
 
-   next = (struct mib_list_rootnode*)(n->nptr);
 
-   rn->count -= 1;
 
-   if (n == rn->head)
 
-  803519a:	d105      	bne.n	80351a8 <snmp_mib_node_delete+0x1e>
 
-   {
 
-     rn->head = n->next;
 
-  803519c:	684b      	ldr	r3, [r1, #4]
 
-  803519e:	6143      	str	r3, [r0, #20]
 
-     if (n->next != NULL)
 
-  80351a0:	b17b      	cbz	r3, 80351c2 <snmp_mib_node_delete+0x38>
 
-     {
 
-       /* not last node, new list begin */
 
-       n->next->prev = NULL;
 
-  80351a2:	2200      	movs	r2, #0
 
-  80351a4:	601a      	str	r2, [r3, #0]
 
-  80351a6:	e00c      	b.n	80351c2 <snmp_mib_node_delete+0x38>
 
-     }
 
-   }
 
-   else if (n == rn->tail)
 
-  80351a8:	6983      	ldr	r3, [r0, #24]
 
-  80351aa:	4299      	cmp	r1, r3
 
-  80351ac:	680b      	ldr	r3, [r1, #0]
 
-  80351ae:	d104      	bne.n	80351ba <snmp_mib_node_delete+0x30>
 
-   {
 
-     rn->tail = n->prev;
 
-  80351b0:	6183      	str	r3, [r0, #24]
 
-     if (n->prev != NULL)
 
-  80351b2:	b133      	cbz	r3, 80351c2 <snmp_mib_node_delete+0x38>
 
-     {
 
-       /* not last node, new list end */
 
-       n->prev->next = NULL;
 
-  80351b4:	2200      	movs	r2, #0
 
-  80351b6:	605a      	str	r2, [r3, #4]
 
-  80351b8:	e003      	b.n	80351c2 <snmp_mib_node_delete+0x38>
 
-     }
 
-   }
 
-   else
 
-   {
 
-     /* node must be in the middle */
 
-     n->prev->next = n->next;
 
-  80351ba:	684a      	ldr	r2, [r1, #4]
 
-  80351bc:	605a      	str	r2, [r3, #4]
 
-     n->next->prev = n->prev;
 
-  80351be:	684a      	ldr	r2, [r1, #4]
 
-  80351c0:	6013      	str	r3, [r2, #0]
 
-   }
 
-   LWIP_DEBUGF(SNMP_MIB_DEBUG,("free list objid==%"S32_F"\n",n->objid));
 
-   snmp_mib_ln_free(n);
 
-  80351c2:	4608      	mov	r0, r1
 
-  80351c4:	f7ff ff66 	bl	8035094 <snmp_mib_ln_free>
 
-   if (rn->count == 0)
 
-  80351c8:	8ba3      	ldrh	r3, [r4, #28]
 
-  80351ca:	b90b      	cbnz	r3, 80351d0 <snmp_mib_node_delete+0x46>
 
-   {
 
-     rn->head = NULL;
 
-  80351cc:	6163      	str	r3, [r4, #20]
 
-     rn->tail = NULL;
 
-  80351ce:	61a3      	str	r3, [r4, #24]
 
-   }
 
-   return next;
 
- }
 
-  80351d0:	4628      	mov	r0, r5
 
-  80351d2:	bd38      	pop	{r3, r4, r5, pc}
 
- 080351d4 <snmp_search_tree>:
 
-  * @param np points to the found object instance (return)
 
-  * @return pointer to the requested parent (!) node if success, NULL otherwise
 
-  */
 
- struct mib_node *
 
- snmp_search_tree(struct mib_node *node, u8_t ident_len, s32_t *ident, struct snmp_name_ptr *np)
 
- {
 
-  80351d4:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-  80351d8:	4604      	mov	r4, r0
 
-  80351da:	b085      	sub	sp, #20
 
-  80351dc:	460d      	mov	r5, r1
 
-  80351de:	461e      	mov	r6, r3
 
-  * @param ident points to the array of sub identifiers
 
-  * @param np points to the found object instance (return)
 
-  * @return pointer to the requested parent (!) node if success, NULL otherwise
 
-  */
 
- struct mib_node *
 
- snmp_search_tree(struct mib_node *node, u8_t ident_len, s32_t *ident, struct snmp_name_ptr *np)
 
-  80351e0:	f102 0804 	add.w	r8, r2, #4
 
- {
 
-   u8_t node_type, ext_level;
 
-   ext_level = 0;
 
-  80351e4:	f04f 0b00 	mov.w	fp, #0
 
-   LWIP_DEBUGF(SNMP_MIB_DEBUG,("node==%p *ident==%"S32_F"\n",(void*)node,*ident));
 
-   while (node != NULL)
 
-  80351e8:	e068      	b.n	80352bc <snmp_search_tree+0xe8>
 
-   {
 
-     node_type = node->node_type;
 
-  80351ea:	7c23      	ldrb	r3, [r4, #16]
 
-     if ((node_type == MIB_NODE_AR) || (node_type == MIB_NODE_RA))
 
-  80351ec:	1e9a      	subs	r2, r3, #2
 
-  80351ee:	2a01      	cmp	r2, #1
 
-  80351f0:	d812      	bhi.n	8035218 <snmp_search_tree+0x44>
 
-     {
 
-       struct mib_array_node *an;
 
-       u16_t i;
 
-       if (ident_len > 0)
 
-  80351f2:	b90d      	cbnz	r5, 80351f8 <snmp_search_tree+0x24>
 
-       }
 
-       else
 
-       {
 
-         /* search failed, short object identifier (nosuchname) */
 
-         LWIP_DEBUGF(SNMP_MIB_DEBUG,("an search failed, short object identifier\n"));
 
-         return NULL;
 
-  80351f4:	2000      	movs	r0, #0
 
-  80351f6:	e06a      	b.n	80352ce <snmp_search_tree+0xfa>
 
-       if (ident_len > 0)
 
-       {
 
-         /* array node (internal ROM or RAM, fixed length) */
 
-         an = (struct mib_array_node *)node;
 
-         i = 0;
 
-         while ((i < an->maxlength) && (an->objid[i] != *ident))
 
-  80351f8:	8a67      	ldrh	r7, [r4, #18]
 
-  80351fa:	2300      	movs	r3, #0
 
-  80351fc:	b29a      	uxth	r2, r3
 
-  80351fe:	42ba      	cmp	r2, r7
 
-  8035200:	d2f8      	bcs.n	80351f4 <snmp_search_tree+0x20>
 
-  8035202:	009a      	lsls	r2, r3, #2
 
-  8035204:	6961      	ldr	r1, [r4, #20]
 
-  8035206:	5888      	ldr	r0, [r1, r2]
 
-  8035208:	f858 1c04 	ldr.w	r1, [r8, #-4]
 
-  803520c:	3301      	adds	r3, #1
 
-  803520e:	4288      	cmp	r0, r1
 
-  8035210:	d1f4      	bne.n	80351fc <snmp_search_tree+0x28>
 
-         }
 
-         if (i < an->maxlength)
 
-         {
 
-           /* found it, if available proceed to child, otherwise inspect leaf */
 
-           LWIP_DEBUGF(SNMP_MIB_DEBUG,("an->objid[%"U16_F"]==%"S32_F" *ident==%"S32_F"\n",i,an->objid[i],*ident));
 
-           if (an->nptr[i] == NULL)
 
-  8035212:	69a3      	ldr	r3, [r4, #24]
 
-  8035214:	589b      	ldr	r3, [r3, r2]
 
-  8035216:	e057      	b.n	80352c8 <snmp_search_tree+0xf4>
 
-         /* search failed, short object identifier (nosuchname) */
 
-         LWIP_DEBUGF(SNMP_MIB_DEBUG,("an search failed, short object identifier\n"));
 
-         return NULL;
 
-       }
 
-     }
 
-     else if(node_type == MIB_NODE_LR)
 
-  8035218:	2b04      	cmp	r3, #4
 
-  803521a:	d10c      	bne.n	8035236 <snmp_search_tree+0x62>
 
-     {
 
-       struct mib_list_rootnode *lrn;
 
-       struct mib_list_node *ln;
 
-       if (ident_len > 0)
 
-  803521c:	2d00      	cmp	r5, #0
 
-  803521e:	d0e9      	beq.n	80351f4 <snmp_search_tree+0x20>
 
-       {
 
-         /* list root node (internal 'RAM', variable length) */
 
-         lrn = (struct mib_list_rootnode *)node;
 
-         ln = lrn->head;
 
-  8035220:	6963      	ldr	r3, [r4, #20]
 
-         /* iterate over list, head to tail */
 
-         while ((ln != NULL) && (ln->objid != *ident))
 
-  8035222:	e000      	b.n	8035226 <snmp_search_tree+0x52>
 
-         {
 
-           ln = ln->next;
 
-  8035224:	685b      	ldr	r3, [r3, #4]
 
-       {
 
-         /* list root node (internal 'RAM', variable length) */
 
-         lrn = (struct mib_list_rootnode *)node;
 
-         ln = lrn->head;
 
-         /* iterate over list, head to tail */
 
-         while ((ln != NULL) && (ln->objid != *ident))
 
-  8035226:	2b00      	cmp	r3, #0
 
-  8035228:	d0e4      	beq.n	80351f4 <snmp_search_tree+0x20>
 
-  803522a:	6899      	ldr	r1, [r3, #8]
 
-  803522c:	f858 2c04 	ldr.w	r2, [r8, #-4]
 
-  8035230:	4291      	cmp	r1, r2
 
-  8035232:	d1f7      	bne.n	8035224 <snmp_search_tree+0x50>
 
-  8035234:	e047      	b.n	80352c6 <snmp_search_tree+0xf2>
 
-         /* search failed, short object identifier (nosuchname) */
 
-         LWIP_DEBUGF(SNMP_MIB_DEBUG,("ln search failed, short object identifier\n"));
 
-         return NULL;
 
-       }
 
-     }
 
-     else if(node_type == MIB_NODE_EX)
 
-  8035236:	2b05      	cmp	r3, #5
 
-  8035238:	d12e      	bne.n	8035298 <snmp_search_tree+0xc4>
 
-     {
 
-       struct mib_external_node *en;
 
-       u16_t i, len;
 
-       if (ident_len > 0)
 
-  803523a:	2d00      	cmp	r5, #0
 
-  803523c:	d0da      	beq.n	80351f4 <snmp_search_tree+0x20>
 
-       {
 
-         /* external node (addressing and access via functions) */
 
-         en = (struct mib_external_node *)node;
 
-         i = 0;
 
-         len = en->level_length(en->addr_inf,ext_level);
 
-  803523e:	69e3      	ldr	r3, [r4, #28]
 
-  8035240:	6960      	ldr	r0, [r4, #20]
 
-  8035242:	4659      	mov	r1, fp
 
-  8035244:	4798      	blx	r3
 
-       if (ident_len > 0)
 
-       {
 
-         /* external node (addressing and access via functions) */
 
-         en = (struct mib_external_node *)node;
 
-         i = 0;
 
-  8035246:	f04f 0900 	mov.w	r9, #0
 
-         len = en->level_length(en->addr_inf,ext_level);
 
-  803524a:	4684      	mov	ip, r0
 
-         while ((i < len) && (en->ident_cmp(en->addr_inf,ext_level,i,*ident) != 0))
 
-  803524c:	e003      	b.n	8035256 <snmp_search_tree+0x82>
 
-         {
 
-           i++;
 
-  803524e:	f109 0901 	add.w	r9, r9, #1
 
-  8035252:	fa1f f989 	uxth.w	r9, r9
 
-         /* external node (addressing and access via functions) */
 
-         en = (struct mib_external_node *)node;
 
-         i = 0;
 
-         len = en->level_length(en->addr_inf,ext_level);
 
-         while ((i < len) && (en->ident_cmp(en->addr_inf,ext_level,i,*ident) != 0))
 
-  8035256:	45e1      	cmp	r9, ip
 
-  8035258:	d0cc      	beq.n	80351f4 <snmp_search_tree+0x20>
 
-  803525a:	6960      	ldr	r0, [r4, #20]
 
-  803525c:	f858 3c04 	ldr.w	r3, [r8, #-4]
 
-  8035260:	6a27      	ldr	r7, [r4, #32]
 
-  8035262:	f8cd c004 	str.w	ip, [sp, #4]
 
-  8035266:	4659      	mov	r1, fp
 
-  8035268:	464a      	mov	r2, r9
 
-  803526a:	47b8      	blx	r7
 
-  803526c:	f8dd c004 	ldr.w	ip, [sp, #4]
 
-  8035270:	2800      	cmp	r0, #0
 
-  8035272:	d1ec      	bne.n	803524e <snmp_search_tree+0x7a>
 
-         {
 
-           i++;
 
-         }
 
-         if (i < len)
 
-  8035274:	45e1      	cmp	r9, ip
 
-  8035276:	d2bd      	bcs.n	80351f4 <snmp_search_tree+0x20>
 
-         {
 
-           s32_t debug_id;
 
-           en->get_objid(en->addr_inf,ext_level,i,&debug_id);
 
-  8035278:	4659      	mov	r1, fp
 
-  803527a:	ab03      	add	r3, sp, #12
 
-  803527c:	6a67      	ldr	r7, [r4, #36]	; 0x24
 
-  803527e:	6960      	ldr	r0, [r4, #20]
 
-  8035280:	464a      	mov	r2, r9
 
-  8035282:	47b8      	blx	r7
 
-           LWIP_DEBUGF(SNMP_MIB_DEBUG,("en->objid==%"S32_F" *ident==%"S32_F"\n",debug_id,*ident));
 
-           if ((ext_level + 1) == en->tree_levels)
 
-  8035284:	7e23      	ldrb	r3, [r4, #24]
 
-  8035286:	f10b 0b01 	add.w	fp, fp, #1
 
-  803528a:	459b      	cmp	fp, r3
 
-  803528c:	d100      	bne.n	8035290 <snmp_search_tree+0xbc>
 
-  803528e:	e00b      	b.n	80352a8 <snmp_search_tree+0xd4>
 
-           else
 
-           {
 
-             /* found it, proceed to child */
 
-             ident_len--;
 
-             ident++;
 
-             ext_level++;
 
-  8035290:	fa5f fb8b 	uxtb.w	fp, fp
 
-  8035294:	4623      	mov	r3, r4
 
-  8035296:	e00c      	b.n	80352b2 <snmp_search_tree+0xde>
 
-         /* search failed, short object identifier (nosuchname) */
 
-         LWIP_DEBUGF(SNMP_MIB_DEBUG,("en search failed, short object identifier\n"));
 
-         return NULL;
 
-       }
 
-     }
 
-     else if (node_type == MIB_NODE_SC)
 
-  8035298:	2b01      	cmp	r3, #1
 
-  803529a:	d1ab      	bne.n	80351f4 <snmp_search_tree+0x20>
 
-     {
 
-       mib_scalar_node *sn;
 
-       sn = (mib_scalar_node *)node;
 
-       if ((ident_len == 1) && (*ident == 0))
 
-  803529c:	2d01      	cmp	r5, #1
 
-  803529e:	d1a9      	bne.n	80351f4 <snmp_search_tree+0x20>
 
-  80352a0:	f8da 3000 	ldr.w	r3, [sl]
 
-  80352a4:	2b00      	cmp	r3, #0
 
-  80352a6:	d1a5      	bne.n	80351f4 <snmp_search_tree+0x20>
 
-       {
 
-         np->ident_len = ident_len;
 
-  80352a8:	7035      	strb	r5, [r6, #0]
 
-         np->ident = ident;
 
-  80352aa:	f8c6 a004 	str.w	sl, [r6, #4]
 
-         return (struct mib_node*)sn;
 
-  80352ae:	4620      	mov	r0, r4
 
-  80352b0:	e00d      	b.n	80352ce <snmp_search_tree+0xfa>
 
-  80352b2:	3d01      	subs	r5, #1
 
-  80352b4:	b2ed      	uxtb	r5, r5
 
-  80352b6:	f108 0804 	add.w	r8, r8, #4
 
-  80352ba:	461c      	mov	r4, r3
 
-  * @param ident points to the array of sub identifiers
 
-  * @param np points to the found object instance (return)
 
-  * @return pointer to the requested parent (!) node if success, NULL otherwise
 
-  */
 
- struct mib_node *
 
- snmp_search_tree(struct mib_node *node, u8_t ident_len, s32_t *ident, struct snmp_name_ptr *np)
 
-  80352bc:	f1a8 0a04 	sub.w	sl, r8, #4
 
- {
 
-   u8_t node_type, ext_level;
 
-   ext_level = 0;
 
-   LWIP_DEBUGF(SNMP_MIB_DEBUG,("node==%p *ident==%"S32_F"\n",(void*)node,*ident));
 
-   while (node != NULL)
 
-  80352c0:	2c00      	cmp	r4, #0
 
-  80352c2:	d192      	bne.n	80351ea <snmp_search_tree+0x16>
 
-  80352c4:	e796      	b.n	80351f4 <snmp_search_tree+0x20>
 
-         }
 
-         if (ln != NULL)
 
-         {
 
-           /* found it, proceed to child */;
 
-           LWIP_DEBUGF(SNMP_MIB_DEBUG,("ln->objid==%"S32_F" *ident==%"S32_F"\n",ln->objid,*ident));
 
-           if (ln->nptr == NULL)
 
-  80352c6:	68db      	ldr	r3, [r3, #12]
 
-  80352c8:	2b00      	cmp	r3, #0
 
-  80352ca:	d1f2      	bne.n	80352b2 <snmp_search_tree+0xde>
 
-  80352cc:	e7ec      	b.n	80352a8 <snmp_search_tree+0xd4>
 
-     }
 
-   }
 
-   /* done, found nothing */
 
-   LWIP_DEBUGF(SNMP_MIB_DEBUG,("search failed node==%p\n",(void*)node));
 
-   return NULL;
 
- }
 
-  80352ce:	b005      	add	sp, #20
 
-  80352d0:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
- 080352d4 <snmp_expand_tree>:
 
- /**
 
-  * Tree expansion.
 
-  */
 
- struct mib_node *
 
- snmp_expand_tree(struct mib_node *node, u8_t ident_len, s32_t *ident, struct snmp_obj_id *oidret)
 
- {
 
-  80352d4:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-  80352d8:	461d      	mov	r5, r3
 
-  80352da:	b08b      	sub	sp, #44	; 0x2c
 
-   u8_t node_type, ext_level, climb_tree;
 
-   ext_level = 0;
 
-   /* reset node stack */
 
-   node_stack_cnt = 0;
 
-  80352dc:	4ba4      	ldr	r3, [pc, #656]	; (8035570 <snmp_expand_tree+0x29c>)
 
-  80352de:	f04f 0a00 	mov.w	sl, #0
 
-             j = (u8_t)i + 1;
 
-             if (j < len)
 
-             {
 
-               /* right node is the current external node */
 
-               cur_node.r_ptr = node;
 
-               en->get_objid(en->addr_inf,ext_level,j,&cur_node.r_id);
 
-  80352e2:	af08      	add	r7, sp, #32
 
- /**
 
-  * Tree expansion.
 
-  */
 
- struct mib_node *
 
- snmp_expand_tree(struct mib_node *node, u8_t ident_len, s32_t *ident, struct snmp_obj_id *oidret)
 
- {
 
-  80352e4:	4604      	mov	r4, r0
 
-  80352e6:	460e      	mov	r6, r1
 
-  80352e8:	4690      	mov	r8, r2
 
-   u8_t node_type, ext_level, climb_tree;
 
-   ext_level = 0;
 
-   /* reset node stack */
 
-   node_stack_cnt = 0;
 
-  80352ea:	f883 a000 	strb.w	sl, [r3]
 
-             j = (u8_t)i + 1;
 
-             if (j < len)
 
-             {
 
-               /* right node is the current external node */
 
-               cur_node.r_ptr = node;
 
-               en->get_objid(en->addr_inf,ext_level,j,&cur_node.r_id);
 
-  80352ee:	9705      	str	r7, [sp, #20]
 
-   u8_t node_type, ext_level, climb_tree;
 
-   ext_level = 0;
 
-   /* reset node stack */
 
-   node_stack_cnt = 0;
 
-   while (node != NULL)
 
-  80352f0:	e19c      	b.n	803562c <snmp_expand_tree+0x358>
 
-   {
 
-     climb_tree = 0;
 
-     node_type = node->node_type;
 
-  80352f2:	7c23      	ldrb	r3, [r4, #16]
 
-     if ((node_type == MIB_NODE_AR) || (node_type == MIB_NODE_RA))
 
-  80352f4:	1e9a      	subs	r2, r3, #2
 
-  80352f6:	2a01      	cmp	r2, #1
 
-  80352f8:	f200 808f 	bhi.w	803541a <snmp_expand_tree+0x146>
 
-  80352fc:	8a67      	ldrh	r7, [r4, #18]
 
-       struct mib_array_node *an;
 
-       u16_t i;
 
-       /* array node (internal ROM or RAM, fixed length) */
 
-       an = (struct mib_array_node *)node;
 
-       if (ident_len > 0)
 
-  80352fe:	b90e      	cbnz	r6, 8035304 <snmp_expand_tree+0x30>
 
-       else
 
-       {
 
-         u8_t j;
 
-         /* ident_len == 0, complete with leftmost '.thing' */
 
-         j = 0;
 
-         while ((j < an->maxlength) && empty_table(an->nptr[j]))
 
-  8035300:	46b1      	mov	r9, r6
 
-  8035302:	e06f      	b.n	80353e4 <snmp_expand_tree+0x110>
 
-       /* array node (internal ROM or RAM, fixed length) */
 
-       an = (struct mib_array_node *)node;
 
-       if (ident_len > 0)
 
-       {
 
-         i = 0;
 
-         while ((i < an->maxlength) && (an->objid[i] < *ident))
 
-  8035304:	f04f 0c00 	mov.w	ip, #0
 
-  8035308:	fa1f f28c 	uxth.w	r2, ip
 
-  803530c:	42ba      	cmp	r2, r7
 
-  803530e:	f080 8168 	bcs.w	80355e2 <snmp_expand_tree+0x30e>
 
-  8035312:	6963      	ldr	r3, [r4, #20]
 
-  8035314:	f853 102c 	ldr.w	r1, [r3, ip, lsl #2]
 
-  8035318:	f8d8 3000 	ldr.w	r3, [r8]
 
-  803531c:	4299      	cmp	r1, r3
 
-  803531e:	ea4f 098c 	mov.w	r9, ip, lsl #2
 
-  8035322:	f10c 0c01 	add.w	ip, ip, #1
 
-  8035326:	dbef      	blt.n	8035308 <snmp_expand_tree+0x34>
 
-         }
 
-         if (i < an->maxlength)
 
-         {
 
-           LWIP_DEBUGF(SNMP_MIB_DEBUG,("an->objid[%"U16_F"]==%"S32_F" *ident==%"S32_F"\n",i,an->objid[i],*ident));
 
-           /* add identifier to oidret */
 
-           oidret->id[oidret->len] = an->objid[i];
 
-  8035328:	782b      	ldrb	r3, [r5, #0]
 
-  803532a:	eb05 0783 	add.w	r7, r5, r3, lsl #2
 
-  803532e:	6079      	str	r1, [r7, #4]
 
-           (oidret->len)++;
 
-  8035330:	1c59      	adds	r1, r3, #1
 
-  8035332:	7029      	strb	r1, [r5, #0]
 
-           if (an->nptr[i] == NULL)
 
-  8035334:	f8d4 b018 	ldr.w	fp, [r4, #24]
 
-  8035338:	f85b 0009 	ldr.w	r0, [fp, r9]
 
-  803533c:	b998      	cbnz	r0, 8035366 <snmp_expand_tree+0x92>
 
-           {
 
-             LWIP_DEBUGF(SNMP_MIB_DEBUG,("leaf node\n"));
 
-             /* leaf node (e.g. in a fixed size table) */
 
-             if (an->objid[i] > *ident)
 
-  803533e:	6960      	ldr	r0, [r4, #20]
 
-  8035340:	f850 6009 	ldr.w	r6, [r0, r9]
 
-  8035344:	f8d8 0000 	ldr.w	r0, [r8]
 
-  8035348:	4286      	cmp	r6, r0
 
-  803534a:	f300 8173 	bgt.w	8035634 <snmp_expand_tree+0x360>
 
-             {
 
-               return (struct mib_node*)an;
 
-             }
 
-             else if ((i + 1) < an->maxlength)
 
-  803534e:	8a60      	ldrh	r0, [r4, #18]
 
-             {
 
-               /* an->objid[i] == *ident */
 
-               (oidret->len)--;
 
-  8035350:	702b      	strb	r3, [r5, #0]
 
-             /* leaf node (e.g. in a fixed size table) */
 
-             if (an->objid[i] > *ident)
 
-             {
 
-               return (struct mib_node*)an;
 
-             }
 
-             else if ((i + 1) < an->maxlength)
 
-  8035352:	3201      	adds	r2, #1
 
-  8035354:	4282      	cmp	r2, r0
 
-  8035356:	f280 8144 	bge.w	80355e2 <snmp_expand_tree+0x30e>
 
-             {
 
-               /* an->objid[i] == *ident */
 
-               (oidret->len)--;
 
-               oidret->id[oidret->len] = an->objid[i + 1];
 
-  803535a:	6963      	ldr	r3, [r4, #20]
 
-  803535c:	f853 302c 	ldr.w	r3, [r3, ip, lsl #2]
 
-               (oidret->len)++;
 
-  8035360:	7029      	strb	r1, [r5, #0]
 
-             }
 
-             else if ((i + 1) < an->maxlength)
 
-             {
 
-               /* an->objid[i] == *ident */
 
-               (oidret->len)--;
 
-               oidret->id[oidret->len] = an->objid[i + 1];
 
-  8035362:	607b      	str	r3, [r7, #4]
 
-  8035364:	e166      	b.n	8035634 <snmp_expand_tree+0x360>
 
-             struct nse cur_node;
 
-             LWIP_DEBUGF(SNMP_MIB_DEBUG,("non-leaf node\n"));
 
-             /* non-leaf, store right child ptr and id */
 
-             LWIP_ASSERT("i < 0xff", i < 0xff);
 
-             j = (u8_t)i + 1;
 
-  8035366:	3201      	adds	r2, #1
 
-             while ((j < an->maxlength) && (empty_table(an->nptr[j])))
 
-  8035368:	8a61      	ldrh	r1, [r4, #18]
 
-             struct nse cur_node;
 
-             LWIP_DEBUGF(SNMP_MIB_DEBUG,("non-leaf node\n"));
 
-             /* non-leaf, store right child ptr and id */
 
-             LWIP_ASSERT("i < 0xff", i < 0xff);
 
-             j = (u8_t)i + 1;
 
-  803536a:	fa5f fc82 	uxtb.w	ip, r2
 
-             while ((j < an->maxlength) && (empty_table(an->nptr[j])))
 
-  803536e:	2700      	movs	r7, #0
 
- /**
 
-  * Tree expansion.
 
-  */
 
- struct mib_node *
 
- snmp_expand_tree(struct mib_node *node, u8_t ident_len, s32_t *ident, struct snmp_obj_id *oidret)
 
-  8035370:	eb0c 0307 	add.w	r3, ip, r7
 
-  8035374:	b2db      	uxtb	r3, r3
 
-             LWIP_DEBUGF(SNMP_MIB_DEBUG,("non-leaf node\n"));
 
-             /* non-leaf, store right child ptr and id */
 
-             LWIP_ASSERT("i < 0xff", i < 0xff);
 
-             j = (u8_t)i + 1;
 
-             while ((j < an->maxlength) && (empty_table(an->nptr[j])))
 
-  8035376:	428b      	cmp	r3, r1
 
-  8035378:	d21a      	bcs.n	80353b0 <snmp_expand_tree+0xdc>
 
-  803537a:	b21b      	sxth	r3, r3
 
-  803537c:	009a      	lsls	r2, r3, #2
 
-  803537e:	f85b 3023 	ldr.w	r3, [fp, r3, lsl #2]
 
-  8035382:	9104      	str	r1, [sp, #16]
 
-  8035384:	4618      	mov	r0, r3
 
-  8035386:	9203      	str	r2, [sp, #12]
 
-  8035388:	9302      	str	r3, [sp, #8]
 
-  803538a:	f8cd c004 	str.w	ip, [sp, #4]
 
-  803538e:	f7ff fe23 	bl	8034fd8 <empty_table>
 
-  8035392:	3701      	adds	r7, #1
 
-  8035394:	9904      	ldr	r1, [sp, #16]
 
-  8035396:	9a03      	ldr	r2, [sp, #12]
 
-  8035398:	9b02      	ldr	r3, [sp, #8]
 
-  803539a:	f8dd c004 	ldr.w	ip, [sp, #4]
 
-  803539e:	2800      	cmp	r0, #0
 
-  80353a0:	d1e6      	bne.n	8035370 <snmp_expand_tree+0x9c>
 
-             {
 
-               j++;
 
-             }
 
-             if (j < an->maxlength)
 
-             {
 
-               cur_node.r_ptr = an->nptr[j];
 
-  80353a2:	9307      	str	r3, [sp, #28]
 
-               cur_node.r_id = an->objid[j];
 
-  80353a4:	6963      	ldr	r3, [r4, #20]
 
-  80353a6:	589b      	ldr	r3, [r3, r2]
 
-               cur_node.r_nl = 0;
 
-  80353a8:	f88d 0024 	strb.w	r0, [sp, #36]	; 0x24
 
-               j++;
 
-             }
 
-             if (j < an->maxlength)
 
-             {
 
-               cur_node.r_ptr = an->nptr[j];
 
-               cur_node.r_id = an->objid[j];
 
-  80353ac:	9308      	str	r3, [sp, #32]
 
-  80353ae:	e001      	b.n	80353b4 <snmp_expand_tree+0xe0>
 
-               cur_node.r_nl = 0;
 
-             }
 
-             else
 
-             {
 
-               cur_node.r_ptr = NULL;
 
-  80353b0:	2300      	movs	r3, #0
 
-  80353b2:	9307      	str	r3, [sp, #28]
 
-             }
 
-             push_node(&cur_node);
 
-  80353b4:	a807      	add	r0, sp, #28
 
-  80353b6:	f7ff fdfb 	bl	8034fb0 <push_node>
 
-             if (an->objid[i] == *ident)
 
-  80353ba:	6963      	ldr	r3, [r4, #20]
 
-  80353bc:	f853 2009 	ldr.w	r2, [r3, r9]
 
-  80353c0:	f8d8 3000 	ldr.w	r3, [r8]
 
-  80353c4:	429a      	cmp	r2, r3
 
-  80353c6:	d104      	bne.n	80353d2 <snmp_expand_tree+0xfe>
 
-             {
 
-               ident_len--;
 
-  80353c8:	3e01      	subs	r6, #1
 
-  80353ca:	b2f6      	uxtb	r6, r6
 
-               ident++;
 
-  80353cc:	f108 0804 	add.w	r8, r8, #4
 
-  80353d0:	e000      	b.n	80353d4 <snmp_expand_tree+0x100>
 
-             }
 
-             else
 
-             {
 
-               /* an->objid[i] < *ident */
 
-               ident_len = 0;
 
-  80353d2:	2600      	movs	r6, #0
 
-             }
 
-             /* follow next child pointer */
 
-             node = an->nptr[i];
 
-  80353d4:	69a3      	ldr	r3, [r4, #24]
 
-  80353d6:	f853 3009 	ldr.w	r3, [r3, r9]
 
-  80353da:	e140      	b.n	803565e <snmp_expand_tree+0x38a>
 
-         u8_t j;
 
-         /* ident_len == 0, complete with leftmost '.thing' */
 
-         j = 0;
 
-         while ((j < an->maxlength) && empty_table(an->nptr[j]))
 
-         {
 
-           j++;
 
-  80353dc:	f109 0901 	add.w	r9, r9, #1
 
-  80353e0:	fa5f f989 	uxtb.w	r9, r9
 
-       else
 
-       {
 
-         u8_t j;
 
-         /* ident_len == 0, complete with leftmost '.thing' */
 
-         j = 0;
 
-         while ((j < an->maxlength) && empty_table(an->nptr[j]))
 
-  80353e4:	45b9      	cmp	r9, r7
 
-  80353e6:	f080 80fc 	bcs.w	80355e2 <snmp_expand_tree+0x30e>
 
-  80353ea:	fa0f f289 	sxth.w	r2, r9
 
-  80353ee:	69a3      	ldr	r3, [r4, #24]
 
-  80353f0:	f853 0022 	ldr.w	r0, [r3, r2, lsl #2]
 
-  80353f4:	ea4f 0b82 	mov.w	fp, r2, lsl #2
 
-  80353f8:	f7ff fdee 	bl	8034fd8 <empty_table>
 
-  80353fc:	2800      	cmp	r0, #0
 
-  80353fe:	d1ed      	bne.n	80353dc <snmp_expand_tree+0x108>
 
-           j++;
 
-         }
 
-         if (j < an->maxlength)
 
-         {
 
-           LWIP_DEBUGF(SNMP_MIB_DEBUG,("left an->objid[j]==%"S32_F"\n",an->objid[j]));
 
-           oidret->id[oidret->len] = an->objid[j];
 
-  8035400:	6962      	ldr	r2, [r4, #20]
 
-  8035402:	782b      	ldrb	r3, [r5, #0]
 
-  8035404:	f852 100b 	ldr.w	r1, [r2, fp]
 
-  8035408:	eb05 0283 	add.w	r2, r5, r3, lsl #2
 
-           (oidret->len)++;
 
-  803540c:	3301      	adds	r3, #1
 
-  803540e:	702b      	strb	r3, [r5, #0]
 
-           if (an->nptr[j] == NULL)
 
-  8035410:	69a3      	ldr	r3, [r4, #24]
 
-           j++;
 
-         }
 
-         if (j < an->maxlength)
 
-         {
 
-           LWIP_DEBUGF(SNMP_MIB_DEBUG,("left an->objid[j]==%"S32_F"\n",an->objid[j]));
 
-           oidret->id[oidret->len] = an->objid[j];
 
-  8035412:	6051      	str	r1, [r2, #4]
 
-           (oidret->len)++;
 
-           if (an->nptr[j] == NULL)
 
-  8035414:	f853 300b 	ldr.w	r3, [r3, fp]
 
-  8035418:	e11f      	b.n	803565a <snmp_expand_tree+0x386>
 
-           /* j == an->maxlength */
 
-           climb_tree = 1;
 
-         }
 
-       }
 
-     }
 
-     else if(node_type == MIB_NODE_LR)
 
-  803541a:	2b04      	cmp	r3, #4
 
-  803541c:	d14c      	bne.n	80354b8 <snmp_expand_tree+0x1e4>
 
-  803541e:	6967      	ldr	r7, [r4, #20]
 
-       struct mib_list_rootnode *lrn;
 
-       struct mib_list_node *ln;
 
-       /* list root node (internal 'RAM', variable length) */
 
-       lrn = (struct mib_list_rootnode *)node;
 
-       if (ident_len > 0)
 
-  8035420:	2e00      	cmp	r6, #0
 
-  8035422:	d040      	beq.n	80354a6 <snmp_expand_tree+0x1d2>
 
-       {
 
-         ln = lrn->head;
 
-         /* iterate over list, head to tail */
 
-         while ((ln != NULL) && (ln->objid < *ident))
 
-  8035424:	e000      	b.n	8035428 <snmp_expand_tree+0x154>
 
-         {
 
-           ln = ln->next;
 
-  8035426:	687f      	ldr	r7, [r7, #4]
 
-       lrn = (struct mib_list_rootnode *)node;
 
-       if (ident_len > 0)
 
-       {
 
-         ln = lrn->head;
 
-         /* iterate over list, head to tail */
 
-         while ((ln != NULL) && (ln->objid < *ident))
 
-  8035428:	2f00      	cmp	r7, #0
 
-  803542a:	f000 80da 	beq.w	80355e2 <snmp_expand_tree+0x30e>
 
-  803542e:	68ba      	ldr	r2, [r7, #8]
 
-  8035430:	f8d8 3000 	ldr.w	r3, [r8]
 
-  8035434:	429a      	cmp	r2, r3
 
-  8035436:	dbf6      	blt.n	8035426 <snmp_expand_tree+0x152>
 
-           ln = ln->next;
 
-         }
 
-         if (ln != NULL)
 
-         {
 
-           LWIP_DEBUGF(SNMP_MIB_DEBUG,("ln->objid==%"S32_F" *ident==%"S32_F"\n",ln->objid,*ident));
 
-           oidret->id[oidret->len] = ln->objid;
 
-  8035438:	782b      	ldrb	r3, [r5, #0]
 
-  803543a:	eb05 0183 	add.w	r1, r5, r3, lsl #2
 
-  803543e:	604a      	str	r2, [r1, #4]
 
-           (oidret->len)++;
 
-  8035440:	1c5a      	adds	r2, r3, #1
 
-  8035442:	702a      	strb	r2, [r5, #0]
 
-           if (ln->nptr == NULL)
 
-  8035444:	68f8      	ldr	r0, [r7, #12]
 
-  8035446:	b978      	cbnz	r0, 8035468 <snmp_expand_tree+0x194>
 
-           {
 
-             /* leaf node */
 
-             if (ln->objid > *ident)
 
-  8035448:	68b8      	ldr	r0, [r7, #8]
 
-  803544a:	f8d8 6000 	ldr.w	r6, [r8]
 
-  803544e:	42b0      	cmp	r0, r6
 
-  8035450:	f300 80f0 	bgt.w	8035634 <snmp_expand_tree+0x360>
 
-             {
 
-               return (struct mib_node*)lrn;
 
-             }
 
-             else if (ln->next != NULL)
 
-  8035454:	6878      	ldr	r0, [r7, #4]
 
-             {
 
-               /* ln->objid == *ident */
 
-               (oidret->len)--;
 
-  8035456:	702b      	strb	r3, [r5, #0]
 
-             /* leaf node */
 
-             if (ln->objid > *ident)
 
-             {
 
-               return (struct mib_node*)lrn;
 
-             }
 
-             else if (ln->next != NULL)
 
-  8035458:	2800      	cmp	r0, #0
 
-  803545a:	f000 80c2 	beq.w	80355e2 <snmp_expand_tree+0x30e>
 
-             {
 
-               /* ln->objid == *ident */
 
-               (oidret->len)--;
 
-               oidret->id[oidret->len] = ln->next->objid;
 
-  803545e:	687b      	ldr	r3, [r7, #4]
 
-  8035460:	689b      	ldr	r3, [r3, #8]
 
-               (oidret->len)++;
 
-  8035462:	702a      	strb	r2, [r5, #0]
 
-             }
 
-             else if (ln->next != NULL)
 
-             {
 
-               /* ln->objid == *ident */
 
-               (oidret->len)--;
 
-               oidret->id[oidret->len] = ln->next->objid;
 
-  8035464:	604b      	str	r3, [r1, #4]
 
-  8035466:	e0e5      	b.n	8035634 <snmp_expand_tree+0x360>
 
-           {
 
-             struct mib_list_node *jn;
 
-             struct nse cur_node;
 
-             /* non-leaf, store right child ptr and id */
 
-             jn = ln->next;
 
-  8035468:	687c      	ldr	r4, [r7, #4]
 
-             while ((jn != NULL) && empty_table(jn->nptr))
 
-  803546a:	e000      	b.n	803546e <snmp_expand_tree+0x19a>
 
-             {
 
-               jn = jn->next;
 
-  803546c:	6864      	ldr	r4, [r4, #4]
 
-             struct mib_list_node *jn;
 
-             struct nse cur_node;
 
-             /* non-leaf, store right child ptr and id */
 
-             jn = ln->next;
 
-             while ((jn != NULL) && empty_table(jn->nptr))
 
-  803546e:	2c00      	cmp	r4, #0
 
-  8035470:	f000 80e9 	beq.w	8035646 <snmp_expand_tree+0x372>
 
-  8035474:	f8d4 900c 	ldr.w	r9, [r4, #12]
 
-  8035478:	4648      	mov	r0, r9
 
-  803547a:	f7ff fdad 	bl	8034fd8 <empty_table>
 
-  803547e:	2800      	cmp	r0, #0
 
-  8035480:	d1f4      	bne.n	803546c <snmp_expand_tree+0x198>
 
-  8035482:	e0d9      	b.n	8035638 <snmp_expand_tree+0x364>
 
-             }
 
-             else
 
-             {
 
-               cur_node.r_ptr = NULL;
 
-             }
 
-             push_node(&cur_node);
 
-  8035484:	a807      	add	r0, sp, #28
 
-  8035486:	f7ff fd93 	bl	8034fb0 <push_node>
 
-             if (ln->objid == *ident)
 
-  803548a:	68ba      	ldr	r2, [r7, #8]
 
-  803548c:	f8d8 3000 	ldr.w	r3, [r8]
 
-  8035490:	429a      	cmp	r2, r3
 
-  8035492:	d104      	bne.n	803549e <snmp_expand_tree+0x1ca>
 
-             {
 
-               ident_len--;
 
-  8035494:	3e01      	subs	r6, #1
 
-  8035496:	b2f6      	uxtb	r6, r6
 
-               ident++;
 
-  8035498:	f108 0804 	add.w	r8, r8, #4
 
-  803549c:	e000      	b.n	80354a0 <snmp_expand_tree+0x1cc>
 
-             }
 
-             else
 
-             {
 
-               /* ln->objid < *ident */
 
-               ident_len = 0;
 
-  803549e:	2600      	movs	r6, #0
 
-             }
 
-             /* follow next child pointer */
 
-             node = ln->nptr;
 
-  80354a0:	68fb      	ldr	r3, [r7, #12]
 
-  80354a2:	e0dc      	b.n	803565e <snmp_expand_tree+0x38a>
 
-         struct mib_list_node *jn;
 
-         /* ident_len == 0, complete with leftmost '.thing' */
 
-         jn = lrn->head;
 
-         while ((jn != NULL) && empty_table(jn->nptr))
 
-         {
 
-           jn = jn->next;
 
-  80354a4:	687f      	ldr	r7, [r7, #4]
 
-       else
 
-       {
 
-         struct mib_list_node *jn;
 
-         /* ident_len == 0, complete with leftmost '.thing' */
 
-         jn = lrn->head;
 
-         while ((jn != NULL) && empty_table(jn->nptr))
 
-  80354a6:	2f00      	cmp	r7, #0
 
-  80354a8:	f000 809b 	beq.w	80355e2 <snmp_expand_tree+0x30e>
 
-  80354ac:	68f8      	ldr	r0, [r7, #12]
 
-  80354ae:	f7ff fd93 	bl	8034fd8 <empty_table>
 
-  80354b2:	2800      	cmp	r0, #0
 
-  80354b4:	d1f6      	bne.n	80354a4 <snmp_expand_tree+0x1d0>
 
-  80354b6:	e0c8      	b.n	803564a <snmp_expand_tree+0x376>
 
-           /* jn == NULL */
 
-           climb_tree = 1;
 
-         }
 
-       }
 
-     }
 
-     else if(node_type == MIB_NODE_EX)
 
-  80354b8:	2b05      	cmp	r3, #5
 
-  80354ba:	f040 8086 	bne.w	80355ca <snmp_expand_tree+0x2f6>
 
-       struct mib_external_node *en;
 
-       s32_t ex_id;
 
-       /* external node (addressing and access via functions) */
 
-       en = (struct mib_external_node *)node;
 
-       if (ident_len > 0)
 
-  80354be:	2e00      	cmp	r6, #0
 
-  80354c0:	d06e      	beq.n	80355a0 <snmp_expand_tree+0x2cc>
 
-       {
 
-         u16_t i, len;
 
-         i = 0;
 
-         len = en->level_length(en->addr_inf,ext_level);
 
-  80354c2:	69e3      	ldr	r3, [r4, #28]
 
-  80354c4:	6960      	ldr	r0, [r4, #20]
 
-  80354c6:	4651      	mov	r1, sl
 
-  80354c8:	4798      	blx	r3
 
-       en = (struct mib_external_node *)node;
 
-       if (ident_len > 0)
 
-       {
 
-         u16_t i, len;
 
-         i = 0;
 
-  80354ca:	f04f 0900 	mov.w	r9, #0
 
-         len = en->level_length(en->addr_inf,ext_level);
 
-  80354ce:	4683      	mov	fp, r0
 
-         while ((i < len) && (en->ident_cmp(en->addr_inf,ext_level,i,*ident) < 0))
 
-  80354d0:	e003      	b.n	80354da <snmp_expand_tree+0x206>
 
-         {
 
-           i++;
 
-  80354d2:	f109 0901 	add.w	r9, r9, #1
 
-  80354d6:	fa1f f989 	uxth.w	r9, r9
 
-       {
 
-         u16_t i, len;
 
-         i = 0;
 
-         len = en->level_length(en->addr_inf,ext_level);
 
-         while ((i < len) && (en->ident_cmp(en->addr_inf,ext_level,i,*ident) < 0))
 
-  80354da:	45d9      	cmp	r9, fp
 
-  80354dc:	f000 8081 	beq.w	80355e2 <snmp_expand_tree+0x30e>
 
-  80354e0:	6a27      	ldr	r7, [r4, #32]
 
-  80354e2:	6960      	ldr	r0, [r4, #20]
 
-  80354e4:	f8d8 3000 	ldr.w	r3, [r8]
 
-  80354e8:	4651      	mov	r1, sl
 
-  80354ea:	464a      	mov	r2, r9
 
-  80354ec:	47b8      	blx	r7
 
-  80354ee:	2800      	cmp	r0, #0
 
-  80354f0:	dbef      	blt.n	80354d2 <snmp_expand_tree+0x1fe>
 
-         {
 
-           i++;
 
-         }
 
-         if (i < len)
 
-  80354f2:	45d9      	cmp	r9, fp
 
-  80354f4:	d275      	bcs.n	80355e2 <snmp_expand_tree+0x30e>
 
-         {
 
-           /* add identifier to oidret */
 
-           en->get_objid(en->addr_inf,ext_level,i,&ex_id);
 
-  80354f6:	4651      	mov	r1, sl
 
-  80354f8:	464a      	mov	r2, r9
 
-  80354fa:	ab06      	add	r3, sp, #24
 
-  80354fc:	6a67      	ldr	r7, [r4, #36]	; 0x24
 
-  80354fe:	6960      	ldr	r0, [r4, #20]
 
-  8035500:	47b8      	blx	r7
 
-           LWIP_DEBUGF(SNMP_MIB_DEBUG,("en->objid[%"U16_F"]==%"S32_F" *ident==%"S32_F"\n",i,ex_id,*ident));
 
-           oidret->id[oidret->len] = ex_id;
 
-  8035502:	782b      	ldrb	r3, [r5, #0]
 
-  8035504:	9a06      	ldr	r2, [sp, #24]
 
-  8035506:	eb05 0183 	add.w	r1, r5, r3, lsl #2
 
-           (oidret->len)++;
 
-           if ((ext_level + 1) == en->tree_levels)
 
-  803550a:	f10a 0c01 	add.w	ip, sl, #1
 
-         if (i < len)
 
-         {
 
-           /* add identifier to oidret */
 
-           en->get_objid(en->addr_inf,ext_level,i,&ex_id);
 
-           LWIP_DEBUGF(SNMP_MIB_DEBUG,("en->objid[%"U16_F"]==%"S32_F" *ident==%"S32_F"\n",i,ex_id,*ident));
 
-           oidret->id[oidret->len] = ex_id;
 
-  803550e:	604a      	str	r2, [r1, #4]
 
-           (oidret->len)++;
 
-  8035510:	1c59      	adds	r1, r3, #1
 
-  8035512:	7029      	strb	r1, [r5, #0]
 
-           if ((ext_level + 1) == en->tree_levels)
 
-  8035514:	7e21      	ldrb	r1, [r4, #24]
 
-  8035516:	458c      	cmp	ip, r1
 
-  8035518:	d118      	bne.n	803554c <snmp_expand_tree+0x278>
 
-           {
 
-             LWIP_DEBUGF(SNMP_MIB_DEBUG,("leaf node\n"));
 
-             /* leaf node */
 
-             if (ex_id > *ident)
 
-  803551a:	f8d8 1000 	ldr.w	r1, [r8]
 
-  803551e:	428a      	cmp	r2, r1
 
-  8035520:	f300 8088 	bgt.w	8035634 <snmp_expand_tree+0x360>
 
-             {
 
-               return (struct mib_node*)en;
 
-             }
 
-             else if ((i + 1) < len)
 
-  8035524:	f109 0201 	add.w	r2, r9, #1
 
-  8035528:	455a      	cmp	r2, fp
 
-  803552a:	da0d      	bge.n	8035548 <snmp_expand_tree+0x274>
 
-             {
 
-               /* ex_id == *ident */
 
-               en->get_objid(en->addr_inf,ext_level,i + 1,&ex_id);
 
-  803552c:	ab06      	add	r3, sp, #24
 
-  803552e:	6a66      	ldr	r6, [r4, #36]	; 0x24
 
-  8035530:	6960      	ldr	r0, [r4, #20]
 
-  8035532:	4651      	mov	r1, sl
 
-  8035534:	b292      	uxth	r2, r2
 
-  8035536:	47b0      	blx	r6
 
-               (oidret->len)--;
 
-  8035538:	782b      	ldrb	r3, [r5, #0]
 
-  803553a:	3b01      	subs	r3, #1
 
-               oidret->id[oidret->len] = ex_id;
 
-  803553c:	b2db      	uxtb	r3, r3
 
-  803553e:	eb05 0583 	add.w	r5, r5, r3, lsl #2
 
-  8035542:	9b06      	ldr	r3, [sp, #24]
 
-  8035544:	606b      	str	r3, [r5, #4]
 
-  8035546:	e075      	b.n	8035634 <snmp_expand_tree+0x360>
 
-               return (struct mib_node*)en;
 
-             }
 
-             else
 
-             {
 
-               /* (i + 1) == len */
 
-               (oidret->len)--;
 
-  8035548:	702b      	strb	r3, [r5, #0]
 
-  803554a:	e04a      	b.n	80355e2 <snmp_expand_tree+0x30e>
 
-             struct nse cur_node;
 
-             LWIP_DEBUGF(SNMP_MIB_DEBUG,("non-leaf node\n"));
 
-             /* non-leaf, store right child ptr and id */
 
-             LWIP_ASSERT("i < 0xff", i < 0xff);
 
-             j = (u8_t)i + 1;
 
-  803554c:	f109 0201 	add.w	r2, r9, #1
 
-             if (j < len)
 
-  8035550:	b2d2      	uxtb	r2, r2
 
-  8035552:	455a      	cmp	r2, fp
 
-  8035554:	d20e      	bcs.n	8035574 <snmp_expand_tree+0x2a0>
 
-             {
 
-               /* right node is the current external node */
 
-               cur_node.r_ptr = node;
 
-  8035556:	9407      	str	r4, [sp, #28]
 
-               en->get_objid(en->addr_inf,ext_level,j,&cur_node.r_id);
 
-  8035558:	6960      	ldr	r0, [r4, #20]
 
-  803555a:	9b05      	ldr	r3, [sp, #20]
 
-  803555c:	f8cd c004 	str.w	ip, [sp, #4]
 
-  8035560:	4651      	mov	r1, sl
 
-  8035562:	6a67      	ldr	r7, [r4, #36]	; 0x24
 
-  8035564:	47b8      	blx	r7
 
-               cur_node.r_nl = ext_level + 1;
 
-  8035566:	f8dd c004 	ldr.w	ip, [sp, #4]
 
-  803556a:	f88d c024 	strb.w	ip, [sp, #36]	; 0x24
 
-  803556e:	e003      	b.n	8035578 <snmp_expand_tree+0x2a4>
 
-  8035570:	2000c578 	.word	0x2000c578
 
-             }
 
-             else
 
-             {
 
-               cur_node.r_ptr = NULL;
 
-  8035574:	2300      	movs	r3, #0
 
-  8035576:	9307      	str	r3, [sp, #28]
 
-             }
 
-             push_node(&cur_node);
 
-  8035578:	a807      	add	r0, sp, #28
 
-  803557a:	f7ff fd19 	bl	8034fb0 <push_node>
 
-             if (en->ident_cmp(en->addr_inf,ext_level,i,*ident) == 0)
 
-  803557e:	6a27      	ldr	r7, [r4, #32]
 
-  8035580:	6960      	ldr	r0, [r4, #20]
 
-  8035582:	f8d8 3000 	ldr.w	r3, [r8]
 
-  8035586:	4651      	mov	r1, sl
 
-  8035588:	464a      	mov	r2, r9
 
-  803558a:	47b8      	blx	r7
 
-  803558c:	b920      	cbnz	r0, 8035598 <snmp_expand_tree+0x2c4>
 
-             {
 
-               ident_len--;
 
-  803558e:	3e01      	subs	r6, #1
 
-  8035590:	b2f6      	uxtb	r6, r6
 
-               ident++;
 
-  8035592:	f108 0804 	add.w	r8, r8, #4
 
-  8035596:	e000      	b.n	803559a <snmp_expand_tree+0x2c6>
 
-             }
 
-             else
 
-             {
 
-               /* external id < *ident */
 
-               ident_len = 0;
 
-  8035598:	2600      	movs	r6, #0
 
-             }
 
-             /* proceed to child */
 
-             ext_level++;
 
-  803559a:	f10a 0a01 	add.w	sl, sl, #1
 
-  803559e:	e011      	b.n	80355c4 <snmp_expand_tree+0x2f0>
 
-         }
 
-       }
 
-       else
 
-       {
 
-         /* ident_len == 0, complete with leftmost '.thing' */
 
-         en->get_objid(en->addr_inf,ext_level,0,&ex_id);
 
-  80355a0:	4651      	mov	r1, sl
 
-  80355a2:	4632      	mov	r2, r6
 
-  80355a4:	ab06      	add	r3, sp, #24
 
-  80355a6:	6a67      	ldr	r7, [r4, #36]	; 0x24
 
-  80355a8:	6960      	ldr	r0, [r4, #20]
 
-  80355aa:	47b8      	blx	r7
 
-         LWIP_DEBUGF(SNMP_MIB_DEBUG,("left en->objid==%"S32_F"\n",ex_id));
 
-         oidret->id[oidret->len] = ex_id;
 
-  80355ac:	782b      	ldrb	r3, [r5, #0]
 
-  80355ae:	9a06      	ldr	r2, [sp, #24]
 
-  80355b0:	eb05 0183 	add.w	r1, r5, r3, lsl #2
 
-         (oidret->len)++;
 
-  80355b4:	3301      	adds	r3, #1
 
-       else
 
-       {
 
-         /* ident_len == 0, complete with leftmost '.thing' */
 
-         en->get_objid(en->addr_inf,ext_level,0,&ex_id);
 
-         LWIP_DEBUGF(SNMP_MIB_DEBUG,("left en->objid==%"S32_F"\n",ex_id));
 
-         oidret->id[oidret->len] = ex_id;
 
-  80355b6:	604a      	str	r2, [r1, #4]
 
-         (oidret->len)++;
 
-  80355b8:	702b      	strb	r3, [r5, #0]
 
-         if ((ext_level + 1) == en->tree_levels)
 
-  80355ba:	7e23      	ldrb	r3, [r4, #24]
 
-  80355bc:	f10a 0a01 	add.w	sl, sl, #1
 
-  80355c0:	459a      	cmp	sl, r3
 
-  80355c2:	d037      	beq.n	8035634 <snmp_expand_tree+0x360>
 
-           return (struct mib_node*)en;
 
-         }
 
-         else
 
-         {
 
-           /* no leaf, proceed to child */
 
-           ext_level++;
 
-  80355c4:	fa5f fa8a 	uxtb.w	sl, sl
 
-  80355c8:	e030      	b.n	803562c <snmp_expand_tree+0x358>
 
-         }
 
-       }
 
-     }
 
-     else if(node_type == MIB_NODE_SC)
 
-  80355ca:	2b01      	cmp	r3, #1
 
-  80355cc:	d001      	beq.n	80355d2 <snmp_expand_tree+0x2fe>
 
-     }
 
-     else
 
-     {
 
-       /* unknown/unhandled node_type */
 
-       LWIP_DEBUGF(SNMP_MIB_DEBUG,("expand failed node_type %"U16_F" unkown\n",(u16_t)node_type));
 
-       return NULL;
 
-  80355ce:	2000      	movs	r0, #0
 
-  80355d0:	e047      	b.n	8035662 <snmp_expand_tree+0x38e>
 
-     {
 
-       mib_scalar_node *sn;
 
-       /* scalar node  */
 
-       sn = (mib_scalar_node *)node;
 
-       if (ident_len > 0)
 
-  80355d2:	b936      	cbnz	r6, 80355e2 <snmp_expand_tree+0x30e>
 
-         climb_tree = 1;
 
-       }
 
-       else
 
-       {
 
-         /* ident_len == 0, complete object identifier */
 
-         oidret->id[oidret->len] = 0;
 
-  80355d4:	782b      	ldrb	r3, [r5, #0]
 
-  80355d6:	eb05 0283 	add.w	r2, r5, r3, lsl #2
 
-         (oidret->len)++;
 
-  80355da:	3301      	adds	r3, #1
 
-         climb_tree = 1;
 
-       }
 
-       else
 
-       {
 
-         /* ident_len == 0, complete object identifier */
 
-         oidret->id[oidret->len] = 0;
 
-  80355dc:	6056      	str	r6, [r2, #4]
 
-         (oidret->len)++;
 
-  80355de:	702b      	strb	r3, [r5, #0]
 
-  80355e0:	e028      	b.n	8035634 <snmp_expand_tree+0x360>
 
-  80355e2:	4921      	ldr	r1, [pc, #132]	; (8035668 <snmp_expand_tree+0x394>)
 
-       struct nse child;
 
-       /* find right child ptr */
 
-       child.r_ptr = NULL;
 
-       child.r_id = 0;
 
-       child.r_nl = 0;
 
-  80355e4:	f04f 0a00 	mov.w	sl, #0
 
-  80355e8:	780b      	ldrb	r3, [r1, #0]
 
- pop_node(struct nse* node)
 
- {
 
-   if (node_stack_cnt > 0)
 
-   {
 
-     node_stack_cnt--;
 
-     *node = node_stack[node_stack_cnt];
 
-  80355ea:	4920      	ldr	r1, [pc, #128]	; (803566c <snmp_expand_tree+0x398>)
 
-     {
 
-       struct nse child;
 
-       /* find right child ptr */
 
-       child.r_ptr = NULL;
 
-       child.r_id = 0;
 
-  80355ec:	4652      	mov	r2, sl
 
-     if (climb_tree)
 
-     {
 
-       struct nse child;
 
-       /* find right child ptr */
 
-       child.r_ptr = NULL;
 
-  80355ee:	4654      	mov	r4, sl
 
- pop_node(struct nse* node)
 
- {
 
-   if (node_stack_cnt > 0)
 
-   {
 
-     node_stack_cnt--;
 
-     *node = node_stack[node_stack_cnt];
 
-  80355f0:	260c      	movs	r6, #12
 
-       /* find right child ptr */
 
-       child.r_ptr = NULL;
 
-       child.r_id = 0;
 
-       child.r_nl = 0;
 
-       while ((node_stack_cnt > 0) && (child.r_ptr == NULL))
 
-  80355f2:	e00b      	b.n	803560c <snmp_expand_tree+0x338>
 
- static void
 
- pop_node(struct nse* node)
 
- {
 
-   if (node_stack_cnt > 0)
 
-   {
 
-     node_stack_cnt--;
 
-  80355f4:	3b01      	subs	r3, #1
 
-  80355f6:	b2db      	uxtb	r3, r3
 
-     *node = node_stack[node_stack_cnt];
 
-  80355f8:	fb06 f203 	mul.w	r2, r6, r3
 
-  80355fc:	1888      	adds	r0, r1, r2
 
-  80355fe:	588c      	ldr	r4, [r1, r2]
 
-  8035600:	f890 a008 	ldrb.w	sl, [r0, #8]
 
-  8035604:	6842      	ldr	r2, [r0, #4]
 
-       child.r_nl = 0;
 
-       while ((node_stack_cnt > 0) && (child.r_ptr == NULL))
 
-       {
 
-         pop_node(&child);
 
-         /* trim returned oid */
 
-         (oidret->len)--;
 
-  8035606:	7828      	ldrb	r0, [r5, #0]
 
-  8035608:	3801      	subs	r0, #1
 
-  803560a:	7028      	strb	r0, [r5, #0]
 
-       /* find right child ptr */
 
-       child.r_ptr = NULL;
 
-       child.r_id = 0;
 
-       child.r_nl = 0;
 
-       while ((node_stack_cnt > 0) && (child.r_ptr == NULL))
 
-  803560c:	b91b      	cbnz	r3, 8035616 <snmp_expand_tree+0x342>
 
-  803560e:	4f16      	ldr	r7, [pc, #88]	; (8035668 <snmp_expand_tree+0x394>)
 
-  8035610:	703b      	strb	r3, [r7, #0]
 
-       {
 
-         pop_node(&child);
 
-         /* trim returned oid */
 
-         (oidret->len)--;
 
-       }
 
-       if (child.r_ptr != NULL)
 
-  8035612:	b924      	cbnz	r4, 803561e <snmp_expand_tree+0x34a>
 
-  8035614:	e7db      	b.n	80355ce <snmp_expand_tree+0x2fa>
 
-       /* find right child ptr */
 
-       child.r_ptr = NULL;
 
-       child.r_id = 0;
 
-       child.r_nl = 0;
 
-       while ((node_stack_cnt > 0) && (child.r_ptr == NULL))
 
-  8035616:	2c00      	cmp	r4, #0
 
-  8035618:	d0ec      	beq.n	80355f4 <snmp_expand_tree+0x320>
 
-  803561a:	4913      	ldr	r1, [pc, #76]	; (8035668 <snmp_expand_tree+0x394>)
 
-  803561c:	700b      	strb	r3, [r1, #0]
 
-       }
 
-       if (child.r_ptr != NULL)
 
-       {
 
-         /* incoming ident is useless beyond this point */
 
-         ident_len = 0;
 
-         oidret->id[oidret->len] = child.r_id;
 
-  803561e:	782b      	ldrb	r3, [r5, #0]
 
-  8035620:	eb05 0183 	add.w	r1, r5, r3, lsl #2
 
-         oidret->len++;
 
-  8035624:	3301      	adds	r3, #1
 
-       }
 
-       if (child.r_ptr != NULL)
 
-       {
 
-         /* incoming ident is useless beyond this point */
 
-         ident_len = 0;
 
-         oidret->id[oidret->len] = child.r_id;
 
-  8035626:	604a      	str	r2, [r1, #4]
 
-         oidret->len++;
 
-  8035628:	702b      	strb	r3, [r5, #0]
 
-         (oidret->len)--;
 
-       }
 
-       if (child.r_ptr != NULL)
 
-       {
 
-         /* incoming ident is useless beyond this point */
 
-         ident_len = 0;
 
-  803562a:	2600      	movs	r6, #0
 
-   u8_t node_type, ext_level, climb_tree;
 
-   ext_level = 0;
 
-   /* reset node stack */
 
-   node_stack_cnt = 0;
 
-   while (node != NULL)
 
-  803562c:	2c00      	cmp	r4, #0
 
-  803562e:	f47f ae60 	bne.w	80352f2 <snmp_expand_tree+0x1e>
 
-  8035632:	e7cc      	b.n	80355ce <snmp_expand_tree+0x2fa>
 
-         if (jn != NULL)
 
-         {
 
-           LWIP_DEBUGF(SNMP_MIB_DEBUG,("left jn->objid==%"S32_F"\n",jn->objid));
 
-           oidret->id[oidret->len] = jn->objid;
 
-           (oidret->len)++;
 
-           if (jn->nptr == NULL)
 
-  8035634:	4620      	mov	r0, r4
 
-  8035636:	e014      	b.n	8035662 <snmp_expand_tree+0x38e>
 
-               jn = jn->next;
 
-             }
 
-             if (jn != NULL)
 
-             {
 
-               cur_node.r_ptr = jn->nptr;
 
-               cur_node.r_id = jn->objid;
 
-  8035638:	68a3      	ldr	r3, [r4, #8]
 
-             {
 
-               jn = jn->next;
 
-             }
 
-             if (jn != NULL)
 
-             {
 
-               cur_node.r_ptr = jn->nptr;
 
-  803563a:	f8cd 901c 	str.w	r9, [sp, #28]
 
-               cur_node.r_id = jn->objid;
 
-  803563e:	9308      	str	r3, [sp, #32]
 
-               cur_node.r_nl = 0;
 
-  8035640:	f88d 0024 	strb.w	r0, [sp, #36]	; 0x24
 
-  8035644:	e71e      	b.n	8035484 <snmp_expand_tree+0x1b0>
 
-             }
 
-             else
 
-             {
 
-               cur_node.r_ptr = NULL;
 
-  8035646:	9407      	str	r4, [sp, #28]
 
-  8035648:	e71c      	b.n	8035484 <snmp_expand_tree+0x1b0>
 
-           jn = jn->next;
 
-         }
 
-         if (jn != NULL)
 
-         {
 
-           LWIP_DEBUGF(SNMP_MIB_DEBUG,("left jn->objid==%"S32_F"\n",jn->objid));
 
-           oidret->id[oidret->len] = jn->objid;
 
-  803564a:	782b      	ldrb	r3, [r5, #0]
 
-  803564c:	68ba      	ldr	r2, [r7, #8]
 
-  803564e:	eb05 0183 	add.w	r1, r5, r3, lsl #2
 
-           (oidret->len)++;
 
-  8035652:	3301      	adds	r3, #1
 
-  8035654:	702b      	strb	r3, [r5, #0]
 
-           if (jn->nptr == NULL)
 
-  8035656:	68fb      	ldr	r3, [r7, #12]
 
-           jn = jn->next;
 
-         }
 
-         if (jn != NULL)
 
-         {
 
-           LWIP_DEBUGF(SNMP_MIB_DEBUG,("left jn->objid==%"S32_F"\n",jn->objid));
 
-           oidret->id[oidret->len] = jn->objid;
 
-  8035658:	604a      	str	r2, [r1, #4]
 
-           (oidret->len)++;
 
-           if (jn->nptr == NULL)
 
-  803565a:	2b00      	cmp	r3, #0
 
-  803565c:	d0ea      	beq.n	8035634 <snmp_expand_tree+0x360>
 
-         (oidret->len)--;
 
-       }
 
-       if (child.r_ptr != NULL)
 
-       {
 
-         /* incoming ident is useless beyond this point */
 
-         ident_len = 0;
 
-  803565e:	461c      	mov	r4, r3
 
-  8035660:	e7e4      	b.n	803562c <snmp_expand_tree+0x358>
 
-     }
 
-   }
 
-   /* done, found nothing */
 
-   LWIP_DEBUGF(SNMP_MIB_DEBUG,("expand failed node==%p\n",(void*)node));
 
-   return NULL;
 
- }
 
-  8035662:	b00b      	add	sp, #44	; 0x2c
 
-  8035664:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
-  8035668:	2000c578 	.word	0x2000c578
 
-  803566c:	2000c57c 	.word	0x2000c57c
 
- 08035670 <snmp_iso_prefix_tst>:
 
-  * @return 1 if it matches, 0 otherwise
 
-  */
 
- u8_t
 
- snmp_iso_prefix_tst(u8_t ident_len, s32_t *ident)
 
- {
 
-   if ((ident_len > 3) &&
 
-  8035670:	2803      	cmp	r0, #3
 
-  8035672:	d90d      	bls.n	8035690 <snmp_iso_prefix_tst+0x20>
 
-  8035674:	680b      	ldr	r3, [r1, #0]
 
-  8035676:	2b01      	cmp	r3, #1
 
-  8035678:	d10a      	bne.n	8035690 <snmp_iso_prefix_tst+0x20>
 
-       (ident[0] == 1) && (ident[1] == 3) &&
 
-  803567a:	684b      	ldr	r3, [r1, #4]
 
-  803567c:	2b03      	cmp	r3, #3
 
-  803567e:	d107      	bne.n	8035690 <snmp_iso_prefix_tst+0x20>
 
-  8035680:	688b      	ldr	r3, [r1, #8]
 
-  8035682:	2b06      	cmp	r3, #6
 
-  8035684:	d104      	bne.n	8035690 <snmp_iso_prefix_tst+0x20>
 
-       (ident[2] == 6) && (ident[3] == 1))
 
-  8035686:	68c8      	ldr	r0, [r1, #12]
 
-   {
 
-     return 1;
 
-  8035688:	1e43      	subs	r3, r0, #1
 
-  803568a:	4258      	negs	r0, r3
 
-  803568c:	4158      	adcs	r0, r3
 
-  803568e:	4770      	bx	lr
 
-   }
 
-   else
 
-   {
 
-     return 0;
 
-  8035690:	2000      	movs	r0, #0
 
-   }
 
- }
 
-  8035692:	4770      	bx	lr
 
- 08035694 <snmp_iso_prefix_expand>:
 
-   i = 0;
 
-   prefix_ptr = &prefix[0];
 
-   ret_ptr = &oidret->id[0];
 
-   ident_len = ((ident_len < 4)?ident_len:4);
 
-   while ((i < ident_len) && ((*ident) <= (*prefix_ptr)))
 
-  8035694:	2300      	movs	r3, #0
 
-  *
 
-  * @note ident_len 0 is allowed, expanding to the first known object id!!
 
-  */
 
- u8_t
 
- snmp_iso_prefix_expand(u8_t ident_len, s32_t *ident, struct snmp_obj_id *oidret)
 
- {
 
-  8035696:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
 
-   s32_t *ret_ptr;
 
-   u8_t i;
 
-   i = 0;
 
-   prefix_ptr = &prefix[0];
 
-   ret_ptr = &oidret->id[0];
 
-  803569a:	1d15      	adds	r5, r2, #4
 
-   ident_len = ((ident_len < 4)?ident_len:4);
 
-  803569c:	2804      	cmp	r0, #4
 
-  803569e:	bf34      	ite	cc
 
-  80356a0:	4680      	movcc	r8, r0
 
-  80356a2:	f04f 0804 	movcs.w	r8, #4
 
- {
 
-   const s32_t *prefix_ptr;
 
-   s32_t *ret_ptr;
 
-   u8_t i;
 
-   i = 0;
 
-  80356a6:	461c      	mov	r4, r3
 
-  * @return 1 if it matches, 0 otherwise
 
-  *
 
-  * @note ident_len 0 is allowed, expanding to the first known object id!!
 
-  */
 
- u8_t
 
- snmp_iso_prefix_expand(u8_t ident_len, s32_t *ident, struct snmp_obj_id *oidret)
 
-  80356a8:	4f10      	ldr	r7, [pc, #64]	; (80356ec <snmp_iso_prefix_expand+0x58>)
 
-   i = 0;
 
-   prefix_ptr = &prefix[0];
 
-   ret_ptr = &oidret->id[0];
 
-   ident_len = ((ident_len < 4)?ident_len:4);
 
-   while ((i < ident_len) && ((*ident) <= (*prefix_ptr)))
 
-  80356aa:	e003      	b.n	80356b4 <snmp_iso_prefix_expand+0x20>
 
-   {
 
-     *ret_ptr++ = *prefix_ptr++;
 
-     ident++;
 
-     i++;
 
-  80356ac:	3401      	adds	r4, #1
 
-   prefix_ptr = &prefix[0];
 
-   ret_ptr = &oidret->id[0];
 
-   ident_len = ((ident_len < 4)?ident_len:4);
 
-   while ((i < ident_len) && ((*ident) <= (*prefix_ptr)))
 
-   {
 
-     *ret_ptr++ = *prefix_ptr++;
 
-  80356ae:	50ee      	str	r6, [r5, r3]
 
-     ident++;
 
-     i++;
 
-  80356b0:	b2e4      	uxtb	r4, r4
 
-  80356b2:	3304      	adds	r3, #4
 
-   i = 0;
 
-   prefix_ptr = &prefix[0];
 
-   ret_ptr = &oidret->id[0];
 
-   ident_len = ((ident_len < 4)?ident_len:4);
 
-   while ((i < ident_len) && ((*ident) <= (*prefix_ptr)))
 
-  80356b4:	4544      	cmp	r4, r8
 
-  * @return 1 if it matches, 0 otherwise
 
-  *
 
-  * @note ident_len 0 is allowed, expanding to the first known object id!!
 
-  */
 
- u8_t
 
- snmp_iso_prefix_expand(u8_t ident_len, s32_t *ident, struct snmp_obj_id *oidret)
 
-  80356b6:	eb05 0c03 	add.w	ip, r5, r3
 
-  80356ba:	eb07 0603 	add.w	r6, r7, r3
 
-   i = 0;
 
-   prefix_ptr = &prefix[0];
 
-   ret_ptr = &oidret->id[0];
 
-   ident_len = ((ident_len < 4)?ident_len:4);
 
-   while ((i < ident_len) && ((*ident) <= (*prefix_ptr)))
 
-  80356be:	d101      	bne.n	80356c4 <snmp_iso_prefix_expand+0x30>
 
-  80356c0:	2300      	movs	r3, #0
 
-  80356c2:	e00c      	b.n	80356de <snmp_iso_prefix_expand+0x4a>
 
-  80356c4:	59de      	ldr	r6, [r3, r7]
 
-  80356c6:	58c8      	ldr	r0, [r1, r3]
 
-  80356c8:	42b0      	cmp	r0, r6
 
-  80356ca:	ddef      	ble.n	80356ac <snmp_iso_prefix_expand+0x18>
 
-     return 1;
 
-   }
 
-   else
 
-   {
 
-     /* i != ident_len */
 
-     return 0;
 
-  80356cc:	2000      	movs	r0, #0
 
-  80356ce:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 
-   if (i == ident_len)
 
-   {
 
-     /* match, complete missing bits */
 
-     while (i < 4)
 
-     {
 
-       *ret_ptr++ = *prefix_ptr++;
 
-  80356d2:	58f1      	ldr	r1, [r6, r3]
 
-       i++;
 
-  80356d4:	3401      	adds	r4, #1
 
-   if (i == ident_len)
 
-   {
 
-     /* match, complete missing bits */
 
-     while (i < 4)
 
-     {
 
-       *ret_ptr++ = *prefix_ptr++;
 
-  80356d6:	f84c 1003 	str.w	r1, [ip, r3]
 
-       i++;
 
-  80356da:	b2e4      	uxtb	r4, r4
 
-  80356dc:	3304      	adds	r3, #4
 
-     i++;
 
-   }
 
-   if (i == ident_len)
 
-   {
 
-     /* match, complete missing bits */
 
-     while (i < 4)
 
-  80356de:	2c03      	cmp	r4, #3
 
-  80356e0:	d9f7      	bls.n	80356d2 <snmp_iso_prefix_expand+0x3e>
 
-     {
 
-       *ret_ptr++ = *prefix_ptr++;
 
-       i++;
 
-     }
 
-     oidret->len = i;
 
-  80356e2:	7014      	strb	r4, [r2, #0]
 
-     return 1;
 
-  80356e4:	2001      	movs	r0, #1
 
-   else
 
-   {
 
-     /* i != ident_len */
 
-     return 0;
 
-   }
 
- }
 
-  80356e6:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 
-  80356ea:	bf00      	nop
 
-  80356ec:	0804591c 	.word	0x0804591c
 
- 080356f0 <snmp_init>:
 
-  * Starts SNMP Agent.
 
-  * Allocates UDP pcb and binds it to IP_ADDR_ANY port 161.
 
-  */
 
- void
 
- snmp_init(void)
 
- {
 
-  80356f0:	b510      	push	{r4, lr}
 
-   struct snmp_msg_pstat *msg_ps;
 
-   u8_t i;
 
-   snmp1_pcb = udp_new();
 
-  80356f2:	f7fd fa15 	bl	8032b20 <udp_new>
 
-  80356f6:	4c0b      	ldr	r4, [pc, #44]	; (8035724 <snmp_init+0x34>)
 
-  80356f8:	6020      	str	r0, [r4, #0]
 
-   if (snmp1_pcb != NULL)
 
-  80356fa:	b140      	cbz	r0, 803570e <snmp_init+0x1e>
 
-   {
 
-     udp_recv(snmp1_pcb, snmp_recv, (void *)SNMP_IN_PORT);
 
-  80356fc:	490a      	ldr	r1, [pc, #40]	; (8035728 <snmp_init+0x38>)
 
-  80356fe:	22a1      	movs	r2, #161	; 0xa1
 
-  8035700:	f7fd f9ee 	bl	8032ae0 <udp_recv>
 
-     udp_bind(snmp1_pcb, IP_ADDR_ANY, SNMP_IN_PORT);
 
-  8035704:	6820      	ldr	r0, [r4, #0]
 
-  8035706:	4909      	ldr	r1, [pc, #36]	; (803572c <snmp_init+0x3c>)
 
-  8035708:	22a1      	movs	r2, #161	; 0xa1
 
-  803570a:	f7fd f8f1 	bl	80328f0 <udp_bind>
 
-   }
 
-   msg_ps = &msg_input_list[0];
 
-   for (i=0; i<SNMP_CONCURRENT_REQUESTS; i++)
 
-   {
 
-     msg_ps->state = SNMP_MSG_EMPTY;
 
-  803570e:	4b08      	ldr	r3, [pc, #32]	; (8035730 <snmp_init+0x40>)
 
-  8035710:	2200      	movs	r2, #0
 
-  8035712:	f883 205a 	strb.w	r2, [r3, #90]	; 0x5a
 
-     msg_ps->error_index = 0;
 
-  8035716:	615a      	str	r2, [r3, #20]
 
-     msg_ps->error_status = SNMP_ES_NOERROR;
 
-  8035718:	611a      	str	r2, [r3, #16]
 
-     msg_ps++;
 
-   }
 
-   trap_msg.pcb = snmp1_pcb;
 
-  803571a:	4b02      	ldr	r3, [pc, #8]	; (8035724 <snmp_init+0x34>)
 
-  803571c:	681a      	ldr	r2, [r3, #0]
 
-  803571e:	4b05      	ldr	r3, [pc, #20]	; (8035734 <snmp_init+0x44>)
 
-  8035720:	601a      	str	r2, [r3, #0]
 
-  8035722:	bd10      	pop	{r4, pc}
 
-  8035724:	2000f6ec 	.word	0x2000f6ec
 
-  8035728:	0803629d 	.word	0x0803629d
 
-  803572c:	08045008 	.word	0x08045008
 
-  8035730:	2000f6f0 	.word	0x2000f6f0
 
-  8035734:	2000f828 	.word	0x2000f828
 
- 08035738 <snmp_varbind_alloc>:
 
-   return ERR_OK;
 
- }
 
- struct snmp_varbind*
 
- snmp_varbind_alloc(struct snmp_obj_id *oid, u8_t type, u8_t len)
 
- {
 
-  8035738:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
 
-  803573c:	4680      	mov	r8, r0
 
-   struct snmp_varbind *vb;
 
-   vb = (struct snmp_varbind *)memp_malloc(MEMP_SNMP_VARBIND);
 
-  803573e:	200c      	movs	r0, #12
 
-   return ERR_OK;
 
- }
 
- struct snmp_varbind*
 
- snmp_varbind_alloc(struct snmp_obj_id *oid, u8_t type, u8_t len)
 
- {
 
-  8035740:	4689      	mov	r9, r1
 
-  8035742:	4617      	mov	r7, r2
 
-   struct snmp_varbind *vb;
 
-   vb = (struct snmp_varbind *)memp_malloc(MEMP_SNMP_VARBIND);
 
-  8035744:	f7fa fa42 	bl	802fbcc <memp_malloc>
 
-   if (vb != NULL)
 
-  8035748:	4604      	mov	r4, r0
 
-  803574a:	2800      	cmp	r0, #0
 
-  803574c:	d032      	beq.n	80357b4 <snmp_varbind_alloc+0x7c>
 
-   {
 
-     u8_t i;
 
-     vb->next = NULL;
 
-  803574e:	2300      	movs	r3, #0
 
-  8035750:	6003      	str	r3, [r0, #0]
 
-     vb->prev = NULL;
 
-  8035752:	6043      	str	r3, [r0, #4]
 
-     i = oid->len;
 
-  8035754:	f898 5000 	ldrb.w	r5, [r8]
 
-     vb->ident_len = i;
 
-  8035758:	7205      	strb	r5, [r0, #8]
 
-     if (i > 0)
 
-  803575a:	b1ad      	cbz	r5, 8035788 <snmp_varbind_alloc+0x50>
 
-     {
 
-       LWIP_ASSERT("SNMP_MAX_TREE_DEPTH is configured too low", i <= SNMP_MAX_TREE_DEPTH);
 
-       /* allocate array of s32_t for our object identifier */
 
-       vb->ident = (s32_t*)memp_malloc(MEMP_SNMP_VALUE);
 
-  803575c:	200d      	movs	r0, #13
 
-  803575e:	f7fa fa35 	bl	802fbcc <memp_malloc>
 
-  8035762:	4606      	mov	r6, r0
 
-  8035764:	60e0      	str	r0, [r4, #12]
 
-       if (vb->ident == NULL)
 
-  8035766:	b928      	cbnz	r0, 8035774 <snmp_varbind_alloc+0x3c>
 
-       {
 
-         LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_varbind_alloc: couldn't allocate ident value space\n"));
 
-         memp_free(MEMP_SNMP_VARBIND, vb);
 
-  8035768:	4621      	mov	r1, r4
 
-  803576a:	200c      	movs	r0, #12
 
-  803576c:	f7fa fa44 	bl	802fbf8 <memp_free>
 
-         return NULL;
 
-  8035770:	4634      	mov	r4, r6
 
-  8035772:	e01f      	b.n	80357b4 <snmp_varbind_alloc+0x7c>
 
-       }
 
-       while(i > 0)
 
-       {
 
-         i--;
 
-  8035774:	3d01      	subs	r5, #1
 
-  8035776:	b2ed      	uxtb	r5, r5
 
-         vb->ident[i] = oid->id[i];
 
-  8035778:	eb08 0385 	add.w	r3, r8, r5, lsl #2
 
-  803577c:	685b      	ldr	r3, [r3, #4]
 
-  803577e:	f846 3025 	str.w	r3, [r6, r5, lsl #2]
 
-       {
 
-         LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_varbind_alloc: couldn't allocate ident value space\n"));
 
-         memp_free(MEMP_SNMP_VARBIND, vb);
 
-         return NULL;
 
-       }
 
-       while(i > 0)
 
-  8035782:	2d00      	cmp	r5, #0
 
-  8035784:	d1f6      	bne.n	8035774 <snmp_varbind_alloc+0x3c>
 
-  8035786:	e000      	b.n	803578a <snmp_varbind_alloc+0x52>
 
-       }
 
-     }
 
-     else
 
-     {
 
-       /* i == 0, pass zero length object identifier */
 
-       vb->ident = NULL;
 
-  8035788:	60c5      	str	r5, [r0, #12]
 
-     }
 
-     vb->value_type = type;
 
-  803578a:	f884 9010 	strb.w	r9, [r4, #16]
 
-     vb->value_len = len;
 
-  803578e:	7467      	strb	r7, [r4, #17]
 
-     if (len > 0)
 
-  8035790:	b17f      	cbz	r7, 80357b2 <snmp_varbind_alloc+0x7a>
 
-     {
 
-       LWIP_ASSERT("SNMP_MAX_OCTET_STRING_LEN is configured too low", vb->value_len <= SNMP_MAX_VALUE_SIZE);
 
-       /* allocate raw bytes for our object value */
 
-       vb->value = memp_malloc(MEMP_SNMP_VALUE);
 
-  8035792:	200d      	movs	r0, #13
 
-  8035794:	f7fa fa1a 	bl	802fbcc <memp_malloc>
 
-  8035798:	6160      	str	r0, [r4, #20]
 
-       if (vb->value == NULL)
 
-  803579a:	b958      	cbnz	r0, 80357b4 <snmp_varbind_alloc+0x7c>
 
-       {
 
-         LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_varbind_alloc: couldn't allocate value space\n"));
 
-         if (vb->ident != NULL)
 
-  803579c:	68e1      	ldr	r1, [r4, #12]
 
-  803579e:	b111      	cbz	r1, 80357a6 <snmp_varbind_alloc+0x6e>
 
-         {
 
-           memp_free(MEMP_SNMP_VALUE, vb->ident);
 
-  80357a0:	200d      	movs	r0, #13
 
-  80357a2:	f7fa fa29 	bl	802fbf8 <memp_free>
 
-         }
 
-         memp_free(MEMP_SNMP_VARBIND, vb);
 
-  80357a6:	4621      	mov	r1, r4
 
-  80357a8:	200c      	movs	r0, #12
 
-  80357aa:	f7fa fa25 	bl	802fbf8 <memp_free>
 
-         return NULL;
 
-  80357ae:	2400      	movs	r4, #0
 
-  80357b0:	e000      	b.n	80357b4 <snmp_varbind_alloc+0x7c>
 
-       }
 
-     }
 
-     else
 
-     {
 
-       /* ASN1_NUL type, or zero length ASN1_OC_STR */
 
-       vb->value = NULL;
 
-  80357b2:	6167      	str	r7, [r4, #20]
 
-   else
 
-   {
 
-     LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_varbind_alloc: couldn't allocate varbind space\n"));
 
-   }
 
-   return vb;
 
- }
 
-  80357b4:	4620      	mov	r0, r4
 
-  80357b6:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
 
- 080357ba <snmp_varbind_free>:
 
- void
 
- snmp_varbind_free(struct snmp_varbind *vb)
 
- {
 
-   if (vb->value != NULL )
 
-  80357ba:	6941      	ldr	r1, [r0, #20]
 
-   return vb;
 
- }
 
- void
 
- snmp_varbind_free(struct snmp_varbind *vb)
 
- {
 
-  80357bc:	b510      	push	{r4, lr}
 
-  80357be:	4604      	mov	r4, r0
 
-   if (vb->value != NULL )
 
-  80357c0:	b111      	cbz	r1, 80357c8 <snmp_varbind_free+0xe>
 
-   {
 
-     memp_free(MEMP_SNMP_VALUE, vb->value);
 
-  80357c2:	200d      	movs	r0, #13
 
-  80357c4:	f7fa fa18 	bl	802fbf8 <memp_free>
 
-   }
 
-   if (vb->ident != NULL )
 
-  80357c8:	68e1      	ldr	r1, [r4, #12]
 
-  80357ca:	b111      	cbz	r1, 80357d2 <snmp_varbind_free+0x18>
 
-   {
 
-     memp_free(MEMP_SNMP_VALUE, vb->ident);
 
-  80357cc:	200d      	movs	r0, #13
 
-  80357ce:	f7fa fa13 	bl	802fbf8 <memp_free>
 
-   }
 
-   memp_free(MEMP_SNMP_VARBIND, vb);
 
-  80357d2:	200c      	movs	r0, #12
 
-  80357d4:	4621      	mov	r1, r4
 
- }
 
-  80357d6:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
-   }
 
-   if (vb->ident != NULL )
 
-   {
 
-     memp_free(MEMP_SNMP_VALUE, vb->ident);
 
-   }
 
-   memp_free(MEMP_SNMP_VARBIND, vb);
 
-  80357da:	f7fa ba0d 	b.w	802fbf8 <memp_free>
 
- 080357de <snmp_varbind_list_free>:
 
- }
 
- void
 
- snmp_varbind_list_free(struct snmp_varbind_root *root)
 
- {
 
-  80357de:	b538      	push	{r3, r4, r5, lr}
 
-  80357e0:	4604      	mov	r4, r0
 
-   struct snmp_varbind *vb, *prev;
 
-   vb = root->tail;
 
-  80357e2:	6840      	ldr	r0, [r0, #4]
 
-   while ( vb != NULL )
 
-  80357e4:	e003      	b.n	80357ee <snmp_varbind_list_free+0x10>
 
-   {
 
-     prev = vb->prev;
 
-  80357e6:	6845      	ldr	r5, [r0, #4]
 
-     snmp_varbind_free(vb);
 
-  80357e8:	f7ff ffe7 	bl	80357ba <snmp_varbind_free>
 
-     vb = prev;
 
-  80357ec:	4628      	mov	r0, r5
 
- snmp_varbind_list_free(struct snmp_varbind_root *root)
 
- {
 
-   struct snmp_varbind *vb, *prev;
 
-   vb = root->tail;
 
-   while ( vb != NULL )
 
-  80357ee:	2800      	cmp	r0, #0
 
-  80357f0:	d1f9      	bne.n	80357e6 <snmp_varbind_list_free+0x8>
 
-   {
 
-     prev = vb->prev;
 
-     snmp_varbind_free(vb);
 
-     vb = prev;
 
-   }
 
-   root->count = 0;
 
-  80357f2:	7220      	strb	r0, [r4, #8]
 
-   root->head = NULL;
 
-  80357f4:	6020      	str	r0, [r4, #0]
 
-   root->tail = NULL;
 
-  80357f6:	6060      	str	r0, [r4, #4]
 
-  80357f8:	bd38      	pop	{r3, r4, r5, pc}
 
- 080357fa <snmp_error_response>:
 
-   //snmp_coldstart_trap();
 
- }
 
- static void
 
- snmp_error_response(struct snmp_msg_pstat *msg_ps, u8_t error)
 
- {
 
-  80357fa:	b570      	push	{r4, r5, r6, lr}
 
-  80357fc:	4604      	mov	r4, r0
 
-   /* move names back from outvb to invb */
 
-   int v;
 
-   struct snmp_varbind *vbi = msg_ps->invb.head;
 
-   struct snmp_varbind *vbo = msg_ps->outvb.head;
 
-   for (v=0; v<msg_ps->vb_idx; v++) {
 
-  80357fe:	2200      	movs	r2, #0
 
-   //snmp_coldstart_trap();
 
- }
 
- static void
 
- snmp_error_response(struct snmp_msg_pstat *msg_ps, u8_t error)
 
- {
 
-  8035800:	460e      	mov	r6, r1
 
-   /* move names back from outvb to invb */
 
-   int v;
 
-   struct snmp_varbind *vbi = msg_ps->invb.head;
 
-  8035802:	f8d0 0100 	ldr.w	r0, [r0, #256]	; 0x100
 
-   struct snmp_varbind *vbo = msg_ps->outvb.head;
 
-  8035806:	f8d4 310c 	ldr.w	r3, [r4, #268]	; 0x10c
 
-   for (v=0; v<msg_ps->vb_idx; v++) {
 
-     vbi->ident_len = vbo->ident_len;
 
-     vbo->ident_len = 0;
 
-  803580a:	4611      	mov	r1, r2
 
- {
 
-   /* move names back from outvb to invb */
 
-   int v;
 
-   struct snmp_varbind *vbi = msg_ps->invb.head;
 
-   struct snmp_varbind *vbo = msg_ps->outvb.head;
 
-   for (v=0; v<msg_ps->vb_idx; v++) {
 
-  803580c:	e008      	b.n	8035820 <snmp_error_response+0x26>
 
-     vbi->ident_len = vbo->ident_len;
 
-  803580e:	7a1d      	ldrb	r5, [r3, #8]
 
-  8035810:	7205      	strb	r5, [r0, #8]
 
-     vbo->ident_len = 0;
 
-     vbi->ident = vbo->ident;
 
-  8035812:	68dd      	ldr	r5, [r3, #12]
 
-   int v;
 
-   struct snmp_varbind *vbi = msg_ps->invb.head;
 
-   struct snmp_varbind *vbo = msg_ps->outvb.head;
 
-   for (v=0; v<msg_ps->vb_idx; v++) {
 
-     vbi->ident_len = vbo->ident_len;
 
-     vbo->ident_len = 0;
 
-  8035814:	7219      	strb	r1, [r3, #8]
 
-     vbi->ident = vbo->ident;
 
-  8035816:	60c5      	str	r5, [r0, #12]
 
-     vbo->ident = NULL;
 
-  8035818:	60d9      	str	r1, [r3, #12]
 
-     vbi = vbi->next;
 
-  803581a:	6800      	ldr	r0, [r0, #0]
 
-     vbo = vbo->next;
 
-  803581c:	681b      	ldr	r3, [r3, #0]
 
- {
 
-   /* move names back from outvb to invb */
 
-   int v;
 
-   struct snmp_varbind *vbi = msg_ps->invb.head;
 
-   struct snmp_varbind *vbo = msg_ps->outvb.head;
 
-   for (v=0; v<msg_ps->vb_idx; v++) {
 
-  803581e:	3201      	adds	r2, #1
 
-  8035820:	f894 50f8 	ldrb.w	r5, [r4, #248]	; 0xf8
 
-  8035824:	42aa      	cmp	r2, r5
 
-  8035826:	dbf2      	blt.n	803580e <snmp_error_response+0x14>
 
-     vbo->ident = NULL;
 
-     vbi = vbi->next;
 
-     vbo = vbo->next;
 
-   }
 
-   /* free outvb */
 
-   snmp_varbind_list_free(&msg_ps->outvb);
 
-  8035828:	f504 7586 	add.w	r5, r4, #268	; 0x10c
 
-  803582c:	4628      	mov	r0, r5
 
-  803582e:	f7ff ffd6 	bl	80357de <snmp_varbind_list_free>
 
-   /* we send invb back */
 
-   msg_ps->outvb = msg_ps->invb;
 
-  8035832:	f504 7380 	add.w	r3, r4, #256	; 0x100
 
-  8035836:	e893 0007 	ldmia.w	r3, {r0, r1, r2}
 
-   msg_ps->invb.head = NULL;
 
-  803583a:	2300      	movs	r3, #0
 
-   msg_ps->invb.tail = NULL;
 
-   msg_ps->invb.count = 0;
 
-   msg_ps->error_status = error;
 
-   /* error index must be 0 for error too big */
 
-   msg_ps->error_index = (error != SNMP_ES_TOOBIG) ? (1 + msg_ps->vb_idx) : 0;
 
-  803583c:	2e01      	cmp	r6, #1
 
-   }
 
-   /* free outvb */
 
-   snmp_varbind_list_free(&msg_ps->outvb);
 
-   /* we send invb back */
 
-   msg_ps->outvb = msg_ps->invb;
 
-   msg_ps->invb.head = NULL;
 
-  803583e:	f8c4 3100 	str.w	r3, [r4, #256]	; 0x100
 
-   msg_ps->invb.tail = NULL;
 
-  8035842:	f8c4 3104 	str.w	r3, [r4, #260]	; 0x104
 
-   msg_ps->invb.count = 0;
 
-  8035846:	f884 3108 	strb.w	r3, [r4, #264]	; 0x108
 
-   msg_ps->error_status = error;
 
-   /* error index must be 0 for error too big */
 
-   msg_ps->error_index = (error != SNMP_ES_TOOBIG) ? (1 + msg_ps->vb_idx) : 0;
 
-  803584a:	bf18      	it	ne
 
-  803584c:	f894 30f8 	ldrbne.w	r3, [r4, #248]	; 0xf8
 
-   /* we send invb back */
 
-   msg_ps->outvb = msg_ps->invb;
 
-   msg_ps->invb.head = NULL;
 
-   msg_ps->invb.tail = NULL;
 
-   msg_ps->invb.count = 0;
 
-   msg_ps->error_status = error;
 
-  8035850:	6126      	str	r6, [r4, #16]
 
-   /* error index must be 0 for error too big */
 
-   msg_ps->error_index = (error != SNMP_ES_TOOBIG) ? (1 + msg_ps->vb_idx) : 0;
 
-  8035852:	bf18      	it	ne
 
-  8035854:	3301      	addne	r3, #1
 
-     vbo = vbo->next;
 
-   }
 
-   /* free outvb */
 
-   snmp_varbind_list_free(&msg_ps->outvb);
 
-   /* we send invb back */
 
-   msg_ps->outvb = msg_ps->invb;
 
-  8035856:	e885 0007 	stmia.w	r5, {r0, r1, r2}
 
-   msg_ps->invb.head = NULL;
 
-   msg_ps->invb.tail = NULL;
 
-   msg_ps->invb.count = 0;
 
-   msg_ps->error_status = error;
 
-   /* error index must be 0 for error too big */
 
-   msg_ps->error_index = (error != SNMP_ES_TOOBIG) ? (1 + msg_ps->vb_idx) : 0;
 
-  803585a:	6163      	str	r3, [r4, #20]
 
-   snmp_send_response(msg_ps);
 
-  803585c:	4620      	mov	r0, r4
 
-  803585e:	f001 f879 	bl	8036954 <snmp_send_response>
 
-   snmp_varbind_list_free(&msg_ps->outvb);
 
-  8035862:	4628      	mov	r0, r5
 
-  8035864:	f7ff ffbb 	bl	80357de <snmp_varbind_list_free>
 
-   msg_ps->state = SNMP_MSG_EMPTY;
 
-  8035868:	2300      	movs	r3, #0
 
-  803586a:	f884 305a 	strb.w	r3, [r4, #90]	; 0x5a
 
-  803586e:	bd70      	pop	{r4, r5, r6, pc}
 
- 08035870 <snmp_ok_response>:
 
- }
 
- static void
 
- snmp_ok_response(struct snmp_msg_pstat *msg_ps)
 
- {
 
-  8035870:	b510      	push	{r4, lr}
 
-  8035872:	4604      	mov	r4, r0
 
-   err_t err_ret;
 
-   err_ret = snmp_send_response(msg_ps);
 
-  8035874:	f001 f86e 	bl	8036954 <snmp_send_response>
 
-   else
 
-   {
 
-     LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_msg_event = %"S32_F"\n",msg_ps->error_status));
 
-   }
 
-   /* free varbinds (if available) */
 
-   snmp_varbind_list_free(&msg_ps->invb);
 
-  8035878:	f504 7080 	add.w	r0, r4, #256	; 0x100
 
-  803587c:	f7ff ffaf 	bl	80357de <snmp_varbind_list_free>
 
-   snmp_varbind_list_free(&msg_ps->outvb);
 
-  8035880:	f504 7086 	add.w	r0, r4, #268	; 0x10c
 
-  8035884:	f7ff ffab 	bl	80357de <snmp_varbind_list_free>
 
-   msg_ps->state = SNMP_MSG_EMPTY;
 
-  8035888:	2300      	movs	r3, #0
 
-  803588a:	f884 305a 	strb.w	r3, [r4, #90]	; 0x5a
 
-  803588e:	bd10      	pop	{r4, pc}
 
- 08035890 <snmp_varbind_tail_add>:
 
- }
 
- void
 
- snmp_varbind_tail_add(struct snmp_varbind_root *root, struct snmp_varbind *vb)
 
- {
 
-   if (root->count == 0)
 
-  8035890:	7a03      	ldrb	r3, [r0, #8]
 
-  8035892:	b90b      	cbnz	r3, 8035898 <snmp_varbind_tail_add+0x8>
 
-   {
 
-     /* add first varbind to list */
 
-     root->head = vb;
 
-  8035894:	6001      	str	r1, [r0, #0]
 
-  8035896:	e002      	b.n	803589e <snmp_varbind_tail_add+0xe>
 
-     root->tail = vb;
 
-   }
 
-   else
 
-   {
 
-     /* add nth varbind to list tail */
 
-     root->tail->next = vb;
 
-  8035898:	6843      	ldr	r3, [r0, #4]
 
-  803589a:	6019      	str	r1, [r3, #0]
 
-     vb->prev = root->tail;
 
-  803589c:	604b      	str	r3, [r1, #4]
 
-     root->tail = vb;
 
-   }
 
-   root->count += 1;
 
-  803589e:	7a03      	ldrb	r3, [r0, #8]
 
-   else
 
-   {
 
-     /* add nth varbind to list tail */
 
-     root->tail->next = vb;
 
-     vb->prev = root->tail;
 
-     root->tail = vb;
 
-  80358a0:	6041      	str	r1, [r0, #4]
 
-   }
 
-   root->count += 1;
 
-  80358a2:	3301      	adds	r3, #1
 
-  80358a4:	7203      	strb	r3, [r0, #8]
 
-  80358a6:	4770      	bx	lr
 
- 080358a8 <snmp_msg_event>:
 
-  *
 
-  * @param request_id identifies requests from 0 to (SNMP_CONCURRENT_REQUESTS-1)
 
-  */
 
- void
 
- snmp_msg_event(u8_t request_id)
 
- {
 
-  80358a8:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
 
-   struct snmp_msg_pstat *msg_ps;
 
-   if (request_id < SNMP_CONCURRENT_REQUESTS)
 
-  80358ac:	4605      	mov	r5, r0
 
-  *
 
-  * @param request_id identifies requests from 0 to (SNMP_CONCURRENT_REQUESTS-1)
 
-  */
 
- void
 
- snmp_msg_event(u8_t request_id)
 
- {
 
-  80358ae:	b0a7      	sub	sp, #156	; 0x9c
 
-   struct snmp_msg_pstat *msg_ps;
 
-   if (request_id < SNMP_CONCURRENT_REQUESTS)
 
-  80358b0:	2800      	cmp	r0, #0
 
-  80358b2:	f040 8390 	bne.w	8035fd6 <snmp_msg_event+0x72e>
 
-   {
 
-     msg_ps = &msg_input_list[request_id];
 
-     if (msg_ps->rt == SNMP_ASN1_PDU_GET_NEXT_REQ)
 
-  80358b6:	4cb2      	ldr	r4, [pc, #712]	; (8035b80 <snmp_msg_event+0x2d8>)
 
-  80358b8:	7aa6      	ldrb	r6, [r4, #10]
 
-  80358ba:	2e01      	cmp	r6, #1
 
-  80358bc:	f040 80d4 	bne.w	8035a68 <snmp_msg_event+0x1c0>
 
- static void
 
- snmp_msg_getnext_event(u8_t request_id, struct snmp_msg_pstat *msg_ps)
 
- {
 
-   LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_msg_getnext_event: msg_ps->state==%"U16_F"\n",(u16_t)msg_ps->state));
 
-   if (msg_ps->state == SNMP_MSG_EXTERNAL_GET_OBJDEF)
 
-  80358c0:	f894 305a 	ldrb.w	r3, [r4, #90]	; 0x5a
 
-  80358c4:	2b07      	cmp	r3, #7
 
-  80358c6:	d125      	bne.n	8035914 <snmp_msg_event+0x6c>
 
-     /* get_object_def() answer*/
 
-     en = msg_ps->ext_mib_node;
 
-     /* translate answer into a known lifeform */
 
-     en->get_object_def_a(request_id, 1, &msg_ps->ext_oid.id[msg_ps->ext_oid.len - 1], &msg_ps->ext_object_def);
 
-  80358c8:	f894 2074 	ldrb.w	r2, [r4, #116]	; 0x74
 
-   if (msg_ps->state == SNMP_MSG_EXTERNAL_GET_OBJDEF)
 
-   {
 
-     struct mib_external_node *en;
 
-     /* get_object_def() answer*/
 
-     en = msg_ps->ext_mib_node;
 
-  80358cc:	f8d4 805c 	ldr.w	r8, [r4, #92]	; 0x5c
 
-     /* translate answer into a known lifeform */
 
-     en->get_object_def_a(request_id, 1, &msg_ps->ext_oid.id[msg_ps->ext_oid.len - 1], &msg_ps->ext_object_def);
 
-  80358d0:	eb04 0282 	add.w	r2, r4, r2, lsl #2
 
-  80358d4:	4631      	mov	r1, r6
 
-  80358d6:	3274      	adds	r2, #116	; 0x74
 
-  80358d8:	f104 0368 	add.w	r3, r4, #104	; 0x68
 
-  80358dc:	f8d8 7038 	ldr.w	r7, [r8, #56]	; 0x38
 
-  80358e0:	47b8      	blx	r7
 
-     if (msg_ps->ext_object_def.instance != MIB_OBJECT_NONE)
 
-  80358e2:	f894 0068 	ldrb.w	r0, [r4, #104]	; 0x68
 
-  80358e6:	b148      	cbz	r0, 80358fc <snmp_msg_event+0x54>
 
-     {
 
-       msg_ps->state = SNMP_MSG_EXTERNAL_GET_VALUE;
 
-  80358e8:	2308      	movs	r3, #8
 
-  80358ea:	f884 305a 	strb.w	r3, [r4, #90]	; 0x5a
 
-       en->get_value_q(request_id, &msg_ps->ext_object_def);
 
-  80358ee:	f8d8 302c 	ldr.w	r3, [r8, #44]	; 0x2c
 
-  80358f2:	4628      	mov	r0, r5
 
-  80358f4:	f104 0168 	add.w	r1, r4, #104	; 0x68
 
-  80358f8:	4798      	blx	r3
 
-  80358fa:	e0a6      	b.n	8035a4a <snmp_msg_event+0x1a2>
 
-     }
 
-     else
 
-     {
 
-       en->get_object_def_pc(request_id, 1, &msg_ps->ext_oid.id[msg_ps->ext_oid.len - 1]);
 
-  80358fc:	f894 2074 	ldrb.w	r2, [r4, #116]	; 0x74
 
-  8035900:	f8d8 3048 	ldr.w	r3, [r8, #72]	; 0x48
 
-  8035904:	eb04 0282 	add.w	r2, r4, r2, lsl #2
 
-  8035908:	4631      	mov	r1, r6
 
-  803590a:	3274      	adds	r2, #116	; 0x74
 
-  803590c:	4798      	blx	r3
 
-       /* search failed, object id points to unknown object (nosuchname) */
 
-       snmp_error_response(msg_ps,SNMP_ES_NOSUCHNAME);
 
-  803590e:	4620      	mov	r0, r4
 
-  8035910:	2102      	movs	r1, #2
 
-  8035912:	e02a      	b.n	803596a <snmp_msg_event+0xc2>
 
-     }
 
-   }
 
-   else if (msg_ps->state == SNMP_MSG_EXTERNAL_GET_VALUE)
 
-  8035914:	2b08      	cmp	r3, #8
 
-  8035916:	f040 8098 	bne.w	8035a4a <snmp_msg_event+0x1a2>
 
-     /* get_value() answer */
 
-     en = msg_ps->ext_mib_node;
 
-     LWIP_ASSERT("invalid length", msg_ps->ext_object_def.v_len <= 0xff);
 
-     vb = snmp_varbind_alloc(&msg_ps->ext_oid,
 
-  803591a:	f104 0074 	add.w	r0, r4, #116	; 0x74
 
-  803591e:	f894 106a 	ldrb.w	r1, [r4, #106]	; 0x6a
 
-  8035922:	f894 206c 	ldrb.w	r2, [r4, #108]	; 0x6c
 
-   {
 
-     struct mib_external_node *en;
 
-     struct snmp_varbind *vb;
 
-     /* get_value() answer */
 
-     en = msg_ps->ext_mib_node;
 
-  8035926:	f8d4 805c 	ldr.w	r8, [r4, #92]	; 0x5c
 
-     LWIP_ASSERT("invalid length", msg_ps->ext_object_def.v_len <= 0xff);
 
-     vb = snmp_varbind_alloc(&msg_ps->ext_oid,
 
-  803592a:	f7ff ff05 	bl	8035738 <snmp_varbind_alloc>
 
-                             msg_ps->ext_object_def.asn_type,
 
-                             (u8_t)msg_ps->ext_object_def.v_len);
 
-     if (vb != NULL)
 
-  803592e:	4607      	mov	r7, r0
 
-  8035930:	b1a0      	cbz	r0, 803595c <snmp_msg_event+0xb4>
 
-     {
 
-       en->get_value_a(request_id, &msg_ps->ext_object_def, vb->value_len, vb->value);
 
-  8035932:	697b      	ldr	r3, [r7, #20]
 
-  8035934:	f8d8 c03c 	ldr.w	ip, [r8, #60]	; 0x3c
 
-  8035938:	7c7a      	ldrb	r2, [r7, #17]
 
-  803593a:	4628      	mov	r0, r5
 
-  803593c:	f104 0168 	add.w	r1, r4, #104	; 0x68
 
-  8035940:	47e0      	blx	ip
 
-       snmp_varbind_tail_add(&msg_ps->outvb, vb);
 
-  8035942:	f504 7086 	add.w	r0, r4, #268	; 0x10c
 
-  8035946:	4639      	mov	r1, r7
 
-  8035948:	f7ff ffa2 	bl	8035890 <snmp_varbind_tail_add>
 
-       msg_ps->state = SNMP_MSG_SEARCH_OBJ;
 
-       msg_ps->vb_idx += 1;
 
-  803594c:	f894 30f8 	ldrb.w	r3, [r4, #248]	; 0xf8
 
-                             (u8_t)msg_ps->ext_object_def.v_len);
 
-     if (vb != NULL)
 
-     {
 
-       en->get_value_a(request_id, &msg_ps->ext_object_def, vb->value_len, vb->value);
 
-       snmp_varbind_tail_add(&msg_ps->outvb, vb);
 
-       msg_ps->state = SNMP_MSG_SEARCH_OBJ;
 
-  8035950:	f884 605a 	strb.w	r6, [r4, #90]	; 0x5a
 
-       msg_ps->vb_idx += 1;
 
-  8035954:	3301      	adds	r3, #1
 
-  8035956:	f884 30f8 	strb.w	r3, [r4, #248]	; 0xf8
 
-  803595a:	e076      	b.n	8035a4a <snmp_msg_event+0x1a2>
 
-     }
 
-     else
 
-     {
 
-       en->get_value_pc(request_id, &msg_ps->ext_object_def);
 
-  803595c:	f104 0168 	add.w	r1, r4, #104	; 0x68
 
-  8035960:	f8d8 304c 	ldr.w	r3, [r8, #76]	; 0x4c
 
-  8035964:	4798      	blx	r3
 
-       LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_msg_getnext_event: couldn't allocate outvb space\n"));
 
-       snmp_error_response(msg_ps,SNMP_ES_TOOBIG);
 
-  8035966:	4620      	mov	r0, r4
 
-  8035968:	4631      	mov	r1, r6
 
-  803596a:	f7ff ff46 	bl	80357fa <snmp_error_response>
 
-  803596e:	e06c      	b.n	8035a4a <snmp_msg_event+0x1a2>
 
-          (msg_ps->vb_idx < msg_ps->invb.count))
 
-   {
 
-     struct mib_node *mn;
 
-     struct snmp_obj_id oid;
 
-     if (msg_ps->vb_idx == 0)
 
-  8035970:	b913      	cbnz	r3, 8035978 <snmp_msg_event+0xd0>
 
-     {
 
-       msg_ps->vb_ptr = msg_ps->invb.head;
 
-  8035972:	f8d4 3100 	ldr.w	r3, [r4, #256]	; 0x100
 
-  8035976:	e002      	b.n	803597e <snmp_msg_event+0xd6>
 
-     }
 
-     else
 
-     {
 
-       msg_ps->vb_ptr = msg_ps->vb_ptr->next;
 
-  8035978:	f8d4 30fc 	ldr.w	r3, [r4, #252]	; 0xfc
 
-  803597c:	681b      	ldr	r3, [r3, #0]
 
-  803597e:	f8c4 30fc 	str.w	r3, [r4, #252]	; 0xfc
 
-     }
 
-     if (snmp_iso_prefix_expand(msg_ps->vb_ptr->ident_len, msg_ps->vb_ptr->ident, &oid))
 
-  8035982:	f8d4 30fc 	ldr.w	r3, [r4, #252]	; 0xfc
 
-  8035986:	aa05      	add	r2, sp, #20
 
-  8035988:	7a18      	ldrb	r0, [r3, #8]
 
-  803598a:	68d9      	ldr	r1, [r3, #12]
 
-  803598c:	f7ff fe82 	bl	8035694 <snmp_iso_prefix_expand>
 
-  8035990:	2800      	cmp	r0, #0
 
-  8035992:	f000 82ff 	beq.w	8035f94 <snmp_msg_event+0x6ec>
 
-     {
 
-       if (msg_ps->vb_ptr->ident_len > 3)
 
-  8035996:	f8d4 30fc 	ldr.w	r3, [r4, #252]	; 0xfc
 
-  803599a:	7a19      	ldrb	r1, [r3, #8]
 
-  803599c:	2903      	cmp	r1, #3
 
-  803599e:	d905      	bls.n	80359ac <snmp_msg_event+0x104>
 
-       {
 
-         /* can offset ident_len and ident */
 
-         mn = snmp_expand_tree((struct mib_node*)&internet,
 
-  80359a0:	68da      	ldr	r2, [r3, #12]
 
-  80359a2:	4878      	ldr	r0, [pc, #480]	; (8035b84 <snmp_msg_event+0x2dc>)
 
-  80359a4:	3904      	subs	r1, #4
 
-  80359a6:	b2c9      	uxtb	r1, r1
 
-  80359a8:	3210      	adds	r2, #16
 
-  80359aa:	e002      	b.n	80359b2 <snmp_msg_event+0x10a>
 
-                               msg_ps->vb_ptr->ident + 4, &oid);
 
-       }
 
-       else
 
-       {
 
-         /* can't offset ident_len -4, ident + 4 */
 
-         mn = snmp_expand_tree((struct mib_node*)&internet, 0, NULL, &oid);
 
-  80359ac:	2100      	movs	r1, #0
 
-  80359ae:	4875      	ldr	r0, [pc, #468]	; (8035b84 <snmp_msg_event+0x2dc>)
 
-  80359b0:	460a      	mov	r2, r1
 
-  80359b2:	ab05      	add	r3, sp, #20
 
-  80359b4:	f7ff fc8e 	bl	80352d4 <snmp_expand_tree>
 
-  80359b8:	4605      	mov	r5, r0
 
-     }
 
-     else
 
-     {
 
-       mn = NULL;
 
-     }
 
-     if (mn != NULL)
 
-  80359ba:	2800      	cmp	r0, #0
 
-  80359bc:	f000 82ea 	beq.w	8035f94 <snmp_msg_event+0x6ec>
 
-     {
 
-       if (mn->node_type == MIB_NODE_EX)
 
-  80359c0:	7c03      	ldrb	r3, [r0, #16]
 
-  80359c2:	2b05      	cmp	r3, #5
 
-  80359c4:	d113      	bne.n	80359ee <snmp_msg_event+0x146>
 
-       {
 
-         /* external object */
 
-         struct mib_external_node *en = (struct mib_external_node*)mn;
 
-         msg_ps->state = SNMP_MSG_EXTERNAL_GET_OBJDEF;
 
-  80359c6:	2307      	movs	r3, #7
 
-         /* save en && args in msg_ps!! */
 
-         msg_ps->ext_mib_node = en;
 
-  80359c8:	65e0      	str	r0, [r4, #92]	; 0x5c
 
-         msg_ps->ext_oid = oid;
 
-  80359ca:	a905      	add	r1, sp, #20
 
-  80359cc:	2284      	movs	r2, #132	; 0x84
 
-  80359ce:	486e      	ldr	r0, [pc, #440]	; (8035b88 <snmp_msg_event+0x2e0>)
 
-       if (mn->node_type == MIB_NODE_EX)
 
-       {
 
-         /* external object */
 
-         struct mib_external_node *en = (struct mib_external_node*)mn;
 
-         msg_ps->state = SNMP_MSG_EXTERNAL_GET_OBJDEF;
 
-  80359d0:	f884 305a 	strb.w	r3, [r4, #90]	; 0x5a
 
-         /* save en && args in msg_ps!! */
 
-         msg_ps->ext_mib_node = en;
 
-         msg_ps->ext_oid = oid;
 
-  80359d4:	f7eb ffda 	bl	802198c <memcpy>
 
-         en->get_object_def_q(en->addr_inf, request_id, 1, &oid.id[oid.len - 1]);
 
-  80359d8:	f89d 3014 	ldrb.w	r3, [sp, #20]
 
-  80359dc:	6aae      	ldr	r6, [r5, #40]	; 0x28
 
-  80359de:	6968      	ldr	r0, [r5, #20]
 
-  80359e0:	ad05      	add	r5, sp, #20
 
-  80359e2:	2100      	movs	r1, #0
 
-  80359e4:	2201      	movs	r2, #1
 
-  80359e6:	eb05 0383 	add.w	r3, r5, r3, lsl #2
 
-  80359ea:	47b0      	blx	r6
 
-  80359ec:	e02e      	b.n	8035a4c <snmp_msg_event+0x1a4>
 
-       {
 
-         /* internal object */
 
-         struct obj_def object_def;
 
-         struct snmp_varbind *vb;
 
-         msg_ps->state = SNMP_MSG_INTERNAL_GET_OBJDEF;
 
-  80359ee:	2302      	movs	r3, #2
 
-         mn->get_object_def(1, &oid.id[oid.len - 1], &object_def);
 
-  80359f0:	f89d 1014 	ldrb.w	r1, [sp, #20]
 
-       {
 
-         /* internal object */
 
-         struct obj_def object_def;
 
-         struct snmp_varbind *vb;
 
-         msg_ps->state = SNMP_MSG_INTERNAL_GET_OBJDEF;
 
-  80359f4:	f884 305a 	strb.w	r3, [r4, #90]	; 0x5a
 
-         mn->get_object_def(1, &oid.id[oid.len - 1], &object_def);
 
-  80359f8:	af05      	add	r7, sp, #20
 
-  80359fa:	6803      	ldr	r3, [r0, #0]
 
-  80359fc:	eb07 0181 	add.w	r1, r7, r1, lsl #2
 
-  8035a00:	2001      	movs	r0, #1
 
-  8035a02:	aa02      	add	r2, sp, #8
 
-  8035a04:	4798      	blx	r3
 
-         LWIP_ASSERT("invalid length", object_def.v_len <= 0xff);
 
-         vb = snmp_varbind_alloc(&oid, object_def.asn_type, (u8_t)object_def.v_len);
 
-  8035a06:	a805      	add	r0, sp, #20
 
-  8035a08:	f89d 100a 	ldrb.w	r1, [sp, #10]
 
-  8035a0c:	f89d 200c 	ldrb.w	r2, [sp, #12]
 
-  8035a10:	f7ff fe92 	bl	8035738 <snmp_varbind_alloc>
 
-         if (vb != NULL)
 
-  8035a14:	4606      	mov	r6, r0
 
-  8035a16:	b1a8      	cbz	r0, 8035a44 <snmp_msg_event+0x19c>
 
-         {
 
-           msg_ps->state = SNMP_MSG_INTERNAL_GET_VALUE;
 
-  8035a18:	2303      	movs	r3, #3
 
-  8035a1a:	f884 305a 	strb.w	r3, [r4, #90]	; 0x5a
 
-           mn->get_value(&object_def, object_def.v_len, vb->value);
 
-  8035a1e:	686b      	ldr	r3, [r5, #4]
 
-  8035a20:	f8bd 100c 	ldrh.w	r1, [sp, #12]
 
-  8035a24:	6972      	ldr	r2, [r6, #20]
 
-  8035a26:	a802      	add	r0, sp, #8
 
-  8035a28:	4798      	blx	r3
 
-           snmp_varbind_tail_add(&msg_ps->outvb, vb);
 
-  8035a2a:	4858      	ldr	r0, [pc, #352]	; (8035b8c <snmp_msg_event+0x2e4>)
 
-  8035a2c:	4631      	mov	r1, r6
 
-  8035a2e:	f7ff ff2f 	bl	8035890 <snmp_varbind_tail_add>
 
-           msg_ps->state = SNMP_MSG_SEARCH_OBJ;
 
-  8035a32:	2301      	movs	r3, #1
 
-  8035a34:	f884 305a 	strb.w	r3, [r4, #90]	; 0x5a
 
-           msg_ps->vb_idx += 1;
 
-  8035a38:	f894 30f8 	ldrb.w	r3, [r4, #248]	; 0xf8
 
-  8035a3c:	3301      	adds	r3, #1
 
-  8035a3e:	f884 30f8 	strb.w	r3, [r4, #248]	; 0xf8
 
-  8035a42:	e003      	b.n	8035a4c <snmp_msg_event+0x1a4>
 
-         }
 
-         else
 
-         {
 
-           LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_recv couldn't allocate outvb space\n"));
 
-           snmp_error_response(msg_ps,SNMP_ES_TOOBIG);
 
-  8035a44:	484e      	ldr	r0, [pc, #312]	; (8035b80 <snmp_msg_event+0x2d8>)
 
-  8035a46:	2101      	movs	r1, #1
 
-  8035a48:	e2a6      	b.n	8035f98 <snmp_msg_event+0x6f0>
 
-       LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_msg_getnext_event: couldn't allocate outvb space\n"));
 
-       snmp_error_response(msg_ps,SNMP_ES_TOOBIG);
 
-     }
 
-   }
 
-   while ((msg_ps->state == SNMP_MSG_SEARCH_OBJ) &&
 
-  8035a4a:	4c4d      	ldr	r4, [pc, #308]	; (8035b80 <snmp_msg_event+0x2d8>)
 
-  8035a4c:	f894 305a 	ldrb.w	r3, [r4, #90]	; 0x5a
 
-  8035a50:	2b01      	cmp	r3, #1
 
-  8035a52:	f040 82c0 	bne.w	8035fd6 <snmp_msg_event+0x72e>
 
-          (msg_ps->vb_idx < msg_ps->invb.count))
 
-  8035a56:	f894 30f8 	ldrb.w	r3, [r4, #248]	; 0xf8
 
-  8035a5a:	f894 2108 	ldrb.w	r2, [r4, #264]	; 0x108
 
-       LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_msg_getnext_event: couldn't allocate outvb space\n"));
 
-       snmp_error_response(msg_ps,SNMP_ES_TOOBIG);
 
-     }
 
-   }
 
-   while ((msg_ps->state == SNMP_MSG_SEARCH_OBJ) &&
 
-  8035a5e:	4293      	cmp	r3, r2
 
-  8035a60:	d386      	bcc.n	8035970 <snmp_msg_event+0xc8>
 
-  8035a62:	e2a7      	b.n	8035fb4 <snmp_msg_event+0x70c>
 
-     }
 
-   }
 
-   if ((msg_ps->state == SNMP_MSG_SEARCH_OBJ) &&
 
-       (msg_ps->vb_idx == msg_ps->invb.count))
 
-   {
 
-     snmp_ok_response(msg_ps);
 
-  8035a64:	4846      	ldr	r0, [pc, #280]	; (8035b80 <snmp_msg_event+0x2d8>)
 
-  8035a66:	e292      	b.n	8035f8e <snmp_msg_event+0x6e6>
 
-     msg_ps = &msg_input_list[request_id];
 
-     if (msg_ps->rt == SNMP_ASN1_PDU_GET_NEXT_REQ)
 
-     {
 
-       snmp_msg_getnext_event(request_id, msg_ps);
 
-     }
 
-     else if (msg_ps->rt == SNMP_ASN1_PDU_GET_REQ)
 
-  8035a68:	2e00      	cmp	r6, #0
 
-  8035a6a:	f040 8126 	bne.w	8035cba <snmp_msg_event+0x412>
 
- static void
 
- snmp_msg_get_event(u8_t request_id, struct snmp_msg_pstat *msg_ps)
 
- {
 
-   LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_msg_get_event: msg_ps->state==%"U16_F"\n",(u16_t)msg_ps->state));
 
-   if (msg_ps->state == SNMP_MSG_EXTERNAL_GET_OBJDEF)
 
-  8035a6e:	f894 305a 	ldrb.w	r3, [r4, #90]	; 0x5a
 
-  8035a72:	2b07      	cmp	r3, #7
 
-  8035a74:	d122      	bne.n	8035abc <snmp_msg_event+0x214>
 
-   {
 
-     struct mib_external_node *en;
 
-     struct snmp_name_ptr np;
 
-     /* get_object_def() answer*/
 
-     en = msg_ps->ext_mib_node;
 
-  8035a76:	6de5      	ldr	r5, [r4, #92]	; 0x5c
 
-     np = msg_ps->ext_name_ptr;
 
-  8035a78:	f894 9060 	ldrb.w	r9, [r4, #96]	; 0x60
 
-  8035a7c:	f8d4 8064 	ldr.w	r8, [r4, #100]	; 0x64
 
-     /* translate answer into a known lifeform */
 
-     en->get_object_def_a(request_id, np.ident_len, np.ident, &msg_ps->ext_object_def);
 
-  8035a80:	6baf      	ldr	r7, [r5, #56]	; 0x38
 
-  8035a82:	f104 0368 	add.w	r3, r4, #104	; 0x68
 
-  8035a86:	4649      	mov	r1, r9
 
-  8035a88:	4642      	mov	r2, r8
 
-  8035a8a:	47b8      	blx	r7
 
-     if ((msg_ps->ext_object_def.instance != MIB_OBJECT_NONE) &&
 
-  8035a8c:	f894 3068 	ldrb.w	r3, [r4, #104]	; 0x68
 
-  8035a90:	b163      	cbz	r3, 8035aac <snmp_msg_event+0x204>
 
-         (msg_ps->ext_object_def.access & MIB_ACCESS_READ))
 
-  8035a92:	f894 3069 	ldrb.w	r3, [r4, #105]	; 0x69
 
-     en = msg_ps->ext_mib_node;
 
-     np = msg_ps->ext_name_ptr;
 
-     /* translate answer into a known lifeform */
 
-     en->get_object_def_a(request_id, np.ident_len, np.ident, &msg_ps->ext_object_def);
 
-     if ((msg_ps->ext_object_def.instance != MIB_OBJECT_NONE) &&
 
-  8035a96:	07da      	lsls	r2, r3, #31
 
-  8035a98:	d508      	bpl.n	8035aac <snmp_msg_event+0x204>
 
-         (msg_ps->ext_object_def.access & MIB_ACCESS_READ))
 
-     {
 
-       msg_ps->state = SNMP_MSG_EXTERNAL_GET_VALUE;
 
-  8035a9a:	2308      	movs	r3, #8
 
-  8035a9c:	f884 305a 	strb.w	r3, [r4, #90]	; 0x5a
 
-       en->get_value_q(request_id, &msg_ps->ext_object_def);
 
-  8035aa0:	6aeb      	ldr	r3, [r5, #44]	; 0x2c
 
-  8035aa2:	4630      	mov	r0, r6
 
-  8035aa4:	f104 0168 	add.w	r1, r4, #104	; 0x68
 
-  8035aa8:	4798      	blx	r3
 
-  8035aaa:	e0f7      	b.n	8035c9c <snmp_msg_event+0x3f4>
 
-     }
 
-     else
 
-     {
 
-       en->get_object_def_pc(request_id, np.ident_len, np.ident);
 
-  8035aac:	2000      	movs	r0, #0
 
-  8035aae:	4649      	mov	r1, r9
 
-  8035ab0:	6cab      	ldr	r3, [r5, #72]	; 0x48
 
-  8035ab2:	4642      	mov	r2, r8
 
-  8035ab4:	4798      	blx	r3
 
-       /* search failed, object id points to unknown object (nosuchname) */
 
-       snmp_error_response(msg_ps,SNMP_ES_NOSUCHNAME);
 
-  8035ab6:	4832      	ldr	r0, [pc, #200]	; (8035b80 <snmp_msg_event+0x2d8>)
 
-  8035ab8:	2102      	movs	r1, #2
 
-  8035aba:	e059      	b.n	8035b70 <snmp_msg_event+0x2c8>
 
-     }
 
-   }
 
-   else if (msg_ps->state == SNMP_MSG_EXTERNAL_GET_VALUE)
 
-  8035abc:	2b08      	cmp	r3, #8
 
-  8035abe:	f040 80ed 	bne.w	8035c9c <snmp_msg_event+0x3f4>
 
-     /* get_value() answer */
 
-     en = msg_ps->ext_mib_node;
 
-     /* allocate output varbind */
 
-     vb = (struct snmp_varbind *)memp_malloc(MEMP_SNMP_VARBIND);
 
-  8035ac2:	200c      	movs	r0, #12
 
-   {
 
-     struct mib_external_node *en;
 
-     struct snmp_varbind *vb;
 
-     /* get_value() answer */
 
-     en = msg_ps->ext_mib_node;
 
-  8035ac4:	f8d4 805c 	ldr.w	r8, [r4, #92]	; 0x5c
 
-     /* allocate output varbind */
 
-     vb = (struct snmp_varbind *)memp_malloc(MEMP_SNMP_VARBIND);
 
-  8035ac8:	f7fa f880 	bl	802fbcc <memp_malloc>
 
-     if (vb != NULL)
 
-  8035acc:	4605      	mov	r5, r0
 
-  8035ace:	2800      	cmp	r0, #0
 
-  8035ad0:	d047      	beq.n	8035b62 <snmp_msg_event+0x2ba>
 
-     {
 
-       vb->next = NULL;
 
-  8035ad2:	6006      	str	r6, [r0, #0]
 
-       vb->prev = NULL;
 
-  8035ad4:	6046      	str	r6, [r0, #4]
 
-       /* move name from invb to outvb */
 
-       vb->ident = msg_ps->vb_ptr->ident;
 
-  8035ad6:	f8d4 30fc 	ldr.w	r3, [r4, #252]	; 0xfc
 
-  8035ada:	68da      	ldr	r2, [r3, #12]
 
-       vb->ident_len = msg_ps->vb_ptr->ident_len;
 
-  8035adc:	7a1b      	ldrb	r3, [r3, #8]
 
-     {
 
-       vb->next = NULL;
 
-       vb->prev = NULL;
 
-       /* move name from invb to outvb */
 
-       vb->ident = msg_ps->vb_ptr->ident;
 
-  8035ade:	60c2      	str	r2, [r0, #12]
 
-       vb->ident_len = msg_ps->vb_ptr->ident_len;
 
-  8035ae0:	7203      	strb	r3, [r0, #8]
 
-       /* ensure this memory is refereced once only */
 
-       msg_ps->vb_ptr->ident = NULL;
 
-  8035ae2:	f8d4 30fc 	ldr.w	r3, [r4, #252]	; 0xfc
 
-       msg_ps->vb_ptr->ident_len = 0;
 
-  8035ae6:	721e      	strb	r6, [r3, #8]
 
-       /* move name from invb to outvb */
 
-       vb->ident = msg_ps->vb_ptr->ident;
 
-       vb->ident_len = msg_ps->vb_ptr->ident_len;
 
-       /* ensure this memory is refereced once only */
 
-       msg_ps->vb_ptr->ident = NULL;
 
-  8035ae8:	60de      	str	r6, [r3, #12]
 
-       msg_ps->vb_ptr->ident_len = 0;
 
-       vb->value_type = msg_ps->ext_object_def.asn_type;
 
-  8035aea:	f894 306a 	ldrb.w	r3, [r4, #106]	; 0x6a
 
-  8035aee:	7403      	strb	r3, [r0, #16]
 
-       LWIP_ASSERT("invalid length", msg_ps->ext_object_def.v_len <= 0xff);
 
-       vb->value_len = (u8_t)msg_ps->ext_object_def.v_len;
 
-  8035af0:	f894 706c 	ldrb.w	r7, [r4, #108]	; 0x6c
 
-  8035af4:	7447      	strb	r7, [r0, #17]
 
-       if (vb->value_len > 0)
 
-  8035af6:	b1ef      	cbz	r7, 8035b34 <snmp_msg_event+0x28c>
 
-       {
 
-         LWIP_ASSERT("SNMP_MAX_OCTET_STRING_LEN is configured too low", vb->value_len <= SNMP_MAX_VALUE_SIZE);
 
-         vb->value = memp_malloc(MEMP_SNMP_VALUE);
 
-  8035af8:	200d      	movs	r0, #13
 
-  8035afa:	f7fa f867 	bl	802fbcc <memp_malloc>
 
-  8035afe:	4603      	mov	r3, r0
 
-  8035b00:	6168      	str	r0, [r5, #20]
 
-         if (vb->value != NULL)
 
-  8035b02:	b138      	cbz	r0, 8035b14 <snmp_msg_event+0x26c>
 
-         {
 
-           en->get_value_a(request_id, &msg_ps->ext_object_def, vb->value_len, vb->value);
 
-  8035b04:	f8d8 703c 	ldr.w	r7, [r8, #60]	; 0x3c
 
-  8035b08:	7c6a      	ldrb	r2, [r5, #17]
 
-  8035b0a:	4630      	mov	r0, r6
 
-  8035b0c:	f104 0168 	add.w	r1, r4, #104	; 0x68
 
-  8035b10:	47b8      	blx	r7
 
-  8035b12:	e018      	b.n	8035b46 <snmp_msg_event+0x29e>
 
-           msg_ps->state = SNMP_MSG_SEARCH_OBJ;
 
-           msg_ps->vb_idx += 1;
 
-         }
 
-         else
 
-         {
 
-           en->get_value_pc(request_id, &msg_ps->ext_object_def);
 
-  8035b14:	f8d8 304c 	ldr.w	r3, [r8, #76]	; 0x4c
 
-  8035b18:	f104 0168 	add.w	r1, r4, #104	; 0x68
 
-  8035b1c:	4798      	blx	r3
 
-           LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_msg_event: no variable space\n"));
 
-           msg_ps->vb_ptr->ident = vb->ident;
 
-  8035b1e:	f8d4 30fc 	ldr.w	r3, [r4, #252]	; 0xfc
 
-  8035b22:	68ea      	ldr	r2, [r5, #12]
 
-  8035b24:	60da      	str	r2, [r3, #12]
 
-           msg_ps->vb_ptr->ident_len = vb->ident_len;
 
-  8035b26:	7a2a      	ldrb	r2, [r5, #8]
 
-           memp_free(MEMP_SNMP_VARBIND, vb);
 
-  8035b28:	200c      	movs	r0, #12
 
-         else
 
-         {
 
-           en->get_value_pc(request_id, &msg_ps->ext_object_def);
 
-           LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_msg_event: no variable space\n"));
 
-           msg_ps->vb_ptr->ident = vb->ident;
 
-           msg_ps->vb_ptr->ident_len = vb->ident_len;
 
-  8035b2a:	721a      	strb	r2, [r3, #8]
 
-           memp_free(MEMP_SNMP_VARBIND, vb);
 
-  8035b2c:	4629      	mov	r1, r5
 
-  8035b2e:	f7fa f863 	bl	802fbf8 <memp_free>
 
-  8035b32:	e01b      	b.n	8035b6c <snmp_msg_event+0x2c4>
 
-         }
 
-       }
 
-       else
 
-       {
 
-         /* vb->value_len == 0, empty value (e.g. empty string) */
 
-         en->get_value_a(request_id, &msg_ps->ext_object_def, 0, NULL);
 
-  8035b34:	f8d8 603c 	ldr.w	r6, [r8, #60]	; 0x3c
 
-  8035b38:	4638      	mov	r0, r7
 
-  8035b3a:	f104 0168 	add.w	r1, r4, #104	; 0x68
 
-  8035b3e:	463a      	mov	r2, r7
 
-  8035b40:	463b      	mov	r3, r7
 
-  8035b42:	47b0      	blx	r6
 
-         vb->value = NULL;
 
-  8035b44:	616f      	str	r7, [r5, #20]
 
-         snmp_varbind_tail_add(&msg_ps->outvb, vb);
 
-  8035b46:	f504 7086 	add.w	r0, r4, #268	; 0x10c
 
-  8035b4a:	4629      	mov	r1, r5
 
-  8035b4c:	f7ff fea0 	bl	8035890 <snmp_varbind_tail_add>
 
-         /* search again (if vb_idx < msg_ps->invb.count) */
 
-         msg_ps->state = SNMP_MSG_SEARCH_OBJ;
 
-  8035b50:	2301      	movs	r3, #1
 
-  8035b52:	f884 305a 	strb.w	r3, [r4, #90]	; 0x5a
 
-         msg_ps->vb_idx += 1;
 
-  8035b56:	f894 30f8 	ldrb.w	r3, [r4, #248]	; 0xf8
 
-  8035b5a:	3301      	adds	r3, #1
 
-  8035b5c:	f884 30f8 	strb.w	r3, [r4, #248]	; 0xf8
 
-  8035b60:	e09c      	b.n	8035c9c <snmp_msg_event+0x3f4>
 
-       }
 
-     }
 
-     else
 
-     {
 
-       en->get_value_pc(request_id, &msg_ps->ext_object_def);
 
-  8035b62:	f8d8 304c 	ldr.w	r3, [r8, #76]	; 0x4c
 
-  8035b66:	f104 0168 	add.w	r1, r4, #104	; 0x68
 
-  8035b6a:	4798      	blx	r3
 
-       LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_msg_event: no outvb space\n"));
 
-       snmp_error_response(msg_ps,SNMP_ES_TOOBIG);
 
-  8035b6c:	4620      	mov	r0, r4
 
-  8035b6e:	2101      	movs	r1, #1
 
-  8035b70:	f7ff fe43 	bl	80357fa <snmp_error_response>
 
-  8035b74:	e092      	b.n	8035c9c <snmp_msg_event+0x3f4>
 
-          (msg_ps->vb_idx < msg_ps->invb.count))
 
-   {
 
-     struct mib_node *mn;
 
-     struct snmp_name_ptr np;
 
-     if (msg_ps->vb_idx == 0)
 
-  8035b76:	b95b      	cbnz	r3, 8035b90 <snmp_msg_event+0x2e8>
 
-     {
 
-       msg_ps->vb_ptr = msg_ps->invb.head;
 
-  8035b78:	f8d4 3100 	ldr.w	r3, [r4, #256]	; 0x100
 
-  8035b7c:	e00b      	b.n	8035b96 <snmp_msg_event+0x2ee>
 
-  8035b7e:	bf00      	nop
 
-  8035b80:	2000f6f0 	.word	0x2000f6f0
 
-  8035b84:	08045834 	.word	0x08045834
 
-  8035b88:	2000f764 	.word	0x2000f764
 
-  8035b8c:	2000f7fc 	.word	0x2000f7fc
 
-     }
 
-     else
 
-     {
 
-       msg_ps->vb_ptr = msg_ps->vb_ptr->next;
 
-  8035b90:	f8d4 30fc 	ldr.w	r3, [r4, #252]	; 0xfc
 
-  8035b94:	681b      	ldr	r3, [r3, #0]
 
-  8035b96:	f8c4 30fc 	str.w	r3, [r4, #252]	; 0xfc
 
-     }
 
-     /** test object identifier for .iso.org.dod.internet prefix */
 
-     if (snmp_iso_prefix_tst(msg_ps->vb_ptr->ident_len,  msg_ps->vb_ptr->ident))
 
-  8035b9a:	f8d4 30fc 	ldr.w	r3, [r4, #252]	; 0xfc
 
-  8035b9e:	7a18      	ldrb	r0, [r3, #8]
 
-  8035ba0:	68d9      	ldr	r1, [r3, #12]
 
-  8035ba2:	f7ff fd65 	bl	8035670 <snmp_iso_prefix_tst>
 
-  8035ba6:	2800      	cmp	r0, #0
 
-  8035ba8:	d073      	beq.n	8035c92 <snmp_msg_event+0x3ea>
 
-     {
 
-       mn = snmp_search_tree((struct mib_node*)&internet, msg_ps->vb_ptr->ident_len - 4,
 
-  8035baa:	f8d4 30fc 	ldr.w	r3, [r4, #252]	; 0xfc
 
-  8035bae:	48a6      	ldr	r0, [pc, #664]	; (8035e48 <snmp_msg_event+0x5a0>)
 
-  8035bb0:	7a19      	ldrb	r1, [r3, #8]
 
-  8035bb2:	68da      	ldr	r2, [r3, #12]
 
-  8035bb4:	3904      	subs	r1, #4
 
-  8035bb6:	b2c9      	uxtb	r1, r1
 
-  8035bb8:	3210      	adds	r2, #16
 
-  8035bba:	466b      	mov	r3, sp
 
-  8035bbc:	f7ff fb0a 	bl	80351d4 <snmp_search_tree>
 
-                              msg_ps->vb_ptr->ident + 4, &np);
 
-       if (mn != NULL)
 
-  8035bc0:	4606      	mov	r6, r0
 
-  8035bc2:	2800      	cmp	r0, #0
 
-  8035bc4:	d065      	beq.n	8035c92 <snmp_msg_event+0x3ea>
 
-       {
 
-         if (mn->node_type == MIB_NODE_EX)
 
-  8035bc6:	7c03      	ldrb	r3, [r0, #16]
 
-  8035bc8:	2b05      	cmp	r3, #5
 
-  8035bca:	d110      	bne.n	8035bee <snmp_msg_event+0x346>
 
-           /* external object */
 
-           struct mib_external_node *en = (struct mib_external_node*)mn;
 
-           msg_ps->state = SNMP_MSG_EXTERNAL_GET_OBJDEF;
 
-           /* save en && args in msg_ps!! */
 
-           msg_ps->ext_mib_node = en;
 
-  8035bcc:	65e0      	str	r0, [r4, #92]	; 0x5c
 
-         if (mn->node_type == MIB_NODE_EX)
 
-         {
 
-           /* external object */
 
-           struct mib_external_node *en = (struct mib_external_node*)mn;
 
-           msg_ps->state = SNMP_MSG_EXTERNAL_GET_OBJDEF;
 
-  8035bce:	2307      	movs	r3, #7
 
-           /* save en && args in msg_ps!! */
 
-           msg_ps->ext_mib_node = en;
 
-           msg_ps->ext_name_ptr = np;
 
-  8035bd0:	e898 0003 	ldmia.w	r8, {r0, r1}
 
-         if (mn->node_type == MIB_NODE_EX)
 
-         {
 
-           /* external object */
 
-           struct mib_external_node *en = (struct mib_external_node*)mn;
 
-           msg_ps->state = SNMP_MSG_EXTERNAL_GET_OBJDEF;
 
-  8035bd4:	f884 305a 	strb.w	r3, [r4, #90]	; 0x5a
 
-           /* save en && args in msg_ps!! */
 
-           msg_ps->ext_mib_node = en;
 
-           msg_ps->ext_name_ptr = np;
 
-  8035bd8:	4b9c      	ldr	r3, [pc, #624]	; (8035e4c <snmp_msg_event+0x5a4>)
 
-           en->get_object_def_q(en->addr_inf, request_id, np.ident_len, np.ident);
 
-  8035bda:	f89d 2000 	ldrb.w	r2, [sp]
 
-           struct mib_external_node *en = (struct mib_external_node*)mn;
 
-           msg_ps->state = SNMP_MSG_EXTERNAL_GET_OBJDEF;
 
-           /* save en && args in msg_ps!! */
 
-           msg_ps->ext_mib_node = en;
 
-           msg_ps->ext_name_ptr = np;
 
-  8035bde:	e883 0003 	stmia.w	r3, {r0, r1}
 
-           en->get_object_def_q(en->addr_inf, request_id, np.ident_len, np.ident);
 
-  8035be2:	2100      	movs	r1, #0
 
-  8035be4:	6ab5      	ldr	r5, [r6, #40]	; 0x28
 
-  8035be6:	6970      	ldr	r0, [r6, #20]
 
-  8035be8:	9b01      	ldr	r3, [sp, #4]
 
-  8035bea:	47a8      	blx	r5
 
-  8035bec:	e058      	b.n	8035ca0 <snmp_msg_event+0x3f8>
 
-         else
 
-         {
 
-           /* internal object */
 
-           struct obj_def object_def;
 
-           msg_ps->state = SNMP_MSG_INTERNAL_GET_OBJDEF;
 
-  8035bee:	2302      	movs	r3, #2
 
-  8035bf0:	f884 305a 	strb.w	r3, [r4, #90]	; 0x5a
 
-           mn->get_object_def(np.ident_len, np.ident, &object_def);
 
-  8035bf4:	6803      	ldr	r3, [r0, #0]
 
-  8035bf6:	9901      	ldr	r1, [sp, #4]
 
-  8035bf8:	f89d 0000 	ldrb.w	r0, [sp]
 
-  8035bfc:	aa02      	add	r2, sp, #8
 
-  8035bfe:	4798      	blx	r3
 
-           if ((object_def.instance != MIB_OBJECT_NONE) &&
 
-  8035c00:	f89d 3008 	ldrb.w	r3, [sp, #8]
 
-  8035c04:	2b00      	cmp	r3, #0
 
-  8035c06:	d044      	beq.n	8035c92 <snmp_msg_event+0x3ea>
 
-             (object_def.access & MIB_ACCESS_READ))
 
-  8035c08:	f89d 3009 	ldrb.w	r3, [sp, #9]
 
-           /* internal object */
 
-           struct obj_def object_def;
 
-           msg_ps->state = SNMP_MSG_INTERNAL_GET_OBJDEF;
 
-           mn->get_object_def(np.ident_len, np.ident, &object_def);
 
-           if ((object_def.instance != MIB_OBJECT_NONE) &&
 
-  8035c0c:	07db      	lsls	r3, r3, #31
 
-  8035c0e:	f100 81c6 	bmi.w	8035f9e <snmp_msg_event+0x6f6>
 
-  8035c12:	e03e      	b.n	8035c92 <snmp_msg_event+0x3ea>
 
-             msg_ps->state = SNMP_MSG_INTERNAL_GET_VALUE;
 
-             /* allocate output varbind */
 
-             vb = (struct snmp_varbind *)memp_malloc(MEMP_SNMP_VARBIND);
 
-             if (vb != NULL)
 
-             {
 
-               vb->next = NULL;
 
-  8035c14:	2200      	movs	r2, #0
 
-  8035c16:	602a      	str	r2, [r5, #0]
 
-               vb->prev = NULL;
 
-  8035c18:	606a      	str	r2, [r5, #4]
 
-               /* move name from invb to outvb */
 
-               vb->ident = msg_ps->vb_ptr->ident;
 
-  8035c1a:	f8d4 30fc 	ldr.w	r3, [r4, #252]	; 0xfc
 
-  8035c1e:	68d9      	ldr	r1, [r3, #12]
 
-               vb->ident_len = msg_ps->vb_ptr->ident_len;
 
-  8035c20:	7a1b      	ldrb	r3, [r3, #8]
 
-             {
 
-               vb->next = NULL;
 
-               vb->prev = NULL;
 
-               /* move name from invb to outvb */
 
-               vb->ident = msg_ps->vb_ptr->ident;
 
-  8035c22:	60e9      	str	r1, [r5, #12]
 
-               vb->ident_len = msg_ps->vb_ptr->ident_len;
 
-  8035c24:	722b      	strb	r3, [r5, #8]
 
-               /* ensure this memory is refereced once only */
 
-               msg_ps->vb_ptr->ident = NULL;
 
-  8035c26:	f8d4 30fc 	ldr.w	r3, [r4, #252]	; 0xfc
 
-               msg_ps->vb_ptr->ident_len = 0;
 
-  8035c2a:	721a      	strb	r2, [r3, #8]
 
-               /* move name from invb to outvb */
 
-               vb->ident = msg_ps->vb_ptr->ident;
 
-               vb->ident_len = msg_ps->vb_ptr->ident_len;
 
-               /* ensure this memory is refereced once only */
 
-               msg_ps->vb_ptr->ident = NULL;
 
-  8035c2c:	60da      	str	r2, [r3, #12]
 
-               msg_ps->vb_ptr->ident_len = 0;
 
-               vb->value_type = object_def.asn_type;
 
-  8035c2e:	f89d 300a 	ldrb.w	r3, [sp, #10]
 
-  8035c32:	742b      	strb	r3, [r5, #16]
 
-               LWIP_ASSERT("invalid length", object_def.v_len <= 0xff);
 
-               vb->value_len = (u8_t)object_def.v_len;
 
-  8035c34:	f89d 300c 	ldrb.w	r3, [sp, #12]
 
-  8035c38:	746b      	strb	r3, [r5, #17]
 
-               if (vb->value_len > 0)
 
-  8035c3a:	b1bb      	cbz	r3, 8035c6c <snmp_msg_event+0x3c4>
 
-               {
 
-                 LWIP_ASSERT("SNMP_MAX_OCTET_STRING_LEN is configured too low",
 
-                   vb->value_len <= SNMP_MAX_VALUE_SIZE);
 
-                 vb->value = memp_malloc(MEMP_SNMP_VALUE);
 
-  8035c3c:	200d      	movs	r0, #13
 
-  8035c3e:	f7f9 ffc5 	bl	802fbcc <memp_malloc>
 
-  8035c42:	4602      	mov	r2, r0
 
-  8035c44:	6168      	str	r0, [r5, #20]
 
-                 if (vb->value != NULL)
 
-  8035c46:	b120      	cbz	r0, 8035c52 <snmp_msg_event+0x3aa>
 
-                 {
 
-                   mn->get_value(&object_def, vb->value_len, vb->value);
 
-  8035c48:	6877      	ldr	r7, [r6, #4]
 
-  8035c4a:	7c69      	ldrb	r1, [r5, #17]
 
-  8035c4c:	a802      	add	r0, sp, #8
 
-  8035c4e:	47b8      	blx	r7
 
-  8035c50:	e00d      	b.n	8035c6e <snmp_msg_event+0x3c6>
 
-                   msg_ps->vb_idx += 1;
 
-                 }
 
-                 else
 
-                 {
 
-                   LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_msg_event: couldn't allocate variable space\n"));
 
-                   msg_ps->vb_ptr->ident = vb->ident;
 
-  8035c52:	f8d4 30fc 	ldr.w	r3, [r4, #252]	; 0xfc
 
-  8035c56:	68e9      	ldr	r1, [r5, #12]
 
-  8035c58:	60d9      	str	r1, [r3, #12]
 
-                   msg_ps->vb_ptr->ident_len = vb->ident_len;
 
-  8035c5a:	7a29      	ldrb	r1, [r5, #8]
 
-                   vb->ident = NULL;
 
-  8035c5c:	60e8      	str	r0, [r5, #12]
 
-                 }
 
-                 else
 
-                 {
 
-                   LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_msg_event: couldn't allocate variable space\n"));
 
-                   msg_ps->vb_ptr->ident = vb->ident;
 
-                   msg_ps->vb_ptr->ident_len = vb->ident_len;
 
-  8035c5e:	7219      	strb	r1, [r3, #8]
 
-                   vb->ident = NULL;
 
-                   vb->ident_len = 0;
 
-  8035c60:	7228      	strb	r0, [r5, #8]
 
-                   memp_free(MEMP_SNMP_VARBIND, vb);
 
-  8035c62:	4629      	mov	r1, r5
 
-  8035c64:	200c      	movs	r0, #12
 
-  8035c66:	f7f9 ffc7 	bl	802fbf8 <memp_free>
 
-  8035c6a:	e00d      	b.n	8035c88 <snmp_msg_event+0x3e0>
 
-                 }
 
-               }
 
-               else
 
-               {
 
-                 /* vb->value_len == 0, empty value (e.g. empty string) */
 
-                 vb->value = NULL;
 
-  8035c6c:	616b      	str	r3, [r5, #20]
 
-                 snmp_varbind_tail_add(&msg_ps->outvb, vb);
 
-  8035c6e:	4878      	ldr	r0, [pc, #480]	; (8035e50 <snmp_msg_event+0x5a8>)
 
-  8035c70:	4629      	mov	r1, r5
 
-  8035c72:	f7ff fe0d 	bl	8035890 <snmp_varbind_tail_add>
 
-                 msg_ps->state = SNMP_MSG_SEARCH_OBJ;
 
-  8035c76:	2301      	movs	r3, #1
 
-  8035c78:	f884 305a 	strb.w	r3, [r4, #90]	; 0x5a
 
-                 msg_ps->vb_idx += 1;
 
-  8035c7c:	f894 30f8 	ldrb.w	r3, [r4, #248]	; 0xf8
 
-  8035c80:	3301      	adds	r3, #1
 
-  8035c82:	f884 30f8 	strb.w	r3, [r4, #248]	; 0xf8
 
-  8035c86:	e003      	b.n	8035c90 <snmp_msg_event+0x3e8>
 
-               }
 
-             }
 
-             else
 
-             {
 
-               LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_msg_event: couldn't allocate outvb space\n"));
 
-               snmp_error_response(msg_ps,SNMP_ES_TOOBIG);
 
-  8035c88:	4872      	ldr	r0, [pc, #456]	; (8035e54 <snmp_msg_event+0x5ac>)
 
-  8035c8a:	2101      	movs	r1, #1
 
-  8035c8c:	f7ff fdb5 	bl	80357fa <snmp_error_response>
 
-     }
 
-     else
 
-     {
 
-       mn = NULL;
 
-     }
 
-     if (mn == NULL)
 
-  8035c90:	b936      	cbnz	r6, 8035ca0 <snmp_msg_event+0x3f8>
 
-     {
 
-       /* mn == NULL, noSuchName */
 
-       snmp_error_response(msg_ps,SNMP_ES_NOSUCHNAME);
 
-  8035c92:	4870      	ldr	r0, [pc, #448]	; (8035e54 <snmp_msg_event+0x5ac>)
 
-  8035c94:	2102      	movs	r1, #2
 
-  8035c96:	f7ff fdb0 	bl	80357fa <snmp_error_response>
 
-  8035c9a:	e001      	b.n	8035ca0 <snmp_msg_event+0x3f8>
 
-       LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_msg_event: no outvb space\n"));
 
-       snmp_error_response(msg_ps,SNMP_ES_TOOBIG);
 
-     }
 
-   }
 
-   while ((msg_ps->state == SNMP_MSG_SEARCH_OBJ) &&
 
-  8035c9c:	4c6d      	ldr	r4, [pc, #436]	; (8035e54 <snmp_msg_event+0x5ac>)
 
-       msg_ps->vb_ptr = msg_ps->vb_ptr->next;
 
-     }
 
-     /** test object identifier for .iso.org.dod.internet prefix */
 
-     if (snmp_iso_prefix_tst(msg_ps->vb_ptr->ident_len,  msg_ps->vb_ptr->ident))
 
-     {
 
-       mn = snmp_search_tree((struct mib_node*)&internet, msg_ps->vb_ptr->ident_len - 4,
 
-  8035c9e:	46e8      	mov	r8, sp
 
-       LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_msg_event: no outvb space\n"));
 
-       snmp_error_response(msg_ps,SNMP_ES_TOOBIG);
 
-     }
 
-   }
 
-   while ((msg_ps->state == SNMP_MSG_SEARCH_OBJ) &&
 
-  8035ca0:	f894 305a 	ldrb.w	r3, [r4, #90]	; 0x5a
 
-  8035ca4:	2b01      	cmp	r3, #1
 
-  8035ca6:	f040 8196 	bne.w	8035fd6 <snmp_msg_event+0x72e>
 
-          (msg_ps->vb_idx < msg_ps->invb.count))
 
-  8035caa:	f894 30f8 	ldrb.w	r3, [r4, #248]	; 0xf8
 
-  8035cae:	f894 2108 	ldrb.w	r2, [r4, #264]	; 0x108
 
-       LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_msg_event: no outvb space\n"));
 
-       snmp_error_response(msg_ps,SNMP_ES_TOOBIG);
 
-     }
 
-   }
 
-   while ((msg_ps->state == SNMP_MSG_SEARCH_OBJ) &&
 
-  8035cb2:	4293      	cmp	r3, r2
 
-  8035cb4:	f4ff af5f 	bcc.w	8035b76 <snmp_msg_event+0x2ce>
 
-  8035cb8:	e17c      	b.n	8035fb4 <snmp_msg_event+0x70c>
 
-     }
 
-     else if (msg_ps->rt == SNMP_ASN1_PDU_GET_REQ)
 
-     {
 
-       snmp_msg_get_event(request_id, msg_ps);
 
-     }
 
-     else if(msg_ps->rt == SNMP_ASN1_PDU_SET_REQ)
 
-  8035cba:	2e03      	cmp	r6, #3
 
-  8035cbc:	f040 818b 	bne.w	8035fd6 <snmp_msg_event+0x72e>
 
- static void
 
- snmp_msg_set_event(u8_t request_id, struct snmp_msg_pstat *msg_ps)
 
- {
 
-   LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_msg_set_event: msg_ps->state==%"U16_F"\n",(u16_t)msg_ps->state));
 
-   if (msg_ps->state == SNMP_MSG_EXTERNAL_GET_OBJDEF)
 
-  8035cc0:	f894 305a 	ldrb.w	r3, [r4, #90]	; 0x5a
 
-  8035cc4:	2b07      	cmp	r3, #7
 
-  8035cc6:	d11b      	bne.n	8035d00 <snmp_msg_event+0x458>
 
-   {
 
-     struct mib_external_node *en;
 
-     struct snmp_name_ptr np;
 
-     /* get_object_def() answer*/
 
-     en = msg_ps->ext_mib_node;
 
-  8035cc8:	6de6      	ldr	r6, [r4, #92]	; 0x5c
 
-     np = msg_ps->ext_name_ptr;
 
-  8035cca:	f894 9060 	ldrb.w	r9, [r4, #96]	; 0x60
 
-  8035cce:	f8d4 8064 	ldr.w	r8, [r4, #100]	; 0x64
 
-     /* translate answer into a known lifeform */
 
-     en->get_object_def_a(request_id, np.ident_len, np.ident, &msg_ps->ext_object_def);
 
-  8035cd2:	6bb7      	ldr	r7, [r6, #56]	; 0x38
 
-  8035cd4:	4649      	mov	r1, r9
 
-  8035cd6:	4642      	mov	r2, r8
 
-  8035cd8:	f104 0368 	add.w	r3, r4, #104	; 0x68
 
-  8035cdc:	47b8      	blx	r7
 
-     if (msg_ps->ext_object_def.instance != MIB_OBJECT_NONE)
 
-  8035cde:	f894 0068 	ldrb.w	r0, [r4, #104]	; 0x68
 
-  8035ce2:	b140      	cbz	r0, 8035cf6 <snmp_msg_event+0x44e>
 
-     {
 
-       msg_ps->state = SNMP_MSG_EXTERNAL_SET_TEST;
 
-  8035ce4:	2309      	movs	r3, #9
 
-  8035ce6:	f884 305a 	strb.w	r3, [r4, #90]	; 0x5a
 
-       en->set_test_q(request_id, &msg_ps->ext_object_def);
 
-  8035cea:	6b33      	ldr	r3, [r6, #48]	; 0x30
 
-  8035cec:	4628      	mov	r0, r5
 
-  8035cee:	f104 0168 	add.w	r1, r4, #104	; 0x68
 
-  8035cf2:	4798      	blx	r3
 
-  8035cf4:	e0d5      	b.n	8035ea2 <snmp_msg_event+0x5fa>
 
-     }
 
-     else
 
-     {
 
-       en->get_object_def_pc(request_id, np.ident_len, np.ident);
 
-  8035cf6:	6cb3      	ldr	r3, [r6, #72]	; 0x48
 
-  8035cf8:	4649      	mov	r1, r9
 
-  8035cfa:	4642      	mov	r2, r8
 
-  8035cfc:	4798      	blx	r3
 
-  8035cfe:	e023      	b.n	8035d48 <snmp_msg_event+0x4a0>
 
-       /* search failed, object id points to unknown object (nosuchname) */
 
-       snmp_error_response(msg_ps,SNMP_ES_NOSUCHNAME);
 
-     }
 
-   }
 
-   else if (msg_ps->state == SNMP_MSG_EXTERNAL_SET_TEST)
 
-  8035d00:	2b09      	cmp	r3, #9
 
-  8035d02:	d124      	bne.n	8035d4e <snmp_msg_event+0x4a6>
 
-     struct mib_external_node *en;
 
-     /* set_test() answer*/
 
-     en = msg_ps->ext_mib_node;
 
-     if (msg_ps->ext_object_def.access & MIB_ACCESS_WRITE)
 
-  8035d04:	f894 3069 	ldrb.w	r3, [r4, #105]	; 0x69
 
-   else if (msg_ps->state == SNMP_MSG_EXTERNAL_SET_TEST)
 
-   {
 
-     struct mib_external_node *en;
 
-     /* set_test() answer*/
 
-     en = msg_ps->ext_mib_node;
 
-  8035d08:	6de5      	ldr	r5, [r4, #92]	; 0x5c
 
-     if (msg_ps->ext_object_def.access & MIB_ACCESS_WRITE)
 
-  8035d0a:	f003 0302 	and.w	r3, r3, #2
 
-  8035d0e:	b2db      	uxtb	r3, r3
 
-  8035d10:	b1b3      	cbz	r3, 8035d40 <snmp_msg_event+0x498>
 
-     {
 
-        if ((msg_ps->ext_object_def.asn_type == msg_ps->vb_ptr->value_type) &&
 
-  8035d12:	f8d4 30fc 	ldr.w	r3, [r4, #252]	; 0xfc
 
-  8035d16:	f894 106a 	ldrb.w	r1, [r4, #106]	; 0x6a
 
-  8035d1a:	7c1a      	ldrb	r2, [r3, #16]
 
-  8035d1c:	4291      	cmp	r1, r2
 
-  8035d1e:	d108      	bne.n	8035d32 <snmp_msg_event+0x48a>
 
-            (en->set_test_a(request_id,&msg_ps->ext_object_def,
 
-  8035d20:	7c5a      	ldrb	r2, [r3, #17]
 
-  8035d22:	6c2e      	ldr	r6, [r5, #64]	; 0x40
 
-  8035d24:	695b      	ldr	r3, [r3, #20]
 
-  8035d26:	f104 0168 	add.w	r1, r4, #104	; 0x68
 
-  8035d2a:	47b0      	blx	r6
 
-     /* set_test() answer*/
 
-     en = msg_ps->ext_mib_node;
 
-     if (msg_ps->ext_object_def.access & MIB_ACCESS_WRITE)
 
-     {
 
-        if ((msg_ps->ext_object_def.asn_type == msg_ps->vb_ptr->value_type) &&
 
-  8035d2c:	b108      	cbz	r0, 8035d32 <snmp_msg_event+0x48a>
 
-            (en->set_test_a(request_id,&msg_ps->ext_object_def,
 
-                            msg_ps->vb_ptr->value_len,msg_ps->vb_ptr->value) != 0))
 
-       {
 
-         msg_ps->state = SNMP_MSG_SEARCH_OBJ;
 
-  8035d2e:	2301      	movs	r3, #1
 
-  8035d30:	e040      	b.n	8035db4 <snmp_msg_event+0x50c>
 
-         msg_ps->vb_idx += 1;
 
-       }
 
-       else
 
-       {
 
-         en->set_test_pc(request_id,&msg_ps->ext_object_def);
 
-  8035d32:	2000      	movs	r0, #0
 
-  8035d34:	4948      	ldr	r1, [pc, #288]	; (8035e58 <snmp_msg_event+0x5b0>)
 
-  8035d36:	6d2b      	ldr	r3, [r5, #80]	; 0x50
 
-  8035d38:	4798      	blx	r3
 
-         /* bad value */
 
-         snmp_error_response(msg_ps,SNMP_ES_BADVALUE);
 
-  8035d3a:	4846      	ldr	r0, [pc, #280]	; (8035e54 <snmp_msg_event+0x5ac>)
 
-  8035d3c:	2103      	movs	r1, #3
 
-  8035d3e:	e029      	b.n	8035d94 <snmp_msg_event+0x4ec>
 
-       }
 
-     }
 
-     else
 
-     {
 
-       en->set_test_pc(request_id,&msg_ps->ext_object_def);
 
-  8035d40:	6d2b      	ldr	r3, [r5, #80]	; 0x50
 
-  8035d42:	f104 0168 	add.w	r1, r4, #104	; 0x68
 
-  8035d46:	4798      	blx	r3
 
-       /* object not available for set */
 
-       snmp_error_response(msg_ps,SNMP_ES_NOSUCHNAME);
 
-  8035d48:	4620      	mov	r0, r4
 
-  8035d4a:	2102      	movs	r1, #2
 
-  8035d4c:	e022      	b.n	8035d94 <snmp_msg_event+0x4ec>
 
-     }
 
-   }
 
-   else if (msg_ps->state == SNMP_MSG_EXTERNAL_GET_OBJDEF_S)
 
-  8035d4e:	2b0a      	cmp	r3, #10
 
-  8035d50:	d123      	bne.n	8035d9a <snmp_msg_event+0x4f2>
 
-   {
 
-     struct mib_external_node *en;
 
-     struct snmp_name_ptr np;
 
-     /* get_object_def() answer*/
 
-     en = msg_ps->ext_mib_node;
 
-  8035d52:	6de6      	ldr	r6, [r4, #92]	; 0x5c
 
-     np = msg_ps->ext_name_ptr;
 
-  8035d54:	f894 9060 	ldrb.w	r9, [r4, #96]	; 0x60
 
-  8035d58:	f8d4 8064 	ldr.w	r8, [r4, #100]	; 0x64
 
-     /* translate answer into a known lifeform */
 
-     en->get_object_def_a(request_id, np.ident_len, np.ident, &msg_ps->ext_object_def);
 
-  8035d5c:	6bb7      	ldr	r7, [r6, #56]	; 0x38
 
-  8035d5e:	4649      	mov	r1, r9
 
-  8035d60:	4642      	mov	r2, r8
 
-  8035d62:	f104 0368 	add.w	r3, r4, #104	; 0x68
 
-  8035d66:	47b8      	blx	r7
 
-     if (msg_ps->ext_object_def.instance != MIB_OBJECT_NONE)
 
-  8035d68:	f894 0068 	ldrb.w	r0, [r4, #104]	; 0x68
 
-  8035d6c:	b160      	cbz	r0, 8035d88 <snmp_msg_event+0x4e0>
 
-     {
 
-       msg_ps->state = SNMP_MSG_EXTERNAL_SET_VALUE;
 
-  8035d6e:	230b      	movs	r3, #11
 
-  8035d70:	f884 305a 	strb.w	r3, [r4, #90]	; 0x5a
 
-       en->set_value_q(request_id, &msg_ps->ext_object_def,
 
-                       msg_ps->vb_ptr->value_len,msg_ps->vb_ptr->value);
 
-  8035d74:	f8d4 30fc 	ldr.w	r3, [r4, #252]	; 0xfc
 
-     /* translate answer into a known lifeform */
 
-     en->get_object_def_a(request_id, np.ident_len, np.ident, &msg_ps->ext_object_def);
 
-     if (msg_ps->ext_object_def.instance != MIB_OBJECT_NONE)
 
-     {
 
-       msg_ps->state = SNMP_MSG_EXTERNAL_SET_VALUE;
 
-       en->set_value_q(request_id, &msg_ps->ext_object_def,
 
-  8035d78:	6b76      	ldr	r6, [r6, #52]	; 0x34
 
-  8035d7a:	7c5a      	ldrb	r2, [r3, #17]
 
-  8035d7c:	695b      	ldr	r3, [r3, #20]
 
-  8035d7e:	4628      	mov	r0, r5
 
-  8035d80:	f104 0168 	add.w	r1, r4, #104	; 0x68
 
-  8035d84:	47b0      	blx	r6
 
-  8035d86:	e08c      	b.n	8035ea2 <snmp_msg_event+0x5fa>
 
-                       msg_ps->vb_ptr->value_len,msg_ps->vb_ptr->value);
 
-     }
 
-     else
 
-     {
 
-       en->get_object_def_pc(request_id, np.ident_len, np.ident);
 
-  8035d88:	4649      	mov	r1, r9
 
-  8035d8a:	6cb3      	ldr	r3, [r6, #72]	; 0x48
 
-  8035d8c:	4642      	mov	r2, r8
 
-  8035d8e:	4798      	blx	r3
 
-       /* set_value failed, object has disappeared for some odd reason?? */
 
-       snmp_error_response(msg_ps,SNMP_ES_GENERROR);
 
-  8035d90:	4620      	mov	r0, r4
 
-  8035d92:	2105      	movs	r1, #5
 
-  8035d94:	f7ff fd31 	bl	80357fa <snmp_error_response>
 
-  8035d98:	e083      	b.n	8035ea2 <snmp_msg_event+0x5fa>
 
-     }
 
-   }
 
-   else if (msg_ps->state == SNMP_MSG_EXTERNAL_SET_VALUE)
 
-  8035d9a:	2b0b      	cmp	r3, #11
 
-  8035d9c:	f040 8081 	bne.w	8035ea2 <snmp_msg_event+0x5fa>
 
-     struct mib_external_node *en;
 
-     /** set_value_a() */
 
-     en = msg_ps->ext_mib_node;
 
-     en->set_value_a(request_id, &msg_ps->ext_object_def,
 
-       msg_ps->vb_ptr->value_len, msg_ps->vb_ptr->value);
 
-  8035da0:	f8d4 30fc 	ldr.w	r3, [r4, #252]	; 0xfc
 
-   {
 
-     struct mib_external_node *en;
 
-     /** set_value_a() */
 
-     en = msg_ps->ext_mib_node;
 
-     en->set_value_a(request_id, &msg_ps->ext_object_def,
 
-  8035da4:	6de2      	ldr	r2, [r4, #92]	; 0x5c
 
-  8035da6:	f104 0168 	add.w	r1, r4, #104	; 0x68
 
-  8035daa:	6c55      	ldr	r5, [r2, #68]	; 0x44
 
-  8035dac:	7c5a      	ldrb	r2, [r3, #17]
 
-  8035dae:	695b      	ldr	r3, [r3, #20]
 
-  8035db0:	47a8      	blx	r5
 
-       msg_ps->vb_ptr->value_len, msg_ps->vb_ptr->value);
 
-     /** @todo use set_value_pc() if toobig */
 
-     msg_ps->state = SNMP_MSG_INTERNAL_SET_VALUE;
 
-  8035db2:	2306      	movs	r3, #6
 
-  8035db4:	f884 305a 	strb.w	r3, [r4, #90]	; 0x5a
 
-     msg_ps->vb_idx += 1;
 
-  8035db8:	f894 30f8 	ldrb.w	r3, [r4, #248]	; 0xf8
 
-  8035dbc:	3301      	adds	r3, #1
 
-  8035dbe:	f884 30f8 	strb.w	r3, [r4, #248]	; 0xf8
 
-  8035dc2:	e06e      	b.n	8035ea2 <snmp_msg_event+0x5fa>
 
-          (msg_ps->vb_idx < msg_ps->invb.count))
 
-   {
 
-     struct mib_node *mn;
 
-     struct snmp_name_ptr np;
 
-     if (msg_ps->vb_idx == 0)
 
-  8035dc4:	b912      	cbnz	r2, 8035dcc <snmp_msg_event+0x524>
 
-     {
 
-       msg_ps->vb_ptr = msg_ps->invb.head;
 
-  8035dc6:	f8d4 3100 	ldr.w	r3, [r4, #256]	; 0x100
 
-  8035dca:	e002      	b.n	8035dd2 <snmp_msg_event+0x52a>
 
-     }
 
-     else
 
-     {
 
-       msg_ps->vb_ptr = msg_ps->vb_ptr->next;
 
-  8035dcc:	f8d4 30fc 	ldr.w	r3, [r4, #252]	; 0xfc
 
-  8035dd0:	681b      	ldr	r3, [r3, #0]
 
-  8035dd2:	f8c4 30fc 	str.w	r3, [r4, #252]	; 0xfc
 
-     }
 
-     /** test object identifier for .iso.org.dod.internet prefix */
 
-     if (snmp_iso_prefix_tst(msg_ps->vb_ptr->ident_len,  msg_ps->vb_ptr->ident))
 
-  8035dd6:	f8d4 30fc 	ldr.w	r3, [r4, #252]	; 0xfc
 
-  8035dda:	7a18      	ldrb	r0, [r3, #8]
 
-  8035ddc:	68d9      	ldr	r1, [r3, #12]
 
-  8035dde:	f7ff fc47 	bl	8035670 <snmp_iso_prefix_tst>
 
-  8035de2:	2800      	cmp	r0, #0
 
-  8035de4:	d058      	beq.n	8035e98 <snmp_msg_event+0x5f0>
 
-     {
 
-       mn = snmp_search_tree((struct mib_node*)&internet, msg_ps->vb_ptr->ident_len - 4,
 
-  8035de6:	f8d4 30fc 	ldr.w	r3, [r4, #252]	; 0xfc
 
-  8035dea:	4817      	ldr	r0, [pc, #92]	; (8035e48 <snmp_msg_event+0x5a0>)
 
-  8035dec:	7a19      	ldrb	r1, [r3, #8]
 
-  8035dee:	68da      	ldr	r2, [r3, #12]
 
-  8035df0:	3904      	subs	r1, #4
 
-  8035df2:	b2c9      	uxtb	r1, r1
 
-  8035df4:	3210      	adds	r2, #16
 
-  8035df6:	466b      	mov	r3, sp
 
-  8035df8:	f7ff f9ec 	bl	80351d4 <snmp_search_tree>
 
-                              msg_ps->vb_ptr->ident + 4, &np);
 
-       if (mn != NULL)
 
-  8035dfc:	4605      	mov	r5, r0
 
-  8035dfe:	2800      	cmp	r0, #0
 
-  8035e00:	d04a      	beq.n	8035e98 <snmp_msg_event+0x5f0>
 
-       {
 
-         if (mn->node_type == MIB_NODE_EX)
 
-  8035e02:	7c03      	ldrb	r3, [r0, #16]
 
-  8035e04:	2b05      	cmp	r3, #5
 
-  8035e06:	d110      	bne.n	8035e2a <snmp_msg_event+0x582>
 
-           /* external object */
 
-           struct mib_external_node *en = (struct mib_external_node*)mn;
 
-           msg_ps->state = SNMP_MSG_EXTERNAL_GET_OBJDEF;
 
-           /* save en && args in msg_ps!! */
 
-           msg_ps->ext_mib_node = en;
 
-  8035e08:	65e0      	str	r0, [r4, #92]	; 0x5c
 
-         if (mn->node_type == MIB_NODE_EX)
 
-         {
 
-           /* external object */
 
-           struct mib_external_node *en = (struct mib_external_node*)mn;
 
-           msg_ps->state = SNMP_MSG_EXTERNAL_GET_OBJDEF;
 
-  8035e0a:	2307      	movs	r3, #7
 
-           /* save en && args in msg_ps!! */
 
-           msg_ps->ext_mib_node = en;
 
-           msg_ps->ext_name_ptr = np;
 
-  8035e0c:	e896 0003 	ldmia.w	r6, {r0, r1}
 
-         if (mn->node_type == MIB_NODE_EX)
 
-         {
 
-           /* external object */
 
-           struct mib_external_node *en = (struct mib_external_node*)mn;
 
-           msg_ps->state = SNMP_MSG_EXTERNAL_GET_OBJDEF;
 
-  8035e10:	f884 305a 	strb.w	r3, [r4, #90]	; 0x5a
 
-           /* save en && args in msg_ps!! */
 
-           msg_ps->ext_mib_node = en;
 
-           msg_ps->ext_name_ptr = np;
 
-  8035e14:	4b0d      	ldr	r3, [pc, #52]	; (8035e4c <snmp_msg_event+0x5a4>)
 
-           en->get_object_def_q(en->addr_inf, request_id, np.ident_len, np.ident);
 
-  8035e16:	f89d 2000 	ldrb.w	r2, [sp]
 
-           struct mib_external_node *en = (struct mib_external_node*)mn;
 
-           msg_ps->state = SNMP_MSG_EXTERNAL_GET_OBJDEF;
 
-           /* save en && args in msg_ps!! */
 
-           msg_ps->ext_mib_node = en;
 
-           msg_ps->ext_name_ptr = np;
 
-  8035e1a:	e883 0003 	stmia.w	r3, {r0, r1}
 
-           en->get_object_def_q(en->addr_inf, request_id, np.ident_len, np.ident);
 
-  8035e1e:	2100      	movs	r1, #0
 
-  8035e20:	6aaf      	ldr	r7, [r5, #40]	; 0x28
 
-  8035e22:	6968      	ldr	r0, [r5, #20]
 
-  8035e24:	9b01      	ldr	r3, [sp, #4]
 
-  8035e26:	47b8      	blx	r7
 
-  8035e28:	e03d      	b.n	8035ea6 <snmp_msg_event+0x5fe>
 
-         else
 
-         {
 
-           /* internal object */
 
-           struct obj_def object_def;
 
-           msg_ps->state = SNMP_MSG_INTERNAL_GET_OBJDEF;
 
-  8035e2a:	2702      	movs	r7, #2
 
-  8035e2c:	f884 705a 	strb.w	r7, [r4, #90]	; 0x5a
 
-           mn->get_object_def(np.ident_len, np.ident, &object_def);
 
-  8035e30:	6803      	ldr	r3, [r0, #0]
 
-  8035e32:	9901      	ldr	r1, [sp, #4]
 
-  8035e34:	f89d 0000 	ldrb.w	r0, [sp]
 
-  8035e38:	aa02      	add	r2, sp, #8
 
-  8035e3a:	4798      	blx	r3
 
-           if (object_def.instance != MIB_OBJECT_NONE)
 
-  8035e3c:	f89d 3008 	ldrb.w	r3, [sp, #8]
 
-  8035e40:	2b00      	cmp	r3, #0
 
-  8035e42:	f040 80b9 	bne.w	8035fb8 <snmp_msg_event+0x710>
 
-  8035e46:	e027      	b.n	8035e98 <snmp_msg_event+0x5f0>
 
-  8035e48:	08045834 	.word	0x08045834
 
-  8035e4c:	2000f750 	.word	0x2000f750
 
-  8035e50:	2000f7fc 	.word	0x2000f7fc
 
-  8035e54:	2000f6f0 	.word	0x2000f6f0
 
-  8035e58:	2000f758 	.word	0x2000f758
 
-           {
 
-             msg_ps->state = SNMP_MSG_INTERNAL_SET_TEST;
 
-             if (object_def.access & MIB_ACCESS_WRITE)
 
-             {
 
-               if ((object_def.asn_type == msg_ps->vb_ptr->value_type) &&
 
-  8035e5c:	f8d4 30fc 	ldr.w	r3, [r4, #252]	; 0xfc
 
-  8035e60:	f89d 100a 	ldrb.w	r1, [sp, #10]
 
-  8035e64:	7c1a      	ldrb	r2, [r3, #16]
 
-  8035e66:	4291      	cmp	r1, r2
 
-  8035e68:	d10e      	bne.n	8035e88 <snmp_msg_event+0x5e0>
 
-                   (mn->set_test(&object_def,msg_ps->vb_ptr->value_len,msg_ps->vb_ptr->value) != 0))
 
-  8035e6a:	68af      	ldr	r7, [r5, #8]
 
-  8035e6c:	7c59      	ldrb	r1, [r3, #17]
 
-  8035e6e:	695a      	ldr	r2, [r3, #20]
 
-  8035e70:	a802      	add	r0, sp, #8
 
-  8035e72:	47b8      	blx	r7
 
-           {
 
-             msg_ps->state = SNMP_MSG_INTERNAL_SET_TEST;
 
-             if (object_def.access & MIB_ACCESS_WRITE)
 
-             {
 
-               if ((object_def.asn_type == msg_ps->vb_ptr->value_type) &&
 
-  8035e74:	b140      	cbz	r0, 8035e88 <snmp_msg_event+0x5e0>
 
-                   (mn->set_test(&object_def,msg_ps->vb_ptr->value_len,msg_ps->vb_ptr->value) != 0))
 
-               {
 
-                 msg_ps->state = SNMP_MSG_SEARCH_OBJ;
 
-  8035e76:	2301      	movs	r3, #1
 
-  8035e78:	f884 305a 	strb.w	r3, [r4, #90]	; 0x5a
 
-                 msg_ps->vb_idx += 1;
 
-  8035e7c:	f894 30f8 	ldrb.w	r3, [r4, #248]	; 0xf8
 
-  8035e80:	3301      	adds	r3, #1
 
-  8035e82:	f884 30f8 	strb.w	r3, [r4, #248]	; 0xf8
 
-  8035e86:	e006      	b.n	8035e96 <snmp_msg_event+0x5ee>
 
-               }
 
-               else
 
-               {
 
-                 /* bad value */
 
-                 snmp_error_response(msg_ps,SNMP_ES_BADVALUE);
 
-  8035e88:	4854      	ldr	r0, [pc, #336]	; (8035fdc <snmp_msg_event+0x734>)
 
-  8035e8a:	2103      	movs	r1, #3
 
-  8035e8c:	e001      	b.n	8035e92 <snmp_msg_event+0x5ea>
 
-               }
 
-             }
 
-             else
 
-             {
 
-               /* object not available for set */
 
-               snmp_error_response(msg_ps,SNMP_ES_NOSUCHNAME);
 
-  8035e8e:	4853      	ldr	r0, [pc, #332]	; (8035fdc <snmp_msg_event+0x734>)
 
-  8035e90:	4639      	mov	r1, r7
 
-  8035e92:	f7ff fcb2 	bl	80357fa <snmp_error_response>
 
-     }
 
-     else
 
-     {
 
-       mn = NULL;
 
-     }
 
-     if (mn == NULL)
 
-  8035e96:	b935      	cbnz	r5, 8035ea6 <snmp_msg_event+0x5fe>
 
-     {
 
-       /* mn == NULL, noSuchName */
 
-       snmp_error_response(msg_ps,SNMP_ES_NOSUCHNAME);
 
-  8035e98:	4850      	ldr	r0, [pc, #320]	; (8035fdc <snmp_msg_event+0x734>)
 
-  8035e9a:	2102      	movs	r1, #2
 
-  8035e9c:	f7ff fcad 	bl	80357fa <snmp_error_response>
 
-  8035ea0:	e001      	b.n	8035ea6 <snmp_msg_event+0x5fe>
 
-     msg_ps->state = SNMP_MSG_INTERNAL_SET_VALUE;
 
-     msg_ps->vb_idx += 1;
 
-   }
 
-   /* test all values before setting */
 
-   while ((msg_ps->state == SNMP_MSG_SEARCH_OBJ) &&
 
-  8035ea2:	4c4e      	ldr	r4, [pc, #312]	; (8035fdc <snmp_msg_event+0x734>)
 
-       msg_ps->vb_ptr = msg_ps->vb_ptr->next;
 
-     }
 
-     /** test object identifier for .iso.org.dod.internet prefix */
 
-     if (snmp_iso_prefix_tst(msg_ps->vb_ptr->ident_len,  msg_ps->vb_ptr->ident))
 
-     {
 
-       mn = snmp_search_tree((struct mib_node*)&internet, msg_ps->vb_ptr->ident_len - 4,
 
-  8035ea4:	466e      	mov	r6, sp
 
-     msg_ps->state = SNMP_MSG_INTERNAL_SET_VALUE;
 
-     msg_ps->vb_idx += 1;
 
-   }
 
-   /* test all values before setting */
 
-   while ((msg_ps->state == SNMP_MSG_SEARCH_OBJ) &&
 
-  8035ea6:	f894 205a 	ldrb.w	r2, [r4, #90]	; 0x5a
 
-  8035eaa:	4b4c      	ldr	r3, [pc, #304]	; (8035fdc <snmp_msg_event+0x734>)
 
-  8035eac:	2a01      	cmp	r2, #1
 
-  8035eae:	d151      	bne.n	8035f54 <snmp_msg_event+0x6ac>
 
-          (msg_ps->vb_idx < msg_ps->invb.count))
 
-  8035eb0:	f894 20f8 	ldrb.w	r2, [r4, #248]	; 0xf8
 
-  8035eb4:	f894 1108 	ldrb.w	r1, [r4, #264]	; 0x108
 
-     msg_ps->state = SNMP_MSG_INTERNAL_SET_VALUE;
 
-     msg_ps->vb_idx += 1;
 
-   }
 
-   /* test all values before setting */
 
-   while ((msg_ps->state == SNMP_MSG_SEARCH_OBJ) &&
 
-  8035eb8:	428a      	cmp	r2, r1
 
-  8035eba:	d383      	bcc.n	8035dc4 <snmp_msg_event+0x51c>
 
-  8035ebc:	e088      	b.n	8035fd0 <snmp_msg_event+0x728>
 
-   }
 
-   if ((msg_ps->state == SNMP_MSG_SEARCH_OBJ) &&
 
-       (msg_ps->vb_idx == msg_ps->invb.count))
 
-   {
 
-     msg_ps->vb_idx = 0;
 
-  8035ebe:	2200      	movs	r2, #0
 
-  8035ec0:	f883 20f8 	strb.w	r2, [r3, #248]	; 0xf8
 
-     msg_ps->state = SNMP_MSG_INTERNAL_SET_VALUE;
 
-  8035ec4:	2206      	movs	r2, #6
 
-  8035ec6:	f883 205a 	strb.w	r2, [r3, #90]	; 0x5a
 
-  8035eca:	e043      	b.n	8035f54 <snmp_msg_event+0x6ac>
 
-          (msg_ps->vb_idx < msg_ps->invb.count))
 
-   {
 
-     struct mib_node *mn;
 
-     struct snmp_name_ptr np;
 
-     if (msg_ps->vb_idx == 0)
 
-  8035ecc:	b913      	cbnz	r3, 8035ed4 <snmp_msg_event+0x62c>
 
-     {
 
-       msg_ps->vb_ptr = msg_ps->invb.head;
 
-  8035ece:	f8d4 3100 	ldr.w	r3, [r4, #256]	; 0x100
 
-  8035ed2:	e002      	b.n	8035eda <snmp_msg_event+0x632>
 
-     }
 
-     else
 
-     {
 
-       msg_ps->vb_ptr = msg_ps->vb_ptr->next;
 
-  8035ed4:	f8d4 30fc 	ldr.w	r3, [r4, #252]	; 0xfc
 
-  8035ed8:	681b      	ldr	r3, [r3, #0]
 
-  8035eda:	f8c4 30fc 	str.w	r3, [r4, #252]	; 0xfc
 
-     }
 
-     /* skip iso prefix test, was done previously while settesting() */
 
-     mn = snmp_search_tree((struct mib_node*)&internet, msg_ps->vb_ptr->ident_len - 4,
 
-  8035ede:	f8d4 30fc 	ldr.w	r3, [r4, #252]	; 0xfc
 
-  8035ee2:	483f      	ldr	r0, [pc, #252]	; (8035fe0 <snmp_msg_event+0x738>)
 
-  8035ee4:	7a19      	ldrb	r1, [r3, #8]
 
-  8035ee6:	68da      	ldr	r2, [r3, #12]
 
-  8035ee8:	3904      	subs	r1, #4
 
-  8035eea:	b2c9      	uxtb	r1, r1
 
-  8035eec:	3210      	adds	r2, #16
 
-  8035eee:	466b      	mov	r3, sp
 
-  8035ef0:	f7ff f970 	bl	80351d4 <snmp_search_tree>
 
-                            msg_ps->vb_ptr->ident + 4, &np);
 
-     /* check if object is still available
 
-        (e.g. external hot-plug thingy present?) */
 
-     if (mn != NULL)
 
-  8035ef4:	4605      	mov	r5, r0
 
-  8035ef6:	2800      	cmp	r0, #0
 
-  8035ef8:	d02e      	beq.n	8035f58 <snmp_msg_event+0x6b0>
 
-     {
 
-       if (mn->node_type == MIB_NODE_EX)
 
-  8035efa:	7c03      	ldrb	r3, [r0, #16]
 
-  8035efc:	2b05      	cmp	r3, #5
 
-  8035efe:	d110      	bne.n	8035f22 <snmp_msg_event+0x67a>
 
-         /* external object */
 
-         struct mib_external_node *en = (struct mib_external_node*)mn;
 
-         msg_ps->state = SNMP_MSG_EXTERNAL_GET_OBJDEF_S;
 
-         /* save en && args in msg_ps!! */
 
-         msg_ps->ext_mib_node = en;
 
-  8035f00:	65e0      	str	r0, [r4, #92]	; 0x5c
 
-       if (mn->node_type == MIB_NODE_EX)
 
-       {
 
-         /* external object */
 
-         struct mib_external_node *en = (struct mib_external_node*)mn;
 
-         msg_ps->state = SNMP_MSG_EXTERNAL_GET_OBJDEF_S;
 
-  8035f02:	230a      	movs	r3, #10
 
-         /* save en && args in msg_ps!! */
 
-         msg_ps->ext_mib_node = en;
 
-         msg_ps->ext_name_ptr = np;
 
-  8035f04:	e896 0003 	ldmia.w	r6, {r0, r1}
 
-       if (mn->node_type == MIB_NODE_EX)
 
-       {
 
-         /* external object */
 
-         struct mib_external_node *en = (struct mib_external_node*)mn;
 
-         msg_ps->state = SNMP_MSG_EXTERNAL_GET_OBJDEF_S;
 
-  8035f08:	f884 305a 	strb.w	r3, [r4, #90]	; 0x5a
 
-         /* save en && args in msg_ps!! */
 
-         msg_ps->ext_mib_node = en;
 
-         msg_ps->ext_name_ptr = np;
 
-  8035f0c:	4b35      	ldr	r3, [pc, #212]	; (8035fe4 <snmp_msg_event+0x73c>)
 
-         en->get_object_def_q(en->addr_inf, request_id, np.ident_len, np.ident);
 
-  8035f0e:	f89d 2000 	ldrb.w	r2, [sp]
 
-         struct mib_external_node *en = (struct mib_external_node*)mn;
 
-         msg_ps->state = SNMP_MSG_EXTERNAL_GET_OBJDEF_S;
 
-         /* save en && args in msg_ps!! */
 
-         msg_ps->ext_mib_node = en;
 
-         msg_ps->ext_name_ptr = np;
 
-  8035f12:	e883 0003 	stmia.w	r3, {r0, r1}
 
-         en->get_object_def_q(en->addr_inf, request_id, np.ident_len, np.ident);
 
-  8035f16:	2100      	movs	r1, #0
 
-  8035f18:	6aaf      	ldr	r7, [r5, #40]	; 0x28
 
-  8035f1a:	6968      	ldr	r0, [r5, #20]
 
-  8035f1c:	9b01      	ldr	r3, [sp, #4]
 
-  8035f1e:	47b8      	blx	r7
 
-  8035f20:	e01a      	b.n	8035f58 <snmp_msg_event+0x6b0>
 
-       else
 
-       {
 
-         /* internal object */
 
-         struct obj_def object_def;
 
-         msg_ps->state = SNMP_MSG_INTERNAL_GET_OBJDEF_S;
 
-  8035f22:	2305      	movs	r3, #5
 
-  8035f24:	f884 305a 	strb.w	r3, [r4, #90]	; 0x5a
 
-         mn->get_object_def(np.ident_len, np.ident, &object_def);
 
-  8035f28:	6803      	ldr	r3, [r0, #0]
 
-  8035f2a:	9901      	ldr	r1, [sp, #4]
 
-  8035f2c:	f89d 0000 	ldrb.w	r0, [sp]
 
-  8035f30:	aa02      	add	r2, sp, #8
 
-  8035f32:	4798      	blx	r3
 
-         msg_ps->state = SNMP_MSG_INTERNAL_SET_VALUE;
 
-  8035f34:	2306      	movs	r3, #6
 
-  8035f36:	f884 305a 	strb.w	r3, [r4, #90]	; 0x5a
 
-         mn->set_value(&object_def,msg_ps->vb_ptr->value_len,msg_ps->vb_ptr->value);
 
-  8035f3a:	f8d4 30fc 	ldr.w	r3, [r4, #252]	; 0xfc
 
-  8035f3e:	68ed      	ldr	r5, [r5, #12]
 
-  8035f40:	7c59      	ldrb	r1, [r3, #17]
 
-  8035f42:	695a      	ldr	r2, [r3, #20]
 
-  8035f44:	a802      	add	r0, sp, #8
 
-  8035f46:	47a8      	blx	r5
 
-         msg_ps->vb_idx += 1;
 
-  8035f48:	f894 30f8 	ldrb.w	r3, [r4, #248]	; 0xf8
 
-  8035f4c:	3301      	adds	r3, #1
 
-  8035f4e:	f884 30f8 	strb.w	r3, [r4, #248]	; 0xf8
 
-  8035f52:	e001      	b.n	8035f58 <snmp_msg_event+0x6b0>
 
-     msg_ps->vb_idx = 0;
 
-     msg_ps->state = SNMP_MSG_INTERNAL_SET_VALUE;
 
-   }
 
-   /* set all values "atomically" (be as "atomic" as possible) */
 
-   while ((msg_ps->state == SNMP_MSG_INTERNAL_SET_VALUE) &&
 
-  8035f54:	4c21      	ldr	r4, [pc, #132]	; (8035fdc <snmp_msg_event+0x734>)
 
-     else
 
-     {
 
-       msg_ps->vb_ptr = msg_ps->vb_ptr->next;
 
-     }
 
-     /* skip iso prefix test, was done previously while settesting() */
 
-     mn = snmp_search_tree((struct mib_node*)&internet, msg_ps->vb_ptr->ident_len - 4,
 
-  8035f56:	466e      	mov	r6, sp
 
-     msg_ps->vb_idx = 0;
 
-     msg_ps->state = SNMP_MSG_INTERNAL_SET_VALUE;
 
-   }
 
-   /* set all values "atomically" (be as "atomic" as possible) */
 
-   while ((msg_ps->state == SNMP_MSG_INTERNAL_SET_VALUE) &&
 
-  8035f58:	f894 305a 	ldrb.w	r3, [r4, #90]	; 0x5a
 
-  8035f5c:	4d1f      	ldr	r5, [pc, #124]	; (8035fdc <snmp_msg_event+0x734>)
 
-  8035f5e:	2b06      	cmp	r3, #6
 
-  8035f60:	d139      	bne.n	8035fd6 <snmp_msg_event+0x72e>
 
-          (msg_ps->vb_idx < msg_ps->invb.count))
 
-  8035f62:	f894 30f8 	ldrb.w	r3, [r4, #248]	; 0xf8
 
-  8035f66:	f894 2108 	ldrb.w	r2, [r4, #264]	; 0x108
 
-     msg_ps->vb_idx = 0;
 
-     msg_ps->state = SNMP_MSG_INTERNAL_SET_VALUE;
 
-   }
 
-   /* set all values "atomically" (be as "atomic" as possible) */
 
-   while ((msg_ps->state == SNMP_MSG_INTERNAL_SET_VALUE) &&
 
-  8035f6a:	4293      	cmp	r3, r2
 
-  8035f6c:	d3ae      	bcc.n	8035ecc <snmp_msg_event+0x624>
 
-  8035f6e:	e031      	b.n	8035fd4 <snmp_msg_event+0x72c>
 
-       (msg_ps->vb_idx == msg_ps->invb.count))
 
-   {
 
-     /* simply echo the input if we can set it
 
-        @todo do we need to return the actual value?
 
-        e.g. if value is silently modified or behaves sticky? */
 
-     msg_ps->outvb = msg_ps->invb;
 
-  8035f70:	f505 7280 	add.w	r2, r5, #256	; 0x100
 
-  8035f74:	ca07      	ldmia	r2, {r0, r1, r2}
 
-  8035f76:	f505 7386 	add.w	r3, r5, #268	; 0x10c
 
-  8035f7a:	e883 0007 	stmia.w	r3, {r0, r1, r2}
 
-     msg_ps->invb.head = NULL;
 
-  8035f7e:	2300      	movs	r3, #0
 
-  8035f80:	f8c5 3100 	str.w	r3, [r5, #256]	; 0x100
 
-     msg_ps->invb.tail = NULL;
 
-  8035f84:	f8c5 3104 	str.w	r3, [r5, #260]	; 0x104
 
-     msg_ps->invb.count = 0;
 
-  8035f88:	f885 3108 	strb.w	r3, [r5, #264]	; 0x108
 
-     snmp_ok_response(msg_ps);
 
-  8035f8c:	4628      	mov	r0, r5
 
-  8035f8e:	f7ff fc6f 	bl	8035870 <snmp_ok_response>
 
-  8035f92:	e020      	b.n	8035fd6 <snmp_msg_event+0x72e>
 
-       }
 
-     }
 
-     if (mn == NULL)
 
-     {
 
-       /* mn == NULL, noSuchName */
 
-       snmp_error_response(msg_ps,SNMP_ES_NOSUCHNAME);
 
-  8035f94:	4811      	ldr	r0, [pc, #68]	; (8035fdc <snmp_msg_event+0x734>)
 
-  8035f96:	2102      	movs	r1, #2
 
-  8035f98:	f7ff fc2f 	bl	80357fa <snmp_error_response>
 
-  8035f9c:	e556      	b.n	8035a4c <snmp_msg_event+0x1a4>
 
-           }
 
-           if (mn != NULL)
 
-           {
 
-             struct snmp_varbind *vb;
 
-             msg_ps->state = SNMP_MSG_INTERNAL_GET_VALUE;
 
-  8035f9e:	2303      	movs	r3, #3
 
-             /* allocate output varbind */
 
-             vb = (struct snmp_varbind *)memp_malloc(MEMP_SNMP_VARBIND);
 
-  8035fa0:	200c      	movs	r0, #12
 
-           }
 
-           if (mn != NULL)
 
-           {
 
-             struct snmp_varbind *vb;
 
-             msg_ps->state = SNMP_MSG_INTERNAL_GET_VALUE;
 
-  8035fa2:	f884 305a 	strb.w	r3, [r4, #90]	; 0x5a
 
-             /* allocate output varbind */
 
-             vb = (struct snmp_varbind *)memp_malloc(MEMP_SNMP_VARBIND);
 
-  8035fa6:	f7f9 fe11 	bl	802fbcc <memp_malloc>
 
-             if (vb != NULL)
 
-  8035faa:	4605      	mov	r5, r0
 
-  8035fac:	2800      	cmp	r0, #0
 
-  8035fae:	f47f ae31 	bne.w	8035c14 <snmp_msg_event+0x36c>
 
-  8035fb2:	e669      	b.n	8035c88 <snmp_msg_event+0x3e0>
 
-     {
 
-       /* mn == NULL, noSuchName */
 
-       snmp_error_response(msg_ps,SNMP_ES_NOSUCHNAME);
 
-     }
 
-   }
 
-   if ((msg_ps->state == SNMP_MSG_SEARCH_OBJ) &&
 
-  8035fb4:	d10f      	bne.n	8035fd6 <snmp_msg_event+0x72e>
 
-  8035fb6:	e555      	b.n	8035a64 <snmp_msg_event+0x1bc>
 
-             /* search failed, object id points to unknown object (nosuchname) */
 
-             mn = NULL;
 
-           }
 
-           if (mn != NULL)
 
-           {
 
-             msg_ps->state = SNMP_MSG_INTERNAL_SET_TEST;
 
-  8035fb8:	2304      	movs	r3, #4
 
-  8035fba:	f884 305a 	strb.w	r3, [r4, #90]	; 0x5a
 
-             if (object_def.access & MIB_ACCESS_WRITE)
 
-  8035fbe:	f89d 3009 	ldrb.w	r3, [sp, #9]
 
-  8035fc2:	f003 0302 	and.w	r3, r3, #2
 
-  8035fc6:	b2db      	uxtb	r3, r3
 
-  8035fc8:	2b00      	cmp	r3, #0
 
-  8035fca:	f47f af47 	bne.w	8035e5c <snmp_msg_event+0x5b4>
 
-  8035fce:	e75e      	b.n	8035e8e <snmp_msg_event+0x5e6>
 
-       /* mn == NULL, noSuchName */
 
-       snmp_error_response(msg_ps,SNMP_ES_NOSUCHNAME);
 
-     }
 
-   }
 
-   if ((msg_ps->state == SNMP_MSG_SEARCH_OBJ) &&
 
-  8035fd0:	d1c0      	bne.n	8035f54 <snmp_msg_event+0x6ac>
 
-  8035fd2:	e774      	b.n	8035ebe <snmp_msg_event+0x616>
 
-         mn->set_value(&object_def,msg_ps->vb_ptr->value_len,msg_ps->vb_ptr->value);
 
-         msg_ps->vb_idx += 1;
 
-       }
 
-     }
 
-   }
 
-   if ((msg_ps->state == SNMP_MSG_INTERNAL_SET_VALUE) &&
 
-  8035fd4:	d0cc      	beq.n	8035f70 <snmp_msg_event+0x6c8>
 
-     else if(msg_ps->rt == SNMP_ASN1_PDU_SET_REQ)
 
-     {
 
-       snmp_msg_set_event(request_id, msg_ps);
 
-     }
 
-   }
 
- }
 
-  8035fd6:	b027      	add	sp, #156	; 0x9c
 
-  8035fd8:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
 
-  8035fdc:	2000f6f0 	.word	0x2000f6f0
 
-  8035fe0:	08045834 	.word	0x08045834
 
-  8035fe4:	2000f750 	.word	0x2000f750
 
- 08035fe8 <snmp_pdu_dec_varbindlist>:
 
-   return ERR_OK;
 
- }
 
- static err_t
 
- snmp_pdu_dec_varbindlist(struct pbuf *p, u16_t ofs, u16_t *ofs_ret, struct snmp_msg_pstat *m_stat)
 
- {
 
-  8035fe8:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-  8035fec:	b0c7      	sub	sp, #284	; 0x11c
 
-   u16_t len, vb_len;
 
-   u8_t  len_octets;
 
-   u8_t type;
 
-   /* variable binding list */
 
-   snmp_asn1_dec_type(p, ofs, &type);
 
-  8035fee:	f10d 070b 	add.w	r7, sp, #11
 
-   return ERR_OK;
 
- }
 
- static err_t
 
- snmp_pdu_dec_varbindlist(struct pbuf *p, u16_t ofs, u16_t *ofs_ret, struct snmp_msg_pstat *m_stat)
 
- {
 
-  8035ff2:	468a      	mov	sl, r1
 
-  8035ff4:	4691      	mov	r9, r2
 
-   u16_t len, vb_len;
 
-   u8_t  len_octets;
 
-   u8_t type;
 
-   /* variable binding list */
 
-   snmp_asn1_dec_type(p, ofs, &type);
 
-  8035ff6:	463a      	mov	r2, r7
 
-   return ERR_OK;
 
- }
 
- static err_t
 
- snmp_pdu_dec_varbindlist(struct pbuf *p, u16_t ofs, u16_t *ofs_ret, struct snmp_msg_pstat *m_stat)
 
- {
 
-  8035ff8:	4604      	mov	r4, r0
 
-  8035ffa:	461d      	mov	r5, r3
 
-   u8_t  len_octets;
 
-   u8_t type;
 
-   /* variable binding list */
 
-   snmp_asn1_dec_type(p, ofs, &type);
 
-   derr = snmp_asn1_dec_length(p, ofs+1, &len_octets, &vb_len);
 
-  8035ffc:	f10d 060e 	add.w	r6, sp, #14
 
-   u16_t len, vb_len;
 
-   u8_t  len_octets;
 
-   u8_t type;
 
-   /* variable binding list */
 
-   snmp_asn1_dec_type(p, ofs, &type);
 
-  8036000:	f7fd f920 	bl	8033244 <snmp_asn1_dec_type>
 
-   derr = snmp_asn1_dec_length(p, ofs+1, &len_octets, &vb_len);
 
-  8036004:	f10a 0101 	add.w	r1, sl, #1
 
-  8036008:	4620      	mov	r0, r4
 
-  803600a:	b289      	uxth	r1, r1
 
-  803600c:	f10d 020a 	add.w	r2, sp, #10
 
-  8036010:	4633      	mov	r3, r6
 
-  8036012:	f7fd f92c 	bl	803326e <snmp_asn1_dec_length>
 
-   if ((derr != ERR_OK) ||
 
-  8036016:	b910      	cbnz	r0, 803601e <snmp_pdu_dec_varbindlist+0x36>
 
-  8036018:	783b      	ldrb	r3, [r7, #0]
 
-  803601a:	2b30      	cmp	r3, #48	; 0x30
 
-  803601c:	d002      	beq.n	8036024 <snmp_pdu_dec_varbindlist+0x3c>
 
-       (type != (SNMP_ASN1_UNIV | SNMP_ASN1_CONSTR | SNMP_ASN1_SEQ)))
 
-   {
 
-     snmp_inc_snmpinasnparseerrs();
 
-  803601e:	f7fe ff21 	bl	8034e64 <snmp_inc_snmpinasnparseerrs>
 
-  8036022:	e02b      	b.n	803607c <snmp_pdu_dec_varbindlist+0x94>
 
-     return ERR_ARG;
 
-   }
 
-   ofs += (1 + len_octets);
 
-  8036024:	f89d 800a 	ldrb.w	r8, [sp, #10]
 
-   /* start with empty list */
 
-   m_stat->invb.count = 0;
 
-  8036028:	f885 0108 	strb.w	r0, [r5, #264]	; 0x108
 
-       (type != (SNMP_ASN1_UNIV | SNMP_ASN1_CONSTR | SNMP_ASN1_SEQ)))
 
-   {
 
-     snmp_inc_snmpinasnparseerrs();
 
-     return ERR_ARG;
 
-   }
 
-   ofs += (1 + len_octets);
 
-  803602c:	f108 0801 	add.w	r8, r8, #1
 
-  8036030:	44d0      	add	r8, sl
 
-  8036032:	fa1f f888 	uxth.w	r8, r8
 
-   /* start with empty list */
 
-   m_stat->invb.count = 0;
 
-   m_stat->invb.head = NULL;
 
-  8036036:	f8c5 0100 	str.w	r0, [r5, #256]	; 0x100
 
-   m_stat->invb.tail = NULL;
 
-  803603a:	f8c5 0104 	str.w	r0, [r5, #260]	; 0x104
 
-   while (vb_len > 0)
 
-  803603e:	e118      	b.n	8036272 <snmp_pdu_dec_varbindlist+0x28a>
 
-   {
 
-     struct snmp_obj_id oid, oid_value;
 
-     struct snmp_varbind *vb;
 
-     snmp_asn1_dec_type(p, ofs, &type);
 
-  8036040:	4641      	mov	r1, r8
 
-  8036042:	463a      	mov	r2, r7
 
-  8036044:	4620      	mov	r0, r4
 
-  8036046:	f7fd f8fd 	bl	8033244 <snmp_asn1_dec_type>
 
-     derr = snmp_asn1_dec_length(p, ofs+1, &len_octets, &len);
 
-  803604a:	f108 0101 	add.w	r1, r8, #1
 
-  803604e:	4620      	mov	r0, r4
 
-  8036050:	b289      	uxth	r1, r1
 
-  8036052:	f10d 020a 	add.w	r2, sp, #10
 
-  8036056:	ab03      	add	r3, sp, #12
 
-  8036058:	f7fd f909 	bl	803326e <snmp_asn1_dec_length>
 
-     if ((derr != ERR_OK) ||
 
-  803605c:	b940      	cbnz	r0, 8036070 <snmp_pdu_dec_varbindlist+0x88>
 
-  803605e:	783b      	ldrb	r3, [r7, #0]
 
-  8036060:	2b30      	cmp	r3, #48	; 0x30
 
-  8036062:	d105      	bne.n	8036070 <snmp_pdu_dec_varbindlist+0x88>
 
-         (type != (SNMP_ASN1_UNIV | SNMP_ASN1_CONSTR | SNMP_ASN1_SEQ)) ||
 
-         (len == 0) || (len > vb_len))
 
-  8036064:	f8bd 200c 	ldrh.w	r2, [sp, #12]
 
-     struct snmp_varbind *vb;
 
-     snmp_asn1_dec_type(p, ofs, &type);
 
-     derr = snmp_asn1_dec_length(p, ofs+1, &len_octets, &len);
 
-     if ((derr != ERR_OK) ||
 
-         (type != (SNMP_ASN1_UNIV | SNMP_ASN1_CONSTR | SNMP_ASN1_SEQ)) ||
 
-  8036068:	b112      	cbz	r2, 8036070 <snmp_pdu_dec_varbindlist+0x88>
 
-         (len == 0) || (len > vb_len))
 
-  803606a:	8833      	ldrh	r3, [r6, #0]
 
-  803606c:	429a      	cmp	r2, r3
 
-  803606e:	d907      	bls.n	8036080 <snmp_pdu_dec_varbindlist+0x98>
 
-     {
 
-       snmp_inc_snmpinasnparseerrs();
 
-  8036070:	f7fe fef8 	bl	8034e64 <snmp_inc_snmpinasnparseerrs>
 
-       /* free varbinds (if available) */
 
-       snmp_varbind_list_free(&m_stat->invb);
 
-  8036074:	f505 7080 	add.w	r0, r5, #256	; 0x100
 
-  8036078:	f7ff fbb1 	bl	80357de <snmp_varbind_list_free>
 
-  803607c:	20f2      	movs	r0, #242	; 0xf2
 
-  803607e:	e109      	b.n	8036294 <snmp_pdu_dec_varbindlist+0x2ac>
 
-       return ERR_ARG;
 
-     }
 
-     ofs += (1 + len_octets);
 
-  8036080:	f89d 200a 	ldrb.w	r2, [sp, #10]
 
-  8036084:	4490      	add	r8, r2
 
-  8036086:	fa1f f888 	uxth.w	r8, r8
 
-  803608a:	f108 0a01 	add.w	sl, r8, #1
 
-     vb_len -= (1 + len_octets);
 
-  803608e:	43d2      	mvns	r2, r2
 
-       snmp_inc_snmpinasnparseerrs();
 
-       /* free varbinds (if available) */
 
-       snmp_varbind_list_free(&m_stat->invb);
 
-       return ERR_ARG;
 
-     }
 
-     ofs += (1 + len_octets);
 
-  8036090:	fa1f fa8a 	uxth.w	sl, sl
 
-     vb_len -= (1 + len_octets);
 
-  8036094:	189b      	adds	r3, r3, r2
 
-     snmp_asn1_dec_type(p, ofs, &type);
 
-  8036096:	4651      	mov	r1, sl
 
-  8036098:	463a      	mov	r2, r7
 
-  803609a:	4620      	mov	r0, r4
 
-       /* free varbinds (if available) */
 
-       snmp_varbind_list_free(&m_stat->invb);
 
-       return ERR_ARG;
 
-     }
 
-     ofs += (1 + len_octets);
 
-     vb_len -= (1 + len_octets);
 
-  803609c:	8033      	strh	r3, [r6, #0]
 
-     snmp_asn1_dec_type(p, ofs, &type);
 
-  803609e:	f7fd f8d1 	bl	8033244 <snmp_asn1_dec_type>
 
-     derr = snmp_asn1_dec_length(p, ofs+1, &len_octets, &len);
 
-  80360a2:	f108 0102 	add.w	r1, r8, #2
 
-  80360a6:	4620      	mov	r0, r4
 
-  80360a8:	b289      	uxth	r1, r1
 
-  80360aa:	f10d 020a 	add.w	r2, sp, #10
 
-  80360ae:	ab03      	add	r3, sp, #12
 
-  80360b0:	f7fd f8dd 	bl	803326e <snmp_asn1_dec_length>
 
-     if ((derr != ERR_OK) || (type != (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OBJ_ID)))
 
-  80360b4:	2800      	cmp	r0, #0
 
-  80360b6:	d1db      	bne.n	8036070 <snmp_pdu_dec_varbindlist+0x88>
 
-  80360b8:	783b      	ldrb	r3, [r7, #0]
 
-  80360ba:	2b06      	cmp	r3, #6
 
-  80360bc:	d1d8      	bne.n	8036070 <snmp_pdu_dec_varbindlist+0x88>
 
-       snmp_inc_snmpinasnparseerrs();
 
-       /* free varbinds (if available) */
 
-       snmp_varbind_list_free(&m_stat->invb);
 
-       return ERR_ARG;
 
-     }
 
-     derr = snmp_asn1_dec_oid(p, ofs + 1 + len_octets, len, &oid);
 
-  80360be:	f89d 100a 	ldrb.w	r1, [sp, #10]
 
-  80360c2:	f8bd 200c 	ldrh.w	r2, [sp, #12]
 
-  80360c6:	3101      	adds	r1, #1
 
-  80360c8:	4451      	add	r1, sl
 
-  80360ca:	4620      	mov	r0, r4
 
-  80360cc:	b289      	uxth	r1, r1
 
-  80360ce:	ab04      	add	r3, sp, #16
 
-  80360d0:	f7fd f9fc 	bl	80334cc <snmp_asn1_dec_oid>
 
-     if (derr != ERR_OK)
 
-  80360d4:	2800      	cmp	r0, #0
 
-  80360d6:	d1cb      	bne.n	8036070 <snmp_pdu_dec_varbindlist+0x88>
 
-       snmp_inc_snmpinasnparseerrs();
 
-       /* free varbinds (if available) */
 
-       snmp_varbind_list_free(&m_stat->invb);
 
-       return ERR_ARG;
 
-     }
 
-     ofs += (1 + len_octets + len);
 
-  80360d8:	f89d 300a 	ldrb.w	r3, [sp, #10]
 
-  80360dc:	f8bd 200c 	ldrh.w	r2, [sp, #12]
 
-  80360e0:	1899      	adds	r1, r3, r2
 
-  80360e2:	448a      	add	sl, r1
 
-  80360e4:	fa1f fa8a 	uxth.w	sl, sl
 
-     vb_len -= (1 + len_octets + len);
 
-  80360e8:	8831      	ldrh	r1, [r6, #0]
 
-       snmp_inc_snmpinasnparseerrs();
 
-       /* free varbinds (if available) */
 
-       snmp_varbind_list_free(&m_stat->invb);
 
-       return ERR_ARG;
 
-     }
 
-     ofs += (1 + len_octets + len);
 
-  80360ea:	f10a 0801 	add.w	r8, sl, #1
 
-     vb_len -= (1 + len_octets + len);
 
-  80360ee:	1a8a      	subs	r2, r1, r2
 
-       snmp_inc_snmpinasnparseerrs();
 
-       /* free varbinds (if available) */
 
-       snmp_varbind_list_free(&m_stat->invb);
 
-       return ERR_ARG;
 
-     }
 
-     ofs += (1 + len_octets + len);
 
-  80360f0:	fa1f f888 	uxth.w	r8, r8
 
-     vb_len -= (1 + len_octets + len);
 
-  80360f4:	43db      	mvns	r3, r3
 
-  80360f6:	18d3      	adds	r3, r2, r3
 
-     snmp_asn1_dec_type(p, ofs, &type);
 
-  80360f8:	4641      	mov	r1, r8
 
-  80360fa:	463a      	mov	r2, r7
 
-  80360fc:	4620      	mov	r0, r4
 
-       /* free varbinds (if available) */
 
-       snmp_varbind_list_free(&m_stat->invb);
 
-       return ERR_ARG;
 
-     }
 
-     ofs += (1 + len_octets + len);
 
-     vb_len -= (1 + len_octets + len);
 
-  80360fe:	8033      	strh	r3, [r6, #0]
 
-     snmp_asn1_dec_type(p, ofs, &type);
 
-  8036100:	f7fd f8a0 	bl	8033244 <snmp_asn1_dec_type>
 
-     derr = snmp_asn1_dec_length(p, ofs+1, &len_octets, &len);
 
-  8036104:	f10a 0102 	add.w	r1, sl, #2
 
-  8036108:	4620      	mov	r0, r4
 
-  803610a:	b289      	uxth	r1, r1
 
-  803610c:	f10d 020a 	add.w	r2, sp, #10
 
-  8036110:	ab03      	add	r3, sp, #12
 
-  8036112:	f7fd f8ac 	bl	803326e <snmp_asn1_dec_length>
 
-     if (derr != ERR_OK)
 
-  8036116:	2800      	cmp	r0, #0
 
-  8036118:	d1aa      	bne.n	8036070 <snmp_pdu_dec_varbindlist+0x88>
 
-       /* free varbinds (if available) */
 
-       snmp_varbind_list_free(&m_stat->invb);
 
-       return ERR_ARG;
 
-     }
 
-     switch (type)
 
-  803611a:	7839      	ldrb	r1, [r7, #0]
 
-  803611c:	2906      	cmp	r1, #6
 
-  803611e:	d047      	beq.n	80361b0 <snmp_pdu_dec_varbindlist+0x1c8>
 
-  8036120:	d805      	bhi.n	803612e <snmp_pdu_dec_varbindlist+0x146>
 
-  8036122:	2904      	cmp	r1, #4
 
-  8036124:	d036      	beq.n	8036194 <snmp_pdu_dec_varbindlist+0x1ac>
 
-  8036126:	d839      	bhi.n	803619c <snmp_pdu_dec_varbindlist+0x1b4>
 
-  8036128:	2902      	cmp	r1, #2
 
-  803612a:	d1a1      	bne.n	8036070 <snmp_pdu_dec_varbindlist+0x88>
 
-  803612c:	e009      	b.n	8036142 <snmp_pdu_dec_varbindlist+0x15a>
 
-  803612e:	2943      	cmp	r1, #67	; 0x43
 
-  8036130:	d804      	bhi.n	803613c <snmp_pdu_dec_varbindlist+0x154>
 
-  8036132:	2941      	cmp	r1, #65	; 0x41
 
-  8036134:	d219      	bcs.n	803616a <snmp_pdu_dec_varbindlist+0x182>
 
-  8036136:	2940      	cmp	r1, #64	; 0x40
 
-  8036138:	d19a      	bne.n	8036070 <snmp_pdu_dec_varbindlist+0x88>
 
-  803613a:	e069      	b.n	8036210 <snmp_pdu_dec_varbindlist+0x228>
 
-  803613c:	2944      	cmp	r1, #68	; 0x44
 
-  803613e:	d197      	bne.n	8036070 <snmp_pdu_dec_varbindlist+0x88>
 
-  8036140:	e028      	b.n	8036194 <snmp_pdu_dec_varbindlist+0x1ac>
 
-     {
 
-       case (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG):
 
-         vb = snmp_varbind_alloc(&oid, type, sizeof(s32_t));
 
-  8036142:	a804      	add	r0, sp, #16
 
-  8036144:	2204      	movs	r2, #4
 
-  8036146:	f7ff faf7 	bl	8035738 <snmp_varbind_alloc>
 
-         if (vb != NULL)
 
-  803614a:	4683      	mov	fp, r0
 
-  803614c:	2800      	cmp	r0, #0
 
-  803614e:	d08f      	beq.n	8036070 <snmp_pdu_dec_varbindlist+0x88>
 
-         {
 
-           s32_t *vptr = (s32_t*)vb->value;
 
-           derr = snmp_asn1_dec_s32t(p, ofs + 1 + len_octets, len, vptr);
 
-  8036150:	f89d 100a 	ldrb.w	r1, [sp, #10]
 
-  8036154:	f8bd 200c 	ldrh.w	r2, [sp, #12]
 
-  8036158:	f8db 3014 	ldr.w	r3, [fp, #20]
 
-  803615c:	3101      	adds	r1, #1
 
-  803615e:	4441      	add	r1, r8
 
-  8036160:	4620      	mov	r0, r4
 
-  8036162:	b289      	uxth	r1, r1
 
-  8036164:	f7fd f959 	bl	803341a <snmp_asn1_dec_s32t>
 
-  8036168:	e06b      	b.n	8036242 <snmp_pdu_dec_varbindlist+0x25a>
 
-         }
 
-         break;
 
-       case (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_COUNTER):
 
-       case (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_GAUGE):
 
-       case (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_TIMETICKS):
 
-         vb = snmp_varbind_alloc(&oid, type, sizeof(u32_t));
 
-  803616a:	a804      	add	r0, sp, #16
 
-  803616c:	2204      	movs	r2, #4
 
-  803616e:	f7ff fae3 	bl	8035738 <snmp_varbind_alloc>
 
-         if (vb != NULL)
 
-  8036172:	4683      	mov	fp, r0
 
-  8036174:	2800      	cmp	r0, #0
 
-  8036176:	f43f af7b 	beq.w	8036070 <snmp_pdu_dec_varbindlist+0x88>
 
-         {
 
-           u32_t *vptr = (u32_t*)vb->value;
 
-           derr = snmp_asn1_dec_u32t(p, ofs + 1 + len_octets, len, vptr);
 
-  803617a:	f89d 100a 	ldrb.w	r1, [sp, #10]
 
-  803617e:	f8bd 200c 	ldrh.w	r2, [sp, #12]
 
-  8036182:	f8db 3014 	ldr.w	r3, [fp, #20]
 
-  8036186:	3101      	adds	r1, #1
 
-  8036188:	4441      	add	r1, r8
 
-  803618a:	4620      	mov	r0, r4
 
-  803618c:	b289      	uxth	r1, r1
 
-  803618e:	f7fd f8f0 	bl	8033372 <snmp_asn1_dec_u32t>
 
-  8036192:	e056      	b.n	8036242 <snmp_pdu_dec_varbindlist+0x25a>
 
-         }
 
-         break;
 
-       case (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OC_STR):
 
-       case (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_OPAQUE):
 
-         LWIP_ASSERT("invalid length", len <= 0xff);
 
-         vb = snmp_varbind_alloc(&oid, type, (u8_t)len);
 
-  8036194:	a804      	add	r0, sp, #16
 
-  8036196:	f89d 200c 	ldrb.w	r2, [sp, #12]
 
-  803619a:	e03f      	b.n	803621c <snmp_pdu_dec_varbindlist+0x234>
 
-         {
 
-           derr = ERR_ARG;
 
-         }
 
-         break;
 
-       case (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_NUL):
 
-         vb = snmp_varbind_alloc(&oid, type, 0);
 
-  803619c:	2105      	movs	r1, #5
 
-  803619e:	a804      	add	r0, sp, #16
 
-  80361a0:	2200      	movs	r2, #0
 
-  80361a2:	f7ff fac9 	bl	8035738 <snmp_varbind_alloc>
 
-         if (vb != NULL)
 
-  80361a6:	4601      	mov	r1, r0
 
-  80361a8:	2800      	cmp	r0, #0
 
-  80361aa:	f43f af61 	beq.w	8036070 <snmp_pdu_dec_varbindlist+0x88>
 
-  80361ae:	e02a      	b.n	8036206 <snmp_pdu_dec_varbindlist+0x21e>
 
-         {
 
-           derr = ERR_ARG;
 
-         }
 
-         break;
 
-       case (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OBJ_ID):
 
-         derr = snmp_asn1_dec_oid(p, ofs + 1 + len_octets, len, &oid_value);
 
-  80361b0:	f89d 100a 	ldrb.w	r1, [sp, #10]
 
-  80361b4:	f8bd 200c 	ldrh.w	r2, [sp, #12]
 
-  80361b8:	3101      	adds	r1, #1
 
-  80361ba:	4441      	add	r1, r8
 
-  80361bc:	4620      	mov	r0, r4
 
-  80361be:	b289      	uxth	r1, r1
 
-  80361c0:	ab25      	add	r3, sp, #148	; 0x94
 
-  80361c2:	f7fd f983 	bl	80334cc <snmp_asn1_dec_oid>
 
-         if (derr == ERR_OK)
 
-  80361c6:	2800      	cmp	r0, #0
 
-  80361c8:	f47f af52 	bne.w	8036070 <snmp_pdu_dec_varbindlist+0x88>
 
-         {
 
-           vb = snmp_varbind_alloc(&oid, type, oid_value.len * sizeof(s32_t));
 
-  80361cc:	f89d 2094 	ldrb.w	r2, [sp, #148]	; 0x94
 
-  80361d0:	7839      	ldrb	r1, [r7, #0]
 
-  80361d2:	0092      	lsls	r2, r2, #2
 
-  80361d4:	a804      	add	r0, sp, #16
 
-  80361d6:	f002 02fc 	and.w	r2, r2, #252	; 0xfc
 
-  80361da:	f7ff faad 	bl	8035738 <snmp_varbind_alloc>
 
-           if (vb != NULL)
 
-  80361de:	4601      	mov	r1, r0
 
-  80361e0:	2800      	cmp	r0, #0
 
-  80361e2:	f43f af45 	beq.w	8036070 <snmp_pdu_dec_varbindlist+0x88>
 
-           {
 
-             u8_t i = oid_value.len;
 
-  80361e6:	f89d 3094 	ldrb.w	r3, [sp, #148]	; 0x94
 
-             s32_t *vptr = (s32_t*)vb->value;
 
-  80361ea:	6940      	ldr	r0, [r0, #20]
 
-             while(i > 0)
 
-  80361ec:	e009      	b.n	8036202 <snmp_pdu_dec_varbindlist+0x21a>
 
-             {
 
-               i--;
 
-  80361ee:	3b01      	subs	r3, #1
 
-  80361f0:	b2db      	uxtb	r3, r3
 
-               vptr[i] = oid_value.id[i];
 
-  80361f2:	f50d 7e8c 	add.w	lr, sp, #280	; 0x118
 
-  80361f6:	eb0e 0283 	add.w	r2, lr, r3, lsl #2
 
-  80361fa:	f852 2c80 	ldr.w	r2, [r2, #-128]
 
-  80361fe:	f840 2023 	str.w	r2, [r0, r3, lsl #2]
 
-           if (vb != NULL)
 
-           {
 
-             u8_t i = oid_value.len;
 
-             s32_t *vptr = (s32_t*)vb->value;
 
-             while(i > 0)
 
-  8036202:	2b00      	cmp	r3, #0
 
-  8036204:	d1f3      	bne.n	80361ee <snmp_pdu_dec_varbindlist+0x206>
 
-             {
 
-               i--;
 
-               vptr[i] = oid_value.id[i];
 
-             }
 
-             snmp_varbind_tail_add(&m_stat->invb, vb);
 
-  8036206:	f505 7080 	add.w	r0, r5, #256	; 0x100
 
-  803620a:	f7ff fb41 	bl	8035890 <snmp_varbind_tail_add>
 
-  803620e:	e022      	b.n	8036256 <snmp_pdu_dec_varbindlist+0x26e>
 
-             derr = ERR_ARG;
 
-           }
 
-         }
 
-         break;
 
-       case (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_IPADDR):
 
-         if (len == 4)
 
-  8036210:	f8bd 200c 	ldrh.w	r2, [sp, #12]
 
-  8036214:	2a04      	cmp	r2, #4
 
-  8036216:	f47f af2b 	bne.w	8036070 <snmp_pdu_dec_varbindlist+0x88>
 
-         {
 
-           /* must be exactly 4 octets! */
 
-           vb = snmp_varbind_alloc(&oid, type, 4);
 
-  803621a:	a804      	add	r0, sp, #16
 
-  803621c:	f7ff fa8c 	bl	8035738 <snmp_varbind_alloc>
 
-           if (vb != NULL)
 
-  8036220:	4683      	mov	fp, r0
 
-  8036222:	2800      	cmp	r0, #0
 
-  8036224:	f43f af24 	beq.w	8036070 <snmp_pdu_dec_varbindlist+0x88>
 
-           {
 
-             derr = snmp_asn1_dec_raw(p, ofs + 1 + len_octets, len, vb->value_len, (u8_t*)vb->value);
 
-  8036228:	f89d 100a 	ldrb.w	r1, [sp, #10]
 
-  803622c:	7c43      	ldrb	r3, [r0, #17]
 
-  803622e:	6940      	ldr	r0, [r0, #20]
 
-  8036230:	f8bd 200c 	ldrh.w	r2, [sp, #12]
 
-  8036234:	9000      	str	r0, [sp, #0]
 
-  8036236:	3101      	adds	r1, #1
 
-  8036238:	4441      	add	r1, r8
 
-  803623a:	4620      	mov	r0, r4
 
-  803623c:	b289      	uxth	r1, r1
 
-  803623e:	f7fd f9e1 	bl	8033604 <snmp_asn1_dec_raw>
 
-  8036242:	4682      	mov	sl, r0
 
-             snmp_varbind_tail_add(&m_stat->invb, vb);
 
-  8036244:	4659      	mov	r1, fp
 
-  8036246:	f505 7080 	add.w	r0, r5, #256	; 0x100
 
-  803624a:	f7ff fb21 	bl	8035890 <snmp_varbind_tail_add>
 
-         break;
 
-       default:
 
-         derr = ERR_ARG;
 
-         break;
 
-     }
 
-     if (derr != ERR_OK)
 
-  803624e:	f1ba 0f00 	cmp.w	sl, #0
 
-  8036252:	f47f af0d 	bne.w	8036070 <snmp_pdu_dec_varbindlist+0x88>
 
-       snmp_inc_snmpinasnparseerrs();
 
-       /* free varbinds (if available) */
 
-       snmp_varbind_list_free(&m_stat->invb);
 
-       return ERR_ARG;
 
-     }
 
-     ofs += (1 + len_octets + len);
 
-  8036256:	f8bd 200c 	ldrh.w	r2, [sp, #12]
 
-  803625a:	f89d 300a 	ldrb.w	r3, [sp, #10]
 
-  803625e:	1c51      	adds	r1, r2, #1
 
-  8036260:	1859      	adds	r1, r3, r1
 
-  8036262:	4488      	add	r8, r1
 
-     vb_len -= (1 + len_octets + len);
 
-  8036264:	8831      	ldrh	r1, [r6, #0]
 
-  8036266:	43db      	mvns	r3, r3
 
-  8036268:	1a8a      	subs	r2, r1, r2
 
-  803626a:	18d3      	adds	r3, r2, r3
 
-       snmp_inc_snmpinasnparseerrs();
 
-       /* free varbinds (if available) */
 
-       snmp_varbind_list_free(&m_stat->invb);
 
-       return ERR_ARG;
 
-     }
 
-     ofs += (1 + len_octets + len);
 
-  803626c:	fa1f f888 	uxth.w	r8, r8
 
-     vb_len -= (1 + len_octets + len);
 
-  8036270:	8033      	strh	r3, [r6, #0]
 
-   /* start with empty list */
 
-   m_stat->invb.count = 0;
 
-   m_stat->invb.head = NULL;
 
-   m_stat->invb.tail = NULL;
 
-   while (vb_len > 0)
 
-  8036272:	8833      	ldrh	r3, [r6, #0]
 
-  8036274:	2b00      	cmp	r3, #0
 
-  8036276:	f47f aee3 	bne.w	8036040 <snmp_pdu_dec_varbindlist+0x58>
 
-     }
 
-     ofs += (1 + len_octets + len);
 
-     vb_len -= (1 + len_octets + len);
 
-   }
 
-   if (m_stat->rt == SNMP_ASN1_PDU_SET_REQ)
 
-  803627a:	7aab      	ldrb	r3, [r5, #10]
 
-  803627c:	f895 0108 	ldrb.w	r0, [r5, #264]	; 0x108
 
-  8036280:	2b03      	cmp	r3, #3
 
-  8036282:	d102      	bne.n	803628a <snmp_pdu_dec_varbindlist+0x2a2>
 
-   {
 
-     snmp_add_snmpintotalsetvars(m_stat->invb.count);
 
-  8036284:	f7fe fe26 	bl	8034ed4 <snmp_add_snmpintotalsetvars>
 
-  8036288:	e001      	b.n	803628e <snmp_pdu_dec_varbindlist+0x2a6>
 
-   }
 
-   else
 
-   {
 
-     snmp_add_snmpintotalreqvars(m_stat->invb.count);
 
-  803628a:	f7fe fe1b 	bl	8034ec4 <snmp_add_snmpintotalreqvars>
 
-   }
 
-   *ofs_ret = ofs;
 
-  803628e:	f8a9 8000 	strh.w	r8, [r9]
 
-   return ERR_OK;
 
-  8036292:	2000      	movs	r0, #0
 
- }
 
-  8036294:	b240      	sxtb	r0, r0
 
-  8036296:	b047      	add	sp, #284	; 0x11c
 
-  8036298:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
- 0803629c <snmp_recv>:
 
- /* lwIP UDP receive callback function */
 
- static void
 
- snmp_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, ip_addr_t *addr, u16_t port)
 
- {
 
-  803629c:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
 
-   LWIP_UNUSED_ARG(arg);
 
-   /* traverse input message process list, look for SNMP_MSG_EMPTY */
 
-   msg_ps = &msg_input_list[0];
 
-   req_idx = 0;
 
-   while ((req_idx < SNMP_CONCURRENT_REQUESTS) && (msg_ps->state != SNMP_MSG_EMPTY))
 
-  80362a0:	4da3      	ldr	r5, [pc, #652]	; (8036530 <snmp_recv+0x294>)
 
- snmp_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, ip_addr_t *addr, u16_t port)
 
- {
 
-   volatile struct snmp_msg_pstat *msg_ps;
 
-   u8_t req_idx;
 
-   err_t err_ret;
 
-   u16_t payload_len = p->tot_len;
 
-  80362a2:	8917      	ldrh	r7, [r2, #8]
 
-   LWIP_UNUSED_ARG(arg);
 
-   /* traverse input message process list, look for SNMP_MSG_EMPTY */
 
-   msg_ps = &msg_input_list[0];
 
-   req_idx = 0;
 
-   while ((req_idx < SNMP_CONCURRENT_REQUESTS) && (msg_ps->state != SNMP_MSG_EMPTY))
 
-  80362a4:	f895 605a 	ldrb.w	r6, [r5, #90]	; 0x5a
 
- /* lwIP UDP receive callback function */
 
- static void
 
- snmp_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, ip_addr_t *addr, u16_t port)
 
- {
 
-  80362a8:	b087      	sub	sp, #28
 
-  80362aa:	4699      	mov	r9, r3
 
-   volatile struct snmp_msg_pstat *msg_ps;
 
-   u8_t req_idx;
 
-   err_t err_ret;
 
-   u16_t payload_len = p->tot_len;
 
-   u16_t payload_ofs = 0;
 
-   u16_t varbind_ofs = 0;
 
-  80362ac:	2300      	movs	r3, #0
 
- /* lwIP UDP receive callback function */
 
- static void
 
- snmp_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, ip_addr_t *addr, u16_t port)
 
- {
 
-  80362ae:	4688      	mov	r8, r1
 
-  80362b0:	4614      	mov	r4, r2
 
-   volatile struct snmp_msg_pstat *msg_ps;
 
-   u8_t req_idx;
 
-   err_t err_ret;
 
-   u16_t payload_len = p->tot_len;
 
-   u16_t payload_ofs = 0;
 
-   u16_t varbind_ofs = 0;
 
-  80362b2:	f8ad 3010 	strh.w	r3, [sp, #16]
 
-   LWIP_UNUSED_ARG(arg);
 
-   /* traverse input message process list, look for SNMP_MSG_EMPTY */
 
-   msg_ps = &msg_input_list[0];
 
-   req_idx = 0;
 
-   while ((req_idx < SNMP_CONCURRENT_REQUESTS) && (msg_ps->state != SNMP_MSG_EMPTY))
 
-  80362b6:	2e00      	cmp	r6, #0
 
-  80362b8:	f000 81aa 	beq.w	8036610 <snmp_recv+0x374>
 
-     msg_ps++;
 
-   }
 
-   if (req_idx == SNMP_CONCURRENT_REQUESTS)
 
-   {
 
-     /* exceeding number of concurrent requests */
 
-     pbuf_free(p);
 
-  80362bc:	4620      	mov	r0, r4
 
-  80362be:	f7f9 fda5 	bl	802fe0c <pbuf_free>
 
-  80362c2:	e1d6      	b.n	8036672 <snmp_recv+0x3d6>
 
-   ofs_base = ofs;
 
-   snmp_asn1_dec_type(p, ofs, &type);
 
-   derr = snmp_asn1_dec_length(p, ofs+1, &len_octets, &len);
 
-   if ((derr != ERR_OK) ||
 
-       (pdu_len != (1 + len_octets + len)) ||
 
-  80362c4:	f89d 600e 	ldrb.w	r6, [sp, #14]
 
-  80362c8:	f8bd 3012 	ldrh.w	r3, [sp, #18]
 
-  80362cc:	1c75      	adds	r5, r6, #1
 
-  80362ce:	18eb      	adds	r3, r5, r3
 
-   s32_t version;
 
-   ofs_base = ofs;
 
-   snmp_asn1_dec_type(p, ofs, &type);
 
-   derr = snmp_asn1_dec_length(p, ofs+1, &len_octets, &len);
 
-   if ((derr != ERR_OK) ||
 
-  80362d0:	429f      	cmp	r7, r3
 
-  80362d2:	f040 80c4 	bne.w	803645e <snmp_recv+0x1c2>
 
-       (pdu_len != (1 + len_octets + len)) ||
 
-  80362d6:	f89d 300f 	ldrb.w	r3, [sp, #15]
 
-  80362da:	2b30      	cmp	r3, #48	; 0x30
 
-  80362dc:	d000      	beq.n	80362e0 <snmp_recv+0x44>
 
-  80362de:	e0be      	b.n	803645e <snmp_recv+0x1c2>
 
-       (type != (SNMP_ASN1_UNIV | SNMP_ASN1_CONSTR | SNMP_ASN1_SEQ)))
 
-   {
 
-     snmp_inc_snmpinasnparseerrs();
 
-     return ERR_ARG;
 
-   }
 
-   ofs += (1 + len_octets);
 
-  80362e0:	b2ad      	uxth	r5, r5
 
-   snmp_asn1_dec_type(p, ofs, &type);
 
-  80362e2:	4629      	mov	r1, r5
 
-  80362e4:	f10d 020f 	add.w	r2, sp, #15
 
-  80362e8:	4620      	mov	r0, r4
 
-  80362ea:	f7fc ffab 	bl	8033244 <snmp_asn1_dec_type>
 
-   derr = snmp_asn1_dec_length(p, ofs+1, &len_octets, &len);
 
-  80362ee:	4620      	mov	r0, r4
 
-  80362f0:	1cb1      	adds	r1, r6, #2
 
-  80362f2:	f10d 020e 	add.w	r2, sp, #14
 
-  80362f6:	f10d 0312 	add.w	r3, sp, #18
 
-  80362fa:	f7fc ffb8 	bl	803326e <snmp_asn1_dec_length>
 
-   if ((derr != ERR_OK) || (type != (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG)))
 
-  80362fe:	2800      	cmp	r0, #0
 
-  8036300:	f040 80ad 	bne.w	803645e <snmp_recv+0x1c2>
 
-  8036304:	f89d 300f 	ldrb.w	r3, [sp, #15]
 
-  8036308:	2b02      	cmp	r3, #2
 
-  803630a:	f040 80a8 	bne.w	803645e <snmp_recv+0x1c2>
 
-   {
 
-     /* can't decode or no integer (version) */
 
-     snmp_inc_snmpinasnparseerrs();
 
-     return ERR_ARG;
 
-   }
 
-   derr = snmp_asn1_dec_s32t(p, ofs + 1 + len_octets, len, &version);
 
-  803630e:	f89d 100e 	ldrb.w	r1, [sp, #14]
 
-  8036312:	f8bd 2012 	ldrh.w	r2, [sp, #18]
 
-  8036316:	3101      	adds	r1, #1
 
-  8036318:	4620      	mov	r0, r4
 
-  803631a:	1869      	adds	r1, r5, r1
 
-  803631c:	ab05      	add	r3, sp, #20
 
-  803631e:	f7fd f87c 	bl	803341a <snmp_asn1_dec_s32t>
 
-   if (derr != ERR_OK)
 
-  8036322:	2800      	cmp	r0, #0
 
-  8036324:	f040 809b 	bne.w	803645e <snmp_recv+0x1c2>
 
-   {
 
-     /* can't decode */
 
-     snmp_inc_snmpinasnparseerrs();
 
-     return ERR_ARG;
 
-   }
 
-   if (version != 0)
 
-  8036328:	9b05      	ldr	r3, [sp, #20]
 
-  803632a:	b113      	cbz	r3, 8036332 <snmp_recv+0x96>
 
-   {
 
-     /* not version 1 */
 
-     snmp_inc_snmpinbadversions();
 
-  803632c:	f7fe fd8a 	bl	8034e44 <snmp_inc_snmpinbadversions>
 
-  8036330:	e7c4      	b.n	80362bc <snmp_recv+0x20>
 
-     return ERR_ARG;
 
-   }
 
-   ofs += (1 + len_octets + len);
 
-  8036332:	f89d 200e 	ldrb.w	r2, [sp, #14]
 
-  8036336:	f8bd 3012 	ldrh.w	r3, [sp, #18]
 
-  803633a:	18d3      	adds	r3, r2, r3
 
-  803633c:	18ed      	adds	r5, r5, r3
 
-  803633e:	b2ad      	uxth	r5, r5
 
-  8036340:	1c6e      	adds	r6, r5, #1
 
-  8036342:	b2b6      	uxth	r6, r6
 
-   snmp_asn1_dec_type(p, ofs, &type);
 
-  8036344:	4631      	mov	r1, r6
 
-  8036346:	f10d 020f 	add.w	r2, sp, #15
 
-  803634a:	4620      	mov	r0, r4
 
-  803634c:	f7fc ff7a 	bl	8033244 <snmp_asn1_dec_type>
 
-   derr = snmp_asn1_dec_length(p, ofs+1, &len_octets, &len);
 
-  8036350:	1ca9      	adds	r1, r5, #2
 
-  8036352:	4620      	mov	r0, r4
 
-  8036354:	b289      	uxth	r1, r1
 
-  8036356:	f10d 020e 	add.w	r2, sp, #14
 
-  803635a:	f10d 0312 	add.w	r3, sp, #18
 
-  803635e:	f7fc ff86 	bl	803326e <snmp_asn1_dec_length>
 
-   if ((derr != ERR_OK) || (type != (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OC_STR)))
 
-  8036362:	2800      	cmp	r0, #0
 
-  8036364:	d17b      	bne.n	803645e <snmp_recv+0x1c2>
 
-  8036366:	f89d 300f 	ldrb.w	r3, [sp, #15]
 
-  803636a:	2b04      	cmp	r3, #4
 
-  803636c:	d177      	bne.n	803645e <snmp_recv+0x1c2>
 
-   {
 
-     /* can't decode or no octet string (community) */
 
-     snmp_inc_snmpinasnparseerrs();
 
-     return ERR_ARG;
 
-   }
 
-   derr = snmp_asn1_dec_raw(p, ofs + 1 + len_octets, len, SNMP_COMMUNITY_STR_LEN, m_stat->community);
 
-  803636e:	f89d 100e 	ldrb.w	r1, [sp, #14]
 
-  8036372:	4d70      	ldr	r5, [pc, #448]	; (8036534 <snmp_recv+0x298>)
 
-  8036374:	f8bd 2012 	ldrh.w	r2, [sp, #18]
 
-  8036378:	9500      	str	r5, [sp, #0]
 
-  803637a:	3101      	adds	r1, #1
 
-  803637c:	1871      	adds	r1, r6, r1
 
-  803637e:	4620      	mov	r0, r4
 
-  8036380:	b289      	uxth	r1, r1
 
-  8036382:	2340      	movs	r3, #64	; 0x40
 
-  8036384:	f7fd f93e 	bl	8033604 <snmp_asn1_dec_raw>
 
-   if (derr != ERR_OK)
 
-  8036388:	2800      	cmp	r0, #0
 
-  803638a:	d168      	bne.n	803645e <snmp_recv+0x1c2>
 
-   {
 
-     snmp_inc_snmpinasnparseerrs();
 
-     return ERR_ARG;
 
-   }
 
-   /* add zero terminator */
 
-   len = ((len < (SNMP_COMMUNITY_STR_LEN))?(len):(SNMP_COMMUNITY_STR_LEN));
 
-  803638c:	f8bd 3012 	ldrh.w	r3, [sp, #18]
 
-   m_stat->community[len] = 0;
 
-  8036390:	f1a5 0218 	sub.w	r2, r5, #24
 
-   {
 
-     snmp_inc_snmpinasnparseerrs();
 
-     return ERR_ARG;
 
-   }
 
-   /* add zero terminator */
 
-   len = ((len < (SNMP_COMMUNITY_STR_LEN))?(len):(SNMP_COMMUNITY_STR_LEN));
 
-  8036394:	2b40      	cmp	r3, #64	; 0x40
 
-  8036396:	bf28      	it	cs
 
-  8036398:	2340      	movcs	r3, #64	; 0x40
 
-   m_stat->community[len] = 0;
 
-  803639a:	18d1      	adds	r1, r2, r3
 
-     snmp_inc_snmpinbadcommunitynames();
 
-     snmp_authfail_trap();
 
-     return ERR_ARG;
 
-   }*/
 
-   
 
-   ofs += (1 + len_octets + len);
 
-  803639c:	f89d 200e 	ldrb.w	r2, [sp, #14]
 
-   {
 
-     snmp_inc_snmpinasnparseerrs();
 
-     return ERR_ARG;
 
-   }
 
-   /* add zero terminator */
 
-   len = ((len < (SNMP_COMMUNITY_STR_LEN))?(len):(SNMP_COMMUNITY_STR_LEN));
 
-  80363a0:	f8ad 3012 	strh.w	r3, [sp, #18]
 
-   m_stat->community[len] = 0;
 
-   m_stat->com_strlen = (u8_t)len;
 
-  80363a4:	f885 3041 	strb.w	r3, [r5, #65]	; 0x41
 
-     snmp_inc_snmpinbadcommunitynames();
 
-     snmp_authfail_trap();
 
-     return ERR_ARG;
 
-   }*/
 
-   
 
-   ofs += (1 + len_octets + len);
 
-  80363a8:	189b      	adds	r3, r3, r2
 
-  80363aa:	18f6      	adds	r6, r6, r3
 
-  80363ac:	b2b6      	uxth	r6, r6
 
-  80363ae:	f106 0801 	add.w	r8, r6, #1
 
-  80363b2:	fa1f f888 	uxth.w	r8, r8
 
-     snmp_inc_snmpinasnparseerrs();
 
-     return ERR_ARG;
 
-   }
 
-   /* add zero terminator */
 
-   len = ((len < (SNMP_COMMUNITY_STR_LEN))?(len):(SNMP_COMMUNITY_STR_LEN));
 
-   m_stat->community[len] = 0;
 
-  80363b6:	7608      	strb	r0, [r1, #24]
 
-     snmp_authfail_trap();
 
-     return ERR_ARG;
 
-   }*/
 
-   
 
-   ofs += (1 + len_octets + len);
 
-   snmp_asn1_dec_type(p, ofs, &type);
 
-  80363b8:	f10d 020f 	add.w	r2, sp, #15
 
-  80363bc:	4641      	mov	r1, r8
 
-  80363be:	4620      	mov	r0, r4
 
-  80363c0:	f7fc ff40 	bl	8033244 <snmp_asn1_dec_type>
 
-   derr = snmp_asn1_dec_length(p, ofs+1, &len_octets, &len);
 
-  80363c4:	1cb1      	adds	r1, r6, #2
 
-  80363c6:	4620      	mov	r0, r4
 
-  80363c8:	b289      	uxth	r1, r1
 
-  80363ca:	f10d 020e 	add.w	r2, sp, #14
 
-  80363ce:	f10d 0312 	add.w	r3, sp, #18
 
-  80363d2:	f7fc ff4c 	bl	803326e <snmp_asn1_dec_length>
 
-   if (derr != ERR_OK)
 
-  80363d6:	2800      	cmp	r0, #0
 
-  80363d8:	d141      	bne.n	803645e <snmp_recv+0x1c2>
 
-     return ERR_ARG;
 
-   }
 
-   
 
-   /* FIX for write/read communuty */
 
-   /* GetRequest PDU */
 
-   if (type == (SNMP_ASN1_CONTXT | SNMP_ASN1_CONSTR | SNMP_ASN1_PDU_GET_REQ)) 
 
-  80363da:	f89d 300f 	ldrb.w	r3, [sp, #15]
 
-  80363de:	2ba0      	cmp	r3, #160	; 0xa0
 
-  80363e0:	d10f      	bne.n	8036402 <snmp_recv+0x166>
 
-   {	
 
-   	if (strncmp(sSettings.sSnmp.readCommunity, (const char*)m_stat->community, strlen(sSettings.sSnmp.readCommunity)) != 0
 
-  80363e2:	4855      	ldr	r0, [pc, #340]	; (8036538 <snmp_recv+0x29c>)
 
-  80363e4:	f7eb fd64 	bl	8021eb0 <strlen>
 
-  80363e8:	4629      	mov	r1, r5
 
-  80363ea:	4602      	mov	r2, r0
 
-  80363ec:	4852      	ldr	r0, [pc, #328]	; (8036538 <snmp_recv+0x29c>)
 
-  80363ee:	f7eb fdc1 	bl	8021f74 <strncmp>
 
-  80363f2:	b120      	cbz	r0, 80363fe <snmp_recv+0x162>
 
- 		|| (strlen(sSettings.sSnmp.readCommunity) != strlen((const char*)m_stat->community)) )
 
-     {
 
-       snmp_inc_snmpinbadcommunitynames();
 
-  80363f4:	f7fe fd2e 	bl	8034e54 <snmp_inc_snmpinbadcommunitynames>
 
-       snmp_authfail_trap();
 
-  80363f8:	f000 fd84 	bl	8036f04 <snmp_authfail_trap>
 
-  80363fc:	e75e      	b.n	80362bc <snmp_recv+0x20>
 
-   /* FIX for write/read communuty */
 
-   /* GetRequest PDU */
 
-   if (type == (SNMP_ASN1_CONTXT | SNMP_ASN1_CONSTR | SNMP_ASN1_PDU_GET_REQ)) 
 
-   {	
 
-   	if (strncmp(sSettings.sSnmp.readCommunity, (const char*)m_stat->community, strlen(sSettings.sSnmp.readCommunity)) != 0
 
- 		|| (strlen(sSettings.sSnmp.readCommunity) != strlen((const char*)m_stat->community)) )
 
-  80363fe:	484e      	ldr	r0, [pc, #312]	; (8036538 <snmp_recv+0x29c>)
 
-  8036400:	e00c      	b.n	803641c <snmp_recv+0x180>
 
-       snmp_authfail_trap();
 
-       return ERR_ARG;
 
-     }
 
-   }	
 
-   /* SetRequest PDU */
 
-   else if (type == (SNMP_ASN1_CONTXT | SNMP_ASN1_CONSTR | SNMP_ASN1_PDU_SET_REQ)) 	
 
-  8036402:	2ba3      	cmp	r3, #163	; 0xa3
 
-  8036404:	d112      	bne.n	803642c <snmp_recv+0x190>
 
-   {
 
-     if (strncmp(sSettings.sSnmp.writeCommunity, (const char*)m_stat->community, strlen(sSettings.sSnmp.writeCommunity)) != 0
 
-  8036406:	484d      	ldr	r0, [pc, #308]	; (803653c <snmp_recv+0x2a0>)
 
-  8036408:	f7eb fd52 	bl	8021eb0 <strlen>
 
-  803640c:	4629      	mov	r1, r5
 
-  803640e:	4602      	mov	r2, r0
 
-  8036410:	484a      	ldr	r0, [pc, #296]	; (803653c <snmp_recv+0x2a0>)
 
-  8036412:	f7eb fdaf 	bl	8021f74 <strncmp>
 
-  8036416:	2800      	cmp	r0, #0
 
-  8036418:	d1ec      	bne.n	80363f4 <snmp_recv+0x158>
 
- 		|| (strlen(sSettings.sSnmp.writeCommunity) != strlen((const char*)m_stat->community)) )
 
-  803641a:	4848      	ldr	r0, [pc, #288]	; (803653c <snmp_recv+0x2a0>)
 
-  803641c:	f7eb fd48 	bl	8021eb0 <strlen>
 
-  8036420:	4606      	mov	r6, r0
 
-  8036422:	4628      	mov	r0, r5
 
-  8036424:	f7eb fd44 	bl	8021eb0 <strlen>
 
-  8036428:	4286      	cmp	r6, r0
 
-  803642a:	d1e3      	bne.n	80363f4 <snmp_recv+0x158>
 
-       snmp_authfail_trap();
 
-       return ERR_ARG;
 
-     }
 
-   }	
 
-   
 
-   switch(type)
 
-  803642c:	f89d 300f 	ldrb.w	r3, [sp, #15]
 
-  8036430:	3ba0      	subs	r3, #160	; 0xa0
 
-  8036432:	2b04      	cmp	r3, #4
 
-  8036434:	d813      	bhi.n	803645e <snmp_recv+0x1c2>
 
-  8036436:	e8df f003 	tbb	[pc, r3]
 
-  803643a:	0603      	.short	0x0603
 
-  803643c:	0c09      	.short	0x0c09
 
-  803643e:	0f          	.byte	0x0f
 
-  803643f:	00          	.byte	0x00
 
-   {
 
-     case (SNMP_ASN1_CONTXT | SNMP_ASN1_CONSTR | SNMP_ASN1_PDU_GET_REQ):
 
-       // GetRequest PDU 
 
-       snmp_inc_snmpingetrequests();
 
-  8036440:	f7fe fd50 	bl	8034ee4 <snmp_inc_snmpingetrequests>
 
-  8036444:	e100      	b.n	8036648 <snmp_recv+0x3ac>
 
-       derr = ERR_OK;
 
-       break;
 
-     case (SNMP_ASN1_CONTXT | SNMP_ASN1_CONSTR | SNMP_ASN1_PDU_GET_NEXT_REQ):
 
-       // GetNextRequest PDU 
 
-       snmp_inc_snmpingetnexts();
 
-  8036446:	f7fe fd55 	bl	8034ef4 <snmp_inc_snmpingetnexts>
 
-  803644a:	e0fd      	b.n	8036648 <snmp_recv+0x3ac>
 
-       derr = ERR_OK;
 
-       break;
 
-     case (SNMP_ASN1_CONTXT | SNMP_ASN1_CONSTR | SNMP_ASN1_PDU_GET_RESP):
 
-       // GetResponse PDU 
 
-       snmp_inc_snmpingetresponses();
 
-  803644c:	f7fe fd62 	bl	8034f14 <snmp_inc_snmpingetresponses>
 
-  8036450:	e734      	b.n	80362bc <snmp_recv+0x20>
 
-       derr = ERR_ARG;
 
-       break;
 
-     case (SNMP_ASN1_CONTXT | SNMP_ASN1_CONSTR | SNMP_ASN1_PDU_SET_REQ):
 
-       // SetRequest PDU 
 
-       snmp_inc_snmpinsetrequests();
 
-  8036452:	f7fe fd57 	bl	8034f04 <snmp_inc_snmpinsetrequests>
 
-  8036456:	e0f7      	b.n	8036648 <snmp_recv+0x3ac>
 
-       derr = ERR_OK;
 
-       break;
 
-     case (SNMP_ASN1_CONTXT | SNMP_ASN1_CONSTR | SNMP_ASN1_PDU_TRAP):
 
-       // Trap PDU 
 
-       snmp_inc_snmpintraps();
 
-  8036458:	f7fe fd64 	bl	8034f24 <snmp_inc_snmpintraps>
 
-  803645c:	e72e      	b.n	80362bc <snmp_recv+0x20>
 
-       derr = ERR_ARG;
 
-       break;
 
-     default:
 
-       snmp_inc_snmpinasnparseerrs();
 
-  803645e:	f7fe fd01 	bl	8034e64 <snmp_inc_snmpinasnparseerrs>
 
-  8036462:	e72b      	b.n	80362bc <snmp_recv+0x20>
 
-   {
 
-     /* decoded PDU length does not equal actual payload length */
 
-     snmp_inc_snmpinasnparseerrs();
 
-     return ERR_ARG;
 
-   }
 
-   snmp_asn1_dec_type(p, ofs, &type);
 
-  8036464:	4631      	mov	r1, r6
 
-  8036466:	f10d 020f 	add.w	r2, sp, #15
 
-  803646a:	4620      	mov	r0, r4
 
-  803646c:	f7fc feea 	bl	8033244 <snmp_asn1_dec_type>
 
-   derr = snmp_asn1_dec_length(p, ofs+1, &len_octets, &len);
 
-  8036470:	f108 0102 	add.w	r1, r8, #2
 
-  8036474:	4620      	mov	r0, r4
 
-  8036476:	b289      	uxth	r1, r1
 
-  8036478:	f10d 020e 	add.w	r2, sp, #14
 
-  803647c:	f10d 0312 	add.w	r3, sp, #18
 
-  8036480:	f7fc fef5 	bl	803326e <snmp_asn1_dec_length>
 
-   if ((derr != ERR_OK) || (type != (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG)))
 
-  8036484:	2800      	cmp	r0, #0
 
-  8036486:	d1ea      	bne.n	803645e <snmp_recv+0x1c2>
 
-  8036488:	f89d 300f 	ldrb.w	r3, [sp, #15]
 
-  803648c:	2b02      	cmp	r3, #2
 
-  803648e:	d1e6      	bne.n	803645e <snmp_recv+0x1c2>
 
-   {
 
-     /* can't decode or no integer (request ID) */
 
-     snmp_inc_snmpinasnparseerrs();
 
-     return ERR_ARG;
 
-   }
 
-   derr = snmp_asn1_dec_s32t(p, ofs + 1 + len_octets, len, &m_stat->rid);
 
-  8036490:	f89d 100e 	ldrb.w	r1, [sp, #14]
 
-  8036494:	f8bd 2012 	ldrh.w	r2, [sp, #18]
 
-  8036498:	3101      	adds	r1, #1
 
-  803649a:	1871      	adds	r1, r6, r1
 
-  803649c:	4620      	mov	r0, r4
 
-  803649e:	b289      	uxth	r1, r1
 
-  80364a0:	f105 030c 	add.w	r3, r5, #12
 
-  80364a4:	f7fc ffb9 	bl	803341a <snmp_asn1_dec_s32t>
 
-   if (derr != ERR_OK)
 
-  80364a8:	2800      	cmp	r0, #0
 
-  80364aa:	d1d8      	bne.n	803645e <snmp_recv+0x1c2>
 
-   {
 
-     /* can't decode */
 
-     snmp_inc_snmpinasnparseerrs();
 
-     return ERR_ARG;
 
-   }
 
-   ofs += (1 + len_octets + len);
 
-  80364ac:	f89d 200e 	ldrb.w	r2, [sp, #14]
 
-  80364b0:	f8bd 3012 	ldrh.w	r3, [sp, #18]
 
-  80364b4:	18d3      	adds	r3, r2, r3
 
-  80364b6:	18f6      	adds	r6, r6, r3
 
-  80364b8:	b2b6      	uxth	r6, r6
 
-  80364ba:	1c77      	adds	r7, r6, #1
 
-  80364bc:	b2bf      	uxth	r7, r7
 
-   snmp_asn1_dec_type(p, ofs, &type);
 
-  80364be:	4639      	mov	r1, r7
 
-  80364c0:	f10d 020f 	add.w	r2, sp, #15
 
-  80364c4:	4620      	mov	r0, r4
 
-  80364c6:	f7fc febd 	bl	8033244 <snmp_asn1_dec_type>
 
-   derr = snmp_asn1_dec_length(p, ofs+1, &len_octets, &len);
 
-  80364ca:	1cb1      	adds	r1, r6, #2
 
-  80364cc:	4620      	mov	r0, r4
 
-  80364ce:	b289      	uxth	r1, r1
 
-  80364d0:	f10d 020e 	add.w	r2, sp, #14
 
-  80364d4:	f10d 0312 	add.w	r3, sp, #18
 
-  80364d8:	f7fc fec9 	bl	803326e <snmp_asn1_dec_length>
 
-   if ((derr != ERR_OK) || (type != (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG)))
 
-  80364dc:	2800      	cmp	r0, #0
 
-  80364de:	d1be      	bne.n	803645e <snmp_recv+0x1c2>
 
-  80364e0:	f89d 300f 	ldrb.w	r3, [sp, #15]
 
-  80364e4:	2b02      	cmp	r3, #2
 
-  80364e6:	d1ba      	bne.n	803645e <snmp_recv+0x1c2>
 
-     snmp_inc_snmpinasnparseerrs();
 
-     return ERR_ARG;
 
-   }
 
-   /* must be noError (0) for incoming requests.
 
-      log errors for mib-2 completeness and for debug purposes */
 
-   derr = snmp_asn1_dec_s32t(p, ofs + 1 + len_octets, len, &m_stat->error_status);
 
-  80364e8:	f89d 100e 	ldrb.w	r1, [sp, #14]
 
-  80364ec:	f8bd 2012 	ldrh.w	r2, [sp, #18]
 
-  80364f0:	3101      	adds	r1, #1
 
-  80364f2:	1879      	adds	r1, r7, r1
 
-  80364f4:	4620      	mov	r0, r4
 
-  80364f6:	b289      	uxth	r1, r1
 
-  80364f8:	f105 0310 	add.w	r3, r5, #16
 
-  80364fc:	f7fc ff8d 	bl	803341a <snmp_asn1_dec_s32t>
 
-   if (derr != ERR_OK)
 
-  8036500:	2800      	cmp	r0, #0
 
-  8036502:	d1ac      	bne.n	803645e <snmp_recv+0x1c2>
 
-   {
 
-     /* can't decode */
 
-     snmp_inc_snmpinasnparseerrs();
 
-     return ERR_ARG;
 
-   }
 
-   switch (m_stat->error_status)
 
-  8036504:	692b      	ldr	r3, [r5, #16]
 
-  8036506:	3b01      	subs	r3, #1
 
-  8036508:	2b04      	cmp	r3, #4
 
-  803650a:	d81b      	bhi.n	8036544 <snmp_recv+0x2a8>
 
-  803650c:	e8df f003 	tbb	[pc, r3]
 
-  8036510:	0c090603 	.word	0x0c090603
 
-  8036514:	18          	.byte	0x18
 
-  8036515:	00          	.byte	0x00
 
-   {
 
-     case SNMP_ES_TOOBIG:
 
-       snmp_inc_snmpintoobigs();
 
-  8036516:	f7fe fcad 	bl	8034e74 <snmp_inc_snmpintoobigs>
 
-  803651a:	e013      	b.n	8036544 <snmp_recv+0x2a8>
 
-       break;
 
-     case SNMP_ES_NOSUCHNAME:
 
-       snmp_inc_snmpinnosuchnames();
 
-  803651c:	f7fe fcb2 	bl	8034e84 <snmp_inc_snmpinnosuchnames>
 
-  8036520:	e010      	b.n	8036544 <snmp_recv+0x2a8>
 
-       break;
 
-     case SNMP_ES_BADVALUE:
 
-       snmp_inc_snmpinbadvalues();
 
-  8036522:	f7fe fcb7 	bl	8034e94 <snmp_inc_snmpinbadvalues>
 
-  8036526:	e00d      	b.n	8036544 <snmp_recv+0x2a8>
 
-       break;
 
-     case SNMP_ES_READONLY:
 
-       snmp_inc_snmpinreadonlys();
 
-  8036528:	f7fe fcbc 	bl	8034ea4 <snmp_inc_snmpinreadonlys>
 
-  803652c:	e00a      	b.n	8036544 <snmp_recv+0x2a8>
 
-  803652e:	bf00      	nop
 
-  8036530:	2000f6f0 	.word	0x2000f6f0
 
-  8036534:	2000f708 	.word	0x2000f708
 
-  8036538:	2000d195 	.word	0x2000d195
 
-  803653c:	2000d1a9 	.word	0x2000d1a9
 
-       break;
 
-     case SNMP_ES_GENERROR:
 
-       snmp_inc_snmpingenerrs();
 
-  8036540:	f7fe fcb8 	bl	8034eb4 <snmp_inc_snmpingenerrs>
 
-       break;
 
-   }
 
-   ofs += (1 + len_octets + len);
 
-  8036544:	f89d 200e 	ldrb.w	r2, [sp, #14]
 
-  8036548:	f8bd 3012 	ldrh.w	r3, [sp, #18]
 
-  803654c:	18d3      	adds	r3, r2, r3
 
-  803654e:	18ff      	adds	r7, r7, r3
 
-  8036550:	b2bf      	uxth	r7, r7
 
-  8036552:	1c7d      	adds	r5, r7, #1
 
-  8036554:	b2ad      	uxth	r5, r5
 
-   snmp_asn1_dec_type(p, ofs, &type);
 
-  8036556:	4629      	mov	r1, r5
 
-  8036558:	f10d 020f 	add.w	r2, sp, #15
 
-  803655c:	4620      	mov	r0, r4
 
-  803655e:	f7fc fe71 	bl	8033244 <snmp_asn1_dec_type>
 
-   derr = snmp_asn1_dec_length(p, ofs+1, &len_octets, &len);
 
-  8036562:	1cb9      	adds	r1, r7, #2
 
-  8036564:	4620      	mov	r0, r4
 
-  8036566:	b289      	uxth	r1, r1
 
-  8036568:	f10d 020e 	add.w	r2, sp, #14
 
-  803656c:	f10d 0312 	add.w	r3, sp, #18
 
-  8036570:	f7fc fe7d 	bl	803326e <snmp_asn1_dec_length>
 
-   if ((derr != ERR_OK) || (type != (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG)))
 
-  8036574:	2800      	cmp	r0, #0
 
-  8036576:	f47f af72 	bne.w	803645e <snmp_recv+0x1c2>
 
-  803657a:	f89d 300f 	ldrb.w	r3, [sp, #15]
 
-  803657e:	2b02      	cmp	r3, #2
 
-  8036580:	f47f af6d 	bne.w	803645e <snmp_recv+0x1c2>
 
-     snmp_inc_snmpinasnparseerrs();
 
-     return ERR_ARG;
 
-   }
 
-   /* must be 0 for incoming requests.
 
-      decode anyway to catch bad integers (and dirty tricks) */
 
-   derr = snmp_asn1_dec_s32t(p, ofs + 1 + len_octets, len, &m_stat->error_index);
 
-  8036584:	f89d 100e 	ldrb.w	r1, [sp, #14]
 
-  8036588:	f8bd 2012 	ldrh.w	r2, [sp, #18]
 
-  803658c:	4b3a      	ldr	r3, [pc, #232]	; (8036678 <snmp_recv+0x3dc>)
 
-  803658e:	3101      	adds	r1, #1
 
-  8036590:	1869      	adds	r1, r5, r1
 
-  8036592:	4620      	mov	r0, r4
 
-  8036594:	b289      	uxth	r1, r1
 
-  8036596:	f7fc ff40 	bl	803341a <snmp_asn1_dec_s32t>
 
-   if (derr != ERR_OK)
 
-  803659a:	2800      	cmp	r0, #0
 
-  803659c:	f47f af5f 	bne.w	803645e <snmp_recv+0x1c2>
 
-   {
 
-     /* can't decode */
 
-     snmp_inc_snmpinasnparseerrs();
 
-     return ERR_ARG;
 
-   }
 
-   ofs += (1 + len_octets + len);
 
-  80365a0:	f8bd 3012 	ldrh.w	r3, [sp, #18]
 
-  80365a4:	f89d 200e 	ldrb.w	r2, [sp, #14]
 
-  80365a8:	3301      	adds	r3, #1
 
-  80365aa:	189b      	adds	r3, r3, r2
 
-  80365ac:	18ed      	adds	r5, r5, r3
 
-   /* check total length, version, community, pdu type */
 
-   err_ret = snmp_pdu_header_check(p, payload_ofs, payload_len, &varbind_ofs, msg_ps);
 
-   /* Only accept requests and requests without error (be robust) */
 
-   /* Reject response and trap headers or error requests as input! */
 
-   if ((err_ret != ERR_OK) ||
 
-       ((msg_ps->rt != SNMP_ASN1_PDU_GET_REQ) &&
 
-  80365ae:	4b33      	ldr	r3, [pc, #204]	; (803667c <snmp_recv+0x3e0>)
 
-     /* can't decode */
 
-     snmp_inc_snmpinasnparseerrs();
 
-     return ERR_ARG;
 
-   }
 
-   ofs += (1 + len_octets + len);
 
-   *ofs_ret = ofs;
 
-  80365b0:	f8ad 5010 	strh.w	r5, [sp, #16]
 
-   /* check total length, version, community, pdu type */
 
-   err_ret = snmp_pdu_header_check(p, payload_ofs, payload_len, &varbind_ofs, msg_ps);
 
-   /* Only accept requests and requests without error (be robust) */
 
-   /* Reject response and trap headers or error requests as input! */
 
-   if ((err_ret != ERR_OK) ||
 
-       ((msg_ps->rt != SNMP_ASN1_PDU_GET_REQ) &&
 
-  80365b4:	7a9a      	ldrb	r2, [r3, #10]
 
-   /* check total length, version, community, pdu type */
 
-   err_ret = snmp_pdu_header_check(p, payload_ofs, payload_len, &varbind_ofs, msg_ps);
 
-   /* Only accept requests and requests without error (be robust) */
 
-   /* Reject response and trap headers or error requests as input! */
 
-   if ((err_ret != ERR_OK) ||
 
-  80365b6:	b132      	cbz	r2, 80365c6 <snmp_recv+0x32a>
 
-       ((msg_ps->rt != SNMP_ASN1_PDU_GET_REQ) &&
 
-        (msg_ps->rt != SNMP_ASN1_PDU_GET_NEXT_REQ) &&
 
-  80365b8:	7a9a      	ldrb	r2, [r3, #10]
 
-   /* check total length, version, community, pdu type */
 
-   err_ret = snmp_pdu_header_check(p, payload_ofs, payload_len, &varbind_ofs, msg_ps);
 
-   /* Only accept requests and requests without error (be robust) */
 
-   /* Reject response and trap headers or error requests as input! */
 
-   if ((err_ret != ERR_OK) ||
 
-       ((msg_ps->rt != SNMP_ASN1_PDU_GET_REQ) &&
 
-  80365ba:	2a01      	cmp	r2, #1
 
-  80365bc:	d003      	beq.n	80365c6 <snmp_recv+0x32a>
 
-        (msg_ps->rt != SNMP_ASN1_PDU_GET_NEXT_REQ) &&
 
-        (msg_ps->rt != SNMP_ASN1_PDU_SET_REQ)) ||
 
-  80365be:	7a9a      	ldrb	r2, [r3, #10]
 
-   err_ret = snmp_pdu_header_check(p, payload_ofs, payload_len, &varbind_ofs, msg_ps);
 
-   /* Only accept requests and requests without error (be robust) */
 
-   /* Reject response and trap headers or error requests as input! */
 
-   if ((err_ret != ERR_OK) ||
 
-       ((msg_ps->rt != SNMP_ASN1_PDU_GET_REQ) &&
 
-        (msg_ps->rt != SNMP_ASN1_PDU_GET_NEXT_REQ) &&
 
-  80365c0:	2a03      	cmp	r2, #3
 
-  80365c2:	f47f ae7b 	bne.w	80362bc <snmp_recv+0x20>
 
-        (msg_ps->rt != SNMP_ASN1_PDU_SET_REQ)) ||
 
-       ((msg_ps->error_status != SNMP_ES_NOERROR) ||
 
-  80365c6:	691b      	ldr	r3, [r3, #16]
 
-  80365c8:	4d2c      	ldr	r5, [pc, #176]	; (803667c <snmp_recv+0x3e0>)
 
-   /* Only accept requests and requests without error (be robust) */
 
-   /* Reject response and trap headers or error requests as input! */
 
-   if ((err_ret != ERR_OK) ||
 
-       ((msg_ps->rt != SNMP_ASN1_PDU_GET_REQ) &&
 
-        (msg_ps->rt != SNMP_ASN1_PDU_GET_NEXT_REQ) &&
 
-        (msg_ps->rt != SNMP_ASN1_PDU_SET_REQ)) ||
 
-  80365ca:	2b00      	cmp	r3, #0
 
-  80365cc:	f47f ae76 	bne.w	80362bc <snmp_recv+0x20>
 
-       ((msg_ps->error_status != SNMP_ES_NOERROR) ||
 
-        (msg_ps->error_index != 0)) )
 
-  80365d0:	696b      	ldr	r3, [r5, #20]
 
-   /* Reject response and trap headers or error requests as input! */
 
-   if ((err_ret != ERR_OK) ||
 
-       ((msg_ps->rt != SNMP_ASN1_PDU_GET_REQ) &&
 
-        (msg_ps->rt != SNMP_ASN1_PDU_GET_NEXT_REQ) &&
 
-        (msg_ps->rt != SNMP_ASN1_PDU_SET_REQ)) ||
 
-       ((msg_ps->error_status != SNMP_ES_NOERROR) ||
 
-  80365d2:	2b00      	cmp	r3, #0
 
-  80365d4:	f47f ae72 	bne.w	80362bc <snmp_recv+0x20>
 
-   }
 
-   LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_recv ok, community %s\n", msg_ps->community));
 
-   /* Builds a list of variable bindings. Copy the varbinds from the pbuf
 
-     chain to glue them when these are divided over two or more pbuf's. */
 
-   err_ret = snmp_pdu_dec_varbindlist(p, varbind_ofs, &varbind_ofs, msg_ps);
 
-  80365d8:	aa06      	add	r2, sp, #24
 
-  80365da:	4620      	mov	r0, r4
 
-  80365dc:	f832 1d08 	ldrh.w	r1, [r2, #-8]!
 
-  80365e0:	462b      	mov	r3, r5
 
-  80365e2:	f7ff fd01 	bl	8035fe8 <snmp_pdu_dec_varbindlist>
 
-  80365e6:	4606      	mov	r6, r0
 
-   /* we've decoded the incoming message, release input msg now */
 
-   pbuf_free(p);
 
-  80365e8:	4620      	mov	r0, r4
 
-  80365ea:	f7f9 fc0f 	bl	802fe0c <pbuf_free>
 
-   if ((err_ret != ERR_OK) || (msg_ps->invb.count == 0))
 
-  80365ee:	2e00      	cmp	r6, #0
 
-  80365f0:	d13f      	bne.n	8036672 <snmp_recv+0x3d6>
 
-  80365f2:	f895 3108 	ldrb.w	r3, [r5, #264]	; 0x108
 
-  80365f6:	2b00      	cmp	r3, #0
 
-  80365f8:	d03b      	beq.n	8036672 <snmp_recv+0x3d6>
 
-   }
 
-   msg_ps->error_status = SNMP_ES_NOERROR;
 
-   msg_ps->error_index = 0;
 
-   /* find object for each variable binding */
 
-   msg_ps->state = SNMP_MSG_SEARCH_OBJ;
 
-  80365fa:	2301      	movs	r3, #1
 
-        (errors are only returned for a specific varbind failure) */
 
-     LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_pdu_dec_varbindlist() failed\n"));
 
-     return;
 
-   }
 
-   msg_ps->error_status = SNMP_ES_NOERROR;
 
-  80365fc:	612e      	str	r6, [r5, #16]
 
-   msg_ps->vb_idx = 0;
 
-   LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_recv varbind cnt=%"U16_F"\n",(u16_t)msg_ps->invb.count));
 
-   /* handle input event and as much objects as possible in one go */
 
-   snmp_msg_event(req_idx);
 
-  80365fe:	4630      	mov	r0, r6
 
-     LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_pdu_dec_varbindlist() failed\n"));
 
-     return;
 
-   }
 
-   msg_ps->error_status = SNMP_ES_NOERROR;
 
-   msg_ps->error_index = 0;
 
-  8036600:	616e      	str	r6, [r5, #20]
 
-   /* find object for each variable binding */
 
-   msg_ps->state = SNMP_MSG_SEARCH_OBJ;
 
-  8036602:	f885 305a 	strb.w	r3, [r5, #90]	; 0x5a
 
-   /* first variable binding from list to inspect */
 
-   msg_ps->vb_idx = 0;
 
-  8036606:	f885 60f8 	strb.w	r6, [r5, #248]	; 0xf8
 
-   LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_recv varbind cnt=%"U16_F"\n",(u16_t)msg_ps->invb.count));
 
-   /* handle input event and as much objects as possible in one go */
 
-   snmp_msg_event(req_idx);
 
-  803660a:	f7ff f94d 	bl	80358a8 <snmp_msg_event>
 
-  803660e:	e030      	b.n	8036672 <snmp_recv+0x3d6>
 
-     pbuf_free(p);
 
-     return;
 
-   }
 
-   /* accepting request */
 
-   snmp_inc_snmpinpkts();
 
-  8036610:	f7fe fc08 	bl	8034e24 <snmp_inc_snmpinpkts>
 
-   /* record used 'protocol control block' */
 
-   msg_ps->pcb = pcb;
 
-   /* source address (network order) */
 
-   msg_ps->sip = *addr;
 
-  8036614:	f8d9 3000 	ldr.w	r3, [r9]
 
-   }
 
-   /* accepting request */
 
-   snmp_inc_snmpinpkts();
 
-   /* record used 'protocol control block' */
 
-   msg_ps->pcb = pcb;
 
-  8036618:	f8c5 8000 	str.w	r8, [r5]
 
-   /* source address (network order) */
 
-   msg_ps->sip = *addr;
 
-  803661c:	606b      	str	r3, [r5, #4]
 
-   /* source port (host order (lwIP oddity)) */
 
-   msg_ps->sp = port;
 
-  803661e:	f8bd 3038 	ldrh.w	r3, [sp, #56]	; 0x38
 
-   u8_t  len_octets;
 
-   u8_t  type;
 
-   s32_t version;
 
-   ofs_base = ofs;
 
-   snmp_asn1_dec_type(p, ofs, &type);
 
-  8036622:	4631      	mov	r1, r6
 
-   /* record used 'protocol control block' */
 
-   msg_ps->pcb = pcb;
 
-   /* source address (network order) */
 
-   msg_ps->sip = *addr;
 
-   /* source port (host order (lwIP oddity)) */
 
-   msg_ps->sp = port;
 
-  8036624:	812b      	strh	r3, [r5, #8]
 
-   u8_t  len_octets;
 
-   u8_t  type;
 
-   s32_t version;
 
-   ofs_base = ofs;
 
-   snmp_asn1_dec_type(p, ofs, &type);
 
-  8036626:	f10d 020f 	add.w	r2, sp, #15
 
-  803662a:	4620      	mov	r0, r4
 
-  803662c:	f7fc fe0a 	bl	8033244 <snmp_asn1_dec_type>
 
-   derr = snmp_asn1_dec_length(p, ofs+1, &len_octets, &len);
 
-  8036630:	4620      	mov	r0, r4
 
-  8036632:	2101      	movs	r1, #1
 
-  8036634:	f10d 020e 	add.w	r2, sp, #14
 
-  8036638:	f10d 0312 	add.w	r3, sp, #18
 
-  803663c:	f7fc fe17 	bl	803326e <snmp_asn1_dec_length>
 
-   if ((derr != ERR_OK) ||
 
-  8036640:	2800      	cmp	r0, #0
 
-  8036642:	f43f ae3f 	beq.w	80362c4 <snmp_recv+0x28>
 
-  8036646:	e70a      	b.n	803645e <snmp_recv+0x1c2>
 
-   if (derr != ERR_OK)
 
-   {
 
-     /* unsupported input PDU for this agent (no parse error) */
 
-     return ERR_ARG;
 
-   }
 
-   m_stat->rt = type & 0x1F;
 
-  8036648:	f89d 300f 	ldrb.w	r3, [sp, #15]
 
-  803664c:	4d0b      	ldr	r5, [pc, #44]	; (803667c <snmp_recv+0x3e0>)
 
-  803664e:	f003 031f 	and.w	r3, r3, #31
 
-  8036652:	72ab      	strb	r3, [r5, #10]
 
-   ofs += (1 + len_octets);
 
-  8036654:	f89d 300e 	ldrb.w	r3, [sp, #14]
 
-  8036658:	4498      	add	r8, r3
 
-  803665a:	fa1f f888 	uxth.w	r8, r8
 
-  803665e:	f108 0601 	add.w	r6, r8, #1
 
-  8036662:	b2b6      	uxth	r6, r6
 
-   if (len != (pdu_len - (ofs - ofs_base)))
 
-  8036664:	f8bd 3012 	ldrh.w	r3, [sp, #18]
 
-  8036668:	1bbf      	subs	r7, r7, r6
 
-  803666a:	42bb      	cmp	r3, r7
 
-  803666c:	f43f aefa 	beq.w	8036464 <snmp_recv+0x1c8>
 
-  8036670:	e6f5      	b.n	803645e <snmp_recv+0x1c2>
 
-   LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_recv varbind cnt=%"U16_F"\n",(u16_t)msg_ps->invb.count));
 
-   /* handle input event and as much objects as possible in one go */
 
-   snmp_msg_event(req_idx);
 
- }
 
-  8036672:	b007      	add	sp, #28
 
-  8036674:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
 
-  8036678:	2000f704 	.word	0x2000f704
 
-  803667c:	2000f6f0 	.word	0x2000f6f0
 
- 08036680 <snmp_varbind_list_sum>:
 
-  * @param root points to the root of the variable binding list
 
-  * @return the required lenght for encoding the variable bindings
 
-  */
 
- static u16_t
 
- snmp_varbind_list_sum(struct snmp_varbind_root *root)
 
- {
 
-  8036680:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
-   struct snmp_varbind *vb;
 
-   u32_t *uint_ptr;
 
-   s32_t *sint_ptr;
 
-   u16_t tot_len;
 
-   tot_len = 0;
 
-  8036682:	2500      	movs	r5, #0
 
-  * @param root points to the root of the variable binding list
 
-  * @return the required lenght for encoding the variable bindings
 
-  */
 
- static u16_t
 
- snmp_varbind_list_sum(struct snmp_varbind_root *root)
 
- {
 
-  8036684:	4606      	mov	r6, r0
 
-   u32_t *uint_ptr;
 
-   s32_t *sint_ptr;
 
-   u16_t tot_len;
 
-   tot_len = 0;
 
-   vb = root->tail;
 
-  8036686:	6844      	ldr	r4, [r0, #4]
 
-         sint_ptr = (s32_t*)vb->value;
 
-         snmp_asn1_enc_oid_cnt(vb->value_len / sizeof(s32_t), sint_ptr, &vb->vlen);
 
-         break;
 
-       default:
 
-         /* unsupported type */
 
-         vb->vlen = 0;
 
-  8036688:	462f      	mov	r7, r5
 
-   s32_t *sint_ptr;
 
-   u16_t tot_len;
 
-   tot_len = 0;
 
-   vb = root->tail;
 
-   while ( vb != NULL )
 
-  803668a:	e051      	b.n	8036730 <snmp_varbind_list_sum+0xb0>
 
-   {
 
-     /* encoded value lenght depends on type */
 
-     switch (vb->value_type)
 
-  803668c:	7c23      	ldrb	r3, [r4, #16]
 
-  803668e:	2b06      	cmp	r3, #6
 
-  8036690:	d020      	beq.n	80366d4 <snmp_varbind_list_sum+0x54>
 
-  8036692:	d805      	bhi.n	80366a0 <snmp_varbind_list_sum+0x20>
 
-  8036694:	2b02      	cmp	r3, #2
 
-  8036696:	d00c      	beq.n	80366b2 <snmp_varbind_list_sum+0x32>
 
-  8036698:	d324      	bcc.n	80366e4 <snmp_varbind_list_sum+0x64>
 
-  803669a:	2b04      	cmp	r3, #4
 
-  803669c:	d322      	bcc.n	80366e4 <snmp_varbind_list_sum+0x64>
 
-  803669e:	e016      	b.n	80366ce <snmp_varbind_list_sum+0x4e>
 
-  80366a0:	2b43      	cmp	r3, #67	; 0x43
 
-  80366a2:	d803      	bhi.n	80366ac <snmp_varbind_list_sum+0x2c>
 
-  80366a4:	2b41      	cmp	r3, #65	; 0x41
 
-  80366a6:	d20b      	bcs.n	80366c0 <snmp_varbind_list_sum+0x40>
 
-  80366a8:	2b40      	cmp	r3, #64	; 0x40
 
-  80366aa:	e000      	b.n	80366ae <snmp_varbind_list_sum+0x2e>
 
-  80366ac:	2b44      	cmp	r3, #68	; 0x44
 
-  80366ae:	d119      	bne.n	80366e4 <snmp_varbind_list_sum+0x64>
 
-  80366b0:	e00d      	b.n	80366ce <snmp_varbind_list_sum+0x4e>
 
-     {
 
-       case (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG):
 
-         sint_ptr = (s32_t*)vb->value;
 
-         snmp_asn1_enc_s32t_cnt(*sint_ptr, &vb->vlen);
 
-  80366b2:	6963      	ldr	r3, [r4, #20]
 
-  80366b4:	f104 0120 	add.w	r1, r4, #32
 
-  80366b8:	6818      	ldr	r0, [r3, #0]
 
-  80366ba:	f7fc fffa 	bl	80336b2 <snmp_asn1_enc_s32t_cnt>
 
-         break;
 
-  80366be:	e012      	b.n	80366e6 <snmp_varbind_list_sum+0x66>
 
-       case (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_COUNTER):
 
-       case (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_GAUGE):
 
-       case (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_TIMETICKS):
 
-         uint_ptr = (u32_t*)vb->value;
 
-         snmp_asn1_enc_u32t_cnt(*uint_ptr, &vb->vlen);
 
-  80366c0:	6963      	ldr	r3, [r4, #20]
 
-  80366c2:	f104 0120 	add.w	r1, r4, #32
 
-  80366c6:	6818      	ldr	r0, [r3, #0]
 
-  80366c8:	f7fc ffde 	bl	8033688 <snmp_asn1_enc_u32t_cnt>
 
-         break;
 
-  80366cc:	e00b      	b.n	80366e6 <snmp_varbind_list_sum+0x66>
 
-       case (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OC_STR):
 
-       case (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_NUL):
 
-       case (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_IPADDR):
 
-       case (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_OPAQUE):
 
-         vb->vlen = vb->value_len;
 
-  80366ce:	7c63      	ldrb	r3, [r4, #17]
 
-  80366d0:	8423      	strh	r3, [r4, #32]
 
-         break;
 
-  80366d2:	e008      	b.n	80366e6 <snmp_varbind_list_sum+0x66>
 
-       case (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OBJ_ID):
 
-         sint_ptr = (s32_t*)vb->value;
 
-         snmp_asn1_enc_oid_cnt(vb->value_len / sizeof(s32_t), sint_ptr, &vb->vlen);
 
-  80366d4:	7c60      	ldrb	r0, [r4, #17]
 
-  80366d6:	6961      	ldr	r1, [r4, #20]
 
-  80366d8:	0880      	lsrs	r0, r0, #2
 
-  80366da:	f104 0220 	add.w	r2, r4, #32
 
-  80366de:	f7fc fffd 	bl	80336dc <snmp_asn1_enc_oid_cnt>
 
-         break;
 
-  80366e2:	e000      	b.n	80366e6 <snmp_varbind_list_sum+0x66>
 
-       default:
 
-         /* unsupported type */
 
-         vb->vlen = 0;
 
-  80366e4:	8427      	strh	r7, [r4, #32]
 
-         break;
 
-     };
 
-     /* encoding length of value length field */
 
-     snmp_asn1_enc_length_cnt(vb->vlen, &vb->vlenlen);
 
-  80366e6:	8c20      	ldrh	r0, [r4, #32]
 
-  80366e8:	f104 011a 	add.w	r1, r4, #26
 
-  80366ec:	f7fc ffc1 	bl	8033672 <snmp_asn1_enc_length_cnt>
 
-     snmp_asn1_enc_oid_cnt(vb->ident_len, vb->ident, &vb->olen);
 
-  80366f0:	f104 021e 	add.w	r2, r4, #30
 
-  80366f4:	7a20      	ldrb	r0, [r4, #8]
 
-  80366f6:	68e1      	ldr	r1, [r4, #12]
 
-  80366f8:	f7fc fff0 	bl	80336dc <snmp_asn1_enc_oid_cnt>
 
-     snmp_asn1_enc_length_cnt(vb->olen, &vb->olenlen);
 
-  80366fc:	8be0      	ldrh	r0, [r4, #30]
 
-  80366fe:	f104 0119 	add.w	r1, r4, #25
 
-  8036702:	f7fc ffb6 	bl	8033672 <snmp_asn1_enc_length_cnt>
 
-     vb->seqlen = 1 + vb->vlenlen + vb->vlen;
 
-  8036706:	8be3      	ldrh	r3, [r4, #30]
 
-  8036708:	8c20      	ldrh	r0, [r4, #32]
 
-  803670a:	18c0      	adds	r0, r0, r3
 
-  803670c:	7ea3      	ldrb	r3, [r4, #26]
 
-     vb->seqlen += 1 + vb->olenlen + vb->olen;
 
-  803670e:	3002      	adds	r0, #2
 
-  8036710:	18c0      	adds	r0, r0, r3
 
-  8036712:	7e63      	ldrb	r3, [r4, #25]
 
-  8036714:	18c0      	adds	r0, r0, r3
 
-  8036716:	b280      	uxth	r0, r0
 
-  8036718:	83a0      	strh	r0, [r4, #28]
 
-     snmp_asn1_enc_length_cnt(vb->seqlen, &vb->seqlenlen);
 
-  803671a:	f104 0118 	add.w	r1, r4, #24
 
-  803671e:	f7fc ffa8 	bl	8033672 <snmp_asn1_enc_length_cnt>
 
-     /* varbind seq */
 
-     tot_len += 1 + vb->seqlenlen + vb->seqlen;
 
-  8036722:	8ba3      	ldrh	r3, [r4, #28]
 
-  8036724:	7e22      	ldrb	r2, [r4, #24]
 
-     vb = vb->prev;
 
-  8036726:	6864      	ldr	r4, [r4, #4]
 
-     vb->seqlen = 1 + vb->vlenlen + vb->vlen;
 
-     vb->seqlen += 1 + vb->olenlen + vb->olen;
 
-     snmp_asn1_enc_length_cnt(vb->seqlen, &vb->seqlenlen);
 
-     /* varbind seq */
 
-     tot_len += 1 + vb->seqlenlen + vb->seqlen;
 
-  8036728:	3301      	adds	r3, #1
 
-  803672a:	189b      	adds	r3, r3, r2
 
-  803672c:	18ed      	adds	r5, r5, r3
 
-  803672e:	b2ad      	uxth	r5, r5
 
-   s32_t *sint_ptr;
 
-   u16_t tot_len;
 
-   tot_len = 0;
 
-   vb = root->tail;
 
-   while ( vb != NULL )
 
-  8036730:	2c00      	cmp	r4, #0
 
-  8036732:	d1ab      	bne.n	803668c <snmp_varbind_list_sum+0xc>
 
-     vb = vb->prev;
 
-   }
 
-   /* varbind-list seq */
 
-   root->seqlen = tot_len;
 
-   snmp_asn1_enc_length_cnt(root->seqlen, &root->seqlenlen);
 
-  8036734:	4628      	mov	r0, r5
 
-     vb = vb->prev;
 
-   }
 
-   /* varbind-list seq */
 
-   root->seqlen = tot_len;
 
-  8036736:	8175      	strh	r5, [r6, #10]
 
-   snmp_asn1_enc_length_cnt(root->seqlen, &root->seqlenlen);
 
-  8036738:	f106 0109 	add.w	r1, r6, #9
 
-  803673c:	f7fc ff99 	bl	8033672 <snmp_asn1_enc_length_cnt>
 
-   tot_len += 1 + root->seqlenlen;
 
-  8036740:	7a73      	ldrb	r3, [r6, #9]
 
-  8036742:	3301      	adds	r3, #1
 
-  8036744:	18e8      	adds	r0, r5, r3
 
-   return tot_len;
 
- }
 
-  8036746:	b280      	uxth	r0, r0
 
-  8036748:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 
-  803674a:	0000      	movs	r0, r0
 
- 0803674c <snmp_resp_header_sum>:
 
-  * @param rhl points to returned header lengths
 
-  * @return the required lenght for encoding the response header
 
-  */
 
- static u16_t
 
- snmp_resp_header_sum(struct snmp_msg_pstat *m_stat, u16_t vb_len)
 
- {
 
-  803674c:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
 
-  8036750:	4604      	mov	r4, r0
 
-   u16_t tot_len;
 
-   struct snmp_resp_header_lengths *rhl;
 
-   rhl = &m_stat->rhl;
 
-   tot_len = vb_len;
 
-   snmp_asn1_enc_s32t_cnt(m_stat->error_index, &rhl->erridxlen);
 
-  8036752:	f500 758c 	add.w	r5, r0, #280	; 0x118
 
-  * @param rhl points to returned header lengths
 
-  * @return the required lenght for encoding the response header
 
-  */
 
- static u16_t
 
- snmp_resp_header_sum(struct snmp_msg_pstat *m_stat, u16_t vb_len)
 
- {
 
-  8036756:	460f      	mov	r7, r1
 
-   u16_t tot_len;
 
-   struct snmp_resp_header_lengths *rhl;
 
-   rhl = &m_stat->rhl;
 
-   tot_len = vb_len;
 
-   snmp_asn1_enc_s32t_cnt(m_stat->error_index, &rhl->erridxlen);
 
-  8036758:	6940      	ldr	r0, [r0, #20]
 
-  803675a:	f504 7190 	add.w	r1, r4, #288	; 0x120
 
-  803675e:	f7fc ffa8 	bl	80336b2 <snmp_asn1_enc_s32t_cnt>
 
-   snmp_asn1_enc_length_cnt(rhl->erridxlen, &rhl->erridxlenlen);
 
-  8036762:	f8b4 0120 	ldrh.w	r0, [r4, #288]	; 0x120
 
-  8036766:	4629      	mov	r1, r5
 
-  8036768:	f7fc ff83 	bl	8033672 <snmp_asn1_enc_length_cnt>
 
-   tot_len += 1 + rhl->erridxlenlen + rhl->erridxlen;
 
-   snmp_asn1_enc_s32t_cnt(m_stat->error_status, &rhl->errstatlen);
 
-  803676c:	6920      	ldr	r0, [r4, #16]
 
-   rhl = &m_stat->rhl;
 
-   tot_len = vb_len;
 
-   snmp_asn1_enc_s32t_cnt(m_stat->error_index, &rhl->erridxlen);
 
-   snmp_asn1_enc_length_cnt(rhl->erridxlen, &rhl->erridxlenlen);
 
-   tot_len += 1 + rhl->erridxlenlen + rhl->erridxlen;
 
-  803676e:	f894 8118 	ldrb.w	r8, [r4, #280]	; 0x118
 
-  8036772:	f8b4 a120 	ldrh.w	sl, [r4, #288]	; 0x120
 
-   snmp_asn1_enc_s32t_cnt(m_stat->error_status, &rhl->errstatlen);
 
-  8036776:	f504 7191 	add.w	r1, r4, #290	; 0x122
 
-  803677a:	f7fc ff9a 	bl	80336b2 <snmp_asn1_enc_s32t_cnt>
 
-   snmp_asn1_enc_length_cnt(rhl->errstatlen, &rhl->errstatlenlen);
 
-  803677e:	1c69      	adds	r1, r5, #1
 
-  8036780:	f8b4 0122 	ldrh.w	r0, [r4, #290]	; 0x122
 
-  8036784:	f7fc ff75 	bl	8033672 <snmp_asn1_enc_length_cnt>
 
-   tot_len += 1 + rhl->errstatlenlen + rhl->errstatlen;
 
-  8036788:	f8b4 9122 	ldrh.w	r9, [r4, #290]	; 0x122
 
-   snmp_asn1_enc_s32t_cnt(m_stat->rid, &rhl->ridlen);
 
-  803678c:	68e0      	ldr	r0, [r4, #12]
 
-   snmp_asn1_enc_length_cnt(rhl->erridxlen, &rhl->erridxlenlen);
 
-   tot_len += 1 + rhl->erridxlenlen + rhl->erridxlen;
 
-   snmp_asn1_enc_s32t_cnt(m_stat->error_status, &rhl->errstatlen);
 
-   snmp_asn1_enc_length_cnt(rhl->errstatlen, &rhl->errstatlenlen);
 
-   tot_len += 1 + rhl->errstatlenlen + rhl->errstatlen;
 
-  803678e:	f894 6119 	ldrb.w	r6, [r4, #281]	; 0x119
 
-   snmp_asn1_enc_s32t_cnt(m_stat->rid, &rhl->ridlen);
 
-  8036792:	f504 7192 	add.w	r1, r4, #292	; 0x124
 
-  8036796:	f7fc ff8c 	bl	80336b2 <snmp_asn1_enc_s32t_cnt>
 
-   snmp_asn1_enc_length_cnt(rhl->ridlen, &rhl->ridlenlen);
 
-  803679a:	f8b4 0124 	ldrh.w	r0, [r4, #292]	; 0x124
 
-  803679e:	f504 718d 	add.w	r1, r4, #282	; 0x11a
 
-  80367a2:	f7fc ff66 	bl	8033672 <snmp_asn1_enc_length_cnt>
 
-   rhl = &m_stat->rhl;
 
-   tot_len = vb_len;
 
-   snmp_asn1_enc_s32t_cnt(m_stat->error_index, &rhl->erridxlen);
 
-   snmp_asn1_enc_length_cnt(rhl->erridxlen, &rhl->erridxlenlen);
 
-   tot_len += 1 + rhl->erridxlenlen + rhl->erridxlen;
 
-  80367a6:	44d1      	add	r9, sl
 
-   snmp_asn1_enc_s32t_cnt(m_stat->error_status, &rhl->errstatlen);
 
-   snmp_asn1_enc_length_cnt(rhl->errstatlen, &rhl->errstatlenlen);
 
-   tot_len += 1 + rhl->errstatlenlen + rhl->errstatlen;
 
-  80367a8:	f8b4 3124 	ldrh.w	r3, [r4, #292]	; 0x124
 
-  80367ac:	f109 0903 	add.w	r9, r9, #3
 
-  80367b0:	4499      	add	r9, r3
 
-  80367b2:	fa18 f889 	uxtah	r8, r8, r9
 
-   snmp_asn1_enc_s32t_cnt(m_stat->rid, &rhl->ridlen);
 
-   snmp_asn1_enc_length_cnt(rhl->ridlen, &rhl->ridlenlen);
 
-   tot_len += 1 + rhl->ridlenlen + rhl->ridlen;
 
-  80367b6:	f894 311a 	ldrb.w	r3, [r4, #282]	; 0x11a
 
-  80367ba:	4446      	add	r6, r8
 
-  80367bc:	18f6      	adds	r6, r6, r3
 
-  80367be:	fa17 f686 	uxtah	r6, r7, r6
 
-  80367c2:	b2b6      	uxth	r6, r6
 
-   rhl->pdulen = tot_len;
 
-   snmp_asn1_enc_length_cnt(rhl->pdulen, &rhl->pdulenlen);
 
-  80367c4:	1ce9      	adds	r1, r5, #3
 
-  80367c6:	4630      	mov	r0, r6
 
-   snmp_asn1_enc_s32t_cnt(m_stat->rid, &rhl->ridlen);
 
-   snmp_asn1_enc_length_cnt(rhl->ridlen, &rhl->ridlenlen);
 
-   tot_len += 1 + rhl->ridlenlen + rhl->ridlen;
 
-   rhl->pdulen = tot_len;
 
-  80367c8:	f8a4 6126 	strh.w	r6, [r4, #294]	; 0x126
 
-   snmp_asn1_enc_length_cnt(rhl->pdulen, &rhl->pdulenlen);
 
-  80367cc:	f7fc ff51 	bl	8033672 <snmp_asn1_enc_length_cnt>
 
-   tot_len += 1 + rhl->pdulenlen;
 
-   rhl->comlen = m_stat->com_strlen;
 
-  80367d0:	f894 0059 	ldrb.w	r0, [r4, #89]	; 0x59
 
-   snmp_asn1_enc_length_cnt(rhl->ridlen, &rhl->ridlenlen);
 
-   tot_len += 1 + rhl->ridlenlen + rhl->ridlen;
 
-   rhl->pdulen = tot_len;
 
-   snmp_asn1_enc_length_cnt(rhl->pdulen, &rhl->pdulenlen);
 
-   tot_len += 1 + rhl->pdulenlen;
 
-  80367d4:	f894 811b 	ldrb.w	r8, [r4, #283]	; 0x11b
 
-   rhl->comlen = m_stat->com_strlen;
 
-  80367d8:	f8a4 0128 	strh.w	r0, [r4, #296]	; 0x128
 
-   snmp_asn1_enc_length_cnt(rhl->comlen, &rhl->comlenlen);
 
-  80367dc:	f504 718e 	add.w	r1, r4, #284	; 0x11c
 
-  80367e0:	f7fc ff47 	bl	8033672 <snmp_asn1_enc_length_cnt>
 
-   tot_len += 1 + rhl->comlenlen + rhl->comlen;
 
-   snmp_asn1_enc_s32t_cnt(snmp_version, &rhl->verlen);
 
-  80367e4:	4b14      	ldr	r3, [pc, #80]	; (8036838 <snmp_resp_header_sum+0xec>)
 
-   snmp_asn1_enc_length_cnt(rhl->pdulen, &rhl->pdulenlen);
 
-   tot_len += 1 + rhl->pdulenlen;
 
-   rhl->comlen = m_stat->com_strlen;
 
-   snmp_asn1_enc_length_cnt(rhl->comlen, &rhl->comlenlen);
 
-   tot_len += 1 + rhl->comlenlen + rhl->comlen;
 
-  80367e6:	f894 711c 	ldrb.w	r7, [r4, #284]	; 0x11c
 
-   snmp_asn1_enc_s32t_cnt(snmp_version, &rhl->verlen);
 
-  80367ea:	6818      	ldr	r0, [r3, #0]
 
-   snmp_asn1_enc_length_cnt(rhl->pdulen, &rhl->pdulenlen);
 
-   tot_len += 1 + rhl->pdulenlen;
 
-   rhl->comlen = m_stat->com_strlen;
 
-   snmp_asn1_enc_length_cnt(rhl->comlen, &rhl->comlenlen);
 
-   tot_len += 1 + rhl->comlenlen + rhl->comlen;
 
-  80367ec:	f8b4 9128 	ldrh.w	r9, [r4, #296]	; 0x128
 
-   snmp_asn1_enc_s32t_cnt(snmp_version, &rhl->verlen);
 
-  80367f0:	f504 7195 	add.w	r1, r4, #298	; 0x12a
 
-  80367f4:	f7fc ff5d 	bl	80336b2 <snmp_asn1_enc_s32t_cnt>
 
-   snmp_asn1_enc_length_cnt(rhl->verlen, &rhl->verlenlen);
 
-  80367f8:	1d69      	adds	r1, r5, #5
 
-  80367fa:	f8b4 012a 	ldrh.w	r0, [r4, #298]	; 0x12a
 
-  80367fe:	f7fc ff38 	bl	8033672 <snmp_asn1_enc_length_cnt>
 
-   snmp_asn1_enc_length_cnt(rhl->pdulen, &rhl->pdulenlen);
 
-   tot_len += 1 + rhl->pdulenlen;
 
-   rhl->comlen = m_stat->com_strlen;
 
-   snmp_asn1_enc_length_cnt(rhl->comlen, &rhl->comlenlen);
 
-   tot_len += 1 + rhl->comlenlen + rhl->comlen;
 
-  8036802:	f8b4 512a 	ldrh.w	r5, [r4, #298]	; 0x12a
 
-   snmp_asn1_enc_s32t_cnt(snmp_version, &rhl->verlen);
 
-   snmp_asn1_enc_length_cnt(rhl->verlen, &rhl->verlenlen);
 
-   tot_len += 1 + rhl->verlen + rhl->verlenlen;
 
-  8036806:	f894 311d 	ldrb.w	r3, [r4, #285]	; 0x11d
 
-   snmp_asn1_enc_length_cnt(rhl->pdulen, &rhl->pdulenlen);
 
-   tot_len += 1 + rhl->pdulenlen;
 
-   rhl->comlen = m_stat->com_strlen;
 
-   snmp_asn1_enc_length_cnt(rhl->comlen, &rhl->comlenlen);
 
-   tot_len += 1 + rhl->comlenlen + rhl->comlen;
 
-  803680a:	444d      	add	r5, r9
 
-  803680c:	3503      	adds	r5, #3
 
-  803680e:	4445      	add	r5, r8
 
-   snmp_asn1_enc_s32t_cnt(snmp_version, &rhl->verlen);
 
-   snmp_asn1_enc_length_cnt(rhl->verlen, &rhl->verlenlen);
 
-   tot_len += 1 + rhl->verlen + rhl->verlenlen;
 
-  8036810:	197d      	adds	r5, r7, r5
 
-  8036812:	18ed      	adds	r5, r5, r3
 
-  8036814:	fa16 f585 	uxtah	r5, r6, r5
 
-  8036818:	b2ad      	uxth	r5, r5
 
-   rhl->seqlen = tot_len;
 
-   snmp_asn1_enc_length_cnt(rhl->seqlen, &rhl->seqlenlen);
 
-  803681a:	4628      	mov	r0, r5
 
-   snmp_asn1_enc_s32t_cnt(snmp_version, &rhl->verlen);
 
-   snmp_asn1_enc_length_cnt(rhl->verlen, &rhl->verlenlen);
 
-   tot_len += 1 + rhl->verlen + rhl->verlenlen;
 
-   rhl->seqlen = tot_len;
 
-  803681c:	f8a4 512c 	strh.w	r5, [r4, #300]	; 0x12c
 
-   snmp_asn1_enc_length_cnt(rhl->seqlen, &rhl->seqlenlen);
 
-  8036820:	f504 718f 	add.w	r1, r4, #286	; 0x11e
 
-  8036824:	f7fc ff25 	bl	8033672 <snmp_asn1_enc_length_cnt>
 
-   tot_len += 1 + rhl->seqlenlen;
 
-  8036828:	f894 311e 	ldrb.w	r3, [r4, #286]	; 0x11e
 
-  803682c:	3301      	adds	r3, #1
 
-  803682e:	18e8      	adds	r0, r5, r3
 
-   return tot_len;
 
- }
 
-  8036830:	b280      	uxth	r0, r0
 
-  8036832:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
 
-  8036836:	bf00      	nop
 
-  8036838:	0804592c 	.word	0x0804592c
 
- 0803683c <snmp_varbind_list_enc>:
 
- /**
 
-  * Encodes varbind list from head to tail.
 
-  */
 
- static u16_t
 
- snmp_varbind_list_enc(struct snmp_varbind_root *root, struct pbuf *p, u16_t ofs)
 
- {
 
-  803683c:	b570      	push	{r4, r5, r6, lr}
 
-  803683e:	4616      	mov	r6, r2
 
-  8036840:	4604      	mov	r4, r0
 
-   s32_t *sint_ptr;
 
-   u32_t *uint_ptr;
 
-   u8_t *raw_ptr;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_CONSTR | SNMP_ASN1_SEQ));
 
-   ofs += 1;
 
-  8036842:	3601      	adds	r6, #1
 
- /**
 
-  * Encodes varbind list from head to tail.
 
-  */
 
- static u16_t
 
- snmp_varbind_list_enc(struct snmp_varbind_root *root, struct pbuf *p, u16_t ofs)
 
- {
 
-  8036844:	460d      	mov	r5, r1
 
-   struct snmp_varbind *vb;
 
-   s32_t *sint_ptr;
 
-   u32_t *uint_ptr;
 
-   u8_t *raw_ptr;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_CONSTR | SNMP_ASN1_SEQ));
 
-  8036846:	4608      	mov	r0, r1
 
-   ofs += 1;
 
-  8036848:	b2b6      	uxth	r6, r6
 
-   struct snmp_varbind *vb;
 
-   s32_t *sint_ptr;
 
-   u32_t *uint_ptr;
 
-   u8_t *raw_ptr;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_CONSTR | SNMP_ASN1_SEQ));
 
-  803684a:	4611      	mov	r1, r2
 
-  803684c:	2230      	movs	r2, #48	; 0x30
 
-  803684e:	f7fc ff5d 	bl	803370c <snmp_asn1_enc_type>
 
-   ofs += 1;
 
-   snmp_asn1_enc_length(p, ofs, root->seqlen);
 
-  8036852:	4628      	mov	r0, r5
 
-  8036854:	4631      	mov	r1, r6
 
-  8036856:	8962      	ldrh	r2, [r4, #10]
 
-  8036858:	f7fc ff6c 	bl	8033734 <snmp_asn1_enc_length>
 
-   ofs += root->seqlenlen;
 
-  803685c:	7a63      	ldrb	r3, [r4, #9]
 
-  803685e:	e064      	b.n	803692a <snmp_varbind_list_enc+0xee>
 
-   vb = root->head;
 
-   while ( vb != NULL )
 
-   {
 
-     snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_CONSTR | SNMP_ASN1_SEQ));
 
-  8036860:	4631      	mov	r1, r6
 
-     ofs += 1;
 
-  8036862:	3601      	adds	r6, #1
 
-   ofs += root->seqlenlen;
 
-   vb = root->head;
 
-   while ( vb != NULL )
 
-   {
 
-     snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_CONSTR | SNMP_ASN1_SEQ));
 
-  8036864:	2230      	movs	r2, #48	; 0x30
 
-     ofs += 1;
 
-  8036866:	b2b6      	uxth	r6, r6
 
-   ofs += root->seqlenlen;
 
-   vb = root->head;
 
-   while ( vb != NULL )
 
-   {
 
-     snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_CONSTR | SNMP_ASN1_SEQ));
 
-  8036868:	4628      	mov	r0, r5
 
-  803686a:	f7fc ff4f 	bl	803370c <snmp_asn1_enc_type>
 
-     ofs += 1;
 
-     snmp_asn1_enc_length(p, ofs, vb->seqlen);
 
-  803686e:	4631      	mov	r1, r6
 
-  8036870:	8ba2      	ldrh	r2, [r4, #28]
 
-  8036872:	4628      	mov	r0, r5
 
-  8036874:	f7fc ff5e 	bl	8033734 <snmp_asn1_enc_length>
 
-     ofs += vb->seqlenlen;
 
-  8036878:	7e23      	ldrb	r3, [r4, #24]
 
-  803687a:	18f6      	adds	r6, r6, r3
 
-  803687c:	b2b6      	uxth	r6, r6
 
-     snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OBJ_ID));
 
-  803687e:	4631      	mov	r1, r6
 
-     ofs += 1;
 
-  8036880:	3601      	adds	r6, #1
 
-     snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_CONSTR | SNMP_ASN1_SEQ));
 
-     ofs += 1;
 
-     snmp_asn1_enc_length(p, ofs, vb->seqlen);
 
-     ofs += vb->seqlenlen;
 
-     snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OBJ_ID));
 
-  8036882:	2206      	movs	r2, #6
 
-     ofs += 1;
 
-  8036884:	b2b6      	uxth	r6, r6
 
-     snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_CONSTR | SNMP_ASN1_SEQ));
 
-     ofs += 1;
 
-     snmp_asn1_enc_length(p, ofs, vb->seqlen);
 
-     ofs += vb->seqlenlen;
 
-     snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OBJ_ID));
 
-  8036886:	4628      	mov	r0, r5
 
-  8036888:	f7fc ff40 	bl	803370c <snmp_asn1_enc_type>
 
-     ofs += 1;
 
-     snmp_asn1_enc_length(p, ofs, vb->olen);
 
-  803688c:	4631      	mov	r1, r6
 
-  803688e:	8be2      	ldrh	r2, [r4, #30]
 
-  8036890:	4628      	mov	r0, r5
 
-  8036892:	f7fc ff4f 	bl	8033734 <snmp_asn1_enc_length>
 
-     ofs += vb->olenlen;
 
-  8036896:	7e63      	ldrb	r3, [r4, #25]
 
-     snmp_asn1_enc_oid(p, ofs, vb->ident_len, &vb->ident[0]);
 
-  8036898:	7a22      	ldrb	r2, [r4, #8]
 
-     ofs += vb->seqlenlen;
 
-     snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OBJ_ID));
 
-     ofs += 1;
 
-     snmp_asn1_enc_length(p, ofs, vb->olen);
 
-     ofs += vb->olenlen;
 
-  803689a:	18f6      	adds	r6, r6, r3
 
-  803689c:	b2b6      	uxth	r6, r6
 
-     snmp_asn1_enc_oid(p, ofs, vb->ident_len, &vb->ident[0]);
 
-  803689e:	4631      	mov	r1, r6
 
-  80368a0:	68e3      	ldr	r3, [r4, #12]
 
-  80368a2:	4628      	mov	r0, r5
 
-  80368a4:	f7fc fffb 	bl	803389e <snmp_asn1_enc_oid>
 
-     ofs += vb->olen;
 
-  80368a8:	8be3      	ldrh	r3, [r4, #30]
 
-     snmp_asn1_enc_type(p, ofs, vb->value_type);
 
-  80368aa:	7c22      	ldrb	r2, [r4, #16]
 
-     snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OBJ_ID));
 
-     ofs += 1;
 
-     snmp_asn1_enc_length(p, ofs, vb->olen);
 
-     ofs += vb->olenlen;
 
-     snmp_asn1_enc_oid(p, ofs, vb->ident_len, &vb->ident[0]);
 
-     ofs += vb->olen;
 
-  80368ac:	18f6      	adds	r6, r6, r3
 
-  80368ae:	b2b6      	uxth	r6, r6
 
-     snmp_asn1_enc_type(p, ofs, vb->value_type);
 
-  80368b0:	4631      	mov	r1, r6
 
-     ofs += 1;
 
-  80368b2:	3601      	adds	r6, #1
 
-  80368b4:	b2b6      	uxth	r6, r6
 
-     snmp_asn1_enc_length(p, ofs, vb->olen);
 
-     ofs += vb->olenlen;
 
-     snmp_asn1_enc_oid(p, ofs, vb->ident_len, &vb->ident[0]);
 
-     ofs += vb->olen;
 
-     snmp_asn1_enc_type(p, ofs, vb->value_type);
 
-  80368b6:	4628      	mov	r0, r5
 
-  80368b8:	f7fc ff28 	bl	803370c <snmp_asn1_enc_type>
 
-     ofs += 1;
 
-     snmp_asn1_enc_length(p, ofs, vb->vlen);
 
-  80368bc:	4631      	mov	r1, r6
 
-  80368be:	4628      	mov	r0, r5
 
-  80368c0:	8c22      	ldrh	r2, [r4, #32]
 
-  80368c2:	f7fc ff37 	bl	8033734 <snmp_asn1_enc_length>
 
-     ofs += vb->vlenlen;
 
-  80368c6:	7ea3      	ldrb	r3, [r4, #26]
 
-  80368c8:	18f6      	adds	r6, r6, r3
 
-     switch (vb->value_type)
 
-  80368ca:	7c23      	ldrb	r3, [r4, #16]
 
-  80368cc:	2b40      	cmp	r3, #64	; 0x40
 
-     ofs += vb->olen;
 
-     snmp_asn1_enc_type(p, ofs, vb->value_type);
 
-     ofs += 1;
 
-     snmp_asn1_enc_length(p, ofs, vb->vlen);
 
-     ofs += vb->vlenlen;
 
-  80368ce:	b2b6      	uxth	r6, r6
 
-     switch (vb->value_type)
 
-  80368d0:	d01c      	beq.n	803690c <snmp_varbind_list_enc+0xd0>
 
-  80368d2:	d806      	bhi.n	80368e2 <snmp_varbind_list_enc+0xa6>
 
-  80368d4:	2b04      	cmp	r3, #4
 
-  80368d6:	d019      	beq.n	803690c <snmp_varbind_list_enc+0xd0>
 
-  80368d8:	2b06      	cmp	r3, #6
 
-  80368da:	d01e      	beq.n	803691a <snmp_varbind_list_enc+0xde>
 
-  80368dc:	2b02      	cmp	r3, #2
 
-  80368de:	d123      	bne.n	8036928 <snmp_varbind_list_enc+0xec>
 
-  80368e0:	e004      	b.n	80368ec <snmp_varbind_list_enc+0xb0>
 
-  80368e2:	2b43      	cmp	r3, #67	; 0x43
 
-  80368e4:	d90a      	bls.n	80368fc <snmp_varbind_list_enc+0xc0>
 
-  80368e6:	2b44      	cmp	r3, #68	; 0x44
 
-  80368e8:	d11e      	bne.n	8036928 <snmp_varbind_list_enc+0xec>
 
-  80368ea:	e00f      	b.n	803690c <snmp_varbind_list_enc+0xd0>
 
-     {
 
-       case (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG):
 
-         sint_ptr = (s32_t*)vb->value;
 
-         snmp_asn1_enc_s32t(p, ofs, vb->vlen, *sint_ptr);
 
-  80368ec:	6963      	ldr	r3, [r4, #20]
 
-  80368ee:	8c22      	ldrh	r2, [r4, #32]
 
-  80368f0:	681b      	ldr	r3, [r3, #0]
 
-  80368f2:	4628      	mov	r0, r5
 
-  80368f4:	4631      	mov	r1, r6
 
-  80368f6:	f7fc ffa5 	bl	8033844 <snmp_asn1_enc_s32t>
 
-         break;
 
-  80368fa:	e015      	b.n	8036928 <snmp_varbind_list_enc+0xec>
 
-       case (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_COUNTER):
 
-       case (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_GAUGE):
 
-       case (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_TIMETICKS):
 
-         uint_ptr = (u32_t*)vb->value;
 
-         snmp_asn1_enc_u32t(p, ofs, vb->vlen, *uint_ptr);
 
-  80368fc:	6963      	ldr	r3, [r4, #20]
 
-  80368fe:	8c22      	ldrh	r2, [r4, #32]
 
-  8036900:	681b      	ldr	r3, [r3, #0]
 
-  8036902:	4628      	mov	r0, r5
 
-  8036904:	4631      	mov	r1, r6
 
-  8036906:	f7fc ff5d 	bl	80337c4 <snmp_asn1_enc_u32t>
 
-         break;
 
-  803690a:	e00d      	b.n	8036928 <snmp_varbind_list_enc+0xec>
 
-       case (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OC_STR):
 
-       case (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_IPADDR):
 
-       case (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_OPAQUE):
 
-         raw_ptr = (u8_t*)vb->value;
 
-         snmp_asn1_enc_raw(p, ofs, vb->vlen, raw_ptr);
 
-  803690c:	4628      	mov	r0, r5
 
-  803690e:	4631      	mov	r1, r6
 
-  8036910:	8c22      	ldrh	r2, [r4, #32]
 
-  8036912:	6963      	ldr	r3, [r4, #20]
 
-  8036914:	f7fd f836 	bl	8033984 <snmp_asn1_enc_raw>
 
-         break;
 
-  8036918:	e006      	b.n	8036928 <snmp_varbind_list_enc+0xec>
 
-       case (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_NUL):
 
-         break;
 
-       case (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OBJ_ID):
 
-         sint_ptr = (s32_t*)vb->value;
 
-         snmp_asn1_enc_oid(p, ofs, vb->value_len / sizeof(s32_t), sint_ptr);
 
-  803691a:	7c62      	ldrb	r2, [r4, #17]
 
-  803691c:	6963      	ldr	r3, [r4, #20]
 
-  803691e:	4628      	mov	r0, r5
 
-  8036920:	4631      	mov	r1, r6
 
-  8036922:	0892      	lsrs	r2, r2, #2
 
-  8036924:	f7fc ffbb 	bl	803389e <snmp_asn1_enc_oid>
 
-         break;
 
-       default:
 
-         /* unsupported type */
 
-         break;
 
-     };
 
-     ofs += vb->vlen;
 
-  8036928:	8c23      	ldrh	r3, [r4, #32]
 
-     vb = vb->next;
 
-  803692a:	6824      	ldr	r4, [r4, #0]
 
-         break;
 
-       default:
 
-         /* unsupported type */
 
-         break;
 
-     };
 
-     ofs += vb->vlen;
 
-  803692c:	18f6      	adds	r6, r6, r3
 
-  803692e:	b2b6      	uxth	r6, r6
 
-   ofs += 1;
 
-   snmp_asn1_enc_length(p, ofs, root->seqlen);
 
-   ofs += root->seqlenlen;
 
-   vb = root->head;
 
-   while ( vb != NULL )
 
-  8036930:	2c00      	cmp	r4, #0
 
-  8036932:	d195      	bne.n	8036860 <snmp_varbind_list_enc+0x24>
 
-     };
 
-     ofs += vb->vlen;
 
-     vb = vb->next;
 
-   }
 
-   return ofs;
 
- }
 
-  8036934:	4630      	mov	r0, r6
 
-  8036936:	bd70      	pop	{r4, r5, r6, pc}
 
- 08036938 <snmp_trap_dst_enable>:
 
-  * @param enable switch if 0 destination is disabled >0 enabled.
 
-  */
 
- void
 
- snmp_trap_dst_enable(u8_t dst_idx, u8_t enable)
 
- {
 
-   if (dst_idx < SNMP_TRAP_DESTINATIONS)
 
-  8036938:	b908      	cbnz	r0, 803693e <snmp_trap_dst_enable+0x6>
 
-   {
 
-     trap_dst[dst_idx].enable = enable;
 
-  803693a:	4b01      	ldr	r3, [pc, #4]	; (8036940 <snmp_trap_dst_enable+0x8>)
 
-  803693c:	7119      	strb	r1, [r3, #4]
 
-  803693e:	4770      	bx	lr
 
-  8036940:	2000f820 	.word	0x2000f820
 
- 08036944 <snmp_trap_dst_ip_set>:
 
-  * @param dst IPv4 address in host order.
 
-  */
 
- void
 
- snmp_trap_dst_ip_set(u8_t dst_idx, ip_addr_t *dst)
 
- {
 
-   if (dst_idx < SNMP_TRAP_DESTINATIONS)
 
-  8036944:	b918      	cbnz	r0, 803694e <snmp_trap_dst_ip_set+0xa>
 
-   {
 
-     ip_addr_set(&trap_dst[dst_idx].dip, dst);
 
-  8036946:	b101      	cbz	r1, 803694a <snmp_trap_dst_ip_set+0x6>
 
-  8036948:	6809      	ldr	r1, [r1, #0]
 
-  803694a:	4b01      	ldr	r3, [pc, #4]	; (8036950 <snmp_trap_dst_ip_set+0xc>)
 
-  803694c:	6019      	str	r1, [r3, #0]
 
-  803694e:	4770      	bx	lr
 
-  8036950:	2000f820 	.word	0x2000f820
 
- 08036954 <snmp_send_response>:
 
-  * @note the caller is responsible for filling in outvb in the m_stat
 
-  * and provide error-status and index (except for tooBig errors) ...
 
-  */
 
- err_t
 
- snmp_send_response(struct snmp_msg_pstat *m_stat)
 
- {
 
-  8036954:	b5f0      	push	{r4, r5, r6, r7, lr}
 
-  8036956:	4604      	mov	r4, r0
 
-  8036958:	b085      	sub	sp, #20
 
-   struct snmp_varbind_root emptyvb = {NULL, NULL, 0, 0, 0};
 
-  803695a:	220c      	movs	r2, #12
 
-  803695c:	2100      	movs	r1, #0
 
-  803695e:	a801      	add	r0, sp, #4
 
-   struct pbuf *p;
 
-   u16_t tot_len;
 
-   err_t err;
 
-   /* pass 0, calculate length fields */
 
-   tot_len = snmp_varbind_list_sum(&m_stat->outvb);
 
-  8036960:	f504 7686 	add.w	r6, r4, #268	; 0x10c
 
-  * and provide error-status and index (except for tooBig errors) ...
 
-  */
 
- err_t
 
- snmp_send_response(struct snmp_msg_pstat *m_stat)
 
- {
 
-   struct snmp_varbind_root emptyvb = {NULL, NULL, 0, 0, 0};
 
-  8036964:	f7eb f8cc 	bl	8021b00 <memset>
 
-   struct pbuf *p;
 
-   u16_t tot_len;
 
-   err_t err;
 
-   /* pass 0, calculate length fields */
 
-   tot_len = snmp_varbind_list_sum(&m_stat->outvb);
 
-  8036968:	4630      	mov	r0, r6
 
-  803696a:	f7ff fe89 	bl	8036680 <snmp_varbind_list_sum>
 
-  803696e:	4601      	mov	r1, r0
 
-   tot_len = snmp_resp_header_sum(m_stat, tot_len);
 
-  8036970:	4620      	mov	r0, r4
 
-  8036972:	f7ff feeb 	bl	803674c <snmp_resp_header_sum>
 
-   /* try allocating pbuf(s) for complete response */
 
-   p = pbuf_alloc(PBUF_TRANSPORT, tot_len, PBUF_POOL);
 
-  8036976:	2203      	movs	r2, #3
 
-   u16_t tot_len;
 
-   err_t err;
 
-   /* pass 0, calculate length fields */
 
-   tot_len = snmp_varbind_list_sum(&m_stat->outvb);
 
-   tot_len = snmp_resp_header_sum(m_stat, tot_len);
 
-  8036978:	4601      	mov	r1, r0
 
-   /* try allocating pbuf(s) for complete response */
 
-   p = pbuf_alloc(PBUF_TRANSPORT, tot_len, PBUF_POOL);
 
-  803697a:	2000      	movs	r0, #0
 
-  803697c:	f7f9 fa93 	bl	802fea6 <pbuf_alloc>
 
-   if (p == NULL)
 
-  8036980:	4605      	mov	r5, r0
 
-  8036982:	b990      	cbnz	r0, 80369aa <snmp_send_response+0x56>
 
-   {
 
-     LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_snd_response() tooBig\n"));
 
-     /* can't construct reply, return error-status tooBig */
 
-     m_stat->error_status = SNMP_ES_TOOBIG;
 
-  8036984:	2301      	movs	r3, #1
 
-  8036986:	6123      	str	r3, [r4, #16]
 
-     m_stat->error_index = 0;
 
-  8036988:	6160      	str	r0, [r4, #20]
 
-     /* pass 0, recalculate lengths, for empty varbind-list */
 
-     tot_len = snmp_varbind_list_sum(&emptyvb);
 
-  803698a:	a801      	add	r0, sp, #4
 
-  803698c:	f7ff fe78 	bl	8036680 <snmp_varbind_list_sum>
 
-  8036990:	4601      	mov	r1, r0
 
-     tot_len = snmp_resp_header_sum(m_stat, tot_len);
 
-  8036992:	4620      	mov	r0, r4
 
-  8036994:	f7ff feda 	bl	803674c <snmp_resp_header_sum>
 
-     /* retry allocation once for header and empty varbind-list */
 
-     p = pbuf_alloc(PBUF_TRANSPORT, tot_len, PBUF_POOL);
 
-  8036998:	2203      	movs	r2, #3
 
-     /* can't construct reply, return error-status tooBig */
 
-     m_stat->error_status = SNMP_ES_TOOBIG;
 
-     m_stat->error_index = 0;
 
-     /* pass 0, recalculate lengths, for empty varbind-list */
 
-     tot_len = snmp_varbind_list_sum(&emptyvb);
 
-     tot_len = snmp_resp_header_sum(m_stat, tot_len);
 
-  803699a:	4601      	mov	r1, r0
 
-     /* retry allocation once for header and empty varbind-list */
 
-     p = pbuf_alloc(PBUF_TRANSPORT, tot_len, PBUF_POOL);
 
-  803699c:	4628      	mov	r0, r5
 
-  803699e:	f7f9 fa82 	bl	802fea6 <pbuf_alloc>
 
-   }
 
-   if (p != NULL)
 
-  80369a2:	4605      	mov	r5, r0
 
-  80369a4:	2800      	cmp	r0, #0
 
-  80369a6:	f000 80dc 	beq.w	8036b62 <snmp_send_response+0x20e>
 
- snmp_resp_header_enc(struct snmp_msg_pstat *m_stat, struct pbuf *p)
 
- {
 
-   u16_t ofs;
 
-   ofs = 0;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_CONSTR | SNMP_ASN1_SEQ));
 
-  80369aa:	2100      	movs	r1, #0
 
-  80369ac:	2230      	movs	r2, #48	; 0x30
 
-  80369ae:	4628      	mov	r0, r5
 
-  80369b0:	f7fc feac 	bl	803370c <snmp_asn1_enc_type>
 
-   ofs += 1;
 
-   snmp_asn1_enc_length(p, ofs, m_stat->rhl.seqlen);
 
-  80369b4:	2101      	movs	r1, #1
 
-  80369b6:	f8b4 212c 	ldrh.w	r2, [r4, #300]	; 0x12c
 
-  80369ba:	4628      	mov	r0, r5
 
-  80369bc:	f7fc feba 	bl	8033734 <snmp_asn1_enc_length>
 
-   ofs += m_stat->rhl.seqlenlen;
 
-  80369c0:	f894 711e 	ldrb.w	r7, [r4, #286]	; 0x11e
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG));
 
-  80369c4:	2202      	movs	r2, #2
 
-  80369c6:	1c79      	adds	r1, r7, #1
 
-  80369c8:	4628      	mov	r0, r5
 
-   ofs += 1;
 
-  80369ca:	3702      	adds	r7, #2
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_CONSTR | SNMP_ASN1_SEQ));
 
-   ofs += 1;
 
-   snmp_asn1_enc_length(p, ofs, m_stat->rhl.seqlen);
 
-   ofs += m_stat->rhl.seqlenlen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG));
 
-  80369cc:	f7fc fe9e 	bl	803370c <snmp_asn1_enc_type>
 
-   ofs += 1;
 
-   snmp_asn1_enc_length(p, ofs, m_stat->rhl.verlen);
 
-  80369d0:	4639      	mov	r1, r7
 
-  80369d2:	f8b4 212a 	ldrh.w	r2, [r4, #298]	; 0x12a
 
-  80369d6:	4628      	mov	r0, r5
 
-  80369d8:	f7fc feac 	bl	8033734 <snmp_asn1_enc_length>
 
-   ofs += m_stat->rhl.verlenlen;
 
-  80369dc:	f894 311d 	ldrb.w	r3, [r4, #285]	; 0x11d
 
-   snmp_asn1_enc_s32t(p, ofs, m_stat->rhl.verlen, snmp_version);
 
-  80369e0:	f8b4 212a 	ldrh.w	r2, [r4, #298]	; 0x12a
 
-   ofs += m_stat->rhl.seqlenlen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG));
 
-   ofs += 1;
 
-   snmp_asn1_enc_length(p, ofs, m_stat->rhl.verlen);
 
-   ofs += m_stat->rhl.verlenlen;
 
-  80369e4:	18ff      	adds	r7, r7, r3
 
-   snmp_asn1_enc_s32t(p, ofs, m_stat->rhl.verlen, snmp_version);
 
-  80369e6:	4b61      	ldr	r3, [pc, #388]	; (8036b6c <snmp_send_response+0x218>)
 
-  80369e8:	4639      	mov	r1, r7
 
-  80369ea:	681b      	ldr	r3, [r3, #0]
 
-  80369ec:	4628      	mov	r0, r5
 
-  80369ee:	f7fc ff29 	bl	8033844 <snmp_asn1_enc_s32t>
 
-   ofs += m_stat->rhl.verlen;
 
-  80369f2:	f8b4 312a 	ldrh.w	r3, [r4, #298]	; 0x12a
 
-  80369f6:	18ff      	adds	r7, r7, r3
 
-  80369f8:	b2bf      	uxth	r7, r7
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OC_STR));
 
-  80369fa:	4639      	mov	r1, r7
 
-   ofs += 1;
 
-  80369fc:	3701      	adds	r7, #1
 
-   snmp_asn1_enc_length(p, ofs, m_stat->rhl.verlen);
 
-   ofs += m_stat->rhl.verlenlen;
 
-   snmp_asn1_enc_s32t(p, ofs, m_stat->rhl.verlen, snmp_version);
 
-   ofs += m_stat->rhl.verlen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OC_STR));
 
-  80369fe:	2204      	movs	r2, #4
 
-   ofs += 1;
 
-  8036a00:	b2bf      	uxth	r7, r7
 
-   snmp_asn1_enc_length(p, ofs, m_stat->rhl.verlen);
 
-   ofs += m_stat->rhl.verlenlen;
 
-   snmp_asn1_enc_s32t(p, ofs, m_stat->rhl.verlen, snmp_version);
 
-   ofs += m_stat->rhl.verlen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OC_STR));
 
-  8036a02:	4628      	mov	r0, r5
 
-  8036a04:	f7fc fe82 	bl	803370c <snmp_asn1_enc_type>
 
-   ofs += 1;
 
-   snmp_asn1_enc_length(p, ofs, m_stat->rhl.comlen);
 
-  8036a08:	4639      	mov	r1, r7
 
-  8036a0a:	f8b4 2128 	ldrh.w	r2, [r4, #296]	; 0x128
 
-  8036a0e:	4628      	mov	r0, r5
 
-  8036a10:	f7fc fe90 	bl	8033734 <snmp_asn1_enc_length>
 
-   ofs += m_stat->rhl.comlenlen;
 
-  8036a14:	f894 311c 	ldrb.w	r3, [r4, #284]	; 0x11c
 
-   snmp_asn1_enc_raw(p, ofs, m_stat->rhl.comlen, m_stat->community);
 
-  8036a18:	f8b4 2128 	ldrh.w	r2, [r4, #296]	; 0x128
 
-   ofs += m_stat->rhl.verlen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OC_STR));
 
-   ofs += 1;
 
-   snmp_asn1_enc_length(p, ofs, m_stat->rhl.comlen);
 
-   ofs += m_stat->rhl.comlenlen;
 
-  8036a1c:	18ff      	adds	r7, r7, r3
 
-  8036a1e:	b2bf      	uxth	r7, r7
 
-   snmp_asn1_enc_raw(p, ofs, m_stat->rhl.comlen, m_stat->community);
 
-  8036a20:	4639      	mov	r1, r7
 
-  8036a22:	f104 0318 	add.w	r3, r4, #24
 
-  8036a26:	4628      	mov	r0, r5
 
-  8036a28:	f7fc ffac 	bl	8033984 <snmp_asn1_enc_raw>
 
-   ofs += m_stat->rhl.comlen;
 
-  8036a2c:	f8b4 3128 	ldrh.w	r3, [r4, #296]	; 0x128
 
-  8036a30:	18ff      	adds	r7, r7, r3
 
-  8036a32:	b2bf      	uxth	r7, r7
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_CONTXT | SNMP_ASN1_CONSTR | SNMP_ASN1_PDU_GET_RESP));
 
-  8036a34:	4639      	mov	r1, r7
 
-   ofs += 1;
 
-  8036a36:	3701      	adds	r7, #1
 
-   snmp_asn1_enc_length(p, ofs, m_stat->rhl.comlen);
 
-   ofs += m_stat->rhl.comlenlen;
 
-   snmp_asn1_enc_raw(p, ofs, m_stat->rhl.comlen, m_stat->community);
 
-   ofs += m_stat->rhl.comlen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_CONTXT | SNMP_ASN1_CONSTR | SNMP_ASN1_PDU_GET_RESP));
 
-  8036a38:	22a2      	movs	r2, #162	; 0xa2
 
-   ofs += 1;
 
-  8036a3a:	b2bf      	uxth	r7, r7
 
-   snmp_asn1_enc_length(p, ofs, m_stat->rhl.comlen);
 
-   ofs += m_stat->rhl.comlenlen;
 
-   snmp_asn1_enc_raw(p, ofs, m_stat->rhl.comlen, m_stat->community);
 
-   ofs += m_stat->rhl.comlen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_CONTXT | SNMP_ASN1_CONSTR | SNMP_ASN1_PDU_GET_RESP));
 
-  8036a3c:	4628      	mov	r0, r5
 
-  8036a3e:	f7fc fe65 	bl	803370c <snmp_asn1_enc_type>
 
-   ofs += 1;
 
-   snmp_asn1_enc_length(p, ofs, m_stat->rhl.pdulen);
 
-  8036a42:	4639      	mov	r1, r7
 
-  8036a44:	f8b4 2126 	ldrh.w	r2, [r4, #294]	; 0x126
 
-  8036a48:	4628      	mov	r0, r5
 
-  8036a4a:	f7fc fe73 	bl	8033734 <snmp_asn1_enc_length>
 
-   ofs += m_stat->rhl.pdulenlen;
 
-  8036a4e:	f894 311b 	ldrb.w	r3, [r4, #283]	; 0x11b
 
-  8036a52:	18ff      	adds	r7, r7, r3
 
-  8036a54:	b2bf      	uxth	r7, r7
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG));
 
-  8036a56:	4639      	mov	r1, r7
 
-   ofs += 1;
 
-  8036a58:	3701      	adds	r7, #1
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_CONTXT | SNMP_ASN1_CONSTR | SNMP_ASN1_PDU_GET_RESP));
 
-   ofs += 1;
 
-   snmp_asn1_enc_length(p, ofs, m_stat->rhl.pdulen);
 
-   ofs += m_stat->rhl.pdulenlen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG));
 
-  8036a5a:	2202      	movs	r2, #2
 
-   ofs += 1;
 
-  8036a5c:	b2bf      	uxth	r7, r7
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_CONTXT | SNMP_ASN1_CONSTR | SNMP_ASN1_PDU_GET_RESP));
 
-   ofs += 1;
 
-   snmp_asn1_enc_length(p, ofs, m_stat->rhl.pdulen);
 
-   ofs += m_stat->rhl.pdulenlen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG));
 
-  8036a5e:	4628      	mov	r0, r5
 
-  8036a60:	f7fc fe54 	bl	803370c <snmp_asn1_enc_type>
 
-   ofs += 1;
 
-   snmp_asn1_enc_length(p, ofs, m_stat->rhl.ridlen);
 
-  8036a64:	4639      	mov	r1, r7
 
-  8036a66:	f8b4 2124 	ldrh.w	r2, [r4, #292]	; 0x124
 
-  8036a6a:	4628      	mov	r0, r5
 
-  8036a6c:	f7fc fe62 	bl	8033734 <snmp_asn1_enc_length>
 
-   ofs += m_stat->rhl.ridlenlen;
 
-  8036a70:	f894 311a 	ldrb.w	r3, [r4, #282]	; 0x11a
 
-   snmp_asn1_enc_s32t(p, ofs, m_stat->rhl.ridlen, m_stat->rid);
 
-  8036a74:	f8b4 2124 	ldrh.w	r2, [r4, #292]	; 0x124
 
-   ofs += m_stat->rhl.pdulenlen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG));
 
-   ofs += 1;
 
-   snmp_asn1_enc_length(p, ofs, m_stat->rhl.ridlen);
 
-   ofs += m_stat->rhl.ridlenlen;
 
-  8036a78:	18ff      	adds	r7, r7, r3
 
-  8036a7a:	b2bf      	uxth	r7, r7
 
-   snmp_asn1_enc_s32t(p, ofs, m_stat->rhl.ridlen, m_stat->rid);
 
-  8036a7c:	4639      	mov	r1, r7
 
-  8036a7e:	68e3      	ldr	r3, [r4, #12]
 
-  8036a80:	4628      	mov	r0, r5
 
-  8036a82:	f7fc fedf 	bl	8033844 <snmp_asn1_enc_s32t>
 
-   ofs += m_stat->rhl.ridlen;
 
-  8036a86:	f8b4 3124 	ldrh.w	r3, [r4, #292]	; 0x124
 
-  8036a8a:	18ff      	adds	r7, r7, r3
 
-  8036a8c:	b2bf      	uxth	r7, r7
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG));
 
-  8036a8e:	4639      	mov	r1, r7
 
-   ofs += 1;
 
-  8036a90:	3701      	adds	r7, #1
 
-   snmp_asn1_enc_length(p, ofs, m_stat->rhl.ridlen);
 
-   ofs += m_stat->rhl.ridlenlen;
 
-   snmp_asn1_enc_s32t(p, ofs, m_stat->rhl.ridlen, m_stat->rid);
 
-   ofs += m_stat->rhl.ridlen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG));
 
-  8036a92:	2202      	movs	r2, #2
 
-   ofs += 1;
 
-  8036a94:	b2bf      	uxth	r7, r7
 
-   snmp_asn1_enc_length(p, ofs, m_stat->rhl.ridlen);
 
-   ofs += m_stat->rhl.ridlenlen;
 
-   snmp_asn1_enc_s32t(p, ofs, m_stat->rhl.ridlen, m_stat->rid);
 
-   ofs += m_stat->rhl.ridlen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG));
 
-  8036a96:	4628      	mov	r0, r5
 
-  8036a98:	f7fc fe38 	bl	803370c <snmp_asn1_enc_type>
 
-   ofs += 1;
 
-   snmp_asn1_enc_length(p, ofs, m_stat->rhl.errstatlen);
 
-  8036a9c:	4639      	mov	r1, r7
 
-  8036a9e:	f8b4 2122 	ldrh.w	r2, [r4, #290]	; 0x122
 
-  8036aa2:	4628      	mov	r0, r5
 
-  8036aa4:	f7fc fe46 	bl	8033734 <snmp_asn1_enc_length>
 
-   ofs += m_stat->rhl.errstatlenlen;
 
-  8036aa8:	f894 3119 	ldrb.w	r3, [r4, #281]	; 0x119
 
-   snmp_asn1_enc_s32t(p, ofs, m_stat->rhl.errstatlen, m_stat->error_status);
 
-  8036aac:	f8b4 2122 	ldrh.w	r2, [r4, #290]	; 0x122
 
-   ofs += m_stat->rhl.ridlen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG));
 
-   ofs += 1;
 
-   snmp_asn1_enc_length(p, ofs, m_stat->rhl.errstatlen);
 
-   ofs += m_stat->rhl.errstatlenlen;
 
-  8036ab0:	18ff      	adds	r7, r7, r3
 
-  8036ab2:	b2bf      	uxth	r7, r7
 
-   snmp_asn1_enc_s32t(p, ofs, m_stat->rhl.errstatlen, m_stat->error_status);
 
-  8036ab4:	4639      	mov	r1, r7
 
-  8036ab6:	6923      	ldr	r3, [r4, #16]
 
-  8036ab8:	4628      	mov	r0, r5
 
-  8036aba:	f7fc fec3 	bl	8033844 <snmp_asn1_enc_s32t>
 
-   ofs += m_stat->rhl.errstatlen;
 
-  8036abe:	f8b4 3122 	ldrh.w	r3, [r4, #290]	; 0x122
 
-  8036ac2:	18ff      	adds	r7, r7, r3
 
-  8036ac4:	b2bf      	uxth	r7, r7
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG));
 
-  8036ac6:	4639      	mov	r1, r7
 
-   ofs += 1;
 
-  8036ac8:	3701      	adds	r7, #1
 
-   snmp_asn1_enc_length(p, ofs, m_stat->rhl.errstatlen);
 
-   ofs += m_stat->rhl.errstatlenlen;
 
-   snmp_asn1_enc_s32t(p, ofs, m_stat->rhl.errstatlen, m_stat->error_status);
 
-   ofs += m_stat->rhl.errstatlen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG));
 
-  8036aca:	2202      	movs	r2, #2
 
-   ofs += 1;
 
-  8036acc:	b2bf      	uxth	r7, r7
 
-   snmp_asn1_enc_length(p, ofs, m_stat->rhl.errstatlen);
 
-   ofs += m_stat->rhl.errstatlenlen;
 
-   snmp_asn1_enc_s32t(p, ofs, m_stat->rhl.errstatlen, m_stat->error_status);
 
-   ofs += m_stat->rhl.errstatlen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG));
 
-  8036ace:	4628      	mov	r0, r5
 
-  8036ad0:	f7fc fe1c 	bl	803370c <snmp_asn1_enc_type>
 
-   ofs += 1;
 
-   snmp_asn1_enc_length(p, ofs, m_stat->rhl.erridxlen);
 
-  8036ad4:	4639      	mov	r1, r7
 
-  8036ad6:	f8b4 2120 	ldrh.w	r2, [r4, #288]	; 0x120
 
-  8036ada:	4628      	mov	r0, r5
 
-  8036adc:	f7fc fe2a 	bl	8033734 <snmp_asn1_enc_length>
 
-   ofs += m_stat->rhl.erridxlenlen;
 
-  8036ae0:	f894 3118 	ldrb.w	r3, [r4, #280]	; 0x118
 
-   snmp_asn1_enc_s32t(p, ofs, m_stat->rhl.erridxlen, m_stat->error_index);
 
-  8036ae4:	f8b4 2120 	ldrh.w	r2, [r4, #288]	; 0x120
 
-   ofs += m_stat->rhl.errstatlen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG));
 
-   ofs += 1;
 
-   snmp_asn1_enc_length(p, ofs, m_stat->rhl.erridxlen);
 
-   ofs += m_stat->rhl.erridxlenlen;
 
-  8036ae8:	18ff      	adds	r7, r7, r3
 
-  8036aea:	b2bf      	uxth	r7, r7
 
-   snmp_asn1_enc_s32t(p, ofs, m_stat->rhl.erridxlen, m_stat->error_index);
 
-  8036aec:	4639      	mov	r1, r7
 
-  8036aee:	6963      	ldr	r3, [r4, #20]
 
-  8036af0:	4628      	mov	r0, r5
 
-  8036af2:	f7fc fea7 	bl	8033844 <snmp_asn1_enc_s32t>
 
-   ofs += m_stat->rhl.erridxlen;
 
-  8036af6:	f8b4 3120 	ldrh.w	r3, [r4, #288]	; 0x120
 
-  8036afa:	18fa      	adds	r2, r7, r3
 
-     LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_snd_response() p != NULL\n"));
 
-     /* pass 1, size error, encode packet ino the pbuf(s) */
 
-     ofs = snmp_resp_header_enc(m_stat, p);
 
-     snmp_varbind_list_enc(&m_stat->outvb, p, ofs);
 
-  8036afc:	4630      	mov	r0, r6
 
-  8036afe:	4629      	mov	r1, r5
 
-  8036b00:	b292      	uxth	r2, r2
 
-  8036b02:	f7ff fe9b 	bl	803683c <snmp_varbind_list_enc>
 
-     switch (m_stat->error_status)
 
-  8036b06:	6923      	ldr	r3, [r4, #16]
 
-  8036b08:	3b01      	subs	r3, #1
 
-  8036b0a:	2b04      	cmp	r3, #4
 
-  8036b0c:	d80f      	bhi.n	8036b2e <snmp_send_response+0x1da>
 
-  8036b0e:	e8df f003 	tbb	[pc, r3]
 
-  8036b12:	0603      	.short	0x0603
 
-  8036b14:	0e09      	.short	0x0e09
 
-  8036b16:	0c          	.byte	0x0c
 
-  8036b17:	00          	.byte	0x00
 
-     {
 
-       case SNMP_ES_TOOBIG:
 
-         snmp_inc_snmpouttoobigs();
 
-  8036b18:	f7fe fa0c 	bl	8034f34 <snmp_inc_snmpouttoobigs>
 
-         break;
 
-  8036b1c:	e007      	b.n	8036b2e <snmp_send_response+0x1da>
 
-       case SNMP_ES_NOSUCHNAME:
 
-         snmp_inc_snmpoutnosuchnames();
 
-  8036b1e:	f7fe fa11 	bl	8034f44 <snmp_inc_snmpoutnosuchnames>
 
-         break;
 
-  8036b22:	e004      	b.n	8036b2e <snmp_send_response+0x1da>
 
-       case SNMP_ES_BADVALUE:
 
-         snmp_inc_snmpoutbadvalues();
 
-  8036b24:	f7fe fa16 	bl	8034f54 <snmp_inc_snmpoutbadvalues>
 
-         break;
 
-  8036b28:	e001      	b.n	8036b2e <snmp_send_response+0x1da>
 
-       case SNMP_ES_GENERROR:
 
-         snmp_inc_snmpoutgenerrs();
 
-  8036b2a:	f7fe fa1b 	bl	8034f64 <snmp_inc_snmpoutgenerrs>
 
-         break;
 
-     }
 
-     snmp_inc_snmpoutgetresponses();
 
-  8036b2e:	f7fe fa21 	bl	8034f74 <snmp_inc_snmpoutgetresponses>
 
-     snmp_inc_snmpoutpkts();
 
-  8036b32:	f7fe f97f 	bl	8034e34 <snmp_inc_snmpoutpkts>
 
-     /** @todo do we need separate rx and tx pcbs for threaded case? */
 
-     /** connect to the originating source */
 
-     udp_connect(m_stat->pcb, &m_stat->sip, m_stat->sp);
 
-  8036b36:	8922      	ldrh	r2, [r4, #8]
 
-  8036b38:	6820      	ldr	r0, [r4, #0]
 
-  8036b3a:	1d21      	adds	r1, r4, #4
 
-  8036b3c:	f7fb ffa2 	bl	8032a84 <udp_connect>
 
-     err = udp_send(m_stat->pcb, p);
 
-  8036b40:	4629      	mov	r1, r5
 
-  8036b42:	6820      	ldr	r0, [r4, #0]
 
-  8036b44:	f7fb ff99 	bl	8032a7a <udp_send>
 
-       /** @todo release some memory, retry and return tooBig? tooMuchHassle? */
 
-       err = ERR_MEM;
 
-     }
 
-     else
 
-     {
 
-       err = ERR_OK;
 
-  8036b48:	f1b0 3fff 	cmp.w	r0, #4294967295
 
-  8036b4c:	bf0c      	ite	eq
 
-  8036b4e:	f04f 36ff 	moveq.w	r6, #4294967295
 
-  8036b52:	2600      	movne	r6, #0
 
-     }
 
-     /** disassociate remote address and port with this pcb */
 
-     udp_disconnect(m_stat->pcb);
 
-  8036b54:	6820      	ldr	r0, [r4, #0]
 
-  8036b56:	f7fb ffbb 	bl	8032ad0 <udp_disconnect>
 
-     pbuf_free(p);
 
-  8036b5a:	4628      	mov	r0, r5
 
-  8036b5c:	f7f9 f956 	bl	802fe0c <pbuf_free>
 
-  8036b60:	e000      	b.n	8036b64 <snmp_send_response+0x210>
 
-   }
 
-   else
 
-   {
 
-     /* first pbuf alloc try or retry alloc failed
 
-        very low on memory, couldn't return tooBig */
 
-     return ERR_MEM;
 
-  8036b62:	26ff      	movs	r6, #255	; 0xff
 
-   }
 
- }
 
-  8036b64:	b270      	sxtb	r0, r6
 
-  8036b66:	b005      	add	sp, #20
 
-  8036b68:	bdf0      	pop	{r4, r5, r6, r7, pc}
 
-  8036b6a:	bf00      	nop
 
-  8036b6c:	0804592c 	.word	0x0804592c
 
- 08036b70 <snmp_send_trap>:
 
-  * and .iso.org.dod.internet.private.enterprises.yourenterprise
 
-  * (sysObjectID) for specific traps.
 
-  */
 
- err_t
 
- snmp_send_trap(s8_t generic_trap, struct snmp_obj_id *eoid, s32_t specific_trap)
 
- {
 
-  8036b70:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-   struct pbuf *p;
 
-   u16_t i,tot_len;
 
-   for (i=0, td = &trap_dst[0]; i<SNMP_TRAP_DESTINATIONS; i++, td++)
 
-   {
 
-     if ((td->enable != 0) && !ip_addr_isany(&td->dip))
 
-  8036b74:	4b11      	ldr	r3, [pc, #68]	; (8036bbc <snmp_send_trap+0x4c>)
 
-  * and .iso.org.dod.internet.private.enterprises.yourenterprise
 
-  * (sysObjectID) for specific traps.
 
-  */
 
- err_t
 
- snmp_send_trap(s8_t generic_trap, struct snmp_obj_id *eoid, s32_t specific_trap)
 
- {
 
-  8036b76:	4617      	mov	r7, r2
 
-   struct pbuf *p;
 
-   u16_t i,tot_len;
 
-   for (i=0, td = &trap_dst[0]; i<SNMP_TRAP_DESTINATIONS; i++, td++)
 
-   {
 
-     if ((td->enable != 0) && !ip_addr_isany(&td->dip))
 
-  8036b78:	791a      	ldrb	r2, [r3, #4]
 
-  * and .iso.org.dod.internet.private.enterprises.yourenterprise
 
-  * (sysObjectID) for specific traps.
 
-  */
 
- err_t
 
- snmp_send_trap(s8_t generic_trap, struct snmp_obj_id *eoid, s32_t specific_trap)
 
- {
 
-  8036b7a:	b085      	sub	sp, #20
 
-  8036b7c:	4605      	mov	r5, r0
 
-  8036b7e:	460e      	mov	r6, r1
 
-   struct pbuf *p;
 
-   u16_t i,tot_len;
 
-   for (i=0, td = &trap_dst[0]; i<SNMP_TRAP_DESTINATIONS; i++, td++)
 
-   {
 
-     if ((td->enable != 0) && !ip_addr_isany(&td->dip))
 
-  8036b80:	2a00      	cmp	r2, #0
 
-  8036b82:	f000 81b8 	beq.w	8036ef6 <snmp_send_trap+0x386>
 
-  8036b86:	6818      	ldr	r0, [r3, #0]
 
-  8036b88:	2800      	cmp	r0, #0
 
-  8036b8a:	f000 81b4 	beq.w	8036ef6 <snmp_send_trap+0x386>
 
-     {
 
-       /* network order trap destination */
 
-       ip_addr_copy(trap_msg.dip, td->dip);
 
-  8036b8e:	4c0c      	ldr	r4, [pc, #48]	; (8036bc0 <snmp_send_trap+0x50>)
 
-  8036b90:	6060      	str	r0, [r4, #4]
 
-       /* lookup current source address for this dst */
 
-       dst_if = ip_route(&td->dip);
 
-  8036b92:	4618      	mov	r0, r3
 
-  8036b94:	f7fc f9e6 	bl	8032f64 <ip_route>
 
-       ip_addr_copy(dst_ip, dst_if->ip_addr);
 
-  8036b98:	6843      	ldr	r3, [r0, #4]
 
-       /* @todo: what about IPv6? */
 
-       trap_msg.sip_raw[0] = ip4_addr1(&dst_ip);
 
-       trap_msg.sip_raw[1] = ip4_addr2(&dst_ip);
 
-       trap_msg.sip_raw[2] = ip4_addr3(&dst_ip);
 
-       trap_msg.sip_raw[3] = ip4_addr4(&dst_ip);
 
-       trap_msg.gen_trap = generic_trap;
 
-  8036b9a:	6125      	str	r5, [r4, #16]
 
-       /* lookup current source address for this dst */
 
-       dst_if = ip_route(&td->dip);
 
-       ip_addr_copy(dst_ip, dst_if->ip_addr);
 
-       /* @todo: what about IPv6? */
 
-       trap_msg.sip_raw[0] = ip4_addr1(&dst_ip);
 
-       trap_msg.sip_raw[1] = ip4_addr2(&dst_ip);
 
-  8036b9c:	f3c3 2207 	ubfx	r2, r3, #8, #8
 
-       ip_addr_copy(trap_msg.dip, td->dip);
 
-       /* lookup current source address for this dst */
 
-       dst_if = ip_route(&td->dip);
 
-       ip_addr_copy(dst_ip, dst_if->ip_addr);
 
-       /* @todo: what about IPv6? */
 
-       trap_msg.sip_raw[0] = ip4_addr1(&dst_ip);
 
-  8036ba0:	7323      	strb	r3, [r4, #12]
 
-       trap_msg.sip_raw[1] = ip4_addr2(&dst_ip);
 
-  8036ba2:	7362      	strb	r2, [r4, #13]
 
-       trap_msg.sip_raw[2] = ip4_addr3(&dst_ip);
 
-       trap_msg.sip_raw[3] = ip4_addr4(&dst_ip);
 
-       trap_msg.gen_trap = generic_trap;
 
-       trap_msg.spc_trap = specific_trap;
 
-       if (generic_trap == SNMP_GENTRAP_ENTERPRISESPC)
 
-  8036ba4:	2d06      	cmp	r5, #6
 
-       dst_if = ip_route(&td->dip);
 
-       ip_addr_copy(dst_ip, dst_if->ip_addr);
 
-       /* @todo: what about IPv6? */
 
-       trap_msg.sip_raw[0] = ip4_addr1(&dst_ip);
 
-       trap_msg.sip_raw[1] = ip4_addr2(&dst_ip);
 
-       trap_msg.sip_raw[2] = ip4_addr3(&dst_ip);
 
-  8036ba6:	f3c3 4207 	ubfx	r2, r3, #16, #8
 
-       trap_msg.sip_raw[3] = ip4_addr4(&dst_ip);
 
-  8036baa:	f3c3 6307 	ubfx	r3, r3, #24, #8
 
-       dst_if = ip_route(&td->dip);
 
-       ip_addr_copy(dst_ip, dst_if->ip_addr);
 
-       /* @todo: what about IPv6? */
 
-       trap_msg.sip_raw[0] = ip4_addr1(&dst_ip);
 
-       trap_msg.sip_raw[1] = ip4_addr2(&dst_ip);
 
-       trap_msg.sip_raw[2] = ip4_addr3(&dst_ip);
 
-  8036bae:	73a2      	strb	r2, [r4, #14]
 
-       trap_msg.sip_raw[3] = ip4_addr4(&dst_ip);
 
-  8036bb0:	73e3      	strb	r3, [r4, #15]
 
-       trap_msg.gen_trap = generic_trap;
 
-       trap_msg.spc_trap = specific_trap;
 
-  8036bb2:	6167      	str	r7, [r4, #20]
 
-       if (generic_trap == SNMP_GENTRAP_ENTERPRISESPC)
 
-  8036bb4:	d106      	bne.n	8036bc4 <snmp_send_trap+0x54>
 
-       {
 
-         /* enterprise-Specific trap */
 
-         trap_msg.enterprise = eoid;
 
-  8036bb6:	60a6      	str	r6, [r4, #8]
 
-  8036bb8:	e008      	b.n	8036bcc <snmp_send_trap+0x5c>
 
-  8036bba:	bf00      	nop
 
-  8036bbc:	2000f820 	.word	0x2000f820
 
-  8036bc0:	2000f828 	.word	0x2000f828
 
-       }
 
-       else
 
-       {
 
-         /* generic (MIB-II) trap */
 
-         snmp_get_snmpgrpid_ptr(&trap_msg.enterprise);
 
-  8036bc4:	f104 0008 	add.w	r0, r4, #8
 
-  8036bc8:	f7fe f9e4 	bl	8034f94 <snmp_get_snmpgrpid_ptr>
 
-       }
 
-       snmp_get_sysuptime(&trap_msg.ts);
 
-  8036bcc:	48bb      	ldr	r0, [pc, #748]	; (8036ebc <snmp_send_trap+0x34c>)
 
-   struct snmp_trap_header_lengths *thl;
 
-   thl = &m_trap->thl;
 
-   tot_len = vb_len;
 
-   snmp_asn1_enc_u32t_cnt(m_trap->ts, &thl->tslen);
 
-  8036bce:	4cbc      	ldr	r4, [pc, #752]	; (8036ec0 <snmp_send_trap+0x350>)
 
-       else
 
-       {
 
-         /* generic (MIB-II) trap */
 
-         snmp_get_snmpgrpid_ptr(&trap_msg.enterprise);
 
-       }
 
-       snmp_get_sysuptime(&trap_msg.ts);
 
-  8036bd0:	f7fd fd42 	bl	8034658 <snmp_get_sysuptime>
 
-       /* pass 0, calculate length fields */
 
-       tot_len = snmp_varbind_list_sum(&trap_msg.outvb);
 
-  8036bd4:	48bb      	ldr	r0, [pc, #748]	; (8036ec4 <snmp_send_trap+0x354>)
 
-  8036bd6:	f7ff fd53 	bl	8036680 <snmp_varbind_list_sum>
 
-   struct snmp_trap_header_lengths *thl;
 
-   thl = &m_trap->thl;
 
-   tot_len = vb_len;
 
-   snmp_asn1_enc_u32t_cnt(m_trap->ts, &thl->tslen);
 
-  8036bda:	f104 0132 	add.w	r1, r4, #50	; 0x32
 
-         snmp_get_snmpgrpid_ptr(&trap_msg.enterprise);
 
-       }
 
-       snmp_get_sysuptime(&trap_msg.ts);
 
-       /* pass 0, calculate length fields */
 
-       tot_len = snmp_varbind_list_sum(&trap_msg.outvb);
 
-  8036bde:	4606      	mov	r6, r0
 
-   struct snmp_trap_header_lengths *thl;
 
-   thl = &m_trap->thl;
 
-   tot_len = vb_len;
 
-   snmp_asn1_enc_u32t_cnt(m_trap->ts, &thl->tslen);
 
-  8036be0:	69a0      	ldr	r0, [r4, #24]
 
-  8036be2:	f7fc fd51 	bl	8033688 <snmp_asn1_enc_u32t_cnt>
 
-   snmp_asn1_enc_length_cnt(thl->tslen, &thl->tslenlen);
 
-  8036be6:	8e60      	ldrh	r0, [r4, #50]	; 0x32
 
-  8036be8:	f104 0128 	add.w	r1, r4, #40	; 0x28
 
-  8036bec:	f7fc fd41 	bl	8033672 <snmp_asn1_enc_length_cnt>
 
-   tot_len += 1 + thl->tslen + thl->tslenlen;
 
-  8036bf0:	f8b4 c032 	ldrh.w	ip, [r4, #50]	; 0x32
 
-   snmp_asn1_enc_s32t_cnt(m_trap->spc_trap, &thl->strplen);
 
-  8036bf4:	6960      	ldr	r0, [r4, #20]
 
-  8036bf6:	f8cd c004 	str.w	ip, [sp, #4]
 
-  8036bfa:	f104 0134 	add.w	r1, r4, #52	; 0x34
 
-   thl = &m_trap->thl;
 
-   tot_len = vb_len;
 
-   snmp_asn1_enc_u32t_cnt(m_trap->ts, &thl->tslen);
 
-   snmp_asn1_enc_length_cnt(thl->tslen, &thl->tslenlen);
 
-   tot_len += 1 + thl->tslen + thl->tslenlen;
 
-  8036bfe:	f894 9028 	ldrb.w	r9, [r4, #40]	; 0x28
 
-   snmp_asn1_enc_s32t_cnt(m_trap->spc_trap, &thl->strplen);
 
-  8036c02:	f7fc fd56 	bl	80336b2 <snmp_asn1_enc_s32t_cnt>
 
-   snmp_asn1_enc_length_cnt(thl->strplen, &thl->strplenlen);
 
-  8036c06:	8ea0      	ldrh	r0, [r4, #52]	; 0x34
 
-  8036c08:	f104 0129 	add.w	r1, r4, #41	; 0x29
 
-  8036c0c:	f7fc fd31 	bl	8033672 <snmp_asn1_enc_length_cnt>
 
-   tot_len += 1 + thl->strplen + thl->strplenlen;
 
-  8036c10:	8ea3      	ldrh	r3, [r4, #52]	; 0x34
 
-   snmp_asn1_enc_s32t_cnt(m_trap->gen_trap, &thl->gtrplen);
 
-  8036c12:	6920      	ldr	r0, [r4, #16]
 
-  8036c14:	9302      	str	r3, [sp, #8]
 
-  8036c16:	f104 0136 	add.w	r1, r4, #54	; 0x36
 
-   snmp_asn1_enc_length_cnt(thl->tslen, &thl->tslenlen);
 
-   tot_len += 1 + thl->tslen + thl->tslenlen;
 
-   snmp_asn1_enc_s32t_cnt(m_trap->spc_trap, &thl->strplen);
 
-   snmp_asn1_enc_length_cnt(thl->strplen, &thl->strplenlen);
 
-   tot_len += 1 + thl->strplen + thl->strplenlen;
 
-  8036c1a:	f894 8029 	ldrb.w	r8, [r4, #41]	; 0x29
 
-   snmp_asn1_enc_s32t_cnt(m_trap->gen_trap, &thl->gtrplen);
 
-   snmp_asn1_enc_length_cnt(thl->gtrplen, &thl->gtrplenlen);
 
-   tot_len += 1 + thl->gtrplen + thl->gtrplenlen;
 
-   thl->aaddrlen = 4;
 
-  8036c1e:	2504      	movs	r5, #4
 
-   snmp_asn1_enc_s32t_cnt(m_trap->spc_trap, &thl->strplen);
 
-   snmp_asn1_enc_length_cnt(thl->strplen, &thl->strplenlen);
 
-   tot_len += 1 + thl->strplen + thl->strplenlen;
 
-   snmp_asn1_enc_s32t_cnt(m_trap->gen_trap, &thl->gtrplen);
 
-  8036c20:	f7fc fd47 	bl	80336b2 <snmp_asn1_enc_s32t_cnt>
 
-   snmp_asn1_enc_length_cnt(thl->gtrplen, &thl->gtrplenlen);
 
-  8036c24:	8ee0      	ldrh	r0, [r4, #54]	; 0x36
 
-  8036c26:	f104 012a 	add.w	r1, r4, #42	; 0x2a
 
-  8036c2a:	f7fc fd22 	bl	8033672 <snmp_asn1_enc_length_cnt>
 
-   tot_len += 1 + thl->gtrplen + thl->gtrplenlen;
 
-   thl->aaddrlen = 4;
 
-   snmp_asn1_enc_length_cnt(thl->aaddrlen, &thl->aaddrlenlen);
 
-  8036c2e:	4628      	mov	r0, r5
 
-  8036c30:	f104 012b 	add.w	r1, r4, #43	; 0x2b
 
-   snmp_asn1_enc_length_cnt(thl->strplen, &thl->strplenlen);
 
-   tot_len += 1 + thl->strplen + thl->strplenlen;
 
-   snmp_asn1_enc_s32t_cnt(m_trap->gen_trap, &thl->gtrplen);
 
-   snmp_asn1_enc_length_cnt(thl->gtrplen, &thl->gtrplenlen);
 
-   tot_len += 1 + thl->gtrplen + thl->gtrplenlen;
 
-  8036c34:	f8b4 b036 	ldrh.w	fp, [r4, #54]	; 0x36
 
-  8036c38:	f894 702a 	ldrb.w	r7, [r4, #42]	; 0x2a
 
-   thl->aaddrlen = 4;
 
-  8036c3c:	8725      	strh	r5, [r4, #56]	; 0x38
 
-   snmp_asn1_enc_length_cnt(thl->aaddrlen, &thl->aaddrlenlen);
 
-  8036c3e:	f7fc fd18 	bl	8033672 <snmp_asn1_enc_length_cnt>
 
-   tot_len += 1 + thl->aaddrlen + thl->aaddrlenlen;
 
-  8036c42:	f894 202b 	ldrb.w	r2, [r4, #43]	; 0x2b
 
-   snmp_asn1_enc_oid_cnt(m_trap->enterprise->len, &m_trap->enterprise->id[0], &thl->eidlen);
 
-  8036c46:	68a1      	ldr	r1, [r4, #8]
 
-   snmp_asn1_enc_length_cnt(thl->gtrplen, &thl->gtrplenlen);
 
-   tot_len += 1 + thl->gtrplen + thl->gtrplenlen;
 
-   thl->aaddrlen = 4;
 
-   snmp_asn1_enc_length_cnt(thl->aaddrlen, &thl->aaddrlenlen);
 
-   tot_len += 1 + thl->aaddrlen + thl->aaddrlenlen;
 
-  8036c48:	9203      	str	r2, [sp, #12]
 
-   snmp_asn1_enc_oid_cnt(m_trap->enterprise->len, &m_trap->enterprise->id[0], &thl->eidlen);
 
-  8036c4a:	f811 0b04 	ldrb.w	r0, [r1], #4
 
-   snmp_asn1_enc_length_cnt(thl->gtrplen, &thl->gtrplenlen);
 
-   tot_len += 1 + thl->gtrplen + thl->gtrplenlen;
 
-   thl->aaddrlen = 4;
 
-   snmp_asn1_enc_length_cnt(thl->aaddrlen, &thl->aaddrlenlen);
 
-   tot_len += 1 + thl->aaddrlen + thl->aaddrlenlen;
 
-  8036c4e:	f8b4 a038 	ldrh.w	sl, [r4, #56]	; 0x38
 
-   snmp_asn1_enc_oid_cnt(m_trap->enterprise->len, &m_trap->enterprise->id[0], &thl->eidlen);
 
-  8036c52:	f104 023a 	add.w	r2, r4, #58	; 0x3a
 
-  8036c56:	f7fc fd41 	bl	80336dc <snmp_asn1_enc_oid_cnt>
 
-   snmp_asn1_enc_length_cnt(thl->eidlen, &thl->eidlenlen);
 
-  8036c5a:	8f60      	ldrh	r0, [r4, #58]	; 0x3a
 
-  8036c5c:	f104 012c 	add.w	r1, r4, #44	; 0x2c
 
-  8036c60:	f7fc fd07 	bl	8033672 <snmp_asn1_enc_length_cnt>
 
-   snmp_asn1_enc_length_cnt(thl->tslen, &thl->tslenlen);
 
-   tot_len += 1 + thl->tslen + thl->tslenlen;
 
-   snmp_asn1_enc_s32t_cnt(m_trap->spc_trap, &thl->strplen);
 
-   snmp_asn1_enc_length_cnt(thl->strplen, &thl->strplenlen);
 
-   tot_len += 1 + thl->strplen + thl->strplenlen;
 
-  8036c64:	f8dd c004 	ldr.w	ip, [sp, #4]
 
-  8036c68:	9b02      	ldr	r3, [sp, #8]
 
-   snmp_asn1_enc_s32t_cnt(m_trap->gen_trap, &thl->gtrplen);
 
-   snmp_asn1_enc_length_cnt(thl->gtrplen, &thl->gtrplenlen);
 
-   tot_len += 1 + thl->gtrplen + thl->gtrplenlen;
 
-  8036c6a:	8f62      	ldrh	r2, [r4, #58]	; 0x3a
 
-   snmp_asn1_enc_length_cnt(thl->tslen, &thl->tslenlen);
 
-   tot_len += 1 + thl->tslen + thl->tslenlen;
 
-   snmp_asn1_enc_s32t_cnt(m_trap->spc_trap, &thl->strplen);
 
-   snmp_asn1_enc_length_cnt(thl->strplen, &thl->strplenlen);
 
-   tot_len += 1 + thl->strplen + thl->strplenlen;
 
-  8036c6c:	4463      	add	r3, ip
 
-  8036c6e:	3305      	adds	r3, #5
 
-   snmp_asn1_enc_s32t_cnt(m_trap->gen_trap, &thl->gtrplen);
 
-   snmp_asn1_enc_length_cnt(thl->gtrplen, &thl->gtrplenlen);
 
-   tot_len += 1 + thl->gtrplen + thl->gtrplenlen;
 
-  8036c70:	449b      	add	fp, r3
 
-  8036c72:	44da      	add	sl, fp
 
-  8036c74:	fa12 fa8a 	uxtah	sl, r2, sl
 
-   thl->aaddrlen = 4;
 
-   snmp_asn1_enc_length_cnt(thl->aaddrlen, &thl->aaddrlenlen);
 
-   tot_len += 1 + thl->aaddrlen + thl->aaddrlenlen;
 
-  8036c78:	44d1      	add	r9, sl
 
-  8036c7a:	44c8      	add	r8, r9
 
-   snmp_asn1_enc_oid_cnt(m_trap->enterprise->len, &m_trap->enterprise->id[0], &thl->eidlen);
 
-   snmp_asn1_enc_length_cnt(thl->eidlen, &thl->eidlenlen);
 
-   tot_len += 1 + thl->eidlen + thl->eidlenlen;
 
-  8036c7c:	9b03      	ldr	r3, [sp, #12]
 
-   snmp_asn1_enc_length_cnt(thl->gtrplen, &thl->gtrplenlen);
 
-   tot_len += 1 + thl->gtrplen + thl->gtrplenlen;
 
-   thl->aaddrlen = 4;
 
-   snmp_asn1_enc_length_cnt(thl->aaddrlen, &thl->aaddrlenlen);
 
-   tot_len += 1 + thl->aaddrlen + thl->aaddrlenlen;
 
-  8036c7e:	fa17 f788 	uxtah	r7, r7, r8
 
-   snmp_asn1_enc_oid_cnt(m_trap->enterprise->len, &m_trap->enterprise->id[0], &thl->eidlen);
 
-   snmp_asn1_enc_length_cnt(thl->eidlen, &thl->eidlenlen);
 
-   tot_len += 1 + thl->eidlen + thl->eidlenlen;
 
-  8036c82:	19df      	adds	r7, r3, r7
 
-  8036c84:	f894 302c 	ldrb.w	r3, [r4, #44]	; 0x2c
 
-  8036c88:	18ff      	adds	r7, r7, r3
 
-  8036c8a:	fa16 f687 	uxtah	r6, r6, r7
 
-  8036c8e:	b2b6      	uxth	r6, r6
 
-   thl->pdulen = tot_len;
 
-   snmp_asn1_enc_length_cnt(thl->pdulen, &thl->pdulenlen);
 
-  8036c90:	4630      	mov	r0, r6
 
-  8036c92:	f104 012d 	add.w	r1, r4, #45	; 0x2d
 
-   tot_len += 1 + thl->pdulenlen;
 
-   thl->comlen = sizeof(snmp_publiccommunity) - 1;
 
-  8036c96:	2706      	movs	r7, #6
 
-   snmp_asn1_enc_oid_cnt(m_trap->enterprise->len, &m_trap->enterprise->id[0], &thl->eidlen);
 
-   snmp_asn1_enc_length_cnt(thl->eidlen, &thl->eidlenlen);
 
-   tot_len += 1 + thl->eidlen + thl->eidlenlen;
 
-   thl->pdulen = tot_len;
 
-  8036c98:	87a6      	strh	r6, [r4, #60]	; 0x3c
 
-   snmp_asn1_enc_length_cnt(thl->pdulen, &thl->pdulenlen);
 
-  8036c9a:	f7fc fcea 	bl	8033672 <snmp_asn1_enc_length_cnt>
 
-   tot_len += 1 + thl->pdulenlen;
 
-   thl->comlen = sizeof(snmp_publiccommunity) - 1;
 
-   snmp_asn1_enc_length_cnt(thl->comlen, &thl->comlenlen);
 
-  8036c9e:	4638      	mov	r0, r7
 
-  8036ca0:	f104 012e 	add.w	r1, r4, #46	; 0x2e
 
-   snmp_asn1_enc_length_cnt(thl->eidlen, &thl->eidlenlen);
 
-   tot_len += 1 + thl->eidlen + thl->eidlenlen;
 
-   thl->pdulen = tot_len;
 
-   snmp_asn1_enc_length_cnt(thl->pdulen, &thl->pdulenlen);
 
-   tot_len += 1 + thl->pdulenlen;
 
-  8036ca4:	f894 a02d 	ldrb.w	sl, [r4, #45]	; 0x2d
 
-   thl->comlen = sizeof(snmp_publiccommunity) - 1;
 
-  8036ca8:	87e7      	strh	r7, [r4, #62]	; 0x3e
 
-   snmp_asn1_enc_length_cnt(thl->comlen, &thl->comlenlen);
 
-  8036caa:	f7fc fce2 	bl	8033672 <snmp_asn1_enc_length_cnt>
 
-   tot_len += 1 + thl->comlenlen + thl->comlen;
 
-   snmp_asn1_enc_s32t_cnt(snmp_version, &thl->verlen);
 
-  8036cae:	4b86      	ldr	r3, [pc, #536]	; (8036ec8 <snmp_send_trap+0x358>)
 
-   snmp_asn1_enc_length_cnt(thl->pdulen, &thl->pdulenlen);
 
-   tot_len += 1 + thl->pdulenlen;
 
-   thl->comlen = sizeof(snmp_publiccommunity) - 1;
 
-   snmp_asn1_enc_length_cnt(thl->comlen, &thl->comlenlen);
 
-   tot_len += 1 + thl->comlenlen + thl->comlen;
 
-  8036cb0:	f894 902e 	ldrb.w	r9, [r4, #46]	; 0x2e
 
-   snmp_asn1_enc_s32t_cnt(snmp_version, &thl->verlen);
 
-  8036cb4:	f8d3 8000 	ldr.w	r8, [r3]
 
-   snmp_asn1_enc_length_cnt(thl->pdulen, &thl->pdulenlen);
 
-   tot_len += 1 + thl->pdulenlen;
 
-   thl->comlen = sizeof(snmp_publiccommunity) - 1;
 
-   snmp_asn1_enc_length_cnt(thl->comlen, &thl->comlenlen);
 
-   tot_len += 1 + thl->comlenlen + thl->comlen;
 
-  8036cb8:	f8b4 b03e 	ldrh.w	fp, [r4, #62]	; 0x3e
 
-   snmp_asn1_enc_s32t_cnt(snmp_version, &thl->verlen);
 
-  8036cbc:	4640      	mov	r0, r8
 
-  8036cbe:	f104 0140 	add.w	r1, r4, #64	; 0x40
 
-  8036cc2:	f7fc fcf6 	bl	80336b2 <snmp_asn1_enc_s32t_cnt>
 
-   snmp_asn1_enc_length_cnt(thl->verlen, &thl->verlenlen);
 
-  8036cc6:	f8b4 0040 	ldrh.w	r0, [r4, #64]	; 0x40
 
-  8036cca:	f104 012f 	add.w	r1, r4, #47	; 0x2f
 
-  8036cce:	f7fc fcd0 	bl	8033672 <snmp_asn1_enc_length_cnt>
 
-   snmp_asn1_enc_length_cnt(thl->pdulen, &thl->pdulenlen);
 
-   tot_len += 1 + thl->pdulenlen;
 
-   thl->comlen = sizeof(snmp_publiccommunity) - 1;
 
-   snmp_asn1_enc_length_cnt(thl->comlen, &thl->comlenlen);
 
-   tot_len += 1 + thl->comlenlen + thl->comlen;
 
-  8036cd2:	f8b4 3040 	ldrh.w	r3, [r4, #64]	; 0x40
 
-  8036cd6:	449b      	add	fp, r3
 
-  8036cd8:	f10b 0b03 	add.w	fp, fp, #3
 
-   snmp_asn1_enc_s32t_cnt(snmp_version, &thl->verlen);
 
-   snmp_asn1_enc_length_cnt(thl->verlen, &thl->verlenlen);
 
-   tot_len += 1 + thl->verlen + thl->verlenlen;
 
-  8036cdc:	f894 302f 	ldrb.w	r3, [r4, #47]	; 0x2f
 
-   snmp_asn1_enc_length_cnt(thl->pdulen, &thl->pdulenlen);
 
-   tot_len += 1 + thl->pdulenlen;
 
-   thl->comlen = sizeof(snmp_publiccommunity) - 1;
 
-   snmp_asn1_enc_length_cnt(thl->comlen, &thl->comlenlen);
 
-   tot_len += 1 + thl->comlenlen + thl->comlen;
 
-  8036ce0:	44da      	add	sl, fp
 
-   snmp_asn1_enc_s32t_cnt(snmp_version, &thl->verlen);
 
-   snmp_asn1_enc_length_cnt(thl->verlen, &thl->verlenlen);
 
-   tot_len += 1 + thl->verlen + thl->verlenlen;
 
-  8036ce2:	44d1      	add	r9, sl
 
-  8036ce4:	4499      	add	r9, r3
 
-  8036ce6:	fa16 f689 	uxtah	r6, r6, r9
 
-  8036cea:	b2b6      	uxth	r6, r6
 
-   thl->seqlen = tot_len;
 
-   snmp_asn1_enc_length_cnt(thl->seqlen, &thl->seqlenlen);
 
-  8036cec:	4630      	mov	r0, r6
 
-  8036cee:	f104 0130 	add.w	r1, r4, #48	; 0x30
 
-   snmp_asn1_enc_s32t_cnt(snmp_version, &thl->verlen);
 
-   snmp_asn1_enc_length_cnt(thl->verlen, &thl->verlenlen);
 
-   tot_len += 1 + thl->verlen + thl->verlenlen;
 
-   thl->seqlen = tot_len;
 
-  8036cf2:	f8a4 6042 	strh.w	r6, [r4, #66]	; 0x42
 
-   snmp_asn1_enc_length_cnt(thl->seqlen, &thl->seqlenlen);
 
-  8036cf6:	f7fc fcbc 	bl	8033672 <snmp_asn1_enc_length_cnt>
 
-   tot_len += 1 + thl->seqlenlen;
 
-  8036cfa:	f894 3030 	ldrb.w	r3, [r4, #48]	; 0x30
 
-  8036cfe:	3301      	adds	r3, #1
 
-  8036d00:	18f1      	adds	r1, r6, r3
 
-       /* pass 0, calculate length fields */
 
-       tot_len = snmp_varbind_list_sum(&trap_msg.outvb);
 
-       tot_len = snmp_trap_header_sum(&trap_msg, tot_len);
 
-       /* allocate pbuf(s) */
 
-       p = pbuf_alloc(PBUF_TRANSPORT, tot_len, PBUF_POOL);
 
-  8036d02:	2000      	movs	r0, #0
 
-  8036d04:	b289      	uxth	r1, r1
 
-  8036d06:	2203      	movs	r2, #3
 
-  8036d08:	f7f9 f8cd 	bl	802fea6 <pbuf_alloc>
 
-       if (p != NULL)
 
-  8036d0c:	4606      	mov	r6, r0
 
-  8036d0e:	2800      	cmp	r0, #0
 
-  8036d10:	f000 80f3 	beq.w	8036efa <snmp_send_trap+0x38a>
 
- snmp_trap_header_enc(struct snmp_msg_trap *m_trap, struct pbuf *p)
 
- {
 
-   u16_t ofs;
 
-   ofs = 0;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_CONSTR | SNMP_ASN1_SEQ));
 
-  8036d14:	2100      	movs	r1, #0
 
-  8036d16:	2230      	movs	r2, #48	; 0x30
 
-  8036d18:	f7fc fcf8 	bl	803370c <snmp_asn1_enc_type>
 
-   ofs += 1;
 
-   snmp_asn1_enc_length(p, ofs, m_trap->thl.seqlen);
 
-  8036d1c:	2101      	movs	r1, #1
 
-  8036d1e:	f8b4 2042 	ldrh.w	r2, [r4, #66]	; 0x42
 
-  8036d22:	4630      	mov	r0, r6
 
-  8036d24:	f7fc fd06 	bl	8033734 <snmp_asn1_enc_length>
 
-   ofs += m_trap->thl.seqlenlen;
 
-  8036d28:	f894 9030 	ldrb.w	r9, [r4, #48]	; 0x30
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG));
 
-  8036d2c:	2202      	movs	r2, #2
 
-  8036d2e:	f109 0101 	add.w	r1, r9, #1
 
-  8036d32:	4630      	mov	r0, r6
 
-   ofs += 1;
 
-  8036d34:	f109 0902 	add.w	r9, r9, #2
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_CONSTR | SNMP_ASN1_SEQ));
 
-   ofs += 1;
 
-   snmp_asn1_enc_length(p, ofs, m_trap->thl.seqlen);
 
-   ofs += m_trap->thl.seqlenlen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG));
 
-  8036d38:	f7fc fce8 	bl	803370c <snmp_asn1_enc_type>
 
-   ofs += 1;
 
-   snmp_asn1_enc_length(p, ofs, m_trap->thl.verlen);
 
-  8036d3c:	4649      	mov	r1, r9
 
-  8036d3e:	f8b4 2040 	ldrh.w	r2, [r4, #64]	; 0x40
 
-  8036d42:	4630      	mov	r0, r6
 
-  8036d44:	f7fc fcf6 	bl	8033734 <snmp_asn1_enc_length>
 
-   ofs += m_trap->thl.verlenlen;
 
-  8036d48:	f894 302f 	ldrb.w	r3, [r4, #47]	; 0x2f
 
-   snmp_asn1_enc_s32t(p, ofs, m_trap->thl.verlen, snmp_version);
 
-  8036d4c:	f8b4 2040 	ldrh.w	r2, [r4, #64]	; 0x40
 
-   ofs += m_trap->thl.seqlenlen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG));
 
-   ofs += 1;
 
-   snmp_asn1_enc_length(p, ofs, m_trap->thl.verlen);
 
-   ofs += m_trap->thl.verlenlen;
 
-  8036d50:	4499      	add	r9, r3
 
-   snmp_asn1_enc_s32t(p, ofs, m_trap->thl.verlen, snmp_version);
 
-  8036d52:	4649      	mov	r1, r9
 
-  8036d54:	4643      	mov	r3, r8
 
-  8036d56:	4630      	mov	r0, r6
 
-  8036d58:	f7fc fd74 	bl	8033844 <snmp_asn1_enc_s32t>
 
-   ofs += m_trap->thl.verlen;
 
-  8036d5c:	f8b4 3040 	ldrh.w	r3, [r4, #64]	; 0x40
 
-  8036d60:	4499      	add	r9, r3
 
-  8036d62:	fa1f f989 	uxth.w	r9, r9
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OC_STR));
 
-  8036d66:	462a      	mov	r2, r5
 
-   ofs += 1;
 
-  8036d68:	f109 0501 	add.w	r5, r9, #1
 
-   snmp_asn1_enc_length(p, ofs, m_trap->thl.verlen);
 
-   ofs += m_trap->thl.verlenlen;
 
-   snmp_asn1_enc_s32t(p, ofs, m_trap->thl.verlen, snmp_version);
 
-   ofs += m_trap->thl.verlen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OC_STR));
 
-  8036d6c:	4649      	mov	r1, r9
 
-   ofs += 1;
 
-  8036d6e:	b2ad      	uxth	r5, r5
 
-   snmp_asn1_enc_length(p, ofs, m_trap->thl.verlen);
 
-   ofs += m_trap->thl.verlenlen;
 
-   snmp_asn1_enc_s32t(p, ofs, m_trap->thl.verlen, snmp_version);
 
-   ofs += m_trap->thl.verlen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OC_STR));
 
-  8036d70:	4630      	mov	r0, r6
 
-  8036d72:	f7fc fccb 	bl	803370c <snmp_asn1_enc_type>
 
-   ofs += 1;
 
-   snmp_asn1_enc_length(p, ofs, m_trap->thl.comlen);
 
-  8036d76:	4629      	mov	r1, r5
 
-  8036d78:	8fe2      	ldrh	r2, [r4, #62]	; 0x3e
 
-  8036d7a:	4630      	mov	r0, r6
 
-  8036d7c:	f7fc fcda 	bl	8033734 <snmp_asn1_enc_length>
 
-   ofs += m_trap->thl.comlenlen;
 
-  8036d80:	f894 302e 	ldrb.w	r3, [r4, #46]	; 0x2e
 
-   snmp_asn1_enc_raw(p, ofs, m_trap->thl.comlen, (u8_t *)&snmp_publiccommunity[0]);
 
-  8036d84:	8fe2      	ldrh	r2, [r4, #62]	; 0x3e
 
-   ofs += m_trap->thl.verlen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OC_STR));
 
-   ofs += 1;
 
-   snmp_asn1_enc_length(p, ofs, m_trap->thl.comlen);
 
-   ofs += m_trap->thl.comlenlen;
 
-  8036d86:	18ed      	adds	r5, r5, r3
 
-  8036d88:	b2ad      	uxth	r5, r5
 
-   snmp_asn1_enc_raw(p, ofs, m_trap->thl.comlen, (u8_t *)&snmp_publiccommunity[0]);
 
-  8036d8a:	4629      	mov	r1, r5
 
-  8036d8c:	4b4f      	ldr	r3, [pc, #316]	; (8036ecc <snmp_send_trap+0x35c>)
 
-  8036d8e:	4630      	mov	r0, r6
 
-  8036d90:	f7fc fdf8 	bl	8033984 <snmp_asn1_enc_raw>
 
-   ofs += m_trap->thl.comlen;
 
-  8036d94:	8fe3      	ldrh	r3, [r4, #62]	; 0x3e
 
-  8036d96:	18ed      	adds	r5, r5, r3
 
-  8036d98:	b2ad      	uxth	r5, r5
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_CONTXT | SNMP_ASN1_CONSTR | SNMP_ASN1_PDU_TRAP));
 
-  8036d9a:	4629      	mov	r1, r5
 
-   ofs += 1;
 
-  8036d9c:	3501      	adds	r5, #1
 
-   snmp_asn1_enc_length(p, ofs, m_trap->thl.comlen);
 
-   ofs += m_trap->thl.comlenlen;
 
-   snmp_asn1_enc_raw(p, ofs, m_trap->thl.comlen, (u8_t *)&snmp_publiccommunity[0]);
 
-   ofs += m_trap->thl.comlen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_CONTXT | SNMP_ASN1_CONSTR | SNMP_ASN1_PDU_TRAP));
 
-  8036d9e:	22a4      	movs	r2, #164	; 0xa4
 
-   ofs += 1;
 
-  8036da0:	b2ad      	uxth	r5, r5
 
-   snmp_asn1_enc_length(p, ofs, m_trap->thl.comlen);
 
-   ofs += m_trap->thl.comlenlen;
 
-   snmp_asn1_enc_raw(p, ofs, m_trap->thl.comlen, (u8_t *)&snmp_publiccommunity[0]);
 
-   ofs += m_trap->thl.comlen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_CONTXT | SNMP_ASN1_CONSTR | SNMP_ASN1_PDU_TRAP));
 
-  8036da2:	4630      	mov	r0, r6
 
-  8036da4:	f7fc fcb2 	bl	803370c <snmp_asn1_enc_type>
 
-   ofs += 1;
 
-   snmp_asn1_enc_length(p, ofs, m_trap->thl.pdulen);
 
-  8036da8:	4629      	mov	r1, r5
 
-  8036daa:	8fa2      	ldrh	r2, [r4, #60]	; 0x3c
 
-  8036dac:	4630      	mov	r0, r6
 
-  8036dae:	f7fc fcc1 	bl	8033734 <snmp_asn1_enc_length>
 
-   ofs += m_trap->thl.pdulenlen;
 
-  8036db2:	f894 302d 	ldrb.w	r3, [r4, #45]	; 0x2d
 
-  8036db6:	18ed      	adds	r5, r5, r3
 
-  8036db8:	b2ad      	uxth	r5, r5
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OBJ_ID));
 
-  8036dba:	4629      	mov	r1, r5
 
-   ofs += 1;
 
-  8036dbc:	3501      	adds	r5, #1
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_CONTXT | SNMP_ASN1_CONSTR | SNMP_ASN1_PDU_TRAP));
 
-   ofs += 1;
 
-   snmp_asn1_enc_length(p, ofs, m_trap->thl.pdulen);
 
-   ofs += m_trap->thl.pdulenlen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OBJ_ID));
 
-  8036dbe:	463a      	mov	r2, r7
 
-   ofs += 1;
 
-  8036dc0:	b2ad      	uxth	r5, r5
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_CONTXT | SNMP_ASN1_CONSTR | SNMP_ASN1_PDU_TRAP));
 
-   ofs += 1;
 
-   snmp_asn1_enc_length(p, ofs, m_trap->thl.pdulen);
 
-   ofs += m_trap->thl.pdulenlen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OBJ_ID));
 
-  8036dc2:	4630      	mov	r0, r6
 
-  8036dc4:	f7fc fca2 	bl	803370c <snmp_asn1_enc_type>
 
-   ofs += 1;
 
-   snmp_asn1_enc_length(p, ofs, m_trap->thl.eidlen);
 
-  8036dc8:	4629      	mov	r1, r5
 
-  8036dca:	8f62      	ldrh	r2, [r4, #58]	; 0x3a
 
-  8036dcc:	4630      	mov	r0, r6
 
-  8036dce:	f7fc fcb1 	bl	8033734 <snmp_asn1_enc_length>
 
-   ofs += m_trap->thl.eidlenlen;
 
-  8036dd2:	f894 302c 	ldrb.w	r3, [r4, #44]	; 0x2c
 
-  8036dd6:	18ed      	adds	r5, r5, r3
 
-   snmp_asn1_enc_oid(p, ofs, m_trap->enterprise->len, &m_trap->enterprise->id[0]);
 
-  8036dd8:	68a3      	ldr	r3, [r4, #8]
 
-   ofs += m_trap->thl.pdulenlen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OBJ_ID));
 
-   ofs += 1;
 
-   snmp_asn1_enc_length(p, ofs, m_trap->thl.eidlen);
 
-   ofs += m_trap->thl.eidlenlen;
 
-  8036dda:	b2ad      	uxth	r5, r5
 
-   snmp_asn1_enc_oid(p, ofs, m_trap->enterprise->len, &m_trap->enterprise->id[0]);
 
-  8036ddc:	4629      	mov	r1, r5
 
-  8036dde:	f813 2b04 	ldrb.w	r2, [r3], #4
 
-  8036de2:	4630      	mov	r0, r6
 
-  8036de4:	f7fc fd5b 	bl	803389e <snmp_asn1_enc_oid>
 
-   ofs += m_trap->thl.eidlen;
 
-  8036de8:	8f63      	ldrh	r3, [r4, #58]	; 0x3a
 
-  8036dea:	18ed      	adds	r5, r5, r3
 
-  8036dec:	b2ad      	uxth	r5, r5
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_IPADDR));
 
-  8036dee:	4629      	mov	r1, r5
 
-   ofs += 1;
 
-  8036df0:	3501      	adds	r5, #1
 
-   snmp_asn1_enc_length(p, ofs, m_trap->thl.eidlen);
 
-   ofs += m_trap->thl.eidlenlen;
 
-   snmp_asn1_enc_oid(p, ofs, m_trap->enterprise->len, &m_trap->enterprise->id[0]);
 
-   ofs += m_trap->thl.eidlen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_IPADDR));
 
-  8036df2:	2240      	movs	r2, #64	; 0x40
 
-   ofs += 1;
 
-  8036df4:	b2ad      	uxth	r5, r5
 
-   snmp_asn1_enc_length(p, ofs, m_trap->thl.eidlen);
 
-   ofs += m_trap->thl.eidlenlen;
 
-   snmp_asn1_enc_oid(p, ofs, m_trap->enterprise->len, &m_trap->enterprise->id[0]);
 
-   ofs += m_trap->thl.eidlen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_IPADDR));
 
-  8036df6:	4630      	mov	r0, r6
 
-  8036df8:	f7fc fc88 	bl	803370c <snmp_asn1_enc_type>
 
-   ofs += 1;
 
-   snmp_asn1_enc_length(p, ofs, m_trap->thl.aaddrlen);
 
-  8036dfc:	4629      	mov	r1, r5
 
-  8036dfe:	8f22      	ldrh	r2, [r4, #56]	; 0x38
 
-  8036e00:	4630      	mov	r0, r6
 
-  8036e02:	f7fc fc97 	bl	8033734 <snmp_asn1_enc_length>
 
-   ofs += m_trap->thl.aaddrlenlen;
 
-  8036e06:	f894 302b 	ldrb.w	r3, [r4, #43]	; 0x2b
 
-   snmp_asn1_enc_raw(p, ofs, m_trap->thl.aaddrlen, &m_trap->sip_raw[0]);
 
-  8036e0a:	8f22      	ldrh	r2, [r4, #56]	; 0x38
 
-   ofs += m_trap->thl.eidlen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_IPADDR));
 
-   ofs += 1;
 
-   snmp_asn1_enc_length(p, ofs, m_trap->thl.aaddrlen);
 
-   ofs += m_trap->thl.aaddrlenlen;
 
-  8036e0c:	18ed      	adds	r5, r5, r3
 
-  8036e0e:	b2ad      	uxth	r5, r5
 
-   snmp_asn1_enc_raw(p, ofs, m_trap->thl.aaddrlen, &m_trap->sip_raw[0]);
 
-  8036e10:	4629      	mov	r1, r5
 
-  8036e12:	f104 030c 	add.w	r3, r4, #12
 
-  8036e16:	4630      	mov	r0, r6
 
-  8036e18:	f7fc fdb4 	bl	8033984 <snmp_asn1_enc_raw>
 
-   ofs += m_trap->thl.aaddrlen;
 
-  8036e1c:	8f23      	ldrh	r3, [r4, #56]	; 0x38
 
-  8036e1e:	18ed      	adds	r5, r5, r3
 
-  8036e20:	b2ad      	uxth	r5, r5
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG));
 
-  8036e22:	4629      	mov	r1, r5
 
-   ofs += 1;
 
-  8036e24:	3501      	adds	r5, #1
 
-   snmp_asn1_enc_length(p, ofs, m_trap->thl.aaddrlen);
 
-   ofs += m_trap->thl.aaddrlenlen;
 
-   snmp_asn1_enc_raw(p, ofs, m_trap->thl.aaddrlen, &m_trap->sip_raw[0]);
 
-   ofs += m_trap->thl.aaddrlen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG));
 
-  8036e26:	2202      	movs	r2, #2
 
-   ofs += 1;
 
-  8036e28:	b2ad      	uxth	r5, r5
 
-   snmp_asn1_enc_length(p, ofs, m_trap->thl.aaddrlen);
 
-   ofs += m_trap->thl.aaddrlenlen;
 
-   snmp_asn1_enc_raw(p, ofs, m_trap->thl.aaddrlen, &m_trap->sip_raw[0]);
 
-   ofs += m_trap->thl.aaddrlen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG));
 
-  8036e2a:	4630      	mov	r0, r6
 
-  8036e2c:	f7fc fc6e 	bl	803370c <snmp_asn1_enc_type>
 
-   ofs += 1;
 
-   snmp_asn1_enc_length(p, ofs, m_trap->thl.gtrplen);
 
-  8036e30:	4629      	mov	r1, r5
 
-  8036e32:	8ee2      	ldrh	r2, [r4, #54]	; 0x36
 
-  8036e34:	4630      	mov	r0, r6
 
-  8036e36:	f7fc fc7d 	bl	8033734 <snmp_asn1_enc_length>
 
-   ofs += m_trap->thl.gtrplenlen;
 
-  8036e3a:	f894 302a 	ldrb.w	r3, [r4, #42]	; 0x2a
 
-   snmp_asn1_enc_u32t(p, ofs, m_trap->thl.gtrplen, m_trap->gen_trap);
 
-  8036e3e:	8ee2      	ldrh	r2, [r4, #54]	; 0x36
 
-   ofs += m_trap->thl.aaddrlen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG));
 
-   ofs += 1;
 
-   snmp_asn1_enc_length(p, ofs, m_trap->thl.gtrplen);
 
-   ofs += m_trap->thl.gtrplenlen;
 
-  8036e40:	18ed      	adds	r5, r5, r3
 
-  8036e42:	b2ad      	uxth	r5, r5
 
-   snmp_asn1_enc_u32t(p, ofs, m_trap->thl.gtrplen, m_trap->gen_trap);
 
-  8036e44:	4629      	mov	r1, r5
 
-  8036e46:	6923      	ldr	r3, [r4, #16]
 
-  8036e48:	4630      	mov	r0, r6
 
-  8036e4a:	f7fc fcbb 	bl	80337c4 <snmp_asn1_enc_u32t>
 
-   ofs += m_trap->thl.gtrplen;
 
-  8036e4e:	8ee3      	ldrh	r3, [r4, #54]	; 0x36
 
-  8036e50:	18ed      	adds	r5, r5, r3
 
-  8036e52:	b2ad      	uxth	r5, r5
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG));
 
-  8036e54:	4629      	mov	r1, r5
 
-   ofs += 1;
 
-  8036e56:	3501      	adds	r5, #1
 
-   snmp_asn1_enc_length(p, ofs, m_trap->thl.gtrplen);
 
-   ofs += m_trap->thl.gtrplenlen;
 
-   snmp_asn1_enc_u32t(p, ofs, m_trap->thl.gtrplen, m_trap->gen_trap);
 
-   ofs += m_trap->thl.gtrplen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG));
 
-  8036e58:	2202      	movs	r2, #2
 
-   ofs += 1;
 
-  8036e5a:	b2ad      	uxth	r5, r5
 
-   snmp_asn1_enc_length(p, ofs, m_trap->thl.gtrplen);
 
-   ofs += m_trap->thl.gtrplenlen;
 
-   snmp_asn1_enc_u32t(p, ofs, m_trap->thl.gtrplen, m_trap->gen_trap);
 
-   ofs += m_trap->thl.gtrplen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG));
 
-  8036e5c:	4630      	mov	r0, r6
 
-  8036e5e:	f7fc fc55 	bl	803370c <snmp_asn1_enc_type>
 
-   ofs += 1;
 
-   snmp_asn1_enc_length(p, ofs, m_trap->thl.strplen);
 
-  8036e62:	4629      	mov	r1, r5
 
-  8036e64:	8ea2      	ldrh	r2, [r4, #52]	; 0x34
 
-  8036e66:	4630      	mov	r0, r6
 
-  8036e68:	f7fc fc64 	bl	8033734 <snmp_asn1_enc_length>
 
-   ofs += m_trap->thl.strplenlen;
 
-  8036e6c:	f894 3029 	ldrb.w	r3, [r4, #41]	; 0x29
 
-   snmp_asn1_enc_u32t(p, ofs, m_trap->thl.strplen, m_trap->spc_trap);
 
-  8036e70:	8ea2      	ldrh	r2, [r4, #52]	; 0x34
 
-   ofs += m_trap->thl.gtrplen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG));
 
-   ofs += 1;
 
-   snmp_asn1_enc_length(p, ofs, m_trap->thl.strplen);
 
-   ofs += m_trap->thl.strplenlen;
 
-  8036e72:	18ed      	adds	r5, r5, r3
 
-  8036e74:	b2ad      	uxth	r5, r5
 
-   snmp_asn1_enc_u32t(p, ofs, m_trap->thl.strplen, m_trap->spc_trap);
 
-  8036e76:	4629      	mov	r1, r5
 
-  8036e78:	6963      	ldr	r3, [r4, #20]
 
-  8036e7a:	4630      	mov	r0, r6
 
-  8036e7c:	f7fc fca2 	bl	80337c4 <snmp_asn1_enc_u32t>
 
-   ofs += m_trap->thl.strplen;
 
-  8036e80:	8ea3      	ldrh	r3, [r4, #52]	; 0x34
 
-  8036e82:	18ed      	adds	r5, r5, r3
 
-  8036e84:	b2ad      	uxth	r5, r5
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_TIMETICKS));
 
-  8036e86:	4629      	mov	r1, r5
 
-   ofs += 1;
 
-  8036e88:	3501      	adds	r5, #1
 
-   snmp_asn1_enc_length(p, ofs, m_trap->thl.strplen);
 
-   ofs += m_trap->thl.strplenlen;
 
-   snmp_asn1_enc_u32t(p, ofs, m_trap->thl.strplen, m_trap->spc_trap);
 
-   ofs += m_trap->thl.strplen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_TIMETICKS));
 
-  8036e8a:	2243      	movs	r2, #67	; 0x43
 
-   ofs += 1;
 
-  8036e8c:	b2ad      	uxth	r5, r5
 
-   snmp_asn1_enc_length(p, ofs, m_trap->thl.strplen);
 
-   ofs += m_trap->thl.strplenlen;
 
-   snmp_asn1_enc_u32t(p, ofs, m_trap->thl.strplen, m_trap->spc_trap);
 
-   ofs += m_trap->thl.strplen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_TIMETICKS));
 
-  8036e8e:	4630      	mov	r0, r6
 
-  8036e90:	f7fc fc3c 	bl	803370c <snmp_asn1_enc_type>
 
-   ofs += 1;
 
-   snmp_asn1_enc_length(p, ofs, m_trap->thl.tslen);
 
-  8036e94:	4629      	mov	r1, r5
 
-  8036e96:	8e62      	ldrh	r2, [r4, #50]	; 0x32
 
-  8036e98:	4630      	mov	r0, r6
 
-  8036e9a:	f7fc fc4b 	bl	8033734 <snmp_asn1_enc_length>
 
-   ofs += m_trap->thl.tslenlen;
 
-  8036e9e:	f894 3028 	ldrb.w	r3, [r4, #40]	; 0x28
 
-   snmp_asn1_enc_u32t(p, ofs, m_trap->thl.tslen, m_trap->ts);
 
-  8036ea2:	8e62      	ldrh	r2, [r4, #50]	; 0x32
 
-   ofs += m_trap->thl.strplen;
 
-   snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_TIMETICKS));
 
-   ofs += 1;
 
-   snmp_asn1_enc_length(p, ofs, m_trap->thl.tslen);
 
-   ofs += m_trap->thl.tslenlen;
 
-  8036ea4:	18ed      	adds	r5, r5, r3
 
-  8036ea6:	b2ad      	uxth	r5, r5
 
-   snmp_asn1_enc_u32t(p, ofs, m_trap->thl.tslen, m_trap->ts);
 
-  8036ea8:	4629      	mov	r1, r5
 
-  8036eaa:	69a3      	ldr	r3, [r4, #24]
 
-  8036eac:	4630      	mov	r0, r6
 
-  8036eae:	f7fc fc89 	bl	80337c4 <snmp_asn1_enc_u32t>
 
-   ofs += m_trap->thl.tslen;
 
-  8036eb2:	8e63      	ldrh	r3, [r4, #50]	; 0x32
 
-  8036eb4:	18ea      	adds	r2, r5, r3
 
-       {
 
-         u16_t ofs;
 
-         /* pass 1, encode packet ino the pbuf(s) */
 
-         ofs = snmp_trap_header_enc(&trap_msg, p);
 
-         snmp_varbind_list_enc(&trap_msg.outvb, p, ofs);
 
-  8036eb6:	4631      	mov	r1, r6
 
-  8036eb8:	e00a      	b.n	8036ed0 <snmp_send_trap+0x360>
 
-  8036eba:	bf00      	nop
 
-  8036ebc:	2000f840 	.word	0x2000f840
 
-  8036ec0:	2000f828 	.word	0x2000f828
 
-  8036ec4:	2000f844 	.word	0x2000f844
 
-  8036ec8:	0804592c 	.word	0x0804592c
 
-  8036ecc:	08045930 	.word	0x08045930
 
-  8036ed0:	b292      	uxth	r2, r2
 
-  8036ed2:	f104 001c 	add.w	r0, r4, #28
 
-  8036ed6:	f7ff fcb1 	bl	803683c <snmp_varbind_list_enc>
 
-         snmp_inc_snmpouttraps();
 
-  8036eda:	f7fe f853 	bl	8034f84 <snmp_inc_snmpouttraps>
 
-         snmp_inc_snmpoutpkts();
 
-  8036ede:	f7fd ffa9 	bl	8034e34 <snmp_inc_snmpoutpkts>
 
-         /** send to the TRAP destination */
 
-         udp_sendto(trap_msg.pcb, p, &trap_msg.dip, SNMP_TRAP_PORT);
 
-  8036ee2:	4622      	mov	r2, r4
 
-  8036ee4:	4631      	mov	r1, r6
 
-  8036ee6:	f852 0b04 	ldr.w	r0, [r2], #4
 
-  8036eea:	23a2      	movs	r3, #162	; 0xa2
 
-  8036eec:	f7fb fdb1 	bl	8032a52 <udp_sendto>
 
-         pbuf_free(p);
 
-  8036ef0:	4630      	mov	r0, r6
 
-  8036ef2:	f7f8 ff8b 	bl	802fe0c <pbuf_free>
 
-       {
 
-         return ERR_MEM;
 
-       }
 
-     }
 
-   }
 
-   return ERR_OK;
 
-  8036ef6:	2000      	movs	r0, #0
 
-  8036ef8:	e000      	b.n	8036efc <snmp_send_trap+0x38c>
 
-         pbuf_free(p);
 
-       }
 
-       else
 
-       {
 
-         return ERR_MEM;
 
-  8036efa:	20ff      	movs	r0, #255	; 0xff
 
-       }
 
-     }
 
-   }
 
-   return ERR_OK;
 
- }
 
-  8036efc:	b240      	sxtb	r0, r0
 
-  8036efe:	b005      	add	sp, #20
 
-  8036f00:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
- 08036f04 <snmp_authfail_trap>:
 
-   snmp_send_trap(SNMP_GENTRAP_COLDSTART, NULL, 0);
 
- }
 
- void
 
- snmp_authfail_trap(void)
 
- {
 
-  8036f04:	b507      	push	{r0, r1, r2, lr}
 
-   u8_t enable;
 
-   snmp_get_snmpenableauthentraps(&enable);
 
-  8036f06:	f10d 0007 	add.w	r0, sp, #7
 
-  8036f0a:	f7fe f849 	bl	8034fa0 <snmp_get_snmpenableauthentraps>
 
-   if (enable == 1)
 
-  8036f0e:	f89d 3007 	ldrb.w	r3, [sp, #7]
 
-  8036f12:	2b01      	cmp	r3, #1
 
-  8036f14:	d109      	bne.n	8036f2a <snmp_authfail_trap+0x26>
 
-   {
 
-     trap_msg.outvb.head = NULL;
 
-  8036f16:	2100      	movs	r1, #0
 
-  8036f18:	4b04      	ldr	r3, [pc, #16]	; (8036f2c <snmp_authfail_trap+0x28>)
 
-     trap_msg.outvb.tail = NULL;
 
-     trap_msg.outvb.count = 0;
 
-     snmp_send_trap(SNMP_GENTRAP_AUTHFAIL, NULL, 0);
 
-  8036f1a:	2004      	movs	r0, #4
 
-  8036f1c:	460a      	mov	r2, r1
 
- {
 
-   u8_t enable;
 
-   snmp_get_snmpenableauthentraps(&enable);
 
-   if (enable == 1)
 
-   {
 
-     trap_msg.outvb.head = NULL;
 
-  8036f1e:	61d9      	str	r1, [r3, #28]
 
-     trap_msg.outvb.tail = NULL;
 
-  8036f20:	6219      	str	r1, [r3, #32]
 
-     trap_msg.outvb.count = 0;
 
-  8036f22:	f883 1024 	strb.w	r1, [r3, #36]	; 0x24
 
-     snmp_send_trap(SNMP_GENTRAP_AUTHFAIL, NULL, 0);
 
-  8036f26:	f7ff fe23 	bl	8036b70 <snmp_send_trap>
 
-   }
 
- }
 
-  8036f2a:	bd0e      	pop	{r1, r2, r3, pc}
 
-  8036f2c:	2000f828 	.word	0x2000f828
 
- 08036f30 <etharp_send_ip>:
 
-  * @params dst the destination MAC address to be copied into the ethernet header
 
-  * @return ERR_OK if the packet was sent, any other err_t on failure
 
-  */
 
- static err_t
 
- etharp_send_ip(struct netif *netif, struct pbuf *p, struct eth_addr *src, struct eth_addr *dst)
 
- {
 
-  8036f30:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
-   struct eth_hdr *ethhdr = (struct eth_hdr *)p->payload;
 
-  8036f32:	684c      	ldr	r4, [r1, #4]
 
-  * @params dst the destination MAC address to be copied into the ethernet header
 
-  * @return ERR_OK if the packet was sent, any other err_t on failure
 
-  */
 
- static err_t
 
- etharp_send_ip(struct netif *netif, struct pbuf *p, struct eth_addr *src, struct eth_addr *dst)
 
- {
 
-  8036f34:	4606      	mov	r6, r0
 
-  8036f36:	460d      	mov	r5, r1
 
-  8036f38:	4617      	mov	r7, r2
 
-   struct eth_hdr *ethhdr = (struct eth_hdr *)p->payload;
 
-   LWIP_ASSERT("netif->hwaddr_len must be the same as ETHARP_HWADDR_LEN for etharp!",
 
-               (netif->hwaddr_len == ETHARP_HWADDR_LEN));
 
-   ETHADDR32_COPY(ðhdr->dest, dst);
 
-  8036f3a:	4619      	mov	r1, r3
 
-  8036f3c:	2206      	movs	r2, #6
 
-  8036f3e:	4620      	mov	r0, r4
 
-  8036f40:	f7ea fd24 	bl	802198c <memcpy>
 
-   ETHADDR16_COPY(ðhdr->src, src);
 
-  8036f44:	4639      	mov	r1, r7
 
-  8036f46:	1da0      	adds	r0, r4, #6
 
-  8036f48:	2206      	movs	r2, #6
 
-  8036f4a:	f7ea fd1f 	bl	802198c <memcpy>
 
-   ethhdr->type = PP_HTONS(ETHTYPE_IP);
 
-  8036f4e:	2308      	movs	r3, #8
 
-  8036f50:	7323      	strb	r3, [r4, #12]
 
-  8036f52:	2300      	movs	r3, #0
 
-  8036f54:	7363      	strb	r3, [r4, #13]
 
-   LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_send_ip: sending packet %p\n", (void *)p));
 
-   /* send the packet */
 
-   return netif->linkoutput(netif, p);
 
-  8036f56:	69b3      	ldr	r3, [r6, #24]
 
-  8036f58:	4630      	mov	r0, r6
 
-  8036f5a:	4629      	mov	r1, r5
 
-  8036f5c:	4798      	blx	r3
 
- }
 
-  8036f5e:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 
- 08036f60 <etharp_free_entry>:
 
- #endif /* ARP_QUEUEING */
 
- /** Clean up ARP table entries */
 
- static void
 
- etharp_free_entry(int i)
 
- {
 
-  8036f60:	b570      	push	{r4, r5, r6, lr}
 
-   /* remove from SNMP ARP index tree */
 
-   snmp_delete_arpidx_tree(arp_table[i].netif, &arp_table[i].ipaddr);
 
-  8036f62:	4d0b      	ldr	r5, [pc, #44]	; (8036f90 <etharp_free_entry+0x30>)
 
-  8036f64:	2414      	movs	r4, #20
 
-  8036f66:	4344      	muls	r4, r0
 
-  8036f68:	1929      	adds	r1, r5, r4
 
- #endif /* ARP_QUEUEING */
 
- /** Clean up ARP table entries */
 
- static void
 
- etharp_free_entry(int i)
 
- {
 
-  8036f6a:	4606      	mov	r6, r0
 
-   /* remove from SNMP ARP index tree */
 
-   snmp_delete_arpidx_tree(arp_table[i].netif, &arp_table[i].ipaddr);
 
-  8036f6c:	3104      	adds	r1, #4
 
-  8036f6e:	6848      	ldr	r0, [r1, #4]
 
-  8036f70:	f7fd fc4c 	bl	803480c <snmp_delete_arpidx_tree>
 
-   /* and empty packet queue */
 
-   if (arp_table[i].q != NULL) {
 
-  8036f74:	5928      	ldr	r0, [r5, r4]
 
-  8036f76:	b118      	cbz	r0, 8036f80 <etharp_free_entry+0x20>
 
-     /* remove all queued packets */
 
-     LWIP_DEBUGF(ETHARP_DEBUG, ("etharp_free_entry: freeing entry %"U16_F", packet queue %p.\n", (u16_t)i, (void *)(arp_table[i].q)));
 
-     free_etharp_q(arp_table[i].q);
 
-  8036f78:	f7f8 ff48 	bl	802fe0c <pbuf_free>
 
-     arp_table[i].q = NULL;
 
-  8036f7c:	2300      	movs	r3, #0
 
-  8036f7e:	512b      	str	r3, [r5, r4]
 
-   }
 
-   /* recycle entry for re-use */
 
-   arp_table[i].state = ETHARP_STATE_EMPTY;
 
-  8036f80:	2314      	movs	r3, #20
 
-  8036f82:	fb03 5506 	mla	r5, r3, r6, r5
 
-  8036f86:	2300      	movs	r3, #0
 
-  8036f88:	74ab      	strb	r3, [r5, #18]
 
-  8036f8a:	3510      	adds	r5, #16
 
-  8036f8c:	bd70      	pop	{r4, r5, r6, pc}
 
-  8036f8e:	bf00      	nop
 
-  8036f90:	2000c700 	.word	0x2000c700
 
- 08036f94 <etharp_find_entry>:
 
-  * @return The ARP entry index that matched or is created, ERR_MEM if no
 
-  * entry is found or could be recycled.
 
-  */
 
- static s8_t
 
- etharp_find_entry(ip_addr_t *ipaddr, u8_t flags)
 
- {
 
-  8036f94:	e92d 4ff7 	stmdb	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-   s8_t empty = ARP_TABLE_SIZE;
 
-   u8_t i = 0, age_pending = 0, age_stable = 0;
 
-   /* oldest entry with packets on queue */
 
-   s8_t old_queue = ARP_TABLE_SIZE;
 
-   /* its age */
 
-   u8_t age_queue = 0;
 
-  8036f98:	2500      	movs	r5, #0
 
- {
 
-   s8_t old_pending = ARP_TABLE_SIZE, old_stable = ARP_TABLE_SIZE;
 
-   s8_t empty = ARP_TABLE_SIZE;
 
-   u8_t i = 0, age_pending = 0, age_stable = 0;
 
-   /* oldest entry with packets on queue */
 
-   s8_t old_queue = ARP_TABLE_SIZE;
 
-  8036f9a:	240a      	movs	r4, #10
 
-  8036f9c:	4a35      	ldr	r2, [pc, #212]	; (8037074 <etharp_find_entry+0xe0>)
 
-  * @return The ARP entry index that matched or is created, ERR_MEM if no
 
-  * entry is found or could be recycled.
 
-  */
 
- static s8_t
 
- etharp_find_entry(ip_addr_t *ipaddr, u8_t flags)
 
- {
 
-  8036f9e:	9101      	str	r1, [sp, #4]
 
-  8036fa0:	4606      	mov	r6, r0
 
-   s8_t old_pending = ARP_TABLE_SIZE, old_stable = ARP_TABLE_SIZE;
 
-   s8_t empty = ARP_TABLE_SIZE;
 
-   u8_t i = 0, age_pending = 0, age_stable = 0;
 
-  8036fa2:	46a8      	mov	r8, r5
 
-  8036fa4:	46aa      	mov	sl, r5
 
-    * 4) remember the oldest pending entry with queued packets (if any)
 
-    * 5) search for a matching IP entry, either pending or stable
 
-    *    until 5 matches, or all entries are searched for.
 
-    */
 
-   for (i = 0; i < ARP_TABLE_SIZE; ++i) {
 
-  8036fa6:	462b      	mov	r3, r5
 
-  */
 
- static s8_t
 
- etharp_find_entry(ip_addr_t *ipaddr, u8_t flags)
 
- {
 
-   s8_t old_pending = ARP_TABLE_SIZE, old_stable = ARP_TABLE_SIZE;
 
-   s8_t empty = ARP_TABLE_SIZE;
 
-  8036fa8:	4627      	mov	r7, r4
 
-  * entry is found or could be recycled.
 
-  */
 
- static s8_t
 
- etharp_find_entry(ip_addr_t *ipaddr, u8_t flags)
 
- {
 
-   s8_t old_pending = ARP_TABLE_SIZE, old_stable = ARP_TABLE_SIZE;
 
-  8036faa:	46a4      	mov	ip, r4
 
-  8036fac:	46a3      	mov	fp, r4
 
-    */
 
-   for (i = 0; i < ARP_TABLE_SIZE; ++i) {
 
-     u8_t state = arp_table[i].state;
 
-     /* no empty entry found yet and now we do find one? */
 
-     if ((empty == ARP_TABLE_SIZE) && (state == ETHARP_STATE_EMPTY)) {
 
-  8036fae:	2f0a      	cmp	r7, #10
 
-    * 5) search for a matching IP entry, either pending or stable
 
-    *    until 5 matches, or all entries are searched for.
 
-    */
 
-   for (i = 0; i < ARP_TABLE_SIZE; ++i) {
 
-     u8_t state = arp_table[i].state;
 
-  8036fb0:	f892 9012 	ldrb.w	r9, [r2, #18]
 
-     /* no empty entry found yet and now we do find one? */
 
-     if ((empty == ARP_TABLE_SIZE) && (state == ETHARP_STATE_EMPTY)) {
 
-  8036fb4:	d104      	bne.n	8036fc0 <etharp_find_entry+0x2c>
 
-  8036fb6:	f1b9 0f00 	cmp.w	r9, #0
 
-  8036fba:	d104      	bne.n	8036fc6 <etharp_find_entry+0x32>
 
-       LWIP_DEBUGF(ETHARP_DEBUG, ("etharp_find_entry: found empty entry %"U16_F"\n", (u16_t)i));
 
-       /* remember first empty entry */
 
-       empty = i;
 
-  8036fbc:	b2df      	uxtb	r7, r3
 
-  8036fbe:	e023      	b.n	8037008 <etharp_find_entry+0x74>
 
-     } else if (state != ETHARP_STATE_EMPTY) {
 
-  8036fc0:	f1b9 0f00 	cmp.w	r9, #0
 
-  8036fc4:	d020      	beq.n	8037008 <etharp_find_entry+0x74>
 
-       LWIP_ASSERT("state == ETHARP_STATE_PENDING || state >= ETHARP_STATE_STABLE",
 
-         state == ETHARP_STATE_PENDING || state >= ETHARP_STATE_STABLE);
 
-       /* if given, does IP address match IP address in ARP entry? */
 
-       if (ipaddr && ip_addr_cmp(ipaddr, &arp_table[i].ipaddr)) {
 
-  8036fc6:	b12e      	cbz	r6, 8036fd4 <etharp_find_entry+0x40>
 
-  8036fc8:	6830      	ldr	r0, [r6, #0]
 
-  8036fca:	6851      	ldr	r1, [r2, #4]
 
-  8036fcc:	4288      	cmp	r0, r1
 
-  8036fce:	d101      	bne.n	8036fd4 <etharp_find_entry+0x40>
 
-         LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_find_entry: found matching entry %"U16_F"\n", (u16_t)i));
 
-         /* found exact IP address match, simply bail out */
 
-         return i;
 
-  8036fd0:	4618      	mov	r0, r3
 
-  8036fd2:	e04b      	b.n	803706c <etharp_find_entry+0xd8>
 
-       }
 
-       /* pending entry? */
 
-       if (state == ETHARP_STATE_PENDING) {
 
-  8036fd4:	f1b9 0f01 	cmp.w	r9, #1
 
-  8036fd8:	d10e      	bne.n	8036ff8 <etharp_find_entry+0x64>
 
-         /* pending with queued packets? */
 
-         if (arp_table[i].q != NULL) {
 
-  8036fda:	6810      	ldr	r0, [r2, #0]
 
-           if (arp_table[i].ctime >= age_queue) {
 
-  8036fdc:	f892 9013 	ldrb.w	r9, [r2, #19]
 
-         return i;
 
-       }
 
-       /* pending entry? */
 
-       if (state == ETHARP_STATE_PENDING) {
 
-         /* pending with queued packets? */
 
-         if (arp_table[i].q != NULL) {
 
-  8036fe0:	b120      	cbz	r0, 8036fec <etharp_find_entry+0x58>
 
-           if (arp_table[i].ctime >= age_queue) {
 
-  8036fe2:	45a9      	cmp	r9, r5
 
-  8036fe4:	d310      	bcc.n	8037008 <etharp_find_entry+0x74>
 
-             old_queue = i;
 
-  8036fe6:	b2dc      	uxtb	r4, r3
 
-  8036fe8:	464d      	mov	r5, r9
 
-  8036fea:	e00d      	b.n	8037008 <etharp_find_entry+0x74>
 
-             age_queue = arp_table[i].ctime;
 
-           }
 
-         } else
 
-         /* pending without queued packets? */
 
-         {
 
-           if (arp_table[i].ctime >= age_pending) {
 
-  8036fec:	45d1      	cmp	r9, sl
 
-  8036fee:	d30b      	bcc.n	8037008 <etharp_find_entry+0x74>
 
-             old_pending = i;
 
-  8036ff0:	fa5f fb83 	uxtb.w	fp, r3
 
-  8036ff4:	46ca      	mov	sl, r9
 
-  8036ff6:	e007      	b.n	8037008 <etharp_find_entry+0x74>
 
-             age_pending = arp_table[i].ctime;
 
-           }
 
-         }
 
-       /* stable entry? */
 
-       } else if (state >= ETHARP_STATE_STABLE) {
 
-  8036ff8:	d906      	bls.n	8037008 <etharp_find_entry+0x74>
 
-         /* don't record old_stable for static entries since they never expire */
 
-         if (state < ETHARP_STATE_STATIC)
 
- #endif /* ETHARP_SUPPORT_STATIC_ENTRIES */
 
-         {
 
-           /* remember entry with oldest stable entry in oldest, its age in maxtime */
 
-           if (arp_table[i].ctime >= age_stable) {
 
-  8036ffa:	f892 9013 	ldrb.w	r9, [r2, #19]
 
-  8036ffe:	45c1      	cmp	r9, r8
 
-             old_stable = i;
 
-  8037000:	bf24      	itt	cs
 
-  8037002:	fa5f fc83 	uxtbcs.w	ip, r3
 
-  8037006:	46c8      	movcs	r8, r9
 
-    * 4) remember the oldest pending entry with queued packets (if any)
 
-    * 5) search for a matching IP entry, either pending or stable
 
-    *    until 5 matches, or all entries are searched for.
 
-    */
 
-   for (i = 0; i < ARP_TABLE_SIZE; ++i) {
 
-  8037008:	3301      	adds	r3, #1
 
-  803700a:	b2db      	uxtb	r3, r3
 
-  803700c:	3214      	adds	r2, #20
 
-  803700e:	2b0a      	cmp	r3, #10
 
-  8037010:	d1cd      	bne.n	8036fae <etharp_find_entry+0x1a>
 
-     }
 
-   }
 
-   /* { we have no match } => try to create a new entry */
 
-    
 
-   /* don't create new entry, only search? */
 
-   if (((flags & ETHARP_FLAG_FIND_ONLY) != 0) ||
 
-  8037012:	9a01      	ldr	r2, [sp, #4]
 
-  8037014:	f002 0302 	and.w	r3, r2, #2
 
-  8037018:	b2db      	uxtb	r3, r3
 
-  803701a:	bb33      	cbnz	r3, 803706a <etharp_find_entry+0xd6>
 
-  803701c:	2f0a      	cmp	r7, #10
 
-  803701e:	d102      	bne.n	8037026 <etharp_find_entry+0x92>
 
-       /* or no empty entry found and not allowed to recycle? */
 
-       ((empty == ARP_TABLE_SIZE) && ((flags & ETHARP_FLAG_TRY_HARD) == 0))) {
 
-  8037020:	07d3      	lsls	r3, r2, #31
 
-  8037022:	d402      	bmi.n	803702a <etharp_find_entry+0x96>
 
-  8037024:	e021      	b.n	803706a <etharp_find_entry+0xd6>
 
-    * { ETHARP_FLAG_TRY_HARD is set at this point }
 
-    */ 
 
-   /* 1) empty entry available? */
 
-   if (empty < ARP_TABLE_SIZE) {
 
-     i = empty;
 
-  8037026:	b2fc      	uxtb	r4, r7
 
-  8037028:	e011      	b.n	803704e <etharp_find_entry+0xba>
 
-     LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_find_entry: selecting empty entry %"U16_F"\n", (u16_t)i));
 
-   } else {
 
-     /* 2) found recyclable stable entry? */
 
-     if (old_stable < ARP_TABLE_SIZE) {
 
-  803702a:	f1bc 0f0a 	cmp.w	ip, #10
 
-  803702e:	d002      	beq.n	8037036 <etharp_find_entry+0xa2>
 
-       /* recycle oldest stable*/
 
-       i = old_stable;
 
-  8037030:	fa5f f48c 	uxtb.w	r4, ip
 
-  8037034:	e008      	b.n	8037048 <etharp_find_entry+0xb4>
 
-       LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_find_entry: selecting oldest stable entry %"U16_F"\n", (u16_t)i));
 
-       /* no queued packets should exist on stable entries */
 
-       LWIP_ASSERT("arp_table[i].q == NULL", arp_table[i].q == NULL);
 
-     /* 3) found recyclable pending entry without queued packets? */
 
-     } else if (old_pending < ARP_TABLE_SIZE) {
 
-  8037036:	f1bb 0f0a 	cmp.w	fp, #10
 
-  803703a:	d002      	beq.n	8037042 <etharp_find_entry+0xae>
 
-       /* recycle oldest pending */
 
-       i = old_pending;
 
-  803703c:	fa5f f48b 	uxtb.w	r4, fp
 
-  8037040:	e002      	b.n	8037048 <etharp_find_entry+0xb4>
 
-       LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_find_entry: selecting oldest pending entry %"U16_F" (without queue)\n", (u16_t)i));
 
-     /* 4) found recyclable pending entry with queued packets? */
 
-     } else if (old_queue < ARP_TABLE_SIZE) {
 
-  8037042:	2c0a      	cmp	r4, #10
 
-  8037044:	d011      	beq.n	803706a <etharp_find_entry+0xd6>
 
-       /* recycle oldest pending (queued packets are free in etharp_free_entry) */
 
-       i = old_queue;
 
-  8037046:	b2e4      	uxtb	r4, r4
 
-       return (s8_t)ERR_MEM;
 
-     }
 
-     /* { empty or recyclable entry found } */
 
-     LWIP_ASSERT("i < ARP_TABLE_SIZE", i < ARP_TABLE_SIZE);
 
-     etharp_free_entry(i);
 
-  8037048:	4620      	mov	r0, r4
 
-  803704a:	f7ff ff89 	bl	8036f60 <etharp_free_entry>
 
-  803704e:	4b09      	ldr	r3, [pc, #36]	; (8037074 <etharp_find_entry+0xe0>)
 
-   LWIP_ASSERT("i < ARP_TABLE_SIZE", i < ARP_TABLE_SIZE);
 
-   LWIP_ASSERT("arp_table[i].state == ETHARP_STATE_EMPTY",
 
-     arp_table[i].state == ETHARP_STATE_EMPTY);
 
-   /* IP address given? */
 
-   if (ipaddr != NULL) {
 
-  8037050:	b126      	cbz	r6, 803705c <etharp_find_entry+0xc8>
 
-     /* set IP address */
 
-     ip_addr_copy(arp_table[i].ipaddr, *ipaddr);
 
-  8037052:	2214      	movs	r2, #20
 
-  8037054:	6831      	ldr	r1, [r6, #0]
 
-  8037056:	fb02 3204 	mla	r2, r2, r4, r3
 
-  803705a:	6051      	str	r1, [r2, #4]
 
-   }
 
-   arp_table[i].ctime = 0;
 
-  803705c:	2214      	movs	r2, #20
 
-  803705e:	fb02 3304 	mla	r3, r2, r4, r3
 
-  8037062:	2200      	movs	r2, #0
 
-  8037064:	74da      	strb	r2, [r3, #19]
 
-   return (err_t)i;
 
-  8037066:	4620      	mov	r0, r4
 
-  8037068:	e000      	b.n	803706c <etharp_find_entry+0xd8>
 
-   /* don't create new entry, only search? */
 
-   if (((flags & ETHARP_FLAG_FIND_ONLY) != 0) ||
 
-       /* or no empty entry found and not allowed to recycle? */
 
-       ((empty == ARP_TABLE_SIZE) && ((flags & ETHARP_FLAG_TRY_HARD) == 0))) {
 
-     LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_find_entry: no empty entry found and not allowed to recycle\n"));
 
-     return (s8_t)ERR_MEM;
 
-  803706a:	20ff      	movs	r0, #255	; 0xff
 
-     /* set IP address */
 
-     ip_addr_copy(arp_table[i].ipaddr, *ipaddr);
 
-   }
 
-   arp_table[i].ctime = 0;
 
-   return (err_t)i;
 
- }
 
-  803706c:	b240      	sxtb	r0, r0
 
-  803706e:	e8bd 8ffe 	ldmia.w	sp!, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
-  8037072:	bf00      	nop
 
-  8037074:	2000c700 	.word	0x2000c700
 
- 08037078 <etharp_tmr>:
 
-  * This function should be called every ETHARP_TMR_INTERVAL milliseconds (5 seconds),
 
-  * in order to expire entries in the ARP table.
 
-  */
 
- void
 
- etharp_tmr(void)
 
- {
 
-  8037078:	b570      	push	{r4, r5, r6, lr}
 
-  803707a:	4c0d      	ldr	r4, [pc, #52]	; (80370b0 <etharp_tmr+0x38>)
 
-  803707c:	2500      	movs	r5, #0
 
-         etharp_free_entry(i);
 
-       }
 
-       else if (arp_table[i].state == ETHARP_STATE_STABLE_REREQUESTING) {
 
-         /* Reset state to stable, so that the next transmitted packet will
 
-            re-send an ARP request. */
 
-         arp_table[i].state = ETHARP_STATE_STABLE;
 
-  803707e:	2602      	movs	r6, #2
 
-   LWIP_DEBUGF(ETHARP_DEBUG, ("etharp_timer\n"));
 
-   /* remove expired entries from the ARP table */
 
-   for (i = 0; i < ARP_TABLE_SIZE; ++i) {
 
-     u8_t state = arp_table[i].state;
 
-     if (state != ETHARP_STATE_EMPTY
 
-  8037080:	7ca3      	ldrb	r3, [r4, #18]
 
-  8037082:	b183      	cbz	r3, 80370a6 <etharp_tmr+0x2e>
 
- #if ETHARP_SUPPORT_STATIC_ENTRIES
 
-       && (state != ETHARP_STATE_STATIC)
 
- #endif /* ETHARP_SUPPORT_STATIC_ENTRIES */
 
-       ) {
 
-       arp_table[i].ctime++;
 
-  8037084:	7ce2      	ldrb	r2, [r4, #19]
 
-  8037086:	3201      	adds	r2, #1
 
-  8037088:	b2d2      	uxtb	r2, r2
 
-       if ((arp_table[i].ctime >= ARP_MAXAGE) ||
 
-  803708a:	2aef      	cmp	r2, #239	; 0xef
 
-     if (state != ETHARP_STATE_EMPTY
 
- #if ETHARP_SUPPORT_STATIC_ENTRIES
 
-       && (state != ETHARP_STATE_STATIC)
 
- #endif /* ETHARP_SUPPORT_STATIC_ENTRIES */
 
-       ) {
 
-       arp_table[i].ctime++;
 
-  803708c:	74e2      	strb	r2, [r4, #19]
 
-       if ((arp_table[i].ctime >= ARP_MAXAGE) ||
 
-  803708e:	d803      	bhi.n	8037098 <etharp_tmr+0x20>
 
-  8037090:	2b01      	cmp	r3, #1
 
-  8037092:	d105      	bne.n	80370a0 <etharp_tmr+0x28>
 
-           ((arp_table[i].state == ETHARP_STATE_PENDING)  &&
 
-  8037094:	2a01      	cmp	r2, #1
 
-  8037096:	d906      	bls.n	80370a6 <etharp_tmr+0x2e>
 
-            (arp_table[i].ctime >= ARP_MAXPENDING))) {
 
-         /* pending or stable entry has become old! */
 
-         LWIP_DEBUGF(ETHARP_DEBUG, ("etharp_timer: expired %s entry %"U16_F".\n",
 
-              arp_table[i].state >= ETHARP_STATE_STABLE ? "stable" : "pending", (u16_t)i));
 
-         /* clean up entries that have just been expired */
 
-         etharp_free_entry(i);
 
-  8037098:	4628      	mov	r0, r5
 
-  803709a:	f7ff ff61 	bl	8036f60 <etharp_free_entry>
 
-  803709e:	e002      	b.n	80370a6 <etharp_tmr+0x2e>
 
-       }
 
-       else if (arp_table[i].state == ETHARP_STATE_STABLE_REREQUESTING) {
 
-  80370a0:	2b03      	cmp	r3, #3
 
-         /* Reset state to stable, so that the next transmitted packet will
 
-            re-send an ARP request. */
 
-         arp_table[i].state = ETHARP_STATE_STABLE;
 
-  80370a2:	bf08      	it	eq
 
-  80370a4:	74a6      	strbeq	r6, [r4, #18]
 
-  80370a6:	3501      	adds	r5, #1
 
-  80370a8:	3414      	adds	r4, #20
 
- {
 
-   u8_t i;
 
-   LWIP_DEBUGF(ETHARP_DEBUG, ("etharp_timer\n"));
 
-   /* remove expired entries from the ARP table */
 
-   for (i = 0; i < ARP_TABLE_SIZE; ++i) {
 
-  80370aa:	2d0a      	cmp	r5, #10
 
-  80370ac:	d1e8      	bne.n	8037080 <etharp_tmr+0x8>
 
-         /* resend an ARP query here? */
 
-       }
 
- #endif /* ARP_QUEUEING */
 
-     }
 
-   }
 
- }
 
-  80370ae:	bd70      	pop	{r4, r5, r6, pc}
 
-  80370b0:	2000c700 	.word	0x2000c700
 
- 080370b4 <etharp_cleanup_netif>:
 
-  * Remove all ARP table entries of the specified netif.
 
-  *
 
-  * @param netif points to a network interface
 
-  */
 
- void etharp_cleanup_netif(struct netif *netif)
 
- {
 
-  80370b4:	b570      	push	{r4, r5, r6, lr}
 
-  80370b6:	4d08      	ldr	r5, [pc, #32]	; (80370d8 <etharp_cleanup_netif+0x24>)
 
-  80370b8:	4606      	mov	r6, r0
 
-  80370ba:	2400      	movs	r4, #0
 
-   u8_t i;
 
-   for (i = 0; i < ARP_TABLE_SIZE; ++i) {
 
-     u8_t state = arp_table[i].state;
 
-     if ((state != ETHARP_STATE_EMPTY) && (arp_table[i].netif == netif)) {
 
-  80370bc:	7cab      	ldrb	r3, [r5, #18]
 
-  80370be:	b12b      	cbz	r3, 80370cc <etharp_cleanup_netif+0x18>
 
-  80370c0:	68ab      	ldr	r3, [r5, #8]
 
-  80370c2:	42b3      	cmp	r3, r6
 
-  80370c4:	d102      	bne.n	80370cc <etharp_cleanup_netif+0x18>
 
-       etharp_free_entry(i);
 
-  80370c6:	4620      	mov	r0, r4
 
-  80370c8:	f7ff ff4a 	bl	8036f60 <etharp_free_entry>
 
-  80370cc:	3401      	adds	r4, #1
 
-  80370ce:	3514      	adds	r5, #20
 
-  */
 
- void etharp_cleanup_netif(struct netif *netif)
 
- {
 
-   u8_t i;
 
-   for (i = 0; i < ARP_TABLE_SIZE; ++i) {
 
-  80370d0:	2c0a      	cmp	r4, #10
 
-  80370d2:	d1f3      	bne.n	80370bc <etharp_cleanup_netif+0x8>
 
-     u8_t state = arp_table[i].state;
 
-     if ((state != ETHARP_STATE_EMPTY) && (arp_table[i].netif == netif)) {
 
-       etharp_free_entry(i);
 
-     }
 
-   }
 
- }
 
-  80370d4:	bd70      	pop	{r4, r5, r6, pc}
 
-  80370d6:	bf00      	nop
 
-  80370d8:	2000c700 	.word	0x2000c700
 
- 080370dc <etharp_find_addr>:
 
-  * @return table index if found, -1 otherwise
 
-  */
 
- s8_t
 
- etharp_find_addr(struct netif *netif, ip_addr_t *ipaddr,
 
-          struct eth_addr **eth_ret, ip_addr_t **ip_ret)
 
- {
 
-  80370dc:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
-   LWIP_ASSERT("eth_ret != NULL && ip_ret != NULL",
 
-     eth_ret != NULL && ip_ret != NULL);
 
-   LWIP_UNUSED_ARG(netif);
 
-   i = etharp_find_entry(ipaddr, ETHARP_FLAG_FIND_ONLY);
 
-  80370de:	4608      	mov	r0, r1
 
-  80370e0:	2102      	movs	r1, #2
 
-  * @return table index if found, -1 otherwise
 
-  */
 
- s8_t
 
- etharp_find_addr(struct netif *netif, ip_addr_t *ipaddr,
 
-          struct eth_addr **eth_ret, ip_addr_t **ip_ret)
 
- {
 
-  80370e2:	4616      	mov	r6, r2
 
-  80370e4:	461f      	mov	r7, r3
 
-   LWIP_ASSERT("eth_ret != NULL && ip_ret != NULL",
 
-     eth_ret != NULL && ip_ret != NULL);
 
-   LWIP_UNUSED_ARG(netif);
 
-   i = etharp_find_entry(ipaddr, ETHARP_FLAG_FIND_ONLY);
 
-  80370e6:	f7ff ff55 	bl	8036f94 <etharp_find_entry>
 
-   if((i >= 0) && (arp_table[i].state >= ETHARP_STATE_STABLE)) {
 
-  80370ea:	2800      	cmp	r0, #0
 
-  80370ec:	db0c      	blt.n	8037108 <etharp_find_addr+0x2c>
 
-  80370ee:	2414      	movs	r4, #20
 
-  80370f0:	4d07      	ldr	r5, [pc, #28]	; (8037110 <etharp_find_addr+0x34>)
 
-  80370f2:	4344      	muls	r4, r0
 
-  80370f4:	1929      	adds	r1, r5, r4
 
-  80370f6:	7c8b      	ldrb	r3, [r1, #18]
 
-  80370f8:	2b01      	cmp	r3, #1
 
-  80370fa:	d905      	bls.n	8037108 <etharp_find_addr+0x2c>
 
-       *eth_ret = &arp_table[i].ethaddr;
 
-  80370fc:	460c      	mov	r4, r1
 
-  80370fe:	340c      	adds	r4, #12
 
-       *ip_ret = &arp_table[i].ipaddr;
 
-  8037100:	3104      	adds	r1, #4
 
-   LWIP_UNUSED_ARG(netif);
 
-   i = etharp_find_entry(ipaddr, ETHARP_FLAG_FIND_ONLY);
 
-   if((i >= 0) && (arp_table[i].state >= ETHARP_STATE_STABLE)) {
 
-       *eth_ret = &arp_table[i].ethaddr;
 
-  8037102:	6034      	str	r4, [r6, #0]
 
-       *ip_ret = &arp_table[i].ipaddr;
 
-  8037104:	6039      	str	r1, [r7, #0]
 
-       return i;
 
-  8037106:	e000      	b.n	803710a <etharp_find_addr+0x2e>
 
-   }
 
-   return -1;
 
-  8037108:	20ff      	movs	r0, #255	; 0xff
 
- }
 
-  803710a:	b240      	sxtb	r0, r0
 
-  803710c:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
 
-  803710e:	bf00      	nop
 
-  8037110:	2000c700 	.word	0x2000c700
 
- 08037114 <etharp_request>:
 
-  *         ERR_MEM if the ARP packet couldn't be allocated
 
-  *         any other err_t on failure
 
-  */
 
- err_t
 
- etharp_request(struct netif *netif, ip_addr_t *ipaddr)
 
- {
 
-  8037114:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
 
- #endif /* LWIP_AUTOIP */
 
-   LWIP_ASSERT("netif != NULL", netif != NULL);
 
-   /* allocate a pbuf for the outgoing ARP request packet */
 
-   p = pbuf_alloc(PBUF_RAW, SIZEOF_ETHARP_PACKET, PBUF_RAM);
 
-  8037118:	2200      	movs	r2, #0
 
-  *         ERR_MEM if the ARP packet couldn't be allocated
 
-  *         any other err_t on failure
 
-  */
 
- err_t
 
- etharp_request(struct netif *netif, ip_addr_t *ipaddr)
 
- {
 
-  803711a:	4606      	mov	r6, r0
 
-  803711c:	4688      	mov	r8, r1
 
-   LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_request: sending ARP request.\n"));
 
-   return etharp_raw(netif, (struct eth_addr *)netif->hwaddr, ðbroadcast,
 
-                     (struct eth_addr *)netif->hwaddr, &netif->ip_addr, ðzero,
 
-  803711e:	f100 0727 	add.w	r7, r0, #39	; 0x27
 
-  8037122:	f100 0904 	add.w	r9, r0, #4
 
- #endif /* LWIP_AUTOIP */
 
-   LWIP_ASSERT("netif != NULL", netif != NULL);
 
-   /* allocate a pbuf for the outgoing ARP request packet */
 
-   p = pbuf_alloc(PBUF_RAW, SIZEOF_ETHARP_PACKET, PBUF_RAM);
 
-  8037126:	212a      	movs	r1, #42	; 0x2a
 
-  8037128:	2003      	movs	r0, #3
 
-  803712a:	f7f8 febc 	bl	802fea6 <pbuf_alloc>
 
-   /* could allocate a pbuf for an ARP request? */
 
-   if (p == NULL) {
 
-  803712e:	4605      	mov	r5, r0
 
-  8037130:	2800      	cmp	r0, #0
 
-  8037132:	d03c      	beq.n	80371ae <etharp_request+0x9a>
 
-     return ERR_MEM;
 
-   }
 
-   LWIP_ASSERT("check that first pbuf can hold struct etharp_hdr",
 
-               (p->len >= SIZEOF_ETHARP_PACKET));
 
-   ethhdr = (struct eth_hdr *)p->payload;
 
-  8037134:	6844      	ldr	r4, [r0, #4]
 
-   hdr = (struct etharp_hdr *)((u8_t*)ethhdr + SIZEOF_ETH_HDR);
 
-   LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_raw: sending raw ARP packet.\n"));
 
-   hdr->opcode = htons(opcode);
 
-  8037136:	2001      	movs	r0, #1
 
-  8037138:	f7f7 fd2a 	bl	802eb90 <lwip_htons>
 
-    * 'sender IP address' MUST be sent using link-layer broadcast instead of
 
-    * link-layer unicast. (See RFC3927 Section 2.5, last paragraph) */
 
-   ethdst_hwaddr = ip_addr_islinklocal(ipsrc_addr) ? (u8_t*)(ethbroadcast.addr) : ethdst_addr->addr;
 
- #endif /* LWIP_AUTOIP */
 
-   /* Write the ARP MAC-Addresses */
 
-   ETHADDR16_COPY(&hdr->shwaddr, hwsrc_addr);
 
-  803713c:	4639      	mov	r1, r7
 
-               (p->len >= SIZEOF_ETHARP_PACKET));
 
-   ethhdr = (struct eth_hdr *)p->payload;
 
-   hdr = (struct etharp_hdr *)((u8_t*)ethhdr + SIZEOF_ETH_HDR);
 
-   LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_raw: sending raw ARP packet.\n"));
 
-   hdr->opcode = htons(opcode);
 
-  803713e:	82a0      	strh	r0, [r4, #20]
 
-    * 'sender IP address' MUST be sent using link-layer broadcast instead of
 
-    * link-layer unicast. (See RFC3927 Section 2.5, last paragraph) */
 
-   ethdst_hwaddr = ip_addr_islinklocal(ipsrc_addr) ? (u8_t*)(ethbroadcast.addr) : ethdst_addr->addr;
 
- #endif /* LWIP_AUTOIP */
 
-   /* Write the ARP MAC-Addresses */
 
-   ETHADDR16_COPY(&hdr->shwaddr, hwsrc_addr);
 
-  8037140:	2206      	movs	r2, #6
 
-  8037142:	f104 0016 	add.w	r0, r4, #22
 
-  8037146:	f7ea fc21 	bl	802198c <memcpy>
 
-   ETHADDR16_COPY(&hdr->dhwaddr, hwdst_addr);
 
-  803714a:	2206      	movs	r2, #6
 
-  803714c:	f104 0020 	add.w	r0, r4, #32
 
-  8037150:	4919      	ldr	r1, [pc, #100]	; (80371b8 <etharp_request+0xa4>)
 
-  8037152:	f7ea fc1b 	bl	802198c <memcpy>
 
-   /* Write the Ethernet MAC-Addresses */
 
- #if LWIP_AUTOIP
 
-   ETHADDR16_COPY(ðhdr->dest, ethdst_hwaddr);
 
- #else  /* LWIP_AUTOIP */
 
-   ETHADDR16_COPY(ðhdr->dest, ethdst_addr);
 
-  8037156:	2206      	movs	r2, #6
 
-  8037158:	4620      	mov	r0, r4
 
-  803715a:	4918      	ldr	r1, [pc, #96]	; (80371bc <etharp_request+0xa8>)
 
-  803715c:	f7ea fc16 	bl	802198c <memcpy>
 
- #endif /* LWIP_AUTOIP */
 
-   ETHADDR16_COPY(ðhdr->src, ethsrc_addr);
 
-  8037160:	1da0      	adds	r0, r4, #6
 
-  8037162:	4639      	mov	r1, r7
 
-  8037164:	2206      	movs	r2, #6
 
-  8037166:	f7ea fc11 	bl	802198c <memcpy>
 
-   /* Copy struct ip_addr2 to aligned ip_addr, to support compilers without
 
-    * structure packing. */ 
 
-   IPADDR2_COPY(&hdr->sipaddr, ipsrc_addr);
 
-  803716a:	4649      	mov	r1, r9
 
-  803716c:	2204      	movs	r2, #4
 
-  803716e:	f104 001c 	add.w	r0, r4, #28
 
-  8037172:	f7ea fc0b 	bl	802198c <memcpy>
 
-   IPADDR2_COPY(&hdr->dipaddr, ipdst_addr);
 
-  8037176:	4641      	mov	r1, r8
 
-  8037178:	2204      	movs	r2, #4
 
-  803717a:	f104 0026 	add.w	r0, r4, #38	; 0x26
 
-  803717e:	f7ea fc05 	bl	802198c <memcpy>
 
-   hdr->hwtype = PP_HTONS(HWTYPE_ETHERNET);
 
-  8037182:	2300      	movs	r3, #0
 
-  8037184:	2201      	movs	r2, #1
 
-  8037186:	73a3      	strb	r3, [r4, #14]
 
-  8037188:	73e2      	strb	r2, [r4, #15]
 
-   hdr->proto = PP_HTONS(ETHTYPE_IP);
 
-  803718a:	7463      	strb	r3, [r4, #17]
 
-  803718c:	2208      	movs	r2, #8
 
-   /* set hwlen and protolen */
 
-   hdr->hwlen = ETHARP_HWADDR_LEN;
 
-  803718e:	2306      	movs	r3, #6
 
-   hdr->protolen = sizeof(ip_addr_t);
 
-  8037190:	2104      	movs	r1, #4
 
-    * structure packing. */ 
 
-   IPADDR2_COPY(&hdr->sipaddr, ipsrc_addr);
 
-   IPADDR2_COPY(&hdr->dipaddr, ipdst_addr);
 
-   hdr->hwtype = PP_HTONS(HWTYPE_ETHERNET);
 
-   hdr->proto = PP_HTONS(ETHTYPE_IP);
 
-  8037192:	7422      	strb	r2, [r4, #16]
 
-   /* set hwlen and protolen */
 
-   hdr->hwlen = ETHARP_HWADDR_LEN;
 
-   hdr->protolen = sizeof(ip_addr_t);
 
-  8037194:	74e1      	strb	r1, [r4, #19]
 
-   ethhdr->type = PP_HTONS(ETHTYPE_ARP);
 
-  8037196:	7322      	strb	r2, [r4, #12]
 
-   IPADDR2_COPY(&hdr->dipaddr, ipdst_addr);
 
-   hdr->hwtype = PP_HTONS(HWTYPE_ETHERNET);
 
-   hdr->proto = PP_HTONS(ETHTYPE_IP);
 
-   /* set hwlen and protolen */
 
-   hdr->hwlen = ETHARP_HWADDR_LEN;
 
-  8037198:	74a3      	strb	r3, [r4, #18]
 
-   hdr->protolen = sizeof(ip_addr_t);
 
-   ethhdr->type = PP_HTONS(ETHTYPE_ARP);
 
-  803719a:	7363      	strb	r3, [r4, #13]
 
-   /* send ARP query */
 
-   result = netif->linkoutput(netif, p);
 
-  803719c:	69b3      	ldr	r3, [r6, #24]
 
-  803719e:	4630      	mov	r0, r6
 
-  80371a0:	4629      	mov	r1, r5
 
-  80371a2:	4798      	blx	r3
 
-  80371a4:	4604      	mov	r4, r0
 
-   ETHARP_STATS_INC(etharp.xmit);
 
-   /* free ARP query packet */
 
-   pbuf_free(p);
 
-  80371a6:	4628      	mov	r0, r5
 
-  80371a8:	f7f8 fe30 	bl	802fe0c <pbuf_free>
 
-  80371ac:	e000      	b.n	80371b0 <etharp_request+0x9c>
 
-   /* could allocate a pbuf for an ARP request? */
 
-   if (p == NULL) {
 
-     LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS,
 
-       ("etharp_raw: could not allocate pbuf for ARP request.\n"));
 
-     ETHARP_STATS_INC(etharp.memerr);
 
-     return ERR_MEM;
 
-  80371ae:	24ff      	movs	r4, #255	; 0xff
 
- {
 
-   LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_request: sending ARP request.\n"));
 
-   return etharp_raw(netif, (struct eth_addr *)netif->hwaddr, ðbroadcast,
 
-                     (struct eth_addr *)netif->hwaddr, &netif->ip_addr, ðzero,
 
-                     ipaddr, ARP_REQUEST);
 
- }
 
-  80371b0:	b260      	sxtb	r0, r4
 
-  80371b2:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
 
-  80371b6:	bf00      	nop
 
-  80371b8:	0804593d 	.word	0x0804593d
 
-  80371bc:	08045937 	.word	0x08045937
 
- 080371c0 <etharp_query>:
 
-  * - ERR_ARG Non-unicast address given, those will not appear in ARP cache.
 
-  *
 
-  */
 
- err_t
 
- etharp_query(struct netif *netif, ip_addr_t *ipaddr, struct pbuf *q)
 
- {
 
-  80371c0:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
 
-  80371c4:	4607      	mov	r7, r0
 
-  80371c6:	460e      	mov	r6, r1
 
-   struct eth_addr * srcaddr = (struct eth_addr *)netif->hwaddr;
 
-   err_t result = ERR_MEM;
 
-   s8_t i; /* ARP entry index */
 
-   /* non-unicast address? */
 
-   if (ip_addr_isbroadcast(ipaddr, netif) ||
 
-  80371c8:	6808      	ldr	r0, [r1, #0]
 
-  80371ca:	4639      	mov	r1, r7
 
-  * - ERR_ARG Non-unicast address given, those will not appear in ARP cache.
 
-  *
 
-  */
 
- err_t
 
- etharp_query(struct netif *netif, ip_addr_t *ipaddr, struct pbuf *q)
 
- {
 
-  80371cc:	4615      	mov	r5, r2
 
-   struct eth_addr * srcaddr = (struct eth_addr *)netif->hwaddr;
 
-   err_t result = ERR_MEM;
 
-   s8_t i; /* ARP entry index */
 
-   /* non-unicast address? */
 
-   if (ip_addr_isbroadcast(ipaddr, netif) ||
 
-  80371ce:	f7fb fdd9 	bl	8032d84 <ip4_addr_isbroadcast>
 
-  80371d2:	2800      	cmp	r0, #0
 
-  80371d4:	d157      	bne.n	8037286 <etharp_query+0xc6>
 
-       ip_addr_ismulticast(ipaddr) ||
 
-  80371d6:	6833      	ldr	r3, [r6, #0]
 
-  80371d8:	f003 02f0 	and.w	r2, r3, #240	; 0xf0
 
-   struct eth_addr * srcaddr = (struct eth_addr *)netif->hwaddr;
 
-   err_t result = ERR_MEM;
 
-   s8_t i; /* ARP entry index */
 
-   /* non-unicast address? */
 
-   if (ip_addr_isbroadcast(ipaddr, netif) ||
 
-  80371dc:	2ae0      	cmp	r2, #224	; 0xe0
 
-  80371de:	d052      	beq.n	8037286 <etharp_query+0xc6>
 
-       ip_addr_ismulticast(ipaddr) ||
 
-       ip_addr_isany(ipaddr)) {
 
-  80371e0:	2b00      	cmp	r3, #0
 
-  80371e2:	d050      	beq.n	8037286 <etharp_query+0xc6>
 
-     LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_query: will not add non-unicast IP address to ARP cache\n"));
 
-     return ERR_ARG;
 
-   }
 
-   /* find entry in ARP cache, ask to create entry if queueing packet */
 
-   i = etharp_find_entry(ipaddr, ETHARP_FLAG_TRY_HARD);
 
-  80371e4:	2101      	movs	r1, #1
 
-  80371e6:	4630      	mov	r0, r6
 
-  80371e8:	f7ff fed4 	bl	8036f94 <etharp_find_entry>
 
-   /* could not find or create entry? */
 
-   if (i < 0) {
 
-  80371ec:	1e04      	subs	r4, r0, #0
 
-  80371ee:	db4f      	blt.n	8037290 <etharp_query+0xd0>
 
-     }
 
-     return (err_t)i;
 
-   }
 
-   /* mark a fresh entry as pending (we just sent a request) */
 
-   if (arp_table[i].state == ETHARP_STATE_EMPTY) {
 
-  80371f0:	4931      	ldr	r1, [pc, #196]	; (80372b8 <etharp_query+0xf8>)
 
-  80371f2:	2214      	movs	r2, #20
 
-  80371f4:	fb02 1304 	mla	r3, r2, r4, r1
 
-  80371f8:	3310      	adds	r3, #16
 
-  80371fa:	7898      	ldrb	r0, [r3, #2]
 
-  80371fc:	b908      	cbnz	r0, 8037202 <etharp_query+0x42>
 
-     arp_table[i].state = ETHARP_STATE_PENDING;
 
-  80371fe:	2001      	movs	r0, #1
 
-  8037200:	7098      	strb	r0, [r3, #2]
 
-   LWIP_ASSERT("arp_table[i].state == PENDING or STABLE",
 
-   ((arp_table[i].state == ETHARP_STATE_PENDING) ||
 
-    (arp_table[i].state >= ETHARP_STATE_STABLE)));
 
-   /* do we have a pending entry? or an implicit query request? */
 
-   if ((arp_table[i].state == ETHARP_STATE_PENDING) || (q == NULL)) {
 
-  8037202:	fb02 1204 	mla	r2, r2, r4, r1
 
-  8037206:	7c93      	ldrb	r3, [r2, #18]
 
-  8037208:	2b01      	cmp	r3, #1
 
-  803720a:	d000      	beq.n	803720e <etharp_query+0x4e>
 
-  803720c:	b935      	cbnz	r5, 803721c <etharp_query+0x5c>
 
-     /* try to resolve it; send out ARP request */
 
-     result = etharp_request(netif, ipaddr);
 
-  803720e:	4638      	mov	r0, r7
 
-  8037210:	4631      	mov	r1, r6
 
-  8037212:	f7ff ff7f 	bl	8037114 <etharp_request>
 
-  8037216:	4602      	mov	r2, r0
 
-       /* ARP request couldn't be sent */
 
-       /* We don't re-send arp request in etharp_tmr, but we still queue packets,
 
-          since this failure could be temporary, and the next packet calling
 
-          etharp_query again could lead to sending the queued packets. */
 
-     }
 
-     if (q == NULL) {
 
-  8037218:	b90d      	cbnz	r5, 803721e <etharp_query+0x5e>
 
-  803721a:	e036      	b.n	803728a <etharp_query+0xca>
 
-  */
 
- err_t
 
- etharp_query(struct netif *netif, ip_addr_t *ipaddr, struct pbuf *q)
 
- {
 
-   struct eth_addr * srcaddr = (struct eth_addr *)netif->hwaddr;
 
-   err_t result = ERR_MEM;
 
-  803721c:	22ff      	movs	r2, #255	; 0xff
 
-   }
 
-   /* packet given? */
 
-   LWIP_ASSERT("q != NULL", q != NULL);
 
-   /* stable entry? */
 
-   if (arp_table[i].state >= ETHARP_STATE_STABLE) {
 
-  803721e:	2314      	movs	r3, #20
 
-  8037220:	4925      	ldr	r1, [pc, #148]	; (80372b8 <etharp_query+0xf8>)
 
-  8037222:	4363      	muls	r3, r4
 
-  8037224:	18c8      	adds	r0, r1, r3
 
-  8037226:	7c80      	ldrb	r0, [r0, #18]
 
-  8037228:	2801      	cmp	r0, #1
 
-  803722a:	d90b      	bls.n	8037244 <etharp_query+0x84>
 
-     /* we have a valid IP->Ethernet address mapping */
 
-     ETHARP_SET_HINT(netif, i);
 
-  803722c:	4a23      	ldr	r2, [pc, #140]	; (80372bc <etharp_query+0xfc>)
 
-     /* send the packet */
 
-     result = etharp_send_ip(netif, q, srcaddr, &(arp_table[i].ethaddr));
 
-  803722e:	18cb      	adds	r3, r1, r3
 
-   /* packet given? */
 
-   LWIP_ASSERT("q != NULL", q != NULL);
 
-   /* stable entry? */
 
-   if (arp_table[i].state >= ETHARP_STATE_STABLE) {
 
-     /* we have a valid IP->Ethernet address mapping */
 
-     ETHARP_SET_HINT(netif, i);
 
-  8037230:	7014      	strb	r4, [r2, #0]
 
-     /* send the packet */
 
-     result = etharp_send_ip(netif, q, srcaddr, &(arp_table[i].ethaddr));
 
-  8037232:	4638      	mov	r0, r7
 
-  8037234:	4629      	mov	r1, r5
 
-  8037236:	f107 0227 	add.w	r2, r7, #39	; 0x27
 
-  803723a:	330c      	adds	r3, #12
 
-       LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_query: could not queue a copy of PBUF_REF packet %p (out of memory)\n", (void *)q));
 
-       result = ERR_MEM;
 
-     }
 
-   }
 
-   return result;
 
- }
 
-  803723c:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
 
-   /* stable entry? */
 
-   if (arp_table[i].state >= ETHARP_STATE_STABLE) {
 
-     /* we have a valid IP->Ethernet address mapping */
 
-     ETHARP_SET_HINT(netif, i);
 
-     /* send the packet */
 
-     result = etharp_send_ip(netif, q, srcaddr, &(arp_table[i].ethaddr));
 
-  8037240:	f7ff be76 	b.w	8036f30 <etharp_send_ip>
 
-   /* pending entry? (either just created or already pending */
 
-   } else if (arp_table[i].state == ETHARP_STATE_PENDING) {
 
-  8037244:	d123      	bne.n	803728e <etharp_query+0xce>
 
-  8037246:	462b      	mov	r3, r5
 
-  8037248:	e003      	b.n	8037252 <etharp_query+0x92>
 
-      * to copy the whole queue into a new PBUF_RAM (see bug #11400) 
 
-      * PBUF_ROMs can be left as they are, since ROM must not get changed. */
 
-     p = q;
 
-     while (p) {
 
-       LWIP_ASSERT("no packet queues allowed!", (p->len != p->tot_len) || (p->next == 0));
 
-       if(p->type != PBUF_ROM) {
 
-  803724a:	7b1a      	ldrb	r2, [r3, #12]
 
-  803724c:	2a01      	cmp	r2, #1
 
-  803724e:	d128      	bne.n	80372a2 <etharp_query+0xe2>
 
-         copy_needed = 1;
 
-         break;
 
-       }
 
-       p = p->next;
 
-  8037250:	681b      	ldr	r3, [r3, #0]
 
-     int copy_needed = 0;
 
-     /* IF q includes a PBUF_REF, PBUF_POOL or PBUF_RAM, we have no choice but
 
-      * to copy the whole queue into a new PBUF_RAM (see bug #11400) 
 
-      * PBUF_ROMs can be left as they are, since ROM must not get changed. */
 
-     p = q;
 
-     while (p) {
 
-  8037252:	2b00      	cmp	r3, #0
 
-  8037254:	d1f9      	bne.n	803724a <etharp_query+0x8a>
 
-  8037256:	e01e      	b.n	8037296 <etharp_query+0xd6>
 
-     }
 
-     if(copy_needed) {
 
-       /* copy the whole packet into new pbufs */
 
-       p = pbuf_alloc(PBUF_RAW, p->tot_len, PBUF_RAM);
 
-       if(p != NULL) {
 
-         if (pbuf_copy(p, q) != ERR_OK) {
 
-  8037258:	4629      	mov	r1, r5
 
-  803725a:	f7f8 fedb 	bl	8030014 <pbuf_copy>
 
-  803725e:	b120      	cbz	r0, 803726a <etharp_query+0xaa>
 
-           pbuf_free(p);
 
-  8037260:	4630      	mov	r0, r6
 
-  8037262:	f7f8 fdd3 	bl	802fe0c <pbuf_free>
 
-  8037266:	e024      	b.n	80372b2 <etharp_query+0xf2>
 
-       /* referencing the old pbuf is enough */
 
-       p = q;
 
-       pbuf_ref(p);
 
-     }
 
-     /* packet could be taken over? */
 
-     if (p != NULL) {
 
-  8037268:	462e      	mov	r6, r5
 
-         LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_query: could not queue a copy of PBUF_REF packet %p (out of memory)\n", (void *)q));
 
-         result = ERR_MEM;
 
-       }
 
- #else /* ARP_QUEUEING */
 
-       /* always queue one packet per ARP request only, freeing a previously queued packet */
 
-       if (arp_table[i].q != NULL) {
 
-  803726a:	2314      	movs	r3, #20
 
-  803726c:	4a12      	ldr	r2, [pc, #72]	; (80372b8 <etharp_query+0xf8>)
 
-  803726e:	fb03 f104 	mul.w	r1, r3, r4
 
-  8037272:	4615      	mov	r5, r2
 
-  8037274:	5850      	ldr	r0, [r2, r1]
 
-  8037276:	461f      	mov	r7, r3
 
-  8037278:	b108      	cbz	r0, 803727e <etharp_query+0xbe>
 
-         LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_query: dropped previously queued packet %p for ARP entry %"S16_F"\n", (void *)q, (s16_t)i));
 
-         pbuf_free(arp_table[i].q);
 
-  803727a:	f7f8 fdc7 	bl	802fe0c <pbuf_free>
 
-       }
 
-       arp_table[i].q = p;
 
-  803727e:	437c      	muls	r4, r7
 
-  8037280:	512e      	str	r6, [r5, r4]
 
-       result = ERR_OK;
 
-  8037282:	2400      	movs	r4, #0
 
-  8037284:	e004      	b.n	8037290 <etharp_query+0xd0>
 
-   /* non-unicast address? */
 
-   if (ip_addr_isbroadcast(ipaddr, netif) ||
 
-       ip_addr_ismulticast(ipaddr) ||
 
-       ip_addr_isany(ipaddr)) {
 
-     LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_query: will not add non-unicast IP address to ARP cache\n"));
 
-     return ERR_ARG;
 
-  8037286:	24f2      	movs	r4, #242	; 0xf2
 
-  8037288:	e002      	b.n	8037290 <etharp_query+0xd0>
 
-       /* We don't re-send arp request in etharp_tmr, but we still queue packets,
 
-          since this failure could be temporary, and the next packet calling
 
-          etharp_query again could lead to sending the queued packets. */
 
-     }
 
-     if (q == NULL) {
 
-       return result;
 
-  803728a:	4604      	mov	r4, r0
 
-  803728c:	e000      	b.n	8037290 <etharp_query+0xd0>
 
-     /* we have a valid IP->Ethernet address mapping */
 
-     ETHARP_SET_HINT(netif, i);
 
-     /* send the packet */
 
-     result = etharp_send_ip(netif, q, srcaddr, &(arp_table[i].ethaddr));
 
-   /* pending entry? (either just created or already pending */
 
-   } else if (arp_table[i].state == ETHARP_STATE_PENDING) {
 
-  803728e:	4614      	mov	r4, r2
 
-  8037290:	b260      	sxtb	r0, r4
 
-  8037292:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 
-         }
 
-       }
 
-     } else {
 
-       /* referencing the old pbuf is enough */
 
-       p = q;
 
-       pbuf_ref(p);
 
-  8037296:	4628      	mov	r0, r5
 
-  8037298:	f7f8 fe95 	bl	802ffc6 <pbuf_ref>
 
-     }
 
-     /* packet could be taken over? */
 
-     if (p != NULL) {
 
-  803729c:	2d00      	cmp	r5, #0
 
-  803729e:	d1e3      	bne.n	8037268 <etharp_query+0xa8>
 
-  80372a0:	e007      	b.n	80372b2 <etharp_query+0xf2>
 
-       }
 
-       p = p->next;
 
-     }
 
-     if(copy_needed) {
 
-       /* copy the whole packet into new pbufs */
 
-       p = pbuf_alloc(PBUF_RAW, p->tot_len, PBUF_RAM);
 
-  80372a2:	2003      	movs	r0, #3
 
-  80372a4:	8919      	ldrh	r1, [r3, #8]
 
-  80372a6:	2200      	movs	r2, #0
 
-  80372a8:	f7f8 fdfd 	bl	802fea6 <pbuf_alloc>
 
-       if(p != NULL) {
 
-  80372ac:	4606      	mov	r6, r0
 
-  80372ae:	2800      	cmp	r0, #0
 
-  80372b0:	d1d2      	bne.n	8037258 <etharp_query+0x98>
 
-       LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_query: queued packet %p on ARP entry %"S16_F"\n", (void *)q, (s16_t)i));
 
- #endif /* ARP_QUEUEING */
 
-     } else {
 
-       ETHARP_STATS_INC(etharp.memerr);
 
-       LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_query: could not queue a copy of PBUF_REF packet %p (out of memory)\n", (void *)q));
 
-       result = ERR_MEM;
 
-  80372b2:	24ff      	movs	r4, #255	; 0xff
 
-  80372b4:	e7ec      	b.n	8037290 <etharp_query+0xd0>
 
-  80372b6:	bf00      	nop
 
-  80372b8:	2000c700 	.word	0x2000c700
 
-  80372bc:	2000c6fc 	.word	0x2000c6fc
 
- 080372c0 <etharp_output_to_arp_index>:
 
- /** Just a small helper function that sends a pbuf to an ethernet address
 
-  * in the arp_table specified by the index 'arp_idx'.
 
-  */
 
- static err_t
 
- etharp_output_to_arp_index(struct netif *netif, struct pbuf *q, u8_t arp_idx)
 
- {
 
-  80372c0:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
 
-   LWIP_ASSERT("arp_table[arp_idx].state >= ETHARP_STATE_STABLE",
 
-               arp_table[arp_idx].state >= ETHARP_STATE_STABLE);
 
-   /* if arp table entry is about to expire: re-request it,
 
-      but only if its state is ETHARP_STATE_STABLE to prevent flooding the
 
-      network with ARP requests if this address is used frequently. */
 
-   if ((arp_table[arp_idx].state == ETHARP_STATE_STABLE) && 
 
-  80372c4:	4b10      	ldr	r3, [pc, #64]	; (8037308 <etharp_output_to_arp_index+0x48>)
 
- /** Just a small helper function that sends a pbuf to an ethernet address
 
-  * in the arp_table specified by the index 'arp_idx'.
 
-  */
 
- static err_t
 
- etharp_output_to_arp_index(struct netif *netif, struct pbuf *q, u8_t arp_idx)
 
- {
 
-  80372c6:	4615      	mov	r5, r2
 
-   LWIP_ASSERT("arp_table[arp_idx].state >= ETHARP_STATE_STABLE",
 
-               arp_table[arp_idx].state >= ETHARP_STATE_STABLE);
 
-   /* if arp table entry is about to expire: re-request it,
 
-      but only if its state is ETHARP_STATE_STABLE to prevent flooding the
 
-      network with ARP requests if this address is used frequently. */
 
-   if ((arp_table[arp_idx].state == ETHARP_STATE_STABLE) && 
 
-  80372c8:	2214      	movs	r2, #20
 
- /** Just a small helper function that sends a pbuf to an ethernet address
 
-  * in the arp_table specified by the index 'arp_idx'.
 
-  */
 
- static err_t
 
- etharp_output_to_arp_index(struct netif *netif, struct pbuf *q, u8_t arp_idx)
 
- {
 
-  80372ca:	460e      	mov	r6, r1
 
-   LWIP_ASSERT("arp_table[arp_idx].state >= ETHARP_STATE_STABLE",
 
-               arp_table[arp_idx].state >= ETHARP_STATE_STABLE);
 
-   /* if arp table entry is about to expire: re-request it,
 
-      but only if its state is ETHARP_STATE_STABLE to prevent flooding the
 
-      network with ARP requests if this address is used frequently. */
 
-   if ((arp_table[arp_idx].state == ETHARP_STATE_STABLE) && 
 
-  80372cc:	fb02 3105 	mla	r1, r2, r5, r3
 
- /** Just a small helper function that sends a pbuf to an ethernet address
 
-  * in the arp_table specified by the index 'arp_idx'.
 
-  */
 
- static err_t
 
- etharp_output_to_arp_index(struct netif *netif, struct pbuf *q, u8_t arp_idx)
 
- {
 
-  80372d0:	4607      	mov	r7, r0
 
-   LWIP_ASSERT("arp_table[arp_idx].state >= ETHARP_STATE_STABLE",
 
-               arp_table[arp_idx].state >= ETHARP_STATE_STABLE);
 
-   /* if arp table entry is about to expire: re-request it,
 
-      but only if its state is ETHARP_STATE_STABLE to prevent flooding the
 
-      network with ARP requests if this address is used frequently. */
 
-   if ((arp_table[arp_idx].state == ETHARP_STATE_STABLE) && 
 
-  80372d2:	7c8a      	ldrb	r2, [r1, #18]
 
-  80372d4:	2a02      	cmp	r2, #2
 
-  80372d6:	f101 0410 	add.w	r4, r1, #16
 
-  80372da:	d108      	bne.n	80372ee <etharp_output_to_arp_index+0x2e>
 
-  80372dc:	7cca      	ldrb	r2, [r1, #19]
 
-  80372de:	2ae3      	cmp	r2, #227	; 0xe3
 
-  80372e0:	d905      	bls.n	80372ee <etharp_output_to_arp_index+0x2e>
 
-       (arp_table[arp_idx].ctime >= ARP_AGE_REREQUEST_USED)) {
 
-     if (etharp_request(netif, &arp_table[arp_idx].ipaddr) == ERR_OK) {
 
-  80372e2:	3104      	adds	r1, #4
 
-  80372e4:	f7ff ff16 	bl	8037114 <etharp_request>
 
-  80372e8:	b908      	cbnz	r0, 80372ee <etharp_output_to_arp_index+0x2e>
 
-       arp_table[arp_idx].state = ETHARP_STATE_STABLE_REREQUESTING;
 
-  80372ea:	2303      	movs	r3, #3
 
-  80372ec:	70a3      	strb	r3, [r4, #2]
 
-     }
 
-   }
 
-   
 
-   return etharp_send_ip(netif, q, (struct eth_addr*)(netif->hwaddr),
 
-  80372ee:	4b06      	ldr	r3, [pc, #24]	; (8037308 <etharp_output_to_arp_index+0x48>)
 
-  80372f0:	2214      	movs	r2, #20
 
-  80372f2:	fb02 3305 	mla	r3, r2, r5, r3
 
-  80372f6:	4638      	mov	r0, r7
 
-  80372f8:	4631      	mov	r1, r6
 
-  80372fa:	f107 0227 	add.w	r2, r7, #39	; 0x27
 
-  80372fe:	330c      	adds	r3, #12
 
-     &arp_table[arp_idx].ethaddr);
 
- }
 
-  8037300:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
 
-     if (etharp_request(netif, &arp_table[arp_idx].ipaddr) == ERR_OK) {
 
-       arp_table[arp_idx].state = ETHARP_STATE_STABLE_REREQUESTING;
 
-     }
 
-   }
 
-   
 
-   return etharp_send_ip(netif, q, (struct eth_addr*)(netif->hwaddr),
 
-  8037304:	f7ff be14 	b.w	8036f30 <etharp_send_ip>
 
-  8037308:	2000c700 	.word	0x2000c700
 
- 0803730c <etharp_output>:
 
-  * - ERR_RTE No route to destination (no gateway to external networks),
 
-  * or the return type of either etharp_query() or etharp_send_ip().
 
-  */
 
- err_t
 
- etharp_output(struct netif *netif, struct pbuf *q, ip_addr_t *ipaddr)
 
- {
 
-  803730c:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
 
-  803730e:	4604      	mov	r4, r0
 
-  8037310:	460e      	mov	r6, r1
 
-   LWIP_ASSERT("netif != NULL", netif != NULL);
 
-   LWIP_ASSERT("q != NULL", q != NULL);
 
-   LWIP_ASSERT("ipaddr != NULL", ipaddr != NULL);
 
-   /* make room for Ethernet header - should not fail */
 
-   if (pbuf_header(q, sizeof(struct eth_hdr)) != 0) {
 
-  8037312:	4608      	mov	r0, r1
 
-  8037314:	210e      	movs	r1, #14
 
-  * - ERR_RTE No route to destination (no gateway to external networks),
 
-  * or the return type of either etharp_query() or etharp_send_ip().
 
-  */
 
- err_t
 
- etharp_output(struct netif *netif, struct pbuf *q, ip_addr_t *ipaddr)
 
- {
 
-  8037316:	4615      	mov	r5, r2
 
-   LWIP_ASSERT("netif != NULL", netif != NULL);
 
-   LWIP_ASSERT("q != NULL", q != NULL);
 
-   LWIP_ASSERT("ipaddr != NULL", ipaddr != NULL);
 
-   /* make room for Ethernet header - should not fail */
 
-   if (pbuf_header(q, sizeof(struct eth_hdr)) != 0) {
 
-  8037318:	f7f8 fd4d 	bl	802fdb6 <pbuf_header>
 
-  803731c:	2800      	cmp	r0, #0
 
-  803731e:	d163      	bne.n	80373e8 <etharp_output+0xdc>
 
-   /* Determine on destination hardware address. Broadcasts and multicasts
 
-    * are special, other IP addresses are looked up in the ARP table. */
 
-   /* broadcast destination IP address? */
 
-   if (ip_addr_isbroadcast(ipaddr, netif)) {
 
-  8037320:	6828      	ldr	r0, [r5, #0]
 
-  8037322:	4621      	mov	r1, r4
 
-  8037324:	f7fb fd2e 	bl	8032d84 <ip4_addr_isbroadcast>
 
-  8037328:	2800      	cmp	r0, #0
 
-  803732a:	d155      	bne.n	80373d8 <etharp_output+0xcc>
 
-     /* broadcast on Ethernet also */
 
-     dest = (struct eth_addr *)ðbroadcast;
 
-   /* multicast destination IP address? */
 
-   } else if (ip_addr_ismulticast(ipaddr)) {
 
-  803732c:	682b      	ldr	r3, [r5, #0]
 
-  803732e:	f003 02f0 	and.w	r2, r3, #240	; 0xf0
 
-  8037332:	2ae0      	cmp	r2, #224	; 0xe0
 
-  8037334:	d114      	bne.n	8037360 <etharp_output+0x54>
 
-     /* Hash IP multicast address to MAC address.*/
 
-     mcastaddr.addr[0] = LL_MULTICAST_ADDR_0;
 
-  8037336:	2301      	movs	r3, #1
 
-  8037338:	f88d 3000 	strb.w	r3, [sp]
 
-     mcastaddr.addr[1] = LL_MULTICAST_ADDR_1;
 
-     mcastaddr.addr[2] = LL_MULTICAST_ADDR_2;
 
-  803733c:	235e      	movs	r3, #94	; 0x5e
 
-  803733e:	f88d 3002 	strb.w	r3, [sp, #2]
 
-     mcastaddr.addr[3] = ip4_addr2(ipaddr) & 0x7f;
 
-  8037342:	786b      	ldrb	r3, [r5, #1]
 
-     dest = (struct eth_addr *)ðbroadcast;
 
-   /* multicast destination IP address? */
 
-   } else if (ip_addr_ismulticast(ipaddr)) {
 
-     /* Hash IP multicast address to MAC address.*/
 
-     mcastaddr.addr[0] = LL_MULTICAST_ADDR_0;
 
-     mcastaddr.addr[1] = LL_MULTICAST_ADDR_1;
 
-  8037344:	f88d 0001 	strb.w	r0, [sp, #1]
 
-     mcastaddr.addr[2] = LL_MULTICAST_ADDR_2;
 
-     mcastaddr.addr[3] = ip4_addr2(ipaddr) & 0x7f;
 
-  8037348:	f003 037f 	and.w	r3, r3, #127	; 0x7f
 
-  803734c:	f88d 3003 	strb.w	r3, [sp, #3]
 
-     mcastaddr.addr[4] = ip4_addr3(ipaddr);
 
-  8037350:	78ab      	ldrb	r3, [r5, #2]
 
-  8037352:	f88d 3004 	strb.w	r3, [sp, #4]
 
-     mcastaddr.addr[5] = ip4_addr4(ipaddr);
 
-  8037356:	78eb      	ldrb	r3, [r5, #3]
 
-  8037358:	f88d 3005 	strb.w	r3, [sp, #5]
 
-     /* destination Ethernet address is multicast */
 
-     dest = &mcastaddr;
 
-  803735c:	466b      	mov	r3, sp
 
-  803735e:	e03c      	b.n	80373da <etharp_output+0xce>
 
-   /* unicast destination IP address? */
 
-   } else {
 
-     s8_t i;
 
-     /* outside local network? if so, this can neither be a global broadcast nor
 
-        a subnet broadcast. */
 
-     if (!ip_addr_netcmp(ipaddr, &(netif->ip_addr), &(netif->netmask)) &&
 
-  8037360:	6862      	ldr	r2, [r4, #4]
 
-  8037362:	ea83 0102 	eor.w	r1, r3, r2
 
-  8037366:	68a2      	ldr	r2, [r4, #8]
 
-  8037368:	4211      	tst	r1, r2
 
-  803736a:	d009      	beq.n	8037380 <etharp_output+0x74>
 
-         !ip_addr_islinklocal(ipaddr)) {
 
-  803736c:	b29b      	uxth	r3, r3
 
-   /* unicast destination IP address? */
 
-   } else {
 
-     s8_t i;
 
-     /* outside local network? if so, this can neither be a global broadcast nor
 
-        a subnet broadcast. */
 
-     if (!ip_addr_netcmp(ipaddr, &(netif->ip_addr), &(netif->netmask)) &&
 
-  803736e:	f64f 62a9 	movw	r2, #65193	; 0xfea9
 
-  8037372:	4293      	cmp	r3, r2
 
-  8037374:	d004      	beq.n	8037380 <etharp_output+0x74>
 
-          router for forwarding". */
 
-       if (!ip_addr_islinklocal(&iphdr->src))
 
- #endif /* LWIP_AUTOIP */
 
-       {
 
-         /* interface has default gateway? */
 
-         if (!ip_addr_isany(&netif->gw)) {
 
-  8037376:	68e3      	ldr	r3, [r4, #12]
 
-  8037378:	f104 010c 	add.w	r1, r4, #12
 
-  803737c:	b90b      	cbnz	r3, 8037382 <etharp_output+0x76>
 
-  803737e:	e035      	b.n	80373ec <etharp_output+0xe0>
 
-   /* unicast destination IP address? */
 
-   } else {
 
-     s8_t i;
 
-     /* outside local network? if so, this can neither be a global broadcast nor
 
-        a subnet broadcast. */
 
-     if (!ip_addr_netcmp(ipaddr, &(netif->ip_addr), &(netif->netmask)) &&
 
-  8037380:	4629      	mov	r1, r5
 
-     if (netif->addr_hint != NULL) {
 
-       /* per-pcb cached entry was given */
 
-       u8_t etharp_cached_entry = *(netif->addr_hint);
 
-       if (etharp_cached_entry < ARP_TABLE_SIZE) {
 
- #endif /* LWIP_NETIF_HWADDRHINT */
 
-         if ((arp_table[etharp_cached_entry].state >= ETHARP_STATE_STABLE) &&
 
-  8037382:	4b1c      	ldr	r3, [pc, #112]	; (80373f4 <etharp_output+0xe8>)
 
-  8037384:	781a      	ldrb	r2, [r3, #0]
 
-  8037386:	4b1c      	ldr	r3, [pc, #112]	; (80373f8 <etharp_output+0xec>)
 
-  8037388:	2014      	movs	r0, #20
 
-  803738a:	fb00 3302 	mla	r3, r0, r2, r3
 
-  803738e:	7c98      	ldrb	r0, [r3, #18]
 
-  8037390:	2801      	cmp	r0, #1
 
-  8037392:	d904      	bls.n	803739e <etharp_output+0x92>
 
-  8037394:	6808      	ldr	r0, [r1, #0]
 
-  8037396:	685b      	ldr	r3, [r3, #4]
 
-  8037398:	4298      	cmp	r0, r3
 
-  803739a:	d100      	bne.n	803739e <etharp_output+0x92>
 
-  803739c:	e00d      	b.n	80373ba <etharp_output+0xae>
 
-  803739e:	2300      	movs	r3, #0
 
-  * @return
 
-  * - ERR_RTE No route to destination (no gateway to external networks),
 
-  * or the return type of either etharp_query() or etharp_send_ip().
 
-  */
 
- err_t
 
- etharp_output(struct netif *netif, struct pbuf *q, ip_addr_t *ipaddr)
 
-  80373a0:	4f15      	ldr	r7, [pc, #84]	; (80373f8 <etharp_output+0xec>)
 
-     if (netif->addr_hint != NULL) {
 
-       /* per-pcb cached entry was given */
 
-       u8_t etharp_cached_entry = *(netif->addr_hint);
 
-       if (etharp_cached_entry < ARP_TABLE_SIZE) {
 
- #endif /* LWIP_NETIF_HWADDRHINT */
 
-         if ((arp_table[etharp_cached_entry].state >= ETHARP_STATE_STABLE) &&
 
-  80373a2:	461a      	mov	r2, r3
 
-  * @return
 
-  * - ERR_RTE No route to destination (no gateway to external networks),
 
-  * or the return type of either etharp_query() or etharp_send_ip().
 
-  */
 
- err_t
 
- etharp_output(struct netif *netif, struct pbuf *q, ip_addr_t *ipaddr)
 
-  80373a4:	18f8      	adds	r0, r7, r3
 
- #endif /* LWIP_NETIF_HWADDRHINT */
 
-     /* find stable entry: do this here since this is a critical path for
 
-        throughput and etharp_find_entry() is kind of slow */
 
-     for (i = 0; i < ARP_TABLE_SIZE; i++) {
 
-       if ((arp_table[i].state >= ETHARP_STATE_STABLE) &&
 
-  80373a6:	7c85      	ldrb	r5, [r0, #18]
 
-  80373a8:	2d01      	cmp	r5, #1
 
-  80373aa:	d90b      	bls.n	80373c4 <etharp_output+0xb8>
 
-  80373ac:	680d      	ldr	r5, [r1, #0]
 
-  80373ae:	6840      	ldr	r0, [r0, #4]
 
-  80373b0:	4285      	cmp	r5, r0
 
-  80373b2:	d107      	bne.n	80373c4 <etharp_output+0xb8>
 
-           (ip_addr_cmp(dst_addr, &arp_table[i].ipaddr))) {
 
-         /* found an existing, stable entry */
 
-         ETHARP_SET_HINT(netif, i);
 
-  80373b4:	4b0f      	ldr	r3, [pc, #60]	; (80373f4 <etharp_output+0xe8>)
 
-  80373b6:	b2d2      	uxtb	r2, r2
 
-  80373b8:	701a      	strb	r2, [r3, #0]
 
-         return etharp_output_to_arp_index(netif, q, i);
 
-  80373ba:	4620      	mov	r0, r4
 
-  80373bc:	4631      	mov	r1, r6
 
-  80373be:	f7ff ff7f 	bl	80372c0 <etharp_output_to_arp_index>
 
-  80373c2:	e014      	b.n	80373ee <etharp_output+0xe2>
 
-  80373c4:	3314      	adds	r3, #20
 
-     }
 
- #endif /* LWIP_NETIF_HWADDRHINT */
 
-     /* find stable entry: do this here since this is a critical path for
 
-        throughput and etharp_find_entry() is kind of slow */
 
-     for (i = 0; i < ARP_TABLE_SIZE; i++) {
 
-  80373c6:	3201      	adds	r2, #1
 
-  80373c8:	2bc8      	cmp	r3, #200	; 0xc8
 
-  80373ca:	b2d2      	uxtb	r2, r2
 
-  80373cc:	d1ea      	bne.n	80373a4 <etharp_output+0x98>
 
-         return etharp_output_to_arp_index(netif, q, i);
 
-       }
 
-     }
 
-     /* no stable entry found, use the (slower) query function:
 
-        queue on destination Ethernet address belonging to ipaddr */
 
-     return etharp_query(netif, dst_addr, q);
 
-  80373ce:	4620      	mov	r0, r4
 
-  80373d0:	4632      	mov	r2, r6
 
-  80373d2:	f7ff fef5 	bl	80371c0 <etharp_query>
 
-  80373d6:	e00a      	b.n	80373ee <etharp_output+0xe2>
 
-    * are special, other IP addresses are looked up in the ARP table. */
 
-   /* broadcast destination IP address? */
 
-   if (ip_addr_isbroadcast(ipaddr, netif)) {
 
-     /* broadcast on Ethernet also */
 
-     dest = (struct eth_addr *)ðbroadcast;
 
-  80373d8:	4b08      	ldr	r3, [pc, #32]	; (80373fc <etharp_output+0xf0>)
 
-   }
 
-   /* continuation for multicast/broadcast destinations */
 
-   /* obtain source Ethernet address of the given interface */
 
-   /* send packet directly on the link */
 
-   return etharp_send_ip(netif, q, (struct eth_addr*)(netif->hwaddr), dest);
 
-  80373da:	4620      	mov	r0, r4
 
-  80373dc:	4631      	mov	r1, r6
 
-  80373de:	f104 0227 	add.w	r2, r4, #39	; 0x27
 
-  80373e2:	f7ff fda5 	bl	8036f30 <etharp_send_ip>
 
-  80373e6:	e002      	b.n	80373ee <etharp_output+0xe2>
 
-   if (pbuf_header(q, sizeof(struct eth_hdr)) != 0) {
 
-     /* bail out */
 
-     LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_SERIOUS,
 
-       ("etharp_output: could not allocate room for header.\n"));
 
-     LINK_STATS_INC(link.lenerr);
 
-     return ERR_BUF;
 
-  80373e8:	20fe      	movs	r0, #254	; 0xfe
 
-  80373ea:	e000      	b.n	80373ee <etharp_output+0xe2>
 
-           /* send to hardware address of default gateway IP address */
 
-           dst_addr = &(netif->gw);
 
-         /* no default gateway available */
 
-         } else {
 
-           /* no route to destination error (default gateway missing) */
 
-           return ERR_RTE;
 
-  80373ec:	20fc      	movs	r0, #252	; 0xfc
 
-   /* continuation for multicast/broadcast destinations */
 
-   /* obtain source Ethernet address of the given interface */
 
-   /* send packet directly on the link */
 
-   return etharp_send_ip(netif, q, (struct eth_addr*)(netif->hwaddr), dest);
 
- }
 
-  80373ee:	b240      	sxtb	r0, r0
 
-  80373f0:	bdfe      	pop	{r1, r2, r3, r4, r5, r6, r7, pc}
 
-  80373f2:	bf00      	nop
 
-  80373f4:	2000c6fc 	.word	0x2000c6fc
 
-  80373f8:	2000c700 	.word	0x2000c700
 
-  80373fc:	08045937 	.word	0x08045937
 
- 08037400 <ethernet_input>:
 
-  * @param p the recevied packet, p->payload pointing to the ethernet header
 
-  * @param netif the network interface on which the packet was received
 
-  */
 
- err_t
 
- ethernet_input(struct pbuf *p, struct netif *netif)
 
- {
 
-  8037400:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-   u16_t type;
 
- #if LWIP_ARP || ETHARP_SUPPORT_VLAN
 
-   s16_t ip_hdr_offset = SIZEOF_ETH_HDR;
 
- #endif /* LWIP_ARP || ETHARP_SUPPORT_VLAN */
 
-   if (p->len <= SIZEOF_ETH_HDR) {
 
-  8037404:	8943      	ldrh	r3, [r0, #10]
 
-  8037406:	2b0e      	cmp	r3, #14
 
-  * @param p the recevied packet, p->payload pointing to the ethernet header
 
-  * @param netif the network interface on which the packet was received
 
-  */
 
- err_t
 
- ethernet_input(struct pbuf *p, struct netif *netif)
 
- {
 
-  8037408:	b087      	sub	sp, #28
 
-  803740a:	4604      	mov	r4, r0
 
-  803740c:	460d      	mov	r5, r1
 
-   u16_t type;
 
- #if LWIP_ARP || ETHARP_SUPPORT_VLAN
 
-   s16_t ip_hdr_offset = SIZEOF_ETH_HDR;
 
- #endif /* LWIP_ARP || ETHARP_SUPPORT_VLAN */
 
-   if (p->len <= SIZEOF_ETH_HDR) {
 
-  803740e:	f240 80ed 	bls.w	80375ec <ethernet_input+0x1ec>
 
-     ETHARP_STATS_INC(etharp.drop);
 
-     goto free_and_return;
 
-   }
 
-   /* points to packet payload, which starts with an Ethernet header */
 
-   ethhdr = (struct eth_hdr *)p->payload;
 
-  8037412:	6840      	ldr	r0, [r0, #4]
 
- #if LWIP_ARP_FILTER_NETIF
 
-   netif = LWIP_ARP_FILTER_NETIF_FN(p, netif, htons(type));
 
- #endif /* LWIP_ARP_FILTER_NETIF*/
 
-   if (ethhdr->dest.addr[0] & 1) {
 
-  8037414:	7803      	ldrb	r3, [r0, #0]
 
-      (unsigned)ethhdr->dest.addr[3], (unsigned)ethhdr->dest.addr[4], (unsigned)ethhdr->dest.addr[5],
 
-      (unsigned)ethhdr->src.addr[0], (unsigned)ethhdr->src.addr[1], (unsigned)ethhdr->src.addr[2],
 
-      (unsigned)ethhdr->src.addr[3], (unsigned)ethhdr->src.addr[4], (unsigned)ethhdr->src.addr[5],
 
-      (unsigned)htons(ethhdr->type)));
 
-   type = ethhdr->type;
 
-  8037416:	8986      	ldrh	r6, [r0, #12]
 
- #if LWIP_ARP_FILTER_NETIF
 
-   netif = LWIP_ARP_FILTER_NETIF_FN(p, netif, htons(type));
 
- #endif /* LWIP_ARP_FILTER_NETIF*/
 
-   if (ethhdr->dest.addr[0] & 1) {
 
-  8037418:	07da      	lsls	r2, r3, #31
 
-  803741a:	d513      	bpl.n	8037444 <ethernet_input+0x44>
 
-     /* this might be a multicast or broadcast packet */
 
-     if (ethhdr->dest.addr[0] == LL_MULTICAST_ADDR_0) {
 
-  803741c:	2b01      	cmp	r3, #1
 
-  803741e:	d108      	bne.n	8037432 <ethernet_input+0x32>
 
-       if ((ethhdr->dest.addr[1] == LL_MULTICAST_ADDR_1) &&
 
-  8037420:	7843      	ldrb	r3, [r0, #1]
 
-  8037422:	b97b      	cbnz	r3, 8037444 <ethernet_input+0x44>
 
-  8037424:	7883      	ldrb	r3, [r0, #2]
 
-  8037426:	2b5e      	cmp	r3, #94	; 0x5e
 
-  8037428:	d10c      	bne.n	8037444 <ethernet_input+0x44>
 
-           (ethhdr->dest.addr[2] == LL_MULTICAST_ADDR_2)) {
 
-         /* mark the pbuf as link-layer multicast */
 
-         p->flags |= PBUF_FLAG_LLMCAST;
 
-  803742a:	7b63      	ldrb	r3, [r4, #13]
 
-  803742c:	f043 0310 	orr.w	r3, r3, #16
 
-  8037430:	e007      	b.n	8037442 <ethernet_input+0x42>
 
-       }
 
-     } else if (eth_addr_cmp(ðhdr->dest, ðbroadcast)) {
 
-  8037432:	4972      	ldr	r1, [pc, #456]	; (80375fc <ethernet_input+0x1fc>)
 
-  8037434:	2206      	movs	r2, #6
 
-  8037436:	f7ea fa77 	bl	8021928 <memcmp>
 
-  803743a:	b918      	cbnz	r0, 8037444 <ethernet_input+0x44>
 
-       /* mark the pbuf as link-layer broadcast */
 
-       p->flags |= PBUF_FLAG_LLBCAST;
 
-  803743c:	7b63      	ldrb	r3, [r4, #13]
 
-  803743e:	f043 0308 	orr.w	r3, r3, #8
 
-  8037442:	7363      	strb	r3, [r4, #13]
 
-     }
 
-   }
 
-   switch (type) {
 
-  8037444:	2e08      	cmp	r6, #8
 
-  8037446:	d004      	beq.n	8037452 <ethernet_input+0x52>
 
-  8037448:	f5b6 6fc1 	cmp.w	r6, #1544	; 0x608
 
-  803744c:	f040 80ce 	bne.w	80375ec <ethernet_input+0x1ec>
 
-  8037450:	e014      	b.n	803747c <ethernet_input+0x7c>
 
- #if LWIP_ARP
 
-     /* IP packet? */
 
-     case PP_HTONS(ETHTYPE_IP):
 
-       if (!(netif->flags & NETIF_FLAG_ETHARP)) {
 
-  8037452:	f895 302d 	ldrb.w	r3, [r5, #45]	; 0x2d
 
-  8037456:	f003 0320 	and.w	r3, r3, #32
 
-  803745a:	b2db      	uxtb	r3, r3
 
-  803745c:	2b00      	cmp	r3, #0
 
-  803745e:	f000 80c5 	beq.w	80375ec <ethernet_input+0x1ec>
 
- #if ETHARP_TRUST_IP_MAC
 
-       /* update ARP table */
 
-       etharp_ip_input(netif, p);
 
- #endif /* ETHARP_TRUST_IP_MAC */
 
-       /* skip Ethernet header */
 
-       if(pbuf_header(p, -ip_hdr_offset)) {
 
-  8037462:	4620      	mov	r0, r4
 
-  8037464:	f06f 010d 	mvn.w	r1, #13
 
-  8037468:	f7f8 fca5 	bl	802fdb6 <pbuf_header>
 
-  803746c:	2800      	cmp	r0, #0
 
-  803746e:	f040 80bd 	bne.w	80375ec <ethernet_input+0x1ec>
 
-         LWIP_ASSERT("Can't move over header in packet", 0);
 
-         goto free_and_return;
 
-       } else {
 
-         /* pass to IP layer */
 
-         ip_input(p, netif);
 
-  8037472:	4620      	mov	r0, r4
 
-  8037474:	4629      	mov	r1, r5
 
-  8037476:	f7fb fd99 	bl	8032fac <ip_input>
 
-       }
 
-       break;
 
-  803747a:	e0ba      	b.n	80375f2 <ethernet_input+0x1f2>
 
-       
 
-     case PP_HTONS(ETHTYPE_ARP):
 
-       if (!(netif->flags & NETIF_FLAG_ETHARP)) {
 
-  803747c:	f895 302d 	ldrb.w	r3, [r5, #45]	; 0x2d
 
-  8037480:	f003 0320 	and.w	r3, r3, #32
 
-  8037484:	b2db      	uxtb	r3, r3
 
-  8037486:	2b00      	cmp	r3, #0
 
-  8037488:	f000 80b0 	beq.w	80375ec <ethernet_input+0x1ec>
 
-   LWIP_ERROR("netif != NULL", (netif != NULL), return;);
 
-   /* drop short ARP packets: we have to check for p->len instead of p->tot_len here
 
-      since a struct etharp_hdr is pointed to p->payload, so it musn't be chained! */
 
-   if (p->len < SIZEOF_ETHARP_PACKET) {
 
-  803748c:	8963      	ldrh	r3, [r4, #10]
 
-  803748e:	2b29      	cmp	r3, #41	; 0x29
 
-  8037490:	d800      	bhi.n	8037494 <ethernet_input+0x94>
 
-  8037492:	e0ab      	b.n	80375ec <ethernet_input+0x1ec>
 
-     ETHARP_STATS_INC(etharp.drop);
 
-     pbuf_free(p);
 
-     return;
 
-   }
 
-   ethhdr = (struct eth_hdr *)p->payload;
 
-  8037494:	6866      	ldr	r6, [r4, #4]
 
-     hdr = (struct etharp_hdr *)(((u8_t*)ethhdr) + SIZEOF_ETH_HDR + SIZEOF_VLAN_HDR);
 
-   }
 
- #endif /* ETHARP_SUPPORT_VLAN */
 
-   /* RFC 826 "Packet Reception": */
 
-   if ((hdr->hwtype != PP_HTONS(HWTYPE_ETHERNET)) ||
 
-  8037496:	89f3      	ldrh	r3, [r6, #14]
 
-  8037498:	f5b3 7f80 	cmp.w	r3, #256	; 0x100
 
-  803749c:	f040 80a6 	bne.w	80375ec <ethernet_input+0x1ec>
 
-  80374a0:	7cb3      	ldrb	r3, [r6, #18]
 
-  80374a2:	2b06      	cmp	r3, #6
 
-  80374a4:	f040 80a2 	bne.w	80375ec <ethernet_input+0x1ec>
 
-       (hdr->hwlen != ETHARP_HWADDR_LEN) ||
 
-  80374a8:	7cf7      	ldrb	r7, [r6, #19]
 
-  80374aa:	2f04      	cmp	r7, #4
 
-  80374ac:	f040 809e 	bne.w	80375ec <ethernet_input+0x1ec>
 
-       (hdr->protolen != sizeof(ip_addr_t)) ||
 
-  80374b0:	8a33      	ldrh	r3, [r6, #16]
 
-  80374b2:	2b08      	cmp	r3, #8
 
-  80374b4:	f040 809a 	bne.w	80375ec <ethernet_input+0x1ec>
 
-   autoip_arp_reply(netif, hdr);
 
- #endif /* LWIP_AUTOIP */
 
-   /* Copy struct ip_addr2 to aligned ip_addr, to support compilers without
 
-    * structure packing (not using structure copy which breaks strict-aliasing rules). */
 
-   IPADDR2_COPY(&sipaddr, &hdr->sipaddr);
 
-  80374b8:	f106 0a1c 	add.w	sl, r6, #28
 
-  80374bc:	4651      	mov	r1, sl
 
-  80374be:	463a      	mov	r2, r7
 
-  80374c0:	a804      	add	r0, sp, #16
 
-  80374c2:	f7ea fa63 	bl	802198c <memcpy>
 
-   IPADDR2_COPY(&dipaddr, &hdr->dipaddr);
 
-  80374c6:	f106 0226 	add.w	r2, r6, #38	; 0x26
 
-  80374ca:	9203      	str	r2, [sp, #12]
 
-  80374cc:	4611      	mov	r1, r2
 
-  80374ce:	a805      	add	r0, sp, #20
 
-  80374d0:	463a      	mov	r2, r7
 
-  80374d2:	f7ea fa5b 	bl	802198c <memcpy>
 
-   /* this interface is not configured? */
 
-   if (ip_addr_isany(&netif->ip_addr)) {
 
-  80374d6:	686b      	ldr	r3, [r5, #4]
 
-  80374d8:	b12b      	cbz	r3, 80374e6 <ethernet_input+0xe6>
 
-     for_us = 0;
 
-   } else {
 
-     /* ARP packet directed to us? */
 
-     for_us = (u8_t)ip_addr_cmp(&dipaddr, &(netif->ip_addr));
 
-  80374da:	9a05      	ldr	r2, [sp, #20]
 
-  80374dc:	1ad1      	subs	r1, r2, r3
 
-  80374de:	424a      	negs	r2, r1
 
-  80374e0:	414a      	adcs	r2, r1
 
-  80374e2:	9201      	str	r2, [sp, #4]
 
-  80374e4:	e000      	b.n	80374e8 <ethernet_input+0xe8>
 
-   IPADDR2_COPY(&sipaddr, &hdr->sipaddr);
 
-   IPADDR2_COPY(&dipaddr, &hdr->dipaddr);
 
-   /* this interface is not configured? */
 
-   if (ip_addr_isany(&netif->ip_addr)) {
 
-     for_us = 0;
 
-  80374e6:	9301      	str	r3, [sp, #4]
 
-   /* ARP message directed to us?
 
-       -> add IP address in ARP cache; assume requester wants to talk to us,
 
-          can result in directly sending the queued packets for this host.
 
-      ARP message not directed to us?
 
-       ->  update the source IP address in the cache, if present */
 
-   etharp_update_arp_entry(netif, &sipaddr, &(hdr->shwaddr),
 
-  80374e8:	9b01      	ldr	r3, [sp, #4]
 
-   LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_update_arp_entry: %"U16_F".%"U16_F".%"U16_F".%"U16_F" - %02"X16_F":%02"X16_F":%02"X16_F":%02"X16_F":%02"X16_F":%02"X16_F"\n",
 
-     ip4_addr1_16(ipaddr), ip4_addr2_16(ipaddr), ip4_addr3_16(ipaddr), ip4_addr4_16(ipaddr),
 
-     ethaddr->addr[0], ethaddr->addr[1], ethaddr->addr[2],
 
-     ethaddr->addr[3], ethaddr->addr[4], ethaddr->addr[5]));
 
-   /* non-unicast address? */
 
-   if (ip_addr_isany(ipaddr) ||
 
-  80374ea:	9804      	ldr	r0, [sp, #16]
 
-   /* ARP message directed to us?
 
-       -> add IP address in ARP cache; assume requester wants to talk to us,
 
-          can result in directly sending the queued packets for this host.
 
-      ARP message not directed to us?
 
-       ->  update the source IP address in the cache, if present */
 
-   etharp_update_arp_entry(netif, &sipaddr, &(hdr->shwaddr),
 
-  80374ec:	f106 0716 	add.w	r7, r6, #22
 
-  80374f0:	2b00      	cmp	r3, #0
 
-  80374f2:	bf0c      	ite	eq
 
-  80374f4:	f04f 0802 	moveq.w	r8, #2
 
-  80374f8:	f04f 0801 	movne.w	r8, #1
 
-     case PP_HTONS(ETHTYPE_ARP):
 
-       if (!(netif->flags & NETIF_FLAG_ETHARP)) {
 
-         goto free_and_return;
 
-       }
 
-       /* pass p to ARP module */
 
-       etharp_arp_input(netif, (struct eth_addr*)(netif->hwaddr), p);
 
-  80374fc:	f105 0927 	add.w	r9, r5, #39	; 0x27
 
-   LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_update_arp_entry: %"U16_F".%"U16_F".%"U16_F".%"U16_F" - %02"X16_F":%02"X16_F":%02"X16_F":%02"X16_F":%02"X16_F":%02"X16_F"\n",
 
-     ip4_addr1_16(ipaddr), ip4_addr2_16(ipaddr), ip4_addr3_16(ipaddr), ip4_addr4_16(ipaddr),
 
-     ethaddr->addr[0], ethaddr->addr[1], ethaddr->addr[2],
 
-     ethaddr->addr[3], ethaddr->addr[4], ethaddr->addr[5]));
 
-   /* non-unicast address? */
 
-   if (ip_addr_isany(ipaddr) ||
 
-  8037500:	2800      	cmp	r0, #0
 
-  8037502:	d03d      	beq.n	8037580 <ethernet_input+0x180>
 
-       ip_addr_isbroadcast(ipaddr, netif) ||
 
-  8037504:	4629      	mov	r1, r5
 
-  8037506:	f7fb fc3d 	bl	8032d84 <ip4_addr_isbroadcast>
 
-   LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_update_arp_entry: %"U16_F".%"U16_F".%"U16_F".%"U16_F" - %02"X16_F":%02"X16_F":%02"X16_F":%02"X16_F":%02"X16_F":%02"X16_F"\n",
 
-     ip4_addr1_16(ipaddr), ip4_addr2_16(ipaddr), ip4_addr3_16(ipaddr), ip4_addr4_16(ipaddr),
 
-     ethaddr->addr[0], ethaddr->addr[1], ethaddr->addr[2],
 
-     ethaddr->addr[3], ethaddr->addr[4], ethaddr->addr[5]));
 
-   /* non-unicast address? */
 
-   if (ip_addr_isany(ipaddr) ||
 
-  803750a:	9002      	str	r0, [sp, #8]
 
-  803750c:	2800      	cmp	r0, #0
 
-  803750e:	d137      	bne.n	8037580 <ethernet_input+0x180>
 
-       ip_addr_isbroadcast(ipaddr, netif) ||
 
-       ip_addr_ismulticast(ipaddr)) {
 
-  8037510:	9a04      	ldr	r2, [sp, #16]
 
-  8037512:	f002 02f0 	and.w	r2, r2, #240	; 0xf0
 
-     ip4_addr1_16(ipaddr), ip4_addr2_16(ipaddr), ip4_addr3_16(ipaddr), ip4_addr4_16(ipaddr),
 
-     ethaddr->addr[0], ethaddr->addr[1], ethaddr->addr[2],
 
-     ethaddr->addr[3], ethaddr->addr[4], ethaddr->addr[5]));
 
-   /* non-unicast address? */
 
-   if (ip_addr_isany(ipaddr) ||
 
-       ip_addr_isbroadcast(ipaddr, netif) ||
 
-  8037516:	2ae0      	cmp	r2, #224	; 0xe0
 
-  8037518:	d032      	beq.n	8037580 <ethernet_input+0x180>
 
-       ip_addr_ismulticast(ipaddr)) {
 
-     LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_update_arp_entry: will not add non-unicast IP address to ARP cache\n"));
 
-     return ERR_ARG;
 
-   }
 
-   /* find or create ARP entry */
 
-   i = etharp_find_entry(ipaddr, flags);
 
-  803751a:	a804      	add	r0, sp, #16
 
-  803751c:	4641      	mov	r1, r8
 
-  803751e:	f7ff fd39 	bl	8036f94 <etharp_find_entry>
 
-   /* bail out if no entry could be found */
 
-   if (i < 0) {
 
-  8037522:	2800      	cmp	r0, #0
 
-  8037524:	db2c      	blt.n	8037580 <ethernet_input+0x180>
 
-     arp_table[i].state = ETHARP_STATE_STATIC;
 
-   } else
 
- #endif /* ETHARP_SUPPORT_STATIC_ENTRIES */
 
-   {
 
-     /* mark it stable */
 
-     arp_table[i].state = ETHARP_STATE_STABLE;
 
-  8037526:	4b36      	ldr	r3, [pc, #216]	; (8037600 <ethernet_input+0x200>)
 
-  8037528:	f04f 0814 	mov.w	r8, #20
 
-  803752c:	fb08 f800 	mul.w	r8, r8, r0
 
-  8037530:	eb03 0108 	add.w	r1, r3, r8
 
-  8037534:	2202      	movs	r2, #2
 
-  8037536:	748a      	strb	r2, [r1, #18]
 
-   }
 
-   /* record network interface */
 
-   arp_table[i].netif = netif;
 
-  8037538:	608d      	str	r5, [r1, #8]
 
-     arp_table[i].state = ETHARP_STATE_STATIC;
 
-   } else
 
- #endif /* ETHARP_SUPPORT_STATIC_ENTRIES */
 
-   {
 
-     /* mark it stable */
 
-     arp_table[i].state = ETHARP_STATE_STABLE;
 
-  803753a:	f101 0b10 	add.w	fp, r1, #16
 
-   }
 
-   /* record network interface */
 
-   arp_table[i].netif = netif;
 
-   /* insert in SNMP ARP index tree */
 
-   snmp_insert_arpidx_tree(netif, &arp_table[i].ipaddr);
 
-  803753e:	4628      	mov	r0, r5
 
-  8037540:	3104      	adds	r1, #4
 
-  8037542:	9300      	str	r3, [sp, #0]
 
-  8037544:	f7fd f900 	bl	8034748 <snmp_insert_arpidx_tree>
 
-   LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_update_arp_entry: updating stable entry %"S16_F"\n", (s16_t)i));
 
-   /* update address */
 
-   ETHADDR32_COPY(&arp_table[i].ethaddr, ethaddr);
 
-  8037548:	9b00      	ldr	r3, [sp, #0]
 
-  803754a:	eb03 0008 	add.w	r0, r3, r8
 
-  803754e:	2206      	movs	r2, #6
 
-  8037550:	300c      	adds	r0, #12
 
-  8037552:	4639      	mov	r1, r7
 
-  8037554:	f7ea fa1a 	bl	802198c <memcpy>
 
-   /* reset time stamp */
 
-   arp_table[i].ctime = 0;
 
-  8037558:	9a02      	ldr	r2, [sp, #8]
 
-  803755a:	f88b 2003 	strb.w	r2, [fp, #3]
 
-     /* get the packet pointer */
 
-     p = q->p;
 
-     /* now queue entry can be freed */
 
-     memp_free(MEMP_ARP_QUEUE, q);
 
- #else /* ARP_QUEUEING */
 
-   if (arp_table[i].q != NULL) {
 
-  803755e:	9b00      	ldr	r3, [sp, #0]
 
-  8037560:	f853 b008 	ldr.w	fp, [r3, r8]
 
-  8037564:	f1bb 0f00 	cmp.w	fp, #0
 
-  8037568:	d00a      	beq.n	8037580 <ethernet_input+0x180>
 
-     struct pbuf *p = arp_table[i].q;
 
-     arp_table[i].q = NULL;
 
-  803756a:	f843 2008 	str.w	r2, [r3, r8]
 
- #endif /* ARP_QUEUEING */
 
-     /* send the queued IP packet */
 
-     etharp_send_ip(netif, p, (struct eth_addr*)(netif->hwaddr), ethaddr);
 
-  803756e:	4628      	mov	r0, r5
 
-  8037570:	4659      	mov	r1, fp
 
-  8037572:	464a      	mov	r2, r9
 
-  8037574:	463b      	mov	r3, r7
 
-  8037576:	f7ff fcdb 	bl	8036f30 <etharp_send_ip>
 
-     /* free the queued IP packet */
 
-     pbuf_free(p);
 
-  803757a:	4658      	mov	r0, fp
 
-  803757c:	f7f8 fc46 	bl	802fe0c <pbuf_free>
 
-       ->  update the source IP address in the cache, if present */
 
-   etharp_update_arp_entry(netif, &sipaddr, &(hdr->shwaddr),
 
-                    for_us ? ETHARP_FLAG_TRY_HARD : ETHARP_FLAG_FIND_ONLY);
 
-   /* now act on the message itself */
 
-   switch (hdr->opcode) {
 
-  8037580:	8ab3      	ldrh	r3, [r6, #20]
 
-  8037582:	f5b3 7f80 	cmp.w	r3, #256	; 0x100
 
-  8037586:	d003      	beq.n	8037590 <ethernet_input+0x190>
 
-  8037588:	f5b3 7f00 	cmp.w	r3, #512	; 0x200
 
-  803758c:	d12e      	bne.n	80375ec <ethernet_input+0x1ec>
 
-  803758e:	e029      	b.n	80375e4 <ethernet_input+0x1e4>
 
-      * reply. In any case, we time-stamp any existing ARP entry,
 
-      * and possiby send out an IP packet that was queued on it. */
 
-     LWIP_DEBUGF (ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_arp_input: incoming ARP request\n"));
 
-     /* ARP request for our address? */
 
-     if (for_us) {
 
-  8037590:	9b01      	ldr	r3, [sp, #4]
 
-  8037592:	b35b      	cbz	r3, 80375ec <ethernet_input+0x1ec>
 
-       LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_arp_input: replying to ARP request for our IP address\n"));
 
-       /* Re-use pbuf to send ARP reply.
 
-          Since we are re-using an existing pbuf, we can't call etharp_raw since
 
-          that would allocate a new pbuf. */
 
-       hdr->opcode = htons(ARP_REPLY);
 
-  8037594:	2002      	movs	r0, #2
 
-  8037596:	f7f7 fafb 	bl	802eb90 <lwip_htons>
 
-  803759a:	82b0      	strh	r0, [r6, #20]
 
-       IPADDR2_COPY(&hdr->dipaddr, &hdr->sipaddr);
 
-  803759c:	4651      	mov	r1, sl
 
-  803759e:	2204      	movs	r2, #4
 
-  80375a0:	9803      	ldr	r0, [sp, #12]
 
-  80375a2:	f7ea f9f3 	bl	802198c <memcpy>
 
-       IPADDR2_COPY(&hdr->sipaddr, &netif->ip_addr);
 
-  80375a6:	1d29      	adds	r1, r5, #4
 
-  80375a8:	2204      	movs	r2, #4
 
-  80375aa:	4650      	mov	r0, sl
 
-  80375ac:	f7ea f9ee 	bl	802198c <memcpy>
 
-        * 'sender IP address' MUST be sent using link-layer broadcast instead of
 
-        * link-layer unicast. (See RFC3927 Section 2.5, last paragraph) */
 
-       ethdst_hwaddr = ip_addr_islinklocal(&netif->ip_addr) ? (u8_t*)(ethbroadcast.addr) : hdr->shwaddr.addr;
 
- #endif /* LWIP_AUTOIP */
 
-       ETHADDR16_COPY(&hdr->dhwaddr, &hdr->shwaddr);
 
-  80375b0:	4639      	mov	r1, r7
 
-  80375b2:	2206      	movs	r2, #6
 
-  80375b4:	f106 0020 	add.w	r0, r6, #32
 
-  80375b8:	f7ea f9e8 	bl	802198c <memcpy>
 
- #if LWIP_AUTOIP
 
-       ETHADDR16_COPY(ðhdr->dest, ethdst_hwaddr);
 
- #else  /* LWIP_AUTOIP */
 
-       ETHADDR16_COPY(ðhdr->dest, &hdr->shwaddr);
 
-  80375bc:	4639      	mov	r1, r7
 
-  80375be:	2206      	movs	r2, #6
 
-  80375c0:	4630      	mov	r0, r6
 
-  80375c2:	f7ea f9e3 	bl	802198c <memcpy>
 
- #endif /* LWIP_AUTOIP */
 
-       ETHADDR16_COPY(&hdr->shwaddr, ethaddr);
 
-  80375c6:	4649      	mov	r1, r9
 
-  80375c8:	2206      	movs	r2, #6
 
-  80375ca:	4638      	mov	r0, r7
 
-  80375cc:	f7ea f9de 	bl	802198c <memcpy>
 
-       ETHADDR16_COPY(ðhdr->src, ethaddr);
 
-  80375d0:	4649      	mov	r1, r9
 
-  80375d2:	1db0      	adds	r0, r6, #6
 
-  80375d4:	2206      	movs	r2, #6
 
-  80375d6:	f7ea f9d9 	bl	802198c <memcpy>
 
-       /* hwtype, hwaddr_len, proto, protolen and the type in the ethernet header
 
-          are already correct, we tested that before */
 
-       /* return ARP reply */
 
-       netif->linkoutput(netif, p);
 
-  80375da:	69ab      	ldr	r3, [r5, #24]
 
-  80375dc:	4628      	mov	r0, r5
 
-  80375de:	4621      	mov	r1, r4
 
-  80375e0:	4798      	blx	r3
 
-  80375e2:	e003      	b.n	80375ec <ethernet_input+0x1ec>
 
- #if (LWIP_DHCP && DHCP_DOES_ARP_CHECK)
 
-     /* DHCP wants to know about ARP replies from any host with an
 
-      * IP address also offered to us by the DHCP server. We do not
 
-      * want to take a duplicate IP address on a single network.
 
-      * @todo How should we handle redundant (fail-over) interfaces? */
 
-     dhcp_arp_reply(netif, &sipaddr);
 
-  80375e4:	4628      	mov	r0, r5
 
-  80375e6:	a904      	add	r1, sp, #16
 
-  80375e8:	f7f7 ffa8 	bl	802f53c <dhcp_arp_reply>
 
-   /* This means the pbuf is freed or consumed,
 
-      so the caller doesn't have to free it again */
 
-   return ERR_OK;
 
- free_and_return:
 
-   pbuf_free(p);
 
-  80375ec:	4620      	mov	r0, r4
 
-  80375ee:	f7f8 fc0d 	bl	802fe0c <pbuf_free>
 
-   return ERR_OK;
 
- }
 
-  80375f2:	2000      	movs	r0, #0
 
-  80375f4:	b007      	add	sp, #28
 
-  80375f6:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
-  80375fa:	bf00      	nop
 
-  80375fc:	08045937 	.word	0x08045937
 
-  8037600:	2000c700 	.word	0x2000c700
 
- 08037604 <arp_timer>:
 
-   return ERR_OK;
 
- }
 
- static void arp_timer(void *arg)
 
- {
 
-  8037604:	b508      	push	{r3, lr}
 
-   etharp_tmr();
 
-  8037606:	f7ff fd37 	bl	8037078 <etharp_tmr>
 
-   sys_timeout(ARP_TMR_INTERVAL, arp_timer, NULL);
 
-  803760a:	4904      	ldr	r1, [pc, #16]	; (803761c <arp_timer+0x18>)
 
-  803760c:	f241 3088 	movw	r0, #5000	; 0x1388
 
-  8037610:	2200      	movs	r2, #0
 
- }
 
-  8037612:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
 
- static void arp_timer(void *arg)
 
- {
 
-   etharp_tmr();
 
-   sys_timeout(ARP_TMR_INTERVAL, arp_timer, NULL);
 
-  8037616:	f7fa bfa1 	b.w	803255c <sys_timeout>
 
-  803761a:	bf00      	nop
 
-  803761c:	08037605 	.word	0x08037605
 
- 08037620 <ethernetif_input>:
 
-   }
 
- } 
 
- */
 
- void ethernetif_input(void * pvParameters)
 
- {
 
-  8037620:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-   struct pbuf *p;
 
-   for( ;; )
 
-   {
 
-     if(xSemaphoreTake(s_xSemaphore, emacBLOCK_TIME_WAITING_FOR_INPUT)==pdTRUE)
 
-  8037624:	f8df 80c4 	ldr.w	r8, [pc, #196]	; 80376ec <ethernetif_input+0xcc>
 
-   }
 
- } 
 
- */
 
- void ethernetif_input(void * pvParameters)
 
- {
 
-  8037628:	b085      	sub	sp, #20
 
-   struct pbuf *p;
 
-   for( ;; )
 
-   {
 
-     if(xSemaphoreTake(s_xSemaphore, emacBLOCK_TIME_WAITING_FOR_INPUT)==pdTRUE)
 
-  803762a:	2100      	movs	r1, #0
 
-  803762c:	2264      	movs	r2, #100	; 0x64
 
-  803762e:	f8d8 0000 	ldr.w	r0, [r8]
 
-  8037632:	460b      	mov	r3, r1
 
-  8037634:	f7f3 f8d7 	bl	802a7e6 <xQueueGenericReceive>
 
-  8037638:	2801      	cmp	r0, #1
 
-  803763a:	d1f6      	bne.n	803762a <ethernetif_input+0xa>
 
-     }
 
-   }
 
-   
 
-   /* Release descriptors to DMA */
 
-   /* Check if received frame with multiple DMA buffer segments */
 
-   if (DMA_RX_FRAME_infos->Seg_Count > 1)
 
-  803763c:	f8df a0b0 	ldr.w	sl, [pc, #176]	; 80376f0 <ethernetif_input+0xd0>
 
-   /* Clear Segment_Count */
 
-   DMA_RX_FRAME_infos->Seg_Count =0;
 
-   
 
-   
 
-   /* When Rx Buffer unavailable flag is set: clear it and resume reception */
 
-   if ((ETH->DMASR & ETH_DMASR_RBUS) != (u32)RESET)  
 
-  8037640:	f8df 90b0 	ldr.w	r9, [pc, #176]	; 80376f4 <ethernetif_input+0xd4>
 
-   __IO ETH_DMADESCTypeDef *DMARxNextDesc;
 
-   
 
-   p = NULL;
 
-   
 
-   /* Get received frame */
 
-   frame = ETH_Get_Received_Frame_interrupt();
 
-  8037644:	a801      	add	r0, sp, #4
 
-  8037646:	f001 fc9f 	bl	8038f88 <ETH_Get_Received_Frame_interrupt>
 
-  803764a:	9e03      	ldr	r6, [sp, #12]
 
-   
 
-   /* check that frame has no error */
 
-   if ((frame.descriptor->Status & ETH_DMARxDesc_ES) == (uint32_t)RESET)
 
-  803764c:	6837      	ldr	r7, [r6, #0]
 
-  803764e:	f417 4700 	ands.w	r7, r7, #32768	; 0x8000
 
-  8037652:	d001      	beq.n	8037658 <ethernetif_input+0x38>
 
-   uint32_t l=0,i =0;
 
-   FrameTypeDef frame;
 
-   u8 *buffer;
 
-   __IO ETH_DMADESCTypeDef *DMARxNextDesc;
 
-   
 
-   p = NULL;
 
-  8037654:	2400      	movs	r4, #0
 
-  8037656:	e016      	b.n	8037686 <ethernetif_input+0x66>
 
-     /* Obtain the size of the packet and put it into the "len" variable. */
 
-     len = frame.length;
 
-     buffer = (u8 *)frame.buffer;
 
-     /* We allocate a pbuf chain of pbufs from the pool. */
 
-     p = pbuf_alloc(PBUF_RAW, len, PBUF_POOL);
 
-  8037658:	2003      	movs	r0, #3
 
-  803765a:	f8bd 1004 	ldrh.w	r1, [sp, #4]
 
-   if ((frame.descriptor->Status & ETH_DMARxDesc_ES) == (uint32_t)RESET)
 
-   {
 
-     
 
-     /* Obtain the size of the packet and put it into the "len" variable. */
 
-     len = frame.length;
 
-     buffer = (u8 *)frame.buffer;
 
-  803765e:	f8dd b008 	ldr.w	fp, [sp, #8]
 
-     /* We allocate a pbuf chain of pbufs from the pool. */
 
-     p = pbuf_alloc(PBUF_RAW, len, PBUF_POOL);
 
-  8037662:	4602      	mov	r2, r0
 
-  8037664:	f7f8 fc1f 	bl	802fea6 <pbuf_alloc>
 
-  
 
-     /* Copy received frame from ethernet driver buffer to stack buffer */
 
-     if (p != NULL)
 
-  8037668:	4604      	mov	r4, r0
 
-  803766a:	2800      	cmp	r0, #0
 
-  803766c:	d0f2      	beq.n	8037654 <ethernetif_input+0x34>
 
-  803766e:	4605      	mov	r5, r0
 
-     { 
 
-       for (q = p; q != NULL; q = q->next)
 
-       {
 
-         memcpy((u8_t*)q->payload, (u8_t*)&buffer[l], q->len);
 
-  8037670:	6868      	ldr	r0, [r5, #4]
 
-  8037672:	896a      	ldrh	r2, [r5, #10]
 
-  8037674:	eb0b 0107 	add.w	r1, fp, r7
 
-  8037678:	f7ea f988 	bl	802198c <memcpy>
 
-         l = l + q->len;
 
-  803767c:	896b      	ldrh	r3, [r5, #10]
 
-     p = pbuf_alloc(PBUF_RAW, len, PBUF_POOL);
 
-  
 
-     /* Copy received frame from ethernet driver buffer to stack buffer */
 
-     if (p != NULL)
 
-     { 
 
-       for (q = p; q != NULL; q = q->next)
 
-  803767e:	682d      	ldr	r5, [r5, #0]
 
-       {
 
-         memcpy((u8_t*)q->payload, (u8_t*)&buffer[l], q->len);
 
-         l = l + q->len;
 
-  8037680:	18ff      	adds	r7, r7, r3
 
-     p = pbuf_alloc(PBUF_RAW, len, PBUF_POOL);
 
-  
 
-     /* Copy received frame from ethernet driver buffer to stack buffer */
 
-     if (p != NULL)
 
-     { 
 
-       for (q = p; q != NULL; q = q->next)
 
-  8037682:	2d00      	cmp	r5, #0
 
-  8037684:	d1f4      	bne.n	8037670 <ethernetif_input+0x50>
 
-     }
 
-   }
 
-   
 
-   /* Release descriptors to DMA */
 
-   /* Check if received frame with multiple DMA buffer segments */
 
-   if (DMA_RX_FRAME_infos->Seg_Count > 1)
 
-  8037686:	f8da 3000 	ldr.w	r3, [sl]
 
-  803768a:	689a      	ldr	r2, [r3, #8]
 
-  803768c:	2a01      	cmp	r2, #1
 
-   {
 
-     DMARxNextDesc = DMA_RX_FRAME_infos->FS_Rx_Desc;
 
-  803768e:	bf88      	it	hi
 
-  8037690:	681e      	ldrhi	r6, [r3, #0]
 
-   }
 
-   
 
-   /* Set Own bit in Rx descriptors: gives the buffers back to DMA */
 
-   for (i=0; i<DMA_RX_FRAME_infos->Seg_Count; i++)
 
-   {  
 
-     DMARxNextDesc->Status = ETH_DMARxDesc_OWN;
 
-  8037692:	f04f 4000 	mov.w	r0, #2147483648	; 0x80000000
 
-   uint32_t l=0,i =0;
 
-   FrameTypeDef frame;
 
-   u8 *buffer;
 
-   __IO ETH_DMADESCTypeDef *DMARxNextDesc;
 
-   
 
-   p = NULL;
 
-  8037696:	2200      	movs	r2, #0
 
-  8037698:	e002      	b.n	80376a0 <ethernetif_input+0x80>
 
-   }
 
-   
 
-   /* Set Own bit in Rx descriptors: gives the buffers back to DMA */
 
-   for (i=0; i<DMA_RX_FRAME_infos->Seg_Count; i++)
 
-   {  
 
-     DMARxNextDesc->Status = ETH_DMARxDesc_OWN;
 
-  803769a:	6030      	str	r0, [r6, #0]
 
-     DMARxNextDesc = (ETH_DMADESCTypeDef *)(DMARxNextDesc->Buffer2NextDescAddr);
 
-  803769c:	68f6      	ldr	r6, [r6, #12]
 
-   {
 
-     DMARxNextDesc = frame.descriptor;
 
-   }
 
-   
 
-   /* Set Own bit in Rx descriptors: gives the buffers back to DMA */
 
-   for (i=0; i<DMA_RX_FRAME_infos->Seg_Count; i++)
 
-  803769e:	3201      	adds	r2, #1
 
-  80376a0:	6899      	ldr	r1, [r3, #8]
 
-  80376a2:	428a      	cmp	r2, r1
 
-  80376a4:	d3f9      	bcc.n	803769a <ethernetif_input+0x7a>
 
-     DMARxNextDesc->Status = ETH_DMARxDesc_OWN;
 
-     DMARxNextDesc = (ETH_DMADESCTypeDef *)(DMARxNextDesc->Buffer2NextDescAddr);
 
-   }
 
-   
 
-   /* Clear Segment_Count */
 
-   DMA_RX_FRAME_infos->Seg_Count =0;
 
-  80376a6:	2200      	movs	r2, #0
 
-  80376a8:	609a      	str	r2, [r3, #8]
 
-   
 
-   
 
-   /* When Rx Buffer unavailable flag is set: clear it and resume reception */
 
-   if ((ETH->DMASR & ETH_DMASR_RBUS) != (u32)RESET)  
 
-  80376aa:	f8d9 3000 	ldr.w	r3, [r9]
 
-  80376ae:	061b      	lsls	r3, r3, #24
 
-  80376b0:	d504      	bpl.n	80376bc <ethernetif_input+0x9c>
 
-   {
 
-     /* Clear RBUS ETHERNET DMA flag */
 
-     ETH->DMASR = ETH_DMASR_RBUS;
 
-  80376b2:	2380      	movs	r3, #128	; 0x80
 
-  80376b4:	f8c9 3000 	str.w	r3, [r9]
 
-       
 
-     /* Resume DMA reception */
 
-     ETH->DMARPDR = 0;
 
-  80376b8:	4b0a      	ldr	r3, [pc, #40]	; (80376e4 <ethernetif_input+0xc4>)
 
-  80376ba:	601a      	str	r2, [r3, #0]
 
-   {
 
-     if(xSemaphoreTake(s_xSemaphore, emacBLOCK_TIME_WAITING_FOR_INPUT)==pdTRUE)
 
-     {
 
- GET_NEXT_FRAGMENT:
 
-       p = low_level_input( s_pxNetIf );
 
-       if (p != NULL)
 
-  80376bc:	2c00      	cmp	r4, #0
 
-  80376be:	d0b4      	beq.n	803762a <ethernetif_input+0xa>
 
-       {
 
-         if (ERR_OK != s_pxNetIf->input( p, s_pxNetIf))
 
-  80376c0:	4b09      	ldr	r3, [pc, #36]	; (80376e8 <ethernetif_input+0xc8>)
 
-  80376c2:	6819      	ldr	r1, [r3, #0]
 
-  80376c4:	4620      	mov	r0, r4
 
-  80376c6:	690b      	ldr	r3, [r1, #16]
 
-  80376c8:	4798      	blx	r3
 
-  80376ca:	4601      	mov	r1, r0
 
-  80376cc:	b118      	cbz	r0, 80376d6 <ethernetif_input+0xb6>
 
-         {
 
-           pbuf_free(p);
 
-  80376ce:	4620      	mov	r0, r4
 
-  80376d0:	f7f8 fb9c 	bl	802fe0c <pbuf_free>
 
-  80376d4:	e7a9      	b.n	803762a <ethernetif_input+0xa>
 
-           p=NULL;
 
-         }
 
-         else
 
-         {
 
-           xSemaphoreTake(s_xSemaphore, 0);
 
-  80376d6:	f8d8 0000 	ldr.w	r0, [r8]
 
-  80376da:	460a      	mov	r2, r1
 
-  80376dc:	460b      	mov	r3, r1
 
-  80376de:	f7f3 f882 	bl	802a7e6 <xQueueGenericReceive>
 
-           goto GET_NEXT_FRAGMENT;
 
-  80376e2:	e7af      	b.n	8037644 <ethernetif_input+0x24>
 
-  80376e4:	40029008 	.word	0x40029008
 
-  80376e8:	2000c7c8 	.word	0x2000c7c8
 
-  80376ec:	2000c7cc 	.word	0x2000c7cc
 
-  80376f0:	20011ae0 	.word	0x20011ae0
 
-  80376f4:	40029014 	.word	0x40029014
 
- 080376f8 <low_level_output>:
 
-  *       to become availale since the stack doesn't retry to send a packet
 
-  *       dropped because of memory failure (except for the TCP timers).
 
-  */
 
- static err_t low_level_output(struct netif *netif, struct pbuf *p)
 
- {
 
-  80376f8:	b570      	push	{r4, r5, r6, lr}
 
-   static SemaphoreHandle_t xTxSemaphore = NULL;
 
-   struct pbuf *q;
 
-   uint32_t l = 0;
 
-   u8 *buffer ;
 
-   
 
-   if (xTxSemaphore == NULL)
 
-  80376fa:	4e19      	ldr	r6, [pc, #100]	; (8037760 <low_level_output+0x68>)
 
-  80376fc:	6835      	ldr	r5, [r6, #0]
 
-  *       to become availale since the stack doesn't retry to send a packet
 
-  *       dropped because of memory failure (except for the TCP timers).
 
-  */
 
- static err_t low_level_output(struct netif *netif, struct pbuf *p)
 
- {
 
-  80376fe:	460c      	mov	r4, r1
 
-   static SemaphoreHandle_t xTxSemaphore = NULL;
 
-   struct pbuf *q;
 
-   uint32_t l = 0;
 
-   u8 *buffer ;
 
-   
 
-   if (xTxSemaphore == NULL)
 
-  8037700:	b95d      	cbnz	r5, 803771a <low_level_output+0x22>
 
-   {
 
-     vSemaphoreCreateBinary (xTxSemaphore);
 
-  8037702:	2001      	movs	r0, #1
 
-  8037704:	4629      	mov	r1, r5
 
-  8037706:	2203      	movs	r2, #3
 
-  8037708:	f7f2 fef0 	bl	802a4ec <xQueueGenericCreate>
 
-  803770c:	6030      	str	r0, [r6, #0]
 
-  803770e:	b120      	cbz	r0, 803771a <low_level_output+0x22>
 
-  8037710:	4629      	mov	r1, r5
 
-  8037712:	462a      	mov	r2, r5
 
-  8037714:	462b      	mov	r3, r5
 
-  8037716:	f7f2 ff26 	bl	802a566 <xQueueGenericSend>
 
-   } 
 
-    
 
-   if (xSemaphoreTake(xTxSemaphore, netifGUARD_BLOCK_TIME))
 
-  803771a:	4b11      	ldr	r3, [pc, #68]	; (8037760 <low_level_output+0x68>)
 
-  803771c:	2100      	movs	r1, #0
 
-  803771e:	6818      	ldr	r0, [r3, #0]
 
-  8037720:	22fa      	movs	r2, #250	; 0xfa
 
-  8037722:	460b      	mov	r3, r1
 
-  8037724:	f7f3 f85f 	bl	802a7e6 <xQueueGenericReceive>
 
-  8037728:	b1c0      	cbz	r0, 803775c <low_level_output+0x64>
 
-   {
 
-     buffer =  (u8 *)(DMATxDescToSet->Buffer1Addr);
 
-  803772a:	4b0e      	ldr	r3, [pc, #56]	; (8037764 <low_level_output+0x6c>)
 
-  803772c:	681b      	ldr	r3, [r3, #0]
 
- static err_t low_level_output(struct netif *netif, struct pbuf *p)
 
- {
 
-   static SemaphoreHandle_t xTxSemaphore = NULL;
 
-   struct pbuf *q;
 
-   uint32_t l = 0;
 
-  803772e:	2500      	movs	r5, #0
 
-     vSemaphoreCreateBinary (xTxSemaphore);
 
-   } 
 
-    
 
-   if (xSemaphoreTake(xTxSemaphore, netifGUARD_BLOCK_TIME))
 
-   {
 
-     buffer =  (u8 *)(DMATxDescToSet->Buffer1Addr);
 
-  8037730:	689e      	ldr	r6, [r3, #8]
 
-  8037732:	e007      	b.n	8037744 <low_level_output+0x4c>
 
-     for(q = p; q != NULL; q = q->next) 
 
-     {
 
-       memcpy((u8_t*)&buffer[l], q->payload, q->len);
 
-  8037734:	1970      	adds	r0, r6, r5
 
-  8037736:	6861      	ldr	r1, [r4, #4]
 
-  8037738:	8962      	ldrh	r2, [r4, #10]
 
-  803773a:	f7ea f927 	bl	802198c <memcpy>
 
-       l = l + q->len;
 
-  803773e:	8963      	ldrh	r3, [r4, #10]
 
-   } 
 
-    
 
-   if (xSemaphoreTake(xTxSemaphore, netifGUARD_BLOCK_TIME))
 
-   {
 
-     buffer =  (u8 *)(DMATxDescToSet->Buffer1Addr);
 
-     for(q = p; q != NULL; q = q->next) 
 
-  8037740:	6824      	ldr	r4, [r4, #0]
 
-     {
 
-       memcpy((u8_t*)&buffer[l], q->payload, q->len);
 
-       l = l + q->len;
 
-  8037742:	18ed      	adds	r5, r5, r3
 
-   } 
 
-    
 
-   if (xSemaphoreTake(xTxSemaphore, netifGUARD_BLOCK_TIME))
 
-   {
 
-     buffer =  (u8 *)(DMATxDescToSet->Buffer1Addr);
 
-     for(q = p; q != NULL; q = q->next) 
 
-  8037744:	2c00      	cmp	r4, #0
 
-  8037746:	d1f5      	bne.n	8037734 <low_level_output+0x3c>
 
-     {
 
-       memcpy((u8_t*)&buffer[l], q->payload, q->len);
 
-       l = l + q->len;
 
-     }
 
-     ETH_Prepare_Transmit_Descriptors(l);
 
-  8037748:	b2a8      	uxth	r0, r5
 
-  803774a:	f001 fc6d 	bl	8039028 <ETH_Prepare_Transmit_Descriptors>
 
-     xSemaphoreGive(xTxSemaphore);
 
-  803774e:	4b04      	ldr	r3, [pc, #16]	; (8037760 <low_level_output+0x68>)
 
-  8037750:	4621      	mov	r1, r4
 
-  8037752:	6818      	ldr	r0, [r3, #0]
 
-  8037754:	4622      	mov	r2, r4
 
-  8037756:	4623      	mov	r3, r4
 
-  8037758:	f7f2 ff05 	bl	802a566 <xQueueGenericSend>
 
-   }
 
-   return ERR_OK;
 
- }
 
-  803775c:	2000      	movs	r0, #0
 
-  803775e:	bd70      	pop	{r4, r5, r6, pc}
 
-  8037760:	2000c7d0 	.word	0x2000c7d0
 
-  8037764:	2000fc74 	.word	0x2000fc74
 
- 08037768 <ethernetif_init>:
 
- #if LWIP_NETIF_HOSTNAME
 
-   /* Initialize interface hostname */
 
-   netif->hostname = "lwip";
 
- #endif /* LWIP_NETIF_HOSTNAME */
 
-   netif->name[0] = IFNAME0;
 
-  8037768:	2373      	movs	r3, #115	; 0x73
 
-  * @return ERR_OK if the loopif is initialized
 
-  *         ERR_MEM if private data couldn't be allocated
 
-  *         any other err_t on error
 
-  */
 
- err_t ethernetif_init(struct netif *netif)
 
- {
 
-  803776a:	b530      	push	{r4, r5, lr}
 
- #if LWIP_NETIF_HOSTNAME
 
-   /* Initialize interface hostname */
 
-   netif->hostname = "lwip";
 
- #endif /* LWIP_NETIF_HOSTNAME */
 
-   netif->name[0] = IFNAME0;
 
-  803776c:	f880 302e 	strb.w	r3, [r0, #46]	; 0x2e
 
-   netif->name[1] = IFNAME1;
 
-  8037770:	2374      	movs	r3, #116	; 0x74
 
-  8037772:	f880 302f 	strb.w	r3, [r0, #47]	; 0x2f
 
-   netif->output = etharp_output;
 
-  8037776:	4b37      	ldr	r3, [pc, #220]	; (8037854 <ethernetif_init+0xec>)
 
-   netif->flags = NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP;
 
-   
 
-   s_pxNetIf =netif;
 
-  
 
-   /* create binary semaphore used for informing ethernetif of frame reception */
 
-   if (s_xSemaphore == NULL)
 
-  8037778:	4d37      	ldr	r5, [pc, #220]	; (8037858 <ethernetif_init+0xf0>)
 
- #endif /* LWIP_NETIF_HOSTNAME */
 
-   netif->name[0] = IFNAME0;
 
-   netif->name[1] = IFNAME1;
 
-   netif->output = etharp_output;
 
-  803777a:	6143      	str	r3, [r0, #20]
 
-   netif->linkoutput = low_level_output;
 
-  803777c:	4b37      	ldr	r3, [pc, #220]	; (803785c <ethernetif_init+0xf4>)
 
-  * @return ERR_OK if the loopif is initialized
 
-  *         ERR_MEM if private data couldn't be allocated
 
-  *         any other err_t on error
 
-  */
 
- err_t ethernetif_init(struct netif *netif)
 
- {
 
-  803777e:	b087      	sub	sp, #28
 
-   netif->name[0] = IFNAME0;
 
-   netif->name[1] = IFNAME1;
 
-   netif->output = etharp_output;
 
-   netif->linkoutput = low_level_output;
 
-  8037780:	6183      	str	r3, [r0, #24]
 
- {
 
-   uint8_t mac[6];
 
-   uint32_t i;
 
-  
 
-   /* set netif MAC hardware address length */
 
-   netif->hwaddr_len = ETHARP_HWADDR_LEN;
 
-  8037782:	2306      	movs	r3, #6
 
-  * @return ERR_OK if the loopif is initialized
 
-  *         ERR_MEM if private data couldn't be allocated
 
-  *         any other err_t on error
 
-  */
 
- err_t ethernetif_init(struct netif *netif)
 
- {
 
-  8037784:	4604      	mov	r4, r0
 
- {
 
-   uint8_t mac[6];
 
-   uint32_t i;
 
-  
 
-   /* set netif MAC hardware address length */
 
-   netif->hwaddr_len = ETHARP_HWADDR_LEN;
 
-  8037786:	f880 3026 	strb.w	r3, [r0, #38]	; 0x26
 
- 	
 
-   /* set netif MAC hardware address */
 
-   
 
-   SETTINGS_GetMac(mac);
 
-  803778a:	a804      	add	r0, sp, #16
 
-  803778c:	f7f1 f926 	bl	80289dc <SETTINGS_GetMac>
 
-   netif->hwaddr[0] =  mac[0];
 
-  8037790:	f89d 3010 	ldrb.w	r3, [sp, #16]
 
-   netif->flags = NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP;
 
-   
 
-   s_pxNetIf =netif;
 
-  
 
-   /* create binary semaphore used for informing ethernetif of frame reception */
 
-   if (s_xSemaphore == NULL)
 
-  8037794:	6829      	ldr	r1, [r5, #0]
 
- 	
 
-   /* set netif MAC hardware address */
 
-   
 
-   SETTINGS_GetMac(mac);
 
-   netif->hwaddr[0] =  mac[0];
 
-  8037796:	f884 3027 	strb.w	r3, [r4, #39]	; 0x27
 
-   netif->hwaddr[1] =  mac[1];
 
-  803779a:	f89d 3011 	ldrb.w	r3, [sp, #17]
 
-  803779e:	f884 3028 	strb.w	r3, [r4, #40]	; 0x28
 
-   netif->hwaddr[2] =  mac[2];
 
-  80377a2:	f89d 3012 	ldrb.w	r3, [sp, #18]
 
-  80377a6:	f884 3029 	strb.w	r3, [r4, #41]	; 0x29
 
-   netif->hwaddr[3] =  mac[3];
 
-  80377aa:	f89d 3013 	ldrb.w	r3, [sp, #19]
 
-  80377ae:	f884 302a 	strb.w	r3, [r4, #42]	; 0x2a
 
-   netif->hwaddr[4] =  mac[4];
 
-  80377b2:	f89d 3014 	ldrb.w	r3, [sp, #20]
 
-  80377b6:	f884 302b 	strb.w	r3, [r4, #43]	; 0x2b
 
-   netif->hwaddr[5] =  mac[5];
 
-  80377ba:	f89d 3015 	ldrb.w	r3, [sp, #21]
 
-  80377be:	f884 302c 	strb.w	r3, [r4, #44]	; 0x2c
 
-   /* set netif maximum transfer unit */
 
-   netif->mtu = 1500;
 
-  80377c2:	f240 53dc 	movw	r3, #1500	; 0x5dc
 
-  80377c6:	84a3      	strh	r3, [r4, #36]	; 0x24
 
-   /* Accept broadcast address and ARP traffic */
 
-   netif->flags = NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP;
 
-  80377c8:	2322      	movs	r3, #34	; 0x22
 
-  80377ca:	f884 302d 	strb.w	r3, [r4, #45]	; 0x2d
 
-   
 
-   s_pxNetIf =netif;
 
-  80377ce:	4b24      	ldr	r3, [pc, #144]	; (8037860 <ethernetif_init+0xf8>)
 
-  80377d0:	601c      	str	r4, [r3, #0]
 
-  
 
-   /* create binary semaphore used for informing ethernetif of frame reception */
 
-   if (s_xSemaphore == NULL)
 
-  80377d2:	b919      	cbnz	r1, 80377dc <ethernetif_init+0x74>
 
-   {
 
-     s_xSemaphore= xSemaphoreCreateCounting(20,0);
 
-  80377d4:	2014      	movs	r0, #20
 
-  80377d6:	f7f2 feb0 	bl	802a53a <xQueueCreateCountingSemaphore>
 
-  80377da:	6028      	str	r0, [r5, #0]
 
-   }
 
-   /* initialize MAC address in ethernet MAC */ 
 
-   ETH_MACAddressConfig(ETH_MAC_Address0, netif->hwaddr); 
 
-  80377dc:	f104 0127 	add.w	r1, r4, #39	; 0x27
 
-  80377e0:	2000      	movs	r0, #0
 
-  80377e2:	f001 fbb9 	bl	8038f58 <ETH_MACAddressConfig>
 
-   
 
-   /* Initialize Tx Descriptors list: Chain Mode */
 
-   ETH_DMATxDescChainInit(DMATxDscrTab, &Tx_Buff[0][0], ETH_TXBUFNB);
 
-  80377e6:	481f      	ldr	r0, [pc, #124]	; (8037864 <ethernetif_init+0xfc>)
 
-  80377e8:	491f      	ldr	r1, [pc, #124]	; (8037868 <ethernetif_init+0x100>)
 
-   
 
-   /* Enable Ethernet Rx interrrupt */
 
-   { 
 
-     for(i=0; i<ETH_RXBUFNB; i++)
 
-     {
 
-       ETH_DMARxDescReceiveITConfig(&DMARxDscrTab[i], ENABLE);
 
-  80377ea:	4d20      	ldr	r5, [pc, #128]	; (803786c <ethernetif_init+0x104>)
 
-   /* initialize MAC address in ethernet MAC */ 
 
-   ETH_MACAddressConfig(ETH_MAC_Address0, netif->hwaddr); 
 
-   
 
-   /* Initialize Tx Descriptors list: Chain Mode */
 
-   ETH_DMATxDescChainInit(DMATxDscrTab, &Tx_Buff[0][0], ETH_TXBUFNB);
 
-  80377ec:	2205      	movs	r2, #5
 
-  80377ee:	f001 fca1 	bl	8039134 <ETH_DMATxDescChainInit>
 
-   /* Initialize Rx Descriptors list: Chain Mode  */
 
-   ETH_DMARxDescChainInit(DMARxDscrTab, &Rx_Buff[0][0], ETH_RXBUFNB);
 
-  80377f2:	481e      	ldr	r0, [pc, #120]	; (803786c <ethernetif_init+0x104>)
 
-  80377f4:	491e      	ldr	r1, [pc, #120]	; (8037870 <ethernetif_init+0x108>)
 
-  80377f6:	2205      	movs	r2, #5
 
-  80377f8:	f001 fc70 	bl	80390dc <ETH_DMARxDescChainInit>
 
-   
 
-   /* Enable Ethernet Rx interrrupt */
 
-   { 
 
-     for(i=0; i<ETH_RXBUFNB; i++)
 
-  80377fc:	2400      	movs	r4, #0
 
-     {
 
-       ETH_DMARxDescReceiveITConfig(&DMARxDscrTab[i], ENABLE);
 
-  80377fe:	eb05 1044 	add.w	r0, r5, r4, lsl #5
 
-  8037802:	2101      	movs	r1, #1
 
-   /* Initialize Rx Descriptors list: Chain Mode  */
 
-   ETH_DMARxDescChainInit(DMARxDscrTab, &Rx_Buff[0][0], ETH_RXBUFNB);
 
-   
 
-   /* Enable Ethernet Rx interrrupt */
 
-   { 
 
-     for(i=0; i<ETH_RXBUFNB; i++)
 
-  8037804:	3401      	adds	r4, #1
 
-     {
 
-       ETH_DMARxDescReceiveITConfig(&DMARxDscrTab[i], ENABLE);
 
-  8037806:	f001 fcbb 	bl	8039180 <ETH_DMARxDescReceiveITConfig>
 
-   /* Initialize Rx Descriptors list: Chain Mode  */
 
-   ETH_DMARxDescChainInit(DMARxDscrTab, &Rx_Buff[0][0], ETH_RXBUFNB);
 
-   
 
-   /* Enable Ethernet Rx interrrupt */
 
-   { 
 
-     for(i=0; i<ETH_RXBUFNB; i++)
 
-  803780a:	2c05      	cmp	r4, #5
 
-  803780c:	d1f7      	bne.n	80377fe <ethernetif_init+0x96>
 
- #ifdef CHECKSUM_BY_HARDWARE
 
-   /* Enable the checksum insertion for the Tx frames */
 
-   {
 
-     for(i=0; i<ETH_TXBUFNB; i++)
 
-     {
 
-       ETH_DMATxDescChecksumInsertionConfig(&DMATxDscrTab[i], ETH_DMATxDesc_ChecksumTCPUDPICMPFull);
 
-  803780e:	4d15      	ldr	r5, [pc, #84]	; (8037864 <ethernetif_init+0xfc>)
 
-   /* Initialize Rx Descriptors list: Chain Mode  */
 
-   ETH_DMARxDescChainInit(DMARxDscrTab, &Rx_Buff[0][0], ETH_RXBUFNB);
 
-   
 
-   /* Enable Ethernet Rx interrrupt */
 
-   { 
 
-     for(i=0; i<ETH_RXBUFNB; i++)
 
-  8037810:	2400      	movs	r4, #0
 
- #ifdef CHECKSUM_BY_HARDWARE
 
-   /* Enable the checksum insertion for the Tx frames */
 
-   {
 
-     for(i=0; i<ETH_TXBUFNB; i++)
 
-     {
 
-       ETH_DMATxDescChecksumInsertionConfig(&DMATxDscrTab[i], ETH_DMATxDesc_ChecksumTCPUDPICMPFull);
 
-  8037812:	eb05 1044 	add.w	r0, r5, r4, lsl #5
 
-  8037816:	f44f 0140 	mov.w	r1, #12582912	; 0xc00000
 
-   }
 
- #ifdef CHECKSUM_BY_HARDWARE
 
-   /* Enable the checksum insertion for the Tx frames */
 
-   {
 
-     for(i=0; i<ETH_TXBUFNB; i++)
 
-  803781a:	3401      	adds	r4, #1
 
-     {
 
-       ETH_DMATxDescChecksumInsertionConfig(&DMATxDscrTab[i], ETH_DMATxDesc_ChecksumTCPUDPICMPFull);
 
-  803781c:	f001 fcac 	bl	8039178 <ETH_DMATxDescChecksumInsertionConfig>
 
-   }
 
- #ifdef CHECKSUM_BY_HARDWARE
 
-   /* Enable the checksum insertion for the Tx frames */
 
-   {
 
-     for(i=0; i<ETH_TXBUFNB; i++)
 
-  8037820:	2c05      	cmp	r4, #5
 
-  8037822:	d1f6      	bne.n	8037812 <ethernetif_init+0xaa>
 
-     }
 
-   } 
 
- #endif
 
-   
 
-   /* create the task that handles the ETH_MAC */
 
-   xTaskCreate(ethernetif_input, "Eth_if", netifINTERFACE_TASK_STACK_SIZE, NULL,
 
-  8037824:	2400      	movs	r4, #0
 
-  8037826:	2304      	movs	r3, #4
 
-  8037828:	2296      	movs	r2, #150	; 0x96
 
-  803782a:	e88d 0018 	stmia.w	sp, {r3, r4}
 
-  803782e:	4911      	ldr	r1, [pc, #68]	; (8037874 <ethernetif_init+0x10c>)
 
-  8037830:	9402      	str	r4, [sp, #8]
 
-  8037832:	4623      	mov	r3, r4
 
-  8037834:	9403      	str	r4, [sp, #12]
 
-  8037836:	4810      	ldr	r0, [pc, #64]	; (8037878 <ethernetif_init+0x110>)
 
-  8037838:	f7f3 f92e 	bl	802aa98 <xTaskGenericCreate>
 
-               netifINTERFACE_TASK_PRIORITY,NULL);
 
-   
 
-   /* Enable MAC and DMA transmission and reception */
 
-   ETH_Start();   
 
-  803783c:	f001 fcf6 	bl	803922c <ETH_Start>
 
-   /* initialize the hardware */
 
-   low_level_init(netif);
 
-   
 
-   etharp_init();
 
-   sys_timeout(ARP_TMR_INTERVAL, arp_timer, NULL);
 
-  8037840:	f241 3088 	movw	r0, #5000	; 0x1388
 
-  8037844:	490d      	ldr	r1, [pc, #52]	; (803787c <ethernetif_init+0x114>)
 
-  8037846:	4622      	mov	r2, r4
 
-  8037848:	f7fa fe88 	bl	803255c <sys_timeout>
 
-   return ERR_OK;
 
- }
 
-  803784c:	4620      	mov	r0, r4
 
-  803784e:	b007      	add	sp, #28
 
-  8037850:	bd30      	pop	{r4, r5, pc}
 
-  8037852:	bf00      	nop
 
-  8037854:	0803730d 	.word	0x0803730d
 
-  8037858:	2000c7cc 	.word	0x2000c7cc
 
-  803785c:	080376f9 	.word	0x080376f9
 
-  8037860:	2000c7c8 	.word	0x2000c7c8
 
-  8037864:	2000fc78 	.word	0x2000fc78
 
-  8037868:	20011b84 	.word	0x20011b84
 
-  803786c:	20011ae4 	.word	0x20011ae4
 
-  8037870:	2000fd18 	.word	0x2000fd18
 
-  8037874:	08045943 	.word	0x08045943
 
-  8037878:	08037621 	.word	0x08037621
 
-  803787c:	08037605 	.word	0x08037605
 
- 08037880 <sys_mbox_new>:
 
-  *      int size                -- Size of elements in the mailbox
 
-  * Outputs:
 
-  *      sys_mbox_t              -- Handle to new mailbox
 
-  *---------------------------------------------------------------------------*/
 
- err_t sys_mbox_new( sys_mbox_t *pxMailBox, int iSize )
 
- {
 
-  8037880:	b510      	push	{r4, lr}
 
- err_t xReturn = ERR_MEM;
 
- 	*pxMailBox = xQueueCreate( iSize, sizeof( void * ) );
 
-  8037882:	2200      	movs	r2, #0
 
-  *      int size                -- Size of elements in the mailbox
 
-  * Outputs:
 
-  *      sys_mbox_t              -- Handle to new mailbox
 
-  *---------------------------------------------------------------------------*/
 
- err_t sys_mbox_new( sys_mbox_t *pxMailBox, int iSize )
 
- {
 
-  8037884:	4604      	mov	r4, r0
 
- err_t xReturn = ERR_MEM;
 
- 	*pxMailBox = xQueueCreate( iSize, sizeof( void * ) );
 
-  8037886:	4608      	mov	r0, r1
 
-  8037888:	2104      	movs	r1, #4
 
-  803788a:	f7f2 fe2f 	bl	802a4ec <xQueueGenericCreate>
 
-  803788e:	6020      	str	r0, [r4, #0]
 
- 		xReturn = ERR_OK;
 
- 		SYS_STATS_INC_USED( mbox );
 
- 	}
 
- 	return xReturn;
 
- }
 
-  8037890:	2800      	cmp	r0, #0
 
-  8037892:	bf14      	ite	ne
 
-  8037894:	2000      	movne	r0, #0
 
-  8037896:	f06f 0000 	mvneq.w	r0, #0
 
-  803789a:	bd10      	pop	{r4, pc}
 
- 0803789c <sys_mbox_free>:
 
-  *      sys_mbox_t mbox         -- Handle of mailbox
 
-  * Outputs:
 
-  *      sys_mbox_t              -- Handle to new mailbox
 
-  *---------------------------------------------------------------------------*/
 
- void sys_mbox_free( sys_mbox_t *pxMailBox )
 
- {
 
-  803789c:	b510      	push	{r4, lr}
 
-  803789e:	4604      	mov	r4, r0
 
- unsigned long ulMessagesWaiting;
 
- 	ulMessagesWaiting = uxQueueMessagesWaiting( *pxMailBox );
 
-  80378a0:	6800      	ldr	r0, [r0, #0]
 
-  80378a2:	f7f3 f87c 	bl	802a99e <uxQueueMessagesWaiting>
 
- 	configASSERT( ( ulMessagesWaiting == 0 ) );
 
-  80378a6:	b110      	cbz	r0, 80378ae <sys_mbox_free+0x12>
 
-  80378a8:	f7f3 ff9e 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  80378ac:	e7fe      	b.n	80378ac <sys_mbox_free+0x10>
 
- 		SYS_STATS_DEC( mbox.used );
 
- 	}
 
- 	#endif /* SYS_STATS */
 
- 	vQueueDelete( *pxMailBox );
 
-  80378ae:	6820      	ldr	r0, [r4, #0]
 
- }
 
-  80378b0:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
- 		SYS_STATS_DEC( mbox.used );
 
- 	}
 
- 	#endif /* SYS_STATS */
 
- 	vQueueDelete( *pxMailBox );
 
-  80378b4:	f7f3 b88f 	b.w	802a9d6 <vQueueDelete>
 
- 080378b8 <sys_mbox_post>:
 
-  * Inputs:
 
-  *      sys_mbox_t mbox         -- Handle of mailbox
 
-  *      void *data              -- Pointer to data to post
 
-  *---------------------------------------------------------------------------*/
 
- void sys_mbox_post( sys_mbox_t *pxMailBox, void *pxMessageToPost )
 
- {
 
-  80378b8:	b537      	push	{r0, r1, r2, r4, r5, lr}
 
-  80378ba:	ac02      	add	r4, sp, #8
 
-  80378bc:	4605      	mov	r5, r0
 
-  80378be:	f844 1d04 	str.w	r1, [r4, #-4]!
 
- 	while( xQueueSendToBack( *pxMailBox, &pxMessageToPost, portMAX_DELAY ) != pdTRUE );
 
-  80378c2:	2300      	movs	r3, #0
 
-  80378c4:	6828      	ldr	r0, [r5, #0]
 
-  80378c6:	4621      	mov	r1, r4
 
-  80378c8:	f04f 32ff 	mov.w	r2, #4294967295
 
-  80378cc:	f7f2 fe4b 	bl	802a566 <xQueueGenericSend>
 
-  80378d0:	2801      	cmp	r0, #1
 
-  80378d2:	d1f6      	bne.n	80378c2 <sys_mbox_post+0xa>
 
- }
 
-  80378d4:	bd3e      	pop	{r1, r2, r3, r4, r5, pc}
 
-  80378d6:	0000      	movs	r0, r0
 
- 080378d8 <sys_mbox_trypost>:
 
-  * Outputs:
 
-  *      err_t                   -- ERR_OK if message posted, else ERR_MEM
 
-  *                                  if not.
 
-  *---------------------------------------------------------------------------*/
 
- err_t sys_mbox_trypost( sys_mbox_t *pxMailBox, void *pxMessageToPost )
 
- {
 
-  80378d8:	b51f      	push	{r0, r1, r2, r3, r4, lr}
 
- err_t xReturn;
 
- portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
 
- 	if( xInsideISR != pdFALSE )
 
-  80378da:	4a0b      	ldr	r2, [pc, #44]	; (8037908 <sys_mbox_trypost+0x30>)
 
-  * Outputs:
 
-  *      err_t                   -- ERR_OK if message posted, else ERR_MEM
 
-  *                                  if not.
 
-  *---------------------------------------------------------------------------*/
 
- err_t sys_mbox_trypost( sys_mbox_t *pxMailBox, void *pxMessageToPost )
 
- {
 
-  80378dc:	9101      	str	r1, [sp, #4]
 
- err_t xReturn;
 
- portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
 
- 	if( xInsideISR != pdFALSE )
 
-  80378de:	6812      	ldr	r2, [r2, #0]
 
- 	{
 
- 		xReturn = xQueueSendFromISR( *pxMailBox, &pxMessageToPost, &xHigherPriorityTaskWoken );
 
-  80378e0:	6800      	ldr	r0, [r0, #0]
 
-  *                                  if not.
 
-  *---------------------------------------------------------------------------*/
 
- err_t sys_mbox_trypost( sys_mbox_t *pxMailBox, void *pxMessageToPost )
 
- {
 
- err_t xReturn;
 
- portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
 
-  80378e2:	2300      	movs	r3, #0
 
-  80378e4:	9303      	str	r3, [sp, #12]
 
- 	if( xInsideISR != pdFALSE )
 
- 	{
 
- 		xReturn = xQueueSendFromISR( *pxMailBox, &pxMessageToPost, &xHigherPriorityTaskWoken );
 
-  80378e6:	a901      	add	r1, sp, #4
 
- err_t sys_mbox_trypost( sys_mbox_t *pxMailBox, void *pxMessageToPost )
 
- {
 
- err_t xReturn;
 
- portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
 
- 	if( xInsideISR != pdFALSE )
 
-  80378e8:	b11a      	cbz	r2, 80378f2 <sys_mbox_trypost+0x1a>
 
- 	{
 
- 		xReturn = xQueueSendFromISR( *pxMailBox, &pxMessageToPost, &xHigherPriorityTaskWoken );
 
-  80378ea:	aa03      	add	r2, sp, #12
 
-  80378ec:	f7f2 feff 	bl	802a6ee <xQueueGenericSendFromISR>
 
-  80378f0:	e002      	b.n	80378f8 <sys_mbox_trypost+0x20>
 
- 	}
 
- 	else
 
- 	{
 
- 		xReturn = xQueueSend( *pxMailBox, &pxMessageToPost, ( TickType_t ) 0 );
 
-  80378f2:	4613      	mov	r3, r2
 
-  80378f4:	f7f2 fe37 	bl	802a566 <xQueueGenericSend>
 
-  80378f8:	b2c0      	uxtb	r0, r0
 
- 		xReturn = ERR_MEM;
 
- 		SYS_STATS_INC( mbox.err );
 
- 	}
 
- 	return xReturn;
 
- }
 
-  80378fa:	3801      	subs	r0, #1
 
-  80378fc:	bf18      	it	ne
 
-  80378fe:	f06f 0000 	mvnne.w	r0, #0
 
-  8037902:	b005      	add	sp, #20
 
-  8037904:	bd00      	pop	{pc}
 
-  8037906:	bf00      	nop
 
-  8037908:	2000c7d4 	.word	0x2000c7d4
 
- 0803790c <sys_arch_mbox_fetch>:
 
-  * Outputs:
 
-  *      u32_t                   -- SYS_ARCH_TIMEOUT if timeout, else number
 
-  *                                  of milliseconds until received.
 
-  *---------------------------------------------------------------------------*/
 
- u32_t sys_arch_mbox_fetch( sys_mbox_t *pxMailBox, void **ppvBuffer, u32_t ulTimeOut )
 
- {
 
-  803790c:	e92d 41f3 	stmdb	sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
 
-  8037910:	4607      	mov	r7, r0
 
-  8037912:	460c      	mov	r4, r1
 
-  8037914:	4690      	mov	r8, r2
 
- void *pvDummy;
 
- TickType_t xStartTime, xEndTime, xElapsed;
 
- unsigned long ulReturn;
 
- 	xStartTime = xTaskGetTickCount();
 
-  8037916:	f7f3 fa27 	bl	802ad68 <xTaskGetTickCount>
 
-  803791a:	4605      	mov	r5, r0
 
- 	if( NULL == ppvBuffer )
 
-  803791c:	b904      	cbnz	r4, 8037920 <sys_arch_mbox_fetch+0x14>
 
- 	{
 
- 		ppvBuffer = &pvDummy;
 
-  803791e:	ac01      	add	r4, sp, #4
 
- 	}
 
- 	if( ulTimeOut != 0UL )
 
-  8037920:	f1b8 0f00 	cmp.w	r8, #0
 
-  8037924:	d015      	beq.n	8037952 <sys_arch_mbox_fetch+0x46>
 
- 	{
 
- 		configASSERT( xInsideISR == ( portBASE_TYPE ) 0 );
 
-  8037926:	4b13      	ldr	r3, [pc, #76]	; (8037974 <sys_arch_mbox_fetch+0x68>)
 
-  8037928:	681e      	ldr	r6, [r3, #0]
 
-  803792a:	b116      	cbz	r6, 8037932 <sys_arch_mbox_fetch+0x26>
 
-  803792c:	f7f3 ff5c 	bl	802b7e8 <ulPortSetInterruptMask>
 
-  8037930:	e7fe      	b.n	8037930 <sys_arch_mbox_fetch+0x24>
 
- 		if( pdTRUE == xQueueReceive( *pxMailBox, &( *ppvBuffer ), ulTimeOut/ portTICK_PERIOD_MS ) )
 
-  8037932:	6838      	ldr	r0, [r7, #0]
 
-  8037934:	4621      	mov	r1, r4
 
-  8037936:	4642      	mov	r2, r8
 
-  8037938:	4633      	mov	r3, r6
 
-  803793a:	f7f2 ff54 	bl	802a7e6 <xQueueGenericReceive>
 
-  803793e:	2801      	cmp	r0, #1
 
-  8037940:	d103      	bne.n	803794a <sys_arch_mbox_fetch+0x3e>
 
- 		{
 
- 			xEndTime = xTaskGetTickCount();
 
-  8037942:	f7f3 fa11 	bl	802ad68 <xTaskGetTickCount>
 
- 			xElapsed = ( xEndTime - xStartTime ) * portTICK_PERIOD_MS;
 
-  8037946:	1b40      	subs	r0, r0, r5
 
-  8037948:	e011      	b.n	803796e <sys_arch_mbox_fetch+0x62>
 
- 			ulReturn = xElapsed;
 
- 		}
 
- 		else
 
- 		{
 
- 			/* Timed out. */
 
- 			*ppvBuffer = NULL;
 
-  803794a:	6026      	str	r6, [r4, #0]
 
- 			ulReturn = SYS_ARCH_TIMEOUT;
 
-  803794c:	f04f 30ff 	mov.w	r0, #4294967295
 
-  8037950:	e00d      	b.n	803796e <sys_arch_mbox_fetch+0x62>
 
- 		}
 
- 	}
 
- 	else
 
- 	{
 
- 		while( pdTRUE != xQueueReceive( *pxMailBox, &( *ppvBuffer ), portMAX_DELAY ) );
 
-  8037952:	2300      	movs	r3, #0
 
-  8037954:	6838      	ldr	r0, [r7, #0]
 
-  8037956:	4621      	mov	r1, r4
 
-  8037958:	f04f 32ff 	mov.w	r2, #4294967295
 
-  803795c:	f7f2 ff43 	bl	802a7e6 <xQueueGenericReceive>
 
-  8037960:	2801      	cmp	r0, #1
 
-  8037962:	d1f6      	bne.n	8037952 <sys_arch_mbox_fetch+0x46>
 
- 		xEndTime = xTaskGetTickCount();
 
-  8037964:	f7f3 fa00 	bl	802ad68 <xTaskGetTickCount>
 
- 		xElapsed = ( xEndTime - xStartTime ) * portTICK_PERIOD_MS;
 
- 		if( xElapsed == 0UL )
 
-  8037968:	1b40      	subs	r0, r0, r5
 
-  803796a:	bf08      	it	eq
 
-  803796c:	2001      	moveq	r0, #1
 
- 		ulReturn = xElapsed;
 
- 	}
 
- 	return ulReturn;
 
- }
 
-  803796e:	e8bd 81fc 	ldmia.w	sp!, {r2, r3, r4, r5, r6, r7, r8, pc}
 
-  8037972:	bf00      	nop
 
-  8037974:	2000c7d4 	.word	0x2000c7d4
 
- 08037978 <sys_arch_mbox_tryfetch>:
 
-  * Outputs:
 
-  *      u32_t                   -- SYS_MBOX_EMPTY if no messages.  Otherwise,
 
-  *                                  return ERR_OK.
 
-  *---------------------------------------------------------------------------*/
 
- u32_t sys_arch_mbox_tryfetch( sys_mbox_t *pxMailBox, void **ppvBuffer )
 
- {
 
-  8037978:	b507      	push	{r0, r1, r2, lr}
 
- void *pvDummy;
 
- unsigned long ulReturn;
 
- long lResult;
 
- portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
 
-  803797a:	2300      	movs	r3, #0
 
-  803797c:	9301      	str	r3, [sp, #4]
 
- 	if( ppvBuffer== NULL )
 
-  803797e:	b901      	cbnz	r1, 8037982 <sys_arch_mbox_tryfetch+0xa>
 
- 	{
 
- 		ppvBuffer = &pvDummy;
 
-  8037980:	4669      	mov	r1, sp
 
- 	}
 
- 	if( xInsideISR != pdFALSE )
 
-  8037982:	4b08      	ldr	r3, [pc, #32]	; (80379a4 <sys_arch_mbox_tryfetch+0x2c>)
 
- 	{
 
- 		lResult = xQueueReceiveFromISR( *pxMailBox, &( *ppvBuffer ), &xHigherPriorityTaskWoken );
 
-  8037984:	6800      	ldr	r0, [r0, #0]
 
- 	if( ppvBuffer== NULL )
 
- 	{
 
- 		ppvBuffer = &pvDummy;
 
- 	}
 
- 	if( xInsideISR != pdFALSE )
 
-  8037986:	681a      	ldr	r2, [r3, #0]
 
-  8037988:	b11a      	cbz	r2, 8037992 <sys_arch_mbox_tryfetch+0x1a>
 
- 	{
 
- 		lResult = xQueueReceiveFromISR( *pxMailBox, &( *ppvBuffer ), &xHigherPriorityTaskWoken );
 
-  803798a:	aa01      	add	r2, sp, #4
 
-  803798c:	f7f2 ffce 	bl	802a92c <xQueueReceiveFromISR>
 
-  8037990:	e002      	b.n	8037998 <sys_arch_mbox_tryfetch+0x20>
 
- 	}
 
- 	else
 
- 	{
 
- 		lResult = xQueueReceive( *pxMailBox, &( *ppvBuffer ), 0UL );
 
-  8037992:	4613      	mov	r3, r2
 
-  8037994:	f7f2 ff27 	bl	802a7e6 <xQueueGenericReceive>
 
- 	{
 
- 		ulReturn = SYS_MBOX_EMPTY;
 
- 	}
 
- 	return ulReturn;
 
- }
 
-  8037998:	2801      	cmp	r0, #1
 
-  803799a:	bf14      	ite	ne
 
-  803799c:	f04f 30ff 	movne.w	r0, #4294967295
 
-  80379a0:	2000      	moveq	r0, #0
 
-  80379a2:	bd0e      	pop	{r1, r2, r3, pc}
 
-  80379a4:	2000c7d4 	.word	0x2000c7d4
 
- 080379a8 <sys_sem_new>:
 
-  *      u8_t ucCount              -- Initial ucCount of semaphore (1 or 0)
 
-  * Outputs:
 
-  *      sys_sem_t               -- Created semaphore or 0 if could not create.
 
-  *---------------------------------------------------------------------------*/
 
- err_t sys_sem_new( sys_sem_t *pxSemaphore, u8_t ucCount )
 
- {
 
-  80379a8:	b538      	push	{r3, r4, r5, lr}
 
- err_t xReturn = ERR_MEM;
 
- 	vSemaphoreCreateBinary( ( *pxSemaphore ) );
 
-  80379aa:	2203      	movs	r2, #3
 
-  *      u8_t ucCount              -- Initial ucCount of semaphore (1 or 0)
 
-  * Outputs:
 
-  *      sys_sem_t               -- Created semaphore or 0 if could not create.
 
-  *---------------------------------------------------------------------------*/
 
- err_t sys_sem_new( sys_sem_t *pxSemaphore, u8_t ucCount )
 
- {
 
-  80379ac:	4605      	mov	r5, r0
 
-  80379ae:	460c      	mov	r4, r1
 
- err_t xReturn = ERR_MEM;
 
- 	vSemaphoreCreateBinary( ( *pxSemaphore ) );
 
-  80379b0:	2001      	movs	r0, #1
 
-  80379b2:	2100      	movs	r1, #0
 
-  80379b4:	f7f2 fd9a 	bl	802a4ec <xQueueGenericCreate>
 
-  80379b8:	6028      	str	r0, [r5, #0]
 
-  80379ba:	b120      	cbz	r0, 80379c6 <sys_sem_new+0x1e>
 
-  80379bc:	2100      	movs	r1, #0
 
-  80379be:	460a      	mov	r2, r1
 
-  80379c0:	460b      	mov	r3, r1
 
-  80379c2:	f7f2 fdd0 	bl	802a566 <xQueueGenericSend>
 
- 	if( *pxSemaphore != NULL )
 
-  80379c6:	6828      	ldr	r0, [r5, #0]
 
-  80379c8:	b130      	cbz	r0, 80379d8 <sys_sem_new+0x30>
 
- 	{
 
- 		if( ucCount == 0U )
 
-  80379ca:	b93c      	cbnz	r4, 80379dc <sys_sem_new+0x34>
 
- 		{
 
- 			xSemaphoreTake( *pxSemaphore, 1UL );
 
-  80379cc:	4621      	mov	r1, r4
 
-  80379ce:	2201      	movs	r2, #1
 
-  80379d0:	4623      	mov	r3, r4
 
-  80379d2:	f7f2 ff08 	bl	802a7e6 <xQueueGenericReceive>
 
-  80379d6:	e001      	b.n	80379dc <sys_sem_new+0x34>
 
-  * Outputs:
 
-  *      sys_sem_t               -- Created semaphore or 0 if could not create.
 
-  *---------------------------------------------------------------------------*/
 
- err_t sys_sem_new( sys_sem_t *pxSemaphore, u8_t ucCount )
 
- {
 
- err_t xReturn = ERR_MEM;
 
-  80379d8:	20ff      	movs	r0, #255	; 0xff
 
-  80379da:	e000      	b.n	80379de <sys_sem_new+0x36>
 
- 		if( ucCount == 0U )
 
- 		{
 
- 			xSemaphoreTake( *pxSemaphore, 1UL );
 
- 		}
 
- 		xReturn = ERR_OK;
 
-  80379dc:	2000      	movs	r0, #0
 
- 	{
 
- 		SYS_STATS_INC( sem.err );
 
- 	}
 
- 	return xReturn;
 
- }
 
-  80379de:	b240      	sxtb	r0, r0
 
-  80379e0:	bd38      	pop	{r3, r4, r5, pc}
 
- 080379e2 <sys_arch_sem_wait>:
 
-  *      u32_t timeout           -- Number of milliseconds until timeout
 
-  * Outputs:
 
-  *      u32_t                   -- Time elapsed or SYS_ARCH_TIMEOUT.
 
-  *---------------------------------------------------------------------------*/
 
- u32_t sys_arch_sem_wait( sys_sem_t *pxSemaphore, u32_t ulTimeout )
 
- {
 
-  80379e2:	b570      	push	{r4, r5, r6, lr}
 
-  80379e4:	4605      	mov	r5, r0
 
-  80379e6:	460e      	mov	r6, r1
 
- TickType_t xStartTime, xEndTime, xElapsed;
 
- unsigned long ulReturn;
 
- 	xStartTime = xTaskGetTickCount();
 
-  80379e8:	f7f3 f9be 	bl	802ad68 <xTaskGetTickCount>
 
-  80379ec:	4604      	mov	r4, r0
 
- 	if( ulTimeout != 0UL )
 
-  80379ee:	b15e      	cbz	r6, 8037a08 <sys_arch_sem_wait+0x26>
 
- 	{
 
- 		if( xSemaphoreTake( *pxSemaphore, ulTimeout / portTICK_PERIOD_MS ) == pdTRUE )
 
-  80379f0:	2100      	movs	r1, #0
 
-  80379f2:	6828      	ldr	r0, [r5, #0]
 
-  80379f4:	4632      	mov	r2, r6
 
-  80379f6:	460b      	mov	r3, r1
 
-  80379f8:	f7f2 fef5 	bl	802a7e6 <xQueueGenericReceive>
 
-  80379fc:	2801      	cmp	r0, #1
 
-  80379fe:	d112      	bne.n	8037a26 <sys_arch_sem_wait+0x44>
 
- 		{
 
- 			xEndTime = xTaskGetTickCount();
 
-  8037a00:	f7f3 f9b2 	bl	802ad68 <xTaskGetTickCount>
 
- 			xElapsed = (xEndTime - xStartTime) * portTICK_PERIOD_MS;
 
-  8037a04:	1b00      	subs	r0, r0, r4
 
-  8037a06:	bd70      	pop	{r4, r5, r6, pc}
 
- 			ulReturn = SYS_ARCH_TIMEOUT;
 
- 		}
 
- 	}
 
- 	else
 
- 	{
 
- 		while( xSemaphoreTake( *pxSemaphore, portMAX_DELAY ) != pdTRUE );
 
-  8037a08:	2100      	movs	r1, #0
 
-  8037a0a:	6828      	ldr	r0, [r5, #0]
 
-  8037a0c:	f04f 32ff 	mov.w	r2, #4294967295
 
-  8037a10:	460b      	mov	r3, r1
 
-  8037a12:	f7f2 fee8 	bl	802a7e6 <xQueueGenericReceive>
 
-  8037a16:	2801      	cmp	r0, #1
 
-  8037a18:	d1f6      	bne.n	8037a08 <sys_arch_sem_wait+0x26>
 
- 		xEndTime = xTaskGetTickCount();
 
-  8037a1a:	f7f3 f9a5 	bl	802ad68 <xTaskGetTickCount>
 
- 		xElapsed = ( xEndTime - xStartTime ) * portTICK_PERIOD_MS;
 
- 		if( xElapsed == 0UL )
 
-  8037a1e:	1b00      	subs	r0, r0, r4
 
-  8037a20:	bf08      	it	eq
 
-  8037a22:	2001      	moveq	r0, #1
 
-  8037a24:	bd70      	pop	{r4, r5, r6, pc}
 
- 			xElapsed = (xEndTime - xStartTime) * portTICK_PERIOD_MS;
 
- 			ulReturn = xElapsed;
 
- 		}
 
- 		else
 
- 		{
 
- 			ulReturn = SYS_ARCH_TIMEOUT;
 
-  8037a26:	f04f 30ff 	mov.w	r0, #4294967295
 
- 		ulReturn = xElapsed;
 
- 	}
 
- 	return ulReturn;
 
- }
 
-  8037a2a:	bd70      	pop	{r4, r5, r6, pc}
 
- 08037a2c <sys_mutex_new>:
 
- /** Create a new mutex
 
-  * @param mutex pointer to the mutex to create
 
-  * @return a new mutex */
 
- err_t sys_mutex_new( sys_mutex_t *pxMutex )
 
- {
 
-  8037a2c:	b510      	push	{r4, lr}
 
-  8037a2e:	4604      	mov	r4, r0
 
- err_t xReturn = ERR_MEM;
 
- 	*pxMutex = xSemaphoreCreateMutex();
 
-  8037a30:	2001      	movs	r0, #1
 
-  8037a32:	f7f2 fe32 	bl	802a69a <xQueueCreateMutex>
 
-  8037a36:	6020      	str	r0, [r4, #0]
 
- 	{
 
- 		SYS_STATS_INC( mutex.err );
 
- 	}
 
- 	return xReturn;
 
- }
 
-  8037a38:	2800      	cmp	r0, #0
 
-  8037a3a:	bf14      	ite	ne
 
-  8037a3c:	2000      	movne	r0, #0
 
-  8037a3e:	f06f 0000 	mvneq.w	r0, #0
 
-  8037a42:	bd10      	pop	{r4, pc}
 
- 08037a44 <sys_mutex_lock>:
 
- /** Lock a mutex
 
-  * @param mutex the mutex to lock */
 
- void sys_mutex_lock( sys_mutex_t *pxMutex )
 
- {
 
-  8037a44:	b510      	push	{r4, lr}
 
-  8037a46:	4604      	mov	r4, r0
 
- 	while( xSemaphoreTake( *pxMutex, portMAX_DELAY ) != pdPASS );
 
-  8037a48:	2100      	movs	r1, #0
 
-  8037a4a:	6820      	ldr	r0, [r4, #0]
 
-  8037a4c:	f04f 32ff 	mov.w	r2, #4294967295
 
-  8037a50:	460b      	mov	r3, r1
 
-  8037a52:	f7f2 fec8 	bl	802a7e6 <xQueueGenericReceive>
 
-  8037a56:	2801      	cmp	r0, #1
 
-  8037a58:	d1f6      	bne.n	8037a48 <sys_mutex_lock+0x4>
 
- }
 
-  8037a5a:	bd10      	pop	{r4, pc}
 
- 08037a5c <sys_mutex_unlock>:
 
- /** Unlock a mutex
 
-  * @param mutex the mutex to unlock */
 
- void sys_mutex_unlock(sys_mutex_t *pxMutex )
 
- {
 
- 	xSemaphoreGive( *pxMutex );
 
-  8037a5c:	2100      	movs	r1, #0
 
-  8037a5e:	6800      	ldr	r0, [r0, #0]
 
-  8037a60:	460a      	mov	r2, r1
 
-  8037a62:	460b      	mov	r3, r1
 
-  8037a64:	f7f2 bd7f 	b.w	802a566 <xQueueGenericSend>
 
- 08037a68 <sys_sem_signal>:
 
-  *      Signals (releases) a semaphore
 
-  * Inputs:
 
-  *      sys_sem_t sem           -- Semaphore to signal
 
-  *---------------------------------------------------------------------------*/
 
- void sys_sem_signal( sys_sem_t *pxSemaphore )
 
- {
 
-  8037a68:	b507      	push	{r0, r1, r2, lr}
 
- portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
 
-  8037a6a:	2300      	movs	r3, #0
 
-  8037a6c:	9301      	str	r3, [sp, #4]
 
- 	if( xInsideISR != pdFALSE )
 
-  8037a6e:	4b06      	ldr	r3, [pc, #24]	; (8037a88 <sys_sem_signal+0x20>)
 
- 	{
 
- 		xSemaphoreGiveFromISR( *pxSemaphore, &xHigherPriorityTaskWoken );
 
-  8037a70:	6800      	ldr	r0, [r0, #0]
 
-  *---------------------------------------------------------------------------*/
 
- void sys_sem_signal( sys_sem_t *pxSemaphore )
 
- {
 
- portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
 
- 	if( xInsideISR != pdFALSE )
 
-  8037a72:	6819      	ldr	r1, [r3, #0]
 
-  8037a74:	b119      	cbz	r1, 8037a7e <sys_sem_signal+0x16>
 
- 	{
 
- 		xSemaphoreGiveFromISR( *pxSemaphore, &xHigherPriorityTaskWoken );
 
-  8037a76:	a901      	add	r1, sp, #4
 
-  8037a78:	f7f2 fe83 	bl	802a782 <xQueueGiveFromISR>
 
-  8037a7c:	e003      	b.n	8037a86 <sys_sem_signal+0x1e>
 
- 	}
 
- 	else
 
- 	{
 
- 		xSemaphoreGive( *pxSemaphore );
 
-  8037a7e:	460a      	mov	r2, r1
 
-  8037a80:	460b      	mov	r3, r1
 
-  8037a82:	f7f2 fd70 	bl	802a566 <xQueueGenericSend>
 
- 	}
 
- }
 
-  8037a86:	bd0e      	pop	{r1, r2, r3, pc}
 
-  8037a88:	2000c7d4 	.word	0x2000c7d4
 
- 08037a8c <sys_sem_free>:
 
-  *      sys_sem_t sem           -- Semaphore to free
 
-  *---------------------------------------------------------------------------*/
 
- void sys_sem_free( sys_sem_t *pxSemaphore )
 
- {
 
- 	SYS_STATS_DEC(sem.used);
 
- 	vQueueDelete( *pxSemaphore );
 
-  8037a8c:	6800      	ldr	r0, [r0, #0]
 
-  8037a8e:	f7f2 bfa2 	b.w	802a9d6 <vQueueDelete>
 
- 08037a92 <sys_init>:
 
-  *---------------------------------------------------------------------------*
 
-  * Description:
 
-  *      Initialize sys arch
 
-  *---------------------------------------------------------------------------*/
 
- void sys_init(void)
 
- {
 
-  8037a92:	4770      	bx	lr
 
- 08037a94 <sys_now>:
 
- }
 
- u32_t sys_now(void)
 
- {
 
- 	return xTaskGetTickCount();
 
-  8037a94:	f7f3 b968 	b.w	802ad68 <xTaskGetTickCount>
 
- 08037a98 <sys_thread_new>:
 
-  *      int prio                -- Thread priority
 
-  * Outputs:
 
-  *      sys_thread_t            -- Pointer to per-thread timeouts.
 
-  *---------------------------------------------------------------------------*/
 
- sys_thread_t sys_thread_new( const char *pcName, void( *pxThread )( void *pvParameters ), void *pvArg, int iStackSize, int iPriority )
 
- {
 
-  8037a98:	b570      	push	{r4, r5, r6, lr}
 
-  8037a9a:	b086      	sub	sp, #24
 
-  8037a9c:	4606      	mov	r6, r0
 
- TaskHandle_t xCreatedTask;
 
- portBASE_TYPE xResult;
 
- sys_thread_t xReturn;
 
- 	xResult = xTaskCreate( pxThread, pcName, iStackSize, pvArg, iPriority, &xCreatedTask );
 
-  8037a9e:	9c0a      	ldr	r4, [sp, #40]	; 0x28
 
-  *      int prio                -- Thread priority
 
-  * Outputs:
 
-  *      sys_thread_t            -- Pointer to per-thread timeouts.
 
-  *---------------------------------------------------------------------------*/
 
- sys_thread_t sys_thread_new( const char *pcName, void( *pxThread )( void *pvParameters ), void *pvArg, int iStackSize, int iPriority )
 
- {
 
-  8037aa0:	4615      	mov	r5, r2
 
- TaskHandle_t xCreatedTask;
 
- portBASE_TYPE xResult;
 
- sys_thread_t xReturn;
 
- 	xResult = xTaskCreate( pxThread, pcName, iStackSize, pvArg, iPriority, &xCreatedTask );
 
-  8037aa2:	9400      	str	r4, [sp, #0]
 
-  8037aa4:	aa05      	add	r2, sp, #20
 
-  8037aa6:	2400      	movs	r4, #0
 
-  8037aa8:	9201      	str	r2, [sp, #4]
 
-  8037aaa:	9402      	str	r4, [sp, #8]
 
-  8037aac:	b29a      	uxth	r2, r3
 
-  8037aae:	9403      	str	r4, [sp, #12]
 
-  8037ab0:	4608      	mov	r0, r1
 
-  8037ab2:	462b      	mov	r3, r5
 
-  8037ab4:	4631      	mov	r1, r6
 
-  8037ab6:	f7f2 ffef 	bl	802aa98 <xTaskGenericCreate>
 
- 	if( xResult == pdPASS )
 
-  8037aba:	2801      	cmp	r0, #1
 
- 	{
 
- 		xReturn = xCreatedTask;
 
-  8037abc:	bf0c      	ite	eq
 
-  8037abe:	9805      	ldreq	r0, [sp, #20]
 
- 	}
 
- 	else
 
- 	{
 
- 		xReturn = NULL;
 
-  8037ac0:	4620      	movne	r0, r4
 
- 	}
 
- 	return xReturn;
 
- }
 
-  8037ac2:	b006      	add	sp, #24
 
-  8037ac4:	bd70      	pop	{r4, r5, r6, pc}
 
-  8037ac6:	0000      	movs	r0, r0
 
- 08037ac8 <sys_arch_protect>:
 
-  *      operating system.
 
-  * Outputs:
 
-  *      sys_prot_t              -- Previous protection level (not used here)
 
-  *---------------------------------------------------------------------------*/
 
- sys_prot_t sys_arch_protect( void )
 
- {
 
-  8037ac8:	b508      	push	{r3, lr}
 
- 	if( xInsideISR == pdFALSE )
 
-  8037aca:	4b03      	ldr	r3, [pc, #12]	; (8037ad8 <sys_arch_protect+0x10>)
 
-  8037acc:	681b      	ldr	r3, [r3, #0]
 
-  8037ace:	b90b      	cbnz	r3, 8037ad4 <sys_arch_protect+0xc>
 
- 	{
 
- 		taskENTER_CRITICAL();
 
-  8037ad0:	f7f3 fe92 	bl	802b7f8 <vPortEnterCritical>
 
- 	}
 
- 	return ( sys_prot_t ) 1;
 
- }
 
-  8037ad4:	2001      	movs	r0, #1
 
-  8037ad6:	bd08      	pop	{r3, pc}
 
-  8037ad8:	2000c7d4 	.word	0x2000c7d4
 
- 08037adc <sys_arch_unprotect>:
 
-  *      sys_prot_t              -- Previous protection level (not used here)
 
-  *---------------------------------------------------------------------------*/
 
- void sys_arch_unprotect( sys_prot_t xValue )
 
- {
 
- 	(void) xValue;
 
- 	if( xInsideISR == pdFALSE )
 
-  8037adc:	4b02      	ldr	r3, [pc, #8]	; (8037ae8 <sys_arch_unprotect+0xc>)
 
-  8037ade:	681b      	ldr	r3, [r3, #0]
 
-  8037ae0:	b90b      	cbnz	r3, 8037ae6 <sys_arch_unprotect+0xa>
 
- 	{
 
- 		taskEXIT_CRITICAL();
 
-  8037ae2:	f7f3 beb5 	b.w	802b850 <vPortExitCritical>
 
-  8037ae6:	4770      	bx	lr
 
-  8037ae8:	2000c7d4 	.word	0x2000c7d4
 
- 08037aec <vTaskWebReinit>:
 
-   *           Если флаг не устанавливается в положенное время, то сбрасывается
 
-   *         флаг sSettings.sFlags.netsettingsChanged, сохраняется вся структура
 
-   *         настроек в памяти и контроллер перезагружается.
 
-   */
 
- void vTaskWebReinit(void * pvParameters)
 
- {
 
-  8037aec:	b538      	push	{r3, r4, r5, lr}
 
-   static uint16_t timeCounter = 0;
 
-   
 
-   for (;;)
 
-   {
 
- 	/* Контроль времени работы задачи */
 
- 	if (timeCounter++ > TIME_COUNTER_10_MIN)
 
-  8037aee:	4c1b      	ldr	r4, [pc, #108]	; (8037b5c <vTaskWebReinit+0x70>)
 
- 	if (fConfirmWebParams)
 
- 	{
 
- 	  fConfirmWebParams = false;
 
- 		
 
- 	  /* Сохраняем временные сетевые настройки в постоянные */
 
- 	  sSettings.sWebParams.dhcpEnable = sSettings.sWebTempParams.dhcpEnable;
 
-  8037af0:	4d1b      	ldr	r5, [pc, #108]	; (8037b60 <vTaskWebReinit+0x74>)
 
-   static uint16_t timeCounter = 0;
 
-   
 
-   for (;;)
 
-   {
 
- 	/* Контроль времени работы задачи */
 
- 	if (timeCounter++ > TIME_COUNTER_10_MIN)
 
-  8037af2:	8823      	ldrh	r3, [r4, #0]
 
-  8037af4:	1c5a      	adds	r2, r3, #1
 
-  8037af6:	f5b3 7f16 	cmp.w	r3, #600	; 0x258
 
-  8037afa:	8022      	strh	r2, [r4, #0]
 
-  8037afc:	d90a      	bls.n	8037b14 <vTaskWebReinit+0x28>
 
- 	{
 
- 	  SetWebReinitFlag(false);
 
-  8037afe:	2000      	movs	r0, #0
 
-  8037b00:	f7f0 fb16 	bl	8028130 <SetWebReinitFlag>
 
- 	  HTTP_SaveSettings();
 
-  8037b04:	f7f6 f95a 	bl	802ddbc <HTTP_SaveSettings>
 
-       vTaskDelay(1010);
 
-  8037b08:	f240 30f2 	movw	r0, #1010	; 0x3f2
 
-  8037b0c:	f7f3 fa5e 	bl	802afcc <vTaskDelay>
 
-       Reboot();
 
-  8037b10:	f7f1 faf8 	bl	8029104 <Reboot>
 
- 	}
 
- 	
 
- 	if (fConfirmWebParams)
 
-  8037b14:	4b13      	ldr	r3, [pc, #76]	; (8037b64 <vTaskWebReinit+0x78>)
 
-  8037b16:	781a      	ldrb	r2, [r3, #0]
 
-  8037b18:	b1d2      	cbz	r2, 8037b50 <vTaskWebReinit+0x64>
 
- 	{
 
- 	  fConfirmWebParams = false;
 
-  8037b1a:	2200      	movs	r2, #0
 
- 		
 
- 	  /* Сохраняем временные сетевые настройки в постоянные */
 
- 	  sSettings.sWebParams.dhcpEnable = sSettings.sWebTempParams.dhcpEnable;
 
- 	  strcpy(sSettings.sWebParams.ip,   sSettings.sWebTempParams.ip);
 
-  8037b1c:	4812      	ldr	r0, [pc, #72]	; (8037b68 <vTaskWebReinit+0x7c>)
 
-       Reboot();
 
- 	}
 
- 	
 
- 	if (fConfirmWebParams)
 
- 	{
 
- 	  fConfirmWebParams = false;
 
-  8037b1e:	701a      	strb	r2, [r3, #0]
 
- 		
 
- 	  /* Сохраняем временные сетевые настройки в постоянные */
 
- 	  sSettings.sWebParams.dhcpEnable = sSettings.sWebTempParams.dhcpEnable;
 
-  8037b20:	f895 3063 	ldrb.w	r3, [r5, #99]	; 0x63
 
- 	  strcpy(sSettings.sWebParams.ip,   sSettings.sWebTempParams.ip);
 
-  8037b24:	f100 0131 	add.w	r1, r0, #49	; 0x31
 
- 	if (fConfirmWebParams)
 
- 	{
 
- 	  fConfirmWebParams = false;
 
- 		
 
- 	  /* Сохраняем временные сетевые настройки в постоянные */
 
- 	  sSettings.sWebParams.dhcpEnable = sSettings.sWebTempParams.dhcpEnable;
 
-  8037b28:	f885 3032 	strb.w	r3, [r5, #50]	; 0x32
 
- 	  strcpy(sSettings.sWebParams.ip,   sSettings.sWebTempParams.ip);
 
-  8037b2c:	f7ea f962 	bl	8021df4 <strcpy>
 
- 	  strcpy(sSettings.sWebParams.gate, sSettings.sWebTempParams.gate);
 
-  8037b30:	480e      	ldr	r0, [pc, #56]	; (8037b6c <vTaskWebReinit+0x80>)
 
-  8037b32:	f100 0131 	add.w	r1, r0, #49	; 0x31
 
-  8037b36:	f7ea f95d 	bl	8021df4 <strcpy>
 
- 	  strcpy(sSettings.sWebParams.mask, sSettings.sWebTempParams.mask);
 
-  8037b3a:	480d      	ldr	r0, [pc, #52]	; (8037b70 <vTaskWebReinit+0x84>)
 
-  8037b3c:	f100 0131 	add.w	r1, r0, #49	; 0x31
 
-  8037b40:	f7ea f958 	bl	8021df4 <strcpy>
 
- 	  
 
- 	  HTTP_SaveSettings();
 
-  8037b44:	f7f6 f93a 	bl	802ddbc <HTTP_SaveSettings>
 
- 	  
 
- 	  vTaskDelete(xHandleWebReinit);
 
-  8037b48:	4b0a      	ldr	r3, [pc, #40]	; (8037b74 <vTaskWebReinit+0x88>)
 
-  8037b4a:	6818      	ldr	r0, [r3, #0]
 
-  8037b4c:	f7f3 f87c 	bl	802ac48 <vTaskDelete>
 
- 	}	
 
- 	  
 
- 	vTaskDelay(1000);
 
-  8037b50:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
 
-  8037b54:	f7f3 fa3a 	bl	802afcc <vTaskDelay>
 
-   }	
 
-  8037b58:	e7cb      	b.n	8037af2 <vTaskWebReinit+0x6>
 
-  8037b5a:	bf00      	nop
 
-  8037b5c:	2000c7e4 	.word	0x2000c7e4
 
-  8037b60:	2000cfc4 	.word	0x2000cfc4
 
-  8037b64:	20000b18 	.word	0x20000b18
 
-  8037b68:	2000cfc6 	.word	0x2000cfc6
 
-  8037b6c:	2000cfd6 	.word	0x2000cfd6
 
-  8037b70:	2000cfe6 	.word	0x2000cfe6
 
-  8037b74:	2000c7dc 	.word	0x2000c7dc
 
- 08037b78 <LwIP_DHCP_task>:
 
-   * @brief  LwIP_DHCP_Process_Handle
 
-   * @param  None
 
-   * @retval None
 
-   */
 
- void LwIP_DHCP_task(void * pvParameters)
 
- {
 
-  8037b78:	b530      	push	{r4, r5, lr}
 
-             DHCP_state = DHCP_TIMEOUT;
 
-             /* Stop DHCP */
 
-             dhcp_stop(&xnetif);
 
- 			
 
- 			if (sSettings.sFlags.netsettingsChanged == true)
 
-  8037b7a:	4d48      	ldr	r5, [pc, #288]	; (8037c9c <LwIP_DHCP_task+0x124>)
 
-   * @brief  LwIP_DHCP_Process_Handle
 
-   * @param  None
 
-   * @retval None
 
-   */
 
- void LwIP_DHCP_task(void * pvParameters)
 
- {
 
-  8037b7c:	b085      	sub	sp, #20
 
-   struct ip_addr ipaddr;
 
-   struct ip_addr netmask;
 
-   struct ip_addr gw;
 
-   uint8_t DHCP_state;  
 
-   DHCP_state = DHCP_START;
 
-  8037b7e:	2400      	movs	r4, #0
 
-   for (;;)
 
-   {
 
-     switch (DHCP_state)
 
-  8037b80:	b11c      	cbz	r4, 8037b8a <LwIP_DHCP_task+0x12>
 
-  8037b82:	2c01      	cmp	r4, #1
 
-  8037b84:	f040 8085 	bne.w	8037c92 <LwIP_DHCP_task+0x11a>
 
-  8037b88:	e004      	b.n	8037b94 <LwIP_DHCP_task+0x1c>
 
-     {
 
-       case DHCP_START:
 
-       {
 
-         dhcp_start(&xnetif);
 
-  8037b8a:	4845      	ldr	r0, [pc, #276]	; (8037ca0 <LwIP_DHCP_task+0x128>)
 
-  8037b8c:	f7f7 fe42 	bl	802f814 <dhcp_start>
 
-         DHCP_state = DHCP_WAIT_ADDRESS;
 
-  8037b90:	2401      	movs	r4, #1
 
-         //PRINT_USART("\n\rLooking for DHCP server please wait...\n\r");
 
-       }
 
-       break;
 
-  8037b92:	e07e      	b.n	8037c92 <LwIP_DHCP_task+0x11a>
 
-       case DHCP_WAIT_ADDRESS:
 
-       {
 
-         /* Read the new IP address */
 
-         ipaddr = xnetif.ip_addr;
 
-  8037b94:	4842      	ldr	r0, [pc, #264]	; (8037ca0 <LwIP_DHCP_task+0x128>)
 
-         netmask = xnetif.netmask;
 
-  8037b96:	6882      	ldr	r2, [r0, #8]
 
-       break;
 
-       case DHCP_WAIT_ADDRESS:
 
-       {
 
-         /* Read the new IP address */
 
-         ipaddr = xnetif.ip_addr;
 
-  8037b98:	6843      	ldr	r3, [r0, #4]
 
-         netmask = xnetif.netmask;
 
-  8037b9a:	9202      	str	r2, [sp, #8]
 
-         gw = xnetif.gw;
 
-  8037b9c:	68c2      	ldr	r2, [r0, #12]
 
-       break;
 
-       case DHCP_WAIT_ADDRESS:
 
-       {
 
-         /* Read the new IP address */
 
-         ipaddr = xnetif.ip_addr;
 
-  8037b9e:	9301      	str	r3, [sp, #4]
 
-         netmask = xnetif.netmask;
 
-         gw = xnetif.gw;
 
-  8037ba0:	9203      	str	r2, [sp, #12]
 
-         	
 
-         if (ipaddr.addr != 0) 
 
-  8037ba2:	2b00      	cmp	r3, #0
 
-  8037ba4:	d045      	beq.n	8037c32 <LwIP_DHCP_task+0xba>
 
-         {
 
-           DHCP_state = DHCP_ADDRESS_ASSIGNED;	
 
-           dhcp_stop(&xnetif);
 
-  8037ba6:	f7f7 fe1d 	bl	802f7e4 <dhcp_stop>
 
-           
 
- 		  /* Сохранение полученных сетевый параметров */
 
- 		  /* Если настройки изменили, то сохраняем во временные настройки */
 
-           if (sSettings.sFlags.netsettingsChanged == true)
 
-  8037baa:	f895 3120 	ldrb.w	r3, [r5, #288]	; 0x120
 
- 		  {
 
- 		    sprintf(sSettings.sWebTempParams.ip,   "%s", ipaddr_ntoa(&ipaddr));
 
-  8037bae:	a801      	add	r0, sp, #4
 
-           DHCP_state = DHCP_ADDRESS_ASSIGNED;	
 
-           dhcp_stop(&xnetif);
 
-           
 
- 		  /* Сохранение полученных сетевый параметров */
 
- 		  /* Если настройки изменили, то сохраняем во временные настройки */
 
-           if (sSettings.sFlags.netsettingsChanged == true)
 
-  8037bb0:	b103      	cbz	r3, 8037bb4 <LwIP_DHCP_task+0x3c>
 
-  8037bb2:	e01b      	b.n	8037bec <LwIP_DHCP_task+0x74>
 
- 		    sprintf(sSettings.sWebTempParams.mask, "%s", ipaddr_ntoa(&netmask));
 
- 		    sprintf(sSettings.sWebTempParams.gate, "%s", ipaddr_ntoa(&gw));
 
- 		  }
 
- 		  else
 
- 		  {
 
- 		    sprintf(sSettings.sWebParams.ip,   "%s", ipaddr_ntoa(&ipaddr));
 
-  8037bb4:	f7fb f9d0 	bl	8032f58 <ipaddr_ntoa>
 
-  8037bb8:	493a      	ldr	r1, [pc, #232]	; (8037ca4 <LwIP_DHCP_task+0x12c>)
 
-  8037bba:	4602      	mov	r2, r0
 
-  8037bbc:	483a      	ldr	r0, [pc, #232]	; (8037ca8 <LwIP_DHCP_task+0x130>)
 
-  8037bbe:	f7ef fe29 	bl	8027814 <tfp_sprintf>
 
- 		    sprintf(sSettings.sWebParams.mask, "%s", ipaddr_ntoa(&netmask));
 
-  8037bc2:	a802      	add	r0, sp, #8
 
-  8037bc4:	f7fb f9c8 	bl	8032f58 <ipaddr_ntoa>
 
-  8037bc8:	4936      	ldr	r1, [pc, #216]	; (8037ca4 <LwIP_DHCP_task+0x12c>)
 
-  8037bca:	4602      	mov	r2, r0
 
-  8037bcc:	4837      	ldr	r0, [pc, #220]	; (8037cac <LwIP_DHCP_task+0x134>)
 
-  8037bce:	f7ef fe21 	bl	8027814 <tfp_sprintf>
 
- 		    sprintf(sSettings.sWebParams.gate, "%s", ipaddr_ntoa(&gw));
 
-  8037bd2:	a803      	add	r0, sp, #12
 
-  8037bd4:	f7fb f9c0 	bl	8032f58 <ipaddr_ntoa>
 
-  8037bd8:	4932      	ldr	r1, [pc, #200]	; (8037ca4 <LwIP_DHCP_task+0x12c>)
 
-  8037bda:	4602      	mov	r2, r0
 
-  8037bdc:	4834      	ldr	r0, [pc, #208]	; (8037cb0 <LwIP_DHCP_task+0x138>)
 
-  8037bde:	f7ef fe19 	bl	8027814 <tfp_sprintf>
 
- 			
 
- 			/* Обновляем временные настройки */
 
- 			sSettings.sWebTempParams.dhcpEnable = sSettings.sWebParams.dhcpEnable;
 
-  8037be2:	f895 3032 	ldrb.w	r3, [r5, #50]	; 0x32
 
- 			sprintf(sSettings.sWebTempParams.ip,   "%s", ipaddr_ntoa(&ipaddr));
 
-  8037be6:	a801      	add	r0, sp, #4
 
- 		    sprintf(sSettings.sWebParams.ip,   "%s", ipaddr_ntoa(&ipaddr));
 
- 		    sprintf(sSettings.sWebParams.mask, "%s", ipaddr_ntoa(&netmask));
 
- 		    sprintf(sSettings.sWebParams.gate, "%s", ipaddr_ntoa(&gw));
 
- 			
 
- 			/* Обновляем временные настройки */
 
- 			sSettings.sWebTempParams.dhcpEnable = sSettings.sWebParams.dhcpEnable;
 
-  8037be8:	f885 3063 	strb.w	r3, [r5, #99]	; 0x63
 
- 			sprintf(sSettings.sWebTempParams.ip,   "%s", ipaddr_ntoa(&ipaddr));
 
-  8037bec:	f7fb f9b4 	bl	8032f58 <ipaddr_ntoa>
 
-  8037bf0:	492c      	ldr	r1, [pc, #176]	; (8037ca4 <LwIP_DHCP_task+0x12c>)
 
-  8037bf2:	4602      	mov	r2, r0
 
-  8037bf4:	482f      	ldr	r0, [pc, #188]	; (8037cb4 <LwIP_DHCP_task+0x13c>)
 
-  8037bf6:	f7ef fe0d 	bl	8027814 <tfp_sprintf>
 
- 		    sprintf(sSettings.sWebTempParams.mask, "%s", ipaddr_ntoa(&netmask));
 
-  8037bfa:	a802      	add	r0, sp, #8
 
-  8037bfc:	f7fb f9ac 	bl	8032f58 <ipaddr_ntoa>
 
-  8037c00:	4928      	ldr	r1, [pc, #160]	; (8037ca4 <LwIP_DHCP_task+0x12c>)
 
-  8037c02:	4602      	mov	r2, r0
 
-  8037c04:	482c      	ldr	r0, [pc, #176]	; (8037cb8 <LwIP_DHCP_task+0x140>)
 
-  8037c06:	f7ef fe05 	bl	8027814 <tfp_sprintf>
 
- 		    sprintf(sSettings.sWebTempParams.gate, "%s", ipaddr_ntoa(&gw));
 
-  8037c0a:	a803      	add	r0, sp, #12
 
-  8037c0c:	f7fb f9a4 	bl	8032f58 <ipaddr_ntoa>
 
-  8037c10:	4924      	ldr	r1, [pc, #144]	; (8037ca4 <LwIP_DHCP_task+0x12c>)
 
-  8037c12:	4602      	mov	r2, r0
 
-  8037c14:	4829      	ldr	r0, [pc, #164]	; (8037cbc <LwIP_DHCP_task+0x144>)
 
-  8037c16:	f7ef fdfd 	bl	8027814 <tfp_sprintf>
 
- 		  
 
- 		  PRINT_USART("Gateway:   ");
 
- 		  PRINT_USART(ipaddr_ntoa(&gw));
 
- 		  PRINT_USART("\n\r");
 
-           
 
- 		  vTaskDelay(50);
 
-  8037c1a:	2032      	movs	r0, #50	; 0x32
 
-  8037c1c:	f7f3 f9d6 	bl	802afcc <vTaskDelay>
 
- 		  /* Установлен динамический IP, можно отправить трап о перезагрузке устройства */
 
- 		  SNMP_SendUserTrap(DEVICE_REBOOTED);
 
-  8037c20:	2004      	movs	r0, #4
 
-  8037c22:	f000 fa8b 	bl	803813c <SNMP_SendUserTrap>
 
- 		  
 
-           vTaskDelete(xHandleDHCP);
 
-  8037c26:	4b26      	ldr	r3, [pc, #152]	; (8037cc0 <LwIP_DHCP_task+0x148>)
 
-  8037c28:	6818      	ldr	r0, [r3, #0]
 
-  8037c2a:	f7f3 f80d 	bl	802ac48 <vTaskDelete>
 
-         netmask = xnetif.netmask;
 
-         gw = xnetif.gw;
 
-         	
 
-         if (ipaddr.addr != 0) 
 
-         {
 
-           DHCP_state = DHCP_ADDRESS_ASSIGNED;	
 
-  8037c2e:	2402      	movs	r4, #2
 
-  8037c30:	e02f      	b.n	8037c92 <LwIP_DHCP_task+0x11a>
 
-           vTaskDelete(xHandleDHCP);
 
-         }
 
-         else
 
-         {
 
-           /* DHCP timeout */
 
-           if (xnetif.dhcp->tries > MAX_DHCP_TRIES)
 
-  8037c32:	6a03      	ldr	r3, [r0, #32]
 
-  8037c34:	7b5b      	ldrb	r3, [r3, #13]
 
-  8037c36:	2b03      	cmp	r3, #3
 
-  8037c38:	d92b      	bls.n	8037c92 <LwIP_DHCP_task+0x11a>
 
-           {
 
-             DHCP_state = DHCP_TIMEOUT;
 
-             /* Stop DHCP */
 
-             dhcp_stop(&xnetif);
 
-  8037c3a:	f7f7 fdd3 	bl	802f7e4 <dhcp_stop>
 
- 			
 
- 			if (sSettings.sFlags.netsettingsChanged == true)
 
-  8037c3e:	f895 3120 	ldrb.w	r3, [r5, #288]	; 0x120
 
-  8037c42:	b14b      	cbz	r3, 8037c58 <LwIP_DHCP_task+0xe0>
 
- 		    {
 
- 			  ipaddr.addr = ipaddr_addr(sSettings.sWebTempParams.ip);
 
-  8037c44:	481b      	ldr	r0, [pc, #108]	; (8037cb4 <LwIP_DHCP_task+0x13c>)
 
-  8037c46:	f7fb f934 	bl	8032eb2 <ipaddr_addr>
 
-  8037c4a:	9001      	str	r0, [sp, #4]
 
- 	          netmask.addr = ipaddr_addr(sSettings.sWebTempParams.mask);
 
-  8037c4c:	481a      	ldr	r0, [pc, #104]	; (8037cb8 <LwIP_DHCP_task+0x140>)
 
-  8037c4e:	f7fb f930 	bl	8032eb2 <ipaddr_addr>
 
-  8037c52:	9002      	str	r0, [sp, #8]
 
- 	          gw.addr = ipaddr_addr(sSettings.sWebTempParams.gate);
 
-  8037c54:	4819      	ldr	r0, [pc, #100]	; (8037cbc <LwIP_DHCP_task+0x144>)
 
-  8037c56:	e008      	b.n	8037c6a <LwIP_DHCP_task+0xf2>
 
- 			}  
 
- 			else
 
- 			{  
 
- 			  ipaddr.addr = ipaddr_addr(sSettings.sWebParams.ip);
 
-  8037c58:	4813      	ldr	r0, [pc, #76]	; (8037ca8 <LwIP_DHCP_task+0x130>)
 
-  8037c5a:	f7fb f92a 	bl	8032eb2 <ipaddr_addr>
 
-  8037c5e:	9001      	str	r0, [sp, #4]
 
- 	          netmask.addr = ipaddr_addr(sSettings.sWebParams.mask);
 
-  8037c60:	4812      	ldr	r0, [pc, #72]	; (8037cac <LwIP_DHCP_task+0x134>)
 
-  8037c62:	f7fb f926 	bl	8032eb2 <ipaddr_addr>
 
-  8037c66:	9002      	str	r0, [sp, #8]
 
- 	          gw.addr = ipaddr_addr(sSettings.sWebParams.gate);
 
-  8037c68:	4811      	ldr	r0, [pc, #68]	; (8037cb0 <LwIP_DHCP_task+0x138>)
 
-  8037c6a:	f7fb f922 	bl	8032eb2 <ipaddr_addr>
 
- 			}
 
- 			  
 
-             /* Static address used */
 
-             netif_set_addr(&xnetif, &ipaddr , &netmask, &gw);
 
-  8037c6e:	a901      	add	r1, sp, #4
 
-  8037c70:	aa02      	add	r2, sp, #8
 
-  8037c72:	ab03      	add	r3, sp, #12
 
- 			}  
 
- 			else
 
- 			{  
 
- 			  ipaddr.addr = ipaddr_addr(sSettings.sWebParams.ip);
 
- 	          netmask.addr = ipaddr_addr(sSettings.sWebParams.mask);
 
- 	          gw.addr = ipaddr_addr(sSettings.sWebParams.gate);
 
-  8037c74:	9003      	str	r0, [sp, #12]
 
- 			}
 
- 			  
 
-             /* Static address used */
 
-             netif_set_addr(&xnetif, &ipaddr , &netmask, &gw);
 
-  8037c76:	480a      	ldr	r0, [pc, #40]	; (8037ca0 <LwIP_DHCP_task+0x128>)
 
-  8037c78:	f7f8 f824 	bl	802fcc4 <netif_set_addr>
 
-             PRINT_USART("DHCP timeout\n\r");
 
-             PRINT_USART("\n\rStatic IP address\n\r");
 
- 			PRINT_USART(ipaddr_ntoa(&ipaddr));
 
- 		    PRINT_USART("\n\r");
 
- 			vTaskDelay(50);
 
-  8037c7c:	2032      	movs	r0, #50	; 0x32
 
-  8037c7e:	f7f3 f9a5 	bl	802afcc <vTaskDelay>
 
- 			/* Установлен статический IP, можно отправить трап о перезагрузке устройства */
 
- 		    SNMP_SendUserTrap(DEVICE_REBOOTED);
 
-  8037c82:	2004      	movs	r0, #4
 
-  8037c84:	f000 fa5a 	bl	803813c <SNMP_SendUserTrap>
 
- 			
 
- 			vTaskDelete(xHandleDHCP);
 
-  8037c88:	4b0d      	ldr	r3, [pc, #52]	; (8037cc0 <LwIP_DHCP_task+0x148>)
 
-  8037c8a:	6818      	ldr	r0, [r3, #0]
 
-  8037c8c:	f7f2 ffdc 	bl	802ac48 <vTaskDelete>
 
-         else
 
-         {
 
-           /* DHCP timeout */
 
-           if (xnetif.dhcp->tries > MAX_DHCP_TRIES)
 
-           {
 
-             DHCP_state = DHCP_TIMEOUT;
 
-  8037c90:	2403      	movs	r4, #3
 
-       break;
 
-       default: break;
 
-     }
 
-     vTaskDelay(250);
 
-  8037c92:	20fa      	movs	r0, #250	; 0xfa
 
-  8037c94:	f7f3 f99a 	bl	802afcc <vTaskDelay>
 
-   }   
 
-  8037c98:	e772      	b.n	8037b80 <LwIP_DHCP_task+0x8>
 
-  8037c9a:	bf00      	nop
 
-  8037c9c:	2000cfc4 	.word	0x2000cfc4
 
-  8037ca0:	2000f86c 	.word	0x2000f86c
 
-  8037ca4:	080399bb 	.word	0x080399bb
 
-  8037ca8:	2000cfc6 	.word	0x2000cfc6
 
-  8037cac:	2000cfe6 	.word	0x2000cfe6
 
-  8037cb0:	2000cfd6 	.word	0x2000cfd6
 
-  8037cb4:	2000cff7 	.word	0x2000cff7
 
-  8037cb8:	2000d017 	.word	0x2000d017
 
-  8037cbc:	2000d007 	.word	0x2000d007
 
-  8037cc0:	2000c7e0 	.word	0x2000c7e0
 
- 08037cc4 <LwIP_Init>:
 
- TaskHandle_t xHandleWebReinit = NULL;
 
- bool dhcp = false;	
 
- void LwIP_Init(void)
 
- {
 
-  8037cc4:	b530      	push	{r4, r5, lr}
 
-   struct ip_addr ipaddr;
 
-   struct ip_addr netmask;
 
-   struct ip_addr gw;
 
-   char str[20];
 
-   tcpip_init( NULL, NULL );	
 
-  8037cc6:	2000      	movs	r0, #0
 
-   /* Если настройки изменили, то используем временные параметры */
 
-   if (sSettings.sFlags.netsettingsChanged == true)
 
-  8037cc8:	4c50      	ldr	r4, [pc, #320]	; (8037e0c <LwIP_Init+0x148>)
 
- TaskHandle_t xHandleWebReinit = NULL;
 
- bool dhcp = false;	
 
- void LwIP_Init(void)
 
- {
 
-  8037cca:	b08d      	sub	sp, #52	; 0x34
 
-   struct ip_addr ipaddr;
 
-   struct ip_addr netmask;
 
-   struct ip_addr gw;
 
-   char str[20];
 
-   tcpip_init( NULL, NULL );	
 
-  8037ccc:	4601      	mov	r1, r0
 
-  8037cce:	f7f6 ff3d 	bl	802eb4c <tcpip_init>
 
-   /* Если настройки изменили, то используем временные параметры */
 
-   if (sSettings.sFlags.netsettingsChanged == true)
 
-  8037cd2:	f894 3120 	ldrb.w	r3, [r4, #288]	; 0x120
 
-  8037cd6:	2b00      	cmp	r3, #0
 
-  8037cd8:	d032      	beq.n	8037d40 <LwIP_Init+0x7c>
 
-   {
 
-     if (sSettings.sWebTempParams.dhcpEnable)
 
-  8037cda:	f894 5063 	ldrb.w	r5, [r4, #99]	; 0x63
 
-  8037cde:	b12d      	cbz	r5, 8037cec <LwIP_Init+0x28>
 
-     {	
 
-       ipaddr.addr = 0;
 
-  8037ce0:	2300      	movs	r3, #0
 
-  8037ce2:	9304      	str	r3, [sp, #16]
 
-       netmask.addr = 0;
 
-  8037ce4:	9305      	str	r3, [sp, #20]
 
-       gw.addr = 0;
 
-  8037ce6:	9306      	str	r3, [sp, #24]
 
- 	
 
- 	  netif_add(&xnetif, &ipaddr, &netmask, &gw, NULL, ðernetif_init, &tcpip_input);
 
-  8037ce8:	9300      	str	r3, [sp, #0]
 
-  8037cea:	e015      	b.n	8037d18 <LwIP_Init+0x54>
 
-       netif_set_default(&xnetif);
 
-       netif_set_up(&xnetif); 
 
-     }	
 
-     else
 
-     {	
 
- 	  ipaddr.addr = ipaddr_addr(sSettings.sWebTempParams.ip);
 
-  8037cec:	f104 0033 	add.w	r0, r4, #51	; 0x33
 
-  8037cf0:	f7fb f8df 	bl	8032eb2 <ipaddr_addr>
 
-  8037cf4:	9004      	str	r0, [sp, #16]
 
- 	  netmask.addr = ipaddr_addr(sSettings.sWebTempParams.mask);
 
-  8037cf6:	f104 0053 	add.w	r0, r4, #83	; 0x53
 
-  8037cfa:	f7fb f8da 	bl	8032eb2 <ipaddr_addr>
 
-  8037cfe:	9005      	str	r0, [sp, #20]
 
- 	  gw.addr = ipaddr_addr(sSettings.sWebTempParams.gate);
 
-  8037d00:	f104 0043 	add.w	r0, r4, #67	; 0x43
 
-  8037d04:	f7fb f8d5 	bl	8032eb2 <ipaddr_addr>
 
-   
 
-       sprintf(str, " %s\n\r", sSettings.sWebTempParams.ip);
 
-  8037d08:	4941      	ldr	r1, [pc, #260]	; (8037e10 <LwIP_Init+0x14c>)
 
-     }	
 
-     else
 
-     {	
 
- 	  ipaddr.addr = ipaddr_addr(sSettings.sWebTempParams.ip);
 
- 	  netmask.addr = ipaddr_addr(sSettings.sWebTempParams.mask);
 
- 	  gw.addr = ipaddr_addr(sSettings.sWebTempParams.gate);
 
-  8037d0a:	9006      	str	r0, [sp, #24]
 
-   
 
-       sprintf(str, " %s\n\r", sSettings.sWebTempParams.ip);
 
-  8037d0c:	f104 0233 	add.w	r2, r4, #51	; 0x33
 
-  8037d10:	a807      	add	r0, sp, #28
 
-  8037d12:	f7ef fd7f 	bl	8027814 <tfp_sprintf>
 
-       PRINT_USART("\n\rStatic IP address   \n\r");
 
-       PRINT_USART(str);
 
-       netif_add(&xnetif, &ipaddr, &netmask, &gw, NULL, ðernetif_init, &tcpip_input);
 
-  8037d16:	9500      	str	r5, [sp, #0]
 
-  8037d18:	4b3e      	ldr	r3, [pc, #248]	; (8037e14 <LwIP_Init+0x150>)
 
-  8037d1a:	483f      	ldr	r0, [pc, #252]	; (8037e18 <LwIP_Init+0x154>)
 
-  8037d1c:	9301      	str	r3, [sp, #4]
 
-  8037d1e:	4b3f      	ldr	r3, [pc, #252]	; (8037e1c <LwIP_Init+0x158>)
 
-  8037d20:	a904      	add	r1, sp, #16
 
-  8037d22:	aa05      	add	r2, sp, #20
 
-  8037d24:	9302      	str	r3, [sp, #8]
 
-  8037d26:	ab06      	add	r3, sp, #24
 
-  8037d28:	f7f7 ffda 	bl	802fce0 <netif_add>
 
-       netif_set_default(&xnetif);
 
-  8037d2c:	483a      	ldr	r0, [pc, #232]	; (8037e18 <LwIP_Init+0x154>)
 
-  8037d2e:	f7f7 ffff 	bl	802fd30 <netif_set_default>
 
-       netif_set_up(&xnetif); 
 
-  8037d32:	4839      	ldr	r0, [pc, #228]	; (8037e18 <LwIP_Init+0x154>)
 
-  8037d34:	f7f8 f80c 	bl	802fd50 <netif_set_up>
 
-     }
 
-   
 
- 	if (sSettings.sWebTempParams.dhcpEnable) {
 
-  8037d38:	4b34      	ldr	r3, [pc, #208]	; (8037e0c <LwIP_Init+0x148>)
 
-  8037d3a:	f893 3063 	ldrb.w	r3, [r3, #99]	; 0x63
 
-  8037d3e:	e043      	b.n	8037dc8 <LwIP_Init+0x104>
 
- 	}  
 
-   }
 
-   /* Настройки не менялись, используем обычне настройки из флеш памяти */
 
-   else
 
-   {
 
-     if (sSettings.sWebParams.dhcpEnable)
 
-  8037d40:	f894 5032 	ldrb.w	r5, [r4, #50]	; 0x32
 
-  8037d44:	b125      	cbz	r5, 8037d50 <LwIP_Init+0x8c>
 
-     {	
 
-       ipaddr.addr = 0;
 
-  8037d46:	9304      	str	r3, [sp, #16]
 
-       netmask.addr = 0;
 
-  8037d48:	9305      	str	r3, [sp, #20]
 
-       gw.addr = 0;
 
-  8037d4a:	9306      	str	r3, [sp, #24]
 
- 	
 
- 	  netif_add(&xnetif, &ipaddr, &netmask, &gw, NULL, ðernetif_init, &tcpip_input);
 
-  8037d4c:	9300      	str	r3, [sp, #0]
 
-  8037d4e:	e028      	b.n	8037da2 <LwIP_Init+0xde>
 
-       netif_set_default(&xnetif);
 
-       netif_set_up(&xnetif); 
 
-     }	
 
-     else
 
-     {	
 
- 	  ipaddr.addr = ipaddr_addr(sSettings.sWebParams.ip);
 
-  8037d50:	1ca0      	adds	r0, r4, #2
 
-  8037d52:	f7fb f8ae 	bl	8032eb2 <ipaddr_addr>
 
-  8037d56:	9004      	str	r0, [sp, #16]
 
- 	  netmask.addr = ipaddr_addr(sSettings.sWebParams.mask);
 
-  8037d58:	f104 0022 	add.w	r0, r4, #34	; 0x22
 
-  8037d5c:	f7fb f8a9 	bl	8032eb2 <ipaddr_addr>
 
-  8037d60:	9005      	str	r0, [sp, #20]
 
- 	  gw.addr = ipaddr_addr(sSettings.sWebParams.gate);
 
-  8037d62:	f104 0012 	add.w	r0, r4, #18
 
-  8037d66:	f7fb f8a4 	bl	8032eb2 <ipaddr_addr>
 
-   	  
 
- 	  /* Обновляем временные настройки */
 
- 	  sSettings.sWebTempParams.dhcpEnable = sSettings.sWebParams.dhcpEnable;
 
-  8037d6a:	f894 3032 	ldrb.w	r3, [r4, #50]	; 0x32
 
-     }	
 
-     else
 
-     {	
 
- 	  ipaddr.addr = ipaddr_addr(sSettings.sWebParams.ip);
 
- 	  netmask.addr = ipaddr_addr(sSettings.sWebParams.mask);
 
- 	  gw.addr = ipaddr_addr(sSettings.sWebParams.gate);
 
-  8037d6e:	9006      	str	r0, [sp, #24]
 
-   	  
 
- 	  /* Обновляем временные настройки */
 
- 	  sSettings.sWebTempParams.dhcpEnable = sSettings.sWebParams.dhcpEnable;
 
- 	  strcpy(sSettings.sWebTempParams.ip, sSettings.sWebParams.ip);
 
-  8037d70:	1ca1      	adds	r1, r4, #2
 
-  8037d72:	f104 0033 	add.w	r0, r4, #51	; 0x33
 
- 	  ipaddr.addr = ipaddr_addr(sSettings.sWebParams.ip);
 
- 	  netmask.addr = ipaddr_addr(sSettings.sWebParams.mask);
 
- 	  gw.addr = ipaddr_addr(sSettings.sWebParams.gate);
 
-   	  
 
- 	  /* Обновляем временные настройки */
 
- 	  sSettings.sWebTempParams.dhcpEnable = sSettings.sWebParams.dhcpEnable;
 
-  8037d76:	f884 3063 	strb.w	r3, [r4, #99]	; 0x63
 
- 	  strcpy(sSettings.sWebTempParams.ip, sSettings.sWebParams.ip);
 
-  8037d7a:	f7ea f83b 	bl	8021df4 <strcpy>
 
- 	  strcpy(sSettings.sWebTempParams.mask, sSettings.sWebParams.mask);
 
-  8037d7e:	f104 0122 	add.w	r1, r4, #34	; 0x22
 
-  8037d82:	f104 0053 	add.w	r0, r4, #83	; 0x53
 
-  8037d86:	f7ea f835 	bl	8021df4 <strcpy>
 
- 	  strcpy(sSettings.sWebTempParams.gate, sSettings.sWebParams.gate);
 
-  8037d8a:	f104 0112 	add.w	r1, r4, #18
 
-  8037d8e:	f104 0043 	add.w	r0, r4, #67	; 0x43
 
-  8037d92:	f7ea f82f 	bl	8021df4 <strcpy>
 
- 	  
 
-       sprintf(str, " %s\n\r", sSettings.sWebParams.ip);
 
-  8037d96:	a807      	add	r0, sp, #28
 
-  8037d98:	491d      	ldr	r1, [pc, #116]	; (8037e10 <LwIP_Init+0x14c>)
 
-  8037d9a:	1ca2      	adds	r2, r4, #2
 
-  8037d9c:	f7ef fd3a 	bl	8027814 <tfp_sprintf>
 
-       PRINT_USART("\n\rStatic IP address   \n\r");
 
-       PRINT_USART(str);
 
-       netif_add(&xnetif, &ipaddr, &netmask, &gw, NULL, ðernetif_init, &tcpip_input);
 
-  8037da0:	9500      	str	r5, [sp, #0]
 
-  8037da2:	4b1c      	ldr	r3, [pc, #112]	; (8037e14 <LwIP_Init+0x150>)
 
-  8037da4:	481c      	ldr	r0, [pc, #112]	; (8037e18 <LwIP_Init+0x154>)
 
-  8037da6:	9301      	str	r3, [sp, #4]
 
-  8037da8:	4b1c      	ldr	r3, [pc, #112]	; (8037e1c <LwIP_Init+0x158>)
 
-  8037daa:	a904      	add	r1, sp, #16
 
-  8037dac:	aa05      	add	r2, sp, #20
 
-  8037dae:	9302      	str	r3, [sp, #8]
 
-  8037db0:	ab06      	add	r3, sp, #24
 
-  8037db2:	f7f7 ff95 	bl	802fce0 <netif_add>
 
-       netif_set_default(&xnetif);
 
-  8037db6:	4818      	ldr	r0, [pc, #96]	; (8037e18 <LwIP_Init+0x154>)
 
-  8037db8:	f7f7 ffba 	bl	802fd30 <netif_set_default>
 
-       netif_set_up(&xnetif); 
 
-  8037dbc:	4816      	ldr	r0, [pc, #88]	; (8037e18 <LwIP_Init+0x154>)
 
-  8037dbe:	f7f7 ffc7 	bl	802fd50 <netif_set_up>
 
-     }
 
-   
 
- 	if (sSettings.sWebParams.dhcpEnable) {
 
-  8037dc2:	4b12      	ldr	r3, [pc, #72]	; (8037e0c <LwIP_Init+0x148>)
 
-  8037dc4:	f893 3032 	ldrb.w	r3, [r3, #50]	; 0x32
 
-  8037dc8:	b17b      	cbz	r3, 8037dea <LwIP_Init+0x126>
 
-       xTaskCreate(LwIP_DHCP_task, "DHCPClient", configMINIMAL_STACK_SIZE * 2, NULL,
 
-  8037dca:	2302      	movs	r3, #2
 
-  8037dcc:	9300      	str	r3, [sp, #0]
 
-  8037dce:	4b14      	ldr	r3, [pc, #80]	; (8037e20 <LwIP_Init+0x15c>)
 
-  8037dd0:	4814      	ldr	r0, [pc, #80]	; (8037e24 <LwIP_Init+0x160>)
 
-  8037dd2:	9301      	str	r3, [sp, #4]
 
-  8037dd4:	2300      	movs	r3, #0
 
-  8037dd6:	9302      	str	r3, [sp, #8]
 
-  8037dd8:	9303      	str	r3, [sp, #12]
 
-  8037dda:	f44f 7280 	mov.w	r2, #256	; 0x100
 
-  8037dde:	4912      	ldr	r1, [pc, #72]	; (8037e28 <LwIP_Init+0x164>)
 
-  8037de0:	f7f2 fe5a 	bl	802aa98 <xTaskGenericCreate>
 
-                   tskIDLE_PRIORITY + 2, &xHandleDHCP);
 
- 	  dhcp = true;
 
-  8037de4:	4b11      	ldr	r3, [pc, #68]	; (8037e2c <LwIP_Init+0x168>)
 
-  8037de6:	2201      	movs	r2, #1
 
-  8037de8:	701a      	strb	r2, [r3, #0]
 
- 	}  
 
-   }
 
-   
 
-   /* Если настройки изменились, запускаем задачу по отсчету времени реакции пользователя*/
 
-   if (sSettings.sFlags.netsettingsChanged == true)
 
-  8037dea:	4b08      	ldr	r3, [pc, #32]	; (8037e0c <LwIP_Init+0x148>)
 
-  8037dec:	f893 3120 	ldrb.w	r3, [r3, #288]	; 0x120
 
-  8037df0:	b153      	cbz	r3, 8037e08 <LwIP_Init+0x144>
 
-     xTaskCreate(vTaskWebReinit, "webReinit", configMINIMAL_STACK_SIZE, NULL,
 
-  8037df2:	4a0f      	ldr	r2, [pc, #60]	; (8037e30 <LwIP_Init+0x16c>)
 
-  8037df4:	480f      	ldr	r0, [pc, #60]	; (8037e34 <LwIP_Init+0x170>)
 
-  8037df6:	9201      	str	r2, [sp, #4]
 
-  8037df8:	2300      	movs	r3, #0
 
-  8037dfa:	9300      	str	r3, [sp, #0]
 
-  8037dfc:	9302      	str	r3, [sp, #8]
 
-  8037dfe:	9303      	str	r3, [sp, #12]
 
-  8037e00:	490d      	ldr	r1, [pc, #52]	; (8037e38 <LwIP_Init+0x174>)
 
-  8037e02:	2280      	movs	r2, #128	; 0x80
 
-  8037e04:	f7f2 fe48 	bl	802aa98 <xTaskGenericCreate>
 
-               tskIDLE_PRIORITY, &xHandleWebReinit);
 
- }
 
-  8037e08:	b00d      	add	sp, #52	; 0x34
 
-  8037e0a:	bd30      	pop	{r4, r5, pc}
 
-  8037e0c:	2000cfc4 	.word	0x2000cfc4
 
-  8037e10:	0804594a 	.word	0x0804594a
 
-  8037e14:	08037769 	.word	0x08037769
 
-  8037e18:	2000f86c 	.word	0x2000f86c
 
-  8037e1c:	0802ead9 	.word	0x0802ead9
 
-  8037e20:	2000c7e0 	.word	0x2000c7e0
 
-  8037e24:	08037b79 	.word	0x08037b79
 
-  8037e28:	08045950 	.word	0x08045950
 
-  8037e2c:	2000c7d8 	.word	0x2000c7d8
 
-  8037e30:	2000c7dc 	.word	0x2000c7dc
 
-  8037e34:	08037aed 	.word	0x08037aed
 
-  8037e38:	0804595b 	.word	0x0804595b
 
- 08037e3c <SaveWEBparam>:
 
- 	vTaskDelay(1000);
 
-   }	
 
- }	
 
- void SaveWEBparam(void)
 
- {
 
-  8037e3c:	b510      	push	{r4, lr}
 
-   sSettings.sWebParams.dhcpEnable = sSettings.sWebTempParams.dhcpEnable;
 
-  8037e3e:	4c0c      	ldr	r4, [pc, #48]	; (8037e70 <SaveWEBparam+0x34>)
 
-  8037e40:	f894 3063 	ldrb.w	r3, [r4, #99]	; 0x63
 
-   strcpy(sSettings.sWebParams.ip,   sSettings.sWebTempParams.ip);
 
-  8037e44:	f104 0133 	add.w	r1, r4, #51	; 0x33
 
-  8037e48:	1ca0      	adds	r0, r4, #2
 
-   }	
 
- }	
 
- void SaveWEBparam(void)
 
- {
 
-   sSettings.sWebParams.dhcpEnable = sSettings.sWebTempParams.dhcpEnable;
 
-  8037e4a:	f884 3032 	strb.w	r3, [r4, #50]	; 0x32
 
-   strcpy(sSettings.sWebParams.ip,   sSettings.sWebTempParams.ip);
 
-  8037e4e:	f7e9 ffd1 	bl	8021df4 <strcpy>
 
-   strcpy(sSettings.sWebParams.gate, sSettings.sWebTempParams.gate);
 
-  8037e52:	f104 0143 	add.w	r1, r4, #67	; 0x43
 
-  8037e56:	f104 0012 	add.w	r0, r4, #18
 
-  8037e5a:	f7e9 ffcb 	bl	8021df4 <strcpy>
 
-   strcpy(sSettings.sWebParams.mask, sSettings.sWebTempParams.mask);
 
-  8037e5e:	f104 0022 	add.w	r0, r4, #34	; 0x22
 
-  8037e62:	f104 0153 	add.w	r1, r4, #83	; 0x53
 
- }
 
-  8037e66:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
- void SaveWEBparam(void)
 
- {
 
-   sSettings.sWebParams.dhcpEnable = sSettings.sWebTempParams.dhcpEnable;
 
-   strcpy(sSettings.sWebParams.ip,   sSettings.sWebTempParams.ip);
 
-   strcpy(sSettings.sWebParams.gate, sSettings.sWebTempParams.gate);
 
-   strcpy(sSettings.sWebParams.mask, sSettings.sWebTempParams.mask);
 
-  8037e6a:	f7e9 bfc3 	b.w	8021df4 <strcpy>
 
-  8037e6e:	bf00      	nop
 
-  8037e70:	2000cfc4 	.word	0x2000cfc4
 
- 08037e74 <GetStateWebReinit>:
 
- /**
 
-   * @brief  Возвращает true если сетевые параметры изменились
 
-   */
 
- bool GetStateWebReinit(void)
 
- {
 
-  8037e74:	b510      	push	{r4, lr}
 
-   /* Статус dhcp изменился? */
 
-   if (sSettings.sWebParams.dhcpEnable != sSettings.sWebTempParams.dhcpEnable)
 
-  8037e76:	4c12      	ldr	r4, [pc, #72]	; (8037ec0 <GetStateWebReinit+0x4c>)
 
-  8037e78:	f894 2032 	ldrb.w	r2, [r4, #50]	; 0x32
 
-  8037e7c:	f894 3063 	ldrb.w	r3, [r4, #99]	; 0x63
 
-  8037e80:	429a      	cmp	r2, r3
 
-  8037e82:	d004      	beq.n	8037e8e <GetStateWebReinit+0x1a>
 
-   {
 
- 	/* Включили dhcp */
 
-     if (sSettings.sWebTempParams.dhcpEnable == 1)
 
- 	{
 
- 	  /* Устанавилваем флаг */
 
- 	  SetWebReinitFlag(true);
 
-  8037e84:	2001      	movs	r0, #1
 
-  8037e86:	f7f0 f953 	bl	8028130 <SetWebReinitFlag>
 
- 	  return true;
 
-  8037e8a:	2001      	movs	r0, #1
 
-  8037e8c:	bd10      	pop	{r4, pc}
 
- 	  return true;
 
- 	}  
 
-   }
 
-   
 
-   /* Изменился IP? */
 
-   if (strstr(sSettings.sWebParams.ip, sSettings.sWebTempParams.ip) == 0)
 
-  8037e8e:	1ca0      	adds	r0, r4, #2
 
-  8037e90:	f104 0133 	add.w	r1, r4, #51	; 0x33
 
-  8037e94:	f7ea fa8c 	bl	80223b0 <strstr>
 
-  8037e98:	2800      	cmp	r0, #0
 
-  8037e9a:	d0f3      	beq.n	8037e84 <GetStateWebReinit+0x10>
 
- 	SetWebReinitFlag(true);
 
- 	return true;
 
-   }
 
-  
 
-   /* Изменился шлюз? */
 
-   if (strstr(sSettings.sWebParams.gate, sSettings.sWebTempParams.gate) == 0)
 
-  8037e9c:	f104 0012 	add.w	r0, r4, #18
 
-  8037ea0:	f104 0143 	add.w	r1, r4, #67	; 0x43
 
-  8037ea4:	f7ea fa84 	bl	80223b0 <strstr>
 
-  8037ea8:	2800      	cmp	r0, #0
 
-  8037eaa:	d0eb      	beq.n	8037e84 <GetStateWebReinit+0x10>
 
- 	SetWebReinitFlag(true);
 
- 	return true;
 
-   }
 
-   
 
-   /* Изменилась маска? */
 
-   if (strstr(sSettings.sWebParams.mask, sSettings.sWebTempParams.mask) == 0)
 
-  8037eac:	f104 0022 	add.w	r0, r4, #34	; 0x22
 
-  8037eb0:	f104 0153 	add.w	r1, r4, #83	; 0x53
 
-  8037eb4:	f7ea fa7c 	bl	80223b0 <strstr>
 
-  8037eb8:	2800      	cmp	r0, #0
 
-  8037eba:	d0e3      	beq.n	8037e84 <GetStateWebReinit+0x10>
 
-     /* Устанавилваем флаг */
 
- 	SetWebReinitFlag(true);
 
- 	return true;
 
-   }
 
-   
 
-   return false;
 
-  8037ebc:	2000      	movs	r0, #0
 
- }
 
-  8037ebe:	bd10      	pop	{r4, pc}
 
-  8037ec0:	2000cfc4 	.word	0x2000cfc4
 
- 08037ec4 <signals_set_value>:
 
-  \param  len - длина переменной в байтах 
 
-  \param  value - указатель на значение переменной
 
-  \return нет
 
- ------------------------------------------------------------------------------*/
 
- static void signals_set_value (struct obj_def *od, u16_t len, void *value)
 
- {
 
-  8037ec4:	b530      	push	{r4, r5, lr}
 
-  8037ec6:	4605      	mov	r5, r0
 
-  8037ec8:	b087      	sub	sp, #28
 
-  8037eca:	4614      	mov	r4, r2
 
-   u8_t id;
 
-   uint32_t val;
 
-   char *val_string;
 
-   char str[20];
 
-   memset(str, 0, 20);
 
-  8037ecc:	a801      	add	r0, sp, #4
 
-  8037ece:	2100      	movs	r1, #0
 
-  8037ed0:	2214      	movs	r2, #20
 
-  8037ed2:	f7e9 fe15 	bl	8021b00 <memset>
 
-   
 
-   id = od->id_inst_ptr[0];
 
-  8037ed6:	68ab      	ldr	r3, [r5, #8]
 
-   
 
-   switch (id)
 
-  8037ed8:	781b      	ldrb	r3, [r3, #0]
 
-  8037eda:	3b02      	subs	r3, #2
 
-  8037edc:	2b04      	cmp	r3, #4
 
-  8037ede:	d83f      	bhi.n	8037f60 <signals_set_value+0x9c>
 
-  8037ee0:	e8df f003 	tbb	[pc, r3]
 
-  8037ee4:	103e0903 	.word	0x103e0903
 
-  8037ee8:	26          	.byte	0x26
 
-  8037ee9:	00          	.byte	0x00
 
-   {
 
-     case 2: /* RestoreSignal */
 
-       val = *((s32_t*)value);
 
-       if (val == 1) {
 
-  8037eea:	6823      	ldr	r3, [r4, #0]
 
-  8037eec:	2b01      	cmp	r3, #1
 
-  8037eee:	d137      	bne.n	8037f60 <signals_set_value+0x9c>
 
-         HTTP_ResetSettings();
 
-  8037ef0:	f7f5 ff50 	bl	802dd94 <HTTP_ResetSettings>
 
-  8037ef4:	e034      	b.n	8037f60 <signals_set_value+0x9c>
 
-       }
 
-     break;
 
-     case 3: /* RebootSignal */
 
-       val = *((s32_t*)value);
 
-       if (val == 1)
 
-  8037ef6:	6823      	ldr	r3, [r4, #0]
 
-  8037ef8:	2b01      	cmp	r3, #1
 
-  8037efa:	d131      	bne.n	8037f60 <signals_set_value+0x9c>
 
-         HTTP_StartResetTask(false);
 
-  8037efc:	2000      	movs	r0, #0
 
-  8037efe:	f7f5 ff93 	bl	802de28 <HTTP_StartResetTask>
 
-  8037f02:	e02d      	b.n	8037f60 <signals_set_value+0x9c>
 
-     break;
 
- 	case 5: /* DO1 */
 
- 	  if(sSettings.sInOuts.ro_type_source[0] == SNMP_SET){
 
-  8037f04:	4b17      	ldr	r3, [pc, #92]	; (8037f64 <signals_set_value+0xa0>)
 
-  8037f06:	f893 3374 	ldrb.w	r3, [r3, #884]	; 0x374
 
-  8037f0a:	2b03      	cmp	r3, #3
 
-  8037f0c:	d128      	bne.n	8037f60 <signals_set_value+0x9c>
 
- 		  val_string = (char*)value;
 
- 		  SetROStr(val_string, 0);
 
-  8037f0e:	2100      	movs	r1, #0
 
-  8037f10:	4620      	mov	r0, r4
 
-  8037f12:	f7f0 fb03 	bl	802851c <SetROStr>
 
- 		  if(val_string[0] == 0x31)
 
-  8037f16:	7823      	ldrb	r3, [r4, #0]
 
-  8037f18:	2b31      	cmp	r3, #49	; 0x31
 
- 			  strcat(str, "Замкнуто");
 
-  8037f1a:	bf0c      	ite	eq
 
-  8037f1c:	4912      	ldreq	r1, [pc, #72]	; (8037f68 <signals_set_value+0xa4>)
 
- 		  else
 
- 			  strcat(str, "Разомкнуто");
 
-  8037f1e:	4913      	ldrne	r1, [pc, #76]	; (8037f6c <signals_set_value+0xa8>)
 
- 	case 5: /* DO1 */
 
- 	  if(sSettings.sInOuts.ro_type_source[0] == SNMP_SET){
 
- 		  val_string = (char*)value;
 
- 		  SetROStr(val_string, 0);
 
- 		  if(val_string[0] == 0x31)
 
- 			  strcat(str, "Замкнуто");
 
-  8037f20:	a801      	add	r0, sp, #4
 
- 		  else
 
- 			  strcat(str, "Разомкнуто");
 
-  8037f22:	f7e9 fe53 	bl	8021bcc <strcat>
 
- 		  SNMP_SendUserTrap(DO0_TOGGLED);
 
-  8037f26:	2007      	movs	r0, #7
 
-  8037f28:	f000 f908 	bl	803813c <SNMP_SendUserTrap>
 
- 		  log_event_data(LOG_DO0_STATE, str);
 
-  8037f2c:	2009      	movs	r0, #9
 
-  8037f2e:	e014      	b.n	8037f5a <signals_set_value+0x96>
 
- 	  }
 
- 	  break;
 
- 	case 6: /* DO2 */
 
- 	  if(sSettings.sInOuts.ro_type_source[1] == SNMP_SET){
 
-  8037f30:	4b0c      	ldr	r3, [pc, #48]	; (8037f64 <signals_set_value+0xa0>)
 
-  8037f32:	f893 3375 	ldrb.w	r3, [r3, #885]	; 0x375
 
-  8037f36:	2b03      	cmp	r3, #3
 
-  8037f38:	d112      	bne.n	8037f60 <signals_set_value+0x9c>
 
- 		  val_string = (char*)value;
 
- 		  SetROStr(val_string, 1);
 
-  8037f3a:	2101      	movs	r1, #1
 
-  8037f3c:	4620      	mov	r0, r4
 
-  8037f3e:	f7f0 faed 	bl	802851c <SetROStr>
 
- 		  if(val_string[0] == 0x31)
 
-  8037f42:	7823      	ldrb	r3, [r4, #0]
 
-  8037f44:	2b31      	cmp	r3, #49	; 0x31
 
- 			  strcat(str, "Замкнуто");
 
-  8037f46:	bf0c      	ite	eq
 
-  8037f48:	4907      	ldreq	r1, [pc, #28]	; (8037f68 <signals_set_value+0xa4>)
 
- 		  else
 
- 			  strcat(str, "Разомкнуто");
 
-  8037f4a:	4908      	ldrne	r1, [pc, #32]	; (8037f6c <signals_set_value+0xa8>)
 
- 	case 6: /* DO2 */
 
- 	  if(sSettings.sInOuts.ro_type_source[1] == SNMP_SET){
 
- 		  val_string = (char*)value;
 
- 		  SetROStr(val_string, 1);
 
- 		  if(val_string[0] == 0x31)
 
- 			  strcat(str, "Замкнуто");
 
-  8037f4c:	a801      	add	r0, sp, #4
 
- 		  else
 
- 			  strcat(str, "Разомкнуто");
 
-  8037f4e:	f7e9 fe3d 	bl	8021bcc <strcat>
 
- 		  SNMP_SendUserTrap(DO1_TOGGLED);
 
-  8037f52:	2008      	movs	r0, #8
 
-  8037f54:	f000 f8f2 	bl	803813c <SNMP_SendUserTrap>
 
- 		  log_event_data(LOG_DO1_STATE, str);
 
-  8037f58:	200a      	movs	r0, #10
 
-  8037f5a:	a901      	add	r1, sp, #4
 
-  8037f5c:	f7f1 fd7e 	bl	8029a5c <log_event_data>
 
- 	  break;
 
-     default :
 
-     break;
 
-   };
 
-   
 
- }
 
-  8037f60:	b007      	add	sp, #28
 
-  8037f62:	bd30      	pop	{r4, r5, pc}
 
-  8037f64:	2000cfc4 	.word	0x2000cfc4
 
-  8037f68:	08039b37 	.word	0x08039b37
 
-  8037f6c:	08039b48 	.word	0x08039b48
 
- 08037f70 <signals_get_value>:
 
-  \param  len - длина переменной в байтах 
 
-  \param  value - указатель на значение переменной
 
-  \return нет
 
- ------------------------------------------------------------------------------*/
 
- static void signals_get_value (struct obj_def *od, u16_t len, void *value)
 
- {
 
-  8037f70:	4613      	mov	r3, r2
 
-   u8_t id;
 
-   
 
-   id = od->id_inst_ptr[0];
 
-  8037f72:	6882      	ldr	r2, [r0, #8]
 
-   
 
-   switch (id)
 
-  8037f74:	7812      	ldrb	r2, [r2, #0]
 
-  8037f76:	3a01      	subs	r2, #1
 
-  \param  len - длина переменной в байтах 
 
-  \param  value - указатель на значение переменной
 
-  \return нет
 
- ------------------------------------------------------------------------------*/
 
- static void signals_get_value (struct obj_def *od, u16_t len, void *value)
 
- {
 
-  8037f78:	b510      	push	{r4, lr}
 
-  8037f7a:	460c      	mov	r4, r1
 
-   u8_t id;
 
-   
 
-   id = od->id_inst_ptr[0];
 
-   
 
-   switch (id)
 
-  8037f7c:	2a11      	cmp	r2, #17
 
-  8037f7e:	d814      	bhi.n	8037faa <signals_get_value+0x3a>
 
-  8037f80:	e8df f002 	tbb	[pc, r2]
 
-  8037f84:	0c09090c 	.word	0x0c09090c
 
-  8037f88:	09090c0c 	.word	0x09090c0c
 
-  8037f8c:	0c0c0c0c 	.word	0x0c0c0c0c
 
-  8037f90:	0c0c0c0c 	.word	0x0c0c0c0c
 
-  8037f94:	0c0c      	.short	0x0c0c
 
- 	  break;
 
- 	case 7: /* BatTest */
 
- 	  *((s32_t*)value) = 0;
 
- 	  break;
 
- 	case 8: /* Shutdown UPS */
 
- 	  *((s32_t*)value) = 0;
 
-  8037f96:	2200      	movs	r2, #0
 
-  8037f98:	601a      	str	r2, [r3, #0]
 
- 	  break;
 
-  8037f9a:	bd10      	pop	{r4, pc}
 
-       break;
 
-     case 17: /* ConnectMonitor */
 
- 	  ocstrncpy((u8_t*)value, (u8_t*)paramStr, len);
 
-       break;
 
-     case 18: /* Alarms */
 
- 	  ocstrncpy((u8_t*)value, (u8_t*)paramStr, len);
 
-  8037f9c:	4903      	ldr	r1, [pc, #12]	; (8037fac <signals_get_value+0x3c>)
 
-  8037f9e:	4618      	mov	r0, r3
 
-  8037fa0:	4622      	mov	r2, r4
 
-       break;
 
-     default :
 
- 	  break;
 
-   };
 
- }
 
-  8037fa2:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
-       break;
 
-     case 17: /* ConnectMonitor */
 
- 	  ocstrncpy((u8_t*)value, (u8_t*)paramStr, len);
 
-       break;
 
-     case 18: /* Alarms */
 
- 	  ocstrncpy((u8_t*)value, (u8_t*)paramStr, len);
 
-  8037fa6:	f7fc ba31 	b.w	803440c <ocstrncpy>
 
-  8037faa:	bd10      	pop	{r4, pc}
 
-  8037fac:	2000f9b8 	.word	0x2000f9b8
 
- 08037fb0 <signals_get_object_def>:
 
-   u8_t id;
 
-   
 
-   /* return to object name, adding index depth (1) */
 
-   ident_len += 1;
 
-   ident -= 1;
 
-   if (ident_len == 2)
 
-  8037fb0:	2801      	cmp	r0, #1
 
-  \param  ident - points to objectname.0 (object id trailer) 
 
-  \param  od - points to object definition. указатель на описание переменной
 
-  \return нет
 
- ------------------------------------------------------------------------------*/
 
- static void signals_get_object_def (u8_t ident_len, s32_t *ident, struct obj_def *od)
 
- {
 
-  8037fb2:	b538      	push	{r3, r4, r5, lr}
 
-  8037fb4:	4614      	mov	r4, r2
 
-   u8_t id;
 
-   
 
-   /* return to object name, adding index depth (1) */
 
-   ident_len += 1;
 
-   ident -= 1;
 
-   if (ident_len == 2)
 
-  8037fb6:	f040 8081 	bne.w	80380bc <signals_get_object_def+0x10c>
 
-   {
 
-     od->id_inst_len = ident_len;
 
-  8037fba:	2302      	movs	r3, #2
 
-  8037fbc:	7193      	strb	r3, [r2, #6]
 
- {
 
-   u8_t id;
 
-   
 
-   /* return to object name, adding index depth (1) */
 
-   ident_len += 1;
 
-   ident -= 1;
 
-  8037fbe:	1f0a      	subs	r2, r1, #4
 
-   if (ident_len == 2)
 
-   {
 
-     od->id_inst_len = ident_len;
 
-     od->id_inst_ptr = ident;
 
-  8037fc0:	60a2      	str	r2, [r4, #8]
 
-     id = ident[0];
 
-     
 
-     switch (id)
 
-  8037fc2:	f811 2c04 	ldrb.w	r2, [r1, #-4]
 
-  8037fc6:	3a01      	subs	r2, #1
 
-  8037fc8:	2a11      	cmp	r2, #17
 
-  8037fca:	d877      	bhi.n	80380bc <signals_get_object_def+0x10c>
 
-  8037fcc:	e8df f002 	tbb	[pc, r2]
 
-  8037fd0:	0f242409 	.word	0x0f242409
 
-  8037fd4:	2a241a15 	.word	0x2a241a15
 
-  8037fd8:	453f3932 	.word	0x453f3932
 
-  8037fdc:	5d57514b 	.word	0x5d57514b
 
-  8037fe0:	6963      	.short	0x6963
 
-     {
 
-       case 1: /* FWVersion */
 
- 		GetVersionStr(paramStr, ¶mLength);
 
-  8037fe2:	4d38      	ldr	r5, [pc, #224]	; (80380c4 <signals_get_object_def+0x114>)
 
-  8037fe4:	4838      	ldr	r0, [pc, #224]	; (80380c8 <signals_get_object_def+0x118>)
 
-  8037fe6:	4629      	mov	r1, r5
 
-  8037fe8:	f7ef fe6e 	bl	8027cc8 <GetVersionStr>
 
-  8037fec:	e05e      	b.n	80380ac <signals_get_object_def+0xfc>
 
-         od->access = MIB_OBJECT_WRITE_ONLY;
 
-         od->asn_type = SNMP_ASN1_INTEG;
 
-         od->v_len = sizeof(s32_t);
 
-         break;
 
- 	  case 4: /* UPSModel*/
 
- 		GetUPSModelStr(paramStr, ¶mLength);
 
-  8037fee:	4d35      	ldr	r5, [pc, #212]	; (80380c4 <signals_get_object_def+0x114>)
 
-  8037ff0:	4835      	ldr	r0, [pc, #212]	; (80380c8 <signals_get_object_def+0x118>)
 
-  8037ff2:	4629      	mov	r1, r5
 
-  8037ff4:	f7ef fed4 	bl	8027da0 <GetUPSModelStr>
 
-  8037ff8:	e058      	b.n	80380ac <signals_get_object_def+0xfc>
 
-         od->access = MIB_OBJECT_READ_ONLY;
 
-         od->asn_type = SNMP_ASN1_OC_STR;
 
-         od->v_len = paramLength;
 
-         break;
 
- 	  case 5: /* DO1*/
 
- 		GetDOUTStatusStr(paramStr, ¶mLength, 0);
 
-  8037ffa:	4d32      	ldr	r5, [pc, #200]	; (80380c4 <signals_get_object_def+0x114>)
 
-  8037ffc:	4832      	ldr	r0, [pc, #200]	; (80380c8 <signals_get_object_def+0x118>)
 
-  8037ffe:	4629      	mov	r1, r5
 
-  8038000:	2200      	movs	r2, #0
 
-  8038002:	e003      	b.n	803800c <signals_get_object_def+0x5c>
 
- 		od->access = MIB_OBJECT_READ_WRITE;
 
- 		od->asn_type = SNMP_ASN1_OC_STR;
 
- 		od->v_len = paramLength;
 
- 		break;
 
- 	  case 6: /* DO2*/
 
- 		GetDOUTStatusStr(paramStr, ¶mLength, 1);
 
-  8038004:	4d2f      	ldr	r5, [pc, #188]	; (80380c4 <signals_get_object_def+0x114>)
 
-  8038006:	4830      	ldr	r0, [pc, #192]	; (80380c8 <signals_get_object_def+0x118>)
 
-  8038008:	4629      	mov	r1, r5
 
-  803800a:	2201      	movs	r2, #1
 
-  803800c:	f7ef fdda 	bl	8027bc4 <GetDOUTStatusStr>
 
- 		od->instance = MIB_OBJECT_SCALAR;
 
-  8038010:	2301      	movs	r3, #1
 
-  8038012:	7023      	strb	r3, [r4, #0]
 
- 		od->access = MIB_OBJECT_READ_WRITE;
 
-  8038014:	2303      	movs	r3, #3
 
-  8038016:	e04b      	b.n	80380b0 <signals_get_object_def+0x100>
 
- 		od->asn_type = SNMP_ASN1_OC_STR;
 
- 		od->v_len = paramLength;
 
- 		break;
 
- 	  case 7: /* BatTest*/
 
- 		od->instance = MIB_OBJECT_SCALAR;
 
-  8038018:	2201      	movs	r2, #1
 
- 		od->access = MIB_OBJECT_WRITE_ONLY;
 
-  803801a:	7063      	strb	r3, [r4, #1]
 
- 		od->asn_type = SNMP_ASN1_INTEG;
 
-  803801c:	70a3      	strb	r3, [r4, #2]
 
- 		od->asn_type = SNMP_ASN1_OC_STR;
 
- 		od->v_len = paramLength;
 
- 		break;
 
- 	  case 7: /* BatTest*/
 
- 		od->instance = MIB_OBJECT_SCALAR;
 
-  803801e:	7022      	strb	r2, [r4, #0]
 
- 		od->access = MIB_OBJECT_WRITE_ONLY;
 
- 		od->asn_type = SNMP_ASN1_INTEG;
 
- 		od->v_len = sizeof(s32_t);
 
-  8038020:	2304      	movs	r3, #4
 
-  8038022:	e049      	b.n	80380b8 <signals_get_object_def+0x108>
 
- 		break;
 
- 	  case 8: /* Shutdown UPS*/
 
- 		od->instance = MIB_OBJECT_SCALAR;
 
- 		od->access = MIB_OBJECT_WRITE_ONLY;
 
-  8038024:	7063      	strb	r3, [r4, #1]
 
- 		od->asn_type = SNMP_ASN1_OC_STR;
 
-  8038026:	2304      	movs	r3, #4
 
- 		od->asn_type = SNMP_ASN1_INTEG;
 
- 		od->v_len = sizeof(s32_t);
 
- 		break;
 
- 	  case 8: /* Shutdown UPS*/
 
- 		od->instance = MIB_OBJECT_SCALAR;
 
-  8038028:	2201      	movs	r2, #1
 
- 		od->access = MIB_OBJECT_WRITE_ONLY;
 
- 		od->asn_type = SNMP_ASN1_OC_STR;
 
-  803802a:	70a3      	strb	r3, [r4, #2]
 
- 		od->v_len = paramLength;
 
-  803802c:	4b25      	ldr	r3, [pc, #148]	; (80380c4 <signals_get_object_def+0x114>)
 
- 		od->asn_type = SNMP_ASN1_INTEG;
 
- 		od->v_len = sizeof(s32_t);
 
- 		break;
 
- 	  case 8: /* Shutdown UPS*/
 
- 		od->instance = MIB_OBJECT_SCALAR;
 
-  803802e:	7022      	strb	r2, [r4, #0]
 
- 		od->access = MIB_OBJECT_WRITE_ONLY;
 
- 		od->asn_type = SNMP_ASN1_OC_STR;
 
- 		od->v_len = paramLength;
 
-  8038030:	781b      	ldrb	r3, [r3, #0]
 
-  8038032:	e041      	b.n	80380b8 <signals_get_object_def+0x108>
 
- 		break;
 
- 	  case 9: /* DIO*/
 
- 		GetDINStatusStr(paramStr, ¶mLength, 0);
 
-  8038034:	4d23      	ldr	r5, [pc, #140]	; (80380c4 <signals_get_object_def+0x114>)
 
-  8038036:	4824      	ldr	r0, [pc, #144]	; (80380c8 <signals_get_object_def+0x118>)
 
-  8038038:	4629      	mov	r1, r5
 
-  803803a:	2200      	movs	r2, #0
 
-  803803c:	f7ef fd88 	bl	8027b50 <GetDINStatusStr>
 
-  8038040:	e034      	b.n	80380ac <signals_get_object_def+0xfc>
 
- 		od->access = MIB_OBJECT_READ_ONLY;
 
- 		od->asn_type = SNMP_ASN1_OC_STR;
 
- 		od->v_len = paramLength;
 
- 		break;
 
- 	  case 10: /* IntTemp */
 
- 		GetInternalTempStr(paramStr, ¶mLength);
 
-  8038042:	4d20      	ldr	r5, [pc, #128]	; (80380c4 <signals_get_object_def+0x114>)
 
-  8038044:	4820      	ldr	r0, [pc, #128]	; (80380c8 <signals_get_object_def+0x118>)
 
-  8038046:	4629      	mov	r1, r5
 
-  8038048:	f7ef fc7e 	bl	8027948 <GetInternalTempStr>
 
-  803804c:	e02e      	b.n	80380ac <signals_get_object_def+0xfc>
 
-         od->access = MIB_OBJECT_READ_ONLY;
 
-         od->asn_type = SNMP_ASN1_OC_STR;
 
-         od->v_len = paramLength;
 
-         break;
 
- 	  case 11: /* InFreq */
 
- 		GetInputFreqStr(paramStr, ¶mLength);
 
-  803804e:	4d1d      	ldr	r5, [pc, #116]	; (80380c4 <signals_get_object_def+0x114>)
 
-  8038050:	481d      	ldr	r0, [pc, #116]	; (80380c8 <signals_get_object_def+0x118>)
 
-  8038052:	4629      	mov	r1, r5
 
-  8038054:	f7ef fbea 	bl	802782c <GetInputFreqStr>
 
-  8038058:	e028      	b.n	80380ac <signals_get_object_def+0xfc>
 
-         od->access = MIB_OBJECT_READ_ONLY;
 
-         od->asn_type = SNMP_ASN1_OC_STR;
 
-         od->v_len = paramLength;
 
- 		break;
 
- 	  case 12: /* InVoltVAC */
 
- 		GetInputVoltageStr(paramStr, ¶mLength);
 
-  803805a:	4d1a      	ldr	r5, [pc, #104]	; (80380c4 <signals_get_object_def+0x114>)
 
-  803805c:	481a      	ldr	r0, [pc, #104]	; (80380c8 <signals_get_object_def+0x118>)
 
-  803805e:	4629      	mov	r1, r5
 
-  8038060:	f7ef fc10 	bl	8027884 <GetInputVoltageStr>
 
-  8038064:	e022      	b.n	80380ac <signals_get_object_def+0xfc>
 
-         od->access = MIB_OBJECT_READ_ONLY;
 
-         od->asn_type = SNMP_ASN1_OC_STR;
 
-         od->v_len = paramLength;
 
- 		break;
 
- 	  case 13: /* OutVoltVAC */
 
- 		GetOutputVoltageStr(paramStr, ¶mLength);
 
-  8038066:	4d17      	ldr	r5, [pc, #92]	; (80380c4 <signals_get_object_def+0x114>)
 
-  8038068:	4817      	ldr	r0, [pc, #92]	; (80380c8 <signals_get_object_def+0x118>)
 
-  803806a:	4629      	mov	r1, r5
 
-  803806c:	f7ef fc20 	bl	80278b0 <GetOutputVoltageStr>
 
-  8038070:	e01c      	b.n	80380ac <signals_get_object_def+0xfc>
 
-         od->access = MIB_OBJECT_READ_ONLY;
 
-         od->asn_type = SNMP_ASN1_OC_STR;
 
-         od->v_len = paramLength;
 
-         break;
 
- 	  case 14: /* Power */
 
- 		GetPowerStr(paramStr, ¶mLength);
 
-  8038072:	4d14      	ldr	r5, [pc, #80]	; (80380c4 <signals_get_object_def+0x114>)
 
-  8038074:	4814      	ldr	r0, [pc, #80]	; (80380c8 <signals_get_object_def+0x118>)
 
-  8038076:	4629      	mov	r1, r5
 
-  8038078:	f7ef fc30 	bl	80278dc <GetPowerStr>
 
-  803807c:	e016      	b.n	80380ac <signals_get_object_def+0xfc>
 
-         od->access = MIB_OBJECT_READ_ONLY;
 
-         od->asn_type = SNMP_ASN1_OC_STR;
 
-         od->v_len = paramLength;
 
- 		break;
 
- 	  case 15: /* BatCap */
 
- 		GetBatCapacityStr(paramStr, ¶mLength);
 
-  803807e:	4d11      	ldr	r5, [pc, #68]	; (80380c4 <signals_get_object_def+0x114>)
 
-  8038080:	4811      	ldr	r0, [pc, #68]	; (80380c8 <signals_get_object_def+0x118>)
 
-  8038082:	4629      	mov	r1, r5
 
-  8038084:	f7ef fc3c 	bl	8027900 <GetBatCapacityStr>
 
-  8038088:	e010      	b.n	80380ac <signals_get_object_def+0xfc>
 
-         od->access = MIB_OBJECT_READ_ONLY;
 
-         od->asn_type = SNMP_ASN1_OC_STR;
 
-         od->v_len = paramLength;
 
-         break;
 
- 	  case 16: /* BatTime */
 
- 		GetRuntimeStr(paramStr, ¶mLength);
 
-  803808a:	4d0e      	ldr	r5, [pc, #56]	; (80380c4 <signals_get_object_def+0x114>)
 
-  803808c:	480e      	ldr	r0, [pc, #56]	; (80380c8 <signals_get_object_def+0x118>)
 
-  803808e:	4629      	mov	r1, r5
 
-  8038090:	f7ef fc48 	bl	8027924 <GetRuntimeStr>
 
-  8038094:	e00a      	b.n	80380ac <signals_get_object_def+0xfc>
 
-         od->access = MIB_OBJECT_READ_ONLY;
 
-         od->asn_type = SNMP_ASN1_OC_STR;
 
-         od->v_len = paramLength;
 
-         break;	
 
-       case 17: /* ConnectMonitor */
 
- 		GetConnectMonitorStr(paramStr, ¶mLength);
 
-  8038096:	4d0b      	ldr	r5, [pc, #44]	; (80380c4 <signals_get_object_def+0x114>)
 
-  8038098:	480b      	ldr	r0, [pc, #44]	; (80380c8 <signals_get_object_def+0x118>)
 
-  803809a:	4629      	mov	r1, r5
 
-  803809c:	f7ef fc7c 	bl	8027998 <GetConnectMonitorStr>
 
-  80380a0:	e004      	b.n	80380ac <signals_get_object_def+0xfc>
 
-         od->access = MIB_OBJECT_READ_ONLY;
 
-         od->asn_type = SNMP_ASN1_OC_STR;
 
-         od->v_len = paramLength;
 
-         break;
 
-       case 18: /* Alarms */
 
-     	GetAlarmStr(paramStr, ¶mLength);
 
-  80380a2:	4d08      	ldr	r5, [pc, #32]	; (80380c4 <signals_get_object_def+0x114>)
 
-  80380a4:	4808      	ldr	r0, [pc, #32]	; (80380c8 <signals_get_object_def+0x118>)
 
-  80380a6:	4629      	mov	r1, r5
 
-  80380a8:	f7ef fc8e 	bl	80279c8 <GetAlarmStr>
 
-         od->instance = MIB_OBJECT_SCALAR;
 
-  80380ac:	2301      	movs	r3, #1
 
-  80380ae:	7023      	strb	r3, [r4, #0]
 
-         od->access = MIB_OBJECT_READ_ONLY;
 
-  80380b0:	7063      	strb	r3, [r4, #1]
 
-         od->asn_type = SNMP_ASN1_OC_STR;
 
-  80380b2:	2304      	movs	r3, #4
 
-  80380b4:	70a3      	strb	r3, [r4, #2]
 
-         od->v_len = paramLength;
 
-  80380b6:	782b      	ldrb	r3, [r5, #0]
 
-  80380b8:	80a3      	strh	r3, [r4, #4]
 
-         break;
 
-  80380ba:	bd38      	pop	{r3, r4, r5, pc}
 
-     };
 
-   }
 
-   else
 
-   {
 
-     LWIP_DEBUGF(SNMP_MIB_DEBUG,("planar_get_object_def: no scalar\n"));
 
-     od->instance = MIB_OBJECT_NONE;
 
-  80380bc:	2300      	movs	r3, #0
 
-  80380be:	7023      	strb	r3, [r4, #0]
 
-  80380c0:	bd38      	pop	{r3, r4, r5, pc}
 
-  80380c2:	bf00      	nop
 
-  80380c4:	2000c7e6 	.word	0x2000c7e6
 
-  80380c8:	2000f9b8 	.word	0x2000f9b8
 
- 080380cc <signals_set_test>:
 
-  \param  value - указатель на значение переменной
 
-  \return 0 - некорректное значение
 
-          1 - корректное значение
 
- ------------------------------------------------------------------------------*/
 
- static u8_t signals_set_test (struct obj_def *od, u16_t len, void *value)
 
- {
 
-  80380cc:	b508      	push	{r3, lr}
 
-   u8_t id, set_ok;
 
-   char *val_string;
 
-   LWIP_UNUSED_ARG(value);
 
-   set_ok = 0;
 
-   id = od->id_inst_ptr[0];
 
-  80380ce:	6883      	ldr	r3, [r0, #8]
 
-   
 
-   switch (id)
 
-  80380d0:	781b      	ldrb	r3, [r3, #0]
 
-  80380d2:	3b02      	subs	r3, #2
 
-  80380d4:	2b04      	cmp	r3, #4
 
-  80380d6:	d81f      	bhi.n	8038118 <signals_set_test+0x4c>
 
-  80380d8:	e8df f003 	tbb	[pc, r3]
 
-  80380dc:	051e0303 	.word	0x051e0303
 
-  80380e0:	14          	.byte	0x14
 
-  80380e1:	00          	.byte	0x00
 
- {
 
-   u8_t id, set_ok;
 
-   char *val_string;
 
-   LWIP_UNUSED_ARG(value);
 
-   set_ok = 0;
 
-  80380e2:	2904      	cmp	r1, #4
 
-  80380e4:	e00a      	b.n	80380fc <signals_set_test+0x30>
 
-       {
 
-         set_ok = 1;
 
-       }
 
-       break; 
 
- 	case 5: /* DO1 */
 
- 		if ( len >= 1 )
 
-  80380e6:	b901      	cbnz	r1, 80380ea <signals_set_test+0x1e>
 
-  80380e8:	e016      	b.n	8038118 <signals_set_test+0x4c>
 
- 	    {
 
- 		   val_string = (char*)value;
 
- 		   if(atoi(val_string) <= 1){
 
-  80380ea:	4610      	mov	r0, r2
 
-  80380ec:	f7e9 fbe8 	bl	80218c0 <atoi>
 
-  80380f0:	2801      	cmp	r0, #1
 
-  80380f2:	dc11      	bgt.n	8038118 <signals_set_test+0x4c>
 
- 			   if(sSettings.sInOuts.ro_type_source[0] == SNMP_SET)
 
-  80380f4:	4b09      	ldr	r3, [pc, #36]	; (803811c <signals_set_test+0x50>)
 
-  80380f6:	f893 0374 	ldrb.w	r0, [r3, #884]	; 0x374
 
- {
 
-   u8_t id, set_ok;
 
-   char *val_string;
 
-   LWIP_UNUSED_ARG(value);
 
-   set_ok = 0;
 
-  80380fa:	2803      	cmp	r0, #3
 
-  80380fc:	bf14      	ite	ne
 
-  80380fe:	2000      	movne	r0, #0
 
-  8038100:	2001      	moveq	r0, #1
 
-  8038102:	bd08      	pop	{r3, pc}
 
- 				   set_ok = 1;
 
- 		   }
 
- 	    }
 
- 	  break;
 
- 	case 6: /* DO2 */
 
- 		if ( len >= 1 )
 
-  8038104:	b141      	cbz	r1, 8038118 <signals_set_test+0x4c>
 
- 		{
 
- 		   val_string = (char*)value;
 
- 		   if(atoi(val_string) <= 1){
 
-  8038106:	4610      	mov	r0, r2
 
-  8038108:	f7e9 fbda 	bl	80218c0 <atoi>
 
-  803810c:	2801      	cmp	r0, #1
 
-  803810e:	dc03      	bgt.n	8038118 <signals_set_test+0x4c>
 
- 			   if(sSettings.sInOuts.ro_type_source[1] == SNMP_SET)
 
-  8038110:	4b02      	ldr	r3, [pc, #8]	; (803811c <signals_set_test+0x50>)
 
-  8038112:	f893 0375 	ldrb.w	r0, [r3, #885]	; 0x375
 
-  8038116:	e7f0      	b.n	80380fa <signals_set_test+0x2e>
 
- {
 
-   u8_t id, set_ok;
 
-   char *val_string;
 
-   LWIP_UNUSED_ARG(value);
 
-   set_ok = 0;
 
-  8038118:	2000      	movs	r0, #0
 
- 	  break;
 
-   };
 
-   
 
-   return set_ok;
 
- }
 
-  803811a:	bd08      	pop	{r3, pc}
 
-  803811c:	2000cfc4 	.word	0x2000cfc4
 
- 08038120 <SNMP_SysUpTimeTask>:
 
- /**
 
-   * @brief  Системный тик SNMP. Таск должен вызываться с частотой 100Гц.
 
-   * @retval 
 
-   */
 
- void SNMP_SysUpTimeTask(void *arg)
 
- {
 
-  8038120:	b513      	push	{r0, r1, r4, lr}
 
-   TickType_t xLastWakeTime;
 
-   const TickType_t xFrequency = 10;
 
-   
 
-   xLastWakeTime = xTaskGetTickCount();
 
-  8038122:	f7f2 fe21 	bl	802ad68 <xTaskGetTickCount>
 
-  8038126:	ac02      	add	r4, sp, #8
 
-  8038128:	f844 0d04 	str.w	r0, [r4, #-4]!
 
-   
 
-   while(1)
 
-   {
 
- 	vTaskDelayUntil( &xLastWakeTime, xFrequency );
 
-  803812c:	4620      	mov	r0, r4
 
-  803812e:	210a      	movs	r1, #10
 
-  8038130:	f7f2 ff7e 	bl	802b030 <vTaskDelayUntil>
 
-     snmp_inc_sysuptime();
 
-  8038134:	f7fc fa88 	bl	8034648 <snmp_inc_sysuptime>
 
-  8038138:	e7f8      	b.n	803812c <SNMP_SysUpTimeTask+0xc>
 
-  803813a:	0000      	movs	r0, r0
 
- 0803813c <SNMP_SendUserTrap>:
 
-   *         FIFO буфера. 
 
-   *         Если в настройках трапа отправка отключена, то трап игнорируется.
 
-   * @retval 
 
-   */
 
- void SNMP_SendUserTrap(uint8_t trapName)
 
- {
 
-  803813c:	b51f      	push	{r0, r1, r2, r3, r4, lr}
 
-   uint16_t availableSpace;
 
-   uint8_t  dummyTrap;
 
-   
 
-   if (traps[trapName].trapEnable)
 
-  803813e:	4b0d      	ldr	r3, [pc, #52]	; (8038174 <SNMP_SendUserTrap+0x38>)
 
-   *         FIFO буфера. 
 
-   *         Если в настройках трапа отправка отключена, то трап игнорируется.
 
-   * @retval 
 
-   */
 
- void SNMP_SendUserTrap(uint8_t trapName)
 
- {
 
-  8038140:	f88d 0007 	strb.w	r0, [sp, #7]
 
-   uint16_t availableSpace;
 
-   uint8_t  dummyTrap;
 
-   
 
-   if (traps[trapName].trapEnable)
 
-  8038144:	eb03 00c0 	add.w	r0, r3, r0, lsl #3
 
-  8038148:	78c3      	ldrb	r3, [r0, #3]
 
-  803814a:	b193      	cbz	r3, 8038172 <SNMP_SendUserTrap+0x36>
 
-   {	
 
-     availableSpace = uxQueueSpacesAvailable(SNMP_TrapQueue);
 
-  803814c:	4c0a      	ldr	r4, [pc, #40]	; (8038178 <SNMP_SendUserTrap+0x3c>)
 
-  803814e:	6820      	ldr	r0, [r4, #0]
 
-  8038150:	f7f2 fc32 	bl	802a9b8 <uxQueueSpacesAvailable>
 
-   
 
-     if (availableSpace == 0)
 
-  8038154:	b282      	uxth	r2, r0
 
-  8038156:	b92a      	cbnz	r2, 8038164 <SNMP_SendUserTrap+0x28>
 
- 	  xQueueReceive(SNMP_TrapQueue, &dummyTrap, 0);
 
-  8038158:	6820      	ldr	r0, [r4, #0]
 
-  803815a:	f10d 010f 	add.w	r1, sp, #15
 
-  803815e:	4613      	mov	r3, r2
 
-  8038160:	f7f2 fb41 	bl	802a7e6 <xQueueGenericReceive>
 
-   
 
-     xQueueSend(SNMP_TrapQueue, &trapName, 0);
 
-  8038164:	2200      	movs	r2, #0
 
-  8038166:	6820      	ldr	r0, [r4, #0]
 
-  8038168:	f10d 0107 	add.w	r1, sp, #7
 
-  803816c:	4613      	mov	r3, r2
 
-  803816e:	f7f2 f9fa 	bl	802a566 <xQueueGenericSend>
 
-   }
 
- }
 
-  8038172:	bd1f      	pop	{r0, r1, r2, r3, r4, pc}
 
-  8038174:	2000fabc 	.word	0x2000fabc
 
-  8038178:	2000fab8 	.word	0x2000fab8
 
- 0803817c <SNMP_SetObjDescr>:
 
-   * @brief  Установить SNMP Descriptor
 
-   * @retval 
 
-   */
 
- // TODO
 
- void SNMP_SetObjDescr(void)
 
- {
 
-  803817c:	b538      	push	{r3, r4, r5, lr}
 
-   static uint8_t len;
 
-   
 
-   strcpy(sSettings.sSnmp.sysDescr, sSettings.sSnmp.sysName);
 
-  803817e:	4c19      	ldr	r4, [pc, #100]	; (80381e4 <SNMP_SetObjDescr+0x68>)
 
-   strcat(sSettings.sSnmp.sysDescr, " ");
 
-  8038180:	4d19      	ldr	r5, [pc, #100]	; (80381e8 <SNMP_SetObjDescr+0x6c>)
 
- // TODO
 
- void SNMP_SetObjDescr(void)
 
- {
 
-   static uint8_t len;
 
-   
 
-   strcpy(sSettings.sSnmp.sysDescr, sSettings.sSnmp.sysName);
 
-  8038182:	f104 01fa 	add.w	r1, r4, #250	; 0xfa
 
-  8038186:	4620      	mov	r0, r4
 
-  8038188:	f7e9 fe34 	bl	8021df4 <strcpy>
 
-   strcat(sSettings.sSnmp.sysDescr, " ");
 
-  803818c:	4629      	mov	r1, r5
 
-  803818e:	4620      	mov	r0, r4
 
-  8038190:	f7e9 fd1c 	bl	8021bcc <strcat>
 
-   strcat(sSettings.sSnmp.sysDescr, VERSION);
 
-  8038194:	4620      	mov	r0, r4
 
-  8038196:	4915      	ldr	r1, [pc, #84]	; (80381ec <SNMP_SetObjDescr+0x70>)
 
-  8038198:	f7e9 fd18 	bl	8021bcc <strcat>
 
-   strcat(sSettings.sSnmp.sysDescr, " ");
 
-  803819c:	4629      	mov	r1, r5
 
-  803819e:	4620      	mov	r0, r4
 
-  80381a0:	f7e9 fd14 	bl	8021bcc <strcat>
 
-   strcat(sSettings.sSnmp.sysDescr, sSettings.sSnmp.sysContact);
 
-  80381a4:	f104 01c8 	add.w	r1, r4, #200	; 0xc8
 
-  80381a8:	4620      	mov	r0, r4
 
-  80381aa:	f7e9 fd0f 	bl	8021bcc <strcat>
 
-   strcat(sSettings.sSnmp.sysDescr, " ");
 
-  80381ae:	4629      	mov	r1, r5
 
-  80381b0:	4620      	mov	r0, r4
 
-  80381b2:	f7e9 fd0b 	bl	8021bcc <strcat>
 
-   strcat(sSettings.sSnmp.sysDescr, sSettings.sInfo.serialNumber);
 
-  80381b6:	f1a4 0193 	sub.w	r1, r4, #147	; 0x93
 
-  80381ba:	4620      	mov	r0, r4
 
-  80381bc:	f7e9 fd06 	bl	8021bcc <strcat>
 
-   strcat(sSettings.sSnmp.sysDescr, " ");
 
-  80381c0:	4629      	mov	r1, r5
 
-  80381c2:	4620      	mov	r0, r4
 
-  80381c4:	f7e9 fd02 	bl	8021bcc <strcat>
 
-   strcat(sSettings.sSnmp.sysDescr, UPS.model);
 
-  80381c8:	4909      	ldr	r1, [pc, #36]	; (80381f0 <SNMP_SetObjDescr+0x74>)
 
-  80381ca:	4620      	mov	r0, r4
 
-  80381cc:	f7e9 fcfe 	bl	8021bcc <strcat>
 
-   
 
-   len = strlen(sSettings.sSnmp.sysDescr);
 
-  80381d0:	4620      	mov	r0, r4
 
-  80381d2:	f7e9 fe6d 	bl	8021eb0 <strlen>
 
-  80381d6:	4907      	ldr	r1, [pc, #28]	; (80381f4 <SNMP_SetObjDescr+0x78>)
 
-  80381d8:	7008      	strb	r0, [r1, #0]
 
-   snmp_set_sysdesr((u8_t*)sSettings.sSnmp.sysDescr, &len);
 
-  80381da:	4620      	mov	r0, r4
 
- }
 
-  80381dc:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
 
-   strcat(sSettings.sSnmp.sysDescr, sSettings.sInfo.serialNumber);
 
-   strcat(sSettings.sSnmp.sysDescr, " ");
 
-   strcat(sSettings.sSnmp.sysDescr, UPS.model);
 
-   
 
-   len = strlen(sSettings.sSnmp.sysDescr);
 
-   snmp_set_sysdesr((u8_t*)sSettings.sSnmp.sysDescr, &len);
 
-  80381e0:	f7fc ba1e 	b.w	8034620 <snmp_set_sysdesr>
 
-  80381e4:	2000d0f5 	.word	0x2000d0f5
 
-  80381e8:	08039ade 	.word	0x08039ade
 
-  80381ec:	080399d9 	.word	0x080399d9
 
-  80381f0:	2000cbbd 	.word	0x2000cbbd
 
-  80381f4:	2000c7f0 	.word	0x2000c7f0
 
- 080381f8 <SNMP_SetReadCommunity>:
 
- /**
 
-   * @brief  Установить SNMP Community для чтения
 
-   */
 
- void SNMP_SetReadCommunity(char *comm)
 
- {
 
-  80381f8:	4601      	mov	r1, r0
 
-   strcpy(sSettings.sSnmp.readCommunity, comm);
 
-  80381fa:	4801      	ldr	r0, [pc, #4]	; (8038200 <SNMP_SetReadCommunity+0x8>)
 
-  80381fc:	f7e9 bdfa 	b.w	8021df4 <strcpy>
 
-  8038200:	2000d195 	.word	0x2000d195
 
- 08038204 <SNMP_SetWriteCommunity>:
 
- /**
 
-   * @brief  Установить SNMP Community для записи
 
-   */
 
- void SNMP_SetWriteCommunity(char *comm)
 
- {
 
-  8038204:	4601      	mov	r1, r0
 
-   strcpy(sSettings.sSnmp.writeCommunity, comm);
 
-  8038206:	4801      	ldr	r0, [pc, #4]	; (803820c <SNMP_SetWriteCommunity+0x8>)
 
-  8038208:	f7e9 bdf4 	b.w	8021df4 <strcpy>
 
-  803820c:	2000d1a9 	.word	0x2000d1a9
 
- 08038210 <SNMP_SetSysContact>:
 
- /**
 
-   * @brief  Установить SNMP SysContact
 
-   * @retval 
 
-   */
 
- void SNMP_SetSysContact(char *con)
 
- {
 
-  8038210:	b510      	push	{r4, lr}
 
-  8038212:	4604      	mov	r4, r0
 
-   static uint8_t len;
 
-   
 
-   len = strlen(con);
 
-  8038214:	f7e9 fe4c 	bl	8021eb0 <strlen>
 
-  8038218:	4903      	ldr	r1, [pc, #12]	; (8038228 <SNMP_SetSysContact+0x18>)
 
-  803821a:	7008      	strb	r0, [r1, #0]
 
-   snmp_set_syscontact((u8_t*)con, &len);
 
-  803821c:	4620      	mov	r0, r4
 
- }
 
-  803821e:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
- void SNMP_SetSysContact(char *con)
 
- {
 
-   static uint8_t len;
 
-   
 
-   len = strlen(con);
 
-   snmp_set_syscontact((u8_t*)con, &len);
 
-  8038222:	f7fc ba61 	b.w	80346e8 <snmp_set_syscontact>
 
-  8038226:	bf00      	nop
 
-  8038228:	2000c7e7 	.word	0x2000c7e7
 
- 0803822c <SNMP_SetSysName>:
 
- /**
 
-   * @brief  Установить SNMP SysName
 
-   * @retval 
 
-   */
 
- void SNMP_SetSysName(char *name)
 
- {
 
-  803822c:	b510      	push	{r4, lr}
 
-  803822e:	4604      	mov	r4, r0
 
-   static uint8_t len;
 
-   
 
-   len = strlen(name);
 
-  8038230:	f7e9 fe3e 	bl	8021eb0 <strlen>
 
-  8038234:	4903      	ldr	r1, [pc, #12]	; (8038244 <SNMP_SetSysName+0x18>)
 
-  8038236:	7008      	strb	r0, [r1, #0]
 
-   snmp_set_sysname((u8_t*)name, &len);
 
-  8038238:	4620      	mov	r0, r4
 
- }
 
-  803823a:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
- void SNMP_SetSysName(char *name)
 
- {
 
-   static uint8_t len;
 
-   
 
-   len = strlen(name);
 
-   snmp_set_sysname((u8_t*)name, &len);
 
-  803823e:	f7fc ba5d 	b.w	80346fc <snmp_set_sysname>
 
-  8038242:	bf00      	nop
 
-  8038244:	2000c7e9 	.word	0x2000c7e9
 
- 08038248 <SNMP_SetSysLocation>:
 
- /**
 
-   * @brief  Установить SNMP SysLocation
 
-   * @retval 
 
-   */
 
- void SNMP_SetSysLocation(char *loc)
 
- {
 
-  8038248:	b510      	push	{r4, lr}
 
-  803824a:	4604      	mov	r4, r0
 
-   static uint8_t len;
 
-   
 
-   len = strlen(loc);
 
-  803824c:	f7e9 fe30 	bl	8021eb0 <strlen>
 
-  8038250:	4903      	ldr	r1, [pc, #12]	; (8038260 <SNMP_SetSysLocation+0x18>)
 
-  8038252:	7008      	strb	r0, [r1, #0]
 
-   snmp_set_syslocation((u8_t*)loc, &len);
 
-  8038254:	4620      	mov	r0, r4
 
- }
 
-  8038256:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
- void SNMP_SetSysLocation(char *loc)
 
- {
 
-   static uint8_t len;
 
-   
 
-   len = strlen(loc);
 
-   snmp_set_syslocation((u8_t*)loc, &len);
 
-  803825a:	f7fc ba59 	b.w	8034710 <snmp_set_syslocation>
 
-  803825e:	bf00      	nop
 
-  8038260:	2000c7e8 	.word	0x2000c7e8
 
- 08038264 <SNMP_SetManagerIP>:
 
- /**
 
-   * @brief  Установить SNMP SysManagerIP
 
-   * @retval 
 
-   */
 
- void SNMP_SetManagerIP(char *ip)
 
- {
 
-  8038264:	b510      	push	{r4, lr}
 
-   static ip_addr_t trap_addr;
 
-   
 
-   ipaddr_aton(ip, &trap_addr);
 
-  8038266:	4c05      	ldr	r4, [pc, #20]	; (803827c <SNMP_SetManagerIP+0x18>)
 
-  8038268:	4621      	mov	r1, r4
 
-  803826a:	f7fa fda4 	bl	8032db6 <ipaddr_aton>
 
-   snmp_trap_dst_ip_set(0, &trap_addr);
 
-  803826e:	2000      	movs	r0, #0
 
-  8038270:	4621      	mov	r1, r4
 
- }
 
-  8038272:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
 
- void SNMP_SetManagerIP(char *ip)
 
- {
 
-   static ip_addr_t trap_addr;
 
-   
 
-   ipaddr_aton(ip, &trap_addr);
 
-   snmp_trap_dst_ip_set(0, &trap_addr);
 
-  8038276:	f7fe bb65 	b.w	8036944 <snmp_trap_dst_ip_set>
 
-  803827a:	bf00      	nop
 
-  803827c:	2000c7ec 	.word	0x2000c7ec
 
- 08038280 <snmp_trap_tread>:
 
- /**
 
-   * @brief  Тестовый таск для проверки отправки трапов
 
-   * @retval 
 
-   */
 
- void snmp_trap_tread(void *arg)
 
- {
 
-  8038280:	b537      	push	{r0, r1, r2, r4, r5, lr}
 
-   uint8_t trapName;
 
- 	
 
-   while(1)
 
-   {
 
-     if (xQueueReceive(SNMP_TrapQueue, &trapName, 0) == pdTRUE)
 
-  8038282:	4d1c      	ldr	r5, [pc, #112]	; (80382f4 <snmp_trap_tread+0x74>)
 
- 	{
 
-       SNMP_SetManagerIP(sSettings.sSnmp.managerIP);
 
- 	  SNMP_SendVarbindTrap(&traps[trapName]);
 
-  8038284:	4c1c      	ldr	r4, [pc, #112]	; (80382f8 <snmp_trap_tread+0x78>)
 
- {
 
-   uint8_t trapName;
 
- 	
 
-   while(1)
 
-   {
 
-     if (xQueueReceive(SNMP_TrapQueue, &trapName, 0) == pdTRUE)
 
-  8038286:	2200      	movs	r2, #0
 
-  8038288:	6828      	ldr	r0, [r5, #0]
 
-  803828a:	f10d 0107 	add.w	r1, sp, #7
 
-  803828e:	4613      	mov	r3, r2
 
-  8038290:	f7f2 faa9 	bl	802a7e6 <xQueueGenericReceive>
 
-  8038294:	2801      	cmp	r0, #1
 
-  8038296:	d1f6      	bne.n	8038286 <snmp_trap_tread+0x6>
 
- 	{
 
-       SNMP_SetManagerIP(sSettings.sSnmp.managerIP);
 
-  8038298:	4818      	ldr	r0, [pc, #96]	; (80382fc <snmp_trap_tread+0x7c>)
 
-  803829a:	f7ff ffe3 	bl	8038264 <SNMP_SetManagerIP>
 
- 	  SNMP_SendVarbindTrap(&traps[trapName]);
 
-  803829e:	f89d 0007 	ldrb.w	r0, [sp, #7]
 
-  80382a2:	eb04 00c0 	add.w	r0, r4, r0, lsl #3
 
-  80382a6:	f000 fa43 	bl	8038730 <SNMP_SendVarbindTrap>
 
-       
 
-       SNMP_SetManagerIP(sSettings.sSnmp.managerIP2);
 
-  80382aa:	4815      	ldr	r0, [pc, #84]	; (8038300 <snmp_trap_tread+0x80>)
 
-  80382ac:	f7ff ffda 	bl	8038264 <SNMP_SetManagerIP>
 
- 	  SNMP_SendVarbindTrap(&traps[trapName]);
 
-  80382b0:	f89d 0007 	ldrb.w	r0, [sp, #7]
 
-  80382b4:	eb04 00c0 	add.w	r0, r4, r0, lsl #3
 
-  80382b8:	f000 fa3a 	bl	8038730 <SNMP_SendVarbindTrap>
 
-       
 
-       SNMP_SetManagerIP(sSettings.sSnmp.managerIP3);
 
-  80382bc:	4811      	ldr	r0, [pc, #68]	; (8038304 <snmp_trap_tread+0x84>)
 
-  80382be:	f7ff ffd1 	bl	8038264 <SNMP_SetManagerIP>
 
- 	  SNMP_SendVarbindTrap(&traps[trapName]);
 
-  80382c2:	f89d 0007 	ldrb.w	r0, [sp, #7]
 
-  80382c6:	eb04 00c0 	add.w	r0, r4, r0, lsl #3
 
-  80382ca:	f000 fa31 	bl	8038730 <SNMP_SendVarbindTrap>
 
- 	  SNMP_SetManagerIP(sSettings.sSnmp.managerIP4);
 
-  80382ce:	480e      	ldr	r0, [pc, #56]	; (8038308 <snmp_trap_tread+0x88>)
 
-  80382d0:	f7ff ffc8 	bl	8038264 <SNMP_SetManagerIP>
 
- 	  SNMP_SendVarbindTrap(&traps[trapName]);
 
-  80382d4:	f89d 0007 	ldrb.w	r0, [sp, #7]
 
-  80382d8:	eb04 00c0 	add.w	r0, r4, r0, lsl #3
 
-  80382dc:	f000 fa28 	bl	8038730 <SNMP_SendVarbindTrap>
 
- 	  SNMP_SetManagerIP(sSettings.sSnmp.managerIP5);
 
-  80382e0:	480a      	ldr	r0, [pc, #40]	; (803830c <snmp_trap_tread+0x8c>)
 
-  80382e2:	f7ff ffbf 	bl	8038264 <SNMP_SetManagerIP>
 
- 	  SNMP_SendVarbindTrap(&traps[trapName]);
 
-  80382e6:	f89d 0007 	ldrb.w	r0, [sp, #7]
 
-  80382ea:	eb04 00c0 	add.w	r0, r4, r0, lsl #3
 
-  80382ee:	f000 fa1f 	bl	8038730 <SNMP_SendVarbindTrap>
 
-  80382f2:	e7c8      	b.n	8038286 <snmp_trap_tread+0x6>
 
-  80382f4:	2000fab8 	.word	0x2000fab8
 
-  80382f8:	2000fabc 	.word	0x2000fabc
 
-  80382fc:	2000d271 	.word	0x2000d271
 
-  8038300:	2000d285 	.word	0x2000d285
 
-  8038304:	2000d299 	.word	0x2000d299
 
-  8038308:	2000d2ad 	.word	0x2000d2ad
 
-  803830c:	2000d2c1 	.word	0x2000d2c1
 
- 08038310 <SNMP_SetObjID>:
 
-   */
 
- void SNMP_SetObjID(void)
 
- {
 
-   static struct snmp_obj_id my_object_id = {9, {1, 3, 6, 1, 4, 1, 41752, 911, 3}};
 
-   
 
-   snmp_set_sysobjid(&my_object_id);
 
-  8038310:	4801      	ldr	r0, [pc, #4]	; (8038318 <SNMP_SetObjID+0x8>)
 
-  8038312:	f7fc b98f 	b.w	8034634 <snmp_set_sysobjid>
 
-  8038316:	bf00      	nop
 
-  8038318:	20000a30 	.word	0x20000a30
 
- 0803831c <SNMP_SetTrapOnOff>:
 
- /**
 
-   * @brief  Вкл/выкл трапы
 
-   * @retval 
 
-   */
 
- void SNMP_SetTrapOnOff(uint8_t state)
 
- {
 
-  803831c:	4601      	mov	r1, r0
 
-   snmp_trap_dst_enable(0, (u8_t)state);
 
-  803831e:	2000      	movs	r0, #0
 
-  8038320:	f7fe bb0a 	b.w	8036938 <snmp_trap_dst_enable>
 
- 08038324 <SNMP_AgentInit>:
 
- /**
 
-   * @brief  Инициализация SNMP агента
 
-   * @retval 
 
-   */
 
- void SNMP_AgentInit(void)
 
- {
 
-  8038324:	b510      	push	{r4, lr}
 
-   SNMP_SetObjDescr();
 
-   SNMP_SetReadCommunity(sSettings.sSnmp.readCommunity);
 
-  8038326:	4c16      	ldr	r4, [pc, #88]	; (8038380 <SNMP_AgentInit+0x5c>)
 
-   * @brief  Инициализация SNMP агента
 
-   * @retval 
 
-   */
 
- void SNMP_AgentInit(void)
 
- {
 
-   SNMP_SetObjDescr();
 
-  8038328:	f7ff ff28 	bl	803817c <SNMP_SetObjDescr>
 
-   SNMP_SetReadCommunity(sSettings.sSnmp.readCommunity);
 
-  803832c:	4620      	mov	r0, r4
 
-  803832e:	f7ff ff63 	bl	80381f8 <SNMP_SetReadCommunity>
 
-   SNMP_SetWriteCommunity(sSettings.sSnmp.writeCommunity);
 
-  8038332:	f104 0014 	add.w	r0, r4, #20
 
-  8038336:	f7ff ff65 	bl	8038204 <SNMP_SetWriteCommunity>
 
-   SNMP_SetSysContact(sSettings.sSnmp.sysContact);
 
-  803833a:	f104 0028 	add.w	r0, r4, #40	; 0x28
 
-  803833e:	f7ff ff67 	bl	8038210 <SNMP_SetSysContact>
 
-   SNMP_SetSysName(sSettings.sSnmp.sysName);
 
-  8038342:	f104 005a 	add.w	r0, r4, #90	; 0x5a
 
-  8038346:	f7ff ff71 	bl	803822c <SNMP_SetSysName>
 
-   SNMP_SetSysLocation(sSettings.sSnmp.sysLocation);
 
-  803834a:	f104 006e 	add.w	r0, r4, #110	; 0x6e
 
-  803834e:	f7ff ff7b 	bl	8038248 <SNMP_SetSysLocation>
 
-   SNMP_SetManagerIP(sSettings.sSnmp.managerIP);
 
-  8038352:	f104 00dc 	add.w	r0, r4, #220	; 0xdc
 
-  8038356:	f7ff ff85 	bl	8038264 <SNMP_SetManagerIP>
 
-   SNMP_SetObjID();
 
-  803835a:	f7ff ffd9 	bl	8038310 <SNMP_SetObjID>
 
-   SNMP_SetTrapOnOff(1);
 
-  803835e:	2001      	movs	r0, #1
 
-  8038360:	f7ff ffdc 	bl	803831c <SNMP_SetTrapOnOff>
 
-   
 
-   SNMP_InitTrapsBase();
 
-  8038364:	f000 f928 	bl	80385b8 <SNMP_InitTrapsBase>
 
- 	
 
-   snmp_init();
 
-  8038368:	f7fd f9c2 	bl	80356f0 <snmp_init>
 
-   udp_init();
 
-  803836c:	f7fa f9fa 	bl	8032764 <udp_init>
 
-   
 
-   SNMP_TrapQueue = xQueueCreate(SNMP_TRAP_QUEUE_SIZE, sizeof(uint8_t));
 
-  8038370:	2064      	movs	r0, #100	; 0x64
 
-  8038372:	2101      	movs	r1, #1
 
-  8038374:	2200      	movs	r2, #0
 
-  8038376:	f7f2 f8b9 	bl	802a4ec <xQueueGenericCreate>
 
-  803837a:	4b02      	ldr	r3, [pc, #8]	; (8038384 <SNMP_AgentInit+0x60>)
 
-  803837c:	6018      	str	r0, [r3, #0]
 
-  803837e:	bd10      	pop	{r4, pc}
 
-  8038380:	2000d195 	.word	0x2000d195
 
-  8038384:	2000fab8 	.word	0x2000fab8
 
- 08038388 <SNMP_Init>:
 
-   * @retval 
 
-   */
 
- void SNMP_Init(void)
 
- {
 
-   //SETTINGS_SetSnmpDef();
 
-   SNMP_AgentInit();
 
-  8038388:	f7ff bfcc 	b.w	8038324 <SNMP_AgentInit>
 
-  803838c:	0000      	movs	r0, r0
 
-  803838e:	0000      	movs	r0, r0
 
- 08038390 <recv>:
 
-   SNTP_Enable(sSettings.sSNTP.sntpEnable);
 
- }
 
- static void recv(void *arg, struct udp_pcb *upcb, struct pbuf *p, 
 
- 				 struct ip_addr *addr, u16_t port)
 
- {
 
-  8038390:	b570      	push	{r4, r5, r6, lr}
 
-  8038392:	4616      	mov	r6, r2
 
-   time_t t;
 
-   int utcSec = 0;
 
-   TM_RTC_t data;
 
-   
 
-   if (p->len == sizeof(struct sntp_packet))
 
-  8038394:	8952      	ldrh	r2, [r2, #10]
 
-  8038396:	2a30      	cmp	r2, #48	; 0x30
 
-   SNTP_Enable(sSettings.sSNTP.sntpEnable);
 
- }
 
- static void recv(void *arg, struct udp_pcb *upcb, struct pbuf *p, 
 
- 				 struct ip_addr *addr, u16_t port)
 
- {
 
-  8038398:	b094      	sub	sp, #80	; 0x50
 
-   time_t t;
 
-   int utcSec = 0;
 
-   TM_RTC_t data;
 
-   
 
-   if (p->len == sizeof(struct sntp_packet))
 
-  803839a:	d149      	bne.n	8038430 <recv+0xa0>
 
-   {
 
-     int i;
 
-     struct sntp_packet aligned;
 
-     //myassert(p->len == p->tot_len); /* don't accept chained pbuf */
 
-     memcpy(&aligned, p->payload, sizeof(aligned));
 
-  803839c:	a808      	add	r0, sp, #32
 
-  803839e:	6871      	ldr	r1, [r6, #4]
 
-  80383a0:	f7e9 faf4 	bl	802198c <memcpy>
 
-     i = (aligned.status >> 3) & 7;
 
-  80383a4:	f89d 3020 	ldrb.w	r3, [sp, #32]
 
-     
 
- 	if ((i < 1) || (i > 4)) /* SNTP version 1..4 */
 
-  80383a8:	f3c3 02c2 	ubfx	r2, r3, #3, #3
 
-  80383ac:	3a01      	subs	r2, #1
 
-  80383ae:	2a03      	cmp	r2, #3
 
-  80383b0:	d83e      	bhi.n	8038430 <recv+0xa0>
 
-       goto out;
 
-     i = aligned.status & 7;
 
- 	if ((i != 4) && (i != 5)) /* mode 4 or 5: server or broadcast */
 
-  80383b2:	f003 0307 	and.w	r3, r3, #7
 
-  80383b6:	3b04      	subs	r3, #4
 
-  80383b8:	2b01      	cmp	r3, #1
 
-  80383ba:	d839      	bhi.n	8038430 <recv+0xa0>
 
-       goto out;
 
- 	if (aligned.xmt == 0)
 
-  80383bc:	e9dd 4512 	ldrd	r4, r5, [sp, #72]	; 0x48
 
-  80383c0:	ea54 0305 	orrs.w	r3, r4, r5
 
-  80383c4:	d034      	beq.n	8038430 <recv+0xa0>
 
-       goto out;
 
- 	
 
- 	utcSec = (int)(3600.0*sSettings.sSNTP.timeZone);
 
-  80383c6:	4b20      	ldr	r3, [pc, #128]	; (8038448 <recv+0xb8>)
 
-  80383c8:	f8d3 0370 	ldr.w	r0, [r3, #880]	; 0x370
 
-  80383cc:	f7e8 f8a4 	bl	8020518 <__aeabi_f2d>
 
-  80383d0:	a31b      	add	r3, pc, #108	; (adr r3, 8038440 <recv+0xb0>)
 
-  80383d2:	e9d3 2300 	ldrd	r2, r3, [r3]
 
-  80383d6:	f7e8 f8f3 	bl	80205c0 <__aeabi_dmul>
 
-  80383da:	f7e8 fb8b 	bl	8020af4 <__aeabi_d2iz>
 
-  80383de:	4605      	mov	r5, r0
 
- 	t = (ntohl(aligned.xmt) - 2208988800 + utcSec );
 
-  80383e0:	4620      	mov	r0, r4
 
-  80383e2:	f7f6 fbe1 	bl	802eba8 <lwip_ntohl>
 
-  80383e6:	4b19      	ldr	r3, [pc, #100]	; (803844c <recv+0xbc>)
 
-  80383e8:	18eb      	adds	r3, r5, r3
 
- 	
 
- 	TM_RTC_SetDataTimeUnix((uint32_t)t);
 
-  80383ea:	1818      	adds	r0, r3, r0
 
-  80383ec:	f7ee f968 	bl	80266c0 <TM_RTC_SetDataTimeUnix>
 
- 	
 
- 	/* Сохраним время последней синхронизации */
 
- 	TM_RTC_GetDateTime(&data, TM_RTC_Format_BIN);
 
-  80383f0:	a804      	add	r0, sp, #16
 
-  80383f2:	2100      	movs	r1, #0
 
-  80383f4:	f7ee f848 	bl	8026488 <TM_RTC_GetDateTime>
 
- 		
 
- 	memset(sSettings.sSNTP.data, 0, sizeof(sSettings.sSNTP.data));
 
-  80383f8:	2100      	movs	r1, #0
 
-  80383fa:	221e      	movs	r2, #30
 
-  80383fc:	4814      	ldr	r0, [pc, #80]	; (8038450 <recv+0xc0>)
 
-  80383fe:	f7e9 fb7f 	bl	8021b00 <memset>
 
- 	
 
- 	sprintf(sSettings.sSNTP.data, "%02d.%02d.%02d %02d:%02d:%02d", 
 
-  8038402:	f89d 1019 	ldrb.w	r1, [sp, #25]
 
-  8038406:	f89d 2017 	ldrb.w	r2, [sp, #23]
 
-  803840a:	9100      	str	r1, [sp, #0]
 
-  803840c:	f89d 1015 	ldrb.w	r1, [sp, #21]
 
-  8038410:	f89d 3018 	ldrb.w	r3, [sp, #24]
 
-  8038414:	9101      	str	r1, [sp, #4]
 
-  8038416:	f89d 1014 	ldrb.w	r1, [sp, #20]
 
-  803841a:	480d      	ldr	r0, [pc, #52]	; (8038450 <recv+0xc0>)
 
-  803841c:	9102      	str	r1, [sp, #8]
 
-  803841e:	f89d 1010 	ldrb.w	r1, [sp, #16]
 
-  8038422:	9103      	str	r1, [sp, #12]
 
-  8038424:	490b      	ldr	r1, [pc, #44]	; (8038454 <recv+0xc4>)
 
-  8038426:	f7ef f9f5 	bl	8027814 <tfp_sprintf>
 
- 			data.date, data.month, data.year,
 
- 			data.hours, data.minutes, data.seconds);
 
- 	
 
-     timeout = VALID_TIMEOUT;
 
-  803842a:	4a0b      	ldr	r2, [pc, #44]	; (8038458 <recv+0xc8>)
 
-  803842c:	4b0b      	ldr	r3, [pc, #44]	; (803845c <recv+0xcc>)
 
-  803842e:	601a      	str	r2, [r3, #0]
 
-     
 
-   }
 
-   out:
 
-     pbuf_free(p);
 
-  8038430:	4630      	mov	r0, r6
 
-  8038432:	f7f7 fceb 	bl	802fe0c <pbuf_free>
 
- }
 
-  8038436:	b014      	add	sp, #80	; 0x50
 
-  8038438:	bd70      	pop	{r4, r5, r6, pc}
 
-  803843a:	bf00      	nop
 
-  803843c:	f3af 8000 	nop.w
 
-  8038440:	00000000 	.word	0x00000000
 
-  8038444:	40ac2000 	.word	0x40ac2000
 
-  8038448:	2000cfc4 	.word	0x2000cfc4
 
-  803844c:	7c558180 	.word	0x7c558180
 
-  8038450:	2000d315 	.word	0x2000d315
 
-  8038454:	08045ae4 	.word	0x08045ae4
 
-  8038458:	01b77400 	.word	0x01b77400
 
-  803845c:	2000c7fc 	.word	0x2000c7fc
 
- 08038460 <SNTP_Enable>:
 
- void SNTP_Enable(bool enable)
 
- {
 
-  8038460:	b538      	push	{r3, r4, r5, lr}
 
-   if (enable)
 
-  8038462:	4605      	mov	r5, r0
 
-  8038464:	4c0f      	ldr	r4, [pc, #60]	; (80384a4 <SNTP_Enable+0x44>)
 
-  8038466:	b1b8      	cbz	r0, 8038498 <SNTP_Enable+0x38>
 
-   {
 
-     if (upcb == 0)
 
-  8038468:	6825      	ldr	r5, [r4, #0]
 
-  803846a:	b9d5      	cbnz	r5, 80384a2 <SNTP_Enable+0x42>
 
-     {
 
-       err_t ret;
 
-       upcb = udp_new();
 
-  803846c:	f7fa fb58 	bl	8032b20 <udp_new>
 
-  8038470:	6020      	str	r0, [r4, #0]
 
-       if (upcb != 0)
 
-  8038472:	b1b0      	cbz	r0, 80384a2 <SNTP_Enable+0x42>
 
- 	  {
 
- 		ret = udp_bind(upcb, IP_ADDR_ANY, port);
 
-  8038474:	227b      	movs	r2, #123	; 0x7b
 
-  8038476:	490c      	ldr	r1, [pc, #48]	; (80384a8 <SNTP_Enable+0x48>)
 
-  8038478:	f7fa fa3a 	bl	80328f0 <udp_bind>
 
- 	    if (ret != ERR_OK)
 
-  803847c:	4602      	mov	r2, r0
 
-         {
 
-           udp_remove(upcb);
 
-  803847e:	6820      	ldr	r0, [r4, #0]
 
-       upcb = udp_new();
 
-       if (upcb != 0)
 
- 	  {
 
- 		ret = udp_bind(upcb, IP_ADDR_ANY, port);
 
- 	    if (ret != ERR_OK)
 
-  8038480:	b11a      	cbz	r2, 803848a <SNTP_Enable+0x2a>
 
-         {
 
-           udp_remove(upcb);
 
-  8038482:	f7fa fb31 	bl	8032ae8 <udp_remove>
 
-           upcb = 0;
 
-  8038486:	6025      	str	r5, [r4, #0]
 
-  8038488:	e002      	b.n	8038490 <SNTP_Enable+0x30>
 
-         }
 
-         else
 
-         {
 
-           udp_recv(upcb, recv, 0);
 
-  803848a:	4908      	ldr	r1, [pc, #32]	; (80384ac <SNTP_Enable+0x4c>)
 
-  803848c:	f7fa fb28 	bl	8032ae0 <udp_recv>
 
-         }
 
-         timeout = 0;
 
-  8038490:	4b07      	ldr	r3, [pc, #28]	; (80384b0 <SNTP_Enable+0x50>)
 
-  8038492:	2200      	movs	r2, #0
 
-  8038494:	601a      	str	r2, [r3, #0]
 
-  8038496:	bd38      	pop	{r3, r4, r5, pc}
 
- 	  }
 
-     }
 
-   }
 
-   else if (upcb != 0)
 
-  8038498:	6820      	ldr	r0, [r4, #0]
 
-  803849a:	b110      	cbz	r0, 80384a2 <SNTP_Enable+0x42>
 
-   {
 
-     udp_remove(upcb);
 
-  803849c:	f7fa fb24 	bl	8032ae8 <udp_remove>
 
-     upcb = 0;
 
-  80384a0:	6025      	str	r5, [r4, #0]
 
-  80384a2:	bd38      	pop	{r3, r4, r5, pc}
 
-  80384a4:	2000c7f8 	.word	0x2000c7f8
 
-  80384a8:	08045008 	.word	0x08045008
 
-  80384ac:	08038391 	.word	0x08038391
 
-  80384b0:	2000c7fc 	.word	0x2000c7fc
 
- 080384b4 <SNTP_SetServerAddr>:
 
- {
 
-   return upcb != 0;
 
- }
 
- void SNTP_SetServerAddr(char *addr)
 
- {
 
-  80384b4:	b508      	push	{r3, lr}
 
-   server.addr = ipaddr_addr(addr);
 
-  80384b6:	f7fa fcfc 	bl	8032eb2 <ipaddr_addr>
 
-  80384ba:	4b01      	ldr	r3, [pc, #4]	; (80384c0 <SNTP_SetServerAddr+0xc>)
 
-  80384bc:	6018      	str	r0, [r3, #0]
 
-  80384be:	bd08      	pop	{r3, pc}
 
-  80384c0:	2000c7f4 	.word	0x2000c7f4
 
- 080384c4 <SNTP_Init>:
 
- /**
 
-   * @brief  Инициализация SNTP.
 
-   * @retval 
 
-   */
 
- void SNTP_Init(void)
 
- {
 
-  80384c4:	b508      	push	{r3, lr}
 
-   
 
-   
 
-   SNTP_SetServerAddr(sSettings.sSNTP.ip);
 
-  80384c6:	4805      	ldr	r0, [pc, #20]	; (80384dc <SNTP_Init+0x18>)
 
-  80384c8:	f7ff fff4 	bl	80384b4 <SNTP_SetServerAddr>
 
-   SNTP_Enable(sSettings.sSNTP.sntpEnable);
 
-  80384cc:	4b04      	ldr	r3, [pc, #16]	; (80384e0 <SNTP_Init+0x1c>)
 
-  80384ce:	f893 0340 	ldrb.w	r0, [r3, #832]	; 0x340
 
- }
 
-  80384d2:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
 
- void SNTP_Init(void)
 
- {
 
-   
 
-   
 
-   SNTP_SetServerAddr(sSettings.sSNTP.ip);
 
-   SNTP_Enable(sSettings.sSNTP.sntpEnable);
 
-  80384d6:	f7ff bfc3 	b.w	8038460 <SNTP_Enable>
 
-  80384da:	bf00      	nop
 
-  80384dc:	2000d305 	.word	0x2000d305
 
-  80384e0:	2000cfc4 	.word	0x2000cfc4
 
- 080384e4 <SNTP_Poll>:
 
-     pbuf_free(psend);
 
-   }
 
- }
 
- void SNTP_Poll(void)
 
- {
 
-  80384e4:	b530      	push	{r4, r5, lr}
 
-   if (upcb)
 
-  80384e6:	4d15      	ldr	r5, [pc, #84]	; (803853c <SNTP_Poll+0x58>)
 
-  80384e8:	682b      	ldr	r3, [r5, #0]
 
-     pbuf_free(psend);
 
-   }
 
- }
 
- void SNTP_Poll(void)
 
- {
 
-  80384ea:	b08d      	sub	sp, #52	; 0x34
 
-   if (upcb)
 
-  80384ec:	b31b      	cbz	r3, 8038536 <SNTP_Poll+0x52>
 
- static void send_request(void)
 
- {
 
-   struct sntp_packet packet;
 
-   struct pbuf* psend;
 
-   memset(&packet, 0, sizeof(packet));
 
-  80384ee:	2100      	movs	r1, #0
 
-  80384f0:	2230      	movs	r2, #48	; 0x30
 
-  80384f2:	4668      	mov	r0, sp
 
-  80384f4:	f7e9 fb04 	bl	8021b00 <memset>
 
-   packet.status = (3 << 3) /* SNTP vesion 3 */ | (3 << 0); /* Mode: client */
 
-  80384f8:	231b      	movs	r3, #27
 
-   psend = pbuf_alloc(PBUF_RAW, sizeof(packet), PBUF_REF);
 
-  80384fa:	2003      	movs	r0, #3
 
-  80384fc:	2130      	movs	r1, #48	; 0x30
 
-  80384fe:	2202      	movs	r2, #2
 
- static void send_request(void)
 
- {
 
-   struct sntp_packet packet;
 
-   struct pbuf* psend;
 
-   memset(&packet, 0, sizeof(packet));
 
-   packet.status = (3 << 3) /* SNTP vesion 3 */ | (3 << 0); /* Mode: client */
 
-  8038500:	f88d 3000 	strb.w	r3, [sp]
 
-   psend = pbuf_alloc(PBUF_RAW, sizeof(packet), PBUF_REF);
 
-  8038504:	f7f7 fccf 	bl	802fea6 <pbuf_alloc>
 
-   
 
-   if (psend != 0)
 
-  8038508:	4604      	mov	r4, r0
 
-  803850a:	b1a0      	cbz	r0, 8038536 <SNTP_Poll+0x52>
 
-   {
 
-     psend->payload = &packet;
 
-  803850c:	ab00      	add	r3, sp, #0
 
-  803850e:	6043      	str	r3, [r0, #4]
 
-     timeout = (udp_sendto(upcb, psend, &server, port) == ERR_OK) ? SENT_TIMEOUT : SENDFAIL_TIMEOUT;
 
-  8038510:	4621      	mov	r1, r4
 
-  8038512:	4a0b      	ldr	r2, [pc, #44]	; (8038540 <SNTP_Poll+0x5c>)
 
-  8038514:	6828      	ldr	r0, [r5, #0]
 
-  8038516:	237b      	movs	r3, #123	; 0x7b
 
-  8038518:	f7fa fa9b 	bl	8032a52 <udp_sendto>
 
-  803851c:	f64e 2360 	movw	r3, #60000	; 0xea60
 
-  8038520:	f241 3288 	movw	r2, #5000	; 0x1388
 
-  8038524:	4907      	ldr	r1, [pc, #28]	; (8038544 <SNTP_Poll+0x60>)
 
-  8038526:	2800      	cmp	r0, #0
 
-  8038528:	bf14      	ite	ne
 
-  803852a:	4610      	movne	r0, r2
 
-  803852c:	4618      	moveq	r0, r3
 
-  803852e:	6008      	str	r0, [r1, #0]
 
-     pbuf_free(psend);
 
-  8038530:	4620      	mov	r0, r4
 
-  8038532:	f7f7 fc6b 	bl	802fe0c <pbuf_free>
 
- void SNTP_Poll(void)
 
- {
 
-   if (upcb)
 
-     send_request();
 
- }
 
-  8038536:	b00d      	add	sp, #52	; 0x34
 
-  8038538:	bd30      	pop	{r4, r5, pc}
 
-  803853a:	bf00      	nop
 
-  803853c:	2000c7f8 	.word	0x2000c7f8
 
-  8038540:	2000c7f4 	.word	0x2000c7f4
 
-  8038544:	2000c7fc 	.word	0x2000c7fc
 
- 08038548 <vTaskPeriodicSynchro>:
 
-   * @brief  Периодическая синхронизация времени.
 
-   *         Выполняется раз в сутки с 0 часов.
 
-   * @retval 
 
-   */
 
- void vTaskPeriodicSynchro(void *arg)
 
- {
 
-  8038548:	b530      	push	{r4, r5, lr}
 
-   static uint8_t fSinhro = 0;
 
-   
 
-   for (;;) 
 
-   {
 
- 	vTaskDelay(10000);
 
- 	if (sSettings.sSNTP.sntpEnable)
 
-  803854a:	4d0f      	ldr	r5, [pc, #60]	; (8038588 <vTaskPeriodicSynchro+0x40>)
 
- 	    fSinhro = 1;
 
- 		//printf("Periodic time sinhro\n\r");
 
- 	  }
 
- 	  
 
- 	  if (data.hours > 1)
 
- 	    fSinhro = 0;
 
-  803854c:	4c0f      	ldr	r4, [pc, #60]	; (803858c <vTaskPeriodicSynchro+0x44>)
 
-   * @brief  Периодическая синхронизация времени.
 
-   *         Выполняется раз в сутки с 0 часов.
 
-   * @retval 
 
-   */
 
- void vTaskPeriodicSynchro(void *arg)
 
- {
 
-  803854e:	b085      	sub	sp, #20
 
-   
 
-   static uint8_t fSinhro = 0;
 
-   
 
-   for (;;) 
 
-   {
 
- 	vTaskDelay(10000);
 
-  8038550:	f242 7010 	movw	r0, #10000	; 0x2710
 
-  8038554:	f7f2 fd3a 	bl	802afcc <vTaskDelay>
 
- 	if (sSettings.sSNTP.sntpEnable)
 
-  8038558:	f895 3340 	ldrb.w	r3, [r5, #832]	; 0x340
 
-  803855c:	2b00      	cmp	r3, #0
 
-  803855e:	d0f7      	beq.n	8038550 <vTaskPeriodicSynchro+0x8>
 
- 	{
 
- 	  TM_RTC_GetDateTime(&data, TM_RTC_Format_BIN);
 
-  8038560:	4668      	mov	r0, sp
 
-  8038562:	2100      	movs	r1, #0
 
-  8038564:	f7ed ff90 	bl	8026488 <TM_RTC_GetDateTime>
 
- 	  
 
- 	  /* Если пришло время синхронизации */
 
- 	  if ((data.hours == 0) && (fSinhro == 0))
 
-  8038568:	f89d 3005 	ldrb.w	r3, [sp, #5]
 
-  803856c:	b92b      	cbnz	r3, 803857a <vTaskPeriodicSynchro+0x32>
 
-  803856e:	7823      	ldrb	r3, [r4, #0]
 
-  8038570:	b91b      	cbnz	r3, 803857a <vTaskPeriodicSynchro+0x32>
 
- 	  {
 
- 		SNTP_Poll();
 
-  8038572:	f7ff ffb7 	bl	80384e4 <SNTP_Poll>
 
- 	    fSinhro = 1;
 
-  8038576:	2301      	movs	r3, #1
 
-  8038578:	7023      	strb	r3, [r4, #0]
 
- 		//printf("Periodic time sinhro\n\r");
 
- 	  }
 
- 	  
 
- 	  if (data.hours > 1)
 
-  803857a:	f89d 3005 	ldrb.w	r3, [sp, #5]
 
-  803857e:	2b01      	cmp	r3, #1
 
-  8038580:	d9e6      	bls.n	8038550 <vTaskPeriodicSynchro+0x8>
 
- 	    fSinhro = 0;
 
-  8038582:	2300      	movs	r3, #0
 
-  8038584:	7023      	strb	r3, [r4, #0]
 
-  8038586:	e7e3      	b.n	8038550 <vTaskPeriodicSynchro+0x8>
 
-  8038588:	2000cfc4 	.word	0x2000cfc4
 
-  803858c:	2000c7f1 	.word	0x2000c7f1
 
- 08038590 <vTaskOnceSynchro>:
 
- /**
 
-   * @brief  Синхронизация времени единоразово при включении контроллера
 
-   * @retval 
 
-   */
 
- void vTaskOnceSynchro(void *arg)
 
- {
 
-  8038590:	b538      	push	{r3, r4, r5, lr}
 
-   for (;;) 
 
-   {
 
- 	if (sSettings.sSNTP.sntpEnable)
 
-  8038592:	4d07      	ldr	r5, [pc, #28]	; (80385b0 <vTaskOnceSynchro+0x20>)
 
-  8038594:	4c07      	ldr	r4, [pc, #28]	; (80385b4 <vTaskOnceSynchro+0x24>)
 
-  8038596:	f895 3340 	ldrb.w	r3, [r5, #832]	; 0x340
 
-  803859a:	b12b      	cbz	r3, 80385a8 <vTaskOnceSynchro+0x18>
 
- 	{  
 
-       vTaskDelay(7000);
 
-  803859c:	f641 3058 	movw	r0, #7000	; 0x1b58
 
-  80385a0:	f7f2 fd14 	bl	802afcc <vTaskDelay>
 
-   	  SNTP_Poll();
 
-  80385a4:	f7ff ff9e 	bl	80384e4 <SNTP_Poll>
 
- 	  //printf("Once time sinhro\n\r");
 
- 	  vTaskDelete(xHandleSntpOnceSinhro);
 
- 	}
 
- 	else
 
- 	  vTaskDelete(xHandleSntpOnceSinhro);
 
-  80385a8:	6820      	ldr	r0, [r4, #0]
 
-  80385aa:	f7f2 fb4d 	bl	802ac48 <vTaskDelete>
 
-  80385ae:	e7f2      	b.n	8038596 <vTaskOnceSynchro+0x6>
 
-  80385b0:	2000cfc4 	.word	0x2000cfc4
 
-  80385b4:	20000b0c 	.word	0x20000b0c
 
- 080385b8 <SNMP_InitTrapsBase>:
 
-   * @retval 
 
-   */
 
- void SNMP_InitTrapsBase(void)
 
- {
 
-   /* 1. FWVersionUpdate */ // +
 
-   traps[FW_VERSION_UPDATE].trapId = FW_VERSION_UPDATE;
 
-  80385b8:	4b53      	ldr	r3, [pc, #332]	; (8038708 <SNMP_InitTrapsBase+0x150>)
 
-   traps[FW_VERSION_UPDATE].varbindId = 1;
 
-   traps[FW_VERSION_UPDATE].trapEnable = true;
 
-   traps[FW_VERSION_UPDATE].handle = GetVersionStr; /* FWVersion */
 
-  80385ba:	4954      	ldr	r1, [pc, #336]	; (803870c <SNMP_InitTrapsBase+0x154>)
 
-   
 
-   /* 2. FWVersionUpdated */ // +
 
-   traps[FW_VERSION_UPDATED].trapId = FW_VERSION_UPDATED;
 
-  80385bc:	2002      	movs	r0, #2
 
- /**
 
-   * @brief  Инициализация базы трапов
 
-   * @retval 
 
-   */
 
- void SNMP_InitTrapsBase(void)
 
- {
 
-  80385be:	b570      	push	{r4, r5, r6, lr}
 
-   traps[FW_VERSION_UPDATE].varbindId = 1;
 
-   traps[FW_VERSION_UPDATE].trapEnable = true;
 
-   traps[FW_VERSION_UPDATE].handle = GetVersionStr; /* FWVersion */
 
-   
 
-   /* 2. FWVersionUpdated */ // +
 
-   traps[FW_VERSION_UPDATED].trapId = FW_VERSION_UPDATED;
 
-  80385c0:	7458      	strb	r0, [r3, #17]
 
-   traps[FW_VERSION_UPDATED].varbindId = 1;
 
-   traps[FW_VERSION_UPDATED].trapEnable = true;
 
-   traps[FW_VERSION_UPDATED].handle = GetVersionStr; /* FWVersion */
 
-   
 
-   /* 3. DeviceRestored */ // +
 
-   traps[DEVICE_RESTORED].trapId = DEVICE_RESTORED;
 
-  80385c2:	2003      	movs	r0, #3
 
-  80385c4:	7658      	strb	r0, [r3, #25]
 
-   traps[DEVICE_RESTORED].varbindId = 1;
 
-   traps[DEVICE_RESTORED].trapEnable = true;
 
-   traps[DEVICE_RESTORED].handle = GetVersionStr;//GetRestore; /* RestoreSignal */
 
-   
 
-   /* 4. DeviceRebooted */ // +
 
-   traps[DEVICE_REBOOTED].trapId = DEVICE_REBOOTED;
 
-  80385c6:	2004      	movs	r0, #4
 
-   traps[DEVICE_REBOOTED].varbindId = 1;
 
-   traps[DEVICE_REBOOTED].trapEnable = true;
 
-   traps[DEVICE_REBOOTED].handle = GetVersionStr;//GetReboot; /* RebootSignal */
 
-   
 
-   /* 5. DI0Norm */ // +
 
-    traps[DI0_NORM].trapId = DI0_NORM;
 
-  80385c8:	2405      	movs	r4, #5
 
-   traps[DEVICE_RESTORED].varbindId = 1;
 
-   traps[DEVICE_RESTORED].trapEnable = true;
 
-   traps[DEVICE_RESTORED].handle = GetVersionStr;//GetRestore; /* RestoreSignal */
 
-   
 
-   /* 4. DeviceRebooted */ // +
 
-   traps[DEVICE_REBOOTED].trapId = DEVICE_REBOOTED;
 
-  80385ca:	f883 0021 	strb.w	r0, [r3, #33]	; 0x21
 
-    traps[DI0_NORM].varbindId = 9;
 
-    traps[DI0_NORM].trapEnable = true;
 
-    traps[DI0_NORM].handle = GetDIN0StatusStr; /* State DIN */
 
-    /* 6. DI0Alarm */ // +
 
-    traps[DI0_ALARM].trapId = DI0_ALARM;
 
-  80385ce:	2006      	movs	r0, #6
 
-   
 
-   /* 5. DI0Norm */ // +
 
-    traps[DI0_NORM].trapId = DI0_NORM;
 
-    traps[DI0_NORM].varbindId = 9;
 
-    traps[DI0_NORM].trapEnable = true;
 
-    traps[DI0_NORM].handle = GetDIN0StatusStr; /* State DIN */
 
-  80385d0:	4d4f      	ldr	r5, [pc, #316]	; (8038710 <SNMP_InitTrapsBase+0x158>)
 
-   traps[DEVICE_REBOOTED].varbindId = 1;
 
-   traps[DEVICE_REBOOTED].trapEnable = true;
 
-   traps[DEVICE_REBOOTED].handle = GetVersionStr;//GetReboot; /* RebootSignal */
 
-   
 
-   /* 5. DI0Norm */ // +
 
-    traps[DI0_NORM].trapId = DI0_NORM;
 
-  80385d2:	f883 4029 	strb.w	r4, [r3, #41]	; 0x29
 
-    traps[DI0_NORM].varbindId = 9;
 
-    traps[DI0_NORM].trapEnable = true;
 
-    traps[DI0_NORM].handle = GetDIN0StatusStr; /* State DIN */
 
-    /* 6. DI0Alarm */ // +
 
-    traps[DI0_ALARM].trapId = DI0_ALARM;
 
-  80385d6:	f883 0031 	strb.w	r0, [r3, #49]	; 0x31
 
-    traps[DI0_ALARM].trapEnable = true;
 
-    traps[DI0_ALARM].handle = GetDIN0StatusStr; /* State DIN */
 
-    /* 7. DO0Toggle */ // +
 
-     traps[DO0_TOGGLED].trapId = DO0_TOGGLED;
 
-     traps[DO0_TOGGLED].varbindId = 5;
 
-  80385da:	f883 403a 	strb.w	r4, [r3, #58]	; 0x3a
 
-     traps[DO0_TOGGLED].trapEnable = true;
 
-     traps[DO0_TOGGLED].handle = GetDOUT0StatusStr; /* State DO0 */
 
-     /* 8. DO1Toggle */ // +
 
-     traps[DO1_TOGGLED].trapId = DO1_TOGGLED;
 
-     traps[DO1_TOGGLED].varbindId = 6;
 
-  80385de:	f883 0042 	strb.w	r0, [r3, #66]	; 0x42
 
-    /* 7. DO0Toggle */ // +
 
-     traps[DO0_TOGGLED].trapId = DO0_TOGGLED;
 
-     traps[DO0_TOGGLED].varbindId = 5;
 
-     traps[DO0_TOGGLED].trapEnable = true;
 
-     traps[DO0_TOGGLED].handle = GetDOUT0StatusStr; /* State DO0 */
 
-  80385e2:	4c4c      	ldr	r4, [pc, #304]	; (8038714 <SNMP_InitTrapsBase+0x15c>)
 
-     /* 8. DO1Toggle */ // +
 
-     traps[DO1_TOGGLED].trapId = DO1_TOGGLED;
 
-     traps[DO1_TOGGLED].varbindId = 6;
 
-     traps[DO1_TOGGLED].trapEnable = true;
 
-     traps[DO1_TOGGLED].handle = GetDOUT1StatusStr; /* State DO1 */
 
-  80385e4:	484c      	ldr	r0, [pc, #304]	; (8038718 <SNMP_InitTrapsBase+0x160>)
 
- {
 
-   /* 1. FWVersionUpdate */ // +
 
-   traps[FW_VERSION_UPDATE].trapId = FW_VERSION_UPDATE;
 
-   traps[FW_VERSION_UPDATE].varbindId = 1;
 
-   traps[FW_VERSION_UPDATE].trapEnable = true;
 
-   traps[FW_VERSION_UPDATE].handle = GetVersionStr; /* FWVersion */
 
-  80385e6:	60d9      	str	r1, [r3, #12]
 
-   * @retval 
 
-   */
 
- void SNMP_InitTrapsBase(void)
 
- {
 
-   /* 1. FWVersionUpdate */ // +
 
-   traps[FW_VERSION_UPDATE].trapId = FW_VERSION_UPDATE;
 
-  80385e8:	2201      	movs	r2, #1
 
-   
 
-   /* 2. FWVersionUpdated */ // +
 
-   traps[FW_VERSION_UPDATED].trapId = FW_VERSION_UPDATED;
 
-   traps[FW_VERSION_UPDATED].varbindId = 1;
 
-   traps[FW_VERSION_UPDATED].trapEnable = true;
 
-   traps[FW_VERSION_UPDATED].handle = GetVersionStr; /* FWVersion */
 
-  80385ea:	6159      	str	r1, [r3, #20]
 
-   
 
-   /* 3. DeviceRestored */ // +
 
-   traps[DEVICE_RESTORED].trapId = DEVICE_RESTORED;
 
-   traps[DEVICE_RESTORED].varbindId = 1;
 
-   traps[DEVICE_RESTORED].trapEnable = true;
 
-   traps[DEVICE_RESTORED].handle = GetVersionStr;//GetRestore; /* RestoreSignal */
 
-  80385ec:	61d9      	str	r1, [r3, #28]
 
-   
 
-   /* 4. DeviceRebooted */ // +
 
-   traps[DEVICE_REBOOTED].trapId = DEVICE_REBOOTED;
 
-   traps[DEVICE_REBOOTED].varbindId = 1;
 
-   traps[DEVICE_REBOOTED].trapEnable = true;
 
-   traps[DEVICE_REBOOTED].handle = GetVersionStr;//GetReboot; /* RebootSignal */
 
-  80385ee:	6259      	str	r1, [r3, #36]	; 0x24
 
-   
 
-   /* 5. DI0Norm */ // +
 
-    traps[DI0_NORM].trapId = DI0_NORM;
 
-    traps[DI0_NORM].varbindId = 9;
 
-    traps[DI0_NORM].trapEnable = true;
 
-    traps[DI0_NORM].handle = GetDIN0StatusStr; /* State DIN */
 
-  80385f0:	62dd      	str	r5, [r3, #44]	; 0x2c
 
-   traps[DEVICE_REBOOTED].trapEnable = true;
 
-   traps[DEVICE_REBOOTED].handle = GetVersionStr;//GetReboot; /* RebootSignal */
 
-   
 
-   /* 5. DI0Norm */ // +
 
-    traps[DI0_NORM].trapId = DI0_NORM;
 
-    traps[DI0_NORM].varbindId = 9;
 
-  80385f2:	2109      	movs	r1, #9
 
-    /* 6. DI0Alarm */ // +
 
-    traps[DI0_ALARM].trapId = DI0_ALARM;
 
-    traps[DI0_ALARM].varbindId = 9;
 
-    traps[DI0_ALARM].trapEnable = true;
 
-    traps[DI0_ALARM].handle = GetDIN0StatusStr; /* State DIN */
 
-  80385f4:	635d      	str	r5, [r3, #52]	; 0x34
 
-    /* 7. DO0Toggle */ // +
 
-     traps[DO0_TOGGLED].trapId = DO0_TOGGLED;
 
-     traps[DO0_TOGGLED].varbindId = 5;
 
-     traps[DO0_TOGGLED].trapEnable = true;
 
-     traps[DO0_TOGGLED].handle = GetDOUT0StatusStr; /* State DO0 */
 
-  80385f6:	63dc      	str	r4, [r3, #60]	; 0x3c
 
-    traps[DI0_ALARM].varbindId = 9;
 
-    traps[DI0_ALARM].trapEnable = true;
 
-    traps[DI0_ALARM].handle = GetDIN0StatusStr; /* State DIN */
 
-    /* 7. DO0Toggle */ // +
 
-     traps[DO0_TOGGLED].trapId = DO0_TOGGLED;
 
-  80385f8:	2507      	movs	r5, #7
 
-     traps[DO0_TOGGLED].varbindId = 5;
 
-     traps[DO0_TOGGLED].trapEnable = true;
 
-     traps[DO0_TOGGLED].handle = GetDOUT0StatusStr; /* State DO0 */
 
-     /* 8. DO1Toggle */ // +
 
-     traps[DO1_TOGGLED].trapId = DO1_TOGGLED;
 
-  80385fa:	2408      	movs	r4, #8
 
-     traps[DO1_TOGGLED].varbindId = 6;
 
-     traps[DO1_TOGGLED].trapEnable = true;
 
-     traps[DO1_TOGGLED].handle = GetDOUT1StatusStr; /* State DO1 */
 
-  80385fc:	6458      	str	r0, [r3, #68]	; 0x44
 
-   /* 9. BatteryTemperatureNorm */ // +
 
-   traps[BATTERY_TEMPERATURE_NORM].trapId = BATTERY_TEMPERATURE_NORM;
 
-   traps[BATTERY_TEMPERATURE_NORM].varbindId = 10;
 
-   traps[BATTERY_TEMPERATURE_NORM].trapEnable = true;
 
-   traps[BATTERY_TEMPERATURE_NORM].handle = GetInternalTempStr; /* BatteryTemperature */  
 
-  80385fe:	4847      	ldr	r0, [pc, #284]	; (803871c <SNMP_InitTrapsBase+0x164>)
 
-   traps[DEVICE_REBOOTED].trapEnable = true;
 
-   traps[DEVICE_REBOOTED].handle = GetVersionStr;//GetReboot; /* RebootSignal */
 
-   
 
-   /* 5. DI0Norm */ // +
 
-    traps[DI0_NORM].trapId = DI0_NORM;
 
-    traps[DI0_NORM].varbindId = 9;
 
-  8038600:	f883 102a 	strb.w	r1, [r3, #42]	; 0x2a
 
-    traps[DI0_NORM].trapEnable = true;
 
-    traps[DI0_NORM].handle = GetDIN0StatusStr; /* State DIN */
 
-    /* 6. DI0Alarm */ // +
 
-    traps[DI0_ALARM].trapId = DI0_ALARM;
 
-    traps[DI0_ALARM].varbindId = 9;
 
-  8038604:	f883 1032 	strb.w	r1, [r3, #50]	; 0x32
 
-    traps[DI0_ALARM].trapEnable = true;
 
-    traps[DI0_ALARM].handle = GetDIN0StatusStr; /* State DIN */
 
-    /* 7. DO0Toggle */ // +
 
-     traps[DO0_TOGGLED].trapId = DO0_TOGGLED;
 
-  8038608:	f883 5039 	strb.w	r5, [r3, #57]	; 0x39
 
-     traps[DO0_TOGGLED].varbindId = 5;
 
-     traps[DO0_TOGGLED].trapEnable = true;
 
-     traps[DO0_TOGGLED].handle = GetDOUT0StatusStr; /* State DO0 */
 
-     /* 8. DO1Toggle */ // +
 
-     traps[DO1_TOGGLED].trapId = DO1_TOGGLED;
 
-  803860c:	f883 4041 	strb.w	r4, [r3, #65]	; 0x41
 
-   * @retval 
 
-   */
 
- void SNMP_InitTrapsBase(void)
 
- {
 
-   /* 1. FWVersionUpdate */ // +
 
-   traps[FW_VERSION_UPDATE].trapId = FW_VERSION_UPDATE;
 
-  8038610:	725a      	strb	r2, [r3, #9]
 
-   traps[FW_VERSION_UPDATE].varbindId = 1;
 
-  8038612:	729a      	strb	r2, [r3, #10]
 
-   traps[FW_VERSION_UPDATE].trapEnable = true;
 
-  8038614:	72da      	strb	r2, [r3, #11]
 
-   traps[FW_VERSION_UPDATE].handle = GetVersionStr; /* FWVersion */
 
-   
 
-   /* 2. FWVersionUpdated */ // +
 
-   traps[FW_VERSION_UPDATED].trapId = FW_VERSION_UPDATED;
 
-   traps[FW_VERSION_UPDATED].varbindId = 1;
 
-  8038616:	749a      	strb	r2, [r3, #18]
 
-   traps[FW_VERSION_UPDATED].trapEnable = true;
 
-  8038618:	74da      	strb	r2, [r3, #19]
 
-   traps[FW_VERSION_UPDATED].handle = GetVersionStr; /* FWVersion */
 
-   
 
-   /* 3. DeviceRestored */ // +
 
-   traps[DEVICE_RESTORED].trapId = DEVICE_RESTORED;
 
-   traps[DEVICE_RESTORED].varbindId = 1;
 
-  803861a:	769a      	strb	r2, [r3, #26]
 
-   traps[DEVICE_RESTORED].trapEnable = true;
 
-  803861c:	76da      	strb	r2, [r3, #27]
 
-   traps[DEVICE_RESTORED].handle = GetVersionStr;//GetRestore; /* RestoreSignal */
 
-   
 
-   /* 4. DeviceRebooted */ // +
 
-   traps[DEVICE_REBOOTED].trapId = DEVICE_REBOOTED;
 
-   traps[DEVICE_REBOOTED].varbindId = 1;
 
-  803861e:	f883 2022 	strb.w	r2, [r3, #34]	; 0x22
 
-   traps[DEVICE_REBOOTED].trapEnable = true;
 
-  8038622:	f883 2023 	strb.w	r2, [r3, #35]	; 0x23
 
-   traps[DEVICE_REBOOTED].handle = GetVersionStr;//GetReboot; /* RebootSignal */
 
-   
 
-   /* 5. DI0Norm */ // +
 
-    traps[DI0_NORM].trapId = DI0_NORM;
 
-    traps[DI0_NORM].varbindId = 9;
 
-    traps[DI0_NORM].trapEnable = true;
 
-  8038626:	f883 202b 	strb.w	r2, [r3, #43]	; 0x2b
 
-    traps[DI0_NORM].handle = GetDIN0StatusStr; /* State DIN */
 
-    /* 6. DI0Alarm */ // +
 
-    traps[DI0_ALARM].trapId = DI0_ALARM;
 
-    traps[DI0_ALARM].varbindId = 9;
 
-    traps[DI0_ALARM].trapEnable = true;
 
-  803862a:	f883 2033 	strb.w	r2, [r3, #51]	; 0x33
 
-    traps[DI0_ALARM].handle = GetDIN0StatusStr; /* State DIN */
 
-    /* 7. DO0Toggle */ // +
 
-     traps[DO0_TOGGLED].trapId = DO0_TOGGLED;
 
-     traps[DO0_TOGGLED].varbindId = 5;
 
-     traps[DO0_TOGGLED].trapEnable = true;
 
-  803862e:	f883 203b 	strb.w	r2, [r3, #59]	; 0x3b
 
-     traps[DO0_TOGGLED].handle = GetDOUT0StatusStr; /* State DO0 */
 
-     /* 8. DO1Toggle */ // +
 
-     traps[DO1_TOGGLED].trapId = DO1_TOGGLED;
 
-     traps[DO1_TOGGLED].varbindId = 6;
 
-     traps[DO1_TOGGLED].trapEnable = true;
 
-  8038632:	f883 2043 	strb.w	r2, [r3, #67]	; 0x43
 
-     traps[DO1_TOGGLED].handle = GetDOUT1StatusStr; /* State DO1 */
 
-   /* 9. BatteryTemperatureNorm */ // +
 
-   traps[BATTERY_TEMPERATURE_NORM].trapId = BATTERY_TEMPERATURE_NORM;
 
-  8038636:	f883 1049 	strb.w	r1, [r3, #73]	; 0x49
 
-   traps[BATTERY_TEMPERATURE_NORM].varbindId = 10;
 
-  803863a:	210a      	movs	r1, #10
 
-  803863c:	f883 104a 	strb.w	r1, [r3, #74]	; 0x4a
 
-   traps[BATTERY_TEMPERATURE_NORM].trapEnable = true;
 
-   traps[BATTERY_TEMPERATURE_NORM].handle = GetInternalTempStr; /* BatteryTemperature */  
 
-  8038640:	64d8      	str	r0, [r3, #76]	; 0x4c
 
-   
 
-   /* 10. BatteryTemperatureAlarm */ // +
 
-   traps[BATTERY_TEMPERATURE_ALARM].trapId = BATTERY_TEMPERATURE_ALARM;
 
-  8038642:	f883 1051 	strb.w	r1, [r3, #81]	; 0x51
 
-   traps[BATTERY_TEMPERATURE_ALARM].varbindId = 10;
 
-  8038646:	f883 1052 	strb.w	r1, [r3, #82]	; 0x52
 
-   traps[BATTERY_TEMPERATURE_ALARM].trapEnable = true;
 
-   traps[BATTERY_TEMPERATURE_ALARM].handle = GetInternalTempStr; /* BatteryTemperature */
 
-  803864a:	6558      	str	r0, [r3, #84]	; 0x54
 
-   
 
-   /* 11. LineAlarm */ // +
 
-   traps[LINE_ALARM].trapId = LINE_ALARM;
 
-  803864c:	210b      	movs	r1, #11
 
-   traps[LINE_ALARM].varbindId = 12;
 
-   traps[LINE_ALARM].trapEnable = true;
 
-   traps[LINE_ALARM].handle = GetInputVoltageStr; /* LineAlarm */
 
-  803864e:	4834      	ldr	r0, [pc, #208]	; (8038720 <SNMP_InitTrapsBase+0x168>)
 
-   traps[BATTERY_TEMPERATURE_ALARM].varbindId = 10;
 
-   traps[BATTERY_TEMPERATURE_ALARM].trapEnable = true;
 
-   traps[BATTERY_TEMPERATURE_ALARM].handle = GetInternalTempStr; /* BatteryTemperature */
 
-   
 
-   /* 11. LineAlarm */ // +
 
-   traps[LINE_ALARM].trapId = LINE_ALARM;
 
-  8038650:	f883 1059 	strb.w	r1, [r3, #89]	; 0x59
 
-   traps[LINE_ALARM].varbindId = 12;
 
-  8038654:	210c      	movs	r1, #12
 
-   traps[LOW_BAT_ALARM].varbindId = 15;
 
-   traps[LOW_BAT_ALARM].trapEnable = true;
 
-   traps[LOW_BAT_ALARM].handle = GetBatCapacityStr; /* LowBatAlarm */
 
-   
 
-   /* 14. LowBatNorm */ // +
 
-   traps[LOW_BAT_NORM].trapId = LOW_BAT_NORM;
 
-  8038656:	240e      	movs	r4, #14
 
-   
 
-   /* 15. PowerAlarm */ // +
 
-   traps[POWER_ALARM].trapId = POWER_ALARM;
 
-   traps[POWER_ALARM].varbindId = 14;
 
-   traps[POWER_ALARM].trapEnable = true;
 
-   traps[POWER_ALARM].handle = GetPowerStr; /* PowerAlarm */
 
-  8038658:	4d32      	ldr	r5, [pc, #200]	; (8038724 <SNMP_InitTrapsBase+0x16c>)
 
-   traps[BATTERY_TEMPERATURE_ALARM].trapEnable = true;
 
-   traps[BATTERY_TEMPERATURE_ALARM].handle = GetInternalTempStr; /* BatteryTemperature */
 
-   
 
-   /* 11. LineAlarm */ // +
 
-   traps[LINE_ALARM].trapId = LINE_ALARM;
 
-   traps[LINE_ALARM].varbindId = 12;
 
-  803865a:	f883 105a 	strb.w	r1, [r3, #90]	; 0x5a
 
-   traps[LINE_ALARM].trapEnable = true;
 
-   traps[LINE_ALARM].handle = GetInputVoltageStr; /* LineAlarm */
 
-  803865e:	65d8      	str	r0, [r3, #92]	; 0x5c
 
-   
 
-   /* 12. LineNorm */ // +
 
-   traps[LINE_NORM].trapId = LINE_NORM;
 
-  8038660:	f883 1061 	strb.w	r1, [r3, #97]	; 0x61
 
-   traps[LINE_NORM].varbindId = 12;
 
-  8038664:	f883 1062 	strb.w	r1, [r3, #98]	; 0x62
 
-   traps[LINE_NORM].trapEnable = true;
 
-   traps[LINE_NORM].handle = GetInputVoltageStr; /* LineNorm */
 
-  8038668:	6658      	str	r0, [r3, #100]	; 0x64
 
-   
 
-   /* 13. LowBatAlarm */ // +
 
-   traps[LOW_BAT_ALARM].trapId = LOW_BAT_ALARM;
 
-  803866a:	210d      	movs	r1, #13
 
-   traps[LOW_BAT_ALARM].varbindId = 15;
 
-   traps[LOW_BAT_ALARM].trapEnable = true;
 
-   traps[LOW_BAT_ALARM].handle = GetBatCapacityStr; /* LowBatAlarm */
 
-  803866c:	482e      	ldr	r0, [pc, #184]	; (8038728 <SNMP_InitTrapsBase+0x170>)
 
-   traps[LINE_NORM].varbindId = 12;
 
-   traps[LINE_NORM].trapEnable = true;
 
-   traps[LINE_NORM].handle = GetInputVoltageStr; /* LineNorm */
 
-   
 
-   /* 13. LowBatAlarm */ // +
 
-   traps[LOW_BAT_ALARM].trapId = LOW_BAT_ALARM;
 
-  803866e:	f883 1069 	strb.w	r1, [r3, #105]	; 0x69
 
-   traps[LOW_BAT_ALARM].varbindId = 15;
 
-   traps[LOW_BAT_ALARM].trapEnable = true;
 
-   traps[LOW_BAT_ALARM].handle = GetBatCapacityStr; /* LowBatAlarm */
 
-   
 
-   /* 14. LowBatNorm */ // +
 
-   traps[LOW_BAT_NORM].trapId = LOW_BAT_NORM;
 
-  8038672:	f883 4071 	strb.w	r4, [r3, #113]	; 0x71
 
-   traps[LINE_NORM].trapEnable = true;
 
-   traps[LINE_NORM].handle = GetInputVoltageStr; /* LineNorm */
 
-   
 
-   /* 13. LowBatAlarm */ // +
 
-   traps[LOW_BAT_ALARM].trapId = LOW_BAT_ALARM;
 
-   traps[LOW_BAT_ALARM].varbindId = 15;
 
-  8038676:	210f      	movs	r1, #15
 
-   traps[LOW_BAT_NORM].trapEnable = true;
 
-   traps[LOW_BAT_NORM].handle = GetBatCapacityStr; /* LowBatNorm */
 
-   
 
-   /* 15. PowerAlarm */ // +
 
-   traps[POWER_ALARM].trapId = POWER_ALARM;
 
-   traps[POWER_ALARM].varbindId = 14;
 
-  8038678:	f883 407a 	strb.w	r4, [r3, #122]	; 0x7a
 
-   traps[POWER_ALARM].trapEnable = true;
 
-   traps[POWER_ALARM].handle = GetPowerStr; /* PowerAlarm */
 
-   
 
-   /* 16. PowerNorm */ // +
 
-   traps[POWER_NORM].trapId = POWER_NORM;
 
-  803867c:	2610      	movs	r6, #16
 
-   traps[POWER_NORM].varbindId = 14;
 
-  803867e:	f883 4082 	strb.w	r4, [r3, #130]	; 0x82
 
-   traps[POWER_NORM].trapEnable = true;
 
-   traps[POWER_NORM].handle = GetPowerStr; /* PowerNorm */
 
-   
 
-   /* 17. ConnectMonitorAlarm */ //
 
-   traps[CONNECT_MONITOR_ALARM].trapId = CONNECT_MONITOR_ALARM;
 
-  8038682:	2411      	movs	r4, #17
 
-   
 
-   /* 15. PowerAlarm */ // +
 
-   traps[POWER_ALARM].trapId = POWER_ALARM;
 
-   traps[POWER_ALARM].varbindId = 14;
 
-   traps[POWER_ALARM].trapEnable = true;
 
-   traps[POWER_ALARM].handle = GetPowerStr; /* PowerAlarm */
 
-  8038684:	67dd      	str	r5, [r3, #124]	; 0x7c
 
-   
 
-   /* 16. PowerNorm */ // +
 
-   traps[POWER_NORM].trapId = POWER_NORM;
 
-  8038686:	f883 6081 	strb.w	r6, [r3, #129]	; 0x81
 
-   traps[POWER_NORM].varbindId = 14;
 
-   traps[POWER_NORM].trapEnable = true;
 
-   traps[POWER_NORM].handle = GetPowerStr; /* PowerNorm */
 
-  803868a:	f8c3 5084 	str.w	r5, [r3, #132]	; 0x84
 
-   
 
-   /* 17. ConnectMonitorAlarm */ //
 
-   traps[CONNECT_MONITOR_ALARM].trapId = CONNECT_MONITOR_ALARM;
 
-  803868e:	f883 4089 	strb.w	r4, [r3, #137]	; 0x89
 
-   traps[CONNECT_MONITOR_ALARM].varbindId = 17;
 
-  8038692:	f883 408a 	strb.w	r4, [r3, #138]	; 0x8a
 
-   traps[CONNECT_MONITOR_ALARM].trapEnable = true;
 
-   traps[CONNECT_MONITOR_ALARM].handle = GetConnectMonitorStr;//GetConnectMonitorStr; /* ConnectMonitor */
 
-  8038696:	4d25      	ldr	r5, [pc, #148]	; (803872c <SNMP_InitTrapsBase+0x174>)
 
-     traps[DO1_TOGGLED].handle = GetDOUT1StatusStr; /* State DO1 */
 
-   /* 9. BatteryTemperatureNorm */ // +
 
-   traps[BATTERY_TEMPERATURE_NORM].trapId = BATTERY_TEMPERATURE_NORM;
 
-   traps[BATTERY_TEMPERATURE_NORM].varbindId = 10;
 
-   traps[BATTERY_TEMPERATURE_NORM].trapEnable = true;
 
-  8038698:	f883 204b 	strb.w	r2, [r3, #75]	; 0x4b
 
-   traps[BATTERY_TEMPERATURE_NORM].handle = GetInternalTempStr; /* BatteryTemperature */  
 
-   
 
-   /* 10. BatteryTemperatureAlarm */ // +
 
-   traps[BATTERY_TEMPERATURE_ALARM].trapId = BATTERY_TEMPERATURE_ALARM;
 
-   traps[BATTERY_TEMPERATURE_ALARM].varbindId = 10;
 
-   traps[BATTERY_TEMPERATURE_ALARM].trapEnable = true;
 
-  803869c:	f883 2053 	strb.w	r2, [r3, #83]	; 0x53
 
-   traps[BATTERY_TEMPERATURE_ALARM].handle = GetInternalTempStr; /* BatteryTemperature */
 
-   
 
-   /* 11. LineAlarm */ // +
 
-   traps[LINE_ALARM].trapId = LINE_ALARM;
 
-   traps[LINE_ALARM].varbindId = 12;
 
-   traps[LINE_ALARM].trapEnable = true;
 
-  80386a0:	f883 205b 	strb.w	r2, [r3, #91]	; 0x5b
 
-   traps[LINE_ALARM].handle = GetInputVoltageStr; /* LineAlarm */
 
-   
 
-   /* 12. LineNorm */ // +
 
-   traps[LINE_NORM].trapId = LINE_NORM;
 
-   traps[LINE_NORM].varbindId = 12;
 
-   traps[LINE_NORM].trapEnable = true;
 
-  80386a4:	f883 2063 	strb.w	r2, [r3, #99]	; 0x63
 
-   traps[LINE_NORM].handle = GetInputVoltageStr; /* LineNorm */
 
-   
 
-   /* 13. LowBatAlarm */ // +
 
-   traps[LOW_BAT_ALARM].trapId = LOW_BAT_ALARM;
 
-   traps[LOW_BAT_ALARM].varbindId = 15;
 
-  80386a8:	f883 106a 	strb.w	r1, [r3, #106]	; 0x6a
 
-   traps[LOW_BAT_ALARM].trapEnable = true;
 
-  80386ac:	f883 206b 	strb.w	r2, [r3, #107]	; 0x6b
 
-   traps[LOW_BAT_ALARM].handle = GetBatCapacityStr; /* LowBatAlarm */
 
-  80386b0:	66d8      	str	r0, [r3, #108]	; 0x6c
 
-   
 
-   /* 14. LowBatNorm */ // +
 
-   traps[LOW_BAT_NORM].trapId = LOW_BAT_NORM;
 
-   traps[LOW_BAT_NORM].varbindId = 15;
 
-  80386b2:	f883 1072 	strb.w	r1, [r3, #114]	; 0x72
 
-   traps[LOW_BAT_NORM].trapEnable = true;
 
-  80386b6:	f883 2073 	strb.w	r2, [r3, #115]	; 0x73
 
-   traps[LOW_BAT_NORM].handle = GetBatCapacityStr; /* LowBatNorm */
 
-  80386ba:	6758      	str	r0, [r3, #116]	; 0x74
 
-   
 
-   /* 15. PowerAlarm */ // +
 
-   traps[POWER_ALARM].trapId = POWER_ALARM;
 
-  80386bc:	f883 1079 	strb.w	r1, [r3, #121]	; 0x79
 
-   traps[POWER_ALARM].varbindId = 14;
 
-   traps[POWER_ALARM].trapEnable = true;
 
-  80386c0:	f883 207b 	strb.w	r2, [r3, #123]	; 0x7b
 
-   traps[POWER_ALARM].handle = GetPowerStr; /* PowerAlarm */
 
-   
 
-   /* 16. PowerNorm */ // +
 
-   traps[POWER_NORM].trapId = POWER_NORM;
 
-   traps[POWER_NORM].varbindId = 14;
 
-   traps[POWER_NORM].trapEnable = true;
 
-  80386c4:	f883 2083 	strb.w	r2, [r3, #131]	; 0x83
 
-   traps[POWER_NORM].handle = GetPowerStr; /* PowerNorm */
 
-   
 
-   /* 17. ConnectMonitorAlarm */ //
 
-   traps[CONNECT_MONITOR_ALARM].trapId = CONNECT_MONITOR_ALARM;
 
-   traps[CONNECT_MONITOR_ALARM].varbindId = 17;
 
-   traps[CONNECT_MONITOR_ALARM].trapEnable = true;
 
-  80386c8:	f883 208b 	strb.w	r2, [r3, #139]	; 0x8b
 
-   traps[CONNECT_MONITOR_ALARM].handle = GetConnectMonitorStr;//GetConnectMonitorStr; /* ConnectMonitor */
 
-   
 
-   /* 18. ConnectMonitorNorm */ //
 
-   traps[CONNECT_MONITOR_NORM].trapId = CONNECT_MONITOR_NORM;
 
-   traps[CONNECT_MONITOR_NORM].varbindId = 17;
 
-  80386cc:	f883 4092 	strb.w	r4, [r3, #146]	; 0x92
 
-   traps[CONNECT_MONITOR_NORM].trapEnable = true;
 
-   traps[CONNECT_MONITOR_NORM].handle = GetConnectMonitorStr;//GetConnectMonitorStr; /* ConnectMonitor */
 
-   /* 19. BatteryConnectAlarm */ // +
 
-   traps[BATTERY_CONNECT_ALARM].trapId = BATTERY_CONNECT_ALARM;
 
-  80386d0:	2413      	movs	r4, #19
 
-   traps[CONNECT_MONITOR_ALARM].varbindId = 17;
 
-   traps[CONNECT_MONITOR_ALARM].trapEnable = true;
 
-   traps[CONNECT_MONITOR_ALARM].handle = GetConnectMonitorStr;//GetConnectMonitorStr; /* ConnectMonitor */
 
-   
 
-   /* 18. ConnectMonitorNorm */ //
 
-   traps[CONNECT_MONITOR_NORM].trapId = CONNECT_MONITOR_NORM;
 
-  80386d2:	2612      	movs	r6, #18
 
-   traps[CONNECT_MONITOR_NORM].varbindId = 17;
 
-   traps[CONNECT_MONITOR_NORM].trapEnable = true;
 
-   traps[CONNECT_MONITOR_NORM].handle = GetConnectMonitorStr;//GetConnectMonitorStr; /* ConnectMonitor */
 
-   /* 19. BatteryConnectAlarm */ // +
 
-   traps[BATTERY_CONNECT_ALARM].trapId = BATTERY_CONNECT_ALARM;
 
-  80386d4:	f883 4099 	strb.w	r4, [r3, #153]	; 0x99
 
-   traps[BATTERY_CONNECT_ALARM].varbindId = 15;
 
-   traps[BATTERY_CONNECT_ALARM].trapEnable = true;
 
-   traps[BATTERY_CONNECT_ALARM].handle = GetBatCapacityStr; /* LowBatAlarm */
 
-   /* 20. BatteryConnectNorm */ // +
 
-   traps[BATTERY_CONNECT_NORM].trapId = BATTERY_CONNECT_NORM;
 
-  80386d8:	2414      	movs	r4, #20
 
-   
 
-   /* 17. ConnectMonitorAlarm */ //
 
-   traps[CONNECT_MONITOR_ALARM].trapId = CONNECT_MONITOR_ALARM;
 
-   traps[CONNECT_MONITOR_ALARM].varbindId = 17;
 
-   traps[CONNECT_MONITOR_ALARM].trapEnable = true;
 
-   traps[CONNECT_MONITOR_ALARM].handle = GetConnectMonitorStr;//GetConnectMonitorStr; /* ConnectMonitor */
 
-  80386da:	f8c3 508c 	str.w	r5, [r3, #140]	; 0x8c
 
-   
 
-   /* 18. ConnectMonitorNorm */ //
 
-   traps[CONNECT_MONITOR_NORM].trapId = CONNECT_MONITOR_NORM;
 
-  80386de:	f883 6091 	strb.w	r6, [r3, #145]	; 0x91
 
-   traps[CONNECT_MONITOR_NORM].varbindId = 17;
 
-   traps[CONNECT_MONITOR_NORM].trapEnable = true;
 
-  80386e2:	f883 2093 	strb.w	r2, [r3, #147]	; 0x93
 
-   traps[CONNECT_MONITOR_NORM].handle = GetConnectMonitorStr;//GetConnectMonitorStr; /* ConnectMonitor */
 
-  80386e6:	f8c3 5094 	str.w	r5, [r3, #148]	; 0x94
 
-   /* 19. BatteryConnectAlarm */ // +
 
-   traps[BATTERY_CONNECT_ALARM].trapId = BATTERY_CONNECT_ALARM;
 
-   traps[BATTERY_CONNECT_ALARM].varbindId = 15;
 
-  80386ea:	f883 109a 	strb.w	r1, [r3, #154]	; 0x9a
 
-   traps[BATTERY_CONNECT_ALARM].trapEnable = true;
 
-  80386ee:	f883 209b 	strb.w	r2, [r3, #155]	; 0x9b
 
-   traps[BATTERY_CONNECT_ALARM].handle = GetBatCapacityStr; /* LowBatAlarm */
 
-  80386f2:	f8c3 009c 	str.w	r0, [r3, #156]	; 0x9c
 
-   /* 20. BatteryConnectNorm */ // +
 
-   traps[BATTERY_CONNECT_NORM].trapId = BATTERY_CONNECT_NORM;
 
-  80386f6:	f883 40a1 	strb.w	r4, [r3, #161]	; 0xa1
 
-   traps[BATTERY_CONNECT_NORM].varbindId = 15;
 
-  80386fa:	f883 10a2 	strb.w	r1, [r3, #162]	; 0xa2
 
-   traps[BATTERY_CONNECT_NORM].trapEnable = true;
 
-  80386fe:	f883 20a3 	strb.w	r2, [r3, #163]	; 0xa3
 
-   traps[BATTERY_CONNECT_NORM].handle = GetBatCapacityStr; /* LowBatNorm */
 
-  8038702:	f8c3 00a4 	str.w	r0, [r3, #164]	; 0xa4
 
-  8038706:	bd70      	pop	{r4, r5, r6, pc}
 
-  8038708:	2000fabc 	.word	0x2000fabc
 
-  803870c:	08027cc9 	.word	0x08027cc9
 
-  8038710:	08027b79 	.word	0x08027b79
 
-  8038714:	08027bed 	.word	0x08027bed
 
-  8038718:	08027c11 	.word	0x08027c11
 
-  803871c:	08027949 	.word	0x08027949
 
-  8038720:	08027885 	.word	0x08027885
 
-  8038724:	080278dd 	.word	0x080278dd
 
-  8038728:	08027901 	.word	0x08027901
 
-  803872c:	08027999 	.word	0x08027999
 
- 08038730 <SNMP_SendVarbindTrap>:
 
- /**
 
-   * @brief  Отправка трапа с переменной, зарегистрированного в базе.
 
-   * @retval 
 
-   */
 
- bool SNMP_SendVarbindTrap(TRAP_t *trap)
 
- {
 
-  8038730:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 
-   char msg[255];
 
-   uint8_t len = 0;
 
-  8038734:	2500      	movs	r5, #0
 
- /**
 
-   * @brief  Отправка трапа с переменной, зарегистрированного в базе.
 
-   * @retval 
 
-   */
 
- bool SNMP_SendVarbindTrap(TRAP_t *trap)
 
- {
 
-  8038736:	f5ad 7d07 	sub.w	sp, sp, #540	; 0x21c
 
-  803873a:	4681      	mov	r9, r0
 
-   char msg[255];
 
-   uint8_t len = 0;
 
-   struct snmp_varbind *vb;
 
-   struct snmp_obj_id trapObjId = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 3, 2, 1}};
 
-  803873c:	4629      	mov	r1, r5
 
-  803873e:	2284      	movs	r2, #132	; 0x84
 
-  8038740:	a804      	add	r0, sp, #16
 
-   * @retval 
 
-   */
 
- bool SNMP_SendVarbindTrap(TRAP_t *trap)
 
- {
 
-   char msg[255];
 
-   uint8_t len = 0;
 
-  8038742:	f88d 500f 	strb.w	r5, [sp, #15]
 
-   struct snmp_varbind *vb;
 
-   struct snmp_obj_id trapObjId = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 3, 2, 1}};
 
-  8038746:	f7e9 f9db 	bl	8021b00 <memset>
 
-  803874a:	2202      	movs	r2, #2
 
-  803874c:	2401      	movs	r4, #1
 
-  803874e:	2603      	movs	r6, #3
 
-  8038750:	230b      	movs	r3, #11
 
-  8038752:	f04f 0804 	mov.w	r8, #4
 
-  8038756:	2706      	movs	r7, #6
 
-  8038758:	f24a 3b18 	movw	fp, #41752	; 0xa318
 
-  803875c:	f240 3a8f 	movw	sl, #911	; 0x38f
 
-  8038760:	920e      	str	r2, [sp, #56]	; 0x38
 
-   struct snmp_obj_id varObjId  = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 3, 1, 1}};
 
-  8038762:	4629      	mov	r1, r5
 
-  8038764:	2284      	movs	r2, #132	; 0x84
 
-  8038766:	a825      	add	r0, sp, #148	; 0x94
 
- bool SNMP_SendVarbindTrap(TRAP_t *trap)
 
- {
 
-   char msg[255];
 
-   uint8_t len = 0;
 
-   struct snmp_varbind *vb;
 
-   struct snmp_obj_id trapObjId = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 3, 2, 1}};
 
-  8038768:	f88d 3010 	strb.w	r3, [sp, #16]
 
-  803876c:	9606      	str	r6, [sp, #24]
 
-  803876e:	960d      	str	r6, [sp, #52]	; 0x34
 
-   struct snmp_obj_id varObjId  = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 3, 1, 1}};
 
-  8038770:	9301      	str	r3, [sp, #4]
 
- bool SNMP_SendVarbindTrap(TRAP_t *trap)
 
- {
 
-   char msg[255];
 
-   uint8_t len = 0;
 
-   struct snmp_varbind *vb;
 
-   struct snmp_obj_id trapObjId = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 3, 2, 1}};
 
-  8038772:	9405      	str	r4, [sp, #20]
 
-  8038774:	9707      	str	r7, [sp, #28]
 
-  8038776:	9408      	str	r4, [sp, #32]
 
-  8038778:	f8cd 8024 	str.w	r8, [sp, #36]	; 0x24
 
-  803877c:	940a      	str	r4, [sp, #40]	; 0x28
 
-  803877e:	f8cd b02c 	str.w	fp, [sp, #44]	; 0x2c
 
-  8038782:	f8cd a030 	str.w	sl, [sp, #48]	; 0x30
 
-   struct snmp_obj_id varObjId  = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 3, 1, 1}};
 
-  8038786:	f7e9 f9bb 	bl	8021b00 <memset>
 
-  803878a:	9b01      	ldr	r3, [sp, #4]
 
-  803878c:	9627      	str	r6, [sp, #156]	; 0x9c
 
-  803878e:	f88d 3094 	strb.w	r3, [sp, #148]	; 0x94
 
-   
 
-   trapObjId.id[trapObjId.len - 1] = trap->trapId;
 
-  8038792:	f899 3001 	ldrb.w	r3, [r9, #1]
 
- {
 
-   char msg[255];
 
-   uint8_t len = 0;
 
-   struct snmp_varbind *vb;
 
-   struct snmp_obj_id trapObjId = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 3, 2, 1}};
 
-   struct snmp_obj_id varObjId  = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 3, 1, 1}};
 
-  8038796:	962e      	str	r6, [sp, #184]	; 0xb8
 
-   
 
-   trapObjId.id[trapObjId.len - 1] = trap->trapId;
 
-  8038798:	930f      	str	r3, [sp, #60]	; 0x3c
 
-   varObjId.id[varObjId.len - 1] = trap->varbindId;
 
-  803879a:	f899 3002 	ldrb.w	r3, [r9, #2]
 
- {
 
-   char msg[255];
 
-   uint8_t len = 0;
 
-   struct snmp_varbind *vb;
 
-   struct snmp_obj_id trapObjId = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 3, 2, 1}};
 
-   struct snmp_obj_id varObjId  = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 3, 1, 1}};
 
-  803879e:	9426      	str	r4, [sp, #152]	; 0x98
 
-   
 
-   trapObjId.id[trapObjId.len - 1] = trap->trapId;
 
-   varObjId.id[varObjId.len - 1] = trap->varbindId;
 
-  80387a0:	9330      	str	r3, [sp, #192]	; 0xc0
 
-     
 
-   trap->handle(msg, &len);
 
-  80387a2:	a846      	add	r0, sp, #280	; 0x118
 
-  80387a4:	f8d9 3004 	ldr.w	r3, [r9, #4]
 
- {
 
-   char msg[255];
 
-   uint8_t len = 0;
 
-   struct snmp_varbind *vb;
 
-   struct snmp_obj_id trapObjId = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 3, 2, 1}};
 
-   struct snmp_obj_id varObjId  = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 3, 1, 1}};
 
-  80387a8:	9728      	str	r7, [sp, #160]	; 0xa0
 
-   
 
-   trapObjId.id[trapObjId.len - 1] = trap->trapId;
 
-   varObjId.id[varObjId.len - 1] = trap->varbindId;
 
-     
 
-   trap->handle(msg, &len);
 
-  80387aa:	f10d 010f 	add.w	r1, sp, #15
 
- {
 
-   char msg[255];
 
-   uint8_t len = 0;
 
-   struct snmp_varbind *vb;
 
-   struct snmp_obj_id trapObjId = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 3, 2, 1}};
 
-   struct snmp_obj_id varObjId  = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 3, 1, 1}};
 
-  80387ae:	9429      	str	r4, [sp, #164]	; 0xa4
 
-  80387b0:	f8cd 80a8 	str.w	r8, [sp, #168]	; 0xa8
 
-  80387b4:	942b      	str	r4, [sp, #172]	; 0xac
 
-  80387b6:	f8cd b0b0 	str.w	fp, [sp, #176]	; 0xb0
 
-  80387ba:	f8cd a0b4 	str.w	sl, [sp, #180]	; 0xb4
 
-  80387be:	942f      	str	r4, [sp, #188]	; 0xbc
 
-   
 
-   trapObjId.id[trapObjId.len - 1] = trap->trapId;
 
-   varObjId.id[varObjId.len - 1] = trap->varbindId;
 
-     
 
-   trap->handle(msg, &len);
 
-  80387c0:	4798      	blx	r3
 
-   vb = snmp_varbind_alloc(&varObjId, SNMP_ASN1_OC_STR, len);
 
-  80387c2:	a825      	add	r0, sp, #148	; 0x94
 
-  80387c4:	4641      	mov	r1, r8
 
-  80387c6:	f89d 200f 	ldrb.w	r2, [sp, #15]
 
-  80387ca:	f7fc ffb5 	bl	8035738 <snmp_varbind_alloc>
 
-     
 
-   if(vb != NULL ) {
 
-  80387ce:	4606      	mov	r6, r0
 
-  80387d0:	b198      	cbz	r0, 80387fa <SNMP_SendVarbindTrap+0xca>
 
-         memcpy(vb->value, msg, len);
 
-  80387d2:	f89d 200f 	ldrb.w	r2, [sp, #15]
 
-  80387d6:	6940      	ldr	r0, [r0, #20]
 
-  80387d8:	a946      	add	r1, sp, #280	; 0x118
 
-  80387da:	f7e9 f8d7 	bl	802198c <memcpy>
 
-   
 
- 	snmp_varbind_tail_add(&trap_msg.outvb, vb);
 
-  80387de:	4809      	ldr	r0, [pc, #36]	; (8038804 <SNMP_SendVarbindTrap+0xd4>)
 
-  80387e0:	4631      	mov	r1, r6
 
-  80387e2:	f7fd f855 	bl	8035890 <snmp_varbind_tail_add>
 
- 			
 
-         snmp_send_trap(SNMP_GENTRAP_ENTERPRISESPC, &trapObjId, 0);
 
-  80387e6:	a904      	add	r1, sp, #16
 
-  80387e8:	462a      	mov	r2, r5
 
-  80387ea:	4638      	mov	r0, r7
 
-  80387ec:	f7fe f9c0 	bl	8036b70 <snmp_send_trap>
 
- 	  
 
-         snmp_varbind_list_free(&trap_msg.outvb);
 
-  80387f0:	4804      	ldr	r0, [pc, #16]	; (8038804 <SNMP_SendVarbindTrap+0xd4>)
 
-  80387f2:	f7fc fff4 	bl	80357de <snmp_varbind_list_free>
 
-   
 
-         return true;
 
-  80387f6:	4620      	mov	r0, r4
 
-  80387f8:	e7ff      	b.n	80387fa <SNMP_SendVarbindTrap+0xca>
 
-   }
 
-   else {
 
-         return false;
 
-   }
 
- }  
 
-  80387fa:	f50d 7d07 	add.w	sp, sp, #540	; 0x21c
 
-  80387fe:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
 
-  8038802:	bf00      	nop
 
-  8038804:	2000f844 	.word	0x2000f844
 
- 08038808 <udp_message>:
 
- char dataBuf1[DATA_BUF_LEN1];
 
- static uint8_t udp_type_message = 0;  //0 - идентификационное сообщение; 1 - сообщение с настройками сети
 
- void udp_message(char *buf)
 
- {
 
-  8038808:	b570      	push	{r4, r5, r6, lr}
 
- 	uint8_t len2 = 0;
 
-  803880a:	2600      	movs	r6, #0
 
- char dataBuf1[DATA_BUF_LEN1];
 
- static uint8_t udp_type_message = 0;  //0 - идентификационное сообщение; 1 - сообщение с настройками сети
 
- void udp_message(char *buf)
 
- {
 
-  803880c:	b09a      	sub	sp, #104	; 0x68
 
-  803880e:	4604      	mov	r4, r0
 
- 	uint8_t len2 = 0;
 
- 	char str[97];
 
- 	memset(str, 0, 97);
 
-  8038810:	2261      	movs	r2, #97	; 0x61
 
-  8038812:	4631      	mov	r1, r6
 
-  8038814:	a801      	add	r0, sp, #4
 
- 	GetModelStr(str, &len2);
 
- 	strncat(buf, str, len2);
 
- 	strcat(buf, ";");
 
-  8038816:	4d2b      	ldr	r5, [pc, #172]	; (80388c4 <udp_message+0xbc>)
 
- static uint8_t udp_type_message = 0;  //0 - идентификационное сообщение; 1 - сообщение с настройками сети
 
- void udp_message(char *buf)
 
- {
 
- 	uint8_t len2 = 0;
 
-  8038818:	f88d 6003 	strb.w	r6, [sp, #3]
 
- 	char str[97];
 
- 	memset(str, 0, 97);
 
-  803881c:	f7e9 f970 	bl	8021b00 <memset>
 
- 	GetModelStr(str, &len2);
 
-  8038820:	a801      	add	r0, sp, #4
 
-  8038822:	f10d 0103 	add.w	r1, sp, #3
 
-  8038826:	f7ef fa2b 	bl	8027c80 <GetModelStr>
 
- 	strncat(buf, str, len2);
 
-  803882a:	f89d 2003 	ldrb.w	r2, [sp, #3]
 
-  803882e:	a901      	add	r1, sp, #4
 
-  8038830:	4620      	mov	r0, r4
 
-  8038832:	f7e9 fb6d 	bl	8021f10 <strncat>
 
- 	strcat(buf, ";");
 
-  8038836:	4629      	mov	r1, r5
 
-  8038838:	4620      	mov	r0, r4
 
-  803883a:	f7e9 f9c7 	bl	8021bcc <strcat>
 
- 	GetSerialNumberStr(str, &len2);
 
-  803883e:	a801      	add	r0, sp, #4
 
-  8038840:	f10d 0103 	add.w	r1, sp, #3
 
-  8038844:	f7ef fa64 	bl	8027d10 <GetSerialNumberStr>
 
- 	strncat(buf, str, len2);
 
-  8038848:	f89d 2003 	ldrb.w	r2, [sp, #3]
 
-  803884c:	a901      	add	r1, sp, #4
 
-  803884e:	4620      	mov	r0, r4
 
-  8038850:	f7e9 fb5e 	bl	8021f10 <strncat>
 
- 	strcat(buf, ";");
 
-  8038854:	4629      	mov	r1, r5
 
-  8038856:	4620      	mov	r0, r4
 
-  8038858:	f7e9 f9b8 	bl	8021bcc <strcat>
 
- 	GetMacStr(str, &len2);
 
-  803885c:	a801      	add	r0, sp, #4
 
-  803885e:	f10d 0103 	add.w	r1, sp, #3
 
-  8038862:	f7ef fa43 	bl	8027cec <GetMacStr>
 
- 	strncat(buf, str, len2);
 
-  8038866:	f89d 2003 	ldrb.w	r2, [sp, #3]
 
-  803886a:	a901      	add	r1, sp, #4
 
-  803886c:	4620      	mov	r0, r4
 
-  803886e:	f7e9 fb4f 	bl	8021f10 <strncat>
 
- 	strcat(buf, ";");
 
-  8038872:	4629      	mov	r1, r5
 
-  8038874:	4620      	mov	r0, r4
 
-  8038876:	f7e9 f9a9 	bl	8021bcc <strcat>
 
- 	GetVersionStr(str, &len2);
 
-  803887a:	a801      	add	r0, sp, #4
 
-  803887c:	f10d 0103 	add.w	r1, sp, #3
 
-  8038880:	f7ef fa22 	bl	8027cc8 <GetVersionStr>
 
- 	strncat(buf, str, len2);
 
-  8038884:	f89d 2003 	ldrb.w	r2, [sp, #3]
 
-  8038888:	a901      	add	r1, sp, #4
 
-  803888a:	4620      	mov	r0, r4
 
-  803888c:	f7e9 fb40 	bl	8021f10 <strncat>
 
- 	strcat(buf, ";;;");
 
-  8038890:	4620      	mov	r0, r4
 
-  8038892:	490d      	ldr	r1, [pc, #52]	; (80388c8 <udp_message+0xc0>)
 
-  8038894:	f7e9 f99a 	bl	8021bcc <strcat>
 
- 	memset(str, 0, 97);
 
-  8038898:	2261      	movs	r2, #97	; 0x61
 
-  803889a:	4631      	mov	r1, r6
 
-  803889c:	a801      	add	r0, sp, #4
 
-  803889e:	f7e9 f92f 	bl	8021b00 <memset>
 
- 	GetSTM32IDStr(str, &len2);
 
-  80388a2:	a801      	add	r0, sp, #4
 
-  80388a4:	f10d 0103 	add.w	r1, sp, #3
 
-  80388a8:	f7ee f93c 	bl	8026b24 <GetSTM32IDStr>
 
- 	strncat(buf, str, len2);
 
-  80388ac:	a901      	add	r1, sp, #4
 
-  80388ae:	4620      	mov	r0, r4
 
-  80388b0:	f89d 2003 	ldrb.w	r2, [sp, #3]
 
-  80388b4:	f7e9 fb2c 	bl	8021f10 <strncat>
 
- 	strcat(buf, ";;;T2OK;;");
 
-  80388b8:	4620      	mov	r0, r4
 
-  80388ba:	4904      	ldr	r1, [pc, #16]	; (80388cc <udp_message+0xc4>)
 
-  80388bc:	f7e9 f986 	bl	8021bcc <strcat>
 
- }
 
-  80388c0:	b01a      	add	sp, #104	; 0x68
 
-  80388c2:	bd70      	pop	{r4, r5, r6, pc}
 
-  80388c4:	08045b19 	.word	0x08045b19
 
-  80388c8:	08045b17 	.word	0x08045b17
 
-  80388cc:	08045b1b 	.word	0x08045b1b
 
- 080388d0 <udp_message_netSettings>:
 
- void udp_message_netSettings(char *buf)
 
- {
 
-  80388d0:	b510      	push	{r4, lr}
 
-  80388d2:	b09a      	sub	sp, #104	; 0x68
 
-  80388d4:	4604      	mov	r4, r0
 
-   char str[100];
 
-   uint8_t len;
 
-   /* S/N */
 
-   GetSerialNumberStr(str, &len);
 
-  80388d6:	f10d 0103 	add.w	r1, sp, #3
 
-  80388da:	a801      	add	r0, sp, #4
 
-  80388dc:	f7ef fa18 	bl	8027d10 <GetSerialNumberStr>
 
-   strcat(buf, "{\"serno\":\"");
 
-  80388e0:	4620      	mov	r0, r4
 
-  80388e2:	4926      	ldr	r1, [pc, #152]	; (803897c <udp_message_netSettings+0xac>)
 
-  80388e4:	f7e9 f972 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  80388e8:	f89d 2003 	ldrb.w	r2, [sp, #3]
 
-  80388ec:	a901      	add	r1, sp, #4
 
-  80388ee:	4620      	mov	r0, r4
 
-  80388f0:	f7e9 fb0e 	bl	8021f10 <strncat>
 
-   /* WEB */
 
-   GetDhcpStateUDP(str, &len);
 
-  80388f4:	a801      	add	r0, sp, #4
 
-  80388f6:	f10d 0103 	add.w	r1, sp, #3
 
-  80388fa:	f7ef fb01 	bl	8027f00 <GetDhcpStateUDP>
 
-   strcat(buf, "\",\"dhcp\":\"");
 
-  80388fe:	4620      	mov	r0, r4
 
-  8038900:	491f      	ldr	r1, [pc, #124]	; (8038980 <udp_message_netSettings+0xb0>)
 
-  8038902:	f7e9 f963 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  8038906:	f89d 2003 	ldrb.w	r2, [sp, #3]
 
-  803890a:	a901      	add	r1, sp, #4
 
-  803890c:	4620      	mov	r0, r4
 
-  803890e:	f7e9 faff 	bl	8021f10 <strncat>
 
-   GetIpStr(str, &len);
 
-  8038912:	a801      	add	r0, sp, #4
 
-  8038914:	f10d 0103 	add.w	r1, sp, #3
 
-  8038918:	f7ef fa9c 	bl	8027e54 <GetIpStr>
 
-   strcat(buf, "\",\"ipaddress\":\"");
 
-  803891c:	4620      	mov	r0, r4
 
-  803891e:	4919      	ldr	r1, [pc, #100]	; (8038984 <udp_message_netSettings+0xb4>)
 
-  8038920:	f7e9 f954 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  8038924:	f89d 2003 	ldrb.w	r2, [sp, #3]
 
-  8038928:	a901      	add	r1, sp, #4
 
-  803892a:	4620      	mov	r0, r4
 
-  803892c:	f7e9 faf0 	bl	8021f10 <strncat>
 
-   GetGatewayStr(str, &len);
 
-  8038930:	a801      	add	r0, sp, #4
 
-  8038932:	f10d 0103 	add.w	r1, sp, #3
 
-  8038936:	f7ef faa3 	bl	8027e80 <GetGatewayStr>
 
-   strcat(buf, "\",\"gateway\":\"");
 
-  803893a:	4620      	mov	r0, r4
 
-  803893c:	4912      	ldr	r1, [pc, #72]	; (8038988 <udp_message_netSettings+0xb8>)
 
-  803893e:	f7e9 f945 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  8038942:	f89d 2003 	ldrb.w	r2, [sp, #3]
 
-  8038946:	a901      	add	r1, sp, #4
 
-  8038948:	4620      	mov	r0, r4
 
-  803894a:	f7e9 fae1 	bl	8021f10 <strncat>
 
-   GetMaskStr(str, &len);
 
-  803894e:	a801      	add	r0, sp, #4
 
-  8038950:	f10d 0103 	add.w	r1, sp, #3
 
-  8038954:	f7ef faaa 	bl	8027eac <GetMaskStr>
 
-   strcat(buf, "\",\"mask\":\"");
 
-  8038958:	4620      	mov	r0, r4
 
-  803895a:	490c      	ldr	r1, [pc, #48]	; (803898c <udp_message_netSettings+0xbc>)
 
-  803895c:	f7e9 f936 	bl	8021bcc <strcat>
 
-   strncat(buf, str, len);
 
-  8038960:	a901      	add	r1, sp, #4
 
-  8038962:	f89d 2003 	ldrb.w	r2, [sp, #3]
 
-  8038966:	4620      	mov	r0, r4
 
-  8038968:	f7e9 fad2 	bl	8021f10 <strncat>
 
-   strncat(buf, "\"}", 2);
 
-  803896c:	4620      	mov	r0, r4
 
-  803896e:	4908      	ldr	r1, [pc, #32]	; (8038990 <udp_message_netSettings+0xc0>)
 
-  8038970:	2202      	movs	r2, #2
 
-  8038972:	f7e9 facd 	bl	8021f10 <strncat>
 
- }
 
-  8038976:	b01a      	add	sp, #104	; 0x68
 
-  8038978:	bd10      	pop	{r4, pc}
 
-  803897a:	bf00      	nop
 
-  803897c:	08045b25 	.word	0x08045b25
 
-  8038980:	08045b30 	.word	0x08045b30
 
-  8038984:	08045b3b 	.word	0x08045b3b
 
-  8038988:	08045b4b 	.word	0x08045b4b
 
-  803898c:	08044de6 	.word	0x08044de6
 
-  8038990:	08044d4f 	.word	0x08044d4f
 
- 08038994 <GetUDPParamValue>:
 
- uint8_t GetUDPParamValue(char *inStr, char *paramName, char *paramValue, uint8_t *paramLen)
 
- {
 
-  8038994:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
 
-  8038998:	4690      	mov	r8, r2
 
-  803899a:	461f      	mov	r7, r3
 
-   char *beginValue = 0;
 
-   char *endValue = 0;
 
-   int  len = 0;
 
-   char *strPtr = 0;
 
-   strPtr = strstr(inStr, paramName);
 
-  803899c:	f7e9 fd08 	bl	80223b0 <strstr>
 
-   if (strPtr != 0)
 
-  80389a0:	4605      	mov	r5, r0
 
-  80389a2:	b310      	cbz	r0, 80389ea <GetUDPParamValue+0x56>
 
-   {
 
-     beginValue = strpbrk(strPtr,":");
 
-  80389a4:	4912      	ldr	r1, [pc, #72]	; (80389f0 <GetUDPParamValue+0x5c>)
 
-  80389a6:	f7e9 fb6d 	bl	8022084 <strpbrk>
 
-     endValue = strpbrk(strPtr,",");
 
-  80389aa:	4912      	ldr	r1, [pc, #72]	; (80389f4 <GetUDPParamValue+0x60>)
 
-   strPtr = strstr(inStr, paramName);
 
-   if (strPtr != 0)
 
-   {
 
-     beginValue = strpbrk(strPtr,":");
 
-  80389ac:	4606      	mov	r6, r0
 
-     endValue = strpbrk(strPtr,",");
 
-  80389ae:	4628      	mov	r0, r5
 
-  80389b0:	f7e9 fb68 	bl	8022084 <strpbrk>
 
-     if (endValue == 0)
 
-  80389b4:	4604      	mov	r4, r0
 
-  80389b6:	b950      	cbnz	r0, 80389ce <GetUDPParamValue+0x3a>
 
-     {
 
-       endValue = strpbrk(strPtr,"}");
 
-  80389b8:	4628      	mov	r0, r5
 
-  80389ba:	490f      	ldr	r1, [pc, #60]	; (80389f8 <GetUDPParamValue+0x64>)
 
-  80389bc:	f7e9 fb62 	bl	8022084 <strpbrk>
 
-       if (endValue == 0)
 
-  80389c0:	4604      	mov	r4, r0
 
-  80389c2:	b920      	cbnz	r0, 80389ce <GetUDPParamValue+0x3a>
 
-             endValue = strpbrk(strPtr," ");
 
-  80389c4:	4628      	mov	r0, r5
 
-  80389c6:	490d      	ldr	r1, [pc, #52]	; (80389fc <GetUDPParamValue+0x68>)
 
-  80389c8:	f7e9 fb5c 	bl	8022084 <strpbrk>
 
-  80389cc:	4604      	mov	r4, r0
 
-     }
 
-     len = endValue - beginValue - 3;
 
-  80389ce:	1ba5      	subs	r5, r4, r6
 
-  80389d0:	3d03      	subs	r5, #3
 
-     strncpy(paramValue, beginValue + 2, len);
 
-  80389d2:	4640      	mov	r0, r8
 
-  80389d4:	1cb1      	adds	r1, r6, #2
 
-  80389d6:	462a      	mov	r2, r5
 
-  80389d8:	f7e9 fb22 	bl	8022020 <strncpy>
 
-     *endValue = '0';
 
-  80389dc:	2330      	movs	r3, #48	; 0x30
 
-  80389de:	7023      	strb	r3, [r4, #0]
 
-     *beginValue = '0';
 
- 	*paramLen = len;
 
- 	return 1;
 
-  80389e0:	2001      	movs	r0, #1
 
-             endValue = strpbrk(strPtr," ");
 
-     }
 
-     len = endValue - beginValue - 3;
 
-     strncpy(paramValue, beginValue + 2, len);
 
-     *endValue = '0';
 
-     *beginValue = '0';
 
-  80389e2:	7033      	strb	r3, [r6, #0]
 
- 	*paramLen = len;
 
-  80389e4:	703d      	strb	r5, [r7, #0]
 
- 	return 1;
 
-  80389e6:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 
-   }
 
-   else
 
-   {
 
- 	*paramLen = 0;
 
-  80389ea:	7038      	strb	r0, [r7, #0]
 
- 	return 0;
 
-   }
 
- }
 
-  80389ec:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
 
-  80389f0:	08044e49 	.word	0x08044e49
 
-  80389f4:	08039b85 	.word	0x08039b85
 
-  80389f8:	08044d50 	.word	0x08044d50
 
-  80389fc:	08039ade 	.word	0x08039ade
 
- 08038a00 <udp_recieve_parser>:
 
- void udp_recieve_parser(char *buf, u16_t rcvlen)
 
- {
 
-  8038a00:	b530      	push	{r4, r5, lr}
 
-   uint8_t valueLen = 0;
 
-  8038a02:	2500      	movs	r5, #0
 
- 	return 0;
 
-   }
 
- }
 
- void udp_recieve_parser(char *buf, u16_t rcvlen)
 
- {
 
-  8038a04:	b0b5      	sub	sp, #212	; 0xd4
 
-  8038a06:	4604      	mov	r4, r0
 
-   uint8_t len2 = 0;
 
-   const uint8_t len = 100;
 
-   char value[100];
 
-   char str[100];
 
-   memset(str, 0, 100);
 
-  8038a08:	4629      	mov	r1, r5
 
-  8038a0a:	2264      	movs	r2, #100	; 0x64
 
-  8038a0c:	a81b      	add	r0, sp, #108	; 0x6c
 
-   }
 
- }
 
- void udp_recieve_parser(char *buf, u16_t rcvlen)
 
- {
 
-   uint8_t valueLen = 0;
 
-  8038a0e:	f88d 5006 	strb.w	r5, [sp, #6]
 
-   uint8_t len2 = 0;
 
-  8038a12:	f88d 5007 	strb.w	r5, [sp, #7]
 
-   const uint8_t len = 100;
 
-   char value[100];
 
-   char str[100];
 
-   memset(str, 0, 100);
 
-  8038a16:	f7e9 f873 	bl	8021b00 <memset>
 
-  // ClearParamString(buf);
 
-   memset(value, 0, len);
 
-  8038a1a:	4629      	mov	r1, r5
 
-  8038a1c:	2264      	movs	r2, #100	; 0x64
 
-  8038a1e:	a802      	add	r0, sp, #8
 
-  8038a20:	f7e9 f86e 	bl	8021b00 <memset>
 
-   memset(str, 0, len);
 
-  8038a24:	4629      	mov	r1, r5
 
-  8038a26:	2264      	movs	r2, #100	; 0x64
 
-  8038a28:	a81b      	add	r0, sp, #108	; 0x6c
 
-  8038a2a:	f7e9 f869 	bl	8021b00 <memset>
 
-   DBG buf[rcvlen]='\0';
 
-   DBG printf("Rcvd (%d bytes): \t%s\r\n", rcvlen, buf);
 
-   GetUDPParamValue(buf, "\"serno\"", value, &valueLen);
 
-  8038a2e:	f10d 0306 	add.w	r3, sp, #6
 
-  8038a32:	4620      	mov	r0, r4
 
-  8038a34:	493f      	ldr	r1, [pc, #252]	; (8038b34 <udp_recieve_parser+0x134>)
 
-  8038a36:	aa02      	add	r2, sp, #8
 
-  8038a38:	f7ff ffac 	bl	8038994 <GetUDPParamValue>
 
-   if(valueLen != 0)
 
-  8038a3c:	f89d 3006 	ldrb.w	r3, [sp, #6]
 
-  8038a40:	2b00      	cmp	r3, #0
 
-  8038a42:	d074      	beq.n	8038b2e <udp_recieve_parser+0x12e>
 
- 	  GetSerialNumberStr(str, &len2);
 
-  8038a44:	a81b      	add	r0, sp, #108	; 0x6c
 
-  8038a46:	f10d 0107 	add.w	r1, sp, #7
 
-  8038a4a:	f7ef f961 	bl	8027d10 <GetSerialNumberStr>
 
-   else
 
- 	  return;
 
-   if(strncmp(value, str, len2) == 0)
 
-  8038a4e:	a802      	add	r0, sp, #8
 
-  8038a50:	a91b      	add	r1, sp, #108	; 0x6c
 
-  8038a52:	f89d 2007 	ldrb.w	r2, [sp, #7]
 
-  8038a56:	f7e9 fa8d 	bl	8021f74 <strncmp>
 
-  8038a5a:	4605      	mov	r5, r0
 
-  8038a5c:	2800      	cmp	r0, #0
 
-  8038a5e:	d166      	bne.n	8038b2e <udp_recieve_parser+0x12e>
 
-   {
 
- 	  memset(str, 0, len);
 
-  8038a60:	4629      	mov	r1, r5
 
-  8038a62:	2264      	movs	r2, #100	; 0x64
 
-  8038a64:	a81b      	add	r0, sp, #108	; 0x6c
 
-  8038a66:	f7e9 f84b 	bl	8021b00 <memset>
 
- 	  GetUDPParamValue(buf, "\"dhcp\"", str, &valueLen);
 
-  8038a6a:	f10d 0306 	add.w	r3, sp, #6
 
-  8038a6e:	4932      	ldr	r1, [pc, #200]	; (8038b38 <udp_recieve_parser+0x138>)
 
-  8038a70:	aa1b      	add	r2, sp, #108	; 0x6c
 
-  8038a72:	4620      	mov	r0, r4
 
-  8038a74:	f7ff ff8e 	bl	8038994 <GetUDPParamValue>
 
- 	 // memset(str, 0, len);
 
- 	  memset(value, 0, len);
 
-  8038a78:	4629      	mov	r1, r5
 
-  8038a7a:	2264      	movs	r2, #100	; 0x64
 
-  8038a7c:	a802      	add	r0, sp, #8
 
-  8038a7e:	f7e9 f83f 	bl	8021b00 <memset>
 
- 	  GetUDPParamValue(buf, "\"ipaddress\"", value, &valueLen);
 
-  8038a82:	f10d 0306 	add.w	r3, sp, #6
 
-  8038a86:	4620      	mov	r0, r4
 
-  8038a88:	492c      	ldr	r1, [pc, #176]	; (8038b3c <udp_recieve_parser+0x13c>)
 
-  8038a8a:	aa02      	add	r2, sp, #8
 
-  8038a8c:	f7ff ff82 	bl	8038994 <GetUDPParamValue>
 
- 	  if(valueLen != 0)
 
-  8038a90:	f89d 3006 	ldrb.w	r3, [sp, #6]
 
-  8038a94:	b163      	cbz	r3, 8038ab0 <udp_recieve_parser+0xb0>
 
- 	  {
 
- 		  SetUDPDhcpStateStr(str);
 
-  8038a96:	a81b      	add	r0, sp, #108	; 0x6c
 
-  8038a98:	f7ef fb7a 	bl	8028190 <SetUDPDhcpStateStr>
 
- 		  SetIPStr(value);
 
-  8038a9c:	a802      	add	r0, sp, #8
 
-  8038a9e:	f7ef fb53 	bl	8028148 <SetIPStr>
 
- 	  else{
 
- 		  udp_type_message = 1;
 
- 		  return;
 
- 	  }
 
- 	  if (strncmp(str, "True", 4) != 0)  // Если dhcp off устанавливаем параметры
 
-  8038aa2:	a81b      	add	r0, sp, #108	; 0x6c
 
-  8038aa4:	4926      	ldr	r1, [pc, #152]	; (8038b40 <udp_recieve_parser+0x140>)
 
-  8038aa6:	2204      	movs	r2, #4
 
-  8038aa8:	f7e9 fa64 	bl	8021f74 <strncmp>
 
-  8038aac:	b920      	cbnz	r0, 8038ab8 <udp_recieve_parser+0xb8>
 
-  8038aae:	e02d      	b.n	8038b0c <udp_recieve_parser+0x10c>
 
- 	  {
 
- 		  SetUDPDhcpStateStr(str);
 
- 		  SetIPStr(value);
 
- 	  }
 
- 	  else{
 
- 		  udp_type_message = 1;
 
-  8038ab0:	4b24      	ldr	r3, [pc, #144]	; (8038b44 <udp_recieve_parser+0x144>)
 
-  8038ab2:	2201      	movs	r2, #1
 
-  8038ab4:	701a      	strb	r2, [r3, #0]
 
-  8038ab6:	e03a      	b.n	8038b2e <udp_recieve_parser+0x12e>
 
- 		  return;
 
- 	  }
 
- 	  if (strncmp(str, "True", 4) != 0)  // Если dhcp off устанавливаем параметры
 
- 	  {
 
- 		  memset(value, 0, len);
 
-  8038ab8:	4629      	mov	r1, r5
 
-  8038aba:	2264      	movs	r2, #100	; 0x64
 
-  8038abc:	a802      	add	r0, sp, #8
 
-  8038abe:	f7e9 f81f 	bl	8021b00 <memset>
 
- 		  GetUDPParamValue(buf, "\"gateway\"", value, &valueLen);
 
-  8038ac2:	f10d 0306 	add.w	r3, sp, #6
 
-  8038ac6:	4620      	mov	r0, r4
 
-  8038ac8:	491f      	ldr	r1, [pc, #124]	; (8038b48 <udp_recieve_parser+0x148>)
 
-  8038aca:	aa02      	add	r2, sp, #8
 
-  8038acc:	f7ff ff62 	bl	8038994 <GetUDPParamValue>
 
- 		  if(valueLen != 0)
 
-  8038ad0:	f89d 3006 	ldrb.w	r3, [sp, #6]
 
-  8038ad4:	b113      	cbz	r3, 8038adc <udp_recieve_parser+0xdc>
 
- 			  SetGatewayStr(value);
 
-  8038ad6:	a802      	add	r0, sp, #8
 
-  8038ad8:	f7ef fb3c 	bl	8028154 <SetGatewayStr>
 
- 		  memset(value, 0, len);
 
-  8038adc:	2100      	movs	r1, #0
 
-  8038ade:	2264      	movs	r2, #100	; 0x64
 
-  8038ae0:	a802      	add	r0, sp, #8
 
-  8038ae2:	f7e9 f80d 	bl	8021b00 <memset>
 
- 		  GetUDPParamValue(buf, "\"mask\"", value, &valueLen);
 
-  8038ae6:	f10d 0306 	add.w	r3, sp, #6
 
-  8038aea:	4620      	mov	r0, r4
 
-  8038aec:	4917      	ldr	r1, [pc, #92]	; (8038b4c <udp_recieve_parser+0x14c>)
 
-  8038aee:	aa02      	add	r2, sp, #8
 
-  8038af0:	f7ff ff50 	bl	8038994 <GetUDPParamValue>
 
- 		  if(valueLen != 0)
 
-  8038af4:	f89d 3006 	ldrb.w	r3, [sp, #6]
 
-  8038af8:	b113      	cbz	r3, 8038b00 <udp_recieve_parser+0x100>
 
- 			  SetMaskStr(value);
 
-  8038afa:	a802      	add	r0, sp, #8
 
-  8038afc:	f7ef fb30 	bl	8028160 <SetMaskStr>
 
- 		  memset(value, 0, len);
 
-  8038b00:	a802      	add	r0, sp, #8
 
-  8038b02:	2100      	movs	r1, #0
 
-  8038b04:	2264      	movs	r2, #100	; 0x64
 
-  8038b06:	f7e8 fffb 	bl	8021b00 <memset>
 
-  8038b0a:	e002      	b.n	8038b12 <udp_recieve_parser+0x112>
 
- 	  }
 
- 	  else
 
- 		  SetUDPDhcpStateStr(str);
 
-  8038b0c:	a81b      	add	r0, sp, #108	; 0x6c
 
-  8038b0e:	f7ef fb3f 	bl	8028190 <SetUDPDhcpStateStr>
 
- 	  // Если параметры WEB изменились выставляем флаг, сохраняем настройки и перезагружаемся
 
- 	 if (GetStateWebReinit() == true)
 
-  8038b12:	f7ff f9af 	bl	8037e74 <GetStateWebReinit>
 
-  8038b16:	b150      	cbz	r0, 8038b2e <udp_recieve_parser+0x12e>
 
- 	  {
 
- 	//	_message_add_to_log("Изменение сетевых настр", "Инфо", "ND");
 
- 		 SetWebReinitFlag(false);
 
-  8038b18:	2000      	movs	r0, #0
 
-  8038b1a:	f7ef fb09 	bl	8028130 <SetWebReinitFlag>
 
- 		SetConfirmWebParamsFlag();
 
-  8038b1e:	f7ef fb0d 	bl	802813c <SetConfirmWebParamsFlag>
 
- 		SaveWEBparam();
 
-  8038b22:	f7ff f98b 	bl	8037e3c <SaveWEBparam>
 
- 		HTTP_SaveSettings();
 
-  8038b26:	f7f5 f949 	bl	802ddbc <HTTP_SaveSettings>
 
- 		Reboot();
 
-  8038b2a:	f7f0 faeb 	bl	8029104 <Reboot>
 
- 	  }
 
-   }
 
- }
 
-  8038b2e:	b035      	add	sp, #212	; 0xd4
 
-  8038b30:	bd30      	pop	{r4, r5, pc}
 
-  8038b32:	bf00      	nop
 
-  8038b34:	08045b59 	.word	0x08045b59
 
-  8038b38:	08045b61 	.word	0x08045b61
 
-  8038b3c:	08045b68 	.word	0x08045b68
 
-  8038b40:	08040e43 	.word	0x08040e43
 
-  8038b44:	2000c800 	.word	0x2000c800
 
-  8038b48:	08045b74 	.word	0x08045b74
 
-  8038b4c:	08045b7e 	.word	0x08045b7e
 
- 08038b50 <http_server_serve>:
 
- bool http_server_serve(struct netconn *conn)
 
- {
 
-  8038b50:	b51f      	push	{r0, r1, r2, r3, r4, lr}
 
-     err_t res;
 
-     char* buf;
 
-     u16_t buflen;
 
-     bool flag = false;
 
-     netconn_set_recvtimeout(conn, RCV_TIMEOUT);
 
-  8038b52:	f44f 737a 	mov.w	r3, #1000	; 0x3e8
 
-  8038b56:	6183      	str	r3, [r0, #24]
 
-     res = netconn_recv(conn, &inbuf);
 
-  8038b58:	a902      	add	r1, sp, #8
 
-  8038b5a:	f7f5 fa6d 	bl	802e038 <netconn_recv>
 
-   //  DBG printf("recv failed %d\n", res);
 
-     if (res == ERR_OK)
 
-  8038b5e:	b978      	cbnz	r0, 8038b80 <http_server_serve+0x30>
 
-     {
 
-         netbuf_data(inbuf, (void**)&buf, &buflen);
 
-  8038b60:	f10d 0206 	add.w	r2, sp, #6
 
-  8038b64:	a903      	add	r1, sp, #12
 
-  8038b66:	9802      	ldr	r0, [sp, #8]
 
-  8038b68:	f7f5 ff61 	bl	802ea2e <netbuf_data>
 
-         udp_recieve_parser(buf, buflen);
 
-  8038b6c:	9803      	ldr	r0, [sp, #12]
 
-  8038b6e:	f8bd 1006 	ldrh.w	r1, [sp, #6]
 
-  8038b72:	f7ff ff45 	bl	8038a00 <udp_recieve_parser>
 
-         flag = true;
 
-         netbuf_delete(inbuf);
 
-  8038b76:	9802      	ldr	r0, [sp, #8]
 
-  8038b78:	f7f5 ff33 	bl	802e9e2 <netbuf_delete>
 
-     if (res == ERR_OK)
 
-     {
 
-         netbuf_data(inbuf, (void**)&buf, &buflen);
 
-         udp_recieve_parser(buf, buflen);
 
-         flag = true;
 
-  8038b7c:	2001      	movs	r0, #1
 
-  8038b7e:	e000      	b.n	8038b82 <http_server_serve+0x32>
 
- {
 
-     struct netbuf *inbuf;
 
-     err_t res;
 
-     char* buf;
 
-     u16_t buflen;
 
-     bool flag = false;
 
-  8038b80:	2000      	movs	r0, #0
 
-     /* TODO remove if tested */
 
-     /* Delete the buffer (netconn_recv gives us ownership,
 
-     so we have to make sure to deallocate the buffer) */
 
-     //netbuf_delete(inbuf);
 
-     return flag;
 
- }
 
-  8038b82:	b005      	add	sp, #20
 
-  8038b84:	bd00      	pop	{pc}
 
-  8038b86:	0000      	movs	r0, r0
 
- 08038b88 <udp_netsettings_task>:
 
- void udp_netsettings_task(void *arg)
 
- {
 
-  8038b88:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
 
-   err_t err;
 
-   TickType_t timestamp = 0;
 
-   uint32_t len;
 
-   vTaskDelay(5000);
 
-  8038b8c:	f241 3088 	movw	r0, #5000	; 0x1388
 
-  8038b90:	f7f2 fa1c 	bl	802afcc <vTaskDelay>
 
-   udp_conn = netconn_new( NETCONN_UDP );
 
-  8038b94:	2100      	movs	r1, #0
 
-  8038b96:	2020      	movs	r0, #32
 
-  8038b98:	460a      	mov	r2, r1
 
-  8038b9a:	f7f5 f9bf 	bl	802df1c <netconn_new_with_proto_and_callback>
 
-   if (udp_conn != NULL)
 
-  8038b9e:	4604      	mov	r4, r0
 
-  8038ba0:	2800      	cmp	r0, #0
 
-  8038ba2:	d04a      	beq.n	8038c3a <udp_netsettings_task+0xb2>
 
-   {
 
-     err = netconn_bind(udp_conn, IP_ADDR_ANY, UDP_PORT);
 
-  8038ba4:	4927      	ldr	r1, [pc, #156]	; (8038c44 <udp_netsettings_task+0xbc>)
 
-  8038ba6:	f64b 7299 	movw	r2, #49049	; 0xbf99
 
-  8038baa:	f7f5 f9ed 	bl	802df88 <netconn_bind>
 
-     if (err == ERR_OK)
 
-  8038bae:	2800      	cmp	r0, #0
 
-  8038bb0:	d140      	bne.n	8038c34 <udp_netsettings_task+0xac>
 
-       for( ;; )
 
-       {
 
-     	netconn_connect(udp_conn, IP_ADDR_BROADCAST, UDP_PORT);
 
- 		memset(dataBuf1, 0, DATA_BUF_LEN1);
 
- 		switch(udp_type_message)
 
-  8038bb2:	4f25      	ldr	r7, [pc, #148]	; (8038c48 <udp_netsettings_task+0xc0>)
 
-   if (udp_conn != NULL)
 
-   {
 
-     err = netconn_bind(udp_conn, IP_ADDR_ANY, UDP_PORT);
 
-     if (err == ERR_OK)
 
-  8038bb4:	4606      	mov	r6, r0
 
-     {
 
-       for( ;; )
 
-       {
 
-     	netconn_connect(udp_conn, IP_ADDR_BROADCAST, UDP_PORT);
 
-  8038bb6:	4925      	ldr	r1, [pc, #148]	; (8038c4c <udp_netsettings_task+0xc4>)
 
-  8038bb8:	f64b 7299 	movw	r2, #49049	; 0xbf99
 
-  8038bbc:	4620      	mov	r0, r4
 
-  8038bbe:	f7f5 fa01 	bl	802dfc4 <netconn_connect>
 
- 		memset(dataBuf1, 0, DATA_BUF_LEN1);
 
-  8038bc2:	4823      	ldr	r0, [pc, #140]	; (8038c50 <udp_netsettings_task+0xc8>)
 
-  8038bc4:	2100      	movs	r1, #0
 
-  8038bc6:	22ff      	movs	r2, #255	; 0xff
 
-  8038bc8:	f7e8 ff9a 	bl	8021b00 <memset>
 
- 		switch(udp_type_message)
 
-  8038bcc:	783b      	ldrb	r3, [r7, #0]
 
-  8038bce:	b113      	cbz	r3, 8038bd6 <udp_netsettings_task+0x4e>
 
-  8038bd0:	2b01      	cmp	r3, #1
 
-  8038bd2:	d112      	bne.n	8038bfa <udp_netsettings_task+0x72>
 
-  8038bd4:	e00c      	b.n	8038bf0 <udp_netsettings_task+0x68>
 
- 		{
 
- 		case 0:
 
- 		    if (timestamp + SEND_TIMEOUT < xTaskGetTickCount()) {
 
-  8038bd6:	f7f2 f8c7 	bl	802ad68 <xTaskGetTickCount>
 
-  8038bda:	f506 63fa 	add.w	r3, r6, #2000	; 0x7d0
 
-  8038bde:	4283      	cmp	r3, r0
 
-  8038be0:	d20b      	bcs.n	8038bfa <udp_netsettings_task+0x72>
 
- 		        udp_message(dataBuf1);
 
-  8038be2:	481b      	ldr	r0, [pc, #108]	; (8038c50 <udp_netsettings_task+0xc8>)
 
-  8038be4:	f7ff fe10 	bl	8038808 <udp_message>
 
- 		        timestamp = xTaskGetTickCount();
 
-  8038be8:	f7f2 f8be 	bl	802ad68 <xTaskGetTickCount>
 
-  8038bec:	4606      	mov	r6, r0
 
-  8038bee:	e004      	b.n	8038bfa <udp_netsettings_task+0x72>
 
- 		    }
 
- 			break;
 
- 		case 1:
 
- 			udp_message_netSettings(dataBuf1);
 
-  8038bf0:	4817      	ldr	r0, [pc, #92]	; (8038c50 <udp_netsettings_task+0xc8>)
 
-  8038bf2:	f7ff fe6d 	bl	80388d0 <udp_message_netSettings>
 
- 			udp_type_message = 0;
 
-  8038bf6:	2300      	movs	r3, #0
 
-  8038bf8:	703b      	strb	r3, [r7, #0]
 
- 			break;
 
- 		default:
 
- 			break;
 
- 		}
 
- 		len = strlen(dataBuf1);
 
-  8038bfa:	4815      	ldr	r0, [pc, #84]	; (8038c50 <udp_netsettings_task+0xc8>)
 
-  8038bfc:	f7e9 f958 	bl	8021eb0 <strlen>
 
-         if (len > 0) {
 
-  8038c00:	4605      	mov	r5, r0
 
-  8038c02:	b180      	cbz	r0, 8038c26 <udp_netsettings_task+0x9e>
 
-             buf_snd = netbuf_new();
 
-  8038c04:	f7f5 fee2 	bl	802e9cc <netbuf_new>
 
-             data_snd = netbuf_alloc(buf_snd,len);
 
-  8038c08:	b2a9      	uxth	r1, r5
 
- 		}
 
- 		len = strlen(dataBuf1);
 
-         if (len > 0) {
 
-             buf_snd = netbuf_new();
 
-  8038c0a:	4680      	mov	r8, r0
 
-             data_snd = netbuf_alloc(buf_snd,len);
 
-  8038c0c:	f7f5 fefa 	bl	802ea04 <netbuf_alloc>
 
-             memcpy(data_snd, dataBuf1, len);
 
-  8038c10:	490f      	ldr	r1, [pc, #60]	; (8038c50 <udp_netsettings_task+0xc8>)
 
-  8038c12:	462a      	mov	r2, r5
 
-  8038c14:	f7e8 feba 	bl	802198c <memcpy>
 
-             netconn_send(udp_conn, buf_snd);
 
-  8038c18:	4620      	mov	r0, r4
 
-  8038c1a:	4641      	mov	r1, r8
 
-  8038c1c:	f7f5 fa46 	bl	802e0ac <netconn_send>
 
-             netbuf_delete(buf_snd);
 
-  8038c20:	4640      	mov	r0, r8
 
-  8038c22:	f7f5 fede 	bl	802e9e2 <netbuf_delete>
 
-             DBG printf("\r\nSent (%u bytes): \t%s\r\n", (unsigned int)len, dataBuf1);
 
-         }
 
- 		netconn_disconnect(udp_conn);
 
-  8038c26:	4620      	mov	r0, r4
 
-  8038c28:	f7f5 f9ea 	bl	802e000 <netconn_disconnect>
 
- 		/* TODO remove if tested */
 
- 		//if(http_server_serve(udp_conn))
 
- 			 //vTaskDelay(1000);
 
- 		http_server_serve(udp_conn);
 
-  8038c2c:	4620      	mov	r0, r4
 
-  8038c2e:	f7ff ff8f 	bl	8038b50 <http_server_serve>
 
-       }
 
-  8038c32:	e7c0      	b.n	8038bb6 <udp_netsettings_task+0x2e>
 
-     }
 
-     else
 
-     {
 
-       netconn_delete(udp_conn);
 
-  8038c34:	4620      	mov	r0, r4
 
-  8038c36:	f7f5 f995 	bl	802df64 <netconn_delete>
 
-   else
 
- 	  DBG printf("udp_netsettings_task: can't create new UDP netconn\r\n");
 
-   for( ;; )
 
-   {
 
- 	  vTaskDelay(10000);
 
-  8038c3a:	f242 7010 	movw	r0, #10000	; 0x2710
 
-  8038c3e:	f7f2 f9c5 	bl	802afcc <vTaskDelay>
 
-  8038c42:	e7fa      	b.n	8038c3a <udp_netsettings_task+0xb2>
 
-  8038c44:	08045008 	.word	0x08045008
 
-  8038c48:	2000c800 	.word	0x2000c800
 
-  8038c4c:	08045004 	.word	0x08045004
 
-  8038c50:	2000fb64 	.word	0x2000fb64
 
- 08038c54 <UDP_netsetting_init>:
 
-   }
 
- }
 
- void UDP_netsetting_init() {
 
-  8038c54:	b51f      	push	{r0, r1, r2, r3, r4, lr}
 
- 	xTaskCreate(udp_netsettings_task, ( char * ) "udp_netsettings_task", 4*configMINIMAL_STACK_SIZE , NULL, tskIDLE_PRIORITY, NULL);
 
-  8038c56:	2300      	movs	r3, #0
 
-  8038c58:	9300      	str	r3, [sp, #0]
 
-  8038c5a:	9301      	str	r3, [sp, #4]
 
-  8038c5c:	9302      	str	r3, [sp, #8]
 
-  8038c5e:	9303      	str	r3, [sp, #12]
 
-  8038c60:	4903      	ldr	r1, [pc, #12]	; (8038c70 <UDP_netsetting_init+0x1c>)
 
-  8038c62:	4804      	ldr	r0, [pc, #16]	; (8038c74 <UDP_netsetting_init+0x20>)
 
-  8038c64:	f44f 7200 	mov.w	r2, #512	; 0x200
 
-  8038c68:	f7f1 ff16 	bl	802aa98 <xTaskGenericCreate>
 
- }
 
-  8038c6c:	b005      	add	sp, #20
 
-  8038c6e:	bd00      	pop	{pc}
 
-  8038c70:	08045b85 	.word	0x08045b85
 
-  8038c74:	08038b89 	.word	0x08038b89
 
- 08038c78 <ETH_BSP_Config>:
 
-   * @brief  ETH_BSP_Config
 
-   * @param  None
 
-   * @retval None
 
-   */
 
- void ETH_BSP_Config(void)
 
- {
 
-  8038c78:	b570      	push	{r4, r5, r6, lr}
 
- {
 
-   volatile uint32_t i;
 
-   GPIO_InitTypeDef GPIO_InitStructure;
 
-   
 
-   /* Enable GPIOs clocks */
 
-   RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB
 
-  8038c7a:	2007      	movs	r0, #7
 
-   * @brief  ETH_BSP_Config
 
-   * @param  None
 
-   * @retval None
 
-   */
 
- void ETH_BSP_Config(void)
 
- {
 
-  8038c7c:	b0b4      	sub	sp, #208	; 0xd0
 
- {
 
-   volatile uint32_t i;
 
-   GPIO_InitTypeDef GPIO_InitStructure;
 
-   
 
-   /* Enable GPIOs clocks */
 
-   RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB
 
-  8038c7e:	2101      	movs	r1, #1
 
-  8038c80:	f7ec fd64 	bl	802574c <RCC_AHB1PeriphClockCmd>
 
- 	                       | RCC_AHB1Periph_GPIOC, ENABLE);
 
-   /* Enable SYSCFG clock */
 
-   RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);  
 
-  8038c84:	2101      	movs	r1, #1
 
-  8038c86:	f44f 4080 	mov.w	r0, #16384	; 0x4000
 
-  8038c8a:	f7ec fd83 	bl	8025794 <RCC_APB2PeriphClockCmd>
 
-   
 
-   /* MII/RMII Media interface selection --------------------------------------*/
 
-   SYSCFG_ETH_MediaInterfaceConfig(SYSCFG_ETH_MediaInterface_RMII);
 
-  8038c8e:	2001      	movs	r0, #1
 
-  8038c90:	f7ec ff74 	bl	8025b7c <SYSCFG_ETH_MediaInterfaceConfig>
 
-         ETH_RST_PIN     -------> PE2  - замена на PE13
 
-   
 
-    */
 
-   /* Configure PA1,PA2 and PA7 */
 
-   GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_7;
 
-  8038c94:	2386      	movs	r3, #134	; 0x86
 
-   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
 
-   GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF;
 
-   GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
 
-  8038c96:	2400      	movs	r4, #0
 
-    */
 
-   /* Configure PA1,PA2 and PA7 */
 
-   GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_7;
 
-   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
 
-   GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF;
 
-  8038c98:	2502      	movs	r5, #2
 
-         ETH_RST_PIN     -------> PE2  - замена на PE13
 
-   
 
-    */
 
-   /* Configure PA1,PA2 and PA7 */
 
-   GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_7;
 
-  8038c9a:	9303      	str	r3, [sp, #12]
 
-   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
 
-   GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF;
 
-   GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
 
-   GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_NOPULL ;
 
-   GPIO_Init(GPIOA, &GPIO_InitStructure);
 
-  8038c9c:	4864      	ldr	r0, [pc, #400]	; (8038e30 <ETH_BSP_Config+0x1b8>)
 
-    */
 
-   /* Configure PA1,PA2 and PA7 */
 
-   GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_7;
 
-   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
 
-   GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF;
 
-  8038c9e:	f88d 5010 	strb.w	r5, [sp, #16]
 
-   
 
-    */
 
-   /* Configure PA1,PA2 and PA7 */
 
-   GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_7;
 
-   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
 
-  8038ca2:	2303      	movs	r3, #3
 
-   GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF;
 
-   GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
 
-   GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_NOPULL ;
 
-   GPIO_Init(GPIOA, &GPIO_InitStructure);
 
-  8038ca4:	a903      	add	r1, sp, #12
 
-   
 
-    */
 
-   /* Configure PA1,PA2 and PA7 */
 
-   GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_7;
 
-   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
 
-  8038ca6:	f88d 3011 	strb.w	r3, [sp, #17]
 
-   GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF;
 
-   GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
 
-  8038caa:	f88d 4012 	strb.w	r4, [sp, #18]
 
-   GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_NOPULL ;
 
-  8038cae:	f88d 4013 	strb.w	r4, [sp, #19]
 
-   GPIO_Init(GPIOA, &GPIO_InitStructure);
 
-  8038cb2:	f7ec fc6b 	bl	802558c <GPIO_Init>
 
-   GPIO_PinAFConfig(GPIOA, GPIO_PinSource1, GPIO_AF_ETH);
 
-  8038cb6:	2101      	movs	r1, #1
 
-  8038cb8:	220b      	movs	r2, #11
 
-  8038cba:	485d      	ldr	r0, [pc, #372]	; (8038e30 <ETH_BSP_Config+0x1b8>)
 
-  8038cbc:	f7ec fcaf 	bl	802561e <GPIO_PinAFConfig>
 
-   GPIO_PinAFConfig(GPIOA, GPIO_PinSource2, GPIO_AF_ETH);
 
-  8038cc0:	220b      	movs	r2, #11
 
-  8038cc2:	485b      	ldr	r0, [pc, #364]	; (8038e30 <ETH_BSP_Config+0x1b8>)
 
-  8038cc4:	4629      	mov	r1, r5
 
-  8038cc6:	f7ec fcaa 	bl	802561e <GPIO_PinAFConfig>
 
-   GPIO_PinAFConfig(GPIOA, GPIO_PinSource7, GPIO_AF_ETH);
 
-  8038cca:	220b      	movs	r2, #11
 
-  8038ccc:	2107      	movs	r1, #7
 
-  8038cce:	4858      	ldr	r0, [pc, #352]	; (8038e30 <ETH_BSP_Config+0x1b8>)
 
-  8038cd0:	f7ec fca5 	bl	802561e <GPIO_PinAFConfig>
 
-   /* Configure PB10,PB11,PB12 and PB13 */
 
-   GPIO_InitStructure.GPIO_Pin = /* GPIO_Pin_10 | */ GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13;
 
-  8038cd4:	f44f 5360 	mov.w	r3, #14336	; 0x3800
 
-   GPIO_Init(GPIOB, &GPIO_InitStructure);
 
-  8038cd8:	4856      	ldr	r0, [pc, #344]	; (8038e34 <ETH_BSP_Config+0x1bc>)
 
-   GPIO_PinAFConfig(GPIOA, GPIO_PinSource1, GPIO_AF_ETH);
 
-   GPIO_PinAFConfig(GPIOA, GPIO_PinSource2, GPIO_AF_ETH);
 
-   GPIO_PinAFConfig(GPIOA, GPIO_PinSource7, GPIO_AF_ETH);
 
-   /* Configure PB10,PB11,PB12 and PB13 */
 
-   GPIO_InitStructure.GPIO_Pin = /* GPIO_Pin_10 | */ GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13;
 
-  8038cda:	9303      	str	r3, [sp, #12]
 
-   GPIO_Init(GPIOB, &GPIO_InitStructure);
 
-  8038cdc:	a903      	add	r1, sp, #12
 
-  8038cde:	f7ec fc55 	bl	802558c <GPIO_Init>
 
-   //GPIO_PinAFConfig(GPIOB, GPIO_PinSource10, GPIO_AF_ETH);	
 
-   GPIO_PinAFConfig(GPIOB, GPIO_PinSource11, GPIO_AF_ETH);
 
-  8038ce2:	210b      	movs	r1, #11
 
-  8038ce4:	460a      	mov	r2, r1
 
-  8038ce6:	4853      	ldr	r0, [pc, #332]	; (8038e34 <ETH_BSP_Config+0x1bc>)
 
-  8038ce8:	f7ec fc99 	bl	802561e <GPIO_PinAFConfig>
 
-   GPIO_PinAFConfig(GPIOB, GPIO_PinSource12, GPIO_AF_ETH);
 
-  8038cec:	210c      	movs	r1, #12
 
-  8038cee:	220b      	movs	r2, #11
 
-  8038cf0:	4850      	ldr	r0, [pc, #320]	; (8038e34 <ETH_BSP_Config+0x1bc>)
 
-  8038cf2:	f7ec fc94 	bl	802561e <GPIO_PinAFConfig>
 
-   GPIO_PinAFConfig(GPIOB, GPIO_PinSource13, GPIO_AF_ETH);
 
-  8038cf6:	220b      	movs	r2, #11
 
-  8038cf8:	210d      	movs	r1, #13
 
-  8038cfa:	484e      	ldr	r0, [pc, #312]	; (8038e34 <ETH_BSP_Config+0x1bc>)
 
-  8038cfc:	f7ec fc8f 	bl	802561e <GPIO_PinAFConfig>
 
-   /* Configure PC1, PC4 and PC5 */
 
-   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_4 | GPIO_Pin_5;
 
-  8038d00:	2332      	movs	r3, #50	; 0x32
 
-   GPIO_Init(GPIOC, &GPIO_InitStructure);
 
-  8038d02:	484d      	ldr	r0, [pc, #308]	; (8038e38 <ETH_BSP_Config+0x1c0>)
 
-   GPIO_PinAFConfig(GPIOB, GPIO_PinSource11, GPIO_AF_ETH);
 
-   GPIO_PinAFConfig(GPIOB, GPIO_PinSource12, GPIO_AF_ETH);
 
-   GPIO_PinAFConfig(GPIOB, GPIO_PinSource13, GPIO_AF_ETH);
 
-   /* Configure PC1, PC4 and PC5 */
 
-   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_4 | GPIO_Pin_5;
 
-  8038d04:	9303      	str	r3, [sp, #12]
 
-   GPIO_Init(GPIOC, &GPIO_InitStructure);
 
-  8038d06:	a903      	add	r1, sp, #12
 
-  8038d08:	f7ec fc40 	bl	802558c <GPIO_Init>
 
-   GPIO_PinAFConfig(GPIOC, GPIO_PinSource1, GPIO_AF_ETH);
 
-  8038d0c:	484a      	ldr	r0, [pc, #296]	; (8038e38 <ETH_BSP_Config+0x1c0>)
 
-  8038d0e:	2101      	movs	r1, #1
 
-  8038d10:	220b      	movs	r2, #11
 
-  8038d12:	f7ec fc84 	bl	802561e <GPIO_PinAFConfig>
 
-   GPIO_PinAFConfig(GPIOC, GPIO_PinSource4, GPIO_AF_ETH);
 
-  8038d16:	4848      	ldr	r0, [pc, #288]	; (8038e38 <ETH_BSP_Config+0x1c0>)
 
-  8038d18:	2104      	movs	r1, #4
 
-  8038d1a:	220b      	movs	r2, #11
 
-  8038d1c:	f7ec fc7f 	bl	802561e <GPIO_PinAFConfig>
 
-   GPIO_PinAFConfig(GPIOC, GPIO_PinSource5, GPIO_AF_ETH);
 
-  8038d20:	220b      	movs	r2, #11
 
-  8038d22:	4845      	ldr	r0, [pc, #276]	; (8038e38 <ETH_BSP_Config+0x1c0>)
 
-  8038d24:	2105      	movs	r1, #5
 
-  8038d26:	f7ec fc7a 	bl	802561e <GPIO_PinAFConfig>
 
-   /* Configure the PHY RST  pin */
 
-   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
 
-  8038d2a:	f44f 5600 	mov.w	r6, #8192	; 0x2000
 
-   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
 
-  8038d2e:	2301      	movs	r3, #1
 
-   GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
 
-   GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
 
-   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
 
-   GPIO_Init(GPIOE, &GPIO_InitStructure);
 
-  8038d30:	4842      	ldr	r0, [pc, #264]	; (8038e3c <ETH_BSP_Config+0x1c4>)
 
-   GPIO_PinAFConfig(GPIOC, GPIO_PinSource4, GPIO_AF_ETH);
 
-   GPIO_PinAFConfig(GPIOC, GPIO_PinSource5, GPIO_AF_ETH);
 
-   /* Configure the PHY RST  pin */
 
-   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
 
-   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
 
-  8038d32:	f88d 3010 	strb.w	r3, [sp, #16]
 
-   GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
 
-   GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
 
-   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
 
-   GPIO_Init(GPIOE, &GPIO_InitStructure);
 
-  8038d36:	a903      	add	r1, sp, #12
 
-   /* Configure the PHY RST  pin */
 
-   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
 
-   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
 
-   GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
 
-   GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
 
-  8038d38:	f88d 3013 	strb.w	r3, [sp, #19]
 
-   GPIO_PinAFConfig(GPIOC, GPIO_PinSource1, GPIO_AF_ETH);
 
-   GPIO_PinAFConfig(GPIOC, GPIO_PinSource4, GPIO_AF_ETH);
 
-   GPIO_PinAFConfig(GPIOC, GPIO_PinSource5, GPIO_AF_ETH);
 
-   /* Configure the PHY RST  pin */
 
-   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
 
-  8038d3c:	9603      	str	r6, [sp, #12]
 
-   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
 
-   GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
 
-  8038d3e:	f88d 4012 	strb.w	r4, [sp, #18]
 
-   GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
 
-   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
 
-  8038d42:	f88d 5011 	strb.w	r5, [sp, #17]
 
-   GPIO_Init(GPIOE, &GPIO_InitStructure);
 
-  8038d46:	f7ec fc21 	bl	802558c <GPIO_Init>
 
-   GPIO_ResetBits(GPIOE, GPIO_Pin_13);	
 
-  8038d4a:	483c      	ldr	r0, [pc, #240]	; (8038e3c <ETH_BSP_Config+0x1c4>)
 
-  8038d4c:	4631      	mov	r1, r6
 
-  8038d4e:	f7ec fc64 	bl	802561a <GPIO_ResetBits>
 
-   for (i = 0; i < 20000; i++);
 
-  8038d52:	9401      	str	r4, [sp, #4]
 
-  8038d54:	f644 631f 	movw	r3, #19999	; 0x4e1f
 
-  8038d58:	e002      	b.n	8038d60 <ETH_BSP_Config+0xe8>
 
-  8038d5a:	9a01      	ldr	r2, [sp, #4]
 
-  8038d5c:	3201      	adds	r2, #1
 
-  8038d5e:	9201      	str	r2, [sp, #4]
 
-  8038d60:	9a01      	ldr	r2, [sp, #4]
 
-  8038d62:	429a      	cmp	r2, r3
 
-  8038d64:	d9f9      	bls.n	8038d5a <ETH_BSP_Config+0xe2>
 
-   GPIO_SetBits(GPIOE, GPIO_Pin_13);
 
-  8038d66:	4835      	ldr	r0, [pc, #212]	; (8038e3c <ETH_BSP_Config+0x1c4>)
 
-  8038d68:	f44f 5100 	mov.w	r1, #8192	; 0x2000
 
-  8038d6c:	f7ec fc53 	bl	8025616 <GPIO_SetBits>
 
-   for (i = 0; i < 20000; i++);
 
-  8038d70:	2300      	movs	r3, #0
 
-  8038d72:	9301      	str	r3, [sp, #4]
 
-  8038d74:	f644 631f 	movw	r3, #19999	; 0x4e1f
 
-  8038d78:	e002      	b.n	8038d80 <ETH_BSP_Config+0x108>
 
-  8038d7a:	9a01      	ldr	r2, [sp, #4]
 
-  8038d7c:	3201      	adds	r2, #1
 
-  8038d7e:	9201      	str	r2, [sp, #4]
 
-  8038d80:	9a01      	ldr	r2, [sp, #4]
 
-  8038d82:	429a      	cmp	r2, r3
 
-  8038d84:	d9f9      	bls.n	8038d7a <ETH_BSP_Config+0x102>
 
- static void ETH_MACDMA_Config(void)
 
- {
 
-   ETH_InitTypeDef ETH_InitStructure;
 
-   /* Enable ETHERNET clock  */
 
-   RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_ETH_MAC | RCC_AHB1Periph_ETH_MAC_Tx |
 
-  8038d86:	f04f 6060 	mov.w	r0, #234881024	; 0xe000000
 
-  8038d8a:	2101      	movs	r1, #1
 
-  8038d8c:	f7ec fcde 	bl	802574c <RCC_AHB1PeriphClockCmd>
 
-                          RCC_AHB1Periph_ETH_MAC_Rx, ENABLE);                                             
 
-   /* Reset ETHERNET on AHB Bus */
 
-   ETH_DeInit();
 
-  8038d90:	f000 f868 	bl	8038e64 <ETH_DeInit>
 
-   /* Software reset */
 
-   ETH_SoftwareReset();
 
-  8038d94:	f000 f9fe 	bl	8039194 <ETH_SoftwareReset>
 
-   /* Wait for software reset */
 
-   while (ETH_GetSoftwareResetStatus() == SET);
 
-  8038d98:	f000 fa04 	bl	80391a4 <ETH_GetSoftwareResetStatus>
 
-  8038d9c:	2801      	cmp	r0, #1
 
-  8038d9e:	d0fb      	beq.n	8038d98 <ETH_BSP_Config+0x120>
 
-   /* ETHERNET Configuration --------------------------------------------------*/
 
-   /* Call ETH_StructInit if you don't like to configure all ETH_InitStructure parameter */
 
-   ETH_StructInit(Ð_InitStructure);
 
-  8038da0:	a805      	add	r0, sp, #20
 
-  8038da2:	f000 f86c 	bl	8038e7e <ETH_StructInit>
 
-   //ETH_InitStructure.ETH_AutoNegotiation = ETH_AutoNegotiation_Disable; 
 
-   //  ETH_InitStructure.ETH_Speed = ETH_Speed_10M;
 
-   //  ETH_InitStructure.ETH_Mode = ETH_Mode_FullDuplex;   
 
-   ETH_InitStructure.ETH_LoopbackMode = ETH_LoopbackMode_Disable;
 
-   ETH_InitStructure.ETH_RetryTransmission = ETH_RetryTransmission_Disable;
 
-  8038da6:	f44f 7300 	mov.w	r3, #512	; 0x200
 
-  8038daa:	930f      	str	r3, [sp, #60]	; 0x3c
 
-   
 
-   /* When we use the Checksum offload feature, we need to enable the Store and Forward mode: 
 
-   the store and forward guarantee that a whole frame is stored in the FIFO, so the MAC can insert/verify the checksum, 
 
-   if the checksum is OK the DMA can handle the frame otherwise the frame is dropped */
 
-   ETH_InitStructure.ETH_DropTCPIPChecksumErrorFrame = ETH_DropTCPIPChecksumErrorFrame_Enable; 
 
-   ETH_InitStructure.ETH_ReceiveStoreForward = ETH_ReceiveStoreForward_Enable;         
 
-  8038dac:	f04f 7300 	mov.w	r3, #33554432	; 0x2000000
 
-  8038db0:	9326      	str	r3, [sp, #152]	; 0x98
 
-   ETH_InitStructure.ETH_TransmitStoreForward = ETH_TransmitStoreForward_Enable;     
 
-  
 
-   ETH_InitStructure.ETH_ForwardErrorFrames = ETH_ForwardErrorFrames_Disable;       
 
-   ETH_InitStructure.ETH_ForwardUndersizedGoodFrames = ETH_ForwardUndersizedGoodFrames_Disable;   
 
-   ETH_InitStructure.ETH_SecondFrameOperate = ETH_SecondFrameOperate_Enable;
 
-   ETH_InitStructure.ETH_AddressAlignedBeats = ETH_AddressAlignedBeats_Enable;      
 
-  8038db2:	932e      	str	r3, [sp, #184]	; 0xb8
 
-   ETH_InitStructure.ETH_FixedBurst = ETH_FixedBurst_Enable;                
 
-  8038db4:	f44f 3380 	mov.w	r3, #65536	; 0x10000
 
-  8038db8:	932f      	str	r3, [sp, #188]	; 0xbc
 
-   ETH_InitStructure.ETH_RxDMABurstLength = ETH_RxDMABurstLength_32Beat;          
 
-  8038dba:	f44f 0380 	mov.w	r3, #4194304	; 0x400000
 
-   /* Call ETH_StructInit if you don't like to configure all ETH_InitStructure parameter */
 
-   ETH_StructInit(Ð_InitStructure);
 
-   /* Fill ETH_InitStructure parametrs */
 
-   /*------------------------   MAC   -----------------------------------*/
 
-   ETH_InitStructure.ETH_AutoNegotiation = ETH_AutoNegotiation_Enable;
 
-  8038dbe:	2501      	movs	r5, #1
 
-   /* When we use the Checksum offload feature, we need to enable the Store and Forward mode: 
 
-   the store and forward guarantee that a whole frame is stored in the FIFO, so the MAC can insert/verify the checksum, 
 
-   if the checksum is OK the DMA can handle the frame otherwise the frame is dropped */
 
-   ETH_InitStructure.ETH_DropTCPIPChecksumErrorFrame = ETH_DropTCPIPChecksumErrorFrame_Enable; 
 
-   ETH_InitStructure.ETH_ReceiveStoreForward = ETH_ReceiveStoreForward_Enable;         
 
-   ETH_InitStructure.ETH_TransmitStoreForward = ETH_TransmitStoreForward_Enable;     
 
-  8038dc0:	f44f 1200 	mov.w	r2, #2097152	; 0x200000
 
-   ETH_InitStructure.ETH_ForwardErrorFrames = ETH_ForwardErrorFrames_Disable;       
 
-   ETH_InitStructure.ETH_ForwardUndersizedGoodFrames = ETH_ForwardUndersizedGoodFrames_Disable;   
 
-   ETH_InitStructure.ETH_SecondFrameOperate = ETH_SecondFrameOperate_Enable;
 
-   ETH_InitStructure.ETH_AddressAlignedBeats = ETH_AddressAlignedBeats_Enable;      
 
-   ETH_InitStructure.ETH_FixedBurst = ETH_FixedBurst_Enable;                
 
-   ETH_InitStructure.ETH_RxDMABurstLength = ETH_RxDMABurstLength_32Beat;          
 
-  8038dc4:	9330      	str	r3, [sp, #192]	; 0xc0
 
-   ETH_InitStructure.ETH_TxDMABurstLength = ETH_TxDMABurstLength_32Beat;
 
-  8038dc6:	f44f 5300 	mov.w	r3, #8192	; 0x2000
 
-   ETH_InitStructure.ETH_AutoNegotiation = ETH_AutoNegotiation_Enable;
 
-   //ETH_InitStructure.ETH_AutoNegotiation = ETH_AutoNegotiation_Disable; 
 
-   //  ETH_InitStructure.ETH_Speed = ETH_Speed_10M;
 
-   //  ETH_InitStructure.ETH_Mode = ETH_Mode_FullDuplex;   
 
-   ETH_InitStructure.ETH_LoopbackMode = ETH_LoopbackMode_Disable;
 
-  8038dca:	2400      	movs	r4, #0
 
-   /* When we use the Checksum offload feature, we need to enable the Store and Forward mode: 
 
-   the store and forward guarantee that a whole frame is stored in the FIFO, so the MAC can insert/verify the checksum, 
 
-   if the checksum is OK the DMA can handle the frame otherwise the frame is dropped */
 
-   ETH_InitStructure.ETH_DropTCPIPChecksumErrorFrame = ETH_DropTCPIPChecksumErrorFrame_Enable; 
 
-   ETH_InitStructure.ETH_ReceiveStoreForward = ETH_ReceiveStoreForward_Enable;         
 
-   ETH_InitStructure.ETH_TransmitStoreForward = ETH_TransmitStoreForward_Enable;     
 
-  8038dcc:	9228      	str	r2, [sp, #160]	; 0xa0
 
-   ETH_InitStructure.ETH_ForwardUndersizedGoodFrames = ETH_ForwardUndersizedGoodFrames_Disable;   
 
-   ETH_InitStructure.ETH_SecondFrameOperate = ETH_SecondFrameOperate_Enable;
 
-   ETH_InitStructure.ETH_AddressAlignedBeats = ETH_AddressAlignedBeats_Enable;      
 
-   ETH_InitStructure.ETH_FixedBurst = ETH_FixedBurst_Enable;                
 
-   ETH_InitStructure.ETH_RxDMABurstLength = ETH_RxDMABurstLength_32Beat;          
 
-   ETH_InitStructure.ETH_TxDMABurstLength = ETH_TxDMABurstLength_32Beat;
 
-  8038dce:	9331      	str	r3, [sp, #196]	; 0xc4
 
-   ETH_InitStructure.ETH_ReceiveStoreForward = ETH_ReceiveStoreForward_Enable;         
 
-   ETH_InitStructure.ETH_TransmitStoreForward = ETH_TransmitStoreForward_Enable;     
 
-  
 
-   ETH_InitStructure.ETH_ForwardErrorFrames = ETH_ForwardErrorFrames_Disable;       
 
-   ETH_InitStructure.ETH_ForwardUndersizedGoodFrames = ETH_ForwardUndersizedGoodFrames_Disable;   
 
-   ETH_InitStructure.ETH_SecondFrameOperate = ETH_SecondFrameOperate_Enable;
 
-  8038dd0:	2204      	movs	r2, #4
 
-   ETH_InitStructure.ETH_AddressAlignedBeats = ETH_AddressAlignedBeats_Enable;      
 
-   ETH_InitStructure.ETH_FixedBurst = ETH_FixedBurst_Enable;                
 
-   ETH_InitStructure.ETH_RxDMABurstLength = ETH_RxDMABurstLength_32Beat;          
 
-   ETH_InitStructure.ETH_TxDMABurstLength = ETH_TxDMABurstLength_32Beat;
 
-   ETH_InitStructure.ETH_DMAArbitration = ETH_DMAArbitration_RoundRobin_RxTx_2_1;
 
-  8038dd2:	f44f 4380 	mov.w	r3, #16384	; 0x4000
 
-   /* Configure Ethernet */
 
-   EthInitStatus = ETH_Init(Ð_InitStructure, LAN8720_PHY_ADDRESS);
 
-  8038dd6:	4629      	mov	r1, r5
 
-  8038dd8:	a805      	add	r0, sp, #20
 
-   ETH_InitStructure.ETH_ReceiveStoreForward = ETH_ReceiveStoreForward_Enable;         
 
-   ETH_InitStructure.ETH_TransmitStoreForward = ETH_TransmitStoreForward_Enable;     
 
-  
 
-   ETH_InitStructure.ETH_ForwardErrorFrames = ETH_ForwardErrorFrames_Disable;       
 
-   ETH_InitStructure.ETH_ForwardUndersizedGoodFrames = ETH_ForwardUndersizedGoodFrames_Disable;   
 
-   ETH_InitStructure.ETH_SecondFrameOperate = ETH_SecondFrameOperate_Enable;
 
-  8038dda:	922d      	str	r2, [sp, #180]	; 0xb4
 
-   ETH_InitStructure.ETH_AddressAlignedBeats = ETH_AddressAlignedBeats_Enable;      
 
-   ETH_InitStructure.ETH_FixedBurst = ETH_FixedBurst_Enable;                
 
-   ETH_InitStructure.ETH_RxDMABurstLength = ETH_RxDMABurstLength_32Beat;          
 
-   ETH_InitStructure.ETH_TxDMABurstLength = ETH_TxDMABurstLength_32Beat;
 
-   ETH_InitStructure.ETH_DMAArbitration = ETH_DMAArbitration_RoundRobin_RxTx_2_1;
 
-  8038ddc:	9333      	str	r3, [sp, #204]	; 0xcc
 
-   /* Call ETH_StructInit if you don't like to configure all ETH_InitStructure parameter */
 
-   ETH_StructInit(Ð_InitStructure);
 
-   /* Fill ETH_InitStructure parametrs */
 
-   /*------------------------   MAC   -----------------------------------*/
 
-   ETH_InitStructure.ETH_AutoNegotiation = ETH_AutoNegotiation_Enable;
 
-  8038dde:	9505      	str	r5, [sp, #20]
 
-   //ETH_InitStructure.ETH_AutoNegotiation = ETH_AutoNegotiation_Disable; 
 
-   //  ETH_InitStructure.ETH_Speed = ETH_Speed_10M;
 
-   //  ETH_InitStructure.ETH_Mode = ETH_Mode_FullDuplex;   
 
-   ETH_InitStructure.ETH_LoopbackMode = ETH_LoopbackMode_Disable;
 
-  8038de0:	940c      	str	r4, [sp, #48]	; 0x30
 
-   ETH_InitStructure.ETH_RetryTransmission = ETH_RetryTransmission_Disable;
 
-   ETH_InitStructure.ETH_AutomaticPadCRCStrip = ETH_AutomaticPadCRCStrip_Disable;
 
-  8038de2:	9410      	str	r4, [sp, #64]	; 0x40
 
-   ETH_InitStructure.ETH_ReceiveAll = ETH_ReceiveAll_Disable;
 
-  8038de4:	9413      	str	r4, [sp, #76]	; 0x4c
 
-   ETH_InitStructure.ETH_BroadcastFramesReception = ETH_BroadcastFramesReception_Enable;
 
-  8038de6:	9416      	str	r4, [sp, #88]	; 0x58
 
-   ETH_InitStructure.ETH_PromiscuousMode = ETH_PromiscuousMode_Disable;
 
-  8038de8:	9418      	str	r4, [sp, #96]	; 0x60
 
-   ETH_InitStructure.ETH_MulticastFramesFilter = ETH_MulticastFramesFilter_Perfect;
 
-  8038dea:	9419      	str	r4, [sp, #100]	; 0x64
 
-   ETH_InitStructure.ETH_UnicastFramesFilter = ETH_UnicastFramesFilter_Perfect;
 
-  8038dec:	941a      	str	r4, [sp, #104]	; 0x68
 
-   /*------------------------   DMA   -----------------------------------*/  
 
-   
 
-   /* When we use the Checksum offload feature, we need to enable the Store and Forward mode: 
 
-   the store and forward guarantee that a whole frame is stored in the FIFO, so the MAC can insert/verify the checksum, 
 
-   if the checksum is OK the DMA can handle the frame otherwise the frame is dropped */
 
-   ETH_InitStructure.ETH_DropTCPIPChecksumErrorFrame = ETH_DropTCPIPChecksumErrorFrame_Enable; 
 
-  8038dee:	9425      	str	r4, [sp, #148]	; 0x94
 
-   ETH_InitStructure.ETH_ReceiveStoreForward = ETH_ReceiveStoreForward_Enable;         
 
-   ETH_InitStructure.ETH_TransmitStoreForward = ETH_TransmitStoreForward_Enable;     
 
-  
 
-   ETH_InitStructure.ETH_ForwardErrorFrames = ETH_ForwardErrorFrames_Disable;       
 
-  8038df0:	942a      	str	r4, [sp, #168]	; 0xa8
 
-   ETH_InitStructure.ETH_ForwardUndersizedGoodFrames = ETH_ForwardUndersizedGoodFrames_Disable;   
 
-  8038df2:	942b      	str	r4, [sp, #172]	; 0xac
 
-   ETH_InitStructure.ETH_RxDMABurstLength = ETH_RxDMABurstLength_32Beat;          
 
-   ETH_InitStructure.ETH_TxDMABurstLength = ETH_TxDMABurstLength_32Beat;
 
-   ETH_InitStructure.ETH_DMAArbitration = ETH_DMAArbitration_RoundRobin_RxTx_2_1;
 
-   /* Configure Ethernet */
 
-   EthInitStatus = ETH_Init(Ð_InitStructure, LAN8720_PHY_ADDRESS);
 
-  8038df4:	f000 fa80 	bl	80392f8 <ETH_Init>
 
-  8038df8:	4e11      	ldr	r6, [pc, #68]	; (8038e40 <ETH_BSP_Config+0x1c8>)
 
-   /* Enable the Ethernet Rx Interrupt */
 
-   ETH_DMAITConfig(ETH_DMA_IT_NIS | ETH_DMA_IT_R, ENABLE);
 
-  8038dfa:	4629      	mov	r1, r5
 
-   ETH_InitStructure.ETH_RxDMABurstLength = ETH_RxDMABurstLength_32Beat;          
 
-   ETH_InitStructure.ETH_TxDMABurstLength = ETH_TxDMABurstLength_32Beat;
 
-   ETH_InitStructure.ETH_DMAArbitration = ETH_DMAArbitration_RoundRobin_RxTx_2_1;
 
-   /* Configure Ethernet */
 
-   EthInitStatus = ETH_Init(Ð_InitStructure, LAN8720_PHY_ADDRESS);
 
-  8038dfc:	6030      	str	r0, [r6, #0]
 
-   /* Enable the Ethernet Rx Interrupt */
 
-   ETH_DMAITConfig(ETH_DMA_IT_NIS | ETH_DMA_IT_R, ENABLE);
 
-  8038dfe:	4811      	ldr	r0, [pc, #68]	; (8038e44 <ETH_BSP_Config+0x1cc>)
 
-  8038e00:	f000 f9e2 	bl	80391c8 <ETH_DMAITConfig>
 
- void ETH_NVIC_Config(void)
 
- {
 
-   NVIC_InitTypeDef   NVIC_InitStructure;
 
-   /* 2 bit for pre-emption priority, 2 bits for subpriority */
 
-   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4); 
 
-  8038e04:	f44f 7040 	mov.w	r0, #768	; 0x300
 
-  8038e08:	f7ec fa40 	bl	802528c <NVIC_PriorityGroupConfig>
 
-   
 
-   /* Enable the Ethernet global Interrupt */
 
-   NVIC_InitStructure.NVIC_IRQChannel = ETH_IRQn;
 
-  8038e0c:	233d      	movs	r3, #61	; 0x3d
 
-  8038e0e:	f88d 3008 	strb.w	r3, [sp, #8]
 
-   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 5;
 
-   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
 
-   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
 
-   NVIC_Init(&NVIC_InitStructure);    
 
-  8038e12:	a802      	add	r0, sp, #8
 
-   /* 2 bit for pre-emption priority, 2 bits for subpriority */
 
-   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4); 
 
-   
 
-   /* Enable the Ethernet global Interrupt */
 
-   NVIC_InitStructure.NVIC_IRQChannel = ETH_IRQn;
 
-   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 5;
 
-  8038e14:	2305      	movs	r3, #5
 
-  8038e16:	f88d 3009 	strb.w	r3, [sp, #9]
 
-   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
 
-  8038e1a:	f88d 400a 	strb.w	r4, [sp, #10]
 
-   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
 
-  8038e1e:	f88d 500b 	strb.w	r5, [sp, #11]
 
-   NVIC_Init(&NVIC_InitStructure);    
 
-  8038e22:	f7ec fa3d 	bl	80252a0 <NVIC_Init>
 
-   ETH_MACDMA_Config();
 
-   /* Config NVIC for Ethernet */
 
-   ETH_NVIC_Config();
 
-   if (EthInitStatus == 0) {
 
-  8038e26:	6833      	ldr	r3, [r6, #0]
 
-  8038e28:	b903      	cbnz	r3, 8038e2c <ETH_BSP_Config+0x1b4>
 
-  8038e2a:	e7fe      	b.n	8038e2a <ETH_BSP_Config+0x1b2>
 
-     // LCD_DisplayStringLine(Line5, (uint8_t*)"   Ethernet Init   ");
 
-     // LCD_DisplayStringLine(Line6, (uint8_t*)"      failed      ");
 
-     // STM_EVAL_LEDOn(LED5);
 
-     while(1);
 
-   }
 
- }
 
-  8038e2c:	b034      	add	sp, #208	; 0xd0
 
-  8038e2e:	bd70      	pop	{r4, r5, r6, pc}
 
-  8038e30:	40020000 	.word	0x40020000
 
-  8038e34:	40020400 	.word	0x40020400
 
-  8038e38:	40020800 	.word	0x40020800
 
-  8038e3c:	40021000 	.word	0x40021000
 
-  8038e40:	2000c804 	.word	0x2000c804
 
-  8038e44:	00010040 	.word	0x00010040
 
- 08038e48 <ETH_Delay>:
 
-   * @brief  Inserts a delay time.
 
-   * @param  nCount: specifies the delay time length.
 
-   * @retval None
 
-   */
 
- static void ETH_Delay(__IO uint32_t nCount)
 
- {
 
-  8038e48:	b084      	sub	sp, #16
 
-   __IO uint32_t index = 0; 
 
-  8038e4a:	2300      	movs	r3, #0
 
-   * @brief  Inserts a delay time.
 
-   * @param  nCount: specifies the delay time length.
 
-   * @retval None
 
-   */
 
- static void ETH_Delay(__IO uint32_t nCount)
 
- {
 
-  8038e4c:	9001      	str	r0, [sp, #4]
 
-   __IO uint32_t index = 0; 
 
-  8038e4e:	9303      	str	r3, [sp, #12]
 
-   for(index = nCount; index != 0; index--)
 
-  8038e50:	9b01      	ldr	r3, [sp, #4]
 
-  8038e52:	e001      	b.n	8038e58 <ETH_Delay+0x10>
 
-  8038e54:	9b03      	ldr	r3, [sp, #12]
 
-  8038e56:	3b01      	subs	r3, #1
 
-  8038e58:	9303      	str	r3, [sp, #12]
 
-  8038e5a:	9b03      	ldr	r3, [sp, #12]
 
-  8038e5c:	2b00      	cmp	r3, #0
 
-  8038e5e:	d1f9      	bne.n	8038e54 <ETH_Delay+0xc>
 
-   {
 
-   }
 
- }
 
-  8038e60:	b004      	add	sp, #16
 
-  8038e62:	4770      	bx	lr
 
- 08038e64 <ETH_DeInit>:
 
-   * @brief  Deinitializes the ETHERNET peripheral registers to their default reset values.
 
-   * @param  None 
 
-   * @retval None
 
-   */
 
- void ETH_DeInit(void)
 
- {
 
-  8038e64:	b508      	push	{r3, lr}
 
-   RCC_AHB1PeriphResetCmd(RCC_AHB1Periph_ETH_MAC, ENABLE);
 
-  8038e66:	2101      	movs	r1, #1
 
-  8038e68:	f04f 7000 	mov.w	r0, #33554432	; 0x2000000
 
-  8038e6c:	f7ec fc9e 	bl	80257ac <RCC_AHB1PeriphResetCmd>
 
-   RCC_AHB1PeriphResetCmd(RCC_AHB1Periph_ETH_MAC, DISABLE);
 
-  8038e70:	f04f 7000 	mov.w	r0, #33554432	; 0x2000000
 
-  8038e74:	2100      	movs	r1, #0
 
- }
 
-  8038e76:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
 
-   * @retval None
 
-   */
 
- void ETH_DeInit(void)
 
- {
 
-   RCC_AHB1PeriphResetCmd(RCC_AHB1Periph_ETH_MAC, ENABLE);
 
-   RCC_AHB1PeriphResetCmd(RCC_AHB1Periph_ETH_MAC, DISABLE);
 
-  8038e7a:	f7ec bc97 	b.w	80257ac <RCC_AHB1PeriphResetCmd>
 
- 08038e7e <ETH_StructInit>:
 
-   /* Ethernet interframe gap set to 96 bits */
 
-   ETH_InitStruct->ETH_InterFrameGap = ETH_InterFrameGap_96Bit;                                                                                                                             
 
-   /* Carrier Sense Enabled in Half-Duplex mode */ 
 
-   ETH_InitStruct->ETH_CarrierSense = ETH_CarrierSense_Enable;                                
 
-   /* PHY speed configured to 100Mbit/s */
 
-   ETH_InitStruct->ETH_Speed = ETH_Speed_100M; 
 
-  8038e7e:	f44f 4280 	mov.w	r2, #16384	; 0x4000
 
-  8038e82:	6142      	str	r2, [r0, #20]
 
-   /* Receive own Frames in Half-Duplex mode enabled */
 
-   ETH_InitStruct->ETH_ReceiveOwn = ETH_ReceiveOwn_Enable;                
 
-   /* MAC MII loopback disabled */ 
 
-   ETH_InitStruct->ETH_LoopbackMode = ETH_LoopbackMode_Disable;              
 
-   /* Full-Duplex mode selected */
 
-   ETH_InitStruct->ETH_Mode = ETH_Mode_FullDuplex;                      
 
-  8038e84:	f44f 6200 	mov.w	r2, #2048	; 0x800
 
-  8038e88:	6202      	str	r2, [r0, #32]
 
-   /* Receive all frames disabled */ 
 
-   ETH_InitStruct->ETH_ReceiveAll = ETH_ReceiveAll_Disable;
 
-   /* Source address filtering (on the optional MAC addresses) disabled */
 
-   ETH_InitStruct->ETH_SourceAddrFilter = ETH_SourceAddrFilter_Disable;   
 
-   /* Do not forward control frames that do not pass the address filtering */
 
-   ETH_InitStruct->ETH_PassControlFrames = ETH_PassControlFrames_BlockAll;   
 
-  8038e8a:	2240      	movs	r2, #64	; 0x40
 
-  8038e8c:	6402      	str	r2, [r0, #64]	; 0x40
 
-   /* Disable reception of Broadcast frames */
 
-   ETH_InitStruct->ETH_BroadcastFramesReception = ETH_BroadcastFramesReception_Disable;
 
-  8038e8e:	2220      	movs	r2, #32
 
-  8038e90:	6442      	str	r2, [r0, #68]	; 0x44
 
-   /* Initialize hash table high and low regs */
 
-   ETH_InitStruct->ETH_HashTableHigh = 0x0;                
 
-   ETH_InitStruct->ETH_HashTableLow = 0x0;                     
 
-   /* Flow control config (flow control disabled)*/
 
-   ETH_InitStruct->ETH_PauseTime = 0x0;                 
 
-   ETH_InitStruct->ETH_ZeroQuantaPause = ETH_ZeroQuantaPause_Disable;            
 
-  8038e92:	2280      	movs	r2, #128	; 0x80
 
- {
 
-   /* ETH_InitStruct members default value */
 
-   /*------------------------   MAC Configuration   ---------------------------*/
 
-   
 
-   /* PHY Auto-negotiation enabled */
 
-   ETH_InitStruct->ETH_AutoNegotiation = ETH_AutoNegotiation_Enable;           
 
-  8038e94:	2301      	movs	r3, #1
 
-   /* Initialize hash table high and low regs */
 
-   ETH_InitStruct->ETH_HashTableHigh = 0x0;                
 
-   ETH_InitStruct->ETH_HashTableLow = 0x0;                     
 
-   /* Flow control config (flow control disabled)*/
 
-   ETH_InitStruct->ETH_PauseTime = 0x0;                 
 
-   ETH_InitStruct->ETH_ZeroQuantaPause = ETH_ZeroQuantaPause_Disable;            
 
-  8038e96:	6642      	str	r2, [r0, #100]	; 0x64
 
-   ETH_InitStruct->ETH_VLANTagIdentifier = 0x0;          
 
-   
 
-   /*---------------------- DMA Configuration   -------------------------------*/
 
-   /* Drops frames with with TCP/IP checksum errors */
 
-   ETH_InitStruct->ETH_DropTCPIPChecksumErrorFrame = ETH_DropTCPIPChecksumErrorFrame_Disable; 
 
-  8038e98:	f04f 6280 	mov.w	r2, #67108864	; 0x4000000
 
- {
 
-   /* ETH_InitStruct members default value */
 
-   /*------------------------   MAC Configuration   ---------------------------*/
 
-   
 
-   /* PHY Auto-negotiation enabled */
 
-   ETH_InitStruct->ETH_AutoNegotiation = ETH_AutoNegotiation_Enable;           
 
-  8038e9c:	6003      	str	r3, [r0, #0]
 
-   ETH_InitStruct->ETH_VLANTagIdentifier = 0x0;          
 
-   
 
-   /*---------------------- DMA Configuration   -------------------------------*/
 
-   /* Drops frames with with TCP/IP checksum errors */
 
-   ETH_InitStruct->ETH_DropTCPIPChecksumErrorFrame = ETH_DropTCPIPChecksumErrorFrame_Disable; 
 
-  8038e9e:	f8c0 2080 	str.w	r2, [r0, #128]	; 0x80
 
-   /*------------------------   MAC Configuration   ---------------------------*/
 
-   
 
-   /* PHY Auto-negotiation enabled */
 
-   ETH_InitStruct->ETH_AutoNegotiation = ETH_AutoNegotiation_Enable;           
 
-   /* MAC watchdog enabled: cuts-off long frame */
 
-   ETH_InitStruct->ETH_Watchdog = ETH_Watchdog_Enable;
 
-  8038ea2:	2300      	movs	r3, #0
 
-   /*---------------------- DMA Configuration   -------------------------------*/
 
-   /* Drops frames with with TCP/IP checksum errors */
 
-   ETH_InitStruct->ETH_DropTCPIPChecksumErrorFrame = ETH_DropTCPIPChecksumErrorFrame_Disable; 
 
-   /* Store and forward mode enabled for receive */
 
-   ETH_InitStruct->ETH_ReceiveStoreForward = ETH_ReceiveStoreForward_Enable;       
 
-  8038ea4:	f04f 7200 	mov.w	r2, #33554432	; 0x2000000
 
-   /*------------------------   MAC Configuration   ---------------------------*/
 
-   
 
-   /* PHY Auto-negotiation enabled */
 
-   ETH_InitStruct->ETH_AutoNegotiation = ETH_AutoNegotiation_Enable;           
 
-   /* MAC watchdog enabled: cuts-off long frame */
 
-   ETH_InitStruct->ETH_Watchdog = ETH_Watchdog_Enable;
 
-  8038ea8:	6043      	str	r3, [r0, #4]
 
-   /* MAC Jabber enabled in Half-duplex mode */
 
-   ETH_InitStruct->ETH_Jabber = ETH_Jabber_Enable;                                                       
 
-  8038eaa:	6083      	str	r3, [r0, #8]
 
-   /* Ethernet interframe gap set to 96 bits */
 
-   ETH_InitStruct->ETH_InterFrameGap = ETH_InterFrameGap_96Bit;                                                                                                                             
 
-  8038eac:	60c3      	str	r3, [r0, #12]
 
-   /* Carrier Sense Enabled in Half-Duplex mode */ 
 
-   ETH_InitStruct->ETH_CarrierSense = ETH_CarrierSense_Enable;                                
 
-  8038eae:	6103      	str	r3, [r0, #16]
 
-   /* PHY speed configured to 100Mbit/s */
 
-   ETH_InitStruct->ETH_Speed = ETH_Speed_100M; 
 
-   /* Receive own Frames in Half-Duplex mode enabled */
 
-   ETH_InitStruct->ETH_ReceiveOwn = ETH_ReceiveOwn_Enable;                
 
-  8038eb0:	6183      	str	r3, [r0, #24]
 
-   /* MAC MII loopback disabled */ 
 
-   ETH_InitStruct->ETH_LoopbackMode = ETH_LoopbackMode_Disable;              
 
-  8038eb2:	61c3      	str	r3, [r0, #28]
 
-   /* Full-Duplex mode selected */
 
-   ETH_InitStruct->ETH_Mode = ETH_Mode_FullDuplex;                      
 
-   /* IPv4 and TCP/UDP/ICMP frame Checksum Offload disabled */
 
-   ETH_InitStruct->ETH_ChecksumOffload = ETH_ChecksumOffload_Disable;                                                             
 
-  8038eb4:	6243      	str	r3, [r0, #36]	; 0x24
 
-   /* Retry Transmission enabled for half-duplex mode */ 
 
-   ETH_InitStruct->ETH_RetryTransmission = ETH_RetryTransmission_Enable;                                                                                   
 
-  8038eb6:	6283      	str	r3, [r0, #40]	; 0x28
 
-   /* Automatic PAD/CRC strip disabled*/
 
-   ETH_InitStruct->ETH_AutomaticPadCRCStrip = ETH_AutomaticPadCRCStrip_Disable;                                                          
 
-  8038eb8:	62c3      	str	r3, [r0, #44]	; 0x2c
 
-   /* half-duplex mode retransmission Backoff time_limit = 10 slot times*/ 
 
-   ETH_InitStruct->ETH_BackOffLimit = ETH_BackOffLimit_10;     
 
-  8038eba:	6303      	str	r3, [r0, #48]	; 0x30
 
-   /* half-duplex mode Deferral check disabled */
 
-   ETH_InitStruct->ETH_DeferralCheck = ETH_DeferralCheck_Disable;                                                                                                                  
 
-  8038ebc:	6343      	str	r3, [r0, #52]	; 0x34
 
-   /* Receive all frames disabled */ 
 
-   ETH_InitStruct->ETH_ReceiveAll = ETH_ReceiveAll_Disable;
 
-  8038ebe:	6383      	str	r3, [r0, #56]	; 0x38
 
-   /* Source address filtering (on the optional MAC addresses) disabled */
 
-   ETH_InitStruct->ETH_SourceAddrFilter = ETH_SourceAddrFilter_Disable;   
 
-  8038ec0:	63c3      	str	r3, [r0, #60]	; 0x3c
 
-   /* Do not forward control frames that do not pass the address filtering */
 
-   ETH_InitStruct->ETH_PassControlFrames = ETH_PassControlFrames_BlockAll;   
 
-   /* Disable reception of Broadcast frames */
 
-   ETH_InitStruct->ETH_BroadcastFramesReception = ETH_BroadcastFramesReception_Disable;
 
-   /* Normal Destination address filtering (not reverse addressing) */
 
-   ETH_InitStruct->ETH_DestinationAddrFilter = ETH_DestinationAddrFilter_Normal;
 
-  8038ec2:	6483      	str	r3, [r0, #72]	; 0x48
 
-   /* Promiscuous address filtering mode disabled */
 
-   ETH_InitStruct->ETH_PromiscuousMode = ETH_PromiscuousMode_Disable;                                                             
 
-  8038ec4:	64c3      	str	r3, [r0, #76]	; 0x4c
 
-   /* Perfect address filtering for multicast addresses */
 
-   ETH_InitStruct->ETH_MulticastFramesFilter = ETH_MulticastFramesFilter_Perfect;       
 
-  8038ec6:	6503      	str	r3, [r0, #80]	; 0x50
 
-   /* Perfect address filtering for unicast addresses */
 
-   ETH_InitStruct->ETH_UnicastFramesFilter = ETH_UnicastFramesFilter_Perfect;      
 
-  8038ec8:	6543      	str	r3, [r0, #84]	; 0x54
 
-   /* Initialize hash table high and low regs */
 
-   ETH_InitStruct->ETH_HashTableHigh = 0x0;                
 
-  8038eca:	6583      	str	r3, [r0, #88]	; 0x58
 
-   ETH_InitStruct->ETH_HashTableLow = 0x0;                     
 
-  8038ecc:	65c3      	str	r3, [r0, #92]	; 0x5c
 
-   /* Flow control config (flow control disabled)*/
 
-   ETH_InitStruct->ETH_PauseTime = 0x0;                 
 
-  8038ece:	6603      	str	r3, [r0, #96]	; 0x60
 
-   ETH_InitStruct->ETH_ZeroQuantaPause = ETH_ZeroQuantaPause_Disable;            
 
-   ETH_InitStruct->ETH_PauseLowThreshold = ETH_PauseLowThreshold_Minus4;         
 
-  8038ed0:	6683      	str	r3, [r0, #104]	; 0x68
 
-   ETH_InitStruct->ETH_UnicastPauseFrameDetect = ETH_UnicastPauseFrameDetect_Disable;   
 
-  8038ed2:	66c3      	str	r3, [r0, #108]	; 0x6c
 
-   ETH_InitStruct->ETH_ReceiveFlowControl = ETH_ReceiveFlowControl_Disable;        
 
-  8038ed4:	6703      	str	r3, [r0, #112]	; 0x70
 
-   ETH_InitStruct->ETH_TransmitFlowControl = ETH_TransmitFlowControl_Disable;
 
-  8038ed6:	6743      	str	r3, [r0, #116]	; 0x74
 
-   /* VLANtag config (VLAN field not checked) */
 
-   ETH_InitStruct->ETH_VLANTagComparison = ETH_VLANTagComparison_16Bit;          
 
-  8038ed8:	6783      	str	r3, [r0, #120]	; 0x78
 
-   ETH_InitStruct->ETH_VLANTagIdentifier = 0x0;          
 
-  8038eda:	67c3      	str	r3, [r0, #124]	; 0x7c
 
-   /*---------------------- DMA Configuration   -------------------------------*/
 
-   /* Drops frames with with TCP/IP checksum errors */
 
-   ETH_InitStruct->ETH_DropTCPIPChecksumErrorFrame = ETH_DropTCPIPChecksumErrorFrame_Disable; 
 
-   /* Store and forward mode enabled for receive */
 
-   ETH_InitStruct->ETH_ReceiveStoreForward = ETH_ReceiveStoreForward_Enable;       
 
-  8038edc:	f8c0 2084 	str.w	r2, [r0, #132]	; 0x84
 
-   ETH_InitStruct->ETH_ReceiveThresholdControl = ETH_ReceiveThresholdControl_64Bytes;                             
 
-   /* Disable Operate on second frame (transmit a second frame to FIFO without 
 
-   waiting status of previous frame*/                           
 
-   ETH_InitStruct->ETH_SecondFrameOperate = ETH_SecondFrameOperate_Disable;
 
-   /* DMA works on 32-bit aligned start source and destinations addresses */
 
-   ETH_InitStruct->ETH_AddressAlignedBeats = ETH_AddressAlignedBeats_Enable;
 
-  8038ee0:	f8c0 20a4 	str.w	r2, [r0, #164]	; 0xa4
 
-   /* Enabled Fixed Burst Mode (mix of INC4, INC8, INC16 and SINGLE DMA transactions */
 
-   ETH_InitStruct->ETH_FixedBurst = ETH_FixedBurst_Enable;
 
-  8038ee4:	f44f 3280 	mov.w	r2, #65536	; 0x10000
 
-  8038ee8:	f8c0 20a8 	str.w	r2, [r0, #168]	; 0xa8
 
-   /* DMA transfer max burst length = 32 beats = 32 x 32bits */
 
-   ETH_InitStruct->ETH_RxDMABurstLength = ETH_RxDMABurstLength_32Beat;
 
-  8038eec:	f44f 0280 	mov.w	r2, #4194304	; 0x400000
 
-   /* Store and forward mode enabled for receive */
 
-   ETH_InitStruct->ETH_ReceiveStoreForward = ETH_ReceiveStoreForward_Enable;       
 
-   /* Flush received frame that created FIFO overflow */
 
-   ETH_InitStruct->ETH_FlushReceivedFrame = ETH_FlushReceivedFrame_Enable; 
 
-   /* Store and forward mode enabled for transmit */
 
-   ETH_InitStruct->ETH_TransmitStoreForward = ETH_TransmitStoreForward_Enable;  
 
-  8038ef0:	f44f 1100 	mov.w	r1, #2097152	; 0x200000
 
-   /* DMA works on 32-bit aligned start source and destinations addresses */
 
-   ETH_InitStruct->ETH_AddressAlignedBeats = ETH_AddressAlignedBeats_Enable;
 
-   /* Enabled Fixed Burst Mode (mix of INC4, INC8, INC16 and SINGLE DMA transactions */
 
-   ETH_InitStruct->ETH_FixedBurst = ETH_FixedBurst_Enable;
 
-   /* DMA transfer max burst length = 32 beats = 32 x 32bits */
 
-   ETH_InitStruct->ETH_RxDMABurstLength = ETH_RxDMABurstLength_32Beat;
 
-  8038ef4:	f8c0 20ac 	str.w	r2, [r0, #172]	; 0xac
 
-   ETH_InitStruct->ETH_TxDMABurstLength = ETH_TxDMABurstLength_32Beat;
 
-  8038ef8:	f44f 5200 	mov.w	r2, #8192	; 0x2000
 
-   /* Drops frames with with TCP/IP checksum errors */
 
-   ETH_InitStruct->ETH_DropTCPIPChecksumErrorFrame = ETH_DropTCPIPChecksumErrorFrame_Disable; 
 
-   /* Store and forward mode enabled for receive */
 
-   ETH_InitStruct->ETH_ReceiveStoreForward = ETH_ReceiveStoreForward_Enable;       
 
-   /* Flush received frame that created FIFO overflow */
 
-   ETH_InitStruct->ETH_FlushReceivedFrame = ETH_FlushReceivedFrame_Enable; 
 
-  8038efc:	f8c0 3088 	str.w	r3, [r0, #136]	; 0x88
 
-   /* Store and forward mode enabled for transmit */
 
-   ETH_InitStruct->ETH_TransmitStoreForward = ETH_TransmitStoreForward_Enable;  
 
-  8038f00:	f8c0 108c 	str.w	r1, [r0, #140]	; 0x8c
 
-   /* Threshold TXFIFO level set to 64 bytes (used when threshold mode is enabled) */
 
-   ETH_InitStruct->ETH_TransmitThresholdControl = ETH_TransmitThresholdControl_64Bytes;  
 
-  8038f04:	f8c0 3090 	str.w	r3, [r0, #144]	; 0x90
 
-   /* Disable forwarding frames with errors (short frames, CRC,...)*/
 
-   ETH_InitStruct->ETH_ForwardErrorFrames = ETH_ForwardErrorFrames_Disable; 
 
-  8038f08:	f8c0 3094 	str.w	r3, [r0, #148]	; 0x94
 
-   /* Disable undersized good frames */
 
-   ETH_InitStruct->ETH_ForwardUndersizedGoodFrames = ETH_ForwardUndersizedGoodFrames_Disable; 
 
-  8038f0c:	f8c0 3098 	str.w	r3, [r0, #152]	; 0x98
 
-   /* Threshold RXFIFO level set to 64 bytes (used when Cut-through mode is enabled) */
 
-   ETH_InitStruct->ETH_ReceiveThresholdControl = ETH_ReceiveThresholdControl_64Bytes;                             
 
-  8038f10:	f8c0 309c 	str.w	r3, [r0, #156]	; 0x9c
 
-   /* Disable Operate on second frame (transmit a second frame to FIFO without 
 
-   waiting status of previous frame*/                           
 
-   ETH_InitStruct->ETH_SecondFrameOperate = ETH_SecondFrameOperate_Disable;
 
-  8038f14:	f8c0 30a0 	str.w	r3, [r0, #160]	; 0xa0
 
-   ETH_InitStruct->ETH_AddressAlignedBeats = ETH_AddressAlignedBeats_Enable;
 
-   /* Enabled Fixed Burst Mode (mix of INC4, INC8, INC16 and SINGLE DMA transactions */
 
-   ETH_InitStruct->ETH_FixedBurst = ETH_FixedBurst_Enable;
 
-   /* DMA transfer max burst length = 32 beats = 32 x 32bits */
 
-   ETH_InitStruct->ETH_RxDMABurstLength = ETH_RxDMABurstLength_32Beat;
 
-   ETH_InitStruct->ETH_TxDMABurstLength = ETH_TxDMABurstLength_32Beat;
 
-  8038f18:	f8c0 20b0 	str.w	r2, [r0, #176]	; 0xb0
 
-   /* DMA Ring mode skip length = 0 */
 
-   ETH_InitStruct->ETH_DescriptorSkipLength = 0x0; 
 
-  8038f1c:	f8c0 30b4 	str.w	r3, [r0, #180]	; 0xb4
 
-   /* Equal priority (round-robin) between transmit and receive DMA engines */
 
-   ETH_InitStruct->ETH_DMAArbitration = ETH_DMAArbitration_RoundRobin_RxTx_1_1;
 
-  8038f20:	f8c0 30b8 	str.w	r3, [r0, #184]	; 0xb8
 
-  8038f24:	4770      	bx	lr
 
-  8038f26:	0000      	movs	r0, r0
 
- 08038f28 <ETH_MACTransmissionCmd>:
 
-   * @param  NewState: new state of the MAC transmission.
 
-   *   This parameter can be: ENABLE or DISABLE.
 
-   * @retval None
 
-   */
 
- void ETH_MACTransmissionCmd(FunctionalState NewState)
 
- { 
 
-  8038f28:	4b04      	ldr	r3, [pc, #16]	; (8038f3c <ETH_MACTransmissionCmd+0x14>)
 
-   assert_param(IS_FUNCTIONAL_STATE(NewState));
 
-   
 
-   if (NewState != DISABLE)
 
-   {
 
-     /* Enable the MAC transmission */
 
-     ETH->MACCR |= ETH_MACCR_TE;  
 
-  8038f2a:	681a      	ldr	r2, [r3, #0]
 
- void ETH_MACTransmissionCmd(FunctionalState NewState)
 
- { 
 
-   /* Check the parameters */
 
-   assert_param(IS_FUNCTIONAL_STATE(NewState));
 
-   
 
-   if (NewState != DISABLE)
 
-  8038f2c:	b110      	cbz	r0, 8038f34 <ETH_MACTransmissionCmd+0xc>
 
-   {
 
-     /* Enable the MAC transmission */
 
-     ETH->MACCR |= ETH_MACCR_TE;  
 
-  8038f2e:	f042 0208 	orr.w	r2, r2, #8
 
-  8038f32:	e001      	b.n	8038f38 <ETH_MACTransmissionCmd+0x10>
 
-   }
 
-   else
 
-   {
 
-     /* Disable the MAC transmission */
 
-     ETH->MACCR &= ~ETH_MACCR_TE;
 
-  8038f34:	f022 0208 	bic.w	r2, r2, #8
 
-  8038f38:	601a      	str	r2, [r3, #0]
 
-  8038f3a:	4770      	bx	lr
 
-  8038f3c:	40028000 	.word	0x40028000
 
- 08038f40 <ETH_MACReceptionCmd>:
 
-   * @param  NewState: new state of the MAC reception.
 
-   *   This parameter can be: ENABLE or DISABLE.
 
-   * @retval None
 
-   */
 
- void ETH_MACReceptionCmd(FunctionalState NewState)
 
- { 
 
-  8038f40:	4b04      	ldr	r3, [pc, #16]	; (8038f54 <ETH_MACReceptionCmd+0x14>)
 
-   assert_param(IS_FUNCTIONAL_STATE(NewState));
 
-   
 
-   if (NewState != DISABLE)
 
-   {
 
-     /* Enable the MAC reception */
 
-     ETH->MACCR |= ETH_MACCR_RE;  
 
-  8038f42:	681a      	ldr	r2, [r3, #0]
 
- void ETH_MACReceptionCmd(FunctionalState NewState)
 
- { 
 
-   /* Check the parameters */
 
-   assert_param(IS_FUNCTIONAL_STATE(NewState));
 
-   
 
-   if (NewState != DISABLE)
 
-  8038f44:	b110      	cbz	r0, 8038f4c <ETH_MACReceptionCmd+0xc>
 
-   {
 
-     /* Enable the MAC reception */
 
-     ETH->MACCR |= ETH_MACCR_RE;  
 
-  8038f46:	f042 0204 	orr.w	r2, r2, #4
 
-  8038f4a:	e001      	b.n	8038f50 <ETH_MACReceptionCmd+0x10>
 
-   }
 
-   else
 
-   {
 
-     /* Disable the MAC reception */
 
-     ETH->MACCR &= ~ETH_MACCR_RE;
 
-  8038f4c:	f022 0204 	bic.w	r2, r2, #4
 
-  8038f50:	601a      	str	r2, [r3, #0]
 
-  8038f52:	4770      	bx	lr
 
-  8038f54:	40028000 	.word	0x40028000
 
- 08038f58 <ETH_MACAddressConfig>:
 
-   uint32_t tmpreg;
 
-   /* Check the parameters */
 
-   assert_param(IS_ETH_MAC_ADDRESS0123(MacAddr));
 
-   
 
-   /* Calculate the selected MAC address high register */
 
-   tmpreg = ((uint32_t)Addr[5] << 8) | (uint32_t)Addr[4];
 
-  8038f58:	790b      	ldrb	r3, [r1, #4]
 
-  8038f5a:	794a      	ldrb	r2, [r1, #5]
 
-  8038f5c:	ea43 2202 	orr.w	r2, r3, r2, lsl #8
 
-   /* Load the selected MAC address high register */
 
-   (*(__IO uint32_t *) (ETH_MAC_ADDR_HBASE + MacAddr)) = tmpreg;
 
-  8038f60:	4b07      	ldr	r3, [pc, #28]	; (8038f80 <ETH_MACAddressConfig+0x28>)
 
-  8038f62:	50c2      	str	r2, [r0, r3]
 
-   /* Calculate the selected MAC address low register */
 
-   tmpreg = ((uint32_t)Addr[3] << 24) | ((uint32_t)Addr[2] << 16) | ((uint32_t)Addr[1] << 8) | Addr[0];
 
-  8038f64:	788a      	ldrb	r2, [r1, #2]
 
-  8038f66:	78cb      	ldrb	r3, [r1, #3]
 
-  8038f68:	0412      	lsls	r2, r2, #16
 
-  8038f6a:	ea42 6203 	orr.w	r2, r2, r3, lsl #24
 
-  8038f6e:	780b      	ldrb	r3, [r1, #0]
 
-  8038f70:	431a      	orrs	r2, r3
 
-  8038f72:	784b      	ldrb	r3, [r1, #1]
 
-  8038f74:	ea42 2203 	orr.w	r2, r2, r3, lsl #8
 
-  
 
-   /* Load the selected MAC address low register */
 
-   (*(__IO uint32_t *) (ETH_MAC_ADDR_LBASE + MacAddr)) = tmpreg;
 
-  8038f78:	4b02      	ldr	r3, [pc, #8]	; (8038f84 <ETH_MACAddressConfig+0x2c>)
 
-  8038f7a:	50c2      	str	r2, [r0, r3]
 
-  8038f7c:	4770      	bx	lr
 
-  8038f7e:	bf00      	nop
 
-  8038f80:	40028040 	.word	0x40028040
 
-  8038f84:	40028044 	.word	0x40028044
 
- 08038f88 <ETH_Get_Received_Frame_interrupt>:
 
-   *         the receive frame (should be used with interrupt mode only)
 
-   * @param  None
 
-   * @retval Structure of type FrameTypeDef
 
-   */
 
- FrameTypeDef ETH_Get_Received_Frame_interrupt(void)
 
- { 
 
-  8038f88:	b537      	push	{r0, r1, r2, r4, r5, lr}
 
-   FrameTypeDef frame={0,0,0};
 
-   __IO uint32_t descriptor_scan_counter = 0; 
 
-  8038f8a:	2300      	movs	r3, #0
 
-  8038f8c:	9301      	str	r3, [sp, #4]
 
-     
 
-     /* check if first segment in frame */
 
-     if(((DMARxDescToGet->Status & ETH_DMARxDesc_FS) != (uint32_t)RESET)&&
 
-       ((DMARxDescToGet->Status & ETH_DMARxDesc_LS) == (uint32_t)RESET))
 
-     {
 
-       DMA_RX_FRAME_infos->FS_Rx_Desc = DMARxDescToGet;
 
-  8038f8e:	4b24      	ldr	r3, [pc, #144]	; (8039020 <ETH_Get_Received_Frame_interrupt+0x98>)
 
-  8038f90:	681a      	ldr	r2, [r3, #0]
 
-  8038f92:	4b24      	ldr	r3, [pc, #144]	; (8039024 <ETH_Get_Received_Frame_interrupt+0x9c>)
 
-       DMA_RX_FRAME_infos->Seg_Count = 1;   
 
-  8038f94:	2401      	movs	r4, #1
 
-  8038f96:	681b      	ldr	r3, [r3, #0]
 
- { 
 
-   FrameTypeDef frame={0,0,0};
 
-   __IO uint32_t descriptor_scan_counter = 0; 
 
-   
 
-   /* scan descriptors owned by CPU */
 
-   while (((DMARxDescToGet->Status & ETH_DMARxDesc_OWN) == (uint32_t)RESET)&&
 
-  8038f98:	e033      	b.n	8039002 <ETH_Get_Received_Frame_interrupt+0x7a>
 
-         (descriptor_scan_counter<ETH_RXBUFNB))
 
-   {
 
-     
 
-     /* Just by security */
 
-     descriptor_scan_counter++;
 
-  8038f9a:	9901      	ldr	r1, [sp, #4]
 
-  8038f9c:	3101      	adds	r1, #1
 
-  8038f9e:	9101      	str	r1, [sp, #4]
 
-     
 
-     /* check if first segment in frame */
 
-     if(((DMARxDescToGet->Status & ETH_DMARxDesc_FS) != (uint32_t)RESET)&&
 
-  8038fa0:	6819      	ldr	r1, [r3, #0]
 
-  8038fa2:	0589      	lsls	r1, r1, #22
 
-  8038fa4:	d505      	bpl.n	8038fb2 <ETH_Get_Received_Frame_interrupt+0x2a>
 
-       ((DMARxDescToGet->Status & ETH_DMARxDesc_LS) == (uint32_t)RESET))
 
-  8038fa6:	6819      	ldr	r1, [r3, #0]
 
-     
 
-     /* Just by security */
 
-     descriptor_scan_counter++;
 
-     
 
-     /* check if first segment in frame */
 
-     if(((DMARxDescToGet->Status & ETH_DMARxDesc_FS) != (uint32_t)RESET)&&
 
-  8038fa8:	05c9      	lsls	r1, r1, #23
 
-  8038faa:	d402      	bmi.n	8038fb2 <ETH_Get_Received_Frame_interrupt+0x2a>
 
-       ((DMARxDescToGet->Status & ETH_DMARxDesc_LS) == (uint32_t)RESET))
 
-     {
 
-       DMA_RX_FRAME_infos->FS_Rx_Desc = DMARxDescToGet;
 
-  8038fac:	6013      	str	r3, [r2, #0]
 
-       DMA_RX_FRAME_infos->Seg_Count = 1;   
 
-  8038fae:	6094      	str	r4, [r2, #8]
 
-  8038fb0:	e009      	b.n	8038fc6 <ETH_Get_Received_Frame_interrupt+0x3e>
 
-       DMARxDescToGet = (ETH_DMADESCTypeDef*) (DMARxDescToGet->Buffer2NextDescAddr);
 
-     }
 
-     
 
-     /* check if intermediate segment */
 
-     else if (((DMARxDescToGet->Status & ETH_DMARxDesc_LS) == (uint32_t)RESET)&&
 
-  8038fb2:	6819      	ldr	r1, [r3, #0]
 
-  8038fb4:	05c9      	lsls	r1, r1, #23
 
-  8038fb6:	d408      	bmi.n	8038fca <ETH_Get_Received_Frame_interrupt+0x42>
 
-             ((DMARxDescToGet->Status & ETH_DMARxDesc_FS) == (uint32_t)RESET))
 
-  8038fb8:	6819      	ldr	r1, [r3, #0]
 
-       DMA_RX_FRAME_infos->Seg_Count = 1;   
 
-       DMARxDescToGet = (ETH_DMADESCTypeDef*) (DMARxDescToGet->Buffer2NextDescAddr);
 
-     }
 
-     
 
-     /* check if intermediate segment */
 
-     else if (((DMARxDescToGet->Status & ETH_DMARxDesc_LS) == (uint32_t)RESET)&&
 
-  8038fba:	0589      	lsls	r1, r1, #22
 
-  8038fbc:	d500      	bpl.n	8038fc0 <ETH_Get_Received_Frame_interrupt+0x38>
 
-  8038fbe:	e004      	b.n	8038fca <ETH_Get_Received_Frame_interrupt+0x42>
 
-             ((DMARxDescToGet->Status & ETH_DMARxDesc_FS) == (uint32_t)RESET))
 
-     {
 
-       (DMA_RX_FRAME_infos->Seg_Count) ++;
 
-  8038fc0:	6891      	ldr	r1, [r2, #8]
 
-  8038fc2:	3101      	adds	r1, #1
 
-  8038fc4:	6091      	str	r1, [r2, #8]
 
-       DMARxDescToGet = (ETH_DMADESCTypeDef*) (DMARxDescToGet->Buffer2NextDescAddr);
 
-  8038fc6:	68db      	ldr	r3, [r3, #12]
 
-  8038fc8:	e01b      	b.n	8039002 <ETH_Get_Received_Frame_interrupt+0x7a>
 
-  8038fca:	4a16      	ldr	r2, [pc, #88]	; (8039024 <ETH_Get_Received_Frame_interrupt+0x9c>)
 
-  8038fcc:	6013      	str	r3, [r2, #0]
 
-     /* should be last segment */
 
-     else
 
-     { 
 
-       /* last segment */
 
-       DMA_RX_FRAME_infos->LS_Rx_Desc = DMARxDescToGet;
 
-  8038fce:	4a14      	ldr	r2, [pc, #80]	; (8039020 <ETH_Get_Received_Frame_interrupt+0x98>)
 
-  8038fd0:	6812      	ldr	r2, [r2, #0]
 
-  8038fd2:	6053      	str	r3, [r2, #4]
 
-       
 
-       (DMA_RX_FRAME_infos->Seg_Count)++;
 
-  8038fd4:	6891      	ldr	r1, [r2, #8]
 
-  8038fd6:	3101      	adds	r1, #1
 
-  8038fd8:	6091      	str	r1, [r2, #8]
 
-         
 
-       /* first segment is last segment */
 
-       if ((DMA_RX_FRAME_infos->Seg_Count)==1)
 
-  8038fda:	6891      	ldr	r1, [r2, #8]
 
-  8038fdc:	2901      	cmp	r1, #1
 
-         DMA_RX_FRAME_infos->FS_Rx_Desc = DMARxDescToGet;
 
-  8038fde:	bf08      	it	eq
 
-  8038fe0:	6013      	streq	r3, [r2, #0]
 
-       
 
-       /* Get the Frame Length of the received packet: substruct 4 bytes of the CRC */
 
-       frame.length = ((DMARxDescToGet->Status & ETH_DMARxDesc_FL) >> ETH_DMARxDesc_FrameLengthShift) - 4;
 
-  8038fe2:	6819      	ldr	r1, [r3, #0]
 
-   
 
-       /* Get the address of the buffer start address */ 
 
-       /* Check if more than one segment in the frame */
 
-       if (DMA_RX_FRAME_infos->Seg_Count >1)
 
-  8038fe4:	6894      	ldr	r4, [r2, #8]
 
-       /* first segment is last segment */
 
-       if ((DMA_RX_FRAME_infos->Seg_Count)==1)
 
-         DMA_RX_FRAME_infos->FS_Rx_Desc = DMARxDescToGet;
 
-       
 
-       /* Get the Frame Length of the received packet: substruct 4 bytes of the CRC */
 
-       frame.length = ((DMARxDescToGet->Status & ETH_DMARxDesc_FL) >> ETH_DMARxDesc_FrameLengthShift) - 4;
 
-  8038fe6:	f3c1 410d 	ubfx	r1, r1, #16, #14
 
-  8038fea:	3904      	subs	r1, #4
 
-   
 
-       /* Get the address of the buffer start address */ 
 
-       /* Check if more than one segment in the frame */
 
-       if (DMA_RX_FRAME_infos->Seg_Count >1)
 
-  8038fec:	2c01      	cmp	r4, #1
 
-       {
 
-         frame.buffer =(DMA_RX_FRAME_infos->FS_Rx_Desc)->Buffer1Addr;
 
-  8038fee:	bf8a      	itet	hi
 
-  8038ff0:	6812      	ldrhi	r2, [r2, #0]
 
-       }
 
-       else 
 
-       {
 
-         frame.buffer = DMARxDescToGet->Buffer1Addr;
 
-  8038ff2:	689a      	ldrls	r2, [r3, #8]
 
-   
 
-       /* Get the address of the buffer start address */ 
 
-       /* Check if more than one segment in the frame */
 
-       if (DMA_RX_FRAME_infos->Seg_Count >1)
 
-       {
 
-         frame.buffer =(DMA_RX_FRAME_infos->FS_Rx_Desc)->Buffer1Addr;
 
-  8038ff4:	6892      	ldrhi	r2, [r2, #8]
 
-       }
 
-       
 
-       frame.descriptor = DMARxDescToGet;
 
-   
 
-       /* Update the ETHERNET DMA global Rx descriptor with next Rx descriptor */      
 
-       DMARxDescToGet = (ETH_DMADESCTypeDef*) (DMARxDescToGet->Buffer2NextDescAddr);
 
-  8038ff6:	4c0b      	ldr	r4, [pc, #44]	; (8039024 <ETH_Get_Received_Frame_interrupt+0x9c>)
 
-  8038ff8:	68dd      	ldr	r5, [r3, #12]
 
-      
 
-       /* Return Frame */
 
-       return (frame);  
 
-  8038ffa:	e880 0006 	stmia.w	r0, {r1, r2}
 
-       }
 
-       
 
-       frame.descriptor = DMARxDescToGet;
 
-   
 
-       /* Update the ETHERNET DMA global Rx descriptor with next Rx descriptor */      
 
-       DMARxDescToGet = (ETH_DMADESCTypeDef*) (DMARxDescToGet->Buffer2NextDescAddr);
 
-  8038ffe:	6025      	str	r5, [r4, #0]
 
-  8039000:	e007      	b.n	8039012 <ETH_Get_Received_Frame_interrupt+0x8a>
 
- { 
 
-   FrameTypeDef frame={0,0,0};
 
-   __IO uint32_t descriptor_scan_counter = 0; 
 
-   
 
-   /* scan descriptors owned by CPU */
 
-   while (((DMARxDescToGet->Status & ETH_DMARxDesc_OWN) == (uint32_t)RESET)&&
 
-  8039002:	6819      	ldr	r1, [r3, #0]
 
-  8039004:	2900      	cmp	r1, #0
 
-  8039006:	da06      	bge.n	8039016 <ETH_Get_Received_Frame_interrupt+0x8e>
 
-  8039008:	4a06      	ldr	r2, [pc, #24]	; (8039024 <ETH_Get_Received_Frame_interrupt+0x9c>)
 
-  803900a:	6013      	str	r3, [r2, #0]
 
-      
 
-       /* Return Frame */
 
-       return (frame);  
 
-     }
 
-   }
 
-   return (frame); 
 
-  803900c:	2300      	movs	r3, #0
 
-  803900e:	6003      	str	r3, [r0, #0]
 
-  8039010:	6043      	str	r3, [r0, #4]
 
-  8039012:	6083      	str	r3, [r0, #8]
 
-  8039014:	e003      	b.n	803901e <ETH_Get_Received_Frame_interrupt+0x96>
 
-   FrameTypeDef frame={0,0,0};
 
-   __IO uint32_t descriptor_scan_counter = 0; 
 
-   
 
-   /* scan descriptors owned by CPU */
 
-   while (((DMARxDescToGet->Status & ETH_DMARxDesc_OWN) == (uint32_t)RESET)&&
 
-         (descriptor_scan_counter<ETH_RXBUFNB))
 
-  8039016:	9901      	ldr	r1, [sp, #4]
 
- { 
 
-   FrameTypeDef frame={0,0,0};
 
-   __IO uint32_t descriptor_scan_counter = 0; 
 
-   
 
-   /* scan descriptors owned by CPU */
 
-   while (((DMARxDescToGet->Status & ETH_DMARxDesc_OWN) == (uint32_t)RESET)&&
 
-  8039018:	2904      	cmp	r1, #4
 
-  803901a:	d9be      	bls.n	8038f9a <ETH_Get_Received_Frame_interrupt+0x12>
 
-  803901c:	e7f4      	b.n	8039008 <ETH_Get_Received_Frame_interrupt+0x80>
 
-       /* Return Frame */
 
-       return (frame);  
 
-     }
 
-   }
 
-   return (frame); 
 
- }
 
-  803901e:	bd3e      	pop	{r1, r2, r3, r4, r5, pc}
 
-  8039020:	20011ae0 	.word	0x20011ae0
 
-  8039024:	2000fc70 	.word	0x2000fc70
 
- 08039028 <ETH_Prepare_Transmit_Descriptors>:
 
- {   
 
-   uint32_t buf_count =0, size=0,i=0;
 
-   __IO ETH_DMADESCTypeDef *DMATxNextDesc;
 
-   
 
-   /* Check if the descriptor is owned by the ETHERNET DMA (when set) or CPU (when reset) */
 
-   if((DMATxDescToSet->Status & ETH_DMATxDesc_OWN) != (u32)RESET)
 
-  8039028:	4b29      	ldr	r3, [pc, #164]	; (80390d0 <ETH_Prepare_Transmit_Descriptors+0xa8>)
 
-  803902a:	681b      	ldr	r3, [r3, #0]
 
-  803902c:	681a      	ldr	r2, [r3, #0]
 
-  803902e:	2a00      	cmp	r2, #0
 
-   * @brief  Prepares DMA Tx descriptors to transmit an ethernet frame
 
-   * @param  FrameLength : length of the frame to send
 
-   * @retval error status
 
-   */
 
- uint32_t ETH_Prepare_Transmit_Descriptors(u16 FrameLength)
 
- {   
 
-  8039030:	b5f0      	push	{r4, r5, r6, r7, lr}
 
-   uint32_t buf_count =0, size=0,i=0;
 
-   __IO ETH_DMADESCTypeDef *DMATxNextDesc;
 
-   
 
-   /* Check if the descriptor is owned by the ETHERNET DMA (when set) or CPU (when reset) */
 
-   if((DMATxDescToSet->Status & ETH_DMATxDesc_OWN) != (u32)RESET)
 
-  8039032:	db48      	blt.n	80390c6 <ETH_Prepare_Transmit_Descriptors+0x9e>
 
-     return ETH_ERROR;
 
-   }
 
-   
 
-   DMATxNextDesc = DMATxDescToSet;
 
-   
 
-   if (FrameLength > ETH_TX_BUF_SIZE)
 
-  8039034:	f240 52f4 	movw	r2, #1524	; 0x5f4
 
-  8039038:	4290      	cmp	r0, r2
 
-  803903a:	d917      	bls.n	803906c <ETH_Prepare_Transmit_Descriptors+0x44>
 
-   {
 
-     buf_count = FrameLength/ETH_TX_BUF_SIZE;
 
-  803903c:	fbb0 f4f2 	udiv	r4, r0, r2
 
-     if (FrameLength%ETH_TX_BUF_SIZE) buf_count++;
 
-  8039040:	fb02 0214 	mls	r2, r2, r4, r0
 
-  8039044:	b292      	uxth	r2, r2
 
-   
 
-   DMATxNextDesc = DMATxDescToSet;
 
-   
 
-   if (FrameLength > ETH_TX_BUF_SIZE)
 
-   {
 
-     buf_count = FrameLength/ETH_TX_BUF_SIZE;
 
-  8039046:	b2a1      	uxth	r1, r4
 
-     if (FrameLength%ETH_TX_BUF_SIZE) buf_count++;
 
-  8039048:	b10a      	cbz	r2, 803904e <ETH_Prepare_Transmit_Descriptors+0x26>
 
-  803904a:	3101      	adds	r1, #1
 
-  803904c:	e001      	b.n	8039052 <ETH_Prepare_Transmit_Descriptors+0x2a>
 
-   }
 
-   else buf_count =1;
 
-   
 
-   if (buf_count ==1)
 
-  803904e:	2901      	cmp	r1, #1
 
-  8039050:	d00c      	beq.n	803906c <ETH_Prepare_Transmit_Descriptors+0x44>
 
-        
 
-       if (i== (buf_count-1))
 
-       {
 
-         /* Setting the last segment bit */
 
-         DMATxNextDesc->Status |= ETH_DMATxDesc_LS;
 
-         size = FrameLength - (buf_count-1)*ETH_TX_BUF_SIZE;
 
-  8039052:	4d20      	ldr	r5, [pc, #128]	; (80390d4 <ETH_Prepare_Transmit_Descriptors+0xac>)
 
-  8039054:	f200 50f4 	addw	r0, r0, #1524	; 0x5f4
 
-  8039058:	fb05 0501 	mla	r5, r5, r1, r0
 
-         DMATxNextDesc->ControlBufferSize = (size & ETH_DMATxDesc_TBS1);
 
-  803905c:	04ed      	lsls	r5, r5, #19
 
-  803905e:	0ced      	lsrs	r5, r5, #19
 
-  8039060:	461a      	mov	r2, r3
 
-  8039062:	2000      	movs	r0, #0
 
-         /* Setting the first segment bit */
 
-         DMATxDescToSet->Status |= ETH_DMATxDesc_FS;  
 
-       }
 
-       
 
-       /* Program size */
 
-       DMATxNextDesc->ControlBufferSize = (ETH_TX_BUF_SIZE & ETH_DMATxDesc_TBS1);
 
-  8039064:	f240 56f4 	movw	r6, #1524	; 0x5f4
 
-        
 
-       if (i== (buf_count-1))
 
-  8039068:	1e4f      	subs	r7, r1, #1
 
-  803906a:	e00c      	b.n	8039086 <ETH_Prepare_Transmit_Descriptors+0x5e>
 
-   else buf_count =1;
 
-   
 
-   if (buf_count ==1)
 
-   {
 
-     /*set LAST and FIRST segment */
 
-     DMATxDescToSet->Status |=ETH_DMATxDesc_FS|ETH_DMATxDesc_LS;
 
-  803906c:	681a      	ldr	r2, [r3, #0]
 
-     /* Set frame size */
 
-     DMATxDescToSet->ControlBufferSize = (FrameLength& ETH_DMATxDesc_TBS1);
 
-  803906e:	04c0      	lsls	r0, r0, #19
 
-   else buf_count =1;
 
-   
 
-   if (buf_count ==1)
 
-   {
 
-     /*set LAST and FIRST segment */
 
-     DMATxDescToSet->Status |=ETH_DMATxDesc_FS|ETH_DMATxDesc_LS;
 
-  8039070:	f042 5240 	orr.w	r2, r2, #805306368	; 0x30000000
 
-     /* Set frame size */
 
-     DMATxDescToSet->ControlBufferSize = (FrameLength& ETH_DMATxDesc_TBS1);
 
-  8039074:	0cc0      	lsrs	r0, r0, #19
 
-   else buf_count =1;
 
-   
 
-   if (buf_count ==1)
 
-   {
 
-     /*set LAST and FIRST segment */
 
-     DMATxDescToSet->Status |=ETH_DMATxDesc_FS|ETH_DMATxDesc_LS;
 
-  8039076:	601a      	str	r2, [r3, #0]
 
-     /* Set frame size */
 
-     DMATxDescToSet->ControlBufferSize = (FrameLength& ETH_DMATxDesc_TBS1);
 
-  8039078:	6058      	str	r0, [r3, #4]
 
-     /* Set Own bit of the Tx descriptor Status: gives the buffer back to ETHERNET DMA */
 
-     DMATxDescToSet->Status |= ETH_DMATxDesc_OWN;
 
-  803907a:	681a      	ldr	r2, [r3, #0]
 
-  803907c:	f042 4200 	orr.w	r2, r2, #2147483648	; 0x80000000
 
-  8039080:	601a      	str	r2, [r3, #0]
 
-     DMATxDescToSet= (ETH_DMADESCTypeDef *)(DMATxDescToSet->Buffer2NextDescAddr);
 
-  8039082:	68da      	ldr	r2, [r3, #12]
 
-  8039084:	e014      	b.n	80390b0 <ETH_Prepare_Transmit_Descriptors+0x88>
 
-   }
 
-   else
 
-   {
 
-     for (i=0; i< buf_count; i++)
 
-     {
 
-       if (i==0) 
 
-  8039086:	b918      	cbnz	r0, 8039090 <ETH_Prepare_Transmit_Descriptors+0x68>
 
-       {
 
-         /* Setting the first segment bit */
 
-         DMATxDescToSet->Status |= ETH_DMATxDesc_FS;  
 
-  8039088:	681c      	ldr	r4, [r3, #0]
 
-  803908a:	f044 5480 	orr.w	r4, r4, #268435456	; 0x10000000
 
-  803908e:	601c      	str	r4, [r3, #0]
 
-       }
 
-       
 
-       /* Program size */
 
-       DMATxNextDesc->ControlBufferSize = (ETH_TX_BUF_SIZE & ETH_DMATxDesc_TBS1);
 
-        
 
-       if (i== (buf_count-1))
 
-  8039090:	42b8      	cmp	r0, r7
 
-         /* Setting the first segment bit */
 
-         DMATxDescToSet->Status |= ETH_DMATxDesc_FS;  
 
-       }
 
-       
 
-       /* Program size */
 
-       DMATxNextDesc->ControlBufferSize = (ETH_TX_BUF_SIZE & ETH_DMATxDesc_TBS1);
 
-  8039092:	6056      	str	r6, [r2, #4]
 
-        
 
-       if (i== (buf_count-1))
 
-  8039094:	d104      	bne.n	80390a0 <ETH_Prepare_Transmit_Descriptors+0x78>
 
-       {
 
-         /* Setting the last segment bit */
 
-         DMATxNextDesc->Status |= ETH_DMATxDesc_LS;
 
-  8039096:	6814      	ldr	r4, [r2, #0]
 
-  8039098:	f044 5400 	orr.w	r4, r4, #536870912	; 0x20000000
 
-  803909c:	6014      	str	r4, [r2, #0]
 
-         size = FrameLength - (buf_count-1)*ETH_TX_BUF_SIZE;
 
-         DMATxNextDesc->ControlBufferSize = (size & ETH_DMATxDesc_TBS1);
 
-  803909e:	6055      	str	r5, [r2, #4]
 
-       }
 
-         
 
-       /*give back descriptor to DMA */
 
-       DMATxNextDesc->Status |= ETH_DMATxDesc_OWN;
 
-  80390a0:	6814      	ldr	r4, [r2, #0]
 
-     DMATxDescToSet->Status |= ETH_DMATxDesc_OWN;
 
-     DMATxDescToSet= (ETH_DMADESCTypeDef *)(DMATxDescToSet->Buffer2NextDescAddr);
 
-   }
 
-   else
 
-   {
 
-     for (i=0; i< buf_count; i++)
 
-  80390a2:	3001      	adds	r0, #1
 
-         size = FrameLength - (buf_count-1)*ETH_TX_BUF_SIZE;
 
-         DMATxNextDesc->ControlBufferSize = (size & ETH_DMATxDesc_TBS1);
 
-       }
 
-         
 
-       /*give back descriptor to DMA */
 
-       DMATxNextDesc->Status |= ETH_DMATxDesc_OWN;
 
-  80390a4:	f044 4400 	orr.w	r4, r4, #2147483648	; 0x80000000
 
-  80390a8:	6014      	str	r4, [r2, #0]
 
-     DMATxDescToSet->Status |= ETH_DMATxDesc_OWN;
 
-     DMATxDescToSet= (ETH_DMADESCTypeDef *)(DMATxDescToSet->Buffer2NextDescAddr);
 
-   }
 
-   else
 
-   {
 
-     for (i=0; i< buf_count; i++)
 
-  80390aa:	4288      	cmp	r0, r1
 
-       }
 
-         
 
-       /*give back descriptor to DMA */
 
-       DMATxNextDesc->Status |= ETH_DMATxDesc_OWN;
 
-       
 
-       DMATxNextDesc = (ETH_DMADESCTypeDef *)(DMATxNextDesc->Buffer2NextDescAddr);
 
-  80390ac:	68d2      	ldr	r2, [r2, #12]
 
-     DMATxDescToSet->Status |= ETH_DMATxDesc_OWN;
 
-     DMATxDescToSet= (ETH_DMADESCTypeDef *)(DMATxDescToSet->Buffer2NextDescAddr);
 
-   }
 
-   else
 
-   {
 
-     for (i=0; i< buf_count; i++)
 
-  80390ae:	d3ea      	bcc.n	8039086 <ETH_Prepare_Transmit_Descriptors+0x5e>
 
-       DMATxNextDesc->Status |= ETH_DMATxDesc_OWN;
 
-       
 
-       DMATxNextDesc = (ETH_DMADESCTypeDef *)(DMATxNextDesc->Buffer2NextDescAddr);
 
-       /* Set Own bit of the Tx descriptor Status: gives the buffer back to ETHERNET DMA */
 
-      }
 
-     DMATxDescToSet = DMATxNextDesc ;
 
-  80390b0:	4b07      	ldr	r3, [pc, #28]	; (80390d0 <ETH_Prepare_Transmit_Descriptors+0xa8>)
 
-  80390b2:	601a      	str	r2, [r3, #0]
 
-   }
 
-     
 
-   /* When Tx Buffer unavailable flag is set: clear it and resume transmission */
 
-   if ((ETH->DMASR & ETH_DMASR_TBUS) != (u32)RESET)
 
-  80390b4:	4b08      	ldr	r3, [pc, #32]	; (80390d8 <ETH_Prepare_Transmit_Descriptors+0xb0>)
 
-  80390b6:	695a      	ldr	r2, [r3, #20]
 
-  80390b8:	0750      	lsls	r0, r2, #29
 
-  80390ba:	d506      	bpl.n	80390ca <ETH_Prepare_Transmit_Descriptors+0xa2>
 
-   {
 
-     /* Clear TBUS ETHERNET DMA flag */
 
-     ETH->DMASR = ETH_DMASR_TBUS;
 
-  80390bc:	2204      	movs	r2, #4
 
-  80390be:	615a      	str	r2, [r3, #20]
 
-     /* Resume DMA transmission*/
 
-     ETH->DMATPDR = 0;
 
-  80390c0:	2200      	movs	r2, #0
 
-  80390c2:	605a      	str	r2, [r3, #4]
 
-  80390c4:	e001      	b.n	80390ca <ETH_Prepare_Transmit_Descriptors+0xa2>
 
-   
 
-   /* Check if the descriptor is owned by the ETHERNET DMA (when set) or CPU (when reset) */
 
-   if((DMATxDescToSet->Status & ETH_DMATxDesc_OWN) != (u32)RESET)
 
-   {  
 
-     /* Return ERROR: OWN bit set */
 
-     return ETH_ERROR;
 
-  80390c6:	2000      	movs	r0, #0
 
-  80390c8:	bdf0      	pop	{r4, r5, r6, r7, pc}
 
-     /* Resume DMA transmission*/
 
-     ETH->DMATPDR = 0;
 
-   }
 
-   
 
-   /* Return SUCCESS */
 
-   return ETH_SUCCESS;   
 
-  80390ca:	2001      	movs	r0, #1
 
- }
 
-  80390cc:	bdf0      	pop	{r4, r5, r6, r7, pc}
 
-  80390ce:	bf00      	nop
 
-  80390d0:	2000fc74 	.word	0x2000fc74
 
-  80390d4:	fffffa0c 	.word	0xfffffa0c
 
-  80390d8:	40029000 	.word	0x40029000
 
- 080390dc <ETH_DMARxDescChainInit>:
 
- {
 
-   uint32_t i = 0;
 
-   ETH_DMADESCTypeDef *DMARxDesc;
 
-   
 
-   /* Set the DMARxDescToGet pointer with the first one of the DMARxDescTab list */
 
-   DMARxDescToGet = DMARxDescTab; 
 
-  80390dc:	4b11      	ldr	r3, [pc, #68]	; (8039124 <ETH_DMARxDescChainInit+0x48>)
 
-   * @param  RxBuff: Pointer on the first RxBuffer list
 
-   * @param  RxBuffCount: Number of the used Rx desc in the list
 
-   * @retval None
 
-   */
 
- void ETH_DMARxDescChainInit(ETH_DMADESCTypeDef *DMARxDescTab, uint8_t *RxBuff, uint32_t RxBuffCount)
 
- {
 
-  80390de:	b5f0      	push	{r4, r5, r6, r7, lr}
 
-   uint32_t i = 0;
 
-   ETH_DMADESCTypeDef *DMARxDesc;
 
-   
 
-   /* Set the DMARxDescToGet pointer with the first one of the DMARxDescTab list */
 
-   DMARxDescToGet = DMARxDescTab; 
 
-  80390e0:	6018      	str	r0, [r3, #0]
 
-   /* Fill each DMARxDesc descriptor with the right values */
 
-   for(i=0; i < RxBuffCount; i++)
 
-  80390e2:	2400      	movs	r4, #0
 
-   * @param  DMARxDescTab: Pointer on the first Rx desc list 
 
-   * @param  RxBuff: Pointer on the first RxBuffer list
 
-   * @param  RxBuffCount: Number of the used Rx desc in the list
 
-   * @retval None
 
-   */
 
- void ETH_DMARxDescChainInit(ETH_DMADESCTypeDef *DMARxDescTab, uint8_t *RxBuff, uint32_t RxBuffCount)
 
-  80390e4:	f100 0320 	add.w	r3, r0, #32
 
-   for(i=0; i < RxBuffCount; i++)
 
-   {
 
-     /* Get the pointer on the ith member of the Rx Desc list */
 
-     DMARxDesc = DMARxDescTab+i;
 
-     /* Set Own bit of the Rx descriptor Status */
 
-     DMARxDesc->Status = ETH_DMARxDesc_OWN;
 
-  80390e8:	f04f 4500 	mov.w	r5, #2147483648	; 0x80000000
 
-     /* Set Buffer1 size and Second Address Chained bit */
 
-     DMARxDesc->ControlBufferSize = ETH_DMARxDesc_RCH | (uint32_t)ETH_RX_BUF_SIZE;  
 
-  80390ec:	f244 56f4 	movw	r6, #17908	; 0x45f4
 
-     /* Set Buffer1 address pointer */
 
-     DMARxDesc->Buffer1Addr = (uint32_t)(&RxBuff[i*ETH_RX_BUF_SIZE]);
 
-     
 
-     /* Initialize the next descriptor with the Next Descriptor Polling Enable */
 
-     if(i < (RxBuffCount-1))
 
-  80390f0:	1e57      	subs	r7, r2, #1
 
-   ETH_DMADESCTypeDef *DMARxDesc;
 
-   
 
-   /* Set the DMARxDescToGet pointer with the first one of the DMARxDescTab list */
 
-   DMARxDescToGet = DMARxDescTab; 
 
-   /* Fill each DMARxDesc descriptor with the right values */
 
-   for(i=0; i < RxBuffCount; i++)
 
-  80390f2:	e00f      	b.n	8039114 <ETH_DMARxDescChainInit+0x38>
 
-     
 
-     /* Initialize the next descriptor with the Next Descriptor Polling Enable */
 
-     if(i < (RxBuffCount-1))
 
-     {
 
-       /* Set next descriptor address register with next descriptor base address */
 
-       DMARxDesc->Buffer2NextDescAddr = (uint32_t)(DMARxDescTab+i+1); 
 
-  80390f4:	42bc      	cmp	r4, r7
 
-  80390f6:	bf2c      	ite	cs
 
-  80390f8:	4684      	movcs	ip, r0
 
-  80390fa:	469c      	movcc	ip, r3
 
-     DMARxDesc->Status = ETH_DMARxDesc_OWN;
 
-     /* Set Buffer1 size and Second Address Chained bit */
 
-     DMARxDesc->ControlBufferSize = ETH_DMARxDesc_RCH | (uint32_t)ETH_RX_BUF_SIZE;  
 
-     /* Set Buffer1 address pointer */
 
-     DMARxDesc->Buffer1Addr = (uint32_t)(&RxBuff[i*ETH_RX_BUF_SIZE]);
 
-  80390fc:	f843 1c18 	str.w	r1, [r3, #-24]
 
-   for(i=0; i < RxBuffCount; i++)
 
-   {
 
-     /* Get the pointer on the ith member of the Rx Desc list */
 
-     DMARxDesc = DMARxDescTab+i;
 
-     /* Set Own bit of the Rx descriptor Status */
 
-     DMARxDesc->Status = ETH_DMARxDesc_OWN;
 
-  8039100:	f843 5c20 	str.w	r5, [r3, #-32]
 
-     /* Set Buffer1 size and Second Address Chained bit */
 
-     DMARxDesc->ControlBufferSize = ETH_DMARxDesc_RCH | (uint32_t)ETH_RX_BUF_SIZE;  
 
-  8039104:	f843 6c1c 	str.w	r6, [r3, #-28]
 
-     
 
-     /* Initialize the next descriptor with the Next Descriptor Polling Enable */
 
-     if(i < (RxBuffCount-1))
 
-     {
 
-       /* Set next descriptor address register with next descriptor base address */
 
-       DMARxDesc->Buffer2NextDescAddr = (uint32_t)(DMARxDescTab+i+1); 
 
-  8039108:	f843 cc14 	str.w	ip, [r3, #-20]
 
-   ETH_DMADESCTypeDef *DMARxDesc;
 
-   
 
-   /* Set the DMARxDescToGet pointer with the first one of the DMARxDescTab list */
 
-   DMARxDescToGet = DMARxDescTab; 
 
-   /* Fill each DMARxDesc descriptor with the right values */
 
-   for(i=0; i < RxBuffCount; i++)
 
-  803910c:	3401      	adds	r4, #1
 
-  803910e:	3320      	adds	r3, #32
 
-  8039110:	f201 51f4 	addw	r1, r1, #1524	; 0x5f4
 
-  8039114:	4294      	cmp	r4, r2
 
-  8039116:	d1ed      	bne.n	80390f4 <ETH_DMARxDescChainInit+0x18>
 
-       DMARxDesc->Buffer2NextDescAddr = (uint32_t)(DMARxDescTab); 
 
-     }
 
-   }
 
-    
 
-   /* Set Receive Descriptor List Address Register */
 
-   ETH->DMARDLAR = (uint32_t) DMARxDescTab; 
 
-  8039118:	4b03      	ldr	r3, [pc, #12]	; (8039128 <ETH_DMARxDescChainInit+0x4c>)
 
-   
 
-   DMA_RX_FRAME_infos = &RX_Frame_Descriptor;
 
-  803911a:	4a04      	ldr	r2, [pc, #16]	; (803912c <ETH_DMARxDescChainInit+0x50>)
 
-       DMARxDesc->Buffer2NextDescAddr = (uint32_t)(DMARxDescTab); 
 
-     }
 
-   }
 
-    
 
-   /* Set Receive Descriptor List Address Register */
 
-   ETH->DMARDLAR = (uint32_t) DMARxDescTab; 
 
-  803911c:	60d8      	str	r0, [r3, #12]
 
-   
 
-   DMA_RX_FRAME_infos = &RX_Frame_Descriptor;
 
-  803911e:	4b04      	ldr	r3, [pc, #16]	; (8039130 <ETH_DMARxDescChainInit+0x54>)
 
-  8039120:	601a      	str	r2, [r3, #0]
 
-  8039122:	bdf0      	pop	{r4, r5, r6, r7, pc}
 
-  8039124:	2000fc70 	.word	0x2000fc70
 
-  8039128:	40029000 	.word	0x40029000
 
-  803912c:	2000fc64 	.word	0x2000fc64
 
-  8039130:	20011ae0 	.word	0x20011ae0
 
- 08039134 <ETH_DMATxDescChainInit>:
 
- {
 
-   uint32_t i = 0;
 
-   ETH_DMADESCTypeDef *DMATxDesc;
 
-   
 
-   /* Set the DMATxDescToSet pointer with the first one of the DMATxDescTab list */
 
-   DMATxDescToSet = DMATxDescTab;
 
-  8039134:	4b0e      	ldr	r3, [pc, #56]	; (8039170 <ETH_DMATxDescChainInit+0x3c>)
 
-   * @param  TxBuff: Pointer on the first TxBuffer list
 
-   * @param  TxBuffCount: Number of the used Tx desc in the list
 
-   * @retval None
 
-   */
 
- void ETH_DMATxDescChainInit(ETH_DMADESCTypeDef *DMATxDescTab, uint8_t* TxBuff, uint32_t TxBuffCount)
 
- {
 
-  8039136:	b5f0      	push	{r4, r5, r6, r7, lr}
 
-   uint32_t i = 0;
 
-   ETH_DMADESCTypeDef *DMATxDesc;
 
-   
 
-   /* Set the DMATxDescToSet pointer with the first one of the DMATxDescTab list */
 
-   DMATxDescToSet = DMATxDescTab;
 
-  8039138:	6018      	str	r0, [r3, #0]
 
-   /* Fill each DMATxDesc descriptor with the right values */   
 
-   for(i=0; i < TxBuffCount; i++)
 
-  803913a:	2400      	movs	r4, #0
 
-   * @param  DMATxDescTab: Pointer on the first Tx desc list 
 
-   * @param  TxBuff: Pointer on the first TxBuffer list
 
-   * @param  TxBuffCount: Number of the used Tx desc in the list
 
-   * @retval None
 
-   */
 
- void ETH_DMATxDescChainInit(ETH_DMADESCTypeDef *DMATxDescTab, uint8_t* TxBuff, uint32_t TxBuffCount)
 
-  803913c:	f100 0320 	add.w	r3, r0, #32
 
-   for(i=0; i < TxBuffCount; i++)
 
-   {
 
-     /* Get the pointer on the ith member of the Tx Desc list */
 
-     DMATxDesc = DMATxDescTab + i;
 
-     /* Set Second Address Chained bit */
 
-     DMATxDesc->Status = ETH_DMATxDesc_TCH;  
 
-  8039140:	f44f 1580 	mov.w	r5, #1048576	; 0x100000
 
-        
 
-     /* Set Buffer1 address pointer */
 
-     DMATxDesc->Buffer1Addr = (uint32_t)(&TxBuff[i*ETH_TX_BUF_SIZE]);
 
-     
 
-     /* Initialize the next descriptor with the Next Descriptor Polling Enable */
 
-     if(i < (TxBuffCount-1))
 
-  8039144:	1e56      	subs	r6, r2, #1
 
-   ETH_DMADESCTypeDef *DMATxDesc;
 
-   
 
-   /* Set the DMATxDescToSet pointer with the first one of the DMATxDescTab list */
 
-   DMATxDescToSet = DMATxDescTab;
 
-   /* Fill each DMATxDesc descriptor with the right values */   
 
-   for(i=0; i < TxBuffCount; i++)
 
-  8039146:	e00d      	b.n	8039164 <ETH_DMATxDescChainInit+0x30>
 
-     
 
-     /* Initialize the next descriptor with the Next Descriptor Polling Enable */
 
-     if(i < (TxBuffCount-1))
 
-     {
 
-       /* Set next descriptor address register with next descriptor base address */
 
-       DMATxDesc->Buffer2NextDescAddr = (uint32_t)(DMATxDescTab+i+1);
 
-  8039148:	42b4      	cmp	r4, r6
 
-  803914a:	bf2c      	ite	cs
 
-  803914c:	4607      	movcs	r7, r0
 
-  803914e:	461f      	movcc	r7, r3
 
-     DMATxDesc = DMATxDescTab + i;
 
-     /* Set Second Address Chained bit */
 
-     DMATxDesc->Status = ETH_DMATxDesc_TCH;  
 
-        
 
-     /* Set Buffer1 address pointer */
 
-     DMATxDesc->Buffer1Addr = (uint32_t)(&TxBuff[i*ETH_TX_BUF_SIZE]);
 
-  8039150:	f843 1c18 	str.w	r1, [r3, #-24]
 
-   for(i=0; i < TxBuffCount; i++)
 
-   {
 
-     /* Get the pointer on the ith member of the Tx Desc list */
 
-     DMATxDesc = DMATxDescTab + i;
 
-     /* Set Second Address Chained bit */
 
-     DMATxDesc->Status = ETH_DMATxDesc_TCH;  
 
-  8039154:	f843 5c20 	str.w	r5, [r3, #-32]
 
-     
 
-     /* Initialize the next descriptor with the Next Descriptor Polling Enable */
 
-     if(i < (TxBuffCount-1))
 
-     {
 
-       /* Set next descriptor address register with next descriptor base address */
 
-       DMATxDesc->Buffer2NextDescAddr = (uint32_t)(DMATxDescTab+i+1);
 
-  8039158:	f843 7c14 	str.w	r7, [r3, #-20]
 
-   ETH_DMADESCTypeDef *DMATxDesc;
 
-   
 
-   /* Set the DMATxDescToSet pointer with the first one of the DMATxDescTab list */
 
-   DMATxDescToSet = DMATxDescTab;
 
-   /* Fill each DMATxDesc descriptor with the right values */   
 
-   for(i=0; i < TxBuffCount; i++)
 
-  803915c:	3401      	adds	r4, #1
 
-  803915e:	3320      	adds	r3, #32
 
-  8039160:	f201 51f4 	addw	r1, r1, #1524	; 0x5f4
 
-  8039164:	4294      	cmp	r4, r2
 
-  8039166:	d1ef      	bne.n	8039148 <ETH_DMATxDescChainInit+0x14>
 
-       DMATxDesc->Buffer2NextDescAddr = (uint32_t) DMATxDescTab;  
 
-     }
 
-   }
 
-    
 
-   /* Set Transmit Desciptor List Address Register */
 
-   ETH->DMATDLAR = (uint32_t) DMATxDescTab;
 
-  8039168:	4b02      	ldr	r3, [pc, #8]	; (8039174 <ETH_DMATxDescChainInit+0x40>)
 
-  803916a:	6118      	str	r0, [r3, #16]
 
-  803916c:	bdf0      	pop	{r4, r5, r6, r7, pc}
 
-  803916e:	bf00      	nop
 
-  8039170:	2000fc74 	.word	0x2000fc74
 
-  8039174:	40029000 	.word	0x40029000
 
- 08039178 <ETH_DMATxDescChecksumInsertionConfig>:
 
- {
 
-   /* Check the parameters */
 
-   assert_param(IS_ETH_DMA_TXDESC_CHECKSUM(DMATxDesc_Checksum));
 
-   
 
-   /* Set the selected DMA Tx desc checksum insertion control */
 
-   DMATxDesc->Status |= DMATxDesc_Checksum;
 
-  8039178:	6803      	ldr	r3, [r0, #0]
 
-  803917a:	4319      	orrs	r1, r3
 
-  803917c:	6001      	str	r1, [r0, #0]
 
-  803917e:	4770      	bx	lr
 
- 08039180 <ETH_DMARxDescReceiveITConfig>:
 
-   * @param  NewState: new state of the specified DMA Rx Desc interrupt.
 
-   *   This parameter can be: ENABLE or DISABLE.                   
 
-   * @retval None
 
-   */
 
- void ETH_DMARxDescReceiveITConfig(ETH_DMADESCTypeDef *DMARxDesc, FunctionalState NewState)
 
- {
 
-  8039180:	6843      	ldr	r3, [r0, #4]
 
-   /* Check the parameters */
 
-   assert_param(IS_FUNCTIONAL_STATE(NewState));
 
-   
 
-   if (NewState != DISABLE)
 
-  8039182:	b111      	cbz	r1, 803918a <ETH_DMARxDescReceiveITConfig+0xa>
 
-   {
 
-     /* Enable the DMA Rx Desc receive interrupt */
 
-     DMARxDesc->ControlBufferSize &=(~(uint32_t)ETH_DMARxDesc_DIC);
 
-  8039184:	f023 4300 	bic.w	r3, r3, #2147483648	; 0x80000000
 
-  8039188:	e001      	b.n	803918e <ETH_DMARxDescReceiveITConfig+0xe>
 
-   }
 
-   else
 
-   {
 
-     /* Disable the DMA Rx Desc receive interrupt */
 
-     DMARxDesc->ControlBufferSize |= ETH_DMARxDesc_DIC;
 
-  803918a:	f043 4300 	orr.w	r3, r3, #2147483648	; 0x80000000
 
-  803918e:	6043      	str	r3, [r0, #4]
 
-  8039190:	4770      	bx	lr
 
-  8039192:	0000      	movs	r0, r0
 
- 08039194 <ETH_SoftwareReset>:
 
-   */
 
- void ETH_SoftwareReset(void)
 
- {
 
-   /* Set the SWR bit: resets all MAC subsystem internal registers and logic */
 
-   /* After reset all the registers holds their respective reset values */
 
-   ETH->DMABMR |= ETH_DMABMR_SR;
 
-  8039194:	4b02      	ldr	r3, [pc, #8]	; (80391a0 <ETH_SoftwareReset+0xc>)
 
-  8039196:	681a      	ldr	r2, [r3, #0]
 
-  8039198:	f042 0201 	orr.w	r2, r2, #1
 
-  803919c:	601a      	str	r2, [r3, #0]
 
-  803919e:	4770      	bx	lr
 
-  80391a0:	40029000 	.word	0x40029000
 
- 080391a4 <ETH_GetSoftwareResetStatus>:
 
-   * @retval The new state of DMA Bus Mode register SR bit (SET or RESET).
 
-   */
 
- FlagStatus ETH_GetSoftwareResetStatus(void)
 
- {
 
-   FlagStatus bitstatus = RESET;
 
-   if((ETH->DMABMR & ETH_DMABMR_SR) != (uint32_t)RESET)
 
-  80391a4:	4b02      	ldr	r3, [pc, #8]	; (80391b0 <ETH_GetSoftwareResetStatus+0xc>)
 
-  80391a6:	6818      	ldr	r0, [r3, #0]
 
-   else
 
-   {
 
-     bitstatus = RESET;
 
-   }
 
-   return bitstatus;
 
- }
 
-  80391a8:	f000 0001 	and.w	r0, r0, #1
 
-  80391ac:	4770      	bx	lr
 
-  80391ae:	bf00      	nop
 
-  80391b0:	40029000 	.word	0x40029000
 
- 080391b4 <ETH_GetDMAFlagStatus>:
 
- FlagStatus ETH_GetDMAFlagStatus(uint32_t ETH_DMA_FLAG)
 
- {  
 
-   FlagStatus bitstatus = RESET;
 
-   /* Check the parameters */
 
-   assert_param(IS_ETH_DMA_GET_IT(ETH_DMA_FLAG));
 
-   if ((ETH->DMASR & ETH_DMA_FLAG) != (uint32_t)RESET)
 
-  80391b4:	4b03      	ldr	r3, [pc, #12]	; (80391c4 <ETH_GetDMAFlagStatus+0x10>)
 
-  80391b6:	695b      	ldr	r3, [r3, #20]
 
-  80391b8:	4218      	tst	r0, r3
 
-   else
 
-   {
 
-     bitstatus = RESET;
 
-   }
 
-   return bitstatus;
 
- }
 
-  80391ba:	bf0c      	ite	eq
 
-  80391bc:	2000      	moveq	r0, #0
 
-  80391be:	2001      	movne	r0, #1
 
-  80391c0:	4770      	bx	lr
 
-  80391c2:	bf00      	nop
 
-  80391c4:	40029000 	.word	0x40029000
 
- 080391c8 <ETH_DMAITConfig>:
 
-   * @param  NewState: new state of the specified ETHERNET DMA interrupts.
 
-   *   This parameter can be: ENABLE or DISABLE.
 
-   * @retval None
 
-   */
 
- void ETH_DMAITConfig(uint32_t ETH_DMA_IT, FunctionalState NewState)
 
- {
 
-  80391c8:	4b04      	ldr	r3, [pc, #16]	; (80391dc <ETH_DMAITConfig+0x14>)
 
-   assert_param(IS_FUNCTIONAL_STATE(NewState));  
 
-   
 
-   if (NewState != DISABLE)
 
-   {
 
-     /* Enable the selected ETHERNET DMA interrupts */
 
-     ETH->DMAIER |= ETH_DMA_IT;
 
-  80391ca:	69da      	ldr	r2, [r3, #28]
 
- {
 
-   /* Check the parameters */
 
-   assert_param(IS_ETH_DMA_IT(ETH_DMA_IT));
 
-   assert_param(IS_FUNCTIONAL_STATE(NewState));  
 
-   
 
-   if (NewState != DISABLE)
 
-  80391cc:	b109      	cbz	r1, 80391d2 <ETH_DMAITConfig+0xa>
 
-   {
 
-     /* Enable the selected ETHERNET DMA interrupts */
 
-     ETH->DMAIER |= ETH_DMA_IT;
 
-  80391ce:	4310      	orrs	r0, r2
 
-  80391d0:	e001      	b.n	80391d6 <ETH_DMAITConfig+0xe>
 
-   }
 
-   else
 
-   {
 
-     /* Disable the selected ETHERNET DMA interrupts */
 
-     ETH->DMAIER &=(~(uint32_t)ETH_DMA_IT);
 
-  80391d2:	ea22 0000 	bic.w	r0, r2, r0
 
-  80391d6:	61d8      	str	r0, [r3, #28]
 
-  80391d8:	4770      	bx	lr
 
-  80391da:	bf00      	nop
 
-  80391dc:	40029000 	.word	0x40029000
 
- 080391e0 <ETH_DMAClearITPendingBit>:
 
- {
 
-   /* Check the parameters */
 
-   assert_param(IS_ETH_DMA_IT(ETH_DMA_IT));
 
-   
 
-   /* Clear the selected ETHERNET DMA IT */
 
-   ETH->DMASR = (uint32_t) ETH_DMA_IT;
 
-  80391e0:	4b01      	ldr	r3, [pc, #4]	; (80391e8 <ETH_DMAClearITPendingBit+0x8>)
 
-  80391e2:	6158      	str	r0, [r3, #20]
 
-  80391e4:	4770      	bx	lr
 
-  80391e6:	bf00      	nop
 
-  80391e8:	40029000 	.word	0x40029000
 
- 080391ec <ETH_FlushTransmitFIFO>:
 
-   * @retval None
 
-   */
 
- void ETH_FlushTransmitFIFO(void)
 
- {
 
-   /* Set the Flush Transmit FIFO bit */
 
-   ETH->DMAOMR |= ETH_DMAOMR_FTF;  
 
-  80391ec:	4b02      	ldr	r3, [pc, #8]	; (80391f8 <ETH_FlushTransmitFIFO+0xc>)
 
-  80391ee:	699a      	ldr	r2, [r3, #24]
 
-  80391f0:	f442 1280 	orr.w	r2, r2, #1048576	; 0x100000
 
-  80391f4:	619a      	str	r2, [r3, #24]
 
-  80391f6:	4770      	bx	lr
 
-  80391f8:	40029000 	.word	0x40029000
 
- 080391fc <ETH_DMATransmissionCmd>:
 
-   * @param  NewState: new state of the DMA transmission.
 
-   *   This parameter can be: ENABLE or DISABLE.
 
-   * @retval None
 
-   */
 
- void ETH_DMATransmissionCmd(FunctionalState NewState)
 
- { 
 
-  80391fc:	4b04      	ldr	r3, [pc, #16]	; (8039210 <ETH_DMATransmissionCmd+0x14>)
 
-   assert_param(IS_FUNCTIONAL_STATE(NewState));
 
-   
 
-   if (NewState != DISABLE)
 
-   {
 
-     /* Enable the DMA transmission */
 
-     ETH->DMAOMR |= ETH_DMAOMR_ST;  
 
-  80391fe:	699a      	ldr	r2, [r3, #24]
 
- void ETH_DMATransmissionCmd(FunctionalState NewState)
 
- { 
 
-   /* Check the parameters */
 
-   assert_param(IS_FUNCTIONAL_STATE(NewState));
 
-   
 
-   if (NewState != DISABLE)
 
-  8039200:	b110      	cbz	r0, 8039208 <ETH_DMATransmissionCmd+0xc>
 
-   {
 
-     /* Enable the DMA transmission */
 
-     ETH->DMAOMR |= ETH_DMAOMR_ST;  
 
-  8039202:	f442 5200 	orr.w	r2, r2, #8192	; 0x2000
 
-  8039206:	e001      	b.n	803920c <ETH_DMATransmissionCmd+0x10>
 
-   }
 
-   else
 
-   {
 
-     /* Disable the DMA transmission */
 
-     ETH->DMAOMR &= ~ETH_DMAOMR_ST;
 
-  8039208:	f422 5200 	bic.w	r2, r2, #8192	; 0x2000
 
-  803920c:	619a      	str	r2, [r3, #24]
 
-  803920e:	4770      	bx	lr
 
-  8039210:	40029000 	.word	0x40029000
 
- 08039214 <ETH_DMAReceptionCmd>:
 
-   * @param  NewState: new state of the DMA reception.
 
-   *   This parameter can be: ENABLE or DISABLE.
 
-   * @retval None
 
-   */
 
- void ETH_DMAReceptionCmd(FunctionalState NewState)
 
- { 
 
-  8039214:	4b04      	ldr	r3, [pc, #16]	; (8039228 <ETH_DMAReceptionCmd+0x14>)
 
-   assert_param(IS_FUNCTIONAL_STATE(NewState));
 
-   
 
-   if (NewState != DISABLE)
 
-   {
 
-     /* Enable the DMA reception */
 
-     ETH->DMAOMR |= ETH_DMAOMR_SR;  
 
-  8039216:	699a      	ldr	r2, [r3, #24]
 
- void ETH_DMAReceptionCmd(FunctionalState NewState)
 
- { 
 
-   /* Check the parameters */
 
-   assert_param(IS_FUNCTIONAL_STATE(NewState));
 
-   
 
-   if (NewState != DISABLE)
 
-  8039218:	b110      	cbz	r0, 8039220 <ETH_DMAReceptionCmd+0xc>
 
-   {
 
-     /* Enable the DMA reception */
 
-     ETH->DMAOMR |= ETH_DMAOMR_SR;  
 
-  803921a:	f042 0202 	orr.w	r2, r2, #2
 
-  803921e:	e001      	b.n	8039224 <ETH_DMAReceptionCmd+0x10>
 
-   }
 
-   else
 
-   {
 
-     /* Disable the DMA reception */
 
-     ETH->DMAOMR &= ~ETH_DMAOMR_SR;
 
-  8039220:	f022 0202 	bic.w	r2, r2, #2
 
-  8039224:	619a      	str	r2, [r3, #24]
 
-  8039226:	4770      	bx	lr
 
-  8039228:	40029000 	.word	0x40029000
 
- 0803922c <ETH_Start>:
 
-   * @brief  Enables ENET MAC and DMA reception/transmission 
 
-   * @param  None
 
-   * @retval None
 
-   */
 
- void ETH_Start(void)
 
- {
 
-  803922c:	b508      	push	{r3, lr}
 
-   /* Enable transmit state machine of the MAC for transmission on the MII */  
 
-   ETH_MACTransmissionCmd(ENABLE);
 
-  803922e:	2001      	movs	r0, #1
 
-  8039230:	f7ff fe7a 	bl	8038f28 <ETH_MACTransmissionCmd>
 
-   /* Flush Transmit FIFO */
 
-   ETH_FlushTransmitFIFO();
 
-  8039234:	f7ff ffda 	bl	80391ec <ETH_FlushTransmitFIFO>
 
-   /* Enable receive state machine of the MAC for reception from the MII */  
 
-   ETH_MACReceptionCmd(ENABLE);
 
-  8039238:	2001      	movs	r0, #1
 
-  803923a:	f7ff fe81 	bl	8038f40 <ETH_MACReceptionCmd>
 
-  
 
-   /* Start DMA transmission */
 
-   ETH_DMATransmissionCmd(ENABLE); 
 
-  803923e:	2001      	movs	r0, #1
 
-  8039240:	f7ff ffdc 	bl	80391fc <ETH_DMATransmissionCmd>
 
-   /* Start DMA reception */
 
-   ETH_DMAReceptionCmd(ENABLE);   
 
-  8039244:	2001      	movs	r0, #1
 
- }
 
-  8039246:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
 
-   ETH_MACReceptionCmd(ENABLE);
 
-  
 
-   /* Start DMA transmission */
 
-   ETH_DMATransmissionCmd(ENABLE); 
 
-   /* Start DMA reception */
 
-   ETH_DMAReceptionCmd(ENABLE);   
 
-  803924a:	f7ff bfe3 	b.w	8039214 <ETH_DMAReceptionCmd>
 
-  803924e:	0000      	movs	r0, r0
 
- 08039250 <ETH_ReadPHYRegister>:
 
-   *     @arg More PHY register could be read depending on the used PHY
 
-   * @retval ETH_ERROR: in case of timeout
 
-   *         MAC MIIDR register value: Data read from the selected PHY register (correct read )
 
-   */
 
- uint16_t ETH_ReadPHYRegister(uint16_t PHYAddress, uint16_t PHYReg)
 
- {
 
-  8039250:	b082      	sub	sp, #8
 
-   uint32_t tmpreg = 0;     
 
- __IO uint32_t timeout = 0;
 
-  8039252:	2300      	movs	r3, #0
 
-  8039254:	9301      	str	r3, [sp, #4]
 
-   /* Check the parameters */
 
-   assert_param(IS_ETH_PHY_ADDRESS(PHYAddress));
 
-   assert_param(IS_ETH_PHY_REG(PHYReg));
 
-   
 
-   /* Get the ETHERNET MACMIIAR value */
 
-   tmpreg = ETH->MACMIIAR;
 
-  8039256:	4b11      	ldr	r3, [pc, #68]	; (803929c <ETH_ReadPHYRegister+0x4c>)
 
-  8039258:	691a      	ldr	r2, [r3, #16]
 
-   /* Keep only the CSR Clock Range CR[2:0] bits value */
 
-   tmpreg &= ~MACMIIAR_CR_MASK;
 
-   /* Prepare the MII address register value */
 
-   tmpreg |=(((uint32_t)PHYAddress<<11) & ETH_MACMIIAR_PA); /* Set the PHY device address */
 
-  803925a:	06c0      	lsls	r0, r0, #27
 
-   assert_param(IS_ETH_PHY_REG(PHYReg));
 
-   
 
-   /* Get the ETHERNET MACMIIAR value */
 
-   tmpreg = ETH->MACMIIAR;
 
-   /* Keep only the CSR Clock Range CR[2:0] bits value */
 
-   tmpreg &= ~MACMIIAR_CR_MASK;
 
-  803925c:	f002 021c 	and.w	r2, r2, #28
 
-   /* Prepare the MII address register value */
 
-   tmpreg |=(((uint32_t)PHYAddress<<11) & ETH_MACMIIAR_PA); /* Set the PHY device address */
 
-   tmpreg |=(((uint32_t)PHYReg<<6) & ETH_MACMIIAR_MR);      /* Set the PHY register address */
 
-  8039260:	0189      	lsls	r1, r1, #6
 
-   /* Get the ETHERNET MACMIIAR value */
 
-   tmpreg = ETH->MACMIIAR;
 
-   /* Keep only the CSR Clock Range CR[2:0] bits value */
 
-   tmpreg &= ~MACMIIAR_CR_MASK;
 
-   /* Prepare the MII address register value */
 
-   tmpreg |=(((uint32_t)PHYAddress<<11) & ETH_MACMIIAR_PA); /* Set the PHY device address */
 
-  8039262:	ea42 4210 	orr.w	r2, r2, r0, lsr #16
 
-   tmpreg |=(((uint32_t)PHYReg<<6) & ETH_MACMIIAR_MR);      /* Set the PHY register address */
 
-  8039266:	f401 61f8 	and.w	r1, r1, #1984	; 0x7c0
 
-   tmpreg &= ~ETH_MACMIIAR_MW;                              /* Set the read mode */
 
-  803926a:	430a      	orrs	r2, r1
 
-   tmpreg |= ETH_MACMIIAR_MB;                               /* Set the MII Busy bit */
 
-  803926c:	f042 0201 	orr.w	r2, r2, #1
 
-   /* Write the result value into the MII Address register */
 
-   ETH->MACMIIAR = tmpreg;
 
-  8039270:	611a      	str	r2, [r3, #16]
 
-   /* Check for the Busy flag */
 
-   do
 
-   {
 
-     timeout++;
 
-     tmpreg = ETH->MACMIIAR;
 
-   } while ((tmpreg & ETH_MACMIIAR_MB) && (timeout < (uint32_t)PHY_READ_TO));
 
-  8039272:	4a0b      	ldr	r2, [pc, #44]	; (80392a0 <ETH_ReadPHYRegister+0x50>)
 
-   /* Write the result value into the MII Address register */
 
-   ETH->MACMIIAR = tmpreg;
 
-   /* Check for the Busy flag */
 
-   do
 
-   {
 
-     timeout++;
 
-  8039274:	9901      	ldr	r1, [sp, #4]
 
-  8039276:	3101      	adds	r1, #1
 
-  8039278:	9101      	str	r1, [sp, #4]
 
-     tmpreg = ETH->MACMIIAR;
 
-  803927a:	6919      	ldr	r1, [r3, #16]
 
-   } while ((tmpreg & ETH_MACMIIAR_MB) && (timeout < (uint32_t)PHY_READ_TO));
 
-  803927c:	07c9      	lsls	r1, r1, #31
 
-  803927e:	d502      	bpl.n	8039286 <ETH_ReadPHYRegister+0x36>
 
-  8039280:	9901      	ldr	r1, [sp, #4]
 
-  8039282:	4291      	cmp	r1, r2
 
-  8039284:	d9f6      	bls.n	8039274 <ETH_ReadPHYRegister+0x24>
 
-   /* Return ERROR in case of timeout */
 
-   if(timeout == PHY_READ_TO)
 
-  8039286:	4b07      	ldr	r3, [pc, #28]	; (80392a4 <ETH_ReadPHYRegister+0x54>)
 
-  8039288:	9a01      	ldr	r2, [sp, #4]
 
-  803928a:	429a      	cmp	r2, r3
 
-   {
 
-     return (uint16_t)ETH_ERROR;
 
-   }
 
-   
 
-   /* Return data register value */
 
-   return (uint16_t)(ETH->MACMIIDR);
 
-  803928c:	bf1d      	ittte	ne
 
-  803928e:	4b03      	ldrne	r3, [pc, #12]	; (803929c <ETH_ReadPHYRegister+0x4c>)
 
-  8039290:	6958      	ldrne	r0, [r3, #20]
 
-  8039292:	b280      	uxthne	r0, r0
 
-     tmpreg = ETH->MACMIIAR;
 
-   } while ((tmpreg & ETH_MACMIIAR_MB) && (timeout < (uint32_t)PHY_READ_TO));
 
-   /* Return ERROR in case of timeout */
 
-   if(timeout == PHY_READ_TO)
 
-   {
 
-     return (uint16_t)ETH_ERROR;
 
-  8039294:	2000      	moveq	r0, #0
 
-   }
 
-   
 
-   /* Return data register value */
 
-   return (uint16_t)(ETH->MACMIIDR);
 
- }
 
-  8039296:	b002      	add	sp, #8
 
-  8039298:	4770      	bx	lr
 
-  803929a:	bf00      	nop
 
-  803929c:	40028000 	.word	0x40028000
 
-  80392a0:	0004fffe 	.word	0x0004fffe
 
-  80392a4:	0004ffff 	.word	0x0004ffff
 
- 080392a8 <ETH_WritePHYRegister>:
 
-   * @param  PHYValue: the value to write
 
-   * @retval ETH_ERROR: in case of timeout
 
-   *         ETH_SUCCESS: for correct write
 
-   */
 
- uint32_t ETH_WritePHYRegister(uint16_t PHYAddress, uint16_t PHYReg, uint16_t PHYValue)
 
- {
 
-  80392a8:	b513      	push	{r0, r1, r4, lr}
 
-   uint32_t tmpreg = 0;     
 
-   __IO uint32_t timeout = 0;
 
-  80392aa:	2300      	movs	r3, #0
 
-  80392ac:	9301      	str	r3, [sp, #4]
 
-   /* Check the parameters */
 
-   assert_param(IS_ETH_PHY_ADDRESS(PHYAddress));
 
-   assert_param(IS_ETH_PHY_REG(PHYReg));
 
-   
 
-   /* Get the ETHERNET MACMIIAR value */
 
-   tmpreg = ETH->MACMIIAR;
 
-  80392ae:	4b0f      	ldr	r3, [pc, #60]	; (80392ec <ETH_WritePHYRegister+0x44>)
 
-  80392b0:	691c      	ldr	r4, [r3, #16]
 
-   tmpreg |=(((uint32_t)PHYAddress<<11) & ETH_MACMIIAR_PA); /* Set the PHY device address */
 
-   tmpreg |=(((uint32_t)PHYReg<<6) & ETH_MACMIIAR_MR);      /* Set the PHY register address */
 
-   tmpreg |= ETH_MACMIIAR_MW;                               /* Set the write mode */
 
-   tmpreg |= ETH_MACMIIAR_MB;                               /* Set the MII Busy bit */
 
-   /* Give the value to the MII data register */
 
-   ETH->MACMIIDR = PHYValue;
 
-  80392b2:	615a      	str	r2, [r3, #20]
 
-   assert_param(IS_ETH_PHY_REG(PHYReg));
 
-   
 
-   /* Get the ETHERNET MACMIIAR value */
 
-   tmpreg = ETH->MACMIIAR;
 
-   /* Keep only the CSR Clock Range CR[2:0] bits value */
 
-   tmpreg &= ~MACMIIAR_CR_MASK;
 
-  80392b4:	f004 041c 	and.w	r4, r4, #28
 
-   /* Prepare the MII register address value */
 
-   tmpreg |=(((uint32_t)PHYAddress<<11) & ETH_MACMIIAR_PA); /* Set the PHY device address */
 
-  80392b8:	f044 0403 	orr.w	r4, r4, #3
 
-  80392bc:	06c0      	lsls	r0, r0, #27
 
-   tmpreg |=(((uint32_t)PHYReg<<6) & ETH_MACMIIAR_MR);      /* Set the PHY register address */
 
-  80392be:	0189      	lsls	r1, r1, #6
 
-  80392c0:	ea44 4410 	orr.w	r4, r4, r0, lsr #16
 
-  80392c4:	f401 61f8 	and.w	r1, r1, #1984	; 0x7c0
 
-   tmpreg |= ETH_MACMIIAR_MW;                               /* Set the write mode */
 
-   tmpreg |= ETH_MACMIIAR_MB;                               /* Set the MII Busy bit */
 
-  80392c8:	430c      	orrs	r4, r1
 
-   /* Check for the Busy flag */
 
-   do
 
-   {
 
-     timeout++;
 
-     tmpreg = ETH->MACMIIAR;
 
-   } while ((tmpreg & ETH_MACMIIAR_MB) && (timeout < (uint32_t)PHY_WRITE_TO));
 
-  80392ca:	4a09      	ldr	r2, [pc, #36]	; (80392f0 <ETH_WritePHYRegister+0x48>)
 
-   tmpreg |= ETH_MACMIIAR_MW;                               /* Set the write mode */
 
-   tmpreg |= ETH_MACMIIAR_MB;                               /* Set the MII Busy bit */
 
-   /* Give the value to the MII data register */
 
-   ETH->MACMIIDR = PHYValue;
 
-   /* Write the result value into the MII Address register */
 
-   ETH->MACMIIAR = tmpreg;
 
-  80392cc:	611c      	str	r4, [r3, #16]
 
-   /* Check for the Busy flag */
 
-   do
 
-   {
 
-     timeout++;
 
-  80392ce:	9901      	ldr	r1, [sp, #4]
 
-  80392d0:	3101      	adds	r1, #1
 
-  80392d2:	9101      	str	r1, [sp, #4]
 
-     tmpreg = ETH->MACMIIAR;
 
-  80392d4:	6919      	ldr	r1, [r3, #16]
 
-   } while ((tmpreg & ETH_MACMIIAR_MB) && (timeout < (uint32_t)PHY_WRITE_TO));
 
-  80392d6:	07c8      	lsls	r0, r1, #31
 
-  80392d8:	d502      	bpl.n	80392e0 <ETH_WritePHYRegister+0x38>
 
-  80392da:	9901      	ldr	r1, [sp, #4]
 
-  80392dc:	4291      	cmp	r1, r2
 
-  80392de:	d9f6      	bls.n	80392ce <ETH_WritePHYRegister+0x26>
 
-   /* Return ERROR in case of timeout */
 
-   if(timeout == PHY_WRITE_TO)
 
-  80392e0:	9801      	ldr	r0, [sp, #4]
 
-     return ETH_ERROR;
 
-   }
 
-   
 
-   /* Return SUCCESS */
 
-   return ETH_SUCCESS;  
 
- }
 
-  80392e2:	4b04      	ldr	r3, [pc, #16]	; (80392f4 <ETH_WritePHYRegister+0x4c>)
 
-  80392e4:	1ac0      	subs	r0, r0, r3
 
-  80392e6:	bf18      	it	ne
 
-  80392e8:	2001      	movne	r0, #1
 
-  80392ea:	bd1c      	pop	{r2, r3, r4, pc}
 
-  80392ec:	40028000 	.word	0x40028000
 
-  80392f0:	0004fffe 	.word	0x0004fffe
 
-  80392f4:	0004ffff 	.word	0x0004ffff
 
- 080392f8 <ETH_Init>:
 
-   * @param PHYAddress: external PHY address                    
 
-   * @retval ETH_ERROR: Ethernet initialization failed
 
-   *         ETH_SUCCESS: Ethernet successfully initialized                 
 
-   */
 
- uint32_t ETH_Init(ETH_InitTypeDef* ETH_InitStruct, uint16_t PHYAddress)
 
- {
 
-  80392f8:	b5f0      	push	{r4, r5, r6, r7, lr}
 
-  80392fa:	b087      	sub	sp, #28
 
-   uint32_t RegValue = 0, tmpreg = 0;
 
-   __IO uint32_t i = 0;
 
-  80392fc:	2300      	movs	r3, #0
 
-   assert_param(IS_ETH_DMA_DESC_SKIP_LENGTH(ETH_InitStruct->ETH_DescriptorSkipLength));  
 
-   assert_param(IS_ETH_DMA_ARBITRATION_ROUNDROBIN_RXTX(ETH_InitStruct->ETH_DMAArbitration));       
 
-   /*-------------------------------- MAC Config ------------------------------*/   
 
-   /*---------------------- ETHERNET MACMIIAR Configuration -------------------*/
 
-   /* Get the ETHERNET MACMIIAR value */
 
-   tmpreg = ETH->MACMIIAR;
 
-  80392fe:	4f90      	ldr	r7, [pc, #576]	; (8039540 <ETH_Init+0x248>)
 
-   *         ETH_SUCCESS: Ethernet successfully initialized                 
 
-   */
 
- uint32_t ETH_Init(ETH_InitTypeDef* ETH_InitStruct, uint16_t PHYAddress)
 
- {
 
-   uint32_t RegValue = 0, tmpreg = 0;
 
-   __IO uint32_t i = 0;
 
-  8039300:	9300      	str	r3, [sp, #0]
 
-   * @param PHYAddress: external PHY address                    
 
-   * @retval ETH_ERROR: Ethernet initialization failed
 
-   *         ETH_SUCCESS: Ethernet successfully initialized                 
 
-   */
 
- uint32_t ETH_Init(ETH_InitTypeDef* ETH_InitStruct, uint16_t PHYAddress)
 
- {
 
-  8039302:	4604      	mov	r4, r0
 
-   uint32_t RegValue = 0, tmpreg = 0;
 
-   __IO uint32_t i = 0;
 
-   RCC_ClocksTypeDef  rcc_clocks;
 
-   uint32_t hclk = 60000000;
 
-   __IO uint32_t timeout = 0;
 
-  8039304:	9301      	str	r3, [sp, #4]
 
-   /* Get the ETHERNET MACMIIAR value */
 
-   tmpreg = ETH->MACMIIAR;
 
-   /* Clear CSR Clock Range CR[2:0] bits */
 
-   tmpreg &= MACMIIAR_CR_MASK;
 
-   /* Get hclk frequency value */
 
-   RCC_GetClocksFreq(&rcc_clocks);
 
-  8039306:	a802      	add	r0, sp, #8
 
-   * @param PHYAddress: external PHY address                    
 
-   * @retval ETH_ERROR: Ethernet initialization failed
 
-   *         ETH_SUCCESS: Ethernet successfully initialized                 
 
-   */
 
- uint32_t ETH_Init(ETH_InitTypeDef* ETH_InitStruct, uint16_t PHYAddress)
 
- {
 
-  8039308:	460e      	mov	r6, r1
 
-   assert_param(IS_ETH_DMA_DESC_SKIP_LENGTH(ETH_InitStruct->ETH_DescriptorSkipLength));  
 
-   assert_param(IS_ETH_DMA_ARBITRATION_ROUNDROBIN_RXTX(ETH_InitStruct->ETH_DMAArbitration));       
 
-   /*-------------------------------- MAC Config ------------------------------*/   
 
-   /*---------------------- ETHERNET MACMIIAR Configuration -------------------*/
 
-   /* Get the ETHERNET MACMIIAR value */
 
-   tmpreg = ETH->MACMIIAR;
 
-  803930a:	693d      	ldr	r5, [r7, #16]
 
-   /* Clear CSR Clock Range CR[2:0] bits */
 
-   tmpreg &= MACMIIAR_CR_MASK;
 
-   /* Get hclk frequency value */
 
-   RCC_GetClocksFreq(&rcc_clocks);
 
-  803930c:	f7ec f9ba 	bl	8025684 <RCC_GetClocksFreq>
 
-   hclk = rcc_clocks.HCLK_Frequency;
 
-  8039310:	9b03      	ldr	r3, [sp, #12]
 
-   
 
-   /* Set CR bits depending on hclk value */
 
-   if((hclk >= 20000000)&&(hclk < 35000000))
 
-  8039312:	4a8c      	ldr	r2, [pc, #560]	; (8039544 <ETH_Init+0x24c>)
 
-  8039314:	498c      	ldr	r1, [pc, #560]	; (8039548 <ETH_Init+0x250>)
 
-  8039316:	189a      	adds	r2, r3, r2
 
-  8039318:	428a      	cmp	r2, r1
 
-   /*-------------------------------- MAC Config ------------------------------*/   
 
-   /*---------------------- ETHERNET MACMIIAR Configuration -------------------*/
 
-   /* Get the ETHERNET MACMIIAR value */
 
-   tmpreg = ETH->MACMIIAR;
 
-   /* Clear CSR Clock Range CR[2:0] bits */
 
-   tmpreg &= MACMIIAR_CR_MASK;
 
-  803931a:	f025 051c 	bic.w	r5, r5, #28
 
-   /* Get hclk frequency value */
 
-   RCC_GetClocksFreq(&rcc_clocks);
 
-   hclk = rcc_clocks.HCLK_Frequency;
 
-   
 
-   /* Set CR bits depending on hclk value */
 
-   if((hclk >= 20000000)&&(hclk < 35000000))
 
-  803931e:	d802      	bhi.n	8039326 <ETH_Init+0x2e>
 
-   {
 
-     /* CSR Clock Range between 20-35 MHz */
 
-     tmpreg |= (uint32_t)ETH_MACMIIAR_CR_Div16;
 
-  8039320:	f045 0508 	orr.w	r5, r5, #8
 
-  8039324:	e015      	b.n	8039352 <ETH_Init+0x5a>
 
-   }
 
-   else if((hclk >= 35000000)&&(hclk < 60000000))
 
-  8039326:	4a89      	ldr	r2, [pc, #548]	; (803954c <ETH_Init+0x254>)
 
-  8039328:	4989      	ldr	r1, [pc, #548]	; (8039550 <ETH_Init+0x258>)
 
-  803932a:	189a      	adds	r2, r3, r2
 
-  803932c:	428a      	cmp	r2, r1
 
-  803932e:	d802      	bhi.n	8039336 <ETH_Init+0x3e>
 
-   {
 
-     /* CSR Clock Range between 35-60 MHz */ 
 
-     tmpreg |= (uint32_t)ETH_MACMIIAR_CR_Div26;    
 
-  8039330:	f045 050c 	orr.w	r5, r5, #12
 
-  8039334:	e00d      	b.n	8039352 <ETH_Init+0x5a>
 
-   }  
 
-   else if((hclk >= 60000000)&&(hclk < 100000000))
 
-  8039336:	4a87      	ldr	r2, [pc, #540]	; (8039554 <ETH_Init+0x25c>)
 
-  8039338:	4987      	ldr	r1, [pc, #540]	; (8039558 <ETH_Init+0x260>)
 
-  803933a:	189a      	adds	r2, r3, r2
 
-  803933c:	428a      	cmp	r2, r1
 
-  803933e:	d908      	bls.n	8039352 <ETH_Init+0x5a>
 
-   {
 
-     /* CSR Clock Range between 60-100 MHz */ 
 
-     tmpreg |= (uint32_t)ETH_MACMIIAR_CR_Div42;    
 
-   }  
 
-   else if((hclk >= 100000000)&&(hclk < 150000000))
 
-  8039340:	4a86      	ldr	r2, [pc, #536]	; (803955c <ETH_Init+0x264>)
 
-  8039342:	189a      	adds	r2, r3, r2
 
-  8039344:	4b86      	ldr	r3, [pc, #536]	; (8039560 <ETH_Init+0x268>)
 
-  8039346:	429a      	cmp	r2, r3
 
-   {
 
-     /* CSR Clock Range between 100-150 MHz */ 
 
-     tmpreg |= (uint32_t)ETH_MACMIIAR_CR_Div62;    
 
-  8039348:	bf94      	ite	ls
 
-  803934a:	f045 0504 	orrls.w	r5, r5, #4
 
-   }   
 
-   else /* ((hclk >= 150000000)&&(hclk <= 168000000)) */
 
-   {
 
-     /* CSR Clock Range between 150-168 MHz */ 
 
-     tmpreg |= (uint32_t)ETH_MACMIIAR_CR_Div102;    
 
-  803934e:	f045 0510 	orrhi.w	r5, r5, #16
 
-   }
 
-   
 
-   /* Write to ETHERNET MAC MIIAR: Configure the ETHERNET CSR Clock Range */
 
-   ETH->MACMIIAR = (uint32_t)tmpreg;  
 
-  8039352:	613d      	str	r5, [r7, #16]
 
-   /*-------------------- PHY initialization and configuration ----------------*/
 
-   /* Put the PHY in reset mode */
 
-   if(!(ETH_WritePHYRegister(PHYAddress, PHY_BCR, PHY_Reset)))
 
-  8039354:	4630      	mov	r0, r6
 
-  8039356:	2100      	movs	r1, #0
 
-  8039358:	f44f 4200 	mov.w	r2, #32768	; 0x8000
 
-  803935c:	f7ff ffa4 	bl	80392a8 <ETH_WritePHYRegister>
 
-  8039360:	b908      	cbnz	r0, 8039366 <ETH_Init+0x6e>
 
-   {
 
-     /* Return ERROR in case of write timeout */
 
-     return ETH_ERROR;
 
-  8039362:	2000      	movs	r0, #0
 
-  8039364:	e0e9      	b.n	803953a <ETH_Init+0x242>
 
-   }
 
-   
 
-   /* Delay to assure PHY reset */
 
-   _eth_delay_(PHY_RESET_DELAY);
 
-  8039366:	487f      	ldr	r0, [pc, #508]	; (8039564 <ETH_Init+0x26c>)
 
-  8039368:	f7ff fd6e 	bl	8038e48 <ETH_Delay>
 
-     
 
-   if(ETH_InitStruct->ETH_AutoNegotiation != ETH_AutoNegotiation_Disable)
 
-  803936c:	6821      	ldr	r1, [r4, #0]
 
-  803936e:	2900      	cmp	r1, #0
 
-  8039370:	d050      	beq.n	8039414 <ETH_Init+0x11c>
 
-   {  
 
-     /* We wait for linked status... */
 
-     do
 
-     {
 
-       timeout++;
 
-     } while (!(ETH_ReadPHYRegister(PHYAddress, PHY_BSR) & PHY_Linked_Status) && (timeout < PHY_READ_TO));
 
-  8039372:	4d7d      	ldr	r5, [pc, #500]	; (8039568 <ETH_Init+0x270>)
 
-   if(ETH_InitStruct->ETH_AutoNegotiation != ETH_AutoNegotiation_Disable)
 
-   {  
 
-     /* We wait for linked status... */
 
-     do
 
-     {
 
-       timeout++;
 
-  8039374:	9b01      	ldr	r3, [sp, #4]
 
-     } while (!(ETH_ReadPHYRegister(PHYAddress, PHY_BSR) & PHY_Linked_Status) && (timeout < PHY_READ_TO));
 
-  8039376:	4630      	mov	r0, r6
 
-   if(ETH_InitStruct->ETH_AutoNegotiation != ETH_AutoNegotiation_Disable)
 
-   {  
 
-     /* We wait for linked status... */
 
-     do
 
-     {
 
-       timeout++;
 
-  8039378:	3301      	adds	r3, #1
 
-     } while (!(ETH_ReadPHYRegister(PHYAddress, PHY_BSR) & PHY_Linked_Status) && (timeout < PHY_READ_TO));
 
-  803937a:	2101      	movs	r1, #1
 
-   if(ETH_InitStruct->ETH_AutoNegotiation != ETH_AutoNegotiation_Disable)
 
-   {  
 
-     /* We wait for linked status... */
 
-     do
 
-     {
 
-       timeout++;
 
-  803937c:	9301      	str	r3, [sp, #4]
 
-     } while (!(ETH_ReadPHYRegister(PHYAddress, PHY_BSR) & PHY_Linked_Status) && (timeout < PHY_READ_TO));
 
-  803937e:	f7ff ff67 	bl	8039250 <ETH_ReadPHYRegister>
 
-  8039382:	f000 0004 	and.w	r0, r0, #4
 
-  8039386:	b280      	uxth	r0, r0
 
-  8039388:	b910      	cbnz	r0, 8039390 <ETH_Init+0x98>
 
-  803938a:	9b01      	ldr	r3, [sp, #4]
 
-  803938c:	42ab      	cmp	r3, r5
 
-  803938e:	d9f1      	bls.n	8039374 <ETH_Init+0x7c>
 
-     /* Return ERROR in case of timeout */
 
-     if(timeout == PHY_READ_TO)
 
-  8039390:	9a01      	ldr	r2, [sp, #4]
 
-  8039392:	4b76      	ldr	r3, [pc, #472]	; (803956c <ETH_Init+0x274>)
 
-  8039394:	429a      	cmp	r2, r3
 
-  8039396:	d0e4      	beq.n	8039362 <ETH_Init+0x6a>
 
-     {
 
-       return ETH_ERROR;
 
-     }
 
-     /* Reset Timeout counter */
 
-     timeout = 0; 
 
-  8039398:	2100      	movs	r1, #0
 
-     /* Enable Auto-Negotiation */
 
-     if(!(ETH_WritePHYRegister(PHYAddress, PHY_BCR, PHY_AutoNegotiation)))
 
-  803939a:	4630      	mov	r0, r6
 
-  803939c:	f44f 5280 	mov.w	r2, #4096	; 0x1000
 
-     {
 
-       return ETH_ERROR;
 
-     }
 
-     /* Reset Timeout counter */
 
-     timeout = 0; 
 
-  80393a0:	9101      	str	r1, [sp, #4]
 
-     /* Enable Auto-Negotiation */
 
-     if(!(ETH_WritePHYRegister(PHYAddress, PHY_BCR, PHY_AutoNegotiation)))
 
-  80393a2:	f7ff ff81 	bl	80392a8 <ETH_WritePHYRegister>
 
-  80393a6:	2800      	cmp	r0, #0
 
-  80393a8:	d0db      	beq.n	8039362 <ETH_Init+0x6a>
 
-     /* Wait until the auto-negotiation will be completed */
 
-     do
 
-     {
 
-       timeout++;
 
-     } while (!(ETH_ReadPHYRegister(PHYAddress, PHY_BSR) & PHY_AutoNego_Complete) && (timeout < (uint32_t)PHY_READ_TO));  
 
-  80393aa:	4d6f      	ldr	r5, [pc, #444]	; (8039568 <ETH_Init+0x270>)
 
-     }
 
-     /* Wait until the auto-negotiation will be completed */
 
-     do
 
-     {
 
-       timeout++;
 
-  80393ac:	9b01      	ldr	r3, [sp, #4]
 
-     } while (!(ETH_ReadPHYRegister(PHYAddress, PHY_BSR) & PHY_AutoNego_Complete) && (timeout < (uint32_t)PHY_READ_TO));  
 
-  80393ae:	4630      	mov	r0, r6
 
-     }
 
-     /* Wait until the auto-negotiation will be completed */
 
-     do
 
-     {
 
-       timeout++;
 
-  80393b0:	3301      	adds	r3, #1
 
-     } while (!(ETH_ReadPHYRegister(PHYAddress, PHY_BSR) & PHY_AutoNego_Complete) && (timeout < (uint32_t)PHY_READ_TO));  
 
-  80393b2:	2101      	movs	r1, #1
 
-     }
 
-     /* Wait until the auto-negotiation will be completed */
 
-     do
 
-     {
 
-       timeout++;
 
-  80393b4:	9301      	str	r3, [sp, #4]
 
-     } while (!(ETH_ReadPHYRegister(PHYAddress, PHY_BSR) & PHY_AutoNego_Complete) && (timeout < (uint32_t)PHY_READ_TO));  
 
-  80393b6:	f7ff ff4b 	bl	8039250 <ETH_ReadPHYRegister>
 
-  80393ba:	f000 0020 	and.w	r0, r0, #32
 
-  80393be:	b280      	uxth	r0, r0
 
-  80393c0:	b910      	cbnz	r0, 80393c8 <ETH_Init+0xd0>
 
-  80393c2:	9b01      	ldr	r3, [sp, #4]
 
-  80393c4:	42ab      	cmp	r3, r5
 
-  80393c6:	d9f1      	bls.n	80393ac <ETH_Init+0xb4>
 
-     /* Return ERROR in case of timeout */
 
-     if(timeout == PHY_READ_TO)
 
-  80393c8:	9a01      	ldr	r2, [sp, #4]
 
-  80393ca:	4b68      	ldr	r3, [pc, #416]	; (803956c <ETH_Init+0x274>)
 
-  80393cc:	429a      	cmp	r2, r3
 
-  80393ce:	d0c8      	beq.n	8039362 <ETH_Init+0x6a>
 
-     {
 
-       return ETH_ERROR;
 
-     }
 
-     /* Reset Timeout counter */
 
-     timeout = 0;
 
-  80393d0:	2500      	movs	r5, #0
 
-     
 
-     /* Read the result of the auto-negotiation */
 
-     RegValue = ETH_ReadPHYRegister(PHYAddress, PHY_SR);
 
-  80393d2:	211f      	movs	r1, #31
 
-  80393d4:	4630      	mov	r0, r6
 
-     {
 
-       return ETH_ERROR;
 
-     }
 
-     /* Reset Timeout counter */
 
-     timeout = 0;
 
-  80393d6:	9501      	str	r5, [sp, #4]
 
-     
 
-     /* Read the result of the auto-negotiation */
 
-     RegValue = ETH_ReadPHYRegister(PHYAddress, PHY_SR);
 
-  80393d8:	f7ff ff3a 	bl	8039250 <ETH_ReadPHYRegister>
 
- 		switch (RegValue & PHY_DUPLEX_SPEED_STATUS_MASK)
 
-  80393dc:	f000 001c 	and.w	r0, r0, #28
 
-  80393e0:	2808      	cmp	r0, #8
 
-  80393e2:	d00b      	beq.n	80393fc <ETH_Init+0x104>
 
-  80393e4:	d802      	bhi.n	80393ec <ETH_Init+0xf4>
 
-  80393e6:	2804      	cmp	r0, #4
 
-  80393e8:	d123      	bne.n	8039432 <ETH_Init+0x13a>
 
-  80393ea:	e010      	b.n	803940e <ETH_Init+0x116>
 
-  80393ec:	280e      	cmp	r0, #14
 
-  80393ee:	d00a      	beq.n	8039406 <ETH_Init+0x10e>
 
-  80393f0:	2812      	cmp	r0, #18
 
-  80393f2:	d11e      	bne.n	8039432 <ETH_Init+0x13a>
 
- 		{
 
- 		  case PHY_100BTX_FULL:
 
- 			  ETH_InitStruct->ETH_Mode  = ETH_Mode_FullDuplex;
 
-  80393f4:	f44f 6300 	mov.w	r3, #2048	; 0x800
 
-  80393f8:	6223      	str	r3, [r4, #32]
 
-  80393fa:	e000      	b.n	80393fe <ETH_Init+0x106>
 
- 				ETH_InitStruct->ETH_Speed = ETH_Speed_100M; 
 
- 			  break;
 
- 		  case PHY_100BTX_HALF:
 
- 			  ETH_InitStruct->ETH_Mode  = ETH_Mode_HalfDuplex;
 
-  80393fc:	6225      	str	r5, [r4, #32]
 
- 				ETH_InitStruct->ETH_Speed = ETH_Speed_100M; 
 
-  80393fe:	f44f 4380 	mov.w	r3, #16384	; 0x4000
 
-  8039402:	6163      	str	r3, [r4, #20]
 
-   			break;
 
-  8039404:	e015      	b.n	8039432 <ETH_Init+0x13a>
 
- 		  case PHY_10M_FULL:
 
- 			  ETH_InitStruct->ETH_Mode  = ETH_Mode_FullDuplex;
 
-  8039406:	f44f 6300 	mov.w	r3, #2048	; 0x800
 
-  803940a:	6223      	str	r3, [r4, #32]
 
-  803940c:	e000      	b.n	8039410 <ETH_Init+0x118>
 
- 				ETH_InitStruct->ETH_Speed = ETH_Speed_10M;
 
- 			  break;
 
- 		  case PHY_10M_HALF:
 
- 			  ETH_InitStruct->ETH_Mode  = ETH_Mode_HalfDuplex;
 
-  803940e:	6225      	str	r5, [r4, #32]
 
- 				ETH_InitStruct->ETH_Speed = ETH_Speed_10M; 
 
-  8039410:	6165      	str	r5, [r4, #20]
 
- 			  break;
 
-  8039412:	e00e      	b.n	8039432 <ETH_Init+0x13a>
 
- 			  break;
 
- 		}		   
 
-   }
 
-   else
 
-   {
 
-     if(!ETH_WritePHYRegister(PHYAddress, PHY_BCR, ((uint16_t)(ETH_InitStruct->ETH_Mode >> 3) |
 
-  8039414:	6a22      	ldr	r2, [r4, #32]
 
-                                                    (uint16_t)(ETH_InitStruct->ETH_Speed >> 1))))
 
-  8039416:	6963      	ldr	r3, [r4, #20]
 
- 			  break;
 
- 		}		   
 
-   }
 
-   else
 
-   {
 
-     if(!ETH_WritePHYRegister(PHYAddress, PHY_BCR, ((uint16_t)(ETH_InitStruct->ETH_Mode >> 3) |
 
-  8039418:	08d2      	lsrs	r2, r2, #3
 
-  803941a:	ea42 0253 	orr.w	r2, r2, r3, lsr #1
 
-  803941e:	4630      	mov	r0, r6
 
-  8039420:	b292      	uxth	r2, r2
 
-  8039422:	f7ff ff41 	bl	80392a8 <ETH_WritePHYRegister>
 
-  8039426:	2800      	cmp	r0, #0
 
-  8039428:	d09b      	beq.n	8039362 <ETH_Init+0x6a>
 
-     {
 
-       /* Return ERROR in case of write timeout */
 
-       return ETH_ERROR;
 
-     }
 
-     /* Delay to assure PHY configuration */
 
-     _eth_delay_(PHY_CONFIG_DELAY);
 
-  803942a:	f06f 407f 	mvn.w	r0, #4278190080	; 0xff000000
 
-  803942e:	f7ff fd0b 	bl	8038e48 <ETH_Delay>
 
-     
 
-   }
 
-   /*------------------------ ETHERNET MACCR Configuration --------------------*/
 
-   /* Get the ETHERNET MACCR value */  
 
-   tmpreg = ETH->MACCR;
 
-  8039432:	4b43      	ldr	r3, [pc, #268]	; (8039540 <ETH_Init+0x248>)
 
-   /* Clear WD, PCE, PS, TE and RE bits */
 
-   tmpreg &= MACCR_CLEAR_MASK;
 
-  8039434:	4a4e      	ldr	r2, [pc, #312]	; (8039570 <ETH_Init+0x278>)
 
-     _eth_delay_(PHY_CONFIG_DELAY);
 
-     
 
-   }
 
-   /*------------------------ ETHERNET MACCR Configuration --------------------*/
 
-   /* Get the ETHERNET MACCR value */  
 
-   tmpreg = ETH->MACCR;
 
-  8039436:	6819      	ldr	r1, [r3, #0]
 
-   /* Set the IPCO bit according to ETH_ChecksumOffload value */                   
 
-   /* Set the DR bit according to ETH_RetryTransmission value */ 
 
-   /* Set the ACS bit according to ETH_AutomaticPadCRCStrip value */ 
 
-   /* Set the BL bit according to ETH_BackOffLimit value */ 
 
-   /* Set the DC bit according to ETH_DeferralCheck value */                          
 
-   tmpreg |= (uint32_t)(ETH_InitStruct->ETH_Watchdog | 
 
-  8039438:	68a0      	ldr	r0, [r4, #8]
 
-   }
 
-   /*------------------------ ETHERNET MACCR Configuration --------------------*/
 
-   /* Get the ETHERNET MACCR value */  
 
-   tmpreg = ETH->MACCR;
 
-   /* Clear WD, PCE, PS, TE and RE bits */
 
-   tmpreg &= MACCR_CLEAR_MASK;
 
-  803943a:	400a      	ands	r2, r1
 
-   /* Set the IPCO bit according to ETH_ChecksumOffload value */                   
 
-   /* Set the DR bit according to ETH_RetryTransmission value */ 
 
-   /* Set the ACS bit according to ETH_AutomaticPadCRCStrip value */ 
 
-   /* Set the BL bit according to ETH_BackOffLimit value */ 
 
-   /* Set the DC bit according to ETH_DeferralCheck value */                          
 
-   tmpreg |= (uint32_t)(ETH_InitStruct->ETH_Watchdog | 
 
-  803943c:	6861      	ldr	r1, [r4, #4]
 
-  803943e:	4308      	orrs	r0, r1
 
-                   ETH_InitStruct->ETH_Jabber | 
 
-  8039440:	68e1      	ldr	r1, [r4, #12]
 
-  8039442:	4308      	orrs	r0, r1
 
-                   ETH_InitStruct->ETH_InterFrameGap |
 
-  8039444:	6921      	ldr	r1, [r4, #16]
 
-  8039446:	4308      	orrs	r0, r1
 
-                   ETH_InitStruct->ETH_CarrierSense |
 
-  8039448:	6961      	ldr	r1, [r4, #20]
 
-  803944a:	4308      	orrs	r0, r1
 
-                   ETH_InitStruct->ETH_Speed | 
 
-  803944c:	69a1      	ldr	r1, [r4, #24]
 
-  803944e:	4308      	orrs	r0, r1
 
-                   ETH_InitStruct->ETH_ReceiveOwn |
 
-  8039450:	69e1      	ldr	r1, [r4, #28]
 
-  8039452:	4308      	orrs	r0, r1
 
-                   ETH_InitStruct->ETH_LoopbackMode |
 
-  8039454:	6a21      	ldr	r1, [r4, #32]
 
-  8039456:	4308      	orrs	r0, r1
 
-                   ETH_InitStruct->ETH_Mode | 
 
-  8039458:	6a61      	ldr	r1, [r4, #36]	; 0x24
 
-  803945a:	4308      	orrs	r0, r1
 
-                   ETH_InitStruct->ETH_ChecksumOffload |    
 
-  803945c:	6aa1      	ldr	r1, [r4, #40]	; 0x28
 
-  803945e:	4308      	orrs	r0, r1
 
-                   ETH_InitStruct->ETH_RetryTransmission | 
 
-  8039460:	6ae1      	ldr	r1, [r4, #44]	; 0x2c
 
-  8039462:	4308      	orrs	r0, r1
 
-                   ETH_InitStruct->ETH_AutomaticPadCRCStrip | 
 
-  8039464:	6b21      	ldr	r1, [r4, #48]	; 0x30
 
-  8039466:	4308      	orrs	r0, r1
 
-   /* Set the IPCO bit according to ETH_ChecksumOffload value */                   
 
-   /* Set the DR bit according to ETH_RetryTransmission value */ 
 
-   /* Set the ACS bit according to ETH_AutomaticPadCRCStrip value */ 
 
-   /* Set the BL bit according to ETH_BackOffLimit value */ 
 
-   /* Set the DC bit according to ETH_DeferralCheck value */                          
 
-   tmpreg |= (uint32_t)(ETH_InitStruct->ETH_Watchdog | 
 
-  8039468:	6b61      	ldr	r1, [r4, #52]	; 0x34
 
-  803946a:	4301      	orrs	r1, r0
 
-  803946c:	430a      	orrs	r2, r1
 
-                   ETH_InitStruct->ETH_RetryTransmission | 
 
-                   ETH_InitStruct->ETH_AutomaticPadCRCStrip | 
 
-                   ETH_InitStruct->ETH_BackOffLimit | 
 
-                   ETH_InitStruct->ETH_DeferralCheck);
 
-   /* Write to ETHERNET MACCR */
 
-   ETH->MACCR = (uint32_t)tmpreg;
 
-  803946e:	601a      	str	r2, [r3, #0]
 
-   /* Set the DAIF bit according to ETH_DestinationAddrFilter value */
 
-   /* Set the PR bit according to ETH_PromiscuousMode value */
 
-   /* Set the PM, HMC and HPF bits according to ETH_MulticastFramesFilter value */
 
-   /* Set the HUC and HPF bits according to ETH_UnicastFramesFilter value */
 
-   /* Write to ETHERNET MACFFR */  
 
-   ETH->MACFFR = (uint32_t)(ETH_InitStruct->ETH_ReceiveAll | 
 
-  8039470:	6ba2      	ldr	r2, [r4, #56]	; 0x38
 
-  8039472:	6be1      	ldr	r1, [r4, #60]	; 0x3c
 
-  8039474:	4311      	orrs	r1, r2
 
-                           ETH_InitStruct->ETH_SourceAddrFilter |
 
-  8039476:	6c22      	ldr	r2, [r4, #64]	; 0x40
 
-  8039478:	4311      	orrs	r1, r2
 
-                           ETH_InitStruct->ETH_PassControlFrames |
 
-  803947a:	6c62      	ldr	r2, [r4, #68]	; 0x44
 
-  803947c:	4311      	orrs	r1, r2
 
-                           ETH_InitStruct->ETH_BroadcastFramesReception | 
 
-  803947e:	6ca2      	ldr	r2, [r4, #72]	; 0x48
 
-  8039480:	4311      	orrs	r1, r2
 
-                           ETH_InitStruct->ETH_DestinationAddrFilter |
 
-  8039482:	6ce2      	ldr	r2, [r4, #76]	; 0x4c
 
-  8039484:	4311      	orrs	r1, r2
 
-                           ETH_InitStruct->ETH_PromiscuousMode |
 
-  8039486:	6d22      	ldr	r2, [r4, #80]	; 0x50
 
-  8039488:	4311      	orrs	r1, r2
 
-   /* Set the DAIF bit according to ETH_DestinationAddrFilter value */
 
-   /* Set the PR bit according to ETH_PromiscuousMode value */
 
-   /* Set the PM, HMC and HPF bits according to ETH_MulticastFramesFilter value */
 
-   /* Set the HUC and HPF bits according to ETH_UnicastFramesFilter value */
 
-   /* Write to ETHERNET MACFFR */  
 
-   ETH->MACFFR = (uint32_t)(ETH_InitStruct->ETH_ReceiveAll | 
 
-  803948a:	6d62      	ldr	r2, [r4, #84]	; 0x54
 
-  803948c:	430a      	orrs	r2, r1
 
-  803948e:	605a      	str	r2, [r3, #4]
 
-                           ETH_InitStruct->ETH_PromiscuousMode |
 
-                           ETH_InitStruct->ETH_MulticastFramesFilter |
 
-                           ETH_InitStruct->ETH_UnicastFramesFilter); 
 
-   /*--------------- ETHERNET MACHTHR and MACHTLR Configuration ---------------*/
 
-   /* Write to ETHERNET MACHTHR */
 
-   ETH->MACHTHR = (uint32_t)ETH_InitStruct->ETH_HashTableHigh;
 
-  8039490:	6da2      	ldr	r2, [r4, #88]	; 0x58
 
-  8039492:	609a      	str	r2, [r3, #8]
 
-   /* Write to ETHERNET MACHTLR */
 
-   ETH->MACHTLR = (uint32_t)ETH_InitStruct->ETH_HashTableLow;
 
-  8039494:	6de2      	ldr	r2, [r4, #92]	; 0x5c
 
-  8039496:	60da      	str	r2, [r3, #12]
 
-   /* Set the DZPQ bit according to ETH_ZeroQuantaPause value */
 
-   /* Set the PLT bit according to ETH_PauseLowThreshold value */
 
-   /* Set the UP bit according to ETH_UnicastPauseFrameDetect value */
 
-   /* Set the RFE bit according to ETH_ReceiveFlowControl value */
 
-   /* Set the TFE bit according to ETH_TransmitFlowControl value */  
 
-   tmpreg |= (uint32_t)((ETH_InitStruct->ETH_PauseTime << 16) | 
 
-  8039498:	6e62      	ldr	r2, [r4, #100]	; 0x64
 
-  803949a:	6ea1      	ldr	r1, [r4, #104]	; 0x68
 
-   ETH->MACHTHR = (uint32_t)ETH_InitStruct->ETH_HashTableHigh;
 
-   /* Write to ETHERNET MACHTLR */
 
-   ETH->MACHTLR = (uint32_t)ETH_InitStruct->ETH_HashTableLow;
 
-   /*----------------------- ETHERNET MACFCR Configuration --------------------*/
 
-   /* Get the ETHERNET MACFCR value */  
 
-   tmpreg = ETH->MACFCR;
 
-  803949c:	6998      	ldr	r0, [r3, #24]
 
-   /* Set the DZPQ bit according to ETH_ZeroQuantaPause value */
 
-   /* Set the PLT bit according to ETH_PauseLowThreshold value */
 
-   /* Set the UP bit according to ETH_UnicastPauseFrameDetect value */
 
-   /* Set the RFE bit according to ETH_ReceiveFlowControl value */
 
-   /* Set the TFE bit according to ETH_TransmitFlowControl value */  
 
-   tmpreg |= (uint32_t)((ETH_InitStruct->ETH_PauseTime << 16) | 
 
-  803949e:	4311      	orrs	r1, r2
 
-                    ETH_InitStruct->ETH_ZeroQuantaPause |
 
-  80394a0:	6ee2      	ldr	r2, [r4, #108]	; 0x6c
 
-  80394a2:	4311      	orrs	r1, r2
 
-                    ETH_InitStruct->ETH_PauseLowThreshold |
 
-  80394a4:	6f22      	ldr	r2, [r4, #112]	; 0x70
 
-  80394a6:	4311      	orrs	r1, r2
 
-                    ETH_InitStruct->ETH_UnicastPauseFrameDetect | 
 
-  80394a8:	6f62      	ldr	r2, [r4, #116]	; 0x74
 
-  80394aa:	4311      	orrs	r1, r2
 
-   ETH->MACHTLR = (uint32_t)ETH_InitStruct->ETH_HashTableLow;
 
-   /*----------------------- ETHERNET MACFCR Configuration --------------------*/
 
-   /* Get the ETHERNET MACFCR value */  
 
-   tmpreg = ETH->MACFCR;
 
-   /* Clear xx bits */
 
-   tmpreg &= MACFCR_CLEAR_MASK;
 
-  80394ac:	f64f 7241 	movw	r2, #65345	; 0xff41
 
-  80394b0:	4002      	ands	r2, r0
 
-   /* Set the DZPQ bit according to ETH_ZeroQuantaPause value */
 
-   /* Set the PLT bit according to ETH_PauseLowThreshold value */
 
-   /* Set the UP bit according to ETH_UnicastPauseFrameDetect value */
 
-   /* Set the RFE bit according to ETH_ReceiveFlowControl value */
 
-   /* Set the TFE bit according to ETH_TransmitFlowControl value */  
 
-   tmpreg |= (uint32_t)((ETH_InitStruct->ETH_PauseTime << 16) | 
 
-  80394b2:	430a      	orrs	r2, r1
 
-  80394b4:	6e21      	ldr	r1, [r4, #96]	; 0x60
 
-  80394b6:	ea42 4101 	orr.w	r1, r2, r1, lsl #16
 
-                    ETH_InitStruct->ETH_PauseLowThreshold |
 
-                    ETH_InitStruct->ETH_UnicastPauseFrameDetect | 
 
-                    ETH_InitStruct->ETH_ReceiveFlowControl |
 
-                    ETH_InitStruct->ETH_TransmitFlowControl); 
 
-   /* Write to ETHERNET MACFCR */
 
-   ETH->MACFCR = (uint32_t)tmpreg;
 
-  80394ba:	6199      	str	r1, [r3, #24]
 
-   /*----------------------- ETHERNET MACVLANTR Configuration -----------------*/
 
-   /* Set the ETV bit according to ETH_VLANTagComparison value */
 
-   /* Set the VL bit according to ETH_VLANTagIdentifier value */  
 
-   ETH->MACVLANTR = (uint32_t)(ETH_InitStruct->ETH_VLANTagComparison | 
 
-  80394bc:	6fe1      	ldr	r1, [r4, #124]	; 0x7c
 
-  80394be:	6fa2      	ldr	r2, [r4, #120]	; 0x78
 
-  80394c0:	430a      	orrs	r2, r1
 
-  80394c2:	61da      	str	r2, [r3, #28]
 
-                              ETH_InitStruct->ETH_VLANTagIdentifier); 
 
-        
 
-   /*-------------------------------- DMA Config ------------------------------*/
 
-   /*----------------------- ETHERNET DMAOMR Configuration --------------------*/
 
-   /* Get the ETHERNET DMAOMR value */  
 
-   tmpreg = ETH->DMAOMR;
 
-  80394c4:	f503 5380 	add.w	r3, r3, #4096	; 0x1000
 
-   /* Clear xx bits */
 
-   tmpreg &= DMAOMR_CLEAR_MASK;
 
-  80394c8:	4a2a      	ldr	r2, [pc, #168]	; (8039574 <ETH_Init+0x27c>)
 
-                              ETH_InitStruct->ETH_VLANTagIdentifier); 
 
-        
 
-   /*-------------------------------- DMA Config ------------------------------*/
 
-   /*----------------------- ETHERNET DMAOMR Configuration --------------------*/
 
-   /* Get the ETHERNET DMAOMR value */  
 
-   tmpreg = ETH->DMAOMR;
 
-  80394ca:	6999      	ldr	r1, [r3, #24]
 
-   /* Set the TTC bit according to ETH_TransmitThresholdControl value */
 
-   /* Set the FEF bit according to ETH_ForwardErrorFrames value */
 
-   /* Set the FUF bit according to ETH_ForwardUndersizedGoodFrames value */
 
-   /* Set the RTC bit according to ETH_ReceiveThresholdControl value */
 
-   /* Set the OSF bit according to ETH_SecondFrameOperate value */
 
-   tmpreg |= (uint32_t)(ETH_InitStruct->ETH_DropTCPIPChecksumErrorFrame | 
 
-  80394cc:	f8d4 0084 	ldr.w	r0, [r4, #132]	; 0x84
 
-   /*-------------------------------- DMA Config ------------------------------*/
 
-   /*----------------------- ETHERNET DMAOMR Configuration --------------------*/
 
-   /* Get the ETHERNET DMAOMR value */  
 
-   tmpreg = ETH->DMAOMR;
 
-   /* Clear xx bits */
 
-   tmpreg &= DMAOMR_CLEAR_MASK;
 
-  80394d0:	400a      	ands	r2, r1
 
-   /* Set the TTC bit according to ETH_TransmitThresholdControl value */
 
-   /* Set the FEF bit according to ETH_ForwardErrorFrames value */
 
-   /* Set the FUF bit according to ETH_ForwardUndersizedGoodFrames value */
 
-   /* Set the RTC bit according to ETH_ReceiveThresholdControl value */
 
-   /* Set the OSF bit according to ETH_SecondFrameOperate value */
 
-   tmpreg |= (uint32_t)(ETH_InitStruct->ETH_DropTCPIPChecksumErrorFrame | 
 
-  80394d2:	f8d4 1080 	ldr.w	r1, [r4, #128]	; 0x80
 
-  80394d6:	4308      	orrs	r0, r1
 
-                   ETH_InitStruct->ETH_ReceiveStoreForward |
 
-  80394d8:	f8d4 1088 	ldr.w	r1, [r4, #136]	; 0x88
 
-  80394dc:	4308      	orrs	r0, r1
 
-                   ETH_InitStruct->ETH_FlushReceivedFrame |
 
-  80394de:	f8d4 108c 	ldr.w	r1, [r4, #140]	; 0x8c
 
-  80394e2:	4308      	orrs	r0, r1
 
-                   ETH_InitStruct->ETH_TransmitStoreForward | 
 
-  80394e4:	f8d4 1090 	ldr.w	r1, [r4, #144]	; 0x90
 
-  80394e8:	4308      	orrs	r0, r1
 
-                   ETH_InitStruct->ETH_TransmitThresholdControl |
 
-  80394ea:	f8d4 1094 	ldr.w	r1, [r4, #148]	; 0x94
 
-  80394ee:	4308      	orrs	r0, r1
 
-                   ETH_InitStruct->ETH_ForwardErrorFrames |
 
-  80394f0:	f8d4 1098 	ldr.w	r1, [r4, #152]	; 0x98
 
-  80394f4:	4308      	orrs	r0, r1
 
-                   ETH_InitStruct->ETH_ForwardUndersizedGoodFrames |
 
-  80394f6:	f8d4 109c 	ldr.w	r1, [r4, #156]	; 0x9c
 
-  80394fa:	4308      	orrs	r0, r1
 
-   /* Set the TTC bit according to ETH_TransmitThresholdControl value */
 
-   /* Set the FEF bit according to ETH_ForwardErrorFrames value */
 
-   /* Set the FUF bit according to ETH_ForwardUndersizedGoodFrames value */
 
-   /* Set the RTC bit according to ETH_ReceiveThresholdControl value */
 
-   /* Set the OSF bit according to ETH_SecondFrameOperate value */
 
-   tmpreg |= (uint32_t)(ETH_InitStruct->ETH_DropTCPIPChecksumErrorFrame | 
 
-  80394fc:	f8d4 10a0 	ldr.w	r1, [r4, #160]	; 0xa0
 
-  8039500:	4301      	orrs	r1, r0
 
-  8039502:	430a      	orrs	r2, r1
 
-                   ETH_InitStruct->ETH_ForwardErrorFrames |
 
-                   ETH_InitStruct->ETH_ForwardUndersizedGoodFrames |
 
-                   ETH_InitStruct->ETH_ReceiveThresholdControl |                                   
 
-                   ETH_InitStruct->ETH_SecondFrameOperate); 
 
-   /* Write to ETHERNET DMAOMR */
 
-   ETH->DMAOMR = (uint32_t)tmpreg;
 
-  8039504:	619a      	str	r2, [r3, #24]
 
-   /* Set the FB bit according to ETH_FixedBurst value */
 
-   /* Set the RPBL and 4*PBL bits according to ETH_RxDMABurstLength value */
 
-   /* Set the PBL and 4*PBL bits according to ETH_TxDMABurstLength value */
 
-   /* Set the DSL bit according to ETH_DesciptorSkipLength value */
 
-   /* Set the PR and DA bits according to ETH_DMAArbitration value */         
 
-   ETH->DMABMR = (uint32_t)(ETH_InitStruct->ETH_AddressAlignedBeats | 
 
-  8039506:	f8d4 20a8 	ldr.w	r2, [r4, #168]	; 0xa8
 
-  803950a:	f8d4 10a4 	ldr.w	r1, [r4, #164]	; 0xa4
 
-  803950e:	4311      	orrs	r1, r2
 
-                           ETH_InitStruct->ETH_FixedBurst |
 
-                           ETH_InitStruct->ETH_RxDMABurstLength | /* !! if 4xPBL is selected for Tx or Rx it is applied for the other */
 
-  8039510:	f8d4 20ac 	ldr.w	r2, [r4, #172]	; 0xac
 
-   /* Set the RPBL and 4*PBL bits according to ETH_RxDMABurstLength value */
 
-   /* Set the PBL and 4*PBL bits according to ETH_TxDMABurstLength value */
 
-   /* Set the DSL bit according to ETH_DesciptorSkipLength value */
 
-   /* Set the PR and DA bits according to ETH_DMAArbitration value */         
 
-   ETH->DMABMR = (uint32_t)(ETH_InitStruct->ETH_AddressAlignedBeats | 
 
-                           ETH_InitStruct->ETH_FixedBurst |
 
-  8039514:	f441 0100 	orr.w	r1, r1, #8388608	; 0x800000
 
-                           ETH_InitStruct->ETH_RxDMABurstLength | /* !! if 4xPBL is selected for Tx or Rx it is applied for the other */
 
-  8039518:	4311      	orrs	r1, r2
 
-                           ETH_InitStruct->ETH_TxDMABurstLength | 
 
-  803951a:	f8d4 20b0 	ldr.w	r2, [r4, #176]	; 0xb0
 
-  803951e:	4311      	orrs	r1, r2
 
-                          (ETH_InitStruct->ETH_DescriptorSkipLength << 2) |
 
-  8039520:	f8d4 20b8 	ldr.w	r2, [r4, #184]	; 0xb8
 
-  8039524:	430a      	orrs	r2, r1
 
-  8039526:	f8d4 10b4 	ldr.w	r1, [r4, #180]	; 0xb4
 
-   /* Set the FB bit according to ETH_FixedBurst value */
 
-   /* Set the RPBL and 4*PBL bits according to ETH_RxDMABurstLength value */
 
-   /* Set the PBL and 4*PBL bits according to ETH_TxDMABurstLength value */
 
-   /* Set the DSL bit according to ETH_DesciptorSkipLength value */
 
-   /* Set the PR and DA bits according to ETH_DMAArbitration value */         
 
-   ETH->DMABMR = (uint32_t)(ETH_InitStruct->ETH_AddressAlignedBeats | 
 
-  803952a:	ea42 0281 	orr.w	r2, r2, r1, lsl #2
 
-  803952e:	601a      	str	r2, [r3, #0]
 
-                           ETH_InitStruct->ETH_DMAArbitration |
 
-                           ETH_DMABMR_USP); /* Enable use of separate PBL for Rx and Tx */
 
-                           
 
-   #ifdef USE_ENHANCED_DMA_DESCRIPTORS
 
-     /* Enable the Enhanced DMA descriptors */
 
-     ETH->DMABMR |= ETH_DMABMR_EDE;
 
-  8039530:	681a      	ldr	r2, [r3, #0]
 
-  8039532:	f042 0280 	orr.w	r2, r2, #128	; 0x80
 
-  8039536:	601a      	str	r2, [r3, #0]
 
-   #endif /* USE_ENHANCED_DMA_DESCRIPTORS */
 
-                               
 
-   /* Return Ethernet configuration success */
 
-   return ETH_SUCCESS;
 
-  8039538:	2001      	movs	r0, #1
 
- }
 
-  803953a:	b007      	add	sp, #28
 
-  803953c:	bdf0      	pop	{r4, r5, r6, r7, pc}
 
-  803953e:	bf00      	nop
 
-  8039540:	40028000 	.word	0x40028000
 
-  8039544:	feced300 	.word	0xfeced300
 
-  8039548:	00e4e1bf 	.word	0x00e4e1bf
 
-  803954c:	fde9f140 	.word	0xfde9f140
 
-  8039550:	017d783f 	.word	0x017d783f
 
-  8039554:	fc6c7900 	.word	0xfc6c7900
 
-  8039558:	026259ff 	.word	0x026259ff
 
-  803955c:	fa0a1f00 	.word	0xfa0a1f00
 
-  8039560:	02faf07f 	.word	0x02faf07f
 
-  8039564:	000fffff 	.word	0x000fffff
 
-  8039568:	0004fffe 	.word	0x0004fffe
 
-  803956c:	0004ffff 	.word	0x0004ffff
 
-  8039570:	ff20810f 	.word	0xff20810f
 
-  8039574:	f8de3f23 	.word	0xf8de3f23
 
- 08039578 <_sbrk>:
 
-     extern char _ebss; // Defined by the linker
 
-     extern char __bss_end__;
 
-     static char *heap_end;
 
-     char *prev_heap_end;
 
-     if (heap_end == 0) {
 
-  8039578:	4b0a      	ldr	r3, [pc, #40]	; (80395a4 <_sbrk+0x2c>)
 
-  803957a:	681a      	ldr	r2, [r3, #0]
 
-  803957c:	b90a      	cbnz	r2, 8039582 <_sbrk+0xa>
 
-     	//heap_end = &_ebss;
 
-     	heap_end = &__bss_end__;
 
-  803957e:	4a0a      	ldr	r2, [pc, #40]	; (80395a8 <_sbrk+0x30>)
 
-  8039580:	601a      	str	r2, [r3, #0]
 
-     }
 
-     prev_heap_end = heap_end;
 
-  8039582:	681b      	ldr	r3, [r3, #0]
 
-  */
 
- __attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_MSP(void)
 
- {
 
-   register uint32_t result;
 
-   __ASM volatile ("MRS %0, msp\n" : "=r" (result) );
 
-  8039584:	f3ef 8208 	mrs	r2, MSP
 
- char * stack = (char*) __get_MSP();
 
-      if (heap_end + incr >  stack)
 
-  8039588:	1818      	adds	r0, r3, r0
 
-  803958a:	4290      	cmp	r0, r2
 
-  803958c:	d905      	bls.n	803959a <_sbrk+0x22>
 
-      {
 
-          _write (STDERR_FILENO, "Heap and stack collision\n", 25);
 
-          errno = ENOMEM;
 
-  803958e:	4b07      	ldr	r3, [pc, #28]	; (80395ac <_sbrk+0x34>)
 
-  8039590:	220c      	movs	r2, #12
 
-  8039592:	601a      	str	r2, [r3, #0]
 
-          return  (caddr_t) -1;
 
-  8039594:	f04f 33ff 	mov.w	r3, #4294967295
 
-  8039598:	e001      	b.n	803959e <_sbrk+0x26>
 
-          //abort ();
 
-      }
 
-     heap_end += incr;
 
-  803959a:	4a02      	ldr	r2, [pc, #8]	; (80395a4 <_sbrk+0x2c>)
 
-  803959c:	6010      	str	r0, [r2, #0]
 
-     return (caddr_t) prev_heap_end;
 
- }
 
-  803959e:	4618      	mov	r0, r3
 
-  80395a0:	4770      	bx	lr
 
-  80395a2:	bf00      	nop
 
-  80395a4:	2000c808 	.word	0x2000c808
 
-  80395a8:	20013a4c 	.word	0x20013a4c
 
-  80395ac:	20013948 	.word	0x20013948
 
- 080395b0 <Reset_Handler>:
 
-   .weak  Reset_Handler
 
-   .type  Reset_Handler, %function
 
- Reset_Handler:  
 
- /* Copy the data segment initializers from flash to SRAM */  
 
-   movs  r1, #0
 
-  80395b0:	2100      	movs	r1, #0
 
-   b  LoopCopyDataInit
 
-  80395b2:	f000 b804 	b.w	80395be <LoopCopyDataInit>
 
- 080395b6 <CopyDataInit>:
 
- CopyDataInit:
 
-   ldr  r3, =_sidata
 
-  80395b6:	4b0d      	ldr	r3, [pc, #52]	; (80395ec <LoopFillZerobss+0x16>)
 
-   ldr  r3, [r3, r1]
 
-  80395b8:	585b      	ldr	r3, [r3, r1]
 
-   str  r3, [r0, r1]
 
-  80395ba:	5043      	str	r3, [r0, r1]
 
-   adds  r1, r1, #4
 
-  80395bc:	3104      	adds	r1, #4
 
- 080395be <LoopCopyDataInit>:
 
-     
 
- LoopCopyDataInit:
 
-   ldr  r0, =_sdata
 
-  80395be:	480c      	ldr	r0, [pc, #48]	; (80395f0 <LoopFillZerobss+0x1a>)
 
-   ldr  r3, =_edata
 
-  80395c0:	4b0c      	ldr	r3, [pc, #48]	; (80395f4 <LoopFillZerobss+0x1e>)
 
-   adds  r2, r0, r1
 
-  80395c2:	1842      	adds	r2, r0, r1
 
-   cmp  r2, r3
 
-  80395c4:	429a      	cmp	r2, r3
 
-   bcc  CopyDataInit
 
-  80395c6:	f4ff aff6 	bcc.w	80395b6 <CopyDataInit>
 
-   ldr  r2, =_sbss
 
-  80395ca:	4a0b      	ldr	r2, [pc, #44]	; (80395f8 <LoopFillZerobss+0x22>)
 
-   b  LoopFillZerobss
 
-  80395cc:	f000 b803 	b.w	80395d6 <LoopFillZerobss>
 
- 080395d0 <FillZerobss>:
 
- /* Zero fill the bss segment. */  
 
- FillZerobss:
 
-   movs  r3, #0
 
-  80395d0:	2300      	movs	r3, #0
 
-   str  r3, [r2], #4
 
-  80395d2:	f842 3b04 	str.w	r3, [r2], #4
 
- 080395d6 <LoopFillZerobss>:
 
-     
 
- LoopFillZerobss:
 
-   ldr  r3, = _ebss
 
-  80395d6:	4b09      	ldr	r3, [pc, #36]	; (80395fc <LoopFillZerobss+0x26>)
 
-   cmp  r2, r3
 
-  80395d8:	429a      	cmp	r2, r3
 
-   bcc  FillZerobss
 
-  80395da:	f4ff aff9 	bcc.w	80395d0 <FillZerobss>
 
- /* Call the clock system intitialization function.*/
 
-   bl  SystemInit   
 
-  80395de:	f7ec fbd1 	bl	8025d84 <SystemInit>
 
- /* Call static constructors */
 
-     bl __libc_init_array
 
-  80395e2:	f7e8 f975 	bl	80218d0 <__libc_init_array>
 
- /* Call the application's entry point.*/
 
-   bl  main
 
-  80395e6:	f7ed fcaf 	bl	8026f48 <main>
 
-   bx  lr    
 
-  80395ea:	4770      	bx	lr
 
- /* Copy the data segment initializers from flash to SRAM */  
 
-   movs  r1, #0
 
-   b  LoopCopyDataInit
 
- CopyDataInit:
 
-   ldr  r3, =_sidata
 
-  80395ec:	08045c04 	.word	0x08045c04
 
-   ldr  r3, [r3, r1]
 
-   str  r3, [r0, r1]
 
-   adds  r1, r1, #4
 
-     
 
- LoopCopyDataInit:
 
-   ldr  r0, =_sdata
 
-  80395f0:	20000000 	.word	0x20000000
 
-   ldr  r3, =_edata
 
-  80395f4:	20000ab4 	.word	0x20000ab4
 
-   adds  r2, r0, r1
 
-   cmp  r2, r3
 
-   bcc  CopyDataInit
 
-   ldr  r2, =_sbss
 
-  80395f8:	20000ab4 	.word	0x20000ab4
 
- FillZerobss:
 
-   movs  r3, #0
 
-   str  r3, [r2], #4
 
-     
 
- LoopFillZerobss:
 
-   ldr  r3, = _ebss
 
-  80395fc:	20013a4c 	.word	0x20013a4c
 
- 08039600 <ADC_IRQHandler>:
 
-  * @retval None       
 
- */
 
-     .section  .text.Default_Handler,"ax",%progbits
 
- Default_Handler:
 
- Infinite_Loop:
 
-   b  Infinite_Loop
 
-  8039600:	f7ff bffe 	b.w	8039600 <ADC_IRQHandler>
 
- 08039604 <_ctype_>:
 
-  8039604:	2000 2020 2020 2020 2020 2828 2828 2028     .         ((((( 
 
-  8039614:	2020 2020 2020 2020 2020 2020 2020 2020                     
 
-  8039624:	8820 1010 1010 1010 1010 1010 1010 1010      ...............
 
-  8039634:	0410 0404 0404 0404 0404 1004 1010 1010     ................
 
-  8039644:	1010 4141 4141 4141 0101 0101 0101 0101     ..AAAAAA........
 
-  8039654:	0101 0101 0101 0101 0101 0101 1010 1010     ................
 
-  8039664:	1010 4242 4242 4242 0202 0202 0202 0202     ..BBBBBB........
 
-  8039674:	0202 0202 0202 0202 0202 0202 1010 1010     ................
 
-  8039684:	0020 0000 0000 0000 0000 0000 0000 0000      ...............
 
-  8039694:	0000 0000 0000 0000 0000 0000 0000 0000     ................
 
-  80396a4:	0000 0000 0000 0000 0000 0000 0000 0000     ................
 
-  80396b4:	0000 0000 0000 0000 0000 0000 0000 0000     ................
 
-  80396c4:	0000 0000 0000 0000 0000 0000 0000 0000     ................
 
-  80396d4:	0000 0000 0000 0000 0000 0000 0000 0000     ................
 
-  80396e4:	0000 0000 0000 0000 0000 0000 0000 0000     ................
 
-  80396f4:	0000 0000 0000 0000 0000 0000 0000 0000     ................
 
-  8039704:	0000 0000                                   ....
 
- 08039708 <tinytens>:
 
-  8039708:	89bc 97d8 d2b2 3c9c a733 d5a8 f623 3949     .......<3...#.I9
 
-  8039718:	a73d 44f4 0ffd 32a5 979d cf8c ba08 255b     =..D...2......[%
 
-  8039728:	6f43 64ac 0628 0e18                         Co.d(...
 
- 08039730 <p05.5261>:
 
-  8039730:	0005 0000 0019 0000 007d 0000 0000 0000     ........}.......
 
- 08039740 <__mprec_tens>:
 
-  8039740:	0000 0000 0000 3ff0 0000 0000 0000 4024     .......?......$@
 
-  8039750:	0000 0000 0000 4059 0000 0000 4000 408f     ......Y@.....@.@
 
-  8039760:	0000 0000 8800 40c3 0000 0000 6a00 40f8     .......@.....j.@
 
-  8039770:	0000 0000 8480 412e 0000 0000 12d0 4163     .......A......cA
 
-  8039780:	0000 0000 d784 4197 0000 0000 cd65 41cd     .......A....e..A
 
-  8039790:	0000 2000 a05f 4202 0000 e800 4876 4237     ... _..B....vH7B
 
-  80397a0:	0000 a200 1a94 426d 0000 e540 309c 42a2     ......mB..@..0.B
 
-  80397b0:	0000 1e90 bcc4 42d6 0000 2634 6bf5 430c     .......B..4&.k.C
 
-  80397c0:	8000 37e0 c379 4341 a000 85d8 3457 4376     ...7y.AC....W4vC
 
-  80397d0:	c800 674e c16d 43ab 3d00 6091 58e4 43e1     ..Ngm..C.=.`.X.C
 
-  80397e0:	8c40 78b5 af1d 4415 ef50 d6e2 1ae4 444b     @..x...DP.....KD
 
-  80397f0:	d592 064d f0cf 4480 4af6 c7e1 2d02 44b5     ..M....D.J...-.D
 
-  8039800:	9db4 79d9 7843 44ea                         ...yCx.D
 
- 08039808 <__mprec_tinytens>:
 
-  8039808:	89bc 97d8 d2b2 3c9c a733 d5a8 f623 3949     .......<3...#.I9
 
-  8039818:	a73d 44f4 0ffd 32a5 979d cf8c ba08 255b     =..D...2......[%
 
-  8039828:	6f43 64ac 0628 0ac8                         Co.d(...
 
- 08039830 <__mprec_bigtens>:
 
-  8039830:	8000 37e0 c379 4341 6e17 b505 b8b5 4693     ...7y.AC.n.....F
 
-  8039840:	f9f5 e93f 4f03 4d38 1d32 f930 7748 5a82     ..?..O8M2.0.Hw.Z
 
-  8039850:	bf3c 7f73 4fdd 7515 3025 5832 4c00 4445     <.s..O.u%02X.LED
 
-  8039860:	425f 696c 6b6e 4200 7475 6f74 736e 5500     _Blink.Buttons.U
 
-  8039870:	5350 4d5f 6e6f 7469 726f 7300 6d6e 5370     PS_Monitor.snmpS
 
-  8039880:	7379 7055 6954 656d 7300 6d6e 5470 6172     ysUpTime.snmpTra
 
-  8039890:	5470 7365 0074 6e73 7074 6e4f 6563 6953     pTest.sntpOnceSi
 
-  80398a0:	686e 6f72 7300 746e 5070 7265 6f69 6964     nhro.sntpPeriodi
 
-  80398b0:	5363 6e69 7268 006f 6e49 7469 6154 6b73     cSinhro.InitTask
 
-  80398c0:	4800 7261 4664 7561 746c 0a3a 000d 0d0a     .HardFault:.....
 
-  80398d0:	6552 6967 7473 7265 3a73 0d0a 5300 2050     Registers:...SP 
 
-  80398e0:	2020 2020 2020 2020 3020 2578 3830 786c              0x%08lx
 
-  80398f0:	0d0a 5200 2030 2020 2020 2020 2020 3020     ...R0          0
 
-  8039900:	2578 3830 786c 0d0a 5200 2031 2020 2020     x%08lx...R1     
 
-  8039910:	2020 2020 3020 2578 3830 786c 0d0a 5200          0x%08lx...R
 
-  8039920:	2032 2020 2020 2020 2020 3020 2578 3830     2          0x%08
 
-  8039930:	786c 0d0a 5200 2033 2020 2020 2020 2020     lx...R3         
 
-  8039940:	3020 2578 3830 786c 0d0a 5200 3231 2020      0x%08lx...R12  
 
-  8039950:	2020 2020 2020 3020 2578 3830 786c 0d0a            0x%08lx..
 
-  8039960:	4c00 2052 2020 2020 2020 2020 3020 2578     .LR          0x%
 
-  8039970:	3830 786c 0d0a 5000 2043 2020 2020 2020     08lx...PC       
 
-  8039980:	2020 3020 2578 3830 786c 0d0a 5000 5253        0x%08lx...PSR
 
-  8039990:	2020 2020 2020 2020 3020 2578 3830 786c              0x%08lx
 
-  80399a0:	0d0a 2500 2e30 6631 2500 0064 3025 6934     ...%0.1f.%d.%04i
 
-  80399b0:	252d 3230 2d69 3025 6932 2500 0073 6425     -%02i-%02i.%s.%d
 
-  80399c0:	d020 d0b4 2ebd 2520 2064 87d1 202e 6425      ..... %d ... %d
 
-  80399d0:	d020 d0bc d0b8 2ebd 3100 302e 4600 6c61      ........1.0.Fal
 
-  80399e0:	6573 7400 7572 0065 6166 736c 0065 6e6f     se.true.false.on
 
-  80399f0:	2d00 3130 252d 3230 3a69 3025 6932 2500     .-01-%02i:%02i.%
 
-  8039a00:	3230 2d69 3025 6932 252d 3230 2d69 3130     02i-%02i-%02i-01
 
-  8039a10:	002d 3931 2e32 3631 2e38 2e31 0032 3931     -.192.168.1.2.19
 
-  8039a20:	2e32 3631 2e38 2e31 0031 3532 2e35 3532     2.168.1.1.255.25
 
-  8039a30:	2e35 3532 2e35 0030 7570 6c62 6369 4b00     5.255.0.public.K
 
-  8039a40:	2d4e 3330 302d 3030 3330 3000 302e 302e     N-03-00003.0.0.0
 
-  8039a50:	302e 3000 2e39 3031 322e 3130 0035 4345     .0.09.10.2015.EC
 
-  8039a60:	342d 2d43 4434 302d 2d30 3030 302d 0041     -4C-4D-00-00-0A.
 
-  8039a70:	6461 696d 006e 3231 3433 0035 7375 7265     admin.12345.user
 
-  8039a80:	3100 3332 0034 3838 312e 3734 322e 3435     .1234.88.147.254
 
-  8039a90:	322e 3533 6e00 6e6f 0065 3231 2e37 2e30     .235.none.127.0.
 
-  8039aa0:	2e30 0031 a3d0 81d1 bfd0 b5d0 88d1 bdd0     0.1.............
 
-  8039ab0:	bed0 5400 4f32 004b 90d0 b4d0 bcd0 b8d0     ...T2OK.........
 
-  8039ac0:	bdd0 b8d0 81d1 82d1 80d1 b0d0 82d1 bed0     ................
 
-  8039ad0:	80d1 2500 2e73 6425 7325 6425 000d 0020     ...%s.%d%s%d.. .
 
-  8039ae0:	5452 504d 4920 0049 4341 004b 434e 004b     RTMP II.ACK.NCK.
 
-  8039af0:	6572 7571 7365 5f74 6174 6b73 5100 0d31     request_task.Q1.
 
-  8039b00:	5400 0d4c 5400 5100 000d 0053 0052 0d43     .TL..T.Q..S.R.C.
 
-  8039b10:	4300 0d54 4900 000d 0d46 5100 0d32 d000     .CT..I..F..Q2...
 
-  8039b20:	d090 d0b2 d1b0 d080 d1b8 008f 9dd0 bed0     ................
 
-  8039b30:	80d1 bcd0 b0d0 d000 d097 d0b0 d0bc d0ba     ................
 
-  8039b40:	d1bd d183 d082 00be a0d0 b0d0 b7d0 bed0     ................
 
-  8039b50:	bcd0 bad0 bdd0 83d1 82d1 bed0 6c00 676f     .............log
 
-  8039b60:	745f 7361 006b 3025 6932 252e 3230 2e69     _task.%02i.%02i.
 
-  8039b70:	3025 6932 2520 3230 3a69 3025 6932 253a     %02i %02i:%02i:%
 
-  8039b80:	3230 0069 2c22 d000 d09f d1b5 d080 d0b5     02i.",..........
 
-  8039b90:	d0b7 d0b0 d1b3 d180 d083 d0b7 d0ba 20b0     ............... 
 
-  8039ba0:	bad0 bed0 bdd0 82d1 80d1 bed0 bbd0 bbd0     ................
 
-  8039bb0:	b5d0 80d1 b0d0 d000 d0a1 d1b1 d080 d1be     ................
 
-  8039bc0:	2081 bdd0 b0d0 81d1 82d1 80d1 bed0 b5d0     . ..............
 
-  8039bd0:	bad0 d000 d09e d0b1 d0bd d0be d0b2 d0bb     ................
 
-  8039be0:	d0b5 d0bd d0b8 20b5 9fd0 9ed0 d000 d0a1     ....... ........
 
-  8039bf0:	d0bc d0b5 d0bd 20b0 bfd0 b0d0 80d1 bed0     ....... ........
 
-  8039c00:	bbd0 8fd1 d000 d0a1 d1be d185 d080 d0b0     ................
 
-  8039c10:	d0bd d0b5 d0bd d0b8 20b5 bdd0 b0d0 81d1     ......... ......
 
-  8039c20:	82d1 80d1 bed0 b5d0 bad0 d000 d090 d1b2     ................
 
-  8039c30:	d082 d1be d080 d0b8 d0b7 d1b0 d086 d1b8     ................
 
-  8039c40:	008f a2d0 b5d0 81d1 82d1 d020 d098 d091     .......... .....
 
-  8039c50:	009f 92d0 8bd1 bad0 bbd0 8ed1 87d1 b5d0     ................
 
-  8039c60:	bdd0 b8d0 b5d0 d020 d098 d091 009f 90d0     ...... .........
 
-  8039c70:	b2d0 b0d0 80d1 b8d0 8fd1 d020 d0b4 d1b8     .......... .....
 
-  8039c80:	d081 d1ba 2e80 d020 d1b2 d085 d0be d0b4     ...... .........
 
-  8039c90:	20b0 0031 a1d0 bed0 81d1 82d1 bed0 8fd1     . 1.............
 
-  8039ca0:	bdd0 b8d0 b5d0 d020 d1b2 d18b d085 d0be     ...... .........
 
-  8039cb0:	d0b4 20b0 0031 a1d0 bed0 81d1 82d1 bed0     ... 1...........
 
-  8039cc0:	8fd1 bdd0 b8d0 b5d0 d020 d1b2 d18b d085     ........ .......
 
-  8039cd0:	d0be d0b4 20b0 0032 90d0 b2d0 b0d0 80d1     ..... 2.........
 
-  8039ce0:	b8d0 8fd1 d120 d082 d0b5 d0bc d0bf d1b5     .... ...........
 
-  8039cf0:	d080 d1b0 d182 d183 d180 008b 90d0 b2d0     ................
 
-  8039d00:	b0d0 80d1 b8d0 8fd1 d020 d1b2 2e85 d020     ........ ..... .
 
-  8039d10:	d0bd d0b0 d1bf d180 d08f d0b6 d0b5 d0bd     ................
 
-  8039d20:	d1b8 008f 9dd0 b8d0 b7d0 bad0 b8d0 b9d0     ................
 
-  8039d30:	d020 d0b7 d1b0 d180 d08f 20b4 90d0 9ad0      .......... ....
 
-  8039d40:	91d0 d000 d090 d0b2 d1b0 d080 d1b8 208f     ............... 
 
-  8039d50:	bdd0 b0d0 b3d0 80d1 83d1 b7d0 bad0 b8d0     ................
 
-  8039d60:	d000 d090 d0b2 d1b0 d080 d1b8 208f 81d1     ............. ..
 
-  8039d70:	b2d0 8fd1 b7d0 b8d0 d120 2081 98d0 91d0     ........ .. ....
 
-  8039d80:	9fd0 d000 d090 d0b2 d1b0 d080 d1b8 208f     ............... 
 
-  8039d90:	bed0 82d1 bad0 bbd0 8ed1 87d1 b5d0 bdd0     ................
 
-  8039da0:	b8d0 8fd1 d020 d090 d09a 0091 6972 676e     .... .......ring
 
-  8039db0:	7366 615f 7070 6e65 3a64 6320 726f 7572     fs_append: corru
 
-  8039dc0:	7470 6465 6620 6c69 7365 7379 6574 0d6d     pted filesystem.
 
-  8039dd0:	000a 4449 454c 0900 6325 2509 0975 7525     ..IDLE..%c.%u.%u
 
-  8039de0:	2509 0d75 000a 6d54 2072 7653 0063          .%u...Tmr Svc.
 
- 08039dee <data__rotek_png>:
 
-  8039dee:	722f 746f 6b65 702e 676e 0000 5448 5054     /rotek.png..HTTP
 
-  8039dfe:	312f 312e 3220 3030 4f20 0d4b 530a 7265     /1.1 200 OK..Ser
 
-  8039e0e:	6576 3a72 6c20 4977 2f50 2e31 2e33 2031     ver: lwIP/1.3.1 
 
-  8039e1e:	6828 7474 3a70 2f2f 6173 6176 6e6e 6861     (http://savannah
 
-  8039e2e:	6e2e 6e6f 6e67 2e75 726f 2f67 7270 6a6f     .nongnu.org/proj
 
-  8039e3e:	6365 7374 6c2f 6977 2970 0a0d 6f43 746e     ects/lwip)..Cont
 
-  8039e4e:	6e65 2d74 654c 676e 6874 203a 3935 3935     ent-Length: 5959
 
-  8039e5e:	0a0d 6f43 6e6e 6365 6974 6e6f 203a 6c43     ..Connection: Cl
 
-  8039e6e:	736f 0d65 430a 6e6f 6574 746e 742d 7079     ose..Content-typ
 
-  8039e7e:	3a65 6920 616d 6567 702f 676e 0a0d 6143     e: image/png..Ca
 
-  8039e8e:	6863 2d65 6f43 746e 6f72 3a6c 7020 6972     che-Control: pri
 
-  8039e9e:	6176 6574 202c 616d 2d78 6761 3d65 3638     vate, max-age=86
 
-  8039eae:	3034 0d30 0d0a 890a 4e50 0d47 1a0a 000a     400.....PNG.....
 
-  8039ebe:	0000 490d 4448 0052 0100 0057 0000 08ae     ...IHDR...W.....
 
-  8039ece:	0006 0000 db82 7d4e 0000 0e17 4449 5441     ......N}....IDAT
 
-  8039ede:	da78 9ded ac7d 672c c059 a1cf 7a80 3285     x...}.,gY....z.2
 
-  8039eee:	4b45 1014 4db6 a62d ae0a b68a 52d8 45c7     EK...M-......R.E
 
-  8039efe:	4131 1b2d 1045 0b7a 7a53 bc69 6060 634d     1A-.E.z.Szi.``Mc
 
-  8039f0e:	d894 c326 6c55 d2ac c6c5 285e 2c91 951f     ..&.Ul....^(.,..
 
-  8039f1e:	4a92 885d 4ad5 dd02 6a3f 9352 1ba2 36ac     .J]..J..?jR....6
 
-  8039f2e:	a246 011b 6d69 e76b 72d2 71fb 7729 df7d     F...imk..r.q)w}.
 
-  8039f3e:	7793 9c75 cece 9fbc b333 7e7b fc7f 6f72     .wu.....3.{~..ro
 
-  8039f4e:	39ce fb3b bf39 e67d 9e79 79f7 9677 e5cb     .9;.9.}.y..yw...
 
-  8039f5e:	000e f800 1785 0001 b900 0002 5720 0000     ............ W..
 
-  8039f6e:	0ae4 0000 15c8 0000 02b9 2000 0057 4000     ........... W..@
 
-  8039f7e:	00ae c800 0015 b900 0002 7200 0005 ae40     ...........r..@.
 
-  8039f8e:	0000 15c8 0000 2b90 0000 0572 4000 00ae     .......+..r..@..
 
-  8039f9e:	8000 015c 9000 002b 7200 0005 e400 000a     ..\...+..r......
 
-  8039fae:	5c80 0001 2b90 0000 5720 0000 0ae4 8000     .\...+.. W......
 
-  8039fbe:	015c 0000 02b9 2000 0057 e400 000a c800     \...... W.......
 
-  8039fce:	0015 b900 0002 5720 0000 eae4 c19f 5f6b     ...... W......k_
 
-  8039fde:	96b7 8fdd bede 440d 3882 9a47 ff23 def3     .......D.8G.#...
 
-  8039fee:	3c96 d6df ed38 377d 7e56 009e c824 3375     .<..8.}7V~..$.u3
 
-  8039ffe:	dae5 8c17 1304 5cc1 b4b0 de40 aa6e 138e     .......\..@.n...
 
-  803a00e:	4d23 0ae4 75c8 ca3f 4655 89a5 6192 2966     #M...u?.UF...af)
 
-  803a01e:	3ad3 7532 44fc 1fdd 4522 80ae b75c ae56     .:2u.D.."E..\.V.
 
-  803a02e:	8ab1 974e 202d 3b45 a644 15c8 eb90 c936     ..N.- E;D.....6.
 
-  803a03e:	4655 8b8f a496 645a 3441 5c8b b901 ba6e     UF....ZdA4.\..n.
 
-  803a04e:	bb5c d524 b4b2 08c1 22b9 4057 9bae d724     \.$......"W@..$.
 
-  803a05e:	a1d8 5530 2cc5 2450 231b e457 c801 cbb5     ..0U.,P$.#W.....
 
-  803a06e:	9572 da97 0763 cdd1 edd5 1557 48ff 5db3     r...c.....W..H.]
 
-  803a07e:	512b 9bb7 e63b 2364 0ae4 5c80 26bb bed7     +Q..;.d#...\.&..
 
-  803a08e:	0a45 5320 ae05 47a1 45b1 78ea 8b13 844e     E. S...G.E.x..N.
 
-  803a09e:	3f6c bd16 2b90 d720 caee 6475 7971 54df     l?...+ ...udqy.T
 
-  803a0ae:	2951 48b1 8c27 2b91 7200 5b6d 13ae a943     Q).H'..+.rm[..C.
 
-  803a0be:	95b6 ecdf 3c59 08d6 02b9 d720 e5a6 191a     ....Y<.... .....
 
-  803a0ce:	38e4 1d67 1a2a 0cf5 d922 7ef9 2c10 0572     .8g.*..."..~.,r.
 
-  803a0de:	dae4 b91d 8aea b5d5 a9dd 9857 1023 9c7b     ..........W.#.{.
 
-  803a0ee:	302b ccd4 cec9 7db7 017e 0572 dae4 b90d     +0.....}~.r.....
 
-  803a0fe:	8aea 6675 a521 caa1 ce77 722c 63b8 c28b     ..uf!...w.,r.c..
 
-  803a10e:	a458 04ba 75f6 8b04 015c b6b9 572f b15d     X....u..\.../W].
 
-  803a11e:	86a6 9d42 faee ea5f 189a bd16 adf6 9160     ..B..._.......`.
 
-  803a12e:	202b 4d57 06b9 ec14 53d4 532b d2a4 a105     + WM.....S+S....
 
-  803a13e:	6f57 4a65 3af4 ec52 a46b e609 15c8 2b90     WoeJ.:R.k......+
 
-  803a14e:	f572 58cd 6443 8efd 892e 34cd 69a3 c11d     r..XCd.....4.i..
 
-  803a15e:	904e 202b e457 8bea 07a1 f6b1 2d03 f55f     N.+ W........-_.
 
-  803a16e:	d4bd 4755 09b0 0572 8ae4 7d5c 59e4 4733     ..UG..r...\}.Y3G
 
-  803a17e:	8eb1 bb76 b435 7525 6c14 4db6 041d 15c8     ..v.5.%u.l.M....
 
-  803a18e:	ab90 5c81 0a3d 2eb6 1acf 88d7 6279 9059     ...\=.......ybY.
 
-  803a19e:	6b4a 0be6 e6ac 8c0a 872c d76e 122d 13a8     Jk......,.n.-...
 
-  803a1ae:	0cec 02b9 4572 a1ae 01d2 4f23 0c8b 4bf2     ....rE....#O...K
 
-  803a1be:	5d62 af1f e749 5d41 4007 f0e2 91fc 202b     b]..I.A].@....+ 
 
-  803a1ce:	e457 56ba 8b8e e89a 87d2 2758 2e01 4db1     W..V......X'...M
 
-  803a1de:	ba96 09d6 5c76 1e93 9088 202b 7dd7 5726     ....v\....+ .}&W
 
-  803a1ee:	c147 35a6 a185 51c8 f3ac 9606 eac4 752e     G..5...Q.......u
 
-  803a1fe:	13ad 7cec bb9b 9007 202b e6d7 5ae4 c457     ...|....+ ...ZW.
 
-  803a20e:	1d8a b472 8ba6 9a0c da9a af35 bfc9 dd56     ..r.......5...V.
 
-  803a21e:	87b6 015c eeb9 b933 0a5a b536 074c 01a4     ..\...3.Z.6.L...
 
-  803a22e:	a5e6 9e46 0ae6 f6b8 8eb0 35b7 457a 80ae     ..F........5zE..
 
-  803a23e:	9b5c 6b91 d45d abda dad8 c7c5 8322 2155     \..k].......".U!
 
-  803a24e:	6749 b5d8 f6e9 3ad9 1d82 7e7a 905d 202b     Ig.....:..z~].+ 
 
-  803a25e:	6dd7 ab95 60a1 8b13 f9cb e2ba 8e97 2358     .m...`........X#
 
-  803a26e:	fc75 376c 52ec 9d57 d61e 22c8 f732 ea91     u.l7.RW...."2...
 
-  803a27e:	0d58 f1ad 58c5 ae3d 2ab4 afda 6b91 8824     X....X=..*...k$.
 
-  803a28e:	a905 2c60 8198 9277 6bc2 323e bdbc 07ae     ..`,..w..k>2....
 
-  803a29e:	de5c 1ebf 7572 ec17 22c2 ab3a 074b 1ac4     \...ru...":.K...
 
-  803a2ae:	542d 52b6 19b5 5873 d827 4589 baf4 20f0     -T.R..sX'..E... 
 
-  803a2be:	a6d7 a956 f38d 65ef 5c89 7523 cf82 4b05     ..V....e.\#u...K
 
-  803a2ce:	ce08 f0a8 cffa 6e0c 2bab 89d7 63e5 04cb     .......n.+...c..
 
-  803a2de:	227d 7757 f6b9 842d 73d3 85ec 049d 4892     }"Ww..-..s.....H
 
-  803a2ee:	22dd c481 48b2 5a95 14a4 5f5c 50fb d7c8     ."...H.Z..\_.P..
 
-  803a2fe:	ca3e b5c9 70e7 8212 713d 5ce1 0ccd 3b6e     >....p..=q.\..n;
 
-  803a30e:	280e c5d6 ac4a d5c8 b05d 4555 be9b 36c5     .(..J...].UE...6
 
-  803a31e:	332f 8b8f 6c0c 9377 2c8d 1b3b be6c 5c4c     /3...lw..,;.l.L\
 
-  803a32e:	5b0a ddc3 e696 082d c6b9 24ea 7445 90ed     .[....-....$Et..
 
-  803a33e:	473f 8e7b 6f51 0af1 f6c4 63ea 6eae ce4f     ?G{.Qo.....c.nO.
 
-  803a34e:	93d5 1760 6d86 914a fae5 26fb aac4 5823     ..`..mJ....&..#X
 
-  803a35e:	22db b4d5 39e2 e887 0e2b 77ca e07c cb33     ."...9..+..w|.3.
 
-  803a36e:	5f0b 3177 6b92 4587 fce1 1d8c 5ea3 621f     ._w1.k.E.....^.b
 
-  803a37e:	169d 8ac5 dd5c dae4 b8b3 1fb4 1659 7478     ....\.......Y.xt
 
-  803a38e:	a897 3aae 7a01 8f25 6875 0ab8 a6cb 7607     ...:.z%.uh.....v
 
-  803a39e:	916c b052 185d dd31 716d cd98 bf99 07fd     l.R.].1.mq......
 
-  803a3ae:	ae88 8a1d d339 f0d4 91f6 b167 e84e 7016     ....9.....g.N..p
 
-  803a3be:	ab6c 9430 cf4c d230 aaad 8fb8 fd76 892e     l.0.L.0.....v...
 
-  803a3ce:	348d cd66 6dd6 bd97 8c30 a344 5d00 8b03     .4f..m..0.D..]..
 
-  803a3de:	e536 8cfa bd3f d10d 43b5 90ea 5d1f 9c94     6...?....C...]..
 
-  803a3ee:	7ddb 9cc3 6ead 018a 3ab9 7608 5862 ef05     .}...n...:.vbX..
 
-  803a3fe:	885b a7ac 06d1 5b65 8a14 3a35 fa0e 8b1e     [.....e[..5:....
 
-  803a40e:	3354 d3cf 5ab2 c51f a3f8 de87 ec85 679a     T3...Z.........g
 
-  803a41e:	3858 e72f 510e 8baf 1358 5cfa ca3d 20b5     X8/..Q..X..\=.. 
 
-  803a42e:	45d8 915d f0a6 a9f7 a445 f13b c8b4 f7c0     .E].....E.;.....
 
-  803a43e:	c098 a2c8 5548 fcf5 be6d 9018 feeb 5fa4     ....HU..m......_
 
-  803a44e:	2738 a36d d8de ac52 c959 4063 beae 7ae4     8'm...R.Y.c@...z
 
-  803a45e:	fae0 4ee9 d4dd 57fd e9bc 45ad cf21 f2ea     ...N...W...E!...
 
-  803a46e:	059b d719 6cb5 1af9 52e2 d827 61be 73ce     .....l...R'..a.s
 
-  803a47e:	2161 d344 892f a2c4 accd 508a cd72 9537     a!D./......Pr.7.
 
-  803a48e:	102f f7a3 814e 65be 99b4 68f8 42b5 feae     /...N..e...h.B..
 
-  803a49e:	dae5 7213 891d 9c76 a4a5 144c eff2 72f2     ...r..v...L....r
 
-  803a4ae:	2715 4ee1 ce5d dcf1 2e4b 8937 7d74 720f     .'.N]...K.7.t}.r
 
-  803a4be:	5919 a244 8255 0c8b dda3 7038 80a7 61af     .YD.U.....8p...a
 
-  803a4ce:	3a35 cd72 8454 5654 8938 241d 6b1b 5a92     5:r.T.TV8..$.k.Z
 
-  803a4de:	0de4 0363 ab4c b1e8 f267 e7af 22d0 b5ea     ..c.L...g...."..
 
-  803a4ee:	eb15 cd7c 8a7b 2b5c 845e 87fc 5532 881f     ..|.{.\+^...2U..
 
-  803a4fe:	b455 9b61 598f b90a ab66 88e3 7093 ab26     U.a..Y..f....p&.
 
-  803a50e:	dfcb d577 f7fb 2c84 795b 62f2 8f91 2563     ..w....,[y.b..c%
 
-  803a51e:	9cd7 8d60 5f8a f43f dff6 79da afe5 dc1c     ..`.._?....y....
 
-  803a52e:	c9f9 5e37 23ba 6bee 95e7 bfaf ef64 1e98     ..7^.#.k....d...
 
-  803a53e:	440a 4599 c4b7 593a 9e66 2cbe 8666 6b51     .D.E..:Yf..,f.Qk
 
-  803a54e:	e388 7f2e cde2 56bf 0276 6af6 ba4e 52c8     .......Vv..jN..R
 
-  803a55e:	b1b0 49e6 3a9d 8244 1a3b dd8f f8a5 9be4     ...I.:D.;.......
 
-  803a56e:	e2d4 78f1 b56b ae42 27ff 9ed7 d6fa bb1a     ...xk.B..'......
 
-  803a57e:	d38a f217 14e4 9412 258f 2215 564c 1c97     .........%."LV..
 
-  803a58e:	e235 8b4a 7d42 a5f9 bebf ae56 1fa2 e773     5.J.B}....V...s.
 
-  803a59e:	5ffc f64d e67e a970 f7dd cb24 2799 9ab9     ._M.~.p...$..'..
 
-  803a5ae:	fd2c 849d ab92 6443 fb13 4cae 98e7 563a     ,.....Cd...L..:V
 
-  803a5be:	7dcf ee3e b038 675c 9c0d 13a7 b706 cbd4     .}>.8.\g........
 
-  803a5ce:	dd35 bc94 9092 5ce4 ba46 5fa7 e1fd 96bd     5......\F.._....
 
-  803a5de:	b29f 97e2 a894 5ca9 166b 4444 7d16 a6bb     .......\k.DD.}..
 
-  803a5ee:	9cb2 8c5a 3465 9c79 e2ae 6ed6 92ef 8def     ..Z.e4y....n....
 
-  803a5fe:	914d b2c3 6dca 0512 0c2e b223 9190 1462     M....m....#...b.
 
-  803a60e:	ae58 f3a1 c9d8 a980 db58 d725 08b2 ecf7     X.......X.%.....
 
-  803a61e:	8e2b 9dec 52d0 e72e 3c1d 2d64 9ad7 7608     +....R...<d-...v
 
-  803a62e:	49ee 3396 5cc3 2ce9 a760 1c40 b8e2 bce7     .I.3.\.,`.@.....
 
-  803a63e:	4af3 a89b f5d2 5692 b8e7 2f21 27db f281     .J.....V..!/.'..
 
-  803a64e:	55c4 9e44 ab9e 4769 3240 e460 b6a0 475c     .UD...iG@2`...\G
 
-  803a65e:	52db 1531 9d72 890b 42a6 7da8 b91b dfca     .R1.r....B.}....
 
-  803a66e:	b619 f97e a592 b90f 169a 7c9e adcd 5ffd     ..~........|..._
 
-  803a67e:	7d9e cddd 972e b6d6 98c5 c034 fb65 83b0     .}........4.e...
 
-  803a68e:	e197 7a45 531e 3e2b bb87 d720 5c9c b9fb     ..Ez.S+>.. ..\..
 
-  803a69e:	d542 5738 4ac0 bf2d f351 9fb7 28f8 5982     B.8W.J-.Q....(.Y
 
-  803a6ae:	10a6 4216 e3ae 6895 e575 26ba 9045 806e     ...B...hu..&E.n.
 
-  803a6be:	275c 9116 3aeb 3646 68cb 850b 91ac c9e5     \'...:F6.h......
 
-  803a6ce:	0717 ab90 2569 34dc d195 eb76 7155 6b86     ....i%.4..v.Uq.k
 
-  803a6de:	c8c8 4235 0dae 62b7 d019 2753 fc90 a7c0     ..5B...b..S'....
 
-  803a6ee:	70aa 0f35 5a2d d119 810a b6f6 ae58 36b3     .p5.-Z......X..6
 
-  803a6fe:	0e17 d214 4b01 ee8d 2680 3ae5 841e 14eb     .....K...&.:....
 
-  803a70e:	b7e8 d620 c799 bae7 341c e9dc 5c80 621b     .. ......4...\.b
 
-  803a71e:	b425 07dc 1135 dbd2 5ceb 3108 4961 5cca     %...5....\.1aI.\
 
-  803a72e:	2076 c954 44b5 33b0 82c3 1b53 ed72 5892     v T..D.3..S.r..X
 
-  803a73e:	0ee7 099f 28d3 e473 b2f9 167d 8d38 fa11     .....(s...}.8...
 
-  803a74e:	3cf2 8a74 39c2 457a edae 75c8 290f f93d     .<t..9zE...u.)=.
 
-  803a75e:	14af ae60 79c1 b3e2 2a0a 9d8e 8949 68cb     ..`..y...*..I..h
 
-  803a76e:	4cb6 9aae 7a4b 5b4d a6ab f386 756f dae5     .L..KzM[....ou..
 
-  803a77e:	436b 32aa 5ac7 d3d2 9aea 4b9b fe07 9adb     kC.2.Z.....K....
 
-  803a78e:	524c 9352 8fc0 c437 038e cfb6 95b5 2bdc     LRR...7........+
 
-  803a79e:	7572 e4bb 3a77 414e 65ae b1f7 5b27 4829     ru..w:NA.e..'[)H
 
-  803a7ae:	3d5f 427b f1ae b91a ebf6 f496 e87a 982e     _={B........z...
 
-  803a7be:	f639 36a2 203a b65b 95c1 ab44 f23e 36ad     9..6: [...D.>..6
 
-  803a7ce:	5791 145d ba15 7fc1 82da e35c f38a edaf     .W].......\.....
 
-  803a7de:	1a82 0d72 d724 62b4 b91d a8f7 1577 cad9     ..r.$..b....w...
 
-  803a7ee:	aa7c bc8f caad c6ff b905 2d8e cb06 ee84     |..........-....
 
-  803a7fe:	6d8b 407d 5cb6 b74d 6a26 6d75 3792 c2f9     .m}@.\M.&jum.7..
 
-  803a80e:	0c5c 6fda 6ff0 3663 d442 a742 8b00 5a08     \..o.oc6B.B....Z
 
-  803a81e:	6b96 586c 8824 7894 b927 84ee 50c8 7bae     .klX$..x'....P.{
 
-  803a82e:	009d d2ea f7be 8b8a 1b2f 4929 16ba 620c     ......../.)I...b
 
-  803a83e:	8dcb 6304 de8b 9b52 c37d 1f5a 2d90 d823     ...c..R.}.Z..-#.
 
-  803a84e:	8235 95b5 30eb 09c0 ba1e bfc1 1ded da07     5....0..........
 
-  803a85e:	514c 90f4 736b ed72 445b d904 0f9a f690     LQ..ksr.[D......
 
-  803a86e:	59e5 ae4e 423b 7bae d3b9 6895 225d 1fda     .YN.;B.{...h]"..
 
-  803a87e:	cb7f 4ce1 15e6 c50d 3a67 b042 a1e7 7fd1     ...L....g:B.....
 
-  803a88e:	56de ab31 dbd0 2aea d357 fc66 e7a1 6663     .V1....*W.f...cf
 
-  803a89e:	3b81 4c1b c187 d194 b00f e081 32dc 9f02     .;.L.........2..
 
-  803a8ae:	d720 0b66 a65a b879 a7a9 fa0f 391e eeb9      .f.Z.y......9..
 
-  803a8be:	3ffd 8b97 6d4a e12f 7e64 30b1 a654 09aa     .?..Jm/.d~.0T...
 
-  803a8ce:	6e7f 9c58 1c4a fd1b 1f5b 2d90 dcbe 2c7c     .nX.J...[..-..|,
 
-  803a8de:	348f 17cd 0166 b872 e9a6 d0ab b3fd cca6     .4..f.r.........
 
-  803a8ee:	c52d 391a c54c 21ea e6d7 3ae4 5c33 9daf     -..9L..!...:3\..
 
-  803a8fe:	4458 2326 bc75 d551 9b9b eb93 bbff bcf4     XD&#u.Q.........
 
-  803a90e:	f5e0 b66f 422a b9c8 6a06 c1a6 3578 a620     ..o.*B...j..x5 .
 
-  803a91e:	55d0 b7d0 cb58 363f 3b4c 2eb8 1d7b 1c56     .U..X.?6L;..{.V.
 
-  803a92e:	3527 fe1c c7b2 0ecb a6ff 6a8f 34f2 d450     '5.........j.4P.
 
-  803a93e:	b214 1e0a 7fb2 67d6 a360 1afb 1236 22bd     .......g`...6.."
 
-  803a94e:	7b57 86c6 4691 1964 2c49 690a b184 646e     W{...Fd.I,.i..nd
 
-  803a95e:	e420 8f9a 8d66 0e3a 9464 2226 54d9 faae      ...f.:.d.&".T..
 
-  803a96e:	912a c4eb 8262 c2d6 6871 e98b ec80 c6be     *...b...qh......
 
-  803a97e:	5792 4dd7 b309 11c0 6ea0 64c4 343b a77a     .W.M.....n.d;4z.
 
-  803a98e:	5103 cfb1 9c94 14ae 26d3 57a2 6ae4 d0cf     .Q.......&.W.j..
 
-  803a99e:	ef22 b53a e378 15fa ff09 d14a b92a 4f16     ".:.x.....J.*..O
 
-  803a9ae:	a36e 6d6f a139 2e4b cdad b5c9 772a f0ba     n.om9.K.....*w..
 
-  803a9be:	53b8 136e b203 8ea7 3572 6969 d9b2 69af     .Sn.....r5ii...i
 
-  803a9ce:	0832 2053 cd33 6715 0683 ebaa 9e81 7f6b     2.S 3..g......k.
 
-  803a9de:	a04d 8593 5e8e ab91 913d 65c5 6257 8df9     M....^..=..eWb..
 
-  803a9ee:	175f acf1 630a df5a a2ac 3580 8934 d446     _....cZ....54.F.
 
-  803a9fe:	b20a e554 2746 b79e ef14 b6ed 2037 48db     ..T.F'......7 .H
 
-  803aa0e:	15d8 badb 45d4 a382 91c0 9752 6406 7977     .....E....R..dwy
 
-  803aa1e:	185b cb1f 6367 dae4 0acc 99ad 1145 6162     [...gc......E.ba
 
-  803aa2e:	1559 189e 965c 3525 cd72 8157 0667 ec51     Y...\.%5r.W.g.Q.
 
-  803aa3e:	a2a2 a0ab 7b6a 85f0 be63 d435 ec80 d778     ....j{..c.5...x.
 
-  803aa4e:	9edf 9359 89c2 b7d7 52b9 6cb0 eff2 80d2     ..Y......R.l....
 
-  803aa5e:	2eec f731 5858 4e34 207b 3757 1646 ad79     ..1.XX4N{ W7F.y.
 
-  803aa6e:	61c4 b33d 8449 a992 e76f 855e ad5c 2b24     .a=.I...o.^.\.$+
 
-  803aa7e:	abb7 2831 c564 5b16 bb8a 0a76 21a4 1ae4     ..1(d..[..v..!..
 
-  803aa8e:	0662 8584 5c14 e7ab 07a1 7764 ba89 3ae7     b....\....dw...:
 
-  803aa9e:	1909 22bd 70d7 81a9 6599 3af4 c8d5 6539     ...".p...e.:..9e
 
-  803aaae:	1f16 58b2 4a33 8ad1 64b4 9714 25db 2aa1     ...X3J...d...%.*
 
-  803aabe:	9d6a faec f5d9 c435 6c80 e5a3 0db4 2109     j.....5..l.....!
 
-  803aace:	68b3 09fb ecb9 9375 9ae5 fc0e c716 a28c     .h....u.........
 
-  803aade:	e457 ceea e2d4 ae1b 292e d63f fa90 32c4     W........)?....2
 
-  803aaee:	d222 14a9 3a27 9702 9c91 01da b477 1ada     "...':......w...
 
-  803aafe:	a07c 3dbf dcf8 df70 df2c b203 728d f2ae     |..=..p.,....r..
 
-  803ab0e:	a48b b121 03f6 b65f 0e9b 4ec8 5836 f1ae     ..!..._....N6X..
 
-  803ab1e:	6fc0 8427 b1d1 6b91 a5d8 33b0 3c87 8e99     .o'....k...3.<..
 
-  803ab2e:	7b04 b24a 91a6 42ec 1073 5688 22d4 6ea7     .{J....Bs..V.".n
 
-  803ab3e:	96c9 12ad 4eb9 862c b8c1 ceae 42ca d16c     .....N,......Bl.
 
-  803ab4e:	bf2d 3a44 d628 1a26 7bfc 2c1b 5ed7 9cc0     -.D:(.&..{.,.^..
 
-  803ab5e:	0cf2 36b9 7233 6170 0df1 d3a7 620e 0972     ...63rpa.....br.
 
-  803ab6e:	1c37 dfac 36d9 edcb 30c0 5c34 de57 f9d3     7....6...04\W...
 
-  803ab7e:	9776 5b2d e3ab f46a 6691 6286 e935 3573     v.-[..j..f.b5.s5
 
-  803ab8e:	0d99 ed3b 5c88 0e17 9aab 7642 b40a bdb9     ..;..\....Bv....
 
-  803ab9e:	c84b 014e 435f 6269 1ae4 ae5e 6589 5675     K.N._Cib..^..euV
 
-  803abae:	5be7 3273 bf08 a68b bcae bab3 b1d9 1252     .[s2..........R.
 
-  803abbe:	be2f daf2 d6ba d4a9 ae42 edba e358 00dd     /.......B...X...
 
-  803abce:	1abb 9404 d4eb fdf1 a26d dfc1 47a6 6db7     ........m....G.m
 
-  803abde:	0d66 3ea4 c866 99b5 d961 cb0b 3408 ccd1     f..>f...a....4..
 
-  803abee:	f695 203b 48d8 3fa3 1330 9d72 44d6 91ad     ..; .H.?0.r..D..
 
-  803abfe:	5ca5 8d23 3368 2109 35d7 5b83 a35c a1d5     .\#.h3.!.5.[\...
 
-  803ac0e:	f787 a9a4 ff06 4b7e 0763 1a9b 9d74 8ef9     ......~Kc...t...
 
-  803ac1e:	915e 336b d7b9 5cba 6e97 7343 301a cd8a     ^.k3...\.nCs.0..
 
-  803ac2e:	58e7 35a7 aaf9 aeda ef82 723d 75d4 5645     .X.5......=r.uEV
 
-  803ac3e:	0b5d 64d5 1e4d de36 b40d 971f e8a7 316d     ]..dM.6.......m1
 
-  803ac4e:	b0f0 736d 9d43 6502 919f 8a91 bad8 da2e     ..msC..e........
 
-  803ac5e:	a0d1 ae99 0588 6d72 b226 399b 9114 ab74     ......rm&..9..t.
 
-  803ac6e:	99ff c967 1546 07b3 eeaa 36a7 3d8a 8afb     ..g.F......6.=..
 
-  803ac7e:	ae23 021d 229d 9727 c5b9 3809 b1f6 057b     #...."'....8..{.
 
-  803ac8e:	0e6c d5c8 f6ff 992f 0f43 c8eb 5f22 5897     l...../.C..."_.X
 
-  803ac9e:	768a d9a8 5069 f977 995a 958b 0c63 a32d     .v..iPw.Z...c.-.
 
-  803acae:	2eca b5ca e5f8 ab12 2cf7 435d 91dc 397c     .........,]C..|9
 
-  803acbe:	d720 d8ad 30a0 cc75 0d7b 2f2d e73f 9db9      ....0u.{.-/?...
 
-  803acce:	860e c325 d387 375c cd81 4fe5 26bf 9dfa     ..%...\7...O.&..
 
-  803acde:	08d5 3c76 df28 7671 e553 800a 5b5c fdd8     ..v<(.qvS...\[..
 
-  803acee:	4eb5 8960 0446 ef3c ee48 a4ca b698 8bf6     .N`.F.<.H.......
 
-  803acfe:	bce5 8783 ad8a c85a 9015 722b cab5 6663     ......Z...+r..cf
 
-  803ad0e:	f703 0245 a0e9 16dd 9b18 4802 f15c f798     ..E........H\...
 
-  803ad1e:	8b04 015c 22b9 90d7 03dd f2ba 39ea 980c     ..\..".......9..
 
-  803ad2e:	d970 b2f1 f9a7 8cd8 6f22 d8b9 a1c0 0b15     p......."o......
 
-  803ad3e:	02b9 4572 daae ac3d bdba 3d87 3395 150d     ..rE..=....=.3..
 
-  803ad4e:	66c9 5206 77cd ac37 e45b 3550 c0ff dfa8     .f.R.w7.[.P5....
 
-  803ad5e:	b912 7202 ae45 fdb6 7373 49c3 8948 14ea     ...rE...ss.IH...
 
-  803ad6e:	21f0 d35a 838e e2b2 5555 365e 16dd 22c1     .!Z.....UU^6..."
 
-  803ad7e:	400c ddae ab92 0f6e 666b f8d1 5abc 3339     .@....n.kf...Z93
 
-  803ad8e:	f752 d551 bddc 2f9a c930 09b5 5cf9 9b02     R.Q..../0....\..
 
-  803ad9e:	cc59 ddb0 c128 0c22 ae40 93dd e9ab 024e     Y...(.".@.....N.
 
-  803adae:	8ebd 507d 037a 69fd 89f7 fae1 64f4 0453     ..}Pz..i.....dS.
 
-  803adbe:	308b b900 5376 a6ae 2203 1dc6 4068 0c8f     .0..vS..."..h@..
 
-  803adce:	163b 1ac6 7651 3ae6 1463 02b9 4572 d6ae     ;...Qv.:c...rE..
 
-  803adde:	a883 3507 b55b 1034 9aa9 81b6 0625 9ec7     ...5[.4.....%...
 
-  803adee:	98fb 8a65 015c 22b9 b2d7 ce08 9174 d4c0     ..e.\.."....t...
 
-  803adfe:	c0f3 aa8f b125 67a1 4691 cf25 617f a913     ....%..g.F%..a..
 
-  803ae0e:	5723 ae40 d5c8 7c66 badf 7668 da25 87be     #W@...f|..hv%...
 
-  803ae1e:	3508 d819 66ed 3ae0 b48b b04c f3b6 9146     .5...f.:..L...F.
 
-  803ae2e:	202b e457 bf6a 6029 174d b8c0 ae62 ac40     + W.j.)`M...b.@.
 
-  803ae3e:	9e7e 2f9f d2e0 e5c6 166b 9969 c760 c72e     ~../....k.i.`...
 
-  803ae4e:	ae44 5c80 6b91 96d7 b6ba ee31 9d70 8760     D..\.k....1.p.`.
 
-  803ae5e:	5e21 e463 c80a 7f75 d5ca 3aa6 c5df b125     !^c...u....:..%.
 
-  803ae6e:	043e 859b 94e8 ae40 5c80 aff7 8b5c 5d92     >.....@..\..\..]
 
-  803ae7e:	2474 6d52 5ba2 df21 35a6 7221 e405 5c8a     t$Rm.[!..5!r...\
 
-  803ae8e:	3343 6834 f7e0 69b9 d25e 73c2 bbed 5ce6     C34h...i^..s...\
 
-  803ae9e:	2b91 5720 6ae4 cd13 5aae 7ca5 b447 750b     .+ W.j...Z.|G..u
 
-  803aeae:	64dc c5b0 f393 2b91 5720 aae4 db2b 0ed5     .d.....+ W..+...
 
-  803aebe:	7503 0573 12f2 a99d 74c8 59d5 dbd0 1f2f     .us......t.Y../.
 
-  803aece:	e476 c80a 0015 9000 002b 7200 0005 ae40     v.......+..r..@.
 
-  803aede:	0000 5c80 0001 2b90 0000 0572 0000 0ae4     ...\...+..r.....
 
-  803aeee:	8000 015c 9000 002b 2000 0057 e400 000a     ..\...+.. W.....
 
-  803aefe:	5c80 0001 b900 0002 5720 0000 0ae4 0000     .\...... W......
 
-  803af0e:	15c8 0000 02b9 2000 0057 4000 00ae c800     ....... W..@....
 
-  803af1e:	0015 b900 0002 7200 0005 ae40 0000 15c8     .......r..@.....
 
-  803af2e:	0000 2b90 0000 0572 4000 00ae fb00 ae5c     ...+..r..@....\.
 
-  803af3e:	f63f 6685 ca79 1883 db0e 3781 001f 6b90     ?..fy......7...k
 
-  803af4e:	b940 75b6 9aff 3f92 cb76 ad45 89c3 d002     @..u...?v.E.....
 
-  803af5e:	b96d 761e eb90 0433 0917 283e 82f8 41e0     m..v..3...>(...A
 
-  803af6e:	49c1 23c1 7f82 dc13 7822 e087 0d79 f5cb     .I.#...."x..y...
 
-  803af7e:	824d 3af3 d72c 0b97 412e 00ae 2bdb 8bd7     M..:,....A...+..
 
-  803af8e:	9905 5c85 2e9f 4cb8 9ff0 a582 2706 d704     ...\...L.....'..
 
-  803af9e:	be0b 01bb 1eb9 7c10 7045 60a7 83b7 dd72     .......|Ep.`..r.
 
-  803afae:	dc15 f821 e09a c859 6015 e4fb 103a 213c     ..!...Y..`..:.<!
 
-  803afbe:	d478 ae50 2c3f 27f8 a94d 7916 7058 6079     x.P.?,.'M..yXpy`
 
-  803afce:	beb9 7727 077f 283b 37d7 9608 f78a 5722     ..'w..;(.7...."W
 
-  803afde:	ed80 eb92 054b 04c7 854b 5cae 417f 8df0     ....K...K..\.A..
 
-  803afee:	3082 25bf bcf8 dde0 5f82 5c14 7820 e0b5     .0.%....._.\ x..
 
-  803affe:	e0b0 2a13 5045 ec94 089f 169e ae40 122f     ...*EP......@./.
 
-  803b00e:	cf1c cfdd 5557 db24 b915 101e 47fc ae4e     ....WU$......GN.
 
-  803b01e:	098f 40ce 00ae 21db d3d7 5f05 89ca 5755     ...@...!..._..UW
 
-  803b02e:	03ae 13c1 4905 2ade a738 5446 11cf 255c     .....I.*8.FT..\%
 
-  803b03e:	b478 db70 01a3 7ae4 8953 8fc8 4874 57ae     x.p....zS...tH.W
 
-  803b04e:	c4e5 e2ba e466 b00a 72f9 76fd dfc1 c415     ....f....r.v....
 
-  803b05e:	2dfa b90d 88ca bff0 390b 43d4 b206 a17a     .-.......9.C..z.
 
-  803b06e:	cbe0 e225 d4bb 5ca3 57cf b4c5 7de2 571c     ..%....\.W...}.W
 
-  803b07e:	bf8f b96d 40be bc70 ae44 0b92 2b91 e6c0     ..m..@p.D....+..
 
-  803b08e:	75ca 7057 4163 92ac 35fb 7ae4 4e6b 3256     .uWpcA...5.zkNV2
 
-  803b09e:	fd7a 0359 9d51 f82e 35d7 d839 0baf ef9e     z.Y.Q....59.....
 
-  803b0ae:	ae41 c532 5770 ae45 93f7 901d c7eb 88d7     A.2.pWE.........
 
-  803b0be:	3255 3c17 b90d 6c02 5ca6 b77f ac44 a0b2     U2.<...l.\..D...
 
-  803b0ce:	73f5 7235 141d f544 061b 9292 8129 162f     .s5r..D.....)./.
 
-  803b0de:	ff6e 42a1 f6de 1e03 fae4 dc96 bef1 7829     n..B..........)x
 
-  803b0ee:	b148 648a aa4f 705c 725b 4f3d 5270 5489     H..dO.\p[r=OpR.T
 
-  803b0fe:	fbfe e290 399b 1ec1 ae42 9b00 5727 72d9     .....9..B...'W.r
 
-  803b10e:	b275 d620 ea93 75e7 088b 32fe ae27 5fbf     u. ....u...2'.._
 
-  803b11e:	885b 6f2a ba89 20b3 ebd6 efd4 277e 33f7     [.*o... ....~'.3
 
-  803b12e:	8b99 cd3d ae41 12cf 2d7c bc77 723b 3bbf     ..=.A...|-w.;r.;
 
-  803b13e:	fb96 5df9 8f06 a7dd 655c d5eb 399d 1e89     ...]....\e...9..
 
-  803b14e:	fdcb 8eee cfdc 13ef 8a9c 015c 4736 17ae     ..........\.6G..
 
-  803b15e:	08a8 18b5 1eb5 58d6 f5a1 155c ae09 f504     .......X..\.....
 
-  803b16e:	9acb 7a72 e0a6 0573 7eb1 d724 1a77 ba15     ..rz..s..~$.w...
 
-  803b17e:	2e08 9073 7beb f70b 4eb3 92ae 05a4 1eb9     ..s..{...N......
 
-  803b18e:	a42c d600 55c9 0d72 0572 0cd8 9eb9 72a5     ,....Ur.r......r
 
-  803b19e:	45aa beb1 7347 ebf9 152f a3f2 d4cf d310     .E..Gs../.......
 
-  803b1ae:	8229 174f 76a4 fa8b fe79 feef f72c 4ffb     ).O..v..y...,..O
 
-  803b1be:	ca58 0cf5 63c1 7206 57bd ba45 c94d 3bf5     X....c.r.WE.M..;
 
-  803b1ce:	5f05 9035 e3eb b382 2b90 3340 bd72 7f30     ._5......+@3r.0.
 
-  803b1de:	6ef9 73c0 f704 8894 a8f5 6cc1 7c81 fe43     .n.s.......l.|C.
 
-  803b1ee:	68df 4948 a646 1637 f684 35d9 7e52 ee5b     .hHIF.7....5R~[.
 
-  803b1fe:	fe6f 52d9 7fae 525e aabc ab92 f7e4 941b     o..R..^R........
 
-  803b20e:	91eb e292 9555 255c e453 100a ae56 26df     ....U.\%S...V..&
 
-  803b21e:	46b8 4ab5 171d 639c d620 0453 2f9f eb11     .F.J...c .S../..
 
-  803b22e:	d467 74ef fae5 92e1 697c 4715 220b dbfb     g..t....|i.G."..
 
-  803b23e:	268a 0bfe 510b a9b1 7f5c 4d6a 4067 5c9d     .&...Q..\.jMg@.\
 
-  803b24e:	531f 6f11 b968 48be a8f0 5c85 0325 0ae4     .S.oh..H...\%...
 
-  803b25e:	4e10 b7ae c417 45f8 5c25 b91d 2d1e ab11     .N.....E%\...-..
 
-  803b26e:	6fec 603d 1538 7f2b 7ee9 8d75 ae90 482e     .o=`8.+..~u....H
 
-  803b27e:	1fec b754 bac0 7fbf e169 4def 2ae4 530b     ..T.....i..M.*.S
 
-  803b28e:	4b73 4ab9 d53e 5c80 b93f 9c46 723a 5bbd     sK.J>..\?.F.:r.[
 
-  803b29e:	0a70 0572 2308 a4d7 9044 ac7f d621 9577     p.r..#..D...!.w.
 
-  803b2ae:	eedc 6a4b 9665 c8e9 7cc1 7ae4 8543 de8c     ..Kje....|.zC...
 
-  803b2be:	905d 3dd7 bfaa 4ab5 7160 e661 8980 0f5c     ]..=...J`qa...\.
 
-  803b2ce:	f455 eab4 75c8 eea9 943f 2f5c b5c8 d95e     U....u..?.\/..^.
 
-  803b2de:	55c8 1872 02b9 9184 6cab fffa 495c d4fb     .Ur......l..\I..
 
-  803b2ee:	2a6b 7924 e091 92c9 0245 5967 73ce e7cd     k*$y....E.gY.s..
 
-  803b2fe:	6f5c 235b b7a2 a417 eff5 456a 9d56 df20     \o[#......jEV. .
 
-  803b30e:	996a 3d73 7055 079f ceb9 8a4b 3e6c 2ae4     j.s=Up....K.l>.*
 
-  803b31e:	0317 55dc 4d21 b95d 2fde 9088 402b 8298     ...U!M]../..+@..
 
-  803b32e:	19d6 8782 b20b 4fbc 3df0 c31a 9658 572a     .......O.=..X.*W
 
-  803b33e:	ae7b b0c3 7cec c0b7 3531 35bf a12f 8583     {....|..15.5/...
 
-  803b34e:	a725 0472 59e1 c59a 8fa8 6ee5 9377 5c81     %.r..Y.....nw..\
 
-  803b35e:	a9af bc99 2ba5 65d7 12e5 7b5e 26b9 c215     .....+.e..^{.&..
 
-  803b36e:	9134 e4ab e45a 100a 5bae 6de0 9725 b7f9     4...Z....[.m%...
 
-  803b37e:	c8a9 f576 cf37 7c13 f0a5 4f37 48aa 65d6     ..v.7..|..7O.H.e
 
-  803b38e:	8227 3eaa d7d7 9e0a fdcc 01ee 4795 6dd5     '..>.........G.m
 
-  803b39e:	fffc 45ba eb9f 0bf7 f71e d728 52ff b091     ...E......(..R..
 
-  803b3ae:	b92f 5b3e af70 b947 109e 04bc 02b9 9184     /.>[p.G.........
 
-  803b3be:	94ab 5fe8 0897 a476 7f7e 64a0 cb18 1653     ..._..v.~..d..S.
 
-  803b3ce:	3809 f36c b652 eb42 8555 5909 6252 1ae7     .8l.R.B.U..YRb..
 
-  803b3de:	fe34 5717 3d68 5357 53ae 998d 26b1 9572     4..Wh=WS.S...&r.
 
-  803b3ee:	a1fc b947 5d5e 4b23 b953 6e4a ae45 e100     ..G.^]#KS.JnE...
 
-  803b3fe:	1116 5f3c 50f0 9e41 0b8f 447e 5370 5889     ..<_.PA...~DpS.X
 
-  803b40e:	f3af 87b8 a0d6 3664 f1c0 d4c2 9fa9 1036     ......d6......6.
 
-  803b41e:	4beb ab0a 74b3 0b67 4abc 2073 a9b7 1f5c     .K...tg..Js ..\.
 
-  803b42e:	1157 abb1 cf5c f350 7d59 55cb 6af2 0ae4     W...\.P.Y}.U.j..
 
-  803b43e:	6e10 d685 4b1b fa24 4988 ab2f 06c3 7f85     .n...K$..I/.....
 
-  803b44e:	46b5 324c fd7a 0379 cab1 b4bd a5fe dfd0     .FL2z.y.........
 
-  803b45e:	02fa b90d c2ca ddd3 729a e995 9b89 2715     .........r.....'
 
-  803b46e:	6f34 69f3 720f 94fd 28a6 a84f ae19 0792     4o.i.r...(O.....
 
-  803b47e:	6f34 8f73 e9e0 15c8 dc20 d7f2 28b2 cf35     4os..... ....(5.
 
-  803b48e:	aabc d597 ae41 2e2f 73cc ed5d f040 0306     ....A./..s].@...
 
-  803b49e:	feb1 daa0 70b4 9a59 ad6b eb96 cb61 656d     .....pY.k...a.me
 
-  803b4ae:	f84c 0719 c6b9 929a e174 c89d 2015 5c9c     L.......t.... .\
 
-  803b4be:	134f 797c 588d 4165 85eb b701 2ed6 89db     O.|y.XeA........
 
-  803b4ce:	e640 cf40 28d6 fd5e c39e 044e c872 fdcb     @.@..(^...N.r...
 
-  803b4de:	9206 57bc e4f5 50de 78f2 b8ab 6d5b 68bc     ...W...P.x..[m.h
 
-  803b4ee:	d72a d453 563c 495d 213e 41b8 af71 edc1     *.S.<V]I>!.Aq...
 
-  803b4fe:	141e 177c 0572 3708 65b8 3250 f03e d511     ..|.r..7.eP2>...
 
-  803b50e:	b58a 5013 abae b43d 978e b044 0bb7 54ae     ...P..=...D....T
 
-  803b51e:	3fbf ed5f 25a5 cda3 af8f 7bc9 6f5e 87b0     .?_..%.....{^o..
 
-  803b52e:	b5d6 1186 69a8 35ce 61cf b90b 321e 408c     .....i.5.a...2.@
 
-  803b53e:	726d 2bae 43ae 00ae a761 bd62 b6cf cae5     mr.+.C..a.b.....
 
-  803b54e:	ae51 be92 eec3 8faf ee18 fafe 0603 d379     Q.............y.
 
-  803b55e:	dcfc 33d6 0f15 de1b 01f6 2915 caeb 54f5     ...3.......)...T
 
-  803b56e:	ecd5 226f 87c8 6705 ee2a bc32 1cad 7dae     ..o"...g*.2....}
 
-  803b57e:	720e 0805 5727 6339 1fe0 5c95 f0af 9e31     .r..'W9c...\..1.
 
-  803b58e:	40d0 3bae f2ea f2f9 90c2 2aea a84e f568     .@.;.......*N.h.
 
-  803b59e:	ed74 fd35 dd4f a65e c629 7206 a3fd 7206     t.5.O.^.)..r...r
 
-  803b5ae:	45ad 8b3e 015c cec2 7d73 bad9 81f1 c80d     .E>.\...s}......
 
-  803b5be:	3f35 fb14 9522 94df 5a83 541e fa82 5a86     5?.."....Z.T...Z
 
-  803b5ce:	fb06 8217 a877 012e 21b3 76d5 bfbb c3fa     ....w....!.v....
 
-  803b5de:	b0df 60ec a270 9800 3ff3 637f aecb 24e6     ...`p....?.c...$
 
-  803b5ee:	24ed 0000 0000 4549 444e 42ae 8260          .$....IEND.B`.
 
- 0803b5fc <data__role_js>:
 
-  803b5fc:	722f 6c6f 2e65 736a 0000 0000 5448 5054     /role.js....HTTP
 
-  803b60c:	312f 312e 3220 3030 4f20 0d4b 530a 7265     /1.1 200 OK..Ser
 
-  803b61c:	6576 3a72 6c20 4977 2f50 2e31 2e33 2031     ver: lwIP/1.3.1 
 
-  803b62c:	6828 7474 3a70 2f2f 6173 6176 6e6e 6861     (http://savannah
 
-  803b63c:	6e2e 6e6f 6e67 2e75 726f 2f67 7270 6a6f     .nongnu.org/proj
 
-  803b64c:	6365 7374 6c2f 6977 2970 0a0d 6f43 746e     ects/lwip)..Cont
 
-  803b65c:	6e65 2d74 654c 676e 6874 203a 3332 3934     ent-Length: 2349
 
-  803b66c:	0a0d 6f43 6e6e 6365 6974 6e6f 203a 6c43     ..Connection: Cl
 
-  803b67c:	736f 0d65 430a 6e6f 6574 746e 742d 7079     ose..Content-typ
 
-  803b68c:	3a65 6120 7070 696c 6163 6974 6e6f 782f     e: application/x
 
-  803b69c:	6a2d 7661 7361 7263 7069 0d74 430a 6e6f     -javascript..Con
 
-  803b6ac:	6574 746e 452d 636e 646f 6e69 3a67 6720     tent-Encoding: g
 
-  803b6bc:	697a 0d70 430a 6361 6568 432d 6e6f 7274     zip..Cache-Contr
 
-  803b6cc:	6c6f 203a 7270 7669 7461 2c65 6d20 7861     ol: private, max
 
-  803b6dc:	612d 6567 383d 3436 3030 0a0d 0a0d 8b1f     -age=86400......
 
-  803b6ec:	0008 0000 0000 0a04 58b5 8eef c6db 7f11     .........X......
 
-  803b6fc:	de15 b8c6 2d23 2d1e a939 8b0b 13c7 677c     ....#-.-9.....|g
 
-  803b70c:	7637 b3e0 9c83 a68a 1838 72c6 2577 47d1     7v......8..rw%.G
 
-  803b71c:	5971 a972 7ab3 a027 d035 2d4f b410 8a9f     qYr..z'.5.O-....
 
-  803b72c:	687e 37d0 8b48 0818 26d0 a0cf a37b 76fe     ~h.7H....&..{..v
 
-  803b73c:	8a49 ce94 8db2 8502 44ed 9ddc 9d99 3f9d     I........D.....?
 
-  803b74c:	99bf 51d9 3091 c915 62c4 a099 9c4a e116     ...Q.0...b..J...
 
-  803b75c:	3a33 c68b af54 ced9 8ce5 1666 b80d c564     3:..T.....f...d.
 
-  803b76c:	2454 2bca 1e89 42c5 d97f 4784 e233 d4f8     T$.+...B...G3...
 
-  803b77c:	3163 f3cd 7467 022a 1792 4261 c467 8cd7     c1..gt*...aBg...
 
-  803b78c:	56e1 22c6 5f06 e6d8 9303 7f85 cd21 35f6     .V."._......!..5
 
-  803b79c:	4bbf 9a3d 22a6 c7e1 2893 76e6 18e8 2c81     .K=.."...(.v...,
 
-  803b7ac:	db38 4aa6 111c 7dc7 e6df 9f0b 759d 785f     8..J...}.....u_x
 
-  803b7bc:	9251 ec88 f0f1 69e4 77b0 ad40 2649 0146     Q......i.w@.I&F.
 
-  803b7cc:	4499 92b9 dcd9 a89b 4c69 970e 58ff b4fe     .D......iL...X..
 
-  803b7dc:	e7fc 1ff5 dfaf 7f2c feb8 5ac6 0dfe 3f9f     ......,....Z...?
 
-  803b7ec:	bf5e feb9 fe1d 6fff 79fc 5f8b 1ddf a1dc     ^......o.y._....
 
-  803b7fc:	7b87 3b2e bdeb 625b e691 6f2f bd4a 3dfe     .{.;..[b../oJ..=
 
-  803b80c:	fe64 fd74 f2cd e5c7 cb0f d6b7 aff2 3fcb     d.t............?
 
-  803b81c:	bf2f 252d 3b91 e46b 7041 2511 5e5c b178     /.-%.;k.Ap.%\^x.
 
-  803b82c:	c664 5e15 d54a 8124 0785 16e6 832d b853     d..^J.$.....-.S.
 
-  803b83c:	266f 9f48 b9dc e871 2976 bbbb d1b6 a6fd     o&H...q.v)......
 
-  803b84c:	c71c d70d af2c bb8f d6b9 dac3 bb2d f672     ....,.......-.r.
 
-  803b85c:	3888 2c6b 59d4 ea8c baa8 5365 32e7 aa13     .8k,.Y....eS.2..
 
-  803b86c:	12c8 e56b b19d 5550 1d08 9fcd 5070 f434     ..k...PU....pP4.
 
-  803b87c:	170c 8f3e 4892 3e69 0b16 3d9a 9449 66c8     ..>..Hi>...=I..f
 
-  803b88c:	b634 3455 b215 8e50 0acb 6bb8 ac7a 4129     4.U4..P....kz.)A
 
-  803b89c:	56e5 41eb d42e b68a e245 c4f6 ada7 6203     .V.A....E......b
 
-  803b8ac:	7e39 285e 7644 54a5 292c faff e9e4 c943     9~^(Dv.T,)....C.
 
-  803b8bc:	826c 1c3d b1e0 3471 9d20 1813 cbdc bc28     l.=...q4 .....(.
 
-  803b8cc:	b530 971d fe7c 4868 fadc 605a 22e7 4a16     0...|.hH..Z`.".J
 
-  803b8dc:	4b1c 1e79 9b09 3264 3a16 d6fe 2316 a58e     .Ky...d2.:...#..
 
-  803b8ec:	3f4d 1196 0777 4547 1949 0b70 ddc7 35e9     M?..w.GEI.p....5
 
-  803b8fc:	6816 4429 d0dd 2e65 b32f f850 0ea2 e80a     .h)D..e./.P.....
 
-  803b90c:	58fb f4a9 f12b 429b 6ae4 8890 6b0b a97d     .X..+..B.j...k}.
 
-  803b91c:	97af 93aa 981f f8f8 79fa 4af8 a430 49ec     .........y.J0..I
 
-  803b92c:	32c4 cb99 f291 cb34 f870 7425 9e14 aa44     .2....4.p.%t..D.
 
-  803b93c:	a1d9 dd4b ae9d 84fe 2b29 8fe1 e505 b322     ..K.....)+....".
 
-  803b94c:	b1c9 1b84 b512 9c3f 82a7 04b8 19b9 6547     ......?.......Ge
 
-  803b95c:	de64 9579 04cb acd9 7e13 43e4 0254 e120     d.y......~.CT. .
 
-  803b96c:	5cf3 4d01 84d8 6326 b411 f6cc 1059 cf08     .\.M..&c....Y...
 
-  803b97c:	9c10 026a e1c4 0b08 b89a ddc8 ddbb 106e     ..j...........n.
 
-  803b98c:	068c 7a76 9fc1 c7e4 cb32 b1a0 cf21 9953     ..vz....2...!.S.
 
-  803b99c:	62e4 5e28 972b c2d4 1048 2828 4723 db16     .b(^+...H.((#G..
 
-  803b9ac:	65dd 003a b9e3 1c2d cfa7 0b40 2077 c675     .e:...-...@.w u.
 
-  803b9bc:	7936 6594 2332 b38e b730 b84a 5bcd 40b1     6y.e2#..0.J..[.@
 
-  803b9cc:	3f39 9995 b509 cc91 0dec 6ac8 34a2 9a3f     9?.........j.4?.
 
-  803b9dc:	d71f 8708 07a0 0d0b bf8d d059 d9f5 e841     ..........Y...A.
 
-  803b9ec:	22c5 ab19 cf89 1d3a 3c27 2f63 083c 347e     ."....:.'<c/<.~4
 
-  803b9fc:	b983 029e 0458 c6f0 0c26 3ae6 0b5f f2a0     ....X...&..:_...
 
-  803ba0c:	8534 f7b4 d270 a503 28b2 142c 4962 87cb     4...p....(,.bI..
 
-  803ba1c:	5853 8ef0 1e3d 9b69 9a00 f061 22fc 6c52     SX..=.i...a.."Rl
 
-  803ba2c:	f262 e684 d082 6698 9cd3 b5f4 1e5c 70ac     b......f....\..p
 
-  803ba3c:	4263 89f3 c397 f05b 27fd 01c4 f960 38fa     cB....[..'..`..8
 
-  803ba4c:	6c43 1d73 0060 3862 dce4 5a67 cf0a 51e6     Cls.`.b8..gZ...Q
 
-  803ba5c:	1692 820a f640 9b30 313f 885f 758d 4cba     ....@.0.?1_..u.L
 
-  803ba6c:	34c4 892a 32be 0d3f a2c5 0417 606c 46f4     .4*..2?.....l`.F
 
-  803ba7c:	b508 d4ee ede8 fd92 711e 1ffa 01a0 a2c9     .........q......
 
-  803ba8c:	28e5 52a8 1a65 c150 ce18 7e65 babb 3498     .(.Re.P...e~...4
 
-  803ba9c:	c984 fac2 beaa 0b05 4ed5 70e5 3f13 b560     .........N.p.?`.
 
-  803baac:	389b 64dc 88a4 9d80 17f1 4b35 8e00 6468     .8.d......5K..hd
 
-  803babc:	000b 105e a750 87c2 1122 a339 c0a9 403a     ..^.P...".9...:@
 
-  803bacc:	516f 12ae e4d2 2e2b eb5a ac66 2469 80f3     oQ....+.Z.f.i$..
 
-  803badc:	4876 3a40 6f15 2468 c3b3 7d6e ceae 87cf     vH@:.oh$..n}....
 
-  803baec:	7f88 0be4 87f8 3640 e85b 3030 9cbf a7ce     ......@6[.00....
 
-  803bafc:	baf7 dbdd b6ec 2e46 0797 43bc 4b7c 4ebc     ......F....C|K.N
 
-  803bb0c:	fbe1 cb5c 94f4 fcfc 7864 808a c649 b3b6     ..\.....dx..I...
 
-  803bb1c:	c158 332a 0856 a378 1adb c11e 9b74 5aa4     X.*3V.x.....t..Z
 
-  803bb2c:	46c9 70f4 b852 b756 7d67 1341 77ab e7ff     .F.pR.V.g}A..w..
 
-  803bb3c:	ab5d eddb bfeb 0b3d f9c7 2bad d143 4e2f     ].....=....+C./N
 
-  803bb4c:	3f9f 0db3 953e e257 ff3e a13f 0193 3416     .?..>.W.>.?....4
 
-  803bb5c:	4016 a465 ad3c e5bd e8a1 32a4 9db5 2e01     .@e.<......2....
 
-  803bb6c:	2031 fc7d 9777 bcf8 b244 ad12 8745 84bc     1 }.w...D...E...
 
-  803bb7c:	ecbd d8da 634e 8361 2073 2f7e e956 a340     ....Nca.s ~/V.@.
 
-  803bb8c:	f0ae 5981 1d7c d0b3 ad11 1661 d81d d022     ...Y|.....a...".
 
-  803bb9c:	4126 ce99 6172 f26b b306 3e50 604b ae42     &A..rak...P>K`B.
 
-  803bbac:	8802 8ac0 06be ab8e cc91 1362 cec1 499f     ..........b....I
 
-  803bbbc:	8d15 a8e6 442c 8565 55c0 a09b 8927 0850     ....,De..U..'.P.
 
-  803bbcc:	0513 e77f 4b2f 454c 1969 c818 597b a06f     ..../KLEi...{Yo.
 
-  803bbdc:	41b3 3b8e 8dfd 1455 2854 0284 5bd6 c917     .A.;..U.T(...[..
 
-  803bbec:	2cc5 6262 945f 38f8 3f28 9a5f 5acf dad2     .,bb_..8(?_..Z..
 
-  803bbfc:	255a 51a7 ea1a 497d 3a33 51d5 5ce0 6056     Z%.Q..}I3:.Q.\V`
 
-  803bc0c:	5f84 461a 6eac 4abf ea94 da2e c96f 3534     ._.F.n.J....o.45
 
-  803bc1c:	6318 def5 39b1 cbcd bbbd f737 94c4 f146     .c...9....7...F.
 
-  803bc2c:	39a2 0b98 4d16 3c69 4794 4251 b9b3 c006     .9...Mi<.GQB....
 
-  803bc3c:	30f2 1e9b 221e 90c5 551e dc6e d96d 3438     .0..."...Un.m.84
 
-  803bc4c:	43c4 b0f9 6ee4 2cb8 32e3 0e74 48b8 819b     .C...n.,.2t..H..
 
-  803bc5c:	fa85 bd04 4b8a 50e9 8160 666e e33c c12c     .....K.P`.nf<.,.
 
-  803bc6c:	bd07 d77e 30af 1d82 841c 7e8d cb34 dce8     ..~..0.....~4...
 
-  803bc7c:	9ef0 5cd0 2877 3b86 6a0c 8481 5d85 a1d2     ...\w(.;.j...]..
 
-  803bc8c:	2a2e 6b2d f62f 62f4 a9cf 6e85 bc2a ed79     .*-k/..b...n*.y.
 
-  803bc9c:	8af0 9a21 3156 c264 2aa7 47c9 75f2 b6a9     ..!.V1d..*.G.u..
 
-  803bcac:	d941 6008 9ae4 325f a5d5 0f23 41c2 bfd8     A..`.._2..#..A..
 
-  803bcbc:	b85c 2a64 9cf2 058e 1289 bdab 757f b765     \.d*.........ue.
 
-  803bccc:	bd3f 2c8a 1b20 f467 c7ad 8e22 f5a5 992b     ?.., .g..."...+.
 
-  803bcdc:	7cc5 2507 848b 2663 d463 0fdb ac08 02c8     .|.%..c&c.......
 
-  803bcec:	49f2 7bb7 feff 7bbd 559a b8a1 147f 8af3     .I.{...{.U......
 
-  803bcfc:	ec10 11a3 4f7a e497 7913 a1f1 3533 a04d     ....zO...y..35M.
 
-  803bd0c:	1bbb 6452 87f1 4188 ec12 9cf4 2b45 cb05     ..Rd...A....E+..
 
-  803bd1c:	ef0e aaea a4b5 bbfb 2bab eed2 b6e5 dc77     .........+....w.
 
-  803bd2c:	ea30 5b87 c741 a07d c783 334b a4a9 6eee     0..[A.}...K3...n
 
-  803bd3c:	8a90 bc5c 3e7e f702 9d96 8ea0 d280 61e3     ..\.~>.........a
 
-  803bd4c:	5e10 755d 9557 6aaf ea22 e4fe f430 4b9d     .^]uW..j"...0..K
 
-  803bd5c:	38d4 deed 10b3 ae65 73a9 dfa1 84e9 7955     .8....e..s....Uy
 
-  803bd6c:	efdb ca2d ae7e ad6a 1ddb 7377 739e 1f59     ..-.~.j...ws.sY.
 
-  803bd7c:	d16d 9d26 5eec 90f7 480e 0317 7109 b43a     m.&..^...H...q:.
 
-  803bd8c:	d009 4310 dd5c 5374 d43b ac58 a02b 38ed     ...C\.tS;.X.+..8
 
-  803bd9c:	e21d f421 a5cb f413 1399 e9db caf4 4355     ..!...........UC
 
-  803bdac:	8bf6 8e22 8d7f 0049 c4cb 515a 963e 9645     .."...I...ZQ>.E.
 
-  803bdbc:	ee1b 6afe 24ed d04a 6d42 9eae b40a 5c84     ...j.$J.Bm.....\
 
-  803bdcc:	2eaf 1e4c 19d7 ab56 a75f 7728 5045 0ad7     ..L...V._.(wEP..
 
-  803bddc:	a29f 5d35 4b95 dae8 581e cdd0 f661 e508     ..5].K...X..a...
 
-  803bdec:	d46b 5ca0 d1cd ca6b b294 cd48 a003 0a2c     k..\..k...H...,.
 
-  803bdfc:	2d76 a804 d06f 2cbe a8eb b7e6 ac1b 3a71     v-..o..,......q:
 
-  803be0c:	c4f7 b767 5d79 7e92 132b 7cf1 0234 4398     ..g.y].~+..|4..C
 
-  803be1c:	e04d d882 68e7 5bc4 f692 6b59 ddbc cfae     M....h.[..Yk....
 
-  803be2c:	6a47 4cdd a6c1 2d34 b616 57e3 29e1 3d13     Gj.L..4-...W.).=
 
-  803be3c:	b481 8cdd 5980 f20b ed9d be51 0bbb 63cf     .....Y....Q....c
 
-  803be4c:	95bf b425 1350 e034 0406 2f5b 9b09 d057     ..%.P.4...[/..W.
 
-  803be5c:	3f43 e50a 17d6 3303 b3df dbad cd14 f31b     C?.....3........
 
-  803be6c:	e1ca 15ea d19d 659c aa51 33fa 7119 ebbb     .......eQ..3.q..
 
-  803be7c:	c4f8 ad65 9fc9 ff2c f182 0ffe e798 b7bf     ..e...,.........
 
-  803be8c:	d26c 2969 e85b 1b11 4b71 cd1c 1321 b6d3     l.i)[...qK..!...
 
-  803be9c:	99a3 33d6 0623 4063 3569 1224 b57c e786     ...3#.c@i5$.|...
 
-  803beac:	7272 8bd4 bf28 57ab b80b f36c 6319 70b1     rr..(..W..l..c.p
 
-  803bebc:	5037 2d74 23d9 61b5 9df8 255b 4716 d9dc     7Pt-.#.a..[%.G..
 
-  803becc:	5ddd 6543 680d ac37 e5ba 067d 1b7a 88de     .]Ce.h7...}.z...
 
-  803bedc:	a143 da96 e989 f639 2475 a363 e50c b290     C.....9.u$c.....
 
-  803beec:	71f3 0b26 bd3c 2c68 192f caab 55e1 bdc8     .q&.<.h,/....U..
 
-  803befc:	3622 bd88 b24e 67c2 b8d3 776d 5a68 dbb6     "6..N..g..mwhZ..
 
-  803bf0c:	a7a1 aa19 72f1 525d 7755 d86e ad70 7998     .....r]RUwn.p..y
 
-  803bf1c:	eac0 3eba f2af c375 980c 94ab 9919 fb58     ...>..u.......X.
 
-  803bf2c:	a1f2 2c4a dbfc 7ae7 cd46 a3f6 2664 2532     ..J,...zF...d&2%
 
-  803bf3c:	76b8 5b7c b225 56fc 0a07 6e5e 65fe 7e9e     .v|[%..V..^n.e.~
 
-  803bf4c:	c7be d0ab eb9b 693f 6432 6b6b a9c6 05a2     ......?i2dkk....
 
-  803bf5c:	71d3 846b 23df 359d 41af 0edb 73d9 f0f7     .qk..#.5.A...s..
 
-  803bf6c:	b09c 5ae7 ca45 8101 6a29 83b0 5fe0 158f     ...ZE...)j..._..
 
-  803bf7c:	2ce6 a42a ba06 ba98 31ed 309a 1f11 db99     .,*......1.0....
 
-  803bf8c:	7794 70c6 e5b0 6e69 6775 aefe 5f3b 2cd0     .w.p..inug..;_.,
 
-  803bf9c:	3741 bad9 6eb4 3568 4d92 8669 8997 62a7     A7...nh5.Mi....b
 
-  803bfac:	02a4 b3f2 7114 37c1 f1ac 5877 3fe2 b7cb     .....q.7..wX.?..
 
-  803bfbc:	c378 4efa fe6f 360f af28 cbf1 b68f 4604     x..No..6(......F
 
-  803bfcc:	d5f6 432d e7c9 e4c8 ae1c 123a ef98 ca04     ..-C......:.....
 
-  803bfdc:	fade d326 860f 24cf b917 b979 e11a e2fd     ..&....$..y.....
 
-  803bfec:	6249 6937 bce4 0537 9b4d 91bb 2d83 0ade     Ib7i..7.M....-..
 
-  803bffc:	9ac5 7f15 f0fd 4c4c 4ce5 6f94 7896 5ad6     ......LL.L.o.x.Z
 
-  803c00c:	fff8 8b05 d809 5f38 0015 2f00                    ......8_...
 
- 0803c017 <data__login_html>:
 
-  803c017:	6c2f 676f 6e69 682e 6d74 006c 5448 5054     /login.html.HTTP
 
-  803c027:	312f 312e 3220 3030 4f20 0d4b 530a 7265     /1.1 200 OK..Ser
 
-  803c037:	6576 3a72 6c20 4977 2f50 2e31 2e33 2031     ver: lwIP/1.3.1 
 
-  803c047:	6828 7474 3a70 2f2f 6173 6176 6e6e 6861     (http://savannah
 
-  803c057:	6e2e 6e6f 6e67 2e75 726f 2f67 7270 6a6f     .nongnu.org/proj
 
-  803c067:	6365 7374 6c2f 6977 2970 0a0d 6f43 746e     ects/lwip)..Cont
 
-  803c077:	6e65 2d74 654c 676e 6874 203a 3835 0d37     ent-Length: 587.
 
-  803c087:	430a 6e6f 656e 7463 6f69 3a6e 4320 6f6c     .Connection: Clo
 
-  803c097:	6573 0a0d 6f43 746e 6e65 2d74 7974 6570     se..Content-type
 
-  803c0a7:	203a 6574 7478 682f 6d74 0d6c 430a 6e6f     : text/html..Con
 
-  803c0b7:	6574 746e 452d 636e 646f 6e69 3a67 6720     tent-Encoding: g
 
-  803c0c7:	697a 0d70 0d0a 1f0a 088b 0000 0000 0400     zip.............
 
-  803c0d7:	7d0a cd54 d46e 1030 157e 2463 754e 7bb7     .}T.n.0.~.c$Nu.{
 
-  803c0e7:	a841 91c4 e950 1381 401c a382 cc93 5c6e     A...P....@....n\
 
-  803c0f7:	db1c 93d8 eeec e2ad 09c0 c409 2415 015e     .............$^.
 
-  803c107:	03d1 8845 433e 8df6 2718 6ddb a423 e21e     ..E.>C...'.m#...
 
-  803c117:	d8f5 e333 67ef d9b4 a7bd 4fcf be5e 7179     ..3..g.....O^.yq
 
-  803c127:	6aca 4c6c a59e 1995 9765 7392 408a 7955     .jlL....e..s.@Uy
 
-  803c137:	00d6 562a 2ad6 4044 5bc9 885c 7447 9c37     ..*V.*D@.[\.Gt7.
 
-  803c147:	88d6 c05e 56bb 9277 16bf 9eaf 1388 78d7     ..^..Vw........x
 
-  803c157:	ba85 c030 e959 822c 92a5 a767 aa12 5c25     ..0.Y.,...g...%\
 
-  803c167:	5917 80d5 9de4 9586 0177 e56f 74ad b585     .Y......w.o..t..
 
-  803c177:	a0ac 25d3 2188 d038 a356 4656 52c4 9019     ...%.!8.V.VF.R..
 
-  803c187:	83f3 ad46 d375 fb36 8db8 8610 d140 f293     ..F.u.6.....@...
 
-  803c197:	9e88 8d40 f206 5bfe d57f edff b72f fbef     ..@....[..../...
 
-  803c1a7:	edab 7f79 fb49 6c8b de36 4665 b7db 0eac     ..y.I..l6.eF....
 
-  803c1b7:	90b0 51bc 1eda 3196 1672 48c0 711e 2063     ...Q...1r..H.qc 
 
-  803c1c7:	00d6 9d48 1962 47b4 1b86 704f d611 3b38     ..H.b..G..Op..8;
 
-  803c1d7:	9d53 4f1a 8b39 94a1 383c 8703 9167 6792     S..O9...<8..g..g
 
-  803c1e7:	39e3 466d 0ad1 6d57 acf2 1dd2 8d2b 518a     .9mF..Wm....+..Q
 
-  803c1f7:	ab72 42ba 3605 88fe 160a 35aa 1d78 f42e     r..B.6.....5x...
 
-  803c207:	2a1a ce81 a753 6aff ea44 6108 cabc b533     .*..S..jD..a..3.
 
-  803c217:	7e83 949f 5b1b b71b 0974 a282 aa8f eba7     .~...[..t.......
 
-  803c227:	76ad a0ab a7bc 4c46 9257 dcef baa1 9e7a     .v....FLW.....z.
 
-  803c237:	9ff7 9ffb a97b f57e b63f 481f 4fba 65c4     ....{.~.?..H.O.e
 
-  803c247:	c13e 95e3 c305 f586 c19a f014 9578 d3b8     >...........x...
 
-  803c257:	c2f9 8685 12a9 b3b5 1392 a4c6 52f4 4673     .............RsF
 
-  803c267:	5393 423b 5de0 ee4c 39ef 2b68 0952 1a55     .S;B.]L..9h+R.U.
 
-  803c277:	d055 143b eaec de78 257f 2f3f 8f92 0fc7     U.;...x..%?/....
 
-  803c287:	116c e3fd 366c e524 b699 bdbe d26d 63be     l...l6$.....m..c
 
-  803c297:	25ea 4b12 8932 d093 e869 1406 ff23 96dd     .%.K2...i...#...
 
-  803c2a7:	ca06 5d80 dcd2 f9f1 7243 0d35 1a40 408b     ...]....Cr5.@..@
 
-  803c2b7:	4570 cbd0 8f1a fcd9 afc8 a8a7 593c a04a     pE..........<YJ.
 
-  803c2c7:	93be e752 ec04 f6cf 5de3 52b0 caf6 ea85     ..R......].R....
 
-  803c2d7:	684e 4937 9dc9 01e1 0536 b397 d909 16d8     Nh7I....6.......
 
-  803c2e7:	be8d b011 cb40 13e8 683e bf42 ace1 a653     ....@...>hB...S.
 
-  803c2f7:	2a25 17fd f802 cc9b 24bd b30a ca24 3e74     %*.......$..$.t>
 
-  803c307:	1376 ce33 6ceb 17f8 07f8 a233 8ac5 0415     v.3..l....3.....
 
-  803c317:	0000                                        ..
 
- 0803c319 <Content_Length>:
 
-  803c319:	6f43 746e 6e65 2d74 654c 676e 6874 203a     Content-Length: 
 
-  803c329:	0000 5000                                        ...
 
- 0803c32c <file__rotek_png>:
 
-  803c32c:	4c50 0804 9dee 0803 9dfa 0803 1802 0000     PL..............
 
-  803c33c:	0001 0000                                   ....
 
- 0803c340 <file__index_html>:
 
-  803c340:	4c3c 0804 c368 0803 c374 0803 04e3 0000     <L..h...t.......
 
-  803c350:	0001 0000                                   ....
 
- 0803c354 <file__main_js>:
 
-  803c354:	4680 0804 1204 0804 1210 0804 2a56 0000     .F..........V*..
 
-  803c364:	0001 0000                                   ....
 
- 0803c368 <data__index_html>:
 
-  803c368:	692f 646e 7865 682e 6d74 006c 5448 5054     /index.html.HTTP
 
-  803c378:	312f 312e 3220 3030 4f20 0d4b 530a 7265     /1.1 200 OK..Ser
 
-  803c388:	6576 3a72 6c20 4977 2f50 2e31 2e33 2031     ver: lwIP/1.3.1 
 
-  803c398:	6828 7474 3a70 2f2f 6173 6176 6e6e 6861     (http://savannah
 
-  803c3a8:	6e2e 6e6f 6e67 2e75 726f 2f67 7270 6a6f     .nongnu.org/proj
 
-  803c3b8:	6365 7374 6c2f 6977 2970 0a0d 6f43 746e     ects/lwip)..Cont
 
-  803c3c8:	6e65 2d74 654c 676e 6874 203a 3031 3937     ent-Length: 1079
 
-  803c3d8:	0a0d 6f43 6e6e 6365 6974 6e6f 203a 6c43     ..Connection: Cl
 
-  803c3e8:	736f 0d65 430a 6e6f 6574 746e 742d 7079     ose..Content-typ
 
-  803c3f8:	3a65 7420 7865 2f74 7468 6c6d 0a0d 6f43     e: text/html..Co
 
-  803c408:	746e 6e65 2d74 6e45 6f63 6964 676e 203a     ntent-Encoding: 
 
-  803c418:	7a67 7069 0a0d 0a0d 8b1f 0008 0000 0000     gzip............
 
-  803c428:	0a04 56bd 6f5d 44e3 fd14 832b 6979 baa5     ...V]o.D..+.yi..
 
-  803c438:	fba1 2084 54b6 8bba 4fb4 10ac f620 9a29     ... .T...O.. .).
 
-  803c448:	93d8 1678 ed7f 9278 6fb4 60fd 5161 8291     ..x...x..o.`aQ..
 
-  803c458:	a010 e17d 17f3 8174 9a40 dda6 30bf 47fe     ..}...t.@....0.G
 
-  803c468:	3b9c bb8e 3521 5961 7d89 93b0 e7b1 7bde     .;..!5aY.}.....{
 
-  803c478:	b9ee 5ee7 fb4f dbb5 edef 707d deff 161d     ...^O.....}p....
 
-  803c488:	24e9 dbf6 6774 4f31 9efb 60e3 7825 b7e8     .$..tg1O...`%x..
 
-  803c498:	a113 0b39 ae22 a10a 673d 7ba0 9bee 6778     ..9."...=g.{..xg
 
-  803c4a8:	469f e75a 78ae 9038 cf43 d8f9 70fd ddd7     .FZ..x8.C....p..
 
-  803c4b8:	92cb 6b9c 8dd9 c385 2c82 22d5 c985 3bdd     ...k.....,."...;
 
-  803c4c8:	089e a2fb 4a36 2279 673c c528 cf28 5e94     ....6Jy"<g(.(..^
 
-  803c4d8:	37da a192 bc8e 0c50 2065 bb5c 92d8 d4a9     .7....P.e \.....
 
-  803c4e8:	c792 116e 58f0 3b78 095b 97df 20c9 5eb9     ..n..Xx;[.... .^
 
-  803c4f8:	0a0f eca1 2382 f7a4 4206 a968 e163 1f9b     .....#...Bh.c...
 
-  803c508:	59cd 6879 ccce 4cdc e3ca b0f2 6d3c aab7     .Yyh...L....<m..
 
-  803c518:	ed37 a658 b09f 8948 e79e 5c24 dba6 5141     7.X...H...$\..AQ
 
-  803c528:	4c38 d889 0a73 107d 228b 4212 4fc3 2811     8L..s.}..".B.O.(
 
-  803c538:	6b99 0fa6 8072 62d5 b75f f01e af21 3a9e     .k..r..b_...!..:
 
-  803c548:	50ac e781 2ca8 db16 0a0f 6e6c cf55 a7f1     .P...,....lnU...
 
-  803c558:	aca2 859b 7e07 943b 1643 bcc4 3c28 e527     .....~;.C...(<'.
 
-  803c568:	2ec3 ac57 71fa d143 83e3 d758 9ecb 17dc     ..W..qC...X.....
 
-  803c578:	aba1 1cb3 6e9e b8d8 51e4 eaa8 df95 0be6     .....n...Q......
 
-  803c588:	32e8 c50d 36fe 0b95 5604 e231 9fac 1611     .2...6...V1.....
 
-  803c598:	0b8e ea6e 6d7b baf1 64c3 9c88 3a45 2570     ..n.{m...d..E:p%
 
-  803c5a8:	b36a 3ad8 6b88 807b 11ab 6fe1 9bb5 f8fe     j..:.k{....o....
 
-  803c5b8:	6ca0 606d 681e 4439 9b79 2748 6430 ecbe     .lm`.h9Dy.H'0d..
 
-  803c5c8:	3a02 32d2 17ed 7c15 7cdf 5a8f 511d cc95     .:.2...|.|.Z.Q..
 
-  803c5d8:	3995 3337 ad33 5872 9335 2f69 4dab 989e     .9733.rX5.i/.M..
 
-  803c5e8:	f2cb 7353 9305 8c39 333f 72d3 6cdc c914     ..Ss..9.?3.r.l..
 
-  803c5f8:	6742 a0ea fbb6 3cae cd81 8425 f171 7f7c     Bg.....<..%.q.|.
 
-  803c608:	006b 57e5 2d94 3fd1 3c52 41cf 65bc a16d     k..W.-.?R<.A.em.
 
-  803c618:	7065 ed11 e634 c789 b5cb 79cb 622a ef66     ep..4......y*bf.
 
-  803c628:	b575 bb61 bde4 457a 05b5 5513 e28c 365e     u.a...zE...U..^6
 
-  803c638:	42a2 279b 06c4 fb92 401c 66a7 ccc6 e433     .B.'.....@.f..3.
 
-  803c648:	0c77 58cc 4f22 42f2 cc95 cd0b e8b5 2d50     w..X"O.B......P-
 
-  803c658:	60a1 5e2b e9cf 19c5 6fd7 2531 11fb 78a9     .`+^.....o1%...x
 
-  803c668:	0859 a237 4a93 47b1 ef53 22d4 16a8 ebba     Y.7..J.GS.."....
 
-  803c678:	7392 a97a 8570 f9be 7cba ea84 0efc 5708     .sz.p....|.....W
 
-  803c688:	c266 832c d0cf 6356 87f3 5899 1398 f1b6     f.,...Vc...X....
 
-  803c698:	eed1 26de 0cda 8323 02ae 5a29 bb9c 047b     ...&..#...)Z..{.
 
-  803c6a8:	9684 a1f8 2d37 f4eb f1da cbe9 bebb 2ffd     ....7-........./
 
-  803c6b8:	6bae 67cc 98e5 4e81 332b 0b10 1b2e ca70     .k.g...N+3....p.
 
-  803c6c8:	d3b4 e253 3361 9ad8 489f a186 dea0 48a9     ..S.a3...H.....H
 
-  803c6d8:	8e79 85fd 6442 bd03 4626 14e5 60dd 037e     y...Bd..&F...`~.
 
-  803c6e8:	27b5 4fe6 42f4 d013 447c e0e3 191f 05fd     .'.O.B..|D......
 
-  803c6f8:	9915 e741 405f e73c 720c a09f 5348 6f33     ..A._@<..r..HS3o
 
-  803c708:	3948 b24f e690 8372 c6af d184 d076 3400     H9O...r.....v..4
 
-  803c718:	3759 031d 5fd8 38b1 58a4 49e8 c1f0 23ca     Y7..._.8.X.I...#
 
-  803c728:	2b92 dbf0 34c6 0de7 7971 55cc 14d2 65b7     .+...4..qy.U...e
 
-  803c738:	07f5 1040 7d6b d55f 7fed ab6d b877 42d6     ..@.k}_...m.w..B
 
-  803c748:	e941 2be6 0700 6633 eb8e 1ca2 26db 34c3     A..+..3f.....&.4
 
-  803c758:	4f28 d249 814f c217 7cb0 af4d ac9b 2afb     (OI.O....|M....*
 
-  803c768:	ec9b 4c5b 19b3 49f4 f0c3 55cb 3744 ab1b     ..[L...I...UD7..
 
-  803c778:	75cb e027 d5f4 a868 42df c8a1 c4ee 568e     .u'...h..B.....V
 
-  803c788:	d2ea e44b 468c 8638 e622 2a18 e413 9c8a     ..K..F8."..*....
 
-  803c798:	48ed d26c 4c99 a153 5a3a 6b24 fc43 a760     .Hl..LS.:Z$kC.`.
 
-  803c7a8:	6415 3e50 df86 5609 8663 c905 4e6e e8d1     .dP>...Vc...nN..
 
-  803c7b8:	fc2b 9a94 7ece 5783 0387 a0e5 2265 b13a     +....~.W....e":.
 
-  803c7c8:	d9e8 b581 273a 07fe 4045 3f09 e923 d047     ....:'..E@.?#.G.
 
-  803c7d8:	ea2c c20e 0c41 d78d c599 8f58 f0d7 5655     ,...A.....X...UV
 
-  803c7e8:	1bfe ccb4 0011 3580 2140 9e45 8913 7e76     .......5@!E...v~
 
-  803c7f8:	f435 284f d677 fd55 7027 817f 76cb e564     5.O(w.U.'p...vd.
 
-  803c808:	3169 d8a8 834e 9537 acbd 5bb7 de8d 356e     i1..N.7....[..n5
 
-  803c818:	6b61 e3aa cba2 d3ab 0bd2 b81c 79ec efed     ak...........y..
 
-  803c828:	ae07 56b5 c87e 7f35 c717 bba7 c6e9 56e6     ...V~.5........V
 
-  803c838:	15ce 8a4f 05f7 7c86 6d11 be6c ae8d 67b1     ..O....|.ml....g
 
-  803c848:	b43c 3d8f fefc 4905 2b6e 0ce6 000b 2f00          <..=...In+.....
 
- 0803c857 <data__favicon_ico>:
 
-  803c857:	662f 7661 6369 6e6f 692e 6f63 0000 0000     /favicon.ico....
 
-  803c867:	5448 5054 312f 312e 3220 3030 4f20 0d4b     HTTP/1.1 200 OK.
 
-  803c877:	530a 7265 6576 3a72 6c20 4977 2f50 2e31     .Server: lwIP/1.
 
-  803c887:	2e33 2031 6828 7474 3a70 2f2f 6173 6176     3.1 (http://sava
 
-  803c897:	6e6e 6861 6e2e 6e6f 6e67 2e75 726f 2f67     nnah.nongnu.org/
 
-  803c8a7:	7270 6a6f 6365 7374 6c2f 6977 2970 0a0d     projects/lwip)..
 
-  803c8b7:	6f43 746e 6e65 2d74 654c 676e 6874 203a     Content-Length: 
 
-  803c8c7:	3131 3035 0a0d 6f43 6e6e 6365 6974 6e6f     1150..Connection
 
-  803c8d7:	203a 6c43 736f 0d65 430a 6e6f 6574 746e     : Close..Content
 
-  803c8e7:	742d 7079 3a65 6920 616d 6567 782f 692d     -type: image/x-i
 
-  803c8f7:	6f63 0d6e 430a 6361 6568 432d 6e6f 7274     con..Cache-Contr
 
-  803c907:	6c6f 203a 7270 7669 7461 2c65 6d20 7861     ol: private, max
 
-  803c917:	612d 6567 383d 3436 3030 0a0d 0a0d 0000     -age=86400......
 
-  803c927:	0001 0001 1010 0000 0000 0020 0468 0000     .......... .h...
 
-  803c937:	0016 0000 0028 0000 0010 0000 0020 0000     ....(....... ...
 
-  803c947:	0001 0020 0000 0000 0440 0000 0000 0000     .. .....@.......
 
-  803c957:	0000 0000 0000 0000 0000 0000 ffff 01ff     ................
 
-  803c967:	ffff 01ff ffff 01ff ffff 01ff ffff 01ff     ................
 
-  803c977:	ffff 01ff ffff 01ff d2d2 ffd2 d2d2 ffd2     ................
 
-  803c987:	ffff 01ff ffff 01ff ffff 01ff ffff 01ff     ................
 
-  803c997:	ffff 01ff ffff 01ff ffff 01ff ffff 01ff     ................
 
-  803c9a7:	ffff 01ff ffff 01ff ffff 01ff ffff 01ff     ................
 
-  803c9b7:	8d8d ff8d 8484 ff84 8989 ff89 8989 ff89     ................
 
-  803c9c7:	8484 ff84 8d8d ff8d ffff 01ff ffff 01ff     ................
 
-  803c9d7:	ffff 01ff ffff 01ff ffff 01ff ffff 01ff     ................
 
-  803c9e7:	ffff 01ff ffff 01ff a4a4 ffa4 8484 ff84     ................
 
-  803c9f7:	aeae ffae ffff 01ff ffff 01ff ffff 01ff     ................
 
-  803ca07:	ffff 01ff aeae ffae 8484 ff84 a4a4 ffa4     ................
 
-  803ca17:	ffff 01ff ffff 01ff 8181 ff81 ffff 01ff     ................
 
-  803ca27:	ffff 01ff a0a0 ffa0 9a9a ff9a ffff 01ff     ................
 
-  803ca37:	c7c7 ffc7 8f8f ff8f 8585 ff85 8585 ff85     ................
 
-  803ca47:	8f8f ff8f caca ffca ffff 01ff d5d5 ffd5     ................
 
-  803ca57:	ffff 01ff 7777 ff77 ffff 01ff ffff 01ff     ....www.........
 
-  803ca67:	d5d5 ffd5 8484 ff84 ffff 01ff a8a8 ffa8     ................
 
-  803ca77:	8c8c ff8c bbbb ffbb ffff 01ff ffff 01ff     ................
 
-  803ca87:	baba ffba afaf ffaf ffff 01ff ffff 01ff     ................
 
-  803ca97:	6465 ff5b ffff 01ff ffff 01ff ffff 01ff     ed[.............
 
-  803caa7:	9898 ff98 b0b0 ffb0 d5d5 ffd5 8484 ff84     ................
 
-  803cab7:	dada ffda 9595 ff95 8484 ff84 9d9d ff9d     ................
 
-  803cac7:	d7d7 ffd7 ffff 01ff 9898 ff97 7a7b ff73     ............{zs.
 
-  803cad7:	cedb ff79 c0d2 ff55 ffff 01ff ffff 01ff     ..y...U.........
 
-  803cae7:	9393 ff93 ffff 01ff a4a4 ffa4 bebe ffbe     ................
 
-  803caf7:	bdbd ffbd d1d1 ffd1 ffff 01ff ffff 01ff     ................
 
-  803cb07:	b4b5 ffae 5f5f ff5d 979d ff6b c0d2 ff55     ....__]...k...U.
 
-  803cb17:	ffff 01ff b5c9 ff35 ffff 01ff ffff 01ff     ......5.........
 
-  803cb27:	f0f0 fff0 ffff 01ff f1f1 fff1 ffff 01ff     ................
 
-  803cb37:	d5d5 ffd5 cfd0 ffce 8585 ff85 6060 ff60     ............```.
 
-  803cb47:	9194 ff85 b5ca ff37 ffff 01ff b9cc ff41     ......7.......A.
 
-  803cb57:	ffff 01ff b4c9 ff33 ffff 01ff 6262 ff62     ......3.....bbb.
 
-  803cb67:	5d5e ff5c 5c5c ff5c 5d5e ff5c 6161 ff60     ^]\.\\\.^]\.aa`.
 
-  803cb77:	6567 ff5b 8486 ff7b ffff 01ff ffff 01ff     ge[...{.........
 
-  803cb87:	ffff 01ff b5ca ff37 ffff 01ff b9cc ff41     ......7.......A.
 
-  803cb97:	ffff 01ff b4c9 ff33 ffff 01ff ffff 01ff     ......3.........
 
-  803cba7:	b5c9 ff35 ffff 01ff c0d2 ff55 ffff 01ff     ..5.......U.....
 
-  803cbb7:	c4d4 ff5e c3d4 ff5c ffff 01ff ffff 01ff     ..^...\.........
 
-  803cbc7:	c3d4 ff5c c4d4 ff5e cedb ff79 c0d2 ff55     ..\...^...y...U.
 
-  803cbd7:	ffff 01ff b5c9 ff35 ffff 01ff ffff 01ff     ......5.........
 
-  803cbe7:	c0d1 ff54 cfdc ff7d ffff 01ff b4c9 ff33     ..T...}.......3.
 
-  803cbf7:	ffff 01ff bed0 ff50 b4c9 ff33 b4c9 ff33     ......P...3...3.
 
-  803cc07:	c0d2 ff55 ffff 01ff b4c9 ff33 ffff 01ff     ..U.......3.....
 
-  803cc17:	cedb ff79 c0d2 ff55 ffff 01ff ffff 01ff     ..y...U.........
 
-  803cc27:	ffff 01ff b4c9 ff33 ffff 01ff cad9 ff6f     ......3.......o.
 
-  803cc37:	b9cc ff41 d6e1 ff8f ffff 01ff ffff 01ff     ..A.............
 
-  803cc47:	d5e0 ff8c b9cc ff40 cedb ff79 ffff 01ff     ......@...y.....
 
-  803cc57:	b4c9 ff33 ffff 01ff ffff 01ff ffff 01ff     ..3.............
 
-  803cc67:	ffff 01ff c5d5 ff62 c1d2 ff58 ffff 01ff     ......b...X.....
 
-  803cc77:	ffff 01ff bbce ff46 b5c9 ff35 b5c9 ff35     ......F...5...5.
 
-  803cc87:	bbce ff46 ffff 01ff ffff 01ff c0d2 ff55     ..F...........U.
 
-  803cc97:	c5d5 ff62 ffff 01ff ffff 01ff ffff 01ff     ..b.............
 
-  803cca7:	ffff 01ff ffff 01ff c8d7 ff69 b4c9 ff33     ..........i...3.
 
-  803ccb7:	cedb ff79 ffff 01ff ffff 01ff ffff 01ff     ..y.............
 
-  803ccc7:	ffff 01ff cedb ff79 b4c9 ff33 c8d7 ff69     ......y...3...i.
 
-  803ccd7:	ffff 01ff ffff 01ff ffff 01ff ffff 0dff     ................
 
-  803cce7:	ffff 01ff ffff 01ff ffff 01ff ffff 01ff     ................
 
-  803ccf7:	b9cd ff42 b4c9 ff33 b7cb ff3b b7cb ff3b     ..B...3...;...;.
 
-  803cd07:	b4c9 ff33 b9cd ff42 ffff 01ff ffff 01ff     ..3...B.........
 
-  803cd17:	ffff 01ff ffff 01ff ffff 01ff ffff 01ff     ................
 
-  803cd27:	ffff 01ff ffff 01ff ffff 01ff ffff 01ff     ................
 
-  803cd37:	ffff 01ff ffff 01ff e4eb ffb5 e4eb ffb5     ................
 
-  803cd47:	ffff 01ff ffff 01ff ffff 01ff ffff 01ff     ................
 
-  803cd57:	ffff 01ff ffff 01ff ffff 01ff 0000 ffff     ................
 
-  803cd67:	0000 ffff 0000 ffff 0000 ffff 0000 ffff     ................
 
-  803cd77:	0000 ffff 0000 ffff 0000 ffff 0000 ffff     ................
 
-  803cd87:	0000 ffff 0000 ffff 0000 ffff 0000 ffff     ................
 
-  803cd97:	0000 ffff 0000 ffff 0000 ffff               ............
 
- 0803cda3 <data__settings_html>:
 
-  803cda3:	732f 7465 6974 676e 2e73 7468 6c6d 0000     /settings.html..
 
-  803cdb3:	5448 5054 312f 312e 3220 3030 4f20 0d4b     HTTP/1.1 200 OK.
 
-  803cdc3:	530a 7265 6576 3a72 6c20 4977 2f50 2e31     .Server: lwIP/1.
 
-  803cdd3:	2e33 2031 6828 7474 3a70 2f2f 6173 6176     3.1 (http://sava
 
-  803cde3:	6e6e 6861 6e2e 6e6f 6e67 2e75 726f 2f67     nnah.nongnu.org/
 
-  803cdf3:	7270 6a6f 6365 7374 6c2f 6977 2970 0a0d     projects/lwip)..
 
-  803ce03:	6f43 746e 6e65 2d74 654c 676e 6874 203a     Content-Length: 
 
-  803ce13:	3434 3738 0a0d 6f43 6e6e 6365 6974 6e6f     4487..Connection
 
-  803ce23:	203a 6c43 736f 0d65 430a 6e6f 6574 746e     : Close..Content
 
-  803ce33:	742d 7079 3a65 7420 7865 2f74 7468 6c6d     -type: text/html
 
-  803ce43:	0a0d 6f43 746e 6e65 2d74 6e45 6f63 6964     ..Content-Encodi
 
-  803ce53:	676e 203a 7a67 7069 0a0d 0a0d 8b1f 0008     ng: gzip........
 
-  803ce63:	0000 0000 0a04 5bdd 736b d51b fe19 cb2b     .......[ks....+.
 
-  803ce73:	3286 d8f2 2d92 205f 2c71 da75 6524 5332     .2...-_ q,u.$e2S
 
-  803ce83:	8788 0538 793e d2d6 5ada ed22 d58a 4eca     ..8.>y...Z"....N
 
-  803ce93:	c99a 2e4c d2d0 8521 8424 50c2 0848 7ebd     ..L...!.$..PH..~
 
-  803cea3:	35a1 e6e4 f95c ab0b d47f 79e7 d9cf a49b     .5..\......y....
 
-  803ceb3:	e595 7ce0 87e9 bb38 3dab 7de7 7bce df7f     ...|..8..=.}.{..
 
-  803cec3:	7673 a5e9 27a3 ac8e bbbc cc7c 0468 66ad     sv...'....|.h..f
 
-  803ced3:	8975 8d7f e5a6 546e 134c b677 af55 b52e     u.....nTL.w.U...
 
-  803cee3:	c0ec 6a32 cb0d d8ef c541 06ec c5eb f883     ..2j....A.......
 
-  803cef3:	9e4d 8236 5da0 dfb4 3aef 159b 9df3 a9e2     M.6..]...:......
 
-  803cf03:	155f 788f b6ad 3815 4d6b 34db 9e6a d81b     _..x...8kM.4j...
 
-  803cf13:	862e 3f1c b156 1beb 3476 b5c8 765a dcc5     ...?V...v4..Zv..
 
-  803cf23:	ec74 b6ad 07e7 f7a9 9cb6 d07a d4a8 4ded     t.........z....M
 
-  803cf33:	66a7 e517 ca66 9d71 b1c0 c59a cd4e da6a     .f..f.q.....N.j.
 
-  803cf43:	f295 cb54 e33a bab4 f8ad dbbe 7db1 b1b9     ..T.:........}..
 
-  803cf53:	b240 0332 8112 3413 6aed 4df8 ddb8 d8bb     @.2....4.j.M....
 
-  803cf63:	d4bb 10bb 0b3e 861f c28f a59d f569 52cb     ....>.......i..R
 
-  803cf73:	71d3 1b4f df0d af5e 2d98 71cb b54b c74e     .qO...^..-.qK.N.
 
-  803cf83:	7c34 59bb 3b31 d9c1 dda6 d869 8076 3a79     4|.Y1;....i.v.y:
 
-  803cf93:	df35 0769 7046 0db6 81b0 267d 7e98 dacf     5.i.Fp....}&.~..
 
-  803cfa3:	d4b4 d353 f8e8 8ab5 7be9 bb4d 5ef4 2f07     ..S......{M..^./
 
-  803cfb3:	ab4f b8e7 2c50 f35b 67ea 4bab 6775 70d3     O...P,[..g.Kug.p
 
-  803cfc3:	15ea e6b3 dd75 b8a0 5be5 bc6d 799a f758     ....u....[m..yX.
 
-  803cfd3:	5cb6 6b3c c357 80af a9f3 fbc6 7c38 de1c     .\<kW.......8|..
 
-  803cfe3:	5deb c230 7a1f c397 b8bb 64bc 3f84 49f1     .]0..z.....d.?.I
 
-  803cff3:	2f78 107c 876e 7a77 f017 7dc3 3ddc 7a35     x/|.n.wz...}.=5z
 
-  803d003:	8c7f 307e 3a96 cb6d 114d bb74 35ad 37db     ..~0.:m.M.t..5.7
 
-  803d013:	0bab 8780 aa5f ef46 8622 c23c a7d0 dde1     ...._.F.".<.....
 
-  803d023:	d2d2 1b74 8170 0526 01a9 dbc1 56cb b3a7     ..t.p.&......V..
 
-  803d033:	f9e5 e075 f75a 96fc d561 c702 a173 060f     ..u.Z...a...s...
 
-  803d043:	de44 b0f0 b69e 21d7 8087 76fa 84f8 c228     D......!...v..(.
 
-  803d053:	026d 16dc 3f66 7dee a86a 3f27 3ef6 a2c4     m...f?.}j.'?.>..
 
-  803d063:	1aee 8fe1 bca4 7143 e5e0 bd27 06cb 8516     ......Cq..'.....
 
-  803d073:	16d7 4205 6ec7 b5da 50c0 d14a 36f4 771c     ...B.n...PJ..6.w
 
-  803d083:	d795 5aa6 0648 29d1 1b08 d2ea c004 498a     ...ZH..).......I
 
-  803d093:	456c 18aa 00a4 5e30 289b 4d8d d9ab bc85     lE....0^.(.M....
 
-  803d0a3:	6acc bd78 71f7 83f8 66f0 7487 f009 a819     .jx..q...f.t....
 
-  803d0b3:	015e 9f07 3f85 2c02 00c1 d2c5 1ab4 3fda     ^....?.,.......?
 
-  803d0c3:	3505 accb 6ff2 1bde bd56 40e5 f27a f25f     .5...o..V..@z._.
 
-  803d0d3:	b4ce 505a 6975 57cd 1cff ddb7 640d 5e35     ..ZPui.W.....d5^
 
-  803d0e3:	deb3 aade 5a9b daa7 9f11 ae87 68c8 ad37     .....Z.......h7.
 
-  803d0f3:	dd9a 10c0 afdb e198 4a77 bd72 853f e13b     ........wJr.?.;.
 
-  803d103:	34c3 afb3 0cc4 de11 3341 df9d 0183 33b3     .4......A3.....3
 
-  803d113:	9710 a675 bb69 301b b329 aafc 39a9 0c4c     ..u.i..0)....9L.
 
-  803d123:	0c20 0d8e 73e2 9161 89cf 1bef 1532 ff1c      ....sa.....2...
 
-  803d133:	d859 7f48 3634 6edf 16db 865c cab2 713d     Y.H.46.n..\...=q
 
-  803d143:	96f0 bc20 3e14 9683 2342 577a a5a8 07fb     .. ..>..B#zW....
 
-  803d153:	2dfa ac85 ad9f e80a 375a 3c08 ab57 d374     .-......Z7.<W.t.
 
-  803d163:	d8eb 4245 c22f c2a7 62de ae01 ae05 7f81     ..EB/....b......
 
-  803d173:	3ac5 fa9f c745 b4dd c0fd be86 a568 6f0e     .:..E.......h..o
 
-  803d183:	6742 bdb5 5599 4963 9629 d0a2 aee9 1cb5     Bg...UcI).......
 
-  803d193:	52fa 1c65 54d1 6e9d 66ad 5283 9732 d6e7     .Re..T.n.f.R2...
 
-  803d1a3:	4e9a 34ed 979c 741d 177d dd7e 9dae a23e     .N.4...t}.~...>.
 
-  803d1b3:	eccc a3ed 8985 97a9 59ca 3f82 5f81 30db     .........Y.?._.0
 
-  803d1c3:	e118 d419 9a66 1786 8e79 7fc4 c268 b5ae     ....f...y...h...
 
-  803d1d3:	66b9 d0f9 fe35 ac57 ebdb b756 e349 db96     .f..5.W...V.I...
 
-  803d1e3:	e775 5d8c 062f e45e 3306 8a63 9cf4 3934     u..]/.^..3c...49
 
-  803d1f3:	c87a 92ea 5da5 e3b4 edd6 2533 a586 7178     z....]....3%..xq
 
-  803d203:	7450 408f 2cac 688a 01c4 e7c5 ed96 8b76     Pt.@.,.h......v.
 
-  803d213:	1c0e 7e84 dbb5 988c 3403 2211 aa5c 79b7     ...~.....4."\..y
 
-  803d223:	4551 1868 b84a de1a e712 4db6 d3ee f747     QEh.J......M..G.
 
-  803d233:	563e f9d4 7a7e 020c e064 1bb8 2c9d 3a5e     >V..~z..d....,^:
 
-  803d243:	4dd0 bf44 3161 6b89 9fe8 71c5 3dd7 4335     .MD.a1.k...q.=5C
 
-  803d253:	fc35 4112 03e1 d9d1 8027 07f0 0148 6b0e     5..A....'...H..k
 
-  803d263:	a0d8 d386 3c09 6cff ee34 bd2f 90cb 1c1b     .....<.l4./.....
 
-  803d273:	f873 7938 ba7f 088b 203f c632 36a5 ab1d     s.8y....? 2..6..
 
-  803d283:	550a b312 8bc1 7946 6028 5e3c 2b02 2ef9     .U....Fy(`<^.+..
 
-  803d293:	d2d4 23a9 7bd8 716e 3bcd 3643 7e73 1989     ...#.{nq.;C6s~..
 
-  803d2a3:	99fc d017 28a5 c47c a9bc 386d 2849 3e59     .....(|...m8I(Y>
 
-  803d2b3:	7271 2305 a0a3 5818 786b a30f 6ab4 7ba8     qr.#...Xkx...j.{
 
-  803d2c3:	82f5 4dd0 439e f462 6962 1ff6 b8e8 76ad     ...M.Cb.bi.....v
 
-  803d2d3:	0462 ef8a d62b 599a f93d 1be6 09cb 321f     b...+..Y=......2
 
-  803d2e3:	1c63 ebd7 9a22 b785 b1c1 e10f 115d 1e29     c...".......].).
 
-  803d2f3:	2fc1 1620 7983 208f 1ced 1f59 ed70 8b60     ./ ..y. ..Y.p.`.
 
-  803d303:	a8e3 f012 f4ce 127e 1865 7706 94d5 8803     ......~.e..w....
 
-  803d313:	4c2b f473 1704 c0c4 e62e f440 7aad c1d7     +Ls.......@..z..
 
-  803d323:	c362 a0ab 3da2 1318 5181 70fa 0dc0 0ac0     b....=...Q.p....
 
-  803d333:	4186 0d66 d24f d36a 06a7 5594 7196 3ae0     .Af.O.j....U.q.:
 
-  803d343:	05f2 445b 89b7 c07c ea65 1146 ee69 c7f3     ..[D..|.e.F.i...
 
-  803d353:	d8a6 942b 623d 9c6e 6449 625e 6422 1074     ..+.=bn.Id^b"dt.
 
-  803d363:	19e0 379c af7c 67db 35fb 69af 3930 2d59     ...7|..g.5.i09Y-
 
-  803d373:	7aaf abeb 14b3 b5a8 3766 280d d30f d733     .z......f7.(..3.
 
-  803d383:	2782 be3c eb1c c0c3 c2eb 727e f98f 1952     .'<.......~r..R.
 
-  803d393:	c4b6 19d1 03b0 3243 937e 5d89 3b3c 3635     ......C2~..]<;56
 
-  803d3a3:	294e c544 0853 8254 3c92 2c88 1869 d9de     N)D.S.T..<.,i...
 
-  803d3b3:	ca78 ea01 c019 2fb3 300e f420 2621 9573     x....../.0 .!&s.
 
-  803d3c3:	0ff1 3c83 2637 b9e4 0717 1019 20fa 8dcf     ...<7&....... ..
 
-  803d3d3:	3c84 263f f9e4 0717 1019 20fa 8fcf bc84     .<?&....... ....
 
-  803d3e3:	2630 a464 2fec 934a a101 f20f 0c42 2079     0&d../J.....B.y 
 
-  803d3f3:	0c36 6fa8 3cda 047d d5ec d79a 756a a451     6..o.<}.....juQ.
 
-  803d403:	cd9d d95f 785b 40cf a861 dbde 95f7 c3f5     .._.[x.@a.......
 
-  803d413:	ab50 7feb 4e9a 9386 a705 612c 77cb 7b02     P....N....,a.w.{
 
-  803d423:	e59c cdbc 5f17 7ae0 8006 05a8 3c0d be1e     ....._.z.....<..
 
-  803d433:	2522 f4c2 28df aab6 1740 70f9 e3ed fa21     "%...(..@..p..!.
 
-  803d443:	c77c 323e ee26 bf97 cc6f 9047 6562 d59b     |.>2&...o.G.be..
 
-  803d453:	20b1 c1bc 11aa 1841 0c21 ef71 8aa9 bab0     . ....A.!.q.....
 
-  803d463:	64ac 6e5c a3cc 67de 1fe5 214d 5837 a053     .d\n...g..M!7XS.
 
-  803d473:	f0ca 2500 d058 8b88 156b d1d0 6808 c7a8     ...%X...k....h..
 
-  803d483:	1037 1f19 594a f48a bc36 7ea7 e698 bc20     7...JY..6..~.. .
 
-  803d493:	ad22 408f f215 4f32 8abd 12f8 1fa0 7fc2     "..@..2O........
 
-  803d4a3:	aa99 eeb5 6320 1861 0b95 ff1d c132 bfa4     .... ca.....2...
 
-  803d4b3:	2cb8 3233 cf23 6c78 c320 16bb 4ade c7ca     .,32#.xl ....J..
 
-  803d4c3:	1d6c 9f0b d4cd 58c5 8e41 bc96 9713 0298     l......XA.......
 
-  803d4d3:	0347 4856 85a7 9103 4fa3 3689 6e66 681c     G.VH.....O.6fn.h
 
-  803d4e3:	3147 5bfe 0670 083d 4e74 a662 ac7f f9aa     G1.[p.=.tNb.....
 
-  803d4f3:	607d 97fb f2c2 e867 3c5c db05 3d1f db37     }`....g.\<...=7.
 
-  803d503:	4f7d 5db3 c62e fb65 d057 7626 7604 73a4     }O.]..e.W.&v.v.s
 
-  803d513:	ed02 1e42 8e85 4b05 661c 926e 0f60 08ef     ..B....K.fn.`...
 
-  803d523:	1840 e148 41d9 de79 1019 44cf 279c ad8f     @.H..Ay....D.'..
 
-  803d533:	948c d6a6 a437 4307 cdf5 10f7 a9dd 726f     ....7..C......or
 
-  803d543:	fff1 f0b4 6d69 5970 1e35 cde6 fb24 994e     ....impY5...$.N.
 
-  803d553:	733d 5dd2 d99c 89ae 7efa b4b9 d9b4 bcb1     =s.].....~......
 
-  803d563:	7546 6684 4ea8 2374 a6e7 6922 9335 4a8d     Fu.f.Nt#.."i5..J
 
-  803d573:	ce31 4a5a e887 a37a d6d6 459e 50ae 4bbc     1.ZJ..z....E.P.K
 
-  803d583:	0ea5 834f 93fb 1581 85d8 b409 5002 b29f     ..O..........P..
 
-  803d593:	75b7 2a19 5aad c71b 8b97 e8d0 e2bb 2f38     .u.*.Z........8/
 
-  803d5a3:	728a 6eb3 f940 b6ca a257 68f9 ea8a 4334     .r.n@...W..h..4C
 
-  803d5b3:	38b1 0e15 b69d af55 28a3 dad4 c315 dc8f     .8....U..(......
 
-  803d5c3:	9647 4802 cdc7 ed56 b750 b9e3 ecd3 b888     G..H..V.P.......
 
-  803d5d3:	4d10 5993 2efe 78c9 4904 43c5 177d bab9     .M.Y...x.I.C}...
 
-  803d5e3:	f414 ad8d 61b1 047f 7dae 52c2 df6a 12c1     .....a...}.Rj...
 
-  803d5f3:	0284 ab8a 2021 565b 74e7 cc3e 6bf0 4a48     ....! [V.t>..kHJ
 
-  803d603:	937c 5bea c5de 430d 2260 fdb0 aa62 a1c2     |..[...C`"..b...
 
-  803d613:	ca90 8475 6d35 ea74 249a 58a5 a5d4 a46b     ..u.5mt..$.X..k.
 
-  803d623:	e31b 12a5 d0ac 2aa2 3317 c90d f63b 2b56     .......*.3..;.V+
 
-  803d633:	36b2 1518 aec2 b3c2 d7b3 7e8d db33 d4bc     .6.........~3...
 
-  803d643:	007f e1d0 07ec 0431 fbfa e47b f329 d508     ......1...{.)...
 
-  803d653:	d3a3 c59d 61a8 b5a7 6a3f e9a7 967e c469     .....a..?j..~.i.
 
-  803d663:	b45d 2b35 b158 413b dce1 d77a 2dad f2be     ].5+X.;A..z..-..
 
-  803d673:	d77e 0e0b 11a3 56d3 e757 9c61 dae8 f1b1     ~......VW.a.....
 
-  803d683:	adbd 8dba 370c 6e06 a9ef 4b87 8ad3 ba12     .....7.n...K....
 
-  803d693:	fb79 bf47 74ee 5bb8 61b3 40a7 017c 3f00     y.G..t.[.a.@|..?
 
-  803d6a3:	4ad1 47c3 f229 c46c 333f 85c0 f0ed ba01     .J.G).l.?3......
 
-  803d6b3:	9f5a 16e2 f096 2002 4e05 a34b e299 e2e5     Z...... .NK.....
 
-  803d6c3:	05cb 2d85 ef00 9356 271f d24a 14ea 0db6     ...-..V..'J.....
 
-  803d6d3:	1c47 4ba3 2217 ec23 6e28 a47f 5d57 2380     G..K."#.(n..W].#
 
-  803d6e3:	09dc 4e9f abec ebd1 6d26 db39 4778 9ddf     ...N....&m9.xG..
 
-  803d6f3:	1326 33af 0576 4989 f50d bbb0 f769 ed90     &..3v..I....i...
 
-  803d703:	e7a2 6350 5342 6511 3555 c3de 1be1 313a     ..PcBS.eU5....:1
 
-  803d713:	f7d7 a6a8 1f9c 79db df45 f35e 763c 6ea3     .......yE.^.<v.n
 
-  803d723:	1789 ef48 3d62 45a0 dcfc bbf9 f46d d921     ..H.b=.E....m.!.
 
-  803d733:	bb4b 2d89 e91f 4bea caf6 12f4 b92d e15b     K..-...K....-.[.
 
-  803d743:	98cd 60c0 33fb d91b e376 b63b f515 9bf6     ...`.3..v.;.....
 
-  803d753:	fe06 aefc d4e3 c9f2 6f65 f6cb ac4f 67af     ........eo..O..g
 
-  803d763:	87dc 5662 76ca 99f7 b169 caef e003 afad     ..bV.v..i.......
 
-  803d773:	a8a7 1f73 850d ef4a 2893 e8b9 65e7 503a     ..s...J..(...e:P
 
-  803d783:	2144 7742 f72c 2114 3686 4737 db6c 47ed     D!Bw,..!.67Gl..G
 
-  803d793:	6110 6c4f 1044 eb79 4757 9f8f 293a a6fb     .aOlD.y.WG..:)..
 
-  803d7a3:	bc12 c210 9594 9d71 dd91 acfe cf0c acef     ......q.........
 
-  803d7b3:	2eda 582b f36c 5ad0 f7d2 b649 7607 dd3a     ..+Xl..Z..I..v:.
 
-  803d7c3:	2a4e 93df 31da 922d 34bc f30e d3b1 da9c     N*...1-..4......
 
-  803d7d3:	cd37 3bea 1a6b b076 0b75 5f75 a23d 4f5e     7..;k.v.u.u_=.^O
 
-  803d7e3:	5f44 18e5 a009 d128 6548 f86e 1f51 5009     D_....(.Hen.Q..P
 
-  803d7f3:	58db 5883 e891 5022 7a5d 3811 e515 a518     .X.X.."P]z.8....
 
-  803d803:	4dba 5935 7686 888d 5b98 91a6 f432 b7e7     .M5Y.v...[..2...
 
-  803d813:	e77a 7648 f79e 7a0e 0d97 cd4e 0160 e090     z.Hv...z..N.`...
 
-  803d823:	9c06 ace1 6d3d 688f c9d2 8401 68bb 73f9     ....=m.h.....h.s
 
-  803d833:	f0bf 2145 0415 5231 45de 7748 8709 d8bb     ..E!..1R.EHw....
 
-  803d843:	b0e9 13d3 6cfb 56a8 6837 1328 5755 7189     .....l.V7h(.UW.q
 
-  803d853:	3ef2 34df e2e3 260b 13b6 da6f 127c 3873     .>.4...&..o.|.s8
 
-  803d863:	3ded d7d3 2791 6d95 489c c6bd b4ca 36ff     .=...'.m.H.....6
 
-  803d873:	6f90 ad32 46e3 1196 18ee 41d8 0d92 2421     .o2..F.....A..!$
 
-  803d883:	08be 838f 50e1 eded 2dec a715 5274 dc56     .....P...-..tRV.
 
-  803d893:	6a0d 0c23 5fe2 d952 08f0 0e06 88e6 477b     .j#.._R.......{G
 
-  803d8a3:	8e72 2f9d c1ed 9ed2 dfb5 a298 9bae b636     r../..........6.
 
-  803d8b3:	874c 174d 425b 769b 8bc1 aefe b15b 5b3c     L.M.[B.v....[.<[
 
-  803d8c3:	11c2 c2a1 6feb 18ac 5eb8 999c 3099 efc2     .....o...^...0..
 
-  803d8d3:	0ba5 0dc5 5624 8fc8 0ca6 1328 415a d9e0     ....$V....(.ZA..
 
-  803d8e3:	fc7d 4dd5 a4b0 935b cfed cb15 d4e5 658c     }..M..[........e
 
-  803d8f3:	a335 fc24 32e0 68d6 90a0 41db 7e1d f7b9     5.$..2.h...A.~..
 
-  803d903:	f0e7 a621 8dbe 9f29 07e0 3c64 7bc3 c54c     ..!...)...d<.{L.
 
-  803d913:	4cf2 c26a 3519 67e1 4518 0f48 b029 719c     .Lj..5.g.EH.)..q
 
-  803d923:	9287 8761 a8d4 52ab 48f6 9911 ea3b 3260     ..a....R.H..;.`2
 
-  803d933:	a0ea f51a da1d 3c03 03b6 4056 5045 b0b5     .......<..V@EP..
 
-  803d943:	c064 f21d ad28 e839 1596 90b0 877f 4557     d...(.9.......WE
 
-  803d953:	be9f 4be2 07f8 431d 9d42 ee83 84b5 6bce     ...K...CB......k
 
-  803d963:	9ad1 1ca4 d9fb bf33 cc9a aafc f99a 549f     ......3........T
 
-  803d973:	ee6d 03d2 cf14 30fb 1c1f 3d0b f3e4 d435     m......0...=..5.
 
-  803d983:	9b80 58c0 ee71 165a 8a12 8a0b 75e2 2504     ...Xq.Z......u.%
 
-  803d993:	78d6 a5aa 3e39 6bb5 7640 a307 1d50 f682     .x..9>.k@v..P...
 
-  803d9a3:	415f 0d17 5c9a f3ba dd09 4579 2af7 3e46     _A...\....yE.*F>
 
-  803d9b3:	1916 9ba5 033a d3f4 1212 56f5 d43b bbc8     ....:......V;...
 
-  803d9c3:	177b ee85 5176 14c2 308c 7c47 2573 3f04     {...vQ...0G|s%.?
 
-  803d9d3:	3665 8b73 b473 6f9a 577a 7e90 807c e429     e6s.s..ozW.~|.).
 
-  803d9e3:	9934 b74e 8eef 2198 bc36 0539 9afe e808     4.N....!6.9.....
 
-  803d9f3:	1601 98fd 574d b900 6626 7102 2ef5 b116     ....MW..&f.q....
 
-  803da03:	fdd5 8e90 104a 80de 5229 605b e492 4915     ....J...)R[`...I
 
-  803da13:	12e6 594a 36b8 dbf0 079c 5163 51f1 3017     ..JY.6....cQ.Q.0
 
-  803da23:	0e75 20db dc8a d369 ae66 cf99 6483 45c8     u.. ..i.f....d.E
 
-  803da33:	1e68 6652 0e88 1680 1b5d 99e5 37b9 2fc2     h.Rf....]....7./
 
-  803da43:	8200 84de 08ea d04a deb5 18c7 2b9c d8ef     ......J......+..
 
-  803da53:	800f 52db 8b0b c18d d8d2 fead 8c5c 19f1     ...R........\...
 
-  803da63:	dd0f 0489 5e71 2b01 5fc4 e3b9 3b51 8ccc     ....q^.+._..Q;..
 
-  803da73:	485a 813d e802 d17b 0016 a5ce ac9a 5273     ZH=...{.......sR
 
-  803da83:	337b 09c8 e692 3c84 772e 0405 7b58 38e2     {3.....<.w..X{.8
 
-  803da93:	4822 01de 3b91 c2bc 7453 a4ac 08e1 8777     "H...;..St....w.
 
-  803daa3:	753b 6660 bc27 c79f 44d1 934e 4e5a 915f     ;u`f'....DN.ZN_.
 
-  803dab3:	e18d 428f 8e80 f297 3fe2 769c d4e4 fe78     ...B.....?.v..x.
 
-  803dac3:	e81f 6681 d5c0 07de 4c78 cd43 ca5d 6c5c     ...f....xLC.].\l
 
-  803dad3:	932f e55a a6be 304c c944 be87 29f8 784f     /.Z...L0D....)Ox
 
-  803dae3:	fb50 fde9 0599 c4e3 fe25 01de 6bb1 36b2     P.......%....k.6
 
-  803daf3:	3578 fd21 ef7d 3142 96fc 1a8a 2ae6 6279     x5!.}.B1.....*yb
 
-  803db03:	2025 5628 53c2 e07b 660f a904 4e3c 7624     % (V.S{..f..<N$v
 
-  803db13:	393d a91f 6016 b114 45fb ee11 cb00 aad7     =9...`...E......
 
-  803db23:	0373 5e31 ddc2 98e7 8c0f 9ce2 271a 5cfa     s.1^.........'.\
 
-  803db33:	fab8 6f8e 358b b4e1 3e65 c8b5 4194 404d     ...o.5..e>...AM@
 
-  803db43:	3b42 a0e4 0e29 0d0a ff37 e1c4 6a4d f787     B;..)...7...Mj..
 
-  803db53:	f939 39ae 1146 5c25 dec3 100e c830 bb11     9..9F.%\....0...
 
-  803db63:	1de2 9008 ac03 051f 76e5 23ef 178c 9d27     .........v.#..'.
 
-  803db73:	324f b946 50a0 57d2 c13e d894 c293 c424     O2F..P.W>.....$.
 
-  803db83:	df4c 858e d3c3 ff2b 2919 f2a0 e26a c8a0     L.....+..)..j...
 
-  803db93:	5a43 2e5d 1637 af4a 08a5 2fcd d6c0 9688     CZ].7.J..../....
 
-  803dba3:	ecc7 1ca8 dc08 0879 b893 a933 0ee3 2de2     ......y...3....-
 
-  803dbb3:	3187 02d1 0a42 0d0f f0c8 a09e fe45 f1af     .1..B.......E...
 
-  803dbc3:	bae7 2498 4e44 10ea 0d49 8da4 fc31 2f32     ...$DN..I...1.2/
 
-  803dbd3:	87f9 23dc 926b 99e9 509d a80a f286 206d     ...#k....P....m 
 
-  803dbe3:	ef89 3a93 43be 31d5 420c 24c3 58d2 9510     ...:.C.1.B.$.X..
 
-  803dbf3:	adba 0d2c b253 7849 bf01 067d b0a2 f90e     ..,.S.Ix..}.....
 
-  803dc03:	277b 098f d249 a931 8e93 6aff c091 30cc     {'..I.1....j...0
 
-  803dc13:	77c9 8e44 9fa9 9ae1 2655 b13a bab8 1d09     .wD.....U&:.....
 
-  803dc23:	ec11 14f2 7924 1734 921a 9acb 7143 01f8     ....$y4.....Cq..
 
-  803dc33:	d119 abd9 76f0 ec14 2636 8987 2262 1bf0     .....v..6&..b"..
 
-  803dc43:	7053 371f d0d7 a952 64d5 a759 d756 1265     Sp.7..R..dY.V.e.
 
-  803dc53:	0706 a3e4 882a f20b 486c 9f17 fecb da84     ....*...lH......
 
-  803dc63:	10e4 24ef eb21 2c33 ca09 c79e 549f 3876     ...$!.3,.....Tv8
 
-  803dc73:	d659 94fe 7a6a ff07 5b00 7084 3c1b ca52     Y...jz...[.p.<R.
 
-  803dc83:	8641 81cb bed4 81d8 7dd5 1fc3 42b0 7eb8     A........}...B.~
 
-  803dc93:	7d51 5e2c 3ddc 521d f12e 8b94 928d 9bdd     Q},^.=.R........
 
-  803dca3:	8710 420a a7f4 85d7 ca87 ded3 1a81 68a9     ...B...........h
 
-  803dcb3:	77f1 e9e1 317d 1256 027b a5c3 4049 12d9     .w..}1V.{...I@..
 
-  803dcc3:	c952 b416 61b4 d952 0a3f 1196 ffd9 20b7     R....aR.?...... 
 
-  803dcd3:	a989 b2c9 49fd 85f8 131c b97e aa48 3632     .....I....~.H.26
 
-  803dce3:	7195 7094 c705 0bf7 0e01 a247 df13 4677     .q.p......G...wF
 
-  803dcf3:	091c f849 b42d db9d 30d0 64aa ca6d 460b     ..I.-....0.dm..F
 
-  803dd03:	6ea7 55b9 5baf ca53 c1bc 9e73 57b9 3f71     .n.U.[S...s..Wq?
 
-  803dd13:	2c35 259f 9cd2 f694 af0e 9356 ac93 fd83     5,.%......V.....
 
-  803dd23:	aa0d d8b1 38f3 49dc 001f 3456 5446 5946     .....8.I..V4FTFY
 
-  803dd33:	7110 9de1 1c92 a659 d5db 1ab8 3309 ab6e     .q....Y......3n.
 
-  803dd43:	278f 34c6 4550 2865 ccd0 f791 6346 d5b1     .'.4PEe(....Fc..
 
-  803dd53:	f68a b2d0 86d0 8781 e5f8 a548 2fde 6f8d     ..........H../.o
 
-  803dd63:	2e47 cf63 2f9d ec7d 2863 d57a 88d7 2b09     G.c../}.c(z....+
 
-  803dd73:	a64e 136e 94dd de6d 3813 e262 a8e7 a1e6     N.n...m..8b.....
 
-  803dd83:	6972 f676 52d5 4e79 99fe cc55 2e52 0275     riv..RyN..U.R.u.
 
-  803dd93:	0adf adba 92d9 cddf d5d3 0783 e54b d7f9     ............K...
 
-  803dda3:	b34a f30b d9a5 5439 18e5 bb37 71e7 8808     J.....9T..7..q..
 
-  803ddb3:	3718 ce37 8f38 806b dc7d 1440 0cba 96af     .77.8.k.}.@.....
 
-  803ddc3:	a331 7b7c 7340 e82f 759c 2871 5234 f4b8     1.|{@s/..uq(4R..
 
-  803ddd3:	9193 6312 8fff 0619 dffd 3453 3e0e 7365     ...c......S4.>es
 
-  803dde3:	3e16 f7bf 0321 2c08 e939 c0b1 ee31 88d5     .>..!..,9...1...
 
-  803ddf3:	d976 4e80 34a3 6c0d 49b3 96e3 7ec7 55d4     v..N.4.l.I...~.U
 
-  803de03:	97ac 46e9 fa4e 6dba 27c8 1546 3e53 5a6e     ...FN..m.'F.S>nZ
 
-  803de13:	cf2c fccc 6302 d9c6 6bf9 4efb f2cb 8ecf     ,....c...k.N....
 
-  803de23:	c838 beaf f800 8e0d 76b0 29d4 ec7e 80b6     8........v.)~...
 
-  803de33:	ac27 9929 cbaa 80b9 75b8 e63f 4e3e 87ff     '.)......u?.>N..
 
-  803de43:	f408 6ab3 073f 55ae c73a 903f 6ced e8df     ...j?..U:.?..l..
 
-  803de53:	434d 55f5 3b11 5533 5bdd 569a 9307 f8c6     MC.U.;3U.[.V....
 
-  803de63:	4a9c c6be 7eca 354e 5472 e8f5 6fbb beae     .J...~N5rT...o..
 
-  803de73:	ec7d a5d7 9c15 2f1a 5101 5db7 e738 17d4     }....../.Q.]8...
 
-  803de83:	b44d e4c9 f914 be14 39de 79e2 1da7 b3bb     M........9.y....
 
-  803de93:	d2f8 f9cc c389 fc9b 2134 1472 e3bf 42a7     ........4!r....B
 
-  803dea3:	f187 1ca2 7fd9 d8fd d80a 72f6 d641 f7a7     ...........rA...
 
-  803deb3:	2693 b04a f959 825a bbbb c23c 985c 8738     .&J.Y.Z...<.\.8.
 
-  803dec3:	0a2f 1dd6 55bf 5530 04fa b2e6 c477 1ff2     /....U0U....w...
 
-  803ded3:	35cd 97c9 f7a4 a0c0 350e 57e5 f85c 89fc     .5.......5.W\...
 
-  803dee3:	bb09 3d84 7684 b124 e712 2075 0446 2d97     ...=.v$...u F..-
 
-  803def3:	5faa 139a bcaf 6852 567a 9dfd 7e37 d47b     ._....RhzV..7~{.
 
-  803df03:	15ab f5cc 55ad a405 23c4 53f3 2026 139a     .....U...#.S& ..
 
-  803df13:	e253 963c a9f9 c4c6 e279 ef4d 0ddf cc05     S.<.....y.M.....
 
-  803df23:	9277 d00f 6026 f8d7 adca 9d04 bb85 5b3d     w...&`........=[
 
-  803df33:	d731 5e9a b4ed cc99 1cb4 967d f394 22a6     1..^......}...."
 
-  803df43:	f03a 4b11 e92e 2fc1 f4b8 2f2e d2be 5522     :..K.../.../.."U
 
-  803df53:	51fd f654 fea1 6912 43d8 09fd f650 51a7     .QT....i.C..P..Q
 
-  803df63:	740b 9c3d 1a0c 7d67 a2f2 2f2c f1d1 cba1     .t=...g}..,/....
 
-  803df73:	b48a c0c1 9be9 5b73 42f8 dbc5 812a f28b     ......s[.B..*...
 
-  803df83:	4429 7d49 0859 97e7 14fe 7ce4 52b9 b0d9     )DI}Y......|.R..
 
-  803df93:	2383 1faf e02f 1bc3 26fc 8522 71c0 02b9     .#../....&"..q..
 
-  803dfa3:	882f 104f f60a d954 539e 4d32 99ed 050e     /.O...T..S2M....
 
-  803dfb3:	3d40 47c6 6a5e 50a7 3aa6 109c a9b0 e347     @=.G^j.P.:....G.
 
-  803dfc3:	9d0b 21aa 219f c8e6 4a7b cb78 0a37 cd2f     ...!.!..{Jx.7./.
 
-  803dfd3:	e740 a70e 763f 37e4 ffa3 1103 a13e 43e5     @...?v.7....>..C
 
-  803dfe3:	003a 2f00                                        :..
 
- 0803dfe6 <data__main_css>:
 
-  803dfe6:	6d2f 6961 2e6e 7363 0073 0000 5448 5054     /main.css...HTTP
 
-  803dff6:	312f 312e 3220 3030 4f20 0d4b 530a 7265     /1.1 200 OK..Ser
 
-  803e006:	6576 3a72 6c20 4977 2f50 2e31 2e33 2031     ver: lwIP/1.3.1 
 
-  803e016:	6828 7474 3a70 2f2f 6173 6176 6e6e 6861     (http://savannah
 
-  803e026:	6e2e 6e6f 6e67 2e75 726f 2f67 7270 6a6f     .nongnu.org/proj
 
-  803e036:	6365 7374 6c2f 6977 2970 0a0d 6f43 746e     ects/lwip)..Cont
 
-  803e046:	6e65 2d74 654c 676e 6874 203a 3031 3435     ent-Length: 1054
 
-  803e056:	0d35 430a 6e6f 656e 7463 6f69 3a6e 4320     5..Connection: C
 
-  803e066:	6f6c 6573 0a0d 6f43 746e 6e65 2d74 7974     lose..Content-ty
 
-  803e076:	6570 203a 6574 7478 632f 7373 0a0d 6f43     pe: text/css..Co
 
-  803e086:	746e 6e65 2d74 6e45 6f63 6964 676e 203a     ntent-Encoding: 
 
-  803e096:	7a67 7069 0a0d 6143 6863 2d65 6f43 746e     gzip..Cache-Cont
 
-  803e0a6:	6f72 3a6c 7020 6972 6176 6574 202c 616d     rol: private, ma
 
-  803e0b6:	2d78 6761 3d65 3638 3034 0d30 0d0a 1f0a     x-age=86400.....
 
-  803e0c6:	088b 0000 0000 0400 d50a 6b7d 238f 7239     ..........}k.#9r
 
-  803e0d6:	5fe0 a791 e7d0 6dae a349 bd57 d854 79c2     ._.....mI.W.T..y
 
-  803e0e6:	f6c6 80f9 c05b bd80 da9f 418d 994a ca55     ....[......AJ.U.
 
-  803e0f6:	496d 4829 eeaa d1aa 3fe9 0718 3818 70e0     mI)H.....?...8.p
 
-  803e106:	ec7e f01f e95f e49f 9278 2641 a533 ef6a     ~..._...x.A&3.j.
 
-  803e116:	bb87 9dad 2519 119f 88c1 3060 2418 fc7f     .....%....`0.$..
 
-  803e126:	9fcd d675 76d5 2d95 5fcb fe8b b77c 7ceb     ..u..v.-._..|..|
 
-  803e136:	f719 fd07 e751 767f f77e ffdf f3be ca3f     ....Q..v~.....?.
 
-  803e146:	b179 15de f5f0 ee54 65fb a3f5 db2b cdf9     y.....T..e..+...
 
-  803e156:	fd8f f565 7554 edb3 9cbe 8b2f b66e f32b     ..e.Tu..../.n.+.
 
-  803e166:	9ba2 fb17 5cac baee e58f 3cd3 ecdb 6acb     .....\.....<...j
 
-  803e176:	3f8d b79f f745 aab1 c5f6 bbb6 b228 ff1c     .?..E.......(...
 
-  803e186:	b4f3 9ead dd37 5655 bbae 62ab dcfd 675d     ....7.UV...b..]g
 
-  803e196:	ba5f 62bb 354e cf76 55ab 7db6 e43d 6ee5     _..bN5v..U.}=..n
 
-  803e1a6:	ccb3 a75e 65b3 ff35 ec7c 36ef 7ae5 bd56     ..^..e5.|..6.zV.
 
-  803e1b6:	2efc 7edb e6ee eb8f 63c3 deb5 76f7 d7fb     ...~.....c...v..
 
-  803e1c6:	3165 f72d c080 d8fc 5687 d966 bbb6 9e7b     e1-......Vf...{.
 
-  803e1d6:	3fc1 c39b daa6 d895 74e2 2c5b 7db3 a5f9     .?.......t[,.}..
 
-  803e1e6:	12a0 cb0f 21f2 f6eb d937 58ba 10f6 729e     .....!..7..X...r
 
-  803e1f6:	d4fd efed d9b3 78b2 e3d8 c3f7 0b7e fa3f     .......x....~.?.
 
-  803e206:	c59b 5961 01ec dee8 936e a1cd b4d0 183f     ..aY....n.....?.
 
-  803e216:	ab15 3f63 3003 14bf fedd bf6c 3fee f356     ..c?.0....l..?V.
 
-  803e226:	1de7 9cfd 9f9a ea8b 200b e089 6750 e59a     ......... ..Pg..
 
-  803e236:	29be b0ff 5e2f bdf6 98bc 5b57 0e00 5ca0     .)../^....W[...\
 
-  803e246:	6b57 b086 bcfb 7844 f8a0 b0ee 772c 258a     Wk....Dx....,w.%
 
-  803e256:	23e7 7e19 5eaa 44ba f80f 29d1 9bd7 7de7     .#.~.^.D...)...}
 
-  803e266:	fe97 71fd baff 7e29 2bbb edb2 f17c d0e9     ...q..)~.+..|...
 
-  803e276:	5afb 3ecc fb97 b65e 40d9 b64a 179e c5d2     .Z.>..^..@J.....
 
-  803e286:	cb2c 189f c3fe 45d7 2fb9 4108 fccc cdba     ,......E./.A....
 
-  803e296:	4736 89c0 aa86 634f cd34 711e fadc 3832     6G....Oc4..q..28
 
-  803e2a6:	1807 6ceb 9d3b fb55 b1c5 3d5c 9775 53c5     ...l;.U...\=u..S
 
-  803e2b6:	ceb1 b30f 0b6a 3ac3 1c1d bbf9 cfbb fbbb     ....j..:........
 
-  803e2c6:	61c5 e593 5c48 5e48 57ec 1e4b c7b0 556c     .a..H\H^.WK...lU
 
-  803e2d6:	5f2e 7fa7 2db1 65b3 6ff7 e58a 0297 27f8     ._...-.e.o.....'
 
-  803e2e6:	eeeb f5b2 b7ae b62b e3e5 82bd e44d 01d9     ......+.....M...
 
-  803e2f6:	f65f fcb2 cf0f fdbb 3874 bc18 efbb 76ad     _.......t8.....v
 
-  803e306:	64bd 71ce e556 07af 9c60 72a7 1d3d cfdc     .d.qV...`..r=...
 
-  803e316:	f9b2 4467 9d60 e6f7 b2d5 4eda fe2f f6ea     ..gD`......N/...
 
-  803e326:	7eaf ebfa bde1 8d7c e3c7 1c7b c7a5 f565     .~....|...{...e.
 
-  803e336:	f7b5 dd3a b7cd 72d5 bf79 ca28 05a7 74f7     ..:....ry.(....t
 
-  803e346:	9ecc b2f3 ceea f5b3 6c97 ddd7 ab6c 6da7     .........l..l..m
 
-  803e356:	dbb1 bf75 9b00 8e57 cb35 b2f5 175c e23d     ..u...W.5...\.=.
 
-  803e366:	7bd0 0d68 5971 80f6 9f19 d3d6 b659 302b     .{h.qY......Y.+0
 
-  803e376:	1b97 ea02 dfee 9c7f cf03 4742 4fbb ae97     ..........BG.O..
 
-  803e386:	1c09 ed55 7077 b8fc f328 58bc ea7f 8bee     ..U.wp..(..X....
 
-  803e396:	3015 beff ca08 b31d 0d43 3daf 2c8c e830     .0......C..=.,0.
 
-  803e3a6:	58b6 8fef 54d9 3378 329b 558b 7bcf 0104     .X...Tx3.2.U.{..
 
-  803e3b6:	2046 cd9b 1fb6 e5f7 597e 927c ead1 20c1     F ......~Y|.... 
 
-  803e3c6:	abee 74d5 79b8 e4e9 b3f0 8fc8 6eb3 d9b5     ...t.y.......n..
 
-  803e3d6:	68b3 00ee f5ce 8f13 57d9 caa6 00cd 7206     .h.......W.....r
 
-  803e3e6:	24a8 5fee 14df ceab 9ee0 10c5 6986 c28a     .$._.........i..
 
-  803e3f6:	f401 7cff 1210 060f 1876 17a6 8f8f e383     ...|....v.......
 
-  803e406:	540e 708d 0e02 f4ed f076 a8ee eae2 ba5b     .T.p....v.....[.
 
-  803e416:	7ab9 4f77 9584 18f1 d234 c516 5f7c a66d     .zwO....4...|_m.
 
-  803e426:	febd f415 2d0e 7201 5584 3faf 94a2 4f2f     .....-.r.U.?../O
 
-  803e436:	f944 16e9 fa98 a0f2 3e23 3265 591f 2939     D.......#>e2.Y9)
 
-  803e446:	434a 6840 d832 1cbc db17 eb83 d959 5411     JC@h2.......Y..T
 
-  803e456:	0f4f 4640 c67e 0451 0372 5f01 1f80 5fab     O.@F~.Q.r.._..._
 
-  803e466:	47f1 2f2a 7c9d 80dc 443a 8616 cb31 443c     .G*/.|..:D..1.<D
 
-  803e476:	f3d9 3abe 2bce a250 679f f039 015b b132     ...:.+P..g9.[.2.
 
-  803e486:	04da b342 d6aa ea15 a2a2 7eeb f219 f403     ..B........~....
 
-  803e496:	d9c7 2033 eebf 4ab2 63f0 2c59 b541 3efa     ..3 ...J.cY,A..>
 
-  803e4a6:	909d c520 e5a7 017a b772 c117 2f90 c969     .. ...z.r..../i.
 
-  803e4b6:	f783 dca5 a095 b521 6007 686d 5592 7118     ......!..`mh.U.q
 
-  803e4c6:	23e0 22cc 5ea2 cd54 e935 1458 d254 39b1     .#.".^T.5.X.T..9
 
-  803e4d6:	d8e8 e6b4 f6ed 1551 8a6d 076d 8e18 ddc4     ......Q.m.m.....
 
-  803e4e6:	f277 e98c 1073 852e 9505 6b0b d641 4c7f     w...s......kA..L
 
-  803e4f6:	4f84 054c 024e 2dd1 41f6 b00a aaca 27dc     .OL.N..-.A.....'
 
-  803e506:	2495 bfd7 3f9f 776f 37a0 5536 a309 95bd     .$...?ow.76U....
 
-  803e516:	3ece a4c2 3384 fe45 6ba9 75ba 0789 94a9     .>...3E..k.u....
 
-  803e526:	8f17 f3d9 7f72 5a34 be79 e628 819f 0223     ....r.4Zy.(...#.
 
-  803e536:	b628 fb30 1e54 c308 ac30 9351 662c d2b2     (.0.T...0.Q.,f..
 
-  803e546:	bc15 35de affd 579f 62b3 69fb 553a 2e86     ...5...W.b.i:U..
 
-  803e556:	6bd7 db9a 75ca b2cf 130d 56ac 341a 5849     .k...u.....V.4IX
 
-  803e566:	255a f884 f4d6 cf13 063e ffc4 dc9c 89b8     Z%......>.......
 
-  803e576:	ccc1 c867 8f1a b165 2dcc 05a5 8f02 2729     ..g...e..-....)'
 
-  803e586:	40f4 cf95 ca61 23af 54db cfc1 2dcd e973     .@..a..#.T...-s.
 
-  803e596:	dd7e 8d23 53d9 fff5 8680 a701 e4e9 12e9     ~.#..S..........
 
-  803e5a6:	8592 0566 0f08 c7cf 7dbd 2d55 84c1 15b1     ..f......}U-....
 
-  803e5b6:	4935 d18b fc0c be58 1968 edf7 800a 8354     5I....X.h.....T.
 
-  803e5c6:	0561 f5c3 7cb8 732e 2e57 ae4a af15 9c15     a....|.sW.J.....
 
-  803e5d6:	916a 0c1c 6aa5 fe5b 2d8a 3b2c 6bb9 96b2     j....j[..-,;.k..
 
-  803e5e6:	15ae 1b50 2ad8 5360 4240 5060 15b4 66d1     ..P..*`S@B`P...f
 
-  803e5f6:	5556 d30e db29 0a23 905d 05a6 e541 3e68     VU..).#.]...A.h>
 
-  803e606:	34fe 40c9 344c 9600 66d9 9857 4122 5472     .4.@L4...fW."ArT
 
-  803e616:	6d9c a8d4 24b0 4586 32c3 dbae f64d c604     .m...$.E.2..M...
 
-  803e626:	1890 fc4e f5a1 ead8 0d44 f3e8 0ed1 14a5     ..N.....D.......
 
-  803e636:	b42d bead 2e6a e4fe 6764 9008 0aa5 9ada     -...j...dg......
 
-  803e646:	a0e6 0fe9 1f9d f798 7cc1 9526 e2ac e46d     .........|&...m.
 
-  803e656:	28ce 788c 32ba c959 6a0a ca0d 0914 b9fc     .(.x.2Y..j......
 
-  803e666:	5e99 364d 7f2f ae56 d536 9f76 f7ad a4f7     .^M6/.V.6.v.....
 
-  803e676:	d99e d9e4 f5a2 ff74 ccb5 0bf7 d6b6 12c4     ......t.........
 
-  803e686:	7c78 3c7c 7aea ec00 5342 5963 ee3c 8fb5     x||<.z..BScY<...
 
-  803e696:	3e87 4522 ab9c 63a6 5a8f b684 5260 cbce     .>"E...c.Z..`R..
 
-  803e6a6:	0f2f e6b4 7038 a307 d5c9 45e6 a72d fc5b     /...8p.....E-.[.
 
-  803e6b6:	f32d 951a 92e6 5ade 3e9a 976f b7ef d860     -......Z.>o...`.
 
-  803e6c6:	ee7e d66f 974f 1e9d e854 86f4 eff8 d575     ~.o.O...T.....u.
 
-  803e6d6:	16db 2260 9007 fccb da8f 29cd df1e ce1a     ..`".......)....
 
-  803e6e6:	05f6 01d8 f320 0162 7378 66d3 bd55 9d74     .... .b.xs.fU.t.
 
-  803e6f6:	ea64 8fb1 13d6 8f58 ecab 5d0f 1bf7 4856     d.....X....]..VH
 
-  803e706:	1bfc 76ac 55f9 767d c0cc a796 fc50 d3da     ...v.U}v....P...
 
-  803e716:	0863 2463 30f4 d434 1c14 11c5 0014 37e3     c.c$.04........7
 
-  803e726:	4fdb 0c79 6fa8 d968 1683 6c93 e9d0 8cdd     .Oy..oh....l....
 
-  803e736:	7a03 b2f9 904c 0de1 dab4 bdb9 d181 f032     .z..L.........2.
 
-  803e746:	34b7 bbd9 0ac2 d3df f66c b687 c766 d5df     .4......l...f...
 
-  803e756:	502c adb8 21d1 f7d0 b04d 2a82 3d02 5873     ,P...!..M..*.=sX
 
-  803e766:	0cc1 17eb 4816 ce1b b580 591f a609 5d4f     .....H.....Y..O]
 
-  803e776:	80ab dcc0 3c93 b22e 341c a0c0 4683 f23a     .....<...4...F:.
 
-  803e786:	f6ea 9669 1fbd f174 3faf 8cba ea5b cb68     ..i...t..?..[.h.
 
-  803e796:	5833 e414 876a c78f d937 a6ec acbd a259     3X..j...7.....Y.
 
-  803e7a6:	6aa2 c814 f6c2 4d64 32a1 0d9d a387 7b9b     .j....dM.2.....{
 
-  803e7b6:	02c3 619c 23d7 4e0a 1cdc 002a ee85 a6e6     ...a.#.N..*.....
 
-  803e7c6:	3419 13a0 a02d 1561 ab0c a52c b161 5b12     .4..-.a...,.a..[
 
-  803e7d6:	82f5 b331 3036 008a 17a9 773f ab7b 3114     ..1.60....?w{..1
 
-  803e7e6:	3d63 b07e 2f9c 01a3 91ff 5664 6a63 3b25     c=~../....dVcj%;
 
-  803e7f6:	31c2 0d34 1955 b14e 48bc a24d ba1a 04d7     .14.U.N..HM.....
 
-  803e806:	6b5d 22a1 aa43 0538 c287 cb07 ee55 a60c     ]k."C.8.....U...
 
-  803e816:	5a01 0cbc d5ee c1f7 4c0b 02aa 783d 4297     .Z.......L..=x.B
 
-  803e826:	b7dd aae1 bb88 a184 c87d a7b4 04e9 8265     ........}.....e.
 
-  803e836:	a375 89e6 432b 6287 9a32 5e3c 804d 70f1     u...+C.b2.<^M..p
 
-  803e846:	af31 80b0 e922 aaec 9965 2e77 c306 386c     1..."...e.w...l8
 
-  803e856:	142b df27 6760 0b7c 2d68 d24b cfb9 0f7b     +.'.`g|.h-K...{.
 
-  803e866:	365b 9a83 3860 a3de 21c2 b07a 1f3e 2b01     [6..`8...!z.>..+
 
-  803e876:	b23b ccc6 c0c1 5b49 bf00 165f 6ff6 e861     ;.....I[.._..oa.
 
-  803e886:	719d c11b cb49 6cd8 28b7 fbf2 7b5f 3ae5     .q..I..l.(.._{.:
 
-  803e896:	5e2f c7a0 91d1 4b66 1458 4a12 c8ea 7581     /^....fKX..J...u
 
-  803e8a6:	2729 cb38 5760 12c0 961a eddb 2cfc 9873     )'8.`W.......,s.
 
-  803e8b6:	9492 1986 5750 9498 9864 5224 dc42 30cd     ....PW..d.$RB..0
 
-  803e8c6:	6998 c7f1 3b1f ecab 67a5 c252 1ff1 9b11     .i...;...gR.....
 
-  803e8d6:	b550 bd87 2e5f b5b9 4b92 cbf2 3427 7892     P..._....K..'4.x
 
-  803e8e6:	e551 b94a 5f24 b9ca 60b7 912a 5de6 f792     Q.J.$_...`*..]..
 
-  803e8f6:	20d7 81fc f5c4 a327 abdb e19b 1c64 c3af     . ....'.....d...
 
-  803e906:	e057 58ad d102 9a98 ca34 5d9e 3cf2 263f     W..X....4..].<?&
 
-  803e916:	517a 593b 24dd f2c4 84da 0008 aab2 1d30     zQ;Y.$........0.
 
-  803e926:	02b5 3406 26ae b5c1 ae43 43b2 06d4 a183     ...4.&..C..C....
 
-  803e936:	c99d 7d28 6750 f4de dcb1 1382 be6d 9728     ..(}Pg......m.(.
 
-  803e946:	dbe0 9873 17b7 3473 8183 bb24 64f5 ed73     ..s...s4..$..ds.
 
-  803e956:	5ce5 047b 0855 36d2 74fc 9e10 ba2e ce50     .\{.U..6.t....P.
 
-  803e966:	d246 940f c400 1f32 dfe8 3f36 2a26 4031     F.....2...6?&*1@
 
-  803e976:	4787 3d28 4907 3083 812b 813c 1823 e7c8     .G(=.I.0+.<.#...
 
-  803e986:	4f58 4ca1 2a66 36b6 b1d3 aa63 cba6 d54c     XO.Lf*.6..c...L.
 
-  803e996:	2c74 aa9a 32e9 ff3d 7692 ec21 2240 f051     t,...2=..v!.@"Q.
 
-  803e9a6:	570b bf51 8853 f224 341c cf3e 9a41 d368     .WQ.S.$..4>.A.h.
 
-  803e9b6:	25e5 39ea 1338 5cf5 8e9e 3927 ace5 8400     .%.98..\..'9....
 
-  803e9c6:	18d8 f53f ad39 5e89 7d12 6c03 e3a0 4e0a     ..?.9..^.}.l...N
 
-  803e9d6:	72be 4663 ba75 2fde d57a 0f63 c8dd abef     .rcFu../z.c.....
 
-  803e9e6:	bf3c b14c ddc5 fc23 0b69 66e4 c474 0b14     <.L...#.i..ft...
 
-  803e9f6:	66a1 5c13 5e3c 1fe1 e32b 480e c7d4 32f9     .f.\<^..+..H...2
 
-  803ea06:	eddb f37e f85b fbd9 e7e4 dd8b c41e ee7b     ..~.[.........{.
 
-  803ea16:	3266 1a46 3cca d6af ab62 0f92 199c 9f77     f2F..<..b.....w.
 
-  803ea26:	ad07 2574 1175 9ea4 bb6a a700 db2f ec02     ..t%u...j.../...
 
-  803ea36:	a75d 1c46 a03e 702d c01b 57ac 3f60 fc04     ].F.>.-p...W`?..
 
-  803ea46:	aa20 ffdd e7e2 c69f 5b3f a727 dfb3 1f6e      .......?['...n.
 
-  803ea56:	efe1 bd3e 207f f87d 6f41 8374 6c8d 68d7     ..>.. }.Aot..l.h
 
-  803ea66:	d429 a7a7 ec0b ba08 2a02 93a1 205b 39a2     )........*..[ .9
 
-  803ea76:	dc53 13b6 db70 90b2 32c3 b767 d6a9 d83b     S...p....2g...;.
 
-  803ea86:	b0bd 6946 307f e77c e17d 57e0 4f40 7fe4     ..Fi.0|.}..W@O..
 
-  803ea96:	155d 9979 c075 5e2f eb14 580e 9d93 7ef7     ].y.u./^...X...~
 
-  803eaa6:	baca 06b9 ff13 50f2 b56f 4671 85c3 ef96     .......Po.qF....
 
-  803eab6:	55e3 affc cde4 9f57 ecac a0e5 1f83 0021     .U....W.......!.
 
-  803eac6:	2d0f 5af8 ec7b 0798 4dcb 8866 c906 98f0     .-.Z{....Mf.....
 
-  803ead6:	883d 0b42 d467 0904 a0a4 6c1d 1499 9d0d     =.B.g......l....
 
-  803eae6:	85ea 689c bad7 d87c f93b 5277 56d9 ada8     ...h..|.;.wR.V..
 
-  803eaf6:	c725 6d1c b92d 8b42 3ee4 f10e 1d59 a717     %..m-.B..>..Y...
 
-  803eb06:	6513 706e 46f3 514b 244b 593b 1235 75cc     .enp.FKQK$;Y5..u
 
-  803eb16:	6a62 de2e d35a f393 6bbb b9be 474f fcd3     bj..Z....k..OG..
 
-  803eb26:	7dad 9aba 9f41 013a 9db3 175f 6144 14b0     .}..A.:..._.Da..
 
-  803eb36:	f2bd 2829 b149 de5b e848 55b7 7434 cefe     ..)(I.[.H..U4t..
 
-  803eb46:	8b8a 8237 68ea 56f5 5d1c db45 d2a3 1798     ..7..h.V.]E.....
 
-  803eb56:	cd17 5ea2 b227 db01 865b c8e7 5041 59b1     ...^'...[...AP.Y
 
-  803eb66:	4d90 428f a0e4 b362 9f70 a8a8 0276 e314     .M.B..b.p...v...
 
-  803eb76:	e305 b611 c0b2 0e0d 1cbb d9a4 0f59 740f     ............Y..t
 
-  803eb86:	e261 9816 31b8 164a 0a11 f93d 0f22 9ea1     a....1J...=."...
 
-  803eb96:	95c4 6a47 2192 047f f1ed 3ae2 2d8b b313     ..Gj.!.....:.-..
 
-  803eba6:	f7d2 322e 09dc 736b 0c5a 2eaf 8401 85d3     ...2..ksZ.......
 
-  803ebb6:	bc04 6d1e ca59 124e ffb8 3770 379c 1928     ...mY.N...p7.7(.
 
-  803ebc6:	07fc c7d9 e987 5c8f b6bc 8448 629a 2e4c     .......\..H..bL.
 
-  803ebd6:	9800 745a 4715 d30b 4d0e 4c50 251b 1a6a     ..Zt.G...MPL.%j.
 
-  803ebe6:	60d3 55a2 9128 a12d 87c9 be7e 36ad b1e0     .`.U(.-...~..6..
 
-  803ebf6:	7759 2fdc 2458 3d3e 8041 0084 f16a e461     Yw./X$>=A...j.a.
 
-  803ec06:	fa1e 29b4 141a 3490 a71f d540 cfe2 3d44     ...)...4..@...D=
 
-  803ec16:	824a 3345 a943 799b 6fb6 0aa5 18ad d722     J.E3C..y.o....".
 
-  803ec26:	a289 bc83 6c5a 0453 6ef2 a14e 9883 421f     ....ZlS..nN....B
 
-  803ec36:	d4b9 900a ccd8 4b8e 0cc7 0f63 0fc2 6e56     .......K..c...Vn
 
-  803ec46:	d978 9e3b cb1a 1d5a 7995 38b1 2980 b595     x.;...Z..y.8.)..
 
-  803ec56:	b87b f6a9 73bc 6e1c b6bb bd3a a4d6 3ccd     {....s.n..:....<
 
-  803ec66:	2403 bc5b 2db5 9505 ee29 d529 39c3 a141     .$[..-..).)..9A.
 
-  803ec76:	c705 88aa 7a26 d815 6b67 64f2 0264 bc5c     ....&z..gk.dd.\.
 
-  803ec86:	aeae ef77 cef3 c4c1 6e97 496b 50f1 a39d     ..w......nkI.P..
 
-  803ec96:	f2f0 0d77 28e4 423b 21d6 63c4 022e a1f4     ..w..(;B.!.c....
 
-  803eca6:	9c45 a0eb 7599 c2bd b486 3db3 a639 11a8     E....u.....=9...
 
-  803ecb6:	d415 d781 da26 332f 8abe 03a2 17ca 1b3c     ....&./3......<.
 
-  803ecc6:	d108 82c0 aca6 1bb2 82c7 354c db97 b860     ..........L5..`.
 
-  803ecd6:	e4a9 fd2a 1efd 444c 2f4c d440 4752 5eb7     ..*...LDL/@.RG.^
 
-  803ece6:	b898 7162 53a4 73eb 969f 6d53 dba0 6809     ..bq.S.s..Sm...h
 
-  803ecf6:	abd0 9377 1b8c a0d4 2011 2ce8 c0f8 b8f6     ..w...... .,....
 
-  803ed06:	8e43 dbc7 98e4 5d2e 8221 075b cb05 3986     C......]!.[....9
 
-  803ed16:	8aa6 642d a098 4cb6 2d10 0d44 4db3 e56a     ..-d...L.-D..Mj.
 
-  803ed26:	3c17 f667 83b3 a25e d637 5370 8932 23b9     .<g...^.7.pS2..#
 
-  803ed36:	ed84 8bd0 f619 bfe7 ba9a 25f3 f2e2 33ae     ...........%...3
 
-  803ed46:	05e1 553f 905d ccbf 6ec2 1588 9073 a888     ..?U]....n..s...
 
-  803ed56:	9553 b53c a546 19d8 c3c9 5346 876f 1349     S.<.F.....FSo.I.
 
-  803ed66:	7315 1692 5fa9 536e c8ea 6968 2455 e795     .s..._nS..hiU$..
 
-  803ed76:	a09a 9ba4 c3a5 d939 e24d 1216 ab2d e0bc     ......9.M...-...
 
-  803ed86:	dff9 ae0b 678c 8fb2 3d7a 16c6 ef19 4f24     .....g..z=....$O
 
-  803ed96:	2d85 ccca 95e9 447c a15b ec83 c769 6b1d     .-....|D[...i..k
 
-  803eda6:	edae 6db8 7584 469f 9481 d939 80b3 5016     ...m.u.F..9....P
 
-  803edb6:	4933 9a34 0798 2dea f848 d86b 60a9 48d0     3I4....-H.k..`.H
 
-  803edc6:	5872 f343 5a31 bbda 0b45 f1f5 e0b9 fa76     rXC.1Z..E.....v.
 
-  803edd6:	b114 50a8 33b3 6129 42a5 9f4c 5dc8 180c     ...P.3)a.BL..]..
 
-  803ede6:	cb0f 7039 64c9 4166 5093 eb24 a132 4450     ..9p.dfA.P$.2.PD
 
-  803edf6:	45b3 55ec 6eb1 5348 b609 61ad 0efb 1a1d     .E.U.nHS...a....
 
-  803ee06:	6b9d adb4 5e79 a3b8 b4df c00d 8af1 825c     .k..y^........\.
 
-  803ee16:	a855 7d09 fc8a ea38 b9e5 dc99 dd5c 0f82     U..}..8.....\...
 
-  803ee26:	4a4e b62a 6f29 39dd 891b 9360 dad7 ad82     NJ*.)o.9..`.....
 
-  803ee36:	083f 944c 8865 c70b 9ed2 aaec 985e b64f     ?.L.e.......^.O.
 
-  803ee46:	38d9 5100 0a86 af1c 3ec7 91f8 5420 1d0e     .8.Q.....>.. T..
 
-  803ee56:	bbf8 0bec b8b4 1b5f 8138 0336 6ac5 e054     ......_.8.6..jT.
 
-  803ee66:	91df 00a2 a37a ff2e 6c77 dbf6 7cdc bb23     ....z...wl...|#.
 
-  803ee76:	b448 824b 0331 91bd 04c4 6e4c 49de b1fd     H.K.1.....Ln.I..
 
-  803ee86:	8ca4 c021 5b90 349a 84b7 1973 cc0f d268     ..!..[.4..s...h.
 
-  803ee96:	409f 0e05 740f ecbb 0a48 c433 c615 ef03     .@...t..H.3.....
 
-  803eea6:	515f 15b4 2539 1582 5193 7f0e 22f7 aa43     _Q..9%...Q..."C.
 
-  803eeb6:	c515 48db 4018 b34c 08a3 caaf 564e 5e3f     ...H.@L.....NV?^
 
-  803eec6:	b860 af74 ac04 e803 fc04 642b dd31 1d27     `.t.......+d1.'.
 
-  803eed6:	07e0 373b 3ba9 3123 dd53 a3cb da70 79ea     ..;7.;#1S...p..y
 
-  803eee6:	e8be c0e1 1041 2af2 975b 679b 970c d6ae     ....A..*[..g....
 
-  803eef6:	6db0 94d7 0613 b9c7 dfe5 8433 42f0 2f18     .m........3..B./
 
-  803ef06:	a206 3f10 7070 2244 d775 25ab 09c6 cd10     ...?ppD"u..%....
 
-  803ef16:	de4a 8365 57b1 d354 c98b 0264 94de 7819     J.e..WT...d....x
 
-  803ef26:	330d f8d8 d542 dbc2 665f 555e 9816 e3bc     .3..B..._f^U....
 
-  803ef36:	613d 520e 1761 d52e d72d d58f bac9 0aea     =a.Ra...-.......
 
-  803ef46:	d6ad d7cb 66ce d10b 0780 d7d9 6896 87db     .....f.......h..
 
-  803ef56:	25e7 cc6d 9382 7e12 c306 0c72 272a a99d     .%m....~..r.*'..
 
-  803ef66:	e99d 35cd b86c 37a9 82d5 e8d3 8e17 44f6     ...5l..7.......D
 
-  803ef76:	2a31 efd7 0e92 10fb 9b98 13e2 ac1b bc7c     1*............|.
 
-  803ef86:	2f98 f5b2 f153 e0b7 ff86 bc0a 85d7 886f     ./..S.........o.
 
-  803ef96:	fc4f 26fd 4d87 4c50 5eec 316c 1f1c 0abc     O..&.MPL.^l1....
 
-  803efa6:	dddb d5cf 021a bb65 cf17 881b c917 0eff     ......e.........
 
-  803efb6:	e282 ad61 a3bb dbb8 e0e1 179d dd0c 3dd2     ..a............=
 
-  803efc6:	974d 177b ef9a 88b6 becd 5bae 6264 30cc     M.{........[db.0
 
-  803efd6:	4206 e390 8401 f754 6504 da23 01ab 60da     .B....T..e#....`
 
-  803efe6:	fa36 0af5 c522 2efd c830 6c29 e32a 3fee     6..."...0.)l*..?
 
-  803eff6:	2def d1bb 965a c1d6 be2e bf7d 201d 4542     .-..Z.....}.. BE
 
-  803f006:	dcaa e781 3ada 6fb5 822d f32f 6d37 402f     .....:.o-./.7m/@
 
-  803f016:	3f5c 1040 2302 a39a 74ee 28b8 e28a aa98     \?@..#...t.(....
 
-  803f026:	3961 d13c 3609 b10f 8e02 830f 9761 39be     a9<..6......a..9
 
-  803f036:	c15a 0cf2 4b04 7aab bd45 6dc6 e898 8c01     Z....K.zE..m....
 
-  803f046:	368d 1ae9 6039 b225 c1b8 d53f 41e6 0130     .6..9`%...?..A0.
 
-  803f056:	032b a1a5 0b6f a4c7 8e95 fef1 d9cd 37d4     +...o..........7
 
-  803f066:	19b8 a4cc 9d67 65d1 8632 7368 6d05 a1d0     ....g..e2.hs.m..
 
-  803f076:	f240 c623 d270 8eb1 8e5e b262 8885 dc02     @.#.p...^.b.....
 
-  803f086:	2e73 7b72 23fa d3ce 7be8 000a b415 f2c2     s.r{.#...{......
 
-  803f096:	f01c 9413 1d43 6e94 c83d ea09 1680 d302     ....C..n=.......
 
-  803f0a6:	35e2 5b68 82d2 bb72 f9e7 0e1c a42d 8f9b     .5h[..r.....-...
 
-  803f0b6:	8333 5f9a edb3 b71a 925f c768 b699 85a6     3.._...._.h.....
 
-  803f0c6:	a5c9 9b57 ed62 637d 11e2 2a63 d485 f6ed     ..W.b.}c..c*....
 
-  803f0d6:	8a5b f132 8ada 1404 2b6b c428 2b6a 9312     [.2.....k+(.j+..
 
-  803f0e6:	ada7 4c6c 5c10 686c c2ac 8943 73e7 aa38     ..lL.\lh..C..s8.
 
-  803f0f6:	371a 3f12 2745 8c77 d431 5183 927d 3a43     .7.?E'w.1..Q}.C:
 
-  803f106:	b317 2fe5 e58f 6612 e016 9544 db11 adae     .../...f..D.....
 
-  803f116:	d627 862a ca59 1dbe 564d 7cc1 4103 7968     '.*.Y...MV.|.Ahy
 
-  803f126:	05f1 740e 36f1 4eb0 7e3b 2f6b 85cc 19d8     ...t.6.N;~k/....
 
-  803f136:	fc88 e4b9 886c 85fd 4f7d 09b2 a03a d67d     ....l...}O..:.}.
 
-  803f146:	0ef9 0a5c 6485 c06a cae9 b0f7 5f29 a620     ..\..dj.....)_ .
 
-  803f156:	8e95 4d35 3087 81b3 0136 b749 f406 4c1d     ..5M.0..6.I....L
 
-  803f166:	2779 3964 fd08 78c1 3046 9e97 50f1 4694     y'd9...xF0...P.F
 
-  803f176:	8f9e 4661 93b0 e70f cc52 4d5a e1bf b7a6     ..aF....R.ZM....
 
-  803f186:	b508 9a1f 32ee 159b 34f6 ff4a 740e 1845     .....2...4J..tE.
 
-  803f196:	c57a 7b67 ac94 1ec1 cf28 6cda aa7f 2ab5     z.g{....(..l...*
 
-  803f1a6:	9dff e988 4d11 b81d 513a 38be 9578 0433     .....M..:Q.8x.3.
 
-  803f1b6:	eee8 3f43 9cbc f1ab b85b 4041 a8ce 993f     ..C?....[.A@..?.
 
-  803f1c6:	a400 7df5 5869 d451 744f 04e9 8c6a f9cb     ...}iXQ.Ot..j...
 
-  803f1d6:	ae7c 1a7a 420f 2cc9 8e42 e333 52b8 6b50     |.z..B.,B.3..RPk
 
-  803f1e6:	1c2c e3c6 c7f5 0b00 4cf6 bf71 e1f2 43b1     ,........Lq....C
 
-  803f1f6:	20e4 ac57 0052 ce1d f909 5ff9 e68f 9025     . W.R......_..%.
 
-  803f206:	0d49 4284 757d 6575 59cc 495d 6b7a 9c81     I..B}uue.Y]Izk..
 
-  803f216:	b080 90b8 0a18 57c4 6490 21a3 4395 9b8e     .......W.d.!.C..
 
-  803f226:	0d44 c199 5553 559c 080f 1caa dd98 128d     D...SU.U........
 
-  803f236:	6662 1df6 de8e ea44 e8db c1cd ec0d 4084     bf....D........@
 
-  803f246:	37b5 3f14 e45e 8068 b2fd 5d80 0a90 480e     .7.?^.h....]...H
 
-  803f256:	233a 11ca 1651 0331 0913 528c 5762 2401     :#..Q.1....RbW.$
 
-  803f266:	ec05 30b4 1527 cd58 51c8 5803 eb6f 67ec     ...0'.X..Q.Xo..g
 
-  803f276:	b853 5452 b492 e49b 63f8 9d8b d965 c881     S.RT.....c..e...
 
-  803f286:	1f3d 8c5e 0cea 35d9 b301 69da a423 6886     =.^....5...i#..h
 
-  803f296:	6bb2 3088 beb8 aa39 1412 1a69 d2e8 5106     .k.0..9...i....Q
 
-  803f2a6:	c872 0b3b c712 046f 0942 1761 5314 0da9     r.;...o.B.a..S..
 
-  803f2b6:	0d0f e1ca 0c01 593b 0e31 be61 c09b 0750     ......;Y1.a...P.
 
-  803f2c6:	c793 ca29 67f7 933e b4d9 617e 5182 226d     ..)..g>...~a.Qm"
 
-  803f2d6:	bd78 4a53 f7ae c9c5 1771 ca9c 432d bc48     x.SJ....q...-CH.
 
-  803f2e6:	f6b4 70b7 f59a 08a0 088f a761 3060 f96c     ...p......a.`0l.
 
-  803f2f6:	2acd d866 4ebf 986a 87ff 8c17 3d75 7767     .*f..Nj.....u=gw
 
-  803f306:	5528 ddfc 90e6 531b 28a2 9f8f 0275 cd83     (U.....S.(..u...
 
-  803f316:	7fba 6c6f 4bed bca6 ca77 03c6 567b ba13     ..ol.K..w...{V..
 
-  803f326:	e841 05b6 3043 015a 8820 8de2 cbc5 0c00     A...C0Z. .......
 
-  803f336:	bf3f 477c 074b 11a1 e6fa 4d48 06ea f394     ?.|GK.....HM....
 
-  803f346:	8aed 2c77 34cc 65e2 e949 c509 3494 35bb     ..w,.4.eI....4.5
 
-  803f356:	4a42 1293 0120 3124 af74 0ed7 470a 3d04     BJ.. .$1t....G.=
 
-  803f366:	da51 a7d0 3e0d 894b 76e4 1092 c822 7433     Q....>K..v..".3t
 
-  803f376:	bde8 88ec 0114 6ea4 eba4 7230 878a 0988     .......n..0r....
 
-  803f386:	d714 a33e 151e 9b39 8845 cdc3 5c28 e0d6     ..>...9.E...(\..
 
-  803f396:	6b68 420f 3f84 8833 3b2f 9825 884e 0b44     hk.B.?3./;%.N.D.
 
-  803f3a6:	4dd1 f870 0f4b 4bc9 9e8a 0036 988a d14c     .Mp.K..K..6...L.
 
-  803f3b6:	f580 5314 7f9c f41e 335c 5b9f ecee e517     ...S....\3.[....
 
-  803f3c6:	5efa 74d3 a61e 815e 618f 4315 0ab3 58bb     .^.t..^..a.C...X
 
-  803f3d6:	ea71 9290 e910 08f8 f3f3 47b4 9111 2c11     q..........G...,
 
-  803f3e6:	e61e d8f0 f903 b198 b9ac 4005 7700 0d50     ...........@.wP.
 
-  803f3f6:	3f9c 312c e3b9 1a09 2200 05b0 a386 2a30     .?,1....."....0*
 
-  803f406:	ed42 a686 4cb2 3d5d 4a75 f063 bf51 c13e     B....L]=uJc.Q.>.
 
-  803f416:	0b8d 091c 93e2 4268 a987 4e97 f6b2 2f8a     ......hB...N.../
 
-  803f426:	cc60 60ef e164 b9e0 f1f8 1180 1c20 8e1b     `..`d....... ...
 
-  803f436:	43c2 3cf4 3aac f360 9a7f 372d ec8b b8bd     .C.<.:`...-7....
 
-  803f446:	7f3a 0d7b 2a00 0d61 d452 fc46 eead fed1     :.{..*a.R.F.....
 
-  803f456:	15f5 848b 852c 320f 1bb9 538b d052 233c     ....,..2...SR.<#
 
-  803f466:	cd5d 35d7 2400 fe9d d778 e029 2f90 40ac     ]..5.$..x.)../.@
 
-  803f476:	307b 415e 9643 baf6 3234 a35c c149 2a8c     {0^AC...42\.I..*
 
-  803f486:	1830 7256 64c5 3e96 f2b9 e00c 3e77 b52a     0.Vr.d.>....w>*.
 
-  803f496:	8b3d fc6b 3993 1348 1cb3 42ff 75e0 58a0     =.k..9H....B.u.X
 
-  803f4a6:	d474 a04d 49a9 5cdc e7a6 854a afbe 2979     t.M..I.\..J...y)
 
-  803f4b6:	7d6c 5b66 6345 08a5 9e34 0273 7d20 0a72     l}f[Ec..4.s. }r.
 
-  803f4c6:	934a ef5b 67cd e0a6 b934 55ad d219 fe06     J.[..g..4..U....
 
-  803f4d6:	8a56 f134 e6bf ec2b 9a27 8611 513a b14a     V.4...+.'...:QJ.
 
-  803f4e6:	5539 d18c 553a f08a 2f4b 23ec 02c6 0989     9U..:U..K/.#....
 
-  803f4f6:	2ab8 22de b743 8d69 5545 f577 fdc4 0ca1     .*."C.i.EUw.....
 
-  803f506:	cb4d 44a6 3c69 1636 3bf5 f9ce 192c 65ce     M..Di<6..;..,..e
 
-  803f516:	5e2d 2b28 298d 94c7 99a6 d6d1 93a4 28d2     -^(+.).........(
 
-  803f526:	db05 1f81 3081 b066 2444 b1d7 e34a e7e8     .....0f.D$..J...
 
-  803f536:	dbab d85b b035 abc0 30f8 4ba3 4edb 946e     ..[.5....0.K.Nn.
 
-  803f546:	9257 1255 ba48 ca8a c917 568a c509 f23d     W.U.H......V..=.
 
-  803f556:	136c e340 a3a5 3921 a505 94af d300 a667     l.@...!9......g.
 
-  803f566:	34e0 f5b9 31f1 ed99 28d2 3588 a34a 2e22     .4...1...(.5J.".
 
-  803f576:	68f3 6893 b168 0176 5292 cd8a c689 fe84     .h.hh.v..R......
 
-  803f586:	4aa7 4935 9ca3 0c3a 2b79 1821 4c91 b56a     .J5I..:.y+!..Lj.
 
-  803f596:	a09a dba1 f2ce 7389 2aba 738b 75db 4e81     .......s.*.s.u.N
 
-  803f5a6:	6f2c 8a74 3125 6b3d 154e b9d2 534e e4cc     ,ot.%1=kN...NS..
 
-  803f5b6:	eb33 e10c 94f2 49f8 1254 ef2c 9e2b f22b     3......IT.,.+.+.
 
-  803f5c6:	86ae 2612 b8ad 95ce d77d 2b5c 0eca 66ad     ...&....}.\+...f
 
-  803f5d6:	20fb a126 e0d5 a5c6 249b d38c 8118 7b6c     . &......$....l{
 
-  803f5e6:	54d0 b53f e8c2 491a 7ac8 29bd 9187 83d1     .T?....I.z.)....
 
-  803f5f6:	5289 432d faed 684b d72b d792 6914 7cd4     .R-C..Kh+....i.|
 
-  803f606:	2b7e a66e 0b58 be44 2b54 a676 79d8 9d8d     ~+n.X.D.T+v..y..
 
-  803f616:	e3a5 ca1c 94a7 2b9d 18a8 509f be41 433c     .......+...PA.<C
 
-  803f626:	6e7b a571 d9c1 dfe5 3cd8 466b 35d1 2169     {nq......<kF.5i!
 
-  803f636:	6d54 4c17 09c0 e925 7c50 b6b3 378c 5468     Tm.L..%.P|...7hT
 
-  803f646:	4c29 59e6 0131 6f77 67ac b59b d4a5 6738     )L.Y1.wo.g....8g
 
-  803f656:	1205 aa77 4903 5db2 34cb 163c e9e7 2510     ..w..I.].4<....%
 
-  803f666:	5a2b 596d 78ab 5b52 35c6 3094 81e9 4c9a     +ZmY.xR[.5.0...L
 
-  803f676:	f2ee 3b89 adf4 c7f3 eddd 0c64 4601 21a8     ...;......d..F.!
 
-  803f686:	e6e2 f09c 58b3 6637 93b7 e9c6 16b5 b91a     .....X7f........
 
-  803f696:	5a9e e589 9d4b 94d5 2f90 9985 0ed7 d469     .Z..K..../....i.
 
-  803f6a6:	7e7c 6e2b 58a6 440b 54be 762b d8a6 8d79     |~+n.X.D.T+v..y.
 
-  803f6b6:	6bb5 78ac 1ab4 5635 505c 6e31 2952 f2b5     .k.x..5V\P1nR)..
 
-  803f6c6:	ed0c c5b9 0695 9767 637f 67f3 ac68 f9ab     ......g..c.gh...
 
-  803f6d6:	f6ec 6dca 8913 b020 486a 420b b1a4 7eb4     ...m.. .jH.B...~
 
-  803f6e6:	77ac 8630 1b85 b608 55a7 272a b3d7 3cdb     .w0......U*'...<
 
-  803f6f6:	937b e2ba e71a aba8 47a0 421d ea92 c730     {........G.B..0.
 
-  803f706:	56b0 a190 52c3 62af 5455 e558 7ea4 8a0a     .V...R.bUTX..~..
 
-  803f716:	192b cad2 3c69 0d9c daf2 ee32 2efa c99b     +...i<....2.....
 
-  803f726:	37f2 cb68 0269 df16 5e74 150b 3a52 dd29     .7h.i...t^..R:).
 
-  803f736:	3348 1c5d 8d0c f204 8c25 0a2a f1ba 9f32     H3].....%.*...2.
 
-  803f746:	c440 3667 6263 34ca ac8d d22f 8b8c 7329     @.g6cb.4../...)s
 
-  803f756:	3346 8aed 4027 51b0 04eb 14a5 26bf 109d     F3..'@.Q.....&..
 
-  803f766:	6e16 0857 5941 f8c5 86ac 1c65 2bcf 8e7b     .nW.AY....e..+{.
 
-  803f776:	999a 07cd bbb9 4332 0cd5 7489 4b42 3ac4     ......2C...tBK.:
 
-  803f786:	2a46 eb37 3898 4514 abe5 b228 18d1 93dc     F*7..8.E..(.....
 
-  803f796:	cd71 ab66 6a48 a39c e266 754e 48e4 d46d     q.f.Hj..f.Nu.Hm.
 
-  803f7a6:	0d32 c52f 3a79 c932 568a 6aa2 4f15 9d6a     2./.y:2..V.j.Oj.
 
-  803f7b6:	86b8 2612 78ad f98a cddd 4350 d50f 947f     ...&.x....PC....
 
-  803f7c6:	dd5f 0d5e 7379 17b5 e737 9aa4 b645 bb31     _.^.ys..7...E.1.
 
-  803f7d6:	349d 0d29 d8d4 2b54 1cb1 6d3c f354 8c85     .4)...T+..<mT...
 
-  803f7e6:	8a2a f3fb 205a 9a8d 6fcf cdc5 6b14 0061     *...Z ...o...ka.
 
-  803f7f6:	aa5f 3b15 ec53 c6bc 95da 8c53 a372 8a7e     _..;S.....S.r.~.
 
-  803f806:	2a0b 4dc6 a1da be56 4b5d c5c5 0695 36e7     .*.M..V.]K.....6
 
-  803f816:	427f d557 3f9a 5d43 0e3d 7cb2 ab12 562b     .BW..?C]=..|..+V
 
-  803f826:	ac0d e2ae 2346 a58d 63f5 e3bd a2ad c028     ....F#...c....(.
 
-  803f836:	e552 9f32 1f8c 6fc7 8bb2 c6a4 0a39 ea2b     R.2....o....9.+.
 
-  803f846:	8753 d491 9c4e 1867 ca2c e1d2 5549 62b3     S...N.g.,...IU.b
 
-  803f856:	5717 a93b a2ab 4a0a b492 9aaa 8ddf a307     .W;....J........
 
-  803f866:	6ed8 e6cd bba3 6e91 85bf 9631 e84e 9c59     .n.....n..1.N.Y.
 
-  803f876:	bea3 6e5c 4d2b 7a52 a9aa 36a1 b92a 5ade     ..\n+MRz...6*..Z
 
-  803f886:	e5c8 18cb 1525 e675 41f5 2912 dd9f 9586     ....%.u..A.)....
 
-  803f896:	d529 e63c 50be 5e1b d4a6 4d59 abb5 08a7     ).<..P.^..YM....
 
-  803f8a6:	46d9 14ed 5395 9b5c 47b4 bc5c 375d a545     .F...S\..G\.]7E.
 
-  803f8b6:	fb15 1b33 a13f e299 cfc6 4c50 ddf9 78d5     ..3.?.....PL...x
 
-  803f8c6:	9b52 49a1 b069 8a62 8cda 92f4 6f56 4bd6     R..Ii.b.....Vo.K
 
-  803f8d6:	de18 c7c0 4c2a a614 47fa 4ae4 f445 f822     ....*L...G.JE.".
 
-  803f8e6:	0830 a5fc 2744 809d 4a09 9728 79e0 71a3     0...D'...J(..y.q
 
-  803f8f6:	a920 56eb ed53 bdcc a678 0844 0d61 2b20      ..VS...x.D.a. +
 
-  803f906:	047b 5331 d83f 30df a266 b36f a2a1 a8d0     {.1S?..0f.o.....
 
-  803f916:	0f98 86ae c719 9a75 18db 46e1 62fe dd0b     ......u....F.b..
 
-  803f926:	b89c 2f6a ae41 3bb8 484f 4371 f137 2122     ..j/A..;OHqC7."!
 
-  803f936:	ced5 06dd 016f 6e1f abee 4ec1 3887 6838     ....o..n...N.88h
 
-  803f946:	3118 7380 fca7 405c ac7f 0807 f0f0 14fe     .1.s..\@........
 
-  803f956:	f2cf 2b4b d7d7 70d7 4cfc feae 88d6 2a3c     ..K+...p.L....<*
 
-  803f966:	3104 7020 6ee8 18b8 8596 160d 26d6 ade1     .1 p.n.......&..
 
-  803f976:	2603 0534 b20e 0b56 1023 a113 a094 e996     .&4...V.#.......
 
-  803f986:	0cc5 e47b 7d23 9f65 3b69 690c 3d34 23d5     ..{.#}e.i;.i4=.#
 
-  803f996:	7c98 54f4 73a2 ed13 8349 d047 d482 d7ed     .|.T.s..I.G.....
 
-  803f9a6:	f01f a65f 9f61 21c8 7173 a716 6b26 ac99     .._.a..!sq..&k..
 
-  803f9b6:	5d44 1f0f d655 c663 0f14 83da 5c00 5ac6     D]..U.c......\.Z
 
-  803f9c6:	5a62 5cc3 0e1a 6714 35c9 dbc8 db14 4ba9     bZ.\...g.5.....K
 
-  803f9d6:	3137 41b0 aea3 1f4d 69fc f2a3 da0c 4278     71.A..M..i....xB
 
-  803f9e6:	a356 6dad a091 3839 837e 0a00 e35d 37b8     V..m..98~...]..7
 
-  803f9f6:	8f13 45c4 28e8 ed45 121e a41f 5a64 6423     ...E.(E.....dZ#d
 
-  803fa06:	c43f 6361 5d8e 6439 231a 256b 9baa aba3     ?.ac.]9d.#k%....
 
-  803fa16:	2121 a36e 7cb7 d53a 450c 06a2 60ed 698a     !!n..|:..E...`.i
 
-  803fa26:	01a8 84ee 3bc6 2615 db05 eeff 99a2 6553     .....;.&......Se
 
-  803fa36:	024f b440 3547 4871 9240 838a 2d32 76f6     O.@.G5qH@...2-.v
 
-  803fa46:	c32b bb4f 5295 0f16 d3bf ac95 1ef6 8c16     +.O..R..........
 
-  803fa56:	0f97 8bb5 8073 d105 3c75 61ca 21a4 e204     ....s...u<.a.!..
 
-  803fa66:	e069 c63d 439b 27f3 e65a 7567 aa7e fe5e     i.=..C.'Z.gu~.^.
 
-  803fa76:	2e12 71ad 5327 bf7e 2209 31fc 9f60 e382     ...q'S~..".1`...
 
-  803fa86:	4113 0dfa 7137 2bca 5635 b9b3 6d80 ad17     .A..7q.+5V...m..
 
-  803fa96:	549e ca57 121a 4f75 2432 f1ad 0f23 4db6     .TW...uO2$..#..M
 
-  803faa6:	816d c1af 68a6 3a7a d82b 5c1f f3e3 1a1f     m....hz:+..\....
 
-  803fab6:	5fcc f00c 012f 12bd 580b 03b9 da57 6259     ._../....X..W.Yb
 
-  803fac6:	05e1 a2da 4fc4 361d 97b0 604d 5b28 4182     .....O.6..M`([.A
 
-  803fad6:	fd94 5470 2792 1201 daac d654 198d 83d3     ..pT.'....T.....
 
-  803fae6:	c5a7 3043 5f5d 5f5c 8f67 9dc5 3a46 b5c2     ..C0]_\_g...F:..
 
-  803faf6:	df4f 5301 ce17 7766 3290 6c74 0e01 7504     O..S..fw.2tl...u
 
-  803fb06:	3787 dd57 78d1 eddc 075f 3897 429d b5ae     .7W..x.._..8.B..
 
-  803fb16:	08a1 3f1b 9ba9 745d 0738 c03a 573f e636     ...?..]t8.:.?W6.
 
-  803fb26:	c756 ee5b 4030 19c8 2e72 f802 8f58 c0a1     V.[.0@..r...X...
 
-  803fb36:	a64f bc18 94ea 15e2 7d6f e741 c572 f062     O.......o}A.r.b.
 
-  803fb46:	0820 8af3 1a79 4dc7 1df3 10b2 24e0 4c90      ...y..M.....$.L
 
-  803fb56:	b0fb 89c5 dcf2 a3ed 56f8 4b9a 921f 8875     .........V.K..u.
 
-  803fb66:	f9cf 10ab ccd0 7745 4572 ae07 d3a3 8e42     ......EwrE....B.
 
-  803fb76:	f230 0a0e cf60 94af 807c 8f2b 5cbd 7327     0...`...|.+..\'s
 
-  803fb86:	48a9 d882 1b1a d74a ea41 536b f848 d04e     .H....J.A.kSH.N.
 
-  803fb96:	efe6 f437 487d 1c11 5b8e c12a a7e1 1203     ..7.}H...[*.....
 
-  803fba6:	8bd4 c29c 4971 2ed8 b73c e785 3836 e40d     ....qI..<...68..
 
-  803fbb6:	77e1 96f8 7d50 eb64 9ea7 8a54 20e9 1a92     .w..P}d...T.. ..
 
-  803fbc6:	fd50 382b 75cc 50cc 1f6d 8aa8 41b1 8ec9     P.+8.u.Pm....A..
 
-  803fbd6:	08fb 310f bf15 c795 f462 16e1 ed7d 4f05     ...1....b...}..O
 
-  803fbe6:	c056 2dd5 9f74 3f1a 4529 4747 99ef 2691     V..-t..?)EGG...&
 
-  803fbf6:	4003 056c a991 39fc 6344 6a4d cde0 8e21     .@l....9DcMj..!.
 
-  803fc06:	3416 f82d b317 fa74 ddac 6638 8815 a29c     .4-...t...8f....
 
-  803fc16:	fcf5 dea7 5a47 fbfd 2d09 277d 5e3c 10e5     ....GZ...-}'<^..
 
-  803fc26:	0a9e 8fb1 8589 a463 6f17 63ea 0648 7e03     ......c..o.cH..~
 
-  803fc36:	027e 0efc c8f2 7fc4 cf59 9b76 1ffb e9ee     ~.......Y.v.....
 
-  803fc46:	a015 8972 1f97 0bc8 fe4a 8fcc 2ad8 a378     ..r.....J....*x.
 
-  803fc56:	3c03 00ac 53da 0587 f520 5f37 ad10 257c     .<...S.. .7_..|%
 
-  803fc66:	2838 a8e4 62c5 cee2 8f6d f0f1 8c33 9c01     8(...b..m...3...
 
-  803fc76:	dbf8 79f1 d4a2 d630 da3d ae2a de22 45a8     ...y..0.=.*."..E
 
-  803fc86:	14e5 9098 e156 a842 def8 9637 8026 47bc     ....V.B...7.&..G
 
-  803fc96:	7869 0527 2c8f fef2 63bd 3741 e171 0864     ix'..,...cA7q.d.
 
-  803fca6:	c6ed 4e00 3cd1 f430 a826 48a7 3833 ac38     ...N.<0.&..H388.
 
-  803fcb6:	9c4e 6bdb abfc 9555 5735 3972 d11a 9641     N..k..U.5Wr9..A.
 
-  803fcc6:	7f98 cd9f 1d92 ec9a 6ba8 c98d 7548 a1a2     .........k..Hu..
 
-  803fcd6:	3292 1aed 9daa 77cb e06e 7a86 f25a 438c     .2.....wn..zZ..C
 
-  803fce6:	e3a8 981b e5e0 2920 2fde 1e1b bd42 7be6     ...... )./..B..{
 
-  803fcf6:	3d66 8efe 4857 0d82 bac3 b60c 6404 49ec     f=..WH.......d.I
 
-  803fd06:	42fe 8955 ac03 8ab2 6dd2 1824 07cc 7355     .BU......m$...Us
 
-  803fd16:	a581 3b71 77b2 341c 5723 5f03 762e 40b8     ..q;.w.4#W._.v.@
 
-  803fd26:	c231 df57 02ba d470 9fef 3d1c 21d7 be2b     1.W...p....=.!+.
 
-  803fd36:	dae0 970b 8b47 b630 7521 2195 4f63 4df3     ....G.0.!u.!cO.M
 
-  803fd46:	2aa0 b6e0 4108 d4c1 8b22 b036 c713 e628     .*...A..".6...(.
 
-  803fd56:	5d2a b4ce 0a15 c1c3 77cf 1dbe ecae 7f89     *].......w......
 
-  803fd66:	a32f 9284 fd45 a387 7746 1950 fc20 496a     /...E...FwP. .jI
 
-  803fd76:	34a6 f87a f510 27c3 d119 26e8 7794 01da     .4z....'...&.w..
 
-  803fd86:	3c4f 5568 70c2 a9bf 3c45 aad8 0b93 44be     O<hU.p..E<.....D
 
-  803fd96:	94e8 b106 b254 80a9 a33a 2dfe da1e 9c65     ....T...:..-..e.
 
-  803fda6:	e327 0877 69c0 737e 44f4 6c43 7540 e5e8     '.w..i~s.DCl@u..
 
-  803fdb6:	1924 c310 e6bf 3428 5cb4 753b a61e e46d     $.....(4.\;u..m.
 
-  803fdc6:	0fde d725 55ed e3c0 cbcf 2f8b 36c0 1970     ..%..U...../.6p.
 
-  803fdd6:	5c08 0303 5357 38bc 22f9 d291 2631 496d     .\..WS.8."..1&mI
 
-  803fde6:	eea3 aba7 5929 a38b 55f1 faf7 ff0e bfdf     ....)Y...U......
 
-  803fdf6:	5b45 ba31 343a 332a 54bc 1b53 0d94 073e     E[1.:4*3.TS...>.
 
-  803fe06:	8f04 2945 ca82 8188 c34f 8e30 e2c2 394e     ..E)....O.0...N9
 
-  803fe16:	9b9a d01f 0f86 5297 21ee d383 bda6 92d7     .......R.!......
 
-  803fe26:	863e 8eb3 05c9 fc1a 9f8c 2d3f 1df7 36c6     >.........?-...6
 
-  803fe36:	51b4 ab5b 12a2 7fc6 63e2 21c3 fe85 b7bf     .Q[......c.!....
 
-  803fe46:	edff c370 6da3 a0f8 7822 e6b1 a2c5 825a     ..p..m.."x....Z.
 
-  803fe56:	50ab cde7 3bbb ce58 c5c8 704b 37a2 84a8     .P...;X...Kp.7..
 
-  803fe66:	5287 09d9 ae93 1518 4f37 c1e0 0cd5 9d0d     .R......7O......
 
-  803fe76:	ead5 1f40 0bc5 7798 b1b9 c595 3336 51de     ..@....w....63.Q
 
-  803fe86:	10e5 6330 882d 811f e58d c0dd 1d30 80de     ..0c-.......0...
 
-  803fe96:	71cc 4c9e db1f 4db2 bbd4 1bc5 9a62 6268     .q.L...M....b.hb
 
-  803fea6:	4c3a 45b9 8683 87eb 8ec0 4aa8 7df1 00ca     :L.E.......J.}..
 
-  803feb6:	83d8 3fa8 115a 3e80 dc49 af11 8f9c b1c6     ...?Z..>I.......
 
-  803fec6:	e5cc 32f6 c188 21e5 43d4 dd78 bed0 155c     ...2...!.Cx...\.
 
-  803fed6:	783d 37e3 7e5b ba0a 86eb e145 cbcd a2fd     =x.7[~....E.....
 
-  803fee6:	04b5 d636 005a 0a7b 200b f838 ab3f c625     ..6.Z.{.. 8.?.%.
 
-  803fef6:	d778 f784 cada cdba 44af 199c aaa8 6d89     x........D.....m
 
-  803ff06:	330e a183 d45e 4709 2a0d 3bb4 92dc 5830     .3..^..G.*.;..0X
 
-  803ff16:	f204 bd87 831d 3ba6 d85f 72e8 535d 2dc2     .......;_..r]S.-
 
-  803ff26:	fa22 d653 5690 6be3 9416 35e2 69a7 1281     ".S..V.k...5.i..
 
-  803ff36:	2334 9751 3df3 6eb6 6d45 03f0 fd02 9dc3     4#Q..=.nEm......
 
-  803ff46:	c822 d5de e410 0e0f 813a 03e0 7203 8d30     ".......:....r0.
 
-  803ff56:	0be0 9e6c 0222 1489 2f97 450f e68d 74c1     ..l."..../.E...t
 
-  803ff66:	e0d0 5284 4832 1e6b 64a8 0267 76a2 206d     ...R2Hk..dg..vm 
 
-  803ff76:	cf75 1133 34aa 3bdd a4fc dbb8 f4a4 e2e3     u.3..4.;........
 
-  803ff86:	8292 aec1 2797 c782 5385 ab32 48e8 6d7b     .....'...S2..H{m
 
-  803ff96:	1445 54c1 e619 f608 3451 b7e6 5034 a5e7     E..T....Q4..4P..
 
-  803ffa6:	2b44 90a6 9d82 f878 61d4 35dd 99e5 8d01     D+....x..a.5....
 
-  803ffb6:	32fe ae79 64ad 974d 2beb baeb 1cde 3d70     .2y..dM..+....p=
 
-  803ffc6:	4a06 ee86 2b8f 56e7 50fa d5fe a2ec 1aad     .J...+.V.P......
 
-  803ffd6:	0cf4 998a d7a1 6174 7092 0888 00f8 e76e     ......ta.p....n.
 
-  803ffe6:	fbe0 e075 68ad 4338 f7cb c1e9 6355 dc15     ..u..h8C....Uc..
 
-  803fff6:	f6a2 364a c254 616a 82af ff75 c15c 1d73     ..J6T.ja..u.\.s.
 
-  8040006:	4c60 af3e 39f7 64ba 364f 50ca dac0 d695     `L>..9.dO6.P....
 
-  8040016:	b4aa 8e44 7e0d ab68 5787 1d5e 6154 11b1     ..D..~h..W^.Ta..
 
-  8040026:	afa7 c3a3 a25b ec70 1d97 ecbc 1182 1523     ....[.p.......#.
 
-  8040036:	ead7 c981 adeb 993c acf8 0265 9e76 405e     ......<...e.v.^@
 
-  8040046:	1501 0687 8689 9d7e 634c 13d7 4ae8 394d     ......~.Lc...JM9
 
-  8040056:	687c e74f 7a51 4f74 efd6 b16d d624 6a7e     |hO.QztO..m.$.~j
 
-  8040066:	8d74 0018 ee47 1235 ef7e 4524 10e7 8f6e     t...G.5.~.$E..n.
 
-  8040076:	dc3c 789e 6d77 d62d 780b 13a6 7a5e 7fdc     <..xwm-..x..^z..
 
-  8040086:	96a9 21fb 9cdc bfe7 c146 38d7 9af8 a21c     ...!....F..8....
 
-  8040096:	9550 7861 f9e4 704f 5f45 c07a e13d 9661     P.ax..OpE_z.=.a.
 
-  80400a6:	6797 e4b8 3bf2 0a1c 32b8 7853 b95b 198a     .g...;...2Sx[...
 
-  80400b6:	4c77 4a17 06a6 d709 327a 6d46 d051 1d6f     wL.J....z2FmQ.o.
 
-  80400c6:	ff23 bb42 518c 677c 7461 a121 332c 340c     #.B..Q|gat!.,3.4
 
-  80400d6:	f1ec 8f00 5f22 651c 5004 194c ee7c e53b     ...."_.e.PL.|.;.
 
-  80400e6:	c242 8865 4fb9 e74a 272d 36eb 2f93 529b     B.e..OJ.-'.6./.R
 
-  80400f6:	5439 10be 8b67 2c35 6168 8aab 2904 764d     9T..g.5,ha...)Mv
 
-  8040106:	2682 4318 7781 222a a587 0448 bdef ff59     .&.C.w*"..H...Y.
 
-  8040116:	bd0c a4ad bcb9 35be c5d9 fe15 d805 883c     .......5......<.
 
-  8040126:	088b 13df 4830 64fa f2b9 2140 69e3 da0f     ....0H.d..@!.i..
 
-  8040136:	dc54 6f70 8bdc 3a83 ff28 887a 017f 9a20     T.po...:(.z... .
 
-  8040146:	3705 6b12 68ba 3518 1314 9ecb add4 0307     .7.k.h.5........
 
-  8040156:	7fbc 3dc0 ceb5 4c0f b6e8 5343 f3f9 6e9b     ...=...L..CS...n
 
-  8040166:	4ea0 3fa7 1b07 df78 244a 7329 2590 8c20     .N.?..x.J$)s.% .
 
-  8040176:	e2aa 4f4c 59ff 2ef2 734b 09ab 6edc aba6     ..LO.Y..Ks...n..
 
-  8040186:	8a46 8021 c2f5 82b2 602d 19b8 bb7a 7612     F.!.....-`..z..v
 
-  8040196:	f153 9153 95a3 f336 0df0 0786 0af8 f8d6     S.S...6.........
 
-  80401a6:	4b73 6efb 0143 26eb 49c1 38c3 1a0e 8f6f     sK.nC..&.I.8..o.
 
-  80401b6:	d7d3 f50a b8da 3083 484e 701b dae6 8225     .......0NH.p..%.
 
-  80401c6:	9fed 26a3 008c b386 d927 7f82 7c02 ca70     ...&....'....|p.
 
-  80401d6:	f8f2 5344 15b4 29b7 f5dd 43a6 2ee0 4a05     ..DS...)...C...J
 
-  80401e6:	0083 48a3 c58f f01b 4c75 19b0 ec78 6bf6     ...H....uL..x..k
 
-  80401f6:	6eef a300 6fa6 de3a 86f1 3c00 50d7 553d     .n...o:....<.P=U
 
-  8040206:	ca4d 5bc3 f2b7 19ee 04aa c59a 1e75 0fa5     M..[........u...
 
-  8040216:	a9d3 3997 19be 2135 3444 c7b5 4292 4689     ...9..5!D4...B.F
 
-  8040226:	e81c f8db 6849 866f a454 f17b ef15 f3d9     ....Iho.T.{.....
 
-  8040236:	a137 80aa fde0 8ab6 6e39 f8d4 ac3a 4504     7.......9n..:..E
 
-  8040246:	bb03 6787 7cc8 64b2 fb57 8d89 b0e8 0dbe     ...g.|.dW.......
 
-  8040256:	887c 1355 8ec8 a7b9 41e6 06ae 2276 e324     |.U......A..v"$.
 
-  8040266:	16a7 dc84 16fe f802 4a3d ddcf fd4d 1a3d     ........=J..M.=.
 
-  8040276:	c8ef ef3c 4ce9 97ef 09da 7fa1 e777 086e     ..<..L......w.n.
 
-  8040286:	bf7e fb72 7749 30b7 c12b 89b5 69ff 78f2     ~.r.Iw.0+....i.x
 
-  8040296:	40fe 9bff 4ff1 26b1 130d 5963 cbe0 d1ad     .@...O.&..cY....
 
-  80402a6:	d169 2f9b f9cb 2ee7 fb6e e875 ebc6 8913     i../....n.u.....
 
-  80402b6:	7d32 5b44 e296 1b71 fedc 3adc c9bd 9834     2}D[..q....:..4.
 
-  80402c6:	53d3 e4ae bafe 2a80 5d70 b973 2321 edda     .S.....*p]s.!#..
 
-  80402d6:	b8c6 a985 cb4a 7070 2b8d 9535 d1c1 9a0d     ....J.pp.+5.....
 
-  80402e6:	ca91 c4ad b184 18fc 6891 19b6 111d 43bd     .........h.....C
 
-  80402f6:	e810 99b1 cb4a 5408 1930 f2d6 e762 ba27     ....J..T0...b.'.
 
-  8040306:	1d0c 7d3e 7a10 1055 ff28 03b4 73e5 3a69     ..>}.zU.(....si:
 
-  8040316:	7cd7 fcb3 6a14 99f4 5a5a 1b00 c960 7cd2     .|...j..ZZ..`..|
 
-  8040326:	a2ac 54b9 6c3d 5f9f 7220 8d22 663e 72f3     ...T=l._ r".>f.r
 
-  8040336:	8438 780d a5e6 4f74 9d40 1ee5 f06f 274f     8..x..tO@...o.O'
 
-  8040346:	b577 bc61 583d f0cc f34f 6d71 4fc7 08f3     w.a.=X..O.qm.O..
 
-  8040356:	d080 6d0c 3a31 ee10 0404 0247 4ab0 60b6     ...m1:....G..J.`
 
-  8040366:	c350 6803 00cc 2df2 943b 6e75 9350 9d97     P..h...-;.unP...
 
-  8040376:	ac32 dd3c 81c5 22ee 6633 bac6 4edf 211e     2.<...."3f...N.!
 
-  8040386:	6324 78f6 5bb1 5f54 b6e1 1cc5 eef6 05f9     $c.x.[T_........
 
-  8040396:	6d02 7adc 621f 5548 8929 06de 29b3 112e     .m.z.bHU)....)..
 
-  80403a6:	aeef a0fe 51e4 6f55 c8aa 0708 3b58 f45a     .....QUo....X;Z.
 
-  80403b6:	4871 b21b 7388 f21a 4f80 1c82 b1f0 46ca     qH...s...O.....F
 
-  80403c6:	e76f 0707 722c 94a6 9402 99e8 deb1 8d10     o...,r..........
 
-  80403d6:	e240 91a3 245b b2b0 2ce5 21d1 5350 03f9     @...[$...,.!PS..
 
-  80403e6:	b6dd 54b5 6cbb abe4 48af 7115 b22f 0ea9     ...T.l...H.q/...
 
-  80403f6:	8bd3 b132 4407 e728 ecd9 cc5e cf08 f5db     ..2..D(...^.....
 
-  8040406:	ccde e225 fd32 bbd4 d4b0 8ba2 f1cd 7106     ..%.2..........q
 
-  8040416:	1469 9671 006e 9012 4c50 6d50 c689 025b     i.q.n...PLPm..[.
 
-  8040426:	6a57 d24f b01b d6c5 01db b109 c925 9865     WjO.........%.e.
 
-  8040436:	009a ade0 a25a ba65 2675 8e9c c7aa 3086     ....Z.e.u&.....0
 
-  8040446:	9445 7243 7e9a 4870 9855 7704 2e19 ebd1     E.Cr.~pHU..w....
 
-  8040456:	a066 8c83 7b08 aa3f 2c01 2a82 6442 2dc8     f....{?..,.*Bd.-
 
-  8040466:	4003 346b 48be 24e0 b418 a481 838c 2df5     .@k4.H.$.......-
 
-  8040476:	88b2 8d21 0c8c fb62 46a8 12e8 eb45 9ac8     ..!...b..F..E...
 
-  8040486:	46e4 0d54 821c 4328 f4c1 d115 5832 f732     .FT...(C....2X2.
 
-  8040496:	f4b4 b16f dbe4 0379 96a7 1053 fc0f 4316     ..o...y...S....C
 
-  80404a6:	a990 fa26 7c18 4658 81c5 a00e 6417 6df9     ..&..|XF.....d.m
 
-  80404b6:	0d11 91fe 9878 ceb7 d2d8 d088 4797 ca7a     ....x........Gz.
 
-  80404c6:	9baf 8c50 b16d 3bb3 22ef 304c 08dd c40c     ..P.m..;."L0....
 
-  80404d6:	6ec7 9dba a85e 8153 c079 224f 96da 7698     .n..^.S.y.O"...v
 
-  80404e6:	501c 87bb 01c6 bd61 b072 df87 cc41 253b     .P....a.r...A.;%
 
-  80404f6:	05c4 04f8 cb46 e3f5 4b58 1469 a7c2 9fe2     ....F...XKi.....
 
-  8040506:	49bc 1781 1cc5 4a0b d990 dd38 b400 fbe6     .I.....J..8.....
 
-  8040516:	a865 336b faf5 48fd 2ed3 4d4c c1b4 8864     e.k3...H..LM..d.
 
-  8040526:	49a0 f275 9cb8 0c88 adce 235a cf98 ac69     .Iu.......Z#..i.
 
-  8040536:	2422 41d4 4ef1 0f58 4f92 c1ab b264 1ea2     "$.A.NX..O..d...
 
-  8040546:	4e7c 2a0d d593 895c 4ae1 a938 a429 8917     |N.*..\..J8.)...
 
-  8040556:	78db c310 588e 035b 6fc2 456d f614 32d6     .x...X[..omE...2
 
-  8040566:	448c 916b 40a6 f9a1 ff10 5e74 4112 ebd2     .Dk..@....t^.A..
 
-  8040576:	9e0b 3fb6 37fd 7fb3 43e8 491a 9fe6 c5b6     ...?.7...C.I....
 
-  8040586:	702b 9652 f13f d0bb 0cde e671 fa33 a258     +pR.?.....q.3.X.
 
-  8040596:	5900 538c 8eb6 9beb 20c1 6cdc d2b7 f35c     .Y.S..... .l..\.
 
-  80405a6:	a74b 258f 8604 eb34 7a23 8acc 9b60 ab16     K..%..4.#z..`...
 
-  80405b6:	fecd a0f5 1836 622e ff89 2621 4085 b677     ....6..b..!&.@w.
 
-  80405c6:	f7a0 d26f 0d74 0e6a 00c2 88b1 209c 2fd1     ..o.t.j...... ./
 
-  80405d6:	a526 39d1 6504 76ec 970b 4231 dea7 536e     &..9.e.v..1B..nS
 
-  80405e6:	a6c0 8501 ea06 788b c0a8 c979 fa4c 035b     .......x..y.L.[.
 
-  80405f6:	cc85 f19d 8863 bc1b d03c 7093 ff7d 7432     ....c...<..p}.2t
 
-  8040606:	128f 11f0 c6b8 7a1c 7d98 28be f997 b87b     .......z.}.(..{.
 
-  8040616:	df4f 53db 8974 3f27 5eab f06b ebf4 c650     O..St.'?.^k...P.
 
-  8040626:	35fc 133e 28b3 1242 9cfb 7e86 f6e0 d855     .5>..(B....~..U.
 
-  8040636:	0ec3 0587 5576 1719 2c19 ae44 b69e dde0     ....vU...,D.....
 
-  8040646:	5d57 d1a2 1bcb 91e7 3a60 c02b 564f 3e80     W]......`:+.OV.>
 
-  8040656:	bb66 cff5 fdbf b7e3 05ff fcff b7eb fdff     f...............
 
-  8040666:	dfed bcff d011 d0dc 7471 6f59 5fe4 81a8     ........qtYo._..
 
-  8040676:	a67f ff7f dbf1 7d3f e3fb 4d79 138d fd4d     ......?}..yM..M.
 
-  8040686:	542b 3fff fedf bce9 2606 0689 edfe 3fdb     +T.?.....&.....?
 
-  8040696:	fb7f 6fb7 847f ff7f b7fb 0bff 9d68 d4d9     ...o........h...
 
-  80406a6:	f2f0 2e2c 9d1a 6c57 5e7c c9b1 aea5 78df     ..,...Wl|^.....x
 
-  80406b6:	0031 399b 8d67 50c1 3ef1 6613 b119 4ab3     1..9g..P.>.f...J
 
-  80406c6:	41bb ab39 1fb4 a701 9c45 017f b7ad 3229     .A9.....E.....)2
 
-  80406d6:	6aa7 7143 a3c1 8bbc c0f2 6d2b bf81 3aad     .jCq......+m...:
 
-  80406e6:	419c 4af4 1133 811a 3ada a241 6c05 0b63     .A.J3....:A..lc.
 
-  80406f6:	3af0 eeaf 39df 1775 5b99 b000 1a31 9a8c     .:...9u..[..1...
 
-  8040706:	b5d3 7a8b 8ccd b3c4 041b 087d d441 e8d1     ...z......}.A...
 
-  8040716:	0212 7822 85b7 d41d 9d4d f053 6f1e aa45     .."x....M.S..oE.
 
-  8040726:	4758 61f1 2d6a 0d91 1a15 3074 b979 a818     XG.aj-....t0y...
 
-  8040736:	7f66 110c 31f9 955b d7cb 2ee9 ef5b bde0     f....1[.....[...
 
-  8040746:	6db1 5189 e563 f8b2 bd3d 9550 4d20 eb1c     .m.Qc...=.P. M..
 
-  8040756:	4a6c efb3 b05c 55f3 f0dd 9ae3 2064 06cb     lJ..\..U....d ..
 
-  8040766:	048d 0480 6f45 22e0 c070 925b 3aba 7079     ....Eo."p.[..:yp
 
-  8040776:	bc69 b428 1405 28cd 821c 5dde 57ec eb4b     i.(....(...].WK.
 
-  8040786:	97c7 f4c8 6b60 80bc d1d0 1f60 3d5d ead3     ....`k....`.]=..
 
-  8040796:	caa4 9b36 db22 eb66 3179 fae5 2191 ac7f     ..6.".f.y1...!..
 
-  80407a6:	1836 e7d2 a6ed 2ac0 b9c0 ab96 1c49 d916     6......*....I...
 
-  80407b6:	1023 b00b b62e 470c 5d3d 1f25 c248 057c     #......G=]%.H.|.
 
-  80407c6:	fc11 63b4 041f ae3f 5761 5b23 0672 1ed1     ...c..?.aW#[r...
 
-  80407d6:	e29e 155a 26dc 136f 76b8 d4d0 6f20 f19d     ..Z..&o..v.. o..
 
-  80407e6:	253d 44ce 6dc5 65d9 428d eb02 dd2b d497     =%.D.m.e.B..+...
 
-  80407f6:	e7d8 e388 98d4 6f60 3991 48c2 0828 6c64     ......`o.9.H(.dl
 
-  8040806:	8d0f 2bd0 dbab c4e1 a1d4 8dbc 0f60 3b43     ...+........`.C;
 
-  8040816:	8716 e07b 7560 a402 4faf 0729 b491 3a0d     ..{.`u...O)....:
 
-  8040826:	1ac8 6274 cd4b 582f caac ca6e bc18 9662     ..tbK./X..n...b.
 
-  8040836:	e9c1 8350 5607 b57b f2e8 a005 a491 c11f     ..P..V{.........
 
-  8040846:	9848 bba3 df02 8373 cb83 f960 52d6 45e8     H.....s...`..R.E
 
-  8040856:	b56e 746c 86e5 cb98 9ae8 c84e 8b34 d45b     n.lt......N.4.[.
 
-  8040866:	1871 6ed1 cab1 ef5d 7795 dc36 8bf7 201c     q..n..]..w6.... 
 
-  8040876:	7270 7ec4 b8cb 8635 9e86 dd71 5fed fc97     pr.~..5...q.._..
 
-  8040886:	1238 46af ca39 9501 6bb3 3fa3 43c6 705f     8..F9....k.?.C_p
 
-  8040896:	78ef faa0 f4a6 5a92 877f d9ef b3c1 4a89     .x.....Z.......J
 
-  80408a6:	2f76 c7cb 9d3e e4a9 79a5 3e57 0b22 87e3     v/..>....yW>"...
 
-  80408b6:	ee1f 5795 44c8 3a91 5f87 6aab 8535 4478     ...W.D.:._.j5.xD
 
-  80408c6:	af50 e6a1 5316 e090 4663 0e99 e1df 305b     P....S..cF....[0
 
-  80408d6:	e0ef 0aff ef31 c08f 2ee0 ba26 a4b6 c313     ....1.....&.....
 
-  80408e6:	6ae8 65ff 4bf4 f8f5 be8b 496c 26e7 5c20     .j.e.K....lI.& \
 
-  80408f6:	d218 3687 727d 4efb cd0d b87a f3bd 4f85     ...6}r.N..z....O
 
-  8040906:	4764 a101 c034 06c0 6f89 4f10 25ff 957b     dG..4....o.O.%{.
 
-  8040916:	6352 56ec d59f e034 9810 7e9a dd7d 421f     Rc.V..4....~}..B
 
-  8040926:	b368 5769 c673 fea3 fae8 b02d d07a c0e0     h.iWs.....-.z...
 
-  8040936:	0799 3f4d e0ea 1100 dcb9 2104 289d b8a2     ..M?.......!.(..
 
-  8040946:	854f 4988 97aa 8b2e 3e97 74d8 e933 9003     O..I.....>.t3...
 
-  8040956:	3ba6 98cd f5dc 9a47 0341 19a0 71a3 4dff     .;....G.A....q.M
 
-  8040966:	e043 9ad1 b458 83f4 d2d0 3a8f e0c8 c33e     C...X......:..>.
 
-  8040976:	fe55 d903 f4dc e5e0 5e02 ec89 aaef a52d     U........^....-.
 
-  8040986:	b86b 9353 c6db be1f 7317 b680 4856 c093     k.S......s..VH..
 
-  8040996:	d133 03b0 0185 60b7 28c8 b3ab 331e 189e     3......`.(...3..
 
-  80409a6:	6b33 af8b 83ae 4e2f 96b3 77bd 0156 1487     3k..../N...wV...
 
-  80409b6:	f689 c3d0 c834 f633 624a e689 af8d 37fa     ....4.3.Jb.....7
 
-  80409c6:	a9f3 3fa8 6298 c221 a00f aafc 8ea7 21fa     ...?.b!........!
 
-  80409d6:	0fc8 d6ba f489 0e96 0d3d 38d8 733e 57e0     ........=..8>s.W
 
-  80409e6:	f736 26a1 5527 1ff4 d92c ab43 a31b 0000     6..&'U..,.C.....
 
-  80409f6:	5825 4c00 676f 756f 5474 726d 3f00 6600     %X.LogoutTmr.?.f
 
-  8040a06:	6e75 0063 7322 6f74 2270 d000 d0a2 d1b5     unc."stop"......
 
-  8040a16:	d181 2082 bed0 81d1 82d1 b0d0 bdd0 bed0     ... ............
 
-  8040a26:	b2d0 bbd0 b5d0 bdd0 0021 90d0 b4d0 bcd0     ........!.......
 
-  8040a36:	b8d0 bdd0 b8d0 81d1 82d1 80d1 b0d0 82d1     ................
 
-  8040a46:	bed0 80d1 2820 9ed0 81d1 82d1 b0d0 bdd0     .... (..........
 
-  8040a56:	bed0 b2d0 bbd0 b5d0 bdd0 0029 a2d0 b5d0     ..........).....
 
-  8040a66:	81d1 82d1 d020 d0bd 20b5 83d1 b4d0 b0d0     .... .... ......
 
-  8040a76:	bbd0 bed0 81d1 8cd1 d020 d1be d181 d082     ........ .......
 
-  8040a86:	d0b0 d0bd d0be d0b2 d1b8 d182 218c 2200     .............!."
 
-  8040a96:	6964 6373 6168 6772 2265 d000 d0a2 d1b5     discharge"......
 
-  8040aa6:	d181 2082 b7d0 b0d0 bfd0 83d1 89d1 b5d0     ... ............
 
-  8040ab6:	bdd0 0021 90d0 b4d0 bcd0 b8d0 bdd0 b8d0     ..!.............
 
-  8040ac6:	81d1 82d1 80d1 b0d0 82d1 bed0 80d1 2820     .............. (
 
-  8040ad6:	97d0 b0d0 bfd0 83d1 89d1 b5d0 bdd0 0029     ..............).
 
-  8040ae6:	a2d0 b5d0 81d1 82d1 d020 d0bd 20b5 83d1     ........ .... ..
 
-  8040af6:	b4d0 b0d0 bbd0 bed0 81d1 8cd1 d020 d0b7     ............ ...
 
-  8040b06:	d0b0 d1bf d183 d181 d082 d1b8 d182 218c     ...............!
 
-  8040b16:	2200 6974 656d 0022 6322 6e61 6563 226c     ."time"."cancel"
 
-  8040b26:	d000 d192 d08b d0ba d1bb d18e d087 d0b5     ................
 
-  8040b36:	d0bd d0b8 20b5 98d0 91d0 9fd0 d020 d1be     ..... ...... ...
 
-  8040b46:	d082 d0bc d0b5 d0bd d0b5 d0bd 21be d000     .............!..
 
-  8040b56:	d192 d08b d0ba d1bb d18e d087 d0b5 d0bd     ................
 
-  8040b66:	d0b8 20b5 98d0 91d0 9fd0 d020 d0bd 20b5     ... ...... .... 
 
-  8040b76:	83d1 b4d0 b0d0 bbd0 bed0 81d1 8cd1 d020     .............. .
 
-  8040b86:	d1be d082 d0bc d0b5 d0bd d1b8 d182 218c     ...............!
 
-  8040b96:	2200 666f 2266 6100 7466 7265 7400 006f     ."off".after.to.
 
-  8040ba6:	9fd0 b5d0 80d1 b5d0 b7d0 b0d0 b3d0 80d1     ................
 
-  8040bb6:	83d1 b7d0 bad0 b0d0 d020 d098 d091 219f     ........ ......!
 
-  8040bc6:	d000 d19e d082 d0bc d0b5 d0bd 20b0 bfd0     ............. ..
 
-  8040bd6:	b5d0 80d1 b5d0 b7d0 b0d0 b3d0 80d1 83d1     ................
 
-  8040be6:	b7d0 bad0 b8d0 d020 d098 d091 219f 4800     ...... ......!.H
 
-  8040bf6:	5454 2f50 2e31 2030 3032 2030 4b4f 0a0d     TTP/1.0 200 OK..
 
-  8040c06:	6f43 746e 6e65 2d74 7954 6570 743a 7865     Content-Type:tex
 
-  8040c16:	2f74 7468 6c6d 0a0d 6553 2d74 6f43 6b6f     t/html..Set-Cook
 
-  8040c26:	6569 203a 6e75 6d61 3d65 0d00 530a 7465     ie: uname=...Set
 
-  8040c36:	432d 6f6f 696b 3a65 6920 3d64 0d00 530a     -Cookie: id=...S
 
-  8040c46:	7465 432d 6f6f 696b 3a65 7220 6c6f 3d65     et-Cookie: role=
 
-  8040c56:	0030 0a0d 6553 2d74 6f43 6b6f 6569 203a     0...Set-Cookie: 
 
-  8040c66:	7561 6874 303d 3c00 4421 434f 5954 4550     auth=0.<!DOCTYPE
 
-  8040c76:	6820 6d74 3e6c 683c 6d74 206c 616c 676e      html><html lang
 
-  8040c86:	3e3d 683c 6165 3e64 6d3c 7465 2061 7468     =><head><meta ht
 
-  8040c96:	7074 652d 7571 7669 223d 6572 7266 7365     tp-equiv="refres
 
-  8040ca6:	2268 6320 6e6f 6574 746e 223d 3b30 7275     h" content="0;ur
 
-  8040cb6:	3d6c 692f 646e 7865 682e 6d74 226c 3e2f     l=/index.html"/>
 
-  8040cc6:	2f3c 6568 6461 3c3e 682f 6d74 3e6c 0a0d     </head></html>..
 
-  8040cd6:	0a0d 2600 6c00 676f 6e69 003d 6170 7373     ...&.login=.pass
 
-  8040ce6:	6f77 6472 003d 0a0d 6553 2d74 6f43 6b6f     word=...Set-Cook
 
-  8040cf6:	6569 203a 6f72 656c 003d 9fd0 bed0 bbd0     ie: role=.......
 
-  8040d06:	8cd1 b7d0 bed0 b2d0 b0d0 82d1 b5d0 bbd0     ................
 
-  8040d16:	8cd1 6f00 6e77 7265 003d 7973 4c73 636f     ...owner=.sysLoc
 
-  8040d26:	7461 6f69 3d6e 6300 6d6f 656d 746e 003d     ation=.comment=.
 
-  8040d36:	6572 6461 635f 6d6f 756d 696e 7974 003d     read_community=.
 
-  8040d46:	7277 7469 5f65 6f63 6d6d 6e75 7469 3d79     write_community=
 
-  8040d56:	6d00 6e61 6761 7265 5049 003d 616d 616e     .managerIP=.mana
 
-  8040d66:	6567 4972 3250 003d 616d 616e 6567 4972     gerIP2=.managerI
 
-  8040d76:	3350 003d 616d 616e 6567 4972 3450 003d     P3=.managerIP4=.
 
-  8040d86:	616d 616e 6567 4972 3550 003d 6864 7063     managerIP5=.dhcp
 
-  8040d96:	003d 7069 6461 7264 003d 7767 003d 616d     =.ipaddr=.gw=.ma
 
-  8040da6:	6b73 003d 7561 6874 003d 7372 655f 616e     sk=.auth=.rs_ena
 
-  8040db6:	6c62 6465 003d 7372 735f 7265 6576 3d72     bled=.rs_server=
 
-  8040dc6:	7200 5f73 6f70 7472 003d 7372 705f 6477     .rs_port=.rs_pwd
 
-  8040dd6:	003d 7372 6b5f 7965 003d 6964 3d31 7200     =.rs_key=.di1=.r
 
-  8040de6:	316f 003d 6f72 3d32 6e00 7074 003d 746e     o1=.ro2=.ntp=.nt
 
-  8040df6:	7370 7265 6976 3d70 7400 6d69 3d65 7500     pservip=.time=.u
 
-  8040e06:	6374 003d 5448 5054 7000 6f72 6164 6574     tc=.HTTP.prodate
 
-  8040e16:	003d 5448 5054 312f 302e 3220 3030 4f20     =.HTTP/1.0 200 O
 
-  8040e26:	0d4b 430a 6e6f 6574 746e 542d 7079 3a65     K..Content-Type:
 
-  8040e36:	6574 7478 682f 6d74 0d6c 0d0a 540a 7572     text/html....Tru
 
-  8040e46:	0065 6170 6567 003d 6c61 006c 5448 5054     e.page=.all.HTTP
 
-  8040e56:	312f 312e 3220 3030 4f20 0d4b 430a 6e6f     /1.1 200 OK..Con
 
-  8040e66:	6574 746e 4c2d 6e65 7467 3a68 6c25 0d75     tent-Length:%lu.
 
-  8040e76:	0d0a 000a 7375 7265 616e 656d 003d 6c6f     ....username=.ol
 
-  8040e86:	7064 7361 3d73 6e00 7765 6170 7373 003d     dpass=.newpass=.
 
-  8040e96:	9fd0 b0d0 80d1 bed0 bbd0 8cd1 d120 d183     ............ ...
 
-  8040ea6:	d081 d0bf d1b5 d088 d0bd 20be b8d0 b7d0     ........... ....
 
-  8040eb6:	bcd0 b5d0 bdd0 91d1 bdd0 d000 d092 d0b2     ................
 
-  8040ec6:	d0b5 d0b4 d0b5 d1bd 208b bdd0 b5d0 bad0     ......... ......
 
-  8040ed6:	bed0 80d1 80d1 b5d0 bad0 82d1 bdd0 8bd1     ................
 
-  8040ee6:	b5d0 d020 d0b4 d0b0 d0bd d1bd d08b 21b5     .. ............!
 
-  8040ef6:	d000 d092 d0b2 d0b5 d1b4 d091 20bd bdd0     ............. ..
 
-  8040f06:	b5d0 b2d0 b5d0 80d1 bdd0 8bd1 b9d0 d020     .............. .
 
-  8040f16:	d0bf d1b0 d080 d0be d1bb 218c 4700 5445     ...........!.GET
 
-  8040f26:	2f20 616d 6e69 632e 7373 4700 5445 2f20      /main.css.GET /
 
-  8040f36:	6f72 6574 2e6b 6e70 0067 4547 2054 662f     rotek.png.GET /f
 
-  8040f46:	7661 6369 6e6f 692e 6f63 4700 5445 2f20     avicon.ico.GET /
 
-  8040f56:	6f72 656c 6a2e 0073 4f50 5453 2f20 6f6c     role.js.POST /lo
 
-  8040f66:	6967 2e6e 6763 0069 6c2f 676f 6e69 682e     gin.cgi./login.h
 
-  8040f76:	6d74 006c 6f54 206f 6f6c 676e 5020 534f     tml.Too long POS
 
-  8040f86:	2054 6572 7571 7365 2174 0a0d 4700 5445     T request!...GET
 
-  8040f96:	2f20 616d 6e69 6a2e 0073 4547 2054 732f      /main.js.GET /s
 
-  8040fa6:	7465 6974 676e 2e73 7468 6c6d 2f00 6e69     ettings.html./in
 
-  8040fb6:	6564 2e78 7468 6c6d 4700 5445 2f20 6e69     dex.html.GET /in
 
-  8040fc6:	6f66 682e 6d74 006c 4547 2054 682f 7369     fo.html.GET /his
 
-  8040fd6:	6f74 7972 682e 6d74 006c 4547 2054 752f     tory.html.GET /u
 
-  8040fe6:	7370 685f 7369 6f74 7972 682e 6d74 006c     ps_history.html.
 
-  8040ff6:	4547 2054 672f 7465 734a 6e6f 632e 6967     GET /getJson.cgi
 
-  8041006:	4700 5445 2f20 6573 7474 6e69 7367 632e     .GET /settings.c
 
-  8041016:	6967 5000 534f 2054 732f 7465 6974 676e     gi.POST /setting
 
-  8041026:	2e73 6763 0069 5448 5054 312f 312e 3220     s.cgi.HTTP/1.1 2
 
-  8041036:	3030 4f20 0d4b 000a 213c 4f44 5443 5059     00 OK...<!DOCTYP
 
-  8041046:	2045 7468 6c6d 3c3e 7468 6c6d 6c20 6e61     E html><html lan
 
-  8041056:	3d67 3c3e 6568 6461 3c3e 656d 6174 6820     g=><head><meta h
 
-  8041066:	7474 2d70 7165 6975 3d76 7222 6665 6572     ttp-equiv="refre
 
-  8041076:	6873 2022 6f63 746e 6e65 3d74 3022 753b     sh" content="0;u
 
-  8041086:	6c72 2f3d 6573 7474 6e69 7367 682e 6d74     rl=/settings.htm
 
-  8041096:	226c 3e2f 2f3c 6568 6461 3c3e 682f 6d74     l"/></head></htm
 
-  80410a6:	3e6c 0a0d 0a0d 4700 5445 2f20 6e69 6f66     l>.....GET /info
 
-  80410b6:	632e 6967 5000 534f 2054 692f 666e 2e6f     .cgi.POST /info.
 
-  80410c6:	6763 0069 213c 4f44 5443 5059 2045 7468     cgi.<!DOCTYPE ht
 
-  80410d6:	6c6d 3c3e 7468 6c6d 6c20 6e61 3d67 3c3e     ml><html lang=><
 
-  80410e6:	6568 6461 3c3e 656d 6174 6820 7474 2d70     head><meta http-
 
-  80410f6:	7165 6975 3d76 7222 6665 6572 6873 2022     equiv="refresh" 
 
-  8041106:	6f63 746e 6e65 3d74 3022 753b 6c72 2f3d     content="0;url=/
 
-  8041116:	6e69 6f66 682e 6d74 226c 3e2f 2f3c 6568     info.html"/></he
 
-  8041126:	6461 3c3e 682f 6d74 3e6c 0a0d 0a0d 4700     ad></html>.....G
 
-  8041136:	5445 2f20 6968 7473 726f 2e79 6763 0069     ET /history.cgi.
 
-  8041146:	4547 2054 752f 7370 685f 7369 6f74 7972     GET /ups_history
 
-  8041156:	632e 6967 5000 534f 2054 622f 7461 745f     .cgi.POST /bat_t
 
-  8041166:	7365 2e74 6763 0069 4f50 5453 2f20 7075     est.cgi.POST /up
 
-  8041176:	5f73 6f70 6577 2e72 6763 0069 4547 2054     s_power.cgi.GET 
 
-  8041186:	722f 7365 7465 632e 6967 4700 5445 2f20     /reset.cgi.GET /
 
-  8041196:	6572 6f62 746f 632e 6967 4700 5445 2f20     reboot.cgi.GET /
 
-  80411a6:	6f63 666e 7269 2e6d 6763 0069 4547 2054     confirm.cgi.GET 
 
-  80411b6:	662f 5f77 7075 6164 6574 632e 6967 5000     /fw_update.cgi.P
 
-  80411c6:	534f 2054 632f 6168 676e 7065 6477 632e     OST /changepwd.c
 
-  80411d6:	6967 4700 5445 2f20 6573 5074 6f72 6164     gi.GET /setProda
 
-  80411e6:	6574 632e 6967 0000 0000                    te.cgi....
 
- 080411f0 <file__ups_history_html>:
 
-  80411f0:	4c00 0804 4694 0804 46a8 0804 0541 0000     .L...F...F..A...
 
-  8041200:	0001 0000                                   ....
 
- 08041204 <data__main_js>:
 
-  8041204:	6d2f 6961 2e6e 736a 0000 0000 5448 5054     /main.js....HTTP
 
-  8041214:	312f 312e 3220 3030 4f20 0d4b 530a 7265     /1.1 200 OK..Ser
 
-  8041224:	6576 3a72 6c20 4977 2f50 2e31 2e33 2031     ver: lwIP/1.3.1 
 
-  8041234:	6828 7474 3a70 2f2f 6173 6176 6e6e 6861     (http://savannah
 
-  8041244:	6e2e 6e6f 6e67 2e75 726f 2f67 7270 6a6f     .nongnu.org/proj
 
-  8041254:	6365 7374 6c2f 6977 2970 0a0d 6f43 746e     ects/lwip)..Cont
 
-  8041264:	6e65 2d74 654c 676e 6874 203a 3031 3136     ent-Length: 1061
 
-  8041274:	0d31 430a 6e6f 656e 7463 6f69 3a6e 4320     1..Connection: C
 
-  8041284:	6f6c 6573 0a0d 6f43 746e 6e65 2d74 7974     lose..Content-ty
 
-  8041294:	6570 203a 7061 6c70 6369 7461 6f69 2f6e     pe: application/
 
-  80412a4:	2d78 616a 6176 6373 6972 7470 0a0d 6f43     x-javascript..Co
 
-  80412b4:	746e 6e65 2d74 6e45 6f63 6964 676e 203a     ntent-Encoding: 
 
-  80412c4:	7a67 7069 0a0d 6143 6863 2d65 6f43 746e     gzip..Cache-Cont
 
-  80412d4:	6f72 3a6c 7020 6972 6176 6574 202c 616d     rol: private, ma
 
-  80412e4:	2d78 6761 3d65 3638 3034 0d30 0d0a 1f0a     x-age=86400.....
 
-  80412f4:	088b 0000 0000 0400 ed0a 097d 1b73 9647     ..........}.s.G.
 
-  8041304:	5fe6 d629 2978 2cc0 b880 0178 212a 4a28     ._).x).,..x.*!(J
 
-  8041314:	35b6 6ba1 da24 599e cd8a 0ba8 8940 0a00     .5.k$..Y....@...
 
-  8041324:	1542 c948 2324 eedc 99e9 688e 78c7 77a3     B.H.$#.....h.x.w
 
-  8041334:	7763 6363 f67b 05f8 8f6e ad35 d5f1 f311     cwcc{...n.5.....
 
-  8041344:	c00b 347f 7bdf 5999 0595 1480 bb65 3d3d     ...4.{.Y....e.==
 
-  8041354:	1331 9121 9995 af2f 2f97 be5f 932b c99d     1.!.../../_.+...
 
-  8041364:	4bd0 68c2 bc68 7055 278a 20e3 8c99 8687     .K.hh.Up.'. ....
 
-  8041374:	791f 4193 4c30 ddca b920 0fdd f3e8 8be6     .y.A0L.. .......
 
-  8041384:	3e3b ce20 0a3a e3be c1f8 619d b54c 729c     ;> .:......aL..r
 
-  8041394:	bc9c 07e8 68e5 78e4 f261 aec2 2958 5b94     .....h.xa...X).[
 
-  80413a4:	9e28 391c c363 47b3 38ce de0e 47e9 524e     (..9c..G.8...GNR
 
-  80413b4:	8198 b62f 4ec2 e0a1 d8ad 4ae5 78bd baa3     ../..N.....J.x..
 
-  80413c4:	2f64 e655 f4db d45a 6f8c 871f 3f43 2e3a     d/U...Z..o..C?:.
 
-  80413d4:	838f 9367 4e20 19de 833b 60a0 94ca 6c59     ..g. N..;..`..Yl
 
-  80413e4:	05f9 78b7 5676 c6d0 3be9 f389 8f0e 4315     ...xvV...;.....C
 
-  80413f4:	44e9 02e3 e3b5 7bd8 678e 9ef9 0e15 3a0f     .D.....{.g.....:
 
-  8041404:	6da8 9345 7c44 8e8c 96c7 24eb 9e07 4233     .mE.D|.....$..3B
 
-  8041414:	30e1 1f18 c124 4460 4959 0838 41fa b127     .0..$.`DYI8..A'.
 
-  8041424:	87e2 71d1 b630 9be2 0bc8 2fc6 2df6 aed7     ...q0....../.-..
 
-  8041434:	dcb4 4eeb 1fb9 bb0c af49 aee5 14ac ec53     ...N....I.....S.
 
-  8041444:	b9ec dafb de60 bddb d777 071b 124e de10     ....`...w...N...
 
-  8041454:	2468 9dae 5b22 dc14 b892 d4c7 84ba 42f8     h$.."[.........B
 
-  8041464:	f2d1 6166 9ae4 4c14 3c3f a4c2 5669 995e     ..fa...L?<..iV^.
 
-  8041474:	4b47 d81d cb4e 772b 71c2 ec9c c2f4 dfbe     GK..N.+w.q......
 
-  8041484:	ba2a 6765 0a34 3e86 0127 9599 5b15 c572     *.eg4..>'....[r.
 
-  8041494:	d9dd 2d85 9638 bf3b 150a ad4b 1f9d a3c6     ...-8.;...K.....
 
-  80414a4:	f3be 76c2 4f4f b74d 791f 6687 e8b6 5c9e     ...vOOM..y.f...\
 
-  80414b4:	f774 8bb5 d2ee afa2 b85d eee8 1755 9bdd     t.......]...U...
 
-  80414c4:	7459 6460 81f0 0fd3 f8b1 6da0 1c39 c8cc     Yt`d.......m9...
 
-  80414d4:	a2c2 815b b1d5 56ba 0acf a7ad a1d6 b7d5     ..[....V........
 
-  80414e4:	2d06 7ec7 888b f1c8 bc0f 3068 0c98 c441     .-.~......h0..A.
 
-  80414f4:	1166 8acb e3dc 9871 b904 8f6c 07b2 d0ce     f.....q...l.....
 
-  8041504:	06e9 3be3 010f e7e7 6a32 09c8 3972 e475     ...;....2j..r9u.
 
-  8041514:	7274 0d39 74e4 3973 c86b 51e9 384e 7c72     tr9..ts9k..QN8r|
 
-  8041524:	8c7f 4854 eea9 be31 0a9e f8c8 df10 f487     ..TH..1.........
 
-  8041534:	8e3d e20f 7c60 1014 5f58 8c66 71a2 e482     =...`|..X_f..q..
 
-  8041544:	2640 030f 80cc 37b1 76c4 ab52 ba8c cf7e     @&.....7.vR...~.
 
-  8041554:	991b b2c5 0bd7 c3bc 3fc0 2d3d 3448 7705     .........?=-H4.w
 
-  8041564:	521e 41c7 171c 967a dc69 5879 7e9a fd3e     .R.A..z.i.yX.~>.
 
-  8041574:	fcf2 e9e3 f3cb 1b9f bfe7 ff38 f9f9 4827     ..........8...'H
 
-  8041584:	377c 27fd 9afa 317e dcfd a22c 1a32 16af     |7.'..~1..,.2...
 
-  8041594:	f9ad c226 26f9 357e fafd effc bfa6 4d7f     ..&..&~5.......M
 
-  80415a4:	a7c5 3996 dcfd fe98 e9ef e7e7 9f3f 457e     ...9........?.~E
 
-  80415b4:	7f9f a740 225f 12f1 bedd 3aca 5a2d 1102     ..@._".....:-Z..
 
-  80415c4:	d0c1 fb71 9f81 694d 7979 94c1 e70e f3c6     ..q...Miyy......
 
-  80415d4:	fb68 9dd6 1ff7 dc1b c7f0 cf98 cc4b d16e     h...........K.n.
 
-  80415e4:	ee9c 064f 306e f42e c0d1 fff4 bf4c ff3b     ..O.n0......L.;.
 
-  80415f4:	fcf8 e313 75aa fbb7 9ea3 0433 1d27 5e87     .....u....3.'..^
 
-  8041604:	4061 fc2d 9a2f 818c 11c9 5f32 7f4d c407     a@-./.....2_M...
 
-  8041614:	827e 3a49 079e bfc4 ddae 8845 a8f6 ffd5     ~.I:......E.....
 
-  8041624:	a3c7 39e7 8f18 dfef 687b 3354 a53c 938b     ...9....{hT3<...
 
-  8041634:	8c1b 9963 408f c6ee 464e 73ee 99ab e0ab     ..c..@..NF.s....
 
-  8041644:	e65a b487 2e13 91ad 9091 70bf d858 731a     Z..........pX..s
 
-  8041654:	64bd 8275 7585 79b0 a92e 59d3 0758 ebdb     .du..u.y...YX...
 
-  8041664:	3a92 85dd b075 d301 c33a 198c 93ce f336     .:..u...:.....6.
 
-  8041674:	7145 cda4 ee70 2b94 43f7 3dec 58c9 be75     Eq..p..+.C.=.Xu.
 
-  8041684:	4e6c 3b7f 397d 03fd 1a51 ee28 3615 a7c4     lN.;}9..Q.(..6..
 
-  8041694:	6fd3 dfa7 b419 a62b e25f b7ff 8ae6 62bb     .o....+._......b
 
-  80416a4:	992e ead6 0acf b5b5 4abd 6d69 b4ff 5f86     .........Jim..._
 
-  80416b4:	7d8d d8fc 3fda abdd f754 fcdb 3fc9 c5da     .}...?..T....?..
 
-  80416c4:	e527 1d7f b7b8 cb56 8e09 9c5f 47e4 7f4e     '.....V..._..GN.
 
-  80416d4:	1412 4bdb 6695 1b01 2912 73c9 6e4b 1cf4     ...K.f...).sKn..
 
-  80416e4:	329b f077 2d14 8b70 dc79 2dca 13f6 b621     .2w..-p.y..-..!.
 
-  80416f4:	ded4 e27b f797 0a57 66ed 6a50 f13f 8a57     ..{...W..fPj?.W.
 
-  8041704:	1fed 3675 6db9 c573 e139 5908 19fd a92d     ..u6.ms.9..Y..-.
 
-  8041714:	fa53 bb68 9ff4 57f7 5ade 4c5d e03f d340     S.h....W.Z]L?.@.
 
-  8041724:	a7af 0d2f 13a6 fa63 920d 48ff 919c 18f8     ../...c....H....
 
-  8041734:	0b38 81f3 647f f2f6 01a9 02ce 9060 57d8     8....d......`..W
 
-  8041744:	6244 535f 682e 5bee 7e40 df85 0d2f 3ee2     Db_S.h.[@~../..>
 
-  8041754:	fcf8 fce2 c6d7 95f4 fe71 d337 e757 0d7f     ........q.7.W...
 
-  8041764:	f6f6 d36b 7ff2 c584 278d 20ee de4c 39c1     ..k......'. L..9
 
-  8041774:	e31c f5f8 21a2 8e84 c141 fe9c dd06 5fa1     .....!..A......_
 
-  8041784:	70c1 625f 4838 2dfe d50d ff38 d825 862b     .p_b8H.-..8.%.+.
 
-  8041794:	ff88 1c18 92ed 9857 4020 eb28 53fc 1f03     ......W. @(..S..
 
-  80417a4:	1438 31d4 9344 9b68 7045 907b 30dd 9519     8..1D.h.Ep{..0..
 
-  80417b4:	21c2 b5ce 4934 63e7 0748 345d 0922 de20     .!..4I.cH.]4". .
 
-  80417c4:	efab 520b f3a5 0531 d497 cd6b 0b8a 006d     ...R..1...k...m.
 
-  80417d4:	1e51 68f8 4c59 50a4 2e6c 6f22 f721 592a     Q..hYL.Pl."o!.*Y
 
-  80417e4:	0a48 1a42 f389 fb31 c3f0 405b aa01 d17b     H.B...1...[@..{.
 
-  80417f4:	9864 8e94 0ec7 6c0d 5561 d43a 0a18 ee32     d......laU:...2.
 
-  8041804:	42f0 14a0 9742 b973 1dab 379c 40dd 2874     .B..B.s....7.@t(
 
-  8041814:	5ce4 506a 3a64 7c71 8d1c f7fd 1a81 ccb4     .\jPd:q|........
 
-  8041824:	56fb 3888 df51 1d1f 09d3 f22a be58 0619     .V.8Q.....*.X...
 
-  8041834:	7ac7 8b1e 2238 1c6f 208c a6bf c1d0 e53c     .z..8"o.. ....<.
 
-  8041844:	6c56 76db 30a5 7a7c 294a 972f 65f2 edaa     Vl.v.0|zJ)/..e..
 
-  8041854:	83f4 0271 609a 3eaa 8cff 1856 4f2b 90cc     ..q..`.>..V.+O..
 
-  8041864:	fd0e 29af 0449 64b2 9b16 92de fb6d c2ed     ...)I..d....m...
 
-  8041874:	0d6c 26c8 fa80 888e fa78 c90d 9f0a 6c83     l..&....x......l
 
-  8041884:	8b78 9250 e39a f18d 9505 8710 ff3d f3bb     x.P.........=...
 
-  8041894:	d04f a11c 3f39 db6b 2934 3f33 5ced 7e66     O...9?k.4)3?.\f~
 
-  80418a4:	28de 362a 134d 7373 69d2 b980 3c1b df92     .(*6M.ss.i...<..
 
-  80418b4:	8731 56ff 2ec8 03b4 4f7f e443 f80d 7692     1..V.....OC....v
 
-  80418c4:	81a4 7ca1 f34d cec5 d224 31e7 03ff 52ed     ...|M...$..1...R
 
-  80418d4:	f19a d877 d898 800a fa21 bec7 79f8 1b7e     ..w.....!....y~.
 
-  80418e4:	93a4 ff3c 3094 8813 eacd f682 a7e5 7d97     ..<..0.........}
 
-  80418f4:	c5fa 3436 ff2e ef2f 85dd a15a 0128 5b0b     ..64../...Z.(..[
 
-  8041904:	baf6 7b61 4a02 4218 b27f 15cd c567 265c     ..a{.J.B....g.\&
 
-  8041914:	8084 9046 19c2 4cb4 1098 8829 0f18 3c1f     ..F....L..)....<
 
-  8041924:	cdde 7be4 b310 8758 17a4 d0c6 e2c4 3611     ...{..X........6
 
-  8041934:	b058 3c1b 8a4f 5496 a0cf b010 8de4 ea52     X..<O..T......R.
 
-  8041944:	741f 6c5a 8b6a 5727 3089 1e91 627d 73f2     .tZlj.'W.0..}b.s
 
-  8041954:	e387 b58f d958 43b1 5c7a 241c 2fbb ac46     ....X..Cz\.$./F.
 
-  8041964:	1184 427d 81a9 e76a 8125 677f 07e8 dbcf     ..}B..j.%..g....
 
-  8041974:	a792 2608 d072 b107 7d7b e320 903e 62b5     ...&r...{} .>..b
 
-  8041984:	469b f42f 60fd 0828 1926 aca5 2ae6 e830     .F/..`(.&....*0.
 
-  8041994:	3b78 c649 3ba1 0a81 f508 162d abd2 7d95     x;I..;....-....}
 
-  80419a4:	7132 1ca6 652a 8268 5dbf 0e36 7109 1e85     2q..*eh..]6..q..
 
-  80419b4:	0bb8 284c 5f89 f290 083f 9d2e 0ea2 0978     ..L(._..?.....x.
 
-  80419c4:	a026 cd6a 63b4 9583 8df5 e478 0f0c 07aa     &.j..c....x.....
 
-  80419d4:	e751 c6a0 2318 bd38 9b19 6d39 2709 3244     Q....#8...9m.'D2
 
-  80419e4:	fa8e 320c a43f 4dc5 dc11 9a6b bd92 838d     ...2?..M..k.....
 
-  80419f4:	7441 2c14 3cc2 42e3 7436 1409 97c8 83d8     At.,.<.B6t......
 
-  8041a04:	ed5a c23c 8f16 052e cd7e 7510 4bb8 c046     Z.<.....~..u.KF.
 
-  8041a14:	69ec 9cee 259b 058b 4cd8 0969 f19b 2c42     .i...%...Li...B,
 
-  8041a24:	86bc 1624 f0cf ca22 3058 7988 98ea 48d9     ..$...".X0.y...H
 
-  8041a34:	64b3 5331 4f3c 0b12 7400 cf44 cb14 afe6     .d1S<O...tD.....
 
-  8041a44:	39b0 cf08 1e92 00ae 9fad 74f5 d3ba 9db9     .9.........t....
 
-  8041a54:	7699 5ad6 e268 10ce 2256 ad1c 6505 0314     .v.Zh...V"...e..
 
-  8041a64:	94ff 41ca 0715 f2e5 03b2 b40e 0154 cea3     ...A........T...
 
-  8041a74:	4cf3 c158 129a 8700 52df ac05 9660 f6bb     .LX......R..`...
 
-  8041a84:	41c6 36c7 c157 dd23 281b 4b77 1a25 10bd     .A.6W.#..(wK%...
 
-  8041a94:	a033 4277 0571 324a 90bb b96b 5667 a835     3.wBq.J2..k.gV5.
 
-  8041aa4:	836b 7326 e3c0 ec84 2c51 e4a1 03ad 07cc     k.&s....Q,......
 
-  8041ab4:	4195 2c02 4af2 8bac 164c 8557 381d d464     .A.,.J..L.W..8d.
 
-  8041ac4:	0ab8 d8b4 e97f 2e58 64a1 00c2 e18f 3035     ......X..d....50
 
-  8041ad4:	efb2 a04b 3434 1d8d 9c3f 1ac4 60a2 9982     ..K.44..?....`..
 
-  8041ae4:	3cb3 ba30 db34 65cc 8dfb 0946 6150 b9b5     .<0.4..e..F.Pa..
 
-  8041af4:	200a 680b 0c97 3656 76c8 cb9f 13da d488     . .h..V6.v......
 
-  8041b04:	7947 75c5 46cd 06fb 7815 57d4 1787 bfa3     Gy.u.F...x.W....
 
-  8041b14:	bc02 34b6 24ce 69e9 430b e249 c203 a5be     ...4.$.i.CI.....
 
-  8041b24:	2496 ab5b a3d7 8330 8d95 3d90 d99a 503f     .$[...0....=..?P
 
-  8041b34:	1590 615e 7294 b24d 693a 3083 e59a 2a48     ..^a.rM.:i.0..H*
 
-  8041b44:	4e93 61c2 fa27 d520 b1a2 592b 278c a5cb     .N.a'. ...+Y.'..
 
-  8041b54:	52b0 bf82 cacc 8aef 6071 9ada 4f04 4c96     .R......q`...O.L
 
-  8041b64:	8f98 a655 a4b4 b666 d940 a049 abeb 5835     ..U...f.@.I...5X
 
-  8041b74:	a17d 91a2 48b2 24ca 9aa9 7fe7 86c3 3f11     }....H.$.......?
 
-  8041b84:	e867 d7cb 6d81 0608 d83b 4909 9596 3ba2     g....m..;..I...;
 
-  8041b94:	a5eb 6710 68a1 b6be 043e 364c 7d8c e423     ...g.h..>.L6.}#.
 
-  8041ba4:	b45c f242 2be1 ed69 3d13 19fb 2e86 381a     \.B..+i..=.....8
 
-  8041bb4:	d5cc 37af cccb da68 0c4f b5d2 7f07 ca0a     ...7..h.O.......
 
-  8041bc4:	cc36 4b4f f7ce a3b2 0d08 0ef5 0708 f2e4     6.OK............
 
-  8041bd4:	68a3 afda 9620 d50b a85b 9fdf 4d09 967b     .h.. ...[....M{.
 
-  8041be4:	4936 264d 237b 13e5 671b ff95 6a7b f0ca     6IM&{#...g..{j..
 
-  8041bf4:	fd34 e3f9 f707 edc9 7960 2562 56fd eeea     4.......`yb%.V..
 
-  8041c04:	0281 5ef3 8c92 091e 4faf ca1b 9189 6acf     ...^.....O.....j
 
-  8041c14:	9652 1e3c 21b7 1ed3 7f05 c0f9 0a7d be91     R.<..!......}...
 
-  8041c24:	de60 bd0b 1471 9d47 4ca4 7655 1f77 b8e2     `...q.G..LUvw...
 
-  8041c34:	61f4 0817 0586 ddf3 d0db 1c6b 1b0b b29c     .a........k.....
 
-  8041c44:	e486 7802 d311 2871 6674 3b5b c5b2 0c3e     ...x..q(tf[;..>.
 
-  8041c54:	0d5a a228 b060 6400 83ae d953 0641 9a55     Z.(.`..d..S.A.U.
 
-  8041c64:	56c4 02ad c275 1769 9b02 5326 9f66 8157     .V..u.i...&Sf.W.
 
-  8041c74:	75c0 c91d 042d 6845 10b4 8a13 e867 8636     .u..-.Eh....g.6.
 
-  8041c84:	4667 e457 2327 5612 7046 a82f 6fdd 1dab     gFW.'#.VFp/..o..
 
-  8041c94:	068e 1e93 6ca9 b8e5 7a1f a141 956a 8ad6     .....l...zA.j...
 
-  8041ca4:	f8ad 4c38 1ebc 1d49 139e 2607 5318 0e12     ..8L..I....&.S..
 
-  8041cb4:	b1bb c4d9 2ed7 6444 b6f8 2a0a 1313 0966     ......Dd...*..f.
 
-  8041cc4:	e5a0 0a62 2d87 00ae 2e2d c689 cc2f d626     ..b..-..-.../.&.
 
-  8041cd4:	21e0 4b75 c432 3c64 f706 51a0 0e28 1702     .!uK2.d<...Q(...
 
-  8041ce4:	428b 0187 9dc8 ef77 82a4 980e 9093 e068     .B....w.......h.
 
-  8041cf4:	4144 a44f 425d 7635 1b80 7ecf 8263 be84     DAO.]B5v...~c...
 
-  8041d04:	0a4b 77f4 9df8 7e19 a284 05f8 c5a9 97c8     K..w...~........
 
-  8041d14:	ac06 0645 a2a1 3185 51b8 03f4 0107 4636     ..E....1.Q....6F
 
-  8041d24:	811e ac97 fe9f cc03 bf62 97c0 ce18 6702     ........b......g
 
-  8041d34:	77c8 1fd8 58e8 dcac 9b0f a93d c2ff a1a4     .w...X....=.....
 
-  8041d44:	4f66 f12a e777 02bf fc43 fa62 f9d5 162f     fO*.w...C.b.../.
 
-  8041d54:	633a 7fb8 5daf 9570 347f 3bbf f87e 7186     :c...]p..4.;~..q
 
-  8041d64:	37e7 2b8c 9729 4f76 28f3 7d0a 92a3 c811     .7.+).vO.(.}....
 
-  8041d74:	df76 b981 334f 167f e59c f5ea 6eeb c6f1     v...O3.......n..
 
-  8041d84:	370d b6e5 3819 e688 080e de05 f264 923a     .7...8......d.:.
 
-  8041d94:	5a2b 5b13 934d 9c3d b982 319b e7b4 1761     +Z.[M.=....1..a.
 
-  8041da4:	95e4 8140 3a8f db86 8b86 e9b5 b182 5a57     ..@..:........WZ
 
-  8041db4:	75fe 6965 f96a c270 79f2 5c10 3ce8 2b25     .ueij.p..y.\.<%+
 
-  8041dc4:	a07d c3f5 d823 f6f3 fdfc 72fd 0de8 ec2d     }...#......r..-.
 
-  8041dd4:	7632 936b 0e47 de5d ef85 36d7 95ab 73d1     2vk.G.]....6...s
 
-  8041de4:	4513 9849 03f4 af5b 39c2 f238 7631 eadd     .EI...[..98.1v..
 
-  8041df4:	e81d 06fb c10c c419 028f 9cf8 1ee3 b7b6     ................
 
-  8041e04:	7ae2 7d26 d1c4 ed90 e632 3dca f36c d8f2     .z&}....2..=l...
 
-  8041e14:	a781 007b aff7 75da 76e9 57b3 f29c c0e4     ..{....u.v.W....
 
-  8041e24:	1421 37c3 c48c 2640 7b7c 1f6f 47ce e8fc     !..7..@&|{o..G..
 
-  8041e34:	62d8 5c05 8d6b 8d5c d12a 29c0 bea3 c837     .b.\k.\.*..)..7.
 
-  8041e44:	a8e3 7512 3872 04aa 93a4 69a7 9d62 8e9c     ...ur8.....ib...
 
-  8041e54:	a4aa 6c56 3981 ef6c 2780 6a64 ce45 bfb3     ..Vl.9l..'djE...
 
-  8041e64:	53bd 815c ea4b ac37 33c8 40a0 4c22 d101     .S\.K.7..3.@"L..
 
-  8041e74:	6d38 a367 ded8 bbbe e8fd c1de dba3 9ab7     8mg.............
 
-  8041e84:	ebe2 47dd 6fb7 27df e989 25d6 dfad 5bd2     ...G.o.'...%...[
 
-  8041e94:	c067 6d37 3a5d 2ffc 809e e004 fc59 4857     g.7m]:./....Y.WH
 
-  8041ea4:	343f aca4 9bd2 a776 0ae2 ee2e 414f 3ae4     ?4....v.....OA.:
 
-  8041eb4:	9954 f6a8 3da6 8022 e2e1 50ce fd48 27fc     T....="....PH..'
 
-  8041ec4:	959e 9c80 df6f 2ab3 2c97 68cf f910 2674     ....o..*.,.h..t&
 
-  8041ed4:	eb64 69df 379b 905f d0b1 9a6c a337 4e28     d..i.7_...l.7.(N
 
-  8041ee4:	688c dc6c 509c 4048 edb7 4797 9013 19ba     .hl..PH@...G....
 
-  8041ef4:	873c 6c79 0e10 2cd9 b308 caa5 c21f eecc     <.yl...,........
 
-  8041f04:	c2c0 f566 5052 c70f d41d e6c2 d270 5bef     ..f.RP......p..[
 
-  8041f14:	9a61 f71d ac26 ab5e 4112 9e93 0755 3f4d     a...&.^..A..U.M?
 
-  8041f24:	136d 6c30 a2a1 b4b3 0cd1 ada6 66ca c207     m.0l.........f..
 
-  8041f34:	3cbd 8b4d d029 4103 771d a823 62b1 8704     .<M.)..A.w#..b..
 
-  8041f44:	d97a bc2e aa5e 6520 e65a 6588 8386 5890     z...^. eZ..e...X
 
-  8041f54:	dc18 4527 2b2b 7372 0145 59db 7c64 0e49     ..'E++rsE..Yd|I.
 
-  8041f64:	b989 244d b201 caa5 e86a f5cb e2f4 c44d     ..M$....j.....M.
 
-  8041f74:	c3ab 2ba1 f717 c192 4750 fcff 8ef9 75a4     ...+....PG.....u
 
-  8041f84:	f415 9a82 6f7a 970a 4bd5 8388 29c6 354c     ....zo...K...)L5
 
-  8041f94:	9660 f717 039c c263 06ff dbc7 dcb7 ae7f     `.....c.........
 
-  8041fa4:	666c 9708 d84c c90f 9359 2511 22b8 dab2     lf..L...Y..%."..
 
-  8041fb4:	f4e6 42ff 2197 fbfb 9037 be1a 7f25 a83b     ...B.!..7...%.;.
 
-  8041fc4:	fa74 903f 6599 16d0 f517 f9f5 16ca ee34     t.?..e........4.
 
-  8041fd4:	3924 7815 d516 4718 3d73 0b22 e63d 471b     $9.x...Gs=".=..G
 
-  8041fe4:	f36f c843 cfea 48f4 5c2d 19c8 11c7 e83c     o.C....H-\....<.
 
-  8041ff4:	39f9 eb22 7a4d faa4 3d73 2ed6 51e8 d38a     .9".Mz..s=...Q..
 
-  8042004:	e5a0 289d 0c3a af61 061e 5209 5d2c 081e     ...(:.a....R,]..
 
-  8042014:	d909 f887 5e5c 9d90 027a dab4 707e a104     ....\^..z...~p..
 
-  8042024:	14b5 c78c d8d1 14b4 d539 3920 5eb1 3f7c     ........9. 9.^|?
 
-  8042034:	c24a 0bce 779c a2a8 d6c4 79dc 4c29 b957     J....w.....y)LW.
 
-  8042044:	b0e3 cb02 8918 ca99 442f 182e 6a88 4be4     ......../D...j.K
 
-  8042054:	9aff 4824 30f2 2fb0 0b09 b7ff a04a 4f62     ..$H.0./....J.bO
 
-  8042064:	393b a696 cb2f 3c60 7717 06b7 1953 173c     ;9../.`<.w..S.<.
 
-  8042074:	9899 04a2 8864 e9da 2dc9 67a5 b93e 5c49     ....d....-.g>.I\
 
-  8042084:	6f26 364a 9646 4c66 7309 c100 c1de 240a     &oJ6F.fL.s.....$
 
-  8042094:	9570 c0ec 0dde 1b01 a47e 1096 5c6c f708     p.......~...l\..
 
-  80420a4:	80dd d78e b205 edb7 c510 4010 843f 355b     ...........@?.[5
 
-  80420b4:	0547 62a2 ca9c be48 0e11 a90d 5d42 fc2c     G..b..H.....B],.
 
-  80420c4:	3824 2025 ec25 145d 90c3 21c0 7d68 c2ef     $8% %.]....!h}..
 
-  80420d4:	56fd af67 2902 028a 38e8 8d24 aaa4 2232     .Vg..)...8$...2"
 
-  80420e4:	42c6 6428 b32d f7b8 c1de edc3 db47 20f7     .B(d-.......G.. 
 
-  80420f4:	30a8 6f9c bd9b 5e03 03ec 0573 5a11 0939     .0.o...^..s..Z9.
 
-  8042104:	408a d630 2abd 641a e0c0 9808 4063 7991     .@0..*.d....c@.y
 
-  8042114:	2f49 3fb7 7db8 177f d132 834c 6e55 a6b0     I/.?.}..2.L.Un..
 
-  8042124:	241a 8b85 16d9 de75 a3d9 4bfc bcda bdb5     .$....u....K....
 
-  8042134:	7b7b cef7 dbbd cdf3 d0d6 d62c 6669 67b9     {{........,.if.g
 
-  8042144:	c1a4 6e2b 772b b6f1 6fca af15 381f b563     ..+n+w...o...8c.
 
-  8042154:	7059 c2ba 4703 6d3f a68d c1f5 5cc0 116c     Yp...G?m.....\l.
 
-  8042164:	9f51 0465 66ca 84df 50bc aa20 91d4 8c3d     Q.e..f...P ...=.
 
-  8042174:	0186 6373 689c a644 8239 76bb 57bd 31bd     ..sc.hD.9..v.W.1
 
-  8042184:	effd 52d8 431f c153 134e d64e 9ddf 1aff     ...R.CS.N.N.....
 
-  8042194:	9ba6 d357 ba7f 8abe ebf2 4d08 d834 6623     ..W........M4.#f
 
-  80421a4:	6e83 4187 e0df 259f e83f 9338 627e 03ce     .n.A...%?.8.~b..
 
-  80421b4:	7a94 aa50 b449 31bf 7bfd 7756 077e fd8e     .zP.I..1.{Vw~...
 
-  80421c4:	f5f9 3455 e374 c8fa b660 9b65 77b4 b04a     ..U4t...`.e..wJ.
 
-  80421d4:	758f 4d87 c3c3 82c8 0b71 fe15 861b adf1     .u.M....q.......
 
-  80421e4:	d2d8 f606 27fd f9d8 f4e0 916c 02fa f05f     .....'....l..._.
 
-  80421f4:	96fa afaf 6e8e c688 e9ae 7a5b 3d06 caa9     .....n....[z.=..
 
-  8042204:	e7cd 4c31 17f7 c329 2bad 8032 cc34 11d3     ..1L..)..+2.4...
 
-  8042214:	1bfb 0561 811c d1ea 952e 2b26 aef6 f467     ..a.......&+..g.
 
-  8042224:	c9ef c200 81de 7422 70e4 6100 388f a288     ......"t.p.a.8..
 
-  8042234:	0f54 aed1 9d1a 7bba e2de a61d 38ab 40f3     T......{.....8.@
 
-  8042244:	8372 2e74 296d f8a3 b90b 9890 7c5e 7df6     r.t.m)......^|.}
 
-  8042254:	5229 b2e3 2c43 43f1 bab0 afab 7385 5f5d     )R..C,.C.....s]_
 
-  8042264:	9d2e 6a4d 96ac 4382 159c 6abb 5c65 eb5c     ..Mj...C...je\\.
 
-  8042274:	3474 8e0e acde 0453 f32a 53d1 a8ba f449     t4....S.*..S..I.
 
-  8042284:	fef3 c7c3 a8dc 607e 464c 81f1 baa4 38ff     ......~`LF.....8
 
-  8042294:	4434 3970 6e3c e83f f9b8 07fe f7d5 39af     4Dp9<n?........9
 
-  80422a4:	c477 0931 008a d9f7 eed3 fdce ef87 1eef     w.1.............
 
-  80422b4:	b07c a2cf 542e ed63 43d0 d2d8 3924 caba     |....Tc..C..$9..
 
-  80422c4:	c7a9 1d90 3a01 ee73 b6bd 77eb beb2 735f     .....:s....w.._s
 
-  80422d4:	4214 4cf3 3407 1273 d25e 83cb 77f7 33f3     .B.L.4s.^....w.3
 
-  80422e4:	ed9c 4e85 0ec6 6105 1389 f45c c9e2 9c33     ...N...a..\...3.
 
-  80422f4:	d3b2 f6f3 bdf5 10ec a11e cec2 51f6 3ee7     .............Q.>
 
-  8042304:	aa1a 810f d92f e505 a55e b10b ef52 9588     ..../...^...R...
 
-  8042314:	f562 b67f 0697 b2f7 7aa6 ba81 96a2 f284     b........z......
 
-  8042324:	d2ae cdc7 9d6d 6616 5fdb f6e3 55d7 74fb     ....m..f._...U.t
 
-  8042334:	40fb 81ce aef2 fed2 edee 0f7b 0279 d2ac     .@........{.y...
 
-  8042344:	b6cd cebf 6fed f6a8 e185 f65a b940 0f69     .....o....Z.@.i.
 
-  8042354:	44b3 78fc 7b77 fdf7 f3c7 cf42 3706 a9b8     .D.xw{....B..7..
 
-  8042364:	d41a 28e4 bbca b9b0 12c5 26d4 fb1a 9353     ...(.......&..S.
 
-  8042374:	34a0 cd86 fc12 487f 2451 e592 a8a4 2805     .4.....HQ$.....(
 
-  8042384:	faba 9de9 524a 2b5a 9c17 6f8c 4d20 8ca5     ....JRZ+...o M..
 
-  8042394:	1335 32a7 9a0e 5409 bf19 1e43 c9df 1de8     5..2...T..C.....
 
-  80423a4:	dc64 7909 2b7c 77a3 7290 6413 d5f1 de8c     d..y|+.w.r.d....
 
-  80423b4:	dc81 c8fa 1be0 3d1a b736 2760 8321 69af     .......=6.`'!..i
 
-  80423c4:	0ef4 cdd2 2c85 a8be 1801 b70a 9822 f09c     .....,......"...
 
-  80423d4:	31a6 59bd 6d11 ecf6 c5d0 d7b9 d356 bef8     .1.Y.m......V...
 
-  80423e4:	e12e 525d 8e6f 7793 3db5 fafc 8a7a f737     ..]Ro..w.=..z.7.
 
-  80423f4:	56ae 9e6b 86dd ab57 e798 4fa1 56af cf29     .Vk...W....O.V).
 
-  8042404:	0f18 4ab5 48b3 bc57 7fae 8c09 6060 863f     ...J.HW.....``?.
 
-  8042414:	ac40 7dd1 c19e f268 0929 4ac5 949a 0141     @..}..h.)..J..A.
 
-  8042424:	76e2 65d5 ca3a cb1b aac5 7207 2a4d 83b7     .v.e:......rM*..
 
-  8042434:	a241 2ab1 72b8 33d7 b1d2 9faa 786b 7492     A..*.r.3....kx.t
 
-  8042444:	0f36 c0fc 4183 7c99 4a1b 7235 ee29 c3d6     6....A.|.J5r)...
 
-  8042454:	422d d2e1 ef49 91d5 c74b ac43 2c26 e34f     -B..I...K.C.&,O.
 
-  8042464:	d41d 4ed9 300a 7ab5 aa37 8db5 7e36 6a56     ...N.0.z7...6~Vj
 
-  8042474:	480d f8f8 86b5 e380 67b6 2b57 f5d5 b566     .H.......gW+..f.
 
-  8042484:	a15a 7b24 ab22 7a95 910d 2b52 63f6 2176     Z.${"..z..R+.cv!
 
-  8042494:	3b95 68e3 23b0 2adb a578 c6cd dc26 28b2     .;.h.#.*x...&..(
 
-  80424a4:	3d16 eb70 55ca 5da5 1b8f 21c4 b2d4 ac71     .=p..U.]...!..q.
 
-  80424b4:	2bdd 4e53 a1b7 1473 1d76 52f8 14cb bb5a     .+SN..s.v..R..Z.
 
-  80424c4:	85dd 8a7a 6b08 3407 a084 07d2 b81d 1fa2     ..z..k.4........
 
-  80424d4:	b9df a46d 4377 c04a ae11 2dcf 55a8 381e     ..m.wCJ....-.U.8
 
-  80424e4:	d1e4 dd5d 871d 3408 ca4d 8f6f 9e8f 2a60     ..]....4M.o...`*
 
-  80424f4:	ca4f 7cab 62d3 9aa9 0e2d deee 77b9 c429     O..|.b..-....w).
 
-  8042504:	3a56 c3ce 5ef8 86e4 707d 0789 0b8f 7950     V:...^..}p....Py
 
-  8042514:	cb32 ee18 4952 17cb 4359 b917 4511 f4b4     2...RI..YC...E..
 
-  8042524:	2ff9 d7a1 3a93 becd 8a7f c669 d527 7b25     ./...:....i.'.%{
 
-  8042534:	27da aeb0 01fd df19 72c1 86c6 182b 106b     .'.......r..+.k.
 
-  8042544:	ef52 c451 ee0d c21a 4c67 1cf6 eb4d e282     R.Q.....gL..M...
 
-  8042554:	4e6a 9eff ba3d c39f 49b3 cef1 ead0 19e1     jN..=....I......
 
-  8042564:	0bb0 191d 6e07 ef91 16fe 5b14 44f0 753b     .....n.....[.D;u
 
-  8042574:	975f eaa1 7c52 dbb5 9b76 ba5d 4a88 0510     _...R|..v.]..J..
 
-  8042584:	7e48 9ee0 be9c d307 7c04 5968 7bc6 64d1     H~.......|hY.{.d
 
-  8042594:	cb8c b206 1c34 c422 9296 4154 245c d9ec     ....4."...TA\$..
 
-  80425a4:	81f3 6003 a6e6 5774 fb2b a614 1e56 a345     ...`..tW+...V.E.
 
-  80425b4:	b142 b08d b6e8 a4d9 68e0 d5b3 3dd3 21a0     B........h...=.!
 
-  80425c4:	855a afa1 8e90 069c 7648 0298 99ac dd70     Z.......Hv....p.
 
-  80425d4:	7f29 5c3f 3694 0add c970 0298 c124 b32e     ).?\.6..p...$...
 
-  80425e4:	0828 1735 dbfe c32b 78df 4c9b 775c 98e1     (.5...+..x.L\w..
 
-  80425f4:	600f 2b41 1498 9d44 c00b a3ce 961c 6131     .`A+..D.......1a
 
-  8042604:	3dd5 fd0e 87a4 939d ce2f 88af 881d 4be2     .=....../......K
 
-  8042614:	a122 68ce d112 7a90 15b5 c01b 8e79 ba6b     "..h...z....y.k.
 
-  8042624:	e01c 7360 b7e0 dc38 4304 4570 9a96 5d37     ..`s..8..CpE..7]
 
-  8042634:	cde8 93ed 3222 dda4 232b 41f7 d8fc 0a39     ...."2..+#.A..9.
 
-  8042644:	8c1e 201f e314 7026 7c54 442d 6e01 f85e     ... ..&pT|-D.n^.
 
-  8042654:	fb6c 7071 6122 8c39 d703 3992 184f df52     l.qp"a9....9O.R.
 
-  8042664:	747f 2cb7 d2ae 088a a410 2971 6418 81ea     .t.,......q).d..
 
-  8042674:	2f16 68b2 2cc2 eadb 3994 129e 43d7 3605     ./.h.,...9...C.6
 
-  8042684:	f36d 8c28 6c43 5c26 6d07 98aa 4eef 4299     m.(.Cl&\.m...N.B
 
-  8042694:	193c 7e33 3ca6 91ba 22ff 626f ba84 6083     <.3~.<..."ob...`
 
-  80426a4:	d0ed 843b 3b41 94ed 04c1 c5de dc5d 9c0e     ..;.A;......]...
 
-  80426b4:	67c3 eb8c 38d1 02ea 717d 6f86 c470 974b     .g...8..}q.op.K.
 
-  80426c4:	0f91 e263 60fe 5890 c0a8 755f 49ca 3894     ..c..`.X.._u.I.8
 
-  80426d4:	b7fd 95ab c80a 9d9e fa7c 9cc6 92a1 d7d7     ........|.......
 
-  80426e4:	91a7 46cd b0a7 f1fd d241 5503 8062 d658     ...F....A..Ub.X.
 
-  80426f4:	5cfa bcf8 8922 da74 3562 ebd2 2c71 014a     .\..".t.b5..q,J.
 
-  8042704:	6edf 5c99 c2f8 67a4 6e5a db16 1b3e ec3f     .n.\...gZn..>.?.
 
-  8042714:	d6b2 e2a8 0198 61c9 766e 381a 888d 49b0     .......anv.8...I
 
-  8042724:	6c80 07b1 ce06 1bb8 770e 91a3 d672 6993     .l.......w..r..i
 
-  8042734:	828a ee59 cce3 2f00 6b06 6e4e 3806 026c     ..Y..../.kNn.8l.
 
-  8042744:	1390 2f39 279e 438f 0fb7 a3cb 2320 9303     ..9/.'.C.... #..
 
-  8042754:	a9c2 baae 8a2b 88e9 315b fe2a 95ba 536b     ....+...[1*...kS
 
-  8042764:	515f 89ba b6ac 818c ceed 12ce dd44 fb60     _Q..........D.`.
 
-  8042774:	72a4 caae 2126 db57 02d5 e89f bb5a 2c5c     .r..&!W.....Z.\,
 
-  8042784:	0aa7 bf17 70ba ea4c 8511 e91f 9277 a853     .....pL.....w.S.
 
-  8042794:	017c ce81 5fdd 614e 4a67 3808 84ed 44fc     |...._NagJ.8...D
 
-  80427a4:	c902 cf5a 1cb5 2e08 ce66 d483 2073 458d     ..Z.....f...s .E
 
-  80427b4:	8d20 081c 5dae b7ce 46b2 c220 2721 2106      ....]...F .!'.!
 
-  80427c4:	715c 2b94 6e9c 2e69 2292 1b37 6030 14e1     \q.+.ni.."7.0`..
 
-  80427d4:	dca3 5a34 cd58 6444 1150 0807 ecab 31ee     ..4ZX.DdP......1
 
-  80427e4:	c965 6078 4995 ca49 47ce e344 a730 2a0c     e.x`.II..GD.0..*
 
-  80427f4:	43d0 5568 34a5 024f f0c8 ad5e 7298 6154     .ChU.4O...^..rTa
 
-  8042804:	e776 cd0a 7852 b1ed 8b2f 1c44 56ac 190d     v...Rx../.D..V..
 
-  8042814:	68b2 983e eb94 6cca ca02 c047 69a2 20ca     .h>....l..G..i. 
 
-  8042824:	5742 1797 e496 b81d e2f4 ba8a 8723 8273     BW..........#.s.
 
-  8042834:	84fb 70d4 6805 93b0 8037 4f86 a185 f8ff     ...p.h..7..O....
 
-  8042844:	e1cc 2e02 cc00 18a4 d100 39a9 f6c3 eea4     ...........9....
 
-  8042854:	90fe 21ec 016e ebb1 02e3 b568 692a e131     ...!n.....h.*i1.
 
-  8042864:	4d3c e5a0 998b 0ccd cea0 d479 a9c5 a1b4     <M........y.....
 
-  8042874:	880f 61a7 d2f1 948c a9ed 5253 272d f243     ...a......SR-'C.
 
-  8042884:	a801 2002 3ad3 8df3 0ccc 4c41 6166 e48b     ... .:....ALfa..
 
-  8042894:	9c89 9e24 3fb6 a291 42b9 4b2e 0263 3f69     ..$..?...B.Kc.i?
 
-  80428a4:	4920 a4d9 6ad8 94c0 eca4 3b99 a222 9c43      I...j.....;".C.
 
-  80428b4:	da58 23ed 4089 32ad 6026 3ed1 2c7b 266e     X..#.@.2&`.>{,n&
 
-  80428c4:	63e4 2da5 e22d a2db c86e 45d9 b997 1bd0     .c.--...n..E....
 
-  80428d4:	522a 9e24 109c be0a e78f e73a cb62 cab9     *R$.......:.b...
 
-  80428e4:	6132 8dfa ccdd cfba 8609 8a03 9123 2807     2a..........#..(
 
-  80428f4:	530b 1c92 36e9 f361 cce4 f3d2 6a10 0836     .S...6a......j6.
 
-  8042904:	9796 794d 63a1 0549 2dbe 9980 bacb b5b1     ..My.cI..-......
 
-  8042914:	9455 4d77 d8d4 df35 769a 8efb fa44 5f29     U.wM..5..v..D.)_
 
-  8042924:	fc41 d202 4bff fd19 f78b 5816 87c8 c646     A....K.....X..F.
 
-  8042934:	1961 3418 599f 122d 1038 7862 970b 110a     a..4.Y-.8.bx....
 
-  8042944:	3dfd 3d77 c790 84a1 5dc1 b01c 8ef2 5ce4     .=w=.....].....\
 
-  8042954:	08be 39b1 38b3 565a f644 0c51 4e40 244b     ...9.8ZVD.Q.@NK$
 
-  8042964:	91d5 5c1e d079 5ce9 b182 d1cb 74e3 28e0     ...\y..\.....t.(
 
-  8042974:	5e5c e1ce f387 a080 881f 5c22 84f9 8346     \^........"\..F.
 
-  8042984:	2db7 6010 a320 81a5 c835 9710 288f 6689     .-.` ...5....(.f
 
-  8042994:	9386 3f44 58ca d510 3f30 121a b18c 6486     ..D?.X..0?.....d
 
-  80429a4:	1867 2a11 fa7f a445 f110 0377 663c 4993     g..*..E...w.<f.I
 
-  80429b4:	9441 2f35 6101 4f13 6570 799b 6649 463c     A.5/.a.Ope.yIf<F
 
-  80429c4:	23bc 1267 a0ab 33f8 92ba 97a9 1e72 4215     .#g....3....r..B
 
-  80429d4:	968c 49fc 962f 04b9 39d0 ca96 4cfb 690b     ...I/....9...L.i
 
-  80429e4:	773e 78e1 15e2 7c96 2227 0097 7470 290e     >w.x...|'"..pt.)
 
-  80429f4:	5de4 84ef a8f3 7730 0345 921c 54d3 c2a0     .]....0wE....T..
 
-  8042a04:	35b8 174e 88bf caef 5f7b 3104 6973 9503     .5N.....{_.1si..
 
-  8042a14:	0e65 d215 a5f2 9cc3 3ce9 a657 1780 8a61     e........<W...a.
 
-  8042a24:	0500 feb6 9934 1aa4 7415 6086 6658 f67d     ....4....t.`Xf}.
 
-  8042a34:	c6fa 16fa 380c 00c0 4774 5bcc f01c 58f9     .....8..tG.[...X
 
-  8042a44:	f605 e01a cbbe 44a4 7841 8a00 ac86 657d     .......DAx....}e
 
-  8042a54:	14ea 3a07 dc5c cd80 d142 fb7c 796d bfa9     ...:\...B.|.my..
 
-  8042a64:	7269 c44c f319 8743 01b5 6e8a 1bc5 5452     irL...C....n..RT
 
-  8042a74:	4291 d551 525b 4e94 4603 87d3 28a5 7617     .BQ.[R.N.F...(.v
 
-  8042a84:	7e65 0a64 88b0 a4bd 0e1c 54c1 4def 0651     e~d........T.MQ.
 
-  8042a94:	59b1 3d3c adc5 38a9 d13c 4aa0 08a1 b440     .Y<=...8<..J..@.
 
-  8042aa4:	e843 2a31 8755 07d2 8194 f162 153e 8895     C.1*U.....b.>...
 
-  8042ab4:	ca2f 29ba 1ac2 5339 cb7e e086 da5f c649     /..)..9S~..._.I.
 
-  8042ac4:	1dfd 6171 4aca cf83 f36c 3acf b59d 5aca     ..qa.J..l..:...Z
 
-  8042ad4:	a105 1c5a fbaa b757 deef f07d 6521 1c57     ..Z...W...}.!eW.
 
-  8042ae4:	81bf 10f0 cd91 bb71 adc8 3dd7 02af 8a60     ......q....=..`.
 
-  8042af4:	b13f 7864 2c0f ef11 701d 0184 e47c 1def     ?.dx.,...p..|...
 
-  8042b04:	30a8 bb02 4966 36ab a400 f809 4003 db28     .0..fI.6.....@(.
 
-  8042b14:	ca33 e7e5 5d8e 0057 c376 a362 bdaf 9166     3....]W.v.b...f.
 
-  8042b24:	d71d b75e 9184 ded6 c8b0 6b12 5a6f f4ca     ..^........koZ..
 
-  8042b34:	9f65 0f6c 31fd d202 4a9b 0311 91db 60a7     e.l..1...J.....`
 
-  8042b44:	7d66 4d48 ca74 26d8 ad2b 0886 b98f 77d9     f}HMt..&+......w
 
-  8042b54:	c3bc 889b 7b54 66f1 646d b8f5 d819 dee0     ....T{.fmd......
 
-  8042b64:	7eac b0f8 c887 d39b 6f10 e131 e447 2b73     .~.......o1.G.s+
 
-  8042b74:	8fb0 9d8c 6b37 ab87 f718 61c2 2dc8 c87c     ....7k.....a.-|.
 
-  8042b84:	a68f 6fc5 c6d6 db9d 92c2 2dc8 c338 9845     ...o.......-8.E.
 
-  8042b94:	1850 4b2f 15dc 8a10 e69b b865 65c8 5db3     P./K......e..e.]
 
-  8042ba4:	0352 a1e3 20e6 68e4 2771 cce6 ec42 ff54     R.... .hq'..B.T.
 
-  8042bb4:	5e05 12bb 347a efdb 4e38 1430 6577 466f     .^..z4..8N0.weoF
 
-  8042bc4:	a1cf 10f0 494c 98c1 09d6 c244 f118 8823     ....LI....D...#.
 
-  8042bd4:	fcbc e40d 7a1a 8145 99cc 8ab8 a566 2f2f     .....zE.....f.//
 
-  8042be4:	cfe8 c88b 9b53 98a2 91e8 97a9 86f4 f9c3     ....S...........
 
-  8042bf4:	c92f 99ec 37bd 72f2 95fa a078 f660 0675     /....7.r..x.`.u.
 
-  8042c04:	1504 9402 0c62 44bf f15d 09ac 6e5e a180     ....b..D]...^n..
 
-  8042c14:	d3f4 31b2 9ffd 08dc 0304 2544 10d1 a3c4     ...1......D%....
 
-  8042c24:	5f2b 7052 7512 ee27 fcb9 e48a 7a06 e585     +_Rp.u'......z..
 
-  8042c34:	7a0b e5b3 92a5 0023 ad5d 1bd0 f42f 0b68     .z....#.].../.h.
 
-  8042c44:	942a 2361 72e9 7d18 b693 d8a6 646d 5569     *.a#.r.}....mdiU
 
-  8042c54:	f579 dd7a 26b4 7ee3 c713 3f08 22b7 d74e     y.z..&.~...?."N.
 
-  8042c64:	17b8 371d 5b25 0985 4942 b8c4 0f6c fd79     ...7%[..BI..l.y.
 
-  8042c74:	0d7a 3eb6 9811 c079 9981 518b 0f9c bcdd     z..>..y....Q....
 
-  8042c84:	c10c d598 e717 4d9f 8f7f 4bc8 ce3c d901     .......M...K<...
 
-  8042c94:	984d 318f ba01 481e 40eb 614f 62e0 6121     M..1...H.@Oa.b!a
 
-  8042ca4:	2f06 651d 0a53 3ec0 6bea a5a6 a94f e9d3     ./.eS..>.k..O...
 
-  8042cb4:	1898 ade0 babf f07f ede1 b69b 7dfc 7a7a     .............}zz
 
-  8042cc4:	d672 df92 b665 da94 3827 9baf c1a9 d669     r...e...'8....i.
 
-  8042cd4:	da80 194e 5b01 61c9 3c44 6df1 7e3c 54b6     ..N..[.aD<.m<~.T
 
-  8042ce4:	5e85 0b3c 890c af16 15c4 b2cf 22dd eb4d     .^<.........."M.
 
-  8042cf4:	4d00 c712 71eb e08f 43e6 95d8 5771 cced     .M...q...C..qW..
 
-  8042d04:	f612 ac9f 917b 99ce 2f70 c11d f802 064b     ....{...p/....K.
 
-  8042d14:	07e1 070b eb71 bdc1 d130 9cc6 3cb2 9587     ....q...0....<..
 
-  8042d24:	490a 0100 95d9 e931 4604 20b2 8bc1 ea57     .I....1..F. ..W.
 
-  8042d34:	a213 3c46 a4f6 ae8d 0808 faf2 f600 8896     ..F<............
 
-  8042d44:	63d7 7cc8 7e96 2ab4 031d 6f96 407a e852     .c.|.~.*...oz@R.
 
-  8042d54:	c09d 3c2e d415 ee16 8d97 8e1e 3cf1 bc24     ...<.........<$.
 
-  8042d64:	f023 709b 3363 7a79 906b 9c7a 17a1 6ff4     #..pc3yzk.z....o
 
-  8042d74:	5c4e 25c4 fae2 352d 4672 5b71 3cbb dcec     N\.%..-5rFq[.<..
 
-  8042d84:	712c eefb 80f8 5d71 1466 4740 3a90 9a8b     ,q....q]f.@G.:..
 
-  8042d94:	729a 90e2 a5bb 843c 48f4 22da 0a04 c917     .r....<..H."....
 
-  8042da4:	594c b1c7 7e0a a8a3 ec4a fb12 5c04 eb45     LY...~..J....\E.
 
-  8042db4:	ee8d 8a26 0407 1985 af03 b608 9894 5e9f     ..&............^
 
-  8042dc4:	2248 5367 b797 7911 ac2c 192e 77fd 3c71     H"gS...y,....wq<
 
-  8042dd4:	d817 c16b c55f 5a95 6de3 edef 0af5 a3fd     ..k._..Z.m......
 
-  8042de4:	f90b 32f0 6177 7dbc def7 f0ae 914d 211b     ...2wa.}....M..!
 
-  8042df4:	66a5 a38f 6daf 21b8 72e0 8608 2ee4 ff7b     .f...m.!.r....{.
 
-  8042e04:	1dd1 dd3c 7786 b057 3042 af6e 7a14 b36d     ..<..wW.B0n..zm.
 
-  8042e14:	0465 47cf b421 402e f0f5 0d36 7d72 a5ca     e..G!..@..6.r}..
 
-  8042e24:	833b f2c8 5645 5940 57b8 84e4 6a43 644d     ;...EV@Y.W..CjMd
 
-  8042e34:	06e2 0b47 4ac6 1e04 8807 378e d241 b5c0     ..G..J.....7A...
 
-  8042e44:	6f36 37cd 7b97 928c 2607 26dd adab f127     6o.7.{...&.&..'.
 
-  8042e54:	176a c6c3 2c3d 1d0a 1be1 5058 5c83 529b     j...=,....XP.\.R
 
-  8042e64:	7896 4814 c279 2e78 a545 0a9a 6017 4e7e     .x.Hy.x.E....`~N
 
-  8042e74:	86f2 72a3 adfe 6154 10ff 6bef d316 d5b7     ...r..Ta...k....
 
-  8042e84:	eae8 6e06 0650 6d7d e2a8 28fa 4248 20ac     ...nP.}m...(HB. 
 
-  8042e94:	65f9 1140 9258 e8c5 b82c 8a1a 815c 2f0d     .e@.X...,...\../
 
-  8042ea4:	2287 338f ec35 f6ee 9626 a951 fe96 19dc     .".35...&.Q.....
 
-  8042eb4:	3696 462a d2a5 7fa4 0355 078b 65cc f424     .6*F....U....e$.
 
-  8042ec4:	127e 41f6 8ae9 28a2 3609 e135 3d47 0373     ~..A...(.65.G=s.
 
-  8042ed4:	0696 f166 a78c 0b08 cb75 273d 707e a43c     ..f.....u.='~p<.
 
-  8042ee4:	034d f573 f80b 968e 9797 841c 6278 f426     M.s.........xb&.
 
-  8042ef4:	26cb 358f e9d6 ad2d 74a5 a7c7 c553 e5e4     .&.5..-..t..S...
 
-  8042f04:	568e b7cf cc66 bcb4 b8eb b79a 4b01 5eac     .V..f........K.^
 
-  8042f14:	7576 5140 ac27 432a 1246 8c68 55b1 84b2     vu@Q'.*CF.h..U..
 
-  8042f24:	4f30 6cb8 4743 a328 a01f 4b54 9e9d a6aa     0O.lCG(...TK....
 
-  8042f34:	7720 5b29 f0c6 a1c0 b96b 11d8 8e00 d4b2      w)[....k.......
 
-  8042f44:	c005 5c90 0112 5f48 4033 15a4 f7f5 2bc8     ...\..H_3@.....+
 
-  8042f54:	cfb0 277e 1870 2a82 4e50 2cf1 45e5 b200     ..~'p..*PN.,.E..
 
-  8042f64:	3fd1 b2b1 8e08 f211 9c35 d8c8 be7a 83d9     .?......5...z...
 
-  8042f74:	bc22 ab14 4287 9e93 a8ec a653 2b4c ff06     "....B....S.L+..
 
-  8042f84:	5aad e640 2031 957f 9816 bd01 0cab 2842     .Z@.1 ........B(
 
-  8042f94:	031c 8972 be0b dc45 3263 56ca 2e48 5c34     ..r...E.c2.VH.4\
 
-  8042fa4:	7b51 64fb f021 9569 8e6f 63a3 8ea8 278f     Q{.d!.i.o..c...'
 
-  8042fb4:	b223 630d a7e3 f07e ed0e 1b24 8f1c e2df     #..c..~...$.....
 
-  8042fc4:	f78d 083a 2439 7817 8bd9 3263 b2d1 ff01     ..:.9$.x..c2....
 
-  8042fd4:	5d31 7c51 0bdc e640 005c 1747 6d00 de0f     1]Q|..@.\.G..m..
 
-  8042fe4:	1c15 d26c 66e9 3bcd 9510 ddb3 2741 9ec1     ..l..f.;....A'..
 
-  8042ff4:	dfb3 d072 b934 fd33 2502 dae9 dc03 b33f     ..r.4.3..%....?.
 
-  8043004:	d3c3 22e7 7cf1 b101 2f2d 282f 6f88 d8be     ...".|..-//(.o..
 
-  8043014:	ba75 8cf4 ec12 1359 c578 e13b 6f10 a677     u.....Y.x.;..ow.
 
-  8043024:	ad26 1194 fbe8 f675 3e7c 4d3d d65b 63ce     &.....u.|>=M[..c
 
-  8043034:	18e5 1687 1fa6 ea83 c41e 93ec d6af 8ad0     ................
 
-  8043044:	6d70 e89b dbc8 46b7 e4f8 c5d3 b18d acd3     pm.....F........
 
-  8043054:	3867 910c e384 8930 73de 7b70 294d c5ee     g8....0..sp{M)..
 
-  8043064:	40d6 f114 f701 e20e fe07 8262 62cb 6792     .@........b..b.g
 
-  8043074:	66a3 eda4 cc12 4fa1 905d 2562 0568 536d     .f.....O].b%h.mS
 
-  8043084:	d0f0 3da0 f668 7ddb c1a6 d6f4 98c6 c1d6     ...=h..}........
 
-  8043094:	ed1e f78d 635b 04ac a3a8 614b e010 f0dc     ....[c....Ka....
 
-  80430a4:	cd10 078e c8d7 2286 878f 6487 a440 5bd4     ......."...d@..[
 
-  80430b4:	7e5e db66 741d f38c 5907 b588 e0f4 26a8     ^~f..t...Y.....&
 
-  80430c4:	3987 9b62 a7b0 2fc7 7a4e f7a8 0156 2eae     .9b..../Nz..V...
 
-  80430d4:	d008 3108 b188 9f43 4b82 b53d 8201 0efa     ...1..C..K=.....
 
-  80430e4:	b3b5 eb03 5c6c 7bc0 bc9c 0365 35d0 acbd     ....l\.{..e..5..
 
-  80430f4:	15a7 85e1 5158 10f4 fd91 eafc 2c1e e239     ....XQ.......,9.
 
-  8043104:	b8c6 487d 092d 43e2 ac0b eb84 2e3e bc0b     ..}H-..C....>...
 
-  8043114:	5245 ca4e b025 b848 0f06 7531 1c87 81a6     ERN.%.H...1u....
 
-  8043124:	f05f 2770 05df 1601 90ba 8aaf 2167 4466     _.p'........g!fD
 
-  8043134:	70b6 43b8 74c5 22c2 7471 1531 b77c 870b     .p.C.t."qt1.|...
 
-  8043144:	cbcb b887 040a ec40 3029 1da4 1831 7434     ......@.)0..1.4t
 
-  8043154:	f248 4807 d168 f49c 9992 6129 d525 c284     H..Hh.....)a%...
 
-  8043164:	7362 ed09 453f 5a8f da4b 9e68 eae2 86b7     bs..?E.ZK.h.....
 
-  8043174:	bd29 8255 8aca b605 a6b4 1451 3311 ee64     ).U.......Q..3d.
 
-  8043184:	4e25 625d d922 932e 0417 e858 0460 6cb8     %N]b".....X.`..l
 
-  8043194:	5c5a 8a0a 0f49 c37c 0da0 9b7b 53ee cc15     Z\..I.|...{..S..
 
-  80431a4:	91fb 8b01 3d00 61f9 f470 fc08 4699 c682     .....=.ap....F..
 
-  80431b4:	c482 d5c0 0eec 271e 11f2 40d8 876c 6862     .......'...@l.bh
 
-  80431c4:	93b2 7b01 7192 bb43 5612 c77c 8a85 4b8c     ...{.qC..V|....K
 
-  80431d4:	e68c 6f04 8171 f4b0 fbe7 7616 6b2a 3018     ...oq......v*k.0
 
-  80431e4:	062b 1ba2 c23a 20e0 bd96 a753 558a 1440     +...:.. ..S..U@.
 
-  80431f4:	8f80 d729 e4b7 d007 48e2 d0ec 2088 8243     ..)......H... C.
 
-  8043204:	2f47 4b36 cb81 08ee 080a 33b0 f6c4 5705     G/6K.......3...W
 
-  8043214:	e9ec 0fa7 8668 f1c0 82b0 084e b81d e5b2     ....h.....N.....
 
-  8043224:	e682 4208 866c fadc 68b5 cc9b 34ac 9110     ...Bl....h...4..
 
-  8043234:	78a3 7bb9 3a42 6727 41d6 829b 3101 5af6     .x.{B:'g.A...1.Z
 
-  8043244:	8062 f9c9 fb7c c0c5 8ab6 10bc a067 570f     b...|.......g..W
 
-  8043254:	d24d 0c23 0d95 bcb6 a7d0 5b41 70d8 7014     M.#.......A[.p.p
 
-  8043264:	eb48 4ea5 74b3 88f4 e8de 98e5 3d0c a120     H..N.t.......= .
 
-  8043274:	ba94 ad0e 4518 a46e ad87 06c2 a509 14ae     .....En.........
 
-  8043284:	c190 bca7 f119 e49e c84d 96ea b286 ff0c     ........M.......
 
-  8043294:	e4a4 d09c e8d1 120b 2b14 5680 9ee4 e22c     .........+.V..,.
 
-  80432a4:	93d0 702e 1c66 fc78 bf37 f41d 94c2 88ab     ...pf.x.7.......
 
-  80432b4:	70cd ee26 09fe 98fe 0975 3857 acdb d849     .p&.....u.W8..I.
 
-  80432c4:	ebc6 a091 f818 8e9d 760f cf41 8682 d203     .........vA.....
 
-  80432d4:	70e0 5f41 28dc 90b3 0ea9 3a34 7d35 5675     .pA_.(....4:5}uV
 
-  80432e4:	fcb2 a949 f979 09b3 9147 4ba2 410e fc83     ..I.y...G..K.A..
 
-  80432f4:	1409 8789 1635 9d8a 2d6a d884 6299 1b5d     ....5...j-...b].
 
-  8043304:	9835 4096 4614 7ccd d17b 41d0 88ca 59aa     5..@.F.|{..A...Y
 
-  8043314:	f434 0f2e bbbd eadf 138a f680 bf9e a5d7     4...............
 
-  8043324:	6a28 4011 b106 8699 427d a499 340f 0349     (j.@....}B...4I.
 
-  8043334:	1dc5 f2bf 28d3 6bc4 8426 7e06 e3d7 002c     .....(.k&..~..,.
 
-  8043344:	0f4b af68 fc58 23b6 c9c1 06e0 99ac 87a8     K.h.X..#........
 
-  8043354:	e237 8531 ad0c 35d8 157c 9e9a 3b13 e9c3     7.1....5|....;..
 
-  8043364:	3aff 48c9 7493 0b1c 4b47 d038 c110 2191     .:.H.t..GK8....!
 
-  8043374:	cc32 952e cabe a404 0e70 0ce5 82a9 d5d2     2.......p.......
 
-  8043384:	7f56 24f6 395e ffc5 56b7 8abb 105d e155     V..$^9...V..].U.
 
-  8043394:	798d 73bc 5ae2 94ac 6b88 e1dd 8147 3968     .y.s.Z...k..G.h9
 
-  80433a4:	4feb 49b1 f57b 8c49 f436 b826 b717 3698     .O.I{.I.6.&....6
 
-  80433b4:	0f45 1366 51a7 5cc7 08d6 391d 7abc 2b1e     E.f..Q.\...9.z.+
 
-  80433c4:	8f6f ee82 e7ed 82a3 e4f9 0b89 adec 6ff0     o..............o
 
-  80433d4:	cccb ecbd 9f2c e640 6e5b 3ec4 1953 9d44     ....,.@.[n.>S.D.
 
-  80433e4:	5937 bce3 b487 9413 58d2 3d23 45e8 4462     7Y.......X#=.EbD
 
-  80433f4:	c2cb 6cad 148a 68c6 1db5 d334 06a6 dd8e     ...l...h..4.....
 
-  8043404:	8339 bd21 19fd 880c 46d3 076a 19fa b590     9.!......Fj.....
 
-  8043414:	cd2f 7c1e 2062 32a0 6fb5 7b80 58e4 7a78     /..|b .2.o.{.Xxz
 
-  8043424:	a87c bdb5 9ca8 7354 dd28 8bf8 6f01 4f67     |.....Ts(....ogO
 
-  8043434:	c87a 2b37 24e8 a1cb 641c a84a 9467 0243     z.7+.$...dJ.g.C.
 
-  8043444:	699a 1d53 2e1b 6d05 7057 54db 1aee 04f9     .iS....mWp.T....
 
-  8043454:	a52a 78b3 0822 f20b 01b9 cfca 238e 7356     *..x"........#Vs
 
-  8043464:	8917 3972 141c 304f 0466 4a21 8a0b 0592     ..r9..O0f.!J....
 
-  8043474:	c45b 70a0 d330 4a89 a14f 6338 f20f fa93     [..p0..JO.8c....
 
-  8043484:	b74a 052c c279 799d 41e2 119b ea40 1eed     J.,.y..y.A..@...
 
-  8043494:	3238 f704 d65a 57b8 c980 7b78 7ec1 102b     82..Z..W..x{.~+.
 
-  80434a4:	002c 1c12 0a52 86d2 decd 11c7 97ca 7d9e     ,...R..........}
 
-  80434b4:	885c 1855 6fa7 9ec9 934c 95a7 af0a 5cda     \.U..o..L......\
 
-  80434c4:	6ef0 6eab ca0b 84cd 54e2 fc29 0a0d d40e     .n.n.....T).....
 
-  80434d4:	1528 fab0 d467 4da1 f073 8ada 5637 ba40     (...g..Ms...7V@.
 
-  80434e4:	f4cd 1711 7b9f 0f7b d727 3b95 95c2 c967     .....{{.'..;..g.
 
-  80434f4:	7978 0043 306b 8812 14cf 6437 b18d 1466     xyC.k0....7d..f.
 
-  8043504:	ad1c 6c83 baab 36f4 b562 cd7d 0634 1f81     ...l...6b.}.4...
 
-  8043514:	883a 60e1 91cf ac69 78de bc32 bcd6 f266     :..`..i..x2...f.
 
-  8043524:	56ef 32aa 9b70 6b85 864f 11d7 75f1 e068     .V.2p..kO....uh.
 
-  8043534:	5a7d 2154 2a1d 1d26 6f0a 02bb b607 0d79     }ZT!.*&..o....y.
 
-  8043544:	e22f 6592 1b2f a3c1 3f49 74b8 3300 dffd     /..e/...I?.t.3..
 
-  8043554:	d6b8 6f34 8b98 e5fa 8cde f42c 156d 1cea     ..4o......,.m...
 
-  8043564:	f43a 11e8 ebde 5cab 637a 059e 44e3 f254     :......\zc...DT.
 
-  8043574:	e1b2 8292 a69e afe8 a46d 5709 01c5 0c2b     ........m..W..+.
 
-  8043584:	9e9f edba ec02 31c1 bdcc 63e5 3c67 0524     .......1...cg<$.
 
-  8043594:	5e87 d1ec 8883 09a9 e159 db69 e685 581a     .^......Y.i....X
 
-  80435a4:	f524 cf56 a9d4 1c7f 87b8 2261 df9f 1eda     $.V.......a"....
 
-  80435b4:	9086 6130 e3c7 bebf 52c2 fc80 2c03 2533     ..0a.....R...,3%
 
-  80435c4:	5b1d 862c e374 1bd9 9beb c0f4 ec19 5d82     .[,.t..........]
 
-  80435d4:	a97b e3e0 62c1 7c32 3f41 c60f bd38 7c11     {....b2|A?..8..|
 
-  80435e4:	05e6 a5ed 736a 42a9 b941 9c38 56c8 9f06     ....js.BA.8..V..
 
-  80435f4:	1199 86c6 901b 0b3c 8413 210f 70ca bc0c     ......<....!.p..
 
-  8043604:	1635 c1e3 709d 3242 9e27 e2aa 06bf ef93     5....pB2'.......
 
-  8043614:	f0de 9851 0044 2776 965d 20b7 c297 60fb     ..Q.D.v'].. ...`
 
-  8043624:	23ac b103 10ca a172 2cf5 432f ea5f 8229     .#....r..,/C_.).
 
-  8043634:	2204 e8b2 fa3d 377b b927 acfb dffa d1bf     ."..=.{7'.......
 
-  8043644:	82fe d90b c0f9 8f7a 6471 367a ddbf 7033     ......z.qdz6..3p
 
-  8043654:	179e ad9e d754 a741 e9aa 3e6c 43fa 4ea0     ....T.A...l>.C.N
 
-  8043664:	99e1 844d 95e6 4070 aba7 c9d8 63d6 3c7b     ..M...p@.....c{<
 
-  8043674:	5e76 1664 fc0c 96ed 423e a019 d8f1 1ece     v^d.....>B......
 
-  8043684:	00e2 de79 4ae6 7fb4 ea7a 0dec 6965 01d6     ..y..J..z...ei..
 
-  8043694:	44e8 abae a078 9e89 d84b 5773 fb46 67e0     .D..x...K.sWF..g
 
-  80436a4:	c9f2 22a6 a752 81a7 a985 83b7 21e6 941e     ..."R........!..
 
-  80436b4:	c6ce cdd1 1693 621f ce4a 5bf2 75de 9265     .......bJ..[.ue.
 
-  80436c4:	796b 5b82 6da1 d3a8 24fb c8e0 294f c88f     ky.[.m...$..O)..
 
-  80436d4:	f841 504c fe6c 3990 d3b3 381b 76a3 0861     A.LPl..9...8.va.
 
-  80436e4:	dc97 9b28 5604 4041 99ef 6c3b c617 20a1     ..(..VA@..;l... 
 
-  80436f4:	243e 9a41 f9fb 980a 7cb5 c5ed c9c1 911d     >$A......|......
 
-  8043704:	832d dfee 6100 aec2 f02c 6785 f0d8 0dd0     -....a..,..g....
 
-  8043714:	09ac 753c d9bf a3c7 d934 e9d4 2675 c639     ..<u....4...u&9.
 
-  8043724:	7804 8ac1 6564 5661 0c06 f965 914f e09f     .x..deaV..e.O...
 
-  8043734:	7291 b51c e80b 9211 32bb e76c d509 f1f6     .r.......2l.....
 
-  8043744:	e4bc 9545 f1d0 d545 77d0 1191 7fca 06c4     ..E...E..w......
 
-  8043754:	8116 c43d 7c46 e404 dd88 ee6a c4c3 e661     ..=.F|....j...a.
 
-  8043764:	32bb ea61 1530 56d6 5822 2a3a 18d6 103b     .2a.0..V"X:*..;.
 
-  8043774:	64f5 1e6e 8ade a145 f740 594c 2362 66a4     .dn...E.@.LYb#.f
 
-  8043784:	5629 cfef 5da9 3640 b94f 6c21 d145 c229     )V...]@6O.!lE.).
 
-  8043794:	4516 63cc b071 fc62 9d14 9c44 e4d9 d994     .E.cq.b...D.....
 
-  80437a4:	d81c 0758 adfd b93a 2880 22c0 05e8 b0f4     ..X...:..(."....
 
-  80437b4:	11d0 d7ac 0358 2d99 1a5f ce68 6869 a672     ....X..-_.h.ihr.
 
-  80437c4:	bdcc 97a0 9fd1 c290 2296 332e 128c 0bb0     .........".3....
 
-  80437d4:	cd62 7065 b960 83fc 3333 a7e2 b304 c737     b.ep`...33....7.
 
-  80437e4:	def8 5ab7 6e65 c6c7 45f6 4684 d26a bd4a     ...Zen...E.Fj.J.
 
-  80437f4:	4201 686a 9c9f f949 0841 fcbc 186e 91ac     .Bjh..I.A...n...
 
-  8043804:	8238 9b0f 7827 ac6c ed79 7c7a 5c44 e28a     8...'xl.y.z|D\..
 
-  8043814:	cdf7 055a 5107 7610 787b 841f 8fbe e0c2     ..Z..Q.v{x......
 
-  8043824:	ae18 db4e b984 a8d9 6c6e f8d5 6987 1f3c     ..N.....nl...i<.
 
-  8043834:	87f4 f730 f0f7 6234 7573 f8f5 b8f8 5c7c     ..0...4bsu....|\
 
-  8043844:	472f eee3 c22a 2bf4 68ab cf10 902c 1ff9     /G..*..+.h..,...
 
-  8043854:	9b9a 8f79 c82e 6b18 c68d a351 f9b1 cd0c     ..y....k..Q.....
 
-  8043864:	4a34 465b 9ead 6a94 6375 57ab d7aa cf2a     4J[F...juc.W..*.
 
-  8043874:	d54a 5186 ba41 95b4 b694 fbf0 b4a8 78de     J..QA..........x
 
-  8043884:	a156 4a5c 5425 abd0 1ad5 a547 5afa 366d     V.\J%T....G..Zm6
 
-  8043894:	901f 1b54 1a2d 095b fc35 a0d1 5d51 1437     ..T.-.[.5...Q]7.
 
-  80438a4:	66e4 a369 aa5e a06d eabb 26d6 47ff e642     .fi.^.m....&.GB.
 
-  80438b4:	f819 ae42 2541 751b 0503 e1c8 325f cb57     ..B.A%.u...._2W.
 
-  80438c4:	0022 02d9 0355 47ec 0c03 a8c9 4660 cab5     "...U..G....`F..
 
-  80438d4:	0956 7c77 fa8c 5ae6 0d79 daf3 2ad8 a1af     V.w|...Zy....*..
 
-  80438e4:	7e2a 3896 ee0b bad4 22f8 5130 7f2e 25a6     *~.8....."0Q...%
 
-  80438f4:	8c19 29ac e15a 59fa 04e3 ca25 4fe5 334a     ...)Z..Y..%..OJ3
 
-  8043904:	47cc d426 3efd 8a64 2b6b d47a 0ac4 21c9     .G&..>d.k+z....!
 
-  8043914:	dc38 ba8f ae37 6621 4f11 f1c7 40b3 f12f     8...7.!f.O...@/.
 
-  8043924:	3bd7 9ee0 e726 7d30 eb88 af39 3fce 0883     .;..&.0}..9..?..
 
-  8043934:	7b97 eaa6 23a7 4d91 432c b1ad 0479 129c     .{...#.M,C..y...
 
-  8043944:	d746 30b1 0346 6cc8 01ac bded 6d52 fd6d     F..0F..l....Rmm.
 
-  8043954:	a959 0eb6 692a a1ac 5688 5f13 2547 a706     Y...*i...V._G%..
 
-  8043964:	4e02 5c27 23d8 8260 0345 4fc8 a5b8 068f     .N'\.#`.E..O....
 
-  8043974:	1075 6554 bd6d aa5f 1a6d 0810 7440 4dd4     u.Tem._.m...@t.M
 
-  8043984:	82ad 12b5 e11d b663 ac2b 7520 4046 8ee8     ......c.+. uF@..
 
-  8043994:	96aa 5544 72ee 7383 4693 c183 447a a2c9     ..DU.r.s.F..zD..
 
-  80439a4:	645b c770 4000 73db 834b 9c77 ae16 7fcb     [dp..@.sK.w.....
 
-  80439b4:	8381 5f9a e5a0 1085 d52a b64f b502 2dad     ..._....*.O....-
 
-  80439c4:	b363 ef5a 1a97 9ab5 ff81 cfc0 c096 4d2a     c.Z...........*M
 
-  80439d4:	a045 081d 6ad8 7fd0 942a 80ff c63b 1f7d     E....j..*...;.}.
 
-  80439e4:	1cdb ae08 e33d 4c12 309b 0bc7 afd0 3636     ....=..L.0....66
 
-  80439f4:	ebb0 4037 6bb2 fb20 45b5 1510 1670 8bae     ..7@.k ..E..p...
 
-  8043a04:	e8ce ad1f 5c88 6ab7 6aa3 d66c db79 bbff     .....\.j.jl.y...
 
-  8043a14:	ccdd eb1c 90b4 7e66 9b8b 1f6d a053 b609     ......f~..m.S...
 
-  8043a24:	7aae eea8 a327 f599 86f5 b9b1 4eb5 7d4c     .z..'........NL}
 
-  8043a34:	bd6d 8eb4 b50d 89b5 4375 0d6e 8feb 06ff     m.......uCn.....
 
-  8043a44:	41be 9b2f 7ac6 7e95 8401 0972 ff82 b7d3     .A/..z.~..r.....
 
-  8043a54:	a128 dde5 19ac b49b ead1 b00d dafc be3a     (.............:.
 
-  8043a64:	1b6a 6795 b00d 9ace 05b1 0ace 9026 d66c     j..g........&.l.
 
-  8043a74:	a5b1 2ad6 90cf a8d5 17a1 b6a4 03f0 49f4     ...*...........I
 
-  8043a84:	773c 9f13 4acf 6ee8 ed03 55af 5391 acdd     <w...J.n...U.S..
 
-  8043a94:	a526 aa35 ab54 e1f1 6953 0d18 f2da e5e0     &.5.T...Si......
 
-  8043aa4:	56a8 50ad eab5 013a 9fc8 8722 354a 92c0     .V.P..:...".J5..
 
-  8043ab4:	43a8 a070 ae71 3f43 0931 49aa a085 5456     .Cp.q.C?1..I..VT
 
-  8043ac4:	69a1 aad4 21dc 1358 82e1 8146 55a9 619f     .i...!X...F..U.a
 
-  8043ad4:	615f 3c22 dc4e 44f8 34df 12f8 fe0d bd59     _a"<N..D.4....Y.
 
-  8043ae4:	6a5a 31d4 d2f8 255a c2d9 b148 1a43 68e0     Zj.1..Z%..H.C..h
 
-  8043af4:	9c15 8466 ec06 4a9b 9842 8031 8f99 3806     ..f....JB.1....8
 
-  8043b04:	2b1b 85c4 f08e 981b 435f 9bb3 56c6 2705     .+......_C...V.'
 
-  8043b14:	0567 0147 227e ff4d 2ab6 8c74 a402 56b4     g.G.~"M..*t....V
 
-  8043b24:	0513 9709 1601 fa49 55b7 32b9 c26b 4f5f     ......I..U.2k._O
 
-  8043b34:	87ca e2f7 ed79 8e33 1407 166f 202e fab9     ....y.3...o.. ..
 
-  8043b44:	451f d896 61aa 1bca cfeb ead6 efe0 8c5b     .E...a........[.
 
-  8043b54:	7014 a4d9 ac4e 9296 f547 3a4d d640 3540     .p..N...G.M:@.@5
 
-  8043b64:	8b2a 4330 43c8 a8fa 4eba 5b38 2f5f 4b11     *.0C.C...N8[_/.K
 
-  8043b74:	92aa 5054 1bad 8d8d 961e 4e88 7598 613a     ..TP.......N.u:a
 
-  8043b84:	8590 9062 06d4 1e7d b695 0ea8 8915 448c     ..b...}........D
 
-  8043b94:	f794 06b8 a055 5086 8896 a926 8f8b 1806     ....U..P..&.....
 
-  8043ba4:	b541 7906 b365 a681 9b6b a838 4136 907e     A..ye...k.8.6A~.
 
-  8043bb4:	5868 c1be 4289 8d22 54ec 3f0a 5f10 3058     hX...B"..T.?._X0
 
-  8043bc4:	e23a c0fe 0d30 9316 4a58 bee2 98a4 2103     :...0...XJ.....!
 
-  8043bd4:	c849 6848 87b2 afb6 86bc c5bf ff49 ac7b     I.Hh........I.{.
 
-  8043be4:	5e22 a2ca b84b dc78 c297 10c6 25e3 1afe     "^..K.x......%..
 
-  8043bf4:	de0e fe1a 248c b101 74ae 604f a2c1 f1fe     .....$...tO`....
 
-  8043c04:	c404 a36a d9b2 bd03 111e 7abe b944 3447     ..j........zD.G4
 
-  8043c14:	01b9 b0e1 6404 48f6 948c fc85 a5c9 e300     .....d.H........
 
-  8043c24:	0042 32c9 e2fa d422 b9c1 3b51 6922 8160     B..2.."...Q;"i`.
 
-  8043c34:	5144 f305 2c5a 1052 acfc c148 f3d0 0532     DQ..Z,R...H...2.
 
-  8043c44:	fe77 bb6f 3787 1b90 3fff 0462 9829 95ee     w.o..7...?b.)...
 
-  8043c54:	1da4 dc19 9e68 b59d 05fe e8b6 0dcb 77ce     ....h..........w
 
-  8043c64:	0000                                        ..
 
- 08043c66 <data__info_html>:
 
-  8043c66:	692f 666e 2e6f 7468 6c6d 0000 5448 5054     /info.html..HTTP
 
-  8043c76:	312f 312e 3220 3030 4f20 0d4b 530a 7265     /1.1 200 OK..Ser
 
-  8043c86:	6576 3a72 6c20 4977 2f50 2e31 2e33 2031     ver: lwIP/1.3.1 
 
-  8043c96:	6828 7474 3a70 2f2f 6173 6176 6e6e 6861     (http://savannah
 
-  8043ca6:	6e2e 6e6f 6e67 2e75 726f 2f67 7270 6a6f     .nongnu.org/proj
 
-  8043cb6:	6365 7374 6c2f 6977 2970 0a0d 6f43 746e     ects/lwip)..Cont
 
-  8043cc6:	6e65 2d74 654c 676e 6874 203a 3031 3839     ent-Length: 1098
 
-  8043cd6:	0a0d 6f43 6e6e 6365 6974 6e6f 203a 6c43     ..Connection: Cl
 
-  8043ce6:	736f 0d65 430a 6e6f 6574 746e 742d 7079     ose..Content-typ
 
-  8043cf6:	3a65 7420 7865 2f74 7468 6c6d 0a0d 6f43     e: text/html..Co
 
-  8043d06:	746e 6e65 2d74 6e45 6f63 6964 676e 203a     ntent-Encoding: 
 
-  8043d16:	7a67 7069 0a0d 0a0d 8b1f 0008 0000 0000     gzip............
 
-  8043d26:	0a04 569d 6edd 36db 7e14 5615 69bb 2881     ...V.n.6.~.V.i.(
 
-  8043d36:	766e 6035 8096 2b22 0286 1aeb 1da0 5eb0     nv5`.."+.......^
 
-  8043d46:	b40d db44 256c 9352 c728 4bbe adb2 68bb     ..D.l%R.(..K...h
 
-  8043d56:	0e81 30c1 4114 aed7 827b 6b74 b4b6 d389     ...0.A..{.tk....
 
-  8043d66:	a057 68de 21df 272d 9c5e e7ec 3642 c88f     W..h.!-'^...B6..
 
-  8043d76:	f7f3 ef9d aa1c e57b 3b93 f7eb 6fee 64dc     ......{..;...o.d
 
-  8043d86:	9343 7167 7e97 c659 20d5 020a 8248 71a7     C.gq.~Y.. ..H..q
 
-  8043d96:	1737 b386 c864 4acb 2898 4da8 fc3f 7b08     7...d..J.(.M?..{
 
-  8043da6:	edee 98d0 1422 d75f 1472 5f05 5f86 08dc     ...."._.r.._._..
 
-  8043db6:	75d7 705e 7b23 0899 a258 1195 2a0a 6eb7     .u^p#{..X....*.n
 
-  8043dc6:	2246 881d 4956 5cf1 c144 8a48 42cd e697     F"..VI.\D.H..B..
 
-  8043dd6:	b9cc 994d 619a 8a94 4c91 e844 1584 a4a9     ..M..a...LD.....
 
-  8043de6:	3c91 ab0b 6784 5a22 c95b 58f9 75e6 973e     .<...g"Z[..X.u>.
 
-  8043df6:	4aeb 4e94 70e0 5d19 0b87 4d23 6226 ccfb     .J.N.p.]..#M&b..
 
-  8043e06:	9b4e ed6f b349 8f65 7eed c8f3 361e bb4f     N.o.I.e..~...6O.
 
-  8043e16:	bf1d cdd7 7aa4 86c8 e8a5 4147 a5ce 4d5a     .....z....GA..ZM
 
-  8043e26:	2aaa a560 a2c8 32a0 4c93 4354 0c21 552c     .*`....2.LTC!.,U
 
-  8043e36:	2949 c30b a4cc b840 8c46 e74d 1f01 ff71     I)....@.F.M...q.
 
-  8043e46:	6036 9955 4144 33a9 fab1 c2a0 8ee1 8f7f     6`U.DA.3........
 
-  8043e56:	0785 a7ad 49d3 4ddc 88e5 1925 aaaf 5028     .....I.M..%...(P
 
-  8043e66:	d47c 25e3 7ff3 2a61 bcfa 4cce f62b 58e5     |..%..a*...L+..X
 
-  8043e76:	a1a4 05d1 9d2c 09d3 a2c9 fd28 dc56 b3e5     ....,.....(.V...
 
-  8043e86:	a5d0 c54a 9578 060a bd08 4c8f 340f c2c5     ..J.x......L.4..
 
-  8043e96:	c0f1 fb4c 6adb 107c 9930 6722 eaa1 a250     ..L..j|.0."g..P.
 
-  8043ea6:	b33a 75a3 ead6 b823 2236 fd2c 5a69 80c4     :..u..#.6",.iZ..
 
-  8043eb6:	a96c d8e3 04be 5bba 1f76 1f28 3b34 56cd     l......[v.(.4;.V
 
-  8043ec6:	d8f3 a77b 67f3 4075 231d a0d5 f1f2 f6c6     ..{..gu@.#......
 
-  8043ed6:	a867 936d 3d82 6fb1 3bed b87b 4d5c beaa     g.m..=.o.;{.\M..
 
-  8043ee6:	4c5e 2791 8e46 a540 05e5 c4a6 eeff 287a     ^L.'F.@.......z(
 
-  8043ef6:	a32b 49cb f9eb e6a7 781b 229d a3e4 9f53     +..I.....x."..S.
 
-  8043f06:	1a9d f7dc 9d90 7f81 e4b3 0145 1de0 336a     ..........E...j3
 
-  8043f16:	0336 e18b 05da b1de 05d1 8498 88f1 3267     6.............g2
 
-  8043f26:	2345 1568 f4f6 8098 0f26 5d7d 6ee6 eefb     E#h.....&.}].n..
 
-  8043f36:	b7e7 2837 80b7 3e51 455a cb81 1934 80c8     ..7(..Q>ZE..4...
 
-  8043f46:	b1a1 1a86 3626 dcee 07bd 4345 6ecc e40b     ....&6....EC.n..
 
-  8043f56:	5985 735c 9912 e85e e18c 27b0 299f 8969     .Y\s..^....'.)i.
 
-  8043f66:	cc06 82aa f8c3 c087 0f6b 4f48 8867 d91f     ........k.HOg...
 
-  8043f76:	9423 0b6b 310d 6444 1a74 d72b c6eb d6f3     #.k..1Ddt.+.....
 
-  8043f86:	4819 af5b 2b4a 3481 474a bb42 f80b ec0e     .H[.J+.4JGB.....
 
-  8043f96:	f371 b994 bfc2 9346 50ed 0dd9 8546 aa59     q.....F..P..F.Y.
 
-  8043fa6:	52e3 0bae 7323 019a a0ee ea73 c4bd 39f6     .R..#s....s....9
 
-  8043fb6:	7b42 9b03 cd47 b993 4719 9d54 6c8a c6a9     B{..G....GT..l..
 
-  8043fc6:	a08f 8ecf 67dd bdf6 d063 fda1 fed3 4646     .....g..c.....FF
 
-  8043fd6:	5388 ed58 982f 4a29 528d 772c 4bbd 3438     .SX./.)J.R,w.K84
 
-  8043fe6:	34db 181e fcb8 4162 bfb1 1239 8565 2cf2     .4....bA..9.e..,
 
-  8043ff6:	e18b 8df6 0675 bd12 3421 ed9a bd05 279c     ....u...!4.....'
 
-  8044006:	4d3c 61a9 e7cf 8afa da1c 9043 da7e b63c     <M.a......C.~.<.
 
-  8044016:	196f 7898 9ae2 aa87 11e1 d4a4 d631 6b94     o..x........1..k
 
-  8044026:	7a65 00b7 2ed6 076a 04b7 4c17 6a3d e2b5     ez....j....L=j..
 
-  8044036:	54ae 7d45 5a76 6805 1a65 7ab4 b553 9e1c     .TE}vZ.he..zS...
 
-  8044046:	672d 82d3 18d8 ad12 c531 3b40 ce3e 1a84     -g......1.@;>...
 
-  8044056:	0060 6b07 69d7 9e90 fd8f 6539 800a ec4f     `..k.i....9e..O.
 
-  8044066:	3c7b 7847 40fe 5318 7364 cff0 5461 ea93     {<Gx.@.Sds..aT..
 
-  8044076:	9d33 96b8 0df0 cd95 ffa5 0f1b fa51 c098     3...........Q...
 
-  8044086:	6223 39bb 4874 c483 78c3 2031 ce89 0231     #b.9tH...x1 ..1.
 
-  8044096:	f171 d010 e173 06bf 69d1 e55b 96e2 e67b     q...s....i[...{.
 
-  80440a6:	6ad1 77be bd18 f663 0135 f008 0288 9007     .j.w..c.5.......
 
-  80440b6:	f668 fd51 b77f a027 4832 2c88 ace8 abbb     h.Q...'.2H.,....
 
-  80440c6:	6d2e df4d c7cf 3a50 3855 0f65 fdda fb07     .mM...P:U8e.....
 
-  80440d6:	0582 b318 ed2f b31e c0bf afc7 b8f0 2c17     ..../..........,
 
-  80440e6:	eaad eef2 8bab abea c2fc bc0e 71b4 7548     .............qHu
 
-  80440f6:	f379 a8b4 dc75 8b24 bdbb 18da 66ad ac77     y...u.$......fw.
 
-  8044106:	0217 55a6 c992 21e4 57ae ea61 b152 eeaa     ...U...!.Wa.R...
 
-  8044116:	d2e5 c2dc bcbc 6d7a cae5 fcda ebba c519     ......zm........
 
-  8044126:	84f0 2945 5e73 904e 2bf5 a30c 00ef 07ae     ..E)s^N..+......
 
-  8044136:	8765 89e6 0a37 133a f1dd efe7 3f45 fee6     e...7.:.....E?..
 
-  8044146:	0dc5 3eef 1610 f86f b54b 9a62 9fc4 730a     ...>..o.K.b....s
 
-  8044156:	daf5 67c7 09bf e3e8 2fea 307b 75b5 096c     ...g...../{0.ul.
 
-  8044166:	0000                                        ..
 
- 08044168 <data__history_html>:
 
-  8044168:	682f 7369 6f74 7972 682e 6d74 006c 0000     /history.html...
 
-  8044178:	5448 5054 312f 312e 3220 3030 4f20 0d4b     HTTP/1.1 200 OK.
 
-  8044188:	530a 7265 6576 3a72 6c20 4977 2f50 2e31     .Server: lwIP/1.
 
-  8044198:	2e33 2031 6828 7474 3a70 2f2f 6173 6176     3.1 (http://sava
 
-  80441a8:	6e6e 6861 6e2e 6e6f 6e67 2e75 726f 2f67     nnah.nongnu.org/
 
-  80441b8:	7270 6a6f 6365 7374 6c2f 6977 2970 0a0d     projects/lwip)..
 
-  80441c8:	6f43 746e 6e65 2d74 654c 676e 6874 203a     Content-Length: 
 
-  80441d8:	3031 3339 0a0d 6f43 6e6e 6365 6974 6e6f     1093..Connection
 
-  80441e8:	203a 6c43 736f 0d65 430a 6e6f 6574 746e     : Close..Content
 
-  80441f8:	742d 7079 3a65 7420 7865 2f74 7468 6c6d     -type: text/html
 
-  8044208:	0a0d 6f43 746e 6e65 2d74 6e45 6f63 6964     ..Content-Encodi
 
-  8044218:	676e 203a 7a67 7069 0a0d 0a0d 8b1f 0008     ng: gzip........
 
-  8044228:	0000 0000 0a04 568d 8f5f 44db ff10 5b2a     .......V_..D..*[
 
-  8044238:	9d53 2962 2e4e 05e2 d891 0a15 a87d a084     S.b)N.......}...
 
-  8044248:	2952 a782 dad3 d89e 5bdb baef 6bbb 02e7     R).......[...k..
 
-  8044258:	4487 e05b 48a5 7895 bc40 c420 3837 4e90     .D[..H.x@. .78.N
 
-  8044268:	d2ba 7deb e706 311b b5eb 8f83 c746 4a29     ...}...1....F.)J
 
-  8044278:	dff6 cecc 6fcc 337e c59b 8f9d 5b3f fe7e     .....o~3....?[~.
 
-  8044288:	c3d5 24fb 0537 168f 97f6 2a70 d0b2 70f3     ...$7.....p*...p
 
-  8044298:	3405 168d 1805 924a 2a9c 260d 2af4 0ab3     .4....J..*.&.*..
 
-  80442a8:	c03e 76b3 3737 0ca6 69e0 eac5 fbd0 7832     >..v77...i....2x
 
-  80442b8:	51fc 94b0 4945 8b0d 7839 9124 80c2 9540     .Q..EI..9x$...@.
 
-  80442c8:	f707 4843 e833 0495 202d 6af4 eb06 2a52     ..CH3...- .j..R*
 
-  80442d8:	9033 b35b e4d4 0a61 4b35 6820 6317 9826     3.[...a.5K h.c&.
 
-  80442e8:	9461 3a07 1ca1 d9c2 a0b8 ac27 8aa8 badd     a..:......'.....
 
-  80442f8:	a0d2 05da 9345 21e1 309a 70cc 9a88 b65f     ....E..!.0.p.._.
 
-  8044308:	b62f 35df 9b6f e6b3 d90d 6b3e 9aae b73f     /..5o.....>k..?.
 
-  8044318:	b72f 9bcf e68b 6935 c6fe dbe5 73ed bf3c     /.....5i.....s<.
 
-  8044328:	de6a e7e0 671c 8b67 d3a9 705c 8e26 ae49     j....gg...\p&.I.
 
-  8044338:	1560 057a 6265 6892 11ed 3c05 b4f4 70d9     `.z.eb.h...<...p
 
-  8044348:	39d0 4180 3a3b ac51 c434 4a6c c60c 89c0     .9.A;:Q.4.lJ....
 
-  8044358:	3e99 35a1 bb75 d11e 092a 253d 4c39 689e     .>.5u...*.=%9L.h
 
-  8044368:	9e14 7dba 389c 6348 6e99 45a2 6aca 7092     ...}.8Hc.n.E.j.p
 
-  8044378:	75aa 09e8 c75a 1154 0437 ac29 c568 bf4d     .u..Z.T.7.).h.M.
 
-  8044388:	b15c 4813 2303 bc4b 1de9 c09d 08de 1dca     \..H.#K.........
 
-  8044398:	0b45 b9da 44ce 270a 9b13 044e d9d8 32e0     E....D.'..N....2
 
-  80443a8:	d693 8a17 bc5f ffa6 35ed f3de 4b08 6631     ...._....5...K1f
 
-  80443b8:	5510 30c0 9d77 c568 7d7b ae74 08f7 4ea7     .U.0w.h.{}t....N
 
-  80443c8:	4eda 8422 af6c a8e1 bdf9 b339 36d8 8897     .N".l.....9..6..
 
-  80443d8:	e231 7dbd ace9 f95b 0ea1 cb12 9130 e769     1..}..[.....0.i.
 
-  80443e8:	d46f 86fc cf6a 04ba c6bd 5d74 57ec 6263     o...j.....t].Wcb
 
-  80443f8:	7b25 5f95 a331 37df 6857 12ed 7f95 2e6c     %{._1..7Wh....l.
 
-  8044408:	afb6 2bf6 4ce5 a91b d736 a1a1 6189 1235     ...+.L..6....a5.
 
-  8044418:	4874 7f9b a7d5 5615 8386 006c a5bf f237     tH.....V..l...7.
 
-  8044428:	a103 716f 55d3 608c 10ac 2e8d 89d7 6a02     ..oq.U.`.......j
 
-  8044438:	51e0 7f15 6b4a 6196 4851 f231 03e7 b42a     .Q..Jk.aQH1...*.
 
-  8044448:	1839 b85c b456 fb2c baeb c1e2 f2eb 35d9     9.\.V.,........5
 
-  8044458:	6eb7 66cb 1b54 c592 02d8 1409 52e8 dd0a     .n.fT........R..
 
-  8044468:	bac6 b768 df5a d9db 278e bf6e a6f3 22e7     ..h.Z....'n...."
 
-  8044478:	623a 771c b28d 9ed3 6514 a88e 31fd afa8     :b.w.....e...1..
 
-  8044488:	2c73 7ca4 849f 28cd e826 1615 45e5 5fb3     s,.|...(&....E._
 
-  8044498:	67ea df4c 7379 5369 ef67 5a98 3853 bb6b     .gL.ysiSg..ZS8k.
 
-  80444a8:	b190 d335 db7a f065 a528 a286 d35b c4f6     ..5.z.e.(...[...
 
-  80444b8:	368e 1c44 b877 3a5a 1c5b 0eb1 116d a85a     .6D.w.Z:[...m.Z.
 
-  80444c8:	16ed a9a6 c7cb e42e 88d8 5320 b2b2 1615     .......... S....
 
-  80444d8:	c657 d148 87c7 c427 769e e925 2911 ce12     W.H...'..v%..)..
 
-  80444e8:	e392 cbd0 3cc0 19a4 668c 2a3e 92e9 420a     .....<...f>*...B
 
-  80444f8:	a315 ce41 14d2 b604 5504 a121 0f4e 7d38     ..A......U!.N.8}
 
-  8044508:	495a 769b 4094 dce7 11ed b5b9 5299 dd41     ZI.v.@.......RA.
 
-  8044518:	b9da 0cc9 515a 1dea c323 97fc 6334 25a2     ....ZQ..#...4c.%
 
-  8044528:	7a21 44cb 0d59 975b 7063 2952 fd85 251a     !z.DY.[.cpR)...%
 
-  8044538:	79b1 f66b f635 99b5 1d17 5888 f397 1ba9     .yk.5......X....
 
-  8044548:	9c5c 4416 c52b c159 15b0 ee1e 6b82 bf91     \..D+.Y......k..
 
-  8044558:	7e2d 7b02 ffe6 a607 05f6 7b76 faf4 9524     -~.{......v{..$.
 
-  8044568:	f5f6 207a e8cc e8ee f300 e661 ff3b d2dd     ..z ......a.;...
 
-  8044578:	d89f be16 2f74 7f96 d423 4daa e9e8 e82e     ....t/..#..M....
 
-  8044588:	a32e ef1d 47f6 2a5f 5056 09b5 a898 1941     .....G_*VP....A.
 
-  8044598:	1d48 29e0 3497 ea3d 3ce8 5660 65cc 09fc     H..).4=..<`V.e..
 
-  80445a8:	751e f6ae 2b1d d8c9 eb3d 4876 7739 8f5e     .u...+..=.vH9w^.
 
-  80445b8:	b0dd d013 b775 706f c26b 5dd2 361c 3163     ....u.opk..].6c1
 
-  80445c8:	b23f ba31 dd72 d0fe 65f6 452c b36c 913f     ?.1.r....e,El.?.
 
-  80445d8:	2fe6 7cb2 45f4 521f 285f b1a8 9c62 6123     ./.|.E.R_(..b.#a
 
-  80445e8:	f7ba 7ae2 fda8 fb66 dd96 39e2 5f6c ebd3     ...z..f....9l_..
 
-  80445f8:	e1cf 5a8d 9f51 99bc be3f f23b f486 27f4     ...ZQ...?.;....'
 
-  8044608:	1c52 06c3 036b cf1f 2555 7db0 7763 ff05     R...k...U%.}cw..
 
-  8044618:	381b 1d3d b841 d7c6 ae4f 5027 9d23 79fd     .8=.A...O.'P#..y
 
-  8044628:	1f6d 10d6 a826 94b0 4a29 64c0 b39d 9f24     m...&...)J.d..$.
 
-  8044638:	302b 1295 ecde 2f7d c50c 51bd 6e6f 95c0     +0....}/...Qon..
 
-  8044648:	18ff 29ad c0af c7f7 6677 87fe 64b5 3929     ...)....wf...d)9
 
-  8044658:	76fc d0d8 bfdb ff50 1100 94f1 524b 0009     .v....P.....KR..
 
-  8044668:	4800                                             .
 
- 08044669 <HTTP_200_OK>:
 
-  8044669:	5448 5054 312f 312e 3220 3030 4f20 0d4b     HTTP/1.1 200 OK.
 
-  8044679:	0d0a 000a 0000 2800                              .......
 
- 08044680 <file__main_css>:
 
-  8044680:	4c28 0804 dfe6 0803 dff2 0803 2a04 0000     (L...........*..
 
-  8044690:	0001 0000                                   ....
 
- 08044694 <data__ups_history_html>:
 
-  8044694:	752f 7370 685f 7369 6f74 7972 682e 6d74     /ups_history.htm
 
-  80446a4:	006c 0000 5448 5054 312f 312e 3220 3030     l...HTTP/1.1 200
 
-  80446b4:	4f20 0d4b 530a 7265 6576 3a72 6c20 4977      OK..Server: lwI
 
-  80446c4:	2f50 2e31 2e33 2031 6828 7474 3a70 2f2f     P/1.3.1 (http://
 
-  80446d4:	6173 6176 6e6e 6861 6e2e 6e6f 6e67 2e75     savannah.nongnu.
 
-  80446e4:	726f 2f67 7270 6a6f 6365 7374 6c2f 6977     org/projects/lwi
 
-  80446f4:	2970 0a0d 6f43 746e 6e65 2d74 654c 676e     p)..Content-Leng
 
-  8044704:	6874 203a 3131 3337 0a0d 6f43 6e6e 6365     th: 1173..Connec
 
-  8044714:	6974 6e6f 203a 6c43 736f 0d65 430a 6e6f     tion: Close..Con
 
-  8044724:	6574 746e 742d 7079 3a65 7420 7865 2f74     tent-type: text/
 
-  8044734:	7468 6c6d 0a0d 6f43 746e 6e65 2d74 6e45     html..Content-En
 
-  8044744:	6f63 6964 676e 203a 7a67 7069 0a0d 0a0d     coding: gzip....
 
-  8044754:	8b1f 0008 0000 0000 0a04 568d 6edd 44dc     ...........V.n.D
 
-  8044764:	7e14 d715 d154 8a5a 59bd 41b8 ed64 850a     .~..T.Z..Y.Ad...
 
-  8044774:	545e 1042 1429 55c1 b634 aecf 99a7 bb1d     ^TB.)..U4.......
 
-  8044784:	b1e3 5b37 9482 14a4 8a2e 9a54 540b a121     ..7[......T..T!.
 
-  8044794:	3caa 0441 28aa 6d3f 615f 46fc 999c 17b1     .<A..(?m_a.F....
 
-  80447a4:	d9a7 7b44 ebb1 39f9 e7ff e73b f8cc 27c6     ..D{...9..;....'
 
-  80447b4:	ef9f f17c eef5 276d 3393 8d16 bff5 08c3     ..|...m'.3......
 
-  80447c4:	869f 8bae 203b 3469 819e 4e24 1192 8251     ....; i4..$N..Q.
 
-  80447d4:	dd0c 4e4a 0ffc cef1 669c 1652 dc3e 68af     ..JN.....fR.>..h
 
-  80447e4:	ba1d f95f 3f77 77f6 59f2 2441 198d 4eb8     .._.w?.w.YA$...N
 
-  80447f4:	7392 1c09 ee59 0edc 9d21 c742 c9c4 420c     .s..Y...!.B....B
 
-  8044804:	a6b7 2f30 2172 747b 9a73 2cca a14c 09a6     ..0/r!{ts..,L...
 
-  8044814:	66f8 49b3 9539 3094 4cbf 8308 b470 2339     .f.I9..0.L..p.9#
 
-  8044824:	7487 cd56 fb96 04aa 3661 5504 5b86 42a8     .tV.....a6.U.[.B
 
-  8044834:	c952 5220 373f 9b0f f563 9d5a 7fab e69c     R. R?7..c.Z.....
 
-  8044844:	bd44 4e69 539a 7ffc 4782 9aaf 8e27 a67a     D.iN.S...G..'.z.
 
-  8044854:	aa9e e3e7 a5a1 331e 0fca 4c9c 24c0 6774     .......3...L.$tg
 
-  8044864:	f284 2920 d74b c011 b742 0b94 6506 2006     .. )K...B....e. 
 
-  8044874:	7651 0899 485a 2e47 740a c240 1ca1 23de     Qv..ZHG..t@....#
 
-  8044884:	b135 aea7 8a53 7424 ce45 b820 2257 d0f1     5...S.$tE. .W"..
 
-  8044894:	e39e 86c2 ce31 45d3 4e34 ed69 8c24 6594     ....1..E4Ni.$..e
 
-  80448a4:	72e8 c752 3844 e3f6 30a7 1521 dd93 4276     .rR.D8...0!...vB
 
-  80448b4:	210f 65f5 a05e 4ba4 be3c 0896 5ec2 6345     .!.e^..K<....^Ec
 
-  80448c4:	9ad2 794e 870a 4e81 0621 ead5 f960 d734     ..Ny...N!...`.4.
 
-  80448d4:	10b6 a1fc ee98 e3bf cf78 6875 3e8a af03     ........x.uh.>..
 
-  80448e4:	8a7c 6af9 2b49 f1d6 71a3 459d b4b8 7ad4     |..jI+...q.E...z
 
-  80448f4:	6111 56c8 8e2a 73d4 8e75 3f91 ff57 97aa     .a.V*..su..?W...
 
-  8044904:	69cd dc73 b63c 35da 9f7d c107 2924 969f     .is.<..5}...$)..
 
-  8044914:	ded6 fd48 6c8a 2398 7d64 fea3 7f52 57ab     ..H..l.#d}..R..W
 
-  8044924:	d9ab 9f28 1de4 33cb baf5 0ef9 7a93 ba8c     ..(....3.....z..
 
-  8044934:	9bce 75ef 5762 5533 b945 d19f e652 7162     ...ubW3UE...R.bq
 
-  8044944:	3c31 9124 46b4 f660 f2e1 88bf 8561 6115     1<$..F`.....a..a
 
-  8044954:	d6c3 814b 3586 0462 6fc3 5762 3156 6406     ..K..5b..obWV1.d
 
-  8044964:	1182 f369 089d 1220 aaf6 33f8 d352 1629     ..i... ....3R.).
 
-  8044974:	ce43 de07 0f76 260e 3d0f 7381 8a41 13a2     C...v..&.=.sA...
 
-  8044984:	16d7 8a0d 46cb cc17 0eba 48c5 07da d489     .....F.....H....
 
-  8044994:	e0c5 280b 9c8b c697 b1bf 3239 9af6 12d5     ...(......92....
 
-  80449a4:	f61f b5bc c3a0 2a20 1697 52b3 65e8 8607     ...... *...R.e..
 
-  80449b4:	7b22 431f d675 0a3c 531c 6f59 e39b 4b00     "{.Cu.<..SYo...K
 
-  80449c4:	bb28 834c 54c9 d6fa 39d0 77ea 5964 784d     (.L..T...9.wdYMx
 
-  80449d4:	3cd6 535e 1fdc a508 ea87 444f f9c6 a255     .<^S......OD..U.
 
-  80449e4:	aed0 07e6 230b c544 55e9 ef84 f718 fa93     .....#D..U......
 
-  80449f4:	3d45 2d5d 37f2 12f5 f5a1 8116 808c 6c46     E=]-.7........Fl
 
-  8044a04:	96ea 8572 17f6 9f5a 3921 2d59 0ceb 5179     ..r...Z.!9Y-..yQ
 
-  8044a14:	869a 8ea8 50d8 1687 a657 4ac3 1bdd 764c     .....P..W..J..Lv
 
-  8044a24:	945a a7ee 1244 c34c dcd0 afe8 294e 977e     Z...D.L.....N)~.
 
-  8044a34:	d1d8 ab65 82b1 46fd 1b37 270d 847d 6c50     ..e....F7..'}.Pl
 
-  8044a44:	b731 714c b92c 153f a579 493b 495c f399     1.Lq,.?.y.;I\I..
 
-  8044a54:	9f2e e378 dbe8 f5b6 4eb8 13ce 9346 d083     ..x......N..F...
 
-  8044a64:	829d bbbc b7bb a64b 1830 c879 1657 3b84     ......K.0.y.W..;
 
-  8044a74:	5044 67e2 4d34 6381 13f7 d615 d1cd 2306     DP.g4M.c.......#
 
-  8044a84:	abf7 a35c 291b 3ed0 20ab d672 54d6 a808     ..\..).>. r..T..
 
-  8044a94:	553b 69d7 4542 5c42 d3d2 7d47 a641 9b94     ;U.iBEB\..G}A...
 
-  8044aa4:	4372 2983 aa2f a37e b5b6 549a e042 4244     rC.)/.~....TB.DB
 
-  8044ab4:	1c4a 254f 807d 7c5d 46e4 3c1b 8b2e a1ed     J.O%}.]|.F.<....
 
-  8044ac4:	58fd 7557 3528 a315 8a33 7f8d e96b 899f     .XWu(5..3...k...
 
-  8044ad4:	baff e451 2138 f2d6 ac4d 6df2 18fd b2f6     ..Q.8!..M..m....
 
-  8044ae4:	e855 7d29 cb87 cdc1 06c1 4626 2f6e b0bd     U.)}......&Fn/..
 
-  8044af4:	2f5b 63d0 c76b 664e daef 0b80 d993 a5a3     [/.ck.Nf........
 
-  8044b04:	6deb 5b6a ae0c 418e e821 888c 4f85 0d79     .mj[...A!....Oy.
 
-  8044b14:	4242 c36a b29e a49c 035d a1ee 662c fc79     BBj.....]...,fy.
 
-  8044b24:	5e29 a6b5 bbf6 3274 b7a5 e9b4 6121 5acc     )^....t2....!a.Z
 
-  8044b34:	69be 173f ca88 bdba 5893 0137 974d e8fe     .i?......X7.M...
 
-  8044b44:	c5fc 5f6c 8afb eb1d 7605 4783 74ba f0cd     ..l_.....v.G.t..
 
-  8044b54:	6d3f c47e e48e ecec d97d d6b9 0f15 4c72     ?m~.....}.....rL
 
-  8044b64:	6328 9f08 5676 745e 3bb9 7334 8d7c 80a7     (c..vV^t.;4s|...
 
-  8044b74:	4979 7c5c 5c0a 15cb f2f5 f238 6f36 dc0e     yI\|.\....8.6o..
 
-  8044b84:	5e3e 20bd 07e7 c0b0 c17a c3b7 e2a4 b938     >^. ....z.....8.
 
-  8044b94:	b070 f780 1c0d 0d1d 9c20 f0e3 e7cf d401     p....... .......
 
-  8044ba4:	6f88 bb6f efd6 108a 6402 c9d8 a453 6080     .oo......d..S..`
 
-  8044bb4:	d19e db24 2016 c12b d1dd 6e07 f218 835b     ..$.. +....n..[.
 
-  8044bc4:	c69e 721e d1de 135b 8156 6de7 18de 1f79     ...r..[.V..m..y.
 
-  8044bd4:	39d5 9d4d 6fad e3fb 3ccc ff1c 2503 ce74     .9M..o...<...%t.
 
-  8044be4:	4891 000a 0000 0000                         .H......
 
- 08044bec <file__favicon_ico>:
 
-  8044bec:	0000 0000 c857 0803 c867 0803 053c 0000     ....W...g...<...
 
-  8044bfc:	0001 0000                                   ....
 
- 08044c00 <file__settings_html>:
 
-  8044c00:	c32c 0803 cda3 0803 cdb3 0803 1233 0000     ,...........3...
 
-  8044c10:	0001 0000                                   ....
 
- 08044c14 <file__info_html>:
 
-  8044c14:	c340 0803 3c66 0804 3c72 0804 04f6 0000     @...f<..r<......
 
-  8044c24:	0001 0000                                   ....
 
- 08044c28 <file__login_html>:
 
-  8044c28:	4c14 0804 c017 0803 c023 0803 02f6 0000     .L......#.......
 
-  8044c38:	0001 0000                                   ....
 
- 08044c3c <file__history_html>:
 
-  8044c3c:	4bec 0804 4168 0804 4178 0804 04f1 0000     .K..hA..xA......
 
-  8044c4c:	0001 0000                                   ....
 
- 08044c50 <file__role_js>:
 
-  8044c50:	c354 0803 b5fc 0803 b608 0803 0a0f 0000     T...............
 
-  8044c60:	0001 0000 5448 5054 312f 302e 3220 3030     ....HTTP/1.0 200
 
-  8044c70:	4f20 0d4b 430a 6e6f 6574 746e 542d 7079      OK..Content-Typ
 
-  8044c80:	3a65 6574 7478 682f 6d74 0d6c 0d0a 000a     e:text/html.....
 
-  8044c90:	227b 4341 3a22 0022 2c22 4422 2243 223a     {"AC":".","DC":"
 
-  8044ca0:	2200 222c 6e69 665f 6572 2271 223a 2200     .","in_freq":"."
 
-  8044cb0:	222c 756f 5f74 7266 7165 3a22 0022 2c22     ,"out_freq":".",
 
-  8044cc0:	7022 7277 3a22 0022 2c22 6222 7461 635f     "pwr":".","bat_c
 
-  8044cd0:	7061 3a22 0022 2c22 6922 6e6e 7265 745f     ap":".","inner_t
 
-  8044ce0:	6d65 2270 223a 2200 222c 6162 5f74 6974     emp":".","bat_ti
 
-  8044cf0:	656d 6c5f 6665 2274 223a 2200 222c 6964     me_left":".","di
 
-  8044d00:	2231 223a 2200 222c 6f72 2231 223a 2200     1":".","ro1":"."
 
-  8044d10:	222c 6f72 2232 223a 2200 222c 5f6d 6c61     ,"ro2":".","m_al
 
-  8044d20:	7261 226d 223a 2200 222c 5f75 6c61 7261     arm":".","u_alar
 
-  8044d30:	226d 223a 2200 222c 656e 7374 7465 6974     m":".","netsetti
 
-  8044d40:	676e 5f73 6863 6e61 6567 2264 223a 2200     ngs_changed":"."
 
-  8044d50:	007d 227b 6572 6461 635f 6d6f 756d 696e     }.{"read_communi
 
-  8044d60:	7974 3a22 0022 2c22 7722 6972 6574 635f     ty":".","write_c
 
-  8044d70:	6d6f 756d 696e 7974 3a22 0022 2c22 6d22     ommunity":".","m
 
-  8044d80:	6e61 6761 7265 5049 3a22 0022 2c22 6d22     anagerIP":".","m
 
-  8044d90:	6e61 6761 7265 5049 2232 223a 2200 222c     anagerIP2":".","
 
-  8044da0:	616d 616e 6567 4972 3350 3a22 0022 2c22     managerIP3":".",
 
-  8044db0:	6d22 6e61 6761 7265 5049 2234 223a 2200     "managerIP4":"."
 
-  8044dc0:	222c 616d 616e 6567 4972 3550 3a22 0022     ,"managerIP5":".
 
-  8044dd0:	2c22 6922 6170 6464 2272 223a 2200 222c     ","ipaddr":".","
 
-  8044de0:	7767 3a22 0022 2c22 6d22 7361 226b 223a     gw":".","mask":"
 
-  8044df0:	2200 222c 6864 7063 3a22 2c00 6122 7475     .","dhcp":.,"aut
 
-  8044e00:	2268 003a 222c 7372 735f 7265 6576 2272     h":.,"rs_server"
 
-  8044e10:	223a 2200 222c 7372 705f 726f 2274 223a     :".","rs_port":"
 
-  8044e20:	2200 222c 7372 705f 6477 3a22 0022 2c22     .","rs_pwd":".",
 
-  8044e30:	7222 5f73 656b 2279 223a 2200 222c 7372     "rs_key":".","rs
 
-  8044e40:	655f 616e 6c62 6465 3a22 2c00 6422 7461     _enabled":.,"dat
 
-  8044e50:	2265 223a 2200 222c 6974 656d 3a22 0022     e":".","time":".
 
-  8044e60:	2c22 6e22 7074 3a22 0022 2c22 6e22 7074     ","ntp":".","ntp
 
-  8044e70:	6573 7672 7069 3a22 0022 2c22 7522 6374     servip":".","utc
 
-  8044e80:	3a22 0022 2c22 7522 6d74 3a22 0022 2c22     ":".","utm":".",
 
-  8044e90:	6c22 7361 7374 6e79 7463 6d69 2265 223a     "lastsynctime":"
 
-  8044ea0:	7b00 7522 7470 6d69 2265 223a 2200 222c     .{"uptime":".","
 
-  8044eb0:	6f6d 6564 226c 223a 2200 222c 7270 646f     model":".","prod
 
-  8044ec0:	7461 2265 223a 2200 222c 7766 6576 7372     ate":".","fwvers
 
-  8044ed0:	6f69 226e 223a 2200 222c 616d 6163 6464     ion":".","macadd
 
-  8044ee0:	2272 223a 2200 222c 6573 6e72 226f 223a     r":".","serno":"
 
-  8044ef0:	2200 222c 776f 656e 2272 223a 2200 222c     .","owner":".","
 
-  8044f00:	7973 4c73 636f 7461 6f69 226e 223a 2200     sysLocation":"."
 
-  8044f10:	222c 6f63 6d6d 6e65 2274 223a 2200 222c     ,"comment":".","
 
-  8044f20:	7075 5f73 6f6d 6564 226c 223a 2200 222c     ups_model":".","
 
-  8044f30:	7075 5f73 7766 6576 7372 6f69 226e 223a     ups_fwversion":"
 
-  8044f40:	4800 5454 2f50 2e31 2031 3032 2030 4b4f     .HTTP/1.1 200 OK
 
-  8044f50:	0a0d 6f43 746e 6e65 2d74 7954 6570 743a     ..Content-Type:t
 
-  8044f60:	7865 2f74 7468 6c6d 0a0d 0a0d 7b00 7022     ext/html.....{"p
 
-  8044f70:	6761 2265 203a 005b 6925 5d00 222c 6170     age": [.%i.],"pa
 
-  8044f80:	6567 2273 223a 5200 6265 6f6f 5474 7361     ges":".RebootTas
 
-  8044f90:	006b 6374 6970 5f70 6874 6572 6461 0000     k.tcpip_thread..
 
- 08044fa0 <memp_num>:
 
-  8044fa0:	0004 0006 000c 0005 0019 0010 0006 0008     ................
 
-  8044fb0:	0014 000a 001e 0032 0005 0009 0032 0019     ......2.....2...
 
- 08044fc0 <memp_sizes>:
 
-  8044fc0:	001c 0020 0094 001c 0010 0010 002c 0014     .. .........,...
 
-  8044fd0:	0014 0010 0020 0010 0024 0080 0010 0614     .... ...$.......
 
- 08044fe0 <tcp_pcb_lists>:
 
-  8044fe0:	f6c4 2000 f6cc 2000 f6bc 2000 f6d0 2000     ... ... ... ... 
 
- 08044ff0 <tcp_backoff>:
 
-  8044ff0:	0201 0403 0605 0707 0707 0707 0307               .............
 
- 08044ffd <tcp_persist_backoff>:
 
-  8044ffd:	0603 180c 6030 ff78                              ....0`x
 
- 08045004 <ip_addr_broadcast>:
 
-  8045004:	ffff ffff                                   ....
 
- 08045008 <ip_addr_any>:
 
-  8045008:	0000 0000                                   ....
 
- 0804500c <syslocation_len_default>:
 
-  804500c:	0000 0000                                   ....
 
- 08045010 <snmp_scalar>:
 
-  8045010:	4395 0803 3e49 0803 43d9 0803 3f5d 0803     .C..I>...C..]?..
 
-  8045020:	0001 0000                                   ....
 
- 08045024 <udpentry_nodes>:
 
-  8045024:	0774 2000 0774 2000                         t.. t.. 
 
- 0804502c <attable>:
 
-  804502c:	39e3 0803 39e9 0803 39eb 0803 39ef 0803     .9...9...9...9..
 
-  804503c:	0002 0001 515c 0804 5284 0804               ....\Q...R..
 
- 08045048 <mib2_nodes>:
 
-  8045048:	5854 0804 541c 0804 073c 2000 58f8 0804     TX...T..<.. .X..
 
-  8045058:	521c 0804 53ec 0804 5648 0804 51b8 0804     .R...S..HV...Q..
 
- 08045068 <iprteentry_nodes>:
 
-  8045068:	07a4 2000 07a4 2000 07a4 2000 07a4 2000     ... ... ... ... 
 
-  8045078:	07a4 2000 07a4 2000 07a4 2000 07a4 2000     ... ... ... ... 
 
-  8045088:	07a4 2000 07a4 2000 07a4 2000 07a4 2000     ... ... ... ... 
 
-  8045098:	07a4 2000                                   ... 
 
- 0804509c <iprouteinfo>:
 
-  804509c:	0002 0000 0000 0000 0000 0000 0000 0000     ................
 
-  80450ac:	0000 0000 0000 0000 0000 0000 0000 0000     ................
 
-  80450bc:	0000 0000 0000 0000 0000 0000 0000 0000     ................
 
-  80450cc:	0000 0000 0000 0000 0000 0000 0000 0000     ................
 
-  80450dc:	0000 0000 0000 0000 0000 0000 0000 0000     ................
 
-  80450ec:	0000 0000 0000 0000 0000 0000 0000 0000     ................
 
-  80450fc:	0000 0000 0000 0000 0000 0000 0000 0000     ................
 
-  804510c:	0000 0000 0000 0000 0000 0000 0000 0000     ................
 
-  804511c:	0000 0000                                   ....
 
- 08045120 <sysname_default>:
 
-  8045120:	5146 4e44 752d 6b6e 0000 0000               FQDN-unk....
 
- 0804512c <ipntomentry_ids>:
 
-  804512c:	0001 0000 0002 0000 0003 0000 0004 0000     ................
 
- 0804513c <interfaces_scalar>:
 
-  804513c:	3a9d 0803 3abd 0803 39eb 0803 39ef 0803     .:...:...9...9..
 
-  804514c:	0001 0000                                   ....
 
- 08045150 <syslocation_default>:
 
-  8045150:	0000 0000                                   ....
 
- 08045154 <interfaces_ids>:
 
-  8045154:	0001 0000 0002 0000                         ........
 
- 0804515c <attable_id>:
 
-  804515c:	0001 0000                                   ....
 
- 08045160 <mgmt>:
 
-  8045160:	39e3 0803 39e9 0803 39eb 0803 39ef 0803     .9...9...9...9..
 
-  8045170:	0002 0001 5850 0804 5644 0804               ....PX..DV..
 
- 0804517c <mib2_ids>:
 
-  804517c:	0001 0000 0002 0000 0003 0000 0004 0000     ................
 
-  804518c:	0005 0000 0006 0000 0007 0000 000b 0000     ................
 
- 0804519c <mib2>:
 
-  804519c:	39e3 0803 39e9 0803 39eb 0803 39ef 0803     .9...9...9...9..
 
-  80451ac:	0002 0008 517c 0804 5048 0804               ....|Q..HP..
 
- 080451b8 <snmp>:
 
-  80451b8:	39e3 0803 39e9 0803 39eb 0803 39ef 0803     .9...9...9...9..
 
-  80451c8:	0002 001c 573c 0804 55d4 0804               ....<W...U..
 
- 080451d4 <tcp_scalar>:
 
-  80451d4:	4309 0803 3d41 0803 39eb 0803 39ef 0803     .C..A=...9...9..
 
-  80451e4:	0001 0000                                   ....
 
- 080451e8 <sys_tem_nodes>:
 
-  80451e8:	5328 0804 5328 0804 5328 0804 5328 0804     (S..(S..(S..(S..
 
-  80451f8:	5328 0804 5328 0804 5328 0804               (S..(S..(S..
 
- 08045204 <snmpenableauthentraps_default>:
 
-  8045204:	0002 0000                                   ....
 
- 08045208 <udp_nodes>:
 
-  8045208:	5270 0804 5270 0804 5270 0804 5270 0804     pR..pR..pR..pR..
 
-  8045218:	0758 2000                                   X.. 
 
- 0804521c <icmp>:
 
-  804521c:	39e3 0803 39e9 0803 39eb 0803 39ef 0803     .9...9...9...9..
 
-  804522c:	0002 001a 54e8 0804 5378 0804               .....T..xS..
 
- 08045238 <ip_scalar>:
 
-  8045238:	421d 0803 3ad1 0803 3b91 0803 39ef 0803     .B...:...;...9..
 
-  8045248:	0001 0000                                   ....
 
- 0804524c <udpentry_ids>:
 
-  804524c:	0001 0000 0002 0000                         ........
 
- 08045254 <ipntomentry>:
 
-  8045254:	39e3 0803 39e9 0803 39eb 0803 39ef 0803     .9...9...9...9..
 
-  8045264:	0002 0004 512c 0804 540c 0804               ....,Q...T..
 
- 08045270 <udp_scalar>:
 
-  8045270:	3de5 0803 3e11 0803 39eb 0803 39ef 0803     .=...>...9...9..
 
-  8045280:	0001 0000                                   ....
 
- 08045284 <attable_node>:
 
-  8045284:	530c 0804                                   .S..
 
- 08045288 <ifspecific>:
 
-  8045288:	0002 0000 0000 0000 0000 0000 0000 0000     ................
 
-  8045298:	0000 0000 0000 0000 0000 0000 0000 0000     ................
 
-  80452a8:	0000 0000 0000 0000 0000 0000 0000 0000     ................
 
-  80452b8:	0000 0000 0000 0000 0000 0000 0000 0000     ................
 
-  80452c8:	0000 0000 0000 0000 0000 0000 0000 0000     ................
 
-  80452d8:	0000 0000 0000 0000 0000 0000 0000 0000     ................
 
-  80452e8:	0000 0000 0000 0000 0000 0000 0000 0000     ................
 
-  80452f8:	0000 0000 0000 0000 0000 0000 0000 0000     ................
 
-  8045308:	0000 0000                                   ....
 
- 0804530c <atentry>:
 
-  804530c:	39e3 0803 39e9 0803 39eb 0803 39ef 0803     .9...9...9...9..
 
-  804531c:	0002 0003 546c 0804 5564 0804               ....lT..dU..
 
- 08045328 <sys_tem_scalar>:
 
-  8045328:	39f1 0803 4675 0803 4181 0803 4421 0803     .9..uF...A..!D..
 
-  8045338:	0001 0000                                   ....
 
- 0804533c <tcp_nodes>:
 
-  804533c:	51d4 0804 51d4 0804 51d4 0804 51d4 0804     .Q...Q...Q...Q..
 
-  804534c:	51d4 0804 51d4 0804 51d4 0804 51d4 0804     .Q...Q...Q...Q..
 
-  804535c:	51d4 0804 51d4 0804 51d4 0804 51d4 0804     .Q...Q...Q...Q..
 
-  804536c:	08a4 2000 51d4 0804 51d4 0804               ... .Q...Q..
 
- 08045378 <icmp_nodes>:
 
-  8045378:	5820 0804 5820 0804 5820 0804 5820 0804      X.. X.. X.. X..
 
-  8045388:	5820 0804 5820 0804 5820 0804 5820 0804      X.. X.. X.. X..
 
-  8045398:	5820 0804 5820 0804 5820 0804 5820 0804      X.. X.. X.. X..
 
-  80453a8:	5820 0804 5820 0804 5820 0804 5820 0804      X.. X.. X.. X..
 
-  80453b8:	5820 0804 5820 0804 5820 0804 5820 0804      X.. X.. X.. X..
 
-  80453c8:	5820 0804 5820 0804 5820 0804 5820 0804      X.. X.. X.. X..
 
-  80453d8:	5820 0804 5820 0804                          X.. X..
 
- 080453e0 <sysdescr_len_default>:
 
-  80453e0:	0004 0000                                   ....
 
- 080453e4 <interfaces_nodes>:
 
-  80453e4:	513c 0804 0944 2000                         <Q..D.. 
 
- 080453ec <tcp>:
 
-  80453ec:	39e3 0803 39e9 0803 39eb 0803 39ef 0803     .9...9...9...9..
 
-  80453fc:	0002 000f 5598 0804 533c 0804               .....U..<S..
 
- 08045408 <syscontact_default>:
 
-  8045408:	0000 0000                                   ....
 
- 0804540c <ipntomentry_nodes>:
 
-  804540c:	0a08 2000 0a08 2000 0a08 2000 0a08 2000     ... ... ... ... 
 
- 0804541c <interfaces>:
 
-  804541c:	39e3 0803 39e9 0803 39eb 0803 39ef 0803     .9...9...9...9..
 
-  804542c:	0002 0002 5154 0804 53e4 0804               ....TQ...S..
 
- 08045438 <iprteentry_ids>:
 
-  8045438:	0001 0000 0002 0000 0003 0000 0004 0000     ................
 
-  8045448:	0005 0000 0006 0000 0007 0000 0008 0000     ................
 
-  8045458:	0009 0000 000a 0000 000b 0000 000c 0000     ................
 
-  8045468:	000d 0000                                   ....
 
- 0804546c <atentry_ids>:
 
-  804546c:	0001 0000 0002 0000 0003 0000               ............
 
- 08045478 <tcpconnentry_nodes>:
 
-  8045478:	08cc 2000 08cc 2000 08cc 2000 08cc 2000     ... ... ... ... 
 
-  8045488:	08cc 2000                                   ... 
 
- 0804548c <ip_nodes>:
 
-  804548c:	5238 0804 5238 0804 5238 0804 5238 0804     8R..8R..8R..8R..
 
-  804549c:	5238 0804 5238 0804 5238 0804 5238 0804     8R..8R..8R..8R..
 
-  80454ac:	5238 0804 5238 0804 5238 0804 5238 0804     8R..8R..8R..8R..
 
-  80454bc:	5238 0804 5238 0804 5238 0804 5238 0804     8R..8R..8R..8R..
 
-  80454cc:	5238 0804 5238 0804 5238 0804 08f8 2000     8R..8R..8R..... 
 
-  80454dc:	0960 2000 0720 2000 5238 0804               `..  .. 8R..
 
- 080454e8 <icmp_ids>:
 
-  80454e8:	0001 0000 0002 0000 0003 0000 0004 0000     ................
 
-  80454f8:	0005 0000 0006 0000 0007 0000 0008 0000     ................
 
-  8045508:	0009 0000 000a 0000 000b 0000 000c 0000     ................
 
-  8045518:	000d 0000 000e 0000 000f 0000 0010 0000     ................
 
-  8045528:	0011 0000 0012 0000 0013 0000 0014 0000     ................
 
-  8045538:	0015 0000 0016 0000 0017 0000 0018 0000     ................
 
-  8045548:	0019 0000 001a 0000                         ........
 
- 08045550 <udp_ids>:
 
-  8045550:	0001 0000 0002 0000 0003 0000 0004 0000     ................
 
-  8045560:	0005 0000                                   ....
 
- 08045564 <atentry_nodes>:
 
-  8045564:	0918 2000 0918 2000 0918 2000               ... ... ... 
 
- 08045570 <ipaddrentry_nodes>:
 
-  8045570:	0874 2000 0874 2000 0874 2000 0874 2000     t.. t.. t.. t.. 
 
-  8045580:	0874 2000                                   t.. 
 
- 08045584 <ipaddrentry_ids>:
 
-  8045584:	0001 0000 0002 0000 0003 0000 0004 0000     ................
 
-  8045594:	0005 0000                                   ....
 
- 08045598 <tcp_ids>:
 
-  8045598:	0001 0000 0002 0000 0003 0000 0004 0000     ................
 
-  80455a8:	0005 0000 0006 0000 0007 0000 0008 0000     ................
 
-  80455b8:	0009 0000 000a 0000 000b 0000 000c 0000     ................
 
-  80455c8:	000d 0000 000e 0000 000f 0000               ............
 
- 080455d4 <snmp_nodes>:
 
-  80455d4:	5010 0804 5010 0804 5010 0804 5010 0804     .P...P...P...P..
 
-  80455e4:	5010 0804 5010 0804 5010 0804 5010 0804     .P...P...P...P..
 
-  80455f4:	5010 0804 5010 0804 5010 0804 5010 0804     .P...P...P...P..
 
-  8045604:	5010 0804 5010 0804 5010 0804 5010 0804     .P...P...P...P..
 
-  8045614:	5010 0804 5010 0804 5010 0804 5010 0804     .P...P...P...P..
 
-  8045624:	5010 0804 5010 0804 5010 0804 5010 0804     .P...P...P...P..
 
-  8045634:	5010 0804 5010 0804 5010 0804 5010 0804     .P...P...P...P..
 
- 08045644 <mgmt_nodes>:
 
-  8045644:	519c 0804                                   .Q..
 
- 08045648 <udp>:
 
-  8045648:	39e3 0803 39e9 0803 39eb 0803 39ef 0803     .9...9...9...9..
 
-  8045658:	0002 0005 5550 0804 5208 0804               ....PU...R..
 
- 08045664 <iprteentry>:
 
-  8045664:	39e3 0803 39e9 0803 39eb 0803 39ef 0803     .9...9...9...9..
 
-  8045674:	0002 000d 5438 0804 5068 0804               ....8T..hP..
 
- 08045680 <ifentry>:
 
-  8045680:	39e3 0803 39e9 0803 39eb 0803 39ef 0803     .9...9...9...9..
 
-  8045690:	0002 0016 57c8 0804 58a0 0804               .....W...X..
 
- 0804569c <udpentry>:
 
-  804569c:	39e3 0803 39e9 0803 39eb 0803 39ef 0803     .9...9...9...9..
 
-  80456ac:	0002 0002 524c 0804 5024 0804               ....LR..$P..
 
- 080456b8 <ip_ids>:
 
-  80456b8:	0001 0000 0002 0000 0003 0000 0004 0000     ................
 
-  80456c8:	0005 0000 0006 0000 0007 0000 0008 0000     ................
 
-  80456d8:	0009 0000 000a 0000 000b 0000 000c 0000     ................
 
-  80456e8:	000d 0000 000e 0000 000f 0000 0010 0000     ................
 
-  80456f8:	0011 0000 0012 0000 0013 0000 0014 0000     ................
 
-  8045708:	0015 0000 0016 0000 0017 0000               ............
 
- 08045714 <sysdescr_default>:
 
-  8045714:	776c 5049 0800                                   lwIP.
 
- 08045719 <sysname_len_default>:
 
-  8045719:	0008 e300                                        ...
 
- 0804571c <tcpconnentry>:
 
-  804571c:	39e3 0803 39e9 0803 39eb 0803 39ef 0803     .9...9...9...9..
 
-  804572c:	0002 0005 588c 0804 5478 0804               .....X..xT..
 
- 08045738 <syscontact_len_default>:
 
-  8045738:	0000 0000                                   ....
 
- 0804573c <snmp_ids>:
 
-  804573c:	0001 0000 0002 0000 0003 0000 0004 0000     ................
 
-  804574c:	0005 0000 0006 0000 0008 0000 0009 0000     ................
 
-  804575c:	000a 0000 000b 0000 000c 0000 000d 0000     ................
 
-  804576c:	000e 0000 000f 0000 0010 0000 0011 0000     ................
 
-  804577c:	0012 0000 0013 0000 0014 0000 0015 0000     ................
 
-  804578c:	0016 0000 0018 0000 0019 0000 001a 0000     ................
 
-  804579c:	001b 0000 001c 0000 001d 0000 001e 0000     ................
 
- 080457ac <sys_tem_ids>:
 
-  80457ac:	0001 0000 0002 0000 0003 0000 0004 0000     ................
 
-  80457bc:	0005 0000 0006 0000 0007 0000               ............
 
- 080457c8 <ifentry_ids>:
 
-  80457c8:	0001 0000 0002 0000 0003 0000 0004 0000     ................
 
-  80457d8:	0005 0000 0006 0000 0007 0000 0008 0000     ................
 
-  80457e8:	0009 0000 000a 0000 000b 0000 000c 0000     ................
 
-  80457f8:	000d 0000 000e 0000 000f 0000 0010 0000     ................
 
-  8045808:	0011 0000 0012 0000 0013 0000 0014 0000     ................
 
-  8045818:	0015 0000 0016 0000                         ........
 
- 08045820 <icmp_scalar>:
 
-  8045820:	3c19 0803 3c45 0803 39eb 0803 39ef 0803     .<..E<...9...9..
 
-  8045830:	0001 0000                                   ....
 
- 08045834 <internet>:
 
-  8045834:	39e3 0803 39e9 0803 39eb 0803 39ef 0803     .9...9...9...9..
 
-  8045844:	0002 0002 08ec 2000 5914 0804               ....... .Y..
 
- 08045850 <mgmt_ids>:
 
-  8045850:	0001 0000                                   ....
 
- 08045854 <sys_tem>:
 
-  8045854:	39e3 0803 39e9 0803 39eb 0803 39ef 0803     .9...9...9...9..
 
-  8045864:	0002 0007 57ac 0804 51e8 0804               .....W...Q..
 
- 08045870 <ipaddrentry>:
 
-  8045870:	39e3 0803 39e9 0803 39eb 0803 39ef 0803     .9...9...9...9..
 
-  8045880:	0002 0005 5584 0804 5570 0804               .....U..pU..
 
- 0804588c <tcpconnentry_ids>:
 
-  804588c:	0001 0000 0002 0000 0003 0000 0004 0000     ................
 
-  804589c:	0005 0000                                   ....
 
- 080458a0 <ifentry_nodes>:
 
-  80458a0:	07cc 2000 07cc 2000 07cc 2000 07cc 2000     ... ... ... ... 
 
-  80458b0:	07cc 2000 07cc 2000 07cc 2000 07cc 2000     ... ... ... ... 
 
-  80458c0:	07cc 2000 07cc 2000 07cc 2000 07cc 2000     ... ... ... ... 
 
-  80458d0:	07cc 2000 07cc 2000 07cc 2000 07cc 2000     ... ... ... ... 
 
-  80458e0:	07cc 2000 07cc 2000 07cc 2000 07cc 2000     ... ... ... ... 
 
-  80458f0:	07cc 2000 07cc 2000                         ... ... 
 
- 080458f8 <mib2_ip>:
 
-  80458f8:	39e3 0803 39e9 0803 39eb 0803 39ef 0803     .9...9...9...9..
 
-  8045908:	0002 0017 56b8 0804 548c 0804               .....V...T..
 
- 08045914 <internet_nodes>:
 
-  8045914:	5160 0804 5a2c 0804                         `Q..,Z..
 
- 0804591c <prefix>:
 
-  804591c:	0001 0000 0003 0000 0006 0000 0001 0000     ................
 
- 0804592c <snmp_version>:
 
-  804592c:	0000 0000                                   ....
 
- 08045930 <snmp_publiccommunity>:
 
-  8045930:	7570 6c62 6369 ff00                              public.
 
- 08045937 <ethbroadcast>:
 
-  8045937:	ffff ffff ffff                              ......
 
- 0804593d <ethzero>:
 
-  804593d:	0000 0000 0000 7445 5f68 6669 2000 7325     ......Eth_if. %s
 
-  804594d:	0d0a 4400 4348 4350 696c 6e65 0074 6577     ...DHCPClient.we
 
-  804595d:	5262 6965 696e 0074 6552 6e69 7469 6557     bReinit.ReinitWe
 
-  804596d:	0062 1800                                        b..
 
- 08045970 <enterprises_ids>:
 
-  8045970:	a318 0000                                   ....
 
- 08045974 <bt6701_ids>:
 
-  8045974:	0001 0000                                   ....
 
- 08045978 <swt_nodes>:
 
-  8045978:	59c8 0804                                   .Y..
 
- 0804597c <rotek_nodes>:
 
-  804597c:	5a48 0804                                   HZ..
 
- 08045980 <signals_ids>:
 
-  8045980:	0001 0000 0002 0000 0003 0000 0004 0000     ................
 
-  8045990:	0005 0000 0006 0000 0007 0000 0008 0000     ................
 
-  80459a0:	0009 0000 000a 0000 000b 0000 000c 0000     ................
 
-  80459b0:	000d 0000 000e 0000 000f 0000 0010 0000     ................
 
-  80459c0:	0011 0000 0012 0000                         ........
 
- 080459c8 <bt6701>:
 
-  80459c8:	39e3 0803 39e9 0803 39eb 0803 39ef 0803     .9...9...9...9..
 
-  80459d8:	0002 0001 5974 0804 5ac0 0804               ....tY...Z..
 
- 080459e4 <signals_nodes>:
 
-  80459e4:	5aac 0804 5aac 0804 5aac 0804 5aac 0804     .Z...Z...Z...Z..
 
-  80459f4:	5aac 0804 5aac 0804 5aac 0804 5aac 0804     .Z...Z...Z...Z..
 
-  8045a04:	5aac 0804 5aac 0804 5aac 0804 5aac 0804     .Z...Z...Z...Z..
 
-  8045a14:	5aac 0804 5aac 0804 5aac 0804 5aac 0804     .Z...Z...Z...Z..
 
-  8045a24:	5aac 0804 5aac 0804                         .Z...Z..
 
- 08045a2c <mib_private>:
 
-  8045a2c:	39e3 0803 39e9 0803 39eb 0803 39ef 0803     .9...9...9...9..
 
-  8045a3c:	0002 0001 5a64 0804 5a6c 0804               ....dZ..lZ..
 
- 08045a48 <swt>:
 
-  8045a48:	39e3 0803 39e9 0803 39eb 0803 39ef 0803     .9...9...9...9..
 
-  8045a58:	0002 0001 5a68 0804 5978 0804               ....hZ..xY..
 
- 08045a64 <mib_private_ids>:
 
-  8045a64:	0001 0000                                   ....
 
- 08045a68 <swt_ids>:
 
-  8045a68:	0003 0000                                   ....
 
- 08045a6c <mib_pivate_nodes>:
 
-  8045a6c:	5a70 0804                                   pZ..
 
- 08045a70 <enterprises>:
 
-  8045a70:	39e3 0803 39e9 0803 39eb 0803 39ef 0803     .9...9...9...9..
 
-  8045a80:	0002 0001 5970 0804 5a8c 0804               ....pY...Z..
 
- 08045a8c <enterprises_nodes>:
 
-  8045a8c:	5ac8 0804                                   .Z..
 
- 08045a90 <signals>:
 
-  8045a90:	39e3 0803 39e9 0803 39eb 0803 39ef 0803     .9...9...9...9..
 
-  8045aa0:	0002 0012 5980 0804 59e4 0804               .....Y...Y..
 
- 08045aac <signals_var>:
 
-  8045aac:	7fb1 0803 7f71 0803 80cd 0803 7ec5 0803     ....q........~..
 
-  8045abc:	0001 0000                                   ....
 
- 08045ac0 <bt6701_nodes>:
 
-  8045ac0:	5a90 0804                                   .Z..
 
- 08045ac4 <rotek_ids>:
 
-  8045ac4:	038f 0000                                   ....
 
- 08045ac8 <rotek>:
 
-  8045ac8:	39e3 0803 39e9 0803 39eb 0803 39ef 0803     .9...9...9...9..
 
-  8045ad8:	0002 0001 5ac4 0804 597c 0804 3025 6432     .....Z..|Y..%02d
 
-  8045ae8:	252e 3230 2e64 3025 6432 2520 3230 3a64     .%02d.%02d %02d:
 
-  8045af8:	3025 6432 253a 3230 0064 6425 252e 2e64     %02d:%02d.%d.%d.
 
-  8045b08:	6425 2520 3a64 6425 253a 2064 0d0a 3b00     %d %d:%d:%d ...;
 
-  8045b18:	3b3b 3b00 3b3b 3254 4b4f 3b3b 7b00 7322     ;;.;;;T2OK;;.{"s
 
-  8045b28:	7265 6f6e 3a22 0022 2c22 6422 6368 2270     erno":".","dhcp"
 
-  8045b38:	223a 2200 222c 7069 6461 7264 7365 2273     :".","ipaddress"
 
-  8045b48:	223a 2200 222c 6167 6574 6177 2279 223a     :".","gateway":"
 
-  8045b58:	2200 6573 6e72 226f 2200 6864 7063 0022     ."serno"."dhcp".
 
-  8045b68:	6922 6170 6464 6572 7373 0022 6722 7461     "ipaddress"."gat
 
-  8045b78:	7765 7961 0022 6d22 7361 226b 7500 7064     eway"."mask".udp
 
-  8045b88:	6e5f 7465 6573 7474 6e69 7367 745f 7361     _netsettings_tas
 
-  8045b98:	006b 0000 666e 0000 6e69 7469 0079 0000     k...nf..inity...
 
-  8045ba8:	6e61 0000 4241 4443 4645 0000 6261 6463     an..ABCDEF..abcd
 
-  8045bb8:	6665 0000 3130 3332 3534 3736 3938 0000     ef..0123456789..
 
-  8045bc8:	0043 0000 4f50 4953 0058 0000 0000 0000     C...POSIX.......
 
-  8045bd8:	002e 0000                                   ....
 
- 08045bdc <_init>:
 
-  8045bdc:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
-  8045bde:	bf00      	nop
 
-  8045be0:	bcf8      	pop	{r3, r4, r5, r6, r7}
 
-  8045be2:	bc08      	pop	{r3}
 
-  8045be4:	469e      	mov	lr, r3
 
-  8045be6:	4770      	bx	lr
 
- 08045be8 <_fini>:
 
-  8045be8:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
 
-  8045bea:	bf00      	nop
 
-  8045bec:	bcf8      	pop	{r3, r4, r5, r6, r7}
 
-  8045bee:	bc08      	pop	{r3}
 
-  8045bf0:	469e      	mov	lr, r3
 
-  8045bf2:	4770      	bx	lr
 
 
  |