1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283
hello:
(__TEXT,__text) section
start:
0000000100000d10 pushq $0x0
0000000100000d12 movq %rsp, %rbp
0000000100000d15 andq $-0x10, %rsp
0000000100000d19 movq 0x8(%rbp), %rdi
0000000100000d1d leaq 0x10(%rbp), %rsi
0000000100000d21 movl %edi, %edx
0000000100000d23 addl $0x1, %edx
0000000100000d26 shll $0x3, %edx
0000000100000d29 addq %rsi, %rdx
0000000100000d2c movq %rdx, %rcx
0000000100000d2f jmp 0x100000d35
0000000100000d31 addq $0x8, %rcx
0000000100000d35 cmpq $0x0, (%rcx)
0000000100000d39 jne 0x100000d31
0000000100000d3b addq $0x8, %rcx
0000000100000d3f callq _main
0000000100000d44 movl %eax, %edi
0000000100000d46 callq 0x10000a5da ## symbol stub for: _exit
0000000100000d4b hlt
0000000100000d4c nop
0000000100000d4d nop
0000000100000d4e nop
0000000100000d4f nop
_new_array:
0000000100000d50 pushq %rbp
0000000100000d51 movq %rsp, %rbp
0000000100000d54 subq $0x20, %rsp
0000000100000d58 movq %rdi, %rax
0000000100000d5b movl %esi, -0x4(%rbp)
0000000100000d5e movl %edx, -0x8(%rbp)
0000000100000d61 movl %ecx, -0xc(%rbp)
0000000100000d64 movl -0x8(%rbp), %ecx
0000000100000d67 imull -0xc(%rbp), %ecx
0000000100000d6b movq %rdi, -0x18(%rbp)
0000000100000d6f movl %ecx, %edi
0000000100000d71 movq %rax, -0x20(%rbp)
0000000100000d75 callq _v_calloc
0000000100000d7a movq -0x18(%rbp), %r8
0000000100000d7e movq %rax, (%r8)
0000000100000d81 movl -0x4(%rbp), %ecx
0000000100000d84 movl %ecx, 0x8(%r8)
0000000100000d88 movl -0x8(%rbp), %ecx
0000000100000d8b movl %ecx, 0xc(%r8)
0000000100000d8f movl -0xc(%rbp), %ecx
0000000100000d92 movl %ecx, 0x10(%r8)
0000000100000d96 movq -0x20(%rbp), %rax
0000000100000d9a addq $0x20, %rsp
0000000100000d9e popq %rbp
0000000100000d9f retq
_v_calloc:
0000000100000da0 pushq %rbp
0000000100000da1 movq %rsp, %rbp
0000000100000da4 subq $0x20, %rsp
0000000100000da8 movl %edi, -0x4(%rbp)
0000000100000dab cmpl $0x0, -0x4(%rbp)
0000000100000daf jge 0x100000dd4
0000000100000db5 leaq 0x9bd3(%rip), %rdi ## literal pool for: "calloc(<0)"
0000000100000dbc callq _tos3
0000000100000dc1 movq %rax, -0x18(%rbp)
0000000100000dc5 movl %edx, -0x10(%rbp)
0000000100000dc8 movq -0x18(%rbp), %rdi
0000000100000dcc movl -0x10(%rbp), %esi
0000000100000dcf callq _v_panic
0000000100000dd4 movl $0x1, %eax
0000000100000dd9 movl %eax, %esi
0000000100000ddb movslq -0x4(%rbp), %rdi
0000000100000ddf callq 0x10000a5d4 ## symbol stub for: _calloc
0000000100000de4 addq $0x20, %rsp
0000000100000de8 popq %rbp
0000000100000de9 retq
0000000100000dea nopw (%rax,%rax)
_make:
0000000100000df0 pushq %rbp
0000000100000df1 movq %rsp, %rbp
0000000100000df4 subq $0x20, %rsp
0000000100000df8 movq %rdi, %rax
0000000100000dfb movl %esi, -0x4(%rbp)
0000000100000dfe movl %edx, -0x8(%rbp)
0000000100000e01 movl %ecx, -0xc(%rbp)
0000000100000e04 movl -0x4(%rbp), %esi
0000000100000e07 movl -0x8(%rbp), %edx
0000000100000e0a movl -0xc(%rbp), %ecx
0000000100000e0d movq %rax, -0x18(%rbp)
0000000100000e11 callq _new_array
0000000100000e16 movq -0x18(%rbp), %rax
0000000100000e1a addq $0x20, %rsp
0000000100000e1e popq %rbp
0000000100000e1f retq
_new_array_from_c_array:
0000000100000e20 pushq %rbp
0000000100000e21 movq %rsp, %rbp
0000000100000e24 subq $0x30, %rsp
0000000100000e28 movq %rdi, %rax
0000000100000e2b movl %esi, -0x4(%rbp)
0000000100000e2e movl %edx, -0x8(%rbp)
0000000100000e31 movl %ecx, -0xc(%rbp)
0000000100000e34 movq %r8, -0x18(%rbp)
0000000100000e38 movl -0x8(%rbp), %ecx
0000000100000e3b imull -0xc(%rbp), %ecx
0000000100000e3f movq %rdi, -0x20(%rbp)
0000000100000e43 movl %ecx, %edi
0000000100000e45 movq %rax, -0x28(%rbp)
0000000100000e49 callq _v_calloc
0000000100000e4e movq $-0x1, %rcx
0000000100000e55 movq -0x20(%rbp), %r8
0000000100000e59 movq %rax, (%r8)
0000000100000e5c movl -0x4(%rbp), %edx
0000000100000e5f movl %edx, 0x8(%r8)
0000000100000e63 movl -0x8(%rbp), %edx
0000000100000e66 movl %edx, 0xc(%r8)
0000000100000e6a movl -0xc(%rbp), %edx
0000000100000e6d movl %edx, 0x10(%r8)
0000000100000e71 movq (%r8), %rdi
0000000100000e74 movq -0x18(%rbp), %rsi
0000000100000e78 movl -0x4(%rbp), %edx
0000000100000e7b imull -0xc(%rbp), %edx
0000000100000e7f movslq %edx, %rdx
0000000100000e82 callq 0x10000a598 ## symbol stub for: ___memcpy_chk
0000000100000e87 movq -0x28(%rbp), %rcx
0000000100000e8b movq %rax, -0x30(%rbp)
0000000100000e8f movq %rcx, %rax
0000000100000e92 addq $0x30, %rsp
0000000100000e96 popq %rbp
0000000100000e97 retq
0000000100000e98 nopl (%rax,%rax)
_new_array_from_c_array_no_alloc:
0000000100000ea0 pushq %rbp
0000000100000ea1 movq %rsp, %rbp
0000000100000ea4 movq %rdi, %rax
0000000100000ea7 movl %esi, -0x4(%rbp)
0000000100000eaa movl %edx, -0x8(%rbp)
0000000100000ead movl %ecx, -0xc(%rbp)
0000000100000eb0 movq %r8, -0x18(%rbp)
0000000100000eb4 movq -0x18(%rbp), %r8
0000000100000eb8 movq %r8, (%rdi)
0000000100000ebb movl -0x4(%rbp), %ecx
0000000100000ebe movl %ecx, 0x8(%rdi)
0000000100000ec1 movl -0x8(%rbp), %ecx
0000000100000ec4 movl %ecx, 0xc(%rdi)
0000000100000ec7 movl -0xc(%rbp), %ecx
0000000100000eca movl %ecx, 0x10(%rdi)
0000000100000ecd popq %rbp
0000000100000ece retq
0000000100000ecf nop
_array_repeat_old:
0000000100000ed0 pushq %rbp
0000000100000ed1 movq %rsp, %rbp
0000000100000ed4 subq $0x40, %rsp
0000000100000ed8 movq %rdi, %rax
0000000100000edb movq %rsi, -0x8(%rbp)
0000000100000edf movl %edx, -0xc(%rbp)
0000000100000ee2 movl %ecx, -0x10(%rbp)
0000000100000ee5 movl -0xc(%rbp), %ecx
0000000100000ee8 imull -0x10(%rbp), %ecx
0000000100000eec movq %rdi, -0x20(%rbp)
0000000100000ef0 movl %ecx, %edi
0000000100000ef2 movq %rax, -0x28(%rbp)
0000000100000ef6 callq _v_calloc
0000000100000efb movq -0x20(%rbp), %rsi
0000000100000eff movq %rax, (%rsi)
0000000100000f02 movl -0xc(%rbp), %ecx
0000000100000f05 movl %ecx, 0x8(%rsi)
0000000100000f08 movl -0xc(%rbp), %ecx
0000000100000f0b movl %ecx, 0xc(%rsi)
0000000100000f0e movl -0x10(%rbp), %ecx
0000000100000f11 movl %ecx, 0x10(%rsi)
0000000100000f14 movl $0x0, -0x14(%rbp)
0000000100000f1b movl -0x14(%rbp), %eax
0000000100000f1e cmpl -0xc(%rbp), %eax
0000000100000f21 jge 0x100000f6c
0000000100000f27 movq $-0x1, %rcx
0000000100000f2e movq -0x20(%rbp), %rax
0000000100000f32 movq (%rax), %rdx
0000000100000f35 movl -0x14(%rbp), %esi
0000000100000f38 imull -0x10(%rbp), %esi
0000000100000f3c movslq %esi, %rdi
0000000100000f3f addq %rdi, %rdx
0000000100000f42 movq -0x8(%rbp), %rsi
0000000100000f46 movslq -0x10(%rbp), %rdi
0000000100000f4a movq %rdi, -0x30(%rbp)
0000000100000f4e movq %rdx, %rdi
0000000100000f51 movq -0x30(%rbp), %rdx
0000000100000f55 callq 0x10000a598 ## symbol stub for: ___memcpy_chk
0000000100000f5a movq %rax, -0x38(%rbp)
0000000100000f5e movl -0x14(%rbp), %eax
0000000100000f61 addl $0x1, %eax
0000000100000f64 movl %eax, -0x14(%rbp)
0000000100000f67 jmp 0x100000f1b
0000000100000f6c movq -0x28(%rbp), %rax
0000000100000f70 addq $0x40, %rsp
0000000100000f74 popq %rbp
0000000100000f75 retq
0000000100000f76 nopw %cs:(%rax,%rax)
_array_repeat:
0000000100000f80 pushq %rbp
0000000100000f81 movq %rsp, %rbp
0000000100000f84 subq $0x40, %rsp
0000000100000f88 movq %rdi, %rax
0000000100000f8b leaq 0x10(%rbp), %rcx
0000000100000f8f movl %esi, -0x4(%rbp)
0000000100000f92 movl -0x4(%rbp), %esi
0000000100000f95 imull 0x10(%rcx), %esi
0000000100000f99 movq %rdi, -0x20(%rbp)
0000000100000f9d movl %esi, %edi
0000000100000f9f movq %rax, -0x28(%rbp)
0000000100000fa3 movq %rcx, -0x30(%rbp)
0000000100000fa7 callq _v_calloc
0000000100000fac movq -0x20(%rbp), %rcx
0000000100000fb0 movq %rax, (%rcx)
0000000100000fb3 movl -0x4(%rbp), %esi
0000000100000fb6 movl %esi, 0x8(%rcx)
0000000100000fb9 movl -0x4(%rbp), %esi
0000000100000fbc movl %esi, 0xc(%rcx)
0000000100000fbf movq -0x30(%rbp), %rax
0000000100000fc3 movl 0x10(%rax), %esi
0000000100000fc6 movl %esi, 0x10(%rcx)
0000000100000fc9 movq (%rax), %rdx
0000000100000fcc movq %rdx, -0x10(%rbp)
0000000100000fd0 movl $0x0, -0x14(%rbp)
0000000100000fd7 movl -0x14(%rbp), %eax
0000000100000fda cmpl -0x4(%rbp), %eax
0000000100000fdd jge 0x100001027
0000000100000fe3 movq $-0x1, %rcx
0000000100000fea movq -0x20(%rbp), %rax
0000000100000fee movq (%rax), %rdx
0000000100000ff1 movl -0x14(%rbp), %esi
0000000100000ff4 movq -0x30(%rbp), %rdi
0000000100000ff8 imull 0x10(%rdi), %esi
0000000100000ffc movslq %esi, %r8
0000000100000fff addq %r8, %rdx
0000000100001002 movq -0x10(%rbp), %rsi
0000000100001006 movslq 0x10(%rdi), %r8
000000010000100a movq %rdx, %rdi
000000010000100d movq %r8, %rdx
0000000100001010 callq 0x10000a598 ## symbol stub for: ___memcpy_chk
0000000100001015 movq %rax, -0x38(%rbp)
0000000100001019 movl -0x14(%rbp), %eax
000000010000101c addl $0x1, %eax
000000010000101f movl %eax, -0x14(%rbp)
0000000100001022 jmp 0x100000fd7
0000000100001027 movq -0x28(%rbp), %rax
000000010000102b addq $0x40, %rsp
000000010000102f popq %rbp
0000000100001030 retq
0000000100001031 nopw %cs:(%rax,%rax)
_array_sort_with_compare:
0000000100001040 pushq %rbp
0000000100001041 movq %rsp, %rbp
0000000100001044 subq $0x10, %rsp
0000000100001048 movq %rdi, -0x8(%rbp)
000000010000104c movq %rsi, -0x10(%rbp)
0000000100001050 movq -0x8(%rbp), %rsi
0000000100001054 movq (%rsi), %rdi
0000000100001057 movq -0x8(%rbp), %rsi
000000010000105b movslq 0x8(%rsi), %rsi
000000010000105f movq -0x8(%rbp), %rax
0000000100001063 movslq 0x10(%rax), %rdx
0000000100001067 movq -0x10(%rbp), %rax
000000010000106b movq %rax, %rcx
000000010000106e callq 0x10000a610 ## symbol stub for: _qsort
0000000100001073 addq $0x10, %rsp
0000000100001077 popq %rbp
0000000100001078 retq
0000000100001079 nopl (%rax)
_array_insert:
0000000100001080 pushq %rbp
0000000100001081 movq %rsp, %rbp
0000000100001084 subq $0x40, %rsp
0000000100001088 movq %rdi, -0x8(%rbp)
000000010000108c movl %esi, -0xc(%rbp)
000000010000108f movq %rdx, -0x18(%rbp)
0000000100001093 movl -0xc(%rbp), %esi
0000000100001096 movq -0x8(%rbp), %rdx
000000010000109a cmpl 0x8(%rdx), %esi
000000010000109d jl 0x1000010c2
00000001000010a3 leaq 0x96c2(%rip), %rdi ## literal pool for: "array.insert: index larger than length"
00000001000010aa callq _tos3
00000001000010af movq %rax, -0x28(%rbp)
00000001000010b3 movl %edx, -0x20(%rbp)
00000001000010b6 movq -0x28(%rbp), %rdi
00000001000010ba movl -0x20(%rbp), %esi
00000001000010bd callq _v_panic
00000001000010c2 movq -0x8(%rbp), %rdi
00000001000010c6 movq -0x18(%rbp), %rsi
00000001000010ca callq _array_push
00000001000010cf movq $-0x1, %rcx
00000001000010d6 movq -0x8(%rbp), %rsi
00000001000010da movl 0x10(%rsi), %eax
00000001000010dd movl %eax, -0x2c(%rbp)
00000001000010e0 movq -0x8(%rbp), %rsi
00000001000010e4 movq (%rsi), %rsi
00000001000010e7 movl -0xc(%rbp), %eax
00000001000010ea addl $0x1, %eax
00000001000010ed imull -0x2c(%rbp), %eax
00000001000010f1 movslq %eax, %rdi
00000001000010f4 addq %rdi, %rsi
00000001000010f7 movq -0x8(%rbp), %rdi
00000001000010fb movq (%rdi), %rdi
00000001000010fe movl -0xc(%rbp), %eax
0000000100001101 imull -0x2c(%rbp), %eax
0000000100001105 movslq %eax, %rdx
0000000100001108 addq %rdx, %rdi
000000010000110b movq -0x8(%rbp), %rdx
000000010000110f movl 0x8(%rdx), %eax
0000000100001112 subl -0xc(%rbp), %eax
0000000100001115 imull -0x2c(%rbp), %eax
0000000100001119 movslq %eax, %rdx
000000010000111c movq %rdi, -0x38(%rbp)
0000000100001120 movq %rsi, %rdi
0000000100001123 movq -0x38(%rbp), %rsi
0000000100001127 callq 0x10000a59e ## symbol stub for: ___memmove_chk
000000010000112c movq -0x8(%rbp), %rdi
0000000100001130 movl -0xc(%rbp), %esi
0000000100001133 movq -0x18(%rbp), %rdx
0000000100001137 movq %rax, -0x40(%rbp)
000000010000113b callq _array_set
0000000100001140 addq $0x40, %rsp
0000000100001144 popq %rbp
0000000100001145 retq
0000000100001146 nopw %cs:(%rax,%rax)
_v_panic:
0000000100001150 pushq %rbp
0000000100001151 movq %rsp, %rbp
0000000100001154 subq $0x20, %rsp
0000000100001158 movq %rdi, -0x10(%rbp)
000000010000115c movl %esi, -0x8(%rbp)
000000010000115f movl -0x8(%rbp), %esi
0000000100001162 movq -0x10(%rbp), %rdx
0000000100001166 leaq 0x97d0(%rip), %rdi ## literal pool for: "V panic: %.*s\n"
000000010000116d xorl %eax, %eax
000000010000116f movb %al, %cl
0000000100001171 movb %cl, %al
0000000100001173 callq 0x10000a60a ## symbol stub for: _printf
0000000100001178 movl %eax, -0x14(%rbp)
000000010000117b callq _print_backtrace
0000000100001180 movl $0x1, %edi
0000000100001185 callq 0x10000a5da ## symbol stub for: _exit
000000010000118a nopw (%rax,%rax)
_tos3:
0000000100001190 pushq %rbp
0000000100001191 movq %rsp, %rbp
0000000100001194 subq $0x30, %rsp
0000000100001198 movq %rdi, -0x18(%rbp)
000000010000119c cmpq $0x0, -0x18(%rbp)
00000001000011a1 jne 0x1000011c6
00000001000011a7 leaq 0x98ad(%rip), %rdi ## literal pool for: "tos3: nil string"
00000001000011ae callq _tos3
00000001000011b3 movq %rax, -0x28(%rbp)
00000001000011b7 movl %edx, -0x20(%rbp)
00000001000011ba movq -0x28(%rbp), %rdi
00000001000011be movl -0x20(%rbp), %esi
00000001000011c1 callq _v_panic
00000001000011c6 movq -0x18(%rbp), %rax
00000001000011ca movq %rax, -0x10(%rbp)
00000001000011ce movq -0x18(%rbp), %rdi
00000001000011d2 callq 0x10000a61c ## symbol stub for: _strlen
00000001000011d7 movl %eax, %ecx
00000001000011d9 movl %ecx, -0x8(%rbp)
00000001000011dc movq -0x10(%rbp), %rax
00000001000011e0 movl -0x8(%rbp), %edx
00000001000011e3 addq $0x30, %rsp
00000001000011e7 popq %rbp
00000001000011e8 retq
00000001000011e9 nopl (%rax)
_array_push:
00000001000011f0 pushq %rbp
00000001000011f1 movq %rsp, %rbp
00000001000011f4 subq $0x20, %rsp
00000001000011f8 movq %rdi, -0x8(%rbp)
00000001000011fc movq %rsi, -0x10(%rbp)
0000000100001200 movq -0x8(%rbp), %rsi
0000000100001204 movl 0x8(%rsi), %eax
0000000100001207 movq -0x8(%rbp), %rsi
000000010000120b movl 0xc(%rsi), %ecx
000000010000120e subl $0x1, %ecx
0000000100001211 cmpl %ecx, %eax
0000000100001213 jl 0x100001280
0000000100001219 movq -0x8(%rbp), %rax
000000010000121d movl 0x8(%rax), %ecx
0000000100001220 addl $0x1, %ecx
0000000100001223 shll $0x1, %ecx
0000000100001226 movl %ecx, -0x14(%rbp)
0000000100001229 movq -0x8(%rbp), %rax
000000010000122d cmpl $0x0, 0xc(%rax)
0000000100001231 jne 0x100001255
0000000100001237 movl -0x14(%rbp), %eax
000000010000123a movq -0x8(%rbp), %rcx
000000010000123e imull 0x10(%rcx), %eax
0000000100001242 movl %eax, %edi
0000000100001244 callq _v_calloc
0000000100001249 movq -0x8(%rbp), %rcx
000000010000124d movq %rax, (%rcx)
0000000100001250 jmp 0x100001276
0000000100001255 movq -0x8(%rbp), %rax
0000000100001259 movq (%rax), %rdi
000000010000125c movl -0x14(%rbp), %ecx
000000010000125f movq -0x8(%rbp), %rax
0000000100001263 imull 0x10(%rax), %ecx
0000000100001267 movslq %ecx, %rsi
000000010000126a callq 0x10000a616 ## symbol stub for: _realloc
000000010000126f movq -0x8(%rbp), %rsi
0000000100001273 movq %rax, (%rsi)
0000000100001276 movl -0x14(%rbp), %eax
0000000100001279 movq -0x8(%rbp), %rcx
000000010000127d movl %eax, 0xc(%rcx)
0000000100001280 movq $-0x1, %rcx
0000000100001287 movq -0x8(%rbp), %rax
000000010000128b movq (%rax), %rax
000000010000128e movq -0x8(%rbp), %rdx
0000000100001292 movl 0x10(%rdx), %esi
0000000100001295 movq -0x8(%rbp), %rdx
0000000100001299 imull 0x8(%rdx), %esi
000000010000129d movslq %esi, %rdx
00000001000012a0 addq %rdx, %rax
00000001000012a3 movq -0x10(%rbp), %rsi
00000001000012a7 movq -0x8(%rbp), %rdx
00000001000012ab movslq 0x10(%rdx), %rdx
00000001000012af movq %rax, %rdi
00000001000012b2 callq 0x10000a598 ## symbol stub for: ___memcpy_chk
00000001000012b7 movq -0x8(%rbp), %rcx
00000001000012bb movl 0x8(%rcx), %r8d
00000001000012bf addl $0x1, %r8d
00000001000012c3 movl %r8d, 0x8(%rcx)
00000001000012c7 movq %rax, -0x20(%rbp)
00000001000012cb addq $0x20, %rsp
00000001000012cf popq %rbp
00000001000012d0 retq
00000001000012d1 nopw %cs:(%rax,%rax)
_array_set:
00000001000012e0 pushq %rbp
00000001000012e1 movq %rsp, %rbp
00000001000012e4 subq $0x30, %rsp
00000001000012e8 movq %rdi, -0x8(%rbp)
00000001000012ec movl %esi, -0xc(%rbp)
00000001000012ef movq %rdx, -0x18(%rbp)
00000001000012f3 cmpl $0x0, -0xc(%rbp)
00000001000012f7 jl 0x10000130d
00000001000012fd movl -0xc(%rbp), %eax
0000000100001300 movq -0x8(%rbp), %rcx
0000000100001304 cmpl 0x8(%rcx), %eax
0000000100001307 jl 0x100001338
000000010000130d leaq 0x9553(%rip), %rdi ## literal pool for: "array index out of range: %d / %d"
0000000100001314 movl -0xc(%rbp), %esi
0000000100001317 movq -0x8(%rbp), %rax
000000010000131b movl 0x8(%rax), %edx
000000010000131e movb $0x0, %al
0000000100001320 callq __STR
0000000100001325 movq %rax, -0x28(%rbp)
0000000100001329 movl %edx, -0x20(%rbp)
000000010000132c movq -0x28(%rbp), %rdi
0000000100001330 movl -0x20(%rbp), %esi
0000000100001333 callq _v_panic
0000000100001338 movq $-0x1, %rcx
000000010000133f movq -0x8(%rbp), %rax
0000000100001343 movq (%rax), %rax
0000000100001346 movq -0x8(%rbp), %rdx
000000010000134a movl 0x10(%rdx), %esi
000000010000134d imull -0xc(%rbp), %esi
0000000100001351 movslq %esi, %rdx
0000000100001354 addq %rdx, %rax
0000000100001357 movq -0x18(%rbp), %rsi
000000010000135b movq -0x8(%rbp), %rdx
000000010000135f movslq 0x10(%rdx), %rdx
0000000100001363 movq %rax, %rdi
0000000100001366 callq 0x10000a598 ## symbol stub for: ___memcpy_chk
000000010000136b movq %rax, -0x30(%rbp)
000000010000136f addq $0x30, %rsp
0000000100001373 popq %rbp
0000000100001374 retq
0000000100001375 nopw %cs:(%rax,%rax)
_array_prepend:
0000000100001380 pushq %rbp
0000000100001381 movq %rsp, %rbp
0000000100001384 subq $0x10, %rsp
0000000100001388 xorl %eax, %eax
000000010000138a movq %rdi, -0x8(%rbp)
000000010000138e movq %rsi, -0x10(%rbp)
0000000100001392 movq -0x8(%rbp), %rdi
0000000100001396 movq -0x10(%rbp), %rdx
000000010000139a movl %eax, %esi
000000010000139c callq _array_insert
00000001000013a1 addq $0x10, %rsp
00000001000013a5 popq %rbp
00000001000013a6 retq
00000001000013a7 nopw (%rax,%rax)
_v_array_delete:
00000001000013b0 pushq %rbp
00000001000013b1 movq %rsp, %rbp
00000001000013b4 subq $0x20, %rsp
00000001000013b8 movq $-0x1, %rcx
00000001000013bf movq %rdi, -0x8(%rbp)
00000001000013c3 movl %esi, -0xc(%rbp)
00000001000013c6 movq -0x8(%rbp), %rdi
00000001000013ca movl 0x10(%rdi), %esi
00000001000013cd movl %esi, -0x10(%rbp)
00000001000013d0 movq -0x8(%rbp), %rdi
00000001000013d4 movq (%rdi), %rdi
00000001000013d7 movl -0xc(%rbp), %esi
00000001000013da imull -0x10(%rbp), %esi
00000001000013de movslq %esi, %rax
00000001000013e1 addq %rax, %rdi
00000001000013e4 movq -0x8(%rbp), %rax
00000001000013e8 movq (%rax), %rax
00000001000013eb movl -0xc(%rbp), %esi
00000001000013ee addl $0x1, %esi
00000001000013f1 imull -0x10(%rbp), %esi
00000001000013f5 movslq %esi, %rdx
00000001000013f8 addq %rdx, %rax
00000001000013fb movq -0x8(%rbp), %rdx
00000001000013ff movl 0x8(%rdx), %esi
0000000100001402 subl -0xc(%rbp), %esi
0000000100001405 imull -0x10(%rbp), %esi
0000000100001409 movslq %esi, %rdx
000000010000140c movq %rax, %rsi
000000010000140f callq 0x10000a59e ## symbol stub for: ___memmove_chk
0000000100001414 movq -0x8(%rbp), %rcx
0000000100001418 movl 0x8(%rcx), %r8d
000000010000141c addl $-0x1, %r8d
0000000100001420 movl %r8d, 0x8(%rcx)
0000000100001424 movq -0x8(%rbp), %rcx
0000000100001428 movl 0xc(%rcx), %r8d
000000010000142c addl $-0x1, %r8d
0000000100001430 movl %r8d, 0xc(%rcx)
0000000100001434 movq %rax, -0x18(%rbp)
0000000100001438 addq $0x20, %rsp
000000010000143c popq %rbp
000000010000143d retq
000000010000143e nop
_array_get:
0000000100001440 pushq %rbp
0000000100001441 movq %rsp, %rbp
0000000100001444 subq $0x20, %rsp
0000000100001448 leaq 0x10(%rbp), %rax
000000010000144c movl %edi, -0x4(%rbp)
000000010000144f cmpl $0x0, -0x4(%rbp)
0000000100001453 movq %rax, -0x20(%rbp)
0000000100001457 jl 0x10000146d
000000010000145d movl -0x4(%rbp), %eax
0000000100001460 movq -0x20(%rbp), %rcx
0000000100001464 cmpl 0x8(%rcx), %eax
0000000100001467 jl 0x100001498
000000010000146d leaq 0x931f(%rip), %rdi ## literal pool for: "array index out of range: %d/%d"
0000000100001474 movl -0x4(%rbp), %esi
0000000100001477 movq -0x20(%rbp), %rax
000000010000147b movl 0x8(%rax), %edx
000000010000147e movb $0x0, %al
0000000100001480 callq __STR
0000000100001485 movq %rax, -0x18(%rbp)
0000000100001489 movl %edx, -0x10(%rbp)
000000010000148c movq -0x18(%rbp), %rdi
0000000100001490 movl -0x10(%rbp), %esi
0000000100001493 callq _v_panic
0000000100001498 movq -0x20(%rbp), %rax
000000010000149c movq (%rax), %rcx
000000010000149f movl -0x4(%rbp), %edx
00000001000014a2 imull 0x10(%rax), %edx
00000001000014a6 movslq %edx, %rsi
00000001000014a9 addq %rsi, %rcx
00000001000014ac movq %rcx, %rax
00000001000014af addq $0x20, %rsp
00000001000014b3 popq %rbp
00000001000014b4 retq
00000001000014b5 nopw %cs:(%rax,%rax)
__STR:
00000001000014c0 pushq %rbp
00000001000014c1 movq %rsp, %rbp
00000001000014c4 pushq %r15
00000001000014c6 pushq %r14
00000001000014c8 pushq %rbx
00000001000014c9 subq $0x1f8, %rsp
00000001000014d0 testb %al, %al
00000001000014d2 movaps %xmm7, -0x130(%rbp)
00000001000014d9 movaps %xmm6, -0x140(%rbp)
00000001000014e0 movaps %xmm5, -0x150(%rbp)
00000001000014e7 movaps %xmm4, -0x160(%rbp)
00000001000014ee movaps %xmm3, -0x170(%rbp)
00000001000014f5 movaps %xmm2, -0x180(%rbp)
00000001000014fc movaps %xmm1, -0x190(%rbp)
0000000100001503 movaps %xmm0, -0x1a0(%rbp)
000000010000150a movq %rdi, -0x1a8(%rbp)
0000000100001511 movq %r9, -0x1b0(%rbp)
0000000100001518 movq %r8, -0x1b8(%rbp)
000000010000151f movq %rcx, -0x1c0(%rbp)
0000000100001526 movq %rdx, -0x1c8(%rbp)
000000010000152d movq %rsi, -0x1d0(%rbp)
0000000100001534 je 0x1000015a7
000000010000153a movaps -0x1a0(%rbp), %xmm0
0000000100001541 movaps %xmm0, -0xf0(%rbp)
0000000100001548 movaps -0x190(%rbp), %xmm1
000000010000154f movaps %xmm1, -0xe0(%rbp)
0000000100001556 movaps -0x180(%rbp), %xmm2
000000010000155d movaps %xmm2, -0xd0(%rbp)
0000000100001564 movaps -0x170(%rbp), %xmm3
000000010000156b movaps %xmm3, -0xc0(%rbp)
0000000100001572 movaps -0x160(%rbp), %xmm4
0000000100001579 movaps %xmm4, -0xb0(%rbp)
0000000100001580 movaps -0x150(%rbp), %xmm5
0000000100001587 movaps %xmm5, -0xa0(%rbp)
000000010000158e movaps -0x140(%rbp), %xmm6
0000000100001595 movaps %xmm6, -0x90(%rbp)
000000010000159c movaps -0x130(%rbp), %xmm7
00000001000015a3 movaps %xmm7, -0x80(%rbp)
00000001000015a7 movq -0x1b0(%rbp), %rax
00000001000015ae movq %rax, -0xf8(%rbp)
00000001000015b5 movq -0x1b8(%rbp), %rcx
00000001000015bc movq %rcx, -0x100(%rbp)
00000001000015c3 movq -0x1c0(%rbp), %rdx
00000001000015ca movq %rdx, -0x108(%rbp)
00000001000015d1 movq -0x1c8(%rbp), %rsi
00000001000015d8 movq %rsi, -0x110(%rbp)
00000001000015df movq -0x1d0(%rbp), %rdi
00000001000015e6 movq %rdi, -0x118(%rbp)
00000001000015ed movq -0x1a8(%rbp), %r8
00000001000015f4 movq 0xba3d(%rip), %r9 ## literal pool symbol address: ___stack_chk_guard
00000001000015fb movq (%r9), %r9
00000001000015fe movq %r9, -0x20(%rbp)
0000000100001602 movq %r8, -0x58(%rbp)
0000000100001606 leaq -0x120(%rbp), %r8
000000010000160d movq %r8, -0x30(%rbp)
0000000100001611 leaq 0x10(%rbp), %r9
0000000100001615 movq %r9, -0x38(%rbp)
0000000100001619 movl $0x30, -0x3c(%rbp)
0000000100001620 movl $0x8, -0x40(%rbp)
0000000100001627 movq -0x58(%rbp), %r10
000000010000162b xorl %r11d, %r11d
000000010000162e movl %r11d, %ebx
0000000100001631 movq $-0x1, %r14
0000000100001638 leaq -0x40(%rbp), %r15
000000010000163c movq %rbx, %rdi
000000010000163f movq %rbx, %rsi
0000000100001642 movl %r11d, %edx
0000000100001645 movq %r14, %rcx
0000000100001648 movq %r8, -0x1d8(%rbp)
000000010000164f movq %r10, %r8
0000000100001652 movq %r9, -0x1e0(%rbp)
0000000100001659 movq %r15, %r9
000000010000165c movq %r15, -0x1e8(%rbp)
0000000100001663 movl %r11d, -0x1ec(%rbp)
000000010000166a movq %r14, -0x1f8(%rbp)
0000000100001671 callq 0x10000a5b6 ## symbol stub for: ___vsnprintf_chk
0000000100001676 incl %eax
0000000100001678 movslq %eax, %rcx
000000010000167b movq %rcx, -0x60(%rbp)
000000010000167f movq -0x60(%rbp), %rdi
0000000100001683 callq 0x10000a5fe ## symbol stub for: _malloc
0000000100001688 movq %rax, -0x68(%rbp)
000000010000168c movq -0x1d8(%rbp), %rax
0000000100001693 movq %rax, -0x30(%rbp)
0000000100001697 movq -0x1e0(%rbp), %rcx
000000010000169e movq %rcx, -0x38(%rbp)
00000001000016a2 movl $0x30, -0x3c(%rbp)
00000001000016a9 movl $0x8, -0x40(%rbp)
00000001000016b0 movq -0x68(%rbp), %rdi
00000001000016b4 movq -0x58(%rbp), %rcx
00000001000016b8 movl -0x1ec(%rbp), %esi
00000001000016be movq -0x1f8(%rbp), %rdx
00000001000016c5 movq -0x1e8(%rbp), %r8
00000001000016cc callq 0x10000a5bc ## symbol stub for: ___vsprintf_chk
00000001000016d1 movq -0x68(%rbp), %rdi
00000001000016d5 movl %eax, -0x1fc(%rbp)
00000001000016db callq _tos2
00000001000016e0 movq %rax, -0x50(%rbp)
00000001000016e4 movl %edx, -0x48(%rbp)
00000001000016e7 movl -0x48(%rbp), %edx
00000001000016ea movq -0x50(%rbp), %rax
00000001000016ee movq 0xb943(%rip), %rcx ## literal pool symbol address: ___stack_chk_guard
00000001000016f5 movq (%rcx), %rcx
00000001000016f8 movq -0x20(%rbp), %rdi
00000001000016fc cmpq %rdi, %rcx
00000001000016ff movl %edx, -0x200(%rbp)
0000000100001705 movq %rax, -0x208(%rbp)
000000010000170c jne 0x10000172d
0000000100001712 movq -0x208(%rbp), %rax
0000000100001719 movl -0x200(%rbp), %edx
000000010000171f addq $0x1f8, %rsp
0000000100001726 popq %rbx
0000000100001727 popq %r14
0000000100001729 popq %r15
000000010000172b popq %rbp
000000010000172c retq
000000010000172d callq 0x10000a5b0 ## symbol stub for: ___stack_chk_fail
0000000100001732 ud2
0000000100001734 nopw %cs:(%rax,%rax)
_array_first:
0000000100001740 pushq %rbp
0000000100001741 movq %rsp, %rbp
0000000100001744 subq $0x20, %rsp
0000000100001748 leaq 0x10(%rbp), %rax
000000010000174c cmpl $0x0, 0x8(%rax)
0000000100001750 movq %rax, -0x18(%rbp)
0000000100001754 jne 0x100001779
000000010000175a leaq 0x9052(%rip), %rdi ## literal pool for: "array.first: empty array"
0000000100001761 callq _tos3
0000000100001766 movq %rax, -0x10(%rbp)
000000010000176a movl %edx, -0x8(%rbp)
000000010000176d movq -0x10(%rbp), %rdi
0000000100001771 movl -0x8(%rbp), %esi
0000000100001774 callq _v_panic
0000000100001779 movq -0x18(%rbp), %rax
000000010000177d movq (%rax), %rax
0000000100001780 addq $0x20, %rsp
0000000100001784 popq %rbp
0000000100001785 retq
0000000100001786 nopw %cs:(%rax,%rax)
_array_last:
0000000100001790 pushq %rbp
0000000100001791 movq %rsp, %rbp
0000000100001794 subq $0x20, %rsp
0000000100001798 leaq 0x10(%rbp), %rax
000000010000179c cmpl $0x0, 0x8(%rax)
00000001000017a0 movq %rax, -0x18(%rbp)
00000001000017a4 jne 0x1000017c9
00000001000017aa leaq 0x901b(%rip), %rdi ## literal pool for: "array.last: empty array"
00000001000017b1 callq _tos3
00000001000017b6 movq %rax, -0x10(%rbp)
00000001000017ba movl %edx, -0x8(%rbp)
00000001000017bd movq -0x10(%rbp), %rdi
00000001000017c1 movl -0x8(%rbp), %esi
00000001000017c4 callq _v_panic
00000001000017c9 movq -0x18(%rbp), %rax
00000001000017cd movq (%rax), %rcx
00000001000017d0 movl 0x8(%rax), %edx
00000001000017d3 subl $0x1, %edx
00000001000017d6 imull 0x10(%rax), %edx
00000001000017da movslq %edx, %rsi
00000001000017dd addq %rsi, %rcx
00000001000017e0 movq %rcx, %rax
00000001000017e3 addq $0x20, %rsp
00000001000017e7 popq %rbp
00000001000017e8 retq
00000001000017e9 nopl (%rax)
_array_left:
00000001000017f0 pushq %rbp
00000001000017f1 movq %rsp, %rbp
00000001000017f4 subq $0x40, %rsp
00000001000017f8 movq %rdi, %rax
00000001000017fb leaq 0x10(%rbp), %rcx
00000001000017ff movl %esi, -0x4(%rbp)
0000000100001802 movl -0x4(%rbp), %esi
0000000100001805 cmpl 0x8(%rcx), %esi
0000000100001808 movq %rax, -0x10(%rbp)
000000010000180c movq %rcx, -0x18(%rbp)
0000000100001810 movq %rdi, -0x20(%rbp)
0000000100001814 jl 0x10000183d
000000010000181a movq -0x18(%rbp), %rax
000000010000181e movq (%rax), %rcx
0000000100001821 movq -0x20(%rbp), %rdx
0000000100001825 movq %rcx, (%rdx)
0000000100001828 movq 0x8(%rax), %rcx
000000010000182c movq %rcx, 0x8(%rdx)
0000000100001830 movq 0x10(%rax), %rcx
0000000100001834 movq %rcx, 0x10(%rdx)
0000000100001838 jmp 0x100001868
000000010000183d xorl %esi, %esi
000000010000183f movl -0x4(%rbp), %edx
0000000100001842 movq -0x20(%rbp), %rdi
0000000100001846 movq -0x18(%rbp), %rax
000000010000184a movq (%rax), %rcx
000000010000184d movq %rcx, (%rsp)
0000000100001851 movq 0x8(%rax), %rcx
0000000100001855 movq %rcx, 0x8(%rsp)
000000010000185a movq 0x10(%rax), %rcx
000000010000185e movq %rcx, 0x10(%rsp)
0000000100001863 callq _array_slice
0000000100001868 movq -0x10(%rbp), %rax
000000010000186c addq $0x40, %rsp
0000000100001870 popq %rbp
0000000100001871 retq
0000000100001872 nopw %cs:(%rax,%rax)
_array_slice:
0000000100001880 pushq %rbp
0000000100001881 movq %rsp, %rbp
0000000100001884 subq $0x60, %rsp
0000000100001888 movq %rdi, %rax
000000010000188b leaq 0x10(%rbp), %rcx
000000010000188f movl %esi, -0x4(%rbp)
0000000100001892 movl %edx, -0x8(%rbp)
0000000100001895 movl -0x8(%rbp), %edx
0000000100001898 movl %edx, -0xc(%rbp)
000000010000189b movl -0x4(%rbp), %edx
000000010000189e cmpl -0xc(%rbp), %edx
00000001000018a1 movq %rax, -0x50(%rbp)
00000001000018a5 movq %rdi, -0x58(%rbp)
00000001000018a9 movq %rcx, -0x60(%rbp)
00000001000018ad jle 0x1000018da
00000001000018b3 leaq 0x8f2a(%rip), %rdi ## literal pool for: "invalid slice index: %d > %d"
00000001000018ba movl -0x4(%rbp), %esi
00000001000018bd movl -0xc(%rbp), %edx
00000001000018c0 movb $0x0, %al
00000001000018c2 callq __STR
00000001000018c7 movq %rax, -0x20(%rbp)
00000001000018cb movl %edx, -0x18(%rbp)
00000001000018ce movq -0x20(%rbp), %rdi
00000001000018d2 movl -0x18(%rbp), %esi
00000001000018d5 callq _v_panic
00000001000018da movl -0xc(%rbp), %eax
00000001000018dd movq -0x60(%rbp), %rcx
00000001000018e1 cmpl 0x8(%rcx), %eax
00000001000018e4 jle 0x100001915
00000001000018ea leaq 0x8f10(%rip), %rdi ## literal pool for: "runtime error: slice bounds out of range (%d >= %d)"
00000001000018f1 movl -0xc(%rbp), %esi
00000001000018f4 movq -0x60(%rbp), %rax
00000001000018f8 movl 0x8(%rax), %edx
00000001000018fb movb $0x0, %al
00000001000018fd callq __STR
0000000100001902 movq %rax, -0x30(%rbp)
0000000100001906 movl %edx, -0x28(%rbp)
0000000100001909 movq -0x30(%rbp), %rdi
000000010000190d movl -0x28(%rbp), %esi
0000000100001910 callq _v_panic
0000000100001915 cmpl $0x0, -0x4(%rbp)
0000000100001919 jge 0x100001943
000000010000191f leaq 0x8f0f(%rip), %rdi ## literal pool for: "runtime error: slice bounds out of range (%d < 0)"
0000000100001926 movl -0x4(%rbp), %esi
0000000100001929 movb $0x0, %al
000000010000192b callq __STR
0000000100001930 movq %rax, -0x40(%rbp)
0000000100001934 movl %edx, -0x38(%rbp)
0000000100001937 movq -0x40(%rbp), %rdi
000000010000193b movl -0x38(%rbp), %esi
000000010000193e callq _v_panic
0000000100001943 movl -0xc(%rbp), %eax
0000000100001946 subl -0x4(%rbp), %eax
0000000100001949 movl %eax, -0x44(%rbp)
000000010000194c movq -0x60(%rbp), %rcx
0000000100001950 movq (%rcx), %rdx
0000000100001953 movl -0x4(%rbp), %eax
0000000100001956 imull 0x10(%rcx), %eax
000000010000195a movslq %eax, %rsi
000000010000195d addq %rsi, %rdx
0000000100001960 movq -0x58(%rbp), %rsi
0000000100001964 movq %rdx, (%rsi)
0000000100001967 movl -0x44(%rbp), %eax
000000010000196a movl %eax, 0x8(%rsi)
000000010000196d movl -0x44(%rbp), %eax
0000000100001970 movl %eax, 0xc(%rsi)
0000000100001973 movl 0x10(%rcx), %eax
0000000100001976 movl %eax, 0x10(%rsi)
0000000100001979 movq -0x50(%rbp), %rax
000000010000197d addq $0x60, %rsp
0000000100001981 popq %rbp
0000000100001982 retq
0000000100001983 nopw %cs:(%rax,%rax)
_array_right:
0000000100001990 pushq %rbp
0000000100001991 movq %rsp, %rbp
0000000100001994 subq $0x40, %rsp
0000000100001998 movq %rdi, %rax
000000010000199b leaq 0x10(%rbp), %rcx
000000010000199f movl %esi, -0x4(%rbp)
00000001000019a2 movl -0x4(%rbp), %esi
00000001000019a5 cmpl 0x8(%rcx), %esi
00000001000019a8 movq %rax, -0x10(%rbp)
00000001000019ac movq %rcx, -0x18(%rbp)
00000001000019b0 movq %rdi, -0x20(%rbp)
00000001000019b4 jl 0x1000019d5
00000001000019ba xorl %eax, %eax
00000001000019bc movq -0x18(%rbp), %rcx
00000001000019c0 movl 0x10(%rcx), %ecx
00000001000019c3 movq -0x20(%rbp), %rdi
00000001000019c7 movl %eax, %esi
00000001000019c9 movl %eax, %edx
00000001000019cb callq _new_array
00000001000019d0 jmp 0x100001a01
00000001000019d5 movl -0x4(%rbp), %esi
00000001000019d8 movq -0x18(%rbp), %rax
00000001000019dc movl 0x8(%rax), %edx
00000001000019df movq -0x20(%rbp), %rdi
00000001000019e3 movq (%rax), %rcx
00000001000019e6 movq %rcx, (%rsp)
00000001000019ea movq 0x8(%rax), %rcx
00000001000019ee movq %rcx, 0x8(%rsp)
00000001000019f3 movq 0x10(%rax), %rcx
00000001000019f7 movq %rcx, 0x10(%rsp)
00000001000019fc callq _array_slice
0000000100001a01 movq -0x10(%rbp), %rax
0000000100001a05 addq $0x40, %rsp
0000000100001a09 popq %rbp
0000000100001a0a retq
0000000100001a0b nopl (%rax,%rax)
_array_push_many:
0000000100001a10 pushq %rbp
0000000100001a11 movq %rsp, %rbp
0000000100001a14 subq $0x20, %rsp
0000000100001a18 movq %rdi, -0x8(%rbp)
0000000100001a1c movq %rsi, -0x10(%rbp)
0000000100001a20 movl %edx, -0x14(%rbp)
0000000100001a23 movq -0x8(%rbp), %rsi
0000000100001a27 movl 0x8(%rsi), %edx
0000000100001a2a movq -0x8(%rbp), %rsi
0000000100001a2e movl 0xc(%rsi), %eax
0000000100001a31 subl -0x14(%rbp), %eax
0000000100001a34 cmpl %eax, %edx
0000000100001a36 jl 0x100001aa3
0000000100001a3c movq -0x8(%rbp), %rax
0000000100001a40 movl 0x8(%rax), %ecx
0000000100001a43 addl -0x14(%rbp), %ecx
0000000100001a46 shll $0x1, %ecx
0000000100001a49 movl %ecx, -0x18(%rbp)
0000000100001a4c movq -0x8(%rbp), %rax
0000000100001a50 cmpl $0x0, 0xc(%rax)
0000000100001a54 jne 0x100001a78
0000000100001a5a movl -0x18(%rbp), %eax
0000000100001a5d movq -0x8(%rbp), %rcx
0000000100001a61 imull 0x10(%rcx), %eax
0000000100001a65 movl %eax, %edi
0000000100001a67 callq _v_calloc
0000000100001a6c movq -0x8(%rbp), %rcx
0000000100001a70 movq %rax, (%rcx)
0000000100001a73 jmp 0x100001a99
0000000100001a78 movq -0x8(%rbp), %rax
0000000100001a7c movq (%rax), %rdi
0000000100001a7f movl -0x18(%rbp), %ecx
0000000100001a82 movq -0x8(%rbp), %rax
0000000100001a86 imull 0x10(%rax), %ecx
0000000100001a8a movslq %ecx, %rsi
0000000100001a8d callq 0x10000a616 ## symbol stub for: _realloc
0000000100001a92 movq -0x8(%rbp), %rsi
0000000100001a96 movq %rax, (%rsi)
0000000100001a99 movl -0x18(%rbp), %eax
0000000100001a9c movq -0x8(%rbp), %rcx
0000000100001aa0 movl %eax, 0xc(%rcx)
0000000100001aa3 movq $-0x1, %rcx
0000000100001aaa movq -0x8(%rbp), %rax
0000000100001aae movq (%rax), %rax
0000000100001ab1 movq -0x8(%rbp), %rdx
0000000100001ab5 movl 0x10(%rdx), %esi
0000000100001ab8 movq -0x8(%rbp), %rdx
0000000100001abc imull 0x8(%rdx), %esi
0000000100001ac0 movslq %esi, %rdx
0000000100001ac3 addq %rdx, %rax
0000000100001ac6 movq -0x10(%rbp), %rsi
0000000100001aca movq -0x8(%rbp), %rdx
0000000100001ace movl 0x10(%rdx), %edi
0000000100001ad1 imull -0x14(%rbp), %edi
0000000100001ad5 movslq %edi, %rdx
0000000100001ad8 movq %rax, %rdi
0000000100001adb callq 0x10000a598 ## symbol stub for: ___memcpy_chk
0000000100001ae0 movl -0x14(%rbp), %r8d
0000000100001ae4 movq -0x8(%rbp), %rcx
0000000100001ae8 addl 0x8(%rcx), %r8d
0000000100001aec movl %r8d, 0x8(%rcx)
0000000100001af0 movq %rax, -0x20(%rbp)
0000000100001af4 addq $0x20, %rsp
0000000100001af8 popq %rbp
0000000100001af9 retq
0000000100001afa nopw (%rax,%rax)
_array_reverse:
0000000100001b00 pushq %rbp
0000000100001b01 movq %rsp, %rbp
0000000100001b04 subq $0x50, %rsp
0000000100001b08 movq %rdi, %rax
0000000100001b0b leaq 0x10(%rbp), %rcx
0000000100001b0f movl 0xc(%rcx), %edx
0000000100001b12 imull 0x10(%rcx), %edx
0000000100001b16 movq %rdi, -0x10(%rbp)
0000000100001b1a movl %edx, %edi
0000000100001b1c movq %rcx, -0x18(%rbp)
0000000100001b20 movq %rax, -0x20(%rbp)
0000000100001b24 callq _v_calloc
0000000100001b29 movq -0x10(%rbp), %rcx
0000000100001b2d movq %rax, (%rcx)
0000000100001b30 movq -0x18(%rbp), %rax
0000000100001b34 movl 0x8(%rax), %edx
0000000100001b37 movl %edx, 0x8(%rcx)
0000000100001b3a movl 0xc(%rax), %edx
0000000100001b3d movl %edx, 0xc(%rcx)
0000000100001b40 movl 0x10(%rax), %edx
0000000100001b43 movl %edx, 0x10(%rcx)
0000000100001b46 movl $0x0, -0x4(%rbp)
0000000100001b4d movl -0x4(%rbp), %eax
0000000100001b50 movq -0x18(%rbp), %rcx
0000000100001b54 cmpl 0x8(%rcx), %eax
0000000100001b57 jge 0x100001bcf
0000000100001b5d movq -0x10(%rbp), %rax
0000000100001b61 movq (%rax), %rcx
0000000100001b64 movl -0x4(%rbp), %edx
0000000100001b67 imull 0x10(%rax), %edx
0000000100001b6b movslq %edx, %rsi
0000000100001b6e addq %rsi, %rcx
0000000100001b71 movq -0x18(%rbp), %rsi
0000000100001b75 movl 0x8(%rsi), %edx
0000000100001b78 subl $0x1, %edx
0000000100001b7b subl -0x4(%rbp), %edx
0000000100001b7e movq (%rsi), %rdi
0000000100001b81 movq %rdi, (%rsp)
0000000100001b85 movq 0x8(%rsi), %rdi
0000000100001b89 movq %rdi, 0x8(%rsp)
0000000100001b8e movq 0x10(%rsi), %rdi
0000000100001b92 movq %rdi, 0x10(%rsp)
0000000100001b97 movl %edx, %edi
0000000100001b99 movq %rcx, -0x28(%rbp)
0000000100001b9d callq _array_get
0000000100001ba2 movq $-0x1, %rcx
0000000100001ba9 movq -0x10(%rbp), %rsi
0000000100001bad movslq 0x10(%rsi), %rdx
0000000100001bb1 movq -0x28(%rbp), %rdi
0000000100001bb5 movq %rax, %rsi
0000000100001bb8 callq 0x10000a598 ## symbol stub for: ___memcpy_chk
0000000100001bbd movq %rax, -0x30(%rbp)
0000000100001bc1 movl -0x4(%rbp), %eax
0000000100001bc4 addl $0x1, %eax
0000000100001bc7 movl %eax, -0x4(%rbp)
0000000100001bca jmp 0x100001b4d
0000000100001bcf movq -0x20(%rbp), %rax
0000000100001bd3 addq $0x50, %rsp
0000000100001bd7 popq %rbp
0000000100001bd8 retq
0000000100001bd9 nopl (%rax)
_array_clone:
0000000100001be0 pushq %rbp
0000000100001be1 movq %rsp, %rbp
0000000100001be4 subq $0x20, %rsp
0000000100001be8 movq %rdi, %rax
0000000100001beb leaq 0x10(%rbp), %rcx
0000000100001bef movl 0xc(%rcx), %edx
0000000100001bf2 imull 0x10(%rcx), %edx
0000000100001bf6 movq %rdi, -0x8(%rbp)
0000000100001bfa movl %edx, %edi
0000000100001bfc movq %rcx, -0x10(%rbp)
0000000100001c00 movq %rax, -0x18(%rbp)
0000000100001c04 callq _v_calloc
0000000100001c09 movq $-0x1, %rcx
0000000100001c10 movq -0x8(%rbp), %rsi
0000000100001c14 movq %rax, (%rsi)
0000000100001c17 movq -0x10(%rbp), %rax
0000000100001c1b movl 0x8(%rax), %edx
0000000100001c1e movl %edx, 0x8(%rsi)
0000000100001c21 movl 0xc(%rax), %edx
0000000100001c24 movl %edx, 0xc(%rsi)
0000000100001c27 movl 0x10(%rax), %edx
0000000100001c2a movl %edx, 0x10(%rsi)
0000000100001c2d movq (%rsi), %rdi
0000000100001c30 movq (%rax), %rsi
0000000100001c33 movl 0xc(%rax), %edx
0000000100001c36 imull 0x10(%rax), %edx
0000000100001c3a movslq %edx, %rdx
0000000100001c3d callq 0x10000a598 ## symbol stub for: ___memcpy_chk
0000000100001c42 movq -0x18(%rbp), %rcx
0000000100001c46 movq %rax, -0x20(%rbp)
0000000100001c4a movq %rcx, %rax
0000000100001c4d addq $0x20, %rsp
0000000100001c51 popq %rbp
0000000100001c52 retq
0000000100001c53 nopw %cs:(%rax,%rax)
_v_array_free:
0000000100001c60 pushq %rbp
0000000100001c61 movq %rsp, %rbp
0000000100001c64 leaq 0x10(%rbp), %rax
0000000100001c68 movq (%rax), %rdi
0000000100001c6b callq 0x10000a5ec ## symbol stub for: _free
0000000100001c70 popq %rbp
0000000100001c71 retq
0000000100001c72 nopw %cs:(%rax,%rax)
_array_string_str:
0000000100001c80 pushq %rbp
0000000100001c81 movq %rsp, %rbp
0000000100001c84 subq $0xc0, %rsp
0000000100001c8b leaq 0x10(%rbp), %rax
0000000100001c8f leaq -0x30(%rbp), %rdi
0000000100001c93 imull $0x3, 0x8(%rax), %esi
0000000100001c97 movq %rax, -0xa0(%rbp)
0000000100001c9e callq _strings__new_builder
0000000100001ca3 leaq 0x8bdf(%rip), %rdi ## literal pool for: "["
0000000100001caa callq _tos3
0000000100001caf leaq -0x30(%rbp), %rdi
0000000100001cb3 movq %rax, -0x40(%rbp)
0000000100001cb7 movl %edx, -0x38(%rbp)
0000000100001cba movq -0x40(%rbp), %rsi
0000000100001cbe movl -0x38(%rbp), %edx
0000000100001cc1 callq _strings__Builder_write
0000000100001cc6 movl $0x0, -0x44(%rbp)
0000000100001ccd movl -0x44(%rbp), %eax
0000000100001cd0 movq -0xa0(%rbp), %rcx
0000000100001cd7 cmpl 0x8(%rcx), %eax
0000000100001cda jge 0x100001dc4
0000000100001ce0 movl -0x44(%rbp), %edi
0000000100001ce3 movq -0xa0(%rbp), %rax
0000000100001cea movq (%rax), %rcx
0000000100001ced movq %rcx, (%rsp)
0000000100001cf1 movq 0x8(%rax), %rcx
0000000100001cf5 movq %rcx, 0x8(%rsp)
0000000100001cfa movq 0x10(%rax), %rcx
0000000100001cfe movq %rcx, 0x10(%rsp)
0000000100001d03 callq _array_get
0000000100001d08 leaq 0x8b7c(%rip), %rdi ## literal pool for: "\""
0000000100001d0f movq (%rax), %rcx
0000000100001d12 movq %rcx, -0x58(%rbp)
0000000100001d16 movq 0x8(%rax), %rax
0000000100001d1a movq %rax, -0x50(%rbp)
0000000100001d1e callq _tos3
0000000100001d23 leaq -0x30(%rbp), %rdi
0000000100001d27 movq %rax, -0x68(%rbp)
0000000100001d2b movl %edx, -0x60(%rbp)
0000000100001d2e movq -0x68(%rbp), %rsi
0000000100001d32 movl -0x60(%rbp), %edx
0000000100001d35 callq _strings__Builder_write
0000000100001d3a leaq -0x30(%rbp), %rdi
0000000100001d3e movq -0x58(%rbp), %rsi
0000000100001d42 movl -0x50(%rbp), %edx
0000000100001d45 callq _strings__Builder_write
0000000100001d4a leaq 0x8b3a(%rip), %rdi ## literal pool for: "\""
0000000100001d51 callq _tos3
0000000100001d56 leaq -0x30(%rbp), %rdi
0000000100001d5a movq %rax, -0x78(%rbp)
0000000100001d5e movl %edx, -0x70(%rbp)
0000000100001d61 movq -0x78(%rbp), %rsi
0000000100001d65 movl -0x70(%rbp), %edx
0000000100001d68 callq _strings__Builder_write
0000000100001d6d movl -0x44(%rbp), %edx
0000000100001d70 movq -0xa0(%rbp), %rax
0000000100001d77 movl 0x8(%rax), %r8d
0000000100001d7b subl $0x1, %r8d
0000000100001d7f cmpl %r8d, %edx
0000000100001d82 jge 0x100001db1
0000000100001d88 leaq 0x8afe(%rip), %rdi ## literal pool for: ", "
0000000100001d8f callq _tos3
0000000100001d94 leaq -0x30(%rbp), %rdi
0000000100001d98 movq %rax, -0x88(%rbp)
0000000100001d9f movl %edx, -0x80(%rbp)
0000000100001da2 movq -0x88(%rbp), %rsi
0000000100001da9 movl -0x80(%rbp), %edx
0000000100001dac callq _strings__Builder_write
0000000100001db1 jmp 0x100001db6
0000000100001db6 movl -0x44(%rbp), %eax
0000000100001db9 addl $0x1, %eax
0000000100001dbc movl %eax, -0x44(%rbp)
0000000100001dbf jmp 0x100001ccd
0000000100001dc4 leaq 0x8ac5(%rip), %rdi ## literal pool for: "]"
0000000100001dcb callq _tos3
0000000100001dd0 movq %rax, -0x98(%rbp)
0000000100001dd7 movl %edx, -0x90(%rbp)
0000000100001ddd movq -0x98(%rbp), %rsi
0000000100001de4 movl -0x90(%rbp), %edx
0000000100001dea leaq -0x30(%rbp), %rdi
0000000100001dee callq _strings__Builder_write
0000000100001df3 movq -0x18(%rbp), %rax
0000000100001df7 movq %rsp, %rsi
0000000100001dfa movq %rax, 0x18(%rsi)
0000000100001dfe movq -0x20(%rbp), %rax
0000000100001e02 movq %rax, 0x10(%rsi)
0000000100001e06 movq -0x30(%rbp), %rax
0000000100001e0a movq -0x28(%rbp), %rdi
0000000100001e0e movq %rdi, 0x8(%rsi)
0000000100001e12 movq %rax, (%rsi)
0000000100001e15 callq _strings__Builder_str
0000000100001e1a movq %rax, -0x10(%rbp)
0000000100001e1e movl %edx, -0x8(%rbp)
0000000100001e21 movq -0x10(%rbp), %rax
0000000100001e25 movl -0x8(%rbp), %edx
0000000100001e28 addq $0xc0, %rsp
0000000100001e2f popq %rbp
0000000100001e30 retq
0000000100001e31 nopw %cs:(%rax,%rax)
_strings__new_builder:
0000000100001e40 pushq %rbp
0000000100001e41 movq %rsp, %rbp
0000000100001e44 subq $0x20, %rsp
0000000100001e48 movq %rdi, %rax
0000000100001e4b xorl %ecx, %ecx
0000000100001e4d movl $0x1, %edx
0000000100001e52 movl %esi, -0x4(%rbp)
0000000100001e55 movl -0x4(%rbp), %esi
0000000100001e58 movq %rdi, -0x10(%rbp)
0000000100001e5c movl %esi, -0x14(%rbp)
0000000100001e5f movl %ecx, %esi
0000000100001e61 movl -0x14(%rbp), %ecx
0000000100001e64 movl %edx, -0x18(%rbp)
0000000100001e67 movl %ecx, %edx
0000000100001e69 movl -0x18(%rbp), %ecx
0000000100001e6c movq %rax, -0x20(%rbp)
0000000100001e70 callq _make
0000000100001e75 movq -0x10(%rbp), %rax
0000000100001e79 movl $0x0, 0x18(%rax)
0000000100001e80 movq -0x20(%rbp), %rax
0000000100001e84 addq $0x20, %rsp
0000000100001e88 popq %rbp
0000000100001e89 retq
0000000100001e8a nopw (%rax,%rax)
_strings__Builder_write:
0000000100001e90 pushq %rbp
0000000100001e91 movq %rsp, %rbp
0000000100001e94 subq $0x20, %rsp
0000000100001e98 movq %rsi, -0x10(%rbp)
0000000100001e9c movl %edx, -0x8(%rbp)
0000000100001e9f movq %rdi, -0x18(%rbp)
0000000100001ea3 movq -0x18(%rbp), %rdi
0000000100001ea7 movq -0x10(%rbp), %rsi
0000000100001eab movl -0x8(%rbp), %edx
0000000100001eae callq _array_push_many
0000000100001eb3 movl -0x8(%rbp), %edx
0000000100001eb6 movq -0x18(%rbp), %rsi
0000000100001eba addl 0x18(%rsi), %edx
0000000100001ebd movl %edx, 0x18(%rsi)
0000000100001ec0 addq $0x20, %rsp
0000000100001ec4 popq %rbp
0000000100001ec5 retq
0000000100001ec6 nopw %cs:(%rax,%rax)
_strings__Builder_str:
0000000100001ed0 pushq %rbp
0000000100001ed1 movq %rsp, %rbp
0000000100001ed4 subq $0x10, %rsp
0000000100001ed8 leaq 0x10(%rbp), %rax
0000000100001edc movq (%rax), %rdi
0000000100001edf movl 0x18(%rax), %esi
0000000100001ee2 callq _tos
0000000100001ee7 movq %rax, -0x10(%rbp)
0000000100001eeb movl %edx, -0x8(%rbp)
0000000100001eee movq -0x10(%rbp), %rax
0000000100001ef2 movl -0x8(%rbp), %edx
0000000100001ef5 addq $0x10, %rsp
0000000100001ef9 popq %rbp
0000000100001efa retq
0000000100001efb nopl (%rax,%rax)
_array_byte_hex:
0000000100001f00 pushq %rbp
0000000100001f01 movq %rsp, %rbp
0000000100001f04 subq $0x60, %rsp
0000000100001f08 leaq 0x10(%rbp), %rax
0000000100001f0c movl 0x8(%rax), %ecx
0000000100001f0f shll $0x1, %ecx
0000000100001f12 addl $0x1, %ecx
0000000100001f15 movl %ecx, %edi
0000000100001f17 movq %rax, -0x30(%rbp)
0000000100001f1b callq _v_malloc
0000000100001f20 movq %rax, -0x18(%rbp)
0000000100001f24 movq -0x18(%rbp), %rax
0000000100001f28 movq %rax, -0x20(%rbp)
0000000100001f2c movl $0x0, -0x24(%rbp)
0000000100001f33 movl -0x24(%rbp), %eax
0000000100001f36 movq -0x30(%rbp), %rcx
0000000100001f3a cmpl 0x8(%rcx), %eax
0000000100001f3d jge 0x100001fb5
0000000100001f43 movq $-0x1, %rdx
0000000100001f4a movq -0x20(%rbp), %rdi
0000000100001f4e movl -0x24(%rbp), %eax
0000000100001f51 movq -0x30(%rbp), %rcx
0000000100001f55 movq (%rcx), %rsi
0000000100001f58 movq %rsi, (%rsp)
0000000100001f5c movq 0x8(%rcx), %rsi
0000000100001f60 movq %rsi, 0x8(%rsp)
0000000100001f65 movq 0x10(%rcx), %rsi
0000000100001f69 movq %rsi, 0x10(%rsp)
0000000100001f6e movq %rdi, -0x38(%rbp)
0000000100001f72 movl %eax, %edi
0000000100001f74 movq %rdx, -0x40(%rbp)
0000000100001f78 callq _array_get
0000000100001f7d xorl %esi, %esi
0000000100001f7f leaq 0x890c(%rip), %rcx ## literal pool for: "%02x"
0000000100001f86 movzbl (%rax), %r8d
0000000100001f8a movq -0x38(%rbp), %rdi
0000000100001f8e movq -0x40(%rbp), %rdx
0000000100001f92 movb $0x0, %al
0000000100001f94 callq 0x10000a5aa ## symbol stub for: ___sprintf_chk
0000000100001f99 movq -0x20(%rbp), %rcx
0000000100001f9d movslq %eax, %rdx
0000000100001fa0 addq %rdx, %rcx
0000000100001fa3 movq %rcx, -0x20(%rbp)
0000000100001fa7 movl -0x24(%rbp), %eax
0000000100001faa addl $0x1, %eax
0000000100001fad movl %eax, -0x24(%rbp)
0000000100001fb0 jmp 0x100001f33
0000000100001fb5 movq -0x18(%rbp), %rdi
0000000100001fb9 callq _tos2
0000000100001fbe movq %rax, -0x10(%rbp)
0000000100001fc2 movl %edx, -0x8(%rbp)
0000000100001fc5 movq -0x10(%rbp), %rax
0000000100001fc9 movl -0x8(%rbp), %edx
0000000100001fcc addq $0x60, %rsp
0000000100001fd0 popq %rbp
0000000100001fd1 retq
0000000100001fd2 nopw %cs:(%rax,%rax)
_v_malloc:
0000000100001fe0 pushq %rbp
0000000100001fe1 movq %rsp, %rbp
0000000100001fe4 subq $0x30, %rsp
0000000100001fe8 movl %edi, -0x4(%rbp)
0000000100001feb cmpl $0x0, -0x4(%rbp)
0000000100001fef jge 0x100002014
0000000100001ff5 leaq 0x8976(%rip), %rdi ## literal pool for: "malloc(<0)"
0000000100001ffc callq _tos3
0000000100002001 movq %rax, -0x18(%rbp)
0000000100002005 movl %edx, -0x10(%rbp)
0000000100002008 movq -0x18(%rbp), %rdi
000000010000200c movl -0x10(%rbp), %esi
000000010000200f callq _v_panic
0000000100002014 movslq -0x4(%rbp), %rdi
0000000100002018 callq 0x10000a5fe ## symbol stub for: _malloc
000000010000201d movq %rax, -0x20(%rbp)
0000000100002021 movq -0x20(%rbp), %rdi
0000000100002025 callq _isnil
000000010000202a testb $0x1, %al
000000010000202c jne 0x100002037
0000000100002032 jmp 0x10000205b
0000000100002037 leaq 0x893f(%rip), %rdi ## literal pool for: "malloc(%d) failed"
000000010000203e movl -0x4(%rbp), %esi
0000000100002041 movb $0x0, %al
0000000100002043 callq __STR
0000000100002048 movq %rax, -0x30(%rbp)
000000010000204c movl %edx, -0x28(%rbp)
000000010000204f movq -0x30(%rbp), %rdi
0000000100002053 movl -0x28(%rbp), %esi
0000000100002056 callq _v_panic
000000010000205b movq -0x20(%rbp), %rax
000000010000205f addq $0x30, %rsp
0000000100002063 popq %rbp
0000000100002064 retq
0000000100002065 nopw %cs:(%rax,%rax)
_tos2:
0000000100002070 pushq %rbp
0000000100002071 movq %rsp, %rbp
0000000100002074 subq $0x30, %rsp
0000000100002078 movq %rdi, -0x18(%rbp)
000000010000207c cmpq $0x0, -0x18(%rbp)
0000000100002081 jne 0x1000020a6
0000000100002087 leaq 0x89bc(%rip), %rdi ## literal pool for: "tos2: nil string"
000000010000208e callq _tos3
0000000100002093 movq %rax, -0x28(%rbp)
0000000100002097 movl %edx, -0x20(%rbp)
000000010000209a movq -0x28(%rbp), %rdi
000000010000209e movl -0x20(%rbp), %esi
00000001000020a1 callq _v_panic
00000001000020a6 movq -0x18(%rbp), %rax
00000001000020aa movq %rax, -0x10(%rbp)
00000001000020ae movq -0x18(%rbp), %rdi
00000001000020b2 callq _vstrlen
00000001000020b7 movl %eax, -0x8(%rbp)
00000001000020ba movq -0x10(%rbp), %rax
00000001000020be movl -0x8(%rbp), %edx
00000001000020c1 addq $0x30, %rsp
00000001000020c5 popq %rbp
00000001000020c6 retq
00000001000020c7 nopw (%rax,%rax)
_copy:
00000001000020d0 pushq %rbp
00000001000020d1 movq %rsp, %rbp
00000001000020d4 subq $0x60, %rsp
00000001000020d8 leaq 0x28(%rbp), %rax
00000001000020dc leaq 0x10(%rbp), %rcx
00000001000020e0 cmpl $0x0, 0x8(%rcx)
00000001000020e4 movq %rax, -0x28(%rbp)
00000001000020e8 movq %rcx, -0x30(%rbp)
00000001000020ec jle 0x10000219a
00000001000020f2 movq -0x28(%rbp), %rax
00000001000020f6 cmpl $0x0, 0x8(%rax)
00000001000020fa jle 0x10000219a
0000000100002100 movq -0x30(%rbp), %rax
0000000100002104 movl 0x8(%rax), %ecx
0000000100002107 movq -0x28(%rbp), %rdx
000000010000210b cmpl 0x8(%rdx), %ecx
000000010000210e jge 0x100002123
0000000100002114 movq -0x30(%rbp), %rax
0000000100002118 movl 0x8(%rax), %ecx
000000010000211b movl %ecx, -0x34(%rbp)
000000010000211e jmp 0x10000212d
0000000100002123 movq -0x28(%rbp), %rax
0000000100002127 movl 0x8(%rax), %ecx
000000010000212a movl %ecx, -0x34(%rbp)
000000010000212d movl -0x34(%rbp), %eax
0000000100002130 leaq -0x20(%rbp), %rdi
0000000100002134 movl %eax, -0x8(%rbp)
0000000100002137 movq -0x30(%rbp), %rcx
000000010000213b movq (%rcx), %rdx
000000010000213e movl -0x8(%rbp), %esi
0000000100002141 movq -0x28(%rbp), %r8
0000000100002145 movq (%r8), %r9
0000000100002148 movq %r9, (%rsp)
000000010000214c movq 0x8(%r8), %r9
0000000100002150 movq %r9, 0x8(%rsp)
0000000100002155 movq 0x10(%r8), %r9
0000000100002159 movq %r9, 0x10(%rsp)
000000010000215e movq %rdx, -0x40(%rbp)
0000000100002162 callq _array_left
0000000100002167 movq $-0x1, %rcx
000000010000216e movq -0x20(%rbp), %rsi
0000000100002172 movq -0x30(%rbp), %rdx
0000000100002176 movl 0x10(%rdx), %eax
0000000100002179 imull -0x8(%rbp), %eax
000000010000217d movslq %eax, %rdx
0000000100002180 movq -0x40(%rbp), %rdi
0000000100002184 callq 0x10000a598 ## symbol stub for: ___memcpy_chk
0000000100002189 movl -0x8(%rbp), %r10d
000000010000218d movl %r10d, -0x4(%rbp)
0000000100002191 movq %rax, -0x48(%rbp)
0000000100002195 jmp 0x1000021a1
000000010000219a movl $0x0, -0x4(%rbp)
00000001000021a1 movl -0x4(%rbp), %eax
00000001000021a4 addq $0x60, %rsp
00000001000021a8 popq %rbp
00000001000021a9 retq
00000001000021aa nopw (%rax,%rax)
_compare_ints:
00000001000021b0 pushq %rbp
00000001000021b1 movq %rsp, %rbp
00000001000021b4 movq %rdi, -0x10(%rbp)
00000001000021b8 movq %rsi, -0x18(%rbp)
00000001000021bc movq -0x10(%rbp), %rsi
00000001000021c0 cmpq -0x18(%rbp), %rsi
00000001000021c4 jae 0x1000021d6
00000001000021ca movl $0xffffffff, -0x4(%rbp)
00000001000021d1 jmp 0x1000021f7
00000001000021d6 movq -0x10(%rbp), %rax
00000001000021da cmpq -0x18(%rbp), %rax
00000001000021de jbe 0x1000021f0
00000001000021e4 movl $0x1, -0x4(%rbp)
00000001000021eb jmp 0x1000021f7
00000001000021f0 movl $0x0, -0x4(%rbp)
00000001000021f7 movl -0x4(%rbp), %eax
00000001000021fa popq %rbp
00000001000021fb retq
00000001000021fc nopl (%rax)
_array_int_sort:
0000000100002200 pushq %rbp
0000000100002201 movq %rsp, %rbp
0000000100002204 subq $0x10, %rsp
0000000100002208 leaq _compare_ints(%rip), %rax
000000010000220f movq %rdi, -0x8(%rbp)
0000000100002213 movq -0x8(%rbp), %rdi
0000000100002217 movq %rax, %rsi
000000010000221a callq _array_sort_with_compare
000000010000221f addq $0x10, %rsp
0000000100002223 popq %rbp
0000000100002224 retq
0000000100002225 nopw %cs:(%rax,%rax)
_array_string_index:
0000000100002230 pushq %rbp
0000000100002231 movq %rsp, %rbp
0000000100002234 subq $0x40, %rsp
0000000100002238 leaq 0x10(%rbp), %rax
000000010000223c movq %rdi, -0x18(%rbp)
0000000100002240 movl %esi, -0x10(%rbp)
0000000100002243 movl $0x0, -0x1c(%rbp)
000000010000224a movq %rax, -0x28(%rbp)
000000010000224e movl -0x1c(%rbp), %eax
0000000100002251 movq -0x28(%rbp), %rcx
0000000100002255 cmpl 0x8(%rcx), %eax
0000000100002258 jge 0x1000022c0
000000010000225e movl -0x1c(%rbp), %edi
0000000100002261 movq -0x28(%rbp), %rax
0000000100002265 movq (%rax), %rcx
0000000100002268 movq %rcx, (%rsp)
000000010000226c movq 0x8(%rax), %rcx
0000000100002270 movq %rcx, 0x8(%rsp)
0000000100002275 movq 0x10(%rax), %rcx
0000000100002279 movq %rcx, 0x10(%rsp)
000000010000227e callq _array_get
0000000100002283 movq (%rax), %rdi
0000000100002286 movl 0x8(%rax), %esi
0000000100002289 movq -0x18(%rbp), %rdx
000000010000228d movl -0x10(%rbp), %ecx
0000000100002290 callq _string_eq
0000000100002295 testb $0x1, %al
0000000100002297 jne 0x1000022a2
000000010000229d jmp 0x1000022ad
00000001000022a2 movl -0x1c(%rbp), %eax
00000001000022a5 movl %eax, -0x4(%rbp)
00000001000022a8 jmp 0x1000022c7
00000001000022ad jmp 0x1000022b2
00000001000022b2 movl -0x1c(%rbp), %eax
00000001000022b5 addl $0x1, %eax
00000001000022b8 movl %eax, -0x1c(%rbp)
00000001000022bb jmp 0x10000224e
00000001000022c0 movl $0xffffffff, -0x4(%rbp)
00000001000022c7 movl -0x4(%rbp), %eax
00000001000022ca addq $0x40, %rsp
00000001000022ce popq %rbp
00000001000022cf retq
_string_eq:
00000001000022d0 pushq %rbp
00000001000022d1 movq %rsp, %rbp
00000001000022d4 subq $0x40, %rsp
00000001000022d8 movq %rdi, -0x18(%rbp)
00000001000022dc movl %esi, -0x10(%rbp)
00000001000022df movq %rdx, -0x28(%rbp)
00000001000022e3 movl %ecx, -0x20(%rbp)
00000001000022e6 movq -0x18(%rbp), %rdi
00000001000022ea callq _isnil
00000001000022ef testb $0x1, %al
00000001000022f1 jne 0x1000022fc
00000001000022f7 jmp 0x10000231b
00000001000022fc leaq 0x8769(%rip), %rdi ## literal pool for: "string.eq(): nil string"
0000000100002303 callq _tos3
0000000100002308 movq %rax, -0x38(%rbp)
000000010000230c movl %edx, -0x30(%rbp)
000000010000230f movq -0x38(%rbp), %rdi
0000000100002313 movl -0x30(%rbp), %esi
0000000100002316 callq _v_panic
000000010000231b movl -0x10(%rbp), %eax
000000010000231e cmpl -0x20(%rbp), %eax
0000000100002321 je 0x100002330
0000000100002327 movb $0x0, -0x1(%rbp)
000000010000232b jmp 0x100002383
0000000100002330 movl $0x0, -0x3c(%rbp)
0000000100002337 movl -0x3c(%rbp), %eax
000000010000233a cmpl -0x10(%rbp), %eax
000000010000233d jge 0x10000237f
0000000100002343 movq -0x18(%rbp), %rax
0000000100002347 movslq -0x3c(%rbp), %rcx
000000010000234b movzbl (%rax,%rcx), %edx
000000010000234f movq -0x28(%rbp), %rax
0000000100002353 movslq -0x3c(%rbp), %rcx
0000000100002357 movzbl (%rax,%rcx), %esi
000000010000235b cmpl %esi, %edx
000000010000235d je 0x10000236c
0000000100002363 movb $0x0, -0x1(%rbp)
0000000100002367 jmp 0x100002383
000000010000236c jmp 0x100002371
0000000100002371 movl -0x3c(%rbp), %eax
0000000100002374 addl $0x1, %eax
0000000100002377 movl %eax, -0x3c(%rbp)
000000010000237a jmp 0x100002337
000000010000237f movb $0x1, -0x1(%rbp)
0000000100002383 movb -0x1(%rbp), %al
0000000100002386 andb $0x1, %al
0000000100002388 movzbl %al, %eax
000000010000238b addq $0x40, %rsp
000000010000238f popq %rbp
0000000100002390 retq
0000000100002391 nopw %cs:(%rax,%rax)
_array_int_index:
00000001000023a0 pushq %rbp
00000001000023a1 movq %rsp, %rbp
00000001000023a4 subq $0x30, %rsp
00000001000023a8 leaq 0x10(%rbp), %rax
00000001000023ac movl %edi, -0x8(%rbp)
00000001000023af movl $0x0, -0xc(%rbp)
00000001000023b6 movq %rax, -0x18(%rbp)
00000001000023ba movl -0xc(%rbp), %eax
00000001000023bd movq -0x18(%rbp), %rcx
00000001000023c1 cmpl 0x8(%rcx), %eax
00000001000023c4 jge 0x100002418
00000001000023ca movl -0xc(%rbp), %edi
00000001000023cd movq -0x18(%rbp), %rax
00000001000023d1 movq (%rax), %rcx
00000001000023d4 movq %rcx, (%rsp)
00000001000023d8 movq 0x8(%rax), %rcx
00000001000023dc movq %rcx, 0x8(%rsp)
00000001000023e1 movq 0x10(%rax), %rcx
00000001000023e5 movq %rcx, 0x10(%rsp)
00000001000023ea callq _array_get
00000001000023ef movl (%rax), %edi
00000001000023f1 cmpl -0x8(%rbp), %edi
00000001000023f4 jne 0x100002405
00000001000023fa movl -0xc(%rbp), %eax
00000001000023fd movl %eax, -0x4(%rbp)
0000000100002400 jmp 0x10000241f
0000000100002405 jmp 0x10000240a
000000010000240a movl -0xc(%rbp), %eax
000000010000240d addl $0x1, %eax
0000000100002410 movl %eax, -0xc(%rbp)
0000000100002413 jmp 0x1000023ba
0000000100002418 movl $0xffffffff, -0x4(%rbp)
000000010000241f movl -0x4(%rbp), %eax
0000000100002422 addq $0x30, %rsp
0000000100002426 popq %rbp
0000000100002427 retq
0000000100002428 nopl (%rax,%rax)
_array_byte_index:
0000000100002430 pushq %rbp
0000000100002431 movq %rsp, %rbp
0000000100002434 subq $0x30, %rsp
0000000100002438 movb %dil, %al
000000010000243b leaq 0x10(%rbp), %rcx
000000010000243f movb %al, -0x5(%rbp)
0000000100002442 movl $0x0, -0xc(%rbp)
0000000100002449 movq %rcx, -0x18(%rbp)
000000010000244d movl -0xc(%rbp), %eax
0000000100002450 movq -0x18(%rbp), %rcx
0000000100002454 cmpl 0x8(%rcx), %eax
0000000100002457 jge 0x1000024af
000000010000245d movl -0xc(%rbp), %edi
0000000100002460 movq -0x18(%rbp), %rax
0000000100002464 movq (%rax), %rcx
0000000100002467 movq %rcx, (%rsp)
000000010000246b movq 0x8(%rax), %rcx
000000010000246f movq %rcx, 0x8(%rsp)
0000000100002474 movq 0x10(%rax), %rcx
0000000100002478 movq %rcx, 0x10(%rsp)
000000010000247d callq _array_get
0000000100002482 movzbl (%rax), %edi
0000000100002485 movzbl -0x5(%rbp), %edx
0000000100002489 cmpl %edx, %edi
000000010000248b jne 0x10000249c
0000000100002491 movl -0xc(%rbp), %eax
0000000100002494 movl %eax, -0x4(%rbp)
0000000100002497 jmp 0x1000024b6
000000010000249c jmp 0x1000024a1
00000001000024a1 movl -0xc(%rbp), %eax
00000001000024a4 addl $0x1, %eax
00000001000024a7 movl %eax, -0xc(%rbp)
00000001000024aa jmp 0x10000244d
00000001000024af movl $0xffffffff, -0x4(%rbp)
00000001000024b6 movl -0x4(%rbp), %eax
00000001000024b9 addq $0x30, %rsp
00000001000024bd popq %rbp
00000001000024be retq
00000001000024bf nop
_array_char_index:
00000001000024c0 pushq %rbp
00000001000024c1 movq %rsp, %rbp
00000001000024c4 subq $0x30, %rsp
00000001000024c8 movb %dil, %al
00000001000024cb leaq 0x10(%rbp), %rcx
00000001000024cf movb %al, -0x5(%rbp)
00000001000024d2 movl $0x0, -0xc(%rbp)
00000001000024d9 movq %rcx, -0x18(%rbp)
00000001000024dd movl -0xc(%rbp), %eax
00000001000024e0 movq -0x18(%rbp), %rcx
00000001000024e4 cmpl 0x8(%rcx), %eax
00000001000024e7 jge 0x10000253f
00000001000024ed movl -0xc(%rbp), %edi
00000001000024f0 movq -0x18(%rbp), %rax
00000001000024f4 movq (%rax), %rcx
00000001000024f7 movq %rcx, (%rsp)
00000001000024fb movq 0x8(%rax), %rcx
00000001000024ff movq %rcx, 0x8(%rsp)
0000000100002504 movq 0x10(%rax), %rcx
0000000100002508 movq %rcx, 0x10(%rsp)
000000010000250d callq _array_get
0000000100002512 movsbl (%rax), %edi
0000000100002515 movsbl -0x5(%rbp), %edx
0000000100002519 cmpl %edx, %edi
000000010000251b jne 0x10000252c
0000000100002521 movl -0xc(%rbp), %eax
0000000100002524 movl %eax, -0x4(%rbp)
0000000100002527 jmp 0x100002546
000000010000252c jmp 0x100002531
0000000100002531 movl -0xc(%rbp), %eax
0000000100002534 addl $0x1, %eax
0000000100002537 movl %eax, -0xc(%rbp)
000000010000253a jmp 0x1000024dd
000000010000253f movl $0xffffffff, -0x4(%rbp)
0000000100002546 movl -0x4(%rbp), %eax
0000000100002549 addq $0x30, %rsp
000000010000254d popq %rbp
000000010000254e retq
000000010000254f nop
_array_string_filter2:
0000000100002550 pushq %rbp
0000000100002551 movq %rsp, %rbp
0000000100002554 subq $0x70, %rsp
0000000100002558 movq %rdi, %rax
000000010000255b leaq 0x10(%rbp), %rcx
000000010000255f xorl %edx, %edx
0000000100002561 movl $0x10, %r8d
0000000100002567 leaq -0x18(%rbp), %r9
000000010000256b movq 0xaac6(%rip), %r10 ## literal pool symbol address: ___stack_chk_guard
0000000100002572 movq (%r10), %r10
0000000100002575 movq %r10, -0x8(%rbp)
0000000100002579 movq %rsi, -0x20(%rbp)
000000010000257d movq $0x0, -0x18(%rbp)
0000000100002585 movl $0x0, -0x10(%rbp)
000000010000258c movq %rdi, -0x40(%rbp)
0000000100002590 movl %edx, %esi
0000000100002592 movq %rcx, -0x48(%rbp)
0000000100002596 movl %r8d, %ecx
0000000100002599 movq %r9, %r8
000000010000259c movq %rax, -0x50(%rbp)
00000001000025a0 callq _new_array_from_c_array
00000001000025a5 movl $0x0, -0x24(%rbp)
00000001000025ac movl -0x24(%rbp), %eax
00000001000025af movq -0x48(%rbp), %rcx
00000001000025b3 cmpl 0x8(%rcx), %eax
00000001000025b6 jge 0x100002679
00000001000025bc movq -0x20(%rbp), %rax
00000001000025c0 movl -0x24(%rbp), %edi
00000001000025c3 movq -0x48(%rbp), %rcx
00000001000025c7 movq (%rcx), %rdx
00000001000025ca movq %rdx, (%rsp)
00000001000025ce movq 0x8(%rcx), %rdx
00000001000025d2 movq %rdx, 0x8(%rsp)
00000001000025d7 movq 0x10(%rcx), %rdx
00000001000025db movq %rdx, 0x10(%rsp)
00000001000025e0 movq %rax, -0x58(%rbp)
00000001000025e4 callq _array_get
00000001000025e9 movl -0x24(%rbp), %edx
00000001000025ec movq (%rax), %rdi
00000001000025ef movl 0x8(%rax), %esi
00000001000025f2 movq -0x48(%rbp), %rax
00000001000025f6 movq (%rax), %rcx
00000001000025f9 movq %rcx, (%rsp)
00000001000025fd movq 0x8(%rax), %rcx
0000000100002601 movq %rcx, 0x8(%rsp)
0000000100002606 movq 0x10(%rax), %rcx
000000010000260a movq %rcx, 0x10(%rsp)
000000010000260f movq -0x58(%rbp), %rcx
0000000100002613 callq *%rcx
0000000100002615 testb $0x1, %al
0000000100002617 jne 0x100002622
000000010000261d jmp 0x100002666
0000000100002622 movl -0x24(%rbp), %edi
0000000100002625 movq -0x48(%rbp), %rax
0000000100002629 movq (%rax), %rcx
000000010000262c movq %rcx, (%rsp)
0000000100002630 movq 0x8(%rax), %rcx
0000000100002634 movq %rcx, 0x8(%rsp)
0000000100002639 movq 0x10(%rax), %rcx
000000010000263d movq %rcx, 0x10(%rsp)
0000000100002642 callq _array_get
0000000100002647 leaq -0x38(%rbp), %rcx
000000010000264b movq (%rax), %rdx
000000010000264e movq %rdx, -0x38(%rbp)
0000000100002652 movq 0x8(%rax), %rax
0000000100002656 movq %rax, -0x30(%rbp)
000000010000265a movq -0x40(%rbp), %rdi
000000010000265e movq %rcx, %rsi
0000000100002661 callq _array_push
0000000100002666 jmp 0x10000266b
000000010000266b movl -0x24(%rbp), %eax
000000010000266e addl $0x1, %eax
0000000100002671 movl %eax, -0x24(%rbp)
0000000100002674 jmp 0x1000025ac
0000000100002679 movq 0xa9b8(%rip), %rax ## literal pool symbol address: ___stack_chk_guard
0000000100002680 movq (%rax), %rax
0000000100002683 movq -0x8(%rbp), %rcx
0000000100002687 cmpq %rcx, %rax
000000010000268a jne 0x10000269a
0000000100002690 movq -0x50(%rbp), %rax
0000000100002694 addq $0x70, %rsp
0000000100002698 popq %rbp
0000000100002699 retq
000000010000269a callq 0x10000a5b0 ## symbol stub for: ___stack_chk_fail
000000010000269f ud2
00000001000026a1 nopw %cs:(%rax,%rax)
_array_int_filter2:
00000001000026b0 pushq %rbp
00000001000026b1 movq %rsp, %rbp
00000001000026b4 subq $0x50, %rsp
00000001000026b8 movq %rdi, %rax
00000001000026bb leaq 0x10(%rbp), %rcx
00000001000026bf xorl %edx, %edx
00000001000026c1 movl $0x4, %r8d
00000001000026c7 leaq -0xc(%rbp), %r9
00000001000026cb movq %rsi, -0x8(%rbp)
00000001000026cf movl $0x0, -0xc(%rbp)
00000001000026d6 movq %rdi, -0x20(%rbp)
00000001000026da movl %edx, %esi
00000001000026dc movq %rcx, -0x28(%rbp)
00000001000026e0 movl %r8d, %ecx
00000001000026e3 movq %r9, %r8
00000001000026e6 movq %rax, -0x30(%rbp)
00000001000026ea callq _new_array_from_c_array
00000001000026ef movl $0x0, -0x10(%rbp)
00000001000026f6 movl -0x10(%rbp), %eax
00000001000026f9 movq -0x28(%rbp), %rcx
00000001000026fd cmpl 0x8(%rcx), %eax
0000000100002700 jge 0x1000027b5
0000000100002706 movq -0x8(%rbp), %rax
000000010000270a movl -0x10(%rbp), %edi
000000010000270d movq -0x28(%rbp), %rcx
0000000100002711 movq (%rcx), %rdx
0000000100002714 movq %rdx, (%rsp)
0000000100002718 movq 0x8(%rcx), %rdx
000000010000271c movq %rdx, 0x8(%rsp)
0000000100002721 movq 0x10(%rcx), %rdx
0000000100002725 movq %rdx, 0x10(%rsp)
000000010000272a movq %rax, -0x38(%rbp)
000000010000272e callq _array_get
0000000100002733 movl (%rax), %edi
0000000100002735 movl -0x10(%rbp), %esi
0000000100002738 movq -0x28(%rbp), %rax
000000010000273c movq (%rax), %rcx
000000010000273f movq %rcx, (%rsp)
0000000100002743 movq 0x8(%rax), %rcx
0000000100002747 movq %rcx, 0x8(%rsp)
000000010000274c movq 0x10(%rax), %rcx
0000000100002750 movq %rcx, 0x10(%rsp)
0000000100002755 movq -0x38(%rbp), %rcx
0000000100002759 callq *%rcx
000000010000275b testb $0x1, %al
000000010000275d jne 0x100002768
0000000100002763 jmp 0x1000027a2
0000000100002768 movl -0x10(%rbp), %edi
000000010000276b movq -0x28(%rbp), %rax
000000010000276f movq (%rax), %rcx
0000000100002772 movq %rcx, (%rsp)
0000000100002776 movq 0x8(%rax), %rcx
000000010000277a movq %rcx, 0x8(%rsp)
000000010000277f movq 0x10(%rax), %rcx
0000000100002783 movq %rcx, 0x10(%rsp)
0000000100002788 callq _array_get
000000010000278d leaq -0x14(%rbp), %rcx
0000000100002791 movl (%rax), %edi
0000000100002793 movl %edi, -0x14(%rbp)
0000000100002796 movq -0x20(%rbp), %rdi
000000010000279a movq %rcx, %rsi
000000010000279d callq _array_push
00000001000027a2 jmp 0x1000027a7
00000001000027a7 movl -0x10(%rbp), %eax
00000001000027aa addl $0x1, %eax
00000001000027ad movl %eax, -0x10(%rbp)
00000001000027b0 jmp 0x1000026f6
00000001000027b5 movq -0x30(%rbp), %rax
00000001000027b9 addq $0x50, %rsp
00000001000027bd popq %rbp
00000001000027be retq
00000001000027bf nop
_array_int_reduce:
00000001000027c0 pushq %rbp
00000001000027c1 movq %rsp, %rbp
00000001000027c4 subq $0x50, %rsp
00000001000027c8 leaq 0x10(%rbp), %rax
00000001000027cc movq %rdi, -0x8(%rbp)
00000001000027d0 movl %esi, -0xc(%rbp)
00000001000027d3 movl $0x0, -0x10(%rbp)
00000001000027da movl -0xc(%rbp), %esi
00000001000027dd movl %esi, -0x10(%rbp)
00000001000027e0 movl $0x0, -0x14(%rbp)
00000001000027e7 movq %rax, -0x20(%rbp)
00000001000027eb movl -0x14(%rbp), %eax
00000001000027ee movq -0x20(%rbp), %rcx
00000001000027f2 cmpl 0x8(%rcx), %eax
00000001000027f5 jge 0x10000284c
00000001000027fb movq -0x8(%rbp), %rax
00000001000027ff movl -0x10(%rbp), %edi
0000000100002802 movl -0x14(%rbp), %ecx
0000000100002805 movq -0x20(%rbp), %rdx
0000000100002809 movq (%rdx), %rsi
000000010000280c movq %rsi, (%rsp)
0000000100002810 movq 0x8(%rdx), %rsi
0000000100002814 movq %rsi, 0x8(%rsp)
0000000100002819 movq 0x10(%rdx), %rsi
000000010000281d movq %rsi, 0x10(%rsp)
0000000100002822 movl %edi, -0x24(%rbp)
0000000100002825 movl %ecx, %edi
0000000100002827 movq %rax, -0x30(%rbp)
000000010000282b callq _array_get
0000000100002830 movl (%rax), %esi
0000000100002832 movl -0x24(%rbp), %edi
0000000100002835 movq -0x30(%rbp), %rax
0000000100002839 callq *%rax
000000010000283b movl %eax, -0x10(%rbp)
000000010000283e movl -0x14(%rbp), %eax
0000000100002841 addl $0x1, %eax
0000000100002844 movl %eax, -0x14(%rbp)
0000000100002847 jmp 0x1000027eb
000000010000284c movl -0x10(%rbp), %eax
000000010000284f addq $0x50, %rsp
0000000100002853 popq %rbp
0000000100002854 retq
0000000100002855 nopw %cs:(%rax,%rax)
_builtin__init:
0000000100002860 pushq %rbp
0000000100002861 movq %rsp, %rbp
0000000100002864 popq %rbp
0000000100002865 retq
0000000100002866 nopw %cs:(%rax,%rax)
_v_exit:
0000000100002870 pushq %rbp
0000000100002871 movq %rsp, %rbp
0000000100002874 subq $0x10, %rsp
0000000100002878 movl %edi, -0x4(%rbp)
000000010000287b movl -0x4(%rbp), %edi
000000010000287e callq 0x10000a5da ## symbol stub for: _exit
0000000100002883 nopw %cs:(%rax,%rax)
_isnil:
0000000100002890 pushq %rbp
0000000100002891 movq %rsp, %rbp
0000000100002894 movq %rdi, -0x8(%rbp)
0000000100002898 cmpq $0x0, -0x8(%rbp)
000000010000289d sete %al
00000001000028a0 andb $0x1, %al
00000001000028a2 movzbl %al, %eax
00000001000028a5 popq %rbp
00000001000028a6 retq
00000001000028a7 nopw (%rax,%rax)
_on_panic:
00000001000028b0 pushq %rbp
00000001000028b1 movq %rsp, %rbp
00000001000028b4 movq %rdi, -0x8(%rbp)
00000001000028b8 popq %rbp
00000001000028b9 retq
00000001000028ba nopw (%rax,%rax)
_print_backtrace_skipping_top_frames:
00000001000028c0 pushq %rbp
00000001000028c1 movq %rsp, %rbp
00000001000028c4 subq $0x340, %rsp
00000001000028cb movl $0x64, %esi
00000001000028d0 leaq -0x330(%rbp), %rax
00000001000028d7 movq 0xa75a(%rip), %rcx ## literal pool symbol address: ___stack_chk_guard
00000001000028de movq (%rcx), %rcx
00000001000028e1 movq %rcx, -0x8(%rbp)
00000001000028e5 movl %edi, -0x334(%rbp)
00000001000028eb movq %rax, %rdi
00000001000028ee callq 0x10000a5c8 ## symbol stub for: _backtrace
00000001000028f3 movl $0x1, %edx
00000001000028f8 leaq -0x330(%rbp), %rcx
00000001000028ff movl %eax, -0x338(%rbp)
0000000100002905 movslq -0x334(%rbp), %rdi
000000010000290c shlq $0x3, %rdi
0000000100002910 addq %rdi, %rcx
0000000100002913 movl -0x338(%rbp), %eax
0000000100002919 subl -0x334(%rbp), %eax
000000010000291f movq %rcx, %rdi
0000000100002922 movl %eax, %esi
0000000100002924 callq 0x10000a5ce ## symbol stub for: _backtrace_symbols_fd
0000000100002929 movq 0xa708(%rip), %rcx ## literal pool symbol address: ___stack_chk_guard
0000000100002930 movq (%rcx), %rcx
0000000100002933 movq -0x8(%rbp), %rdi
0000000100002937 cmpq %rdi, %rcx
000000010000293a jne 0x100002949
0000000100002940 addq $0x340, %rsp
0000000100002947 popq %rbp
0000000100002948 retq
0000000100002949 callq 0x10000a5b0 ## symbol stub for: ___stack_chk_fail
000000010000294e ud2
_print_backtrace:
0000000100002950 pushq %rbp
0000000100002951 movq %rsp, %rbp
0000000100002954 movl $0x2, %edi
0000000100002959 callq _print_backtrace_skipping_top_frames
000000010000295e popq %rbp
000000010000295f retq
_panic_debug:
0000000100002960 pushq %rbp
0000000100002961 movq %rsp, %rbp
0000000100002964 subq $0xa0, %rsp
000000010000296b leaq 0x20(%rbp), %rax
000000010000296f leaq 0x10(%rbp), %r9
0000000100002973 movq %rsi, -0x10(%rbp)
0000000100002977 movl %edx, -0x8(%rbp)
000000010000297a movq %rcx, -0x20(%rbp)
000000010000297e movl %r8d, -0x18(%rbp)
0000000100002982 movl %edi, -0x24(%rbp)
0000000100002985 leaq 0x7f0b(%rip), %rdi ## literal pool for: "================ V panic ================"
000000010000298c movq %r9, -0x80(%rbp)
0000000100002990 movq %rax, -0x88(%rbp)
0000000100002997 callq _tos3
000000010000299c movq %rax, -0x38(%rbp)
00000001000029a0 movl %edx, -0x30(%rbp)
00000001000029a3 movq -0x38(%rbp), %rdi
00000001000029a7 movl -0x30(%rbp), %esi
00000001000029aa callq _println
00000001000029af movl -0x18(%rbp), %esi
00000001000029b2 movq -0x20(%rbp), %rdx
00000001000029b6 leaq 0x7f04(%rip), %rdi ## literal pool for: " module: %.*s\n"
00000001000029bd xorl %r8d, %r8d
00000001000029c0 movb %r8b, %r10b
00000001000029c3 movb %r10b, %al
00000001000029c6 movb %r10b, -0x89(%rbp)
00000001000029cd callq 0x10000a60a ## symbol stub for: _printf
00000001000029d2 movq -0x80(%rbp), %rcx
00000001000029d6 movl 0x8(%rcx), %esi
00000001000029d9 movq (%rcx), %rdx
00000001000029dc leaq 0x7eef(%rip), %rdi ## literal pool for: " function: %.*s()\n"
00000001000029e3 movb -0x89(%rbp), %r10b
00000001000029ea movl %eax, -0x90(%rbp)
00000001000029f0 movb %r10b, %al
00000001000029f3 callq 0x10000a60a ## symbol stub for: _printf
00000001000029f8 movl -0x8(%rbp), %esi
00000001000029fb movq -0x10(%rbp), %rdx
00000001000029ff leaq 0x7edf(%rip), %rdi ## literal pool for: " file: %.*s\n"
0000000100002a06 movb -0x89(%rbp), %r10b
0000000100002a0d movl %eax, -0x94(%rbp)
0000000100002a13 movb %r10b, %al
0000000100002a16 callq 0x10000a60a ## symbol stub for: _printf
0000000100002a1b leaq 0x7ed4(%rip), %rdi ## literal pool for: " line: "
0000000100002a22 movl %eax, -0x98(%rbp)
0000000100002a28 callq _tos3
0000000100002a2d movq %rax, -0x58(%rbp)
0000000100002a31 movl %edx, -0x50(%rbp)
0000000100002a34 movl -0x24(%rbp), %edi
0000000100002a37 callq _int_str
0000000100002a3c movq %rax, -0x68(%rbp)
0000000100002a40 movl %edx, -0x60(%rbp)
0000000100002a43 movq -0x58(%rbp), %rdi
0000000100002a47 movl -0x50(%rbp), %esi
0000000100002a4a movq -0x68(%rbp), %rdx
0000000100002a4e movl -0x60(%rbp), %ecx
0000000100002a51 callq _string_add
0000000100002a56 movq %rax, -0x48(%rbp)
0000000100002a5a movl %edx, -0x40(%rbp)
0000000100002a5d movq -0x48(%rbp), %rdi
0000000100002a61 movl -0x40(%rbp), %esi
0000000100002a64 callq _println
0000000100002a69 movq -0x88(%rbp), %rax
0000000100002a70 movl 0x8(%rax), %esi
0000000100002a73 movq (%rax), %rdx
0000000100002a76 leaq 0x7e85(%rip), %rdi ## literal pool for: " message: %.*s\n"
0000000100002a7d movb -0x89(%rbp), %al
0000000100002a83 callq 0x10000a60a ## symbol stub for: _printf
0000000100002a88 leaq 0x7e84(%rip), %rdi ## literal pool for: "========================================="
0000000100002a8f movl %eax, -0x9c(%rbp)
0000000100002a95 callq _tos3
0000000100002a9a movq %rax, -0x78(%rbp)
0000000100002a9e movl %edx, -0x70(%rbp)
0000000100002aa1 movq -0x78(%rbp), %rdi
0000000100002aa5 movl -0x70(%rbp), %esi
0000000100002aa8 callq _println
0000000100002aad movl $0x1, %ecx
0000000100002ab2 movl %ecx, %edi
0000000100002ab4 movl %ecx, -0xa0(%rbp)
0000000100002aba callq _print_backtrace_skipping_top_frames
0000000100002abf movl -0xa0(%rbp), %edi
0000000100002ac5 callq 0x10000a5da ## symbol stub for: _exit
0000000100002aca nopw (%rax,%rax)
_println:
0000000100002ad0 pushq %rbp
0000000100002ad1 movq %rsp, %rbp
0000000100002ad4 subq $0x30, %rsp
0000000100002ad8 movq %rdi, -0x10(%rbp)
0000000100002adc movl %esi, -0x8(%rbp)
0000000100002adf movq -0x10(%rbp), %rdi
0000000100002ae3 callq _isnil
0000000100002ae8 testb $0x1, %al
0000000100002aea jne 0x100002af5
0000000100002af0 jmp 0x100002b14
0000000100002af5 leaq 0x7e50(%rip), %rdi ## literal pool for: "println(NIL)"
0000000100002afc callq _tos3
0000000100002b01 movq %rax, -0x20(%rbp)
0000000100002b05 movl %edx, -0x18(%rbp)
0000000100002b08 movq -0x20(%rbp), %rdi
0000000100002b0c movl -0x18(%rbp), %esi
0000000100002b0f callq _v_panic
0000000100002b14 leaq 0x7e3e(%rip), %rdi ## literal pool for: "%.*s\n"
0000000100002b1b movl -0x8(%rbp), %esi
0000000100002b1e movq -0x10(%rbp), %rdx
0000000100002b22 movb $0x0, %al
0000000100002b24 callq 0x10000a60a ## symbol stub for: _printf
0000000100002b29 movl %eax, -0x24(%rbp)
0000000100002b2c addq $0x30, %rsp
0000000100002b30 popq %rbp
0000000100002b31 retq
0000000100002b32 nopw %cs:(%rax,%rax)
_string_add:
0000000100002b40 pushq %rbp
0000000100002b41 movq %rsp, %rbp
0000000100002b44 subq $0x40, %rsp
0000000100002b48 movq %rdi, -0x20(%rbp)
0000000100002b4c movl %esi, -0x18(%rbp)
0000000100002b4f movq %rdx, -0x30(%rbp)
0000000100002b53 movl %ecx, -0x28(%rbp)
0000000100002b56 movl -0x28(%rbp), %ecx
0000000100002b59 addl -0x18(%rbp), %ecx
0000000100002b5c movl %ecx, -0x34(%rbp)
0000000100002b5f movl -0x34(%rbp), %ecx
0000000100002b62 addl $0x1, %ecx
0000000100002b65 movl %ecx, %edi
0000000100002b67 callq _v_malloc
0000000100002b6c movq %rax, -0x10(%rbp)
0000000100002b70 movl -0x34(%rbp), %ecx
0000000100002b73 movl %ecx, -0x8(%rbp)
0000000100002b76 movl $0x0, -0x38(%rbp)
0000000100002b7d movl -0x38(%rbp), %eax
0000000100002b80 cmpl -0x18(%rbp), %eax
0000000100002b83 jge 0x100002bad
0000000100002b89 movq -0x20(%rbp), %rax
0000000100002b8d movslq -0x38(%rbp), %rcx
0000000100002b91 movb (%rax,%rcx), %dl
0000000100002b94 movq -0x10(%rbp), %rax
0000000100002b98 movslq -0x38(%rbp), %rcx
0000000100002b9c movb %dl, (%rax,%rcx)
0000000100002b9f movl -0x38(%rbp), %eax
0000000100002ba2 addl $0x1, %eax
0000000100002ba5 movl %eax, -0x38(%rbp)
0000000100002ba8 jmp 0x100002b7d
0000000100002bad movl $0x0, -0x3c(%rbp)
0000000100002bb4 movl -0x3c(%rbp), %eax
0000000100002bb7 cmpl -0x28(%rbp), %eax
0000000100002bba jge 0x100002be9
0000000100002bc0 movq -0x30(%rbp), %rax
0000000100002bc4 movslq -0x3c(%rbp), %rcx
0000000100002bc8 movb (%rax,%rcx), %dl
0000000100002bcb movq -0x10(%rbp), %rax
0000000100002bcf movl -0x18(%rbp), %esi
0000000100002bd2 addl -0x3c(%rbp), %esi
0000000100002bd5 movslq %esi, %rcx
0000000100002bd8 movb %dl, (%rax,%rcx)
0000000100002bdb movl -0x3c(%rbp), %eax
0000000100002bde addl $0x1, %eax
0000000100002be1 movl %eax, -0x3c(%rbp)
0000000100002be4 jmp 0x100002bb4
0000000100002be9 movq -0x10(%rbp), %rax
0000000100002bed movslq -0x34(%rbp), %rcx
0000000100002bf1 movb $0x0, (%rax,%rcx)
0000000100002bf5 movq -0x10(%rbp), %rax
0000000100002bf9 movl -0x8(%rbp), %edx
0000000100002bfc addq $0x40, %rsp
0000000100002c00 popq %rbp
0000000100002c01 retq
0000000100002c02 nopw %cs:(%rax,%rax)
_int_str:
0000000100002c10 pushq %rbp
0000000100002c11 movq %rsp, %rbp
0000000100002c14 subq $0x40, %rsp
0000000100002c18 movl %edi, -0x14(%rbp)
0000000100002c1b movl -0x14(%rbp), %edi
0000000100002c1e movl %edi, -0x18(%rbp)
0000000100002c21 cmpl $0x0, -0x18(%rbp)
0000000100002c25 jne 0x100002c43
0000000100002c2b leaq 0x7d6e(%rip), %rdi ## literal pool for: "0"
0000000100002c32 callq _tos3
0000000100002c37 movq %rax, -0x10(%rbp)
0000000100002c3b movl %edx, -0x8(%rbp)
0000000100002c3e jmp 0x100002d24
0000000100002c43 movl $0x10, -0x1c(%rbp)
0000000100002c4a movl -0x1c(%rbp), %edi
0000000100002c4d callq _v_calloc
0000000100002c52 movq %rax, -0x28(%rbp)
0000000100002c56 movl $0x0, -0x2c(%rbp)
0000000100002c5d movb $0x0, -0x2d(%rbp)
0000000100002c61 cmpl $0x0, -0x18(%rbp)
0000000100002c65 jge 0x100002c77
0000000100002c6b xorl %eax, %eax
0000000100002c6d subl -0x18(%rbp), %eax
0000000100002c70 movl %eax, -0x18(%rbp)
0000000100002c73 movb $0x1, -0x2d(%rbp)
0000000100002c77 jmp 0x100002c7c
0000000100002c7c cmpl $0x0, -0x18(%rbp)
0000000100002c80 jle 0x100002cd2
0000000100002c86 movl $0xa, %eax
0000000100002c8b movl -0x18(%rbp), %ecx
0000000100002c8e movl %eax, -0x38(%rbp)
0000000100002c91 movl %ecx, %eax
0000000100002c93 cltd
0000000100002c94 movl -0x38(%rbp), %ecx
0000000100002c97 idivl %ecx
0000000100002c99 movl %edx, -0x34(%rbp)
0000000100002c9c movl -0x34(%rbp), %edx
0000000100002c9f addl $0x30, %edx
0000000100002ca2 movb %dl, %sil
0000000100002ca5 movq -0x28(%rbp), %rdi
0000000100002ca9 movl -0x1c(%rbp), %edx
0000000100002cac subl -0x2c(%rbp), %edx
0000000100002caf subl $0x1, %edx
0000000100002cb2 movslq %edx, %r8
0000000100002cb5 movb %sil, (%rdi,%r8)
0000000100002cb9 movl -0x2c(%rbp), %edx
0000000100002cbc addl $0x1, %edx
0000000100002cbf movl %edx, -0x2c(%rbp)
0000000100002cc2 movl -0x18(%rbp), %edx
0000000100002cc5 movl %edx, %eax
0000000100002cc7 cltd
0000000100002cc8 idivl %ecx
0000000100002cca movl %eax, -0x18(%rbp)
0000000100002ccd jmp 0x100002c7c
0000000100002cd2 testb $0x1, -0x2d(%rbp)
0000000100002cd6 je 0x100002cf9
0000000100002cdc movq -0x28(%rbp), %rax
0000000100002ce0 movl -0x1c(%rbp), %ecx
0000000100002ce3 subl -0x2c(%rbp), %ecx
0000000100002ce6 subl $0x1, %ecx
0000000100002ce9 movslq %ecx, %rdx
0000000100002cec movb $0x2d, (%rax,%rdx)
0000000100002cf0 movl -0x2c(%rbp), %ecx
0000000100002cf3 addl $0x1, %ecx
0000000100002cf6 movl %ecx, -0x2c(%rbp)
0000000100002cf9 xorl %eax, %eax
0000000100002cfb movl %eax, %ecx
0000000100002cfd movq -0x28(%rbp), %rdx
0000000100002d01 movslq -0x1c(%rbp), %rsi
0000000100002d05 addq %rsi, %rdx
0000000100002d08 movslq -0x2c(%rbp), %rsi
0000000100002d0c subq %rsi, %rcx
0000000100002d0f addq %rcx, %rdx
0000000100002d12 movl -0x2c(%rbp), %esi
0000000100002d15 movq %rdx, %rdi
0000000100002d18 callq _tos
0000000100002d1d movq %rax, -0x10(%rbp)
0000000100002d21 movl %edx, -0x8(%rbp)
0000000100002d24 movq -0x10(%rbp), %rax
0000000100002d28 movl -0x8(%rbp), %edx
0000000100002d2b addq $0x40, %rsp
0000000100002d2f popq %rbp
0000000100002d30 retq
0000000100002d31 nopw %cs:(%rax,%rax)
_eprintln:
0000000100002d40 pushq %rbp
0000000100002d41 movq %rsp, %rbp
0000000100002d44 subq $0x30, %rsp
0000000100002d48 movq %rdi, -0x10(%rbp)
0000000100002d4c movl %esi, -0x8(%rbp)
0000000100002d4f movq -0x10(%rbp), %rdi
0000000100002d53 callq _isnil
0000000100002d58 testb $0x1, %al
0000000100002d5a jne 0x100002d65
0000000100002d60 jmp 0x100002d84
0000000100002d65 leaq 0x7bf3(%rip), %rdi ## literal pool for: "eprintln(NIL)"
0000000100002d6c callq _tos3
0000000100002d71 movq %rax, -0x20(%rbp)
0000000100002d75 movl %edx, -0x18(%rbp)
0000000100002d78 movq -0x20(%rbp), %rdi
0000000100002d7c movl -0x18(%rbp), %esi
0000000100002d7f callq _v_panic
0000000100002d84 leaq 0x7bce(%rip), %rsi ## literal pool for: "%.*s\n"
0000000100002d8b movq 0xa2ae(%rip), %rax ## literal pool symbol address: ___stderrp
0000000100002d92 movq (%rax), %rdi
0000000100002d95 movl -0x8(%rbp), %edx
0000000100002d98 movq -0x10(%rbp), %rcx
0000000100002d9c movb $0x0, %al
0000000100002d9e callq 0x10000a5e6 ## symbol stub for: _fprintf
0000000100002da3 movq 0xa296(%rip), %rcx ## literal pool symbol address: ___stderrp
0000000100002daa movq (%rcx), %rdi
0000000100002dad movl %eax, -0x24(%rbp)
0000000100002db0 callq 0x10000a5e0 ## symbol stub for: _fflush
0000000100002db5 movl %eax, -0x28(%rbp)
0000000100002db8 addq $0x30, %rsp
0000000100002dbc popq %rbp
0000000100002dbd retq
0000000100002dbe nop
_print:
0000000100002dc0 pushq %rbp
0000000100002dc1 movq %rsp, %rbp
0000000100002dc4 subq $0x20, %rsp
0000000100002dc8 leaq 0x7b9e(%rip), %rax ## literal pool for: "%.*s"
0000000100002dcf movq %rdi, -0x10(%rbp)
0000000100002dd3 movl %esi, -0x8(%rbp)
0000000100002dd6 movl -0x8(%rbp), %esi
0000000100002dd9 movq -0x10(%rbp), %rdx
0000000100002ddd movq %rax, %rdi
0000000100002de0 movb $0x0, %al
0000000100002de2 callq 0x10000a60a ## symbol stub for: _printf
0000000100002de7 movl %eax, -0x14(%rbp)
0000000100002dea addq $0x20, %rsp
0000000100002dee popq %rbp
0000000100002def retq
_v_free:
0000000100002df0 pushq %rbp
0000000100002df1 movq %rsp, %rbp
0000000100002df4 subq $0x10, %rsp
0000000100002df8 movq %rdi, -0x8(%rbp)
0000000100002dfc movq -0x8(%rbp), %rdi
0000000100002e00 callq 0x10000a5ec ## symbol stub for: _free
0000000100002e05 addq $0x10, %rsp
0000000100002e09 popq %rbp
0000000100002e0a retq
0000000100002e0b nopl (%rax,%rax)
_memdup:
0000000100002e10 pushq %rbp
0000000100002e11 movq %rsp, %rbp
0000000100002e14 subq $0x20, %rsp
0000000100002e18 movq %rdi, -0x8(%rbp)
0000000100002e1c movl %esi, -0xc(%rbp)
0000000100002e1f movl -0xc(%rbp), %edi
0000000100002e22 callq _v_malloc
0000000100002e27 movq $-0x1, %rcx
0000000100002e2e movq %rax, -0x18(%rbp)
0000000100002e32 movq -0x18(%rbp), %rdi
0000000100002e36 movq -0x8(%rbp), %rsi
0000000100002e3a movslq -0xc(%rbp), %rdx
0000000100002e3e callq 0x10000a598 ## symbol stub for: ___memcpy_chk
0000000100002e43 addq $0x20, %rsp
0000000100002e47 popq %rbp
0000000100002e48 retq
0000000100002e49 nopl (%rax)
_v_ptr_free:
0000000100002e50 pushq %rbp
0000000100002e51 movq %rsp, %rbp
0000000100002e54 subq $0x10, %rsp
0000000100002e58 movq %rdi, -0x8(%rbp)
0000000100002e5c movq -0x8(%rbp), %rdi
0000000100002e60 callq 0x10000a5ec ## symbol stub for: _free
0000000100002e65 addq $0x10, %rsp
0000000100002e69 popq %rbp
0000000100002e6a retq
0000000100002e6b nopl (%rax,%rax)
_is_atty:
0000000100002e70 pushq %rbp
0000000100002e71 movq %rsp, %rbp
0000000100002e74 subq $0x10, %rsp
0000000100002e78 movl %edi, -0x4(%rbp)
0000000100002e7b movl -0x4(%rbp), %edi
0000000100002e7e callq 0x10000a5f8 ## symbol stub for: _isatty
0000000100002e83 cmpl $0x0, %eax
0000000100002e86 setne %cl
0000000100002e89 andb $0x1, %cl
0000000100002e8c movzbl %cl, %eax
0000000100002e8f addq $0x10, %rsp
0000000100002e93 popq %rbp
0000000100002e94 retq
0000000100002e95 nopw %cs:(%rax,%rax)
_f64_str:
0000000100002ea0 pushq %rbp
0000000100002ea1 movq %rsp, %rbp
0000000100002ea4 subq $0x30, %rsp
0000000100002ea8 movsd %xmm0, -0x18(%rbp)
0000000100002ead movl $0x29, %edi
0000000100002eb2 callq _v_malloc
0000000100002eb7 movq %rax, -0x20(%rbp)
0000000100002ebb movq -0x20(%rbp), %rdi
0000000100002ebf movsd -0x18(%rbp), %xmm0
0000000100002ec4 leaq 0x7acf(%rip), %rcx ## literal pool for: "%f"
0000000100002ecb xorl %esi, %esi
0000000100002ecd movq $-0x1, %rdx
0000000100002ed4 movb $0x1, %al
0000000100002ed6 callq 0x10000a5aa ## symbol stub for: ___sprintf_chk
0000000100002edb movq -0x20(%rbp), %rcx
0000000100002edf movq %rcx, %rdi
0000000100002ee2 movl %eax, -0x24(%rbp)
0000000100002ee5 movq %rcx, -0x30(%rbp)
0000000100002ee9 callq _vstrlen
0000000100002eee movq -0x30(%rbp), %rdi
0000000100002ef2 movl %eax, %esi
0000000100002ef4 callq _tos
0000000100002ef9 movq %rax, -0x10(%rbp)
0000000100002efd movl %edx, -0x8(%rbp)
0000000100002f00 movq -0x10(%rbp), %rax
0000000100002f04 movl -0x8(%rbp), %edx
0000000100002f07 addq $0x30, %rsp
0000000100002f0b popq %rbp
0000000100002f0c retq
0000000100002f0d nopl (%rax)
_tos:
0000000100002f10 pushq %rbp
0000000100002f11 movq %rsp, %rbp
0000000100002f14 subq $0x30, %rsp
0000000100002f18 movq %rdi, -0x18(%rbp)
0000000100002f1c movl %esi, -0x1c(%rbp)
0000000100002f1f cmpq $0x0, -0x18(%rbp)
0000000100002f24 jne 0x100002f49
0000000100002f2a leaq 0x7af7(%rip), %rdi ## literal pool for: "tos(): nil string"
0000000100002f31 callq _tos3
0000000100002f36 movq %rax, -0x30(%rbp)
0000000100002f3a movl %edx, -0x28(%rbp)
0000000100002f3d movq -0x30(%rbp), %rdi
0000000100002f41 movl -0x28(%rbp), %esi
0000000100002f44 callq _v_panic
0000000100002f49 movq -0x18(%rbp), %rax
0000000100002f4d movq %rax, -0x10(%rbp)
0000000100002f51 movl -0x1c(%rbp), %ecx
0000000100002f54 movl %ecx, -0x8(%rbp)
0000000100002f57 movq -0x10(%rbp), %rax
0000000100002f5b movl -0x8(%rbp), %edx
0000000100002f5e addq $0x30, %rsp
0000000100002f62 popq %rbp
0000000100002f63 retq
0000000100002f64 nopw %cs:(%rax,%rax)
_vstrlen:
0000000100002f70 pushq %rbp
0000000100002f71 movq %rsp, %rbp
0000000100002f74 subq $0x10, %rsp
0000000100002f78 movq %rdi, -0x8(%rbp)
0000000100002f7c movq -0x8(%rbp), %rdi
0000000100002f80 callq 0x10000a61c ## symbol stub for: _strlen
0000000100002f85 movl %eax, %ecx
0000000100002f87 movl %ecx, %eax
0000000100002f89 addq $0x10, %rsp
0000000100002f8d popq %rbp
0000000100002f8e retq
0000000100002f8f nop
_f32_str:
0000000100002f90 pushq %rbp
0000000100002f91 movq %rsp, %rbp
0000000100002f94 subq $0x30, %rsp
0000000100002f98 movss %xmm0, -0x14(%rbp)
0000000100002f9d movl $0x29, %edi
0000000100002fa2 callq _v_malloc
0000000100002fa7 movq %rax, -0x20(%rbp)
0000000100002fab movq -0x20(%rbp), %rdi
0000000100002faf movss -0x14(%rbp), %xmm0
0000000100002fb4 cvtss2sd %xmm0, %xmm0
0000000100002fb8 leaq 0x79db(%rip), %rcx ## literal pool for: "%f"
0000000100002fbf xorl %esi, %esi
0000000100002fc1 movq $-0x1, %rdx
0000000100002fc8 movb $0x1, %al
0000000100002fca callq 0x10000a5aa ## symbol stub for: ___sprintf_chk
0000000100002fcf movq -0x20(%rbp), %rcx
0000000100002fd3 movq %rcx, %rdi
0000000100002fd6 movl %eax, -0x24(%rbp)
0000000100002fd9 movq %rcx, -0x30(%rbp)
0000000100002fdd callq _vstrlen
0000000100002fe2 movq -0x30(%rbp), %rdi
0000000100002fe6 movl %eax, %esi
0000000100002fe8 callq _tos
0000000100002fed movq %rax, -0x10(%rbp)
0000000100002ff1 movl %edx, -0x8(%rbp)
0000000100002ff4 movq -0x10(%rbp), %rax
0000000100002ff8 movl -0x8(%rbp), %edx
0000000100002ffb addq $0x30, %rsp
0000000100002fff popq %rbp
0000000100003000 retq
0000000100003001 nopw %cs:(%rax,%rax)
_f32_abs:
0000000100003010 pushq %rbp
0000000100003011 movq %rsp, %rbp
0000000100003014 xorps %xmm1, %xmm1
0000000100003017 movss %xmm0, -0x4(%rbp)
000000010000301c ucomiss -0x4(%rbp), %xmm1
0000000100003020 jbe 0x100003042
0000000100003026 movss -0x4(%rbp), %xmm0
000000010000302b movd %xmm0, %eax
000000010000302f xorl $0x80000000, %eax
0000000100003034 movd %eax, %xmm0
0000000100003038 movss %xmm0, -0x8(%rbp)
000000010000303d jmp 0x10000304c
0000000100003042 movss -0x4(%rbp), %xmm0
0000000100003047 movss %xmm0, -0x8(%rbp)
000000010000304c movss -0x8(%rbp), %xmm0
0000000100003051 popq %rbp
0000000100003052 retq
0000000100003053 nopw %cs:(%rax,%rax)
_f64_abs:
0000000100003060 pushq %rbp
0000000100003061 movq %rsp, %rbp
0000000100003064 xorps %xmm1, %xmm1
0000000100003067 movsd %xmm0, -0x8(%rbp)
000000010000306c ucomisd -0x8(%rbp), %xmm1
0000000100003071 jbe 0x10000309d
0000000100003077 movabsq $-0x8000000000000000, %rax
0000000100003081 movsd -0x8(%rbp), %xmm0
0000000100003086 movq %xmm0, %rcx
000000010000308b xorq %rax, %rcx
000000010000308e movq %rcx, %xmm0
0000000100003093 movsd %xmm0, -0x10(%rbp)
0000000100003098 jmp 0x1000030a7
000000010000309d movsd -0x8(%rbp), %xmm0
00000001000030a2 movsd %xmm0, -0x10(%rbp)
00000001000030a7 movsd -0x10(%rbp), %xmm0
00000001000030ac popq %rbp
00000001000030ad retq
00000001000030ae nop
_f64_eq:
00000001000030b0 pushq %rbp
00000001000030b1 movq %rsp, %rbp
00000001000030b4 subq $0x10, %rsp
00000001000030b8 movsd %xmm0, -0x8(%rbp)
00000001000030bd movsd %xmm1, -0x10(%rbp)
00000001000030c2 movsd -0x8(%rbp), %xmm0
00000001000030c7 subsd -0x10(%rbp), %xmm0
00000001000030cc callq _f64_abs
00000001000030d1 movsd 0x7667(%rip), %xmm1
00000001000030d9 ucomisd %xmm0, %xmm1
00000001000030dd setae %al
00000001000030e0 andb $0x1, %al
00000001000030e2 movzbl %al, %eax
00000001000030e5 addq $0x10, %rsp
00000001000030e9 popq %rbp
00000001000030ea retq
00000001000030eb nopl (%rax,%rax)
_f32_eq:
00000001000030f0 pushq %rbp
00000001000030f1 movq %rsp, %rbp
00000001000030f4 subq $0x10, %rsp
00000001000030f8 movss %xmm0, -0x4(%rbp)
00000001000030fd movss %xmm1, -0x8(%rbp)
0000000100003102 movss -0x4(%rbp), %xmm0
0000000100003107 subss -0x8(%rbp), %xmm0
000000010000310c callq _f32_abs
0000000100003111 movss 0x7647(%rip), %xmm1
0000000100003119 ucomiss %xmm0, %xmm1
000000010000311c setae %al
000000010000311f andb $0x1, %al
0000000100003121 movzbl %al, %eax
0000000100003124 addq $0x10, %rsp
0000000100003128 popq %rbp
0000000100003129 retq
000000010000312a nopw (%rax,%rax)
_f64_eqbit:
0000000100003130 pushq %rbp
0000000100003131 movq %rsp, %rbp
0000000100003134 movsd %xmm0, -0x8(%rbp)
0000000100003139 movsd %xmm1, -0x10(%rbp)
000000010000313e movsd -0x8(%rbp), %xmm0
0000000100003143 ucomisd -0x10(%rbp), %xmm0
0000000100003148 sete %al
000000010000314b setnp %cl
000000010000314e andb %cl, %al
0000000100003150 andb $0x1, %al
0000000100003152 movzbl %al, %eax
0000000100003155 popq %rbp
0000000100003156 retq
0000000100003157 nopw (%rax,%rax)
_f32_eqbit:
0000000100003160 pushq %rbp
0000000100003161 movq %rsp, %rbp
0000000100003164 movss %xmm0, -0x4(%rbp)
0000000100003169 movss %xmm1, -0x8(%rbp)
000000010000316e movss -0x4(%rbp), %xmm0
0000000100003173 ucomiss -0x8(%rbp), %xmm0
0000000100003177 sete %al
000000010000317a setnp %cl
000000010000317d andb %cl, %al
000000010000317f andb $0x1, %al
0000000100003181 movzbl %al, %eax
0000000100003184 popq %rbp
0000000100003185 retq
0000000100003186 nopw %cs:(%rax,%rax)
_f64_ne:
0000000100003190 pushq %rbp
0000000100003191 movq %rsp, %rbp
0000000100003194 subq $0x10, %rsp
0000000100003198 movsd %xmm0, -0x8(%rbp)
000000010000319d movsd %xmm1, -0x10(%rbp)
00000001000031a2 movsd -0x8(%rbp), %xmm0
00000001000031a7 movsd -0x10(%rbp), %xmm1
00000001000031ac callq _f64_eq
00000001000031b1 xorb $-0x1, %al
00000001000031b3 andb $0x1, %al
00000001000031b5 movzbl %al, %eax
00000001000031b8 addq $0x10, %rsp
00000001000031bc popq %rbp
00000001000031bd retq
00000001000031be nop
_f32_ne:
00000001000031c0 pushq %rbp
00000001000031c1 movq %rsp, %rbp
00000001000031c4 subq $0x10, %rsp
00000001000031c8 movss %xmm0, -0x4(%rbp)
00000001000031cd movss %xmm1, -0x8(%rbp)
00000001000031d2 movss -0x4(%rbp), %xmm0
00000001000031d7 movss -0x8(%rbp), %xmm1
00000001000031dc callq _f32_eq
00000001000031e1 xorb $-0x1, %al
00000001000031e3 andb $0x1, %al
00000001000031e5 movzbl %al, %eax
00000001000031e8 addq $0x10, %rsp
00000001000031ec popq %rbp
00000001000031ed retq
00000001000031ee nop
_f64_nebit:
00000001000031f0 pushq %rbp
00000001000031f1 movq %rsp, %rbp
00000001000031f4 movsd %xmm0, -0x8(%rbp)
00000001000031f9 movsd %xmm1, -0x10(%rbp)
00000001000031fe movsd -0x8(%rbp), %xmm0
0000000100003203 ucomisd -0x10(%rbp), %xmm0
0000000100003208 setne %al
000000010000320b setp %cl
000000010000320e orb %cl, %al
0000000100003210 andb $0x1, %al
0000000100003212 movzbl %al, %eax
0000000100003215 popq %rbp
0000000100003216 retq
0000000100003217 nopw (%rax,%rax)
_f32_nebit:
0000000100003220 pushq %rbp
0000000100003221 movq %rsp, %rbp
0000000100003224 movss %xmm0, -0x4(%rbp)
0000000100003229 movss %xmm1, -0x8(%rbp)
000000010000322e movss -0x4(%rbp), %xmm0
0000000100003233 ucomiss -0x8(%rbp), %xmm0
0000000100003237 setne %al
000000010000323a setp %cl
000000010000323d orb %cl, %al
000000010000323f andb $0x1, %al
0000000100003241 movzbl %al, %eax
0000000100003244 popq %rbp
0000000100003245 retq
0000000100003246 nopw %cs:(%rax,%rax)
_f64_lt:
0000000100003250 pushq %rbp
0000000100003251 movq %rsp, %rbp
0000000100003254 subq $0x20, %rsp
0000000100003258 movsd %xmm0, -0x8(%rbp)
000000010000325d movsd %xmm1, -0x10(%rbp)
0000000100003262 movsd -0x8(%rbp), %xmm0
0000000100003267 movsd -0x10(%rbp), %xmm1
000000010000326c callq _f64_ne
0000000100003271 xorl %ecx, %ecx
0000000100003273 movb %cl, %dl
0000000100003275 testb $0x1, %al
0000000100003277 movb %dl, -0x11(%rbp)
000000010000327a jne 0x100003285
0000000100003280 jmp 0x100003297
0000000100003285 movsd -0x8(%rbp), %xmm0
000000010000328a movsd -0x10(%rbp), %xmm1
000000010000328f callq _f64_ltbit
0000000100003294 movb %al, -0x11(%rbp)
0000000100003297 movb -0x11(%rbp), %al
000000010000329a andb $0x1, %al
000000010000329c movzbl %al, %eax
000000010000329f addq $0x20, %rsp
00000001000032a3 popq %rbp
00000001000032a4 retq
00000001000032a5 nopw %cs:(%rax,%rax)
_f64_ltbit:
00000001000032b0 pushq %rbp
00000001000032b1 movq %rsp, %rbp
00000001000032b4 movsd %xmm0, -0x8(%rbp)
00000001000032b9 movsd %xmm1, -0x10(%rbp)
00000001000032be movsd -0x8(%rbp), %xmm0
00000001000032c3 movsd -0x10(%rbp), %xmm1
00000001000032c8 ucomisd %xmm0, %xmm1
00000001000032cc seta %al
00000001000032cf andb $0x1, %al
00000001000032d1 movzbl %al, %eax
00000001000032d4 popq %rbp
00000001000032d5 retq
00000001000032d6 nopw %cs:(%rax,%rax)
_f32_lt:
00000001000032e0 pushq %rbp
00000001000032e1 movq %rsp, %rbp
00000001000032e4 subq $0x10, %rsp
00000001000032e8 movss %xmm0, -0x4(%rbp)
00000001000032ed movss %xmm1, -0x8(%rbp)
00000001000032f2 movss -0x4(%rbp), %xmm0
00000001000032f7 movss -0x8(%rbp), %xmm1
00000001000032fc callq _f32_ne
0000000100003301 xorl %ecx, %ecx
0000000100003303 movb %cl, %dl
0000000100003305 testb $0x1, %al
0000000100003307 movb %dl, -0x9(%rbp)
000000010000330a jne 0x100003315
0000000100003310 jmp 0x100003327
0000000100003315 movss -0x4(%rbp), %xmm0
000000010000331a movss -0x8(%rbp), %xmm1
000000010000331f callq _f32_ltbit
0000000100003324 movb %al, -0x9(%rbp)
0000000100003327 movb -0x9(%rbp), %al
000000010000332a andb $0x1, %al
000000010000332c movzbl %al, %eax
000000010000332f addq $0x10, %rsp
0000000100003333 popq %rbp
0000000100003334 retq
0000000100003335 nopw %cs:(%rax,%rax)
_f32_ltbit:
0000000100003340 pushq %rbp
0000000100003341 movq %rsp, %rbp
0000000100003344 movss %xmm0, -0x4(%rbp)
0000000100003349 movss %xmm1, -0x8(%rbp)
000000010000334e movss -0x4(%rbp), %xmm0
0000000100003353 movss -0x8(%rbp), %xmm1
0000000100003358 ucomiss %xmm0, %xmm1
000000010000335b seta %al
000000010000335e andb $0x1, %al
0000000100003360 movzbl %al, %eax
0000000100003363 popq %rbp
0000000100003364 retq
0000000100003365 nopw %cs:(%rax,%rax)
_f64_le:
0000000100003370 pushq %rbp
0000000100003371 movq %rsp, %rbp
0000000100003374 subq $0x10, %rsp
0000000100003378 movsd %xmm0, -0x8(%rbp)
000000010000337d movsd %xmm1, -0x10(%rbp)
0000000100003382 movsd -0x8(%rbp), %xmm0
0000000100003387 movsd -0x10(%rbp), %xmm1
000000010000338c callq _f64_gt
0000000100003391 xorb $-0x1, %al
0000000100003393 andb $0x1, %al
0000000100003395 movzbl %al, %eax
0000000100003398 addq $0x10, %rsp
000000010000339c popq %rbp
000000010000339d retq
000000010000339e nop
_f64_gt:
00000001000033a0 pushq %rbp
00000001000033a1 movq %rsp, %rbp
00000001000033a4 subq $0x20, %rsp
00000001000033a8 movsd %xmm0, -0x8(%rbp)
00000001000033ad movsd %xmm1, -0x10(%rbp)
00000001000033b2 movsd -0x8(%rbp), %xmm0
00000001000033b7 movsd -0x10(%rbp), %xmm1
00000001000033bc callq _f64_ne
00000001000033c1 xorl %ecx, %ecx
00000001000033c3 movb %cl, %dl
00000001000033c5 testb $0x1, %al
00000001000033c7 movb %dl, -0x11(%rbp)
00000001000033ca jne 0x1000033d5
00000001000033d0 jmp 0x1000033e7
00000001000033d5 movsd -0x8(%rbp), %xmm0
00000001000033da movsd -0x10(%rbp), %xmm1
00000001000033df callq _f64_gtbit
00000001000033e4 movb %al, -0x11(%rbp)
00000001000033e7 movb -0x11(%rbp), %al
00000001000033ea andb $0x1, %al
00000001000033ec movzbl %al, %eax
00000001000033ef addq $0x20, %rsp
00000001000033f3 popq %rbp
00000001000033f4 retq
00000001000033f5 nopw %cs:(%rax,%rax)
_f32_le:
0000000100003400 pushq %rbp
0000000100003401 movq %rsp, %rbp
0000000100003404 subq $0x10, %rsp
0000000100003408 movss %xmm0, -0x4(%rbp)
000000010000340d movss %xmm1, -0x8(%rbp)
0000000100003412 movss -0x4(%rbp), %xmm0
0000000100003417 movss -0x8(%rbp), %xmm1
000000010000341c callq _f32_gt
0000000100003421 xorb $-0x1, %al
0000000100003423 andb $0x1, %al
0000000100003425 movzbl %al, %eax
0000000100003428 addq $0x10, %rsp
000000010000342c popq %rbp
000000010000342d retq
000000010000342e nop
_f32_gt:
0000000100003430 pushq %rbp
0000000100003431 movq %rsp, %rbp
0000000100003434 subq $0x10, %rsp
0000000100003438 movss %xmm0, -0x4(%rbp)
000000010000343d movss %xmm1, -0x8(%rbp)
0000000100003442 movss -0x4(%rbp), %xmm0
0000000100003447 movss -0x8(%rbp), %xmm1
000000010000344c callq _f32_ne
0000000100003451 xorl %ecx, %ecx
0000000100003453 movb %cl, %dl
0000000100003455 testb $0x1, %al
0000000100003457 movb %dl, -0x9(%rbp)
000000010000345a jne 0x100003465
0000000100003460 jmp 0x100003477
0000000100003465 movss -0x4(%rbp), %xmm0
000000010000346a movss -0x8(%rbp), %xmm1
000000010000346f callq _f32_gtbit
0000000100003474 movb %al, -0x9(%rbp)
0000000100003477 movb -0x9(%rbp), %al
000000010000347a andb $0x1, %al
000000010000347c movzbl %al, %eax
000000010000347f addq $0x10, %rsp
0000000100003483 popq %rbp
0000000100003484 retq
0000000100003485 nopw %cs:(%rax,%rax)
_f64_lebit:
0000000100003490 pushq %rbp
0000000100003491 movq %rsp, %rbp
0000000100003494 movsd %xmm0, -0x8(%rbp)
0000000100003499 movsd %xmm1, -0x10(%rbp)
000000010000349e movsd -0x8(%rbp), %xmm0
00000001000034a3 movsd -0x10(%rbp), %xmm1
00000001000034a8 ucomisd %xmm0, %xmm1
00000001000034ac setae %al
00000001000034af andb $0x1, %al
00000001000034b1 movzbl %al, %eax
00000001000034b4 popq %rbp
00000001000034b5 retq
00000001000034b6 nopw %cs:(%rax,%rax)
_f32_lebit:
00000001000034c0 pushq %rbp
00000001000034c1 movq %rsp, %rbp
00000001000034c4 movss %xmm0, -0x4(%rbp)
00000001000034c9 movss %xmm1, -0x8(%rbp)
00000001000034ce movss -0x4(%rbp), %xmm0
00000001000034d3 movss -0x8(%rbp), %xmm1
00000001000034d8 ucomiss %xmm0, %xmm1
00000001000034db setae %al
00000001000034de andb $0x1, %al
00000001000034e0 movzbl %al, %eax
00000001000034e3 popq %rbp
00000001000034e4 retq
00000001000034e5 nopw %cs:(%rax,%rax)
_f64_gtbit:
00000001000034f0 pushq %rbp
00000001000034f1 movq %rsp, %rbp
00000001000034f4 movsd %xmm0, -0x8(%rbp)
00000001000034f9 movsd %xmm1, -0x10(%rbp)
00000001000034fe movsd -0x8(%rbp), %xmm0
0000000100003503 ucomisd -0x10(%rbp), %xmm0
0000000100003508 seta %al
000000010000350b andb $0x1, %al
000000010000350d movzbl %al, %eax
0000000100003510 popq %rbp
0000000100003511 retq
0000000100003512 nopw %cs:(%rax,%rax)
_f32_gtbit:
0000000100003520 pushq %rbp
0000000100003521 movq %rsp, %rbp
0000000100003524 movss %xmm0, -0x4(%rbp)
0000000100003529 movss %xmm1, -0x8(%rbp)
000000010000352e movss -0x4(%rbp), %xmm0
0000000100003533 ucomiss -0x8(%rbp), %xmm0
0000000100003537 seta %al
000000010000353a andb $0x1, %al
000000010000353c movzbl %al, %eax
000000010000353f popq %rbp
0000000100003540 retq
0000000100003541 nopw %cs:(%rax,%rax)
_f64_ge:
0000000100003550 pushq %rbp
0000000100003551 movq %rsp, %rbp
0000000100003554 subq $0x10, %rsp
0000000100003558 movsd %xmm0, -0x8(%rbp)
000000010000355d movsd %xmm1, -0x10(%rbp)
0000000100003562 movsd -0x8(%rbp), %xmm0
0000000100003567 movsd -0x10(%rbp), %xmm1
000000010000356c callq _f64_lt
0000000100003571 xorb $-0x1, %al
0000000100003573 andb $0x1, %al
0000000100003575 movzbl %al, %eax
0000000100003578 addq $0x10, %rsp
000000010000357c popq %rbp
000000010000357d retq
000000010000357e nop
_f32_ge:
0000000100003580 pushq %rbp
0000000100003581 movq %rsp, %rbp
0000000100003584 subq $0x10, %rsp
0000000100003588 movss %xmm0, -0x4(%rbp)
000000010000358d movss %xmm1, -0x8(%rbp)
0000000100003592 movss -0x4(%rbp), %xmm0
0000000100003597 movss -0x8(%rbp), %xmm1
000000010000359c callq _f32_lt
00000001000035a1 xorb $-0x1, %al
00000001000035a3 andb $0x1, %al
00000001000035a5 movzbl %al, %eax
00000001000035a8 addq $0x10, %rsp
00000001000035ac popq %rbp
00000001000035ad retq
00000001000035ae nop
_f64_gebit:
00000001000035b0 pushq %rbp
00000001000035b1 movq %rsp, %rbp
00000001000035b4 movsd %xmm0, -0x8(%rbp)
00000001000035b9 movsd %xmm1, -0x10(%rbp)
00000001000035be movsd -0x8(%rbp), %xmm0
00000001000035c3 ucomisd -0x10(%rbp), %xmm0
00000001000035c8 setae %al
00000001000035cb andb $0x1, %al
00000001000035cd movzbl %al, %eax
00000001000035d0 popq %rbp
00000001000035d1 retq
00000001000035d2 nopw %cs:(%rax,%rax)
_f32_gebit:
00000001000035e0 pushq %rbp
00000001000035e1 movq %rsp, %rbp
00000001000035e4 movss %xmm0, -0x4(%rbp)
00000001000035e9 movss %xmm1, -0x8(%rbp)
00000001000035ee movss -0x4(%rbp), %xmm0
00000001000035f3 ucomiss -0x8(%rbp), %xmm0
00000001000035f7 setae %al
00000001000035fa andb $0x1, %al
00000001000035fc movzbl %al, %eax
00000001000035ff popq %rbp
0000000100003600 retq
0000000100003601 nopw %cs:(%rax,%rax)
_new_hashmap:
0000000100003610 pushq %rbp
0000000100003611 movq %rsp, %rbp
0000000100003614 subq $0x20, %rsp
0000000100003618 movq %rdi, %rax
000000010000361b leaq _builtin__min_cap(%rip), %rcx
0000000100003622 movl %esi, -0x4(%rbp)
0000000100003625 imull $0x5, -0x4(%rbp), %esi
0000000100003629 movl %esi, -0x8(%rbp)
000000010000362c movl -0x8(%rbp), %esi
000000010000362f cmpl (%rcx), %esi
0000000100003631 movq %rax, -0x10(%rbp)
0000000100003635 movq %rdi, -0x18(%rbp)
0000000100003639 jge 0x10000364b
000000010000363f leaq _builtin__min_cap(%rip), %rax
0000000100003646 movl (%rax), %ecx
0000000100003648 movl %ecx, -0x8(%rbp)
000000010000364b leaq _builtin__max_cap(%rip), %rax
0000000100003652 movl -0x8(%rbp), %ecx
0000000100003655 cmpl (%rax), %ecx
0000000100003657 jle 0x100003669
000000010000365d leaq _builtin__max_cap(%rip), %rax
0000000100003664 movl (%rax), %ecx
0000000100003666 movl %ecx, -0x8(%rbp)
0000000100003669 xorl %esi, %esi
000000010000366b movl $0x1, %edx
0000000100003670 movl $0x10, %ecx
0000000100003675 movl -0x8(%rbp), %eax
0000000100003678 movq -0x18(%rbp), %rdi
000000010000367c movl %eax, (%rdi)
000000010000367e addq $0x8, %rdi
0000000100003682 callq _new_array
0000000100003687 movl $0x20, %ecx
000000010000368c movq -0x18(%rbp), %rdi
0000000100003690 addq $0x20, %rdi
0000000100003694 movl -0x8(%rbp), %esi
0000000100003697 movl -0x8(%rbp), %edx
000000010000369a callq _make
000000010000369f movq -0x18(%rbp), %rdi
00000001000036a3 movl $0x4, 0x38(%rdi)
00000001000036aa movl $0x0, 0x3c(%rdi)
00000001000036b1 movq -0x10(%rbp), %rax
00000001000036b5 addq $0x20, %rsp
00000001000036b9 popq %rbp
00000001000036ba retq
00000001000036bb nopl (%rax,%rax)
_hashmap_set:
00000001000036c0 pushq %rbp
00000001000036c1 movq %rsp, %rbp
00000001000036c4 subq $0x90, %rsp
00000001000036cb movq 0x9966(%rip), %rax ## literal pool symbol address: ___stack_chk_guard
00000001000036d2 movq (%rax), %rax
00000001000036d5 movq %rax, -0x8(%rbp)
00000001000036d9 movq %rsi, -0x38(%rbp)
00000001000036dd movl %edx, -0x30(%rbp)
00000001000036e0 movq %rdi, -0x40(%rbp)
00000001000036e4 movl %ecx, -0x44(%rbp)
00000001000036e7 movq -0x38(%rbp), %rdi
00000001000036eb movl -0x30(%rbp), %esi
00000001000036ee callq _string_hash
00000001000036f3 movl %eax, %edi
00000001000036f5 callq _b_fabs
00000001000036fa cvttsd2si %xmm0, %eax
00000001000036fe movl %eax, -0x48(%rbp)
0000000100003701 movl -0x48(%rbp), %eax
0000000100003704 movq -0x40(%rbp), %r8
0000000100003708 cltd
0000000100003709 idivl (%r8)
000000010000370c movl %edx, -0x4c(%rbp)
000000010000370f movq -0x40(%rbp), %r8
0000000100003713 addq $0x20, %r8
0000000100003717 movl -0x4c(%rbp), %edi
000000010000371a movq (%r8), %r9
000000010000371d movq %r9, (%rsp)
0000000100003721 movq 0x8(%r8), %r9
0000000100003725 movq %r9, 0x8(%rsp)
000000010000372a movq 0x10(%r8), %r8
000000010000372e movq %r8, 0x10(%rsp)
0000000100003733 callq _array_get
0000000100003738 cmpl $0x0, 0x8(%rax)
000000010000373c je 0x1000037d8
0000000100003742 movq -0x40(%rbp), %rax
0000000100003746 movl 0x3c(%rax), %ecx
0000000100003749 addl $0x1, %ecx
000000010000374c movl %ecx, 0x3c(%rax)
000000010000374f movq -0x40(%rbp), %rax
0000000100003753 addq $0x20, %rax
0000000100003757 movl -0x4c(%rbp), %edi
000000010000375a movq (%rax), %rdx
000000010000375d movq %rdx, (%rsp)
0000000100003761 movq 0x8(%rax), %rdx
0000000100003765 movq %rdx, 0x8(%rsp)
000000010000376a movq 0x10(%rax), %rax
000000010000376e movq %rax, 0x10(%rsp)
0000000100003773 callq _array_get
0000000100003778 movq %rax, -0x58(%rbp)
000000010000377c movq -0x58(%rbp), %rax
0000000100003780 cmpq $0x0, 0x18(%rax)
0000000100003785 je 0x10000379c
000000010000378b movq -0x58(%rbp), %rax
000000010000378f movq 0x18(%rax), %rax
0000000100003793 movq %rax, -0x58(%rbp)
0000000100003797 jmp 0x10000377c
000000010000379c movl $0x20, %esi
00000001000037a1 leaq -0x78(%rbp), %rax
00000001000037a5 movq -0x38(%rbp), %rcx
00000001000037a9 movq %rcx, -0x78(%rbp)
00000001000037ad movq -0x30(%rbp), %rcx
00000001000037b1 movq %rcx, -0x70(%rbp)
00000001000037b5 movl -0x44(%rbp), %edx
00000001000037b8 movl %edx, -0x68(%rbp)
00000001000037bb movq $0x0, -0x60(%rbp)
00000001000037c3 movq %rax, %rdi
00000001000037c6 callq _memdup
00000001000037cb movq -0x58(%rbp), %rcx
00000001000037cf movq %rax, 0x18(%rcx)
00000001000037d3 jmp 0x100003810
00000001000037d8 leaq -0x28(%rbp), %rax
00000001000037dc movq -0x40(%rbp), %rcx
00000001000037e0 addq $0x20, %rcx
00000001000037e4 movl -0x4c(%rbp), %esi
00000001000037e7 movq -0x38(%rbp), %rdx
00000001000037eb movq %rdx, -0x28(%rbp)
00000001000037ef movq -0x30(%rbp), %rdx
00000001000037f3 movq %rdx, -0x20(%rbp)
00000001000037f7 movl -0x44(%rbp), %edi
00000001000037fa movl %edi, -0x18(%rbp)
00000001000037fd movq $0x0, -0x10(%rbp)
0000000100003805 movq %rcx, %rdi
0000000100003808 movq %rax, %rdx
000000010000380b callq _array_set
0000000100003810 movq 0x9821(%rip), %rax ## literal pool symbol address: ___stack_chk_guard
0000000100003817 movq (%rax), %rax
000000010000381a movq -0x8(%rbp), %rcx
000000010000381e cmpq %rcx, %rax
0000000100003821 jne 0x100003830
0000000100003827 addq $0x90, %rsp
000000010000382e popq %rbp
000000010000382f retq
0000000100003830 callq 0x10000a5b0 ## symbol stub for: ___stack_chk_fail
0000000100003835 ud2
0000000100003837 nopw (%rax,%rax)
_b_fabs:
0000000100003840 pushq %rbp
0000000100003841 movq %rsp, %rbp
0000000100003844 movl %edi, -0x4(%rbp)
0000000100003847 cmpl $0x0, -0x4(%rbp)
000000010000384b jge 0x10000385e
0000000100003851 xorl %eax, %eax
0000000100003853 subl -0x4(%rbp), %eax
0000000100003856 movl %eax, -0x8(%rbp)
0000000100003859 jmp 0x100003864
000000010000385e movl -0x4(%rbp), %eax
0000000100003861 movl %eax, -0x8(%rbp)
0000000100003864 movl -0x8(%rbp), %eax
0000000100003867 cvtsi2sdl %eax, %xmm0
000000010000386b popq %rbp
000000010000386c retq
000000010000386d nopl (%rax)
_string_hash:
0000000100003870 pushq %rbp
0000000100003871 movq %rsp, %rbp
0000000100003874 subq $0x50, %rsp
0000000100003878 movq %rdi, -0x10(%rbp)
000000010000387c movl %esi, -0x8(%rbp)
000000010000387f movl $0x0, -0x14(%rbp)
0000000100003886 cmpl $0x0, -0x14(%rbp)
000000010000388a jne 0x1000038fb
0000000100003890 cmpl $0x0, -0x8(%rbp)
0000000100003894 jle 0x1000038fb
000000010000389a leaq -0x40(%rbp), %rdi
000000010000389e movq -0x10(%rbp), %rax
00000001000038a2 movq %rax, -0x28(%rbp)
00000001000038a6 movq -0x8(%rbp), %rax
00000001000038aa movq %rax, -0x20(%rbp)
00000001000038ae movq -0x28(%rbp), %rsi
00000001000038b2 movl -0x20(%rbp), %edx
00000001000038b5 callq _string_bytes
00000001000038ba movl $0x0, -0x44(%rbp)
00000001000038c1 movl -0x44(%rbp), %eax
00000001000038c4 cmpl -0x20(%rbp), %eax
00000001000038c7 jge 0x1000038f6
00000001000038cd movq -0x40(%rbp), %rax
00000001000038d1 movslq -0x44(%rbp), %rcx
00000001000038d5 movb (%rax,%rcx), %dl
00000001000038d8 movb %dl, -0x45(%rbp)
00000001000038db imull $0x1f, -0x14(%rbp), %esi
00000001000038df movzbl -0x45(%rbp), %edi
00000001000038e3 addl %edi, %esi
00000001000038e5 movl %esi, -0x14(%rbp)
00000001000038e8 movl -0x44(%rbp), %eax
00000001000038eb addl $0x1, %eax
00000001000038ee movl %eax, -0x44(%rbp)
00000001000038f1 jmp 0x1000038c1
00000001000038f6 jmp 0x1000038fb
00000001000038fb movl -0x14(%rbp), %eax
00000001000038fe addq $0x50, %rsp
0000000100003902 popq %rbp
0000000100003903 retq
0000000100003904 nopw %cs:(%rax,%rax)
_hashmap_get:
0000000100003910 pushq %rbp
0000000100003911 movq %rsp, %rbp
0000000100003914 subq $0x50, %rsp
0000000100003918 movq %rsi, -0x18(%rbp)
000000010000391c movl %edx, -0x10(%rbp)
000000010000391f movq %rdi, -0x20(%rbp)
0000000100003923 movq -0x18(%rbp), %rdi
0000000100003927 movl -0x10(%rbp), %esi
000000010000392a callq _string_hash
000000010000392f movl %eax, %edi
0000000100003931 callq _b_fabs
0000000100003936 cvttsd2si %xmm0, %eax
000000010000393a movl %eax, -0x24(%rbp)
000000010000393d movl -0x24(%rbp), %eax
0000000100003940 movq -0x20(%rbp), %rcx
0000000100003944 cltd
0000000100003945 idivl (%rcx)
0000000100003947 movl %edx, -0x28(%rbp)
000000010000394a movq -0x20(%rbp), %rcx
000000010000394e addq $0x20, %rcx
0000000100003952 movl -0x28(%rbp), %edi
0000000100003955 movq (%rcx), %r8
0000000100003958 movq %r8, (%rsp)
000000010000395c movq 0x8(%rcx), %r8
0000000100003960 movq %r8, 0x8(%rsp)
0000000100003965 movq 0x10(%rcx), %rcx
0000000100003969 movq %rcx, 0x10(%rsp)
000000010000396e callq _array_get
0000000100003973 movq %rax, -0x30(%rbp)
0000000100003977 movq -0x30(%rbp), %rax
000000010000397b cmpq $0x0, 0x18(%rax)
0000000100003980 je 0x1000039c9
0000000100003986 movq -0x30(%rbp), %rax
000000010000398a movq (%rax), %rdi
000000010000398d movl 0x8(%rax), %esi
0000000100003990 movq -0x18(%rbp), %rdx
0000000100003994 movl -0x10(%rbp), %ecx
0000000100003997 callq _string_eq
000000010000399c testb $0x1, %al
000000010000399e jne 0x1000039a9
00000001000039a4 jmp 0x1000039b8
00000001000039a9 movq -0x30(%rbp), %rax
00000001000039ad movl 0x10(%rax), %ecx
00000001000039b0 movl %ecx, -0x4(%rbp)
00000001000039b3 jmp 0x1000039d3
00000001000039b8 movq -0x30(%rbp), %rax
00000001000039bc movq 0x18(%rax), %rax
00000001000039c0 movq %rax, -0x30(%rbp)
00000001000039c4 jmp 0x100003977
00000001000039c9 movq -0x30(%rbp), %rax
00000001000039cd movl 0x10(%rax), %ecx
00000001000039d0 movl %ecx, -0x4(%rbp)
00000001000039d3 movl -0x4(%rbp), %eax
00000001000039d6 addq $0x50, %rsp
00000001000039da popq %rbp
00000001000039db retq
00000001000039dc nopl (%rax)
_ptr_str:
00000001000039e0 pushq %rbp
00000001000039e1 movq %rsp, %rbp
00000001000039e4 subq $0x30, %rsp
00000001000039e8 movq %rdi, -0x18(%rbp)
00000001000039ec movl $0x29, %edi
00000001000039f1 callq _v_malloc
00000001000039f6 movq %rax, -0x20(%rbp)
00000001000039fa movq -0x20(%rbp), %rdi
00000001000039fe movq -0x18(%rbp), %r8
0000000100003a02 leaq 0x6f94(%rip), %rcx ## literal pool for: "%p"
0000000100003a09 xorl %edx, %edx
0000000100003a0b movb %dl, %sil
0000000100003a0e movq $-0x1, %rax
0000000100003a15 movb %sil, -0x21(%rbp)
0000000100003a19 movl %edx, %esi
0000000100003a1b movq %rax, %rdx
0000000100003a1e movb -0x21(%rbp), %al
0000000100003a21 callq 0x10000a5aa ## symbol stub for: ___sprintf_chk
0000000100003a26 movq -0x20(%rbp), %rcx
0000000100003a2a movq %rcx, %rdi
0000000100003a2d movl %eax, -0x28(%rbp)
0000000100003a30 movq %rcx, -0x30(%rbp)
0000000100003a34 callq _vstrlen
0000000100003a39 movq -0x30(%rbp), %rdi
0000000100003a3d movl %eax, %esi
0000000100003a3f callq _tos
0000000100003a44 movq %rax, -0x10(%rbp)
0000000100003a48 movl %edx, -0x8(%rbp)
0000000100003a4b movq -0x10(%rbp), %rax
0000000100003a4f movl -0x8(%rbp), %edx
0000000100003a52 addq $0x30, %rsp
0000000100003a56 popq %rbp
0000000100003a57 retq
0000000100003a58 nopl (%rax,%rax)
_u32_str:
0000000100003a60 pushq %rbp
0000000100003a61 movq %rsp, %rbp
0000000100003a64 subq $0x40, %rsp
0000000100003a68 movl %edi, -0x14(%rbp)
0000000100003a6b movl -0x14(%rbp), %edi
0000000100003a6e movl %edi, -0x18(%rbp)
0000000100003a71 cmpl $0x0, -0x18(%rbp)
0000000100003a75 jne 0x100003a93
0000000100003a7b leaq 0x6f1e(%rip), %rdi ## literal pool for: "0"
0000000100003a82 callq _tos3
0000000100003a87 movq %rax, -0x10(%rbp)
0000000100003a8b movl %edx, -0x8(%rbp)
0000000100003a8e jmp 0x100003b30
0000000100003a93 movl $0x10, -0x1c(%rbp)
0000000100003a9a movl -0x1c(%rbp), %edi
0000000100003a9d callq _v_malloc
0000000100003aa2 movq %rax, -0x28(%rbp)
0000000100003aa6 movl $0x0, -0x2c(%rbp)
0000000100003aad cmpl $0x0, -0x18(%rbp)
0000000100003ab1 jbe 0x100003b05
0000000100003ab7 movl $0xa, %eax
0000000100003abc movl -0x18(%rbp), %ecx
0000000100003abf movl %eax, -0x34(%rbp)
0000000100003ac2 movl %ecx, %eax
0000000100003ac4 xorl %edx, %edx
0000000100003ac6 movl -0x34(%rbp), %ecx
0000000100003ac9 divl %ecx
0000000100003acb movl %edx, -0x30(%rbp)
0000000100003ace movl -0x30(%rbp), %edx
0000000100003ad1 addl $0x30, %edx
0000000100003ad4 movb %dl, %sil
0000000100003ad7 movq -0x28(%rbp), %rdi
0000000100003adb movl -0x1c(%rbp), %edx
0000000100003ade subl -0x2c(%rbp), %edx
0000000100003ae1 subl $0x1, %edx
0000000100003ae4 movslq %edx, %r8
0000000100003ae7 movb %sil, (%rdi,%r8)
0000000100003aeb movl -0x2c(%rbp), %edx
0000000100003aee addl $0x1, %edx
0000000100003af1 movl %edx, -0x2c(%rbp)
0000000100003af4 movl -0x18(%rbp), %edx
0000000100003af7 movl %edx, %eax
0000000100003af9 xorl %edx, %edx
0000000100003afb divl %ecx
0000000100003afd movl %eax, -0x18(%rbp)
0000000100003b00 jmp 0x100003aad
0000000100003b05 xorl %eax, %eax
0000000100003b07 movl %eax, %ecx
0000000100003b09 movq -0x28(%rbp), %rdx
0000000100003b0d movslq -0x1c(%rbp), %rsi
0000000100003b11 addq %rsi, %rdx
0000000100003b14 movslq -0x2c(%rbp), %rsi
0000000100003b18 subq %rsi, %rcx
0000000100003b1b addq %rcx, %rdx
0000000100003b1e movl -0x2c(%rbp), %esi
0000000100003b21 movq %rdx, %rdi
0000000100003b24 callq _tos
0000000100003b29 movq %rax, -0x10(%rbp)
0000000100003b2d movl %edx, -0x8(%rbp)
0000000100003b30 movq -0x10(%rbp), %rax
0000000100003b34 movl -0x8(%rbp), %edx
0000000100003b37 addq $0x40, %rsp
0000000100003b3b popq %rbp
0000000100003b3c retq
0000000100003b3d nopl (%rax)
_i64_str:
0000000100003b40 pushq %rbp
0000000100003b41 movq %rsp, %rbp
0000000100003b44 subq $0x40, %rsp
0000000100003b48 movq %rdi, -0x18(%rbp)
0000000100003b4c movq -0x18(%rbp), %rdi
0000000100003b50 movq %rdi, -0x20(%rbp)
0000000100003b54 cmpq $0x0, -0x20(%rbp)
0000000100003b59 jne 0x100003b77
0000000100003b5f leaq 0x6e3a(%rip), %rdi ## literal pool for: "0"
0000000100003b66 callq _tos3
0000000100003b6b movq %rax, -0x10(%rbp)
0000000100003b6f movl %edx, -0x8(%rbp)
0000000100003b72 jmp 0x100003c62
0000000100003b77 movl $0x20, -0x24(%rbp)
0000000100003b7e movl -0x24(%rbp), %edi
0000000100003b81 callq _v_malloc
0000000100003b86 movq %rax, -0x30(%rbp)
0000000100003b8a movl $0x0, -0x34(%rbp)
0000000100003b91 movb $0x0, -0x35(%rbp)
0000000100003b95 cmpq $0x0, -0x20(%rbp)
0000000100003b9a jge 0x100003bb0
0000000100003ba0 xorl %eax, %eax
0000000100003ba2 movl %eax, %ecx
0000000100003ba4 subq -0x20(%rbp), %rcx
0000000100003ba8 movq %rcx, -0x20(%rbp)
0000000100003bac movb $0x1, -0x35(%rbp)
0000000100003bb0 jmp 0x100003bb5
0000000100003bb5 cmpq $0x0, -0x20(%rbp)
0000000100003bba jle 0x100003c10
0000000100003bc0 movl $0xa, %eax
0000000100003bc5 movl %eax, %ecx
0000000100003bc7 movq -0x20(%rbp), %rax
0000000100003bcb cqto
0000000100003bcd idivq %rcx
0000000100003bd0 movl %edx, %esi
0000000100003bd2 movl %esi, -0x3c(%rbp)
0000000100003bd5 movl -0x3c(%rbp), %esi
0000000100003bd8 addl $0x30, %esi
0000000100003bdb movb %sil, %dil
0000000100003bde movq -0x30(%rbp), %rdx
0000000100003be2 movl -0x24(%rbp), %esi
0000000100003be5 subl -0x34(%rbp), %esi
0000000100003be8 subl $0x1, %esi
0000000100003beb movslq %esi, %r8
0000000100003bee movb %dil, (%rdx,%r8)
0000000100003bf2 movl -0x34(%rbp), %esi
0000000100003bf5 addl $0x1, %esi
0000000100003bf8 movl %esi, -0x34(%rbp)
0000000100003bfb movq -0x20(%rbp), %rdx
0000000100003bff movq %rdx, %rax
0000000100003c02 cqto
0000000100003c04 idivq %rcx
0000000100003c07 movq %rax, -0x20(%rbp)
0000000100003c0b jmp 0x100003bb5
0000000100003c10 testb $0x1, -0x35(%rbp)
0000000100003c14 je 0x100003c37
0000000100003c1a movq -0x30(%rbp), %rax
0000000100003c1e movl -0x24(%rbp), %ecx
0000000100003c21 subl -0x34(%rbp), %ecx
0000000100003c24 subl $0x1, %ecx
0000000100003c27 movslq %ecx, %rdx
0000000100003c2a movb $0x2d, (%rax,%rdx)
0000000100003c2e movl -0x34(%rbp), %ecx
0000000100003c31 addl $0x1, %ecx
0000000100003c34 movl %ecx, -0x34(%rbp)
0000000100003c37 xorl %eax, %eax
0000000100003c39 movl %eax, %ecx
0000000100003c3b movq -0x30(%rbp), %rdx
0000000100003c3f movslq -0x24(%rbp), %rsi
0000000100003c43 addq %rsi, %rdx
0000000100003c46 movslq -0x34(%rbp), %rsi
0000000100003c4a subq %rsi, %rcx
0000000100003c4d addq %rcx, %rdx
0000000100003c50 movl -0x34(%rbp), %esi
0000000100003c53 movq %rdx, %rdi
0000000100003c56 callq _tos
0000000100003c5b movq %rax, -0x10(%rbp)
0000000100003c5f movl %edx, -0x8(%rbp)
0000000100003c62 movq -0x10(%rbp), %rax
0000000100003c66 movl -0x8(%rbp), %edx
0000000100003c69 addq $0x40, %rsp
0000000100003c6d popq %rbp
0000000100003c6e retq
0000000100003c6f nop
_u64_str:
0000000100003c70 pushq %rbp
0000000100003c71 movq %rsp, %rbp
0000000100003c74 subq $0x40, %rsp
0000000100003c78 movq %rdi, -0x18(%rbp)
0000000100003c7c movq -0x18(%rbp), %rdi
0000000100003c80 movq %rdi, -0x20(%rbp)
0000000100003c84 cmpq $0x0, -0x20(%rbp)
0000000100003c89 jne 0x100003ca7
0000000100003c8f leaq 0x6d0a(%rip), %rdi ## literal pool for: "0"
0000000100003c96 callq _tos3
0000000100003c9b movq %rax, -0x10(%rbp)
0000000100003c9f movl %edx, -0x8(%rbp)
0000000100003ca2 jmp 0x100003d4a
0000000100003ca7 movl $0x20, -0x24(%rbp)
0000000100003cae movl -0x24(%rbp), %edi
0000000100003cb1 callq _v_malloc
0000000100003cb6 movq %rax, -0x30(%rbp)
0000000100003cba movl $0x0, -0x34(%rbp)
0000000100003cc1 cmpq $0x0, -0x20(%rbp)
0000000100003cc6 jbe 0x100003d1f
0000000100003ccc movl $0xa, %eax
0000000100003cd1 movl %eax, %ecx
0000000100003cd3 movq -0x20(%rbp), %rax
0000000100003cd7 xorl %edx, %edx
0000000100003cd9 divq %rcx
0000000100003cdc movq %rdx, -0x40(%rbp)
0000000100003ce0 movq -0x40(%rbp), %rdx
0000000100003ce4 addq $0x30, %rdx
0000000100003ce8 movb %dl, %sil
0000000100003ceb movq -0x30(%rbp), %rdx
0000000100003cef movl -0x24(%rbp), %edi
0000000100003cf2 subl -0x34(%rbp), %edi
0000000100003cf5 subl $0x1, %edi
0000000100003cf8 movslq %edi, %r8
0000000100003cfb movb %sil, (%rdx,%r8)
0000000100003cff movl -0x34(%rbp), %edi
0000000100003d02 addl $0x1, %edi
0000000100003d05 movl %edi, -0x34(%rbp)
0000000100003d08 movq -0x20(%rbp), %rdx
0000000100003d0c movq %rdx, %rax
0000000100003d0f xorl %edi, %edi
0000000100003d11 movl %edi, %edx
0000000100003d13 divq %rcx
0000000100003d16 movq %rax, -0x20(%rbp)
0000000100003d1a jmp 0x100003cc1
0000000100003d1f xorl %eax, %eax
0000000100003d21 movl %eax, %ecx
0000000100003d23 movq -0x30(%rbp), %rdx
0000000100003d27 movslq -0x24(%rbp), %rsi
0000000100003d2b addq %rsi, %rdx
0000000100003d2e movslq -0x34(%rbp), %rsi
0000000100003d32 subq %rsi, %rcx
0000000100003d35 addq %rcx, %rdx
0000000100003d38 movl -0x34(%rbp), %esi
0000000100003d3b movq %rdx, %rdi
0000000100003d3e callq _tos
0000000100003d43 movq %rax, -0x10(%rbp)
0000000100003d47 movl %edx, -0x8(%rbp)
0000000100003d4a movq -0x10(%rbp), %rax
0000000100003d4e movl -0x8(%rbp), %edx
0000000100003d51 addq $0x40, %rsp
0000000100003d55 popq %rbp
0000000100003d56 retq
0000000100003d57 nopw (%rax,%rax)
_bool_str:
0000000100003d60 pushq %rbp
0000000100003d61 movq %rsp, %rbp
0000000100003d64 subq $0x20, %rsp
0000000100003d68 movb %dil, %al
0000000100003d6b andb $0x1, %al
0000000100003d6d movb %al, -0x11(%rbp)
0000000100003d70 testb $0x1, -0x11(%rbp)
0000000100003d74 je 0x100003d92
0000000100003d7a leaq 0x6c21(%rip), %rdi ## literal pool for: "true"
0000000100003d81 callq _tos3
0000000100003d86 movq %rax, -0x10(%rbp)
0000000100003d8a movl %edx, -0x8(%rbp)
0000000100003d8d jmp 0x100003da5
0000000100003d92 leaq 0x6c0e(%rip), %rdi ## literal pool for: "false"
0000000100003d99 callq _tos3
0000000100003d9e movq %rax, -0x10(%rbp)
0000000100003da2 movl %edx, -0x8(%rbp)
0000000100003da5 movq -0x10(%rbp), %rax
0000000100003da9 movl -0x8(%rbp), %edx
0000000100003dac addq $0x20, %rsp
0000000100003db0 popq %rbp
0000000100003db1 retq
0000000100003db2 nopw %cs:(%rax,%rax)
_int_hex:
0000000100003dc0 pushq %rbp
0000000100003dc1 movq %rsp, %rbp
0000000100003dc4 subq $0x40, %rsp
0000000100003dc8 movl %edi, -0x14(%rbp)
0000000100003dcb cmpl $0x0, -0x14(%rbp)
0000000100003dcf jl 0x100003df2
0000000100003dd5 movl -0x14(%rbp), %edi
0000000100003dd8 callq _int_str
0000000100003ddd movq %rax, -0x28(%rbp)
0000000100003de1 movl %edx, -0x20(%rbp)
0000000100003de4 movl -0x20(%rbp), %edx
0000000100003de7 addl $0x3, %edx
0000000100003dea movl %edx, -0x38(%rbp)
0000000100003ded jmp 0x100003dff
0000000100003df2 movl $0xb, %eax
0000000100003df7 movl %eax, -0x38(%rbp)
0000000100003dfa jmp 0x100003dff
0000000100003dff movl -0x38(%rbp), %eax
0000000100003e02 movl %eax, -0x18(%rbp)
0000000100003e05 movl -0x18(%rbp), %edi
0000000100003e08 callq _v_malloc
0000000100003e0d movq %rax, -0x30(%rbp)
0000000100003e11 movq -0x30(%rbp), %rdi
0000000100003e15 movl -0x14(%rbp), %r8d
0000000100003e19 leaq 0x6b8d(%rip), %rcx ## literal pool for: "0x%x"
0000000100003e20 xorl %edx, %edx
0000000100003e22 movb %dl, %sil
0000000100003e25 movq $-0x1, %rax
0000000100003e2c movb %sil, -0x39(%rbp)
0000000100003e30 movl %edx, %esi
0000000100003e32 movq %rax, %rdx
0000000100003e35 movb -0x39(%rbp), %al
0000000100003e38 callq 0x10000a5aa ## symbol stub for: ___sprintf_chk
0000000100003e3d movl %eax, -0x34(%rbp)
0000000100003e40 movq -0x30(%rbp), %rdi
0000000100003e44 movl -0x34(%rbp), %esi
0000000100003e47 callq _tos
0000000100003e4c movq %rax, -0x10(%rbp)
0000000100003e50 movl %edx, -0x8(%rbp)
0000000100003e53 movq -0x10(%rbp), %rax
0000000100003e57 movl -0x8(%rbp), %edx
0000000100003e5a addq $0x40, %rsp
0000000100003e5e popq %rbp
0000000100003e5f retq
_i64_hex:
0000000100003e60 pushq %rbp
0000000100003e61 movq %rsp, %rbp
0000000100003e64 subq $0x50, %rsp
0000000100003e68 movq %rdi, -0x18(%rbp)
0000000100003e6c cmpq $0x0, -0x18(%rbp)
0000000100003e71 jl 0x100003e95
0000000100003e77 movq -0x18(%rbp), %rdi
0000000100003e7b callq _i64_str
0000000100003e80 movq %rax, -0x30(%rbp)
0000000100003e84 movl %edx, -0x28(%rbp)
0000000100003e87 movl -0x28(%rbp), %edx
0000000100003e8a addl $0x3, %edx
0000000100003e8d movl %edx, -0x40(%rbp)
0000000100003e90 jmp 0x100003ea2
0000000100003e95 movl $0x13, %eax
0000000100003e9a movl %eax, -0x40(%rbp)
0000000100003e9d jmp 0x100003ea2
0000000100003ea2 movl -0x40(%rbp), %eax
0000000100003ea5 movl %eax, -0x1c(%rbp)
0000000100003ea8 movl -0x1c(%rbp), %edi
0000000100003eab callq _v_malloc
0000000100003eb0 movq %rax, -0x38(%rbp)
0000000100003eb4 movq -0x38(%rbp), %rdi
0000000100003eb8 movq -0x18(%rbp), %r8
0000000100003ebc leaq 0x6aef(%rip), %rcx ## literal pool for: "0x%llx"
0000000100003ec3 xorl %edx, %edx
0000000100003ec5 movb %dl, %sil
0000000100003ec8 movq $-0x1, %rax
0000000100003ecf movb %sil, -0x41(%rbp)
0000000100003ed3 movl %edx, %esi
0000000100003ed5 movq %rax, %rdx
0000000100003ed8 movb -0x41(%rbp), %al
0000000100003edb callq 0x10000a5aa ## symbol stub for: ___sprintf_chk
0000000100003ee0 movl %eax, -0x3c(%rbp)
0000000100003ee3 movq -0x38(%rbp), %rdi
0000000100003ee7 movl -0x3c(%rbp), %esi
0000000100003eea callq _tos
0000000100003eef movq %rax, -0x10(%rbp)
0000000100003ef3 movl %edx, -0x8(%rbp)
0000000100003ef6 movq -0x10(%rbp), %rax
0000000100003efa movl -0x8(%rbp), %edx
0000000100003efd addq $0x50, %rsp
0000000100003f01 popq %rbp
0000000100003f02 retq
0000000100003f03 nopw %cs:(%rax,%rax)
_array_byte_contains:
0000000100003f10 pushq %rbp
0000000100003f11 movq %rsp, %rbp
0000000100003f14 movb %dil, %al
0000000100003f17 leaq 0x10(%rbp), %rcx
0000000100003f1b movb %al, -0x2(%rbp)
0000000100003f1e movq (%rcx), %rdx
0000000100003f21 movq %rdx, -0x20(%rbp)
0000000100003f25 movq 0x8(%rcx), %rdx
0000000100003f29 movq %rdx, -0x18(%rbp)
0000000100003f2d movq 0x10(%rcx), %rcx
0000000100003f31 movq %rcx, -0x10(%rbp)
0000000100003f35 movl $0x0, -0x24(%rbp)
0000000100003f3c movl -0x24(%rbp), %eax
0000000100003f3f cmpl -0x18(%rbp), %eax
0000000100003f42 jge 0x100003f82
0000000100003f48 movq -0x20(%rbp), %rax
0000000100003f4c movslq -0x24(%rbp), %rcx
0000000100003f50 movb (%rax,%rcx), %dl
0000000100003f53 movb %dl, -0x25(%rbp)
0000000100003f56 movzbl -0x25(%rbp), %esi
0000000100003f5a movzbl -0x2(%rbp), %edi
0000000100003f5e cmpl %edi, %esi
0000000100003f60 jne 0x100003f6f
0000000100003f66 movb $0x1, -0x1(%rbp)
0000000100003f6a jmp 0x100003f86
0000000100003f6f jmp 0x100003f74
0000000100003f74 movl -0x24(%rbp), %eax
0000000100003f77 addl $0x1, %eax
0000000100003f7a movl %eax, -0x24(%rbp)
0000000100003f7d jmp 0x100003f3c
0000000100003f82 movb $0x0, -0x1(%rbp)
0000000100003f86 movb -0x1(%rbp), %al
0000000100003f89 andb $0x1, %al
0000000100003f8b movzbl %al, %eax
0000000100003f8e popq %rbp
0000000100003f8f retq
_rune_str:
0000000100003f90 pushq %rbp
0000000100003f91 movq %rsp, %rbp
0000000100003f94 subq $0x30, %rsp
0000000100003f98 movl %edi, -0x14(%rbp)
0000000100003f9b movl -0x14(%rbp), %edi
0000000100003f9e sarl $0x18, %edi
0000000100003fa1 andl $0xff, %edi
0000000100003fa7 movl %edi, -0x18(%rbp)
0000000100003faa movl -0x18(%rbp), %edi
0000000100003fad movb %dil, %al
0000000100003fb0 movzbl %al, %edi
0000000100003fb3 callq _utf8_char_len
0000000100003fb8 movl %eax, -0x1c(%rbp)
0000000100003fbb movl -0x1c(%rbp), %eax
0000000100003fbe addl $0x1, %eax
0000000100003fc1 movl %eax, %edi
0000000100003fc3 callq _v_malloc
0000000100003fc8 movq %rax, -0x10(%rbp)
0000000100003fcc movl -0x1c(%rbp), %edi
0000000100003fcf movl %edi, -0x8(%rbp)
0000000100003fd2 movl $0x0, -0x20(%rbp)
0000000100003fd9 movl -0x20(%rbp), %eax
0000000100003fdc cmpl -0x1c(%rbp), %eax
0000000100003fdf jge 0x10000401d
0000000100003fe5 movl $0x3, %eax
0000000100003fea movl -0x14(%rbp), %ecx
0000000100003fed subl -0x20(%rbp), %eax
0000000100003ff0 shll $0x3, %eax
0000000100003ff3 movl %ecx, -0x24(%rbp)
0000000100003ff6 movl %eax, %ecx
0000000100003ff8 movl -0x24(%rbp), %eax
0000000100003ffb sarl %cl, %eax
0000000100003ffd andl $0xff, %eax
0000000100004002 movb %al, %cl
0000000100004004 movq -0x10(%rbp), %rdx
0000000100004008 movslq -0x20(%rbp), %rsi
000000010000400c movb %cl, (%rdx,%rsi)
000000010000400f movl -0x20(%rbp), %eax
0000000100004012 addl $0x1, %eax
0000000100004015 movl %eax, -0x20(%rbp)
0000000100004018 jmp 0x100003fd9
000000010000401d movq -0x10(%rbp), %rax
0000000100004021 movslq -0x1c(%rbp), %rcx
0000000100004025 movb $0x0, (%rax,%rcx)
0000000100004029 movq -0x10(%rbp), %rax
000000010000402d movl -0x8(%rbp), %edx
0000000100004030 addq $0x30, %rsp
0000000100004034 popq %rbp
0000000100004035 retq
0000000100004036 nopw %cs:(%rax,%rax)
_utf8_char_len:
0000000100004040 pushq %rbp
0000000100004041 movq %rsp, %rbp
0000000100004044 movb %dil, %al
0000000100004047 movl $0xe5000000, %edi
000000010000404c movb %al, -0x1(%rbp)
000000010000404f movzbl -0x1(%rbp), %ecx
0000000100004053 sarl $0x3, %ecx
0000000100004056 andl $0x1e, %ecx
0000000100004059 shrl %cl, %edi
000000010000405b andl $0x3, %edi
000000010000405e addl $0x1, %edi
0000000100004061 movl %edi, %eax
0000000100004063 popq %rbp
0000000100004064 retq
0000000100004065 nopw %cs:(%rax,%rax)
_byte_str:
0000000100004070 pushq %rbp
0000000100004071 movq %rsp, %rbp
0000000100004074 subq $0x20, %rsp
0000000100004078 movb %dil, %al
000000010000407b movb %al, -0x11(%rbp)
000000010000407e movl $0x2, %edi
0000000100004083 callq _v_malloc
0000000100004088 movq %rax, -0x10(%rbp)
000000010000408c movl $0x1, -0x8(%rbp)
0000000100004093 movb -0x11(%rbp), %cl
0000000100004096 movq -0x10(%rbp), %rax
000000010000409a movb %cl, (%rax)
000000010000409c movq -0x10(%rbp), %rax
00000001000040a0 movb $0x0, 0x1(%rax)
00000001000040a4 movq -0x10(%rbp), %rax
00000001000040a8 movl -0x8(%rbp), %edx
00000001000040ab addq $0x20, %rsp
00000001000040af popq %rbp
00000001000040b0 retq
00000001000040b1 nopw %cs:(%rax,%rax)
_byte_is_capital:
00000001000040c0 pushq %rbp
00000001000040c1 movq %rsp, %rbp
00000001000040c4 movb %dil, %al
00000001000040c7 xorl %edi, %edi
00000001000040c9 movb %dil, %cl
00000001000040cc movb %al, -0x1(%rbp)
00000001000040cf movzbl -0x1(%rbp), %edi
00000001000040d3 cmpl $0x41, %edi
00000001000040d6 movb %cl, -0x2(%rbp)
00000001000040d9 jl 0x1000040ec
00000001000040df movzbl -0x1(%rbp), %eax
00000001000040e3 cmpl $0x5a, %eax
00000001000040e6 setle %cl
00000001000040e9 movb %cl, -0x2(%rbp)
00000001000040ec movb -0x2(%rbp), %al
00000001000040ef andb $0x1, %al
00000001000040f1 movzbl %al, %eax
00000001000040f4 popq %rbp
00000001000040f5 retq
00000001000040f6 nopw %cs:(%rax,%rax)
_array_byte_clone:
0000000100004100 pushq %rbp
0000000100004101 movq %rsp, %rbp
0000000100004104 subq $0x70, %rsp
0000000100004108 movq %rdi, %rax
000000010000410b leaq 0x10(%rbp), %rcx
000000010000410f leaq -0x18(%rbp), %rdx
0000000100004113 movl $0x1, %esi
0000000100004118 leaq -0x19(%rbp), %r8
000000010000411c movb $0x0, -0x19(%rbp)
0000000100004120 movq %rdi, -0x30(%rbp)
0000000100004124 movq %rdx, %rdi
0000000100004127 movl %esi, -0x34(%rbp)
000000010000412a movl -0x34(%rbp), %edx
000000010000412d movl -0x34(%rbp), %r9d
0000000100004131 movq %rcx, -0x40(%rbp)
0000000100004135 movl %r9d, %ecx
0000000100004138 movq %rax, -0x48(%rbp)
000000010000413c callq _new_array_from_c_array
0000000100004141 leaq -0x18(%rbp), %rax
0000000100004145 movq -0x40(%rbp), %rdi
0000000100004149 movl 0x8(%rdi), %esi
000000010000414c movq -0x30(%rbp), %rdi
0000000100004150 movq (%rax), %r8
0000000100004153 movq %r8, (%rsp)
0000000100004157 movq 0x8(%rax), %r8
000000010000415b movq %r8, 0x8(%rsp)
0000000100004160 movq 0x10(%rax), %rax
0000000100004164 movq %rax, 0x10(%rsp)
0000000100004169 callq _array_repeat
000000010000416e movl $0x0, -0x20(%rbp)
0000000100004175 movl -0x20(%rbp), %eax
0000000100004178 movq -0x40(%rbp), %rcx
000000010000417c cmpl 0x8(%rcx), %eax
000000010000417f jge 0x1000041d6
0000000100004185 movl -0x20(%rbp), %esi
0000000100004188 movl -0x20(%rbp), %edi
000000010000418b movq -0x40(%rbp), %rax
000000010000418f movq (%rax), %rcx
0000000100004192 movq %rcx, (%rsp)
0000000100004196 movq 0x8(%rax), %rcx
000000010000419a movq %rcx, 0x8(%rsp)
000000010000419f movq 0x10(%rax), %rcx
00000001000041a3 movq %rcx, 0x10(%rsp)
00000001000041a8 movl %esi, -0x4c(%rbp)
00000001000041ab callq _array_get
00000001000041b0 leaq -0x21(%rbp), %rcx
00000001000041b4 movb (%rax), %dl
00000001000041b6 movb %dl, -0x21(%rbp)
00000001000041b9 movq -0x30(%rbp), %rdi
00000001000041bd movl -0x4c(%rbp), %esi
00000001000041c0 movq %rcx, %rdx
00000001000041c3 callq _array_set
00000001000041c8 movl -0x20(%rbp), %eax
00000001000041cb addl $0x1, %eax
00000001000041ce movl %eax, -0x20(%rbp)
00000001000041d1 jmp 0x100004175
00000001000041d6 movq -0x48(%rbp), %rax
00000001000041da addq $0x70, %rsp
00000001000041de popq %rbp
00000001000041df retq
_new_map:
00000001000041e0 pushq %rbp
00000001000041e1 movq %rsp, %rbp
00000001000041e4 subq $0x20, %rsp
00000001000041e8 movq %rdi, %rax
00000001000041eb xorl %ecx, %ecx
00000001000041ed movl $0x18, %r8d
00000001000041f3 movl %r8d, %r9d
00000001000041f6 movl %esi, -0x4(%rbp)
00000001000041f9 movl %edx, -0x8(%rbp)
00000001000041fc movq %rdi, %r10
00000001000041ff movq %rdi, -0x10(%rbp)
0000000100004203 movq %r10, %rdi
0000000100004206 movl %ecx, %esi
0000000100004208 movq %r9, %rdx
000000010000420b movq %rax, -0x18(%rbp)
000000010000420f callq 0x10000a604 ## symbol stub for: _memset
0000000100004214 movl -0x8(%rbp), %ecx
0000000100004217 movq -0x10(%rbp), %rax
000000010000421b movl %ecx, (%rax)
000000010000421d movq -0x18(%rbp), %rax
0000000100004221 addq $0x20, %rsp
0000000100004225 popq %rbp
0000000100004226 retq
0000000100004227 nopw (%rax,%rax)
_new_map_init:
0000000100004230 pushq %rbp
0000000100004231 movq %rsp, %rbp
0000000100004234 subq $0x40, %rsp
0000000100004238 movq %rdi, %rax
000000010000423b xorl %r9d, %r9d
000000010000423e movl $0x18, %r10d
0000000100004244 movl %r10d, %r11d
0000000100004247 movl %esi, -0x4(%rbp)
000000010000424a movl %edx, -0x8(%rbp)
000000010000424d movq %rcx, -0x10(%rbp)
0000000100004251 movq %r8, -0x18(%rbp)
0000000100004255 movq %rdi, %rcx
0000000100004258 movq %rdi, -0x30(%rbp)
000000010000425c movq %rcx, %rdi
000000010000425f movl %r9d, %esi
0000000100004262 movq %r11, %rdx
0000000100004265 movq %rax, -0x38(%rbp)
0000000100004269 callq 0x10000a604 ## symbol stub for: _memset
000000010000426e movl -0x8(%rbp), %esi
0000000100004271 movq -0x30(%rbp), %rax
0000000100004275 movl %esi, (%rax)
0000000100004277 movl $0x0, -0x1c(%rbp)
000000010000427e movl -0x1c(%rbp), %esi
0000000100004281 movl %esi, -0x20(%rbp)
0000000100004284 movl -0x20(%rbp), %eax
0000000100004287 cmpl -0x4(%rbp), %eax
000000010000428a jge 0x1000042dd
0000000100004290 movl -0x20(%rbp), %eax
0000000100004293 movl %eax, -0x24(%rbp)
0000000100004296 movq -0x10(%rbp), %rcx
000000010000429a movslq -0x24(%rbp), %rdx
000000010000429e shlq $0x4, %rdx
00000001000042a2 addq %rdx, %rcx
00000001000042a5 movq -0x18(%rbp), %rdx
00000001000042a9 movl -0x24(%rbp), %eax
00000001000042ac imull -0x8(%rbp), %eax
00000001000042b0 movslq %eax, %rsi
00000001000042b3 addq %rsi, %rdx
00000001000042b6 movq (%rcx), %rsi
00000001000042b9 movl 0x8(%rcx), %eax
00000001000042bc movq -0x30(%rbp), %rdi
00000001000042c0 movq %rdx, -0x40(%rbp)
00000001000042c4 movl %eax, %edx
00000001000042c6 movq -0x40(%rbp), %rcx
00000001000042ca callq _map_set
00000001000042cf movl -0x20(%rbp), %eax
00000001000042d2 addl $0x1, %eax
00000001000042d5 movl %eax, -0x20(%rbp)
00000001000042d8 jmp 0x100004284
00000001000042dd movq -0x38(%rbp), %rax
00000001000042e1 addq $0x40, %rsp
00000001000042e5 popq %rbp
00000001000042e6 retq
00000001000042e7 nopw (%rax,%rax)
_map_set:
00000001000042f0 pushq %rbp
00000001000042f1 movq %rsp, %rbp
00000001000042f4 subq $0x20, %rsp
00000001000042f8 movq %rsi, -0x10(%rbp)
00000001000042fc movl %edx, -0x8(%rbp)
00000001000042ff movq %rdi, -0x18(%rbp)
0000000100004303 movq %rcx, -0x20(%rbp)
0000000100004307 movq -0x18(%rbp), %rcx
000000010000430b movq 0x8(%rcx), %rcx
000000010000430f movq %rcx, %rdi
0000000100004312 callq _isnil
0000000100004317 testb $0x1, %al
0000000100004319 jne 0x100004324
000000010000431f jmp 0x100004354
0000000100004324 movq -0x20(%rbp), %rdx
0000000100004328 movq -0x18(%rbp), %rax
000000010000432c movl (%rax), %ecx
000000010000432e movq -0x10(%rbp), %rdi
0000000100004332 movl -0x8(%rbp), %esi
0000000100004335 callq _new_node
000000010000433a movq -0x18(%rbp), %rdx
000000010000433e movq %rax, 0x8(%rdx)
0000000100004342 movq -0x18(%rbp), %rax
0000000100004346 movl 0x10(%rax), %ecx
0000000100004349 addl $0x1, %ecx
000000010000434c movl %ecx, 0x10(%rax)
000000010000434f jmp 0x100004370
0000000100004354 movq -0x18(%rbp), %rdi
0000000100004358 movq -0x18(%rbp), %rax
000000010000435c movq 0x8(%rax), %rsi
0000000100004360 movq -0x20(%rbp), %r8
0000000100004364 movq -0x10(%rbp), %rdx
0000000100004368 movl -0x8(%rbp), %ecx
000000010000436b callq _map_insert
0000000100004370 addq $0x20, %rsp
0000000100004374 popq %rbp
0000000100004375 retq
0000000100004376 nopw %cs:(%rax,%rax)
_new_node:
0000000100004380 pushq %rbp
0000000100004381 movq %rsp, %rbp
0000000100004384 subq $0x60, %rsp
0000000100004388 movq %rdi, -0x10(%rbp)
000000010000438c movl %esi, -0x8(%rbp)
000000010000438f movq %rdx, -0x18(%rbp)
0000000100004393 movl %ecx, -0x1c(%rbp)
0000000100004396 movq $0x0, -0x58(%rbp)
000000010000439e movq $0x0, -0x50(%rbp)
00000001000043a6 movb $0x0, -0x48(%rbp)
00000001000043aa movq -0x10(%rbp), %rdx
00000001000043ae movq %rdx, -0x40(%rbp)
00000001000043b2 movq -0x8(%rbp), %rdx
00000001000043b6 movq %rdx, -0x38(%rbp)
00000001000043ba movl -0x1c(%rbp), %edi
00000001000043bd callq _v_malloc
00000001000043c2 movl $0x30, %esi
00000001000043c7 leaq -0x58(%rbp), %rdx
00000001000043cb movq %rax, -0x30(%rbp)
00000001000043cf movq %rdx, %rdi
00000001000043d2 callq _memdup
00000001000043d7 movq $-0x1, %rcx
00000001000043de movq %rax, -0x28(%rbp)
00000001000043e2 movq -0x28(%rbp), %rax
00000001000043e6 movq 0x28(%rax), %rdi
00000001000043ea movq -0x18(%rbp), %rsi
00000001000043ee movslq -0x1c(%rbp), %rdx
00000001000043f2 callq 0x10000a598 ## symbol stub for: ___memcpy_chk
00000001000043f7 movq -0x28(%rbp), %rcx
00000001000043fb movq %rax, -0x60(%rbp)
00000001000043ff movq %rcx, %rax
0000000100004402 addq $0x60, %rsp
0000000100004406 popq %rbp
0000000100004407 retq
0000000100004408 nopl (%rax,%rax)
_map_insert:
0000000100004410 pushq %rbp
0000000100004411 movq %rsp, %rbp
0000000100004414 subq $0x30, %rsp
0000000100004418 movq %rdx, -0x10(%rbp)
000000010000441c movl %ecx, -0x8(%rbp)
000000010000441f movq %rdi, -0x18(%rbp)
0000000100004423 movq %rsi, -0x20(%rbp)
0000000100004427 movq %r8, -0x28(%rbp)
000000010000442b movq -0x20(%rbp), %rdx
000000010000442f movq 0x18(%rdx), %rdi
0000000100004433 movl 0x20(%rdx), %esi
0000000100004436 movq -0x10(%rbp), %rdx
000000010000443a movl -0x8(%rbp), %ecx
000000010000443d callq _string_eq
0000000100004442 testb $0x1, %al
0000000100004444 jne 0x10000444f
000000010000444a jmp 0x100004477
000000010000444f movq $-0x1, %rcx
0000000100004456 movq -0x20(%rbp), %rax
000000010000445a movq 0x28(%rax), %rdi
000000010000445e movq -0x28(%rbp), %rsi
0000000100004462 movq -0x18(%rbp), %rax
0000000100004466 movslq (%rax), %rdx
0000000100004469 callq 0x10000a598 ## symbol stub for: ___memcpy_chk
000000010000446e movq %rax, -0x30(%rbp)
0000000100004472 jmp 0x100004553
0000000100004477 movq -0x20(%rbp), %rax
000000010000447b movq 0x18(%rax), %rdi
000000010000447f movl 0x20(%rax), %esi
0000000100004482 movq -0x10(%rbp), %rdx
0000000100004486 movl -0x8(%rbp), %ecx
0000000100004489 callq _string_gt
000000010000448e testb $0x1, %al
0000000100004490 jne 0x10000449b
0000000100004496 jmp 0x1000044f8
000000010000449b movq -0x20(%rbp), %rax
000000010000449f cmpq $0x0, (%rax)
00000001000044a3 jne 0x1000044d8
00000001000044a9 movq -0x28(%rbp), %rdx
00000001000044ad movq -0x18(%rbp), %rax
00000001000044b1 movl (%rax), %ecx
00000001000044b3 movq -0x10(%rbp), %rdi
00000001000044b7 movl -0x8(%rbp), %esi
00000001000044ba callq _new_node
00000001000044bf movq -0x20(%rbp), %rdx
00000001000044c3 movq %rax, (%rdx)
00000001000044c6 movq -0x18(%rbp), %rax
00000001000044ca movl 0x10(%rax), %ecx
00000001000044cd addl $0x1, %ecx
00000001000044d0 movl %ecx, 0x10(%rax)
00000001000044d3 jmp 0x1000044f3
00000001000044d8 movq -0x18(%rbp), %rdi
00000001000044dc movq -0x20(%rbp), %rax
00000001000044e0 movq (%rax), %rsi
00000001000044e3 movq -0x28(%rbp), %r8
00000001000044e7 movq -0x10(%rbp), %rdx
00000001000044eb movl -0x8(%rbp), %ecx
00000001000044ee callq _map_insert
00000001000044f3 jmp 0x100004553
00000001000044f8 movq -0x20(%rbp), %rax
00000001000044fc cmpq $0x0, 0x8(%rax)
0000000100004501 jne 0x100004537
0000000100004507 movq -0x28(%rbp), %rdx
000000010000450b movq -0x18(%rbp), %rax
000000010000450f movl (%rax), %ecx
0000000100004511 movq -0x10(%rbp), %rdi
0000000100004515 movl -0x8(%rbp), %esi
0000000100004518 callq _new_node
000000010000451d movq -0x20(%rbp), %rdx
0000000100004521 movq %rax, 0x8(%rdx)
0000000100004525 movq -0x18(%rbp), %rax
0000000100004529 movl 0x10(%rax), %ecx
000000010000452c addl $0x1, %ecx
000000010000452f movl %ecx, 0x10(%rax)
0000000100004532 jmp 0x100004553
0000000100004537 movq -0x18(%rbp), %rdi
000000010000453b movq -0x20(%rbp), %rax
000000010000453f movq 0x8(%rax), %rsi
0000000100004543 movq -0x28(%rbp), %r8
0000000100004547 movq -0x10(%rbp), %rdx
000000010000454b movl -0x8(%rbp), %ecx
000000010000454e callq _map_insert
0000000100004553 addq $0x30, %rsp
0000000100004557 popq %rbp
0000000100004558 retq
0000000100004559 nopl (%rax)
_string_gt:
0000000100004560 pushq %rbp
0000000100004561 movq %rsp, %rbp
0000000100004564 subq $0x20, %rsp
0000000100004568 movq %rdi, -0x10(%rbp)
000000010000456c movl %esi, -0x8(%rbp)
000000010000456f movq %rdx, -0x20(%rbp)
0000000100004573 movl %ecx, -0x18(%rbp)
0000000100004576 movq -0x10(%rbp), %rdi
000000010000457a movl -0x8(%rbp), %esi
000000010000457d movq -0x20(%rbp), %rdx
0000000100004581 movl -0x18(%rbp), %ecx
0000000100004584 callq _string_le
0000000100004589 xorb $-0x1, %al
000000010000458b andb $0x1, %al
000000010000458d movzbl %al, %eax
0000000100004590 addq $0x20, %rsp
0000000100004594 popq %rbp
0000000100004595 retq
0000000100004596 nopw %cs:(%rax,%rax)
_mapnode_find:
00000001000045a0 pushq %rbp
00000001000045a1 movq %rsp, %rbp
00000001000045a4 subq $0x40, %rsp
00000001000045a8 movq %rsi, -0x18(%rbp)
00000001000045ac movl %edx, -0x10(%rbp)
00000001000045af movq %rdi, -0x20(%rbp)
00000001000045b3 movq %rcx, -0x28(%rbp)
00000001000045b7 movl %r8d, -0x2c(%rbp)
00000001000045bb movq -0x20(%rbp), %rcx
00000001000045bf movq 0x18(%rcx), %rdi
00000001000045c3 movl 0x20(%rcx), %esi
00000001000045c6 movq -0x18(%rbp), %rdx
00000001000045ca movl -0x10(%rbp), %ecx
00000001000045cd callq _string_eq
00000001000045d2 testb $0x1, %al
00000001000045d4 jne 0x1000045df
00000001000045da jmp 0x100004608
00000001000045df movq $-0x1, %rcx
00000001000045e6 movq -0x28(%rbp), %rdi
00000001000045ea movq -0x20(%rbp), %rax
00000001000045ee movq 0x28(%rax), %rsi
00000001000045f2 movslq -0x2c(%rbp), %rdx
00000001000045f6 callq 0x10000a598 ## symbol stub for: ___memcpy_chk
00000001000045fb movb $0x1, -0x1(%rbp)
00000001000045ff movq %rax, -0x38(%rbp)
0000000100004603 jmp 0x1000046a1
0000000100004608 movq -0x20(%rbp), %rax
000000010000460c movq 0x18(%rax), %rdi
0000000100004610 movl 0x20(%rax), %esi
0000000100004613 movq -0x18(%rbp), %rdx
0000000100004617 movl -0x10(%rbp), %ecx
000000010000461a callq _string_gt
000000010000461f testb $0x1, %al
0000000100004621 jne 0x10000462c
0000000100004627 jmp 0x100004668
000000010000462c movq -0x20(%rbp), %rax
0000000100004630 cmpq $0x0, (%rax)
0000000100004634 jne 0x100004643
000000010000463a movb $0x0, -0x1(%rbp)
000000010000463e jmp 0x1000046a1
0000000100004643 movq -0x20(%rbp), %rax
0000000100004647 movq (%rax), %rdi
000000010000464a movq -0x28(%rbp), %rcx
000000010000464e movl -0x2c(%rbp), %r8d
0000000100004652 movq -0x18(%rbp), %rsi
0000000100004656 movl -0x10(%rbp), %edx
0000000100004659 callq _mapnode_find
000000010000465e andb $0x1, %al
0000000100004660 movb %al, -0x1(%rbp)
0000000100004663 jmp 0x1000046a1
0000000100004668 movq -0x20(%rbp), %rax
000000010000466c cmpq $0x0, 0x8(%rax)
0000000100004671 jne 0x100004680
0000000100004677 movb $0x0, -0x1(%rbp)
000000010000467b jmp 0x1000046a1
0000000100004680 movq -0x20(%rbp), %rax
0000000100004684 movq 0x8(%rax), %rdi
0000000100004688 movq -0x28(%rbp), %rcx
000000010000468c movl -0x2c(%rbp), %r8d
0000000100004690 movq -0x18(%rbp), %rsi
0000000100004694 movl -0x10(%rbp), %edx
0000000100004697 callq _mapnode_find
000000010000469c andb $0x1, %al
000000010000469e movb %al, -0x1(%rbp)
00000001000046a1 movb -0x1(%rbp), %al
00000001000046a4 andb $0x1, %al
00000001000046a6 movzbl %al, %eax
00000001000046a9 addq $0x40, %rsp
00000001000046ad popq %rbp
00000001000046ae retq
00000001000046af nop
_mapnode_find2:
00000001000046b0 pushq %rbp
00000001000046b1 movq %rsp, %rbp
00000001000046b4 subq $0x30, %rsp
00000001000046b8 movq %rsi, -0x18(%rbp)
00000001000046bc movl %edx, -0x10(%rbp)
00000001000046bf movq %rdi, -0x20(%rbp)
00000001000046c3 movl %ecx, -0x24(%rbp)
00000001000046c6 movq -0x20(%rbp), %rsi
00000001000046ca movq 0x18(%rsi), %rdi
00000001000046ce movl 0x20(%rsi), %esi
00000001000046d1 movq -0x18(%rbp), %rdx
00000001000046d5 movl -0x10(%rbp), %ecx
00000001000046d8 callq _string_eq
00000001000046dd testb $0x1, %al
00000001000046df jne 0x1000046ea
00000001000046e5 jmp 0x1000046f3
00000001000046ea movb $0x1, -0x1(%rbp)
00000001000046ee jmp 0x10000479e
00000001000046f3 movq -0x20(%rbp), %rax
00000001000046f7 movq 0x18(%rax), %rdi
00000001000046fb movl 0x20(%rax), %esi
00000001000046fe movq -0x18(%rbp), %rdx
0000000100004702 movl -0x10(%rbp), %ecx
0000000100004705 callq _string_gt
000000010000470a testb $0x1, %al
000000010000470c jne 0x100004717
0000000100004712 jmp 0x10000475c
0000000100004717 movq -0x20(%rbp), %rax
000000010000471b movq (%rax), %rax
000000010000471e movq %rax, %rdi
0000000100004721 callq _isnil
0000000100004726 testb $0x1, %al
0000000100004728 jne 0x100004733
000000010000472e jmp 0x10000473c
0000000100004733 movb $0x0, -0x1(%rbp)
0000000100004737 jmp 0x10000479e
000000010000473c movq -0x20(%rbp), %rax
0000000100004740 movq (%rax), %rdi
0000000100004743 movl -0x24(%rbp), %ecx
0000000100004746 movq -0x18(%rbp), %rsi
000000010000474a movl -0x10(%rbp), %edx
000000010000474d callq _mapnode_find2
0000000100004752 andb $0x1, %al
0000000100004754 movb %al, -0x1(%rbp)
0000000100004757 jmp 0x10000479e
000000010000475c movq -0x20(%rbp), %rax
0000000100004760 movq 0x8(%rax), %rax
0000000100004764 movq %rax, %rdi
0000000100004767 callq _isnil
000000010000476c testb $0x1, %al
000000010000476e jne 0x100004779
0000000100004774 jmp 0x100004782
0000000100004779 movb $0x0, -0x1(%rbp)
000000010000477d jmp 0x10000479e
0000000100004782 movq -0x20(%rbp), %rax
0000000100004786 movq 0x8(%rax), %rdi
000000010000478a movl -0x24(%rbp), %ecx
000000010000478d movq -0x18(%rbp), %rsi
0000000100004791 movl -0x10(%rbp), %edx
0000000100004794 callq _mapnode_find2
0000000100004799 andb $0x1, %al
000000010000479b movb %al, -0x1(%rbp)
000000010000479e movb -0x1(%rbp), %al
00000001000047a1 andb $0x1, %al
00000001000047a3 movzbl %al, %eax
00000001000047a6 addq $0x30, %rsp
00000001000047aa popq %rbp
00000001000047ab retq
00000001000047ac nopl (%rax)
_preorder_keys:
00000001000047b0 pushq %rbp
00000001000047b1 movq %rsp, %rbp
00000001000047b4 subq $0x40, %rsp
00000001000047b8 movq 0x8879(%rip), %rax ## literal pool symbol address: ___stack_chk_guard
00000001000047bf movq (%rax), %rax
00000001000047c2 movq %rax, -0x8(%rbp)
00000001000047c6 movq %rdi, -0x20(%rbp)
00000001000047ca movq %rsi, -0x28(%rbp)
00000001000047ce movl %edx, -0x2c(%rbp)
00000001000047d1 movl -0x2c(%rbp), %edx
00000001000047d4 movl %edx, -0x30(%rbp)
00000001000047d7 movq -0x20(%rbp), %rax
00000001000047db testb $0x1, 0x10(%rax)
00000001000047df jne 0x100004815
00000001000047e5 leaq -0x18(%rbp), %rax
00000001000047e9 movq -0x28(%rbp), %rdi
00000001000047ed movl -0x30(%rbp), %esi
00000001000047f0 movq -0x20(%rbp), %rcx
00000001000047f4 movq 0x18(%rcx), %rdx
00000001000047f8 movq %rdx, -0x18(%rbp)
00000001000047fc movq 0x20(%rcx), %rcx
0000000100004800 movq %rcx, -0x10(%rbp)
0000000100004804 movq %rax, %rdx
0000000100004807 callq _array_set
000000010000480c movl -0x30(%rbp), %esi
000000010000480f addl $0x1, %esi
0000000100004812 movl %esi, -0x30(%rbp)
0000000100004815 movq -0x20(%rbp), %rax
0000000100004819 movq (%rax), %rax
000000010000481c movq %rax, %rdi
000000010000481f callq _isnil
0000000100004824 testb $0x1, %al
0000000100004826 jne 0x100004842
000000010000482c movq -0x20(%rbp), %rax
0000000100004830 movq (%rax), %rdi
0000000100004833 movq -0x28(%rbp), %rsi
0000000100004837 movl -0x30(%rbp), %edx
000000010000483a callq _preorder_keys
000000010000483f movl %eax, -0x30(%rbp)
0000000100004842 movq -0x20(%rbp), %rax
0000000100004846 movq 0x8(%rax), %rax
000000010000484a movq %rax, %rdi
000000010000484d callq _isnil
0000000100004852 testb $0x1, %al
0000000100004854 jne 0x100004871
000000010000485a movq -0x20(%rbp), %rax
000000010000485e movq 0x8(%rax), %rdi
0000000100004862 movq -0x28(%rbp), %rsi
0000000100004866 movl -0x30(%rbp), %edx
0000000100004869 callq _preorder_keys
000000010000486e movl %eax, -0x30(%rbp)
0000000100004871 movl -0x30(%rbp), %eax
0000000100004874 movq 0x87bd(%rip), %rcx ## literal pool symbol address: ___stack_chk_guard
000000010000487b movq (%rcx), %rcx
000000010000487e movq -0x8(%rbp), %rdx
0000000100004882 cmpq %rdx, %rcx
0000000100004885 movl %eax, -0x34(%rbp)
0000000100004888 jne 0x100004897
000000010000488e movl -0x34(%rbp), %eax
0000000100004891 addq $0x40, %rsp
0000000100004895 popq %rbp
0000000100004896 retq
0000000100004897 callq 0x10000a5b0 ## symbol stub for: ___stack_chk_fail
000000010000489c ud2
000000010000489e nop
_map_keys:
00000001000048a0 pushq %rbp
00000001000048a1 movq %rsp, %rbp
00000001000048a4 subq $0x90, %rsp
00000001000048ab movq %rdi, %rax
00000001000048ae leaq 0x6104(%rip), %rcx ## literal pool for: ""
00000001000048b5 movq 0x877c(%rip), %rdx ## literal pool symbol address: ___stack_chk_guard
00000001000048bc movq (%rdx), %rdx
00000001000048bf movq %rdx, -0x8(%rbp)
00000001000048c3 movq %rsi, -0x38(%rbp)
00000001000048c7 movq %rdi, -0x58(%rbp)
00000001000048cb movq %rcx, %rdi
00000001000048ce movq %rax, -0x60(%rbp)
00000001000048d2 callq _tos3
00000001000048d7 leaq -0x50(%rbp), %rdi
00000001000048db movl $0x1, %r8d
00000001000048e1 movl $0x10, %ecx
00000001000048e6 leaq -0x18(%rbp), %rsi
00000001000048ea movq %rax, -0x18(%rbp)
00000001000048ee movl %edx, -0x10(%rbp)
00000001000048f1 movq %rsi, -0x68(%rbp)
00000001000048f5 movl %r8d, %esi
00000001000048f8 movl %r8d, %edx
00000001000048fb movq -0x68(%rbp), %r8
00000001000048ff callq _new_array_from_c_array
0000000100004904 leaq -0x50(%rbp), %rax
0000000100004908 movq -0x38(%rbp), %rdi
000000010000490c movl 0x10(%rdi), %esi
000000010000490f movq -0x58(%rbp), %rdi
0000000100004913 movq (%rax), %r8
0000000100004916 movq %r8, (%rsp)
000000010000491a movq 0x8(%rax), %r8
000000010000491e movq %r8, 0x8(%rsp)
0000000100004923 movq 0x10(%rax), %rax
0000000100004927 movq %rax, 0x10(%rsp)
000000010000492c callq _array_repeat
0000000100004931 movq -0x38(%rbp), %rax
0000000100004935 movq 0x8(%rax), %rax
0000000100004939 movq %rax, %rdi
000000010000493c callq _isnil
0000000100004941 testb $0x1, %al
0000000100004943 jne 0x10000494e
0000000100004949 jmp 0x100004953
000000010000494e jmp 0x100004984
0000000100004953 xorl %edx, %edx
0000000100004955 leaq -0x30(%rbp), %rsi
0000000100004959 movq -0x38(%rbp), %rax
000000010000495d movq 0x8(%rax), %rdi
0000000100004961 movq -0x58(%rbp), %rax
0000000100004965 movq (%rax), %rcx
0000000100004968 movq %rcx, -0x30(%rbp)
000000010000496c movq 0x8(%rax), %rcx
0000000100004970 movq %rcx, -0x28(%rbp)
0000000100004974 movq 0x10(%rax), %rcx
0000000100004978 movq %rcx, -0x20(%rbp)
000000010000497c callq _preorder_keys
0000000100004981 movl %eax, -0x6c(%rbp)
0000000100004984 movq 0x86ad(%rip), %rax ## literal pool symbol address: ___stack_chk_guard
000000010000498b movq (%rax), %rax
000000010000498e movq -0x8(%rbp), %rcx
0000000100004992 cmpq %rcx, %rax
0000000100004995 jne 0x1000049a8
000000010000499b movq -0x60(%rbp), %rax
000000010000499f addq $0x90, %rsp
00000001000049a6 popq %rbp
00000001000049a7 retq
00000001000049a8 callq 0x10000a5b0 ## symbol stub for: ___stack_chk_fail
00000001000049ad ud2
00000001000049af nop
_map_get:
00000001000049b0 pushq %rbp
00000001000049b1 movq %rsp, %rbp
00000001000049b4 subq $0x30, %rsp
00000001000049b8 leaq 0x10(%rbp), %rax
00000001000049bc movq %rdi, -0x18(%rbp)
00000001000049c0 movl %esi, -0x10(%rbp)
00000001000049c3 movq %rdx, -0x20(%rbp)
00000001000049c7 cmpq $0x0, 0x8(%rax)
00000001000049cc movq %rax, -0x28(%rbp)
00000001000049d0 jne 0x1000049df
00000001000049d6 movb $0x0, -0x1(%rbp)
00000001000049da jmp 0x1000049ff
00000001000049df movq -0x28(%rbp), %rax
00000001000049e3 movq 0x8(%rax), %rdi
00000001000049e7 movq -0x20(%rbp), %rcx
00000001000049eb movl (%rax), %r8d
00000001000049ee movq -0x18(%rbp), %rsi
00000001000049f2 movl -0x10(%rbp), %edx
00000001000049f5 callq _mapnode_find
00000001000049fa andb $0x1, %al
00000001000049fc movb %al, -0x1(%rbp)
00000001000049ff movb -0x1(%rbp), %al
0000000100004a02 andb $0x1, %al
0000000100004a04 movzbl %al, %eax
0000000100004a07 addq $0x30, %rsp
0000000100004a0b popq %rbp
0000000100004a0c retq
0000000100004a0d nopl (%rax)
_v_mapnode_delete:
0000000100004a10 pushq %rbp
0000000100004a11 movq %rsp, %rbp
0000000100004a14 subq $0x30, %rsp
0000000100004a18 movq %rsi, -0x10(%rbp)
0000000100004a1c movl %edx, -0x8(%rbp)
0000000100004a1f movq %rdi, -0x18(%rbp)
0000000100004a23 movl %ecx, -0x1c(%rbp)
0000000100004a26 movq -0x18(%rbp), %rsi
0000000100004a2a movq 0x18(%rsi), %rdi
0000000100004a2e movl 0x20(%rsi), %esi
0000000100004a31 movq -0x10(%rbp), %rdx
0000000100004a35 movl -0x8(%rbp), %ecx
0000000100004a38 callq _string_eq
0000000100004a3d testb $0x1, %al
0000000100004a3f jne 0x100004a4a
0000000100004a45 jmp 0x100004a75
0000000100004a4a xorl %esi, %esi
0000000100004a4c movq $-0x1, %rcx
0000000100004a53 movq -0x18(%rbp), %rax
0000000100004a57 movq 0x28(%rax), %rdi
0000000100004a5b movslq -0x1c(%rbp), %rdx
0000000100004a5f callq 0x10000a5a4 ## symbol stub for: ___memset_chk
0000000100004a64 movq -0x18(%rbp), %rcx
0000000100004a68 movb $0x1, 0x10(%rcx)
0000000100004a6c movq %rax, -0x28(%rbp)
0000000100004a70 jmp 0x100004b18
0000000100004a75 movq -0x18(%rbp), %rax
0000000100004a79 movq 0x18(%rax), %rdi
0000000100004a7d movl 0x20(%rax), %esi
0000000100004a80 movq -0x10(%rbp), %rdx
0000000100004a84 movl -0x8(%rbp), %ecx
0000000100004a87 callq _string_gt
0000000100004a8c testb $0x1, %al
0000000100004a8e jne 0x100004a99
0000000100004a94 jmp 0x100004ad5
0000000100004a99 movq -0x18(%rbp), %rax
0000000100004a9d movq (%rax), %rax
0000000100004aa0 movq %rax, %rdi
0000000100004aa3 callq _isnil
0000000100004aa8 testb $0x1, %al
0000000100004aaa jne 0x100004ab5
0000000100004ab0 jmp 0x100004aba
0000000100004ab5 jmp 0x100004b18
0000000100004aba movq -0x18(%rbp), %rax
0000000100004abe movq (%rax), %rdi
0000000100004ac1 movl -0x1c(%rbp), %ecx
0000000100004ac4 movq -0x10(%rbp), %rsi
0000000100004ac8 movl -0x8(%rbp), %edx
0000000100004acb callq _v_mapnode_delete
0000000100004ad0 jmp 0x100004b13
0000000100004ad5 movq -0x18(%rbp), %rax
0000000100004ad9 movq 0x8(%rax), %rax
0000000100004add movq %rax, %rdi
0000000100004ae0 callq _isnil
0000000100004ae5 testb $0x1, %al
0000000100004ae7 jne 0x100004af2
0000000100004aed jmp 0x100004af7
0000000100004af2 jmp 0x100004b18
0000000100004af7 movq -0x18(%rbp), %rax
0000000100004afb movq 0x8(%rax), %rdi
0000000100004aff movl -0x1c(%rbp), %ecx
0000000100004b02 movq -0x10(%rbp), %rsi
0000000100004b06 movl -0x8(%rbp), %edx
0000000100004b09 callq _v_mapnode_delete
0000000100004b0e jmp 0x100004b13
0000000100004b13 jmp 0x100004b18
0000000100004b18 addq $0x30, %rsp
0000000100004b1c popq %rbp
0000000100004b1d retq
0000000100004b1e nop
_v_map_delete:
0000000100004b20 pushq %rbp
0000000100004b21 movq %rsp, %rbp
0000000100004b24 subq $0x20, %rsp
0000000100004b28 movq %rsi, -0x10(%rbp)
0000000100004b2c movl %edx, -0x8(%rbp)
0000000100004b2f movq %rdi, -0x18(%rbp)
0000000100004b33 movq -0x18(%rbp), %rsi
0000000100004b37 movq 0x8(%rsi), %rdi
0000000100004b3b movq -0x18(%rbp), %rsi
0000000100004b3f movl (%rsi), %ecx
0000000100004b41 movq -0x10(%rbp), %rsi
0000000100004b45 movl -0x8(%rbp), %edx
0000000100004b48 callq _v_mapnode_delete
0000000100004b4d movq -0x18(%rbp), %rsi
0000000100004b51 movl 0x10(%rsi), %ecx
0000000100004b54 addl $-0x1, %ecx
0000000100004b57 movl %ecx, 0x10(%rsi)
0000000100004b5a addq $0x20, %rsp
0000000100004b5e popq %rbp
0000000100004b5f retq
_map_exists:
0000000100004b60 pushq %rbp
0000000100004b61 movq %rsp, %rbp
0000000100004b64 subq $0x20, %rsp
0000000100004b68 leaq 0x10(%rbp), %rax
0000000100004b6c movq %rdi, -0x10(%rbp)
0000000100004b70 movl %esi, -0x8(%rbp)
0000000100004b73 movq 0x8(%rax), %rdi
0000000100004b77 movq %rax, -0x18(%rbp)
0000000100004b7b callq _isnil
0000000100004b80 xorl %esi, %esi
0000000100004b82 movb %sil, %cl
0000000100004b85 testb $0x1, %al
0000000100004b87 movb %cl, -0x19(%rbp)
0000000100004b8a jne 0x100004ba9
0000000100004b90 movq -0x18(%rbp), %rax
0000000100004b94 movq 0x8(%rax), %rdi
0000000100004b98 movl (%rax), %ecx
0000000100004b9a movq -0x10(%rbp), %rsi
0000000100004b9e movl -0x8(%rbp), %edx
0000000100004ba1 callq _mapnode_find2
0000000100004ba6 movb %al, -0x19(%rbp)
0000000100004ba9 movb -0x19(%rbp), %al
0000000100004bac andb $0x1, %al
0000000100004bae movzbl %al, %eax
0000000100004bb1 addq $0x20, %rsp
0000000100004bb5 popq %rbp
0000000100004bb6 retq
0000000100004bb7 nopw (%rax,%rax)
_map_print:
0000000100004bc0 pushq %rbp
0000000100004bc1 movq %rsp, %rbp
0000000100004bc4 subq $0x20, %rsp
0000000100004bc8 leaq 0x5deb(%rip), %rdi ## literal pool for: "<<<<<<<<"
0000000100004bcf callq _tos3
0000000100004bd4 movq %rax, -0x10(%rbp)
0000000100004bd8 movl %edx, -0x8(%rbp)
0000000100004bdb movq -0x10(%rbp), %rdi
0000000100004bdf movl -0x8(%rbp), %esi
0000000100004be2 callq _println
0000000100004be7 leaq 0x5dd5(%rip), %rdi ## literal pool for: ">>>>>>>>>>"
0000000100004bee callq _tos3
0000000100004bf3 movq %rax, -0x20(%rbp)
0000000100004bf7 movl %edx, -0x18(%rbp)
0000000100004bfa movq -0x20(%rbp), %rdi
0000000100004bfe movl -0x18(%rbp), %esi
0000000100004c01 callq _println
0000000100004c06 addq $0x20, %rsp
0000000100004c0a popq %rbp
0000000100004c0b retq
0000000100004c0c nopl (%rax)
_v_mapnode_free:
0000000100004c10 pushq %rbp
0000000100004c11 movq %rsp, %rbp
0000000100004c14 subq $0x10, %rsp
0000000100004c18 movq %rdi, -0x8(%rbp)
0000000100004c1c movq -0x8(%rbp), %rdi
0000000100004c20 cmpq $0x0, 0x28(%rdi)
0000000100004c25 je 0x100004c38
0000000100004c2b movq -0x8(%rbp), %rax
0000000100004c2f movq 0x28(%rax), %rdi
0000000100004c33 callq _v_free
0000000100004c38 movq -0x8(%rbp), %rax
0000000100004c3c cmpq $0x0, (%rax)
0000000100004c40 je 0x100004c52
0000000100004c46 movq -0x8(%rbp), %rax
0000000100004c4a movq (%rax), %rdi
0000000100004c4d callq _v_mapnode_free
0000000100004c52 movq -0x8(%rbp), %rax
0000000100004c56 cmpq $0x0, 0x8(%rax)
0000000100004c5b je 0x100004c6e
0000000100004c61 movq -0x8(%rbp), %rax
0000000100004c65 movq 0x8(%rax), %rdi
0000000100004c69 callq _v_mapnode_free
0000000100004c6e movq -0x8(%rbp), %rax
0000000100004c72 movq %rax, %rdi
0000000100004c75 callq _v_free
0000000100004c7a addq $0x10, %rsp
0000000100004c7e popq %rbp
0000000100004c7f retq
_v_map_free:
0000000100004c80 pushq %rbp
0000000100004c81 movq %rsp, %rbp
0000000100004c84 subq $0x10, %rsp
0000000100004c88 movq %rdi, -0x8(%rbp)
0000000100004c8c movq -0x8(%rbp), %rdi
0000000100004c90 cmpq $0x0, 0x8(%rdi)
0000000100004c95 jne 0x100004ca0
0000000100004c9b jmp 0x100004cad
0000000100004ca0 movq -0x8(%rbp), %rax
0000000100004ca4 movq 0x8(%rax), %rdi
0000000100004ca8 callq _v_mapnode_free
0000000100004cad addq $0x10, %rsp
0000000100004cb1 popq %rbp
0000000100004cb2 retq
0000000100004cb3 nopw %cs:(%rax,%rax)
_map_string_str:
0000000100004cc0 pushq %rbp
0000000100004cc1 movq %rsp, %rbp
0000000100004cc4 subq $0x100, %rsp
0000000100004ccb leaq 0x10(%rbp), %rax
0000000100004ccf cmpl $0x0, 0x10(%rax)
0000000100004cd3 movq %rax, -0xc0(%rbp)
0000000100004cda jne 0x100004cf8
0000000100004ce0 leaq 0x5ce7(%rip), %rdi ## literal pool for: "{}"
0000000100004ce7 callq _tos3
0000000100004cec movq %rax, -0x10(%rbp)
0000000100004cf0 movl %edx, -0x8(%rbp)
0000000100004cf3 jmp 0x100004ea6
0000000100004cf8 leaq -0x30(%rbp), %rdi
0000000100004cfc movl $0x32, %esi
0000000100004d01 callq _strings__new_builder
0000000100004d06 leaq 0x5cc4(%rip), %rdi ## literal pool for: "{"
0000000100004d0d callq _tos3
0000000100004d12 leaq -0x30(%rbp), %rdi
0000000100004d16 movq %rax, -0x40(%rbp)
0000000100004d1a movl %edx, -0x38(%rbp)
0000000100004d1d movq -0x40(%rbp), %rsi
0000000100004d21 movl -0x38(%rbp), %edx
0000000100004d24 callq _strings__Builder_writeln
0000000100004d29 leaq -0x70(%rbp), %rdi
0000000100004d2d leaq -0x58(%rbp), %rsi
0000000100004d31 movq -0xc0(%rbp), %rax
0000000100004d38 movq (%rax), %rcx
0000000100004d3b movq %rcx, -0x58(%rbp)
0000000100004d3f movq 0x8(%rax), %rcx
0000000100004d43 movq %rcx, -0x50(%rbp)
0000000100004d47 movq 0x10(%rax), %rcx
0000000100004d4b movq %rcx, -0x48(%rbp)
0000000100004d4f callq _map_keys
0000000100004d54 movl $0x0, -0x74(%rbp)
0000000100004d5b movl -0x74(%rbp), %eax
0000000100004d5e cmpl -0x68(%rbp), %eax
0000000100004d61 jge 0x100004e45
0000000100004d67 leaq -0x58(%rbp), %rax
0000000100004d6b leaq -0x98(%rbp), %rcx
0000000100004d72 xorl %esi, %esi
0000000100004d74 movl $0x10, %edx
0000000100004d79 movq -0x70(%rbp), %rdi
0000000100004d7d movslq -0x74(%rbp), %r8
0000000100004d81 shlq $0x4, %r8
0000000100004d85 addq %r8, %rdi
0000000100004d88 movq (%rdi), %r8
0000000100004d8b movq %r8, -0x88(%rbp)
0000000100004d92 movq 0x8(%rdi), %rdi
0000000100004d96 movq %rdi, -0x80(%rbp)
0000000100004d9a movq %rcx, %rdi
0000000100004d9d movq %rax, -0xc8(%rbp)
0000000100004da4 movq %rcx, -0xd0(%rbp)
0000000100004dab callq 0x10000a604 ## symbol stub for: _memset
0000000100004db0 movq -0xd0(%rbp), %rax
0000000100004db7 movq -0x88(%rbp), %rdi
0000000100004dbe movl -0x80(%rbp), %esi
0000000100004dc1 movq -0xc8(%rbp), %rcx
0000000100004dc8 movq (%rcx), %rdx
0000000100004dcb movq %rdx, (%rsp)
0000000100004dcf movq 0x8(%rcx), %rdx
0000000100004dd3 movq %rdx, 0x8(%rsp)
0000000100004dd8 movq 0x10(%rcx), %rdx
0000000100004ddc movq %rdx, 0x10(%rsp)
0000000100004de1 movq %rax, %rdx
0000000100004de4 callq _map_get
0000000100004de9 leaq 0x5be3(%rip), %rdi ## literal pool for: " \"%.*s\" => \"%.*s\""
0000000100004df0 movl -0x80(%rbp), %esi
0000000100004df3 movq -0x88(%rbp), %rdx
0000000100004dfa movl -0x90(%rbp), %ecx
0000000100004e00 movq -0x98(%rbp), %r8
0000000100004e07 movb %al, -0xd1(%rbp)
0000000100004e0d movb $0x0, %al
0000000100004e0f callq __STR
0000000100004e14 leaq -0x30(%rbp), %rdi
0000000100004e18 movq %rax, -0xa8(%rbp)
0000000100004e1f movl %edx, -0xa0(%rbp)
0000000100004e25 movq -0xa8(%rbp), %rsi
0000000100004e2c movl -0xa0(%rbp), %edx
0000000100004e32 callq _strings__Builder_writeln
0000000100004e37 movl -0x74(%rbp), %eax
0000000100004e3a addl $0x1, %eax
0000000100004e3d movl %eax, -0x74(%rbp)
0000000100004e40 jmp 0x100004d5b
0000000100004e45 leaq 0x5b9a(%rip), %rdi ## literal pool for: "}"
0000000100004e4c callq _tos3
0000000100004e51 leaq -0x30(%rbp), %rdi
0000000100004e55 movq %rax, -0xb8(%rbp)
0000000100004e5c movl %edx, -0xb0(%rbp)
0000000100004e62 movq -0xb8(%rbp), %rsi
0000000100004e69 movl -0xb0(%rbp), %edx
0000000100004e6f callq _strings__Builder_writeln
0000000100004e74 leaq -0x30(%rbp), %rax
0000000100004e78 movq (%rax), %rsi
0000000100004e7b movq %rsi, (%rsp)
0000000100004e7f movq 0x8(%rax), %rsi
0000000100004e83 movq %rsi, 0x8(%rsp)
0000000100004e88 movq 0x10(%rax), %rsi
0000000100004e8c movq %rsi, 0x10(%rsp)
0000000100004e91 movq 0x18(%rax), %rax
0000000100004e95 movq %rax, 0x18(%rsp)
0000000100004e9a callq _strings__Builder_str
0000000100004e9f movq %rax, -0x10(%rbp)
0000000100004ea3 movl %edx, -0x8(%rbp)
0000000100004ea6 movq -0x10(%rbp), %rax
0000000100004eaa movl -0x8(%rbp), %edx
0000000100004ead addq $0x100, %rsp
0000000100004eb4 popq %rbp
0000000100004eb5 retq
0000000100004eb6 nopw %cs:(%rax,%rax)
_strings__Builder_writeln:
0000000100004ec0 pushq %rbp
0000000100004ec1 movq %rsp, %rbp
0000000100004ec4 subq $0x20, %rsp
0000000100004ec8 movq %rsi, -0x10(%rbp)
0000000100004ecc movl %edx, -0x8(%rbp)
0000000100004ecf movq %rdi, -0x18(%rbp)
0000000100004ed3 movq -0x18(%rbp), %rdi
0000000100004ed7 movq -0x10(%rbp), %rsi
0000000100004edb movl -0x8(%rbp), %edx
0000000100004ede callq _array_push_many
0000000100004ee3 leaq -0x19(%rbp), %rsi
0000000100004ee7 movb $0xa, -0x19(%rbp)
0000000100004eeb movq -0x18(%rbp), %rdi
0000000100004eef callq _array_push
0000000100004ef4 movl -0x8(%rbp), %edx
0000000100004ef7 addl $0x1, %edx
0000000100004efa movq -0x18(%rbp), %rsi
0000000100004efe addl 0x18(%rsi), %edx
0000000100004f01 movl %edx, 0x18(%rsi)
0000000100004f04 addq $0x20, %rsp
0000000100004f08 popq %rbp
0000000100004f09 retq
0000000100004f0a nopw (%rax,%rax)
_opt_ok:
0000000100004f10 pushq %rbp
0000000100004f11 movq %rsp, %rbp
0000000100004f14 subq $0x50, %rsp
0000000100004f18 movq %rdi, %rax
0000000100004f1b movq %rsi, -0x8(%rbp)
0000000100004f1f movl %edx, -0xc(%rbp)
0000000100004f22 cmpl $0xff, -0xc(%rbp)
0000000100004f29 movq %rax, -0x28(%rbp)
0000000100004f2d movq %rdi, -0x30(%rbp)
0000000100004f31 jl 0x100004f5b
0000000100004f37 leaq 0x5aaa(%rip), %rdi ## literal pool for: "option size too big: %d (max is 255), this is a temporary limit"
0000000100004f3e movl -0xc(%rbp), %esi
0000000100004f41 movb $0x0, %al
0000000100004f43 callq __STR
0000000100004f48 movq %rax, -0x20(%rbp)
0000000100004f4c movl %edx, -0x18(%rbp)
0000000100004f4f movq -0x20(%rbp), %rdi
0000000100004f53 movl -0x18(%rbp), %esi
0000000100004f56 callq _v_panic
0000000100004f5b leaq 0x5a57(%rip), %rdi ## literal pool for: ""
0000000100004f62 xorl %eax, %eax
0000000100004f64 movl $0x118, %ecx
0000000100004f69 movl %ecx, %edx
0000000100004f6b movq -0x30(%rbp), %rsi
0000000100004f6f movq %rdi, -0x38(%rbp)
0000000100004f73 movq %rsi, %rdi
0000000100004f76 movl %eax, %esi
0000000100004f78 movl %eax, -0x3c(%rbp)
0000000100004f7b callq 0x10000a604 ## symbol stub for: _memset
0000000100004f80 movq -0x38(%rbp), %rdi
0000000100004f84 movl -0x3c(%rbp), %esi
0000000100004f87 callq _tos
0000000100004f8c movl $0x118, %ecx
0000000100004f91 movq -0x30(%rbp), %rdi
0000000100004f95 movq %rax, 0x100(%rdi)
0000000100004f9c movl %edx, 0x108(%rdi)
0000000100004fa2 movb $0x1, 0x110(%rdi)
0000000100004fa9 movb $0x0, 0x111(%rdi)
0000000100004fb0 movq -0x8(%rbp), %rsi
0000000100004fb4 movslq -0xc(%rbp), %rdx
0000000100004fb8 callq 0x10000a598 ## symbol stub for: ___memcpy_chk
0000000100004fbd movq -0x28(%rbp), %rcx
0000000100004fc1 movq %rax, -0x48(%rbp)
0000000100004fc5 movq %rcx, %rax
0000000100004fc8 addq $0x50, %rsp
0000000100004fcc popq %rbp
0000000100004fcd retq
0000000100004fce nop
_opt_none:
0000000100004fd0 pushq %rbp
0000000100004fd1 movq %rsp, %rbp
0000000100004fd4 subq $0x20, %rsp
0000000100004fd8 movq %rdi, %rax
0000000100004fdb leaq 0x59d7(%rip), %rcx ## literal pool for: ""
0000000100004fe2 xorl %edx, %edx
0000000100004fe4 movl $0x118, %esi
0000000100004fe9 movl %esi, %r8d
0000000100004fec movq %rdi, %r9
0000000100004fef movq %rdi, -0x8(%rbp)
0000000100004ff3 movq %r9, %rdi
0000000100004ff6 movl %edx, %esi
0000000100004ff8 movl %edx, -0xc(%rbp)
0000000100004ffb movq %r8, %rdx
0000000100004ffe movq %rax, -0x18(%rbp)
0000000100005002 movq %rcx, -0x20(%rbp)
0000000100005006 callq 0x10000a604 ## symbol stub for: _memset
000000010000500b movq -0x20(%rbp), %rdi
000000010000500f movl -0xc(%rbp), %esi
0000000100005012 callq _tos
0000000100005017 movq -0x8(%rbp), %rcx
000000010000501b movq %rax, 0x100(%rcx)
0000000100005022 movl %edx, 0x108(%rcx)
0000000100005028 movb $0x0, 0x110(%rcx)
000000010000502f movb $0x1, 0x111(%rcx)
0000000100005036 movq -0x18(%rbp), %rax
000000010000503a addq $0x20, %rsp
000000010000503e popq %rbp
000000010000503f retq
_v_error:
0000000100005040 pushq %rbp
0000000100005041 movq %rsp, %rbp
0000000100005044 subq $0x20, %rsp
0000000100005048 movq %rdi, %rax
000000010000504b xorl %ecx, %ecx
000000010000504d movl $0x118, %r8d
0000000100005053 movl %r8d, %r9d
0000000100005056 movq %rsi, -0x10(%rbp)
000000010000505a movl %edx, -0x8(%rbp)
000000010000505d movq %rdi, %rsi
0000000100005060 movq %rdi, -0x18(%rbp)
0000000100005064 movq %rsi, %rdi
0000000100005067 movl %ecx, %esi
0000000100005069 movq %r9, %rdx
000000010000506c movq %rax, -0x20(%rbp)
0000000100005070 callq 0x10000a604 ## symbol stub for: _memset
0000000100005075 movq -0x10(%rbp), %rax
0000000100005079 movq -0x18(%rbp), %rdx
000000010000507d movq %rax, 0x100(%rdx)
0000000100005084 movq -0x8(%rbp), %rax
0000000100005088 movq %rax, 0x108(%rdx)
000000010000508f movb $0x0, 0x110(%rdx)
0000000100005096 movb $0x0, 0x111(%rdx)
000000010000509d movq -0x20(%rbp), %rax
00000001000050a1 addq $0x20, %rsp
00000001000050a5 popq %rbp
00000001000050a6 retq
00000001000050a7 nopw (%rax,%rax)
_todo:
00000001000050b0 pushq %rbp
00000001000050b1 movq %rsp, %rbp
00000001000050b4 popq %rbp
00000001000050b5 retq
00000001000050b6 nopw %cs:(%rax,%rax)
_tos_clone:
00000001000050c0 pushq %rbp
00000001000050c1 movq %rsp, %rbp
00000001000050c4 subq $0x40, %rsp
00000001000050c8 movq %rdi, -0x18(%rbp)
00000001000050cc cmpq $0x0, -0x18(%rbp)
00000001000050d1 jne 0x1000050f6
00000001000050d7 leaq 0x595c(%rip), %rdi ## literal pool for: "tos: nil string"
00000001000050de callq _tos3
00000001000050e3 movq %rax, -0x28(%rbp)
00000001000050e7 movl %edx, -0x20(%rbp)
00000001000050ea movq -0x28(%rbp), %rdi
00000001000050ee movl -0x20(%rbp), %esi
00000001000050f1 callq _v_panic
00000001000050f6 movq -0x18(%rbp), %rdi
00000001000050fa callq _tos2
00000001000050ff movq %rax, -0x38(%rbp)
0000000100005103 movl %edx, -0x30(%rbp)
0000000100005106 movq -0x38(%rbp), %rdi
000000010000510a movl -0x30(%rbp), %esi
000000010000510d callq _string_clone
0000000100005112 movq %rax, -0x10(%rbp)
0000000100005116 movl %edx, -0x8(%rbp)
0000000100005119 movq -0x10(%rbp), %rax
000000010000511d movl -0x8(%rbp), %edx
0000000100005120 addq $0x40, %rsp
0000000100005124 popq %rbp
0000000100005125 retq
0000000100005126 nopw %cs:(%rax,%rax)
_string_clone:
0000000100005130 pushq %rbp
0000000100005131 movq %rsp, %rbp
0000000100005134 subq $0x30, %rsp
0000000100005138 movq %rdi, -0x20(%rbp)
000000010000513c movl %esi, -0x18(%rbp)
000000010000513f movl -0x18(%rbp), %esi
0000000100005142 addl $0x1, %esi
0000000100005145 movl %esi, %edi
0000000100005147 callq _v_malloc
000000010000514c movq %rax, -0x10(%rbp)
0000000100005150 movl -0x18(%rbp), %esi
0000000100005153 movl %esi, -0x8(%rbp)
0000000100005156 movl $0x0, -0x24(%rbp)
000000010000515d movl -0x24(%rbp), %eax
0000000100005160 cmpl -0x18(%rbp), %eax
0000000100005163 jge 0x10000518d
0000000100005169 movq -0x20(%rbp), %rax
000000010000516d movslq -0x24(%rbp), %rcx
0000000100005171 movb (%rax,%rcx), %dl
0000000100005174 movq -0x10(%rbp), %rax
0000000100005178 movslq -0x24(%rbp), %rcx
000000010000517c movb %dl, (%rax,%rcx)
000000010000517f movl -0x24(%rbp), %eax
0000000100005182 addl $0x1, %eax
0000000100005185 movl %eax, -0x24(%rbp)
0000000100005188 jmp 0x10000515d
000000010000518d movq -0x10(%rbp), %rax
0000000100005191 movslq -0x18(%rbp), %rcx
0000000100005195 movb $0x0, (%rax,%rcx)
0000000100005199 movq -0x10(%rbp), %rax
000000010000519d movl -0x8(%rbp), %edx
00000001000051a0 addq $0x30, %rsp
00000001000051a4 popq %rbp
00000001000051a5 retq
00000001000051a6 nopw %cs:(%rax,%rax)
_string_replace:
00000001000051b0 pushq %rbp
00000001000051b1 movq %rsp, %rbp
00000001000051b4 subq $0xe0, %rsp
00000001000051bb movq %rdi, -0x20(%rbp)
00000001000051bf movl %esi, -0x18(%rbp)
00000001000051c2 movq %rdx, -0x30(%rbp)
00000001000051c6 movl %ecx, -0x28(%rbp)
00000001000051c9 movq %r8, -0x40(%rbp)
00000001000051cd movl %r9d, -0x38(%rbp)
00000001000051d1 cmpl $0x0, -0x18(%rbp)
00000001000051d5 je 0x1000051e5
00000001000051db cmpl $0x0, -0x28(%rbp)
00000001000051df jne 0x1000051fa
00000001000051e5 movq -0x20(%rbp), %rax
00000001000051e9 movq %rax, -0x10(%rbp)
00000001000051ed movq -0x18(%rbp), %rax
00000001000051f1 movq %rax, -0x8(%rbp)
00000001000051f5 jmp 0x1000054b6
00000001000051fa leaq -0x58(%rbp), %rdi
00000001000051fe xorl %eax, %eax
0000000100005200 movl $0x4, %ecx
0000000100005205 leaq -0x5c(%rbp), %rdx
0000000100005209 movl $0x0, -0x5c(%rbp)
0000000100005210 movl %eax, %esi
0000000100005212 movq %rdx, -0xc0(%rbp)
0000000100005219 movl %eax, %edx
000000010000521b movq -0xc0(%rbp), %r8
0000000100005222 callq _new_array_from_c_array
0000000100005227 movq -0x20(%rbp), %rdi
000000010000522b movq %rdi, -0x70(%rbp)
000000010000522f movq -0x18(%rbp), %rdi
0000000100005233 movq %rdi, -0x68(%rbp)
0000000100005237 movl $0x0, -0x74(%rbp)
000000010000523e movq -0x70(%rbp), %rdi
0000000100005242 movl -0x68(%rbp), %esi
0000000100005245 movq -0x30(%rbp), %rdx
0000000100005249 movl -0x28(%rbp), %ecx
000000010000524c callq _string_index
0000000100005251 movl %eax, -0x78(%rbp)
0000000100005254 cmpl $0x0, -0x78(%rbp)
0000000100005258 jge 0x100005263
000000010000525e jmp 0x1000052c8
0000000100005263 leaq -0x58(%rbp), %rdi
0000000100005267 leaq -0x7c(%rbp), %rax
000000010000526b movl -0x74(%rbp), %ecx
000000010000526e addl -0x78(%rbp), %ecx
0000000100005271 movl %ecx, -0x7c(%rbp)
0000000100005274 movq %rax, %rsi
0000000100005277 callq _array_push
000000010000527c movl -0x28(%rbp), %ecx
000000010000527f addl -0x78(%rbp), %ecx
0000000100005282 movl %ecx, -0x78(%rbp)
0000000100005285 movl -0x78(%rbp), %ecx
0000000100005288 addl -0x74(%rbp), %ecx
000000010000528b movl %ecx, -0x74(%rbp)
000000010000528e movl -0x78(%rbp), %edx
0000000100005291 movl -0x68(%rbp), %ecx
0000000100005294 movq -0x70(%rbp), %rdi
0000000100005298 movl -0x68(%rbp), %esi
000000010000529b callq _string_substr
00000001000052a0 movq %rax, -0x90(%rbp)
00000001000052a7 movl %edx, -0x88(%rbp)
00000001000052ad movq -0x90(%rbp), %rax
00000001000052b4 movq %rax, -0x70(%rbp)
00000001000052b8 movq -0x88(%rbp), %rax
00000001000052bf movq %rax, -0x68(%rbp)
00000001000052c3 jmp 0x10000523e
00000001000052c8 cmpl $0x0, -0x50(%rbp)
00000001000052cc jne 0x1000052e7
00000001000052d2 movq -0x20(%rbp), %rax
00000001000052d6 movq %rax, -0x10(%rbp)
00000001000052da movq -0x18(%rbp), %rax
00000001000052de movq %rax, -0x8(%rbp)
00000001000052e2 jmp 0x1000054b6
00000001000052e7 movl -0x18(%rbp), %eax
00000001000052ea movl -0x50(%rbp), %ecx
00000001000052ed movl -0x38(%rbp), %edx
00000001000052f0 subl -0x28(%rbp), %edx
00000001000052f3 imull %edx, %ecx
00000001000052f6 addl %ecx, %eax
00000001000052f8 movl %eax, -0x94(%rbp)
00000001000052fe movl -0x94(%rbp), %eax
0000000100005304 addl $0x1, %eax
0000000100005307 movl %eax, %edi
0000000100005309 callq _v_malloc
000000010000530e leaq -0x58(%rbp), %rsi
0000000100005312 movq %rax, -0xa0(%rbp)
0000000100005319 movl $0x0, -0xa4(%rbp)
0000000100005323 movl -0xa4(%rbp), %edi
0000000100005329 movq (%rsi), %rax
000000010000532c movq %rax, (%rsp)
0000000100005330 movq 0x8(%rsi), %rax
0000000100005334 movq %rax, 0x8(%rsp)
0000000100005339 movq 0x10(%rsi), %rax
000000010000533d movq %rax, 0x10(%rsp)
0000000100005342 callq _array_get
0000000100005347 movl (%rax), %ecx
0000000100005349 movl %ecx, -0xa8(%rbp)
000000010000534f movl $0x0, -0xac(%rbp)
0000000100005359 movl $0x0, -0xb0(%rbp)
0000000100005363 movl -0xb0(%rbp), %eax
0000000100005369 cmpl -0x18(%rbp), %eax
000000010000536c jge 0x10000548b
0000000100005372 movl -0xb0(%rbp), %eax
0000000100005378 cmpl -0xa8(%rbp), %eax
000000010000537e jne 0x100005444
0000000100005384 movl $0x0, -0xb4(%rbp)
000000010000538e movl -0xb4(%rbp), %eax
0000000100005394 cmpl -0x38(%rbp), %eax
0000000100005397 jge 0x1000053df
000000010000539d movq -0x40(%rbp), %rax
00000001000053a1 movslq -0xb4(%rbp), %rcx
00000001000053a8 movb (%rax,%rcx), %dl
00000001000053ab movq -0xa0(%rbp), %rax
00000001000053b2 movslq -0xac(%rbp), %rcx
00000001000053b9 movb %dl, (%rax,%rcx)
00000001000053bc movl -0xac(%rbp), %esi
00000001000053c2 addl $0x1, %esi
00000001000053c5 movl %esi, -0xac(%rbp)
00000001000053cb movl -0xb4(%rbp), %eax
00000001000053d1 addl $0x1, %eax
00000001000053d4 movl %eax, -0xb4(%rbp)
00000001000053da jmp 0x10000538e
00000001000053df movl -0x28(%rbp), %eax
00000001000053e2 subl $0x1, %eax
00000001000053e5 addl -0xb0(%rbp), %eax
00000001000053eb movl %eax, -0xb0(%rbp)
00000001000053f1 movl -0xa4(%rbp), %eax
00000001000053f7 addl $0x1, %eax
00000001000053fa movl %eax, -0xa4(%rbp)
0000000100005400 movl -0xa4(%rbp), %eax
0000000100005406 cmpl -0x50(%rbp), %eax
0000000100005409 jge 0x10000543f
000000010000540f leaq -0x58(%rbp), %rax
0000000100005413 movl -0xa4(%rbp), %edi
0000000100005419 movq (%rax), %rcx
000000010000541c movq %rcx, (%rsp)
0000000100005420 movq 0x8(%rax), %rcx
0000000100005424 movq %rcx, 0x8(%rsp)
0000000100005429 movq 0x10(%rax), %rax
000000010000542d movq %rax, 0x10(%rsp)
0000000100005432 callq _array_get
0000000100005437 movl (%rax), %edi
0000000100005439 movl %edi, -0xa8(%rbp)
000000010000543f jmp 0x100005472
0000000100005444 movq -0x20(%rbp), %rax
0000000100005448 movslq -0xb0(%rbp), %rcx
000000010000544f movb (%rax,%rcx), %dl
0000000100005452 movq -0xa0(%rbp), %rax
0000000100005459 movslq -0xac(%rbp), %rcx
0000000100005460 movb %dl, (%rax,%rcx)
0000000100005463 movl -0xac(%rbp), %esi
0000000100005469 addl $0x1, %esi
000000010000546c movl %esi, -0xac(%rbp)
0000000100005472 jmp 0x100005477
0000000100005477 movl -0xb0(%rbp), %eax
000000010000547d addl $0x1, %eax
0000000100005480 movl %eax, -0xb0(%rbp)
0000000100005486 jmp 0x100005363
000000010000548b movq -0xa0(%rbp), %rax
0000000100005492 movslq -0x94(%rbp), %rcx
0000000100005499 movb $0x0, (%rax,%rcx)
000000010000549d movq -0xa0(%rbp), %rdi
00000001000054a4 movl -0x94(%rbp), %esi
00000001000054aa callq _tos
00000001000054af movq %rax, -0x10(%rbp)
00000001000054b3 movl %edx, -0x8(%rbp)
00000001000054b6 movq -0x10(%rbp), %rax
00000001000054ba movl -0x8(%rbp), %edx
00000001000054bd addq $0xe0, %rsp
00000001000054c4 popq %rbp
00000001000054c5 retq
00000001000054c6 nopw %cs:(%rax,%rax)
_string_index:
00000001000054d0 pushq %rbp
00000001000054d1 movq %rsp, %rbp
00000001000054d4 movq %rdi, -0x18(%rbp)
00000001000054d8 movl %esi, -0x10(%rbp)
00000001000054db movq %rdx, -0x28(%rbp)
00000001000054df movl %ecx, -0x20(%rbp)
00000001000054e2 movl -0x20(%rbp), %ecx
00000001000054e5 cmpl -0x10(%rbp), %ecx
00000001000054e8 jle 0x1000054fa
00000001000054ee movl $0xffffffff, -0x4(%rbp)
00000001000054f5 jmp 0x100005598
00000001000054fa movl $0x0, -0x2c(%rbp)
0000000100005501 movl -0x2c(%rbp), %eax
0000000100005504 cmpl -0x10(%rbp), %eax
0000000100005507 jge 0x100005591
000000010000550d movl $0x0, -0x30(%rbp)
0000000100005514 xorl %eax, %eax
0000000100005516 movb %al, %cl
0000000100005518 movl -0x30(%rbp), %eax
000000010000551b cmpl -0x20(%rbp), %eax
000000010000551e movb %cl, -0x31(%rbp)
0000000100005521 jge 0x10000554e
0000000100005527 movq -0x18(%rbp), %rax
000000010000552b movl -0x2c(%rbp), %ecx
000000010000552e addl -0x30(%rbp), %ecx
0000000100005531 movslq %ecx, %rdx
0000000100005534 movzbl (%rax,%rdx), %ecx
0000000100005538 movq -0x28(%rbp), %rax
000000010000553c movslq -0x30(%rbp), %rdx
0000000100005540 movzbl (%rax,%rdx), %esi
0000000100005544 cmpl %esi, %ecx
0000000100005546 sete %dil
000000010000554a movb %dil, -0x31(%rbp)
000000010000554e movb -0x31(%rbp), %al
0000000100005551 testb $0x1, %al
0000000100005553 jne 0x10000555e
0000000100005559 jmp 0x10000556c
000000010000555e movl -0x30(%rbp), %eax
0000000100005561 addl $0x1, %eax
0000000100005564 movl %eax, -0x30(%rbp)
0000000100005567 jmp 0x100005514
000000010000556c movl -0x30(%rbp), %eax
000000010000556f cmpl -0x20(%rbp), %eax
0000000100005572 jne 0x100005583
0000000100005578 movl -0x2c(%rbp), %eax
000000010000557b movl %eax, -0x4(%rbp)
000000010000557e jmp 0x100005598
0000000100005583 movl -0x2c(%rbp), %eax
0000000100005586 addl $0x1, %eax
0000000100005589 movl %eax, -0x2c(%rbp)
000000010000558c jmp 0x100005501
0000000100005591 movl $0xffffffff, -0x4(%rbp)
0000000100005598 movl -0x4(%rbp), %eax
000000010000559b popq %rbp
000000010000559c retq
000000010000559d nopl (%rax)
_string_substr:
00000001000055a0 pushq %rbp
00000001000055a1 movq %rsp, %rbp
00000001000055a4 subq $0x40, %rsp
00000001000055a8 movq %rdi, -0x20(%rbp)
00000001000055ac movl %esi, -0x18(%rbp)
00000001000055af movl %edx, -0x24(%rbp)
00000001000055b2 movl %ecx, -0x28(%rbp)
00000001000055b5 movl -0x24(%rbp), %ecx
00000001000055b8 cmpl -0x28(%rbp), %ecx
00000001000055bb jg 0x1000055ed
00000001000055c1 movl -0x24(%rbp), %eax
00000001000055c4 cmpl -0x18(%rbp), %eax
00000001000055c7 jg 0x1000055ed
00000001000055cd movl -0x28(%rbp), %eax
00000001000055d0 cmpl -0x18(%rbp), %eax
00000001000055d3 jg 0x1000055ed
00000001000055d9 cmpl $0x0, -0x24(%rbp)
00000001000055dd jl 0x1000055ed
00000001000055e3 cmpl $0x0, -0x28(%rbp)
00000001000055e7 jge 0x100005617
00000001000055ed leaq 0x5490(%rip), %rdi ## literal pool for: "substr(%d, %d) out of bounds (len=%d)"
00000001000055f4 movl -0x24(%rbp), %esi
00000001000055f7 movl -0x28(%rbp), %edx
00000001000055fa movl -0x18(%rbp), %ecx
00000001000055fd movb $0x0, %al
00000001000055ff callq __STR
0000000100005604 movq %rax, -0x38(%rbp)
0000000100005608 movl %edx, -0x30(%rbp)
000000010000560b movq -0x38(%rbp), %rdi
000000010000560f movl -0x30(%rbp), %esi
0000000100005612 callq _v_panic
0000000100005617 movl -0x28(%rbp), %eax
000000010000561a subl -0x24(%rbp), %eax
000000010000561d movl %eax, -0x3c(%rbp)
0000000100005620 movl -0x3c(%rbp), %eax
0000000100005623 addl $0x1, %eax
0000000100005626 movl %eax, %edi
0000000100005628 callq _v_malloc
000000010000562d movq %rax, -0x10(%rbp)
0000000100005631 movl -0x3c(%rbp), %edi
0000000100005634 movl %edi, -0x8(%rbp)
0000000100005637 movl $0x0, -0x40(%rbp)
000000010000563e movl -0x40(%rbp), %eax
0000000100005641 cmpl -0x3c(%rbp), %eax
0000000100005644 jge 0x100005675
000000010000564a movq -0x20(%rbp), %rax
000000010000564e movl -0x24(%rbp), %ecx
0000000100005651 addl -0x40(%rbp), %ecx
0000000100005654 movslq %ecx, %rdx
0000000100005657 movb (%rax,%rdx), %sil
000000010000565b movq -0x10(%rbp), %rax
000000010000565f movslq -0x40(%rbp), %rdx
0000000100005663 movb %sil, (%rax,%rdx)
0000000100005667 movl -0x40(%rbp), %eax
000000010000566a addl $0x1, %eax
000000010000566d movl %eax, -0x40(%rbp)
0000000100005670 jmp 0x10000563e
0000000100005675 movq -0x10(%rbp), %rax
0000000100005679 movslq -0x3c(%rbp), %rcx
000000010000567d movb $0x0, (%rax,%rcx)
0000000100005681 movq -0x10(%rbp), %rax
0000000100005685 movl -0x8(%rbp), %edx
0000000100005688 addq $0x40, %rsp
000000010000568c popq %rbp
000000010000568d retq
000000010000568e nop
_v_string_int:
0000000100005690 pushq %rbp
0000000100005691 movq %rsp, %rbp
0000000100005694 subq $0x10, %rsp
0000000100005698 xorl %edx, %edx
000000010000569a movl $0x20, %ecx
000000010000569f movq %rdi, -0x10(%rbp)
00000001000056a3 movl %esi, -0x8(%rbp)
00000001000056a6 movq -0x10(%rbp), %rdi
00000001000056aa movl -0x8(%rbp), %esi
00000001000056ad callq _strconv__parse_int
00000001000056b2 movl %eax, %ecx
00000001000056b4 movl %ecx, %eax
00000001000056b6 addq $0x10, %rsp
00000001000056ba popq %rbp
00000001000056bb retq
00000001000056bc nopl (%rax)
_strconv__parse_int:
00000001000056c0 pushq %rbp
00000001000056c1 movq %rsp, %rbp
00000001000056c4 subq $0x80, %rsp
00000001000056cb movq %rdi, -0x18(%rbp)
00000001000056cf movl %esi, -0x10(%rbp)
00000001000056d2 movl %edx, -0x1c(%rbp)
00000001000056d5 movl %ecx, -0x20(%rbp)
00000001000056d8 movq -0x18(%rbp), %rdi
00000001000056dc movq %rdi, -0x30(%rbp)
00000001000056e0 movq -0x10(%rbp), %rdi
00000001000056e4 movq %rdi, -0x28(%rbp)
00000001000056e8 movl -0x20(%rbp), %ecx
00000001000056eb movl %ecx, -0x34(%rbp)
00000001000056ee cmpl $0x1, -0x28(%rbp)
00000001000056f2 jge 0x100005705
00000001000056f8 movq $0x0, -0x8(%rbp)
0000000100005700 jmp 0x100005879
0000000100005705 xorl %edx, %edx
0000000100005707 movb $0x0, -0x35(%rbp)
000000010000570b movq -0x30(%rbp), %rdi
000000010000570f movl -0x28(%rbp), %esi
0000000100005712 callq _string_at
0000000100005717 movzbl %al, %edx
000000010000571a cmpl $0x2b, %edx
000000010000571d jne 0x100005750
0000000100005723 movl $0x1, %edx
0000000100005728 movq -0x30(%rbp), %rdi
000000010000572c movl -0x28(%rbp), %esi
000000010000572f callq _string_right
0000000100005734 movq %rax, -0x48(%rbp)
0000000100005738 movl %edx, -0x40(%rbp)
000000010000573b movq -0x48(%rbp), %rax
000000010000573f movq %rax, -0x30(%rbp)
0000000100005743 movq -0x40(%rbp), %rax
0000000100005747 movq %rax, -0x28(%rbp)
000000010000574b jmp 0x10000579b
0000000100005750 xorl %edx, %edx
0000000100005752 movq -0x30(%rbp), %rdi
0000000100005756 movl -0x28(%rbp), %esi
0000000100005759 callq _string_at
000000010000575e movzbl %al, %edx
0000000100005761 cmpl $0x2d, %edx
0000000100005764 jne 0x100005796
000000010000576a movl $0x1, %edx
000000010000576f movb $0x1, -0x35(%rbp)
0000000100005773 movq -0x30(%rbp), %rdi
0000000100005777 movl -0x28(%rbp), %esi
000000010000577a callq _string_right
000000010000577f movq %rax, -0x58(%rbp)
0000000100005783 movl %edx, -0x50(%rbp)
0000000100005786 movq -0x58(%rbp), %rax
000000010000578a movq %rax, -0x30(%rbp)
000000010000578e movq -0x50(%rbp), %rax
0000000100005792 movq %rax, -0x28(%rbp)
0000000100005796 jmp 0x10000579b
000000010000579b movl -0x1c(%rbp), %edx
000000010000579e movl -0x34(%rbp), %ecx
00000001000057a1 movq -0x30(%rbp), %rdi
00000001000057a5 movl -0x28(%rbp), %esi
00000001000057a8 callq _strconv__parse_uint
00000001000057ad movq %rax, -0x60(%rbp)
00000001000057b1 cmpq $0x0, -0x60(%rbp)
00000001000057b6 jne 0x1000057c9
00000001000057bc movq $0x0, -0x8(%rbp)
00000001000057c4 jmp 0x100005879
00000001000057c9 cmpl $0x0, -0x34(%rbp)
00000001000057cd jne 0x1000057da
00000001000057d3 movl $0x20, -0x34(%rbp)
00000001000057da movl $0x1, %eax
00000001000057df movl %eax, %ecx
00000001000057e1 movl -0x34(%rbp), %eax
00000001000057e4 subl $0x1, %eax
00000001000057e7 movslq %eax, %rdx
00000001000057ea movq %rcx, -0x70(%rbp)
00000001000057ee movq %rdx, %rcx
00000001000057f1 movq -0x70(%rbp), %rdx
00000001000057f5 shlq %cl, %rdx
00000001000057f8 movq %rdx, -0x68(%rbp)
00000001000057fc testb $0x1, -0x35(%rbp)
0000000100005800 jne 0x100005825
0000000100005806 movq -0x60(%rbp), %rax
000000010000580a cmpq -0x68(%rbp), %rax
000000010000580e jb 0x100005825
0000000100005814 movq -0x68(%rbp), %rax
0000000100005818 subq $0x1, %rax
000000010000581c movq %rax, -0x8(%rbp)
0000000100005820 jmp 0x100005879
0000000100005825 testb $0x1, -0x35(%rbp)
0000000100005829 je 0x10000584e
000000010000582f movq -0x60(%rbp), %rax
0000000100005833 cmpq -0x68(%rbp), %rax
0000000100005837 jbe 0x10000584e
000000010000583d xorl %eax, %eax
000000010000583f movl %eax, %ecx
0000000100005841 subq -0x68(%rbp), %rcx
0000000100005845 movq %rcx, -0x8(%rbp)
0000000100005849 jmp 0x100005879
000000010000584e testb $0x1, -0x35(%rbp)
0000000100005852 je 0x100005869
0000000100005858 xorl %eax, %eax
000000010000585a movl %eax, %ecx
000000010000585c subq -0x60(%rbp), %rcx
0000000100005860 movq %rcx, -0x78(%rbp)
0000000100005864 jmp 0x100005871
0000000100005869 movq -0x60(%rbp), %rax
000000010000586d movq %rax, -0x78(%rbp)
0000000100005871 movq -0x78(%rbp), %rax
0000000100005875 movq %rax, -0x8(%rbp)
0000000100005879 movq -0x8(%rbp), %rax
000000010000587d addq $0x80, %rsp
0000000100005884 popq %rbp
0000000100005885 retq
0000000100005886 nopw %cs:(%rax,%rax)
_string_i64:
0000000100005890 pushq %rbp
0000000100005891 movq %rsp, %rbp
0000000100005894 subq $0x10, %rsp
0000000100005898 xorl %edx, %edx
000000010000589a movl $0x40, %ecx
000000010000589f movq %rdi, -0x10(%rbp)
00000001000058a3 movl %esi, -0x8(%rbp)
00000001000058a6 movq -0x10(%rbp), %rdi
00000001000058aa movl -0x8(%rbp), %esi
00000001000058ad callq _strconv__parse_int
00000001000058b2 addq $0x10, %rsp
00000001000058b6 popq %rbp
00000001000058b7 retq
00000001000058b8 nopl (%rax,%rax)
_string_f32:
00000001000058c0 pushq %rbp
00000001000058c1 movq %rsp, %rbp
00000001000058c4 subq $0x10, %rsp
00000001000058c8 movq %rdi, -0x10(%rbp)
00000001000058cc movl %esi, -0x8(%rbp)
00000001000058cf movq -0x10(%rbp), %rdi
00000001000058d3 callq 0x10000a5c2 ## symbol stub for: _atof
00000001000058d8 cvtsd2ss %xmm0, %xmm0
00000001000058dc addq $0x10, %rsp
00000001000058e0 popq %rbp
00000001000058e1 retq
00000001000058e2 nopw %cs:(%rax,%rax)
_string_f64:
00000001000058f0 pushq %rbp
00000001000058f1 movq %rsp, %rbp
00000001000058f4 subq $0x10, %rsp
00000001000058f8 movq %rdi, -0x10(%rbp)
00000001000058fc movl %esi, -0x8(%rbp)
00000001000058ff movq -0x10(%rbp), %rdi
0000000100005903 callq 0x10000a5c2 ## symbol stub for: _atof
0000000100005908 addq $0x10, %rsp
000000010000590c popq %rbp
000000010000590d retq
000000010000590e nop
_string_u32:
0000000100005910 pushq %rbp
0000000100005911 movq %rsp, %rbp
0000000100005914 subq $0x10, %rsp
0000000100005918 xorl %edx, %edx
000000010000591a movl $0x20, %ecx
000000010000591f movq %rdi, -0x10(%rbp)
0000000100005923 movl %esi, -0x8(%rbp)
0000000100005926 movq -0x10(%rbp), %rdi
000000010000592a movl -0x8(%rbp), %esi
000000010000592d callq _strconv__parse_uint
0000000100005932 movl %eax, %ecx
0000000100005934 movl %ecx, %eax
0000000100005936 addq $0x10, %rsp
000000010000593a popq %rbp
000000010000593b retq
000000010000593c nopl (%rax)
_strconv__parse_uint:
0000000100005940 pushq %rbp
0000000100005941 movq %rsp, %rbp
0000000100005944 subq $0x80, %rsp
000000010000594b movq %rdi, -0x18(%rbp)
000000010000594f movl %esi, -0x10(%rbp)
0000000100005952 movl %edx, -0x1c(%rbp)
0000000100005955 movl %ecx, -0x20(%rbp)
0000000100005958 movl -0x20(%rbp), %ecx
000000010000595b movl %ecx, -0x24(%rbp)
000000010000595e movl -0x1c(%rbp), %ecx
0000000100005961 movl %ecx, -0x28(%rbp)
0000000100005964 cmpl $0x1, -0x10(%rbp)
0000000100005968 jl 0x100005982
000000010000596e movq -0x18(%rbp), %rdi
0000000100005972 movl -0x10(%rbp), %esi
0000000100005975 callq _strconv__underscore_ok
000000010000597a testb $0x1, %al
000000010000597c jne 0x10000598f
0000000100005982 movq $0x0, -0x8(%rbp)
000000010000598a jmp 0x100005d3a
000000010000598f movl $0x2, %eax
0000000100005994 cmpl $0x0, -0x28(%rbp)
0000000100005998 sete %cl
000000010000599b andb $0x1, %cl
000000010000599e movb %cl, -0x29(%rbp)
00000001000059a1 movl $0x0, -0x30(%rbp)
00000001000059a8 cmpl -0x28(%rbp), %eax
00000001000059ab jg 0x1000059c0
00000001000059b1 cmpl $0x24, -0x28(%rbp)
00000001000059b5 jg 0x1000059c0
00000001000059bb jmp 0x100005aed
00000001000059c0 cmpl $0x0, -0x28(%rbp)
00000001000059c4 jne 0x100005adb
00000001000059ca xorl %edx, %edx
00000001000059cc movl $0xa, -0x28(%rbp)
00000001000059d3 movq -0x18(%rbp), %rdi
00000001000059d7 movl -0x10(%rbp), %esi
00000001000059da callq _string_at
00000001000059df movzbl %al, %edx
00000001000059e2 cmpl $0x30, %edx
00000001000059e5 jne 0x100005ad6
00000001000059eb cmpl $0x3, -0x10(%rbp)
00000001000059ef jl 0x100005a2f
00000001000059f5 movl $0x1, %edx
00000001000059fa movq -0x18(%rbp), %rdi
00000001000059fe movl -0x10(%rbp), %esi
0000000100005a01 callq _string_at
0000000100005a06 movzbl %al, %edi
0000000100005a09 callq _strconv__byte_to_lower
0000000100005a0e movzbl %al, %edx
0000000100005a11 cmpl $0x62, %edx
0000000100005a14 jne 0x100005a2f
0000000100005a1a movl $0x2, -0x28(%rbp)
0000000100005a21 movl -0x30(%rbp), %eax
0000000100005a24 addl $0x2, %eax
0000000100005a27 movl %eax, -0x30(%rbp)
0000000100005a2a jmp 0x100005ad1
0000000100005a2f cmpl $0x3, -0x10(%rbp)
0000000100005a33 jl 0x100005a73
0000000100005a39 movl $0x1, %edx
0000000100005a3e movq -0x18(%rbp), %rdi
0000000100005a42 movl -0x10(%rbp), %esi
0000000100005a45 callq _string_at
0000000100005a4a movzbl %al, %edi
0000000100005a4d callq _strconv__byte_to_lower
0000000100005a52 movzbl %al, %edx
0000000100005a55 cmpl $0x6f, %edx
0000000100005a58 jne 0x100005a73
0000000100005a5e movl $0x8, -0x28(%rbp)
0000000100005a65 movl -0x30(%rbp), %eax
0000000100005a68 addl $0x2, %eax
0000000100005a6b movl %eax, -0x30(%rbp)
0000000100005a6e jmp 0x100005acc
0000000100005a73 cmpl $0x3, -0x10(%rbp)
0000000100005a77 jl 0x100005ab7
0000000100005a7d movl $0x1, %edx
0000000100005a82 movq -0x18(%rbp), %rdi
0000000100005a86 movl -0x10(%rbp), %esi
0000000100005a89 callq _string_at
0000000100005a8e movzbl %al, %edi
0000000100005a91 callq _strconv__byte_to_lower
0000000100005a96 movzbl %al, %edx
0000000100005a99 cmpl $0x78, %edx
0000000100005a9c jne 0x100005ab7
0000000100005aa2 movl $0x10, -0x28(%rbp)
0000000100005aa9 movl -0x30(%rbp), %eax
0000000100005aac addl $0x2, %eax
0000000100005aaf movl %eax, -0x30(%rbp)
0000000100005ab2 jmp 0x100005ac7
0000000100005ab7 movl $0x8, -0x28(%rbp)
0000000100005abe movl -0x30(%rbp), %eax
0000000100005ac1 addl $0x1, %eax
0000000100005ac4 movl %eax, -0x30(%rbp)
0000000100005ac7 jmp 0x100005acc
0000000100005acc jmp 0x100005ad1
0000000100005ad1 jmp 0x100005ad6
0000000100005ad6 jmp 0x100005ae8
0000000100005adb movq $0x0, -0x8(%rbp)
0000000100005ae3 jmp 0x100005d3a
0000000100005ae8 jmp 0x100005aed
0000000100005aed cmpl $0x0, -0x24(%rbp)
0000000100005af1 jne 0x100005b03
0000000100005af7 movl $0x20, -0x24(%rbp)
0000000100005afe jmp 0x100005b29
0000000100005b03 cmpl $0x0, -0x24(%rbp)
0000000100005b07 jl 0x100005b17
0000000100005b0d cmpl $0x40, -0x24(%rbp)
0000000100005b11 jle 0x100005b24
0000000100005b17 movq $0x0, -0x8(%rbp)
0000000100005b1f jmp 0x100005d3a
0000000100005b24 jmp 0x100005b29
0000000100005b29 leaq _strconv__max_u64(%rip), %rax
0000000100005b30 movq (%rax), %rax
0000000100005b33 movslq -0x28(%rbp), %rcx
0000000100005b37 xorl %edx, %edx
0000000100005b39 divq %rcx
0000000100005b3c addq $0x1, %rax
0000000100005b40 movq %rax, -0x38(%rbp)
0000000100005b44 cmpl $0x40, -0x24(%rbp)
0000000100005b48 jne 0x100005b61
0000000100005b4e leaq _strconv__max_u64(%rip), %rax
0000000100005b55 movq (%rax), %rax
0000000100005b58 movq %rax, -0x70(%rbp)
0000000100005b5c jmp 0x100005b82
0000000100005b61 movl $0x1, %eax
0000000100005b66 movl %eax, %ecx
0000000100005b68 movslq -0x24(%rbp), %rdx
0000000100005b6c movq %rcx, -0x78(%rbp)
0000000100005b70 movq %rdx, %rcx
0000000100005b73 movq -0x78(%rbp), %rdx
0000000100005b77 shlq %cl, %rdx
0000000100005b7a subq $0x1, %rdx
0000000100005b7e movq %rdx, -0x70(%rbp)
0000000100005b82 movq -0x70(%rbp), %rax
0000000100005b86 movq %rax, -0x40(%rbp)
0000000100005b8a movb $0x0, -0x41(%rbp)
0000000100005b8e movq $0x0, -0x50(%rbp)
0000000100005b96 movl -0x30(%rbp), %ecx
0000000100005b99 movl %ecx, -0x54(%rbp)
0000000100005b9c movl -0x54(%rbp), %ecx
0000000100005b9f movl %ecx, -0x58(%rbp)
0000000100005ba2 movl -0x58(%rbp), %eax
0000000100005ba5 cmpl -0x10(%rbp), %eax
0000000100005ba8 jge 0x100005d07
0000000100005bae movl -0x58(%rbp), %eax
0000000100005bb1 movl %eax, -0x5c(%rbp)
0000000100005bb4 movl -0x5c(%rbp), %edx
0000000100005bb7 movq -0x18(%rbp), %rdi
0000000100005bbb movl -0x10(%rbp), %esi
0000000100005bbe callq _string_at
0000000100005bc3 movb %al, -0x5d(%rbp)
0000000100005bc6 movzbl -0x5d(%rbp), %edi
0000000100005bca callq _strconv__byte_to_lower
0000000100005bcf movb %al, -0x5e(%rbp)
0000000100005bd2 movb $0x0, -0x5f(%rbp)
0000000100005bd6 movzbl -0x5d(%rbp), %edx
0000000100005bda cmpl $0x5f, %edx
0000000100005bdd jne 0x100005bf6
0000000100005be3 testb $0x1, -0x29(%rbp)
0000000100005be7 je 0x100005bf6
0000000100005bed movb $0x1, -0x41(%rbp)
0000000100005bf1 jmp 0x100005cf9
0000000100005bf6 movl $0x30, %eax
0000000100005bfb movzbl -0x5d(%rbp), %ecx
0000000100005bff cmpl %ecx, %eax
0000000100005c01 jg 0x100005c25
0000000100005c07 movzbl -0x5d(%rbp), %eax
0000000100005c0b cmpl $0x39, %eax
0000000100005c0e jg 0x100005c25
0000000100005c14 movzbl -0x5d(%rbp), %eax
0000000100005c18 subl $0x30, %eax
0000000100005c1b movb %al, %cl
0000000100005c1d movb %cl, -0x5f(%rbp)
0000000100005c20 jmp 0x100005c69
0000000100005c25 movl $0x61, %eax
0000000100005c2a movzbl -0x5e(%rbp), %ecx
0000000100005c2e cmpl %ecx, %eax
0000000100005c30 jg 0x100005c57
0000000100005c36 movzbl -0x5e(%rbp), %eax
0000000100005c3a cmpl $0x7a, %eax
0000000100005c3d jg 0x100005c57
0000000100005c43 movzbl -0x5e(%rbp), %eax
0000000100005c47 subl $0x61, %eax
0000000100005c4a addl $0xa, %eax
0000000100005c4d movb %al, %cl
0000000100005c4f movb %cl, -0x5f(%rbp)
0000000100005c52 jmp 0x100005c64
0000000100005c57 movq $0x0, -0x8(%rbp)
0000000100005c5f jmp 0x100005d3a
0000000100005c64 jmp 0x100005c69
0000000100005c69 jmp 0x100005c6e
0000000100005c6e movzbl -0x5f(%rbp), %eax
0000000100005c72 movl -0x28(%rbp), %ecx
0000000100005c75 movb %cl, %dl
0000000100005c77 movzbl %dl, %ecx
0000000100005c7a cmpl %ecx, %eax
0000000100005c7c jl 0x100005c8f
0000000100005c82 movq $0x0, -0x8(%rbp)
0000000100005c8a jmp 0x100005d3a
0000000100005c8f movq -0x50(%rbp), %rax
0000000100005c93 cmpq -0x38(%rbp), %rax
0000000100005c97 jb 0x100005caa
0000000100005c9d movq -0x40(%rbp), %rax
0000000100005ca1 movq %rax, -0x8(%rbp)
0000000100005ca5 jmp 0x100005d3a
0000000100005caa movslq -0x28(%rbp), %rax
0000000100005cae imulq -0x50(%rbp), %rax
0000000100005cb3 movq %rax, -0x50(%rbp)
0000000100005cb7 movq -0x50(%rbp), %rax
0000000100005cbb movzbl -0x5f(%rbp), %ecx
0000000100005cbf movl %ecx, %edx
0000000100005cc1 addq %rdx, %rax
0000000100005cc4 movq %rax, -0x68(%rbp)
0000000100005cc8 movq -0x68(%rbp), %rax
0000000100005ccc cmpq -0x50(%rbp), %rax
0000000100005cd0 jb 0x100005ce4
0000000100005cd6 movq -0x68(%rbp), %rax
0000000100005cda cmpq -0x40(%rbp), %rax
0000000100005cde jbe 0x100005cf1
0000000100005ce4 movq -0x40(%rbp), %rax
0000000100005ce8 movq %rax, -0x8(%rbp)
0000000100005cec jmp 0x100005d3a
0000000100005cf1 movq -0x68(%rbp), %rax
0000000100005cf5 movq %rax, -0x50(%rbp)
0000000100005cf9 movl -0x58(%rbp), %eax
0000000100005cfc addl $0x1, %eax
0000000100005cff movl %eax, -0x58(%rbp)
0000000100005d02 jmp 0x100005ba2
0000000100005d07 testb $0x1, -0x41(%rbp)
0000000100005d0b je 0x100005d32
0000000100005d11 movq -0x18(%rbp), %rdi
0000000100005d15 movl -0x10(%rbp), %esi
0000000100005d18 callq _strconv__underscore_ok
0000000100005d1d testb $0x1, %al
0000000100005d1f jne 0x100005d32
0000000100005d25 movq $0x0, -0x8(%rbp)
0000000100005d2d jmp 0x100005d3a
0000000100005d32 movq -0x50(%rbp), %rax
0000000100005d36 movq %rax, -0x8(%rbp)
0000000100005d3a movq -0x8(%rbp), %rax
0000000100005d3e addq $0x80, %rsp
0000000100005d45 popq %rbp
0000000100005d46 retq
0000000100005d47 nopw (%rax,%rax)
_string_u64:
0000000100005d50 pushq %rbp
0000000100005d51 movq %rsp, %rbp
0000000100005d54 subq $0x10, %rsp
0000000100005d58 xorl %edx, %edx
0000000100005d5a movl $0x40, %ecx
0000000100005d5f movq %rdi, -0x10(%rbp)
0000000100005d63 movl %esi, -0x8(%rbp)
0000000100005d66 movq -0x10(%rbp), %rdi
0000000100005d6a movl -0x8(%rbp), %esi
0000000100005d6d callq _strconv__parse_uint
0000000100005d72 addq $0x10, %rsp
0000000100005d76 popq %rbp
0000000100005d77 retq
0000000100005d78 nopl (%rax,%rax)
_string_ne:
0000000100005d80 pushq %rbp
0000000100005d81 movq %rsp, %rbp
0000000100005d84 subq $0x20, %rsp
0000000100005d88 movq %rdi, -0x10(%rbp)
0000000100005d8c movl %esi, -0x8(%rbp)
0000000100005d8f movq %rdx, -0x20(%rbp)
0000000100005d93 movl %ecx, -0x18(%rbp)
0000000100005d96 movq -0x10(%rbp), %rdi
0000000100005d9a movl -0x8(%rbp), %esi
0000000100005d9d movq -0x20(%rbp), %rdx
0000000100005da1 movl -0x18(%rbp), %ecx
0000000100005da4 callq _string_eq
0000000100005da9 xorb $-0x1, %al
0000000100005dab andb $0x1, %al
0000000100005dad movzbl %al, %eax
0000000100005db0 addq $0x20, %rsp
0000000100005db4 popq %rbp
0000000100005db5 retq
0000000100005db6 nopw %cs:(%rax,%rax)
_string_lt:
0000000100005dc0 pushq %rbp
0000000100005dc1 movq %rsp, %rbp
0000000100005dc4 movq %rdi, -0x18(%rbp)
0000000100005dc8 movl %esi, -0x10(%rbp)
0000000100005dcb movq %rdx, -0x28(%rbp)
0000000100005dcf movl %ecx, -0x20(%rbp)
0000000100005dd2 movl $0x0, -0x2c(%rbp)
0000000100005dd9 movl -0x2c(%rbp), %eax
0000000100005ddc cmpl -0x10(%rbp), %eax
0000000100005ddf jge 0x100005e5b
0000000100005de5 movl -0x2c(%rbp), %eax
0000000100005de8 cmpl -0x20(%rbp), %eax
0000000100005deb jge 0x100005e11
0000000100005df1 movq -0x18(%rbp), %rax
0000000100005df5 movslq -0x2c(%rbp), %rcx
0000000100005df9 movzbl (%rax,%rcx), %edx
0000000100005dfd movq -0x28(%rbp), %rax
0000000100005e01 movslq -0x2c(%rbp), %rcx
0000000100005e05 movzbl (%rax,%rcx), %esi
0000000100005e09 cmpl %esi, %edx
0000000100005e0b jle 0x100005e1a
0000000100005e11 movb $0x0, -0x1(%rbp)
0000000100005e15 jmp 0x100005e74
0000000100005e1a movq -0x18(%rbp), %rax
0000000100005e1e movslq -0x2c(%rbp), %rcx
0000000100005e22 movzbl (%rax,%rcx), %edx
0000000100005e26 movq -0x28(%rbp), %rax
0000000100005e2a movslq -0x2c(%rbp), %rcx
0000000100005e2e movzbl (%rax,%rcx), %esi
0000000100005e32 cmpl %esi, %edx
0000000100005e34 jge 0x100005e43
0000000100005e3a movb $0x1, -0x1(%rbp)
0000000100005e3e jmp 0x100005e74
0000000100005e43 jmp 0x100005e48
0000000100005e48 jmp 0x100005e4d
0000000100005e4d movl -0x2c(%rbp), %eax
0000000100005e50 addl $0x1, %eax
0000000100005e53 movl %eax, -0x2c(%rbp)
0000000100005e56 jmp 0x100005dd9
0000000100005e5b movl -0x10(%rbp), %eax
0000000100005e5e cmpl -0x20(%rbp), %eax
0000000100005e61 jge 0x100005e70
0000000100005e67 movb $0x1, -0x1(%rbp)
0000000100005e6b jmp 0x100005e74
0000000100005e70 movb $0x0, -0x1(%rbp)
0000000100005e74 movb -0x1(%rbp), %al
0000000100005e77 andb $0x1, %al
0000000100005e79 movzbl %al, %eax
0000000100005e7c popq %rbp
0000000100005e7d retq
0000000100005e7e nop
_string_le:
0000000100005e80 pushq %rbp
0000000100005e81 movq %rsp, %rbp
0000000100005e84 subq $0x30, %rsp
0000000100005e88 movq %rdi, -0x10(%rbp)
0000000100005e8c movl %esi, -0x8(%rbp)
0000000100005e8f movq %rdx, -0x20(%rbp)
0000000100005e93 movl %ecx, -0x18(%rbp)
0000000100005e96 movq -0x10(%rbp), %rdi
0000000100005e9a movl -0x8(%rbp), %esi
0000000100005e9d movq -0x20(%rbp), %rdx
0000000100005ea1 movl -0x18(%rbp), %ecx
0000000100005ea4 callq _string_lt
0000000100005ea9 movb $0x1, %r8b
0000000100005eac testb $0x1, %al
0000000100005eae movb %r8b, -0x21(%rbp)
0000000100005eb2 jne 0x100005ece
0000000100005eb8 movq -0x10(%rbp), %rdi
0000000100005ebc movl -0x8(%rbp), %esi
0000000100005ebf movq -0x20(%rbp), %rdx
0000000100005ec3 movl -0x18(%rbp), %ecx
0000000100005ec6 callq _string_eq
0000000100005ecb movb %al, -0x21(%rbp)
0000000100005ece movb -0x21(%rbp), %al
0000000100005ed1 andb $0x1, %al
0000000100005ed3 movzbl %al, %eax
0000000100005ed6 addq $0x30, %rsp
0000000100005eda popq %rbp
0000000100005edb retq
0000000100005edc nopl (%rax)
_string_ge:
0000000100005ee0 pushq %rbp
0000000100005ee1 movq %rsp, %rbp
0000000100005ee4 subq $0x20, %rsp
0000000100005ee8 movq %rdi, -0x10(%rbp)
0000000100005eec movl %esi, -0x8(%rbp)
0000000100005eef movq %rdx, -0x20(%rbp)
0000000100005ef3 movl %ecx, -0x18(%rbp)
0000000100005ef6 movq -0x10(%rbp), %rdi
0000000100005efa movl -0x8(%rbp), %esi
0000000100005efd movq -0x20(%rbp), %rdx
0000000100005f01 movl -0x18(%rbp), %ecx
0000000100005f04 callq _string_lt
0000000100005f09 xorb $-0x1, %al
0000000100005f0b andb $0x1, %al
0000000100005f0d movzbl %al, %eax
0000000100005f10 addq $0x20, %rsp
0000000100005f14 popq %rbp
0000000100005f15 retq
0000000100005f16 nopw %cs:(%rax,%rax)
_string_split:
0000000100005f20 pushq %rbp
0000000100005f21 movq %rsp, %rbp
0000000100005f24 pushq %r14
0000000100005f26 pushq %rbx
0000000100005f27 subq $0xc0, %rsp
0000000100005f2e movq %rdi, %rax
0000000100005f31 leaq -0x60(%rbp), %r9
0000000100005f35 xorl %r10d, %r10d
0000000100005f38 movl $0x10, %r11d
0000000100005f3e leaq -0x28(%rbp), %rbx
0000000100005f42 movq 0x70ef(%rip), %r14 ## literal pool symbol address: ___stack_chk_guard
0000000100005f49 movq (%r14), %r14
0000000100005f4c movq %r14, -0x18(%rbp)
0000000100005f50 movq %rsi, -0x38(%rbp)
0000000100005f54 movl %edx, -0x30(%rbp)
0000000100005f57 movq %rcx, -0x48(%rbp)
0000000100005f5b movl %r8d, -0x40(%rbp)
0000000100005f5f movq $0x0, -0x28(%rbp)
0000000100005f67 movl $0x0, -0x20(%rbp)
0000000100005f6e movq %rdi, -0xc0(%rbp)
0000000100005f75 movq %r9, %rdi
0000000100005f78 movl %r10d, %esi
0000000100005f7b movl %r10d, %edx
0000000100005f7e movl %r11d, %ecx
0000000100005f81 movq %rbx, %r8
0000000100005f84 movq %rax, -0xc8(%rbp)
0000000100005f8b callq _new_array_from_c_array
0000000100005f90 cmpl $0x0, -0x40(%rbp)
0000000100005f94 jne 0x100005fdd
0000000100005f9a leaq -0x60(%rbp), %rdi
0000000100005f9e leaq -0x70(%rbp), %rax
0000000100005fa2 movq -0x38(%rbp), %rcx
0000000100005fa6 movq %rcx, -0x70(%rbp)
0000000100005faa movq -0x30(%rbp), %rcx
0000000100005fae movq %rcx, -0x68(%rbp)
0000000100005fb2 movq %rax, %rsi
0000000100005fb5 callq _array_push
0000000100005fba movq -0x60(%rbp), %rax
0000000100005fbe movq -0xc0(%rbp), %rcx
0000000100005fc5 movq %rax, (%rcx)
0000000100005fc8 movq -0x58(%rbp), %rax
0000000100005fcc movq %rax, 0x8(%rcx)
0000000100005fd0 movq -0x50(%rbp), %rax
0000000100005fd4 movq %rax, 0x10(%rcx)
0000000100005fd8 jmp 0x10000620b
0000000100005fdd cmpl $0x1, -0x40(%rbp)
0000000100005fe1 jne 0x100006008
0000000100005fe7 movq -0x48(%rbp), %rax
0000000100005feb movb (%rax), %cl
0000000100005fed movq -0x38(%rbp), %rsi
0000000100005ff1 movl -0x30(%rbp), %edx
0000000100005ff4 movq -0xc0(%rbp), %rdi
0000000100005ffb movzbl %cl, %ecx
0000000100005ffe callq _string_split_single
0000000100006003 jmp 0x10000620b
0000000100006008 movl $0x0, -0x74(%rbp)
000000010000600f movl $0x0, -0x78(%rbp)
0000000100006016 movl -0x74(%rbp), %eax
0000000100006019 cmpl -0x30(%rbp), %eax
000000010000601c jge 0x1000061ed
0000000100006022 movq -0x38(%rbp), %rax
0000000100006026 movslq -0x74(%rbp), %rcx
000000010000602a movzbl (%rax,%rcx), %edx
000000010000602e movq -0x48(%rbp), %rax
0000000100006032 movzbl (%rax), %esi
0000000100006035 cmpl %esi, %edx
0000000100006037 sete %dil
000000010000603b andb $0x1, %dil
000000010000603f movb %dil, -0x79(%rbp)
0000000100006043 movl $0x1, -0x80(%rbp)
000000010000604a xorl %eax, %eax
000000010000604c movb %al, %cl
000000010000604e movl -0x80(%rbp), %eax
0000000100006051 cmpl -0x40(%rbp), %eax
0000000100006054 movb %cl, -0xc9(%rbp)
000000010000605a jge 0x100006069
0000000100006060 movb -0x79(%rbp), %al
0000000100006063 movb %al, -0xc9(%rbp)
0000000100006069 movb -0xc9(%rbp), %al
000000010000606f testb $0x1, %al
0000000100006071 jne 0x10000607c
0000000100006077 jmp 0x1000060d3
000000010000607c xorl %eax, %eax
000000010000607e movb %al, %cl
0000000100006080 testb $0x1, -0x79(%rbp)
0000000100006084 movb %cl, -0xca(%rbp)
000000010000608a je 0x1000060ba
0000000100006090 movq -0x38(%rbp), %rax
0000000100006094 movl -0x74(%rbp), %ecx
0000000100006097 addl -0x80(%rbp), %ecx
000000010000609a movslq %ecx, %rdx
000000010000609d movzbl (%rax,%rdx), %ecx
00000001000060a1 movq -0x48(%rbp), %rax
00000001000060a5 movslq -0x80(%rbp), %rdx
00000001000060a9 movzbl (%rax,%rdx), %esi
00000001000060ad cmpl %esi, %ecx
00000001000060af sete %dil
00000001000060b3 movb %dil, -0xca(%rbp)
00000001000060ba movb -0xca(%rbp), %al
00000001000060c0 andb $0x1, %al
00000001000060c2 movb %al, -0x79(%rbp)
00000001000060c5 movl -0x80(%rbp), %ecx
00000001000060c8 addl $0x1, %ecx
00000001000060cb movl %ecx, -0x80(%rbp)
00000001000060ce jmp 0x10000604a
00000001000060d3 movl -0x74(%rbp), %eax
00000001000060d6 movl -0x30(%rbp), %ecx
00000001000060d9 subl $0x1, %ecx
00000001000060dc cmpl %ecx, %eax
00000001000060de sete %dl
00000001000060e1 andb $0x1, %dl
00000001000060e4 movb %dl, -0x81(%rbp)
00000001000060ea testb $0x1, -0x79(%rbp)
00000001000060ee jne 0x100006101
00000001000060f4 testb $0x1, -0x81(%rbp)
00000001000060fb je 0x1000061df
0000000100006101 testb $0x1, -0x81(%rbp)
0000000100006108 je 0x100006117
000000010000610e movl -0x74(%rbp), %eax
0000000100006111 addl $0x1, %eax
0000000100006114 movl %eax, -0x74(%rbp)
0000000100006117 movl -0x78(%rbp), %edx
000000010000611a movl -0x74(%rbp), %ecx
000000010000611d movq -0x38(%rbp), %rdi
0000000100006121 movl -0x30(%rbp), %esi
0000000100006124 callq _string_substr
0000000100006129 movq %rax, -0x98(%rbp)
0000000100006130 movl %edx, -0x90(%rbp)
0000000100006136 cmpl $0x0, -0x90(%rbp)
000000010000613d jle 0x1000061d9
0000000100006143 movq -0x98(%rbp), %rdi
000000010000614a movl -0x90(%rbp), %esi
0000000100006150 movq -0x48(%rbp), %rdx
0000000100006154 movl -0x40(%rbp), %ecx
0000000100006157 callq _string_starts_with
000000010000615c testb $0x1, %al
000000010000615e jne 0x100006169
0000000100006164 jmp 0x1000061a7
0000000100006169 movl -0x40(%rbp), %edx
000000010000616c movq -0x98(%rbp), %rdi
0000000100006173 movl -0x90(%rbp), %esi
0000000100006179 callq _string_right
000000010000617e movq %rax, -0xa8(%rbp)
0000000100006185 movl %edx, -0xa0(%rbp)
000000010000618b movq -0xa8(%rbp), %rax
0000000100006192 movq %rax, -0x98(%rbp)
0000000100006199 movq -0xa0(%rbp), %rax
00000001000061a0 movq %rax, -0x90(%rbp)
00000001000061a7 movq -0x98(%rbp), %rdi
00000001000061ae movl -0x90(%rbp), %esi
00000001000061b4 callq _string_trim_space
00000001000061b9 leaq -0x60(%rbp), %rdi
00000001000061bd leaq -0xb8(%rbp), %rcx
00000001000061c4 movq %rax, -0xb8(%rbp)
00000001000061cb movl %edx, -0xb0(%rbp)
00000001000061d1 movq %rcx, %rsi
00000001000061d4 callq _array_push
00000001000061d9 movl -0x74(%rbp), %eax
00000001000061dc movl %eax, -0x78(%rbp)
00000001000061df movl -0x74(%rbp), %eax
00000001000061e2 addl $0x1, %eax
00000001000061e5 movl %eax, -0x74(%rbp)
00000001000061e8 jmp 0x100006016
00000001000061ed movq -0x60(%rbp), %rax
00000001000061f1 movq -0xc0(%rbp), %rcx
00000001000061f8 movq %rax, (%rcx)
00000001000061fb movq -0x58(%rbp), %rax
00000001000061ff movq %rax, 0x8(%rcx)
0000000100006203 movq -0x50(%rbp), %rax
0000000100006207 movq %rax, 0x10(%rcx)
000000010000620b movq 0x6e26(%rip), %rax ## literal pool symbol address: ___stack_chk_guard
0000000100006212 movq (%rax), %rax
0000000100006215 movq -0x18(%rbp), %rcx
0000000100006219 cmpq %rcx, %rax
000000010000621c jne 0x100006235
0000000100006222 movq -0xc8(%rbp), %rax
0000000100006229 addq $0xc0, %rsp
0000000100006230 popq %rbx
0000000100006231 popq %r14
0000000100006233 popq %rbp
0000000100006234 retq
0000000100006235 callq 0x10000a5b0 ## symbol stub for: ___stack_chk_fail
000000010000623a ud2
000000010000623c nopl (%rax)
_string_split_single:
0000000100006240 pushq %rbp
0000000100006241 movq %rsp, %rbp
0000000100006244 subq $0x80, %rsp
000000010000624b movb %cl, %al
000000010000624d movq %rdi, %r8
0000000100006250 xorl %ecx, %ecx
0000000100006252 movl $0x10, %r9d
0000000100006258 leaq -0x18(%rbp), %r10
000000010000625c movq 0x6dd5(%rip), %r11 ## literal pool symbol address: ___stack_chk_guard
0000000100006263 movq (%r11), %r11
0000000100006266 movq %r11, -0x8(%rbp)
000000010000626a movq %rsi, -0x28(%rbp)
000000010000626e movl %edx, -0x20(%rbp)
0000000100006271 movb %al, -0x29(%rbp)
0000000100006274 movq $0x0, -0x18(%rbp)
000000010000627c movl $0x0, -0x10(%rbp)
0000000100006283 movq %rdi, -0x78(%rbp)
0000000100006287 movl %ecx, %esi
0000000100006289 movl %ecx, %edx
000000010000628b movl %r9d, %ecx
000000010000628e movq %r8, -0x80(%rbp)
0000000100006292 movq %r10, %r8
0000000100006295 callq _new_array_from_c_array
000000010000629a movzbl -0x29(%rbp), %ecx
000000010000629e cmpl $0x0, %ecx
00000001000062a1 jne 0x1000062cc
00000001000062a7 leaq -0x40(%rbp), %rax
00000001000062ab movq -0x28(%rbp), %rcx
00000001000062af movq %rcx, -0x40(%rbp)
00000001000062b3 movq -0x20(%rbp), %rcx
00000001000062b7 movq %rcx, -0x38(%rbp)
00000001000062bb movq -0x78(%rbp), %rdi
00000001000062bf movq %rax, %rsi
00000001000062c2 callq _array_push
00000001000062c7 jmp 0x1000063b2
00000001000062cc movl $0x0, -0x44(%rbp)
00000001000062d3 movl $0x0, -0x48(%rbp)
00000001000062da movl -0x44(%rbp), %eax
00000001000062dd cmpl -0x20(%rbp), %eax
00000001000062e0 jge 0x1000063ad
00000001000062e6 movq -0x28(%rbp), %rax
00000001000062ea movslq -0x44(%rbp), %rcx
00000001000062ee movzbl (%rax,%rcx), %edx
00000001000062f2 movzbl -0x29(%rbp), %esi
00000001000062f6 cmpl %esi, %edx
00000001000062f8 sete %dil
00000001000062fc andb $0x1, %dil
0000000100006300 movb %dil, -0x49(%rbp)
0000000100006304 movl -0x44(%rbp), %edx
0000000100006307 movl -0x20(%rbp), %esi
000000010000630a subl $0x1, %esi
000000010000630d cmpl %esi, %edx
000000010000630f sete %dil
0000000100006313 andb $0x1, %dil
0000000100006317 movb %dil, -0x4a(%rbp)
000000010000631b testb $0x1, -0x49(%rbp)
000000010000631f jne 0x10000632f
0000000100006325 testb $0x1, -0x4a(%rbp)
0000000100006329 je 0x10000639f
000000010000632f testb $0x1, -0x49(%rbp)
0000000100006333 jne 0x100006353
0000000100006339 movl -0x44(%rbp), %eax
000000010000633c movl -0x20(%rbp), %ecx
000000010000633f subl $0x1, %ecx
0000000100006342 cmpl %ecx, %eax
0000000100006344 jne 0x100006353
000000010000634a movl -0x44(%rbp), %eax
000000010000634d addl $0x1, %eax
0000000100006350 movl %eax, -0x44(%rbp)
0000000100006353 movl -0x48(%rbp), %edx
0000000100006356 movl -0x44(%rbp), %ecx
0000000100006359 movq -0x28(%rbp), %rdi
000000010000635d movl -0x20(%rbp), %esi
0000000100006360 callq _string_substr
0000000100006365 movq %rax, -0x60(%rbp)
0000000100006369 movl %edx, -0x58(%rbp)
000000010000636c cmpl $0x0, -0x58(%rbp)
0000000100006370 jle 0x100006396
0000000100006376 leaq -0x70(%rbp), %rax
000000010000637a movq -0x60(%rbp), %rcx
000000010000637e movq %rcx, -0x70(%rbp)
0000000100006382 movq -0x58(%rbp), %rcx
0000000100006386 movq %rcx, -0x68(%rbp)
000000010000638a movq -0x78(%rbp), %rdi
000000010000638e movq %rax, %rsi
0000000100006391 callq _array_push
0000000100006396 movl -0x44(%rbp), %eax
0000000100006399 addl $0x1, %eax
000000010000639c movl %eax, -0x48(%rbp)
000000010000639f movl -0x44(%rbp), %eax
00000001000063a2 addl $0x1, %eax
00000001000063a5 movl %eax, -0x44(%rbp)
00000001000063a8 jmp 0x1000062da
00000001000063ad jmp 0x1000063b2
00000001000063b2 movq 0x6c7f(%rip), %rax ## literal pool symbol address: ___stack_chk_guard
00000001000063b9 movq (%rax), %rax
00000001000063bc movq -0x8(%rbp), %rcx
00000001000063c0 cmpq %rcx, %rax
00000001000063c3 jne 0x1000063d6
00000001000063c9 movq -0x80(%rbp), %rax
00000001000063cd addq $0x80, %rsp
00000001000063d4 popq %rbp
00000001000063d5 retq
00000001000063d6 callq 0x10000a5b0 ## symbol stub for: ___stack_chk_fail
00000001000063db ud2
00000001000063dd nopl (%rax)
_string_starts_with:
00000001000063e0 pushq %rbp
00000001000063e1 movq %rsp, %rbp
00000001000063e4 subq $0x30, %rsp
00000001000063e8 movq %rdi, -0x10(%rbp)
00000001000063ec movl %esi, -0x8(%rbp)
00000001000063ef movq %rdx, -0x20(%rbp)
00000001000063f3 movl %ecx, -0x18(%rbp)
00000001000063f6 movq -0x10(%rbp), %rdi
00000001000063fa movl -0x8(%rbp), %esi
00000001000063fd movq -0x20(%rbp), %rdx
0000000100006401 movl -0x18(%rbp), %ecx
0000000100006404 callq _string_index
0000000100006409 cmpl $0x0, %eax
000000010000640c sete %r8b
0000000100006410 andb $0x1, %r8b
0000000100006414 movb %r8b, -0x21(%rbp)
0000000100006418 movb -0x21(%rbp), %r8b
000000010000641c andb $0x1, %r8b
0000000100006420 movzbl %r8b, %eax
0000000100006424 addq $0x30, %rsp
0000000100006428 popq %rbp
0000000100006429 retq
000000010000642a nopw (%rax,%rax)
_string_right:
0000000100006430 pushq %rbp
0000000100006431 movq %rsp, %rbp
0000000100006434 subq $0x30, %rsp
0000000100006438 movq %rdi, -0x20(%rbp)
000000010000643c movl %esi, -0x18(%rbp)
000000010000643f movl %edx, -0x24(%rbp)
0000000100006442 movl -0x24(%rbp), %edx
0000000100006445 cmpl -0x18(%rbp), %edx
0000000100006448 jl 0x100006466
000000010000644e leaq 0x4564(%rip), %rdi ## literal pool for: ""
0000000100006455 callq _tos3
000000010000645a movq %rax, -0x10(%rbp)
000000010000645e movl %edx, -0x8(%rbp)
0000000100006461 jmp 0x10000647f
0000000100006466 movl -0x24(%rbp), %edx
0000000100006469 movl -0x18(%rbp), %ecx
000000010000646c movq -0x20(%rbp), %rdi
0000000100006470 movl -0x18(%rbp), %esi
0000000100006473 callq _string_substr
0000000100006478 movq %rax, -0x10(%rbp)
000000010000647c movl %edx, -0x8(%rbp)
000000010000647f movq -0x10(%rbp), %rax
0000000100006483 movl -0x8(%rbp), %edx
0000000100006486 addq $0x30, %rsp
000000010000648a popq %rbp
000000010000648b retq
000000010000648c nopl (%rax)
_string_trim_space:
0000000100006490 pushq %rbp
0000000100006491 movq %rsp, %rbp
0000000100006494 subq $0x30, %rsp
0000000100006498 movq %rdi, -0x20(%rbp)
000000010000649c movl %esi, -0x18(%rbp)
000000010000649f leaq 0x4606(%rip), %rdi ## literal pool for: " \n\t\013\014\015"
00000001000064a6 callq _tos3
00000001000064ab movq %rax, -0x30(%rbp)
00000001000064af movl %edx, -0x28(%rbp)
00000001000064b2 movq -0x20(%rbp), %rdi
00000001000064b6 movl -0x18(%rbp), %esi
00000001000064b9 movq -0x30(%rbp), %rdx
00000001000064bd movl -0x28(%rbp), %ecx
00000001000064c0 callq _string_trim
00000001000064c5 movq %rax, -0x10(%rbp)
00000001000064c9 movl %edx, -0x8(%rbp)
00000001000064cc movq -0x10(%rbp), %rax
00000001000064d0 movl -0x8(%rbp), %edx
00000001000064d3 addq $0x30, %rsp
00000001000064d7 popq %rbp
00000001000064d8 retq
00000001000064d9 nopl (%rax)
_string_split_into_lines:
00000001000064e0 pushq %rbp
00000001000064e1 movq %rsp, %rbp
00000001000064e4 subq $0x70, %rsp
00000001000064e8 movq %rdi, %rax
00000001000064eb xorl %ecx, %ecx
00000001000064ed movl $0x10, %r8d
00000001000064f3 leaq -0x18(%rbp), %r9
00000001000064f7 movq 0x6b3a(%rip), %r10 ## literal pool symbol address: ___stack_chk_guard
00000001000064fe movq (%r10), %r10
0000000100006501 movq %r10, -0x8(%rbp)
0000000100006505 movq %rsi, -0x28(%rbp)
0000000100006509 movl %edx, -0x20(%rbp)
000000010000650c movq $0x0, -0x18(%rbp)
0000000100006514 movl $0x0, -0x10(%rbp)
000000010000651b movq %rdi, -0x60(%rbp)
000000010000651f movl %ecx, %esi
0000000100006521 movl %ecx, %edx
0000000100006523 movl %r8d, %ecx
0000000100006526 movq %r9, %r8
0000000100006529 movq %rax, -0x68(%rbp)
000000010000652d callq _new_array_from_c_array
0000000100006532 cmpl $0x0, -0x20(%rbp)
0000000100006536 jne 0x100006541
000000010000653c jmp 0x100006603
0000000100006541 movl $0x0, -0x2c(%rbp)
0000000100006548 movl $0x0, -0x30(%rbp)
000000010000654f movl -0x30(%rbp), %eax
0000000100006552 cmpl -0x20(%rbp), %eax
0000000100006555 jge 0x1000065fe
000000010000655b movl -0x30(%rbp), %eax
000000010000655e movl -0x20(%rbp), %ecx
0000000100006561 subl $0x1, %ecx
0000000100006564 cmpl %ecx, %eax
0000000100006566 sete %dl
0000000100006569 andb $0x1, %dl
000000010000656c movb %dl, -0x31(%rbp)
000000010000656f movq -0x28(%rbp), %rsi
0000000100006573 movslq -0x30(%rbp), %rdi
0000000100006577 movzbl (%rsi,%rdi), %eax
000000010000657b cmpl $0xa, %eax
000000010000657e je 0x10000658e
0000000100006584 testb $0x1, -0x31(%rbp)
0000000100006588 je 0x1000065eb
000000010000658e testb $0x1, -0x31(%rbp)
0000000100006592 je 0x1000065a1
0000000100006598 movl -0x30(%rbp), %eax
000000010000659b addl $0x1, %eax
000000010000659e movl %eax, -0x30(%rbp)
00000001000065a1 movl -0x2c(%rbp), %edx
00000001000065a4 movl -0x30(%rbp), %ecx
00000001000065a7 movq -0x28(%rbp), %rdi
00000001000065ab movl -0x20(%rbp), %esi
00000001000065ae callq _string_substr
00000001000065b3 leaq -0x58(%rbp), %rdi
00000001000065b7 movq %rax, -0x48(%rbp)
00000001000065bb movl %edx, -0x40(%rbp)
00000001000065be movq -0x48(%rbp), %rax
00000001000065c2 movq %rax, -0x58(%rbp)
00000001000065c6 movq -0x40(%rbp), %rax
00000001000065ca movq %rax, -0x50(%rbp)
00000001000065ce movq -0x60(%rbp), %rax
00000001000065d2 movq %rdi, -0x70(%rbp)
00000001000065d6 movq %rax, %rdi
00000001000065d9 movq -0x70(%rbp), %rsi
00000001000065dd callq _array_push
00000001000065e2 movl -0x30(%rbp), %ecx
00000001000065e5 addl $0x1, %ecx
00000001000065e8 movl %ecx, -0x2c(%rbp)
00000001000065eb jmp 0x1000065f0
00000001000065f0 movl -0x30(%rbp), %eax
00000001000065f3 addl $0x1, %eax
00000001000065f6 movl %eax, -0x30(%rbp)
00000001000065f9 jmp 0x10000654f
00000001000065fe jmp 0x100006603
0000000100006603 movq 0x6a2e(%rip), %rax ## literal pool symbol address: ___stack_chk_guard
000000010000660a movq (%rax), %rax
000000010000660d movq -0x8(%rbp), %rcx
0000000100006611 cmpq %rcx, %rax
0000000100006614 jne 0x100006624
000000010000661a movq -0x68(%rbp), %rax
000000010000661e addq $0x70, %rsp
0000000100006622 popq %rbp
0000000100006623 retq
0000000100006624 callq 0x10000a5b0 ## symbol stub for: ___stack_chk_fail
0000000100006629 ud2
000000010000662b nopl (%rax,%rax)
_string_left:
0000000100006630 pushq %rbp
0000000100006631 movq %rsp, %rbp
0000000100006634 subq $0x30, %rsp
0000000100006638 movq %rdi, -0x20(%rbp)
000000010000663c movl %esi, -0x18(%rbp)
000000010000663f movl %edx, -0x24(%rbp)
0000000100006642 movl -0x24(%rbp), %edx
0000000100006645 cmpl -0x18(%rbp), %edx
0000000100006648 jl 0x100006663
000000010000664e movq -0x20(%rbp), %rax
0000000100006652 movq %rax, -0x10(%rbp)
0000000100006656 movq -0x18(%rbp), %rax
000000010000665a movq %rax, -0x8(%rbp)
000000010000665e jmp 0x10000667b
0000000100006663 xorl %edx, %edx
0000000100006665 movl -0x24(%rbp), %ecx
0000000100006668 movq -0x20(%rbp), %rdi
000000010000666c movl -0x18(%rbp), %esi
000000010000666f callq _string_substr
0000000100006674 movq %rax, -0x10(%rbp)
0000000100006678 movl %edx, -0x8(%rbp)
000000010000667b movq -0x10(%rbp), %rax
000000010000667f movl -0x8(%rbp), %edx
0000000100006682 addq $0x30, %rsp
0000000100006686 popq %rbp
0000000100006687 retq
0000000100006688 nopl (%rax,%rax)
_string_index_kmp:
0000000100006690 pushq %rbp
0000000100006691 movq %rsp, %rbp
0000000100006694 subq $0xa0, %rsp
000000010000669b movq %rdi, -0x18(%rbp)
000000010000669f movl %esi, -0x10(%rbp)
00000001000066a2 movq %rdx, -0x28(%rbp)
00000001000066a6 movl %ecx, -0x20(%rbp)
00000001000066a9 movl -0x20(%rbp), %ecx
00000001000066ac cmpl -0x10(%rbp), %ecx
00000001000066af jle 0x1000066c1
00000001000066b5 movl $0xffffffff, -0x4(%rbp)
00000001000066bc jmp 0x1000068ec
00000001000066c1 leaq -0x58(%rbp), %rdi
00000001000066c5 movl $0x1, %eax
00000001000066ca movl $0x4, %ecx
00000001000066cf leaq -0x5c(%rbp), %rdx
00000001000066d3 movl $0x0, -0x5c(%rbp)
00000001000066da movl %eax, %esi
00000001000066dc movq %rdx, -0x78(%rbp)
00000001000066e0 movl %eax, %edx
00000001000066e2 movq -0x78(%rbp), %r8
00000001000066e6 callq _new_array_from_c_array
00000001000066eb leaq -0x40(%rbp), %rdi
00000001000066ef leaq -0x58(%rbp), %r8
00000001000066f3 movl -0x20(%rbp), %esi
00000001000066f6 movq (%r8), %r9
00000001000066f9 movq %r9, (%rsp)
00000001000066fd movq 0x8(%r8), %r9
0000000100006701 movq %r9, 0x8(%rsp)
0000000100006706 movq 0x10(%r8), %r8
000000010000670a movq %r8, 0x10(%rsp)
000000010000670f callq _array_repeat
0000000100006714 movl $0x0, -0x60(%rbp)
000000010000671b movl $0x1, -0x64(%rbp)
0000000100006722 movl -0x64(%rbp), %eax
0000000100006725 cmpl -0x20(%rbp), %eax
0000000100006728 jge 0x1000067f8
000000010000672e jmp 0x100006733
0000000100006733 xorl %eax, %eax
0000000100006735 movb %al, %cl
0000000100006737 movq -0x28(%rbp), %rdx
000000010000673b movslq -0x60(%rbp), %rsi
000000010000673f movzbl (%rdx,%rsi), %eax
0000000100006743 movq -0x28(%rbp), %rdx
0000000100006747 movslq -0x64(%rbp), %rsi
000000010000674b movzbl (%rdx,%rsi), %edi
000000010000674f cmpl %edi, %eax
0000000100006751 movb %cl, -0x79(%rbp)
0000000100006754 je 0x100006764
000000010000675a cmpl $0x0, -0x60(%rbp)
000000010000675e setg %al
0000000100006761 movb %al, -0x79(%rbp)
0000000100006764 movb -0x79(%rbp), %al
0000000100006767 testb $0x1, %al
0000000100006769 jne 0x100006774
000000010000676f jmp 0x1000067a8
0000000100006774 leaq -0x40(%rbp), %rax
0000000100006778 movl -0x60(%rbp), %ecx
000000010000677b subl $0x1, %ecx
000000010000677e movq (%rax), %rdx
0000000100006781 movq %rdx, (%rsp)
0000000100006785 movq 0x8(%rax), %rdx
0000000100006789 movq %rdx, 0x8(%rsp)
000000010000678e movq 0x10(%rax), %rax
0000000100006792 movq %rax, 0x10(%rsp)
0000000100006797 movl %ecx, %edi
0000000100006799 callq _array_get
000000010000679e movl (%rax), %ecx
00000001000067a0 movl %ecx, -0x60(%rbp)
00000001000067a3 jmp 0x100006733
00000001000067a8 movq -0x28(%rbp), %rax
00000001000067ac movslq -0x60(%rbp), %rcx
00000001000067b0 movzbl (%rax,%rcx), %edx
00000001000067b4 movq -0x28(%rbp), %rax
00000001000067b8 movslq -0x64(%rbp), %rcx
00000001000067bc movzbl (%rax,%rcx), %esi
00000001000067c0 cmpl %esi, %edx
00000001000067c2 jne 0x1000067d1
00000001000067c8 movl -0x60(%rbp), %eax
00000001000067cb addl $0x1, %eax
00000001000067ce movl %eax, -0x60(%rbp)
00000001000067d1 leaq -0x40(%rbp), %rdi
00000001000067d5 leaq -0x68(%rbp), %rax
00000001000067d9 movl -0x64(%rbp), %esi
00000001000067dc movl -0x60(%rbp), %ecx
00000001000067df movl %ecx, -0x68(%rbp)
00000001000067e2 movq %rax, %rdx
00000001000067e5 callq _array_set
00000001000067ea movl -0x64(%rbp), %eax
00000001000067ed addl $0x1, %eax
00000001000067f0 movl %eax, -0x64(%rbp)
00000001000067f3 jmp 0x100006722
00000001000067f8 movl $0x0, -0x60(%rbp)
00000001000067ff movl $0x0, -0x6c(%rbp)
0000000100006806 movl -0x6c(%rbp), %eax
0000000100006809 cmpl -0x10(%rbp), %eax
000000010000680c jge 0x1000068e5
0000000100006812 jmp 0x100006817
0000000100006817 xorl %eax, %eax
0000000100006819 movb %al, %cl
000000010000681b movq -0x28(%rbp), %rdx
000000010000681f movslq -0x60(%rbp), %rsi
0000000100006823 movzbl (%rdx,%rsi), %eax
0000000100006827 movq -0x18(%rbp), %rdx
000000010000682b movslq -0x6c(%rbp), %rsi
000000010000682f movzbl (%rdx,%rsi), %edi
0000000100006833 cmpl %edi, %eax
0000000100006835 movb %cl, -0x7a(%rbp)
0000000100006838 je 0x100006848
000000010000683e cmpl $0x0, -0x60(%rbp)
0000000100006842 setg %al
0000000100006845 movb %al, -0x7a(%rbp)
0000000100006848 movb -0x7a(%rbp), %al
000000010000684b testb $0x1, %al
000000010000684d jne 0x100006858
0000000100006853 jmp 0x10000688c
0000000100006858 leaq -0x40(%rbp), %rax
000000010000685c movl -0x60(%rbp), %ecx
000000010000685f subl $0x1, %ecx
0000000100006862 movq (%rax), %rdx
0000000100006865 movq %rdx, (%rsp)
0000000100006869 movq 0x8(%rax), %rdx
000000010000686d movq %rdx, 0x8(%rsp)
0000000100006872 movq 0x10(%rax), %rax
0000000100006876 movq %rax, 0x10(%rsp)
000000010000687b movl %ecx, %edi
000000010000687d callq _array_get
0000000100006882 movl (%rax), %ecx
0000000100006884 movl %ecx, -0x60(%rbp)
0000000100006887 jmp 0x100006817
000000010000688c movq -0x28(%rbp), %rax
0000000100006890 movslq -0x60(%rbp), %rcx
0000000100006894 movzbl (%rax,%rcx), %edx
0000000100006898 movq -0x18(%rbp), %rax
000000010000689c movslq -0x6c(%rbp), %rcx
00000001000068a0 movzbl (%rax,%rcx), %esi
00000001000068a4 cmpl %esi, %edx
00000001000068a6 jne 0x1000068b5
00000001000068ac movl -0x60(%rbp), %eax
00000001000068af addl $0x1, %eax
00000001000068b2 movl %eax, -0x60(%rbp)
00000001000068b5 movl -0x60(%rbp), %eax
00000001000068b8 cmpl -0x20(%rbp), %eax
00000001000068bb jne 0x1000068d2
00000001000068c1 movl -0x6c(%rbp), %eax
00000001000068c4 subl -0x20(%rbp), %eax
00000001000068c7 addl $0x1, %eax
00000001000068ca movl %eax, -0x4(%rbp)
00000001000068cd jmp 0x1000068ec
00000001000068d2 jmp 0x1000068d7
00000001000068d7 movl -0x6c(%rbp), %eax
00000001000068da addl $0x1, %eax
00000001000068dd movl %eax, -0x6c(%rbp)
00000001000068e0 jmp 0x100006806
00000001000068e5 movl $0xffffffff, -0x4(%rbp)
00000001000068ec movl -0x4(%rbp), %eax
00000001000068ef addq $0xa0, %rsp
00000001000068f6 popq %rbp
00000001000068f7 retq
00000001000068f8 nopl (%rax,%rax)
_string_index_any:
0000000100006900 pushq %rbp
0000000100006901 movq %rsp, %rbp
0000000100006904 subq $0x70, %rsp
0000000100006908 leaq -0x50(%rbp), %rax
000000010000690c movq %rdi, -0x18(%rbp)
0000000100006910 movl %esi, -0x10(%rbp)
0000000100006913 movq %rdx, -0x28(%rbp)
0000000100006917 movl %ecx, -0x20(%rbp)
000000010000691a movq -0x28(%rbp), %rdx
000000010000691e movq %rdx, -0x38(%rbp)
0000000100006922 movq -0x20(%rbp), %rdx
0000000100006926 movq %rdx, -0x30(%rbp)
000000010000692a movq -0x38(%rbp), %rsi
000000010000692e movl -0x30(%rbp), %edx
0000000100006931 movq %rax, %rdi
0000000100006934 callq _string_bytes
0000000100006939 movl $0x0, -0x54(%rbp)
0000000100006940 movl -0x54(%rbp), %eax
0000000100006943 cmpl -0x30(%rbp), %eax
0000000100006946 jge 0x1000069a8
000000010000694c movq -0x50(%rbp), %rax
0000000100006950 movslq -0x54(%rbp), %rcx
0000000100006954 movb (%rax,%rcx), %dl
0000000100006957 movb %dl, -0x55(%rbp)
000000010000695a movzbl -0x55(%rbp), %edi
000000010000695e callq _byte_str
0000000100006963 movq %rax, -0x70(%rbp)
0000000100006967 movl %edx, -0x68(%rbp)
000000010000696a movq -0x18(%rbp), %rdi
000000010000696e movl -0x10(%rbp), %esi
0000000100006971 movq -0x70(%rbp), %rdx
0000000100006975 movl -0x68(%rbp), %ecx
0000000100006978 callq _string_index
000000010000697d movl %eax, -0x5c(%rbp)
0000000100006980 cmpl $-0x1, -0x5c(%rbp)
0000000100006984 je 0x100006995
000000010000698a movl -0x5c(%rbp), %eax
000000010000698d movl %eax, -0x4(%rbp)
0000000100006990 jmp 0x1000069af
0000000100006995 jmp 0x10000699a
000000010000699a movl -0x54(%rbp), %eax
000000010000699d addl $0x1, %eax
00000001000069a0 movl %eax, -0x54(%rbp)
00000001000069a3 jmp 0x100006940
00000001000069a8 movl $0xffffffff, -0x4(%rbp)
00000001000069af movl -0x4(%rbp), %eax
00000001000069b2 addq $0x70, %rsp
00000001000069b6 popq %rbp
00000001000069b7 retq
00000001000069b8 nopl (%rax,%rax)
_string_bytes:
00000001000069c0 pushq %rbp
00000001000069c1 movq %rsp, %rbp
00000001000069c4 subq $0x80, %rsp
00000001000069cb movq %rdi, %rax
00000001000069ce movq %rsi, -0x10(%rbp)
00000001000069d2 movl %edx, -0x8(%rbp)
00000001000069d5 cmpl $0x0, -0x8(%rbp)
00000001000069d9 movq %rax, -0x58(%rbp)
00000001000069dd movq %rdi, -0x60(%rbp)
00000001000069e1 jne 0x100006a08
00000001000069e7 xorl %eax, %eax
00000001000069e9 movl $0x1, %ecx
00000001000069ee leaq -0x11(%rbp), %r8
00000001000069f2 movb $0x0, -0x11(%rbp)
00000001000069f6 movq -0x60(%rbp), %rdi
00000001000069fa movl %eax, %esi
00000001000069fc movl %eax, %edx
00000001000069fe callq _new_array_from_c_array
0000000100006a03 jmp 0x100006a84
0000000100006a08 leaq -0x48(%rbp), %rdi
0000000100006a0c movl $0x1, %eax
0000000100006a11 leaq -0x49(%rbp), %r8
0000000100006a15 movb $0x0, -0x49(%rbp)
0000000100006a19 movl %eax, %esi
0000000100006a1b movl %eax, %edx
0000000100006a1d movl %eax, %ecx
0000000100006a1f callq _new_array_from_c_array
0000000100006a24 leaq -0x30(%rbp), %rdi
0000000100006a28 leaq -0x48(%rbp), %r8
0000000100006a2c movl -0x8(%rbp), %esi
0000000100006a2f movq (%r8), %r9
0000000100006a32 movq %r9, (%rsp)
0000000100006a36 movq 0x8(%r8), %r9
0000000100006a3a movq %r9, 0x8(%rsp)
0000000100006a3f movq 0x10(%r8), %r8
0000000100006a43 movq %r8, 0x10(%rsp)
0000000100006a48 callq _array_repeat
0000000100006a4d movq $-0x1, %rcx
0000000100006a54 movq -0x30(%rbp), %rdi
0000000100006a58 movq -0x10(%rbp), %rsi
0000000100006a5c movslq -0x8(%rbp), %rdx
0000000100006a60 callq 0x10000a598 ## symbol stub for: ___memcpy_chk
0000000100006a65 movq -0x30(%rbp), %rcx
0000000100006a69 movq -0x60(%rbp), %rdx
0000000100006a6d movq %rcx, (%rdx)
0000000100006a70 movq -0x28(%rbp), %rcx
0000000100006a74 movq %rcx, 0x8(%rdx)
0000000100006a78 movq -0x20(%rbp), %rcx
0000000100006a7c movq %rcx, 0x10(%rdx)
0000000100006a80 movq %rax, -0x68(%rbp)
0000000100006a84 movq -0x58(%rbp), %rax
0000000100006a88 addq $0x80, %rsp
0000000100006a8f popq %rbp
0000000100006a90 retq
0000000100006a91 nopw %cs:(%rax,%rax)
_string_last_index:
0000000100006aa0 pushq %rbp
0000000100006aa1 movq %rsp, %rbp
0000000100006aa4 movq %rdi, -0x18(%rbp)
0000000100006aa8 movl %esi, -0x10(%rbp)
0000000100006aab movq %rdx, -0x28(%rbp)
0000000100006aaf movl %ecx, -0x20(%rbp)
0000000100006ab2 movl -0x20(%rbp), %ecx
0000000100006ab5 cmpl -0x10(%rbp), %ecx
0000000100006ab8 jle 0x100006aca
0000000100006abe movl $0xffffffff, -0x4(%rbp)
0000000100006ac5 jmp 0x100006b68
0000000100006aca movl -0x10(%rbp), %eax
0000000100006acd subl -0x20(%rbp), %eax
0000000100006ad0 movl %eax, -0x2c(%rbp)
0000000100006ad3 cmpl $0x0, -0x2c(%rbp)
0000000100006ad7 jl 0x100006b61
0000000100006add movl $0x0, -0x30(%rbp)
0000000100006ae4 xorl %eax, %eax
0000000100006ae6 movb %al, %cl
0000000100006ae8 movl -0x30(%rbp), %eax
0000000100006aeb cmpl -0x20(%rbp), %eax
0000000100006aee movb %cl, -0x31(%rbp)
0000000100006af1 jge 0x100006b1e
0000000100006af7 movq -0x18(%rbp), %rax
0000000100006afb movl -0x2c(%rbp), %ecx
0000000100006afe addl -0x30(%rbp), %ecx
0000000100006b01 movslq %ecx, %rdx
0000000100006b04 movzbl (%rax,%rdx), %ecx
0000000100006b08 movq -0x28(%rbp), %rax
0000000100006b0c movslq -0x30(%rbp), %rdx
0000000100006b10 movzbl (%rax,%rdx), %esi
0000000100006b14 cmpl %esi, %ecx
0000000100006b16 sete %dil
0000000100006b1a movb %dil, -0x31(%rbp)
0000000100006b1e movb -0x31(%rbp), %al
0000000100006b21 testb $0x1, %al
0000000100006b23 jne 0x100006b2e
0000000100006b29 jmp 0x100006b3c
0000000100006b2e movl -0x30(%rbp), %eax
0000000100006b31 addl $0x1, %eax
0000000100006b34 movl %eax, -0x30(%rbp)
0000000100006b37 jmp 0x100006ae4
0000000100006b3c movl -0x30(%rbp), %eax
0000000100006b3f cmpl -0x20(%rbp), %eax
0000000100006b42 jne 0x100006b53
0000000100006b48 movl -0x2c(%rbp), %eax
0000000100006b4b movl %eax, -0x4(%rbp)
0000000100006b4e jmp 0x100006b68
0000000100006b53 movl -0x2c(%rbp), %eax
0000000100006b56 addl $-0x1, %eax
0000000100006b59 movl %eax, -0x2c(%rbp)
0000000100006b5c jmp 0x100006ad3
0000000100006b61 movl $0xffffffff, -0x4(%rbp)
0000000100006b68 movl -0x4(%rbp), %eax
0000000100006b6b popq %rbp
0000000100006b6c retq
0000000100006b6d nopl (%rax)
_string_index_after:
0000000100006b70 pushq %rbp
0000000100006b71 movq %rsp, %rbp
0000000100006b74 movq %rdi, -0x18(%rbp)
0000000100006b78 movl %esi, -0x10(%rbp)
0000000100006b7b movq %rdx, -0x28(%rbp)
0000000100006b7f movl %ecx, -0x20(%rbp)
0000000100006b82 movl %r8d, -0x2c(%rbp)
0000000100006b86 movl -0x20(%rbp), %ecx
0000000100006b89 cmpl -0x10(%rbp), %ecx
0000000100006b8c jle 0x100006b9e
0000000100006b92 movl $0xffffffff, -0x4(%rbp)
0000000100006b99 jmp 0x100006c74
0000000100006b9e movl -0x2c(%rbp), %eax
0000000100006ba1 movl %eax, -0x30(%rbp)
0000000100006ba4 cmpl $0x0, -0x2c(%rbp)
0000000100006ba8 jge 0x100006bb5
0000000100006bae movl $0x0, -0x30(%rbp)
0000000100006bb5 movl -0x2c(%rbp), %eax
0000000100006bb8 cmpl -0x10(%rbp), %eax
0000000100006bbb jl 0x100006bcd
0000000100006bc1 movl $0xffffffff, -0x4(%rbp)
0000000100006bc8 jmp 0x100006c74
0000000100006bcd movl -0x30(%rbp), %eax
0000000100006bd0 movl %eax, -0x34(%rbp)
0000000100006bd3 movl -0x34(%rbp), %eax
0000000100006bd6 cmpl -0x10(%rbp), %eax
0000000100006bd9 jge 0x100006c6d
0000000100006bdf movl $0x0, -0x38(%rbp)
0000000100006be6 movl -0x34(%rbp), %eax
0000000100006be9 movl %eax, -0x3c(%rbp)
0000000100006bec xorl %eax, %eax
0000000100006bee movb %al, %cl
0000000100006bf0 movl -0x38(%rbp), %eax
0000000100006bf3 cmpl -0x20(%rbp), %eax
0000000100006bf6 movb %cl, -0x3d(%rbp)
0000000100006bf9 jge 0x100006c21
0000000100006bff movq -0x18(%rbp), %rax
0000000100006c03 movslq -0x3c(%rbp), %rcx
0000000100006c07 movzbl (%rax,%rcx), %edx
0000000100006c0b movq -0x28(%rbp), %rax
0000000100006c0f movslq -0x38(%rbp), %rcx
0000000100006c13 movzbl (%rax,%rcx), %esi
0000000100006c17 cmpl %esi, %edx
0000000100006c19 sete %dil
0000000100006c1d movb %dil, -0x3d(%rbp)
0000000100006c21 movb -0x3d(%rbp), %al
0000000100006c24 testb $0x1, %al
0000000100006c26 jne 0x100006c31
0000000100006c2c jmp 0x100006c48
0000000100006c31 movl -0x38(%rbp), %eax
0000000100006c34 addl $0x1, %eax
0000000100006c37 movl %eax, -0x38(%rbp)
0000000100006c3a movl -0x3c(%rbp), %eax
0000000100006c3d addl $0x1, %eax
0000000100006c40 movl %eax, -0x3c(%rbp)
0000000100006c43 jmp 0x100006bec
0000000100006c48 movl -0x38(%rbp), %eax
0000000100006c4b cmpl -0x20(%rbp), %eax
0000000100006c4e jne 0x100006c5f
0000000100006c54 movl -0x34(%rbp), %eax
0000000100006c57 movl %eax, -0x4(%rbp)
0000000100006c5a jmp 0x100006c74
0000000100006c5f movl -0x34(%rbp), %eax
0000000100006c62 addl $0x1, %eax
0000000100006c65 movl %eax, -0x34(%rbp)
0000000100006c68 jmp 0x100006bd3
0000000100006c6d movl $0xffffffff, -0x4(%rbp)
0000000100006c74 movl -0x4(%rbp), %eax
0000000100006c77 popq %rbp
0000000100006c78 retq
0000000100006c79 nopl (%rax)
_string_index_byte:
0000000100006c80 pushq %rbp
0000000100006c81 movq %rsp, %rbp
0000000100006c84 movb %dl, %al
0000000100006c86 movq %rdi, -0x18(%rbp)
0000000100006c8a movl %esi, -0x10(%rbp)
0000000100006c8d movb %al, -0x19(%rbp)
0000000100006c90 movl $0x0, -0x20(%rbp)
0000000100006c97 movl -0x20(%rbp), %eax
0000000100006c9a cmpl -0x10(%rbp), %eax
0000000100006c9d jge 0x100006cd9
0000000100006ca3 movq -0x18(%rbp), %rax
0000000100006ca7 movslq -0x20(%rbp), %rcx
0000000100006cab movzbl (%rax,%rcx), %edx
0000000100006caf movzbl -0x19(%rbp), %esi
0000000100006cb3 cmpl %esi, %edx
0000000100006cb5 jne 0x100006cc6
0000000100006cbb movl -0x20(%rbp), %eax
0000000100006cbe movl %eax, -0x4(%rbp)
0000000100006cc1 jmp 0x100006ce0
0000000100006cc6 jmp 0x100006ccb
0000000100006ccb movl -0x20(%rbp), %eax
0000000100006cce addl $0x1, %eax
0000000100006cd1 movl %eax, -0x20(%rbp)
0000000100006cd4 jmp 0x100006c97
0000000100006cd9 movl $0xffffffff, -0x4(%rbp)
0000000100006ce0 movl -0x4(%rbp), %eax
0000000100006ce3 popq %rbp
0000000100006ce4 retq
0000000100006ce5 nopw %cs:(%rax,%rax)
_string_last_index_byte:
0000000100006cf0 pushq %rbp
0000000100006cf1 movq %rsp, %rbp
0000000100006cf4 movb %dl, %al
0000000100006cf6 movq %rdi, -0x18(%rbp)
0000000100006cfa movl %esi, -0x10(%rbp)
0000000100006cfd movb %al, -0x19(%rbp)
0000000100006d00 movl -0x10(%rbp), %edx
0000000100006d03 subl $0x1, %edx
0000000100006d06 movl %edx, -0x20(%rbp)
0000000100006d09 cmpl $0x0, -0x20(%rbp)
0000000100006d0d jl 0x100006d49
0000000100006d13 movq -0x18(%rbp), %rax
0000000100006d17 movslq -0x20(%rbp), %rcx
0000000100006d1b movzbl (%rax,%rcx), %edx
0000000100006d1f movzbl -0x19(%rbp), %esi
0000000100006d23 cmpl %esi, %edx
0000000100006d25 jne 0x100006d36
0000000100006d2b movl -0x20(%rbp), %eax
0000000100006d2e movl %eax, -0x4(%rbp)
0000000100006d31 jmp 0x100006d50
0000000100006d36 jmp 0x100006d3b
0000000100006d3b movl -0x20(%rbp), %eax
0000000100006d3e addl $-0x1, %eax
0000000100006d41 movl %eax, -0x20(%rbp)
0000000100006d44 jmp 0x100006d09
0000000100006d49 movl $0xffffffff, -0x4(%rbp)
0000000100006d50 movl -0x4(%rbp), %eax
0000000100006d53 popq %rbp
0000000100006d54 retq
0000000100006d55 nopw %cs:(%rax,%rax)
_string_count:
0000000100006d60 pushq %rbp
0000000100006d61 movq %rsp, %rbp
0000000100006d64 subq $0x30, %rsp
0000000100006d68 movq %rdi, -0x18(%rbp)
0000000100006d6c movl %esi, -0x10(%rbp)
0000000100006d6f movq %rdx, -0x28(%rbp)
0000000100006d73 movl %ecx, -0x20(%rbp)
0000000100006d76 cmpl $0x0, -0x10(%rbp)
0000000100006d7a je 0x100006d8a
0000000100006d80 cmpl $0x0, -0x20(%rbp)
0000000100006d84 jne 0x100006d96
0000000100006d8a movl $0x0, -0x4(%rbp)
0000000100006d91 jmp 0x100006e02
0000000100006d96 movl -0x20(%rbp), %eax
0000000100006d99 cmpl -0x10(%rbp), %eax
0000000100006d9c jle 0x100006dae
0000000100006da2 movl $0x0, -0x4(%rbp)
0000000100006da9 jmp 0x100006e02
0000000100006dae movl $0x0, -0x2c(%rbp)
0000000100006db5 movl $0x0, -0x30(%rbp)
0000000100006dbc movl -0x30(%rbp), %r8d
0000000100006dc0 movq -0x18(%rbp), %rdi
0000000100006dc4 movl -0x10(%rbp), %esi
0000000100006dc7 movq -0x28(%rbp), %rdx
0000000100006dcb movl -0x20(%rbp), %ecx
0000000100006dce callq _string_index_after
0000000100006dd3 movl %eax, -0x30(%rbp)
0000000100006dd6 cmpl $-0x1, -0x30(%rbp)
0000000100006dda jne 0x100006deb
0000000100006de0 movl -0x2c(%rbp), %eax
0000000100006de3 movl %eax, -0x4(%rbp)
0000000100006de6 jmp 0x100006e02
0000000100006deb movl -0x20(%rbp), %eax
0000000100006dee addl -0x30(%rbp), %eax
0000000100006df1 movl %eax, -0x30(%rbp)
0000000100006df4 movl -0x2c(%rbp), %eax
0000000100006df7 addl $0x1, %eax
0000000100006dfa movl %eax, -0x2c(%rbp)
0000000100006dfd jmp 0x100006dbc
0000000100006e02 movl -0x4(%rbp), %eax
0000000100006e05 addq $0x30, %rsp
0000000100006e09 popq %rbp
0000000100006e0a retq
0000000100006e0b nopl (%rax,%rax)
_string_contains:
0000000100006e10 pushq %rbp
0000000100006e11 movq %rsp, %rbp
0000000100006e14 subq $0x30, %rsp
0000000100006e18 movq %rdi, -0x10(%rbp)
0000000100006e1c movl %esi, -0x8(%rbp)
0000000100006e1f movq %rdx, -0x20(%rbp)
0000000100006e23 movl %ecx, -0x18(%rbp)
0000000100006e26 movq -0x10(%rbp), %rdi
0000000100006e2a movl -0x8(%rbp), %esi
0000000100006e2d movq -0x20(%rbp), %rdx
0000000100006e31 movl -0x18(%rbp), %ecx
0000000100006e34 callq _string_index
0000000100006e39 cmpl $-0x1, %eax
0000000100006e3c setg %r8b
0000000100006e40 andb $0x1, %r8b
0000000100006e44 movb %r8b, -0x21(%rbp)
0000000100006e48 movb -0x21(%rbp), %r8b
0000000100006e4c andb $0x1, %r8b
0000000100006e50 movzbl %r8b, %eax
0000000100006e54 addq $0x30, %rsp
0000000100006e58 popq %rbp
0000000100006e59 retq
0000000100006e5a nopw (%rax,%rax)
_string_ends_with:
0000000100006e60 pushq %rbp
0000000100006e61 movq %rsp, %rbp
0000000100006e64 subq $0x30, %rsp
0000000100006e68 movq %rdi, -0x18(%rbp)
0000000100006e6c movl %esi, -0x10(%rbp)
0000000100006e6f movq %rdx, -0x28(%rbp)
0000000100006e73 movl %ecx, -0x20(%rbp)
0000000100006e76 movl -0x20(%rbp), %ecx
0000000100006e79 cmpl -0x10(%rbp), %ecx
0000000100006e7c jle 0x100006e8b
0000000100006e82 movb $0x0, -0x1(%rbp)
0000000100006e86 jmp 0x100006ebe
0000000100006e8b movq -0x18(%rbp), %rdi
0000000100006e8f movl -0x10(%rbp), %esi
0000000100006e92 movq -0x28(%rbp), %rdx
0000000100006e96 movl -0x20(%rbp), %ecx
0000000100006e99 callq _string_last_index
0000000100006e9e movl -0x10(%rbp), %ecx
0000000100006ea1 subl -0x20(%rbp), %ecx
0000000100006ea4 cmpl %ecx, %eax
0000000100006ea6 sete %r8b
0000000100006eaa andb $0x1, %r8b
0000000100006eae movb %r8b, -0x29(%rbp)
0000000100006eb2 movb -0x29(%rbp), %r8b
0000000100006eb6 andb $0x1, %r8b
0000000100006eba movb %r8b, -0x1(%rbp)
0000000100006ebe movb -0x1(%rbp), %al
0000000100006ec1 andb $0x1, %al
0000000100006ec3 movzbl %al, %eax
0000000100006ec6 addq $0x30, %rsp
0000000100006eca popq %rbp
0000000100006ecb retq
0000000100006ecc nopl (%rax)
_string_to_lower:
0000000100006ed0 pushq %rbp
0000000100006ed1 movq %rsp, %rbp
0000000100006ed4 subq $0x30, %rsp
0000000100006ed8 movq %rdi, -0x20(%rbp)
0000000100006edc movl %esi, -0x18(%rbp)
0000000100006edf movl -0x18(%rbp), %esi
0000000100006ee2 addl $0x1, %esi
0000000100006ee5 movl %esi, %edi
0000000100006ee7 callq _v_malloc
0000000100006eec movq %rax, -0x28(%rbp)
0000000100006ef0 movl $0x0, -0x2c(%rbp)
0000000100006ef7 movl -0x2c(%rbp), %eax
0000000100006efa cmpl -0x18(%rbp), %eax
0000000100006efd jge 0x100006f2f
0000000100006f03 movq -0x20(%rbp), %rax
0000000100006f07 movslq -0x2c(%rbp), %rcx
0000000100006f0b movzbl (%rax,%rcx), %edi
0000000100006f0f callq 0x10000a622 ## symbol stub for: _tolower
0000000100006f14 movb %al, %dl
0000000100006f16 movq -0x28(%rbp), %rcx
0000000100006f1a movslq -0x2c(%rbp), %rsi
0000000100006f1e movb %dl, (%rcx,%rsi)
0000000100006f21 movl -0x2c(%rbp), %eax
0000000100006f24 addl $0x1, %eax
0000000100006f27 movl %eax, -0x2c(%rbp)
0000000100006f2a jmp 0x100006ef7
0000000100006f2f movq -0x28(%rbp), %rdi
0000000100006f33 movl -0x18(%rbp), %esi
0000000100006f36 callq _tos
0000000100006f3b movq %rax, -0x10(%rbp)
0000000100006f3f movl %edx, -0x8(%rbp)
0000000100006f42 movq -0x10(%rbp), %rax
0000000100006f46 movl -0x8(%rbp), %edx
0000000100006f49 addq $0x30, %rsp
0000000100006f4d popq %rbp
0000000100006f4e retq
0000000100006f4f nop
_string_to_upper:
0000000100006f50 pushq %rbp
0000000100006f51 movq %rsp, %rbp
0000000100006f54 subq $0x30, %rsp
0000000100006f58 movq %rdi, -0x20(%rbp)
0000000100006f5c movl %esi, -0x18(%rbp)
0000000100006f5f movl -0x18(%rbp), %esi
0000000100006f62 addl $0x1, %esi
0000000100006f65 movl %esi, %edi
0000000100006f67 callq _v_malloc
0000000100006f6c movq %rax, -0x28(%rbp)
0000000100006f70 movl $0x0, -0x2c(%rbp)
0000000100006f77 movl -0x2c(%rbp), %eax
0000000100006f7a cmpl -0x18(%rbp), %eax
0000000100006f7d jge 0x100006faf
0000000100006f83 movq -0x20(%rbp), %rax
0000000100006f87 movslq -0x2c(%rbp), %rcx
0000000100006f8b movzbl (%rax,%rcx), %edi
0000000100006f8f callq 0x10000a628 ## symbol stub for: _toupper
0000000100006f94 movb %al, %dl
0000000100006f96 movq -0x28(%rbp), %rcx
0000000100006f9a movslq -0x2c(%rbp), %rsi
0000000100006f9e movb %dl, (%rcx,%rsi)
0000000100006fa1 movl -0x2c(%rbp), %eax
0000000100006fa4 addl $0x1, %eax
0000000100006fa7 movl %eax, -0x2c(%rbp)
0000000100006faa jmp 0x100006f77
0000000100006faf movq -0x28(%rbp), %rdi
0000000100006fb3 movl -0x18(%rbp), %esi
0000000100006fb6 callq _tos
0000000100006fbb movq %rax, -0x10(%rbp)
0000000100006fbf movl %edx, -0x8(%rbp)
0000000100006fc2 movq -0x10(%rbp), %rax
0000000100006fc6 movl -0x8(%rbp), %edx
0000000100006fc9 addq $0x30, %rsp
0000000100006fcd popq %rbp
0000000100006fce retq
0000000100006fcf nop
_string_capitalize:
0000000100006fd0 pushq %rbp
0000000100006fd1 movq %rsp, %rbp
0000000100006fd4 subq $0x60, %rsp
0000000100006fd8 movq %rdi, -0x20(%rbp)
0000000100006fdc movl %esi, -0x18(%rbp)
0000000100006fdf movq -0x20(%rbp), %rdi
0000000100006fe3 movl -0x18(%rbp), %esi
0000000100006fe6 callq _string_to_lower
0000000100006feb movq %rax, -0x30(%rbp)
0000000100006fef movl %edx, -0x28(%rbp)
0000000100006ff2 movq -0x30(%rbp), %rax
0000000100006ff6 movzbl (%rax), %edi
0000000100006ff9 callq _byte_str
0000000100006ffe movq %rax, -0x50(%rbp)
0000000100007002 movl %edx, -0x48(%rbp)
0000000100007005 movq -0x50(%rbp), %rdi
0000000100007009 movl -0x48(%rbp), %esi
000000010000700c callq _string_to_upper
0000000100007011 movq %rax, -0x40(%rbp)
0000000100007015 movl %edx, -0x38(%rbp)
0000000100007018 movq -0x30(%rbp), %rdi
000000010000701c movl -0x28(%rbp), %esi
000000010000701f movl $0x1, %edx
0000000100007024 callq _string_right
0000000100007029 movq %rax, -0x60(%rbp)
000000010000702d movl %edx, -0x58(%rbp)
0000000100007030 movq -0x40(%rbp), %rdi
0000000100007034 movl -0x38(%rbp), %esi
0000000100007037 movq -0x60(%rbp), %rdx
000000010000703b movl -0x58(%rbp), %ecx
000000010000703e callq _string_add
0000000100007043 movq %rax, -0x10(%rbp)
0000000100007047 movl %edx, -0x8(%rbp)
000000010000704a movq -0x10(%rbp), %rax
000000010000704e movl -0x8(%rbp), %edx
0000000100007051 addq $0x60, %rsp
0000000100007055 popq %rbp
0000000100007056 retq
0000000100007057 nopw (%rax,%rax)
_string_title:
0000000100007060 pushq %rbp
0000000100007061 movq %rsp, %rbp
0000000100007064 subq $0xf0, %rsp
000000010000706b leaq 0x3a38(%rip), %rax ## literal pool for: " "
0000000100007072 movq 0x5fbf(%rip), %rcx ## literal pool symbol address: ___stack_chk_guard
0000000100007079 movq (%rcx), %rcx
000000010000707c movq %rcx, -0x8(%rbp)
0000000100007080 movq %rdi, -0x38(%rbp)
0000000100007084 movl %esi, -0x30(%rbp)
0000000100007087 movq %rax, %rdi
000000010000708a callq _tos3
000000010000708f leaq -0x50(%rbp), %rdi
0000000100007093 movq %rax, -0x60(%rbp)
0000000100007097 movl %edx, -0x58(%rbp)
000000010000709a movq -0x38(%rbp), %rsi
000000010000709e movl -0x30(%rbp), %edx
00000001000070a1 movq -0x60(%rbp), %rcx
00000001000070a5 movl -0x58(%rbp), %r8d
00000001000070a9 callq _string_split
00000001000070ae leaq -0x78(%rbp), %rdi
00000001000070b2 xorl %edx, %edx
00000001000070b4 movl $0x10, %ecx
00000001000070b9 leaq -0x18(%rbp), %rax
00000001000070bd movq $0x0, -0x18(%rbp)
00000001000070c5 movl $0x0, -0x10(%rbp)
00000001000070cc movl %edx, %esi
00000001000070ce movq %rax, %r8
00000001000070d1 callq _new_array_from_c_array
00000001000070d6 movq -0x50(%rbp), %rax
00000001000070da movq %rax, -0x90(%rbp)
00000001000070e1 movq -0x48(%rbp), %rax
00000001000070e5 movq %rax, -0x88(%rbp)
00000001000070ec movq -0x40(%rbp), %rax
00000001000070f0 movq %rax, -0x80(%rbp)
00000001000070f4 movl $0x0, -0x94(%rbp)
00000001000070fe movl -0x94(%rbp), %eax
0000000100007104 cmpl -0x88(%rbp), %eax
000000010000710a jge 0x100007180
0000000100007110 movq -0x90(%rbp), %rax
0000000100007117 movslq -0x94(%rbp), %rcx
000000010000711e shlq $0x4, %rcx
0000000100007122 addq %rcx, %rax
0000000100007125 movq (%rax), %rcx
0000000100007128 movq %rcx, -0xa8(%rbp)
000000010000712f movq 0x8(%rax), %rax
0000000100007133 movq %rax, -0xa0(%rbp)
000000010000713a movq -0xa8(%rbp), %rdi
0000000100007141 movl -0xa0(%rbp), %esi
0000000100007147 callq _string_capitalize
000000010000714c leaq -0x78(%rbp), %rdi
0000000100007150 leaq -0xb8(%rbp), %rcx
0000000100007157 movq %rax, -0xb8(%rbp)
000000010000715e movl %edx, -0xb0(%rbp)
0000000100007164 movq %rcx, %rsi
0000000100007167 callq _array_push
000000010000716c movl -0x94(%rbp), %eax
0000000100007172 addl $0x1, %eax
0000000100007175 movl %eax, -0x94(%rbp)
000000010000717b jmp 0x1000070fe
0000000100007180 leaq 0x3923(%rip), %rdi ## literal pool for: " "
0000000100007187 callq _tos3
000000010000718c movq %rax, -0xc8(%rbp)
0000000100007193 movl %edx, -0xc0(%rbp)
0000000100007199 movq -0xc8(%rbp), %rdi
00000001000071a0 movl -0xc0(%rbp), %esi
00000001000071a6 movq -0x68(%rbp), %rax
00000001000071aa movq %rsp, %rcx
00000001000071ad movq %rax, 0x10(%rcx)
00000001000071b1 movq -0x78(%rbp), %rax
00000001000071b5 movq -0x70(%rbp), %r8
00000001000071b9 movq %r8, 0x8(%rcx)
00000001000071bd movq %rax, (%rcx)
00000001000071c0 callq _array_string_join
00000001000071c5 movq %rax, -0x28(%rbp)
00000001000071c9 movl %edx, -0x20(%rbp)
00000001000071cc movl -0x20(%rbp), %edx
00000001000071cf movq -0x28(%rbp), %rax
00000001000071d3 movq 0x5e5e(%rip), %rcx ## literal pool symbol address: ___stack_chk_guard
00000001000071da movq (%rcx), %rcx
00000001000071dd movq -0x8(%rbp), %rdi
00000001000071e1 cmpq %rdi, %rcx
00000001000071e4 movl %edx, -0xcc(%rbp)
00000001000071ea movq %rax, -0xd8(%rbp)
00000001000071f1 jne 0x10000720d
00000001000071f7 movq -0xd8(%rbp), %rax
00000001000071fe movl -0xcc(%rbp), %edx
0000000100007204 addq $0xf0, %rsp
000000010000720b popq %rbp
000000010000720c retq
000000010000720d callq 0x10000a5b0 ## symbol stub for: ___stack_chk_fail
0000000100007212 ud2
0000000100007214 nopw %cs:(%rax,%rax)
_array_string_join:
0000000100007220 pushq %rbp
0000000100007221 movq %rsp, %rbp
0000000100007224 subq $0xc0, %rsp
000000010000722b leaq 0x10(%rbp), %rax
000000010000722f movq %rdi, -0x20(%rbp)
0000000100007233 movl %esi, -0x18(%rbp)
0000000100007236 cmpl $0x0, 0x8(%rax)
000000010000723a movq %rax, -0xb8(%rbp)
0000000100007241 jne 0x10000725f
0000000100007247 leaq 0x376b(%rip), %rdi ## literal pool for: ""
000000010000724e callq _tos3
0000000100007253 movq %rax, -0x10(%rbp)
0000000100007257 movl %edx, -0x8(%rbp)
000000010000725a jmp 0x10000747f
000000010000725f movl $0x0, -0x24(%rbp)
0000000100007266 movq -0xb8(%rbp), %rax
000000010000726d movq (%rax), %rcx
0000000100007270 movq %rcx, -0x40(%rbp)
0000000100007274 movq 0x8(%rax), %rcx
0000000100007278 movq %rcx, -0x38(%rbp)
000000010000727c movq 0x10(%rax), %rcx
0000000100007280 movq %rcx, -0x30(%rbp)
0000000100007284 movl $0x0, -0x44(%rbp)
000000010000728b movl -0x44(%rbp), %eax
000000010000728e cmpl -0x38(%rbp), %eax
0000000100007291 jge 0x1000072cf
0000000100007297 movq -0x40(%rbp), %rax
000000010000729b movslq -0x44(%rbp), %rcx
000000010000729f shlq $0x4, %rcx
00000001000072a3 addq %rcx, %rax
00000001000072a6 movq (%rax), %rcx
00000001000072a9 movq %rcx, -0x58(%rbp)
00000001000072ad movq 0x8(%rax), %rax
00000001000072b1 movq %rax, -0x50(%rbp)
00000001000072b5 movl -0x50(%rbp), %edx
00000001000072b8 addl -0x18(%rbp), %edx
00000001000072bb addl -0x24(%rbp), %edx
00000001000072be movl %edx, -0x24(%rbp)
00000001000072c1 movl -0x44(%rbp), %eax
00000001000072c4 addl $0x1, %eax
00000001000072c7 movl %eax, -0x44(%rbp)
00000001000072ca jmp 0x10000728b
00000001000072cf leaq 0x36e3(%rip), %rdi ## literal pool for: ""
00000001000072d6 movl -0x18(%rbp), %eax
00000001000072d9 movl -0x24(%rbp), %ecx
00000001000072dc subl %eax, %ecx
00000001000072de movl %ecx, -0x24(%rbp)
00000001000072e1 callq _tos3
00000001000072e6 movq %rax, -0x68(%rbp)
00000001000072ea movl %edx, -0x60(%rbp)
00000001000072ed movl -0x24(%rbp), %ecx
00000001000072f0 movl %ecx, -0x60(%rbp)
00000001000072f3 movl -0x60(%rbp), %ecx
00000001000072f6 addl $0x1, %ecx
00000001000072f9 movl %ecx, %edi
00000001000072fb callq _v_malloc
0000000100007300 movq %rax, -0x68(%rbp)
0000000100007304 movl $0x0, -0x6c(%rbp)
000000010000730b movq -0xb8(%rbp), %rax
0000000100007312 movq (%rax), %rsi
0000000100007315 movq %rsi, -0x88(%rbp)
000000010000731c movq 0x8(%rax), %rsi
0000000100007320 movq %rsi, -0x80(%rbp)
0000000100007324 movq 0x10(%rax), %rsi
0000000100007328 movq %rsi, -0x78(%rbp)
000000010000732c movl $0x0, -0x8c(%rbp)
0000000100007336 movl -0x8c(%rbp), %eax
000000010000733c cmpl -0x80(%rbp), %eax
000000010000733f jge 0x100007463
0000000100007345 movq -0x88(%rbp), %rax
000000010000734c movslq -0x8c(%rbp), %rcx
0000000100007353 shlq $0x4, %rcx
0000000100007357 addq %rcx, %rax
000000010000735a movq (%rax), %rcx
000000010000735d movq %rcx, -0xa0(%rbp)
0000000100007364 movq 0x8(%rax), %rax
0000000100007368 movq %rax, -0x98(%rbp)
000000010000736f movl $0x0, -0xa4(%rbp)
0000000100007379 movl -0xa4(%rbp), %eax
000000010000737f cmpl -0x98(%rbp), %eax
0000000100007385 jge 0x1000073db
000000010000738b movq -0xa0(%rbp), %rax
0000000100007392 movslq -0xa4(%rbp), %rcx
0000000100007399 movb (%rax,%rcx), %dl
000000010000739c movb %dl, -0xa5(%rbp)
00000001000073a2 movq -0xa0(%rbp), %rax
00000001000073a9 movslq -0xa4(%rbp), %rcx
00000001000073b0 movb (%rax,%rcx), %dl
00000001000073b3 movq -0x68(%rbp), %rax
00000001000073b7 movslq -0x6c(%rbp), %rcx
00000001000073bb movb %dl, (%rax,%rcx)
00000001000073be movl -0x6c(%rbp), %esi
00000001000073c1 addl $0x1, %esi
00000001000073c4 movl %esi, -0x6c(%rbp)
00000001000073c7 movl -0xa4(%rbp), %eax
00000001000073cd addl $0x1, %eax
00000001000073d0 movl %eax, -0xa4(%rbp)
00000001000073d6 jmp 0x100007379
00000001000073db movl -0x8c(%rbp), %eax
00000001000073e1 movq -0xb8(%rbp), %rcx
00000001000073e8 movl 0x8(%rcx), %edx
00000001000073eb subl $0x1, %edx
00000001000073ee cmpl %edx, %eax
00000001000073f0 je 0x10000744a
00000001000073f6 movl $0x0, -0xac(%rbp)
0000000100007400 movl -0xac(%rbp), %eax
0000000100007406 cmpl -0x18(%rbp), %eax
0000000100007409 jge 0x100007445
000000010000740f movq -0x20(%rbp), %rax
0000000100007413 movslq -0xac(%rbp), %rcx
000000010000741a movb (%rax,%rcx), %dl
000000010000741d movq -0x68(%rbp), %rax
0000000100007421 movslq -0x6c(%rbp), %rcx
0000000100007425 movb %dl, (%rax,%rcx)
0000000100007428 movl -0x6c(%rbp), %esi
000000010000742b addl $0x1, %esi
000000010000742e movl %esi, -0x6c(%rbp)
0000000100007431 movl -0xac(%rbp), %eax
0000000100007437 addl $0x1, %eax
000000010000743a movl %eax, -0xac(%rbp)
0000000100007440 jmp 0x100007400
0000000100007445 jmp 0x10000744a
000000010000744a jmp 0x10000744f
000000010000744f movl -0x8c(%rbp), %eax
0000000100007455 addl $0x1, %eax
0000000100007458 movl %eax, -0x8c(%rbp)
000000010000745e jmp 0x100007336
0000000100007463 movq -0x68(%rbp), %rax
0000000100007467 movslq -0x60(%rbp), %rcx
000000010000746b movb $0x0, (%rax,%rcx)
000000010000746f movq -0x68(%rbp), %rax
0000000100007473 movq %rax, -0x10(%rbp)
0000000100007477 movq -0x60(%rbp), %rax
000000010000747b movq %rax, -0x8(%rbp)
000000010000747f movq -0x10(%rbp), %rax
0000000100007483 movl -0x8(%rbp), %edx
0000000100007486 addq $0xc0, %rsp
000000010000748d popq %rbp
000000010000748e retq
000000010000748f nop
_string_find_between:
0000000100007490 pushq %rbp
0000000100007491 movq %rsp, %rbp
0000000100007494 subq $0x60, %rsp
0000000100007498 movq %rdi, -0x20(%rbp)
000000010000749c movl %esi, -0x18(%rbp)
000000010000749f movq %rdx, -0x30(%rbp)
00000001000074a3 movl %ecx, -0x28(%rbp)
00000001000074a6 movq %r8, -0x40(%rbp)
00000001000074aa movl %r9d, -0x38(%rbp)
00000001000074ae movq -0x20(%rbp), %rdi
00000001000074b2 movl -0x18(%rbp), %esi
00000001000074b5 movq -0x30(%rbp), %rdx
00000001000074b9 movl -0x28(%rbp), %ecx
00000001000074bc callq _string_index
00000001000074c1 movl %eax, -0x44(%rbp)
00000001000074c4 cmpl $-0x1, -0x44(%rbp)
00000001000074c8 jne 0x1000074e6
00000001000074ce leaq 0x34e4(%rip), %rdi ## literal pool for: ""
00000001000074d5 callq _tos3
00000001000074da movq %rax, -0x10(%rbp)
00000001000074de movl %edx, -0x8(%rbp)
00000001000074e1 jmp 0x10000754c
00000001000074e6 movl -0x44(%rbp), %eax
00000001000074e9 addl -0x28(%rbp), %eax
00000001000074ec movq -0x20(%rbp), %rdi
00000001000074f0 movl -0x18(%rbp), %esi
00000001000074f3 movl %eax, %edx
00000001000074f5 callq _string_right
00000001000074fa movq %rax, -0x58(%rbp)
00000001000074fe movl %edx, -0x50(%rbp)
0000000100007501 movq -0x58(%rbp), %rdi
0000000100007505 movl -0x50(%rbp), %esi
0000000100007508 movq -0x40(%rbp), %rdx
000000010000750c movl -0x38(%rbp), %ecx
000000010000750f callq _string_index
0000000100007514 movl %eax, -0x5c(%rbp)
0000000100007517 cmpl $-0x1, -0x5c(%rbp)
000000010000751b jne 0x100007536
0000000100007521 movq -0x58(%rbp), %rax
0000000100007525 movq %rax, -0x10(%rbp)
0000000100007529 movq -0x50(%rbp), %rax
000000010000752d movq %rax, -0x8(%rbp)
0000000100007531 jmp 0x10000754c
0000000100007536 movl -0x5c(%rbp), %edx
0000000100007539 movq -0x58(%rbp), %rdi
000000010000753d movl -0x50(%rbp), %esi
0000000100007540 callq _string_left
0000000100007545 movq %rax, -0x10(%rbp)
0000000100007549 movl %edx, -0x8(%rbp)
000000010000754c movq -0x10(%rbp), %rax
0000000100007550 movl -0x8(%rbp), %edx
0000000100007553 addq $0x60, %rsp
0000000100007557 popq %rbp
0000000100007558 retq
0000000100007559 nopl (%rax)
_array_string_contains:
0000000100007560 pushq %rbp
0000000100007561 movq %rsp, %rbp
0000000100007564 subq $0x50, %rsp
0000000100007568 leaq 0x10(%rbp), %rax
000000010000756c movq %rdi, -0x18(%rbp)
0000000100007570 movl %esi, -0x10(%rbp)
0000000100007573 movq (%rax), %rdi
0000000100007576 movq %rdi, -0x30(%rbp)
000000010000757a movq 0x8(%rax), %rdi
000000010000757e movq %rdi, -0x28(%rbp)
0000000100007582 movq 0x10(%rax), %rax
0000000100007586 movq %rax, -0x20(%rbp)
000000010000758a movl $0x0, -0x34(%rbp)
0000000100007591 movl -0x34(%rbp), %eax
0000000100007594 cmpl -0x28(%rbp), %eax
0000000100007597 jge 0x1000075f7
000000010000759d movq -0x30(%rbp), %rax
00000001000075a1 movslq -0x34(%rbp), %rcx
00000001000075a5 shlq $0x4, %rcx
00000001000075a9 addq %rcx, %rax
00000001000075ac movq (%rax), %rcx
00000001000075af movq %rcx, -0x48(%rbp)
00000001000075b3 movq 0x8(%rax), %rax
00000001000075b7 movq %rax, -0x40(%rbp)
00000001000075bb movq -0x48(%rbp), %rdi
00000001000075bf movl -0x40(%rbp), %esi
00000001000075c2 movq -0x18(%rbp), %rdx
00000001000075c6 movl -0x10(%rbp), %ecx
00000001000075c9 callq _string_eq
00000001000075ce testb $0x1, %al
00000001000075d0 jne 0x1000075db
00000001000075d6 jmp 0x1000075e4
00000001000075db movb $0x1, -0x1(%rbp)
00000001000075df jmp 0x1000075fb
00000001000075e4 jmp 0x1000075e9
00000001000075e9 movl -0x34(%rbp), %eax
00000001000075ec addl $0x1, %eax
00000001000075ef movl %eax, -0x34(%rbp)
00000001000075f2 jmp 0x100007591
00000001000075f7 movb $0x0, -0x1(%rbp)
00000001000075fb movb -0x1(%rbp), %al
00000001000075fe andb $0x1, %al
0000000100007600 movzbl %al, %eax
0000000100007603 addq $0x50, %rsp
0000000100007607 popq %rbp
0000000100007608 retq
0000000100007609 nopl (%rax)
_array_int_contains:
0000000100007610 pushq %rbp
0000000100007611 movq %rsp, %rbp
0000000100007614 leaq 0x10(%rbp), %rax
0000000100007618 movl %edi, -0x8(%rbp)
000000010000761b movq (%rax), %rcx
000000010000761e movq %rcx, -0x20(%rbp)
0000000100007622 movq 0x8(%rax), %rcx
0000000100007626 movq %rcx, -0x18(%rbp)
000000010000762a movq 0x10(%rax), %rax
000000010000762e movq %rax, -0x10(%rbp)
0000000100007632 movl $0x0, -0x24(%rbp)
0000000100007639 movl -0x24(%rbp), %eax
000000010000763c cmpl -0x18(%rbp), %eax
000000010000763f jge 0x10000767b
0000000100007645 movq -0x20(%rbp), %rax
0000000100007649 movslq -0x24(%rbp), %rcx
000000010000764d movl (%rax,%rcx,4), %edx
0000000100007650 movl %edx, -0x28(%rbp)
0000000100007653 movl -0x28(%rbp), %edx
0000000100007656 cmpl -0x8(%rbp), %edx
0000000100007659 jne 0x100007668
000000010000765f movb $0x1, -0x1(%rbp)
0000000100007663 jmp 0x10000767f
0000000100007668 jmp 0x10000766d
000000010000766d movl -0x24(%rbp), %eax
0000000100007670 addl $0x1, %eax
0000000100007673 movl %eax, -0x24(%rbp)
0000000100007676 jmp 0x100007639
000000010000767b movb $0x0, -0x1(%rbp)
000000010000767f movb -0x1(%rbp), %al
0000000100007682 andb $0x1, %al
0000000100007684 movzbl %al, %eax
0000000100007687 popq %rbp
0000000100007688 retq
0000000100007689 nopl (%rax)
_byte_is_space:
0000000100007690 pushq %rbp
0000000100007691 movq %rsp, %rbp
0000000100007694 movb %dil, %al
0000000100007697 movb $0x1, %cl
0000000100007699 movb %al, -0x1(%rbp)
000000010000769c movzbl -0x1(%rbp), %edi
00000001000076a0 cmpl $0x20, %edi
00000001000076a3 movb %cl, -0x2(%rbp)
00000001000076a6 je 0x100007701
00000001000076ac movb $0x1, %al
00000001000076ae movzbl -0x1(%rbp), %ecx
00000001000076b2 cmpl $0xa, %ecx
00000001000076b5 movb %al, -0x2(%rbp)
00000001000076b8 je 0x100007701
00000001000076be movb $0x1, %al
00000001000076c0 movzbl -0x1(%rbp), %ecx
00000001000076c4 cmpl $0x9, %ecx
00000001000076c7 movb %al, -0x2(%rbp)
00000001000076ca je 0x100007701
00000001000076d0 movb $0x1, %al
00000001000076d2 movzbl -0x1(%rbp), %ecx
00000001000076d6 cmpl $0xb, %ecx
00000001000076d9 movb %al, -0x2(%rbp)
00000001000076dc je 0x100007701
00000001000076e2 movb $0x1, %al
00000001000076e4 movzbl -0x1(%rbp), %ecx
00000001000076e8 cmpl $0xc, %ecx
00000001000076eb movb %al, -0x2(%rbp)
00000001000076ee je 0x100007701
00000001000076f4 movzbl -0x1(%rbp), %eax
00000001000076f8 cmpl $0xd, %eax
00000001000076fb sete %cl
00000001000076fe movb %cl, -0x2(%rbp)
0000000100007701 movb -0x2(%rbp), %al
0000000100007704 andb $0x1, %al
0000000100007706 movzbl %al, %eax
0000000100007709 popq %rbp
000000010000770a retq
000000010000770b nopl (%rax,%rax)
_string_trim:
0000000100007710 pushq %rbp
0000000100007711 movq %rsp, %rbp
0000000100007714 subq $0x70, %rsp
0000000100007718 movq %rdi, -0x20(%rbp)
000000010000771c movl %esi, -0x18(%rbp)
000000010000771f movq %rdx, -0x30(%rbp)
0000000100007723 movl %ecx, -0x28(%rbp)
0000000100007726 cmpl $0x1, -0x18(%rbp)
000000010000772a jl 0x10000773a
0000000100007730 cmpl $0x1, -0x28(%rbp)
0000000100007734 jge 0x10000774f
000000010000773a movq -0x20(%rbp), %rax
000000010000773e movq %rax, -0x10(%rbp)
0000000100007742 movq -0x18(%rbp), %rax
0000000100007746 movq %rax, -0x8(%rbp)
000000010000774a jmp 0x100007888
000000010000774f leaq -0x48(%rbp), %rdi
0000000100007753 movq -0x30(%rbp), %rsi
0000000100007757 movl -0x28(%rbp), %edx
000000010000775a callq _string_bytes
000000010000775f movl $0x0, -0x4c(%rbp)
0000000100007766 movl -0x18(%rbp), %edx
0000000100007769 subl $0x1, %edx
000000010000776c movl %edx, -0x50(%rbp)
000000010000776f movb $0x1, -0x51(%rbp)
0000000100007773 xorl %eax, %eax
0000000100007775 movb %al, %cl
0000000100007777 movl -0x4c(%rbp), %eax
000000010000777a cmpl -0x18(%rbp), %eax
000000010000777d movb %cl, -0x52(%rbp)
0000000100007780 jg 0x10000779d
0000000100007786 xorl %eax, %eax
0000000100007788 movb %al, %cl
000000010000778a cmpl $-0x1, -0x50(%rbp)
000000010000778e movb %cl, -0x52(%rbp)
0000000100007791 jl 0x10000779d
0000000100007797 movb -0x51(%rbp), %al
000000010000779a movb %al, -0x52(%rbp)
000000010000779d movb -0x52(%rbp), %al
00000001000077a0 testb $0x1, %al
00000001000077a2 jne 0x1000077ad
00000001000077a8 jmp 0x10000786a
00000001000077ad leaq -0x48(%rbp), %rax
00000001000077b1 movb $0x0, -0x51(%rbp)
00000001000077b5 movq -0x20(%rbp), %rcx
00000001000077b9 movslq -0x4c(%rbp), %rdx
00000001000077bd movq (%rax), %rsi
00000001000077c0 movq %rsi, (%rsp)
00000001000077c4 movq 0x8(%rax), %rsi
00000001000077c8 movq %rsi, 0x8(%rsp)
00000001000077cd movq 0x10(%rax), %rax
00000001000077d1 movq %rax, 0x10(%rsp)
00000001000077d6 movzbl (%rcx,%rdx), %edi
00000001000077da callq _array_byte_contains
00000001000077df testb $0x1, %al
00000001000077e1 jne 0x1000077ec
00000001000077e7 jmp 0x1000077f9
00000001000077ec movl -0x4c(%rbp), %eax
00000001000077ef addl $0x1, %eax
00000001000077f2 movl %eax, -0x4c(%rbp)
00000001000077f5 movb $0x1, -0x51(%rbp)
00000001000077f9 leaq -0x48(%rbp), %rax
00000001000077fd movq -0x20(%rbp), %rcx
0000000100007801 movslq -0x50(%rbp), %rdx
0000000100007805 movq (%rax), %rsi
0000000100007808 movq %rsi, (%rsp)
000000010000780c movq 0x8(%rax), %rsi
0000000100007810 movq %rsi, 0x8(%rsp)
0000000100007815 movq 0x10(%rax), %rax
0000000100007819 movq %rax, 0x10(%rsp)
000000010000781e movzbl (%rcx,%rdx), %edi
0000000100007822 callq _array_byte_contains
0000000100007827 testb $0x1, %al
0000000100007829 jne 0x100007834
000000010000782f jmp 0x100007841
0000000100007834 movl -0x50(%rbp), %eax
0000000100007837 addl $-0x1, %eax
000000010000783a movl %eax, -0x50(%rbp)
000000010000783d movb $0x1, -0x51(%rbp)
0000000100007841 movl -0x4c(%rbp), %eax
0000000100007844 cmpl -0x50(%rbp), %eax
0000000100007847 jle 0x100007865
000000010000784d leaq 0x3165(%rip), %rdi ## literal pool for: ""
0000000100007854 callq _tos3
0000000100007859 movq %rax, -0x10(%rbp)
000000010000785d movl %edx, -0x8(%rbp)
0000000100007860 jmp 0x100007888
0000000100007865 jmp 0x100007773
000000010000786a movl -0x4c(%rbp), %edx
000000010000786d movl -0x50(%rbp), %eax
0000000100007870 addl $0x1, %eax
0000000100007873 movq -0x20(%rbp), %rdi
0000000100007877 movl -0x18(%rbp), %esi
000000010000787a movl %eax, %ecx
000000010000787c callq _string_substr
0000000100007881 movq %rax, -0x10(%rbp)
0000000100007885 movl %edx, -0x8(%rbp)
0000000100007888 movq -0x10(%rbp), %rax
000000010000788c movl -0x8(%rbp), %edx
000000010000788f addq $0x70, %rsp
0000000100007893 popq %rbp
0000000100007894 retq
0000000100007895 nopw %cs:(%rax,%rax)
_string_trim_left:
00000001000078a0 pushq %rbp
00000001000078a1 movq %rsp, %rbp
00000001000078a4 subq $0x70, %rsp
00000001000078a8 movq %rdi, -0x20(%rbp)
00000001000078ac movl %esi, -0x18(%rbp)
00000001000078af movq %rdx, -0x30(%rbp)
00000001000078b3 movl %ecx, -0x28(%rbp)
00000001000078b6 cmpl $0x1, -0x18(%rbp)
00000001000078ba jl 0x1000078ca
00000001000078c0 cmpl $0x1, -0x28(%rbp)
00000001000078c4 jge 0x1000078df
00000001000078ca movq -0x20(%rbp), %rax
00000001000078ce movq %rax, -0x10(%rbp)
00000001000078d2 movq -0x18(%rbp), %rax
00000001000078d6 movq %rax, -0x8(%rbp)
00000001000078da jmp 0x10000796e
00000001000078df leaq -0x48(%rbp), %rdi
00000001000078e3 movq -0x30(%rbp), %rsi
00000001000078e7 movl -0x28(%rbp), %edx
00000001000078ea callq _string_bytes
00000001000078ef movl $0x0, -0x4c(%rbp)
00000001000078f6 xorl %eax, %eax
00000001000078f8 movb %al, %cl
00000001000078fa movl -0x4c(%rbp), %eax
00000001000078fd cmpl -0x18(%rbp), %eax
0000000100007900 movb %cl, -0x4d(%rbp)
0000000100007903 jg 0x10000793a
0000000100007909 leaq -0x48(%rbp), %rax
000000010000790d movq -0x20(%rbp), %rcx
0000000100007911 movslq -0x4c(%rbp), %rdx
0000000100007915 movq (%rax), %rsi
0000000100007918 movq %rsi, (%rsp)
000000010000791c movq 0x8(%rax), %rsi
0000000100007920 movq %rsi, 0x8(%rsp)
0000000100007925 movq 0x10(%rax), %rax
0000000100007929 movq %rax, 0x10(%rsp)
000000010000792e movzbl (%rcx,%rdx), %edi
0000000100007932 callq _array_byte_contains
0000000100007937 movb %al, -0x4d(%rbp)
000000010000793a movb -0x4d(%rbp), %al
000000010000793d testb $0x1, %al
000000010000793f jne 0x10000794a
0000000100007945 jmp 0x100007958
000000010000794a movl -0x4c(%rbp), %eax
000000010000794d addl $0x1, %eax
0000000100007950 movl %eax, -0x4c(%rbp)
0000000100007953 jmp 0x1000078f6
0000000100007958 movl -0x4c(%rbp), %edx
000000010000795b movq -0x20(%rbp), %rdi
000000010000795f movl -0x18(%rbp), %esi
0000000100007962 callq _string_right
0000000100007967 movq %rax, -0x10(%rbp)
000000010000796b movl %edx, -0x8(%rbp)
000000010000796e movq -0x10(%rbp), %rax
0000000100007972 movl -0x8(%rbp), %edx
0000000100007975 addq $0x70, %rsp
0000000100007979 popq %rbp
000000010000797a retq
000000010000797b nopl (%rax,%rax)
_string_trim_right:
0000000100007980 pushq %rbp
0000000100007981 movq %rsp, %rbp
0000000100007984 subq $0x70, %rsp
0000000100007988 movq %rdi, -0x20(%rbp)
000000010000798c movl %esi, -0x18(%rbp)
000000010000798f movq %rdx, -0x30(%rbp)
0000000100007993 movl %ecx, -0x28(%rbp)
0000000100007996 cmpl $0x1, -0x18(%rbp)
000000010000799a jl 0x1000079aa
00000001000079a0 cmpl $0x1, -0x28(%rbp)
00000001000079a4 jge 0x1000079bf
00000001000079aa movq -0x20(%rbp), %rax
00000001000079ae movq %rax, -0x10(%rbp)
00000001000079b2 movq -0x18(%rbp), %rax
00000001000079b6 movq %rax, -0x8(%rbp)
00000001000079ba jmp 0x100007a53
00000001000079bf leaq -0x48(%rbp), %rdi
00000001000079c3 movq -0x30(%rbp), %rsi
00000001000079c7 movl -0x28(%rbp), %edx
00000001000079ca callq _string_bytes
00000001000079cf movl -0x18(%rbp), %edx
00000001000079d2 subl $0x1, %edx
00000001000079d5 movl %edx, -0x4c(%rbp)
00000001000079d8 xorl %eax, %eax
00000001000079da movb %al, %cl
00000001000079dc cmpl $-0x1, -0x4c(%rbp)
00000001000079e0 movb %cl, -0x4d(%rbp)
00000001000079e3 jl 0x100007a1a
00000001000079e9 leaq -0x48(%rbp), %rax
00000001000079ed movq -0x20(%rbp), %rcx
00000001000079f1 movslq -0x4c(%rbp), %rdx
00000001000079f5 movq (%rax), %rsi
00000001000079f8 movq %rsi, (%rsp)
00000001000079fc movq 0x8(%rax), %rsi
0000000100007a00 movq %rsi, 0x8(%rsp)
0000000100007a05 movq 0x10(%rax), %rax
0000000100007a09 movq %rax, 0x10(%rsp)
0000000100007a0e movzbl (%rcx,%rdx), %edi
0000000100007a12 callq _array_byte_contains
0000000100007a17 movb %al, -0x4d(%rbp)
0000000100007a1a movb -0x4d(%rbp), %al
0000000100007a1d testb $0x1, %al
0000000100007a1f jne 0x100007a2a
0000000100007a25 jmp 0x100007a38
0000000100007a2a movl -0x4c(%rbp), %eax
0000000100007a2d addl $-0x1, %eax
0000000100007a30 movl %eax, -0x4c(%rbp)
0000000100007a33 jmp 0x1000079d8
0000000100007a38 movl -0x4c(%rbp), %eax
0000000100007a3b addl $0x1, %eax
0000000100007a3e movq -0x20(%rbp), %rdi
0000000100007a42 movl -0x18(%rbp), %esi
0000000100007a45 movl %eax, %edx
0000000100007a47 callq _string_left
0000000100007a4c movq %rax, -0x10(%rbp)
0000000100007a50 movl %edx, -0x8(%rbp)
0000000100007a53 movq -0x10(%rbp), %rax
0000000100007a57 movl -0x8(%rbp), %edx
0000000100007a5a addq $0x70, %rsp
0000000100007a5e popq %rbp
0000000100007a5f retq
_compare_strings:
0000000100007a60 pushq %rbp
0000000100007a61 movq %rsp, %rbp
0000000100007a64 subq $0x20, %rsp
0000000100007a68 movq %rdi, -0x10(%rbp)
0000000100007a6c movq %rsi, -0x18(%rbp)
0000000100007a70 movq -0x10(%rbp), %rsi
0000000100007a74 movq -0x18(%rbp), %rdi
0000000100007a78 movq (%rsi), %rax
0000000100007a7b movl 0x8(%rsi), %esi
0000000100007a7e movq (%rdi), %rdx
0000000100007a81 movl 0x8(%rdi), %ecx
0000000100007a84 movq %rax, %rdi
0000000100007a87 callq _string_lt
0000000100007a8c testb $0x1, %al
0000000100007a8e jne 0x100007a99
0000000100007a94 jmp 0x100007aa5
0000000100007a99 movl $0xffffffff, -0x4(%rbp)
0000000100007aa0 jmp 0x100007ade
0000000100007aa5 movq -0x10(%rbp), %rax
0000000100007aa9 movq -0x18(%rbp), %rcx
0000000100007aad movq (%rax), %rdi
0000000100007ab0 movl 0x8(%rax), %esi
0000000100007ab3 movq (%rcx), %rdx
0000000100007ab6 movl 0x8(%rcx), %ecx
0000000100007ab9 callq _string_gt
0000000100007abe testb $0x1, %al
0000000100007ac0 jne 0x100007acb
0000000100007ac6 jmp 0x100007ad7
0000000100007acb movl $0x1, -0x4(%rbp)
0000000100007ad2 jmp 0x100007ade
0000000100007ad7 movl $0x0, -0x4(%rbp)
0000000100007ade movl -0x4(%rbp), %eax
0000000100007ae1 addq $0x20, %rsp
0000000100007ae5 popq %rbp
0000000100007ae6 retq
0000000100007ae7 nopw (%rax,%rax)
_compare_strings_by_len:
0000000100007af0 pushq %rbp
0000000100007af1 movq %rsp, %rbp
0000000100007af4 movq %rdi, -0x10(%rbp)
0000000100007af8 movq %rsi, -0x18(%rbp)
0000000100007afc movq -0x10(%rbp), %rsi
0000000100007b00 movl 0x8(%rsi), %eax
0000000100007b03 movq -0x18(%rbp), %rsi
0000000100007b07 cmpl 0x8(%rsi), %eax
0000000100007b0a jge 0x100007b1c
0000000100007b10 movl $0xffffffff, -0x4(%rbp)
0000000100007b17 jmp 0x100007b43
0000000100007b1c movq -0x10(%rbp), %rax
0000000100007b20 movl 0x8(%rax), %ecx
0000000100007b23 movq -0x18(%rbp), %rax
0000000100007b27 cmpl 0x8(%rax), %ecx
0000000100007b2a jle 0x100007b3c
0000000100007b30 movl $0x1, -0x4(%rbp)
0000000100007b37 jmp 0x100007b43
0000000100007b3c movl $0x0, -0x4(%rbp)
0000000100007b43 movl -0x4(%rbp), %eax
0000000100007b46 popq %rbp
0000000100007b47 retq
0000000100007b48 nopl (%rax,%rax)
_compare_lower_strings:
0000000100007b50 pushq %rbp
0000000100007b51 movq %rsp, %rbp
0000000100007b54 subq $0x30, %rsp
0000000100007b58 movq %rdi, -0x8(%rbp)
0000000100007b5c movq %rsi, -0x10(%rbp)
0000000100007b60 movq -0x8(%rbp), %rsi
0000000100007b64 movq (%rsi), %rdi
0000000100007b67 movl 0x8(%rsi), %esi
0000000100007b6a callq _string_to_lower
0000000100007b6f movq %rax, -0x20(%rbp)
0000000100007b73 movl %edx, -0x18(%rbp)
0000000100007b76 movq -0x10(%rbp), %rax
0000000100007b7a movq (%rax), %rdi
0000000100007b7d movl 0x8(%rax), %esi
0000000100007b80 callq _string_to_lower
0000000100007b85 leaq -0x20(%rbp), %rdi
0000000100007b89 leaq -0x30(%rbp), %rsi
0000000100007b8d movq %rax, -0x30(%rbp)
0000000100007b91 movl %edx, -0x28(%rbp)
0000000100007b94 callq _compare_strings
0000000100007b99 addq $0x30, %rsp
0000000100007b9d popq %rbp
0000000100007b9e retq
0000000100007b9f nop
_array_string_sort:
0000000100007ba0 pushq %rbp
0000000100007ba1 movq %rsp, %rbp
0000000100007ba4 subq $0x10, %rsp
0000000100007ba8 leaq _compare_strings(%rip), %rax
0000000100007baf movq %rdi, -0x8(%rbp)
0000000100007bb3 movq -0x8(%rbp), %rdi
0000000100007bb7 movq %rax, %rsi
0000000100007bba callq _array_sort_with_compare
0000000100007bbf addq $0x10, %rsp
0000000100007bc3 popq %rbp
0000000100007bc4 retq
0000000100007bc5 nopw %cs:(%rax,%rax)
_array_string_sort_ignore_case:
0000000100007bd0 pushq %rbp
0000000100007bd1 movq %rsp, %rbp
0000000100007bd4 subq $0x10, %rsp
0000000100007bd8 leaq _compare_lower_strings(%rip), %rax
0000000100007bdf movq %rdi, -0x8(%rbp)
0000000100007be3 movq -0x8(%rbp), %rdi
0000000100007be7 movq %rax, %rsi
0000000100007bea callq _array_sort_with_compare
0000000100007bef addq $0x10, %rsp
0000000100007bf3 popq %rbp
0000000100007bf4 retq
0000000100007bf5 nopw %cs:(%rax,%rax)
_array_string_sort_by_len:
0000000100007c00 pushq %rbp
0000000100007c01 movq %rsp, %rbp
0000000100007c04 subq $0x10, %rsp
0000000100007c08 leaq _compare_strings_by_len(%rip), %rax
0000000100007c0f movq %rdi, -0x8(%rbp)
0000000100007c13 movq -0x8(%rbp), %rdi
0000000100007c17 movq %rax, %rsi
0000000100007c1a callq _array_sort_with_compare
0000000100007c1f addq $0x10, %rsp
0000000100007c23 popq %rbp
0000000100007c24 retq
0000000100007c25 nopw %cs:(%rax,%rax)
_string_ustring:
0000000100007c30 pushq %rbp
0000000100007c31 movq %rsp, %rbp
0000000100007c34 subq $0x30, %rsp
0000000100007c38 movq %rdi, %rax
0000000100007c3b xorl %ecx, %ecx
0000000100007c3d movl $0x4, %r8d
0000000100007c43 movq %rsi, -0x10(%rbp)
0000000100007c47 movl %edx, -0x8(%rbp)
0000000100007c4a movq -0x10(%rbp), %rsi
0000000100007c4e movq %rsi, (%rdi)
0000000100007c51 movq -0x8(%rbp), %rsi
0000000100007c55 movq %rsi, 0x8(%rdi)
0000000100007c59 movq %rdi, %rsi
0000000100007c5c addq $0x10, %rsi
0000000100007c60 movl -0x8(%rbp), %edx
0000000100007c63 movq %rdi, -0x28(%rbp)
0000000100007c67 movq %rsi, %rdi
0000000100007c6a movl %ecx, %esi
0000000100007c6c movl %r8d, %ecx
0000000100007c6f movq %rax, -0x30(%rbp)
0000000100007c73 callq _new_array
0000000100007c78 movq -0x28(%rbp), %rax
0000000100007c7c movl $0x0, 0x28(%rax)
0000000100007c83 movl $0x0, -0x14(%rbp)
0000000100007c8a movl -0x14(%rbp), %eax
0000000100007c8d cmpl -0x8(%rbp), %eax
0000000100007c90 jge 0x100007cee
0000000100007c96 movq -0x10(%rbp), %rax
0000000100007c9a movslq -0x14(%rbp), %rcx
0000000100007c9e movzbl (%rax,%rcx), %edi
0000000100007ca2 callq _utf8_char_len
0000000100007ca7 leaq -0x1c(%rbp), %rcx
0000000100007cab movl %eax, -0x18(%rbp)
0000000100007cae movl -0x14(%rbp), %eax
0000000100007cb1 movl %eax, -0x1c(%rbp)
0000000100007cb4 movq -0x28(%rbp), %rdx
0000000100007cb8 addq $0x10, %rdx
0000000100007cbc movq %rdx, %rdi
0000000100007cbf movq %rcx, %rsi
0000000100007cc2 callq _array_push
0000000100007cc7 movl -0x18(%rbp), %eax
0000000100007cca subl $0x1, %eax
0000000100007ccd addl -0x14(%rbp), %eax
0000000100007cd0 movl %eax, -0x14(%rbp)
0000000100007cd3 movq -0x28(%rbp), %rcx
0000000100007cd7 movl 0x28(%rcx), %eax
0000000100007cda addl $0x1, %eax
0000000100007cdd movl %eax, 0x28(%rcx)
0000000100007ce0 movl -0x14(%rbp), %eax
0000000100007ce3 addl $0x1, %eax
0000000100007ce6 movl %eax, -0x14(%rbp)
0000000100007ce9 jmp 0x100007c8a
0000000100007cee movq -0x30(%rbp), %rax
0000000100007cf2 addq $0x30, %rsp
0000000100007cf6 popq %rbp
0000000100007cf7 retq
0000000100007cf8 nopl (%rax,%rax)
_string_ustring_tmp:
0000000100007d00 pushq %rbp
0000000100007d01 movq %rsp, %rbp
0000000100007d04 subq $0x50, %rsp
0000000100007d08 movq %rdi, %rax
0000000100007d0b leaq _g_ustring_runes(%rip), %rcx
0000000100007d12 movq %rsi, -0x10(%rbp)
0000000100007d16 movl %edx, -0x8(%rbp)
0000000100007d19 cmpl $0x0, 0x8(%rcx)
0000000100007d1d movq %rax, -0x40(%rbp)
0000000100007d21 movq %rdi, -0x48(%rbp)
0000000100007d25 jne 0x100007d5e
0000000100007d2b leaq -0x28(%rbp), %rdi
0000000100007d2f xorl %esi, %esi
0000000100007d31 movl $0x80, %edx
0000000100007d36 movl $0x4, %ecx
0000000100007d3b callq _new_array
0000000100007d40 leaq _g_ustring_runes(%rip), %rdi
0000000100007d47 movq -0x28(%rbp), %rax
0000000100007d4b movq %rax, (%rdi)
0000000100007d4e movq -0x20(%rbp), %rax
0000000100007d52 movq %rax, 0x8(%rdi)
0000000100007d56 movq -0x18(%rbp), %rax
0000000100007d5a movq %rax, 0x10(%rdi)
0000000100007d5e xorl %esi, %esi
0000000100007d60 movl $0x1, %edx
0000000100007d65 movl $0x4, %ecx
0000000100007d6a movq -0x10(%rbp), %rax
0000000100007d6e movq -0x48(%rbp), %rdi
0000000100007d72 movq %rax, (%rdi)
0000000100007d75 movq -0x8(%rbp), %rax
0000000100007d79 movq %rax, 0x8(%rdi)
0000000100007d7d addq $0x10, %rdi
0000000100007d81 callq _new_array
0000000100007d86 leaq _g_ustring_runes(%rip), %rax
0000000100007d8d movq -0x48(%rbp), %rdi
0000000100007d91 movl $0x0, 0x28(%rdi)
0000000100007d98 movq (%rax), %r8
0000000100007d9b movq %r8, 0x10(%rdi)
0000000100007d9f movq 0x8(%rax), %r8
0000000100007da3 movq %r8, 0x18(%rdi)
0000000100007da7 movq 0x10(%rax), %rax
0000000100007dab movq %rax, 0x20(%rdi)
0000000100007daf movl -0x8(%rbp), %ecx
0000000100007db2 movl %ecx, 0x18(%rdi)
0000000100007db5 movl $0x0, -0x2c(%rbp)
0000000100007dbc movl $0x0, -0x30(%rbp)
0000000100007dc3 movl -0x30(%rbp), %eax
0000000100007dc6 cmpl -0x8(%rbp), %eax
0000000100007dc9 jge 0x100007e33
0000000100007dcf movq -0x10(%rbp), %rax
0000000100007dd3 movslq -0x30(%rbp), %rcx
0000000100007dd7 movzbl (%rax,%rcx), %edi
0000000100007ddb callq _utf8_char_len
0000000100007de0 leaq -0x38(%rbp), %rcx
0000000100007de4 movl %eax, -0x34(%rbp)
0000000100007de7 movq -0x48(%rbp), %rdx
0000000100007deb addq $0x10, %rdx
0000000100007def movl -0x2c(%rbp), %esi
0000000100007df2 movl -0x30(%rbp), %eax
0000000100007df5 movl %eax, -0x38(%rbp)
0000000100007df8 movq %rdx, %rdi
0000000100007dfb movq %rcx, %rdx
0000000100007dfe callq _array_set
0000000100007e03 movl -0x2c(%rbp), %eax
0000000100007e06 addl $0x1, %eax
0000000100007e09 movl %eax, -0x2c(%rbp)
0000000100007e0c movl -0x34(%rbp), %eax
0000000100007e0f subl $0x1, %eax
0000000100007e12 addl -0x30(%rbp), %eax
0000000100007e15 movl %eax, -0x30(%rbp)
0000000100007e18 movq -0x48(%rbp), %rcx
0000000100007e1c movl 0x28(%rcx), %eax
0000000100007e1f addl $0x1, %eax
0000000100007e22 movl %eax, 0x28(%rcx)
0000000100007e25 movl -0x30(%rbp), %eax
0000000100007e28 addl $0x1, %eax
0000000100007e2b movl %eax, -0x30(%rbp)
0000000100007e2e jmp 0x100007dc3
0000000100007e33 movq -0x40(%rbp), %rax
0000000100007e37 addq $0x50, %rsp
0000000100007e3b popq %rbp
0000000100007e3c retq
0000000100007e3d nopl (%rax)
_ustring_eq:
0000000100007e40 pushq %rbp
0000000100007e41 movq %rsp, %rbp
0000000100007e44 subq $0x20, %rsp
0000000100007e48 leaq 0x40(%rbp), %rax
0000000100007e4c leaq 0x10(%rbp), %rcx
0000000100007e50 movl 0x28(%rcx), %edx
0000000100007e53 cmpl 0x28(%rax), %edx
0000000100007e56 movq %rax, -0x10(%rbp)
0000000100007e5a movq %rcx, -0x18(%rbp)
0000000100007e5e jne 0x100007e8a
0000000100007e64 movq -0x18(%rbp), %rax
0000000100007e68 movq (%rax), %rdi
0000000100007e6b movl 0x8(%rax), %esi
0000000100007e6e movq -0x10(%rbp), %rcx
0000000100007e72 movq (%rcx), %rdx
0000000100007e75 movl 0x8(%rcx), %ecx
0000000100007e78 callq _string_ne
0000000100007e7d testb $0x1, %al
0000000100007e7f jne 0x100007e8a
0000000100007e85 jmp 0x100007e93
0000000100007e8a movb $0x0, -0x1(%rbp)
0000000100007e8e jmp 0x100007e97
0000000100007e93 movb $0x1, -0x1(%rbp)
0000000100007e97 movb -0x1(%rbp), %al
0000000100007e9a andb $0x1, %al
0000000100007e9c movzbl %al, %eax
0000000100007e9f addq $0x20, %rsp
0000000100007ea3 popq %rbp
0000000100007ea4 retq
0000000100007ea5 nopw %cs:(%rax,%rax)
_ustring_ne:
0000000100007eb0 pushq %rbp
0000000100007eb1 movq %rsp, %rbp
0000000100007eb4 subq $0x60, %rsp
0000000100007eb8 leaq 0x40(%rbp), %rax
0000000100007ebc leaq 0x10(%rbp), %rcx
0000000100007ec0 movq 0x28(%rax), %rdx
0000000100007ec4 movq %rsp, %rsi
0000000100007ec7 movq %rdx, 0x58(%rsi)
0000000100007ecb movq 0x20(%rax), %rdx
0000000100007ecf movq %rdx, 0x50(%rsi)
0000000100007ed3 movq 0x18(%rax), %rdx
0000000100007ed7 movq %rdx, 0x48(%rsi)
0000000100007edb movq 0x10(%rax), %rdx
0000000100007edf movq %rdx, 0x40(%rsi)
0000000100007ee3 movq (%rax), %rdx
0000000100007ee6 movq 0x8(%rax), %rax
0000000100007eea movq %rax, 0x38(%rsi)
0000000100007eee movq %rdx, 0x30(%rsi)
0000000100007ef2 movq 0x28(%rcx), %rax
0000000100007ef6 movq %rax, 0x28(%rsi)
0000000100007efa movq 0x20(%rcx), %rax
0000000100007efe movq %rax, 0x20(%rsi)
0000000100007f02 movq 0x18(%rcx), %rax
0000000100007f06 movq %rax, 0x18(%rsi)
0000000100007f0a movq 0x10(%rcx), %rax
0000000100007f0e movq %rax, 0x10(%rsi)
0000000100007f12 movq (%rcx), %rax
0000000100007f15 movq 0x8(%rcx), %rcx
0000000100007f19 movq %rcx, 0x8(%rsi)
0000000100007f1d movq %rax, (%rsi)
0000000100007f20 callq _ustring_eq
0000000100007f25 xorb $-0x1, %al
0000000100007f27 andb $0x1, %al
0000000100007f29 movzbl %al, %eax
0000000100007f2c addq $0x60, %rsp
0000000100007f30 popq %rbp
0000000100007f31 retq
0000000100007f32 nopw %cs:(%rax,%rax)
_ustring_lt:
0000000100007f40 pushq %rbp
0000000100007f41 movq %rsp, %rbp
0000000100007f44 leaq 0x40(%rbp), %rax
0000000100007f48 leaq 0x10(%rbp), %rcx
0000000100007f4c movq (%rcx), %rdi
0000000100007f4f movl 0x8(%rcx), %esi
0000000100007f52 movq (%rax), %rdx
0000000100007f55 movl 0x8(%rax), %ecx
0000000100007f58 callq _string_lt
0000000100007f5d andb $0x1, %al
0000000100007f5f movzbl %al, %eax
0000000100007f62 popq %rbp
0000000100007f63 retq
0000000100007f64 nopw %cs:(%rax,%rax)
_ustring_le:
0000000100007f70 pushq %rbp
0000000100007f71 movq %rsp, %rbp
0000000100007f74 subq $0x80, %rsp
0000000100007f7b leaq 0x40(%rbp), %rax
0000000100007f7f leaq 0x10(%rbp), %rcx
0000000100007f83 movq 0x28(%rax), %rdx
0000000100007f87 movq %rsp, %rsi
0000000100007f8a movq %rdx, 0x58(%rsi)
0000000100007f8e movq 0x20(%rax), %rdx
0000000100007f92 movq %rdx, 0x50(%rsi)
0000000100007f96 movq 0x18(%rax), %rdx
0000000100007f9a movq %rdx, 0x48(%rsi)
0000000100007f9e movq 0x10(%rax), %rdx
0000000100007fa2 movq %rdx, 0x40(%rsi)
0000000100007fa6 movq (%rax), %rdx
0000000100007fa9 movq 0x8(%rax), %rdi
0000000100007fad movq %rdi, 0x38(%rsi)
0000000100007fb1 movq %rdx, 0x30(%rsi)
0000000100007fb5 movq 0x28(%rcx), %rdx
0000000100007fb9 movq %rdx, 0x28(%rsi)
0000000100007fbd movq 0x20(%rcx), %rdx
0000000100007fc1 movq %rdx, 0x20(%rsi)
0000000100007fc5 movq 0x18(%rcx), %rdx
0000000100007fc9 movq %rdx, 0x18(%rsi)
0000000100007fcd movq 0x10(%rcx), %rdx
0000000100007fd1 movq %rdx, 0x10(%rsi)
0000000100007fd5 movq (%rcx), %rdx
0000000100007fd8 movq 0x8(%rcx), %rdi
0000000100007fdc movq %rdi, 0x8(%rsi)
0000000100007fe0 movq %rdx, (%rsi)
0000000100007fe3 movq %rax, -0x8(%rbp)
0000000100007fe7 movq %rcx, -0x10(%rbp)
0000000100007feb callq _ustring_lt
0000000100007ff0 movb $0x1, %r8b
0000000100007ff3 testb $0x1, %al
0000000100007ff5 movb %r8b, -0x11(%rbp)
0000000100007ff9 jne 0x10000806f
0000000100007fff movq -0x8(%rbp), %rax
0000000100008003 movq 0x28(%rax), %rcx
0000000100008007 movq %rsp, %rdx
000000010000800a movq %rcx, 0x58(%rdx)
000000010000800e movq 0x20(%rax), %rcx
0000000100008012 movq %rcx, 0x50(%rdx)
0000000100008016 movq 0x18(%rax), %rcx
000000010000801a movq %rcx, 0x48(%rdx)
000000010000801e movq 0x10(%rax), %rcx
0000000100008022 movq %rcx, 0x40(%rdx)
0000000100008026 movq (%rax), %rcx
0000000100008029 movq 0x8(%rax), %rsi
000000010000802d movq %rsi, 0x38(%rdx)
0000000100008031 movq %rcx, 0x30(%rdx)
0000000100008035 movq -0x10(%rbp), %rcx
0000000100008039 movq 0x28(%rcx), %rsi
000000010000803d movq %rsi, 0x28(%rdx)
0000000100008041 movq 0x20(%rcx), %rsi
0000000100008045 movq %rsi, 0x20(%rdx)
0000000100008049 movq 0x18(%rcx), %rsi
000000010000804d movq %rsi, 0x18(%rdx)
0000000100008051 movq 0x10(%rcx), %rsi
0000000100008055 movq %rsi, 0x10(%rdx)
0000000100008059 movq (%rcx), %rsi
000000010000805c movq 0x8(%rcx), %rdi
0000000100008060 movq %rdi, 0x8(%rdx)
0000000100008064 movq %rsi, (%rdx)
0000000100008067 callq _ustring_eq
000000010000806c movb %al, -0x11(%rbp)
000000010000806f movb -0x11(%rbp), %al
0000000100008072 andb $0x1, %al
0000000100008074 movzbl %al, %eax
0000000100008077 addq $0x80, %rsp
000000010000807e popq %rbp
000000010000807f retq
_ustring_gt:
0000000100008080 pushq %rbp
0000000100008081 movq %rsp, %rbp
0000000100008084 subq $0x60, %rsp
0000000100008088 leaq 0x40(%rbp), %rax
000000010000808c leaq 0x10(%rbp), %rcx
0000000100008090 movq 0x28(%rax), %rdx
0000000100008094 movq %rsp, %rsi
0000000100008097 movq %rdx, 0x58(%rsi)
000000010000809b movq 0x20(%rax), %rdx
000000010000809f movq %rdx, 0x50(%rsi)
00000001000080a3 movq 0x18(%rax), %rdx
00000001000080a7 movq %rdx, 0x48(%rsi)
00000001000080ab movq 0x10(%rax), %rdx
00000001000080af movq %rdx, 0x40(%rsi)
00000001000080b3 movq (%rax), %rdx
00000001000080b6 movq 0x8(%rax), %rax
00000001000080ba movq %rax, 0x38(%rsi)
00000001000080be movq %rdx, 0x30(%rsi)
00000001000080c2 movq 0x28(%rcx), %rax
00000001000080c6 movq %rax, 0x28(%rsi)
00000001000080ca movq 0x20(%rcx), %rax
00000001000080ce movq %rax, 0x20(%rsi)
00000001000080d2 movq 0x18(%rcx), %rax
00000001000080d6 movq %rax, 0x18(%rsi)
00000001000080da movq 0x10(%rcx), %rax
00000001000080de movq %rax, 0x10(%rsi)
00000001000080e2 movq (%rcx), %rax
00000001000080e5 movq 0x8(%rcx), %rcx
00000001000080e9 movq %rcx, 0x8(%rsi)
00000001000080ed movq %rax, (%rsi)
00000001000080f0 callq _ustring_le
00000001000080f5 xorb $-0x1, %al
00000001000080f7 andb $0x1, %al
00000001000080f9 movzbl %al, %eax
00000001000080fc addq $0x60, %rsp
0000000100008100 popq %rbp
0000000100008101 retq
0000000100008102 nopw %cs:(%rax,%rax)
_ustring_ge:
0000000100008110 pushq %rbp
0000000100008111 movq %rsp, %rbp
0000000100008114 subq $0x60, %rsp
0000000100008118 leaq 0x40(%rbp), %rax
000000010000811c leaq 0x10(%rbp), %rcx
0000000100008120 movq 0x28(%rax), %rdx
0000000100008124 movq %rsp, %rsi
0000000100008127 movq %rdx, 0x58(%rsi)
000000010000812b movq 0x20(%rax), %rdx
000000010000812f movq %rdx, 0x50(%rsi)
0000000100008133 movq 0x18(%rax), %rdx
0000000100008137 movq %rdx, 0x48(%rsi)
000000010000813b movq 0x10(%rax), %rdx
000000010000813f movq %rdx, 0x40(%rsi)
0000000100008143 movq (%rax), %rdx
0000000100008146 movq 0x8(%rax), %rax
000000010000814a movq %rax, 0x38(%rsi)
000000010000814e movq %rdx, 0x30(%rsi)
0000000100008152 movq 0x28(%rcx), %rax
0000000100008156 movq %rax, 0x28(%rsi)
000000010000815a movq 0x20(%rcx), %rax
000000010000815e movq %rax, 0x20(%rsi)
0000000100008162 movq 0x18(%rcx), %rax
0000000100008166 movq %rax, 0x18(%rsi)
000000010000816a movq 0x10(%rcx), %rax
000000010000816e movq %rax, 0x10(%rsi)
0000000100008172 movq (%rcx), %rax
0000000100008175 movq 0x8(%rcx), %rcx
0000000100008179 movq %rcx, 0x8(%rsi)
000000010000817d movq %rax, (%rsi)
0000000100008180 callq _ustring_lt
0000000100008185 xorb $-0x1, %al
0000000100008187 andb $0x1, %al
0000000100008189 movzbl %al, %eax
000000010000818c addq $0x60, %rsp
0000000100008190 popq %rbp
0000000100008191 retq
0000000100008192 nopw %cs:(%rax,%rax)
_ustring_add:
00000001000081a0 pushq %rbp
00000001000081a1 movq %rsp, %rbp
00000001000081a4 subq $0x40, %rsp
00000001000081a8 movq %rdi, %rax
00000001000081ab leaq 0x40(%rbp), %rcx
00000001000081af leaq 0x10(%rbp), %rdx
00000001000081b3 movq (%rdx), %rsi
00000001000081b6 movl 0x8(%rdx), %r8d
00000001000081ba movq (%rcx), %r9
00000001000081bd movl 0x8(%rcx), %r10d
00000001000081c1 movq %rdi, -0x28(%rbp)
00000001000081c5 movq %rsi, %rdi
00000001000081c8 movl %r8d, %esi
00000001000081cb movq %rdx, -0x30(%rbp)
00000001000081cf movq %r9, %rdx
00000001000081d2 movq %rcx, -0x38(%rbp)
00000001000081d6 movl %r10d, %ecx
00000001000081d9 movq %rax, -0x40(%rbp)
00000001000081dd callq _string_add
00000001000081e2 xorl %esi, %esi
00000001000081e4 movl $0x4, %ecx
00000001000081e9 movq -0x28(%rbp), %rdi
00000001000081ed movq %rax, (%rdi)
00000001000081f0 movl %edx, 0x8(%rdi)
00000001000081f3 addq $0x10, %rdi
00000001000081f7 movq -0x30(%rbp), %rax
00000001000081fb movl 0x8(%rax), %edx
00000001000081fe movq -0x38(%rbp), %r9
0000000100008202 addl 0x8(%r9), %edx
0000000100008206 callq _new_array
000000010000820b movq -0x28(%rbp), %rax
000000010000820f movl $0x0, 0x28(%rax)
0000000100008216 movl $0x0, -0x4(%rbp)
000000010000821d movl $0x0, -0x8(%rbp)
0000000100008224 movl -0x8(%rbp), %eax
0000000100008227 movq -0x30(%rbp), %rcx
000000010000822b cmpl 0x8(%rcx), %eax
000000010000822e jge 0x100008298
0000000100008234 movq -0x30(%rbp), %rax
0000000100008238 movq (%rax), %rcx
000000010000823b movslq -0x8(%rbp), %rdx
000000010000823f movzbl (%rcx,%rdx), %edi
0000000100008243 callq _utf8_char_len
0000000100008248 leaq -0x10(%rbp), %rcx
000000010000824c movl %eax, -0xc(%rbp)
000000010000824f movl -0x4(%rbp), %eax
0000000100008252 movl %eax, -0x10(%rbp)
0000000100008255 movq -0x28(%rbp), %rdx
0000000100008259 addq $0x10, %rdx
000000010000825d movq %rdx, %rdi
0000000100008260 movq %rcx, %rsi
0000000100008263 callq _array_push
0000000100008268 movl -0xc(%rbp), %eax
000000010000826b subl $0x1, %eax
000000010000826e addl -0x8(%rbp), %eax
0000000100008271 movl %eax, -0x8(%rbp)
0000000100008274 movl -0xc(%rbp), %eax
0000000100008277 addl -0x4(%rbp), %eax
000000010000827a movl %eax, -0x4(%rbp)
000000010000827d movq -0x28(%rbp), %rcx
0000000100008281 movl 0x28(%rcx), %eax
0000000100008284 addl $0x1, %eax
0000000100008287 movl %eax, 0x28(%rcx)
000000010000828a movl -0x8(%rbp), %eax
000000010000828d addl $0x1, %eax
0000000100008290 movl %eax, -0x8(%rbp)
0000000100008293 jmp 0x100008224
0000000100008298 movl $0x0, -0x14(%rbp)
000000010000829f movl -0x14(%rbp), %eax
00000001000082a2 movq -0x38(%rbp), %rcx
00000001000082a6 cmpl 0x8(%rcx), %eax
00000001000082a9 jge 0x100008313
00000001000082af movq -0x38(%rbp), %rax
00000001000082b3 movq (%rax), %rcx
00000001000082b6 movslq -0x14(%rbp), %rdx
00000001000082ba movzbl (%rcx,%rdx), %edi
00000001000082be callq _utf8_char_len
00000001000082c3 leaq -0x1c(%rbp), %rcx
00000001000082c7 movl %eax, -0x18(%rbp)
00000001000082ca movl -0x4(%rbp), %eax
00000001000082cd movl %eax, -0x1c(%rbp)
00000001000082d0 movq -0x28(%rbp), %rdx
00000001000082d4 addq $0x10, %rdx
00000001000082d8 movq %rdx, %rdi
00000001000082db movq %rcx, %rsi
00000001000082de callq _array_push
00000001000082e3 movl -0x18(%rbp), %eax
00000001000082e6 subl $0x1, %eax
00000001000082e9 addl -0x14(%rbp), %eax
00000001000082ec movl %eax, -0x14(%rbp)
00000001000082ef movl -0x18(%rbp), %eax
00000001000082f2 addl -0x4(%rbp), %eax
00000001000082f5 movl %eax, -0x4(%rbp)
00000001000082f8 movq -0x28(%rbp), %rcx
00000001000082fc movl 0x28(%rcx), %eax
00000001000082ff addl $0x1, %eax
0000000100008302 movl %eax, 0x28(%rcx)
0000000100008305 movl -0x14(%rbp), %eax
0000000100008308 addl $0x1, %eax
000000010000830b movl %eax, -0x14(%rbp)
000000010000830e jmp 0x10000829f
0000000100008313 movq -0x40(%rbp), %rax
0000000100008317 addq $0x40, %rsp
000000010000831b popq %rbp
000000010000831c retq
000000010000831d nopl (%rax)
_ustring_index_after:
0000000100008320 pushq %rbp
0000000100008321 movq %rsp, %rbp
0000000100008324 subq $0x80, %rsp
000000010000832b leaq 0x40(%rbp), %rax
000000010000832f leaq 0x10(%rbp), %rcx
0000000100008333 movl %edi, -0x8(%rbp)
0000000100008336 movl 0x28(%rax), %edi
0000000100008339 cmpl 0x28(%rcx), %edi
000000010000833c movq %rcx, -0x40(%rbp)
0000000100008340 movq %rax, -0x48(%rbp)
0000000100008344 jle 0x100008356
000000010000834a movl $0xffffffff, -0x4(%rbp)
0000000100008351 jmp 0x1000084b8
0000000100008356 movl -0x8(%rbp), %eax
0000000100008359 movl %eax, -0xc(%rbp)
000000010000835c cmpl $0x0, -0x8(%rbp)
0000000100008360 jge 0x10000836d
0000000100008366 movl $0x0, -0xc(%rbp)
000000010000836d movl -0x8(%rbp), %eax
0000000100008370 movq -0x40(%rbp), %rcx
0000000100008374 cmpl 0x28(%rcx), %eax
0000000100008377 jle 0x100008389
000000010000837d movl $0xffffffff, -0x4(%rbp)
0000000100008384 jmp 0x1000084b8
0000000100008389 movl -0xc(%rbp), %eax
000000010000838c movl %eax, -0x10(%rbp)
000000010000838f movl -0x10(%rbp), %eax
0000000100008392 movq -0x40(%rbp), %rcx
0000000100008396 cmpl 0x28(%rcx), %eax
0000000100008399 jge 0x1000084b1
000000010000839f movl $0x0, -0x14(%rbp)
00000001000083a6 movl -0x10(%rbp), %eax
00000001000083a9 movl %eax, -0x18(%rbp)
00000001000083ac xorl %eax, %eax
00000001000083ae movb %al, %cl
00000001000083b0 movl -0x14(%rbp), %eax
00000001000083b3 movq -0x48(%rbp), %rdx
00000001000083b7 cmpl 0x28(%rdx), %eax
00000001000083ba movb %cl, -0x49(%rbp)
00000001000083bd jge 0x100008461
00000001000083c3 movl -0x18(%rbp), %edi
00000001000083c6 movq -0x40(%rbp), %rax
00000001000083ca movq 0x28(%rax), %rcx
00000001000083ce movq %rsp, %rdx
00000001000083d1 movq %rcx, 0x28(%rdx)
00000001000083d5 movq 0x20(%rax), %rcx
00000001000083d9 movq %rcx, 0x20(%rdx)
00000001000083dd movq 0x18(%rax), %rcx
00000001000083e1 movq %rcx, 0x18(%rdx)
00000001000083e5 movq 0x10(%rax), %rcx
00000001000083e9 movq %rcx, 0x10(%rdx)
00000001000083ed movq (%rax), %rcx
00000001000083f0 movq 0x8(%rax), %rsi
00000001000083f4 movq %rsi, 0x8(%rdx)
00000001000083f8 movq %rcx, (%rdx)
00000001000083fb callq _ustring_at
0000000100008400 movq %rax, -0x28(%rbp)
0000000100008404 movl %edx, -0x20(%rbp)
0000000100008407 movl -0x14(%rbp), %edi
000000010000840a movq -0x48(%rbp), %rax
000000010000840e movq 0x28(%rax), %rcx
0000000100008412 movq %rsp, %rsi
0000000100008415 movq %rcx, 0x28(%rsi)
0000000100008419 movq 0x20(%rax), %rcx
000000010000841d movq %rcx, 0x20(%rsi)
0000000100008421 movq 0x18(%rax), %rcx
0000000100008425 movq %rcx, 0x18(%rsi)
0000000100008429 movq 0x10(%rax), %rcx
000000010000842d movq %rcx, 0x10(%rsi)
0000000100008431 movq (%rax), %rcx
0000000100008434 movq 0x8(%rax), %r8
0000000100008438 movq %r8, 0x8(%rsi)
000000010000843c movq %rcx, (%rsi)
000000010000843f callq _ustring_at
0000000100008444 movq %rax, -0x38(%rbp)
0000000100008448 movl %edx, -0x30(%rbp)
000000010000844b movq -0x28(%rbp), %rdi
000000010000844f movl -0x20(%rbp), %esi
0000000100008452 movq -0x38(%rbp), %rdx
0000000100008456 movl -0x30(%rbp), %ecx
0000000100008459 callq _string_eq
000000010000845e movb %al, -0x49(%rbp)
0000000100008461 movb -0x49(%rbp), %al
0000000100008464 testb $0x1, %al
0000000100008466 jne 0x100008471
000000010000846c jmp 0x100008488
0000000100008471 movl -0x14(%rbp), %eax
0000000100008474 addl $0x1, %eax
0000000100008477 movl %eax, -0x14(%rbp)
000000010000847a movl -0x18(%rbp), %eax
000000010000847d addl $0x1, %eax
0000000100008480 movl %eax, -0x18(%rbp)
0000000100008483 jmp 0x1000083ac
0000000100008488 movl -0x14(%rbp), %eax
000000010000848b movq -0x48(%rbp), %rcx
000000010000848f cmpl 0x28(%rcx), %eax
0000000100008492 jne 0x1000084a3
0000000100008498 movl -0x10(%rbp), %eax
000000010000849b movl %eax, -0x4(%rbp)
000000010000849e jmp 0x1000084b8
00000001000084a3 movl -0x10(%rbp), %eax
00000001000084a6 addl $0x1, %eax
00000001000084a9 movl %eax, -0x10(%rbp)
00000001000084ac jmp 0x10000838f
00000001000084b1 movl $0xffffffff, -0x4(%rbp)
00000001000084b8 movl -0x4(%rbp), %eax
00000001000084bb addq $0x80, %rsp
00000001000084c2 popq %rbp
00000001000084c3 retq
00000001000084c4 nopw %cs:(%rax,%rax)
_ustring_at:
00000001000084d0 pushq %rbp
00000001000084d1 movq %rsp, %rbp
00000001000084d4 subq $0x60, %rsp
00000001000084d8 leaq 0x10(%rbp), %rax
00000001000084dc movl %edi, -0x14(%rbp)
00000001000084df cmpl $0x0, -0x14(%rbp)
00000001000084e3 movq %rax, -0x30(%rbp)
00000001000084e7 jl 0x1000084fd
00000001000084ed movl -0x14(%rbp), %eax
00000001000084f0 movq -0x30(%rbp), %rcx
00000001000084f4 cmpl 0x28(%rcx), %eax
00000001000084f7 jl 0x100008528
00000001000084fd leaq 0x25af(%rip), %rdi ## literal pool for: "string index out of range: %d / %d"
0000000100008504 movl -0x14(%rbp), %esi
0000000100008507 movq -0x30(%rbp), %rax
000000010000850b movl 0x18(%rax), %edx
000000010000850e movb $0x0, %al
0000000100008510 callq __STR
0000000100008515 movq %rax, -0x28(%rbp)
0000000100008519 movl %edx, -0x20(%rbp)
000000010000851c movq -0x28(%rbp), %rdi
0000000100008520 movl -0x20(%rbp), %esi
0000000100008523 callq _v_panic
0000000100008528 movl -0x14(%rbp), %eax
000000010000852b movl %eax, %ecx
000000010000852d incl %ecx
000000010000852f movq -0x30(%rbp), %rdx
0000000100008533 movq 0x28(%rdx), %rsi
0000000100008537 movq %rsp, %rdi
000000010000853a movq %rsi, 0x28(%rdi)
000000010000853e movq 0x20(%rdx), %rsi
0000000100008542 movq %rsi, 0x20(%rdi)
0000000100008546 movq 0x18(%rdx), %rsi
000000010000854a movq %rsi, 0x18(%rdi)
000000010000854e movq 0x10(%rdx), %rsi
0000000100008552 movq %rsi, 0x10(%rdi)
0000000100008556 movq (%rdx), %rsi
0000000100008559 movq 0x8(%rdx), %r8
000000010000855d movq %r8, 0x8(%rdi)
0000000100008561 movq %rsi, (%rdi)
0000000100008564 movl %eax, %edi
0000000100008566 movl %ecx, %esi
0000000100008568 callq _ustring_substr
000000010000856d movq %rax, -0x10(%rbp)
0000000100008571 movl %edx, -0x8(%rbp)
0000000100008574 movq -0x10(%rbp), %rax
0000000100008578 movl -0x8(%rbp), %edx
000000010000857b addq $0x60, %rsp
000000010000857f popq %rbp
0000000100008580 retq
0000000100008581 nopw %cs:(%rax,%rax)
_ustring_count:
0000000100008590 pushq %rbp
0000000100008591 movq %rsp, %rbp
0000000100008594 subq $0x80, %rsp
000000010000859b leaq 0x40(%rbp), %rax
000000010000859f leaq 0x10(%rbp), %rcx
00000001000085a3 cmpl $0x0, 0x28(%rcx)
00000001000085a7 movq %rax, -0x18(%rbp)
00000001000085ab movq %rcx, -0x20(%rbp)
00000001000085af je 0x1000085c3
00000001000085b5 movq -0x18(%rbp), %rax
00000001000085b9 cmpl $0x0, 0x28(%rax)
00000001000085bd jne 0x1000085cf
00000001000085c3 movl $0x0, -0x4(%rbp)
00000001000085ca jmp 0x1000086a0
00000001000085cf movq -0x18(%rbp), %rax
00000001000085d3 movl 0x28(%rax), %ecx
00000001000085d6 movq -0x20(%rbp), %rdx
00000001000085da cmpl 0x28(%rdx), %ecx
00000001000085dd jle 0x1000085ef
00000001000085e3 movl $0x0, -0x4(%rbp)
00000001000085ea jmp 0x1000086a0
00000001000085ef movl $0x0, -0x8(%rbp)
00000001000085f6 movl $0x0, -0xc(%rbp)
00000001000085fd movl -0xc(%rbp), %edi
0000000100008600 movq -0x18(%rbp), %rax
0000000100008604 movq 0x28(%rax), %rcx
0000000100008608 movq %rsp, %rdx
000000010000860b movq %rcx, 0x58(%rdx)
000000010000860f movq 0x20(%rax), %rcx
0000000100008613 movq %rcx, 0x50(%rdx)
0000000100008617 movq 0x18(%rax), %rcx
000000010000861b movq %rcx, 0x48(%rdx)
000000010000861f movq 0x10(%rax), %rcx
0000000100008623 movq %rcx, 0x40(%rdx)
0000000100008627 movq (%rax), %rcx
000000010000862a movq 0x8(%rax), %rsi
000000010000862e movq %rsi, 0x38(%rdx)
0000000100008632 movq %rcx, 0x30(%rdx)
0000000100008636 movq -0x20(%rbp), %rcx
000000010000863a movq 0x28(%rcx), %rsi
000000010000863e movq %rsi, 0x28(%rdx)
0000000100008642 movq 0x20(%rcx), %rsi
0000000100008646 movq %rsi, 0x20(%rdx)
000000010000864a movq 0x18(%rcx), %rsi
000000010000864e movq %rsi, 0x18(%rdx)
0000000100008652 movq 0x10(%rcx), %rsi
0000000100008656 movq %rsi, 0x10(%rdx)
000000010000865a movq (%rcx), %rsi
000000010000865d movq 0x8(%rcx), %r8
0000000100008661 movq %r8, 0x8(%rdx)
0000000100008665 movq %rsi, (%rdx)
0000000100008668 callq _ustring_index_after
000000010000866d movl %eax, -0xc(%rbp)
0000000100008670 cmpl $-0x1, -0xc(%rbp)
0000000100008674 jne 0x100008685
000000010000867a movl -0x8(%rbp), %eax
000000010000867d movl %eax, -0x4(%rbp)
0000000100008680 jmp 0x1000086a0
0000000100008685 movq -0x18(%rbp), %rax
0000000100008689 movl 0x28(%rax), %ecx
000000010000868c addl -0xc(%rbp), %ecx
000000010000868f movl %ecx, -0xc(%rbp)
0000000100008692 movl -0x8(%rbp), %ecx
0000000100008695 addl $0x1, %ecx
0000000100008698 movl %ecx, -0x8(%rbp)
000000010000869b jmp 0x1000085fd
00000001000086a0 movl -0x4(%rbp), %eax
00000001000086a3 addq $0x80, %rsp
00000001000086aa popq %rbp
00000001000086ab retq
00000001000086ac nopl (%rax)
_ustring_substr:
00000001000086b0 pushq %rbp
00000001000086b1 movq %rsp, %rbp
00000001000086b4 subq $0x60, %rsp
00000001000086b8 leaq 0x10(%rbp), %rax
00000001000086bc movl %edi, -0x14(%rbp)
00000001000086bf movl %esi, -0x18(%rbp)
00000001000086c2 movl -0x14(%rbp), %esi
00000001000086c5 cmpl -0x18(%rbp), %esi
00000001000086c8 movq %rax, -0x38(%rbp)
00000001000086cc jg 0x100008706
00000001000086d2 movl -0x14(%rbp), %eax
00000001000086d5 movq -0x38(%rbp), %rcx
00000001000086d9 cmpl 0x28(%rcx), %eax
00000001000086dc jg 0x100008706
00000001000086e2 movl -0x18(%rbp), %eax
00000001000086e5 movq -0x38(%rbp), %rcx
00000001000086e9 cmpl 0x28(%rcx), %eax
00000001000086ec jg 0x100008706
00000001000086f2 cmpl $0x0, -0x14(%rbp)
00000001000086f6 jl 0x100008706
00000001000086fc cmpl $0x0, -0x18(%rbp)
0000000100008700 jge 0x100008734
0000000100008706 leaq 0x2377(%rip), %rdi ## literal pool for: "substr(%d, %d) out of bounds (len=%d)"
000000010000870d movl -0x14(%rbp), %esi
0000000100008710 movl -0x18(%rbp), %edx
0000000100008713 movq -0x38(%rbp), %rax
0000000100008717 movl 0x28(%rax), %ecx
000000010000871a movb $0x0, %al
000000010000871c callq __STR
0000000100008721 movq %rax, -0x28(%rbp)
0000000100008725 movl %edx, -0x20(%rbp)
0000000100008728 movq -0x28(%rbp), %rdi
000000010000872c movl -0x20(%rbp), %esi
000000010000872f callq _v_panic
0000000100008734 movl -0x18(%rbp), %eax
0000000100008737 movq -0x38(%rbp), %rcx
000000010000873b cmpl 0x28(%rcx), %eax
000000010000873e jl 0x100008753
0000000100008744 movq -0x38(%rbp), %rax
0000000100008748 movl 0x8(%rax), %ecx
000000010000874b movl %ecx, -0x3c(%rbp)
000000010000874e jmp 0x100008781
0000000100008753 movq -0x38(%rbp), %rax
0000000100008757 addq $0x10, %rax
000000010000875b movl -0x18(%rbp), %edi
000000010000875e movq (%rax), %rcx
0000000100008761 movq %rcx, (%rsp)
0000000100008765 movq 0x8(%rax), %rcx
0000000100008769 movq %rcx, 0x8(%rsp)
000000010000876e movq 0x10(%rax), %rax
0000000100008772 movq %rax, 0x10(%rsp)
0000000100008777 callq _array_get
000000010000877c movl (%rax), %edi
000000010000877e movl %edi, -0x3c(%rbp)
0000000100008781 movl -0x3c(%rbp), %eax
0000000100008784 movl %eax, -0x2c(%rbp)
0000000100008787 movl -0x14(%rbp), %edi
000000010000878a movq -0x38(%rbp), %rcx
000000010000878e movq 0x20(%rcx), %rdx
0000000100008792 movq %rsp, %rsi
0000000100008795 movq %rdx, 0x10(%rsi)
0000000100008799 movq 0x10(%rcx), %rdx
000000010000879d movq 0x18(%rcx), %r8
00000001000087a1 movq %r8, 0x8(%rsi)
00000001000087a5 movq %rdx, (%rsi)
00000001000087a8 callq _array_get
00000001000087ad movl (%rax), %edx
00000001000087af movl -0x2c(%rbp), %ecx
00000001000087b2 movq -0x38(%rbp), %rax
00000001000087b6 movq (%rax), %rdi
00000001000087b9 movl 0x8(%rax), %esi
00000001000087bc callq _string_substr
00000001000087c1 movq %rax, -0x10(%rbp)
00000001000087c5 movl %edx, -0x8(%rbp)
00000001000087c8 movq -0x10(%rbp), %rax
00000001000087cc movl -0x8(%rbp), %edx
00000001000087cf addq $0x60, %rsp
00000001000087d3 popq %rbp
00000001000087d4 retq
00000001000087d5 nopw %cs:(%rax,%rax)
_ustring_left:
00000001000087e0 pushq %rbp
00000001000087e1 movq %rsp, %rbp
00000001000087e4 subq $0x60, %rsp
00000001000087e8 leaq 0x10(%rbp), %rax
00000001000087ec movl %edi, -0x14(%rbp)
00000001000087ef movl -0x14(%rbp), %edi
00000001000087f2 cmpl 0x28(%rax), %edi
00000001000087f5 movq %rax, -0x20(%rbp)
00000001000087f9 jl 0x100008817
00000001000087ff movq -0x20(%rbp), %rax
0000000100008803 movq (%rax), %rcx
0000000100008806 movq %rcx, -0x10(%rbp)
000000010000880a movq 0x8(%rax), %rcx
000000010000880e movq %rcx, -0x8(%rbp)
0000000100008812 jmp 0x100008862
0000000100008817 xorl %eax, %eax
0000000100008819 movl -0x14(%rbp), %esi
000000010000881c movq -0x20(%rbp), %rcx
0000000100008820 movq 0x28(%rcx), %rdx
0000000100008824 movq %rsp, %rdi
0000000100008827 movq %rdx, 0x28(%rdi)
000000010000882b movq 0x20(%rcx), %rdx
000000010000882f movq %rdx, 0x20(%rdi)
0000000100008833 movq 0x18(%rcx), %rdx
0000000100008837 movq %rdx, 0x18(%rdi)
000000010000883b movq 0x10(%rcx), %rdx
000000010000883f movq %rdx, 0x10(%rdi)
0000000100008843 movq (%rcx), %rdx
0000000100008846 movq 0x8(%rcx), %r8
000000010000884a movq %r8, 0x8(%rdi)
000000010000884e movq %rdx, (%rdi)
0000000100008851 xorl %edi, %edi
0000000100008853 movl %eax, -0x24(%rbp)
0000000100008856 callq _ustring_substr
000000010000885b movq %rax, -0x10(%rbp)
000000010000885f movl %edx, -0x8(%rbp)
0000000100008862 movq -0x10(%rbp), %rax
0000000100008866 movl -0x8(%rbp), %edx
0000000100008869 addq $0x60, %rsp
000000010000886d popq %rbp
000000010000886e retq
000000010000886f nop
_ustring_right:
0000000100008870 pushq %rbp
0000000100008871 movq %rsp, %rbp
0000000100008874 subq $0x50, %rsp
0000000100008878 leaq 0x10(%rbp), %rax
000000010000887c movl %edi, -0x14(%rbp)
000000010000887f movl -0x14(%rbp), %edi
0000000100008882 cmpl 0x28(%rax), %edi
0000000100008885 movq %rax, -0x20(%rbp)
0000000100008889 jl 0x1000088a7
000000010000888f leaq 0x2123(%rip), %rdi ## literal pool for: ""
0000000100008896 callq _tos3
000000010000889b movq %rax, -0x10(%rbp)
000000010000889f movl %edx, -0x8(%rbp)
00000001000088a2 jmp 0x1000088ee
00000001000088a7 movl -0x14(%rbp), %edi
00000001000088aa movq -0x20(%rbp), %rax
00000001000088ae movl 0x28(%rax), %esi
00000001000088b1 movq 0x28(%rax), %rcx
00000001000088b5 movq %rsp, %rdx
00000001000088b8 movq %rcx, 0x28(%rdx)
00000001000088bc movq 0x20(%rax), %rcx
00000001000088c0 movq %rcx, 0x20(%rdx)
00000001000088c4 movq 0x18(%rax), %rcx
00000001000088c8 movq %rcx, 0x18(%rdx)
00000001000088cc movq 0x10(%rax), %rcx
00000001000088d0 movq %rcx, 0x10(%rdx)
00000001000088d4 movq (%rax), %rcx
00000001000088d7 movq 0x8(%rax), %r8
00000001000088db movq %r8, 0x8(%rdx)
00000001000088df movq %rcx, (%rdx)
00000001000088e2 callq _ustring_substr
00000001000088e7 movq %rax, -0x10(%rbp)
00000001000088eb movl %edx, -0x8(%rbp)
00000001000088ee movq -0x10(%rbp), %rax
00000001000088f2 movl -0x8(%rbp), %edx
00000001000088f5 addq $0x50, %rsp
00000001000088f9 popq %rbp
00000001000088fa retq
00000001000088fb nopl (%rax,%rax)
_string_at:
0000000100008900 pushq %rbp
0000000100008901 movq %rsp, %rbp
0000000100008904 subq $0x30, %rsp
0000000100008908 movq %rdi, -0x10(%rbp)
000000010000890c movl %esi, -0x8(%rbp)
000000010000890f movl %edx, -0x14(%rbp)
0000000100008912 cmpl $0x0, -0x14(%rbp)
0000000100008916 jl 0x100008928
000000010000891c movl -0x14(%rbp), %eax
000000010000891f cmpl -0x8(%rbp), %eax
0000000100008922 jl 0x10000894f
0000000100008928 leaq 0x2184(%rip), %rdi ## literal pool for: "string index out of range: %d / %d"
000000010000892f movl -0x14(%rbp), %esi
0000000100008932 movl -0x8(%rbp), %edx
0000000100008935 movb $0x0, %al
0000000100008937 callq __STR
000000010000893c movq %rax, -0x28(%rbp)
0000000100008940 movl %edx, -0x20(%rbp)
0000000100008943 movq -0x28(%rbp), %rdi
0000000100008947 movl -0x20(%rbp), %esi
000000010000894a callq _v_panic
000000010000894f movq -0x10(%rbp), %rax
0000000100008953 movslq -0x14(%rbp), %rcx
0000000100008957 movzbl (%rax,%rcx), %eax
000000010000895b addq $0x30, %rsp
000000010000895f popq %rbp
0000000100008960 retq
0000000100008961 nopw %cs:(%rax,%rax)
_v_ustring_free:
0000000100008970 pushq %rbp
0000000100008971 movq %rsp, %rbp
0000000100008974 subq $0x20, %rsp
0000000100008978 leaq 0x10(%rbp), %rax
000000010000897c addq $0x10, %rax
0000000100008980 movq (%rax), %rcx
0000000100008983 movq %rcx, (%rsp)
0000000100008987 movq 0x8(%rax), %rcx
000000010000898b movq %rcx, 0x8(%rsp)
0000000100008990 movq 0x10(%rax), %rax
0000000100008994 movq %rax, 0x10(%rsp)
0000000100008999 callq _v_array_free
000000010000899e addq $0x20, %rsp
00000001000089a2 popq %rbp
00000001000089a3 retq
00000001000089a4 nopw %cs:(%rax,%rax)
_byte_is_digit:
00000001000089b0 pushq %rbp
00000001000089b1 movq %rsp, %rbp
00000001000089b4 movb %dil, %al
00000001000089b7 xorl %edi, %edi
00000001000089b9 movb %dil, %cl
00000001000089bc movb %al, -0x1(%rbp)
00000001000089bf movzbl -0x1(%rbp), %edi
00000001000089c3 cmpl $0x30, %edi
00000001000089c6 movb %cl, -0x2(%rbp)
00000001000089c9 jl 0x1000089dc
00000001000089cf movzbl -0x1(%rbp), %eax
00000001000089d3 cmpl $0x39, %eax
00000001000089d6 setle %cl
00000001000089d9 movb %cl, -0x2(%rbp)
00000001000089dc movb -0x2(%rbp), %al
00000001000089df andb $0x1, %al
00000001000089e1 movzbl %al, %eax
00000001000089e4 popq %rbp
00000001000089e5 retq
00000001000089e6 nopw %cs:(%rax,%rax)
_byte_is_hex_digit:
00000001000089f0 pushq %rbp
00000001000089f1 movq %rsp, %rbp
00000001000089f4 subq $0x10, %rsp
00000001000089f8 movb %dil, %al
00000001000089fb movb %al, -0x1(%rbp)
00000001000089fe movzbl -0x1(%rbp), %edi
0000000100008a02 callq _byte_is_digit
0000000100008a07 movb $0x1, %cl
0000000100008a09 testb $0x1, %al
0000000100008a0b movb %cl, -0x2(%rbp)
0000000100008a0e jne 0x100008a5a
0000000100008a14 movzbl -0x1(%rbp), %eax
0000000100008a18 cmpl $0x61, %eax
0000000100008a1b jl 0x100008a33
0000000100008a21 movb $0x1, %al
0000000100008a23 movzbl -0x1(%rbp), %ecx
0000000100008a27 cmpl $0x66, %ecx
0000000100008a2a movb %al, -0x2(%rbp)
0000000100008a2d jle 0x100008a5a
0000000100008a33 xorl %eax, %eax
0000000100008a35 movb %al, %cl
0000000100008a37 movzbl -0x1(%rbp), %eax
0000000100008a3b cmpl $0x41, %eax
0000000100008a3e movb %cl, -0x3(%rbp)
0000000100008a41 jl 0x100008a54
0000000100008a47 movzbl -0x1(%rbp), %eax
0000000100008a4b cmpl $0x46, %eax
0000000100008a4e setle %cl
0000000100008a51 movb %cl, -0x3(%rbp)
0000000100008a54 movb -0x3(%rbp), %al
0000000100008a57 movb %al, -0x2(%rbp)
0000000100008a5a movb -0x2(%rbp), %al
0000000100008a5d andb $0x1, %al
0000000100008a5f movzbl %al, %eax
0000000100008a62 addq $0x10, %rsp
0000000100008a66 popq %rbp
0000000100008a67 retq
0000000100008a68 nopl (%rax,%rax)
_byte_is_oct_digit:
0000000100008a70 pushq %rbp
0000000100008a71 movq %rsp, %rbp
0000000100008a74 movb %dil, %al
0000000100008a77 xorl %edi, %edi
0000000100008a79 movb %dil, %cl
0000000100008a7c movb %al, -0x1(%rbp)
0000000100008a7f movzbl -0x1(%rbp), %edi
0000000100008a83 cmpl $0x30, %edi
0000000100008a86 movb %cl, -0x2(%rbp)
0000000100008a89 jl 0x100008a9c
0000000100008a8f movzbl -0x1(%rbp), %eax
0000000100008a93 cmpl $0x37, %eax
0000000100008a96 setle %cl
0000000100008a99 movb %cl, -0x2(%rbp)
0000000100008a9c movb -0x2(%rbp), %al
0000000100008a9f andb $0x1, %al
0000000100008aa1 movzbl %al, %eax
0000000100008aa4 popq %rbp
0000000100008aa5 retq
0000000100008aa6 nopw %cs:(%rax,%rax)
_byte_is_letter:
0000000100008ab0 pushq %rbp
0000000100008ab1 movq %rsp, %rbp
0000000100008ab4 movb %dil, %al
0000000100008ab7 movb %al, -0x1(%rbp)
0000000100008aba movzbl -0x1(%rbp), %edi
0000000100008abe cmpl $0x61, %edi
0000000100008ac1 jl 0x100008ad9
0000000100008ac7 movb $0x1, %al
0000000100008ac9 movzbl -0x1(%rbp), %ecx
0000000100008acd cmpl $0x7a, %ecx
0000000100008ad0 movb %al, -0x2(%rbp)
0000000100008ad3 jle 0x100008b00
0000000100008ad9 xorl %eax, %eax
0000000100008adb movb %al, %cl
0000000100008add movzbl -0x1(%rbp), %eax
0000000100008ae1 cmpl $0x41, %eax
0000000100008ae4 movb %cl, -0x3(%rbp)
0000000100008ae7 jl 0x100008afa
0000000100008aed movzbl -0x1(%rbp), %eax
0000000100008af1 cmpl $0x5a, %eax
0000000100008af4 setle %cl
0000000100008af7 movb %cl, -0x3(%rbp)
0000000100008afa movb -0x3(%rbp), %al
0000000100008afd movb %al, -0x2(%rbp)
0000000100008b00 movb -0x2(%rbp), %al
0000000100008b03 andb $0x1, %al
0000000100008b05 movzbl %al, %eax
0000000100008b08 popq %rbp
0000000100008b09 retq
0000000100008b0a nopw (%rax,%rax)
_v_string_free:
0000000100008b10 pushq %rbp
0000000100008b11 movq %rsp, %rbp
0000000100008b14 subq $0x10, %rsp
0000000100008b18 movq %rdi, -0x10(%rbp)
0000000100008b1c movl %esi, -0x8(%rbp)
0000000100008b1f movq -0x10(%rbp), %rdi
0000000100008b23 callq _v_free
0000000100008b28 addq $0x10, %rsp
0000000100008b2c popq %rbp
0000000100008b2d retq
0000000100008b2e nop
_string_all_before:
0000000100008b30 pushq %rbp
0000000100008b31 movq %rsp, %rbp
0000000100008b34 subq $0x40, %rsp
0000000100008b38 movq %rdi, -0x20(%rbp)
0000000100008b3c movl %esi, -0x18(%rbp)
0000000100008b3f movq %rdx, -0x30(%rbp)
0000000100008b43 movl %ecx, -0x28(%rbp)
0000000100008b46 movq -0x20(%rbp), %rdi
0000000100008b4a movl -0x18(%rbp), %esi
0000000100008b4d movq -0x30(%rbp), %rdx
0000000100008b51 movl -0x28(%rbp), %ecx
0000000100008b54 callq _string_index
0000000100008b59 movl %eax, -0x34(%rbp)
0000000100008b5c cmpl $-0x1, -0x34(%rbp)
0000000100008b60 jne 0x100008b7b
0000000100008b66 movq -0x20(%rbp), %rax
0000000100008b6a movq %rax, -0x10(%rbp)
0000000100008b6e movq -0x18(%rbp), %rax
0000000100008b72 movq %rax, -0x8(%rbp)
0000000100008b76 jmp 0x100008b91
0000000100008b7b movl -0x34(%rbp), %edx
0000000100008b7e movq -0x20(%rbp), %rdi
0000000100008b82 movl -0x18(%rbp), %esi
0000000100008b85 callq _string_left
0000000100008b8a movq %rax, -0x10(%rbp)
0000000100008b8e movl %edx, -0x8(%rbp)
0000000100008b91 movq -0x10(%rbp), %rax
0000000100008b95 movl -0x8(%rbp), %edx
0000000100008b98 addq $0x40, %rsp
0000000100008b9c popq %rbp
0000000100008b9d retq
0000000100008b9e nop
_string_all_before_last:
0000000100008ba0 pushq %rbp
0000000100008ba1 movq %rsp, %rbp
0000000100008ba4 subq $0x40, %rsp
0000000100008ba8 movq %rdi, -0x20(%rbp)
0000000100008bac movl %esi, -0x18(%rbp)
0000000100008baf movq %rdx, -0x30(%rbp)
0000000100008bb3 movl %ecx, -0x28(%rbp)
0000000100008bb6 movq -0x20(%rbp), %rdi
0000000100008bba movl -0x18(%rbp), %esi
0000000100008bbd movq -0x30(%rbp), %rdx
0000000100008bc1 movl -0x28(%rbp), %ecx
0000000100008bc4 callq _string_last_index
0000000100008bc9 movl %eax, -0x34(%rbp)
0000000100008bcc cmpl $-0x1, -0x34(%rbp)
0000000100008bd0 jne 0x100008beb
0000000100008bd6 movq -0x20(%rbp), %rax
0000000100008bda movq %rax, -0x10(%rbp)
0000000100008bde movq -0x18(%rbp), %rax
0000000100008be2 movq %rax, -0x8(%rbp)
0000000100008be6 jmp 0x100008c01
0000000100008beb movl -0x34(%rbp), %edx
0000000100008bee movq -0x20(%rbp), %rdi
0000000100008bf2 movl -0x18(%rbp), %esi
0000000100008bf5 callq _string_left
0000000100008bfa movq %rax, -0x10(%rbp)
0000000100008bfe movl %edx, -0x8(%rbp)
0000000100008c01 movq -0x10(%rbp), %rax
0000000100008c05 movl -0x8(%rbp), %edx
0000000100008c08 addq $0x40, %rsp
0000000100008c0c popq %rbp
0000000100008c0d retq
0000000100008c0e nop
_string_all_after:
0000000100008c10 pushq %rbp
0000000100008c11 movq %rsp, %rbp
0000000100008c14 subq $0x40, %rsp
0000000100008c18 movq %rdi, -0x20(%rbp)
0000000100008c1c movl %esi, -0x18(%rbp)
0000000100008c1f movq %rdx, -0x30(%rbp)
0000000100008c23 movl %ecx, -0x28(%rbp)
0000000100008c26 movq -0x20(%rbp), %rdi
0000000100008c2a movl -0x18(%rbp), %esi
0000000100008c2d movq -0x30(%rbp), %rdx
0000000100008c31 movl -0x28(%rbp), %ecx
0000000100008c34 callq _string_last_index
0000000100008c39 movl %eax, -0x34(%rbp)
0000000100008c3c cmpl $-0x1, -0x34(%rbp)
0000000100008c40 jne 0x100008c5b
0000000100008c46 movq -0x20(%rbp), %rax
0000000100008c4a movq %rax, -0x10(%rbp)
0000000100008c4e movq -0x18(%rbp), %rax
0000000100008c52 movq %rax, -0x8(%rbp)
0000000100008c56 jmp 0x100008c76
0000000100008c5b movl -0x34(%rbp), %eax
0000000100008c5e addl -0x28(%rbp), %eax
0000000100008c61 movq -0x20(%rbp), %rdi
0000000100008c65 movl -0x18(%rbp), %esi
0000000100008c68 movl %eax, %edx
0000000100008c6a callq _string_right
0000000100008c6f movq %rax, -0x10(%rbp)
0000000100008c73 movl %edx, -0x8(%rbp)
0000000100008c76 movq -0x10(%rbp), %rax
0000000100008c7a movl -0x8(%rbp), %edx
0000000100008c7d addq $0x40, %rsp
0000000100008c81 popq %rbp
0000000100008c82 retq
0000000100008c83 nopw %cs:(%rax,%rax)
_array_string_join_lines:
0000000100008c90 pushq %rbp
0000000100008c91 movq %rsp, %rbp
0000000100008c94 subq $0x40, %rsp
0000000100008c98 leaq 0x10(%rbp), %rax
0000000100008c9c leaq 0x1e33(%rip), %rdi ## literal pool for: "\n"
0000000100008ca3 movq %rax, -0x28(%rbp)
0000000100008ca7 callq _tos3
0000000100008cac movq %rax, -0x20(%rbp)
0000000100008cb0 movl %edx, -0x18(%rbp)
0000000100008cb3 movq -0x20(%rbp), %rdi
0000000100008cb7 movl -0x18(%rbp), %esi
0000000100008cba movq -0x28(%rbp), %rax
0000000100008cbe movq 0x10(%rax), %rcx
0000000100008cc2 movq %rsp, %r8
0000000100008cc5 movq %rcx, 0x10(%r8)
0000000100008cc9 movq (%rax), %rcx
0000000100008ccc movq 0x8(%rax), %r9
0000000100008cd0 movq %r9, 0x8(%r8)
0000000100008cd4 movq %rcx, (%r8)
0000000100008cd7 callq _array_string_join
0000000100008cdc movq %rax, -0x10(%rbp)
0000000100008ce0 movl %edx, -0x8(%rbp)
0000000100008ce3 movq -0x10(%rbp), %rax
0000000100008ce7 movl -0x8(%rbp), %edx
0000000100008cea addq $0x40, %rsp
0000000100008cee popq %rbp
0000000100008cef retq
_string_reverse:
0000000100008cf0 pushq %rbp
0000000100008cf1 movq %rsp, %rbp
0000000100008cf4 subq $0x30, %rsp
0000000100008cf8 movq %rdi, -0x20(%rbp)
0000000100008cfc movl %esi, -0x18(%rbp)
0000000100008cff movl -0x18(%rbp), %edi
0000000100008d02 callq _v_malloc
0000000100008d07 movq %rax, -0x10(%rbp)
0000000100008d0b movl -0x18(%rbp), %esi
0000000100008d0e movl %esi, -0x8(%rbp)
0000000100008d11 movl -0x18(%rbp), %esi
0000000100008d14 subl $0x1, %esi
0000000100008d17 movl %esi, -0x24(%rbp)
0000000100008d1a cmpl $0x0, -0x24(%rbp)
0000000100008d1e jl 0x100008d50
0000000100008d24 movq -0x20(%rbp), %rax
0000000100008d28 movslq -0x24(%rbp), %rcx
0000000100008d2c movb (%rax,%rcx), %dl
0000000100008d2f movq -0x10(%rbp), %rax
0000000100008d33 movl -0x18(%rbp), %esi
0000000100008d36 subl -0x24(%rbp), %esi
0000000100008d39 subl $0x1, %esi
0000000100008d3c movslq %esi, %rcx
0000000100008d3f movb %dl, (%rax,%rcx)
0000000100008d42 movl -0x24(%rbp), %eax
0000000100008d45 addl $-0x1, %eax
0000000100008d48 movl %eax, -0x24(%rbp)
0000000100008d4b jmp 0x100008d1a
0000000100008d50 movq -0x10(%rbp), %rax
0000000100008d54 movl -0x8(%rbp), %edx
0000000100008d57 addq $0x30, %rsp
0000000100008d5b popq %rbp
0000000100008d5c retq
0000000100008d5d nopl (%rax)
_string_limit:
0000000100008d60 pushq %rbp
0000000100008d61 movq %rsp, %rbp
0000000100008d64 subq $0xa0, %rsp
0000000100008d6b leaq -0x58(%rbp), %rax
0000000100008d6f movq %rdi, -0x20(%rbp)
0000000100008d73 movl %esi, -0x18(%rbp)
0000000100008d76 movl %edx, -0x24(%rbp)
0000000100008d79 movq -0x20(%rbp), %rsi
0000000100008d7d movl -0x18(%rbp), %edx
0000000100008d80 movq %rax, %rdi
0000000100008d83 callq _string_ustring
0000000100008d88 movl -0x30(%rbp), %edx
0000000100008d8b cmpl -0x24(%rbp), %edx
0000000100008d8e jg 0x100008da9
0000000100008d94 movq -0x20(%rbp), %rax
0000000100008d98 movq %rax, -0x10(%rbp)
0000000100008d9c movq -0x18(%rbp), %rax
0000000100008da0 movq %rax, -0x8(%rbp)
0000000100008da4 jmp 0x100008df9
0000000100008da9 leaq -0x58(%rbp), %rax
0000000100008dad xorl %ecx, %ecx
0000000100008daf movl -0x24(%rbp), %esi
0000000100008db2 movq -0x30(%rbp), %rdx
0000000100008db6 movq %rsp, %rdi
0000000100008db9 movq %rdx, 0x28(%rdi)
0000000100008dbd movq -0x38(%rbp), %rdx
0000000100008dc1 movq %rdx, 0x20(%rdi)
0000000100008dc5 movq -0x40(%rbp), %rdx
0000000100008dc9 movq %rdx, 0x18(%rdi)
0000000100008dcd movq -0x48(%rbp), %rdx
0000000100008dd1 movq %rdx, 0x10(%rdi)
0000000100008dd5 movq -0x58(%rbp), %rdx
0000000100008dd9 movq -0x50(%rbp), %r8
0000000100008ddd movq %r8, 0x8(%rdi)
0000000100008de1 movq %rdx, (%rdi)
0000000100008de4 xorl %edi, %edi
0000000100008de6 movq %rax, -0x60(%rbp)
0000000100008dea movl %ecx, -0x64(%rbp)
0000000100008ded callq _ustring_substr
0000000100008df2 movq %rax, -0x10(%rbp)
0000000100008df6 movl %edx, -0x8(%rbp)
0000000100008df9 movq -0x10(%rbp), %rax
0000000100008dfd movl -0x8(%rbp), %edx
0000000100008e00 addq $0xa0, %rsp
0000000100008e07 popq %rbp
0000000100008e08 retq
0000000100008e09 nopl (%rax)
_byte_is_white:
0000000100008e10 pushq %rbp
0000000100008e11 movq %rsp, %rbp
0000000100008e14 movb %dil, %al
0000000100008e17 movb $0x1, %cl
0000000100008e19 movb %al, -0x1(%rbp)
0000000100008e1c movzbl -0x1(%rbp), %edi
0000000100008e20 movl %edi, -0x8(%rbp)
0000000100008e23 cmpl $0xa, -0x8(%rbp)
0000000100008e27 movb %cl, -0x9(%rbp)
0000000100008e2a je 0x100008e6a
0000000100008e30 movb $0x1, %al
0000000100008e32 cmpl $0x20, -0x8(%rbp)
0000000100008e36 movb %al, -0x9(%rbp)
0000000100008e39 je 0x100008e6a
0000000100008e3f movb $0x1, %al
0000000100008e41 cmpl $0x9, -0x8(%rbp)
0000000100008e45 movb %al, -0x9(%rbp)
0000000100008e48 je 0x100008e6a
0000000100008e4e movb $0x1, %al
0000000100008e50 cmpl $0xd, -0x8(%rbp)
0000000100008e54 movb %al, -0x9(%rbp)
0000000100008e57 je 0x100008e6a
0000000100008e5d movzbl -0x1(%rbp), %eax
0000000100008e61 cmpl $0xd, %eax
0000000100008e64 sete %cl
0000000100008e67 movb %cl, -0x9(%rbp)
0000000100008e6a movb -0x9(%rbp), %al
0000000100008e6d andb $0x1, %al
0000000100008e6f movzbl %al, %eax
0000000100008e72 popq %rbp
0000000100008e73 retq
0000000100008e74 nopw %cs:(%rax,%rax)
_string_repeat:
0000000100008e80 pushq %rbp
0000000100008e81 movq %rsp, %rbp
0000000100008e84 subq $0x50, %rsp
0000000100008e88 movq %rdi, -0x20(%rbp)
0000000100008e8c movl %esi, -0x18(%rbp)
0000000100008e8f movl %edx, -0x24(%rbp)
0000000100008e92 cmpl $0x1, -0x24(%rbp)
0000000100008e96 jg 0x100008eb1
0000000100008e9c movq -0x20(%rbp), %rax
0000000100008ea0 movq %rax, -0x10(%rbp)
0000000100008ea4 movq -0x18(%rbp), %rax
0000000100008ea8 movq %rax, -0x8(%rbp)
0000000100008eac jmp 0x100008f68
0000000100008eb1 movl -0x18(%rbp), %eax
0000000100008eb4 imull -0x24(%rbp), %eax
0000000100008eb8 addl $0x1, %eax
0000000100008ebb movl %eax, %edi
0000000100008ebd callq _v_malloc
0000000100008ec2 movq %rax, -0x30(%rbp)
0000000100008ec6 movl $0x0, -0x34(%rbp)
0000000100008ecd movl -0x34(%rbp), %edi
0000000100008ed0 movl %edi, -0x38(%rbp)
0000000100008ed3 movl -0x38(%rbp), %eax
0000000100008ed6 cmpl -0x24(%rbp), %eax
0000000100008ed9 jge 0x100008f46
0000000100008edf movl -0x38(%rbp), %eax
0000000100008ee2 movl %eax, -0x3c(%rbp)
0000000100008ee5 movl $0x0, -0x40(%rbp)
0000000100008eec movl -0x40(%rbp), %eax
0000000100008eef movl %eax, -0x44(%rbp)
0000000100008ef2 movl -0x44(%rbp), %eax
0000000100008ef5 cmpl -0x18(%rbp), %eax
0000000100008ef8 jge 0x100008f33
0000000100008efe movl -0x44(%rbp), %eax
0000000100008f01 movl %eax, -0x48(%rbp)
0000000100008f04 movq -0x20(%rbp), %rcx
0000000100008f08 movslq -0x48(%rbp), %rdx
0000000100008f0c movb (%rcx,%rdx), %sil
0000000100008f10 movq -0x30(%rbp), %rcx
0000000100008f14 movl -0x3c(%rbp), %eax
0000000100008f17 imull -0x18(%rbp), %eax
0000000100008f1b addl -0x48(%rbp), %eax
0000000100008f1e movslq %eax, %rdx
0000000100008f21 movb %sil, (%rcx,%rdx)
0000000100008f25 movl -0x44(%rbp), %eax
0000000100008f28 addl $0x1, %eax
0000000100008f2b movl %eax, -0x44(%rbp)
0000000100008f2e jmp 0x100008ef2
0000000100008f33 jmp 0x100008f38
0000000100008f38 movl -0x38(%rbp), %eax
0000000100008f3b addl $0x1, %eax
0000000100008f3e movl %eax, -0x38(%rbp)
0000000100008f41 jmp 0x100008ed3
0000000100008f46 movq -0x30(%rbp), %rax
0000000100008f4a movl -0x18(%rbp), %ecx
0000000100008f4d imull -0x24(%rbp), %ecx
0000000100008f51 movslq %ecx, %rdx
0000000100008f54 movb $0x0, (%rax,%rdx)
0000000100008f58 movq -0x30(%rbp), %rdi
0000000100008f5c callq _tos2
0000000100008f61 movq %rax, -0x10(%rbp)
0000000100008f65 movl %edx, -0x8(%rbp)
0000000100008f68 movq -0x10(%rbp), %rax
0000000100008f6c movl -0x8(%rbp), %edx
0000000100008f6f addq $0x50, %rsp
0000000100008f73 popq %rbp
0000000100008f74 retq
0000000100008f75 nopw %cs:(%rax,%rax)
_utf32_to_str:
0000000100008f80 pushq %rbp
0000000100008f81 movq %rsp, %rbp
0000000100008f84 subq $0x20, %rsp
0000000100008f88 movl $0x5, %eax
0000000100008f8d movl %edi, -0x14(%rbp)
0000000100008f90 movl -0x14(%rbp), %edi
0000000100008f93 movl %edi, -0x18(%rbp)
0000000100008f96 movl %eax, %edi
0000000100008f98 callq _v_malloc
0000000100008f9d movq %rax, -0x20(%rbp)
0000000100008fa1 cmpl $0x7f, -0x18(%rbp)
0000000100008fa5 jg 0x100008fd0
0000000100008fab movl $0x1, %esi
0000000100008fb0 movl -0x18(%rbp), %eax
0000000100008fb3 movb %al, %cl
0000000100008fb5 movq -0x20(%rbp), %rdx
0000000100008fb9 movb %cl, (%rdx)
0000000100008fbb movq -0x20(%rbp), %rdi
0000000100008fbf callq _tos
0000000100008fc4 movq %rax, -0x10(%rbp)
0000000100008fc8 movl %edx, -0x8(%rbp)
0000000100008fcb jmp 0x100009112
0000000100008fd0 cmpl $0x7ff, -0x18(%rbp)
0000000100008fd7 jg 0x10000901e
0000000100008fdd movl $0x2, %esi
0000000100008fe2 movl -0x18(%rbp), %eax
0000000100008fe5 sarl $0x6, %eax
0000000100008fe8 orl $0xc0, %eax
0000000100008fed movb %al, %cl
0000000100008fef movq -0x20(%rbp), %rdx
0000000100008ff3 movb %cl, (%rdx)
0000000100008ff5 movl -0x18(%rbp), %eax
0000000100008ff8 andl $0x3f, %eax
0000000100008ffb orl $0x80, %eax
0000000100009000 movb %al, %cl
0000000100009002 movq -0x20(%rbp), %rdx
0000000100009006 movb %cl, 0x1(%rdx)
0000000100009009 movq -0x20(%rbp), %rdi
000000010000900d callq _tos
0000000100009012 movq %rax, -0x10(%rbp)
0000000100009016 movl %edx, -0x8(%rbp)
0000000100009019 jmp 0x100009112
000000010000901e cmpl $0xffff, -0x18(%rbp)
0000000100009025 jg 0x100009083
000000010000902b movl $0x3, %esi
0000000100009030 movl -0x18(%rbp), %eax
0000000100009033 sarl $0xc, %eax
0000000100009036 orl $0xe0, %eax
000000010000903b movb %al, %cl
000000010000903d movq -0x20(%rbp), %rdx
0000000100009041 movb %cl, (%rdx)
0000000100009043 movl -0x18(%rbp), %eax
0000000100009046 sarl $0x6, %eax
0000000100009049 andl $0x3f, %eax
000000010000904c orl $0x80, %eax
0000000100009051 movb %al, %cl
0000000100009053 movq -0x20(%rbp), %rdx
0000000100009057 movb %cl, 0x1(%rdx)
000000010000905a movl -0x18(%rbp), %eax
000000010000905d andl $0x3f, %eax
0000000100009060 orl $0x80, %eax
0000000100009065 movb %al, %cl
0000000100009067 movq -0x20(%rbp), %rdx
000000010000906b movb %cl, 0x2(%rdx)
000000010000906e movq -0x20(%rbp), %rdi
0000000100009072 callq _tos
0000000100009077 movq %rax, -0x10(%rbp)
000000010000907b movl %edx, -0x8(%rbp)
000000010000907e jmp 0x100009112
0000000100009083 cmpl $0x10ffff, -0x18(%rbp)
000000010000908a jg 0x1000090ff
0000000100009090 movl $0x4, %esi
0000000100009095 movl -0x18(%rbp), %eax
0000000100009098 sarl $0x12, %eax
000000010000909b orl $0xf0, %eax
00000001000090a0 movb %al, %cl
00000001000090a2 movq -0x20(%rbp), %rdx
00000001000090a6 movb %cl, (%rdx)
00000001000090a8 movl -0x18(%rbp), %eax
00000001000090ab sarl $0xc, %eax
00000001000090ae andl $0x3f, %eax
00000001000090b1 orl $0x80, %eax
00000001000090b6 movb %al, %cl
00000001000090b8 movq -0x20(%rbp), %rdx
00000001000090bc movb %cl, 0x1(%rdx)
00000001000090bf movl -0x18(%rbp), %eax
00000001000090c2 sarl $0x6, %eax
00000001000090c5 andl $0x3f, %eax
00000001000090c8 orl $0x80, %eax
00000001000090cd movb %al, %cl
00000001000090cf movq -0x20(%rbp), %rdx
00000001000090d3 movb %cl, 0x2(%rdx)
00000001000090d6 movl -0x18(%rbp), %eax
00000001000090d9 andl $0x3f, %eax
00000001000090dc orl $0x80, %eax
00000001000090e1 movb %al, %cl
00000001000090e3 movq -0x20(%rbp), %rdx
00000001000090e7 movb %cl, 0x3(%rdx)
00000001000090ea movq -0x20(%rbp), %rdi
00000001000090ee callq _tos
00000001000090f3 movq %rax, -0x10(%rbp)
00000001000090f7 movl %edx, -0x8(%rbp)
00000001000090fa jmp 0x100009112
00000001000090ff leaq 0x18b3(%rip), %rdi ## literal pool for: ""
0000000100009106 callq _tos3
000000010000910b movq %rax, -0x10(%rbp)
000000010000910f movl %edx, -0x8(%rbp)
0000000100009112 movq -0x10(%rbp), %rax
0000000100009116 movl -0x8(%rbp), %edx
0000000100009119 addq $0x20, %rsp
000000010000911d popq %rbp
000000010000911e retq
000000010000911f nop
_utf32_to_str_no_malloc:
0000000100009120 pushq %rbp
0000000100009121 movq %rsp, %rbp
0000000100009124 subq $0x30, %rsp
0000000100009128 movl %edi, -0x14(%rbp)
000000010000912b movq %rsi, -0x20(%rbp)
000000010000912f movl -0x14(%rbp), %edi
0000000100009132 movl %edi, -0x24(%rbp)
0000000100009135 movq -0x20(%rbp), %rsi
0000000100009139 movq %rsi, -0x30(%rbp)
000000010000913d cmpl $0x7f, -0x24(%rbp)
0000000100009141 jg 0x10000916c
0000000100009147 movl $0x1, %esi
000000010000914c movl -0x24(%rbp), %eax
000000010000914f movb %al, %cl
0000000100009151 movq -0x30(%rbp), %rdx
0000000100009155 movb %cl, (%rdx)
0000000100009157 movq -0x30(%rbp), %rdi
000000010000915b callq _tos
0000000100009160 movq %rax, -0x10(%rbp)
0000000100009164 movl %edx, -0x8(%rbp)
0000000100009167 jmp 0x1000092ae
000000010000916c cmpl $0x7ff, -0x24(%rbp)
0000000100009173 jg 0x1000091ba
0000000100009179 movl $0x2, %esi
000000010000917e movl -0x24(%rbp), %eax
0000000100009181 sarl $0x6, %eax
0000000100009184 orl $0xc0, %eax
0000000100009189 movb %al, %cl
000000010000918b movq -0x30(%rbp), %rdx
000000010000918f movb %cl, (%rdx)
0000000100009191 movl -0x24(%rbp), %eax
0000000100009194 andl $0x3f, %eax
0000000100009197 orl $0x80, %eax
000000010000919c movb %al, %cl
000000010000919e movq -0x30(%rbp), %rdx
00000001000091a2 movb %cl, 0x1(%rdx)
00000001000091a5 movq -0x30(%rbp), %rdi
00000001000091a9 callq _tos
00000001000091ae movq %rax, -0x10(%rbp)
00000001000091b2 movl %edx, -0x8(%rbp)
00000001000091b5 jmp 0x1000092ae
00000001000091ba cmpl $0xffff, -0x24(%rbp)
00000001000091c1 jg 0x10000921f
00000001000091c7 movl $0x3, %esi
00000001000091cc movl -0x24(%rbp), %eax
00000001000091cf sarl $0xc, %eax
00000001000091d2 orl $0xe0, %eax
00000001000091d7 movb %al, %cl
00000001000091d9 movq -0x30(%rbp), %rdx
00000001000091dd movb %cl, (%rdx)
00000001000091df movl -0x24(%rbp), %eax
00000001000091e2 sarl $0x6, %eax
00000001000091e5 andl $0x3f, %eax
00000001000091e8 orl $0x80, %eax
00000001000091ed movb %al, %cl
00000001000091ef movq -0x30(%rbp), %rdx
00000001000091f3 movb %cl, 0x1(%rdx)
00000001000091f6 movl -0x24(%rbp), %eax
00000001000091f9 andl $0x3f, %eax
00000001000091fc orl $0x80, %eax
0000000100009201 movb %al, %cl
0000000100009203 movq -0x30(%rbp), %rdx
0000000100009207 movb %cl, 0x2(%rdx)
000000010000920a movq -0x30(%rbp), %rdi
000000010000920e callq _tos
0000000100009213 movq %rax, -0x10(%rbp)
0000000100009217 movl %edx, -0x8(%rbp)
000000010000921a jmp 0x1000092ae
000000010000921f cmpl $0x10ffff, -0x24(%rbp)
0000000100009226 jg 0x10000929b
000000010000922c movl $0x4, %esi
0000000100009231 movl -0x24(%rbp), %eax
0000000100009234 sarl $0x12, %eax
0000000100009237 orl $0xf0, %eax
000000010000923c movb %al, %cl
000000010000923e movq -0x30(%rbp), %rdx
0000000100009242 movb %cl, (%rdx)
0000000100009244 movl -0x24(%rbp), %eax
0000000100009247 sarl $0xc, %eax
000000010000924a andl $0x3f, %eax
000000010000924d orl $0x80, %eax
0000000100009252 movb %al, %cl
0000000100009254 movq -0x30(%rbp), %rdx
0000000100009258 movb %cl, 0x1(%rdx)
000000010000925b movl -0x24(%rbp), %eax
000000010000925e sarl $0x6, %eax
0000000100009261 andl $0x3f, %eax
0000000100009264 orl $0x80, %eax
0000000100009269 movb %al, %cl
000000010000926b movq -0x30(%rbp), %rdx
000000010000926f movb %cl, 0x2(%rdx)
0000000100009272 movl -0x24(%rbp), %eax
0000000100009275 andl $0x3f, %eax
0000000100009278 orl $0x80, %eax
000000010000927d movb %al, %cl
000000010000927f movq -0x30(%rbp), %rdx
0000000100009283 movb %cl, 0x3(%rdx)
0000000100009286 movq -0x30(%rbp), %rdi
000000010000928a callq _tos
000000010000928f movq %rax, -0x10(%rbp)
0000000100009293 movl %edx, -0x8(%rbp)
0000000100009296 jmp 0x1000092ae
000000010000929b leaq 0x1717(%rip), %rdi ## literal pool for: ""
00000001000092a2 callq _tos3
00000001000092a7 movq %rax, -0x10(%rbp)
00000001000092ab movl %edx, -0x8(%rbp)
00000001000092ae movq -0x10(%rbp), %rax
00000001000092b2 movl -0x8(%rbp), %edx
00000001000092b5 addq $0x30, %rsp
00000001000092b9 popq %rbp
00000001000092ba retq
00000001000092bb nopl (%rax,%rax)
_string_utf32_code:
00000001000092c0 pushq %rbp
00000001000092c1 movq %rsp, %rbp
00000001000092c4 movq %rdi, -0x18(%rbp)
00000001000092c8 movl %esi, -0x10(%rbp)
00000001000092cb cmpl $0x0, -0x10(%rbp)
00000001000092cf jne 0x1000092e1
00000001000092d5 movl $0x0, -0x4(%rbp)
00000001000092dc jmp 0x10000937c
00000001000092e1 cmpl $0x1, -0x10(%rbp)
00000001000092e5 jne 0x1000092fa
00000001000092eb movq -0x18(%rbp), %rax
00000001000092ef movzbl (%rax), %ecx
00000001000092f2 movl %ecx, -0x4(%rbp)
00000001000092f5 jmp 0x10000937c
00000001000092fa movl $0x6, %eax
00000001000092ff movq -0x18(%rbp), %rcx
0000000100009303 movzbl (%rcx), %edx
0000000100009306 movb %dl, %sil
0000000100009309 movb %sil, -0x19(%rbp)
000000010000930d movzbl -0x19(%rbp), %edx
0000000100009311 movl -0x10(%rbp), %ecx
0000000100009314 shll %cl, %edx
0000000100009316 movb %dl, %cl
0000000100009318 movb %cl, -0x19(%rbp)
000000010000931b movzbl -0x19(%rbp), %edx
000000010000931f movl %edx, -0x20(%rbp)
0000000100009322 subl -0x10(%rbp), %eax
0000000100009325 movl %eax, -0x24(%rbp)
0000000100009328 movl $0x1, -0x28(%rbp)
000000010000932f movl -0x28(%rbp), %eax
0000000100009332 cmpl -0x10(%rbp), %eax
0000000100009335 jge 0x100009376
000000010000933b movq -0x18(%rbp), %rax
000000010000933f movslq -0x28(%rbp), %rcx
0000000100009343 movzbl (%rax,%rcx), %edx
0000000100009347 movl %edx, -0x2c(%rbp)
000000010000934a movl -0x20(%rbp), %edx
000000010000934d movl -0x24(%rbp), %ecx
0000000100009350 shll %cl, %edx
0000000100009352 movl %edx, -0x20(%rbp)
0000000100009355 movl -0x2c(%rbp), %edx
0000000100009358 andl $0x3f, %edx
000000010000935b orl -0x20(%rbp), %edx
000000010000935e movl %edx, -0x20(%rbp)
0000000100009361 movl $0x6, -0x24(%rbp)
0000000100009368 movl -0x28(%rbp), %eax
000000010000936b addl $0x1, %eax
000000010000936e movl %eax, -0x28(%rbp)
0000000100009371 jmp 0x10000932f
0000000100009376 movl -0x20(%rbp), %eax
0000000100009379 movl %eax, -0x4(%rbp)
000000010000937c movl -0x4(%rbp), %eax
000000010000937f popq %rbp
0000000100009380 retq
0000000100009381 nopw %cs:(%rax,%rax)
_string_to_wide:
0000000100009390 pushq %rbp
0000000100009391 movq %rsp, %rbp
0000000100009394 xorl %eax, %eax
0000000100009396 movq %rdi, -0x10(%rbp)
000000010000939a movl %esi, -0x8(%rbp)
000000010000939d popq %rbp
000000010000939e retq
000000010000939f nop
_string_from_wide:
00000001000093a0 pushq %rbp
00000001000093a1 movq %rsp, %rbp
00000001000093a4 subq $0x20, %rsp
00000001000093a8 movq %rdi, -0x18(%rbp)
00000001000093ac leaq 0x1606(%rip), %rdi ## literal pool for: ""
00000001000093b3 callq _tos3
00000001000093b8 movq %rax, -0x10(%rbp)
00000001000093bc movl %edx, -0x8(%rbp)
00000001000093bf movq -0x10(%rbp), %rax
00000001000093c3 movl -0x8(%rbp), %edx
00000001000093c6 addq $0x20, %rsp
00000001000093ca popq %rbp
00000001000093cb retq
00000001000093cc nopl (%rax)
_string_from_wide2:
00000001000093d0 pushq %rbp
00000001000093d1 movq %rsp, %rbp
00000001000093d4 subq $0x20, %rsp
00000001000093d8 movq %rdi, -0x18(%rbp)
00000001000093dc movl %esi, -0x1c(%rbp)
00000001000093df leaq 0x15d3(%rip), %rdi ## literal pool for: ""
00000001000093e6 callq _tos3
00000001000093eb movq %rax, -0x10(%rbp)
00000001000093ef movl %edx, -0x8(%rbp)
00000001000093f2 movq -0x10(%rbp), %rax
00000001000093f6 movl -0x8(%rbp), %edx
00000001000093f9 addq $0x20, %rsp
00000001000093fd popq %rbp
00000001000093fe retq
00000001000093ff nop
_utf8_len:
0000000100009400 pushq %rbp
0000000100009401 movq %rsp, %rbp
0000000100009404 movb %dil, %al
0000000100009407 movb %al, -0x1(%rbp)
000000010000940a movl $0x0, -0x8(%rbp)
0000000100009411 movb -0x1(%rbp), %al
0000000100009414 movb %al, -0x9(%rbp)
0000000100009417 movzbl -0x9(%rbp), %edi
000000010000941b andl $0xf0, %edi
0000000100009421 cmpl $0x0, %edi
0000000100009424 je 0x10000943b
000000010000942a movzbl -0x9(%rbp), %eax
000000010000942e sarl $0x4, %eax
0000000100009431 movb %al, %cl
0000000100009433 movb %cl, -0x9(%rbp)
0000000100009436 jmp 0x100009444
000000010000943b movl -0x8(%rbp), %eax
000000010000943e addl $0x4, %eax
0000000100009441 movl %eax, -0x8(%rbp)
0000000100009444 movzbl -0x9(%rbp), %eax
0000000100009448 andl $0xc, %eax
000000010000944b cmpl $0x0, %eax
000000010000944e je 0x100009465
0000000100009454 movzbl -0x9(%rbp), %eax
0000000100009458 sarl $0x2, %eax
000000010000945b movb %al, %cl
000000010000945d movb %cl, -0x9(%rbp)
0000000100009460 jmp 0x10000946e
0000000100009465 movl -0x8(%rbp), %eax
0000000100009468 addl $0x2, %eax
000000010000946b movl %eax, -0x8(%rbp)
000000010000946e movzbl -0x9(%rbp), %eax
0000000100009472 andl $0x2, %eax
0000000100009475 cmpl $0x0, %eax
0000000100009478 jne 0x100009487
000000010000947e movl -0x8(%rbp), %eax
0000000100009481 addl $0x1, %eax
0000000100009484 movl %eax, -0x8(%rbp)
0000000100009487 movl -0x8(%rbp), %eax
000000010000948a popq %rbp
000000010000948b retq
000000010000948c nopl (%rax)
_utf8_getchar:
0000000100009490 pushq %rbp
0000000100009491 movq %rsp, %rbp
0000000100009494 subq $0x20, %rsp
0000000100009498 callq 0x10000a5f2 ## symbol stub for: _getchar
000000010000949d movl %eax, -0x8(%rbp)
00000001000094a0 movl -0x8(%rbp), %eax
00000001000094a3 xorl $-0x1, %eax
00000001000094a6 movb %al, %cl
00000001000094a8 movzbl %cl, %edi
00000001000094ab callq _utf8_len
00000001000094b0 movl %eax, -0xc(%rbp)
00000001000094b3 cmpl $0x0, -0x8(%rbp)
00000001000094b7 jge 0x1000094c9
00000001000094bd movl $0x0, -0x4(%rbp)
00000001000094c4 jmp 0x10000959a
00000001000094c9 cmpl $0x0, -0xc(%rbp)
00000001000094cd jne 0x1000094de
00000001000094d3 movl -0x8(%rbp), %eax
00000001000094d6 movl %eax, -0x4(%rbp)
00000001000094d9 jmp 0x10000959a
00000001000094de cmpl $0x1, -0xc(%rbp)
00000001000094e2 jne 0x1000094f4
00000001000094e8 movl $0xffffffff, -0x4(%rbp)
00000001000094ef jmp 0x10000959a
00000001000094f4 movl $0x1, %eax
00000001000094f9 movl $0x7, %ecx
00000001000094fe movl -0x8(%rbp), %edx
0000000100009501 subl -0xc(%rbp), %ecx
0000000100009504 shll %cl, %eax
0000000100009506 subl $0x1, %eax
0000000100009509 andl %eax, %edx
000000010000950b movl %edx, -0x10(%rbp)
000000010000950e movl $0x0, -0x14(%rbp)
0000000100009515 movl -0x14(%rbp), %eax
0000000100009518 addl $0x1, %eax
000000010000951b cmpl -0xc(%rbp), %eax
000000010000951e jge 0x100009594
0000000100009524 callq 0x10000a5f2 ## symbol stub for: _getchar
0000000100009529 movl %eax, -0x18(%rbp)
000000010000952c cmpl $-0x1, -0x18(%rbp)
0000000100009530 je 0x10000955f
0000000100009536 movl -0x18(%rbp), %eax
0000000100009539 sarl $0x6, %eax
000000010000953c cmpl $0x2, %eax
000000010000953f jne 0x10000955f
0000000100009545 movl -0x10(%rbp), %eax
0000000100009548 shll $0x6, %eax
000000010000954b movl %eax, -0x10(%rbp)
000000010000954e movl -0x18(%rbp), %eax
0000000100009551 andl $0x3f, %eax
0000000100009554 orl -0x10(%rbp), %eax
0000000100009557 movl %eax, -0x10(%rbp)
000000010000955a jmp 0x100009581
000000010000955f cmpl $-0x1, -0x18(%rbp)
0000000100009563 jne 0x100009575
0000000100009569 movl $0x0, -0x4(%rbp)
0000000100009570 jmp 0x10000959a
0000000100009575 movl $0xffffffff, -0x4(%rbp)
000000010000957c jmp 0x10000959a
0000000100009581 jmp 0x100009586
0000000100009586 movl -0x14(%rbp), %eax
0000000100009589 addl $0x1, %eax
000000010000958c movl %eax, -0x14(%rbp)
000000010000958f jmp 0x100009515
0000000100009594 movl -0x10(%rbp), %eax
0000000100009597 movl %eax, -0x4(%rbp)
000000010000959a movl -0x4(%rbp), %eax
000000010000959d addq $0x20, %rsp
00000001000095a1 popq %rbp
00000001000095a2 retq
00000001000095a3 nopw %cs:(%rax,%rax)
_strings__Builder_cut:
00000001000095b0 pushq %rbp
00000001000095b1 movq %rsp, %rbp
00000001000095b4 movq %rdi, -0x8(%rbp)
00000001000095b8 movl %esi, -0xc(%rbp)
00000001000095bb movl -0xc(%rbp), %esi
00000001000095be movq -0x8(%rbp), %rdi
00000001000095c2 movl 0x18(%rdi), %eax
00000001000095c5 subl %esi, %eax
00000001000095c7 movl %eax, 0x18(%rdi)
00000001000095ca popq %rbp
00000001000095cb retq
00000001000095cc nopl (%rax)
_strings__Builder_free:
00000001000095d0 pushq %rbp
00000001000095d1 movq %rsp, %rbp
00000001000095d4 movq %rdi, -0x8(%rbp)
00000001000095d8 popq %rbp
00000001000095d9 retq
00000001000095da nopw (%rax,%rax)
_strings__levenshtein_distance:
00000001000095e0 pushq %rbp
00000001000095e1 movq %rsp, %rbp
00000001000095e4 subq $0xf0, %rsp
00000001000095eb leaq -0x50(%rbp), %rax
00000001000095ef movl $0x1, %r8d
00000001000095f5 movl $0x4, %r9d
00000001000095fb leaq -0x54(%rbp), %r10
00000001000095ff movq %rdi, -0x10(%rbp)
0000000100009603 movl %esi, -0x8(%rbp)
0000000100009606 movq %rdx, -0x20(%rbp)
000000010000960a movl %ecx, -0x18(%rbp)
000000010000960d movl $0x0, -0x54(%rbp)
0000000100009614 movq %rax, %rdi
0000000100009617 movl %r8d, %esi
000000010000961a movl %r8d, %edx
000000010000961d movl %r9d, %ecx
0000000100009620 movq %r10, %r8
0000000100009623 callq _new_array_from_c_array
0000000100009628 leaq -0x38(%rbp), %rdi
000000010000962c leaq -0x50(%rbp), %rax
0000000100009630 movl -0x18(%rbp), %ecx
0000000100009633 addl $0x1, %ecx
0000000100009636 movq (%rax), %r8
0000000100009639 movq %r8, (%rsp)
000000010000963d movq 0x8(%rax), %r8
0000000100009641 movq %r8, 0x8(%rsp)
0000000100009646 movq 0x10(%rax), %rax
000000010000964a movq %rax, 0x10(%rsp)
000000010000964f movl %ecx, %esi
0000000100009651 callq _array_repeat
0000000100009656 leaq -0x80(%rbp), %rdi
000000010000965a movq -0x10(%rbp), %rax
000000010000965e movq %rax, -0x68(%rbp)
0000000100009662 movq -0x8(%rbp), %rax
0000000100009666 movq %rax, -0x60(%rbp)
000000010000966a movq -0x68(%rbp), %rsi
000000010000966e movl -0x60(%rbp), %edx
0000000100009671 callq _string_bytes
0000000100009676 movl $0x0, -0x84(%rbp)
0000000100009680 movl -0x84(%rbp), %eax
0000000100009686 cmpl -0x60(%rbp), %eax
0000000100009689 jge 0x10000998d
000000010000968f leaq -0x38(%rbp), %rax
0000000100009693 xorl %edi, %edi
0000000100009695 movq -0x80(%rbp), %rcx
0000000100009699 movslq -0x84(%rbp), %rdx
00000001000096a0 movb (%rcx,%rdx), %sil
00000001000096a4 movb %sil, -0x85(%rbp)
00000001000096ab movl $0x1, -0x8c(%rbp)
00000001000096b5 movq (%rax), %rcx
00000001000096b8 movq %rcx, (%rsp)
00000001000096bc movq 0x8(%rax), %rcx
00000001000096c0 movq %rcx, 0x8(%rsp)
00000001000096c5 movq 0x10(%rax), %rax
00000001000096c9 movq %rax, 0x10(%rsp)
00000001000096ce callq _array_get
00000001000096d3 leaq -0x38(%rbp), %rcx
00000001000096d7 xorl %edi, %edi
00000001000096d9 movl (%rax), %r8d
00000001000096dc movl %r8d, -0x90(%rbp)
00000001000096e3 movq (%rcx), %rax
00000001000096e6 movq %rax, (%rsp)
00000001000096ea movq 0x8(%rcx), %rax
00000001000096ee movq %rax, 0x8(%rsp)
00000001000096f3 movq 0x10(%rcx), %rax
00000001000096f7 movq %rax, 0x10(%rsp)
00000001000096fc callq _array_get
0000000100009701 leaq -0xb8(%rbp), %rdi
0000000100009708 movl (%rax), %r8d
000000010000970b addl $0x1, %r8d
000000010000970f movl %r8d, (%rax)
0000000100009712 movq -0x20(%rbp), %rax
0000000100009716 movq %rax, -0xa0(%rbp)
000000010000971d movq -0x18(%rbp), %rax
0000000100009721 movq %rax, -0x98(%rbp)
0000000100009728 movq -0xa0(%rbp), %rsi
000000010000972f movl -0x98(%rbp), %edx
0000000100009735 callq _string_bytes
000000010000973a movl $0x0, -0xbc(%rbp)
0000000100009744 movl -0xbc(%rbp), %eax
000000010000974a cmpl -0x98(%rbp), %eax
0000000100009750 jge 0x100009974
0000000100009756 leaq -0x38(%rbp), %rax
000000010000975a movq -0xb8(%rbp), %rcx
0000000100009761 movslq -0xbc(%rbp), %rdx
0000000100009768 movb (%rcx,%rdx), %sil
000000010000976c movb %sil, -0xbd(%rbp)
0000000100009773 movl -0x8c(%rbp), %edi
0000000100009779 movq (%rax), %rcx
000000010000977c movq %rcx, (%rsp)
0000000100009780 movq 0x8(%rax), %rcx
0000000100009784 movq %rcx, 0x8(%rsp)
0000000100009789 movq 0x10(%rax), %rax
000000010000978d movq %rax, 0x10(%rsp)
0000000100009792 callq _array_get
0000000100009797 leaq -0x38(%rbp), %rcx
000000010000979b movl (%rax), %edi
000000010000979d addl $0x1, %edi
00000001000097a0 movl -0x8c(%rbp), %r8d
00000001000097a7 subl $0x1, %r8d
00000001000097ab movq (%rcx), %rax
00000001000097ae movq %rax, (%rsp)
00000001000097b2 movq 0x8(%rcx), %rax
00000001000097b6 movq %rax, 0x8(%rsp)
00000001000097bb movq 0x10(%rcx), %rax
00000001000097bf movq %rax, 0x10(%rsp)
00000001000097c4 movl %edi, -0xcc(%rbp)
00000001000097ca movl %r8d, %edi
00000001000097cd callq _array_get
00000001000097d2 movl (%rax), %edi
00000001000097d4 addl $0x1, %edi
00000001000097d7 movl -0xcc(%rbp), %r8d
00000001000097de cmpl %edi, %r8d
00000001000097e1 jg 0x10000981f
00000001000097e7 leaq -0x38(%rbp), %rax
00000001000097eb movl -0x8c(%rbp), %edi
00000001000097f1 movq (%rax), %rcx
00000001000097f4 movq %rcx, (%rsp)
00000001000097f8 movq 0x8(%rax), %rcx
00000001000097fc movq %rcx, 0x8(%rsp)
0000000100009801 movq 0x10(%rax), %rax
0000000100009805 movq %rax, 0x10(%rsp)
000000010000980a callq _array_get
000000010000980f movl (%rax), %edi
0000000100009811 addl $0x1, %edi
0000000100009814 movl %edi, -0xd0(%rbp)
000000010000981a jmp 0x100009857
000000010000981f leaq -0x38(%rbp), %rax
0000000100009823 movl -0x8c(%rbp), %ecx
0000000100009829 subl $0x1, %ecx
000000010000982c movq (%rax), %rdx
000000010000982f movq %rdx, (%rsp)
0000000100009833 movq 0x8(%rax), %rdx
0000000100009837 movq %rdx, 0x8(%rsp)
000000010000983c movq 0x10(%rax), %rax
0000000100009840 movq %rax, 0x10(%rsp)
0000000100009845 movl %ecx, %edi
0000000100009847 callq _array_get
000000010000984c movl (%rax), %ecx
000000010000984e addl $0x1, %ecx
0000000100009851 movl %ecx, -0xd0(%rbp)
0000000100009857 movl -0xd0(%rbp), %eax
000000010000985d movl %eax, -0xc4(%rbp)
0000000100009863 movzbl -0xbd(%rbp), %eax
000000010000986a movzbl -0x85(%rbp), %ecx
0000000100009871 cmpl %ecx, %eax
0000000100009873 je 0x1000098c1
0000000100009879 movl -0xc4(%rbp), %eax
000000010000987f movl -0x90(%rbp), %ecx
0000000100009885 addl $0x1, %ecx
0000000100009888 cmpl %ecx, %eax
000000010000988a jg 0x1000098a1
0000000100009890 movl -0xc4(%rbp), %eax
0000000100009896 movl %eax, -0xd4(%rbp)
000000010000989c jmp 0x1000098b0
00000001000098a1 movl -0x90(%rbp), %eax
00000001000098a7 addl $0x1, %eax
00000001000098aa movl %eax, -0xd4(%rbp)
00000001000098b0 movl -0xd4(%rbp), %eax
00000001000098b6 movl %eax, -0xc4(%rbp)
00000001000098bc jmp 0x1000098fc
00000001000098c1 movl -0xc4(%rbp), %eax
00000001000098c7 cmpl -0x90(%rbp), %eax
00000001000098cd jg 0x1000098e4
00000001000098d3 movl -0xc4(%rbp), %eax
00000001000098d9 movl %eax, -0xd8(%rbp)
00000001000098df jmp 0x1000098f0
00000001000098e4 movl -0x90(%rbp), %eax
00000001000098ea movl %eax, -0xd8(%rbp)
00000001000098f0 movl -0xd8(%rbp), %eax
00000001000098f6 movl %eax, -0xc4(%rbp)
00000001000098fc leaq -0x38(%rbp), %rax
0000000100009900 movl -0x8c(%rbp), %edi
0000000100009906 movq (%rax), %rcx
0000000100009909 movq %rcx, (%rsp)
000000010000990d movq 0x8(%rax), %rcx
0000000100009911 movq %rcx, 0x8(%rsp)
0000000100009916 movq 0x10(%rax), %rax
000000010000991a movq %rax, 0x10(%rsp)
000000010000991f callq _array_get
0000000100009924 leaq -0x38(%rbp), %rdi
0000000100009928 leaq -0xc8(%rbp), %rcx
000000010000992f movl (%rax), %edx
0000000100009931 movl %edx, -0x90(%rbp)
0000000100009937 movl -0x8c(%rbp), %esi
000000010000993d movl -0xc4(%rbp), %edx
0000000100009943 movl %edx, -0xc8(%rbp)
0000000100009949 movq %rcx, %rdx
000000010000994c callq _array_set
0000000100009951 movl -0x8c(%rbp), %esi
0000000100009957 addl $0x1, %esi
000000010000995a movl %esi, -0x8c(%rbp)
0000000100009960 movl -0xbc(%rbp), %eax
0000000100009966 addl $0x1, %eax
0000000100009969 movl %eax, -0xbc(%rbp)
000000010000996f jmp 0x100009744
0000000100009974 jmp 0x100009979
0000000100009979 movl -0x84(%rbp), %eax
000000010000997f addl $0x1, %eax
0000000100009982 movl %eax, -0x84(%rbp)
0000000100009988 jmp 0x100009680
000000010000998d leaq -0x38(%rbp), %rax
0000000100009991 movl -0x30(%rbp), %ecx
0000000100009994 subl $0x1, %ecx
0000000100009997 movq (%rax), %rdx
000000010000999a movq %rdx, (%rsp)
000000010000999e movq 0x8(%rax), %rdx
00000001000099a2 movq %rdx, 0x8(%rsp)
00000001000099a7 movq 0x10(%rax), %rax
00000001000099ab movq %rax, 0x10(%rsp)
00000001000099b0 movl %ecx, %edi
00000001000099b2 callq _array_get
00000001000099b7 movl (%rax), %eax
00000001000099b9 addq $0xf0, %rsp
00000001000099c0 popq %rbp
00000001000099c1 retq
00000001000099c2 nopw %cs:(%rax,%rax)
_strings__levenshtein_distance_percentage:
00000001000099d0 pushq %rbp
00000001000099d1 movq %rsp, %rbp
00000001000099d4 subq $0x30, %rsp
00000001000099d8 movq %rdi, -0x10(%rbp)
00000001000099dc movl %esi, -0x8(%rbp)
00000001000099df movq %rdx, -0x20(%rbp)
00000001000099e3 movl %ecx, -0x18(%rbp)
00000001000099e6 movq -0x10(%rbp), %rdi
00000001000099ea movl -0x8(%rbp), %esi
00000001000099ed movq -0x20(%rbp), %rdx
00000001000099f1 movl -0x18(%rbp), %ecx
00000001000099f4 callq _strings__levenshtein_distance
00000001000099f9 movl %eax, -0x24(%rbp)
00000001000099fc movl -0x8(%rbp), %eax
00000001000099ff cmpl -0x18(%rbp), %eax
0000000100009a02 jl 0x100009a13
0000000100009a08 movl -0x8(%rbp), %eax
0000000100009a0b movl %eax, -0x2c(%rbp)
0000000100009a0e jmp 0x100009a19
0000000100009a13 movl -0x18(%rbp), %eax
0000000100009a16 movl %eax, -0x2c(%rbp)
0000000100009a19 movl -0x2c(%rbp), %eax
0000000100009a1c movsd 0xd24(%rip), %xmm0
0000000100009a24 movsd 0xd24(%rip), %xmm1
0000000100009a2c movl %eax, -0x28(%rbp)
0000000100009a2f movl -0x24(%rbp), %eax
0000000100009a32 cvtsi2ssl %eax, %xmm2
0000000100009a36 movl -0x28(%rbp), %eax
0000000100009a39 cvtsi2ssl %eax, %xmm3
0000000100009a3d divss %xmm3, %xmm2
0000000100009a41 cvtss2sd %xmm2, %xmm2
0000000100009a45 subsd %xmm2, %xmm1
0000000100009a49 mulsd %xmm0, %xmm1
0000000100009a4d cvtsd2ss %xmm1, %xmm0
0000000100009a51 addq $0x30, %rsp
0000000100009a55 popq %rbp
0000000100009a56 retq
0000000100009a57 nopw (%rax,%rax)
_strings__dice_coefficient:
0000000100009a60 pushq %rbp
0000000100009a61 movq %rsp, %rbp
0000000100009a64 subq $0xd0, %rsp
0000000100009a6b movq %rdi, -0x18(%rbp)
0000000100009a6f movl %esi, -0x10(%rbp)
0000000100009a72 movq %rdx, -0x28(%rbp)
0000000100009a76 movl %ecx, -0x20(%rbp)
0000000100009a79 cmpl $0x0, -0x10(%rbp)
0000000100009a7d je 0x100009a8d
0000000100009a83 cmpl $0x0, -0x20(%rbp)
0000000100009a87 jne 0x100009a9a
0000000100009a8d xorps %xmm0, %xmm0
0000000100009a90 movss %xmm0, -0x4(%rbp)
0000000100009a95 jmp 0x100009e2e
0000000100009a9a movq -0x18(%rbp), %rdi
0000000100009a9e movl -0x10(%rbp), %esi
0000000100009aa1 movq -0x28(%rbp), %rdx
0000000100009aa5 movl -0x20(%rbp), %ecx
0000000100009aa8 callq _string_eq
0000000100009aad testb $0x1, %al
0000000100009aaf jne 0x100009aba
0000000100009ab5 jmp 0x100009acc
0000000100009aba movss 0xca6(%rip), %xmm0
0000000100009ac2 movss %xmm0, -0x4(%rbp)
0000000100009ac7 jmp 0x100009e2e
0000000100009acc cmpl $0x2, -0x10(%rbp)
0000000100009ad0 jl 0x100009ae0
0000000100009ad6 cmpl $0x2, -0x20(%rbp)
0000000100009ada jge 0x100009aed
0000000100009ae0 xorps %xmm0, %xmm0
0000000100009ae3 movss %xmm0, -0x4(%rbp)
0000000100009ae8 jmp 0x100009e2e
0000000100009aed movl -0x10(%rbp), %eax
0000000100009af0 cmpl -0x20(%rbp), %eax
0000000100009af3 jle 0x100009b0e
0000000100009af9 movq -0x18(%rbp), %rax
0000000100009afd movq %rax, -0x38(%rbp)
0000000100009b01 movq -0x10(%rbp), %rax
0000000100009b05 movq %rax, -0x30(%rbp)
0000000100009b09 jmp 0x100009b1e
0000000100009b0e movq -0x28(%rbp), %rax
0000000100009b12 movq %rax, -0x38(%rbp)
0000000100009b16 movq -0x20(%rbp), %rax
0000000100009b1a movq %rax, -0x30(%rbp)
0000000100009b1e movq -0x38(%rbp), %rdi
0000000100009b22 movl -0x30(%rbp), %esi
0000000100009b25 movq -0x18(%rbp), %rdx
0000000100009b29 movl -0x10(%rbp), %ecx
0000000100009b2c callq _string_eq
0000000100009b31 testb $0x1, %al
0000000100009b33 jne 0x100009b3e
0000000100009b39 jmp 0x100009b53
0000000100009b3e movq -0x28(%rbp), %rax
0000000100009b42 movq %rax, -0x48(%rbp)
0000000100009b46 movq -0x20(%rbp), %rax
0000000100009b4a movq %rax, -0x40(%rbp)
0000000100009b4e jmp 0x100009b63
0000000100009b53 movq -0x18(%rbp), %rax
0000000100009b57 movq %rax, -0x48(%rbp)
0000000100009b5b movq -0x10(%rbp), %rax
0000000100009b5f movq %rax, -0x40(%rbp)
0000000100009b63 leaq -0x60(%rbp), %rdi
0000000100009b67 movl $0x1, %esi
0000000100009b6c movl $0x4, %edx
0000000100009b71 callq _new_map
0000000100009b76 movl $0x0, -0x64(%rbp)
0000000100009b7d movl -0x64(%rbp), %eax
0000000100009b80 movl -0x30(%rbp), %ecx
0000000100009b83 subl $0x1, %ecx
0000000100009b86 cmpl %ecx, %eax
0000000100009b88 jge 0x100009c7f
0000000100009b8e movl -0x64(%rbp), %edx
0000000100009b91 movl -0x64(%rbp), %eax
0000000100009b94 addl $0x2, %eax
0000000100009b97 movq -0x38(%rbp), %rdi
0000000100009b9b movl -0x30(%rbp), %esi
0000000100009b9e movl %eax, %ecx
0000000100009ba0 callq _string_substr
0000000100009ba5 leaq -0x60(%rbp), %rdi
0000000100009ba9 leaq -0x7c(%rbp), %r8
0000000100009bad movq %rax, -0x78(%rbp)
0000000100009bb1 movl %edx, -0x70(%rbp)
0000000100009bb4 movl $0x0, -0x7c(%rbp)
0000000100009bbb movq -0x78(%rbp), %rax
0000000100009bbf movl -0x70(%rbp), %esi
0000000100009bc2 movq (%rdi), %r9
0000000100009bc5 movq %r9, (%rsp)
0000000100009bc9 movq 0x8(%rdi), %r9
0000000100009bcd movq %r9, 0x8(%rsp)
0000000100009bd2 movq 0x10(%rdi), %rdi
0000000100009bd6 movq %rdi, 0x10(%rsp)
0000000100009bdb movq %rax, %rdi
0000000100009bde movq %r8, %rdx
0000000100009be1 callq _map_get
0000000100009be6 leaq -0x60(%rbp), %rdx
0000000100009bea andb $0x1, %al
0000000100009bec movb %al, -0x7d(%rbp)
0000000100009bef movq -0x78(%rbp), %rdi
0000000100009bf3 movl -0x70(%rbp), %esi
0000000100009bf6 movq (%rdx), %r8
0000000100009bf9 movq %r8, (%rsp)
0000000100009bfd movq 0x8(%rdx), %r8
0000000100009c01 movq %r8, 0x8(%rsp)
0000000100009c06 movq 0x10(%rdx), %rdx
0000000100009c0a movq %rdx, 0x10(%rsp)
0000000100009c0f callq _map_exists
0000000100009c14 testb $0x1, %al
0000000100009c16 jne 0x100009c21
0000000100009c1c jmp 0x100009c32
0000000100009c21 movl -0x7c(%rbp), %eax
0000000100009c24 addl $0x1, %eax
0000000100009c27 movl %eax, -0xb4(%rbp)
0000000100009c2d jmp 0x100009c42
0000000100009c32 movl $0x1, %eax
0000000100009c37 movl %eax, -0xb4(%rbp)
0000000100009c3d jmp 0x100009c42
0000000100009c42 movl -0xb4(%rbp), %eax
0000000100009c48 leaq -0x60(%rbp), %rdi
0000000100009c4c leaq -0x88(%rbp), %rcx
0000000100009c53 movl %eax, -0x84(%rbp)
0000000100009c59 movl -0x84(%rbp), %eax
0000000100009c5f movl %eax, -0x88(%rbp)
0000000100009c65 movq -0x78(%rbp), %rsi
0000000100009c69 movl -0x70(%rbp), %edx
0000000100009c6c callq _map_set
0000000100009c71 movl -0x64(%rbp), %eax
0000000100009c74 addl $0x1, %eax
0000000100009c77 movl %eax, -0x64(%rbp)
0000000100009c7a jmp 0x100009b7d
0000000100009c7f movl $0x0, -0x8c(%rbp)
0000000100009c89 movl $0x0, -0x90(%rbp)
0000000100009c93 movl -0x90(%rbp), %eax
0000000100009c99 movl -0x40(%rbp), %ecx
0000000100009c9c subl $0x1, %ecx
0000000100009c9f cmpl %ecx, %eax
0000000100009ca1 jge 0x100009de9
0000000100009ca7 movl -0x90(%rbp), %edx
0000000100009cad movl -0x90(%rbp), %eax
0000000100009cb3 addl $0x2, %eax
0000000100009cb6 movq -0x48(%rbp), %rdi
0000000100009cba movl -0x40(%rbp), %esi
0000000100009cbd movl %eax, %ecx
0000000100009cbf callq _string_substr
0000000100009cc4 leaq -0x60(%rbp), %rdi
0000000100009cc8 leaq -0xa4(%rbp), %r8
0000000100009ccf movq %rax, -0xa0(%rbp)
0000000100009cd6 movl %edx, -0x98(%rbp)
0000000100009cdc movl $0x0, -0xa4(%rbp)
0000000100009ce6 movq -0xa0(%rbp), %rax
0000000100009ced movl -0x98(%rbp), %esi
0000000100009cf3 movq (%rdi), %r9
0000000100009cf6 movq %r9, (%rsp)
0000000100009cfa movq 0x8(%rdi), %r9
0000000100009cfe movq %r9, 0x8(%rsp)
0000000100009d03 movq 0x10(%rdi), %rdi
0000000100009d07 movq %rdi, 0x10(%rsp)
0000000100009d0c movq %rax, %rdi
0000000100009d0f movq %r8, %rdx
0000000100009d12 callq _map_get
0000000100009d17 leaq -0x60(%rbp), %rdx
0000000100009d1b andb $0x1, %al
0000000100009d1d movb %al, -0xa5(%rbp)
0000000100009d23 movq -0xa0(%rbp), %rdi
0000000100009d2a movl -0x98(%rbp), %esi
0000000100009d30 movq (%rdx), %r8
0000000100009d33 movq %r8, (%rsp)
0000000100009d37 movq 0x8(%rdx), %r8
0000000100009d3b movq %r8, 0x8(%rsp)
0000000100009d40 movq 0x10(%rdx), %rdx
0000000100009d44 movq %rdx, 0x10(%rsp)
0000000100009d49 callq _map_exists
0000000100009d4e testb $0x1, %al
0000000100009d50 jne 0x100009d5b
0000000100009d56 jmp 0x100009d6c
0000000100009d5b movl -0xa4(%rbp), %eax
0000000100009d61 movl %eax, -0xb8(%rbp)
0000000100009d67 jmp 0x100009d79
0000000100009d6c xorl %eax, %eax
0000000100009d6e movl %eax, -0xb8(%rbp)
0000000100009d74 jmp 0x100009d79
0000000100009d79 movl -0xb8(%rbp), %eax
0000000100009d7f movl %eax, -0xac(%rbp)
0000000100009d85 cmpl $0x0, -0xac(%rbp)
0000000100009d8c jle 0x100009dd0
0000000100009d92 leaq -0x60(%rbp), %rdi
0000000100009d96 leaq -0xb0(%rbp), %rax
0000000100009d9d movl -0xac(%rbp), %ecx
0000000100009da3 subl $0x1, %ecx
0000000100009da6 movl %ecx, -0xb0(%rbp)
0000000100009dac movq -0xa0(%rbp), %rsi
0000000100009db3 movl -0x98(%rbp), %edx
0000000100009db9 movq %rax, %rcx
0000000100009dbc callq _map_set
0000000100009dc1 movl -0x8c(%rbp), %edx
0000000100009dc7 addl $0x1, %edx
0000000100009dca movl %edx, -0x8c(%rbp)
0000000100009dd0 jmp 0x100009dd5
0000000100009dd5 movl -0x90(%rbp), %eax
0000000100009ddb addl $0x1, %eax
0000000100009dde movl %eax, -0x90(%rbp)
0000000100009de4 jmp 0x100009c93
0000000100009de9 movss 0x973(%rip), %xmm0
0000000100009df1 movsd 0x95f(%rip), %xmm1
0000000100009df9 movl -0x8c(%rbp), %eax
0000000100009dff cvtsi2sdl %eax, %xmm2
0000000100009e03 mulsd %xmm2, %xmm1
0000000100009e07 movl -0x30(%rbp), %eax
0000000100009e0a cvtsi2ssl %eax, %xmm2
0000000100009e0e movl -0x40(%rbp), %eax
0000000100009e11 cvtsi2ssl %eax, %xmm3
0000000100009e15 addss %xmm3, %xmm2
0000000100009e19 subss %xmm0, %xmm2
0000000100009e1d cvtss2sd %xmm2, %xmm0
0000000100009e21 divsd %xmm0, %xmm1
0000000100009e25 cvtsd2ss %xmm1, %xmm0
0000000100009e29 movss %xmm0, -0x4(%rbp)
0000000100009e2e movss -0x4(%rbp), %xmm0
0000000100009e33 addq $0xd0, %rsp
0000000100009e3a popq %rbp
0000000100009e3b retq
0000000100009e3c nopl (%rax)
_strings__repeat:
0000000100009e40 pushq %rbp
0000000100009e41 movq %rsp, %rbp
0000000100009e44 subq $0x70, %rsp
0000000100009e48 movb %dil, %al
0000000100009e4b movb %al, -0x11(%rbp)
0000000100009e4e movl %esi, -0x18(%rbp)
0000000100009e51 cmpl $0x0, -0x18(%rbp)
0000000100009e55 jg 0x100009e73
0000000100009e5b leaq 0xb57(%rip), %rdi ## literal pool for: ""
0000000100009e62 callq _tos3
0000000100009e67 movq %rax, -0x10(%rbp)
0000000100009e6b movl %edx, -0x8(%rbp)
0000000100009e6e jmp 0x100009ee9
0000000100009e73 leaq -0x48(%rbp), %rdi
0000000100009e77 movl $0x1, %eax
0000000100009e7c leaq -0x49(%rbp), %r8
0000000100009e80 movb -0x11(%rbp), %cl
0000000100009e83 movb %cl, -0x49(%rbp)
0000000100009e86 movl %eax, %esi
0000000100009e88 movl %eax, %edx
0000000100009e8a movl %eax, %ecx
0000000100009e8c callq _new_array_from_c_array
0000000100009e91 leaq -0x30(%rbp), %rdi
0000000100009e95 leaq -0x48(%rbp), %r8
0000000100009e99 movl -0x18(%rbp), %eax
0000000100009e9c addl $0x1, %eax
0000000100009e9f movq (%r8), %r9
0000000100009ea2 movq %r9, (%rsp)
0000000100009ea6 movq 0x8(%r8), %r9
0000000100009eaa movq %r9, 0x8(%rsp)
0000000100009eaf movq 0x10(%r8), %r8
0000000100009eb3 movq %r8, 0x10(%rsp)
0000000100009eb8 movl %eax, %esi
0000000100009eba callq _array_repeat
0000000100009ebf leaq -0x30(%rbp), %rdi
0000000100009ec3 leaq -0x4a(%rbp), %r8
0000000100009ec7 movl -0x18(%rbp), %esi
0000000100009eca movb $0x0, -0x4a(%rbp)
0000000100009ece movq %r8, %rdx
0000000100009ed1 callq _array_set
0000000100009ed6 movq -0x30(%rbp), %rdi
0000000100009eda movl -0x18(%rbp), %esi
0000000100009edd callq _tos
0000000100009ee2 movq %rax, -0x10(%rbp)
0000000100009ee6 movl %edx, -0x8(%rbp)
0000000100009ee9 movq -0x10(%rbp), %rax
0000000100009eed movl -0x8(%rbp), %edx
0000000100009ef0 addq $0x70, %rsp
0000000100009ef4 popq %rbp
0000000100009ef5 retq
0000000100009ef6 nopw %cs:(%rax,%rax)
_strconv__byte_to_lower:
0000000100009f00 pushq %rbp
0000000100009f01 movq %rsp, %rbp
0000000100009f04 movb %dil, %al
0000000100009f07 movb %al, -0x1(%rbp)
0000000100009f0a movzbl -0x1(%rbp), %edi
0000000100009f0e orl $0x20, %edi
0000000100009f11 movb %dil, %al
0000000100009f14 movzbl %al, %eax
0000000100009f17 popq %rbp
0000000100009f18 retq
0000000100009f19 nopl (%rax)
_strconv__underscore_ok:
0000000100009f20 pushq %rbp
0000000100009f21 movq %rsp, %rbp
0000000100009f24 subq $0x30, %rsp
0000000100009f28 movq %rdi, -0x18(%rbp)
0000000100009f2c movl %esi, -0x10(%rbp)
0000000100009f2f movb $0x5e, -0x19(%rbp)
0000000100009f33 movl $0x0, -0x20(%rbp)
0000000100009f3a cmpl $0x1, -0x10(%rbp)
0000000100009f3e jl 0x100009f81
0000000100009f44 xorl %edx, %edx
0000000100009f46 movq -0x18(%rbp), %rdi
0000000100009f4a movl -0x10(%rbp), %esi
0000000100009f4d callq _string_at
0000000100009f52 movzbl %al, %edx
0000000100009f55 cmpl $0x2d, %edx
0000000100009f58 je 0x100009f78
0000000100009f5e xorl %edx, %edx
0000000100009f60 movq -0x18(%rbp), %rdi
0000000100009f64 movl -0x10(%rbp), %esi
0000000100009f67 callq _string_at
0000000100009f6c movzbl %al, %edx
0000000100009f6f cmpl $0x2b, %edx
0000000100009f72 jne 0x100009f81
0000000100009f78 movl -0x20(%rbp), %eax
0000000100009f7b addl $0x1, %eax
0000000100009f7e movl %eax, -0x20(%rbp)
0000000100009f81 movb $0x0, -0x21(%rbp)
0000000100009f85 movl -0x10(%rbp), %eax
0000000100009f88 subl -0x20(%rbp), %eax
0000000100009f8b cmpl $0x2, %eax
0000000100009f8e jl 0x10000a05e
0000000100009f94 movl -0x20(%rbp), %edx
0000000100009f97 movq -0x18(%rbp), %rdi
0000000100009f9b movl -0x10(%rbp), %esi
0000000100009f9e callq _string_at
0000000100009fa3 movzbl %al, %edx
0000000100009fa6 cmpl $0x30, %edx
0000000100009fa9 jne 0x10000a05e
0000000100009faf movl -0x20(%rbp), %eax
0000000100009fb2 addl $0x1, %eax
0000000100009fb5 movq -0x18(%rbp), %rdi
0000000100009fb9 movl -0x10(%rbp), %esi
0000000100009fbc movl %eax, %edx
0000000100009fbe callq _string_at
0000000100009fc3 movzbl %al, %edi
0000000100009fc6 callq _strconv__byte_to_lower
0000000100009fcb movzbl %al, %edx
0000000100009fce cmpl $0x62, %edx
0000000100009fd1 je 0x10000a027
0000000100009fd7 movl -0x20(%rbp), %eax
0000000100009fda addl $0x1, %eax
0000000100009fdd movq -0x18(%rbp), %rdi
0000000100009fe1 movl -0x10(%rbp), %esi
0000000100009fe4 movl %eax, %edx
0000000100009fe6 callq _string_at
0000000100009feb movzbl %al, %edi
0000000100009fee callq _strconv__byte_to_lower
0000000100009ff3 movzbl %al, %edx
0000000100009ff6 cmpl $0x6f, %edx
0000000100009ff9 je 0x10000a027
0000000100009fff movl -0x20(%rbp), %eax
000000010000a002 addl $0x1, %eax
000000010000a005 movq -0x18(%rbp), %rdi
000000010000a009 movl -0x10(%rbp), %esi
000000010000a00c movl %eax, %edx
000000010000a00e callq _string_at
000000010000a013 movzbl %al, %edi
000000010000a016 callq _strconv__byte_to_lower
000000010000a01b movzbl %al, %edx
000000010000a01e cmpl $0x78, %edx
000000010000a021 jne 0x10000a05e
000000010000a027 movb $0x30, -0x19(%rbp)
000000010000a02b movl -0x20(%rbp), %eax
000000010000a02e addl $0x1, %eax
000000010000a031 movq -0x18(%rbp), %rdi
000000010000a035 movl -0x10(%rbp), %esi
000000010000a038 movl %eax, %edx
000000010000a03a callq _string_at
000000010000a03f movzbl %al, %edi
000000010000a042 callq _strconv__byte_to_lower
000000010000a047 movzbl %al, %edx
000000010000a04a cmpl $0x78, %edx
000000010000a04d sete %al
000000010000a050 andb $0x1, %al
000000010000a052 movb %al, -0x21(%rbp)
000000010000a055 movl -0x20(%rbp), %edx
000000010000a058 addl $0x2, %edx
000000010000a05b movl %edx, -0x20(%rbp)
000000010000a05e jmp 0x10000a063
000000010000a063 movl -0x20(%rbp), %eax
000000010000a066 cmpl -0x10(%rbp), %eax
000000010000a069 jge 0x10000a168
000000010000a06f movl -0x20(%rbp), %edx
000000010000a072 movq -0x18(%rbp), %rdi
000000010000a076 movl -0x10(%rbp), %esi
000000010000a079 callq _string_at
000000010000a07e movl $0x30, %edx
000000010000a083 movzbl %al, %esi
000000010000a086 cmpl %esi, %edx
000000010000a088 jg 0x10000a0a9
000000010000a08e movl -0x20(%rbp), %edx
000000010000a091 movq -0x18(%rbp), %rdi
000000010000a095 movl -0x10(%rbp), %esi
000000010000a098 callq _string_at
000000010000a09d movzbl %al, %edx
000000010000a0a0 cmpl $0x39, %edx
000000010000a0a3 jle 0x10000a0fd
000000010000a0a9 testb $0x1, -0x21(%rbp)
000000010000a0ad je 0x10000a106
000000010000a0b3 movl -0x20(%rbp), %edx
000000010000a0b6 movq -0x18(%rbp), %rdi
000000010000a0ba movl -0x10(%rbp), %esi
000000010000a0bd callq _string_at
000000010000a0c2 movzbl %al, %edi
000000010000a0c5 callq _strconv__byte_to_lower
000000010000a0ca movl $0x61, %edx
000000010000a0cf movzbl %al, %esi
000000010000a0d2 cmpl %esi, %edx
000000010000a0d4 jg 0x10000a106
000000010000a0da movl -0x20(%rbp), %edx
000000010000a0dd movq -0x18(%rbp), %rdi
000000010000a0e1 movl -0x10(%rbp), %esi
000000010000a0e4 callq _string_at
000000010000a0e9 movzbl %al, %edi
000000010000a0ec callq _strconv__byte_to_lower
000000010000a0f1 movzbl %al, %edx
000000010000a0f4 cmpl $0x66, %edx
000000010000a0f7 jg 0x10000a106
000000010000a0fd movb $0x30, -0x19(%rbp)
000000010000a101 jmp 0x10000a15a
000000010000a106 movl -0x20(%rbp), %edx
000000010000a109 movq -0x18(%rbp), %rdi
000000010000a10d movl -0x10(%rbp), %esi
000000010000a110 callq _string_at
000000010000a115 movzbl %al, %edx
000000010000a118 cmpl $0x5f, %edx
000000010000a11b jne 0x10000a140
000000010000a121 movzbl -0x19(%rbp), %eax
000000010000a125 cmpl $0x30, %eax
000000010000a128 je 0x10000a137
000000010000a12e movb $0x0, -0x1(%rbp)
000000010000a132 jmp 0x10000a178
000000010000a137 movb $0x5f, -0x19(%rbp)
000000010000a13b jmp 0x10000a15a
000000010000a140 movzbl -0x19(%rbp), %eax
000000010000a144 cmpl $0x5f, %eax
000000010000a147 jne 0x10000a156
000000010000a14d movb $0x0, -0x1(%rbp)
000000010000a151 jmp 0x10000a178
000000010000a156 movb $0x21, -0x19(%rbp)
000000010000a15a movl -0x20(%rbp), %eax
000000010000a15d addl $0x1, %eax
000000010000a160 movl %eax, -0x20(%rbp)
000000010000a163 jmp 0x10000a063
000000010000a168 movzbl -0x19(%rbp), %eax
000000010000a16c cmpl $0x5f, %eax
000000010000a16f setne %cl
000000010000a172 andb $0x1, %cl
000000010000a175 movb %cl, -0x1(%rbp)
000000010000a178 movb -0x1(%rbp), %al
000000010000a17b andb $0x1, %al
000000010000a17d movzbl %al, %eax
000000010000a180 addq $0x30, %rsp
000000010000a184 popq %rbp
000000010000a185 retq
000000010000a186 nopw %cs:(%rax,%rax)
_strconv__atoi:
000000010000a190 pushq %rbp
000000010000a191 movq %rsp, %rbp
000000010000a194 subq $0x40, %rsp
000000010000a198 xorl %eax, %eax
000000010000a19a movq %rdi, -0x18(%rbp)
000000010000a19e movl %esi, -0x10(%rbp)
000000010000a1a1 cmpl -0x10(%rbp), %eax
000000010000a1a4 jge 0x10000a2c3
000000010000a1aa cmpl $0xa, -0x10(%rbp)
000000010000a1ae jge 0x10000a2c3
000000010000a1b4 xorl %edx, %edx
000000010000a1b6 movl $0x0, -0x1c(%rbp)
000000010000a1bd movq -0x18(%rbp), %rdi
000000010000a1c1 movl -0x10(%rbp), %esi
000000010000a1c4 callq _string_at
000000010000a1c9 movzbl %al, %edx
000000010000a1cc cmpl $0x2d, %edx
000000010000a1cf je 0x10000a1ef
000000010000a1d5 xorl %edx, %edx
000000010000a1d7 movq -0x18(%rbp), %rdi
000000010000a1db movl -0x10(%rbp), %esi
000000010000a1de callq _string_at
000000010000a1e3 movzbl %al, %edx
000000010000a1e6 cmpl $0x2b, %edx
000000010000a1e9 jne 0x10000a218
000000010000a1ef movl -0x1c(%rbp), %eax
000000010000a1f2 addl $0x1, %eax
000000010000a1f5 movl %eax, -0x1c(%rbp)
000000010000a1f8 movl -0x10(%rbp), %eax
000000010000a1fb subl -0x1c(%rbp), %eax
000000010000a1fe cmpl $0x1, %eax
000000010000a201 jge 0x10000a213
000000010000a207 movl $0x0, -0x4(%rbp)
000000010000a20e jmp 0x10000a2e3
000000010000a213 jmp 0x10000a218
000000010000a218 movl $0x0, -0x20(%rbp)
000000010000a21f movl -0x1c(%rbp), %eax
000000010000a222 movl %eax, -0x24(%rbp)
000000010000a225 movl -0x24(%rbp), %eax
000000010000a228 movl %eax, -0x28(%rbp)
000000010000a22b movl -0x28(%rbp), %eax
000000010000a22e cmpl -0x10(%rbp), %eax
000000010000a231 jge 0x10000a28b
000000010000a237 movl -0x28(%rbp), %eax
000000010000a23a movl %eax, -0x2c(%rbp)
000000010000a23d movl -0x2c(%rbp), %edx
000000010000a240 movq -0x18(%rbp), %rdi
000000010000a244 movl -0x10(%rbp), %esi
000000010000a247 callq _string_at
000000010000a24c movzbl %al, %edx
000000010000a24f subl $0x30, %edx
000000010000a252 movb %dl, %al
000000010000a254 movb %al, -0x2d(%rbp)
000000010000a257 movzbl -0x2d(%rbp), %edx
000000010000a25b cmpl $0x9, %edx
000000010000a25e jle 0x10000a270
000000010000a264 movl $0x0, -0x4(%rbp)
000000010000a26b jmp 0x10000a2e3
000000010000a270 imull $0xa, -0x20(%rbp), %eax
000000010000a274 movzbl -0x2d(%rbp), %ecx
000000010000a278 addl %ecx, %eax
000000010000a27a movl %eax, -0x20(%rbp)
000000010000a27d movl -0x28(%rbp), %eax
000000010000a280 addl $0x1, %eax
000000010000a283 movl %eax, -0x28(%rbp)
000000010000a286 jmp 0x10000a22b
000000010000a28b xorl %edx, %edx
000000010000a28d movq -0x18(%rbp), %rdi
000000010000a291 movl -0x10(%rbp), %esi
000000010000a294 callq _string_at
000000010000a299 movzbl %al, %edx
000000010000a29c cmpl $0x2d, %edx
000000010000a29f jne 0x10000a2b2
000000010000a2a5 xorl %eax, %eax
000000010000a2a7 subl -0x20(%rbp), %eax
000000010000a2aa movl %eax, -0x3c(%rbp)
000000010000a2ad jmp 0x10000a2b8
000000010000a2b2 movl -0x20(%rbp), %eax
000000010000a2b5 movl %eax, -0x3c(%rbp)
000000010000a2b8 movl -0x3c(%rbp), %eax
000000010000a2bb movl %eax, -0x4(%rbp)
000000010000a2be jmp 0x10000a2e3
000000010000a2c3 movl $0xa, %edx
000000010000a2c8 xorl %ecx, %ecx
000000010000a2ca movq -0x18(%rbp), %rdi
000000010000a2ce movl -0x10(%rbp), %esi
000000010000a2d1 callq _strconv__parse_int
000000010000a2d6 movq %rax, -0x38(%rbp)
000000010000a2da movq -0x38(%rbp), %rax
000000010000a2de movl %eax, %ecx
000000010000a2e0 movl %ecx, -0x4(%rbp)
000000010000a2e3 movl -0x4(%rbp), %eax
000000010000a2e6 addq $0x40, %rsp
000000010000a2ea popq %rbp
000000010000a2eb retq
000000010000a2ec nopl (%rax)
_main__main:
000000010000a2f0 pushq %rbp
000000010000a2f1 movq %rsp, %rbp
000000010000a2f4 subq $0x10, %rsp
000000010000a2f8 leaq 0x7d9(%rip), %rdi ## literal pool for: "Hello V!"
000000010000a2ff callq _tos3
000000010000a304 movq %rax, -0x10(%rbp)
000000010000a308 movl %edx, -0x8(%rbp)
000000010000a30b movq -0x10(%rbp), %rdi
000000010000a30f movl -0x8(%rbp), %esi
000000010000a312 callq _println
000000010000a317 addq $0x10, %rsp
000000010000a31b popq %rbp
000000010000a31c retq
000000010000a31d nopl (%rax)
_init:
000000010000a320 pushq %rbp
000000010000a321 movq %rsp, %rbp
000000010000a324 movl $0x3e8, %eax
000000010000a329 movl %eax, %edi
000000010000a32b callq 0x10000a5fe ## symbol stub for: _malloc
000000010000a330 leaq _strconv__max_u64(%rip), %rdi
000000010000a337 leaq _builtin__max_cap(%rip), %rcx
000000010000a33e leaq _builtin__min_cap(%rip), %rdx
000000010000a345 leaq _g_str_buf(%rip), %rsi
000000010000a34c movq %rax, (%rsi)
000000010000a34f movl $0x800, (%rdx)
000000010000a355 movl $0x200000, (%rcx)
000000010000a35b movq $-0x1, (%rdi)
000000010000a362 callq _builtin__init
000000010000a367 popq %rbp
000000010000a368 retq
000000010000a369 nopl (%rax)
__STR_TMP:
000000010000a370 pushq %rbp
000000010000a371 movq %rsp, %rbp
000000010000a374 subq $0x1c0, %rsp
000000010000a37b testb %al, %al
000000010000a37d movaps %xmm7, -0x100(%rbp)
000000010000a384 movaps %xmm6, -0x110(%rbp)
000000010000a38b movaps %xmm5, -0x120(%rbp)
000000010000a392 movaps %xmm4, -0x130(%rbp)
000000010000a399 movaps %xmm3, -0x140(%rbp)
000000010000a3a0 movaps %xmm2, -0x150(%rbp)
000000010000a3a7 movaps %xmm1, -0x160(%rbp)
000000010000a3ae movaps %xmm0, -0x170(%rbp)
000000010000a3b5 movq %rdi, -0x178(%rbp)
000000010000a3bc movq %r9, -0x180(%rbp)
000000010000a3c3 movq %r8, -0x188(%rbp)
000000010000a3ca movq %rcx, -0x190(%rbp)
000000010000a3d1 movq %rdx, -0x198(%rbp)
000000010000a3d8 movq %rsi, -0x1a0(%rbp)
000000010000a3df je 0x10000a449
000000010000a3e5 movaps -0x170(%rbp), %xmm0
000000010000a3ec movaps %xmm0, -0xc0(%rbp)
000000010000a3f3 movaps -0x160(%rbp), %xmm1
000000010000a3fa movaps %xmm1, -0xb0(%rbp)
000000010000a401 movaps -0x150(%rbp), %xmm2
000000010000a408 movaps %xmm2, -0xa0(%rbp)
000000010000a40f movaps -0x140(%rbp), %xmm3
000000010000a416 movaps %xmm3, -0x90(%rbp)
000000010000a41d movaps -0x130(%rbp), %xmm4
000000010000a424 movaps %xmm4, -0x80(%rbp)
000000010000a428 movaps -0x120(%rbp), %xmm5
000000010000a42f movaps %xmm5, -0x70(%rbp)
000000010000a433 movaps -0x110(%rbp), %xmm6
000000010000a43a movaps %xmm6, -0x60(%rbp)
000000010000a43e movaps -0x100(%rbp), %xmm7
000000010000a445 movaps %xmm7, -0x50(%rbp)
000000010000a449 movq -0x180(%rbp), %rax
000000010000a450 movq %rax, -0xc8(%rbp)
000000010000a457 movq -0x188(%rbp), %rcx
000000010000a45e movq %rcx, -0xd0(%rbp)
000000010000a465 movq -0x190(%rbp), %rdx
000000010000a46c movq %rdx, -0xd8(%rbp)
000000010000a473 movq -0x198(%rbp), %rsi
000000010000a47a movq %rsi, -0xe0(%rbp)
000000010000a481 movq -0x1a0(%rbp), %rdi
000000010000a488 movq %rdi, -0xe8(%rbp)
000000010000a48f movq -0x178(%rbp), %r8
000000010000a496 movq 0x2b9b(%rip), %r9 ## literal pool symbol address: ___stack_chk_guard
000000010000a49d movq (%r9), %r9
000000010000a4a0 movq %r9, -0x8(%rbp)
000000010000a4a4 movq %r8, -0x38(%rbp)
000000010000a4a8 leaq -0xf0(%rbp), %r8
000000010000a4af movq %r8, -0x10(%rbp)
000000010000a4b3 leaq 0x10(%rbp), %r9
000000010000a4b7 movq %r9, -0x18(%rbp)
000000010000a4bb movl $0x30, -0x1c(%rbp)
000000010000a4c2 movl $0x8, -0x20(%rbp)
000000010000a4c9 movq %r8, -0x10(%rbp)
000000010000a4cd movq %r9, -0x18(%rbp)
000000010000a4d1 movl $0x30, -0x1c(%rbp)
000000010000a4d8 movl $0x8, -0x20(%rbp)
000000010000a4df leaq _g_str_buf(%rip), %r8
000000010000a4e6 movq (%r8), %rdi
000000010000a4e9 movq -0x38(%rbp), %rcx
000000010000a4ed xorl %esi, %esi
000000010000a4ef movq $-0x1, %rdx
000000010000a4f6 leaq -0x20(%rbp), %r9
000000010000a4fa movq %r8, -0x1a8(%rbp)
000000010000a501 movq %r9, %r8
000000010000a504 callq 0x10000a5bc ## symbol stub for: ___vsprintf_chk
000000010000a509 movq -0x1a8(%rbp), %rcx
000000010000a510 movq (%rcx), %rdi
000000010000a513 movl %eax, -0x1ac(%rbp)
000000010000a519 callq _tos2
000000010000a51e movq %rax, -0x30(%rbp)
000000010000a522 movl %edx, -0x28(%rbp)
000000010000a525 movl -0x28(%rbp), %edx
000000010000a528 movq -0x30(%rbp), %rax
000000010000a52c movq 0x2b05(%rip), %rcx ## literal pool symbol address: ___stack_chk_guard
000000010000a533 movq (%rcx), %rcx
000000010000a536 movq -0x8(%rbp), %rdi
000000010000a53a cmpq %rdi, %rcx
000000010000a53d movl %edx, -0x1b0(%rbp)
000000010000a543 movq %rax, -0x1b8(%rbp)
000000010000a54a jne 0x10000a566
000000010000a550 movq -0x1b8(%rbp), %rax
000000010000a557 movl -0x1b0(%rbp), %edx
000000010000a55d addq $0x1c0, %rsp
000000010000a564 popq %rbp
000000010000a565 retq
000000010000a566 callq 0x10000a5b0 ## symbol stub for: ___stack_chk_fail
000000010000a56b ud2
000000010000a56d nopl (%rax)
_main:
000000010000a570 pushq %rbp
000000010000a571 movq %rsp, %rbp
000000010000a574 subq $0x10, %rsp
000000010000a578 movl $0x0, -0x4(%rbp)
000000010000a57f movl %edi, -0x8(%rbp)
000000010000a582 movq %rsi, -0x10(%rbp)
000000010000a586 callq _init
000000010000a58b callq _main__main
000000010000a590 xorl %eax, %eax
000000010000a592 addq $0x10, %rsp
000000010000a596 popq %rbp
000000010000a597 retq