ccgo_linux_loong64.go 300 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317
  1. // Code generated for linux/loong64 by 'generator --prefix-enumerator=_ --prefix-external=x_ --prefix-field=F --prefix-macro=m_ --prefix-static-internal=_ --prefix-static-none=_ --prefix-tagged-enum=_ --prefix-tagged-struct=T --prefix-tagged-union=T --prefix-typename=T --prefix-undefined=_ -extended-errors -ignore-unsupported-alignment -ignore-link-errors -o libmd.go --package-name libmd src/.libs/libmd.a', DO NOT EDIT.
  2. //go:build linux && loong64
  3. package libmd
  4. import (
  5. "reflect"
  6. "unsafe"
  7. "modernc.org/libc"
  8. )
  9. var _ reflect.Type
  10. var _ unsafe.Pointer
  11. const m_BIG_ENDIAN = "__BIG_ENDIAN"
  12. const m_BYTE_ORDER = "__BYTE_ORDER"
  13. const m_FD_SETSIZE = 1024
  14. const m_HAVE_CONFIG_H = 1
  15. const m_HAVE_DLFCN_H = 1
  16. const m_HAVE_INTTYPES_H = 1
  17. const m_HAVE_STDINT_H = 1
  18. const m_HAVE_STDIO_H = 1
  19. const m_HAVE_STDLIB_H = 1
  20. const m_HAVE_STRINGS_H = 1
  21. const m_HAVE_STRING_H = 1
  22. const m_HAVE_SYS_STAT_H = 1
  23. const m_HAVE_SYS_TYPES_H = 1
  24. const m_HAVE_UNISTD_H = 1
  25. const m_HAVE_WCHAR_H = 1
  26. const m_INT16_MAX = 0x7fff
  27. const m_INT32_MAX = 0x7fffffff
  28. const m_INT64_MAX = 0x7fffffffffffffff
  29. const m_INT8_MAX = 0x7f
  30. const m_INTMAX_MAX = "INT64_MAX"
  31. const m_INTMAX_MIN = "INT64_MIN"
  32. const m_INTPTR_MAX = "INT64_MAX"
  33. const m_INTPTR_MIN = "INT64_MIN"
  34. const m_INT_FAST16_MAX = "INT32_MAX"
  35. const m_INT_FAST16_MIN = "INT32_MIN"
  36. const m_INT_FAST32_MAX = "INT32_MAX"
  37. const m_INT_FAST32_MIN = "INT32_MIN"
  38. const m_INT_FAST64_MAX = "INT64_MAX"
  39. const m_INT_FAST64_MIN = "INT64_MIN"
  40. const m_INT_FAST8_MAX = "INT8_MAX"
  41. const m_INT_FAST8_MIN = "INT8_MIN"
  42. const m_INT_LEAST16_MAX = "INT16_MAX"
  43. const m_INT_LEAST16_MIN = "INT16_MIN"
  44. const m_INT_LEAST32_MAX = "INT32_MAX"
  45. const m_INT_LEAST32_MIN = "INT32_MIN"
  46. const m_INT_LEAST64_MAX = "INT64_MAX"
  47. const m_INT_LEAST64_MIN = "INT64_MIN"
  48. const m_INT_LEAST8_MAX = "INT8_MAX"
  49. const m_INT_LEAST8_MIN = "INT8_MIN"
  50. const m_LITTLE_ENDIAN = "__LITTLE_ENDIAN"
  51. const m_LT_OBJDIR = ".libs/"
  52. const m_MD2_BLOCK_LENGTH = 16
  53. const m_MD2_DIGEST_LENGTH = 16
  54. const m_MD2_DIGEST_STRING_LENGTH = 33
  55. const m_NDEBUG = 1
  56. const m_PACKAGE = "libmd"
  57. const m_PACKAGE_BUGREPORT = "libbsd@lists.freedesktop.org"
  58. const m_PACKAGE_NAME = "libmd"
  59. const m_PACKAGE_STRING = "libmd 1.1.0"
  60. const m_PACKAGE_TARNAME = "libmd"
  61. const m_PACKAGE_URL = ""
  62. const m_PACKAGE_VERSION = "1.1.0"
  63. const m_PDP_ENDIAN = "__PDP_ENDIAN"
  64. const m_PTRDIFF_MAX = "INT64_MAX"
  65. const m_PTRDIFF_MIN = "INT64_MIN"
  66. const m_SIG_ATOMIC_MAX = "INT32_MAX"
  67. const m_SIG_ATOMIC_MIN = "INT32_MIN"
  68. const m_SIZE_MAX = "UINT64_MAX"
  69. const m_STDC_HEADERS = 1
  70. const m_UINT16_MAX = 0xffff
  71. const m_UINT32_MAX = "0xffffffffu"
  72. const m_UINT64_MAX = "0xffffffffffffffffu"
  73. const m_UINT8_MAX = 0xff
  74. const m_UINTMAX_MAX = "UINT64_MAX"
  75. const m_UINTPTR_MAX = "UINT64_MAX"
  76. const m_UINT_FAST16_MAX = "UINT32_MAX"
  77. const m_UINT_FAST32_MAX = "UINT32_MAX"
  78. const m_UINT_FAST64_MAX = "UINT64_MAX"
  79. const m_UINT_FAST8_MAX = "UINT8_MAX"
  80. const m_UINT_LEAST16_MAX = "UINT16_MAX"
  81. const m_UINT_LEAST32_MAX = "UINT32_MAX"
  82. const m_UINT_LEAST64_MAX = "UINT64_MAX"
  83. const m_UINT_LEAST8_MAX = "UINT8_MAX"
  84. const m_VERSION = "1.1.0"
  85. const m_WINT_MAX = "UINT32_MAX"
  86. const m_WINT_MIN = 0
  87. const m__ABILP64 = 3
  88. const m__ALL_SOURCE = 1
  89. const m__DARWIN_C_SOURCE = 1
  90. const m__GNU_SOURCE = 1
  91. const m__HPUX_ALT_XOPEN_SOCKET_API = 1
  92. const m__LOONGARCH_ARCH = "la64v1.0"
  93. const m__LOONGARCH_FPSET = 32
  94. const m__LOONGARCH_SIM = "_ABILP64"
  95. const m__LOONGARCH_SPFPSET = 32
  96. const m__LOONGARCH_SZINT = 32
  97. const m__LOONGARCH_SZLONG = 64
  98. const m__LOONGARCH_SZPTR = 64
  99. const m__LOONGARCH_TUNE = "generic"
  100. const m__LP64 = 1
  101. const m__NETBSD_SOURCE = 1
  102. const m__OPENBSD_SOURCE = 1
  103. const m__POSIX_PTHREAD_SEMANTICS = 1
  104. const m__STDC_PREDEF_H = 1
  105. const m__TANDEM_SOURCE = 1
  106. const m___ACCUM_EPSILON__ = "0x1P-15K"
  107. const m___ACCUM_FBIT__ = 15
  108. const m___ACCUM_IBIT__ = 16
  109. const m___ACCUM_MAX__ = "0X7FFFFFFFP-15K"
  110. const m___ATOMIC_ACQUIRE = 2
  111. const m___ATOMIC_ACQ_REL = 4
  112. const m___ATOMIC_CONSUME = 1
  113. const m___ATOMIC_RELAXED = 0
  114. const m___ATOMIC_RELEASE = 3
  115. const m___ATOMIC_SEQ_CST = 5
  116. const m___BIGGEST_ALIGNMENT__ = 16
  117. const m___BIG_ENDIAN = 4321
  118. const m___BYTE_ORDER = 1234
  119. const m___BYTE_ORDER__ = "__ORDER_LITTLE_ENDIAN__"
  120. const m___CCGO__ = 1
  121. const m___CHAR_BIT__ = 8
  122. const m___DA_FBIT__ = 31
  123. const m___DA_IBIT__ = 32
  124. const m___DBL_DECIMAL_DIG__ = 17
  125. const m___DBL_DIG__ = 15
  126. const m___DBL_HAS_DENORM__ = 1
  127. const m___DBL_HAS_INFINITY__ = 1
  128. const m___DBL_HAS_QUIET_NAN__ = 1
  129. const m___DBL_IS_IEC_60559__ = 1
  130. const m___DBL_MANT_DIG__ = 53
  131. const m___DBL_MAX_10_EXP__ = 308
  132. const m___DBL_MAX_EXP__ = 1024
  133. const m___DECIMAL_DIG__ = 36
  134. const m___DEC_EVAL_METHOD__ = 2
  135. const m___DQ_FBIT__ = 63
  136. const m___DQ_IBIT__ = 0
  137. const m___ELF__ = 1
  138. const m___EXTENSIONS__ = 1
  139. const m___FINITE_MATH_ONLY__ = 0
  140. const m___FLOAT128_TYPE__ = 1
  141. const m___FLOAT_WORD_ORDER__ = "__ORDER_LITTLE_ENDIAN__"
  142. const m___FLT128_DECIMAL_DIG__ = 36
  143. const m___FLT128_DENORM_MIN__ = 6.47517511943802511092443895822764655e-4966
  144. const m___FLT128_DIG__ = 33
  145. const m___FLT128_EPSILON__ = 1.92592994438723585305597794258492732e-34
  146. const m___FLT128_HAS_DENORM__ = 1
  147. const m___FLT128_HAS_INFINITY__ = 1
  148. const m___FLT128_HAS_QUIET_NAN__ = 1
  149. const m___FLT128_IS_IEC_60559__ = 1
  150. const m___FLT128_MANT_DIG__ = 113
  151. const m___FLT128_MAX_10_EXP__ = 4932
  152. const m___FLT128_MAX_EXP__ = 16384
  153. const m___FLT128_MAX__ = "1.18973149535723176508575932662800702e+4932"
  154. const m___FLT128_MIN__ = 3.36210314311209350626267781732175260e-4932
  155. const m___FLT128_NORM_MAX__ = "1.18973149535723176508575932662800702e+4932"
  156. const m___FLT32X_DECIMAL_DIG__ = 17
  157. const m___FLT32X_DENORM_MIN__ = 4.94065645841246544176568792868221372e-324
  158. const m___FLT32X_DIG__ = 15
  159. const m___FLT32X_EPSILON__ = 2.22044604925031308084726333618164062e-16
  160. const m___FLT32X_HAS_DENORM__ = 1
  161. const m___FLT32X_HAS_INFINITY__ = 1
  162. const m___FLT32X_HAS_QUIET_NAN__ = 1
  163. const m___FLT32X_IS_IEC_60559__ = 1
  164. const m___FLT32X_MANT_DIG__ = 53
  165. const m___FLT32X_MAX_10_EXP__ = 308
  166. const m___FLT32X_MAX_EXP__ = 1024
  167. const m___FLT32X_MAX__ = 1.79769313486231570814527423731704357e+308
  168. const m___FLT32X_MIN__ = 2.22507385850720138309023271733240406e-308
  169. const m___FLT32X_NORM_MAX__ = 1.79769313486231570814527423731704357e+308
  170. const m___FLT32_DECIMAL_DIG__ = 9
  171. const m___FLT32_DENORM_MIN__ = 1.40129846432481707092372958328991613e-45
  172. const m___FLT32_DIG__ = 6
  173. const m___FLT32_EPSILON__ = 1.19209289550781250000000000000000000e-7
  174. const m___FLT32_HAS_DENORM__ = 1
  175. const m___FLT32_HAS_INFINITY__ = 1
  176. const m___FLT32_HAS_QUIET_NAN__ = 1
  177. const m___FLT32_IS_IEC_60559__ = 1
  178. const m___FLT32_MANT_DIG__ = 24
  179. const m___FLT32_MAX_10_EXP__ = 38
  180. const m___FLT32_MAX_EXP__ = 128
  181. const m___FLT32_MAX__ = 3.40282346638528859811704183484516925e+38
  182. const m___FLT32_MIN__ = 1.17549435082228750796873653722224568e-38
  183. const m___FLT32_NORM_MAX__ = 3.40282346638528859811704183484516925e+38
  184. const m___FLT64X_DECIMAL_DIG__ = 36
  185. const m___FLT64X_DENORM_MIN__ = 6.47517511943802511092443895822764655e-4966
  186. const m___FLT64X_DIG__ = 33
  187. const m___FLT64X_EPSILON__ = 1.92592994438723585305597794258492732e-34
  188. const m___FLT64X_HAS_DENORM__ = 1
  189. const m___FLT64X_HAS_INFINITY__ = 1
  190. const m___FLT64X_HAS_QUIET_NAN__ = 1
  191. const m___FLT64X_IS_IEC_60559__ = 1
  192. const m___FLT64X_MANT_DIG__ = 113
  193. const m___FLT64X_MAX_10_EXP__ = 4932
  194. const m___FLT64X_MAX_EXP__ = 16384
  195. const m___FLT64X_MAX__ = "1.18973149535723176508575932662800702e+4932"
  196. const m___FLT64X_MIN__ = 3.36210314311209350626267781732175260e-4932
  197. const m___FLT64X_NORM_MAX__ = "1.18973149535723176508575932662800702e+4932"
  198. const m___FLT64_DECIMAL_DIG__ = 17
  199. const m___FLT64_DENORM_MIN__ = 4.94065645841246544176568792868221372e-324
  200. const m___FLT64_DIG__ = 15
  201. const m___FLT64_EPSILON__ = 2.22044604925031308084726333618164062e-16
  202. const m___FLT64_HAS_DENORM__ = 1
  203. const m___FLT64_HAS_INFINITY__ = 1
  204. const m___FLT64_HAS_QUIET_NAN__ = 1
  205. const m___FLT64_IS_IEC_60559__ = 1
  206. const m___FLT64_MANT_DIG__ = 53
  207. const m___FLT64_MAX_10_EXP__ = 308
  208. const m___FLT64_MAX_EXP__ = 1024
  209. const m___FLT64_MAX__ = 1.79769313486231570814527423731704357e+308
  210. const m___FLT64_MIN__ = 2.22507385850720138309023271733240406e-308
  211. const m___FLT64_NORM_MAX__ = 1.79769313486231570814527423731704357e+308
  212. const m___FLT_DECIMAL_DIG__ = 9
  213. const m___FLT_DENORM_MIN__ = 1.40129846432481707092372958328991613e-45
  214. const m___FLT_DIG__ = 6
  215. const m___FLT_EPSILON__ = 1.19209289550781250000000000000000000e-7
  216. const m___FLT_EVAL_METHOD_TS_18661_3__ = 0
  217. const m___FLT_EVAL_METHOD__ = 0
  218. const m___FLT_HAS_DENORM__ = 1
  219. const m___FLT_HAS_INFINITY__ = 1
  220. const m___FLT_HAS_QUIET_NAN__ = 1
  221. const m___FLT_IS_IEC_60559__ = 1
  222. const m___FLT_MANT_DIG__ = 24
  223. const m___FLT_MAX_10_EXP__ = 38
  224. const m___FLT_MAX_EXP__ = 128
  225. const m___FLT_MAX__ = 3.40282346638528859811704183484516925e+38
  226. const m___FLT_MIN__ = 1.17549435082228750796873653722224568e-38
  227. const m___FLT_NORM_MAX__ = 3.40282346638528859811704183484516925e+38
  228. const m___FLT_RADIX__ = 2
  229. const m___FP_FAST_FMA = 1
  230. const m___FP_FAST_FMAF = 1
  231. const m___FP_FAST_FMAF32 = 1
  232. const m___FP_FAST_FMAF32x = 1
  233. const m___FP_FAST_FMAF64 = 1
  234. const m___FRACT_EPSILON__ = "0x1P-15R"
  235. const m___FRACT_FBIT__ = 15
  236. const m___FRACT_IBIT__ = 0
  237. const m___FRACT_MAX__ = "0X7FFFP-15R"
  238. const m___FUNCTION__ = "__func__"
  239. const m___GCC_ATOMIC_BOOL_LOCK_FREE = 2
  240. const m___GCC_ATOMIC_CHAR16_T_LOCK_FREE = 2
  241. const m___GCC_ATOMIC_CHAR32_T_LOCK_FREE = 2
  242. const m___GCC_ATOMIC_CHAR_LOCK_FREE = 2
  243. const m___GCC_ATOMIC_INT_LOCK_FREE = 2
  244. const m___GCC_ATOMIC_LLONG_LOCK_FREE = 2
  245. const m___GCC_ATOMIC_LONG_LOCK_FREE = 2
  246. const m___GCC_ATOMIC_POINTER_LOCK_FREE = 2
  247. const m___GCC_ATOMIC_SHORT_LOCK_FREE = 2
  248. const m___GCC_ATOMIC_TEST_AND_SET_TRUEVAL = 1
  249. const m___GCC_ATOMIC_WCHAR_T_LOCK_FREE = 2
  250. const m___GCC_HAVE_DWARF2_CFI_ASM = 1
  251. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 = 1
  252. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 = 1
  253. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 = 1
  254. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 = 1
  255. const m___GCC_IEC_559 = 2
  256. const m___GCC_IEC_559_COMPLEX = 2
  257. const m___GNUC_EXECUTION_CHARSET_NAME = "UTF-8"
  258. const m___GNUC_MINOR__ = 2
  259. const m___GNUC_PATCHLEVEL__ = 1
  260. const m___GNUC_RH_RELEASE__ = 6
  261. const m___GNUC_STDC_INLINE__ = 1
  262. const m___GNUC_WIDE_EXECUTION_CHARSET_NAME = "UTF-32LE"
  263. const m___GNUC__ = 14
  264. const m___GXX_ABI_VERSION = 1019
  265. const m___HAVE_SPECULATION_SAFE_VALUE = 1
  266. const m___HA_FBIT__ = 7
  267. const m___HA_IBIT__ = 8
  268. const m___HQ_FBIT__ = 15
  269. const m___HQ_IBIT__ = 0
  270. const m___INT16_MAX__ = 0x7fff
  271. const m___INT32_MAX__ = 0x7fffffff
  272. const m___INT32_TYPE__ = "int"
  273. const m___INT64_MAX__ = 0x7fffffffffffffff
  274. const m___INT8_MAX__ = 0x7f
  275. const m___INTMAX_MAX__ = 0x7fffffffffffffff
  276. const m___INTMAX_WIDTH__ = 64
  277. const m___INTPTR_MAX__ = 0x7fffffffffffffff
  278. const m___INTPTR_WIDTH__ = 64
  279. const m___INT_FAST16_MAX__ = 0x7fffffffffffffff
  280. const m___INT_FAST16_WIDTH__ = 64
  281. const m___INT_FAST32_MAX__ = 0x7fffffffffffffff
  282. const m___INT_FAST32_WIDTH__ = 64
  283. const m___INT_FAST64_MAX__ = 0x7fffffffffffffff
  284. const m___INT_FAST64_WIDTH__ = 64
  285. const m___INT_FAST8_MAX__ = 0x7f
  286. const m___INT_FAST8_WIDTH__ = 8
  287. const m___INT_LEAST16_MAX__ = 0x7fff
  288. const m___INT_LEAST16_WIDTH__ = 16
  289. const m___INT_LEAST32_MAX__ = 0x7fffffff
  290. const m___INT_LEAST32_TYPE__ = "int"
  291. const m___INT_LEAST32_WIDTH__ = 32
  292. const m___INT_LEAST64_MAX__ = 0x7fffffffffffffff
  293. const m___INT_LEAST64_WIDTH__ = 64
  294. const m___INT_LEAST8_MAX__ = 0x7f
  295. const m___INT_LEAST8_WIDTH__ = 8
  296. const m___INT_MAX__ = 0x7fffffff
  297. const m___INT_WIDTH__ = 32
  298. const m___LACCUM_EPSILON__ = "0x1P-31LK"
  299. const m___LACCUM_FBIT__ = 31
  300. const m___LACCUM_IBIT__ = 32
  301. const m___LACCUM_MAX__ = "0X7FFFFFFFFFFFFFFFP-31LK"
  302. const m___LDBL_DECIMAL_DIG__ = 36
  303. const m___LDBL_DENORM_MIN__ = 6.47517511943802511092443895822764655e-4966
  304. const m___LDBL_DIG__ = 33
  305. const m___LDBL_EPSILON__ = 1.92592994438723585305597794258492732e-34
  306. const m___LDBL_HAS_DENORM__ = 1
  307. const m___LDBL_HAS_INFINITY__ = 1
  308. const m___LDBL_HAS_QUIET_NAN__ = 1
  309. const m___LDBL_IS_IEC_60559__ = 1
  310. const m___LDBL_MANT_DIG__ = 113
  311. const m___LDBL_MAX_10_EXP__ = 4932
  312. const m___LDBL_MAX_EXP__ = 16384
  313. const m___LDBL_MAX__ = "1.18973149535723176508575932662800702e+4932"
  314. const m___LDBL_MIN__ = 3.36210314311209350626267781732175260e-4932
  315. const m___LDBL_NORM_MAX__ = "1.18973149535723176508575932662800702e+4932"
  316. const m___LFRACT_EPSILON__ = "0x1P-31LR"
  317. const m___LFRACT_FBIT__ = 31
  318. const m___LFRACT_IBIT__ = 0
  319. const m___LFRACT_MAX__ = "0X7FFFFFFFP-31LR"
  320. const m___LITTLE_ENDIAN = 1234
  321. const m___LLACCUM_EPSILON__ = "0x1P-63LLK"
  322. const m___LLACCUM_FBIT__ = 63
  323. const m___LLACCUM_IBIT__ = 64
  324. const m___LLACCUM_MAX__ = "0X7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFP-63LLK"
  325. const m___LLFRACT_EPSILON__ = "0x1P-63LLR"
  326. const m___LLFRACT_FBIT__ = 63
  327. const m___LLFRACT_IBIT__ = 0
  328. const m___LLFRACT_MAX__ = "0X7FFFFFFFFFFFFFFFP-63LLR"
  329. const m___LONG_LONG_MAX__ = 0x7fffffffffffffff
  330. const m___LONG_LONG_WIDTH__ = 64
  331. const m___LONG_MAX = 0x7fffffffffffffff
  332. const m___LONG_MAX__ = 0x7fffffffffffffff
  333. const m___LONG_WIDTH__ = 64
  334. const m___LP64__ = 1
  335. const m___NO_INLINE__ = 1
  336. const m___ORDER_BIG_ENDIAN__ = 4321
  337. const m___ORDER_LITTLE_ENDIAN__ = 1234
  338. const m___ORDER_PDP_ENDIAN__ = 3412
  339. const m___PDP_ENDIAN = 3412
  340. const m___PRAGMA_REDEFINE_EXTNAME = 1
  341. const m___PRETTY_FUNCTION__ = "__func__"
  342. const m___PTRDIFF_MAX__ = 0x7fffffffffffffff
  343. const m___PTRDIFF_WIDTH__ = 64
  344. const m___QQ_FBIT__ = 7
  345. const m___QQ_IBIT__ = 0
  346. const m___REGISTER_PREFIX__ = "$"
  347. const m___SACCUM_EPSILON__ = "0x1P-7HK"
  348. const m___SACCUM_FBIT__ = 7
  349. const m___SACCUM_IBIT__ = 8
  350. const m___SACCUM_MAX__ = "0X7FFFP-7HK"
  351. const m___SA_FBIT__ = 15
  352. const m___SA_IBIT__ = 16
  353. const m___SCHAR_MAX__ = 0x7f
  354. const m___SCHAR_WIDTH__ = 8
  355. const m___SFRACT_EPSILON__ = "0x1P-7HR"
  356. const m___SFRACT_FBIT__ = 7
  357. const m___SFRACT_IBIT__ = 0
  358. const m___SFRACT_MAX__ = "0X7FP-7HR"
  359. const m___SHRT_MAX__ = 0x7fff
  360. const m___SHRT_WIDTH__ = 16
  361. const m___SIG_ATOMIC_MAX__ = 0x7fffffff
  362. const m___SIG_ATOMIC_TYPE__ = "int"
  363. const m___SIG_ATOMIC_WIDTH__ = 32
  364. const m___SIZEOF_DOUBLE__ = 8
  365. const m___SIZEOF_FLOAT__ = 4
  366. const m___SIZEOF_INT128__ = 16
  367. const m___SIZEOF_INT__ = 4
  368. const m___SIZEOF_LONG_DOUBLE__ = 8
  369. const m___SIZEOF_LONG_LONG__ = 8
  370. const m___SIZEOF_LONG__ = 8
  371. const m___SIZEOF_POINTER__ = 8
  372. const m___SIZEOF_PTRDIFF_T__ = 8
  373. const m___SIZEOF_SHORT__ = 2
  374. const m___SIZEOF_SIZE_T__ = 8
  375. const m___SIZEOF_WCHAR_T__ = 4
  376. const m___SIZEOF_WINT_T__ = 4
  377. const m___SIZE_MAX__ = 0xffffffffffffffff
  378. const m___SIZE_WIDTH__ = 64
  379. const m___SQ_FBIT__ = 31
  380. const m___SQ_IBIT__ = 0
  381. const m___STDC_HOSTED__ = 1
  382. const m___STDC_IEC_559_COMPLEX__ = 1
  383. const m___STDC_IEC_559__ = 1
  384. const m___STDC_IEC_60559_BFP__ = 201404
  385. const m___STDC_IEC_60559_COMPLEX__ = 201404
  386. const m___STDC_ISO_10646__ = 201706
  387. const m___STDC_UTF_16__ = 1
  388. const m___STDC_UTF_32__ = 1
  389. const m___STDC_VERSION__ = 201710
  390. const m___STDC_WANT_IEC_60559_ATTRIBS_EXT__ = 1
  391. const m___STDC_WANT_IEC_60559_BFP_EXT__ = 1
  392. const m___STDC_WANT_IEC_60559_DFP_EXT__ = 1
  393. const m___STDC_WANT_IEC_60559_FUNCS_EXT__ = 1
  394. const m___STDC_WANT_IEC_60559_TYPES_EXT__ = 1
  395. const m___STDC_WANT_LIB_EXT2__ = 1
  396. const m___STDC_WANT_MATH_SPEC_FUNCS__ = 1
  397. const m___STDC__ = 1
  398. const m___TA_FBIT__ = 63
  399. const m___TA_IBIT__ = 64
  400. const m___TQ_FBIT__ = 127
  401. const m___TQ_IBIT__ = 0
  402. const m___UACCUM_EPSILON__ = "0x1P-16UK"
  403. const m___UACCUM_FBIT__ = 16
  404. const m___UACCUM_IBIT__ = 16
  405. const m___UACCUM_MAX__ = "0XFFFFFFFFP-16UK"
  406. const m___UACCUM_MIN__ = "0.0UK"
  407. const m___UDA_FBIT__ = 32
  408. const m___UDA_IBIT__ = 32
  409. const m___UDQ_FBIT__ = 64
  410. const m___UDQ_IBIT__ = 0
  411. const m___UFRACT_EPSILON__ = "0x1P-16UR"
  412. const m___UFRACT_FBIT__ = 16
  413. const m___UFRACT_IBIT__ = 0
  414. const m___UFRACT_MAX__ = "0XFFFFP-16UR"
  415. const m___UFRACT_MIN__ = "0.0UR"
  416. const m___UHA_FBIT__ = 8
  417. const m___UHA_IBIT__ = 8
  418. const m___UHQ_FBIT__ = 16
  419. const m___UHQ_IBIT__ = 0
  420. const m___UINT16_MAX__ = 0xffff
  421. const m___UINT32_MAX__ = 0xffffffff
  422. const m___UINT64_MAX__ = 0xffffffffffffffff
  423. const m___UINT8_MAX__ = 0xff
  424. const m___UINTMAX_MAX__ = 0xffffffffffffffff
  425. const m___UINTPTR_MAX__ = 0xffffffffffffffff
  426. const m___UINT_FAST16_MAX__ = 0xffffffffffffffff
  427. const m___UINT_FAST32_MAX__ = 0xffffffffffffffff
  428. const m___UINT_FAST64_MAX__ = 0xffffffffffffffff
  429. const m___UINT_FAST8_MAX__ = 0xff
  430. const m___UINT_LEAST16_MAX__ = 0xffff
  431. const m___UINT_LEAST32_MAX__ = 0xffffffff
  432. const m___UINT_LEAST64_MAX__ = 0xffffffffffffffff
  433. const m___UINT_LEAST8_MAX__ = 0xff
  434. const m___ULACCUM_EPSILON__ = "0x1P-32ULK"
  435. const m___ULACCUM_FBIT__ = 32
  436. const m___ULACCUM_IBIT__ = 32
  437. const m___ULACCUM_MAX__ = "0XFFFFFFFFFFFFFFFFP-32ULK"
  438. const m___ULACCUM_MIN__ = "0.0ULK"
  439. const m___ULFRACT_EPSILON__ = "0x1P-32ULR"
  440. const m___ULFRACT_FBIT__ = 32
  441. const m___ULFRACT_IBIT__ = 0
  442. const m___ULFRACT_MAX__ = "0XFFFFFFFFP-32ULR"
  443. const m___ULFRACT_MIN__ = "0.0ULR"
  444. const m___ULLACCUM_EPSILON__ = "0x1P-64ULLK"
  445. const m___ULLACCUM_FBIT__ = 64
  446. const m___ULLACCUM_IBIT__ = 64
  447. const m___ULLACCUM_MAX__ = "0XFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFP-64ULLK"
  448. const m___ULLACCUM_MIN__ = "0.0ULLK"
  449. const m___ULLFRACT_EPSILON__ = "0x1P-64ULLR"
  450. const m___ULLFRACT_FBIT__ = 64
  451. const m___ULLFRACT_IBIT__ = 0
  452. const m___ULLFRACT_MAX__ = "0XFFFFFFFFFFFFFFFFP-64ULLR"
  453. const m___ULLFRACT_MIN__ = "0.0ULLR"
  454. const m___UQQ_FBIT__ = 8
  455. const m___UQQ_IBIT__ = 0
  456. const m___USACCUM_EPSILON__ = "0x1P-8UHK"
  457. const m___USACCUM_FBIT__ = 8
  458. const m___USACCUM_IBIT__ = 8
  459. const m___USACCUM_MAX__ = "0XFFFFP-8UHK"
  460. const m___USACCUM_MIN__ = "0.0UHK"
  461. const m___USA_FBIT__ = 16
  462. const m___USA_IBIT__ = 16
  463. const m___USE_TIME_BITS64 = 1
  464. const m___USFRACT_EPSILON__ = "0x1P-8UHR"
  465. const m___USFRACT_FBIT__ = 8
  466. const m___USFRACT_IBIT__ = 0
  467. const m___USFRACT_MAX__ = "0XFFP-8UHR"
  468. const m___USFRACT_MIN__ = "0.0UHR"
  469. const m___USQ_FBIT__ = 32
  470. const m___USQ_IBIT__ = 0
  471. const m___UTA_FBIT__ = 64
  472. const m___UTA_IBIT__ = 64
  473. const m___UTQ_FBIT__ = 128
  474. const m___UTQ_IBIT__ = 0
  475. const m___VERSION__ = "14.2.1 20241104 (Red Hat 14.2.1-6)"
  476. const m___WCHAR_MAX__ = 0x7fffffff
  477. const m___WCHAR_TYPE__ = "int"
  478. const m___WCHAR_WIDTH__ = 32
  479. const m___WINT_MAX__ = 0xffffffff
  480. const m___WINT_MIN__ = 0
  481. const m___WINT_WIDTH__ = 32
  482. const m___builtin_copysignq = "__builtin_copysignf128"
  483. const m___builtin_fabsq = "__builtin_fabsf128"
  484. const m___builtin_huge_valq = "__builtin_huge_valf128"
  485. const m___builtin_infq = "__builtin_inff128"
  486. const m___builtin_nanq = "__builtin_nanf128"
  487. const m___builtin_nansq = "__builtin_nansf128"
  488. const m___gnu_linux__ = 1
  489. const m___inline = "inline"
  490. const m___linux = 1
  491. const m___linux__ = 1
  492. const m___loongarch64 = 1
  493. const m___loongarch__ = 1
  494. const m___loongarch_arch = "la64v1.0"
  495. const m___loongarch_double_float = 1
  496. const m___loongarch_frlen = 64
  497. const m___loongarch_grlen = 64
  498. const m___loongarch_hard_float = 1
  499. const m___loongarch_lp64 = 1
  500. const m___loongarch_simd = 1
  501. const m___loongarch_simd_width = 128
  502. const m___loongarch_sx = 1
  503. const m___loongarch_tune = "generic"
  504. const m___loongarch_version_major = 1
  505. const m___loongarch_version_minor = 0
  506. const m___restrict = "restrict"
  507. const m___restrict_arr = "restrict"
  508. const m___unix = 1
  509. const m___unix__ = 1
  510. const m_linux = 1
  511. const m_unix = 1
  512. type t__builtin_va_list = uintptr
  513. type t__predefined_size_t = uint64
  514. type t__predefined_wchar_t = int32
  515. type t__predefined_ptrdiff_t = int64
  516. type Tnlink_t = uint32
  517. type Tblksize_t = int32
  518. type Tsize_t = uint64
  519. type Tssize_t = int64
  520. type Tregister_t = int64
  521. type Ttime_t = int64
  522. type Tsuseconds_t = int64
  523. type Tint8_t = int8
  524. type Tint16_t = int16
  525. type Tint32_t = int32
  526. type Tint64_t = int64
  527. type Tu_int64_t = uint64
  528. type Tmode_t = uint32
  529. type Toff_t = int64
  530. type Tino_t = uint64
  531. type Tdev_t = uint64
  532. type Tblkcnt_t = int64
  533. type Tfsblkcnt_t = uint64
  534. type Tfsfilcnt_t = uint64
  535. type Ttimer_t = uintptr
  536. type Tclockid_t = int32
  537. type Tclock_t = int64
  538. type Tpid_t = int32
  539. type Tid_t = uint32
  540. type Tuid_t = uint32
  541. type Tgid_t = uint32
  542. type Tkey_t = int32
  543. type Tuseconds_t = uint32
  544. type Tpthread_t = uintptr
  545. type Tpthread_once_t = int32
  546. type Tpthread_key_t = uint32
  547. type Tpthread_spinlock_t = int32
  548. type Tpthread_mutexattr_t = struct {
  549. F__attr uint32
  550. }
  551. type Tpthread_condattr_t = struct {
  552. F__attr uint32
  553. }
  554. type Tpthread_barrierattr_t = struct {
  555. F__attr uint32
  556. }
  557. type Tpthread_rwlockattr_t = struct {
  558. F__attr [2]uint32
  559. }
  560. type Tpthread_attr_t = struct {
  561. F__u struct {
  562. F__vi [0][14]int32
  563. F__s [0][7]uint64
  564. F__i [14]int32
  565. }
  566. }
  567. type Tpthread_mutex_t = struct {
  568. F__u struct {
  569. F__vi [0][10]int32
  570. F__p [0][5]uintptr
  571. F__i [10]int32
  572. }
  573. }
  574. type Tpthread_cond_t = struct {
  575. F__u struct {
  576. F__vi [0][12]int32
  577. F__p [0][6]uintptr
  578. F__i [12]int32
  579. }
  580. }
  581. type Tpthread_rwlock_t = struct {
  582. F__u struct {
  583. F__vi [0][14]int32
  584. F__p [0][7]uintptr
  585. F__i [14]int32
  586. }
  587. }
  588. type Tpthread_barrier_t = struct {
  589. F__u struct {
  590. F__vi [0][8]int32
  591. F__p [0][4]uintptr
  592. F__i [8]int32
  593. }
  594. }
  595. type Tu_int8_t = uint8
  596. type Tu_int16_t = uint16
  597. type Tu_int32_t = uint32
  598. type Tcaddr_t = uintptr
  599. type Tu_char = uint8
  600. type Tu_short = uint16
  601. type Tushort = uint16
  602. type Tu_int = uint32
  603. type Tuint = uint32
  604. type Tu_long = uint64
  605. type Tulong = uint64
  606. type Tquad_t = int64
  607. type Tu_quad_t = uint64
  608. type Tuint16_t = uint16
  609. type Tuint32_t = uint32
  610. type Tuint64_t = uint64
  611. type Ttimeval = struct {
  612. Ftv_sec Ttime_t
  613. Ftv_usec Tsuseconds_t
  614. }
  615. type Ttimespec = struct {
  616. Ftv_sec Ttime_t
  617. Ftv_nsec int64
  618. }
  619. type Tsigset_t = struct {
  620. F__bits [16]uint64
  621. }
  622. type t__sigset_t = Tsigset_t
  623. type Tfd_mask = uint64
  624. type Tfd_set = struct {
  625. Ffds_bits [16]uint64
  626. }
  627. type Tuintptr_t = uint64
  628. type Tintptr_t = int64
  629. type Tintmax_t = int64
  630. type Tuint8_t = uint8
  631. type Tuintmax_t = uint64
  632. type Tint_fast8_t = int8
  633. type Tint_fast64_t = int64
  634. type Tint_least8_t = int8
  635. type Tint_least16_t = int16
  636. type Tint_least32_t = int32
  637. type Tint_least64_t = int64
  638. type Tuint_fast8_t = uint8
  639. type Tuint_fast64_t = uint64
  640. type Tuint_least8_t = uint8
  641. type Tuint_least16_t = uint16
  642. type Tuint_least32_t = uint32
  643. type Tuint_least64_t = uint64
  644. type Tint_fast16_t = int32
  645. type Tint_fast32_t = int32
  646. type Tuint_fast16_t = uint32
  647. type Tuint_fast32_t = uint32
  648. type TMD2_CTX = struct {
  649. Fi Tuint32_t
  650. FC [16]uint8
  651. FX [48]uint8
  652. }
  653. type TMD2Context = TMD2_CTX
  654. type Tlocale_t = uintptr
  655. // C documentation
  656. //
  657. // /* cut-n-pasted from rfc1319 */
  658. var _S = [256]uint8{
  659. 0: uint8(41),
  660. 1: uint8(46),
  661. 2: uint8(67),
  662. 3: uint8(201),
  663. 4: uint8(162),
  664. 5: uint8(216),
  665. 6: uint8(124),
  666. 7: uint8(1),
  667. 8: uint8(61),
  668. 9: uint8(54),
  669. 10: uint8(84),
  670. 11: uint8(161),
  671. 12: uint8(236),
  672. 13: uint8(240),
  673. 14: uint8(6),
  674. 15: uint8(19),
  675. 16: uint8(98),
  676. 17: uint8(167),
  677. 18: uint8(5),
  678. 19: uint8(243),
  679. 20: uint8(192),
  680. 21: uint8(199),
  681. 22: uint8(115),
  682. 23: uint8(140),
  683. 24: uint8(152),
  684. 25: uint8(147),
  685. 26: uint8(43),
  686. 27: uint8(217),
  687. 28: uint8(188),
  688. 29: uint8(76),
  689. 30: uint8(130),
  690. 31: uint8(202),
  691. 32: uint8(30),
  692. 33: uint8(155),
  693. 34: uint8(87),
  694. 35: uint8(60),
  695. 36: uint8(253),
  696. 37: uint8(212),
  697. 38: uint8(224),
  698. 39: uint8(22),
  699. 40: uint8(103),
  700. 41: uint8(66),
  701. 42: uint8(111),
  702. 43: uint8(24),
  703. 44: uint8(138),
  704. 45: uint8(23),
  705. 46: uint8(229),
  706. 47: uint8(18),
  707. 48: uint8(190),
  708. 49: uint8(78),
  709. 50: uint8(196),
  710. 51: uint8(214),
  711. 52: uint8(218),
  712. 53: uint8(158),
  713. 54: uint8(222),
  714. 55: uint8(73),
  715. 56: uint8(160),
  716. 57: uint8(251),
  717. 58: uint8(245),
  718. 59: uint8(142),
  719. 60: uint8(187),
  720. 61: uint8(47),
  721. 62: uint8(238),
  722. 63: uint8(122),
  723. 64: uint8(169),
  724. 65: uint8(104),
  725. 66: uint8(121),
  726. 67: uint8(145),
  727. 68: uint8(21),
  728. 69: uint8(178),
  729. 70: uint8(7),
  730. 71: uint8(63),
  731. 72: uint8(148),
  732. 73: uint8(194),
  733. 74: uint8(16),
  734. 75: uint8(137),
  735. 76: uint8(11),
  736. 77: uint8(34),
  737. 78: uint8(95),
  738. 79: uint8(33),
  739. 80: uint8(128),
  740. 81: uint8(127),
  741. 82: uint8(93),
  742. 83: uint8(154),
  743. 84: uint8(90),
  744. 85: uint8(144),
  745. 86: uint8(50),
  746. 87: uint8(39),
  747. 88: uint8(53),
  748. 89: uint8(62),
  749. 90: uint8(204),
  750. 91: uint8(231),
  751. 92: uint8(191),
  752. 93: uint8(247),
  753. 94: uint8(151),
  754. 95: uint8(3),
  755. 96: uint8(255),
  756. 97: uint8(25),
  757. 98: uint8(48),
  758. 99: uint8(179),
  759. 100: uint8(72),
  760. 101: uint8(165),
  761. 102: uint8(181),
  762. 103: uint8(209),
  763. 104: uint8(215),
  764. 105: uint8(94),
  765. 106: uint8(146),
  766. 107: uint8(42),
  767. 108: uint8(172),
  768. 109: uint8(86),
  769. 110: uint8(170),
  770. 111: uint8(198),
  771. 112: uint8(79),
  772. 113: uint8(184),
  773. 114: uint8(56),
  774. 115: uint8(210),
  775. 116: uint8(150),
  776. 117: uint8(164),
  777. 118: uint8(125),
  778. 119: uint8(182),
  779. 120: uint8(118),
  780. 121: uint8(252),
  781. 122: uint8(107),
  782. 123: uint8(226),
  783. 124: uint8(156),
  784. 125: uint8(116),
  785. 126: uint8(4),
  786. 127: uint8(241),
  787. 128: uint8(69),
  788. 129: uint8(157),
  789. 130: uint8(112),
  790. 131: uint8(89),
  791. 132: uint8(100),
  792. 133: uint8(113),
  793. 134: uint8(135),
  794. 135: uint8(32),
  795. 136: uint8(134),
  796. 137: uint8(91),
  797. 138: uint8(207),
  798. 139: uint8(101),
  799. 140: uint8(230),
  800. 141: uint8(45),
  801. 142: uint8(168),
  802. 143: uint8(2),
  803. 144: uint8(27),
  804. 145: uint8(96),
  805. 146: uint8(37),
  806. 147: uint8(173),
  807. 148: uint8(174),
  808. 149: uint8(176),
  809. 150: uint8(185),
  810. 151: uint8(246),
  811. 152: uint8(28),
  812. 153: uint8(70),
  813. 154: uint8(97),
  814. 155: uint8(105),
  815. 156: uint8(52),
  816. 157: uint8(64),
  817. 158: uint8(126),
  818. 159: uint8(15),
  819. 160: uint8(85),
  820. 161: uint8(71),
  821. 162: uint8(163),
  822. 163: uint8(35),
  823. 164: uint8(221),
  824. 165: uint8(81),
  825. 166: uint8(175),
  826. 167: uint8(58),
  827. 168: uint8(195),
  828. 169: uint8(92),
  829. 170: uint8(249),
  830. 171: uint8(206),
  831. 172: uint8(186),
  832. 173: uint8(197),
  833. 174: uint8(234),
  834. 175: uint8(38),
  835. 176: uint8(44),
  836. 177: uint8(83),
  837. 178: uint8(13),
  838. 179: uint8(110),
  839. 180: uint8(133),
  840. 181: uint8(40),
  841. 182: uint8(132),
  842. 183: uint8(9),
  843. 184: uint8(211),
  844. 185: uint8(223),
  845. 186: uint8(205),
  846. 187: uint8(244),
  847. 188: uint8(65),
  848. 189: uint8(129),
  849. 190: uint8(77),
  850. 191: uint8(82),
  851. 192: uint8(106),
  852. 193: uint8(220),
  853. 194: uint8(55),
  854. 195: uint8(200),
  855. 196: uint8(108),
  856. 197: uint8(193),
  857. 198: uint8(171),
  858. 199: uint8(250),
  859. 200: uint8(36),
  860. 201: uint8(225),
  861. 202: uint8(123),
  862. 203: uint8(8),
  863. 204: uint8(12),
  864. 205: uint8(189),
  865. 206: uint8(177),
  866. 207: uint8(74),
  867. 208: uint8(120),
  868. 209: uint8(136),
  869. 210: uint8(149),
  870. 211: uint8(139),
  871. 212: uint8(227),
  872. 213: uint8(99),
  873. 214: uint8(232),
  874. 215: uint8(109),
  875. 216: uint8(233),
  876. 217: uint8(203),
  877. 218: uint8(213),
  878. 219: uint8(254),
  879. 220: uint8(59),
  880. 222: uint8(29),
  881. 223: uint8(57),
  882. 224: uint8(242),
  883. 225: uint8(239),
  884. 226: uint8(183),
  885. 227: uint8(14),
  886. 228: uint8(102),
  887. 229: uint8(88),
  888. 230: uint8(208),
  889. 231: uint8(228),
  890. 232: uint8(166),
  891. 233: uint8(119),
  892. 234: uint8(114),
  893. 235: uint8(248),
  894. 236: uint8(235),
  895. 237: uint8(117),
  896. 238: uint8(75),
  897. 239: uint8(10),
  898. 240: uint8(49),
  899. 241: uint8(68),
  900. 242: uint8(80),
  901. 243: uint8(180),
  902. 244: uint8(143),
  903. 245: uint8(237),
  904. 246: uint8(31),
  905. 247: uint8(26),
  906. 248: uint8(219),
  907. 249: uint8(153),
  908. 250: uint8(141),
  909. 251: uint8(51),
  910. 252: uint8(159),
  911. 253: uint8(17),
  912. 254: uint8(131),
  913. 255: uint8(20),
  914. }
  915. // C documentation
  916. //
  917. // /* cut-n-pasted from rfc1319 */
  918. var _pad = [17]uintptr{
  919. 0: __ccgo_ts,
  920. 1: __ccgo_ts + 1,
  921. 2: __ccgo_ts + 3,
  922. 3: __ccgo_ts + 6,
  923. 4: __ccgo_ts + 10,
  924. 5: __ccgo_ts + 15,
  925. 6: __ccgo_ts + 21,
  926. 7: __ccgo_ts + 28,
  927. 8: __ccgo_ts + 36,
  928. 9: __ccgo_ts + 45,
  929. 10: __ccgo_ts + 55,
  930. 11: __ccgo_ts + 66,
  931. 12: __ccgo_ts + 78,
  932. 13: __ccgo_ts + 91,
  933. 14: __ccgo_ts + 105,
  934. 15: __ccgo_ts + 120,
  935. 16: __ccgo_ts + 136,
  936. }
  937. func XMD2Init(tls *libc.TLS, context uintptr) {
  938. (*TMD2_CTX)(unsafe.Pointer(context)).Fi = uint32(16)
  939. libc.Xmemset(tls, context+4, 0, uint64(16))
  940. libc.Xmemset(tls, context+20, 0, uint64(48))
  941. }
  942. func XMD2Update(tls *libc.TLS, context uintptr, input uintptr, inputLen uint32) {
  943. var idx, piece uint32
  944. var p2 uintptr
  945. _, _, _ = idx, piece, p2
  946. idx = uint32(0)
  947. for {
  948. if !(idx < inputLen) {
  949. break
  950. }
  951. piece = uint32(32) - (*TMD2_CTX)(unsafe.Pointer(context)).Fi
  952. if inputLen-idx < piece {
  953. piece = inputLen - idx
  954. }
  955. libc.Xmemcpy(tls, context+20+uintptr((*TMD2_CTX)(unsafe.Pointer(context)).Fi), input+uintptr(idx), uint64(piece))
  956. p2 = context
  957. *(*Tuint32_t)(unsafe.Pointer(p2)) += piece
  958. if *(*Tuint32_t)(unsafe.Pointer(p2)) == uint32(32) {
  959. XMD2Transform(tls, context)
  960. } /* resets i */
  961. goto _1
  962. _1:
  963. ;
  964. idx += piece
  965. }
  966. }
  967. func XMD2Final(tls *libc.TLS, digest uintptr, context uintptr) {
  968. var padlen uint32
  969. _ = padlen
  970. /* padlen should be 1..16 */
  971. padlen = uint32(32) - (*TMD2_CTX)(unsafe.Pointer(context)).Fi
  972. /* add padding */
  973. XMD2Update(tls, context, _pad[padlen], padlen)
  974. /* add checksum */
  975. XMD2Update(tls, context, context+4, libc.Uint32FromInt64(16))
  976. /* copy out final digest */
  977. libc.Xmemcpy(tls, digest, context+20, libc.Uint64FromInt32(16))
  978. /* reset the context */
  979. XMD2Init(tls, context)
  980. }
  981. // C documentation
  982. //
  983. // /*static*/
  984. func XMD2Transform(tls *libc.TLS, context uintptr) {
  985. var j, k, l, t, v4 Tuint32_t
  986. var v6 uint8
  987. var p2 uintptr
  988. _, _, _, _, _, _, _ = j, k, l, t, v4, v6, p2
  989. /* set block "3" and update "checksum" */
  990. l = uint32(*(*uint8)(unsafe.Pointer(context + 4 + 15)))
  991. j = libc.Uint32FromInt32(0)
  992. for {
  993. if !(j < uint32(16)) {
  994. break
  995. }
  996. *(*uint8)(unsafe.Pointer(context + 20 + uintptr(uint32(32)+j))) = libc.Uint8FromInt32(libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(context + 20 + uintptr(j)))) ^ libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(context + 20 + uintptr(uint32(16)+j)))))
  997. p2 = context + 4 + uintptr(j)
  998. *(*uint8)(unsafe.Pointer(p2)) = uint8(int32(*(*uint8)(unsafe.Pointer(p2))) ^ libc.Int32FromUint8(_S[uint32(*(*uint8)(unsafe.Pointer(context + 20 + uintptr(uint32(16)+j))))^l]))
  999. l = uint32(*(*uint8)(unsafe.Pointer(p2)))
  1000. goto _1
  1001. _1:
  1002. ;
  1003. j++
  1004. }
  1005. /* mangle input block */
  1006. v4 = libc.Uint32FromInt32(0)
  1007. j = v4
  1008. t = v4
  1009. for {
  1010. if !(j < uint32(18)) {
  1011. break
  1012. }
  1013. k = uint32(0)
  1014. for {
  1015. if !(k < uint32(48)) {
  1016. break
  1017. }
  1018. v6 = libc.Uint8FromInt32(libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(context + 20 + uintptr(k)))) ^ libc.Int32FromUint8(_S[t]))
  1019. *(*uint8)(unsafe.Pointer(context + 20 + uintptr(k))) = v6
  1020. t = uint32(v6)
  1021. goto _5
  1022. _5:
  1023. ;
  1024. k++
  1025. }
  1026. goto _3
  1027. _3:
  1028. ;
  1029. t = (t + j) % uint32(256)
  1030. j++
  1031. }
  1032. /* reset input pointer */
  1033. (*TMD2_CTX)(unsafe.Pointer(context)).Fi = uint32(16)
  1034. }
  1035. const m_MD4_BLOCK_LENGTH = 64
  1036. const m_MD4_DIGEST_LENGTH = 16
  1037. type TMD4_CTX = struct {
  1038. Fstate [4]Tuint32_t
  1039. Fcount Tuint64_t
  1040. Fbuffer [64]Tuint8_t
  1041. }
  1042. type TMD4Context = TMD4_CTX
  1043. var _PADDING = [64]Tuint8_t{
  1044. 0: uint8(0x80),
  1045. }
  1046. // C documentation
  1047. //
  1048. // /*
  1049. // * Start MD4 accumulation.
  1050. // * Set bit count to 0 and buffer to mysterious initialization constants.
  1051. // */
  1052. func XMD4Init(tls *libc.TLS, ctx uintptr) {
  1053. (*TMD4_CTX)(unsafe.Pointer(ctx)).Fcount = uint64(0)
  1054. *(*Tuint32_t)(unsafe.Pointer(ctx)) = uint32(0x67452301)
  1055. *(*Tuint32_t)(unsafe.Pointer(ctx + 1*4)) = uint32(0xefcdab89)
  1056. *(*Tuint32_t)(unsafe.Pointer(ctx + 2*4)) = uint32(0x98badcfe)
  1057. *(*Tuint32_t)(unsafe.Pointer(ctx + 3*4)) = uint32(0x10325476)
  1058. }
  1059. // C documentation
  1060. //
  1061. // /*
  1062. // * Update context to reflect the concatenation of another buffer full
  1063. // * of bytes.
  1064. // */
  1065. func XMD4Update(tls *libc.TLS, ctx uintptr, input uintptr, len1 Tsize_t) {
  1066. var have, need Tsize_t
  1067. _, _ = have, need
  1068. /* Check how many bytes we already have and how many more we need. */
  1069. have = (*TMD4_CTX)(unsafe.Pointer(ctx)).Fcount >> libc.Int32FromInt32(3) & libc.Uint64FromInt32(libc.Int32FromInt32(m_MD4_BLOCK_LENGTH)-libc.Int32FromInt32(1))
  1070. need = uint64(m_MD4_BLOCK_LENGTH) - have
  1071. /* Update bitcount */
  1072. *(*Tuint64_t)(unsafe.Pointer(ctx + 16)) += len1 << int32(3)
  1073. if len1 >= need {
  1074. if have != uint64(0) {
  1075. libc.Xmemcpy(tls, ctx+24+uintptr(have), input, need)
  1076. XMD4Transform(tls, ctx, ctx+24)
  1077. input += uintptr(need)
  1078. len1 -= need
  1079. have = uint64(0)
  1080. }
  1081. /* Process data in MD4_BLOCK_LENGTH-byte chunks. */
  1082. for len1 >= uint64(m_MD4_BLOCK_LENGTH) {
  1083. XMD4Transform(tls, ctx, input)
  1084. input += uintptr(m_MD4_BLOCK_LENGTH)
  1085. len1 -= uint64(m_MD4_BLOCK_LENGTH)
  1086. }
  1087. }
  1088. /* Handle any remaining bytes of data. */
  1089. if len1 != uint64(0) {
  1090. libc.Xmemcpy(tls, ctx+24+uintptr(have), input, len1)
  1091. }
  1092. }
  1093. // C documentation
  1094. //
  1095. // /*
  1096. // * Pad pad to 64-byte boundary with the bit pattern
  1097. // * 1 0* (64-bit count of bits processed, MSB-first)
  1098. // */
  1099. func XMD4Pad(tls *libc.TLS, ctx uintptr) {
  1100. bp := tls.Alloc(16)
  1101. defer tls.Free(16)
  1102. var padlen Tsize_t
  1103. var _ /* count at bp+0 */ [8]Tuint8_t
  1104. _ = padlen
  1105. /* Convert count to 8 bytes in little endian order. */
  1106. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(7)] = uint8((*TMD4_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(56))
  1107. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(6)] = uint8((*TMD4_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(48))
  1108. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(5)] = uint8((*TMD4_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(40))
  1109. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(4)] = uint8((*TMD4_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(32))
  1110. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(3)] = uint8((*TMD4_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(24))
  1111. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(2)] = uint8((*TMD4_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(16))
  1112. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(1)] = uint8((*TMD4_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(8))
  1113. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[0] = uint8((*TMD4_CTX)(unsafe.Pointer(ctx)).Fcount)
  1114. /* Pad out to 56 mod 64. */
  1115. padlen = uint64(m_MD4_BLOCK_LENGTH) - (*TMD4_CTX)(unsafe.Pointer(ctx)).Fcount>>libc.Int32FromInt32(3)&libc.Uint64FromInt32(libc.Int32FromInt32(m_MD4_BLOCK_LENGTH)-libc.Int32FromInt32(1))
  1116. if padlen < libc.Uint64FromInt32(libc.Int32FromInt32(1)+libc.Int32FromInt32(8)) {
  1117. padlen += uint64(m_MD4_BLOCK_LENGTH)
  1118. }
  1119. XMD4Update(tls, ctx, uintptr(unsafe.Pointer(&_PADDING)), padlen-uint64(8)) /* padlen - 8 <= 64 */
  1120. XMD4Update(tls, ctx, bp, uint64(8))
  1121. }
  1122. // C documentation
  1123. //
  1124. // /*
  1125. // * Final wrapup--call MD4Pad, fill in digest and zero out ctx.
  1126. // */
  1127. func XMD4Final(tls *libc.TLS, digest uintptr, ctx uintptr) {
  1128. var i int32
  1129. _ = i
  1130. XMD4Pad(tls, ctx)
  1131. i = 0
  1132. for {
  1133. if !(i < int32(4)) {
  1134. break
  1135. }
  1136. *(*uint8)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(4)) + 3)) = uint8(*(*Tuint32_t)(unsafe.Pointer(ctx + uintptr(i)*4)) >> int32(24))
  1137. *(*uint8)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(4)) + 2)) = uint8(*(*Tuint32_t)(unsafe.Pointer(ctx + uintptr(i)*4)) >> int32(16))
  1138. *(*uint8)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(4)) + 1)) = uint8(*(*Tuint32_t)(unsafe.Pointer(ctx + uintptr(i)*4)) >> int32(8))
  1139. *(*uint8)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(4)))) = uint8(*(*Tuint32_t)(unsafe.Pointer(ctx + uintptr(i)*4)))
  1140. goto _1
  1141. _1:
  1142. ;
  1143. i++
  1144. }
  1145. libc.Xmemset(tls, ctx, 0, uint64(88))
  1146. }
  1147. /* The three core functions - F1 is optimized somewhat */
  1148. /* #define F1(x, y, z) (x & y | ~x & z) */
  1149. /* This is the central step in the MD4 algorithm. */
  1150. // C documentation
  1151. //
  1152. // /*
  1153. // * The core of the MD4 algorithm, this alters an existing MD4 hash to
  1154. // * reflect the addition of 16 longwords of new data. MD4Update blocks
  1155. // * the data and converts bytes into longwords for this routine.
  1156. // */
  1157. func XMD4Transform(tls *libc.TLS, state uintptr, block uintptr) {
  1158. bp := tls.Alloc(64)
  1159. defer tls.Free(64)
  1160. var a, b, c, d Tuint32_t
  1161. var _ /* in at bp+0 */ [16]Tuint32_t
  1162. _, _, _, _ = a, b, c, d
  1163. libc.Xmemcpy(tls, bp, block, uint64(64))
  1164. a = *(*Tuint32_t)(unsafe.Pointer(state))
  1165. b = *(*Tuint32_t)(unsafe.Pointer(state + 1*4))
  1166. c = *(*Tuint32_t)(unsafe.Pointer(state + 2*4))
  1167. d = *(*Tuint32_t)(unsafe.Pointer(state + 3*4))
  1168. a += d ^ b&(c^d) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[0]
  1169. a = a<<libc.Int32FromInt32(3) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(3))
  1170. d += c ^ a&(b^c) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(1)]
  1171. d = d<<libc.Int32FromInt32(7) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(7))
  1172. c += b ^ d&(a^b) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(2)]
  1173. c = c<<libc.Int32FromInt32(11) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11))
  1174. b += a ^ c&(d^a) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(3)]
  1175. b = b<<libc.Int32FromInt32(19) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(19))
  1176. a += d ^ b&(c^d) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(4)]
  1177. a = a<<libc.Int32FromInt32(3) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(3))
  1178. d += c ^ a&(b^c) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(5)]
  1179. d = d<<libc.Int32FromInt32(7) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(7))
  1180. c += b ^ d&(a^b) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(6)]
  1181. c = c<<libc.Int32FromInt32(11) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11))
  1182. b += a ^ c&(d^a) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(7)]
  1183. b = b<<libc.Int32FromInt32(19) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(19))
  1184. a += d ^ b&(c^d) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(8)]
  1185. a = a<<libc.Int32FromInt32(3) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(3))
  1186. d += c ^ a&(b^c) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(9)]
  1187. d = d<<libc.Int32FromInt32(7) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(7))
  1188. c += b ^ d&(a^b) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(10)]
  1189. c = c<<libc.Int32FromInt32(11) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11))
  1190. b += a ^ c&(d^a) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(11)]
  1191. b = b<<libc.Int32FromInt32(19) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(19))
  1192. a += d ^ b&(c^d) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(12)]
  1193. a = a<<libc.Int32FromInt32(3) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(3))
  1194. d += c ^ a&(b^c) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(13)]
  1195. d = d<<libc.Int32FromInt32(7) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(7))
  1196. c += b ^ d&(a^b) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(14)]
  1197. c = c<<libc.Int32FromInt32(11) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11))
  1198. b += a ^ c&(d^a) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(15)]
  1199. b = b<<libc.Int32FromInt32(19) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(19))
  1200. a += b&c | b&d | c&d + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[0] + uint32(0x5a827999)
  1201. a = a<<libc.Int32FromInt32(3) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(3))
  1202. d += a&b | a&c | b&c + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(4)] + uint32(0x5a827999)
  1203. d = d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5))
  1204. c += d&a | d&b | a&b + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(8)] + uint32(0x5a827999)
  1205. c = c<<libc.Int32FromInt32(9) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9))
  1206. b += c&d | c&a | d&a + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(12)] + uint32(0x5a827999)
  1207. b = b<<libc.Int32FromInt32(13) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(13))
  1208. a += b&c | b&d | c&d + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(1)] + uint32(0x5a827999)
  1209. a = a<<libc.Int32FromInt32(3) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(3))
  1210. d += a&b | a&c | b&c + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(5)] + uint32(0x5a827999)
  1211. d = d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5))
  1212. c += d&a | d&b | a&b + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(9)] + uint32(0x5a827999)
  1213. c = c<<libc.Int32FromInt32(9) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9))
  1214. b += c&d | c&a | d&a + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(13)] + uint32(0x5a827999)
  1215. b = b<<libc.Int32FromInt32(13) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(13))
  1216. a += b&c | b&d | c&d + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(2)] + uint32(0x5a827999)
  1217. a = a<<libc.Int32FromInt32(3) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(3))
  1218. d += a&b | a&c | b&c + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(6)] + uint32(0x5a827999)
  1219. d = d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5))
  1220. c += d&a | d&b | a&b + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(10)] + uint32(0x5a827999)
  1221. c = c<<libc.Int32FromInt32(9) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9))
  1222. b += c&d | c&a | d&a + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(14)] + uint32(0x5a827999)
  1223. b = b<<libc.Int32FromInt32(13) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(13))
  1224. a += b&c | b&d | c&d + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(3)] + uint32(0x5a827999)
  1225. a = a<<libc.Int32FromInt32(3) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(3))
  1226. d += a&b | a&c | b&c + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(7)] + uint32(0x5a827999)
  1227. d = d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5))
  1228. c += d&a | d&b | a&b + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(11)] + uint32(0x5a827999)
  1229. c = c<<libc.Int32FromInt32(9) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9))
  1230. b += c&d | c&a | d&a + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(15)] + uint32(0x5a827999)
  1231. b = b<<libc.Int32FromInt32(13) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(13))
  1232. a += b ^ c ^ d + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[0] + uint32(0x6ed9eba1)
  1233. a = a<<libc.Int32FromInt32(3) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(3))
  1234. d += a ^ b ^ c + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(8)] + uint32(0x6ed9eba1)
  1235. d = d<<libc.Int32FromInt32(9) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9))
  1236. c += d ^ a ^ b + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(4)] + uint32(0x6ed9eba1)
  1237. c = c<<libc.Int32FromInt32(11) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11))
  1238. b += c ^ d ^ a + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(12)] + uint32(0x6ed9eba1)
  1239. b = b<<libc.Int32FromInt32(15) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(15))
  1240. a += b ^ c ^ d + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(2)] + uint32(0x6ed9eba1)
  1241. a = a<<libc.Int32FromInt32(3) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(3))
  1242. d += a ^ b ^ c + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(10)] + uint32(0x6ed9eba1)
  1243. d = d<<libc.Int32FromInt32(9) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9))
  1244. c += d ^ a ^ b + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(6)] + uint32(0x6ed9eba1)
  1245. c = c<<libc.Int32FromInt32(11) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11))
  1246. b += c ^ d ^ a + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(14)] + uint32(0x6ed9eba1)
  1247. b = b<<libc.Int32FromInt32(15) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(15))
  1248. a += b ^ c ^ d + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(1)] + uint32(0x6ed9eba1)
  1249. a = a<<libc.Int32FromInt32(3) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(3))
  1250. d += a ^ b ^ c + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(9)] + uint32(0x6ed9eba1)
  1251. d = d<<libc.Int32FromInt32(9) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9))
  1252. c += d ^ a ^ b + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(5)] + uint32(0x6ed9eba1)
  1253. c = c<<libc.Int32FromInt32(11) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11))
  1254. b += c ^ d ^ a + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(13)] + uint32(0x6ed9eba1)
  1255. b = b<<libc.Int32FromInt32(15) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(15))
  1256. a += b ^ c ^ d + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(3)] + uint32(0x6ed9eba1)
  1257. a = a<<libc.Int32FromInt32(3) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(3))
  1258. d += a ^ b ^ c + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(11)] + uint32(0x6ed9eba1)
  1259. d = d<<libc.Int32FromInt32(9) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9))
  1260. c += d ^ a ^ b + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(7)] + uint32(0x6ed9eba1)
  1261. c = c<<libc.Int32FromInt32(11) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11))
  1262. b += c ^ d ^ a + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(15)] + uint32(0x6ed9eba1)
  1263. b = b<<libc.Int32FromInt32(15) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(15))
  1264. *(*Tuint32_t)(unsafe.Pointer(state)) += a
  1265. *(*Tuint32_t)(unsafe.Pointer(state + 1*4)) += b
  1266. *(*Tuint32_t)(unsafe.Pointer(state + 2*4)) += c
  1267. *(*Tuint32_t)(unsafe.Pointer(state + 3*4)) += d
  1268. }
  1269. const m_MD5_BLOCK_LENGTH = 64
  1270. const m_MD5_DIGEST_LENGTH = 16
  1271. type TMD5_CTX = struct {
  1272. Fstate [4]Tuint32_t
  1273. Fcount Tuint64_t
  1274. Fbuffer [64]Tuint8_t
  1275. }
  1276. type TMD5Context = TMD5_CTX
  1277. /* Avoid polluting the namespace. Even though this makes this usage
  1278. * implementation-specific, defining it unconditionally should not be
  1279. * a problem, and better than possibly breaking unexpecting code. */
  1280. var _PADDING1 = [64]Tuint8_t{
  1281. 0: uint8(0x80),
  1282. }
  1283. // C documentation
  1284. //
  1285. // /*
  1286. // * Start MD5 accumulation. Set bit count to 0 and buffer to mysterious
  1287. // * initialization constants.
  1288. // */
  1289. func XMD5Init(tls *libc.TLS, ctx uintptr) {
  1290. (*TMD5_CTX)(unsafe.Pointer(ctx)).Fcount = uint64(0)
  1291. *(*Tuint32_t)(unsafe.Pointer(ctx)) = uint32(0x67452301)
  1292. *(*Tuint32_t)(unsafe.Pointer(ctx + 1*4)) = uint32(0xefcdab89)
  1293. *(*Tuint32_t)(unsafe.Pointer(ctx + 2*4)) = uint32(0x98badcfe)
  1294. *(*Tuint32_t)(unsafe.Pointer(ctx + 3*4)) = uint32(0x10325476)
  1295. }
  1296. // C documentation
  1297. //
  1298. // /*
  1299. // * Update context to reflect the concatenation of another buffer full
  1300. // * of bytes.
  1301. // */
  1302. func XMD5Update(tls *libc.TLS, ctx uintptr, input uintptr, len1 Tsize_t) {
  1303. var have, need Tsize_t
  1304. _, _ = have, need
  1305. /* Check how many bytes we already have and how many more we need. */
  1306. have = (*TMD5_CTX)(unsafe.Pointer(ctx)).Fcount >> libc.Int32FromInt32(3) & libc.Uint64FromInt32(libc.Int32FromInt32(m_MD5_BLOCK_LENGTH)-libc.Int32FromInt32(1))
  1307. need = uint64(m_MD5_BLOCK_LENGTH) - have
  1308. /* Update bitcount */
  1309. *(*Tuint64_t)(unsafe.Pointer(ctx + 16)) += len1 << int32(3)
  1310. if len1 >= need {
  1311. if have != uint64(0) {
  1312. libc.Xmemcpy(tls, ctx+24+uintptr(have), input, need)
  1313. XMD5Transform(tls, ctx, ctx+24)
  1314. input += uintptr(need)
  1315. len1 -= need
  1316. have = uint64(0)
  1317. }
  1318. /* Process data in MD5_BLOCK_LENGTH-byte chunks. */
  1319. for len1 >= uint64(m_MD5_BLOCK_LENGTH) {
  1320. XMD5Transform(tls, ctx, input)
  1321. input += uintptr(m_MD5_BLOCK_LENGTH)
  1322. len1 -= uint64(m_MD5_BLOCK_LENGTH)
  1323. }
  1324. }
  1325. /* Handle any remaining bytes of data. */
  1326. if len1 != uint64(0) {
  1327. libc.Xmemcpy(tls, ctx+24+uintptr(have), input, len1)
  1328. }
  1329. }
  1330. // C documentation
  1331. //
  1332. // /*
  1333. // * Pad pad to 64-byte boundary with the bit pattern
  1334. // * 1 0* (64-bit count of bits processed, MSB-first)
  1335. // */
  1336. func XMD5Pad(tls *libc.TLS, ctx uintptr) {
  1337. bp := tls.Alloc(16)
  1338. defer tls.Free(16)
  1339. var padlen Tsize_t
  1340. var _ /* count at bp+0 */ [8]Tuint8_t
  1341. _ = padlen
  1342. /* Convert count to 8 bytes in little endian order. */
  1343. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(7)] = uint8((*TMD5_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(56))
  1344. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(6)] = uint8((*TMD5_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(48))
  1345. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(5)] = uint8((*TMD5_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(40))
  1346. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(4)] = uint8((*TMD5_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(32))
  1347. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(3)] = uint8((*TMD5_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(24))
  1348. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(2)] = uint8((*TMD5_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(16))
  1349. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(1)] = uint8((*TMD5_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(8))
  1350. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[0] = uint8((*TMD5_CTX)(unsafe.Pointer(ctx)).Fcount)
  1351. /* Pad out to 56 mod 64. */
  1352. padlen = uint64(m_MD5_BLOCK_LENGTH) - (*TMD5_CTX)(unsafe.Pointer(ctx)).Fcount>>libc.Int32FromInt32(3)&libc.Uint64FromInt32(libc.Int32FromInt32(m_MD5_BLOCK_LENGTH)-libc.Int32FromInt32(1))
  1353. if padlen < libc.Uint64FromInt32(libc.Int32FromInt32(1)+libc.Int32FromInt32(8)) {
  1354. padlen += uint64(m_MD5_BLOCK_LENGTH)
  1355. }
  1356. XMD5Update(tls, ctx, uintptr(unsafe.Pointer(&_PADDING1)), padlen-uint64(8)) /* padlen - 8 <= 64 */
  1357. XMD5Update(tls, ctx, bp, uint64(8))
  1358. }
  1359. // C documentation
  1360. //
  1361. // /*
  1362. // * Final wrapup--call MD5Pad, fill in digest and zero out ctx.
  1363. // */
  1364. func XMD5Final(tls *libc.TLS, digest uintptr, ctx uintptr) {
  1365. var i int32
  1366. _ = i
  1367. XMD5Pad(tls, ctx)
  1368. i = 0
  1369. for {
  1370. if !(i < int32(4)) {
  1371. break
  1372. }
  1373. *(*uint8)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(4)) + 3)) = uint8(*(*Tuint32_t)(unsafe.Pointer(ctx + uintptr(i)*4)) >> int32(24))
  1374. *(*uint8)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(4)) + 2)) = uint8(*(*Tuint32_t)(unsafe.Pointer(ctx + uintptr(i)*4)) >> int32(16))
  1375. *(*uint8)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(4)) + 1)) = uint8(*(*Tuint32_t)(unsafe.Pointer(ctx + uintptr(i)*4)) >> int32(8))
  1376. *(*uint8)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(4)))) = uint8(*(*Tuint32_t)(unsafe.Pointer(ctx + uintptr(i)*4)))
  1377. goto _1
  1378. _1:
  1379. ;
  1380. i++
  1381. }
  1382. libc.Xmemset(tls, ctx, 0, uint64(88))
  1383. }
  1384. /* The four core functions - F1 is optimized somewhat */
  1385. /* #define F1(x, y, z) (x & y | ~x & z) */
  1386. /* This is the central step in the MD5 algorithm. */
  1387. // C documentation
  1388. //
  1389. // /*
  1390. // * The core of the MD5 algorithm, this alters an existing MD5 hash to
  1391. // * reflect the addition of 16 longwords of new data. MD5Update blocks
  1392. // * the data and converts bytes into longwords for this routine.
  1393. // */
  1394. func XMD5Transform(tls *libc.TLS, state uintptr, block uintptr) {
  1395. bp := tls.Alloc(64)
  1396. defer tls.Free(64)
  1397. var a, b, c, d Tuint32_t
  1398. var _ /* in at bp+0 */ [16]Tuint32_t
  1399. _, _, _, _ = a, b, c, d
  1400. libc.Xmemcpy(tls, bp, block, uint64(64))
  1401. a = *(*Tuint32_t)(unsafe.Pointer(state))
  1402. b = *(*Tuint32_t)(unsafe.Pointer(state + 1*4))
  1403. c = *(*Tuint32_t)(unsafe.Pointer(state + 2*4))
  1404. d = *(*Tuint32_t)(unsafe.Pointer(state + 3*4))
  1405. a += d ^ b&(c^d) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[0] + uint32(0xd76aa478)
  1406. a = a<<int32(7) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(7))
  1407. a += b
  1408. d += c ^ a&(b^c) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(1)] + uint32(0xe8c7b756)
  1409. d = d<<int32(12) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(12))
  1410. d += a
  1411. c += b ^ d&(a^b) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(2)] + uint32(0x242070db)
  1412. c = c<<int32(17) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(17))
  1413. c += d
  1414. b += a ^ c&(d^a) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(3)] + uint32(0xc1bdceee)
  1415. b = b<<int32(22) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(22))
  1416. b += c
  1417. a += d ^ b&(c^d) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(4)] + uint32(0xf57c0faf)
  1418. a = a<<int32(7) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(7))
  1419. a += b
  1420. d += c ^ a&(b^c) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(5)] + uint32(0x4787c62a)
  1421. d = d<<int32(12) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(12))
  1422. d += a
  1423. c += b ^ d&(a^b) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(6)] + uint32(0xa8304613)
  1424. c = c<<int32(17) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(17))
  1425. c += d
  1426. b += a ^ c&(d^a) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(7)] + uint32(0xfd469501)
  1427. b = b<<int32(22) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(22))
  1428. b += c
  1429. a += d ^ b&(c^d) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(8)] + uint32(0x698098d8)
  1430. a = a<<int32(7) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(7))
  1431. a += b
  1432. d += c ^ a&(b^c) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(9)] + uint32(0x8b44f7af)
  1433. d = d<<int32(12) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(12))
  1434. d += a
  1435. c += b ^ d&(a^b) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(10)] + uint32(0xffff5bb1)
  1436. c = c<<int32(17) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(17))
  1437. c += d
  1438. b += a ^ c&(d^a) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(11)] + uint32(0x895cd7be)
  1439. b = b<<int32(22) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(22))
  1440. b += c
  1441. a += d ^ b&(c^d) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(12)] + uint32(0x6b901122)
  1442. a = a<<int32(7) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(7))
  1443. a += b
  1444. d += c ^ a&(b^c) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(13)] + uint32(0xfd987193)
  1445. d = d<<int32(12) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(12))
  1446. d += a
  1447. c += b ^ d&(a^b) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(14)] + uint32(0xa679438e)
  1448. c = c<<int32(17) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(17))
  1449. c += d
  1450. b += a ^ c&(d^a) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(15)] + uint32(0x49b40821)
  1451. b = b<<int32(22) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(22))
  1452. b += c
  1453. a += c ^ d&(b^c) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(1)] + uint32(0xf61e2562)
  1454. a = a<<int32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5))
  1455. a += b
  1456. d += b ^ c&(a^b) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(6)] + uint32(0xc040b340)
  1457. d = d<<int32(9) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9))
  1458. d += a
  1459. c += a ^ b&(d^a) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(11)] + uint32(0x265e5a51)
  1460. c = c<<int32(14) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(14))
  1461. c += d
  1462. b += d ^ a&(c^d) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[0] + uint32(0xe9b6c7aa)
  1463. b = b<<int32(20) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(20))
  1464. b += c
  1465. a += c ^ d&(b^c) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(5)] + uint32(0xd62f105d)
  1466. a = a<<int32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5))
  1467. a += b
  1468. d += b ^ c&(a^b) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(10)] + uint32(0x02441453)
  1469. d = d<<int32(9) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9))
  1470. d += a
  1471. c += a ^ b&(d^a) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(15)] + uint32(0xd8a1e681)
  1472. c = c<<int32(14) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(14))
  1473. c += d
  1474. b += d ^ a&(c^d) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(4)] + uint32(0xe7d3fbc8)
  1475. b = b<<int32(20) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(20))
  1476. b += c
  1477. a += c ^ d&(b^c) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(9)] + uint32(0x21e1cde6)
  1478. a = a<<int32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5))
  1479. a += b
  1480. d += b ^ c&(a^b) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(14)] + uint32(0xc33707d6)
  1481. d = d<<int32(9) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9))
  1482. d += a
  1483. c += a ^ b&(d^a) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(3)] + uint32(0xf4d50d87)
  1484. c = c<<int32(14) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(14))
  1485. c += d
  1486. b += d ^ a&(c^d) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(8)] + uint32(0x455a14ed)
  1487. b = b<<int32(20) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(20))
  1488. b += c
  1489. a += c ^ d&(b^c) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(13)] + uint32(0xa9e3e905)
  1490. a = a<<int32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5))
  1491. a += b
  1492. d += b ^ c&(a^b) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(2)] + uint32(0xfcefa3f8)
  1493. d = d<<int32(9) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9))
  1494. d += a
  1495. c += a ^ b&(d^a) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(7)] + uint32(0x676f02d9)
  1496. c = c<<int32(14) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(14))
  1497. c += d
  1498. b += d ^ a&(c^d) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(12)] + uint32(0x8d2a4c8a)
  1499. b = b<<int32(20) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(20))
  1500. b += c
  1501. a += b ^ c ^ d + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(5)] + uint32(0xfffa3942)
  1502. a = a<<int32(4) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(4))
  1503. a += b
  1504. d += a ^ b ^ c + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(8)] + uint32(0x8771f681)
  1505. d = d<<int32(11) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11))
  1506. d += a
  1507. c += d ^ a ^ b + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(11)] + uint32(0x6d9d6122)
  1508. c = c<<int32(16) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(16))
  1509. c += d
  1510. b += c ^ d ^ a + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(14)] + uint32(0xfde5380c)
  1511. b = b<<int32(23) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(23))
  1512. b += c
  1513. a += b ^ c ^ d + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(1)] + uint32(0xa4beea44)
  1514. a = a<<int32(4) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(4))
  1515. a += b
  1516. d += a ^ b ^ c + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(4)] + uint32(0x4bdecfa9)
  1517. d = d<<int32(11) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11))
  1518. d += a
  1519. c += d ^ a ^ b + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(7)] + uint32(0xf6bb4b60)
  1520. c = c<<int32(16) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(16))
  1521. c += d
  1522. b += c ^ d ^ a + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(10)] + uint32(0xbebfbc70)
  1523. b = b<<int32(23) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(23))
  1524. b += c
  1525. a += b ^ c ^ d + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(13)] + uint32(0x289b7ec6)
  1526. a = a<<int32(4) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(4))
  1527. a += b
  1528. d += a ^ b ^ c + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[0] + uint32(0xeaa127fa)
  1529. d = d<<int32(11) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11))
  1530. d += a
  1531. c += d ^ a ^ b + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(3)] + uint32(0xd4ef3085)
  1532. c = c<<int32(16) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(16))
  1533. c += d
  1534. b += c ^ d ^ a + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(6)] + uint32(0x04881d05)
  1535. b = b<<int32(23) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(23))
  1536. b += c
  1537. a += b ^ c ^ d + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(9)] + uint32(0xd9d4d039)
  1538. a = a<<int32(4) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(4))
  1539. a += b
  1540. d += a ^ b ^ c + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(12)] + uint32(0xe6db99e5)
  1541. d = d<<int32(11) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11))
  1542. d += a
  1543. c += d ^ a ^ b + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(15)] + uint32(0x1fa27cf8)
  1544. c = c<<int32(16) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(16))
  1545. c += d
  1546. b += c ^ d ^ a + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(2)] + uint32(0xc4ac5665)
  1547. b = b<<int32(23) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(23))
  1548. b += c
  1549. a += c ^ (b | ^d) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[0] + uint32(0xf4292244)
  1550. a = a<<int32(6) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(6))
  1551. a += b
  1552. d += b ^ (a | ^c) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(7)] + uint32(0x432aff97)
  1553. d = d<<int32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1554. d += a
  1555. c += a ^ (d | ^b) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(14)] + uint32(0xab9423a7)
  1556. c = c<<int32(15) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(15))
  1557. c += d
  1558. b += d ^ (c | ^a) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(5)] + uint32(0xfc93a039)
  1559. b = b<<int32(21) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(21))
  1560. b += c
  1561. a += c ^ (b | ^d) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(12)] + uint32(0x655b59c3)
  1562. a = a<<int32(6) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(6))
  1563. a += b
  1564. d += b ^ (a | ^c) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(3)] + uint32(0x8f0ccc92)
  1565. d = d<<int32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1566. d += a
  1567. c += a ^ (d | ^b) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(10)] + uint32(0xffeff47d)
  1568. c = c<<int32(15) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(15))
  1569. c += d
  1570. b += d ^ (c | ^a) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(1)] + uint32(0x85845dd1)
  1571. b = b<<int32(21) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(21))
  1572. b += c
  1573. a += c ^ (b | ^d) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(8)] + uint32(0x6fa87e4f)
  1574. a = a<<int32(6) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(6))
  1575. a += b
  1576. d += b ^ (a | ^c) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(15)] + uint32(0xfe2ce6e0)
  1577. d = d<<int32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1578. d += a
  1579. c += a ^ (d | ^b) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(6)] + uint32(0xa3014314)
  1580. c = c<<int32(15) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(15))
  1581. c += d
  1582. b += d ^ (c | ^a) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(13)] + uint32(0x4e0811a1)
  1583. b = b<<int32(21) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(21))
  1584. b += c
  1585. a += c ^ (b | ^d) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(4)] + uint32(0xf7537e82)
  1586. a = a<<int32(6) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(6))
  1587. a += b
  1588. d += b ^ (a | ^c) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(11)] + uint32(0xbd3af235)
  1589. d = d<<int32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1590. d += a
  1591. c += a ^ (d | ^b) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(2)] + uint32(0x2ad7d2bb)
  1592. c = c<<int32(15) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(15))
  1593. c += d
  1594. b += d ^ (c | ^a) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(9)] + uint32(0xeb86d391)
  1595. b = b<<int32(21) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(21))
  1596. b += c
  1597. *(*Tuint32_t)(unsafe.Pointer(state)) += a
  1598. *(*Tuint32_t)(unsafe.Pointer(state + 1*4)) += b
  1599. *(*Tuint32_t)(unsafe.Pointer(state + 2*4)) += c
  1600. *(*Tuint32_t)(unsafe.Pointer(state + 3*4)) += d
  1601. }
  1602. const m_H0 = 1732584193
  1603. const m_H1 = 4023233417
  1604. const m_H2 = 2562383102
  1605. const m_H3 = 271733878
  1606. const m_H4 = 3285377520
  1607. const m_K0 = 0
  1608. const m_K1 = 1518500249
  1609. const m_K2 = 1859775393
  1610. const m_K3 = 2400959708
  1611. const m_K4 = 2840853838
  1612. const m_KK0 = 1352829926
  1613. const m_KK1 = 1548603684
  1614. const m_KK2 = 1836072691
  1615. const m_KK3 = 2053994217
  1616. const m_KK4 = 0
  1617. const m_RMD160_BLOCK_LENGTH = 64
  1618. const m_RMD160_DIGEST_LENGTH = 20
  1619. type TRMD160_CTX = struct {
  1620. Fstate [5]Tuint32_t
  1621. Fcount Tuint64_t
  1622. Fbuffer [64]Tuint8_t
  1623. }
  1624. type TRMD160Context = TRMD160_CTX
  1625. /* rotate x left n bits. */
  1626. var _PADDING2 = [64]Tuint8_t{
  1627. 0: uint8(0x80),
  1628. }
  1629. func XRMD160Init(tls *libc.TLS, ctx uintptr) {
  1630. (*TRMD160_CTX)(unsafe.Pointer(ctx)).Fcount = uint64(0)
  1631. *(*Tuint32_t)(unsafe.Pointer(ctx)) = uint32(0x67452301)
  1632. *(*Tuint32_t)(unsafe.Pointer(ctx + 1*4)) = uint32(0xEFCDAB89)
  1633. *(*Tuint32_t)(unsafe.Pointer(ctx + 2*4)) = uint32(0x98BADCFE)
  1634. *(*Tuint32_t)(unsafe.Pointer(ctx + 3*4)) = uint32(0x10325476)
  1635. *(*Tuint32_t)(unsafe.Pointer(ctx + 4*4)) = uint32(0xC3D2E1F0)
  1636. }
  1637. func XRMD160Update(tls *libc.TLS, ctx uintptr, input uintptr, len1 Tsize_t) {
  1638. var have, need, off Tsize_t
  1639. _, _, _ = have, need, off
  1640. have = (*TRMD160_CTX)(unsafe.Pointer(ctx)).Fcount / uint64(8) % uint64(m_RMD160_BLOCK_LENGTH)
  1641. need = uint64(m_RMD160_BLOCK_LENGTH) - have
  1642. *(*Tuint64_t)(unsafe.Pointer(ctx + 24)) += uint64(8) * len1
  1643. off = uint64(0)
  1644. if len1 >= need {
  1645. if have != 0 {
  1646. libc.Xmemcpy(tls, ctx+32+uintptr(have), input, need)
  1647. XRMD160Transform(tls, ctx, ctx+32)
  1648. off = need
  1649. have = uint64(0)
  1650. }
  1651. /* now the buffer is empty */
  1652. for off+uint64(m_RMD160_BLOCK_LENGTH) <= len1 {
  1653. XRMD160Transform(tls, ctx, input+uintptr(off))
  1654. off += uint64(m_RMD160_BLOCK_LENGTH)
  1655. }
  1656. }
  1657. if off < len1 {
  1658. libc.Xmemcpy(tls, ctx+32+uintptr(have), input+uintptr(off), len1-off)
  1659. }
  1660. }
  1661. func XRMD160Pad(tls *libc.TLS, ctx uintptr) {
  1662. bp := tls.Alloc(16)
  1663. defer tls.Free(16)
  1664. var padlen Tsize_t
  1665. var _ /* size at bp+0 */ [8]Tuint8_t
  1666. _ = padlen
  1667. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(7)] = uint8((*TRMD160_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(56))
  1668. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(6)] = uint8((*TRMD160_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(48))
  1669. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(5)] = uint8((*TRMD160_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(40))
  1670. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(4)] = uint8((*TRMD160_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(32))
  1671. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(3)] = uint8((*TRMD160_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(24))
  1672. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(2)] = uint8((*TRMD160_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(16))
  1673. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(1)] = uint8((*TRMD160_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(8))
  1674. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[0] = uint8((*TRMD160_CTX)(unsafe.Pointer(ctx)).Fcount)
  1675. /*
  1676. * pad to RMD160_BLOCK_LENGTH byte blocks, at least one byte from
  1677. * PADDING plus 8 bytes for the size
  1678. */
  1679. padlen = uint64(m_RMD160_BLOCK_LENGTH) - (*TRMD160_CTX)(unsafe.Pointer(ctx)).Fcount/uint64(8)%uint64(m_RMD160_BLOCK_LENGTH)
  1680. if padlen < libc.Uint64FromInt32(libc.Int32FromInt32(1)+libc.Int32FromInt32(8)) {
  1681. padlen += uint64(m_RMD160_BLOCK_LENGTH)
  1682. }
  1683. XRMD160Update(tls, ctx, uintptr(unsafe.Pointer(&_PADDING2)), padlen-uint64(8)) /* padlen - 8 <= 64 */
  1684. XRMD160Update(tls, ctx, bp, uint64(8))
  1685. }
  1686. func XRMD160Final(tls *libc.TLS, digest uintptr, ctx uintptr) {
  1687. var i int32
  1688. _ = i
  1689. XRMD160Pad(tls, ctx)
  1690. i = 0
  1691. for {
  1692. if !(i < int32(5)) {
  1693. break
  1694. }
  1695. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(4)) + 3)) = uint8(*(*Tuint32_t)(unsafe.Pointer(ctx + uintptr(i)*4)) >> int32(24))
  1696. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(4)) + 2)) = uint8(*(*Tuint32_t)(unsafe.Pointer(ctx + uintptr(i)*4)) >> int32(16))
  1697. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(4)) + 1)) = uint8(*(*Tuint32_t)(unsafe.Pointer(ctx + uintptr(i)*4)) >> int32(8))
  1698. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(4)))) = uint8(*(*Tuint32_t)(unsafe.Pointer(ctx + uintptr(i)*4)))
  1699. goto _1
  1700. _1:
  1701. ;
  1702. i++
  1703. }
  1704. libc.Xmemset(tls, ctx, 0, uint64(96))
  1705. }
  1706. func XRMD160Transform(tls *libc.TLS, state uintptr, block uintptr) {
  1707. bp := tls.Alloc(64)
  1708. defer tls.Free(64)
  1709. var a, aa, b, bb, c, cc, d, dd, e, ee, t Tuint32_t
  1710. var _ /* x at bp+0 */ [16]Tuint32_t
  1711. _, _, _, _, _, _, _, _, _, _, _ = a, aa, b, bb, c, cc, d, dd, e, ee, t
  1712. libc.Xmemcpy(tls, bp, block, uint64(m_RMD160_BLOCK_LENGTH))
  1713. a = *(*Tuint32_t)(unsafe.Pointer(state))
  1714. b = *(*Tuint32_t)(unsafe.Pointer(state + 1*4))
  1715. c = *(*Tuint32_t)(unsafe.Pointer(state + 2*4))
  1716. d = *(*Tuint32_t)(unsafe.Pointer(state + 3*4))
  1717. e = *(*Tuint32_t)(unsafe.Pointer(state + 4*4))
  1718. /* Round 1 */
  1719. a = (a+(b^c^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[0]+0x00000000)<<int32(11) | (a+(b^c^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[0]+0x00000000)>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11)) + e
  1720. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1721. e = (e+(a^b^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(1)]+0x00000000)<<int32(14) | (e+(a^b^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(1)]+0x00000000)>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(14)) + d
  1722. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1723. d = (d+(e^a^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(2)]+0x00000000)<<int32(15) | (d+(e^a^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(2)]+0x00000000)>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(15)) + c
  1724. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1725. c = (c+(d^e^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(3)]+0x00000000)<<int32(12) | (c+(d^e^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(3)]+0x00000000)>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(12)) + b
  1726. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1727. b = (b+(c^d^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(4)]+0x00000000)<<int32(5) | (b+(c^d^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(4)]+0x00000000)>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)) + a
  1728. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1729. a = (a+(b^c^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(5)]+0x00000000)<<int32(8) | (a+(b^c^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(5)]+0x00000000)>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(8)) + e
  1730. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1731. e = (e+(a^b^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(6)]+0x00000000)<<int32(7) | (e+(a^b^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(6)]+0x00000000)>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(7)) + d
  1732. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1733. d = (d+(e^a^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(7)]+0x00000000)<<int32(9) | (d+(e^a^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(7)]+0x00000000)>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9)) + c
  1734. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1735. c = (c+(d^e^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(8)]+0x00000000)<<int32(11) | (c+(d^e^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(8)]+0x00000000)>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11)) + b
  1736. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1737. b = (b+(c^d^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(9)]+0x00000000)<<int32(13) | (b+(c^d^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(9)]+0x00000000)>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(13)) + a
  1738. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1739. a = (a+(b^c^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(10)]+0x00000000)<<int32(14) | (a+(b^c^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(10)]+0x00000000)>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(14)) + e
  1740. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1741. e = (e+(a^b^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(11)]+0x00000000)<<int32(15) | (e+(a^b^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(11)]+0x00000000)>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(15)) + d
  1742. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1743. d = (d+(e^a^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(12)]+0x00000000)<<int32(6) | (d+(e^a^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(12)]+0x00000000)>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(6)) + c
  1744. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1745. c = (c+(d^e^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(13)]+0x00000000)<<int32(7) | (c+(d^e^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(13)]+0x00000000)>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(7)) + b
  1746. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1747. b = (b+(c^d^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(14)]+0x00000000)<<int32(9) | (b+(c^d^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(14)]+0x00000000)>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9)) + a
  1748. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1749. a = (a+(b^c^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(15)]+0x00000000)<<int32(8) | (a+(b^c^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(15)]+0x00000000)>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(8)) + e
  1750. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10)) /* #15 */
  1751. /* Round 2 */
  1752. e = (e+(a&b|^a&c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(7)]+uint32(0x5A827999))<<int32(7) | (e+(a&b|^a&c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(7)]+uint32(0x5A827999))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(7)) + d
  1753. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1754. d = (d+(e&a|^e&b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(4)]+uint32(0x5A827999))<<int32(6) | (d+(e&a|^e&b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(4)]+uint32(0x5A827999))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(6)) + c
  1755. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1756. c = (c+(d&e|^d&a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(13)]+uint32(0x5A827999))<<int32(8) | (c+(d&e|^d&a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(13)]+uint32(0x5A827999))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(8)) + b
  1757. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1758. b = (b+(c&d|^c&e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(1)]+uint32(0x5A827999))<<int32(13) | (b+(c&d|^c&e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(1)]+uint32(0x5A827999))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(13)) + a
  1759. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1760. a = (a+(b&c|^b&d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(10)]+uint32(0x5A827999))<<int32(11) | (a+(b&c|^b&d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(10)]+uint32(0x5A827999))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11)) + e
  1761. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1762. e = (e+(a&b|^a&c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(6)]+uint32(0x5A827999))<<int32(9) | (e+(a&b|^a&c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(6)]+uint32(0x5A827999))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9)) + d
  1763. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1764. d = (d+(e&a|^e&b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(15)]+uint32(0x5A827999))<<int32(7) | (d+(e&a|^e&b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(15)]+uint32(0x5A827999))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(7)) + c
  1765. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1766. c = (c+(d&e|^d&a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(3)]+uint32(0x5A827999))<<int32(15) | (c+(d&e|^d&a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(3)]+uint32(0x5A827999))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(15)) + b
  1767. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1768. b = (b+(c&d|^c&e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(12)]+uint32(0x5A827999))<<int32(7) | (b+(c&d|^c&e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(12)]+uint32(0x5A827999))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(7)) + a
  1769. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1770. a = (a+(b&c|^b&d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[0]+uint32(0x5A827999))<<int32(12) | (a+(b&c|^b&d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[0]+uint32(0x5A827999))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(12)) + e
  1771. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1772. e = (e+(a&b|^a&c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(9)]+uint32(0x5A827999))<<int32(15) | (e+(a&b|^a&c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(9)]+uint32(0x5A827999))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(15)) + d
  1773. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1774. d = (d+(e&a|^e&b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(5)]+uint32(0x5A827999))<<int32(9) | (d+(e&a|^e&b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(5)]+uint32(0x5A827999))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9)) + c
  1775. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1776. c = (c+(d&e|^d&a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(2)]+uint32(0x5A827999))<<int32(11) | (c+(d&e|^d&a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(2)]+uint32(0x5A827999))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11)) + b
  1777. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1778. b = (b+(c&d|^c&e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(14)]+uint32(0x5A827999))<<int32(7) | (b+(c&d|^c&e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(14)]+uint32(0x5A827999))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(7)) + a
  1779. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1780. a = (a+(b&c|^b&d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(11)]+uint32(0x5A827999))<<int32(13) | (a+(b&c|^b&d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(11)]+uint32(0x5A827999))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(13)) + e
  1781. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1782. e = (e+(a&b|^a&c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(8)]+uint32(0x5A827999))<<int32(12) | (e+(a&b|^a&c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(8)]+uint32(0x5A827999))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(12)) + d
  1783. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10)) /* #31 */
  1784. /* Round 3 */
  1785. d = (d+(e|^a^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(3)]+uint32(0x6ED9EBA1))<<int32(11) | (d+(e|^a^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(3)]+uint32(0x6ED9EBA1))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11)) + c
  1786. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1787. c = (c+(d|^e^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(10)]+uint32(0x6ED9EBA1))<<int32(13) | (c+(d|^e^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(10)]+uint32(0x6ED9EBA1))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(13)) + b
  1788. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1789. b = (b+(c|^d^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(14)]+uint32(0x6ED9EBA1))<<int32(6) | (b+(c|^d^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(14)]+uint32(0x6ED9EBA1))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(6)) + a
  1790. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1791. a = (a+(b|^c^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(4)]+uint32(0x6ED9EBA1))<<int32(7) | (a+(b|^c^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(4)]+uint32(0x6ED9EBA1))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(7)) + e
  1792. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1793. e = (e+(a|^b^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(9)]+uint32(0x6ED9EBA1))<<int32(14) | (e+(a|^b^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(9)]+uint32(0x6ED9EBA1))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(14)) + d
  1794. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1795. d = (d+(e|^a^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(15)]+uint32(0x6ED9EBA1))<<int32(9) | (d+(e|^a^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(15)]+uint32(0x6ED9EBA1))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9)) + c
  1796. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1797. c = (c+(d|^e^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(8)]+uint32(0x6ED9EBA1))<<int32(13) | (c+(d|^e^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(8)]+uint32(0x6ED9EBA1))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(13)) + b
  1798. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1799. b = (b+(c|^d^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(1)]+uint32(0x6ED9EBA1))<<int32(15) | (b+(c|^d^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(1)]+uint32(0x6ED9EBA1))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(15)) + a
  1800. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1801. a = (a+(b|^c^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(2)]+uint32(0x6ED9EBA1))<<int32(14) | (a+(b|^c^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(2)]+uint32(0x6ED9EBA1))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(14)) + e
  1802. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1803. e = (e+(a|^b^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(7)]+uint32(0x6ED9EBA1))<<int32(8) | (e+(a|^b^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(7)]+uint32(0x6ED9EBA1))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(8)) + d
  1804. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1805. d = (d+(e|^a^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[0]+uint32(0x6ED9EBA1))<<int32(13) | (d+(e|^a^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[0]+uint32(0x6ED9EBA1))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(13)) + c
  1806. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1807. c = (c+(d|^e^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(6)]+uint32(0x6ED9EBA1))<<int32(6) | (c+(d|^e^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(6)]+uint32(0x6ED9EBA1))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(6)) + b
  1808. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1809. b = (b+(c|^d^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(13)]+uint32(0x6ED9EBA1))<<int32(5) | (b+(c|^d^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(13)]+uint32(0x6ED9EBA1))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)) + a
  1810. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1811. a = (a+(b|^c^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(11)]+uint32(0x6ED9EBA1))<<int32(12) | (a+(b|^c^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(11)]+uint32(0x6ED9EBA1))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(12)) + e
  1812. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1813. e = (e+(a|^b^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(5)]+uint32(0x6ED9EBA1))<<int32(7) | (e+(a|^b^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(5)]+uint32(0x6ED9EBA1))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(7)) + d
  1814. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1815. d = (d+(e|^a^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(12)]+uint32(0x6ED9EBA1))<<int32(5) | (d+(e|^a^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(12)]+uint32(0x6ED9EBA1))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)) + c
  1816. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10)) /* #47 */
  1817. /* Round 4 */
  1818. c = (c+(d&a | e & ^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(1)]+uint32(0x8F1BBCDC))<<int32(11) | (c+(d&a | e & ^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(1)]+uint32(0x8F1BBCDC))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11)) + b
  1819. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1820. b = (b+(c&e | d & ^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(9)]+uint32(0x8F1BBCDC))<<int32(12) | (b+(c&e | d & ^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(9)]+uint32(0x8F1BBCDC))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(12)) + a
  1821. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1822. a = (a+(b&d | c & ^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(11)]+uint32(0x8F1BBCDC))<<int32(14) | (a+(b&d | c & ^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(11)]+uint32(0x8F1BBCDC))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(14)) + e
  1823. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1824. e = (e+(a&c | b & ^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(10)]+uint32(0x8F1BBCDC))<<int32(15) | (e+(a&c | b & ^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(10)]+uint32(0x8F1BBCDC))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(15)) + d
  1825. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1826. d = (d+(e&b | a & ^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[0]+uint32(0x8F1BBCDC))<<int32(14) | (d+(e&b | a & ^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[0]+uint32(0x8F1BBCDC))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(14)) + c
  1827. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1828. c = (c+(d&a | e & ^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(8)]+uint32(0x8F1BBCDC))<<int32(15) | (c+(d&a | e & ^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(8)]+uint32(0x8F1BBCDC))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(15)) + b
  1829. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1830. b = (b+(c&e | d & ^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(12)]+uint32(0x8F1BBCDC))<<int32(9) | (b+(c&e | d & ^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(12)]+uint32(0x8F1BBCDC))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9)) + a
  1831. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1832. a = (a+(b&d | c & ^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(4)]+uint32(0x8F1BBCDC))<<int32(8) | (a+(b&d | c & ^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(4)]+uint32(0x8F1BBCDC))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(8)) + e
  1833. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1834. e = (e+(a&c | b & ^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(13)]+uint32(0x8F1BBCDC))<<int32(9) | (e+(a&c | b & ^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(13)]+uint32(0x8F1BBCDC))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9)) + d
  1835. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1836. d = (d+(e&b | a & ^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(3)]+uint32(0x8F1BBCDC))<<int32(14) | (d+(e&b | a & ^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(3)]+uint32(0x8F1BBCDC))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(14)) + c
  1837. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1838. c = (c+(d&a | e & ^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(7)]+uint32(0x8F1BBCDC))<<int32(5) | (c+(d&a | e & ^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(7)]+uint32(0x8F1BBCDC))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)) + b
  1839. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1840. b = (b+(c&e | d & ^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(15)]+uint32(0x8F1BBCDC))<<int32(6) | (b+(c&e | d & ^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(15)]+uint32(0x8F1BBCDC))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(6)) + a
  1841. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1842. a = (a+(b&d | c & ^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(14)]+uint32(0x8F1BBCDC))<<int32(8) | (a+(b&d | c & ^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(14)]+uint32(0x8F1BBCDC))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(8)) + e
  1843. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1844. e = (e+(a&c | b & ^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(5)]+uint32(0x8F1BBCDC))<<int32(6) | (e+(a&c | b & ^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(5)]+uint32(0x8F1BBCDC))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(6)) + d
  1845. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1846. d = (d+(e&b | a & ^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(6)]+uint32(0x8F1BBCDC))<<int32(5) | (d+(e&b | a & ^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(6)]+uint32(0x8F1BBCDC))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)) + c
  1847. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1848. c = (c+(d&a | e & ^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(2)]+uint32(0x8F1BBCDC))<<int32(12) | (c+(d&a | e & ^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(2)]+uint32(0x8F1BBCDC))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(12)) + b
  1849. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10)) /* #63 */
  1850. /* Round 5 */
  1851. b = (b+(c^(d|^e))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(4)]+uint32(0xA953FD4E))<<int32(9) | (b+(c^(d|^e))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(4)]+uint32(0xA953FD4E))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9)) + a
  1852. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1853. a = (a+(b^(c|^d))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[0]+uint32(0xA953FD4E))<<int32(15) | (a+(b^(c|^d))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[0]+uint32(0xA953FD4E))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(15)) + e
  1854. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1855. e = (e+(a^(b|^c))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(5)]+uint32(0xA953FD4E))<<int32(5) | (e+(a^(b|^c))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(5)]+uint32(0xA953FD4E))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)) + d
  1856. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1857. d = (d+(e^(a|^b))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(9)]+uint32(0xA953FD4E))<<int32(11) | (d+(e^(a|^b))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(9)]+uint32(0xA953FD4E))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11)) + c
  1858. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1859. c = (c+(d^(e|^a))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(7)]+uint32(0xA953FD4E))<<int32(6) | (c+(d^(e|^a))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(7)]+uint32(0xA953FD4E))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(6)) + b
  1860. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1861. b = (b+(c^(d|^e))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(12)]+uint32(0xA953FD4E))<<int32(8) | (b+(c^(d|^e))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(12)]+uint32(0xA953FD4E))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(8)) + a
  1862. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1863. a = (a+(b^(c|^d))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(2)]+uint32(0xA953FD4E))<<int32(13) | (a+(b^(c|^d))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(2)]+uint32(0xA953FD4E))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(13)) + e
  1864. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1865. e = (e+(a^(b|^c))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(10)]+uint32(0xA953FD4E))<<int32(12) | (e+(a^(b|^c))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(10)]+uint32(0xA953FD4E))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(12)) + d
  1866. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1867. d = (d+(e^(a|^b))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(14)]+uint32(0xA953FD4E))<<int32(5) | (d+(e^(a|^b))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(14)]+uint32(0xA953FD4E))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)) + c
  1868. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1869. c = (c+(d^(e|^a))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(1)]+uint32(0xA953FD4E))<<int32(12) | (c+(d^(e|^a))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(1)]+uint32(0xA953FD4E))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(12)) + b
  1870. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1871. b = (b+(c^(d|^e))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(3)]+uint32(0xA953FD4E))<<int32(13) | (b+(c^(d|^e))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(3)]+uint32(0xA953FD4E))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(13)) + a
  1872. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1873. a = (a+(b^(c|^d))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(8)]+uint32(0xA953FD4E))<<int32(14) | (a+(b^(c|^d))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(8)]+uint32(0xA953FD4E))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(14)) + e
  1874. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1875. e = (e+(a^(b|^c))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(11)]+uint32(0xA953FD4E))<<int32(11) | (e+(a^(b|^c))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(11)]+uint32(0xA953FD4E))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11)) + d
  1876. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1877. d = (d+(e^(a|^b))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(6)]+uint32(0xA953FD4E))<<int32(8) | (d+(e^(a|^b))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(6)]+uint32(0xA953FD4E))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(8)) + c
  1878. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1879. c = (c+(d^(e|^a))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(15)]+uint32(0xA953FD4E))<<int32(5) | (c+(d^(e|^a))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(15)]+uint32(0xA953FD4E))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)) + b
  1880. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1881. b = (b+(c^(d|^e))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(13)]+uint32(0xA953FD4E))<<int32(6) | (b+(c^(d|^e))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(13)]+uint32(0xA953FD4E))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(6)) + a
  1882. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10)) /* #79 */
  1883. aa = a
  1884. bb = b
  1885. cc = c
  1886. dd = d
  1887. ee = e
  1888. a = *(*Tuint32_t)(unsafe.Pointer(state))
  1889. b = *(*Tuint32_t)(unsafe.Pointer(state + 1*4))
  1890. c = *(*Tuint32_t)(unsafe.Pointer(state + 2*4))
  1891. d = *(*Tuint32_t)(unsafe.Pointer(state + 3*4))
  1892. e = *(*Tuint32_t)(unsafe.Pointer(state + 4*4))
  1893. /* Parallel round 1 */
  1894. a = (a+(b^(c|^d))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(5)]+uint32(0x50A28BE6))<<int32(8) | (a+(b^(c|^d))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(5)]+uint32(0x50A28BE6))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(8)) + e
  1895. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1896. e = (e+(a^(b|^c))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(14)]+uint32(0x50A28BE6))<<int32(9) | (e+(a^(b|^c))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(14)]+uint32(0x50A28BE6))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9)) + d
  1897. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1898. d = (d+(e^(a|^b))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(7)]+uint32(0x50A28BE6))<<int32(9) | (d+(e^(a|^b))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(7)]+uint32(0x50A28BE6))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9)) + c
  1899. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1900. c = (c+(d^(e|^a))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[0]+uint32(0x50A28BE6))<<int32(11) | (c+(d^(e|^a))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[0]+uint32(0x50A28BE6))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11)) + b
  1901. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1902. b = (b+(c^(d|^e))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(9)]+uint32(0x50A28BE6))<<int32(13) | (b+(c^(d|^e))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(9)]+uint32(0x50A28BE6))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(13)) + a
  1903. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1904. a = (a+(b^(c|^d))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(2)]+uint32(0x50A28BE6))<<int32(15) | (a+(b^(c|^d))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(2)]+uint32(0x50A28BE6))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(15)) + e
  1905. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1906. e = (e+(a^(b|^c))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(11)]+uint32(0x50A28BE6))<<int32(15) | (e+(a^(b|^c))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(11)]+uint32(0x50A28BE6))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(15)) + d
  1907. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1908. d = (d+(e^(a|^b))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(4)]+uint32(0x50A28BE6))<<int32(5) | (d+(e^(a|^b))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(4)]+uint32(0x50A28BE6))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)) + c
  1909. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1910. c = (c+(d^(e|^a))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(13)]+uint32(0x50A28BE6))<<int32(7) | (c+(d^(e|^a))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(13)]+uint32(0x50A28BE6))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(7)) + b
  1911. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1912. b = (b+(c^(d|^e))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(6)]+uint32(0x50A28BE6))<<int32(7) | (b+(c^(d|^e))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(6)]+uint32(0x50A28BE6))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(7)) + a
  1913. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1914. a = (a+(b^(c|^d))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(15)]+uint32(0x50A28BE6))<<int32(8) | (a+(b^(c|^d))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(15)]+uint32(0x50A28BE6))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(8)) + e
  1915. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1916. e = (e+(a^(b|^c))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(8)]+uint32(0x50A28BE6))<<int32(11) | (e+(a^(b|^c))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(8)]+uint32(0x50A28BE6))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11)) + d
  1917. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1918. d = (d+(e^(a|^b))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(1)]+uint32(0x50A28BE6))<<int32(14) | (d+(e^(a|^b))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(1)]+uint32(0x50A28BE6))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(14)) + c
  1919. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1920. c = (c+(d^(e|^a))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(10)]+uint32(0x50A28BE6))<<int32(14) | (c+(d^(e|^a))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(10)]+uint32(0x50A28BE6))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(14)) + b
  1921. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1922. b = (b+(c^(d|^e))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(3)]+uint32(0x50A28BE6))<<int32(12) | (b+(c^(d|^e))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(3)]+uint32(0x50A28BE6))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(12)) + a
  1923. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1924. a = (a+(b^(c|^d))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(12)]+uint32(0x50A28BE6))<<int32(6) | (a+(b^(c|^d))+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(12)]+uint32(0x50A28BE6))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(6)) + e
  1925. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10)) /* #15 */
  1926. /* Parallel round 2 */
  1927. e = (e+(a&c | b & ^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(6)]+uint32(0x5C4DD124))<<int32(9) | (e+(a&c | b & ^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(6)]+uint32(0x5C4DD124))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9)) + d
  1928. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1929. d = (d+(e&b | a & ^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(11)]+uint32(0x5C4DD124))<<int32(13) | (d+(e&b | a & ^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(11)]+uint32(0x5C4DD124))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(13)) + c
  1930. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1931. c = (c+(d&a | e & ^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(3)]+uint32(0x5C4DD124))<<int32(15) | (c+(d&a | e & ^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(3)]+uint32(0x5C4DD124))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(15)) + b
  1932. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1933. b = (b+(c&e | d & ^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(7)]+uint32(0x5C4DD124))<<int32(7) | (b+(c&e | d & ^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(7)]+uint32(0x5C4DD124))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(7)) + a
  1934. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1935. a = (a+(b&d | c & ^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[0]+uint32(0x5C4DD124))<<int32(12) | (a+(b&d | c & ^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[0]+uint32(0x5C4DD124))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(12)) + e
  1936. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1937. e = (e+(a&c | b & ^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(13)]+uint32(0x5C4DD124))<<int32(8) | (e+(a&c | b & ^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(13)]+uint32(0x5C4DD124))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(8)) + d
  1938. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1939. d = (d+(e&b | a & ^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(5)]+uint32(0x5C4DD124))<<int32(9) | (d+(e&b | a & ^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(5)]+uint32(0x5C4DD124))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9)) + c
  1940. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1941. c = (c+(d&a | e & ^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(10)]+uint32(0x5C4DD124))<<int32(11) | (c+(d&a | e & ^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(10)]+uint32(0x5C4DD124))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11)) + b
  1942. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1943. b = (b+(c&e | d & ^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(14)]+uint32(0x5C4DD124))<<int32(7) | (b+(c&e | d & ^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(14)]+uint32(0x5C4DD124))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(7)) + a
  1944. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1945. a = (a+(b&d | c & ^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(15)]+uint32(0x5C4DD124))<<int32(7) | (a+(b&d | c & ^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(15)]+uint32(0x5C4DD124))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(7)) + e
  1946. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1947. e = (e+(a&c | b & ^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(8)]+uint32(0x5C4DD124))<<int32(12) | (e+(a&c | b & ^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(8)]+uint32(0x5C4DD124))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(12)) + d
  1948. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1949. d = (d+(e&b | a & ^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(12)]+uint32(0x5C4DD124))<<int32(7) | (d+(e&b | a & ^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(12)]+uint32(0x5C4DD124))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(7)) + c
  1950. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1951. c = (c+(d&a | e & ^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(4)]+uint32(0x5C4DD124))<<int32(6) | (c+(d&a | e & ^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(4)]+uint32(0x5C4DD124))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(6)) + b
  1952. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1953. b = (b+(c&e | d & ^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(9)]+uint32(0x5C4DD124))<<int32(15) | (b+(c&e | d & ^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(9)]+uint32(0x5C4DD124))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(15)) + a
  1954. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1955. a = (a+(b&d | c & ^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(1)]+uint32(0x5C4DD124))<<int32(13) | (a+(b&d | c & ^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(1)]+uint32(0x5C4DD124))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(13)) + e
  1956. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1957. e = (e+(a&c | b & ^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(2)]+uint32(0x5C4DD124))<<int32(11) | (e+(a&c | b & ^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(2)]+uint32(0x5C4DD124))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11)) + d
  1958. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10)) /* #31 */
  1959. /* Parallel round 3 */
  1960. d = (d+(e|^a^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(15)]+uint32(0x6D703EF3))<<int32(9) | (d+(e|^a^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(15)]+uint32(0x6D703EF3))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9)) + c
  1961. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1962. c = (c+(d|^e^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(5)]+uint32(0x6D703EF3))<<int32(7) | (c+(d|^e^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(5)]+uint32(0x6D703EF3))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(7)) + b
  1963. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1964. b = (b+(c|^d^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(1)]+uint32(0x6D703EF3))<<int32(15) | (b+(c|^d^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(1)]+uint32(0x6D703EF3))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(15)) + a
  1965. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1966. a = (a+(b|^c^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(3)]+uint32(0x6D703EF3))<<int32(11) | (a+(b|^c^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(3)]+uint32(0x6D703EF3))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11)) + e
  1967. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1968. e = (e+(a|^b^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(7)]+uint32(0x6D703EF3))<<int32(8) | (e+(a|^b^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(7)]+uint32(0x6D703EF3))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(8)) + d
  1969. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1970. d = (d+(e|^a^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(14)]+uint32(0x6D703EF3))<<int32(6) | (d+(e|^a^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(14)]+uint32(0x6D703EF3))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(6)) + c
  1971. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1972. c = (c+(d|^e^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(6)]+uint32(0x6D703EF3))<<int32(6) | (c+(d|^e^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(6)]+uint32(0x6D703EF3))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(6)) + b
  1973. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1974. b = (b+(c|^d^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(9)]+uint32(0x6D703EF3))<<int32(14) | (b+(c|^d^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(9)]+uint32(0x6D703EF3))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(14)) + a
  1975. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1976. a = (a+(b|^c^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(11)]+uint32(0x6D703EF3))<<int32(12) | (a+(b|^c^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(11)]+uint32(0x6D703EF3))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(12)) + e
  1977. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1978. e = (e+(a|^b^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(8)]+uint32(0x6D703EF3))<<int32(13) | (e+(a|^b^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(8)]+uint32(0x6D703EF3))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(13)) + d
  1979. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1980. d = (d+(e|^a^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(12)]+uint32(0x6D703EF3))<<int32(5) | (d+(e|^a^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(12)]+uint32(0x6D703EF3))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)) + c
  1981. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1982. c = (c+(d|^e^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(2)]+uint32(0x6D703EF3))<<int32(14) | (c+(d|^e^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(2)]+uint32(0x6D703EF3))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(14)) + b
  1983. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1984. b = (b+(c|^d^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(10)]+uint32(0x6D703EF3))<<int32(13) | (b+(c|^d^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(10)]+uint32(0x6D703EF3))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(13)) + a
  1985. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1986. a = (a+(b|^c^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[0]+uint32(0x6D703EF3))<<int32(13) | (a+(b|^c^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[0]+uint32(0x6D703EF3))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(13)) + e
  1987. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1988. e = (e+(a|^b^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(4)]+uint32(0x6D703EF3))<<int32(7) | (e+(a|^b^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(4)]+uint32(0x6D703EF3))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(7)) + d
  1989. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1990. d = (d+(e|^a^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(13)]+uint32(0x6D703EF3))<<int32(5) | (d+(e|^a^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(13)]+uint32(0x6D703EF3))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)) + c
  1991. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10)) /* #47 */
  1992. /* Parallel round 4 */
  1993. c = (c+(d&e|^d&a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(8)]+uint32(0x7A6D76E9))<<int32(15) | (c+(d&e|^d&a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(8)]+uint32(0x7A6D76E9))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(15)) + b
  1994. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1995. b = (b+(c&d|^c&e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(6)]+uint32(0x7A6D76E9))<<int32(5) | (b+(c&d|^c&e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(6)]+uint32(0x7A6D76E9))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)) + a
  1996. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1997. a = (a+(b&c|^b&d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(4)]+uint32(0x7A6D76E9))<<int32(8) | (a+(b&c|^b&d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(4)]+uint32(0x7A6D76E9))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(8)) + e
  1998. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1999. e = (e+(a&b|^a&c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(1)]+uint32(0x7A6D76E9))<<int32(11) | (e+(a&b|^a&c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(1)]+uint32(0x7A6D76E9))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11)) + d
  2000. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2001. d = (d+(e&a|^e&b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(3)]+uint32(0x7A6D76E9))<<int32(14) | (d+(e&a|^e&b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(3)]+uint32(0x7A6D76E9))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(14)) + c
  2002. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2003. c = (c+(d&e|^d&a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(11)]+uint32(0x7A6D76E9))<<int32(14) | (c+(d&e|^d&a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(11)]+uint32(0x7A6D76E9))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(14)) + b
  2004. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2005. b = (b+(c&d|^c&e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(15)]+uint32(0x7A6D76E9))<<int32(6) | (b+(c&d|^c&e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(15)]+uint32(0x7A6D76E9))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(6)) + a
  2006. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2007. a = (a+(b&c|^b&d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[0]+uint32(0x7A6D76E9))<<int32(14) | (a+(b&c|^b&d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[0]+uint32(0x7A6D76E9))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(14)) + e
  2008. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2009. e = (e+(a&b|^a&c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(5)]+uint32(0x7A6D76E9))<<int32(6) | (e+(a&b|^a&c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(5)]+uint32(0x7A6D76E9))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(6)) + d
  2010. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2011. d = (d+(e&a|^e&b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(12)]+uint32(0x7A6D76E9))<<int32(9) | (d+(e&a|^e&b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(12)]+uint32(0x7A6D76E9))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9)) + c
  2012. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2013. c = (c+(d&e|^d&a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(2)]+uint32(0x7A6D76E9))<<int32(12) | (c+(d&e|^d&a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(2)]+uint32(0x7A6D76E9))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(12)) + b
  2014. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2015. b = (b+(c&d|^c&e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(13)]+uint32(0x7A6D76E9))<<int32(9) | (b+(c&d|^c&e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(13)]+uint32(0x7A6D76E9))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9)) + a
  2016. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2017. a = (a+(b&c|^b&d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(9)]+uint32(0x7A6D76E9))<<int32(12) | (a+(b&c|^b&d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(9)]+uint32(0x7A6D76E9))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(12)) + e
  2018. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2019. e = (e+(a&b|^a&c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(7)]+uint32(0x7A6D76E9))<<int32(5) | (e+(a&b|^a&c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(7)]+uint32(0x7A6D76E9))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)) + d
  2020. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2021. d = (d+(e&a|^e&b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(10)]+uint32(0x7A6D76E9))<<int32(15) | (d+(e&a|^e&b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(10)]+uint32(0x7A6D76E9))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(15)) + c
  2022. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2023. c = (c+(d&e|^d&a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(14)]+uint32(0x7A6D76E9))<<int32(8) | (c+(d&e|^d&a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(14)]+uint32(0x7A6D76E9))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(8)) + b
  2024. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10)) /* #63 */
  2025. /* Parallel round 5 */
  2026. b = (b+(c^d^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(12)]+0x00000000)<<int32(8) | (b+(c^d^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(12)]+0x00000000)>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(8)) + a
  2027. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2028. a = (a+(b^c^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(15)]+0x00000000)<<int32(5) | (a+(b^c^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(15)]+0x00000000)>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)) + e
  2029. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2030. e = (e+(a^b^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(10)]+0x00000000)<<int32(12) | (e+(a^b^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(10)]+0x00000000)>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(12)) + d
  2031. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2032. d = (d+(e^a^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(4)]+0x00000000)<<int32(9) | (d+(e^a^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(4)]+0x00000000)>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9)) + c
  2033. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2034. c = (c+(d^e^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(1)]+0x00000000)<<int32(12) | (c+(d^e^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(1)]+0x00000000)>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(12)) + b
  2035. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2036. b = (b+(c^d^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(5)]+0x00000000)<<int32(5) | (b+(c^d^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(5)]+0x00000000)>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)) + a
  2037. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2038. a = (a+(b^c^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(8)]+0x00000000)<<int32(14) | (a+(b^c^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(8)]+0x00000000)>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(14)) + e
  2039. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2040. e = (e+(a^b^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(7)]+0x00000000)<<int32(6) | (e+(a^b^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(7)]+0x00000000)>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(6)) + d
  2041. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2042. d = (d+(e^a^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(6)]+0x00000000)<<int32(8) | (d+(e^a^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(6)]+0x00000000)>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(8)) + c
  2043. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2044. c = (c+(d^e^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(2)]+0x00000000)<<int32(13) | (c+(d^e^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(2)]+0x00000000)>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(13)) + b
  2045. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2046. b = (b+(c^d^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(13)]+0x00000000)<<int32(6) | (b+(c^d^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(13)]+0x00000000)>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(6)) + a
  2047. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2048. a = (a+(b^c^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(14)]+0x00000000)<<int32(5) | (a+(b^c^d)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(14)]+0x00000000)>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)) + e
  2049. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2050. e = (e+(a^b^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[0]+0x00000000)<<int32(15) | (e+(a^b^c)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[0]+0x00000000)>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(15)) + d
  2051. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2052. d = (d+(e^a^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(3)]+0x00000000)<<int32(13) | (d+(e^a^b)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(3)]+0x00000000)>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(13)) + c
  2053. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2054. c = (c+(d^e^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(9)]+0x00000000)<<int32(11) | (c+(d^e^a)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(9)]+0x00000000)>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11)) + b
  2055. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2056. b = (b+(c^d^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(11)]+0x00000000)<<int32(11) | (b+(c^d^e)+(*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(11)]+0x00000000)>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11)) + a
  2057. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10)) /* #79 */
  2058. t = *(*Tuint32_t)(unsafe.Pointer(state + 1*4)) + cc + d
  2059. *(*Tuint32_t)(unsafe.Pointer(state + 1*4)) = *(*Tuint32_t)(unsafe.Pointer(state + 2*4)) + dd + e
  2060. *(*Tuint32_t)(unsafe.Pointer(state + 2*4)) = *(*Tuint32_t)(unsafe.Pointer(state + 3*4)) + ee + a
  2061. *(*Tuint32_t)(unsafe.Pointer(state + 3*4)) = *(*Tuint32_t)(unsafe.Pointer(state + 4*4)) + aa + b
  2062. *(*Tuint32_t)(unsafe.Pointer(state + 4*4)) = *(*Tuint32_t)(unsafe.Pointer(state)) + bb + c
  2063. *(*Tuint32_t)(unsafe.Pointer(state)) = t
  2064. }
  2065. const m_SHA1_BLOCK_LENGTH = 64
  2066. const m_SHA1_DIGEST_LENGTH = 20
  2067. type TSHA1_CTX = struct {
  2068. Fstate [5]Tuint32_t
  2069. Fcount Tuint64_t
  2070. Fbuffer [64]Tuint8_t
  2071. }
  2072. /*
  2073. * blk0() and blk() perform the initial expand.
  2074. * I got the idea of expanding during the round function from SSLeay
  2075. */
  2076. /*
  2077. * (R0+R1), R2, R3, R4 are the different operations (rounds) used in SHA1
  2078. */
  2079. type TCHAR64LONG16 = struct {
  2080. Fl [0][16]Tuint32_t
  2081. Fc [64]Tuint8_t
  2082. }
  2083. // C documentation
  2084. //
  2085. // /*
  2086. // * Hash a single 512-bit block. This is the core of the algorithm.
  2087. // */
  2088. func XSHA1Transform(tls *libc.TLS, state uintptr, buffer uintptr) {
  2089. bp := tls.Alloc(64)
  2090. defer tls.Free(64)
  2091. var a, b, c, d, e, v1, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v2, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v3, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v4, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v5, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v6, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v7, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v8, v80, v81, v82, v83, v84, v9 Tuint32_t
  2092. var block uintptr
  2093. var _ /* workspace at bp+0 */ [64]Tuint8_t
  2094. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a, b, block, c, d, e, v1, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v2, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v3, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v4, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v5, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v6, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v7, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v8, v80, v81, v82, v83, v84, v9
  2095. block = bp
  2096. libc.Xmemcpy(tls, block, buffer, uint64(m_SHA1_BLOCK_LENGTH))
  2097. /* Copy context->state[] to working vars */
  2098. a = *(*Tuint32_t)(unsafe.Pointer(state))
  2099. b = *(*Tuint32_t)(unsafe.Pointer(state + 1*4))
  2100. c = *(*Tuint32_t)(unsafe.Pointer(state + 2*4))
  2101. d = *(*Tuint32_t)(unsafe.Pointer(state + 3*4))
  2102. e = *(*Tuint32_t)(unsafe.Pointer(state + 4*4))
  2103. /* 4 rounds of 20 operations each. Loop unrolled. */
  2104. v1 = (*(*Tuint32_t)(unsafe.Pointer(block))<<libc.Int32FromInt32(24)|*(*Tuint32_t)(unsafe.Pointer(block))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(24)))&libc.Uint32FromUint32(0xFF00FF00) | (*(*Tuint32_t)(unsafe.Pointer(block))<<libc.Int32FromInt32(8)|*(*Tuint32_t)(unsafe.Pointer(block))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(8)))&libc.Uint32FromInt32(0x00FF00FF)
  2105. *(*Tuint32_t)(unsafe.Pointer(block)) = v1
  2106. e += b&(c^d) ^ d + v1 + uint32(0x5A827999) + (a<<libc.Int32FromInt32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2107. b = b<<libc.Int32FromInt32(30) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2108. v2 = (*(*Tuint32_t)(unsafe.Pointer(block + 1*4))<<libc.Int32FromInt32(24)|*(*Tuint32_t)(unsafe.Pointer(block + 1*4))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(24)))&libc.Uint32FromUint32(0xFF00FF00) | (*(*Tuint32_t)(unsafe.Pointer(block + 1*4))<<libc.Int32FromInt32(8)|*(*Tuint32_t)(unsafe.Pointer(block + 1*4))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(8)))&libc.Uint32FromInt32(0x00FF00FF)
  2109. *(*Tuint32_t)(unsafe.Pointer(block + 1*4)) = v2
  2110. d += a&(b^c) ^ c + v2 + uint32(0x5A827999) + (e<<libc.Int32FromInt32(5) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2111. a = a<<libc.Int32FromInt32(30) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2112. v3 = (*(*Tuint32_t)(unsafe.Pointer(block + 2*4))<<libc.Int32FromInt32(24)|*(*Tuint32_t)(unsafe.Pointer(block + 2*4))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(24)))&libc.Uint32FromUint32(0xFF00FF00) | (*(*Tuint32_t)(unsafe.Pointer(block + 2*4))<<libc.Int32FromInt32(8)|*(*Tuint32_t)(unsafe.Pointer(block + 2*4))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(8)))&libc.Uint32FromInt32(0x00FF00FF)
  2113. *(*Tuint32_t)(unsafe.Pointer(block + 2*4)) = v3
  2114. c += e&(a^b) ^ b + v3 + uint32(0x5A827999) + (d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2115. e = e<<libc.Int32FromInt32(30) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2116. v4 = (*(*Tuint32_t)(unsafe.Pointer(block + 3*4))<<libc.Int32FromInt32(24)|*(*Tuint32_t)(unsafe.Pointer(block + 3*4))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(24)))&libc.Uint32FromUint32(0xFF00FF00) | (*(*Tuint32_t)(unsafe.Pointer(block + 3*4))<<libc.Int32FromInt32(8)|*(*Tuint32_t)(unsafe.Pointer(block + 3*4))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(8)))&libc.Uint32FromInt32(0x00FF00FF)
  2117. *(*Tuint32_t)(unsafe.Pointer(block + 3*4)) = v4
  2118. b += d&(e^a) ^ a + v4 + uint32(0x5A827999) + (c<<libc.Int32FromInt32(5) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2119. d = d<<libc.Int32FromInt32(30) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2120. v5 = (*(*Tuint32_t)(unsafe.Pointer(block + 4*4))<<libc.Int32FromInt32(24)|*(*Tuint32_t)(unsafe.Pointer(block + 4*4))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(24)))&libc.Uint32FromUint32(0xFF00FF00) | (*(*Tuint32_t)(unsafe.Pointer(block + 4*4))<<libc.Int32FromInt32(8)|*(*Tuint32_t)(unsafe.Pointer(block + 4*4))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(8)))&libc.Uint32FromInt32(0x00FF00FF)
  2121. *(*Tuint32_t)(unsafe.Pointer(block + 4*4)) = v5
  2122. a += c&(d^e) ^ e + v5 + uint32(0x5A827999) + (b<<libc.Int32FromInt32(5) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2123. c = c<<libc.Int32FromInt32(30) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2124. v6 = (*(*Tuint32_t)(unsafe.Pointer(block + 5*4))<<libc.Int32FromInt32(24)|*(*Tuint32_t)(unsafe.Pointer(block + 5*4))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(24)))&libc.Uint32FromUint32(0xFF00FF00) | (*(*Tuint32_t)(unsafe.Pointer(block + 5*4))<<libc.Int32FromInt32(8)|*(*Tuint32_t)(unsafe.Pointer(block + 5*4))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(8)))&libc.Uint32FromInt32(0x00FF00FF)
  2125. *(*Tuint32_t)(unsafe.Pointer(block + 5*4)) = v6
  2126. e += b&(c^d) ^ d + v6 + uint32(0x5A827999) + (a<<libc.Int32FromInt32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2127. b = b<<libc.Int32FromInt32(30) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2128. v7 = (*(*Tuint32_t)(unsafe.Pointer(block + 6*4))<<libc.Int32FromInt32(24)|*(*Tuint32_t)(unsafe.Pointer(block + 6*4))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(24)))&libc.Uint32FromUint32(0xFF00FF00) | (*(*Tuint32_t)(unsafe.Pointer(block + 6*4))<<libc.Int32FromInt32(8)|*(*Tuint32_t)(unsafe.Pointer(block + 6*4))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(8)))&libc.Uint32FromInt32(0x00FF00FF)
  2129. *(*Tuint32_t)(unsafe.Pointer(block + 6*4)) = v7
  2130. d += a&(b^c) ^ c + v7 + uint32(0x5A827999) + (e<<libc.Int32FromInt32(5) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2131. a = a<<libc.Int32FromInt32(30) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2132. v8 = (*(*Tuint32_t)(unsafe.Pointer(block + 7*4))<<libc.Int32FromInt32(24)|*(*Tuint32_t)(unsafe.Pointer(block + 7*4))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(24)))&libc.Uint32FromUint32(0xFF00FF00) | (*(*Tuint32_t)(unsafe.Pointer(block + 7*4))<<libc.Int32FromInt32(8)|*(*Tuint32_t)(unsafe.Pointer(block + 7*4))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(8)))&libc.Uint32FromInt32(0x00FF00FF)
  2133. *(*Tuint32_t)(unsafe.Pointer(block + 7*4)) = v8
  2134. c += e&(a^b) ^ b + v8 + uint32(0x5A827999) + (d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2135. e = e<<libc.Int32FromInt32(30) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2136. v9 = (*(*Tuint32_t)(unsafe.Pointer(block + 8*4))<<libc.Int32FromInt32(24)|*(*Tuint32_t)(unsafe.Pointer(block + 8*4))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(24)))&libc.Uint32FromUint32(0xFF00FF00) | (*(*Tuint32_t)(unsafe.Pointer(block + 8*4))<<libc.Int32FromInt32(8)|*(*Tuint32_t)(unsafe.Pointer(block + 8*4))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(8)))&libc.Uint32FromInt32(0x00FF00FF)
  2137. *(*Tuint32_t)(unsafe.Pointer(block + 8*4)) = v9
  2138. b += d&(e^a) ^ a + v9 + uint32(0x5A827999) + (c<<libc.Int32FromInt32(5) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2139. d = d<<libc.Int32FromInt32(30) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2140. v10 = (*(*Tuint32_t)(unsafe.Pointer(block + 9*4))<<libc.Int32FromInt32(24)|*(*Tuint32_t)(unsafe.Pointer(block + 9*4))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(24)))&libc.Uint32FromUint32(0xFF00FF00) | (*(*Tuint32_t)(unsafe.Pointer(block + 9*4))<<libc.Int32FromInt32(8)|*(*Tuint32_t)(unsafe.Pointer(block + 9*4))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(8)))&libc.Uint32FromInt32(0x00FF00FF)
  2141. *(*Tuint32_t)(unsafe.Pointer(block + 9*4)) = v10
  2142. a += c&(d^e) ^ e + v10 + uint32(0x5A827999) + (b<<libc.Int32FromInt32(5) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2143. c = c<<libc.Int32FromInt32(30) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2144. v11 = (*(*Tuint32_t)(unsafe.Pointer(block + 10*4))<<libc.Int32FromInt32(24)|*(*Tuint32_t)(unsafe.Pointer(block + 10*4))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(24)))&libc.Uint32FromUint32(0xFF00FF00) | (*(*Tuint32_t)(unsafe.Pointer(block + 10*4))<<libc.Int32FromInt32(8)|*(*Tuint32_t)(unsafe.Pointer(block + 10*4))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(8)))&libc.Uint32FromInt32(0x00FF00FF)
  2145. *(*Tuint32_t)(unsafe.Pointer(block + 10*4)) = v11
  2146. e += b&(c^d) ^ d + v11 + uint32(0x5A827999) + (a<<libc.Int32FromInt32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2147. b = b<<libc.Int32FromInt32(30) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2148. v12 = (*(*Tuint32_t)(unsafe.Pointer(block + 11*4))<<libc.Int32FromInt32(24)|*(*Tuint32_t)(unsafe.Pointer(block + 11*4))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(24)))&libc.Uint32FromUint32(0xFF00FF00) | (*(*Tuint32_t)(unsafe.Pointer(block + 11*4))<<libc.Int32FromInt32(8)|*(*Tuint32_t)(unsafe.Pointer(block + 11*4))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(8)))&libc.Uint32FromInt32(0x00FF00FF)
  2149. *(*Tuint32_t)(unsafe.Pointer(block + 11*4)) = v12
  2150. d += a&(b^c) ^ c + v12 + uint32(0x5A827999) + (e<<libc.Int32FromInt32(5) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2151. a = a<<libc.Int32FromInt32(30) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2152. v13 = (*(*Tuint32_t)(unsafe.Pointer(block + 12*4))<<libc.Int32FromInt32(24)|*(*Tuint32_t)(unsafe.Pointer(block + 12*4))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(24)))&libc.Uint32FromUint32(0xFF00FF00) | (*(*Tuint32_t)(unsafe.Pointer(block + 12*4))<<libc.Int32FromInt32(8)|*(*Tuint32_t)(unsafe.Pointer(block + 12*4))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(8)))&libc.Uint32FromInt32(0x00FF00FF)
  2153. *(*Tuint32_t)(unsafe.Pointer(block + 12*4)) = v13
  2154. c += e&(a^b) ^ b + v13 + uint32(0x5A827999) + (d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2155. e = e<<libc.Int32FromInt32(30) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2156. v14 = (*(*Tuint32_t)(unsafe.Pointer(block + 13*4))<<libc.Int32FromInt32(24)|*(*Tuint32_t)(unsafe.Pointer(block + 13*4))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(24)))&libc.Uint32FromUint32(0xFF00FF00) | (*(*Tuint32_t)(unsafe.Pointer(block + 13*4))<<libc.Int32FromInt32(8)|*(*Tuint32_t)(unsafe.Pointer(block + 13*4))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(8)))&libc.Uint32FromInt32(0x00FF00FF)
  2157. *(*Tuint32_t)(unsafe.Pointer(block + 13*4)) = v14
  2158. b += d&(e^a) ^ a + v14 + uint32(0x5A827999) + (c<<libc.Int32FromInt32(5) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2159. d = d<<libc.Int32FromInt32(30) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2160. v15 = (*(*Tuint32_t)(unsafe.Pointer(block + 14*4))<<libc.Int32FromInt32(24)|*(*Tuint32_t)(unsafe.Pointer(block + 14*4))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(24)))&libc.Uint32FromUint32(0xFF00FF00) | (*(*Tuint32_t)(unsafe.Pointer(block + 14*4))<<libc.Int32FromInt32(8)|*(*Tuint32_t)(unsafe.Pointer(block + 14*4))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(8)))&libc.Uint32FromInt32(0x00FF00FF)
  2161. *(*Tuint32_t)(unsafe.Pointer(block + 14*4)) = v15
  2162. a += c&(d^e) ^ e + v15 + uint32(0x5A827999) + (b<<libc.Int32FromInt32(5) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2163. c = c<<libc.Int32FromInt32(30) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2164. v16 = (*(*Tuint32_t)(unsafe.Pointer(block + 15*4))<<libc.Int32FromInt32(24)|*(*Tuint32_t)(unsafe.Pointer(block + 15*4))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(24)))&libc.Uint32FromUint32(0xFF00FF00) | (*(*Tuint32_t)(unsafe.Pointer(block + 15*4))<<libc.Int32FromInt32(8)|*(*Tuint32_t)(unsafe.Pointer(block + 15*4))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(8)))&libc.Uint32FromInt32(0x00FF00FF)
  2165. *(*Tuint32_t)(unsafe.Pointer(block + 15*4)) = v16
  2166. e += b&(c^d) ^ d + v16 + uint32(0x5A827999) + (a<<libc.Int32FromInt32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2167. b = b<<libc.Int32FromInt32(30) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2168. v17 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(16)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(16)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(16)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(16)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(16)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(16)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(16)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(16)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2169. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(16)&libc.Int32FromInt32(15))*4)) = v17
  2170. d += a&(b^c) ^ c + v17 + uint32(0x5A827999) + (e<<libc.Int32FromInt32(5) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2171. a = a<<libc.Int32FromInt32(30) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2172. v18 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(17)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(17)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(17)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(17)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(17)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(17)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(17)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(17)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2173. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(17)&libc.Int32FromInt32(15))*4)) = v18
  2174. c += e&(a^b) ^ b + v18 + uint32(0x5A827999) + (d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2175. e = e<<libc.Int32FromInt32(30) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2176. v19 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(18)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(18)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(18)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(18)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(18)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(18)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(18)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(18)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2177. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(18)&libc.Int32FromInt32(15))*4)) = v19
  2178. b += d&(e^a) ^ a + v19 + uint32(0x5A827999) + (c<<libc.Int32FromInt32(5) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2179. d = d<<libc.Int32FromInt32(30) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2180. v20 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(19)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(19)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(19)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(19)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(19)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(19)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(19)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(19)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2181. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(19)&libc.Int32FromInt32(15))*4)) = v20
  2182. a += c&(d^e) ^ e + v20 + uint32(0x5A827999) + (b<<libc.Int32FromInt32(5) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2183. c = c<<libc.Int32FromInt32(30) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2184. v21 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(20)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(20)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(20)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(20)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(20)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(20)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(20)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(20)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2185. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(20)&libc.Int32FromInt32(15))*4)) = v21
  2186. e += b ^ c ^ d + v21 + uint32(0x6ED9EBA1) + (a<<libc.Int32FromInt32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2187. b = b<<libc.Int32FromInt32(30) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2188. v22 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(21)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(21)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(21)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(21)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(21)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(21)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(21)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(21)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2189. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(21)&libc.Int32FromInt32(15))*4)) = v22
  2190. d += a ^ b ^ c + v22 + uint32(0x6ED9EBA1) + (e<<libc.Int32FromInt32(5) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2191. a = a<<libc.Int32FromInt32(30) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2192. v23 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(22)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(22)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(22)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(22)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(22)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(22)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(22)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(22)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2193. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(22)&libc.Int32FromInt32(15))*4)) = v23
  2194. c += e ^ a ^ b + v23 + uint32(0x6ED9EBA1) + (d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2195. e = e<<libc.Int32FromInt32(30) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2196. v24 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(23)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(23)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(23)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(23)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(23)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(23)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(23)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(23)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2197. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(23)&libc.Int32FromInt32(15))*4)) = v24
  2198. b += d ^ e ^ a + v24 + uint32(0x6ED9EBA1) + (c<<libc.Int32FromInt32(5) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2199. d = d<<libc.Int32FromInt32(30) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2200. v25 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(24)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(24)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(24)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(24)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(24)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(24)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(24)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(24)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2201. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(24)&libc.Int32FromInt32(15))*4)) = v25
  2202. a += c ^ d ^ e + v25 + uint32(0x6ED9EBA1) + (b<<libc.Int32FromInt32(5) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2203. c = c<<libc.Int32FromInt32(30) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2204. v26 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(25)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(25)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(25)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(25)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(25)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(25)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(25)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(25)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2205. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(25)&libc.Int32FromInt32(15))*4)) = v26
  2206. e += b ^ c ^ d + v26 + uint32(0x6ED9EBA1) + (a<<libc.Int32FromInt32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2207. b = b<<libc.Int32FromInt32(30) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2208. v27 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(26)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(26)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(26)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(26)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(26)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(26)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(26)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(26)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2209. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(26)&libc.Int32FromInt32(15))*4)) = v27
  2210. d += a ^ b ^ c + v27 + uint32(0x6ED9EBA1) + (e<<libc.Int32FromInt32(5) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2211. a = a<<libc.Int32FromInt32(30) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2212. v28 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(27)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(27)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(27)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(27)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(27)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(27)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(27)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(27)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2213. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(27)&libc.Int32FromInt32(15))*4)) = v28
  2214. c += e ^ a ^ b + v28 + uint32(0x6ED9EBA1) + (d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2215. e = e<<libc.Int32FromInt32(30) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2216. v29 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(28)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(28)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(28)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(28)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(28)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(28)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(28)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(28)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2217. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(28)&libc.Int32FromInt32(15))*4)) = v29
  2218. b += d ^ e ^ a + v29 + uint32(0x6ED9EBA1) + (c<<libc.Int32FromInt32(5) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2219. d = d<<libc.Int32FromInt32(30) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2220. v30 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(29)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(29)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(29)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(29)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(29)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(29)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(29)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(29)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2221. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(29)&libc.Int32FromInt32(15))*4)) = v30
  2222. a += c ^ d ^ e + v30 + uint32(0x6ED9EBA1) + (b<<libc.Int32FromInt32(5) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2223. c = c<<libc.Int32FromInt32(30) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2224. v31 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(30)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(30)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(30)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(30)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(30)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(30)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(30)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(30)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2225. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(30)&libc.Int32FromInt32(15))*4)) = v31
  2226. e += b ^ c ^ d + v31 + uint32(0x6ED9EBA1) + (a<<libc.Int32FromInt32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2227. b = b<<libc.Int32FromInt32(30) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2228. v32 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(31)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(31)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(31)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(31)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(31)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(31)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(31)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(31)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2229. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(31)&libc.Int32FromInt32(15))*4)) = v32
  2230. d += a ^ b ^ c + v32 + uint32(0x6ED9EBA1) + (e<<libc.Int32FromInt32(5) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2231. a = a<<libc.Int32FromInt32(30) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2232. v33 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(32)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(32)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(32)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(32)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(32)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(32)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(32)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(32)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2233. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(32)&libc.Int32FromInt32(15))*4)) = v33
  2234. c += e ^ a ^ b + v33 + uint32(0x6ED9EBA1) + (d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2235. e = e<<libc.Int32FromInt32(30) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2236. v34 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(33)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(33)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(33)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(33)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(33)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(33)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(33)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(33)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2237. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(33)&libc.Int32FromInt32(15))*4)) = v34
  2238. b += d ^ e ^ a + v34 + uint32(0x6ED9EBA1) + (c<<libc.Int32FromInt32(5) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2239. d = d<<libc.Int32FromInt32(30) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2240. v35 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(34)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(34)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(34)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(34)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(34)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(34)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(34)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(34)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2241. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(34)&libc.Int32FromInt32(15))*4)) = v35
  2242. a += c ^ d ^ e + v35 + uint32(0x6ED9EBA1) + (b<<libc.Int32FromInt32(5) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2243. c = c<<libc.Int32FromInt32(30) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2244. v36 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(35)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(35)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(35)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(35)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(35)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(35)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(35)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(35)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2245. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(35)&libc.Int32FromInt32(15))*4)) = v36
  2246. e += b ^ c ^ d + v36 + uint32(0x6ED9EBA1) + (a<<libc.Int32FromInt32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2247. b = b<<libc.Int32FromInt32(30) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2248. v37 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(36)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(36)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(36)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(36)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(36)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(36)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(36)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(36)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2249. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(36)&libc.Int32FromInt32(15))*4)) = v37
  2250. d += a ^ b ^ c + v37 + uint32(0x6ED9EBA1) + (e<<libc.Int32FromInt32(5) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2251. a = a<<libc.Int32FromInt32(30) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2252. v38 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(37)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(37)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(37)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(37)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(37)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(37)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(37)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(37)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2253. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(37)&libc.Int32FromInt32(15))*4)) = v38
  2254. c += e ^ a ^ b + v38 + uint32(0x6ED9EBA1) + (d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2255. e = e<<libc.Int32FromInt32(30) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2256. v39 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(38)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(38)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(38)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(38)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(38)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(38)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(38)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(38)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2257. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(38)&libc.Int32FromInt32(15))*4)) = v39
  2258. b += d ^ e ^ a + v39 + uint32(0x6ED9EBA1) + (c<<libc.Int32FromInt32(5) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2259. d = d<<libc.Int32FromInt32(30) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2260. v40 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(39)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(39)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(39)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(39)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(39)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(39)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(39)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(39)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2261. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(39)&libc.Int32FromInt32(15))*4)) = v40
  2262. a += c ^ d ^ e + v40 + uint32(0x6ED9EBA1) + (b<<libc.Int32FromInt32(5) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2263. c = c<<libc.Int32FromInt32(30) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2264. v41 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(40)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(40)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(40)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(40)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(40)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(40)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(40)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(40)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2265. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(40)&libc.Int32FromInt32(15))*4)) = v41
  2266. e += (b|c)&d | b&c + v41 + uint32(0x8F1BBCDC) + (a<<libc.Int32FromInt32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2267. b = b<<libc.Int32FromInt32(30) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2268. v42 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(41)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(41)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(41)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(41)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(41)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(41)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(41)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(41)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2269. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(41)&libc.Int32FromInt32(15))*4)) = v42
  2270. d += (a|b)&c | a&b + v42 + uint32(0x8F1BBCDC) + (e<<libc.Int32FromInt32(5) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2271. a = a<<libc.Int32FromInt32(30) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2272. v43 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(42)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(42)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(42)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(42)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(42)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(42)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(42)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(42)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2273. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(42)&libc.Int32FromInt32(15))*4)) = v43
  2274. c += (e|a)&b | e&a + v43 + uint32(0x8F1BBCDC) + (d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2275. e = e<<libc.Int32FromInt32(30) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2276. v44 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(43)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(43)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(43)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(43)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(43)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(43)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(43)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(43)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2277. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(43)&libc.Int32FromInt32(15))*4)) = v44
  2278. b += (d|e)&a | d&e + v44 + uint32(0x8F1BBCDC) + (c<<libc.Int32FromInt32(5) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2279. d = d<<libc.Int32FromInt32(30) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2280. v45 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(44)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(44)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(44)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(44)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(44)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(44)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(44)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(44)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2281. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(44)&libc.Int32FromInt32(15))*4)) = v45
  2282. a += (c|d)&e | c&d + v45 + uint32(0x8F1BBCDC) + (b<<libc.Int32FromInt32(5) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2283. c = c<<libc.Int32FromInt32(30) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2284. v46 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(45)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(45)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(45)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(45)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(45)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(45)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(45)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(45)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2285. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(45)&libc.Int32FromInt32(15))*4)) = v46
  2286. e += (b|c)&d | b&c + v46 + uint32(0x8F1BBCDC) + (a<<libc.Int32FromInt32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2287. b = b<<libc.Int32FromInt32(30) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2288. v47 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(46)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(46)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(46)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(46)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(46)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(46)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(46)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(46)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2289. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(46)&libc.Int32FromInt32(15))*4)) = v47
  2290. d += (a|b)&c | a&b + v47 + uint32(0x8F1BBCDC) + (e<<libc.Int32FromInt32(5) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2291. a = a<<libc.Int32FromInt32(30) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2292. v48 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(47)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(47)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(47)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(47)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(47)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(47)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(47)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(47)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2293. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(47)&libc.Int32FromInt32(15))*4)) = v48
  2294. c += (e|a)&b | e&a + v48 + uint32(0x8F1BBCDC) + (d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2295. e = e<<libc.Int32FromInt32(30) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2296. v49 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(48)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(48)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(48)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(48)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(48)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(48)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(48)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(48)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2297. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(48)&libc.Int32FromInt32(15))*4)) = v49
  2298. b += (d|e)&a | d&e + v49 + uint32(0x8F1BBCDC) + (c<<libc.Int32FromInt32(5) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2299. d = d<<libc.Int32FromInt32(30) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2300. v50 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(49)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(49)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(49)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(49)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(49)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(49)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(49)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(49)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2301. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(49)&libc.Int32FromInt32(15))*4)) = v50
  2302. a += (c|d)&e | c&d + v50 + uint32(0x8F1BBCDC) + (b<<libc.Int32FromInt32(5) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2303. c = c<<libc.Int32FromInt32(30) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2304. v51 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(50)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(50)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(50)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(50)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(50)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(50)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(50)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(50)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2305. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(50)&libc.Int32FromInt32(15))*4)) = v51
  2306. e += (b|c)&d | b&c + v51 + uint32(0x8F1BBCDC) + (a<<libc.Int32FromInt32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2307. b = b<<libc.Int32FromInt32(30) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2308. v52 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(51)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(51)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(51)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(51)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(51)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(51)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(51)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(51)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2309. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(51)&libc.Int32FromInt32(15))*4)) = v52
  2310. d += (a|b)&c | a&b + v52 + uint32(0x8F1BBCDC) + (e<<libc.Int32FromInt32(5) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2311. a = a<<libc.Int32FromInt32(30) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2312. v53 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(52)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(52)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(52)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(52)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(52)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(52)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(52)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(52)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2313. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(52)&libc.Int32FromInt32(15))*4)) = v53
  2314. c += (e|a)&b | e&a + v53 + uint32(0x8F1BBCDC) + (d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2315. e = e<<libc.Int32FromInt32(30) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2316. v54 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(53)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(53)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(53)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(53)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(53)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(53)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(53)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(53)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2317. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(53)&libc.Int32FromInt32(15))*4)) = v54
  2318. b += (d|e)&a | d&e + v54 + uint32(0x8F1BBCDC) + (c<<libc.Int32FromInt32(5) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2319. d = d<<libc.Int32FromInt32(30) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2320. v55 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(54)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(54)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(54)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(54)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(54)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(54)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(54)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(54)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2321. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(54)&libc.Int32FromInt32(15))*4)) = v55
  2322. a += (c|d)&e | c&d + v55 + uint32(0x8F1BBCDC) + (b<<libc.Int32FromInt32(5) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2323. c = c<<libc.Int32FromInt32(30) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2324. v56 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(55)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(55)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(55)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(55)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(55)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(55)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(55)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(55)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2325. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(55)&libc.Int32FromInt32(15))*4)) = v56
  2326. e += (b|c)&d | b&c + v56 + uint32(0x8F1BBCDC) + (a<<libc.Int32FromInt32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2327. b = b<<libc.Int32FromInt32(30) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2328. v57 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(56)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(56)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(56)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(56)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(56)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(56)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(56)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(56)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2329. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(56)&libc.Int32FromInt32(15))*4)) = v57
  2330. d += (a|b)&c | a&b + v57 + uint32(0x8F1BBCDC) + (e<<libc.Int32FromInt32(5) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2331. a = a<<libc.Int32FromInt32(30) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2332. v58 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(57)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(57)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(57)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(57)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(57)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(57)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(57)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(57)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2333. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(57)&libc.Int32FromInt32(15))*4)) = v58
  2334. c += (e|a)&b | e&a + v58 + uint32(0x8F1BBCDC) + (d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2335. e = e<<libc.Int32FromInt32(30) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2336. v59 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(58)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(58)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(58)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(58)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(58)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(58)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(58)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(58)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2337. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(58)&libc.Int32FromInt32(15))*4)) = v59
  2338. b += (d|e)&a | d&e + v59 + uint32(0x8F1BBCDC) + (c<<libc.Int32FromInt32(5) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2339. d = d<<libc.Int32FromInt32(30) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2340. v60 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(59)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(59)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(59)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(59)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(59)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(59)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(59)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(59)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2341. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(59)&libc.Int32FromInt32(15))*4)) = v60
  2342. a += (c|d)&e | c&d + v60 + uint32(0x8F1BBCDC) + (b<<libc.Int32FromInt32(5) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2343. c = c<<libc.Int32FromInt32(30) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2344. v61 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(60)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(60)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(60)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(60)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(60)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(60)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(60)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(60)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2345. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(60)&libc.Int32FromInt32(15))*4)) = v61
  2346. e += b ^ c ^ d + v61 + uint32(0xCA62C1D6) + (a<<libc.Int32FromInt32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2347. b = b<<libc.Int32FromInt32(30) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2348. v62 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(61)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(61)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(61)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(61)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(61)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(61)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(61)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(61)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2349. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(61)&libc.Int32FromInt32(15))*4)) = v62
  2350. d += a ^ b ^ c + v62 + uint32(0xCA62C1D6) + (e<<libc.Int32FromInt32(5) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2351. a = a<<libc.Int32FromInt32(30) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2352. v63 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(62)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(62)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(62)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(62)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(62)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(62)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(62)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(62)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2353. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(62)&libc.Int32FromInt32(15))*4)) = v63
  2354. c += e ^ a ^ b + v63 + uint32(0xCA62C1D6) + (d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2355. e = e<<libc.Int32FromInt32(30) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2356. v64 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(63)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(63)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(63)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(63)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(63)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(63)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(63)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(63)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2357. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(63)&libc.Int32FromInt32(15))*4)) = v64
  2358. b += d ^ e ^ a + v64 + uint32(0xCA62C1D6) + (c<<libc.Int32FromInt32(5) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2359. d = d<<libc.Int32FromInt32(30) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2360. v65 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(64)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(64)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(64)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(64)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(64)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(64)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(64)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(64)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2361. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(64)&libc.Int32FromInt32(15))*4)) = v65
  2362. a += c ^ d ^ e + v65 + uint32(0xCA62C1D6) + (b<<libc.Int32FromInt32(5) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2363. c = c<<libc.Int32FromInt32(30) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2364. v66 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(65)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(65)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(65)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(65)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(65)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(65)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(65)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(65)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2365. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(65)&libc.Int32FromInt32(15))*4)) = v66
  2366. e += b ^ c ^ d + v66 + uint32(0xCA62C1D6) + (a<<libc.Int32FromInt32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2367. b = b<<libc.Int32FromInt32(30) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2368. v67 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(66)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(66)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(66)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(66)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(66)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(66)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(66)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(66)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2369. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(66)&libc.Int32FromInt32(15))*4)) = v67
  2370. d += a ^ b ^ c + v67 + uint32(0xCA62C1D6) + (e<<libc.Int32FromInt32(5) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2371. a = a<<libc.Int32FromInt32(30) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2372. v68 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(67)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(67)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(67)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(67)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(67)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(67)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(67)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(67)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2373. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(67)&libc.Int32FromInt32(15))*4)) = v68
  2374. c += e ^ a ^ b + v68 + uint32(0xCA62C1D6) + (d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2375. e = e<<libc.Int32FromInt32(30) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2376. v69 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(68)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(68)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(68)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(68)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(68)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(68)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(68)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(68)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2377. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(68)&libc.Int32FromInt32(15))*4)) = v69
  2378. b += d ^ e ^ a + v69 + uint32(0xCA62C1D6) + (c<<libc.Int32FromInt32(5) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2379. d = d<<libc.Int32FromInt32(30) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2380. v70 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(69)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(69)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(69)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(69)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(69)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(69)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(69)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(69)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2381. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(69)&libc.Int32FromInt32(15))*4)) = v70
  2382. a += c ^ d ^ e + v70 + uint32(0xCA62C1D6) + (b<<libc.Int32FromInt32(5) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2383. c = c<<libc.Int32FromInt32(30) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2384. v71 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(70)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(70)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(70)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(70)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(70)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(70)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(70)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(70)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2385. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(70)&libc.Int32FromInt32(15))*4)) = v71
  2386. e += b ^ c ^ d + v71 + uint32(0xCA62C1D6) + (a<<libc.Int32FromInt32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2387. b = b<<libc.Int32FromInt32(30) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2388. v72 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(71)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(71)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(71)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(71)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(71)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(71)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(71)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(71)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2389. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(71)&libc.Int32FromInt32(15))*4)) = v72
  2390. d += a ^ b ^ c + v72 + uint32(0xCA62C1D6) + (e<<libc.Int32FromInt32(5) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2391. a = a<<libc.Int32FromInt32(30) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2392. v73 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(72)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(72)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(72)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(72)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(72)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(72)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(72)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(72)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2393. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(72)&libc.Int32FromInt32(15))*4)) = v73
  2394. c += e ^ a ^ b + v73 + uint32(0xCA62C1D6) + (d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2395. e = e<<libc.Int32FromInt32(30) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2396. v74 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(73)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(73)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(73)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(73)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(73)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(73)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(73)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(73)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2397. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(73)&libc.Int32FromInt32(15))*4)) = v74
  2398. b += d ^ e ^ a + v74 + uint32(0xCA62C1D6) + (c<<libc.Int32FromInt32(5) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2399. d = d<<libc.Int32FromInt32(30) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2400. v75 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(74)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(74)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(74)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(74)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(74)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(74)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(74)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(74)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2401. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(74)&libc.Int32FromInt32(15))*4)) = v75
  2402. a += c ^ d ^ e + v75 + uint32(0xCA62C1D6) + (b<<libc.Int32FromInt32(5) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2403. c = c<<libc.Int32FromInt32(30) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2404. v76 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(75)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(75)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(75)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(75)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(75)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(75)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(75)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(75)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2405. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(75)&libc.Int32FromInt32(15))*4)) = v76
  2406. e += b ^ c ^ d + v76 + uint32(0xCA62C1D6) + (a<<libc.Int32FromInt32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2407. b = b<<libc.Int32FromInt32(30) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2408. v77 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(76)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(76)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(76)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(76)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(76)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(76)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(76)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(76)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2409. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(76)&libc.Int32FromInt32(15))*4)) = v77
  2410. d += a ^ b ^ c + v77 + uint32(0xCA62C1D6) + (e<<libc.Int32FromInt32(5) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2411. a = a<<libc.Int32FromInt32(30) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2412. v78 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(77)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(77)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(77)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(77)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(77)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(77)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(77)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(77)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2413. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(77)&libc.Int32FromInt32(15))*4)) = v78
  2414. c += e ^ a ^ b + v78 + uint32(0xCA62C1D6) + (d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2415. e = e<<libc.Int32FromInt32(30) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2416. v79 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(78)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(78)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(78)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(78)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(78)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(78)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(78)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(78)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2417. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(78)&libc.Int32FromInt32(15))*4)) = v79
  2418. b += d ^ e ^ a + v79 + uint32(0xCA62C1D6) + (c<<libc.Int32FromInt32(5) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2419. d = d<<libc.Int32FromInt32(30) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2420. v80 = (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(79)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(79)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(79)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(79)&libc.Int32FromInt32(15))*4)))<<libc.Int32FromInt32(1) | (*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(79)+libc.Int32FromInt32(13))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(79)+libc.Int32FromInt32(8))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr((libc.Int32FromInt32(79)+libc.Int32FromInt32(2))&libc.Int32FromInt32(15))*4))^*(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(79)&libc.Int32FromInt32(15))*4)))>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(1))
  2421. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(79)&libc.Int32FromInt32(15))*4)) = v80
  2422. a += c ^ d ^ e + v80 + uint32(0xCA62C1D6) + (b<<libc.Int32FromInt32(5) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2423. c = c<<libc.Int32FromInt32(30) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2424. /* Add the working vars back into context.state[] */
  2425. *(*Tuint32_t)(unsafe.Pointer(state)) += a
  2426. *(*Tuint32_t)(unsafe.Pointer(state + 1*4)) += b
  2427. *(*Tuint32_t)(unsafe.Pointer(state + 2*4)) += c
  2428. *(*Tuint32_t)(unsafe.Pointer(state + 3*4)) += d
  2429. *(*Tuint32_t)(unsafe.Pointer(state + 4*4)) += e
  2430. /* Wipe variables */
  2431. v84 = libc.Uint32FromInt32(0)
  2432. e = v84
  2433. v83 = v84
  2434. d = v83
  2435. v82 = v83
  2436. c = v82
  2437. v81 = v82
  2438. b = v81
  2439. a = v81
  2440. }
  2441. // C documentation
  2442. //
  2443. // /*
  2444. // * SHA1Init - Initialize new context
  2445. // */
  2446. func XSHA1Init(tls *libc.TLS, context uintptr) {
  2447. /* SHA1 initialization constants */
  2448. (*TSHA1_CTX)(unsafe.Pointer(context)).Fcount = uint64(0)
  2449. *(*Tuint32_t)(unsafe.Pointer(context)) = uint32(0x67452301)
  2450. *(*Tuint32_t)(unsafe.Pointer(context + 1*4)) = uint32(0xEFCDAB89)
  2451. *(*Tuint32_t)(unsafe.Pointer(context + 2*4)) = uint32(0x98BADCFE)
  2452. *(*Tuint32_t)(unsafe.Pointer(context + 3*4)) = uint32(0x10325476)
  2453. *(*Tuint32_t)(unsafe.Pointer(context + 4*4)) = uint32(0xC3D2E1F0)
  2454. }
  2455. // C documentation
  2456. //
  2457. // /*
  2458. // * Run your data through this.
  2459. // */
  2460. func XSHA1Update(tls *libc.TLS, context uintptr, data uintptr, len1 Tsize_t) {
  2461. var i, j, v1 Tsize_t
  2462. _, _, _ = i, j, v1
  2463. j = (*TSHA1_CTX)(unsafe.Pointer(context)).Fcount >> libc.Int32FromInt32(3) & libc.Uint64FromInt32(63)
  2464. *(*Tuint64_t)(unsafe.Pointer(context + 24)) += len1 << libc.Int32FromInt32(3)
  2465. if j+len1 > uint64(63) {
  2466. v1 = libc.Uint64FromInt32(64) - j
  2467. i = v1
  2468. libc.Xmemcpy(tls, context+32+uintptr(j), data, v1)
  2469. XSHA1Transform(tls, context, context+32)
  2470. for {
  2471. if !(i+uint64(63) < len1) {
  2472. break
  2473. }
  2474. XSHA1Transform(tls, context, data+uintptr(i))
  2475. goto _2
  2476. _2:
  2477. ;
  2478. i += uint64(64)
  2479. }
  2480. j = uint64(0)
  2481. } else {
  2482. i = uint64(0)
  2483. }
  2484. libc.Xmemcpy(tls, context+32+uintptr(j), data+uintptr(i), len1-i)
  2485. }
  2486. // C documentation
  2487. //
  2488. // /*
  2489. // * Add padding and return the message digest.
  2490. // */
  2491. func XSHA1Pad(tls *libc.TLS, context uintptr) {
  2492. bp := tls.Alloc(16)
  2493. defer tls.Free(16)
  2494. var i uint32
  2495. var _ /* finalcount at bp+0 */ [8]Tuint8_t
  2496. _ = i
  2497. i = uint32(0)
  2498. for {
  2499. if !(i < uint32(8)) {
  2500. break
  2501. }
  2502. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[i] = uint8((*TSHA1_CTX)(unsafe.Pointer(context)).Fcount >> ((libc.Uint32FromInt32(7) - i&libc.Uint32FromInt32(7)) * libc.Uint32FromInt32(8)) & libc.Uint64FromInt32(255)) /* Endian independent */
  2503. goto _1
  2504. _1:
  2505. ;
  2506. i++
  2507. }
  2508. XSHA1Update(tls, context, __ccgo_ts+153, uint64(1))
  2509. for (*TSHA1_CTX)(unsafe.Pointer(context)).Fcount&uint64(504) != uint64(448) {
  2510. XSHA1Update(tls, context, __ccgo_ts+155, uint64(1))
  2511. }
  2512. XSHA1Update(tls, context, bp, uint64(8)) /* Should cause a SHA1Transform() */
  2513. }
  2514. func XSHA1Final(tls *libc.TLS, digest uintptr, context uintptr) {
  2515. var i uint32
  2516. _ = i
  2517. XSHA1Pad(tls, context)
  2518. i = uint32(0)
  2519. for {
  2520. if !(i < uint32(m_SHA1_DIGEST_LENGTH)) {
  2521. break
  2522. }
  2523. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i))) = uint8(*(*Tuint32_t)(unsafe.Pointer(context + uintptr(i>>int32(2))*4)) >> ((libc.Uint32FromInt32(3) - i&libc.Uint32FromInt32(3)) * libc.Uint32FromInt32(8)) & libc.Uint32FromInt32(255))
  2524. goto _1
  2525. _1:
  2526. ;
  2527. i++
  2528. }
  2529. libc.Xmemset(tls, context, 0, uint64(96))
  2530. }
  2531. const m_SHA224_BLOCK_LENGTH = 64
  2532. const m_SHA224_DIGEST_LENGTH = 28
  2533. const m_SHA256_BLOCK_LENGTH = 64
  2534. const m_SHA256_DIGEST_LENGTH = 32
  2535. const m_SHA384_BLOCK_LENGTH = 128
  2536. const m_SHA384_DIGEST_LENGTH = 48
  2537. const m_SHA512_256_BLOCK_LENGTH = 128
  2538. const m_SHA512_256_DIGEST_LENGTH = 32
  2539. const m_SHA512_BLOCK_LENGTH = 128
  2540. const m_SHA512_DIGEST_LENGTH = 64
  2541. type TSHA2_CTX = struct {
  2542. Fstate struct {
  2543. Fst64 [0][8]Tuint64_t
  2544. Fst32 [8]Tuint32_t
  2545. F__ccgo_pad2 [32]byte
  2546. }
  2547. Fbitcount [2]Tuint64_t
  2548. Fbuffer [128]Tuint8_t
  2549. }
  2550. type T_SHA2_CTX = TSHA2_CTX
  2551. /*
  2552. * UNROLLED TRANSFORM LOOP NOTE:
  2553. * You can define SHA2_UNROLL_TRANSFORM to use the unrolled transform
  2554. * loop version for the hash transform rounds (defined using macros
  2555. * later in this file). Either define on the command line, for example:
  2556. *
  2557. * cc -DSHA2_UNROLL_TRANSFORM -o sha2 sha2.c sha2prog.c
  2558. *
  2559. * or define below:
  2560. *
  2561. * #define SHA2_UNROLL_TRANSFORM
  2562. *
  2563. */
  2564. /*** SHA-224/256/384/512 Various Length Definitions ***********************/
  2565. /* NOTE: Most of these are in sha2.h */
  2566. /*** ENDIAN SPECIFIC COPY MACROS **************************************/
  2567. /*
  2568. * Macro for incrementally adding the unsigned 64-bit integer n to the
  2569. * unsigned 128-bit integer (represented using a two-element array of
  2570. * 64-bit words):
  2571. */
  2572. /*** THE SIX LOGICAL FUNCTIONS ****************************************/
  2573. /*
  2574. * Bit shifting and rotation (used by the six SHA-XYZ logical functions:
  2575. *
  2576. * NOTE: The naming of R and S appears backwards here (R is a SHIFT and
  2577. * S is a ROTATION) because the SHA-224/256/384/512 description document
  2578. * (see http://csrc.nist.gov/cryptval/shs/sha256-384-512.pdf) uses this
  2579. * same "backwards" definition.
  2580. */
  2581. /* Shift-right (used in SHA-224, SHA-256, SHA-384, and SHA-512): */
  2582. /* 32-bit Rotate-right (used in SHA-224 and SHA-256): */
  2583. /* 64-bit Rotate-right (used in SHA-384 and SHA-512): */
  2584. /* Two of six logical functions used in SHA-224, SHA-256, SHA-384, and SHA-512: */
  2585. /* Four of six logical functions used in SHA-224 and SHA-256: */
  2586. /* Four of six logical functions used in SHA-384 and SHA-512: */
  2587. // C documentation
  2588. //
  2589. // /*** SHA-XYZ INITIAL HASH VALUES AND CONSTANTS ************************/
  2590. // /* Hash constant words K for SHA-224 and SHA-256: */
  2591. var _K256 = [64]Tuint32_t{
  2592. 0: uint32(0x428a2f98),
  2593. 1: uint32(0x71374491),
  2594. 2: uint32(0xb5c0fbcf),
  2595. 3: uint32(0xe9b5dba5),
  2596. 4: uint32(0x3956c25b),
  2597. 5: uint32(0x59f111f1),
  2598. 6: uint32(0x923f82a4),
  2599. 7: uint32(0xab1c5ed5),
  2600. 8: uint32(0xd807aa98),
  2601. 9: uint32(0x12835b01),
  2602. 10: uint32(0x243185be),
  2603. 11: uint32(0x550c7dc3),
  2604. 12: uint32(0x72be5d74),
  2605. 13: uint32(0x80deb1fe),
  2606. 14: uint32(0x9bdc06a7),
  2607. 15: uint32(0xc19bf174),
  2608. 16: uint32(0xe49b69c1),
  2609. 17: uint32(0xefbe4786),
  2610. 18: uint32(0x0fc19dc6),
  2611. 19: uint32(0x240ca1cc),
  2612. 20: uint32(0x2de92c6f),
  2613. 21: uint32(0x4a7484aa),
  2614. 22: uint32(0x5cb0a9dc),
  2615. 23: uint32(0x76f988da),
  2616. 24: uint32(0x983e5152),
  2617. 25: uint32(0xa831c66d),
  2618. 26: uint32(0xb00327c8),
  2619. 27: uint32(0xbf597fc7),
  2620. 28: uint32(0xc6e00bf3),
  2621. 29: uint32(0xd5a79147),
  2622. 30: uint32(0x06ca6351),
  2623. 31: uint32(0x14292967),
  2624. 32: uint32(0x27b70a85),
  2625. 33: uint32(0x2e1b2138),
  2626. 34: uint32(0x4d2c6dfc),
  2627. 35: uint32(0x53380d13),
  2628. 36: uint32(0x650a7354),
  2629. 37: uint32(0x766a0abb),
  2630. 38: uint32(0x81c2c92e),
  2631. 39: uint32(0x92722c85),
  2632. 40: uint32(0xa2bfe8a1),
  2633. 41: uint32(0xa81a664b),
  2634. 42: uint32(0xc24b8b70),
  2635. 43: uint32(0xc76c51a3),
  2636. 44: uint32(0xd192e819),
  2637. 45: uint32(0xd6990624),
  2638. 46: uint32(0xf40e3585),
  2639. 47: uint32(0x106aa070),
  2640. 48: uint32(0x19a4c116),
  2641. 49: uint32(0x1e376c08),
  2642. 50: uint32(0x2748774c),
  2643. 51: uint32(0x34b0bcb5),
  2644. 52: uint32(0x391c0cb3),
  2645. 53: uint32(0x4ed8aa4a),
  2646. 54: uint32(0x5b9cca4f),
  2647. 55: uint32(0x682e6ff3),
  2648. 56: uint32(0x748f82ee),
  2649. 57: uint32(0x78a5636f),
  2650. 58: uint32(0x84c87814),
  2651. 59: uint32(0x8cc70208),
  2652. 60: uint32(0x90befffa),
  2653. 61: uint32(0xa4506ceb),
  2654. 62: uint32(0xbef9a3f7),
  2655. 63: uint32(0xc67178f2),
  2656. }
  2657. // C documentation
  2658. //
  2659. // /* Initial hash value H for SHA-256: */
  2660. var _sha256_initial_hash_value = [8]Tuint32_t{
  2661. 0: uint32(0x6a09e667),
  2662. 1: uint32(0xbb67ae85),
  2663. 2: uint32(0x3c6ef372),
  2664. 3: uint32(0xa54ff53a),
  2665. 4: uint32(0x510e527f),
  2666. 5: uint32(0x9b05688c),
  2667. 6: uint32(0x1f83d9ab),
  2668. 7: uint32(0x5be0cd19),
  2669. }
  2670. // C documentation
  2671. //
  2672. // /* Hash constant words K for SHA-384 and SHA-512: */
  2673. var _K512 = [80]Tuint64_t{
  2674. 0: uint64(0x428a2f98d728ae22),
  2675. 1: uint64(0x7137449123ef65cd),
  2676. 2: uint64(0xb5c0fbcfec4d3b2f),
  2677. 3: uint64(0xe9b5dba58189dbbc),
  2678. 4: uint64(0x3956c25bf348b538),
  2679. 5: uint64(0x59f111f1b605d019),
  2680. 6: uint64(0x923f82a4af194f9b),
  2681. 7: uint64(0xab1c5ed5da6d8118),
  2682. 8: uint64(0xd807aa98a3030242),
  2683. 9: uint64(0x12835b0145706fbe),
  2684. 10: uint64(0x243185be4ee4b28c),
  2685. 11: uint64(0x550c7dc3d5ffb4e2),
  2686. 12: uint64(0x72be5d74f27b896f),
  2687. 13: uint64(0x80deb1fe3b1696b1),
  2688. 14: uint64(0x9bdc06a725c71235),
  2689. 15: uint64(0xc19bf174cf692694),
  2690. 16: uint64(0xe49b69c19ef14ad2),
  2691. 17: uint64(0xefbe4786384f25e3),
  2692. 18: uint64(0x0fc19dc68b8cd5b5),
  2693. 19: uint64(0x240ca1cc77ac9c65),
  2694. 20: uint64(0x2de92c6f592b0275),
  2695. 21: uint64(0x4a7484aa6ea6e483),
  2696. 22: uint64(0x5cb0a9dcbd41fbd4),
  2697. 23: uint64(0x76f988da831153b5),
  2698. 24: uint64(0x983e5152ee66dfab),
  2699. 25: uint64(0xa831c66d2db43210),
  2700. 26: uint64(0xb00327c898fb213f),
  2701. 27: uint64(0xbf597fc7beef0ee4),
  2702. 28: uint64(0xc6e00bf33da88fc2),
  2703. 29: uint64(0xd5a79147930aa725),
  2704. 30: uint64(0x06ca6351e003826f),
  2705. 31: uint64(0x142929670a0e6e70),
  2706. 32: uint64(0x27b70a8546d22ffc),
  2707. 33: uint64(0x2e1b21385c26c926),
  2708. 34: uint64(0x4d2c6dfc5ac42aed),
  2709. 35: uint64(0x53380d139d95b3df),
  2710. 36: uint64(0x650a73548baf63de),
  2711. 37: uint64(0x766a0abb3c77b2a8),
  2712. 38: uint64(0x81c2c92e47edaee6),
  2713. 39: uint64(0x92722c851482353b),
  2714. 40: uint64(0xa2bfe8a14cf10364),
  2715. 41: uint64(0xa81a664bbc423001),
  2716. 42: uint64(0xc24b8b70d0f89791),
  2717. 43: uint64(0xc76c51a30654be30),
  2718. 44: uint64(0xd192e819d6ef5218),
  2719. 45: uint64(0xd69906245565a910),
  2720. 46: uint64(0xf40e35855771202a),
  2721. 47: uint64(0x106aa07032bbd1b8),
  2722. 48: uint64(0x19a4c116b8d2d0c8),
  2723. 49: uint64(0x1e376c085141ab53),
  2724. 50: uint64(0x2748774cdf8eeb99),
  2725. 51: uint64(0x34b0bcb5e19b48a8),
  2726. 52: uint64(0x391c0cb3c5c95a63),
  2727. 53: uint64(0x4ed8aa4ae3418acb),
  2728. 54: uint64(0x5b9cca4f7763e373),
  2729. 55: uint64(0x682e6ff3d6b2b8a3),
  2730. 56: uint64(0x748f82ee5defb2fc),
  2731. 57: uint64(0x78a5636f43172f60),
  2732. 58: uint64(0x84c87814a1f0ab72),
  2733. 59: uint64(0x8cc702081a6439ec),
  2734. 60: uint64(0x90befffa23631e28),
  2735. 61: uint64(0xa4506cebde82bde9),
  2736. 62: uint64(0xbef9a3f7b2c67915),
  2737. 63: uint64(0xc67178f2e372532b),
  2738. 64: uint64(0xca273eceea26619c),
  2739. 65: uint64(0xd186b8c721c0c207),
  2740. 66: uint64(0xeada7dd6cde0eb1e),
  2741. 67: uint64(0xf57d4f7fee6ed178),
  2742. 68: uint64(0x06f067aa72176fba),
  2743. 69: uint64(0x0a637dc5a2c898a6),
  2744. 70: uint64(0x113f9804bef90dae),
  2745. 71: uint64(0x1b710b35131c471b),
  2746. 72: uint64(0x28db77f523047d84),
  2747. 73: uint64(0x32caab7b40c72493),
  2748. 74: uint64(0x3c9ebe0a15c9bebc),
  2749. 75: uint64(0x431d67c49c100d4c),
  2750. 76: uint64(0x4cc5d4becb3e42b6),
  2751. 77: uint64(0x597f299cfc657e2a),
  2752. 78: uint64(0x5fcb6fab3ad6faec),
  2753. 79: uint64(0x6c44198c4a475817),
  2754. }
  2755. // C documentation
  2756. //
  2757. // /* Initial hash value H for SHA-512 */
  2758. var _sha512_initial_hash_value = [8]Tuint64_t{
  2759. 0: uint64(0x6a09e667f3bcc908),
  2760. 1: uint64(0xbb67ae8584caa73b),
  2761. 2: uint64(0x3c6ef372fe94f82b),
  2762. 3: uint64(0xa54ff53a5f1d36f1),
  2763. 4: uint64(0x510e527fade682d1),
  2764. 5: uint64(0x9b05688c2b3e6c1f),
  2765. 6: uint64(0x1f83d9abfb41bd6b),
  2766. 7: uint64(0x5be0cd19137e2179),
  2767. }
  2768. // C documentation
  2769. //
  2770. // /* Initial hash value H for SHA-224: */
  2771. var _sha224_initial_hash_value = [8]Tuint32_t{
  2772. 0: uint32(0xc1059ed8),
  2773. 1: uint32(0x367cd507),
  2774. 2: uint32(0x3070dd17),
  2775. 3: uint32(0xf70e5939),
  2776. 4: uint32(0xffc00b31),
  2777. 5: uint32(0x68581511),
  2778. 6: uint32(0x64f98fa7),
  2779. 7: uint32(0xbefa4fa4),
  2780. }
  2781. // C documentation
  2782. //
  2783. // /* Initial hash value H for SHA-384 */
  2784. var _sha384_initial_hash_value = [8]Tuint64_t{
  2785. 0: uint64(0xcbbb9d5dc1059ed8),
  2786. 1: uint64(0x629a292a367cd507),
  2787. 2: uint64(0x9159015a3070dd17),
  2788. 3: uint64(0x152fecd8f70e5939),
  2789. 4: uint64(0x67332667ffc00b31),
  2790. 5: uint64(0x8eb44a8768581511),
  2791. 6: uint64(0xdb0c2e0d64f98fa7),
  2792. 7: uint64(0x47b5481dbefa4fa4),
  2793. }
  2794. // C documentation
  2795. //
  2796. // /* Initial hash value H for SHA-512-256 */
  2797. var _sha512_256_initial_hash_value = [8]Tuint64_t{
  2798. 0: uint64(0x22312194fc2bf72c),
  2799. 1: uint64(0x9f555fa3c84c64c2),
  2800. 2: uint64(0x2393b86b6f53b151),
  2801. 3: uint64(0x963877195940eabd),
  2802. 4: uint64(0x96283ee2a88effe3),
  2803. 5: uint64(0xbe5e1e2553863992),
  2804. 6: uint64(0x2b0199fc2c85b8aa),
  2805. 7: uint64(0x0eb72ddc81c52ca2),
  2806. }
  2807. // C documentation
  2808. //
  2809. // /*** SHA-224: *********************************************************/
  2810. func XSHA224Init(tls *libc.TLS, context uintptr) {
  2811. libc.Xmemcpy(tls, context, uintptr(unsafe.Pointer(&_sha224_initial_hash_value)), uint64(32))
  2812. libc.Xmemset(tls, context+80, 0, uint64(128))
  2813. *(*Tuint64_t)(unsafe.Pointer(context + 64)) = uint64(0)
  2814. }
  2815. func XSHA224Final(tls *libc.TLS, digest uintptr, context uintptr) {
  2816. var i int32
  2817. _ = i
  2818. XSHA256Pad(tls, context)
  2819. /* Convert TO host byte order */
  2820. i = 0
  2821. for {
  2822. if !(i < int32(7)) {
  2823. break
  2824. }
  2825. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(4)))) = uint8(*(*Tuint32_t)(unsafe.Pointer(context + uintptr(i)*4)) >> int32(24))
  2826. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(4)) + 1)) = uint8(*(*Tuint32_t)(unsafe.Pointer(context + uintptr(i)*4)) >> int32(16))
  2827. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(4)) + 2)) = uint8(*(*Tuint32_t)(unsafe.Pointer(context + uintptr(i)*4)) >> int32(8))
  2828. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(4)) + 3)) = uint8(*(*Tuint32_t)(unsafe.Pointer(context + uintptr(i)*4)))
  2829. goto _1
  2830. _1:
  2831. ;
  2832. i++
  2833. }
  2834. libc.Xmemset(tls, context, 0, uint64(208))
  2835. }
  2836. // C documentation
  2837. //
  2838. // /*** SHA-256: *********************************************************/
  2839. func XSHA256Init(tls *libc.TLS, context uintptr) {
  2840. libc.Xmemcpy(tls, context, uintptr(unsafe.Pointer(&_sha256_initial_hash_value)), uint64(32))
  2841. libc.Xmemset(tls, context+80, 0, uint64(128))
  2842. *(*Tuint64_t)(unsafe.Pointer(context + 64)) = uint64(0)
  2843. }
  2844. func XSHA256Transform(tls *libc.TLS, state uintptr, data uintptr) {
  2845. bp := tls.Alloc(64)
  2846. defer tls.Free(64)
  2847. var T1, T2, a, b, c, d, e, f, g, h, s0, s1, v10, v2, v3, v4, v5, v6, v7, v8, v9 Tuint32_t
  2848. var j int32
  2849. var p1 uintptr
  2850. var _ /* W256 at bp+0 */ [16]Tuint32_t
  2851. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = T1, T2, a, b, c, d, e, f, g, h, j, s0, s1, v10, v2, v3, v4, v5, v6, v7, v8, v9, p1
  2852. /* Initialize registers with the prev. intermediate value */
  2853. a = *(*Tuint32_t)(unsafe.Pointer(state))
  2854. b = *(*Tuint32_t)(unsafe.Pointer(state + 1*4))
  2855. c = *(*Tuint32_t)(unsafe.Pointer(state + 2*4))
  2856. d = *(*Tuint32_t)(unsafe.Pointer(state + 3*4))
  2857. e = *(*Tuint32_t)(unsafe.Pointer(state + 4*4))
  2858. f = *(*Tuint32_t)(unsafe.Pointer(state + 5*4))
  2859. g = *(*Tuint32_t)(unsafe.Pointer(state + 6*4))
  2860. h = *(*Tuint32_t)(unsafe.Pointer(state + 7*4))
  2861. j = 0
  2862. for cond := true; cond; cond = j < int32(16) {
  2863. (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[j] = uint32(*(*Tuint8_t)(unsafe.Pointer(data + 3))) | uint32(*(*Tuint8_t)(unsafe.Pointer(data + 2)))<<libc.Int32FromInt32(8) | uint32(*(*Tuint8_t)(unsafe.Pointer(data + 1)))<<libc.Int32FromInt32(16) | uint32(*(*Tuint8_t)(unsafe.Pointer(data)))<<libc.Int32FromInt32(24)
  2864. data += uintptr(4)
  2865. /* Apply the SHA-256 compression function to update a..h */
  2866. T1 = h + (e>>libc.Int32FromInt32(6) | e<<(libc.Int32FromInt32(32)-libc.Int32FromInt32(6)) ^ (e>>libc.Int32FromInt32(11) | e<<(libc.Int32FromInt32(32)-libc.Int32FromInt32(11))) ^ (e>>libc.Int32FromInt32(25) | e<<(libc.Int32FromInt32(32)-libc.Int32FromInt32(25)))) + (e&f ^ ^e&g) + _K256[j] + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[j]
  2867. T2 = a>>libc.Int32FromInt32(2) | a<<(libc.Int32FromInt32(32)-libc.Int32FromInt32(2)) ^ (a>>libc.Int32FromInt32(13) | a<<(libc.Int32FromInt32(32)-libc.Int32FromInt32(13))) ^ (a>>libc.Int32FromInt32(22) | a<<(libc.Int32FromInt32(32)-libc.Int32FromInt32(22))) + (a&b ^ a&c ^ b&c)
  2868. h = g
  2869. g = f
  2870. f = e
  2871. e = d + T1
  2872. d = c
  2873. c = b
  2874. b = a
  2875. a = T1 + T2
  2876. j++
  2877. }
  2878. for cond := true; cond; cond = j < int32(64) {
  2879. /* Part of the message block expansion: */
  2880. s0 = (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[(j+int32(1))&int32(0x0f)]
  2881. s0 = s0>>libc.Int32FromInt32(7) | s0<<(libc.Int32FromInt32(32)-libc.Int32FromInt32(7)) ^ (s0>>libc.Int32FromInt32(18) | s0<<(libc.Int32FromInt32(32)-libc.Int32FromInt32(18))) ^ s0>>libc.Int32FromInt32(3)
  2882. s1 = (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[(j+int32(14))&int32(0x0f)]
  2883. s1 = s1>>libc.Int32FromInt32(17) | s1<<(libc.Int32FromInt32(32)-libc.Int32FromInt32(17)) ^ (s1>>libc.Int32FromInt32(19) | s1<<(libc.Int32FromInt32(32)-libc.Int32FromInt32(19))) ^ s1>>libc.Int32FromInt32(10)
  2884. /* Apply the SHA-256 compression function to update a..h */
  2885. p1 = bp + uintptr(j&int32(0x0f))*4
  2886. *(*Tuint32_t)(unsafe.Pointer(p1)) += s1 + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[(j+int32(9))&int32(0x0f)] + s0
  2887. T1 = h + (e>>libc.Int32FromInt32(6) | e<<(libc.Int32FromInt32(32)-libc.Int32FromInt32(6)) ^ (e>>libc.Int32FromInt32(11) | e<<(libc.Int32FromInt32(32)-libc.Int32FromInt32(11))) ^ (e>>libc.Int32FromInt32(25) | e<<(libc.Int32FromInt32(32)-libc.Int32FromInt32(25)))) + (e&f ^ ^e&g) + _K256[j] + *(*Tuint32_t)(unsafe.Pointer(p1))
  2888. T2 = a>>libc.Int32FromInt32(2) | a<<(libc.Int32FromInt32(32)-libc.Int32FromInt32(2)) ^ (a>>libc.Int32FromInt32(13) | a<<(libc.Int32FromInt32(32)-libc.Int32FromInt32(13))) ^ (a>>libc.Int32FromInt32(22) | a<<(libc.Int32FromInt32(32)-libc.Int32FromInt32(22))) + (a&b ^ a&c ^ b&c)
  2889. h = g
  2890. g = f
  2891. f = e
  2892. e = d + T1
  2893. d = c
  2894. c = b
  2895. b = a
  2896. a = T1 + T2
  2897. j++
  2898. }
  2899. /* Compute the current intermediate hash value */
  2900. *(*Tuint32_t)(unsafe.Pointer(state)) += a
  2901. *(*Tuint32_t)(unsafe.Pointer(state + 1*4)) += b
  2902. *(*Tuint32_t)(unsafe.Pointer(state + 2*4)) += c
  2903. *(*Tuint32_t)(unsafe.Pointer(state + 3*4)) += d
  2904. *(*Tuint32_t)(unsafe.Pointer(state + 4*4)) += e
  2905. *(*Tuint32_t)(unsafe.Pointer(state + 5*4)) += f
  2906. *(*Tuint32_t)(unsafe.Pointer(state + 6*4)) += g
  2907. *(*Tuint32_t)(unsafe.Pointer(state + 7*4)) += h
  2908. /* Clean up */
  2909. v10 = libc.Uint32FromInt32(0)
  2910. T2 = v10
  2911. v9 = v10
  2912. T1 = v9
  2913. v8 = v9
  2914. h = v8
  2915. v7 = v8
  2916. g = v7
  2917. v6 = v7
  2918. f = v6
  2919. v5 = v6
  2920. e = v5
  2921. v4 = v5
  2922. d = v4
  2923. v3 = v4
  2924. c = v3
  2925. v2 = v3
  2926. b = v2
  2927. a = v2
  2928. }
  2929. func XSHA256Update(tls *libc.TLS, context uintptr, data uintptr, len1 Tsize_t) {
  2930. var freespace, usedspace, v1, v2 Tsize_t
  2931. _, _, _, _ = freespace, usedspace, v1, v2
  2932. /* Calling with no data is valid (we do nothing) */
  2933. if len1 == uint64(0) {
  2934. return
  2935. }
  2936. usedspace = *(*Tuint64_t)(unsafe.Pointer(context + 64)) >> libc.Int32FromInt32(3) % uint64(m_SHA256_BLOCK_LENGTH)
  2937. if usedspace > uint64(0) {
  2938. /* Calculate how much free space is available in the buffer */
  2939. freespace = uint64(m_SHA256_BLOCK_LENGTH) - usedspace
  2940. if len1 >= freespace {
  2941. /* Fill the buffer completely and process it */
  2942. libc.Xmemcpy(tls, context+80+uintptr(usedspace), data, freespace)
  2943. *(*Tuint64_t)(unsafe.Pointer(context + 64)) += freespace << int32(3)
  2944. len1 -= freespace
  2945. data += uintptr(freespace)
  2946. XSHA256Transform(tls, context, context+80)
  2947. } else {
  2948. /* The buffer is not yet full */
  2949. libc.Xmemcpy(tls, context+80+uintptr(usedspace), data, len1)
  2950. *(*Tuint64_t)(unsafe.Pointer(context + 64)) += len1 << int32(3)
  2951. /* Clean up: */
  2952. v1 = libc.Uint64FromInt32(0)
  2953. freespace = v1
  2954. usedspace = v1
  2955. return
  2956. }
  2957. }
  2958. for len1 >= uint64(m_SHA256_BLOCK_LENGTH) {
  2959. /* Process as many complete blocks as we can */
  2960. XSHA256Transform(tls, context, data)
  2961. *(*Tuint64_t)(unsafe.Pointer(context + 64)) += libc.Uint64FromInt32(libc.Int32FromInt32(m_SHA256_BLOCK_LENGTH) << libc.Int32FromInt32(3))
  2962. len1 -= uint64(m_SHA256_BLOCK_LENGTH)
  2963. data += uintptr(m_SHA256_BLOCK_LENGTH)
  2964. }
  2965. if len1 > uint64(0) {
  2966. /* There's left-overs, so save 'em */
  2967. libc.Xmemcpy(tls, context+80, data, len1)
  2968. *(*Tuint64_t)(unsafe.Pointer(context + 64)) += len1 << int32(3)
  2969. }
  2970. /* Clean up: */
  2971. v2 = libc.Uint64FromInt32(0)
  2972. freespace = v2
  2973. usedspace = v2
  2974. }
  2975. func XSHA256Pad(tls *libc.TLS, context uintptr) {
  2976. var usedspace, v1 uint32
  2977. _, _ = usedspace, v1
  2978. usedspace = uint32(*(*Tuint64_t)(unsafe.Pointer(context + 64)) >> libc.Int32FromInt32(3) % uint64(m_SHA256_BLOCK_LENGTH))
  2979. if usedspace > uint32(0) {
  2980. /* Begin padding with a 1 bit: */
  2981. v1 = usedspace
  2982. usedspace++
  2983. *(*Tuint8_t)(unsafe.Pointer(context + 80 + uintptr(v1))) = uint8(0x80)
  2984. if usedspace <= libc.Uint32FromInt32(libc.Int32FromInt32(m_SHA256_BLOCK_LENGTH)-libc.Int32FromInt32(8)) {
  2985. /* Set-up for the last transform: */
  2986. libc.Xmemset(tls, context+80+uintptr(usedspace), 0, uint64(libc.Uint32FromInt32(libc.Int32FromInt32(m_SHA256_BLOCK_LENGTH)-libc.Int32FromInt32(8))-usedspace))
  2987. } else {
  2988. if usedspace < uint32(m_SHA256_BLOCK_LENGTH) {
  2989. libc.Xmemset(tls, context+80+uintptr(usedspace), 0, uint64(uint32(m_SHA256_BLOCK_LENGTH)-usedspace))
  2990. }
  2991. /* Do second-to-last transform: */
  2992. XSHA256Transform(tls, context, context+80)
  2993. /* Prepare for last transform: */
  2994. libc.Xmemset(tls, context+80, 0, libc.Uint64FromInt32(libc.Int32FromInt32(m_SHA256_BLOCK_LENGTH)-libc.Int32FromInt32(8)))
  2995. }
  2996. } else {
  2997. /* Set-up for the last transform: */
  2998. libc.Xmemset(tls, context+80, 0, libc.Uint64FromInt32(libc.Int32FromInt32(m_SHA256_BLOCK_LENGTH)-libc.Int32FromInt32(8)))
  2999. /* Begin padding with a 1 bit: */
  3000. *(*Tuint8_t)(unsafe.Pointer(context + 80)) = uint8(0x80)
  3001. }
  3002. /* Store the length of input data (in bits) in big endian format: */
  3003. *(*Tuint8_t)(unsafe.Pointer(context + 80 + uintptr(libc.Int32FromInt32(m_SHA256_BLOCK_LENGTH)-libc.Int32FromInt32(8)))) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + 64)) >> int32(56))
  3004. *(*Tuint8_t)(unsafe.Pointer(context + 80 + uintptr(libc.Int32FromInt32(m_SHA256_BLOCK_LENGTH)-libc.Int32FromInt32(8)) + 1)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + 64)) >> int32(48))
  3005. *(*Tuint8_t)(unsafe.Pointer(context + 80 + uintptr(libc.Int32FromInt32(m_SHA256_BLOCK_LENGTH)-libc.Int32FromInt32(8)) + 2)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + 64)) >> int32(40))
  3006. *(*Tuint8_t)(unsafe.Pointer(context + 80 + uintptr(libc.Int32FromInt32(m_SHA256_BLOCK_LENGTH)-libc.Int32FromInt32(8)) + 3)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + 64)) >> int32(32))
  3007. *(*Tuint8_t)(unsafe.Pointer(context + 80 + uintptr(libc.Int32FromInt32(m_SHA256_BLOCK_LENGTH)-libc.Int32FromInt32(8)) + 4)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + 64)) >> int32(24))
  3008. *(*Tuint8_t)(unsafe.Pointer(context + 80 + uintptr(libc.Int32FromInt32(m_SHA256_BLOCK_LENGTH)-libc.Int32FromInt32(8)) + 5)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + 64)) >> int32(16))
  3009. *(*Tuint8_t)(unsafe.Pointer(context + 80 + uintptr(libc.Int32FromInt32(m_SHA256_BLOCK_LENGTH)-libc.Int32FromInt32(8)) + 6)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + 64)) >> int32(8))
  3010. *(*Tuint8_t)(unsafe.Pointer(context + 80 + uintptr(libc.Int32FromInt32(m_SHA256_BLOCK_LENGTH)-libc.Int32FromInt32(8)) + 7)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + 64)))
  3011. /* Final transform: */
  3012. XSHA256Transform(tls, context, context+80)
  3013. /* Clean up: */
  3014. usedspace = uint32(0)
  3015. }
  3016. func XSHA256Final(tls *libc.TLS, digest uintptr, context uintptr) {
  3017. var i int32
  3018. _ = i
  3019. XSHA256Pad(tls, context)
  3020. /* Convert TO host byte order */
  3021. i = 0
  3022. for {
  3023. if !(i < int32(8)) {
  3024. break
  3025. }
  3026. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(4)))) = uint8(*(*Tuint32_t)(unsafe.Pointer(context + uintptr(i)*4)) >> int32(24))
  3027. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(4)) + 1)) = uint8(*(*Tuint32_t)(unsafe.Pointer(context + uintptr(i)*4)) >> int32(16))
  3028. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(4)) + 2)) = uint8(*(*Tuint32_t)(unsafe.Pointer(context + uintptr(i)*4)) >> int32(8))
  3029. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(4)) + 3)) = uint8(*(*Tuint32_t)(unsafe.Pointer(context + uintptr(i)*4)))
  3030. goto _1
  3031. _1:
  3032. ;
  3033. i++
  3034. }
  3035. libc.Xmemset(tls, context, 0, uint64(208))
  3036. }
  3037. // C documentation
  3038. //
  3039. // /*** SHA-512: *********************************************************/
  3040. func XSHA512Init(tls *libc.TLS, context uintptr) {
  3041. var v1 Tuint64_t
  3042. _ = v1
  3043. libc.Xmemcpy(tls, context, uintptr(unsafe.Pointer(&_sha512_initial_hash_value)), uint64(64))
  3044. libc.Xmemset(tls, context+80, 0, uint64(128))
  3045. v1 = libc.Uint64FromInt32(0)
  3046. *(*Tuint64_t)(unsafe.Pointer(context + 64 + 1*8)) = v1
  3047. *(*Tuint64_t)(unsafe.Pointer(context + 64)) = v1
  3048. }
  3049. func XSHA512Transform(tls *libc.TLS, state uintptr, data uintptr) {
  3050. bp := tls.Alloc(128)
  3051. defer tls.Free(128)
  3052. var T1, T2, a, b, c, d, e, f, g, h, s0, s1, v10, v2, v3, v4, v5, v6, v7, v8, v9 Tuint64_t
  3053. var j int32
  3054. var p1 uintptr
  3055. var _ /* W512 at bp+0 */ [16]Tuint64_t
  3056. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = T1, T2, a, b, c, d, e, f, g, h, j, s0, s1, v10, v2, v3, v4, v5, v6, v7, v8, v9, p1
  3057. /* Initialize registers with the prev. intermediate value */
  3058. a = *(*Tuint64_t)(unsafe.Pointer(state))
  3059. b = *(*Tuint64_t)(unsafe.Pointer(state + 1*8))
  3060. c = *(*Tuint64_t)(unsafe.Pointer(state + 2*8))
  3061. d = *(*Tuint64_t)(unsafe.Pointer(state + 3*8))
  3062. e = *(*Tuint64_t)(unsafe.Pointer(state + 4*8))
  3063. f = *(*Tuint64_t)(unsafe.Pointer(state + 5*8))
  3064. g = *(*Tuint64_t)(unsafe.Pointer(state + 6*8))
  3065. h = *(*Tuint64_t)(unsafe.Pointer(state + 7*8))
  3066. j = 0
  3067. for cond := true; cond; cond = j < int32(16) {
  3068. (*(*[16]Tuint64_t)(unsafe.Pointer(bp)))[j] = uint64(*(*Tuint8_t)(unsafe.Pointer(data + 7))) | uint64(*(*Tuint8_t)(unsafe.Pointer(data + 6)))<<libc.Int32FromInt32(8) | uint64(*(*Tuint8_t)(unsafe.Pointer(data + 5)))<<libc.Int32FromInt32(16) | uint64(*(*Tuint8_t)(unsafe.Pointer(data + 4)))<<libc.Int32FromInt32(24) | uint64(*(*Tuint8_t)(unsafe.Pointer(data + 3)))<<libc.Int32FromInt32(32) | uint64(*(*Tuint8_t)(unsafe.Pointer(data + 2)))<<libc.Int32FromInt32(40) | uint64(*(*Tuint8_t)(unsafe.Pointer(data + 1)))<<libc.Int32FromInt32(48) | uint64(*(*Tuint8_t)(unsafe.Pointer(data)))<<libc.Int32FromInt32(56)
  3069. data += uintptr(8)
  3070. /* Apply the SHA-512 compression function to update a..h */
  3071. T1 = h + (e>>libc.Int32FromInt32(14) | e<<(libc.Int32FromInt32(64)-libc.Int32FromInt32(14)) ^ (e>>libc.Int32FromInt32(18) | e<<(libc.Int32FromInt32(64)-libc.Int32FromInt32(18))) ^ (e>>libc.Int32FromInt32(41) | e<<(libc.Int32FromInt32(64)-libc.Int32FromInt32(41)))) + (e&f ^ ^e&g) + _K512[j] + (*(*[16]Tuint64_t)(unsafe.Pointer(bp)))[j]
  3072. T2 = a>>libc.Int32FromInt32(28) | a<<(libc.Int32FromInt32(64)-libc.Int32FromInt32(28)) ^ (a>>libc.Int32FromInt32(34) | a<<(libc.Int32FromInt32(64)-libc.Int32FromInt32(34))) ^ (a>>libc.Int32FromInt32(39) | a<<(libc.Int32FromInt32(64)-libc.Int32FromInt32(39))) + (a&b ^ a&c ^ b&c)
  3073. h = g
  3074. g = f
  3075. f = e
  3076. e = d + T1
  3077. d = c
  3078. c = b
  3079. b = a
  3080. a = T1 + T2
  3081. j++
  3082. }
  3083. for cond := true; cond; cond = j < int32(80) {
  3084. /* Part of the message block expansion: */
  3085. s0 = (*(*[16]Tuint64_t)(unsafe.Pointer(bp)))[(j+int32(1))&int32(0x0f)]
  3086. s0 = s0>>libc.Int32FromInt32(1) | s0<<(libc.Int32FromInt32(64)-libc.Int32FromInt32(1)) ^ (s0>>libc.Int32FromInt32(8) | s0<<(libc.Int32FromInt32(64)-libc.Int32FromInt32(8))) ^ s0>>libc.Int32FromInt32(7)
  3087. s1 = (*(*[16]Tuint64_t)(unsafe.Pointer(bp)))[(j+int32(14))&int32(0x0f)]
  3088. s1 = s1>>libc.Int32FromInt32(19) | s1<<(libc.Int32FromInt32(64)-libc.Int32FromInt32(19)) ^ (s1>>libc.Int32FromInt32(61) | s1<<(libc.Int32FromInt32(64)-libc.Int32FromInt32(61))) ^ s1>>libc.Int32FromInt32(6)
  3089. /* Apply the SHA-512 compression function to update a..h */
  3090. p1 = bp + uintptr(j&int32(0x0f))*8
  3091. *(*Tuint64_t)(unsafe.Pointer(p1)) += s1 + (*(*[16]Tuint64_t)(unsafe.Pointer(bp)))[(j+int32(9))&int32(0x0f)] + s0
  3092. T1 = h + (e>>libc.Int32FromInt32(14) | e<<(libc.Int32FromInt32(64)-libc.Int32FromInt32(14)) ^ (e>>libc.Int32FromInt32(18) | e<<(libc.Int32FromInt32(64)-libc.Int32FromInt32(18))) ^ (e>>libc.Int32FromInt32(41) | e<<(libc.Int32FromInt32(64)-libc.Int32FromInt32(41)))) + (e&f ^ ^e&g) + _K512[j] + *(*Tuint64_t)(unsafe.Pointer(p1))
  3093. T2 = a>>libc.Int32FromInt32(28) | a<<(libc.Int32FromInt32(64)-libc.Int32FromInt32(28)) ^ (a>>libc.Int32FromInt32(34) | a<<(libc.Int32FromInt32(64)-libc.Int32FromInt32(34))) ^ (a>>libc.Int32FromInt32(39) | a<<(libc.Int32FromInt32(64)-libc.Int32FromInt32(39))) + (a&b ^ a&c ^ b&c)
  3094. h = g
  3095. g = f
  3096. f = e
  3097. e = d + T1
  3098. d = c
  3099. c = b
  3100. b = a
  3101. a = T1 + T2
  3102. j++
  3103. }
  3104. /* Compute the current intermediate hash value */
  3105. *(*Tuint64_t)(unsafe.Pointer(state)) += a
  3106. *(*Tuint64_t)(unsafe.Pointer(state + 1*8)) += b
  3107. *(*Tuint64_t)(unsafe.Pointer(state + 2*8)) += c
  3108. *(*Tuint64_t)(unsafe.Pointer(state + 3*8)) += d
  3109. *(*Tuint64_t)(unsafe.Pointer(state + 4*8)) += e
  3110. *(*Tuint64_t)(unsafe.Pointer(state + 5*8)) += f
  3111. *(*Tuint64_t)(unsafe.Pointer(state + 6*8)) += g
  3112. *(*Tuint64_t)(unsafe.Pointer(state + 7*8)) += h
  3113. /* Clean up */
  3114. v10 = libc.Uint64FromInt32(0)
  3115. T2 = v10
  3116. v9 = v10
  3117. T1 = v9
  3118. v8 = v9
  3119. h = v8
  3120. v7 = v8
  3121. g = v7
  3122. v6 = v7
  3123. f = v6
  3124. v5 = v6
  3125. e = v5
  3126. v4 = v5
  3127. d = v4
  3128. v3 = v4
  3129. c = v3
  3130. v2 = v3
  3131. b = v2
  3132. a = v2
  3133. }
  3134. func XSHA512Update(tls *libc.TLS, context uintptr, data uintptr, len1 Tsize_t) {
  3135. var freespace, usedspace, v1, v2 Tsize_t
  3136. _, _, _, _ = freespace, usedspace, v1, v2
  3137. /* Calling with no data is valid (we do nothing) */
  3138. if len1 == uint64(0) {
  3139. return
  3140. }
  3141. usedspace = *(*Tuint64_t)(unsafe.Pointer(context + 64)) >> libc.Int32FromInt32(3) % uint64(m_SHA512_BLOCK_LENGTH)
  3142. if usedspace > uint64(0) {
  3143. /* Calculate how much free space is available in the buffer */
  3144. freespace = uint64(m_SHA512_BLOCK_LENGTH) - usedspace
  3145. if len1 >= freespace {
  3146. /* Fill the buffer completely and process it */
  3147. libc.Xmemcpy(tls, context+80+uintptr(usedspace), data, freespace)
  3148. *(*Tuint64_t)(unsafe.Pointer(context + 64)) += freespace << libc.Int32FromInt32(3)
  3149. if *(*Tuint64_t)(unsafe.Pointer(context + 64)) < freespace<<libc.Int32FromInt32(3) {
  3150. *(*Tuint64_t)(unsafe.Pointer(context + 64 + 1*8))++
  3151. }
  3152. len1 -= freespace
  3153. data += uintptr(freespace)
  3154. XSHA512Transform(tls, context, context+80)
  3155. } else {
  3156. /* The buffer is not yet full */
  3157. libc.Xmemcpy(tls, context+80+uintptr(usedspace), data, len1)
  3158. *(*Tuint64_t)(unsafe.Pointer(context + 64)) += len1 << libc.Int32FromInt32(3)
  3159. if *(*Tuint64_t)(unsafe.Pointer(context + 64)) < len1<<libc.Int32FromInt32(3) {
  3160. *(*Tuint64_t)(unsafe.Pointer(context + 64 + 1*8))++
  3161. }
  3162. /* Clean up: */
  3163. v1 = libc.Uint64FromInt32(0)
  3164. freespace = v1
  3165. usedspace = v1
  3166. return
  3167. }
  3168. }
  3169. for len1 >= uint64(m_SHA512_BLOCK_LENGTH) {
  3170. /* Process as many complete blocks as we can */
  3171. XSHA512Transform(tls, context, data)
  3172. *(*Tuint64_t)(unsafe.Pointer(context + 64)) += libc.Uint64FromInt32(libc.Int32FromInt32(m_SHA512_BLOCK_LENGTH) << libc.Int32FromInt32(3))
  3173. if *(*Tuint64_t)(unsafe.Pointer(context + 64)) < libc.Uint64FromInt32(libc.Int32FromInt32(m_SHA512_BLOCK_LENGTH)<<libc.Int32FromInt32(3)) {
  3174. *(*Tuint64_t)(unsafe.Pointer(context + 64 + 1*8))++
  3175. }
  3176. len1 -= uint64(m_SHA512_BLOCK_LENGTH)
  3177. data += uintptr(m_SHA512_BLOCK_LENGTH)
  3178. }
  3179. if len1 > uint64(0) {
  3180. /* There's left-overs, so save 'em */
  3181. libc.Xmemcpy(tls, context+80, data, len1)
  3182. *(*Tuint64_t)(unsafe.Pointer(context + 64)) += len1 << libc.Int32FromInt32(3)
  3183. if *(*Tuint64_t)(unsafe.Pointer(context + 64)) < len1<<libc.Int32FromInt32(3) {
  3184. *(*Tuint64_t)(unsafe.Pointer(context + 64 + 1*8))++
  3185. }
  3186. }
  3187. /* Clean up: */
  3188. v2 = libc.Uint64FromInt32(0)
  3189. freespace = v2
  3190. usedspace = v2
  3191. }
  3192. func XSHA512Pad(tls *libc.TLS, context uintptr) {
  3193. var usedspace, v1 uint32
  3194. _, _ = usedspace, v1
  3195. usedspace = uint32(*(*Tuint64_t)(unsafe.Pointer(context + 64)) >> libc.Int32FromInt32(3) % uint64(m_SHA512_BLOCK_LENGTH))
  3196. if usedspace > uint32(0) {
  3197. /* Begin padding with a 1 bit: */
  3198. v1 = usedspace
  3199. usedspace++
  3200. *(*Tuint8_t)(unsafe.Pointer(context + 80 + uintptr(v1))) = uint8(0x80)
  3201. if usedspace <= libc.Uint32FromInt32(libc.Int32FromInt32(m_SHA512_BLOCK_LENGTH)-libc.Int32FromInt32(16)) {
  3202. /* Set-up for the last transform: */
  3203. libc.Xmemset(tls, context+80+uintptr(usedspace), 0, uint64(libc.Uint32FromInt32(libc.Int32FromInt32(m_SHA512_BLOCK_LENGTH)-libc.Int32FromInt32(16))-usedspace))
  3204. } else {
  3205. if usedspace < uint32(m_SHA512_BLOCK_LENGTH) {
  3206. libc.Xmemset(tls, context+80+uintptr(usedspace), 0, uint64(uint32(m_SHA512_BLOCK_LENGTH)-usedspace))
  3207. }
  3208. /* Do second-to-last transform: */
  3209. XSHA512Transform(tls, context, context+80)
  3210. /* And set-up for the last transform: */
  3211. libc.Xmemset(tls, context+80, 0, libc.Uint64FromInt32(libc.Int32FromInt32(m_SHA512_BLOCK_LENGTH)-libc.Int32FromInt32(2)))
  3212. }
  3213. } else {
  3214. /* Prepare for final transform: */
  3215. libc.Xmemset(tls, context+80, 0, libc.Uint64FromInt32(libc.Int32FromInt32(m_SHA512_BLOCK_LENGTH)-libc.Int32FromInt32(16)))
  3216. /* Begin padding with a 1 bit: */
  3217. *(*Tuint8_t)(unsafe.Pointer(context + 80)) = uint8(0x80)
  3218. }
  3219. /* Store the length of input data (in bits) in big endian format: */
  3220. *(*Tuint8_t)(unsafe.Pointer(context + 80 + uintptr(libc.Int32FromInt32(m_SHA512_BLOCK_LENGTH)-libc.Int32FromInt32(16)))) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + 64 + 1*8)) >> int32(56))
  3221. *(*Tuint8_t)(unsafe.Pointer(context + 80 + uintptr(libc.Int32FromInt32(m_SHA512_BLOCK_LENGTH)-libc.Int32FromInt32(16)) + 1)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + 64 + 1*8)) >> int32(48))
  3222. *(*Tuint8_t)(unsafe.Pointer(context + 80 + uintptr(libc.Int32FromInt32(m_SHA512_BLOCK_LENGTH)-libc.Int32FromInt32(16)) + 2)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + 64 + 1*8)) >> int32(40))
  3223. *(*Tuint8_t)(unsafe.Pointer(context + 80 + uintptr(libc.Int32FromInt32(m_SHA512_BLOCK_LENGTH)-libc.Int32FromInt32(16)) + 3)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + 64 + 1*8)) >> int32(32))
  3224. *(*Tuint8_t)(unsafe.Pointer(context + 80 + uintptr(libc.Int32FromInt32(m_SHA512_BLOCK_LENGTH)-libc.Int32FromInt32(16)) + 4)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + 64 + 1*8)) >> int32(24))
  3225. *(*Tuint8_t)(unsafe.Pointer(context + 80 + uintptr(libc.Int32FromInt32(m_SHA512_BLOCK_LENGTH)-libc.Int32FromInt32(16)) + 5)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + 64 + 1*8)) >> int32(16))
  3226. *(*Tuint8_t)(unsafe.Pointer(context + 80 + uintptr(libc.Int32FromInt32(m_SHA512_BLOCK_LENGTH)-libc.Int32FromInt32(16)) + 6)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + 64 + 1*8)) >> int32(8))
  3227. *(*Tuint8_t)(unsafe.Pointer(context + 80 + uintptr(libc.Int32FromInt32(m_SHA512_BLOCK_LENGTH)-libc.Int32FromInt32(16)) + 7)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + 64 + 1*8)))
  3228. *(*Tuint8_t)(unsafe.Pointer(context + 80 + uintptr(libc.Int32FromInt32(m_SHA512_BLOCK_LENGTH)-libc.Int32FromInt32(16)+libc.Int32FromInt32(8)))) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + 64)) >> int32(56))
  3229. *(*Tuint8_t)(unsafe.Pointer(context + 80 + uintptr(libc.Int32FromInt32(m_SHA512_BLOCK_LENGTH)-libc.Int32FromInt32(16)+libc.Int32FromInt32(8)) + 1)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + 64)) >> int32(48))
  3230. *(*Tuint8_t)(unsafe.Pointer(context + 80 + uintptr(libc.Int32FromInt32(m_SHA512_BLOCK_LENGTH)-libc.Int32FromInt32(16)+libc.Int32FromInt32(8)) + 2)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + 64)) >> int32(40))
  3231. *(*Tuint8_t)(unsafe.Pointer(context + 80 + uintptr(libc.Int32FromInt32(m_SHA512_BLOCK_LENGTH)-libc.Int32FromInt32(16)+libc.Int32FromInt32(8)) + 3)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + 64)) >> int32(32))
  3232. *(*Tuint8_t)(unsafe.Pointer(context + 80 + uintptr(libc.Int32FromInt32(m_SHA512_BLOCK_LENGTH)-libc.Int32FromInt32(16)+libc.Int32FromInt32(8)) + 4)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + 64)) >> int32(24))
  3233. *(*Tuint8_t)(unsafe.Pointer(context + 80 + uintptr(libc.Int32FromInt32(m_SHA512_BLOCK_LENGTH)-libc.Int32FromInt32(16)+libc.Int32FromInt32(8)) + 5)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + 64)) >> int32(16))
  3234. *(*Tuint8_t)(unsafe.Pointer(context + 80 + uintptr(libc.Int32FromInt32(m_SHA512_BLOCK_LENGTH)-libc.Int32FromInt32(16)+libc.Int32FromInt32(8)) + 6)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + 64)) >> int32(8))
  3235. *(*Tuint8_t)(unsafe.Pointer(context + 80 + uintptr(libc.Int32FromInt32(m_SHA512_BLOCK_LENGTH)-libc.Int32FromInt32(16)+libc.Int32FromInt32(8)) + 7)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + 64)))
  3236. /* Final transform: */
  3237. XSHA512Transform(tls, context, context+80)
  3238. /* Clean up: */
  3239. usedspace = uint32(0)
  3240. }
  3241. func XSHA512Final(tls *libc.TLS, digest uintptr, context uintptr) {
  3242. var i int32
  3243. _ = i
  3244. XSHA512Pad(tls, context)
  3245. /* Convert TO host byte order */
  3246. i = 0
  3247. for {
  3248. if !(i < int32(8)) {
  3249. break
  3250. }
  3251. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)))) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)) >> int32(56))
  3252. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)) + 1)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)) >> int32(48))
  3253. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)) + 2)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)) >> int32(40))
  3254. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)) + 3)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)) >> int32(32))
  3255. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)) + 4)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)) >> int32(24))
  3256. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)) + 5)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)) >> int32(16))
  3257. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)) + 6)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)) >> int32(8))
  3258. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)) + 7)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)))
  3259. goto _1
  3260. _1:
  3261. ;
  3262. i++
  3263. }
  3264. libc.Xmemset(tls, context, 0, uint64(208))
  3265. }
  3266. // C documentation
  3267. //
  3268. // /*** SHA-384: *********************************************************/
  3269. func XSHA384Init(tls *libc.TLS, context uintptr) {
  3270. var v1 Tuint64_t
  3271. _ = v1
  3272. libc.Xmemcpy(tls, context, uintptr(unsafe.Pointer(&_sha384_initial_hash_value)), uint64(64))
  3273. libc.Xmemset(tls, context+80, 0, uint64(128))
  3274. v1 = libc.Uint64FromInt32(0)
  3275. *(*Tuint64_t)(unsafe.Pointer(context + 64 + 1*8)) = v1
  3276. *(*Tuint64_t)(unsafe.Pointer(context + 64)) = v1
  3277. }
  3278. func XSHA384Final(tls *libc.TLS, digest uintptr, context uintptr) {
  3279. var i int32
  3280. _ = i
  3281. XSHA512Pad(tls, context)
  3282. /* Convert TO host byte order */
  3283. i = 0
  3284. for {
  3285. if !(i < int32(6)) {
  3286. break
  3287. }
  3288. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)))) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)) >> int32(56))
  3289. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)) + 1)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)) >> int32(48))
  3290. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)) + 2)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)) >> int32(40))
  3291. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)) + 3)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)) >> int32(32))
  3292. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)) + 4)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)) >> int32(24))
  3293. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)) + 5)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)) >> int32(16))
  3294. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)) + 6)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)) >> int32(8))
  3295. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)) + 7)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)))
  3296. goto _1
  3297. _1:
  3298. ;
  3299. i++
  3300. }
  3301. /* Zero out state data */
  3302. libc.Xmemset(tls, context, 0, uint64(208))
  3303. }
  3304. // C documentation
  3305. //
  3306. // /*** SHA-512/256: *********************************************************/
  3307. func XSHA512_256Init(tls *libc.TLS, context uintptr) {
  3308. var v1 Tuint64_t
  3309. _ = v1
  3310. libc.Xmemcpy(tls, context, uintptr(unsafe.Pointer(&_sha512_256_initial_hash_value)), uint64(64))
  3311. libc.Xmemset(tls, context+80, 0, uint64(128))
  3312. v1 = libc.Uint64FromInt32(0)
  3313. *(*Tuint64_t)(unsafe.Pointer(context + 64 + 1*8)) = v1
  3314. *(*Tuint64_t)(unsafe.Pointer(context + 64)) = v1
  3315. }
  3316. func XSHA512_256Final(tls *libc.TLS, digest uintptr, context uintptr) {
  3317. var i int32
  3318. _ = i
  3319. XSHA512Pad(tls, context)
  3320. /* Convert TO host byte order */
  3321. i = 0
  3322. for {
  3323. if !(i < int32(4)) {
  3324. break
  3325. }
  3326. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)))) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)) >> int32(56))
  3327. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)) + 1)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)) >> int32(48))
  3328. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)) + 2)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)) >> int32(40))
  3329. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)) + 3)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)) >> int32(32))
  3330. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)) + 4)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)) >> int32(24))
  3331. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)) + 5)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)) >> int32(16))
  3332. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)) + 6)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)) >> int32(8))
  3333. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)) + 7)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)))
  3334. goto _1
  3335. _1:
  3336. ;
  3337. i++
  3338. }
  3339. /* Zero out state data */
  3340. libc.Xmemset(tls, context, 0, uint64(208))
  3341. }
  3342. const m_AT_EACCESS = 0x200
  3343. const m_AT_EMPTY_PATH = 0x1000
  3344. const m_AT_NO_AUTOMOUNT = 0x800
  3345. const m_AT_RECURSIVE = 0x8000
  3346. const m_AT_REMOVEDIR = 0x200
  3347. const m_AT_STATX_DONT_SYNC = 0x4000
  3348. const m_AT_STATX_FORCE_SYNC = 0x2000
  3349. const m_AT_STATX_SYNC_AS_STAT = 0x0000
  3350. const m_AT_STATX_SYNC_TYPE = 0x6000
  3351. const m_AT_SYMLINK_FOLLOW = 0x400
  3352. const m_AT_SYMLINK_NOFOLLOW = 0x100
  3353. const m_BUFSIZ = 1024
  3354. const m_DN_ACCESS = 0x00000001
  3355. const m_DN_ATTRIB = 0x00000020
  3356. const m_DN_CREATE = 0x00000004
  3357. const m_DN_DELETE = 0x00000008
  3358. const m_DN_MODIFY = 0x00000002
  3359. const m_DN_MULTISHOT = 0x80000000
  3360. const m_DN_RENAME = 0x00000010
  3361. const m_E2BIG = 7
  3362. const m_EACCES = 13
  3363. const m_EADDRINUSE = 98
  3364. const m_EADDRNOTAVAIL = 99
  3365. const m_EADV = 68
  3366. const m_EAFNOSUPPORT = 97
  3367. const m_EAGAIN = 11
  3368. const m_EALREADY = 114
  3369. const m_EBADE = 52
  3370. const m_EBADF = 9
  3371. const m_EBADFD = 77
  3372. const m_EBADMSG = 74
  3373. const m_EBADR = 53
  3374. const m_EBADRQC = 56
  3375. const m_EBADSLT = 57
  3376. const m_EBFONT = 59
  3377. const m_EBUSY = 16
  3378. const m_ECANCELED = 125
  3379. const m_ECHILD = 10
  3380. const m_ECHRNG = 44
  3381. const m_ECOMM = 70
  3382. const m_ECONNABORTED = 103
  3383. const m_ECONNREFUSED = 111
  3384. const m_ECONNRESET = 104
  3385. const m_EDEADLK = 35
  3386. const m_EDEADLOCK = "EDEADLK"
  3387. const m_EDESTADDRREQ = 89
  3388. const m_EDOM = 33
  3389. const m_EDOTDOT = 73
  3390. const m_EDQUOT = 122
  3391. const m_EEXIST = 17
  3392. const m_EFAULT = 14
  3393. const m_EFBIG = 27
  3394. const m_EHOSTDOWN = 112
  3395. const m_EHOSTUNREACH = 113
  3396. const m_EHWPOISON = 133
  3397. const m_EIDRM = 43
  3398. const m_EILSEQ = 84
  3399. const m_EINPROGRESS = 115
  3400. const m_EINTR = 4
  3401. const m_EINVAL = 22
  3402. const m_EIO = 5
  3403. const m_EISCONN = 106
  3404. const m_EISDIR = 21
  3405. const m_EISNAM = 120
  3406. const m_EKEYEXPIRED = 127
  3407. const m_EKEYREJECTED = 129
  3408. const m_EKEYREVOKED = 128
  3409. const m_EL2HLT = 51
  3410. const m_EL2NSYNC = 45
  3411. const m_EL3HLT = 46
  3412. const m_EL3RST = 47
  3413. const m_ELIBACC = 79
  3414. const m_ELIBBAD = 80
  3415. const m_ELIBEXEC = 83
  3416. const m_ELIBMAX = 82
  3417. const m_ELIBSCN = 81
  3418. const m_ELNRNG = 48
  3419. const m_ELOOP = 40
  3420. const m_EMEDIUMTYPE = 124
  3421. const m_EMFILE = 24
  3422. const m_EMLINK = 31
  3423. const m_EMSGSIZE = 90
  3424. const m_EMULTIHOP = 72
  3425. const m_ENAMETOOLONG = 36
  3426. const m_ENAVAIL = 119
  3427. const m_ENETDOWN = 100
  3428. const m_ENETRESET = 102
  3429. const m_ENETUNREACH = 101
  3430. const m_ENFILE = 23
  3431. const m_ENOANO = 55
  3432. const m_ENOBUFS = 105
  3433. const m_ENOCSI = 50
  3434. const m_ENODATA = 61
  3435. const m_ENODEV = 19
  3436. const m_ENOENT = 2
  3437. const m_ENOEXEC = 8
  3438. const m_ENOKEY = 126
  3439. const m_ENOLCK = 37
  3440. const m_ENOLINK = 67
  3441. const m_ENOMEDIUM = 123
  3442. const m_ENOMEM = 12
  3443. const m_ENOMSG = 42
  3444. const m_ENONET = 64
  3445. const m_ENOPKG = 65
  3446. const m_ENOPROTOOPT = 92
  3447. const m_ENOSPC = 28
  3448. const m_ENOSR = 63
  3449. const m_ENOSTR = 60
  3450. const m_ENOSYS = 38
  3451. const m_ENOTBLK = 15
  3452. const m_ENOTCONN = 107
  3453. const m_ENOTDIR = 20
  3454. const m_ENOTEMPTY = 39
  3455. const m_ENOTNAM = 118
  3456. const m_ENOTRECOVERABLE = 131
  3457. const m_ENOTSOCK = 88
  3458. const m_ENOTSUP = "EOPNOTSUPP"
  3459. const m_ENOTTY = 25
  3460. const m_ENOTUNIQ = 76
  3461. const m_ENXIO = 6
  3462. const m_EOPNOTSUPP = 95
  3463. const m_EOVERFLOW = 75
  3464. const m_EOWNERDEAD = 130
  3465. const m_EPERM = 1
  3466. const m_EPFNOSUPPORT = 96
  3467. const m_EPIPE = 32
  3468. const m_EPROTO = 71
  3469. const m_EPROTONOSUPPORT = 93
  3470. const m_EPROTOTYPE = 91
  3471. const m_ERANGE = 34
  3472. const m_EREMCHG = 78
  3473. const m_EREMOTE = 66
  3474. const m_EREMOTEIO = 121
  3475. const m_ERESTART = 85
  3476. const m_ERFKILL = 132
  3477. const m_EROFS = 30
  3478. const m_ESHUTDOWN = 108
  3479. const m_ESOCKTNOSUPPORT = 94
  3480. const m_ESPIPE = 29
  3481. const m_ESRCH = 3
  3482. const m_ESRMNT = 69
  3483. const m_ESTALE = 116
  3484. const m_ESTRPIPE = 86
  3485. const m_ETIME = 62
  3486. const m_ETIMEDOUT = 110
  3487. const m_ETOOMANYREFS = 109
  3488. const m_ETXTBSY = 26
  3489. const m_EUCLEAN = 117
  3490. const m_EUNATCH = 49
  3491. const m_EUSERS = 87
  3492. const m_EWOULDBLOCK = "EAGAIN"
  3493. const m_EXDEV = 18
  3494. const m_EXFULL = 54
  3495. const m_EXIT_FAILURE = 1
  3496. const m_EXIT_SUCCESS = 0
  3497. const m_FALLOC_FL_KEEP_SIZE = 1
  3498. const m_FALLOC_FL_PUNCH_HOLE = 2
  3499. const m_FAPPEND = "O_APPEND"
  3500. const m_FASYNC = "O_ASYNC"
  3501. const m_FD_CLOEXEC = 1
  3502. const m_FFSYNC = "O_SYNC"
  3503. const m_FILENAME_MAX = 4096
  3504. const m_FNDELAY = "O_NDELAY"
  3505. const m_FNONBLOCK = "O_NONBLOCK"
  3506. const m_FOPEN_MAX = 1000
  3507. const m_F_ADD_SEALS = 1033
  3508. const m_F_CANCELLK = 1029
  3509. const m_F_DUPFD = 0
  3510. const m_F_DUPFD_CLOEXEC = 1030
  3511. const m_F_GETFD = 1
  3512. const m_F_GETFL = 3
  3513. const m_F_GETLEASE = 1025
  3514. const m_F_GETLK = 5
  3515. const m_F_GETOWN = 9
  3516. const m_F_GETOWNER_UIDS = 17
  3517. const m_F_GETOWN_EX = 16
  3518. const m_F_GETPIPE_SZ = 1032
  3519. const m_F_GETSIG = 11
  3520. const m_F_GET_FILE_RW_HINT = 1037
  3521. const m_F_GET_RW_HINT = 1035
  3522. const m_F_GET_SEALS = 1034
  3523. const m_F_LOCK = 1
  3524. const m_F_NOTIFY = 1026
  3525. const m_F_OFD_GETLK = 36
  3526. const m_F_OFD_SETLK = 37
  3527. const m_F_OFD_SETLKW = 38
  3528. const m_F_OK = 0
  3529. const m_F_OWNER_GID = 2
  3530. const m_F_OWNER_PGRP = 2
  3531. const m_F_OWNER_PID = 1
  3532. const m_F_OWNER_TID = 0
  3533. const m_F_RDLCK = 0
  3534. const m_F_SEAL_FUTURE_WRITE = 0x0010
  3535. const m_F_SEAL_GROW = 0x0004
  3536. const m_F_SEAL_SEAL = 0x0001
  3537. const m_F_SEAL_SHRINK = 0x0002
  3538. const m_F_SEAL_WRITE = 0x0008
  3539. const m_F_SETFD = 2
  3540. const m_F_SETFL = 4
  3541. const m_F_SETLEASE = 1024
  3542. const m_F_SETLK = 6
  3543. const m_F_SETLKW = 7
  3544. const m_F_SETOWN = 8
  3545. const m_F_SETOWN_EX = 15
  3546. const m_F_SETPIPE_SZ = 1031
  3547. const m_F_SETSIG = 10
  3548. const m_F_SET_FILE_RW_HINT = 1038
  3549. const m_F_SET_RW_HINT = 1036
  3550. const m_F_TEST = 3
  3551. const m_F_TLOCK = 2
  3552. const m_F_ULOCK = 0
  3553. const m_F_UNLCK = 2
  3554. const m_F_WRLCK = 1
  3555. const m_L_INCR = 1
  3556. const m_L_SET = 0
  3557. const m_L_XTND = 2
  3558. const m_L_ctermid = 20
  3559. const m_L_cuserid = 20
  3560. const m_L_tmpnam = 20
  3561. const m_MAX_HANDLE_SZ = 128
  3562. const m_O_APPEND = 02000
  3563. const m_O_ASYNC = 020000
  3564. const m_O_CLOEXEC = 02000000
  3565. const m_O_CREAT = 0100
  3566. const m_O_DIRECT = 040000
  3567. const m_O_DIRECTORY = 0200000
  3568. const m_O_DSYNC = 010000
  3569. const m_O_EXCL = 0200
  3570. const m_O_EXEC = "O_PATH"
  3571. const m_O_LARGEFILE = 0100000
  3572. const m_O_NDELAY = "O_NONBLOCK"
  3573. const m_O_NOATIME = 01000000
  3574. const m_O_NOCTTY = 0400
  3575. const m_O_NOFOLLOW = 0400000
  3576. const m_O_NONBLOCK = 04000
  3577. const m_O_PATH = 010000000
  3578. const m_O_RDONLY = 0
  3579. const m_O_RDWR = 02
  3580. const m_O_RSYNC = 04010000
  3581. const m_O_SEARCH = "O_PATH"
  3582. const m_O_SYNC = 04010000
  3583. const m_O_TMPFILE = 020200000
  3584. const m_O_TRUNC = 01000
  3585. const m_O_TTY_INIT = 0
  3586. const m_O_WRONLY = 01
  3587. const m_POSIX_CLOSE_RESTART = 0
  3588. const m_POSIX_FADV_DONTNEED = 4
  3589. const m_POSIX_FADV_NOREUSE = 5
  3590. const m_POSIX_FADV_NORMAL = 0
  3591. const m_POSIX_FADV_RANDOM = 1
  3592. const m_POSIX_FADV_SEQUENTIAL = 2
  3593. const m_POSIX_FADV_WILLNEED = 3
  3594. const m_P_tmpdir = "/tmp"
  3595. const m_RAND_MAX = 0x7fffffff
  3596. const m_RWF_WRITE_LIFE_NOT_SET = 0
  3597. const m_RWH_WRITE_LIFE_EXTREME = 5
  3598. const m_RWH_WRITE_LIFE_LONG = 4
  3599. const m_RWH_WRITE_LIFE_MEDIUM = 3
  3600. const m_RWH_WRITE_LIFE_NONE = 1
  3601. const m_RWH_WRITE_LIFE_SHORT = 2
  3602. const m_R_OK = 4
  3603. const m_SEEK_DATA = 3
  3604. const m_SEEK_HOLE = 4
  3605. const m_SPLICE_F_GIFT = 8
  3606. const m_SPLICE_F_MORE = 4
  3607. const m_SPLICE_F_MOVE = 1
  3608. const m_SPLICE_F_NONBLOCK = 2
  3609. const m_STATX_ALL = 0xfff
  3610. const m_STATX_ATIME = 0x20
  3611. const m_STATX_BASIC_STATS = 0x7ff
  3612. const m_STATX_BLOCKS = 0x400
  3613. const m_STATX_BTIME = 0x800
  3614. const m_STATX_CTIME = 0x80
  3615. const m_STATX_GID = 0x10
  3616. const m_STATX_INO = 0x100
  3617. const m_STATX_MODE = 2
  3618. const m_STATX_MTIME = 0x40
  3619. const m_STATX_NLINK = 4
  3620. const m_STATX_SIZE = 0x200
  3621. const m_STATX_TYPE = 1
  3622. const m_STATX_UID = 8
  3623. const m_STDERR_FILENO = 2
  3624. const m_STDIN_FILENO = 0
  3625. const m_STDOUT_FILENO = 1
  3626. const m_SYNC_FILE_RANGE_WAIT_AFTER = 4
  3627. const m_SYNC_FILE_RANGE_WAIT_BEFORE = 1
  3628. const m_SYNC_FILE_RANGE_WRITE = 2
  3629. const m_S_IEXEC = "S_IXUSR"
  3630. const m_S_IFBLK = 0060000
  3631. const m_S_IFCHR = 0020000
  3632. const m_S_IFDIR = 0040000
  3633. const m_S_IFIFO = 0010000
  3634. const m_S_IFLNK = 0120000
  3635. const m_S_IFMT = 0170000
  3636. const m_S_IFREG = 0100000
  3637. const m_S_IFSOCK = 0140000
  3638. const m_S_IREAD = "S_IRUSR"
  3639. const m_S_IRGRP = 0040
  3640. const m_S_IROTH = 0004
  3641. const m_S_IRUSR = 0400
  3642. const m_S_IRWXG = 0070
  3643. const m_S_IRWXO = 0007
  3644. const m_S_IRWXU = 0700
  3645. const m_S_ISGID = 02000
  3646. const m_S_ISUID = 04000
  3647. const m_S_ISVTX = 01000
  3648. const m_S_IWGRP = 0020
  3649. const m_S_IWOTH = 0002
  3650. const m_S_IWRITE = "S_IWUSR"
  3651. const m_S_IWUSR = 0200
  3652. const m_S_IXGRP = 0010
  3653. const m_S_IXOTH = 0001
  3654. const m_S_IXUSR = 0100
  3655. const m_TMP_MAX = 10000
  3656. const m_UTIME_NOW = 0x3fffffff
  3657. const m_UTIME_OMIT = 0x3ffffffe
  3658. const m_WNOHANG = 1
  3659. const m_WUNTRACED = 2
  3660. const m_W_OK = 2
  3661. const m_X_OK = 1
  3662. const m__CS_GNU_LIBC_VERSION = 2
  3663. const m__CS_GNU_LIBPTHREAD_VERSION = 3
  3664. const m__CS_PATH = 0
  3665. const m__CS_POSIX_V5_WIDTH_RESTRICTED_ENVS = 4
  3666. const m__CS_POSIX_V6_ILP32_OFF32_CFLAGS = 1116
  3667. const m__CS_POSIX_V6_ILP32_OFF32_LDFLAGS = 1117
  3668. const m__CS_POSIX_V6_ILP32_OFF32_LIBS = 1118
  3669. const m__CS_POSIX_V6_ILP32_OFF32_LINTFLAGS = 1119
  3670. const m__CS_POSIX_V6_ILP32_OFFBIG_CFLAGS = 1120
  3671. const m__CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS = 1121
  3672. const m__CS_POSIX_V6_ILP32_OFFBIG_LIBS = 1122
  3673. const m__CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS = 1123
  3674. const m__CS_POSIX_V6_LP64_OFF64_CFLAGS = 1124
  3675. const m__CS_POSIX_V6_LP64_OFF64_LDFLAGS = 1125
  3676. const m__CS_POSIX_V6_LP64_OFF64_LIBS = 1126
  3677. const m__CS_POSIX_V6_LP64_OFF64_LINTFLAGS = 1127
  3678. const m__CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS = 1128
  3679. const m__CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS = 1129
  3680. const m__CS_POSIX_V6_LPBIG_OFFBIG_LIBS = 1130
  3681. const m__CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS = 1131
  3682. const m__CS_POSIX_V6_WIDTH_RESTRICTED_ENVS = 1
  3683. const m__CS_POSIX_V7_ILP32_OFF32_CFLAGS = 1132
  3684. const m__CS_POSIX_V7_ILP32_OFF32_LDFLAGS = 1133
  3685. const m__CS_POSIX_V7_ILP32_OFF32_LIBS = 1134
  3686. const m__CS_POSIX_V7_ILP32_OFF32_LINTFLAGS = 1135
  3687. const m__CS_POSIX_V7_ILP32_OFFBIG_CFLAGS = 1136
  3688. const m__CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS = 1137
  3689. const m__CS_POSIX_V7_ILP32_OFFBIG_LIBS = 1138
  3690. const m__CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS = 1139
  3691. const m__CS_POSIX_V7_LP64_OFF64_CFLAGS = 1140
  3692. const m__CS_POSIX_V7_LP64_OFF64_LDFLAGS = 1141
  3693. const m__CS_POSIX_V7_LP64_OFF64_LIBS = 1142
  3694. const m__CS_POSIX_V7_LP64_OFF64_LINTFLAGS = 1143
  3695. const m__CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS = 1144
  3696. const m__CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS = 1145
  3697. const m__CS_POSIX_V7_LPBIG_OFFBIG_LIBS = 1146
  3698. const m__CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS = 1147
  3699. const m__CS_POSIX_V7_THREADS_CFLAGS = 1150
  3700. const m__CS_POSIX_V7_THREADS_LDFLAGS = 1151
  3701. const m__CS_POSIX_V7_WIDTH_RESTRICTED_ENVS = 5
  3702. const m__CS_V6_ENV = 1148
  3703. const m__CS_V7_ENV = 1149
  3704. const m__IOFBF = 0
  3705. const m__IOLBF = 1
  3706. const m__IONBF = 2
  3707. const m__PC_2_SYMLINKS = 20
  3708. const m__PC_ALLOC_SIZE_MIN = 18
  3709. const m__PC_ASYNC_IO = 10
  3710. const m__PC_CHOWN_RESTRICTED = 6
  3711. const m__PC_FILESIZEBITS = 13
  3712. const m__PC_LINK_MAX = 0
  3713. const m__PC_MAX_CANON = 1
  3714. const m__PC_MAX_INPUT = 2
  3715. const m__PC_NAME_MAX = 3
  3716. const m__PC_NO_TRUNC = 7
  3717. const m__PC_PATH_MAX = 4
  3718. const m__PC_PIPE_BUF = 5
  3719. const m__PC_PRIO_IO = 11
  3720. const m__PC_REC_INCR_XFER_SIZE = 14
  3721. const m__PC_REC_MAX_XFER_SIZE = 15
  3722. const m__PC_REC_MIN_XFER_SIZE = 16
  3723. const m__PC_REC_XFER_ALIGN = 17
  3724. const m__PC_SOCK_MAXBUF = 12
  3725. const m__PC_SYMLINK_MAX = 19
  3726. const m__PC_SYNC_IO = 9
  3727. const m__PC_VDISABLE = 8
  3728. const m__POSIX2_C_BIND = "_POSIX_VERSION"
  3729. const m__POSIX2_VERSION = "_POSIX_VERSION"
  3730. const m__POSIX_ADVISORY_INFO = "_POSIX_VERSION"
  3731. const m__POSIX_ASYNCHRONOUS_IO = "_POSIX_VERSION"
  3732. const m__POSIX_BARRIERS = "_POSIX_VERSION"
  3733. const m__POSIX_CHOWN_RESTRICTED = 1
  3734. const m__POSIX_CLOCK_SELECTION = "_POSIX_VERSION"
  3735. const m__POSIX_CPUTIME = "_POSIX_VERSION"
  3736. const m__POSIX_FSYNC = "_POSIX_VERSION"
  3737. const m__POSIX_IPV6 = "_POSIX_VERSION"
  3738. const m__POSIX_JOB_CONTROL = 1
  3739. const m__POSIX_MAPPED_FILES = "_POSIX_VERSION"
  3740. const m__POSIX_MEMLOCK = "_POSIX_VERSION"
  3741. const m__POSIX_MEMLOCK_RANGE = "_POSIX_VERSION"
  3742. const m__POSIX_MEMORY_PROTECTION = "_POSIX_VERSION"
  3743. const m__POSIX_MESSAGE_PASSING = "_POSIX_VERSION"
  3744. const m__POSIX_MONOTONIC_CLOCK = "_POSIX_VERSION"
  3745. const m__POSIX_NO_TRUNC = 1
  3746. const m__POSIX_RAW_SOCKETS = "_POSIX_VERSION"
  3747. const m__POSIX_READER_WRITER_LOCKS = "_POSIX_VERSION"
  3748. const m__POSIX_REALTIME_SIGNALS = "_POSIX_VERSION"
  3749. const m__POSIX_REGEXP = 1
  3750. const m__POSIX_SAVED_IDS = 1
  3751. const m__POSIX_SEMAPHORES = "_POSIX_VERSION"
  3752. const m__POSIX_SHARED_MEMORY_OBJECTS = "_POSIX_VERSION"
  3753. const m__POSIX_SHELL = 1
  3754. const m__POSIX_SPAWN = "_POSIX_VERSION"
  3755. const m__POSIX_SPIN_LOCKS = "_POSIX_VERSION"
  3756. const m__POSIX_THREADS = "_POSIX_VERSION"
  3757. const m__POSIX_THREAD_ATTR_STACKADDR = "_POSIX_VERSION"
  3758. const m__POSIX_THREAD_ATTR_STACKSIZE = "_POSIX_VERSION"
  3759. const m__POSIX_THREAD_CPUTIME = "_POSIX_VERSION"
  3760. const m__POSIX_THREAD_PRIORITY_SCHEDULING = "_POSIX_VERSION"
  3761. const m__POSIX_THREAD_PROCESS_SHARED = "_POSIX_VERSION"
  3762. const m__POSIX_THREAD_SAFE_FUNCTIONS = "_POSIX_VERSION"
  3763. const m__POSIX_TIMEOUTS = "_POSIX_VERSION"
  3764. const m__POSIX_TIMERS = "_POSIX_VERSION"
  3765. const m__POSIX_V6_LP64_OFF64 = 1
  3766. const m__POSIX_V7_LP64_OFF64 = 1
  3767. const m__POSIX_VDISABLE = 0
  3768. const m__POSIX_VERSION = 200809
  3769. const m__SC_2_CHAR_TERM = 95
  3770. const m__SC_2_C_BIND = 47
  3771. const m__SC_2_C_DEV = 48
  3772. const m__SC_2_FORT_DEV = 49
  3773. const m__SC_2_FORT_RUN = 50
  3774. const m__SC_2_LOCALEDEF = 52
  3775. const m__SC_2_PBS = 168
  3776. const m__SC_2_PBS_ACCOUNTING = 169
  3777. const m__SC_2_PBS_CHECKPOINT = 175
  3778. const m__SC_2_PBS_LOCATE = 170
  3779. const m__SC_2_PBS_MESSAGE = 171
  3780. const m__SC_2_PBS_TRACK = 172
  3781. const m__SC_2_SW_DEV = 51
  3782. const m__SC_2_UPE = 97
  3783. const m__SC_2_VERSION = 46
  3784. const m__SC_ADVISORY_INFO = 132
  3785. const m__SC_AIO_LISTIO_MAX = 23
  3786. const m__SC_AIO_MAX = 24
  3787. const m__SC_AIO_PRIO_DELTA_MAX = 25
  3788. const m__SC_ARG_MAX = 0
  3789. const m__SC_ASYNCHRONOUS_IO = 12
  3790. const m__SC_ATEXIT_MAX = 87
  3791. const m__SC_AVPHYS_PAGES = 86
  3792. const m__SC_BARRIERS = 133
  3793. const m__SC_BC_BASE_MAX = 36
  3794. const m__SC_BC_DIM_MAX = 37
  3795. const m__SC_BC_SCALE_MAX = 38
  3796. const m__SC_BC_STRING_MAX = 39
  3797. const m__SC_CHILD_MAX = 1
  3798. const m__SC_CLK_TCK = 2
  3799. const m__SC_CLOCK_SELECTION = 137
  3800. const m__SC_COLL_WEIGHTS_MAX = 40
  3801. const m__SC_CPUTIME = 138
  3802. const m__SC_DELAYTIMER_MAX = 26
  3803. const m__SC_EXPR_NEST_MAX = 42
  3804. const m__SC_FSYNC = 15
  3805. const m__SC_GETGR_R_SIZE_MAX = 69
  3806. const m__SC_GETPW_R_SIZE_MAX = 70
  3807. const m__SC_HOST_NAME_MAX = 180
  3808. const m__SC_IOV_MAX = 60
  3809. const m__SC_IPV6 = 235
  3810. const m__SC_JOB_CONTROL = 7
  3811. const m__SC_LINE_MAX = 43
  3812. const m__SC_LOGIN_NAME_MAX = 71
  3813. const m__SC_MAPPED_FILES = 16
  3814. const m__SC_MEMLOCK = 17
  3815. const m__SC_MEMLOCK_RANGE = 18
  3816. const m__SC_MEMORY_PROTECTION = 19
  3817. const m__SC_MESSAGE_PASSING = 20
  3818. const m__SC_MINSIGSTKSZ = 249
  3819. const m__SC_MONOTONIC_CLOCK = 149
  3820. const m__SC_MQ_OPEN_MAX = 27
  3821. const m__SC_MQ_PRIO_MAX = 28
  3822. const m__SC_NGROUPS_MAX = 3
  3823. const m__SC_NPROCESSORS_CONF = 83
  3824. const m__SC_NPROCESSORS_ONLN = 84
  3825. const m__SC_NZERO = 109
  3826. const m__SC_OPEN_MAX = 4
  3827. const m__SC_PAGESIZE = 30
  3828. const m__SC_PAGE_SIZE = 30
  3829. const m__SC_PASS_MAX = 88
  3830. const m__SC_PHYS_PAGES = 85
  3831. const m__SC_PRIORITIZED_IO = 13
  3832. const m__SC_PRIORITY_SCHEDULING = 10
  3833. const m__SC_RAW_SOCKETS = 236
  3834. const m__SC_READER_WRITER_LOCKS = 153
  3835. const m__SC_REALTIME_SIGNALS = 9
  3836. const m__SC_REGEXP = 155
  3837. const m__SC_RE_DUP_MAX = 44
  3838. const m__SC_RTSIG_MAX = 31
  3839. const m__SC_SAVED_IDS = 8
  3840. const m__SC_SEMAPHORES = 21
  3841. const m__SC_SEM_NSEMS_MAX = 32
  3842. const m__SC_SEM_VALUE_MAX = 33
  3843. const m__SC_SHARED_MEMORY_OBJECTS = 22
  3844. const m__SC_SHELL = 157
  3845. const m__SC_SIGQUEUE_MAX = 34
  3846. const m__SC_SIGSTKSZ = 250
  3847. const m__SC_SPAWN = 159
  3848. const m__SC_SPIN_LOCKS = 154
  3849. const m__SC_SPORADIC_SERVER = 160
  3850. const m__SC_SS_REPL_MAX = 241
  3851. const m__SC_STREAMS = 174
  3852. const m__SC_STREAM_MAX = 5
  3853. const m__SC_SYMLOOP_MAX = 173
  3854. const m__SC_SYNCHRONIZED_IO = 14
  3855. const m__SC_THREADS = 67
  3856. const m__SC_THREAD_ATTR_STACKADDR = 77
  3857. const m__SC_THREAD_ATTR_STACKSIZE = 78
  3858. const m__SC_THREAD_CPUTIME = 139
  3859. const m__SC_THREAD_DESTRUCTOR_ITERATIONS = 73
  3860. const m__SC_THREAD_KEYS_MAX = 74
  3861. const m__SC_THREAD_PRIORITY_SCHEDULING = 79
  3862. const m__SC_THREAD_PRIO_INHERIT = 80
  3863. const m__SC_THREAD_PRIO_PROTECT = 81
  3864. const m__SC_THREAD_PROCESS_SHARED = 82
  3865. const m__SC_THREAD_ROBUST_PRIO_INHERIT = 247
  3866. const m__SC_THREAD_ROBUST_PRIO_PROTECT = 248
  3867. const m__SC_THREAD_SAFE_FUNCTIONS = 68
  3868. const m__SC_THREAD_SPORADIC_SERVER = 161
  3869. const m__SC_THREAD_STACK_MIN = 75
  3870. const m__SC_THREAD_THREADS_MAX = 76
  3871. const m__SC_TIMEOUTS = 164
  3872. const m__SC_TIMERS = 11
  3873. const m__SC_TIMER_MAX = 35
  3874. const m__SC_TRACE = 181
  3875. const m__SC_TRACE_EVENT_FILTER = 182
  3876. const m__SC_TRACE_EVENT_NAME_MAX = 242
  3877. const m__SC_TRACE_INHERIT = 183
  3878. const m__SC_TRACE_LOG = 184
  3879. const m__SC_TRACE_NAME_MAX = 243
  3880. const m__SC_TRACE_SYS_MAX = 244
  3881. const m__SC_TRACE_USER_EVENT_MAX = 245
  3882. const m__SC_TTY_NAME_MAX = 72
  3883. const m__SC_TYPED_MEMORY_OBJECTS = 165
  3884. const m__SC_TZNAME_MAX = 6
  3885. const m__SC_UIO_MAXIOV = 60
  3886. const m__SC_V6_ILP32_OFF32 = 176
  3887. const m__SC_V6_ILP32_OFFBIG = 177
  3888. const m__SC_V6_LP64_OFF64 = 178
  3889. const m__SC_V6_LPBIG_OFFBIG = 179
  3890. const m__SC_V7_ILP32_OFF32 = 237
  3891. const m__SC_V7_ILP32_OFFBIG = 238
  3892. const m__SC_V7_LP64_OFF64 = 239
  3893. const m__SC_V7_LPBIG_OFFBIG = 240
  3894. const m__SC_VERSION = 29
  3895. const m__SC_XBS5_ILP32_OFF32 = 125
  3896. const m__SC_XBS5_ILP32_OFFBIG = 126
  3897. const m__SC_XBS5_LP64_OFF64 = 127
  3898. const m__SC_XBS5_LPBIG_OFFBIG = 128
  3899. const m__SC_XOPEN_CRYPT = 92
  3900. const m__SC_XOPEN_ENH_I18N = 93
  3901. const m__SC_XOPEN_LEGACY = 129
  3902. const m__SC_XOPEN_REALTIME = 130
  3903. const m__SC_XOPEN_REALTIME_THREADS = 131
  3904. const m__SC_XOPEN_SHM = 94
  3905. const m__SC_XOPEN_STREAMS = 246
  3906. const m__SC_XOPEN_UNIX = 91
  3907. const m__SC_XOPEN_VERSION = 89
  3908. const m__SC_XOPEN_XCU_VERSION = 90
  3909. const m__SC_XOPEN_XPG2 = 98
  3910. const m__SC_XOPEN_XPG3 = 99
  3911. const m__SC_XOPEN_XPG4 = 100
  3912. const m__XOPEN_ENH_I18N = 1
  3913. const m__XOPEN_UNIX = 1
  3914. const m__XOPEN_VERSION = 700
  3915. const m_alloca = "__builtin_alloca"
  3916. const m_loff_t = "off_t"
  3917. type Tstat = struct {
  3918. Fst_dev Tdev_t
  3919. Fst_ino Tino_t
  3920. Fst_mode Tmode_t
  3921. Fst_nlink Tnlink_t
  3922. Fst_uid Tuid_t
  3923. Fst_gid Tgid_t
  3924. Fst_rdev Tdev_t
  3925. F__pad uint64
  3926. Fst_size Toff_t
  3927. Fst_blksize Tblksize_t
  3928. F__pad2 int32
  3929. Fst_blocks Tblkcnt_t
  3930. Fst_atim Ttimespec
  3931. Fst_mtim Ttimespec
  3932. Fst_ctim Ttimespec
  3933. F__unused [2]uint32
  3934. }
  3935. type Tstatx_timestamp = struct {
  3936. Ftv_sec Tint64_t
  3937. Ftv_nsec Tuint32_t
  3938. F__pad Tuint32_t
  3939. }
  3940. type Tstatx = struct {
  3941. Fstx_mask Tuint32_t
  3942. Fstx_blksize Tuint32_t
  3943. Fstx_attributes Tuint64_t
  3944. Fstx_nlink Tuint32_t
  3945. Fstx_uid Tuint32_t
  3946. Fstx_gid Tuint32_t
  3947. Fstx_mode Tuint16_t
  3948. F__pad0 [1]Tuint16_t
  3949. Fstx_ino Tuint64_t
  3950. Fstx_size Tuint64_t
  3951. Fstx_blocks Tuint64_t
  3952. Fstx_attributes_mask Tuint64_t
  3953. Fstx_atime Tstatx_timestamp
  3954. Fstx_btime Tstatx_timestamp
  3955. Fstx_ctime Tstatx_timestamp
  3956. Fstx_mtime Tstatx_timestamp
  3957. Fstx_rdev_major Tuint32_t
  3958. Fstx_rdev_minor Tuint32_t
  3959. Fstx_dev_major Tuint32_t
  3960. Fstx_dev_minor Tuint32_t
  3961. F__pad1 [14]Tuint64_t
  3962. }
  3963. type Tiovec = struct {
  3964. Fiov_base uintptr
  3965. Fiov_len Tsize_t
  3966. }
  3967. type Tflock = struct {
  3968. Fl_type int16
  3969. Fl_whence int16
  3970. Fl_start Toff_t
  3971. Fl_len Toff_t
  3972. Fl_pid Tpid_t
  3973. }
  3974. type Tfile_handle = struct {
  3975. Fhandle_bytes uint32
  3976. Fhandle_type int32
  3977. }
  3978. type Tf_owner_ex = struct {
  3979. Ftype1 int32
  3980. Fpid Tpid_t
  3981. }
  3982. type Twchar_t = int32
  3983. type Tdiv_t = struct {
  3984. Fquot int32
  3985. Frem int32
  3986. }
  3987. type Tldiv_t = struct {
  3988. Fquot int64
  3989. Frem int64
  3990. }
  3991. type Tlldiv_t = struct {
  3992. Fquot int64
  3993. Frem int64
  3994. }
  3995. type Tva_list = uintptr
  3996. type t__isoc_va_list = uintptr
  3997. type Tfpos_t = struct {
  3998. F__lldata [0]int64
  3999. F__align [0]float64
  4000. F__opaque [16]int8
  4001. }
  4002. type T_G_fpos64_t = Tfpos_t
  4003. type Tcookie_io_functions_t = struct {
  4004. Fread uintptr
  4005. Fwrite uintptr
  4006. Fseek uintptr
  4007. Fclose1 uintptr
  4008. }
  4009. type T_IO_cookie_io_functions_t = Tcookie_io_functions_t
  4010. // C documentation
  4011. //
  4012. // /* ARGSUSED */
  4013. func XMD2End(tls *libc.TLS, ctx uintptr, buf uintptr) (r uintptr) {
  4014. bp := tls.Alloc(16)
  4015. defer tls.Free(16)
  4016. var i int32
  4017. var v1 uintptr
  4018. var v2 bool
  4019. var _ /* digest at bp+0 */ [16]Tuint8_t
  4020. _, _, _ = i, v1, v2
  4021. if v2 = buf == libc.UintptrFromInt32(0); v2 {
  4022. v1 = libc.Xmalloc(tls, uint64(m_MD2_DIGEST_STRING_LENGTH))
  4023. buf = v1
  4024. }
  4025. if v2 && v1 == libc.UintptrFromInt32(0) {
  4026. return libc.UintptrFromInt32(0)
  4027. }
  4028. XMD2Final(tls, bp, ctx)
  4029. i = 0
  4030. for {
  4031. if !(i < int32(m_MD2_DIGEST_LENGTH)) {
  4032. break
  4033. }
  4034. *(*int8)(unsafe.Pointer(buf + uintptr(i+i))) = _hex[libc.Int32FromUint8((*(*[16]Tuint8_t)(unsafe.Pointer(bp)))[i])>>int32(4)]
  4035. *(*int8)(unsafe.Pointer(buf + uintptr(i+i+int32(1)))) = _hex[libc.Int32FromUint8((*(*[16]Tuint8_t)(unsafe.Pointer(bp)))[i])&int32(0x0f)]
  4036. goto _3
  4037. _3:
  4038. ;
  4039. i++
  4040. }
  4041. *(*int8)(unsafe.Pointer(buf + uintptr(i+i))) = int8('\000')
  4042. libc.Xmemset(tls, bp, 0, uint64(16))
  4043. return buf
  4044. }
  4045. var _hex = [17]int8{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}
  4046. func XMD2FileChunk(tls *libc.TLS, filename uintptr, buf uintptr, off Toff_t, len1 Toff_t) (r uintptr) {
  4047. bp := tls.Alloc(1232)
  4048. defer tls.Free(1232)
  4049. var fd, save_errno, v1 int32
  4050. var nr, v2 Tssize_t
  4051. var v3 int64
  4052. var v4 bool
  4053. var v5 uintptr
  4054. var _ /* buffer at bp+128 */ [1024]Tuint8_t
  4055. var _ /* ctx at bp+1152 */ TMD2_CTX
  4056. var _ /* sb at bp+0 */ Tstat
  4057. _, _, _, _, _, _, _, _ = fd, nr, save_errno, v1, v2, v3, v4, v5
  4058. XMD2Init(tls, bp+1152)
  4059. v1 = libc.Xopen(tls, filename, m_O_RDONLY, 0)
  4060. fd = v1
  4061. if v1 < 0 {
  4062. return libc.UintptrFromInt32(0)
  4063. }
  4064. if len1 == 0 {
  4065. if libc.Xfstat(tls, fd, bp) == -int32(1) {
  4066. libc.Xclose(tls, fd)
  4067. return libc.UintptrFromInt32(0)
  4068. }
  4069. len1 = (*(*Tstat)(unsafe.Pointer(bp))).Fst_size
  4070. }
  4071. if off > 0 && libc.Xlseek(tls, fd, off, 0) < 0 {
  4072. libc.Xclose(tls, fd)
  4073. return libc.UintptrFromInt32(0)
  4074. }
  4075. for {
  4076. if libc.Int64FromInt64(1024) < len1 {
  4077. v3 = libc.Int64FromInt64(1024)
  4078. } else {
  4079. v3 = len1
  4080. }
  4081. v2 = libc.Xread(tls, fd, bp+128, libc.Uint64FromInt64(v3))
  4082. nr = v2
  4083. if !(v2 > 0) {
  4084. break
  4085. }
  4086. XMD2Update(tls, bp+1152, bp+128, uint32(libc.Uint64FromInt64(nr)))
  4087. if v4 = len1 > 0; v4 {
  4088. len1 -= nr
  4089. }
  4090. if v4 && len1 == 0 {
  4091. break
  4092. }
  4093. }
  4094. save_errno = *(*int32)(unsafe.Pointer(libc.X__errno_location(tls)))
  4095. libc.Xclose(tls, fd)
  4096. *(*int32)(unsafe.Pointer(libc.X__errno_location(tls))) = save_errno
  4097. if nr < 0 {
  4098. v5 = libc.UintptrFromInt32(0)
  4099. } else {
  4100. v5 = XMD2End(tls, bp+1152, buf)
  4101. }
  4102. return v5
  4103. }
  4104. func XMD2File(tls *libc.TLS, filename uintptr, buf uintptr) (r uintptr) {
  4105. return XMD2FileChunk(tls, filename, buf, libc.Int64FromInt32(0), libc.Int64FromInt32(0))
  4106. }
  4107. func XMD2Data(tls *libc.TLS, data uintptr, len1 Tsize_t, buf uintptr) (r uintptr) {
  4108. bp := tls.Alloc(80)
  4109. defer tls.Free(80)
  4110. var _ /* ctx at bp+0 */ TMD2_CTX
  4111. XMD2Init(tls, bp)
  4112. XMD2Update(tls, bp, data, uint32(len1))
  4113. return XMD2End(tls, bp, buf)
  4114. }
  4115. // C documentation
  4116. //
  4117. // /* ARGSUSED */
  4118. func XMD4End(tls *libc.TLS, ctx uintptr, buf uintptr) (r uintptr) {
  4119. bp := tls.Alloc(16)
  4120. defer tls.Free(16)
  4121. var i int32
  4122. var v1 uintptr
  4123. var v2 bool
  4124. var _ /* digest at bp+0 */ [16]Tuint8_t
  4125. _, _, _ = i, v1, v2
  4126. if v2 = buf == libc.UintptrFromInt32(0); v2 {
  4127. v1 = libc.Xmalloc(tls, libc.Uint64FromInt32(libc.Int32FromInt32(m_MD4_DIGEST_LENGTH)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))
  4128. buf = v1
  4129. }
  4130. if v2 && v1 == libc.UintptrFromInt32(0) {
  4131. return libc.UintptrFromInt32(0)
  4132. }
  4133. XMD4Final(tls, bp, ctx)
  4134. i = 0
  4135. for {
  4136. if !(i < int32(m_MD4_DIGEST_LENGTH)) {
  4137. break
  4138. }
  4139. *(*int8)(unsafe.Pointer(buf + uintptr(i+i))) = _hex1[libc.Int32FromUint8((*(*[16]Tuint8_t)(unsafe.Pointer(bp)))[i])>>int32(4)]
  4140. *(*int8)(unsafe.Pointer(buf + uintptr(i+i+int32(1)))) = _hex1[libc.Int32FromUint8((*(*[16]Tuint8_t)(unsafe.Pointer(bp)))[i])&int32(0x0f)]
  4141. goto _3
  4142. _3:
  4143. ;
  4144. i++
  4145. }
  4146. *(*int8)(unsafe.Pointer(buf + uintptr(i+i))) = int8('\000')
  4147. libc.Xmemset(tls, bp, 0, uint64(16))
  4148. return buf
  4149. }
  4150. var _hex1 = [17]int8{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}
  4151. func XMD4FileChunk(tls *libc.TLS, filename uintptr, buf uintptr, off Toff_t, len1 Toff_t) (r uintptr) {
  4152. bp := tls.Alloc(1248)
  4153. defer tls.Free(1248)
  4154. var fd, save_errno, v1 int32
  4155. var nr, v2 Tssize_t
  4156. var v3 int64
  4157. var v4 bool
  4158. var v5 uintptr
  4159. var _ /* buffer at bp+128 */ [1024]Tuint8_t
  4160. var _ /* ctx at bp+1152 */ TMD4_CTX
  4161. var _ /* sb at bp+0 */ Tstat
  4162. _, _, _, _, _, _, _, _ = fd, nr, save_errno, v1, v2, v3, v4, v5
  4163. XMD4Init(tls, bp+1152)
  4164. v1 = libc.Xopen(tls, filename, m_O_RDONLY, 0)
  4165. fd = v1
  4166. if v1 < 0 {
  4167. return libc.UintptrFromInt32(0)
  4168. }
  4169. if len1 == 0 {
  4170. if libc.Xfstat(tls, fd, bp) == -int32(1) {
  4171. libc.Xclose(tls, fd)
  4172. return libc.UintptrFromInt32(0)
  4173. }
  4174. len1 = (*(*Tstat)(unsafe.Pointer(bp))).Fst_size
  4175. }
  4176. if off > 0 && libc.Xlseek(tls, fd, off, 0) < 0 {
  4177. libc.Xclose(tls, fd)
  4178. return libc.UintptrFromInt32(0)
  4179. }
  4180. for {
  4181. if libc.Int64FromInt64(1024) < len1 {
  4182. v3 = libc.Int64FromInt64(1024)
  4183. } else {
  4184. v3 = len1
  4185. }
  4186. v2 = libc.Xread(tls, fd, bp+128, libc.Uint64FromInt64(v3))
  4187. nr = v2
  4188. if !(v2 > 0) {
  4189. break
  4190. }
  4191. XMD4Update(tls, bp+1152, bp+128, libc.Uint64FromInt64(nr))
  4192. if v4 = len1 > 0; v4 {
  4193. len1 -= nr
  4194. }
  4195. if v4 && len1 == 0 {
  4196. break
  4197. }
  4198. }
  4199. save_errno = *(*int32)(unsafe.Pointer(libc.X__errno_location(tls)))
  4200. libc.Xclose(tls, fd)
  4201. *(*int32)(unsafe.Pointer(libc.X__errno_location(tls))) = save_errno
  4202. if nr < 0 {
  4203. v5 = libc.UintptrFromInt32(0)
  4204. } else {
  4205. v5 = XMD4End(tls, bp+1152, buf)
  4206. }
  4207. return v5
  4208. }
  4209. func XMD4File(tls *libc.TLS, filename uintptr, buf uintptr) (r uintptr) {
  4210. return XMD4FileChunk(tls, filename, buf, libc.Int64FromInt32(0), libc.Int64FromInt32(0))
  4211. }
  4212. func XMD4Data(tls *libc.TLS, data uintptr, len1 Tsize_t, buf uintptr) (r uintptr) {
  4213. bp := tls.Alloc(96)
  4214. defer tls.Free(96)
  4215. var _ /* ctx at bp+0 */ TMD4_CTX
  4216. XMD4Init(tls, bp)
  4217. XMD4Update(tls, bp, data, len1)
  4218. return XMD4End(tls, bp, buf)
  4219. }
  4220. /* Avoid polluting the namespace. Even though this makes this usage
  4221. * implementation-specific, defining it unconditionally should not be
  4222. * a problem, and better than possibly breaking unexpecting code. */
  4223. // C documentation
  4224. //
  4225. // /* ARGSUSED */
  4226. func XMD5End(tls *libc.TLS, ctx uintptr, buf uintptr) (r uintptr) {
  4227. bp := tls.Alloc(16)
  4228. defer tls.Free(16)
  4229. var i int32
  4230. var v1 uintptr
  4231. var v2 bool
  4232. var _ /* digest at bp+0 */ [16]Tuint8_t
  4233. _, _, _ = i, v1, v2
  4234. if v2 = buf == libc.UintptrFromInt32(0); v2 {
  4235. v1 = libc.Xmalloc(tls, libc.Uint64FromInt32(libc.Int32FromInt32(m_MD5_DIGEST_LENGTH)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))
  4236. buf = v1
  4237. }
  4238. if v2 && v1 == libc.UintptrFromInt32(0) {
  4239. return libc.UintptrFromInt32(0)
  4240. }
  4241. XMD5Final(tls, bp, ctx)
  4242. i = 0
  4243. for {
  4244. if !(i < int32(m_MD5_DIGEST_LENGTH)) {
  4245. break
  4246. }
  4247. *(*int8)(unsafe.Pointer(buf + uintptr(i+i))) = _hex2[libc.Int32FromUint8((*(*[16]Tuint8_t)(unsafe.Pointer(bp)))[i])>>int32(4)]
  4248. *(*int8)(unsafe.Pointer(buf + uintptr(i+i+int32(1)))) = _hex2[libc.Int32FromUint8((*(*[16]Tuint8_t)(unsafe.Pointer(bp)))[i])&int32(0x0f)]
  4249. goto _3
  4250. _3:
  4251. ;
  4252. i++
  4253. }
  4254. *(*int8)(unsafe.Pointer(buf + uintptr(i+i))) = int8('\000')
  4255. libc.Xmemset(tls, bp, 0, uint64(16))
  4256. return buf
  4257. }
  4258. var _hex2 = [17]int8{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}
  4259. func XMD5FileChunk(tls *libc.TLS, filename uintptr, buf uintptr, off Toff_t, len1 Toff_t) (r uintptr) {
  4260. bp := tls.Alloc(1248)
  4261. defer tls.Free(1248)
  4262. var fd, save_errno, v1 int32
  4263. var nr, v2 Tssize_t
  4264. var v3 int64
  4265. var v4 bool
  4266. var v5 uintptr
  4267. var _ /* buffer at bp+128 */ [1024]Tuint8_t
  4268. var _ /* ctx at bp+1152 */ TMD5_CTX
  4269. var _ /* sb at bp+0 */ Tstat
  4270. _, _, _, _, _, _, _, _ = fd, nr, save_errno, v1, v2, v3, v4, v5
  4271. XMD5Init(tls, bp+1152)
  4272. v1 = libc.Xopen(tls, filename, m_O_RDONLY, 0)
  4273. fd = v1
  4274. if v1 < 0 {
  4275. return libc.UintptrFromInt32(0)
  4276. }
  4277. if len1 == 0 {
  4278. if libc.Xfstat(tls, fd, bp) == -int32(1) {
  4279. libc.Xclose(tls, fd)
  4280. return libc.UintptrFromInt32(0)
  4281. }
  4282. len1 = (*(*Tstat)(unsafe.Pointer(bp))).Fst_size
  4283. }
  4284. if off > 0 && libc.Xlseek(tls, fd, off, 0) < 0 {
  4285. libc.Xclose(tls, fd)
  4286. return libc.UintptrFromInt32(0)
  4287. }
  4288. for {
  4289. if libc.Int64FromInt64(1024) < len1 {
  4290. v3 = libc.Int64FromInt64(1024)
  4291. } else {
  4292. v3 = len1
  4293. }
  4294. v2 = libc.Xread(tls, fd, bp+128, libc.Uint64FromInt64(v3))
  4295. nr = v2
  4296. if !(v2 > 0) {
  4297. break
  4298. }
  4299. XMD5Update(tls, bp+1152, bp+128, libc.Uint64FromInt64(nr))
  4300. if v4 = len1 > 0; v4 {
  4301. len1 -= nr
  4302. }
  4303. if v4 && len1 == 0 {
  4304. break
  4305. }
  4306. }
  4307. save_errno = *(*int32)(unsafe.Pointer(libc.X__errno_location(tls)))
  4308. libc.Xclose(tls, fd)
  4309. *(*int32)(unsafe.Pointer(libc.X__errno_location(tls))) = save_errno
  4310. if nr < 0 {
  4311. v5 = libc.UintptrFromInt32(0)
  4312. } else {
  4313. v5 = XMD5End(tls, bp+1152, buf)
  4314. }
  4315. return v5
  4316. }
  4317. func XMD5File(tls *libc.TLS, filename uintptr, buf uintptr) (r uintptr) {
  4318. return XMD5FileChunk(tls, filename, buf, libc.Int64FromInt32(0), libc.Int64FromInt32(0))
  4319. }
  4320. func XMD5Data(tls *libc.TLS, data uintptr, len1 Tsize_t, buf uintptr) (r uintptr) {
  4321. bp := tls.Alloc(96)
  4322. defer tls.Free(96)
  4323. var _ /* ctx at bp+0 */ TMD5_CTX
  4324. XMD5Init(tls, bp)
  4325. XMD5Update(tls, bp, data, len1)
  4326. return XMD5End(tls, bp, buf)
  4327. }
  4328. // C documentation
  4329. //
  4330. // /* ARGSUSED */
  4331. func XRMD160End(tls *libc.TLS, ctx uintptr, buf uintptr) (r uintptr) {
  4332. bp := tls.Alloc(32)
  4333. defer tls.Free(32)
  4334. var i int32
  4335. var v1 uintptr
  4336. var v2 bool
  4337. var _ /* digest at bp+0 */ [20]Tuint8_t
  4338. _, _, _ = i, v1, v2
  4339. if v2 = buf == libc.UintptrFromInt32(0); v2 {
  4340. v1 = libc.Xmalloc(tls, libc.Uint64FromInt32(libc.Int32FromInt32(m_RMD160_DIGEST_LENGTH)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))
  4341. buf = v1
  4342. }
  4343. if v2 && v1 == libc.UintptrFromInt32(0) {
  4344. return libc.UintptrFromInt32(0)
  4345. }
  4346. XRMD160Final(tls, bp, ctx)
  4347. i = 0
  4348. for {
  4349. if !(i < int32(m_RMD160_DIGEST_LENGTH)) {
  4350. break
  4351. }
  4352. *(*int8)(unsafe.Pointer(buf + uintptr(i+i))) = _hex3[libc.Int32FromUint8((*(*[20]Tuint8_t)(unsafe.Pointer(bp)))[i])>>int32(4)]
  4353. *(*int8)(unsafe.Pointer(buf + uintptr(i+i+int32(1)))) = _hex3[libc.Int32FromUint8((*(*[20]Tuint8_t)(unsafe.Pointer(bp)))[i])&int32(0x0f)]
  4354. goto _3
  4355. _3:
  4356. ;
  4357. i++
  4358. }
  4359. *(*int8)(unsafe.Pointer(buf + uintptr(i+i))) = int8('\000')
  4360. libc.Xmemset(tls, bp, 0, uint64(20))
  4361. return buf
  4362. }
  4363. var _hex3 = [17]int8{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}
  4364. func XRMD160FileChunk(tls *libc.TLS, filename uintptr, buf uintptr, off Toff_t, len1 Toff_t) (r uintptr) {
  4365. bp := tls.Alloc(1248)
  4366. defer tls.Free(1248)
  4367. var fd, save_errno, v1 int32
  4368. var nr, v2 Tssize_t
  4369. var v3 int64
  4370. var v4 bool
  4371. var v5 uintptr
  4372. var _ /* buffer at bp+128 */ [1024]Tuint8_t
  4373. var _ /* ctx at bp+1152 */ TRMD160_CTX
  4374. var _ /* sb at bp+0 */ Tstat
  4375. _, _, _, _, _, _, _, _ = fd, nr, save_errno, v1, v2, v3, v4, v5
  4376. XRMD160Init(tls, bp+1152)
  4377. v1 = libc.Xopen(tls, filename, m_O_RDONLY, 0)
  4378. fd = v1
  4379. if v1 < 0 {
  4380. return libc.UintptrFromInt32(0)
  4381. }
  4382. if len1 == 0 {
  4383. if libc.Xfstat(tls, fd, bp) == -int32(1) {
  4384. libc.Xclose(tls, fd)
  4385. return libc.UintptrFromInt32(0)
  4386. }
  4387. len1 = (*(*Tstat)(unsafe.Pointer(bp))).Fst_size
  4388. }
  4389. if off > 0 && libc.Xlseek(tls, fd, off, 0) < 0 {
  4390. libc.Xclose(tls, fd)
  4391. return libc.UintptrFromInt32(0)
  4392. }
  4393. for {
  4394. if libc.Int64FromInt64(1024) < len1 {
  4395. v3 = libc.Int64FromInt64(1024)
  4396. } else {
  4397. v3 = len1
  4398. }
  4399. v2 = libc.Xread(tls, fd, bp+128, libc.Uint64FromInt64(v3))
  4400. nr = v2
  4401. if !(v2 > 0) {
  4402. break
  4403. }
  4404. XRMD160Update(tls, bp+1152, bp+128, libc.Uint64FromInt64(nr))
  4405. if v4 = len1 > 0; v4 {
  4406. len1 -= nr
  4407. }
  4408. if v4 && len1 == 0 {
  4409. break
  4410. }
  4411. }
  4412. save_errno = *(*int32)(unsafe.Pointer(libc.X__errno_location(tls)))
  4413. libc.Xclose(tls, fd)
  4414. *(*int32)(unsafe.Pointer(libc.X__errno_location(tls))) = save_errno
  4415. if nr < 0 {
  4416. v5 = libc.UintptrFromInt32(0)
  4417. } else {
  4418. v5 = XRMD160End(tls, bp+1152, buf)
  4419. }
  4420. return v5
  4421. }
  4422. func XRMD160File(tls *libc.TLS, filename uintptr, buf uintptr) (r uintptr) {
  4423. return XRMD160FileChunk(tls, filename, buf, libc.Int64FromInt32(0), libc.Int64FromInt32(0))
  4424. }
  4425. func XRMD160Data(tls *libc.TLS, data uintptr, len1 Tsize_t, buf uintptr) (r uintptr) {
  4426. bp := tls.Alloc(96)
  4427. defer tls.Free(96)
  4428. var _ /* ctx at bp+0 */ TRMD160_CTX
  4429. XRMD160Init(tls, bp)
  4430. XRMD160Update(tls, bp, data, len1)
  4431. return XRMD160End(tls, bp, buf)
  4432. }
  4433. // C documentation
  4434. //
  4435. // /* ARGSUSED */
  4436. func XSHA1End(tls *libc.TLS, ctx uintptr, buf uintptr) (r uintptr) {
  4437. bp := tls.Alloc(32)
  4438. defer tls.Free(32)
  4439. var i int32
  4440. var v1 uintptr
  4441. var v2 bool
  4442. var _ /* digest at bp+0 */ [20]Tuint8_t
  4443. _, _, _ = i, v1, v2
  4444. if v2 = buf == libc.UintptrFromInt32(0); v2 {
  4445. v1 = libc.Xmalloc(tls, libc.Uint64FromInt32(libc.Int32FromInt32(m_SHA1_DIGEST_LENGTH)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))
  4446. buf = v1
  4447. }
  4448. if v2 && v1 == libc.UintptrFromInt32(0) {
  4449. return libc.UintptrFromInt32(0)
  4450. }
  4451. XSHA1Final(tls, bp, ctx)
  4452. i = 0
  4453. for {
  4454. if !(i < int32(m_SHA1_DIGEST_LENGTH)) {
  4455. break
  4456. }
  4457. *(*int8)(unsafe.Pointer(buf + uintptr(i+i))) = _hex4[libc.Int32FromUint8((*(*[20]Tuint8_t)(unsafe.Pointer(bp)))[i])>>int32(4)]
  4458. *(*int8)(unsafe.Pointer(buf + uintptr(i+i+int32(1)))) = _hex4[libc.Int32FromUint8((*(*[20]Tuint8_t)(unsafe.Pointer(bp)))[i])&int32(0x0f)]
  4459. goto _3
  4460. _3:
  4461. ;
  4462. i++
  4463. }
  4464. *(*int8)(unsafe.Pointer(buf + uintptr(i+i))) = int8('\000')
  4465. libc.Xmemset(tls, bp, 0, uint64(20))
  4466. return buf
  4467. }
  4468. var _hex4 = [17]int8{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}
  4469. func XSHA1FileChunk(tls *libc.TLS, filename uintptr, buf uintptr, off Toff_t, len1 Toff_t) (r uintptr) {
  4470. bp := tls.Alloc(1248)
  4471. defer tls.Free(1248)
  4472. var fd, save_errno, v1 int32
  4473. var nr, v2 Tssize_t
  4474. var v3 int64
  4475. var v4 bool
  4476. var v5 uintptr
  4477. var _ /* buffer at bp+128 */ [1024]Tuint8_t
  4478. var _ /* ctx at bp+1152 */ TSHA1_CTX
  4479. var _ /* sb at bp+0 */ Tstat
  4480. _, _, _, _, _, _, _, _ = fd, nr, save_errno, v1, v2, v3, v4, v5
  4481. XSHA1Init(tls, bp+1152)
  4482. v1 = libc.Xopen(tls, filename, m_O_RDONLY, 0)
  4483. fd = v1
  4484. if v1 < 0 {
  4485. return libc.UintptrFromInt32(0)
  4486. }
  4487. if len1 == 0 {
  4488. if libc.Xfstat(tls, fd, bp) == -int32(1) {
  4489. libc.Xclose(tls, fd)
  4490. return libc.UintptrFromInt32(0)
  4491. }
  4492. len1 = (*(*Tstat)(unsafe.Pointer(bp))).Fst_size
  4493. }
  4494. if off > 0 && libc.Xlseek(tls, fd, off, 0) < 0 {
  4495. libc.Xclose(tls, fd)
  4496. return libc.UintptrFromInt32(0)
  4497. }
  4498. for {
  4499. if libc.Int64FromInt64(1024) < len1 {
  4500. v3 = libc.Int64FromInt64(1024)
  4501. } else {
  4502. v3 = len1
  4503. }
  4504. v2 = libc.Xread(tls, fd, bp+128, libc.Uint64FromInt64(v3))
  4505. nr = v2
  4506. if !(v2 > 0) {
  4507. break
  4508. }
  4509. XSHA1Update(tls, bp+1152, bp+128, libc.Uint64FromInt64(nr))
  4510. if v4 = len1 > 0; v4 {
  4511. len1 -= nr
  4512. }
  4513. if v4 && len1 == 0 {
  4514. break
  4515. }
  4516. }
  4517. save_errno = *(*int32)(unsafe.Pointer(libc.X__errno_location(tls)))
  4518. libc.Xclose(tls, fd)
  4519. *(*int32)(unsafe.Pointer(libc.X__errno_location(tls))) = save_errno
  4520. if nr < 0 {
  4521. v5 = libc.UintptrFromInt32(0)
  4522. } else {
  4523. v5 = XSHA1End(tls, bp+1152, buf)
  4524. }
  4525. return v5
  4526. }
  4527. func XSHA1File(tls *libc.TLS, filename uintptr, buf uintptr) (r uintptr) {
  4528. return XSHA1FileChunk(tls, filename, buf, libc.Int64FromInt32(0), libc.Int64FromInt32(0))
  4529. }
  4530. func XSHA1Data(tls *libc.TLS, data uintptr, len1 Tsize_t, buf uintptr) (r uintptr) {
  4531. bp := tls.Alloc(96)
  4532. defer tls.Free(96)
  4533. var _ /* ctx at bp+0 */ TSHA1_CTX
  4534. XSHA1Init(tls, bp)
  4535. XSHA1Update(tls, bp, data, len1)
  4536. return XSHA1End(tls, bp, buf)
  4537. }
  4538. // C documentation
  4539. //
  4540. // /* ARGSUSED */
  4541. func XSHA224End(tls *libc.TLS, ctx uintptr, buf uintptr) (r uintptr) {
  4542. bp := tls.Alloc(32)
  4543. defer tls.Free(32)
  4544. var i int32
  4545. var v1 uintptr
  4546. var v2 bool
  4547. var _ /* digest at bp+0 */ [28]Tuint8_t
  4548. _, _, _ = i, v1, v2
  4549. if v2 = buf == libc.UintptrFromInt32(0); v2 {
  4550. v1 = libc.Xmalloc(tls, libc.Uint64FromInt32(libc.Int32FromInt32(m_SHA224_DIGEST_LENGTH)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))
  4551. buf = v1
  4552. }
  4553. if v2 && v1 == libc.UintptrFromInt32(0) {
  4554. return libc.UintptrFromInt32(0)
  4555. }
  4556. XSHA224Final(tls, bp, ctx)
  4557. i = 0
  4558. for {
  4559. if !(i < int32(m_SHA224_DIGEST_LENGTH)) {
  4560. break
  4561. }
  4562. *(*int8)(unsafe.Pointer(buf + uintptr(i+i))) = _hex5[libc.Int32FromUint8((*(*[28]Tuint8_t)(unsafe.Pointer(bp)))[i])>>int32(4)]
  4563. *(*int8)(unsafe.Pointer(buf + uintptr(i+i+int32(1)))) = _hex5[libc.Int32FromUint8((*(*[28]Tuint8_t)(unsafe.Pointer(bp)))[i])&int32(0x0f)]
  4564. goto _3
  4565. _3:
  4566. ;
  4567. i++
  4568. }
  4569. *(*int8)(unsafe.Pointer(buf + uintptr(i+i))) = int8('\000')
  4570. libc.Xmemset(tls, bp, 0, uint64(28))
  4571. return buf
  4572. }
  4573. var _hex5 = [17]int8{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}
  4574. func XSHA224FileChunk(tls *libc.TLS, filename uintptr, buf uintptr, off Toff_t, len1 Toff_t) (r uintptr) {
  4575. bp := tls.Alloc(1360)
  4576. defer tls.Free(1360)
  4577. var fd, save_errno, v1 int32
  4578. var nr, v2 Tssize_t
  4579. var v3 int64
  4580. var v4 bool
  4581. var v5 uintptr
  4582. var _ /* buffer at bp+128 */ [1024]Tuint8_t
  4583. var _ /* ctx at bp+1152 */ TSHA2_CTX
  4584. var _ /* sb at bp+0 */ Tstat
  4585. _, _, _, _, _, _, _, _ = fd, nr, save_errno, v1, v2, v3, v4, v5
  4586. XSHA224Init(tls, bp+1152)
  4587. v1 = libc.Xopen(tls, filename, m_O_RDONLY, 0)
  4588. fd = v1
  4589. if v1 < 0 {
  4590. return libc.UintptrFromInt32(0)
  4591. }
  4592. if len1 == 0 {
  4593. if libc.Xfstat(tls, fd, bp) == -int32(1) {
  4594. libc.Xclose(tls, fd)
  4595. return libc.UintptrFromInt32(0)
  4596. }
  4597. len1 = (*(*Tstat)(unsafe.Pointer(bp))).Fst_size
  4598. }
  4599. if off > 0 && libc.Xlseek(tls, fd, off, 0) < 0 {
  4600. libc.Xclose(tls, fd)
  4601. return libc.UintptrFromInt32(0)
  4602. }
  4603. for {
  4604. if libc.Int64FromInt64(1024) < len1 {
  4605. v3 = libc.Int64FromInt64(1024)
  4606. } else {
  4607. v3 = len1
  4608. }
  4609. v2 = libc.Xread(tls, fd, bp+128, libc.Uint64FromInt64(v3))
  4610. nr = v2
  4611. if !(v2 > 0) {
  4612. break
  4613. }
  4614. XSHA256Update(tls, bp+1152, bp+128, libc.Uint64FromInt64(nr))
  4615. if v4 = len1 > 0; v4 {
  4616. len1 -= nr
  4617. }
  4618. if v4 && len1 == 0 {
  4619. break
  4620. }
  4621. }
  4622. save_errno = *(*int32)(unsafe.Pointer(libc.X__errno_location(tls)))
  4623. libc.Xclose(tls, fd)
  4624. *(*int32)(unsafe.Pointer(libc.X__errno_location(tls))) = save_errno
  4625. if nr < 0 {
  4626. v5 = libc.UintptrFromInt32(0)
  4627. } else {
  4628. v5 = XSHA224End(tls, bp+1152, buf)
  4629. }
  4630. return v5
  4631. }
  4632. func XSHA224File(tls *libc.TLS, filename uintptr, buf uintptr) (r uintptr) {
  4633. return XSHA224FileChunk(tls, filename, buf, libc.Int64FromInt32(0), libc.Int64FromInt32(0))
  4634. }
  4635. func XSHA224Data(tls *libc.TLS, data uintptr, len1 Tsize_t, buf uintptr) (r uintptr) {
  4636. bp := tls.Alloc(208)
  4637. defer tls.Free(208)
  4638. var _ /* ctx at bp+0 */ TSHA2_CTX
  4639. XSHA224Init(tls, bp)
  4640. XSHA256Update(tls, bp, data, len1)
  4641. return XSHA224End(tls, bp, buf)
  4642. }
  4643. // C documentation
  4644. //
  4645. // /* ARGSUSED */
  4646. func XSHA256End(tls *libc.TLS, ctx uintptr, buf uintptr) (r uintptr) {
  4647. bp := tls.Alloc(32)
  4648. defer tls.Free(32)
  4649. var i int32
  4650. var v1 uintptr
  4651. var v2 bool
  4652. var _ /* digest at bp+0 */ [32]Tuint8_t
  4653. _, _, _ = i, v1, v2
  4654. if v2 = buf == libc.UintptrFromInt32(0); v2 {
  4655. v1 = libc.Xmalloc(tls, libc.Uint64FromInt32(libc.Int32FromInt32(m_SHA256_DIGEST_LENGTH)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))
  4656. buf = v1
  4657. }
  4658. if v2 && v1 == libc.UintptrFromInt32(0) {
  4659. return libc.UintptrFromInt32(0)
  4660. }
  4661. XSHA256Final(tls, bp, ctx)
  4662. i = 0
  4663. for {
  4664. if !(i < int32(m_SHA256_DIGEST_LENGTH)) {
  4665. break
  4666. }
  4667. *(*int8)(unsafe.Pointer(buf + uintptr(i+i))) = _hex6[libc.Int32FromUint8((*(*[32]Tuint8_t)(unsafe.Pointer(bp)))[i])>>int32(4)]
  4668. *(*int8)(unsafe.Pointer(buf + uintptr(i+i+int32(1)))) = _hex6[libc.Int32FromUint8((*(*[32]Tuint8_t)(unsafe.Pointer(bp)))[i])&int32(0x0f)]
  4669. goto _3
  4670. _3:
  4671. ;
  4672. i++
  4673. }
  4674. *(*int8)(unsafe.Pointer(buf + uintptr(i+i))) = int8('\000')
  4675. libc.Xmemset(tls, bp, 0, uint64(32))
  4676. return buf
  4677. }
  4678. var _hex6 = [17]int8{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}
  4679. func XSHA256FileChunk(tls *libc.TLS, filename uintptr, buf uintptr, off Toff_t, len1 Toff_t) (r uintptr) {
  4680. bp := tls.Alloc(1360)
  4681. defer tls.Free(1360)
  4682. var fd, save_errno, v1 int32
  4683. var nr, v2 Tssize_t
  4684. var v3 int64
  4685. var v4 bool
  4686. var v5 uintptr
  4687. var _ /* buffer at bp+128 */ [1024]Tuint8_t
  4688. var _ /* ctx at bp+1152 */ TSHA2_CTX
  4689. var _ /* sb at bp+0 */ Tstat
  4690. _, _, _, _, _, _, _, _ = fd, nr, save_errno, v1, v2, v3, v4, v5
  4691. XSHA256Init(tls, bp+1152)
  4692. v1 = libc.Xopen(tls, filename, m_O_RDONLY, 0)
  4693. fd = v1
  4694. if v1 < 0 {
  4695. return libc.UintptrFromInt32(0)
  4696. }
  4697. if len1 == 0 {
  4698. if libc.Xfstat(tls, fd, bp) == -int32(1) {
  4699. libc.Xclose(tls, fd)
  4700. return libc.UintptrFromInt32(0)
  4701. }
  4702. len1 = (*(*Tstat)(unsafe.Pointer(bp))).Fst_size
  4703. }
  4704. if off > 0 && libc.Xlseek(tls, fd, off, 0) < 0 {
  4705. libc.Xclose(tls, fd)
  4706. return libc.UintptrFromInt32(0)
  4707. }
  4708. for {
  4709. if libc.Int64FromInt64(1024) < len1 {
  4710. v3 = libc.Int64FromInt64(1024)
  4711. } else {
  4712. v3 = len1
  4713. }
  4714. v2 = libc.Xread(tls, fd, bp+128, libc.Uint64FromInt64(v3))
  4715. nr = v2
  4716. if !(v2 > 0) {
  4717. break
  4718. }
  4719. XSHA256Update(tls, bp+1152, bp+128, libc.Uint64FromInt64(nr))
  4720. if v4 = len1 > 0; v4 {
  4721. len1 -= nr
  4722. }
  4723. if v4 && len1 == 0 {
  4724. break
  4725. }
  4726. }
  4727. save_errno = *(*int32)(unsafe.Pointer(libc.X__errno_location(tls)))
  4728. libc.Xclose(tls, fd)
  4729. *(*int32)(unsafe.Pointer(libc.X__errno_location(tls))) = save_errno
  4730. if nr < 0 {
  4731. v5 = libc.UintptrFromInt32(0)
  4732. } else {
  4733. v5 = XSHA256End(tls, bp+1152, buf)
  4734. }
  4735. return v5
  4736. }
  4737. func XSHA256File(tls *libc.TLS, filename uintptr, buf uintptr) (r uintptr) {
  4738. return XSHA256FileChunk(tls, filename, buf, libc.Int64FromInt32(0), libc.Int64FromInt32(0))
  4739. }
  4740. func XSHA256Data(tls *libc.TLS, data uintptr, len1 Tsize_t, buf uintptr) (r uintptr) {
  4741. bp := tls.Alloc(208)
  4742. defer tls.Free(208)
  4743. var _ /* ctx at bp+0 */ TSHA2_CTX
  4744. XSHA256Init(tls, bp)
  4745. XSHA256Update(tls, bp, data, len1)
  4746. return XSHA256End(tls, bp, buf)
  4747. }
  4748. // C documentation
  4749. //
  4750. // /* ARGSUSED */
  4751. func XSHA384End(tls *libc.TLS, ctx uintptr, buf uintptr) (r uintptr) {
  4752. bp := tls.Alloc(48)
  4753. defer tls.Free(48)
  4754. var i int32
  4755. var v1 uintptr
  4756. var v2 bool
  4757. var _ /* digest at bp+0 */ [48]Tuint8_t
  4758. _, _, _ = i, v1, v2
  4759. if v2 = buf == libc.UintptrFromInt32(0); v2 {
  4760. v1 = libc.Xmalloc(tls, libc.Uint64FromInt32(libc.Int32FromInt32(m_SHA384_DIGEST_LENGTH)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))
  4761. buf = v1
  4762. }
  4763. if v2 && v1 == libc.UintptrFromInt32(0) {
  4764. return libc.UintptrFromInt32(0)
  4765. }
  4766. XSHA384Final(tls, bp, ctx)
  4767. i = 0
  4768. for {
  4769. if !(i < int32(m_SHA384_DIGEST_LENGTH)) {
  4770. break
  4771. }
  4772. *(*int8)(unsafe.Pointer(buf + uintptr(i+i))) = _hex7[libc.Int32FromUint8((*(*[48]Tuint8_t)(unsafe.Pointer(bp)))[i])>>int32(4)]
  4773. *(*int8)(unsafe.Pointer(buf + uintptr(i+i+int32(1)))) = _hex7[libc.Int32FromUint8((*(*[48]Tuint8_t)(unsafe.Pointer(bp)))[i])&int32(0x0f)]
  4774. goto _3
  4775. _3:
  4776. ;
  4777. i++
  4778. }
  4779. *(*int8)(unsafe.Pointer(buf + uintptr(i+i))) = int8('\000')
  4780. libc.Xmemset(tls, bp, 0, uint64(48))
  4781. return buf
  4782. }
  4783. var _hex7 = [17]int8{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}
  4784. func XSHA384FileChunk(tls *libc.TLS, filename uintptr, buf uintptr, off Toff_t, len1 Toff_t) (r uintptr) {
  4785. bp := tls.Alloc(1360)
  4786. defer tls.Free(1360)
  4787. var fd, save_errno, v1 int32
  4788. var nr, v2 Tssize_t
  4789. var v3 int64
  4790. var v4 bool
  4791. var v5 uintptr
  4792. var _ /* buffer at bp+128 */ [1024]Tuint8_t
  4793. var _ /* ctx at bp+1152 */ TSHA2_CTX
  4794. var _ /* sb at bp+0 */ Tstat
  4795. _, _, _, _, _, _, _, _ = fd, nr, save_errno, v1, v2, v3, v4, v5
  4796. XSHA384Init(tls, bp+1152)
  4797. v1 = libc.Xopen(tls, filename, m_O_RDONLY, 0)
  4798. fd = v1
  4799. if v1 < 0 {
  4800. return libc.UintptrFromInt32(0)
  4801. }
  4802. if len1 == 0 {
  4803. if libc.Xfstat(tls, fd, bp) == -int32(1) {
  4804. libc.Xclose(tls, fd)
  4805. return libc.UintptrFromInt32(0)
  4806. }
  4807. len1 = (*(*Tstat)(unsafe.Pointer(bp))).Fst_size
  4808. }
  4809. if off > 0 && libc.Xlseek(tls, fd, off, 0) < 0 {
  4810. libc.Xclose(tls, fd)
  4811. return libc.UintptrFromInt32(0)
  4812. }
  4813. for {
  4814. if libc.Int64FromInt64(1024) < len1 {
  4815. v3 = libc.Int64FromInt64(1024)
  4816. } else {
  4817. v3 = len1
  4818. }
  4819. v2 = libc.Xread(tls, fd, bp+128, libc.Uint64FromInt64(v3))
  4820. nr = v2
  4821. if !(v2 > 0) {
  4822. break
  4823. }
  4824. XSHA512Update(tls, bp+1152, bp+128, libc.Uint64FromInt64(nr))
  4825. if v4 = len1 > 0; v4 {
  4826. len1 -= nr
  4827. }
  4828. if v4 && len1 == 0 {
  4829. break
  4830. }
  4831. }
  4832. save_errno = *(*int32)(unsafe.Pointer(libc.X__errno_location(tls)))
  4833. libc.Xclose(tls, fd)
  4834. *(*int32)(unsafe.Pointer(libc.X__errno_location(tls))) = save_errno
  4835. if nr < 0 {
  4836. v5 = libc.UintptrFromInt32(0)
  4837. } else {
  4838. v5 = XSHA384End(tls, bp+1152, buf)
  4839. }
  4840. return v5
  4841. }
  4842. func XSHA384File(tls *libc.TLS, filename uintptr, buf uintptr) (r uintptr) {
  4843. return XSHA384FileChunk(tls, filename, buf, libc.Int64FromInt32(0), libc.Int64FromInt32(0))
  4844. }
  4845. func XSHA384Data(tls *libc.TLS, data uintptr, len1 Tsize_t, buf uintptr) (r uintptr) {
  4846. bp := tls.Alloc(208)
  4847. defer tls.Free(208)
  4848. var _ /* ctx at bp+0 */ TSHA2_CTX
  4849. XSHA384Init(tls, bp)
  4850. XSHA512Update(tls, bp, data, len1)
  4851. return XSHA384End(tls, bp, buf)
  4852. }
  4853. // C documentation
  4854. //
  4855. // /* ARGSUSED */
  4856. func XSHA512End(tls *libc.TLS, ctx uintptr, buf uintptr) (r uintptr) {
  4857. bp := tls.Alloc(64)
  4858. defer tls.Free(64)
  4859. var i int32
  4860. var v1 uintptr
  4861. var v2 bool
  4862. var _ /* digest at bp+0 */ [64]Tuint8_t
  4863. _, _, _ = i, v1, v2
  4864. if v2 = buf == libc.UintptrFromInt32(0); v2 {
  4865. v1 = libc.Xmalloc(tls, libc.Uint64FromInt32(libc.Int32FromInt32(m_SHA512_DIGEST_LENGTH)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))
  4866. buf = v1
  4867. }
  4868. if v2 && v1 == libc.UintptrFromInt32(0) {
  4869. return libc.UintptrFromInt32(0)
  4870. }
  4871. XSHA512Final(tls, bp, ctx)
  4872. i = 0
  4873. for {
  4874. if !(i < int32(m_SHA512_DIGEST_LENGTH)) {
  4875. break
  4876. }
  4877. *(*int8)(unsafe.Pointer(buf + uintptr(i+i))) = _hex8[libc.Int32FromUint8((*(*[64]Tuint8_t)(unsafe.Pointer(bp)))[i])>>int32(4)]
  4878. *(*int8)(unsafe.Pointer(buf + uintptr(i+i+int32(1)))) = _hex8[libc.Int32FromUint8((*(*[64]Tuint8_t)(unsafe.Pointer(bp)))[i])&int32(0x0f)]
  4879. goto _3
  4880. _3:
  4881. ;
  4882. i++
  4883. }
  4884. *(*int8)(unsafe.Pointer(buf + uintptr(i+i))) = int8('\000')
  4885. libc.Xmemset(tls, bp, 0, uint64(64))
  4886. return buf
  4887. }
  4888. var _hex8 = [17]int8{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}
  4889. func XSHA512FileChunk(tls *libc.TLS, filename uintptr, buf uintptr, off Toff_t, len1 Toff_t) (r uintptr) {
  4890. bp := tls.Alloc(1360)
  4891. defer tls.Free(1360)
  4892. var fd, save_errno, v1 int32
  4893. var nr, v2 Tssize_t
  4894. var v3 int64
  4895. var v4 bool
  4896. var v5 uintptr
  4897. var _ /* buffer at bp+128 */ [1024]Tuint8_t
  4898. var _ /* ctx at bp+1152 */ TSHA2_CTX
  4899. var _ /* sb at bp+0 */ Tstat
  4900. _, _, _, _, _, _, _, _ = fd, nr, save_errno, v1, v2, v3, v4, v5
  4901. XSHA512Init(tls, bp+1152)
  4902. v1 = libc.Xopen(tls, filename, m_O_RDONLY, 0)
  4903. fd = v1
  4904. if v1 < 0 {
  4905. return libc.UintptrFromInt32(0)
  4906. }
  4907. if len1 == 0 {
  4908. if libc.Xfstat(tls, fd, bp) == -int32(1) {
  4909. libc.Xclose(tls, fd)
  4910. return libc.UintptrFromInt32(0)
  4911. }
  4912. len1 = (*(*Tstat)(unsafe.Pointer(bp))).Fst_size
  4913. }
  4914. if off > 0 && libc.Xlseek(tls, fd, off, 0) < 0 {
  4915. libc.Xclose(tls, fd)
  4916. return libc.UintptrFromInt32(0)
  4917. }
  4918. for {
  4919. if libc.Int64FromInt64(1024) < len1 {
  4920. v3 = libc.Int64FromInt64(1024)
  4921. } else {
  4922. v3 = len1
  4923. }
  4924. v2 = libc.Xread(tls, fd, bp+128, libc.Uint64FromInt64(v3))
  4925. nr = v2
  4926. if !(v2 > 0) {
  4927. break
  4928. }
  4929. XSHA512Update(tls, bp+1152, bp+128, libc.Uint64FromInt64(nr))
  4930. if v4 = len1 > 0; v4 {
  4931. len1 -= nr
  4932. }
  4933. if v4 && len1 == 0 {
  4934. break
  4935. }
  4936. }
  4937. save_errno = *(*int32)(unsafe.Pointer(libc.X__errno_location(tls)))
  4938. libc.Xclose(tls, fd)
  4939. *(*int32)(unsafe.Pointer(libc.X__errno_location(tls))) = save_errno
  4940. if nr < 0 {
  4941. v5 = libc.UintptrFromInt32(0)
  4942. } else {
  4943. v5 = XSHA512End(tls, bp+1152, buf)
  4944. }
  4945. return v5
  4946. }
  4947. func XSHA512File(tls *libc.TLS, filename uintptr, buf uintptr) (r uintptr) {
  4948. return XSHA512FileChunk(tls, filename, buf, libc.Int64FromInt32(0), libc.Int64FromInt32(0))
  4949. }
  4950. func XSHA512Data(tls *libc.TLS, data uintptr, len1 Tsize_t, buf uintptr) (r uintptr) {
  4951. bp := tls.Alloc(208)
  4952. defer tls.Free(208)
  4953. var _ /* ctx at bp+0 */ TSHA2_CTX
  4954. XSHA512Init(tls, bp)
  4955. XSHA512Update(tls, bp, data, len1)
  4956. return XSHA512End(tls, bp, buf)
  4957. }
  4958. // C documentation
  4959. //
  4960. // /* ARGSUSED */
  4961. func XSHA512_256End(tls *libc.TLS, ctx uintptr, buf uintptr) (r uintptr) {
  4962. bp := tls.Alloc(32)
  4963. defer tls.Free(32)
  4964. var i int32
  4965. var v1 uintptr
  4966. var v2 bool
  4967. var _ /* digest at bp+0 */ [32]Tuint8_t
  4968. _, _, _ = i, v1, v2
  4969. if v2 = buf == libc.UintptrFromInt32(0); v2 {
  4970. v1 = libc.Xmalloc(tls, libc.Uint64FromInt32(libc.Int32FromInt32(m_SHA512_256_DIGEST_LENGTH)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))
  4971. buf = v1
  4972. }
  4973. if v2 && v1 == libc.UintptrFromInt32(0) {
  4974. return libc.UintptrFromInt32(0)
  4975. }
  4976. XSHA512_256Final(tls, bp, ctx)
  4977. i = 0
  4978. for {
  4979. if !(i < int32(m_SHA512_256_DIGEST_LENGTH)) {
  4980. break
  4981. }
  4982. *(*int8)(unsafe.Pointer(buf + uintptr(i+i))) = _hex9[libc.Int32FromUint8((*(*[32]Tuint8_t)(unsafe.Pointer(bp)))[i])>>int32(4)]
  4983. *(*int8)(unsafe.Pointer(buf + uintptr(i+i+int32(1)))) = _hex9[libc.Int32FromUint8((*(*[32]Tuint8_t)(unsafe.Pointer(bp)))[i])&int32(0x0f)]
  4984. goto _3
  4985. _3:
  4986. ;
  4987. i++
  4988. }
  4989. *(*int8)(unsafe.Pointer(buf + uintptr(i+i))) = int8('\000')
  4990. libc.Xmemset(tls, bp, 0, uint64(32))
  4991. return buf
  4992. }
  4993. var _hex9 = [17]int8{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}
  4994. func XSHA512_256FileChunk(tls *libc.TLS, filename uintptr, buf uintptr, off Toff_t, len1 Toff_t) (r uintptr) {
  4995. bp := tls.Alloc(1360)
  4996. defer tls.Free(1360)
  4997. var fd, save_errno, v1 int32
  4998. var nr, v2 Tssize_t
  4999. var v3 int64
  5000. var v4 bool
  5001. var v5 uintptr
  5002. var _ /* buffer at bp+128 */ [1024]Tuint8_t
  5003. var _ /* ctx at bp+1152 */ TSHA2_CTX
  5004. var _ /* sb at bp+0 */ Tstat
  5005. _, _, _, _, _, _, _, _ = fd, nr, save_errno, v1, v2, v3, v4, v5
  5006. XSHA512_256Init(tls, bp+1152)
  5007. v1 = libc.Xopen(tls, filename, m_O_RDONLY, 0)
  5008. fd = v1
  5009. if v1 < 0 {
  5010. return libc.UintptrFromInt32(0)
  5011. }
  5012. if len1 == 0 {
  5013. if libc.Xfstat(tls, fd, bp) == -int32(1) {
  5014. libc.Xclose(tls, fd)
  5015. return libc.UintptrFromInt32(0)
  5016. }
  5017. len1 = (*(*Tstat)(unsafe.Pointer(bp))).Fst_size
  5018. }
  5019. if off > 0 && libc.Xlseek(tls, fd, off, 0) < 0 {
  5020. libc.Xclose(tls, fd)
  5021. return libc.UintptrFromInt32(0)
  5022. }
  5023. for {
  5024. if libc.Int64FromInt64(1024) < len1 {
  5025. v3 = libc.Int64FromInt64(1024)
  5026. } else {
  5027. v3 = len1
  5028. }
  5029. v2 = libc.Xread(tls, fd, bp+128, libc.Uint64FromInt64(v3))
  5030. nr = v2
  5031. if !(v2 > 0) {
  5032. break
  5033. }
  5034. XSHA512Update(tls, bp+1152, bp+128, libc.Uint64FromInt64(nr))
  5035. if v4 = len1 > 0; v4 {
  5036. len1 -= nr
  5037. }
  5038. if v4 && len1 == 0 {
  5039. break
  5040. }
  5041. }
  5042. save_errno = *(*int32)(unsafe.Pointer(libc.X__errno_location(tls)))
  5043. libc.Xclose(tls, fd)
  5044. *(*int32)(unsafe.Pointer(libc.X__errno_location(tls))) = save_errno
  5045. if nr < 0 {
  5046. v5 = libc.UintptrFromInt32(0)
  5047. } else {
  5048. v5 = XSHA512_256End(tls, bp+1152, buf)
  5049. }
  5050. return v5
  5051. }
  5052. func XSHA512_256File(tls *libc.TLS, filename uintptr, buf uintptr) (r uintptr) {
  5053. return XSHA512_256FileChunk(tls, filename, buf, libc.Int64FromInt32(0), libc.Int64FromInt32(0))
  5054. }
  5055. func XSHA512_256Data(tls *libc.TLS, data uintptr, len1 Tsize_t, buf uintptr) (r uintptr) {
  5056. bp := tls.Alloc(208)
  5057. defer tls.Free(208)
  5058. var _ /* ctx at bp+0 */ TSHA2_CTX
  5059. XSHA512_256Init(tls, bp)
  5060. XSHA512Update(tls, bp, data, len1)
  5061. return XSHA512_256End(tls, bp, buf)
  5062. }
  5063. var __ccgo_ts = (*reflect.StringHeader)(unsafe.Pointer(&__ccgo_ts1)).Data
  5064. var __ccgo_ts1 = "\x00\x01\x00\x02\x02\x00\x03\x03\x03\x00\x04\x04\x04\x04\x00\x05\x05\x05\x05\x05\x00\x06\x06\x06\x06\x06\x06\x00\a\a\a\a\a\a\a\x00\b\b\b\b\b\b\b\b\x00\t\t\t\t\t\t\t\t\t\x00\n\n\n\n\n\n\n\n\n\n\x00\v\v\v\v\v\v\v\v\v\v\v\x00\f\f\f\f\f\f\f\f\f\f\f\f\x00\r\r\r\r\r\r\r\r\r\r\r\r\r\x00\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x00\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x00\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x00\x80\x00\x00\x00"