ccgo_freebsd_amd64.go 292 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288
  1. // Code generated for freebsd/amd64 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 freebsd && amd64
  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 = "INT32_MAX"
  41. const m_INT_FAST8_MIN = "INT32_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_DIGEST_LENGTH = 16
  53. const m_MD2_DIGEST_STRING_LENGTH = 33
  54. const m_NDEBUG = 1
  55. const m_NFDBITS = "_NFDBITS"
  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.0.4"
  60. const m_PACKAGE_TARNAME = "libmd"
  61. const m_PACKAGE_URL = ""
  62. const m_PACKAGE_VERSION = "1.0.4"
  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 = "INT64_MAX"
  67. const m_SIG_ATOMIC_MIN = "INT64_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 = 0xffffffff
  72. const m_UINT64_MAX = 0xffffffffffffffff
  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 = "UINT32_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.0.4"
  85. const m_WCHAR_MAX = "__WCHAR_MAX"
  86. const m_WCHAR_MIN = "__WCHAR_MIN"
  87. const m_WINT_MAX = "INT32_MAX"
  88. const m_WINT_MIN = "INT32_MIN"
  89. const m__ALL_SOURCE = 1
  90. const m__BYTE_ORDER = "__BYTE_ORDER__"
  91. const m__DARWIN_C_SOURCE = 1
  92. const m__GNU_SOURCE = 1
  93. const m__HPUX_ALT_XOPEN_SOCKET_API = 1
  94. const m__LP64 = 1
  95. const m__NETBSD_SOURCE = 1
  96. const m__OPENBSD_SOURCE = 1
  97. const m__PDP_ENDIAN = "__ORDER_PDP_ENDIAN__"
  98. const m__POSIX_PTHREAD_SEMANTICS = 1
  99. const m__QUAD_HIGHWORD = 1
  100. const m__QUAD_LOWWORD = 0
  101. const m__SIG_MAXSIG = 128
  102. const m__SIG_WORDS = 4
  103. const m__TANDEM_SOURCE = 1
  104. const m___ATOMIC_ACQUIRE = 2
  105. const m___ATOMIC_ACQ_REL = 4
  106. const m___ATOMIC_CONSUME = 1
  107. const m___ATOMIC_RELAXED = 0
  108. const m___ATOMIC_RELEASE = 3
  109. const m___ATOMIC_SEQ_CST = 5
  110. const m___BIGGEST_ALIGNMENT__ = 16
  111. const m___BITINT_MAXWIDTH__ = 8388608
  112. const m___BOOL_WIDTH__ = 8
  113. const m___BSD_VISIBLE = 1
  114. const m___BYTE_ORDER__ = "__ORDER_LITTLE_ENDIAN__"
  115. const m___CCGO__ = 1
  116. const m___CC_SUPPORTS_DYNAMIC_ARRAY_INIT = 1
  117. const m___CC_SUPPORTS_INLINE = 1
  118. const m___CC_SUPPORTS_VARADIC_XXX = 1
  119. const m___CC_SUPPORTS_WARNING = 1
  120. const m___CC_SUPPORTS___FUNC__ = 1
  121. const m___CC_SUPPORTS___INLINE = 1
  122. const m___CC_SUPPORTS___INLINE__ = 1
  123. const m___CHAR_BIT = 8
  124. const m___CHAR_BIT__ = 8
  125. const m___CLANG_ATOMIC_BOOL_LOCK_FREE = 2
  126. const m___CLANG_ATOMIC_CHAR16_T_LOCK_FREE = 2
  127. const m___CLANG_ATOMIC_CHAR32_T_LOCK_FREE = 2
  128. const m___CLANG_ATOMIC_CHAR_LOCK_FREE = 2
  129. const m___CLANG_ATOMIC_INT_LOCK_FREE = 2
  130. const m___CLANG_ATOMIC_LLONG_LOCK_FREE = 2
  131. const m___CLANG_ATOMIC_LONG_LOCK_FREE = 2
  132. const m___CLANG_ATOMIC_POINTER_LOCK_FREE = 2
  133. const m___CLANG_ATOMIC_SHORT_LOCK_FREE = 2
  134. const m___CLANG_ATOMIC_WCHAR_T_LOCK_FREE = 2
  135. const m___CONSTANT_CFSTRINGS__ = 1
  136. const m___DBL_DECIMAL_DIG__ = 17
  137. const m___DBL_DENORM_MIN__ = 4.9406564584124654e-324
  138. const m___DBL_DIG__ = 15
  139. const m___DBL_EPSILON__ = 2.2204460492503131e-16
  140. const m___DBL_HAS_DENORM__ = 1
  141. const m___DBL_HAS_INFINITY__ = 1
  142. const m___DBL_HAS_QUIET_NAN__ = 1
  143. const m___DBL_MANT_DIG__ = 53
  144. const m___DBL_MAX_10_EXP__ = 308
  145. const m___DBL_MAX_EXP__ = 1024
  146. const m___DBL_MAX__ = 1.7976931348623157e+308
  147. const m___DBL_MIN__ = 2.2250738585072014e-308
  148. const m___DECIMAL_DIG__ = "__LDBL_DECIMAL_DIG__"
  149. const m___ELF__ = 1
  150. const m___EXT1_VISIBLE = 1
  151. const m___EXTENSIONS__ = 1
  152. const m___FINITE_MATH_ONLY__ = 0
  153. const m___FLOAT128__ = 1
  154. const m___FLT16_DECIMAL_DIG__ = 5
  155. const m___FLT16_DENORM_MIN__ = 5.9604644775390625e-8
  156. const m___FLT16_DIG__ = 3
  157. const m___FLT16_EPSILON__ = 9.765625e-4
  158. const m___FLT16_HAS_DENORM__ = 1
  159. const m___FLT16_HAS_INFINITY__ = 1
  160. const m___FLT16_HAS_QUIET_NAN__ = 1
  161. const m___FLT16_MANT_DIG__ = 11
  162. const m___FLT16_MAX_10_EXP__ = 4
  163. const m___FLT16_MAX_EXP__ = 16
  164. const m___FLT16_MAX__ = 6.5504e+4
  165. const m___FLT16_MIN__ = 6.103515625e-5
  166. const m___FLT_DECIMAL_DIG__ = 9
  167. const m___FLT_DENORM_MIN__ = 1.40129846e-45
  168. const m___FLT_DIG__ = 6
  169. const m___FLT_EPSILON__ = 1.19209290e-7
  170. const m___FLT_HAS_DENORM__ = 1
  171. const m___FLT_HAS_INFINITY__ = 1
  172. const m___FLT_HAS_QUIET_NAN__ = 1
  173. const m___FLT_MANT_DIG__ = 24
  174. const m___FLT_MAX_10_EXP__ = 38
  175. const m___FLT_MAX_EXP__ = 128
  176. const m___FLT_MAX__ = 3.40282347e+38
  177. const m___FLT_MIN__ = 1.17549435e-38
  178. const m___FLT_RADIX__ = 2
  179. const m___FPCLASS_NEGINF = 0x0004
  180. const m___FPCLASS_NEGNORMAL = 0x0008
  181. const m___FPCLASS_NEGSUBNORMAL = 0x0010
  182. const m___FPCLASS_NEGZERO = 0x0020
  183. const m___FPCLASS_POSINF = 0x0200
  184. const m___FPCLASS_POSNORMAL = 0x0100
  185. const m___FPCLASS_POSSUBNORMAL = 0x0080
  186. const m___FPCLASS_POSZERO = 0x0040
  187. const m___FPCLASS_QNAN = 0x0002
  188. const m___FPCLASS_SNAN = 0x0001
  189. const m___FUNCTION__ = "__func__"
  190. const m___FXSR__ = 1
  191. const m___FreeBSD__ = 14
  192. const m___FreeBSD_cc_version = 1400006
  193. const m___GCC_ASM_FLAG_OUTPUTS__ = 1
  194. const m___GCC_ATOMIC_BOOL_LOCK_FREE = 2
  195. const m___GCC_ATOMIC_CHAR16_T_LOCK_FREE = 2
  196. const m___GCC_ATOMIC_CHAR32_T_LOCK_FREE = 2
  197. const m___GCC_ATOMIC_CHAR_LOCK_FREE = 2
  198. const m___GCC_ATOMIC_INT_LOCK_FREE = 2
  199. const m___GCC_ATOMIC_LLONG_LOCK_FREE = 2
  200. const m___GCC_ATOMIC_LONG_LOCK_FREE = 2
  201. const m___GCC_ATOMIC_POINTER_LOCK_FREE = 2
  202. const m___GCC_ATOMIC_SHORT_LOCK_FREE = 2
  203. const m___GCC_ATOMIC_TEST_AND_SET_TRUEVAL = 1
  204. const m___GCC_ATOMIC_WCHAR_T_LOCK_FREE = 2
  205. const m___GCC_HAVE_DWARF2_CFI_ASM = 1
  206. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 = 1
  207. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 = 1
  208. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 = 1
  209. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 = 1
  210. const m___GNUCLIKE_ASM = 3
  211. const m___GNUCLIKE_BUILTIN_CONSTANT_P = 1
  212. const m___GNUCLIKE_BUILTIN_MEMCPY = 1
  213. const m___GNUCLIKE_BUILTIN_NEXT_ARG = 1
  214. const m___GNUCLIKE_BUILTIN_STDARG = 1
  215. const m___GNUCLIKE_BUILTIN_VAALIST = 1
  216. const m___GNUCLIKE_BUILTIN_VARARGS = 1
  217. const m___GNUCLIKE_CTOR_SECTION_HANDLING = 1
  218. const m___GNUCLIKE___SECTION = 1
  219. const m___GNUCLIKE___TYPEOF = 1
  220. const m___GNUC_MINOR__ = 2
  221. const m___GNUC_PATCHLEVEL__ = 1
  222. const m___GNUC_STDC_INLINE__ = 1
  223. const m___GNUC_VA_LIST_COMPATIBILITY = 1
  224. const m___GNUC__ = 4
  225. const m___GXX_ABI_VERSION = 1002
  226. const m___INT16_FMTd__ = "hd"
  227. const m___INT16_FMTi__ = "hi"
  228. const m___INT16_MAX__ = 32767
  229. const m___INT16_TYPE__ = "short"
  230. const m___INT32_FMTd__ = "d"
  231. const m___INT32_FMTi__ = "i"
  232. const m___INT32_MAX__ = 2147483647
  233. const m___INT32_TYPE__ = "int"
  234. const m___INT64_C_SUFFIX__ = "L"
  235. const m___INT64_FMTd__ = "ld"
  236. const m___INT64_FMTi__ = "li"
  237. const m___INT64_MAX__ = 9223372036854775807
  238. const m___INT8_FMTd__ = "hhd"
  239. const m___INT8_FMTi__ = "hhi"
  240. const m___INT8_MAX__ = 127
  241. const m___INTMAX_C_SUFFIX__ = "L"
  242. const m___INTMAX_FMTd__ = "ld"
  243. const m___INTMAX_FMTi__ = "li"
  244. const m___INTMAX_MAX__ = 9223372036854775807
  245. const m___INTMAX_WIDTH__ = 64
  246. const m___INTPTR_FMTd__ = "ld"
  247. const m___INTPTR_FMTi__ = "li"
  248. const m___INTPTR_MAX__ = 9223372036854775807
  249. const m___INTPTR_WIDTH__ = 64
  250. const m___INT_FAST16_FMTd__ = "hd"
  251. const m___INT_FAST16_FMTi__ = "hi"
  252. const m___INT_FAST16_MAX__ = 32767
  253. const m___INT_FAST16_TYPE__ = "short"
  254. const m___INT_FAST16_WIDTH__ = 16
  255. const m___INT_FAST32_FMTd__ = "d"
  256. const m___INT_FAST32_FMTi__ = "i"
  257. const m___INT_FAST32_MAX__ = 2147483647
  258. const m___INT_FAST32_TYPE__ = "int"
  259. const m___INT_FAST32_WIDTH__ = 32
  260. const m___INT_FAST64_FMTd__ = "ld"
  261. const m___INT_FAST64_FMTi__ = "li"
  262. const m___INT_FAST64_MAX__ = 9223372036854775807
  263. const m___INT_FAST64_WIDTH__ = 64
  264. const m___INT_FAST8_FMTd__ = "hhd"
  265. const m___INT_FAST8_FMTi__ = "hhi"
  266. const m___INT_FAST8_MAX__ = 127
  267. const m___INT_FAST8_WIDTH__ = 8
  268. const m___INT_LEAST16_FMTd__ = "hd"
  269. const m___INT_LEAST16_FMTi__ = "hi"
  270. const m___INT_LEAST16_MAX__ = 32767
  271. const m___INT_LEAST16_TYPE__ = "short"
  272. const m___INT_LEAST16_WIDTH__ = 16
  273. const m___INT_LEAST32_FMTd__ = "d"
  274. const m___INT_LEAST32_FMTi__ = "i"
  275. const m___INT_LEAST32_MAX__ = 2147483647
  276. const m___INT_LEAST32_TYPE__ = "int"
  277. const m___INT_LEAST32_WIDTH__ = 32
  278. const m___INT_LEAST64_FMTd__ = "ld"
  279. const m___INT_LEAST64_FMTi__ = "li"
  280. const m___INT_LEAST64_MAX__ = 9223372036854775807
  281. const m___INT_LEAST64_WIDTH__ = 64
  282. const m___INT_LEAST8_FMTd__ = "hhd"
  283. const m___INT_LEAST8_FMTi__ = "hhi"
  284. const m___INT_LEAST8_MAX__ = 127
  285. const m___INT_LEAST8_WIDTH__ = 8
  286. const m___INT_MAX = 0x7fffffff
  287. const m___INT_MAX__ = 2147483647
  288. const m___INT_WIDTH__ = 32
  289. const m___ISO_C_VISIBLE = 2011
  290. const m___KPRINTF_ATTRIBUTE__ = 1
  291. const m___LDBL_DECIMAL_DIG__ = 17
  292. const m___LDBL_DENORM_MIN__ = 4.9406564584124654e-324
  293. const m___LDBL_DIG__ = 15
  294. const m___LDBL_EPSILON__ = 2.2204460492503131e-16
  295. const m___LDBL_HAS_DENORM__ = 1
  296. const m___LDBL_HAS_INFINITY__ = 1
  297. const m___LDBL_HAS_QUIET_NAN__ = 1
  298. const m___LDBL_MANT_DIG__ = 53
  299. const m___LDBL_MAX_10_EXP__ = 308
  300. const m___LDBL_MAX_EXP__ = 1024
  301. const m___LDBL_MAX__ = 1.7976931348623157e+308
  302. const m___LDBL_MIN__ = 2.2250738585072014e-308
  303. const m___LITTLE_ENDIAN__ = 1
  304. const m___LLONG_MAX = 0x7fffffffffffffff
  305. const m___LLONG_WIDTH__ = 64
  306. const m___LONG_BIT = 64
  307. const m___LONG_LONG_MAX__ = 9223372036854775807
  308. const m___LONG_MAX = 0x7fffffffffffffff
  309. const m___LONG_MAX__ = 9223372036854775807
  310. const m___LONG_WIDTH__ = 64
  311. const m___LP64__ = 1
  312. const m___MEMORY_SCOPE_DEVICE = 1
  313. const m___MEMORY_SCOPE_SINGLE = 4
  314. const m___MEMORY_SCOPE_SYSTEM = 0
  315. const m___MEMORY_SCOPE_WRKGRP = 2
  316. const m___MEMORY_SCOPE_WVFRNT = 3
  317. const m___MMX__ = 1
  318. const m___NO_INLINE__ = 1
  319. const m___NO_MATH_ERRNO__ = 1
  320. const m___NO_MATH_INLINES = 1
  321. const m___OBJC_BOOL_IS_BOOL = 0
  322. const m___OFF_MAX = "__LONG_MAX"
  323. const m___OFF_MIN = "__LONG_MIN"
  324. const m___OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES = 3
  325. const m___OPENCL_MEMORY_SCOPE_DEVICE = 2
  326. const m___OPENCL_MEMORY_SCOPE_SUB_GROUP = 4
  327. const m___OPENCL_MEMORY_SCOPE_WORK_GROUP = 1
  328. const m___OPENCL_MEMORY_SCOPE_WORK_ITEM = 0
  329. const m___ORDER_BIG_ENDIAN__ = 4321
  330. const m___ORDER_LITTLE_ENDIAN__ = 1234
  331. const m___ORDER_PDP_ENDIAN__ = 3412
  332. const m___POINTER_WIDTH__ = 64
  333. const m___POSIX_VISIBLE = 200809
  334. const m___PRAGMA_REDEFINE_EXTNAME = 1
  335. const m___PRETTY_FUNCTION__ = "__func__"
  336. const m___PTRDIFF_FMTd__ = "ld"
  337. const m___PTRDIFF_FMTi__ = "li"
  338. const m___PTRDIFF_MAX__ = 9223372036854775807
  339. const m___PTRDIFF_WIDTH__ = 64
  340. const m___QUAD_MAX = "__LONG_MAX"
  341. const m___QUAD_MIN = "__LONG_MIN"
  342. const m___SCHAR_MAX = 0x7f
  343. const m___SCHAR_MAX__ = 127
  344. const m___SEG_FS = 1
  345. const m___SEG_GS = 1
  346. const m___SHRT_MAX = 0x7fff
  347. const m___SHRT_MAX__ = 32767
  348. const m___SHRT_WIDTH__ = 16
  349. const m___SIG_ATOMIC_MAX__ = 2147483647
  350. const m___SIG_ATOMIC_WIDTH__ = 32
  351. const m___SIZEOF_DOUBLE__ = 8
  352. const m___SIZEOF_FLOAT128__ = 16
  353. const m___SIZEOF_FLOAT__ = 4
  354. const m___SIZEOF_INT128__ = 16
  355. const m___SIZEOF_INT__ = 4
  356. const m___SIZEOF_LONG_DOUBLE__ = 8
  357. const m___SIZEOF_LONG_LONG__ = 8
  358. const m___SIZEOF_LONG__ = 8
  359. const m___SIZEOF_POINTER__ = 8
  360. const m___SIZEOF_PTRDIFF_T__ = 8
  361. const m___SIZEOF_SHORT__ = 2
  362. const m___SIZEOF_SIZE_T__ = 8
  363. const m___SIZEOF_WCHAR_T__ = 4
  364. const m___SIZEOF_WINT_T__ = 4
  365. const m___SIZE_FMTX__ = "lX"
  366. const m___SIZE_FMTo__ = "lo"
  367. const m___SIZE_FMTu__ = "lu"
  368. const m___SIZE_FMTx__ = "lx"
  369. const m___SIZE_MAX__ = 18446744073709551615
  370. const m___SIZE_T_MAX = "__ULONG_MAX"
  371. const m___SIZE_WIDTH__ = 64
  372. const m___SSE2_MATH__ = 1
  373. const m___SSE2__ = 1
  374. const m___SSE_MATH__ = 1
  375. const m___SSE__ = 1
  376. const m___SSIZE_MAX = "__LONG_MAX"
  377. const m___STDC_HOSTED__ = 1
  378. const m___STDC_MB_MIGHT_NEQ_WC__ = 1
  379. const m___STDC_UTF_16__ = 1
  380. const m___STDC_UTF_32__ = 1
  381. const m___STDC_VERSION__ = 201710
  382. const m___STDC_WANT_IEC_60559_ATTRIBS_EXT__ = 1
  383. const m___STDC_WANT_IEC_60559_BFP_EXT__ = 1
  384. const m___STDC_WANT_IEC_60559_DFP_EXT__ = 1
  385. const m___STDC_WANT_IEC_60559_FUNCS_EXT__ = 1
  386. const m___STDC_WANT_IEC_60559_TYPES_EXT__ = 1
  387. const m___STDC_WANT_LIB_EXT2__ = 1
  388. const m___STDC_WANT_MATH_SPEC_FUNCS__ = 1
  389. const m___STDC__ = 1
  390. const m___UCHAR_MAX = 0xff
  391. const m___UINT16_FMTX__ = "hX"
  392. const m___UINT16_FMTo__ = "ho"
  393. const m___UINT16_FMTu__ = "hu"
  394. const m___UINT16_FMTx__ = "hx"
  395. const m___UINT16_MAX__ = 65535
  396. const m___UINT32_C_SUFFIX__ = "U"
  397. const m___UINT32_FMTX__ = "X"
  398. const m___UINT32_FMTo__ = "o"
  399. const m___UINT32_FMTu__ = "u"
  400. const m___UINT32_FMTx__ = "x"
  401. const m___UINT32_MAX__ = 4294967295
  402. const m___UINT64_C_SUFFIX__ = "UL"
  403. const m___UINT64_FMTX__ = "lX"
  404. const m___UINT64_FMTo__ = "lo"
  405. const m___UINT64_FMTu__ = "lu"
  406. const m___UINT64_FMTx__ = "lx"
  407. const m___UINT64_MAX__ = 18446744073709551615
  408. const m___UINT8_FMTX__ = "hhX"
  409. const m___UINT8_FMTo__ = "hho"
  410. const m___UINT8_FMTu__ = "hhu"
  411. const m___UINT8_FMTx__ = "hhx"
  412. const m___UINT8_MAX__ = 255
  413. const m___UINTMAX_C_SUFFIX__ = "UL"
  414. const m___UINTMAX_FMTX__ = "lX"
  415. const m___UINTMAX_FMTo__ = "lo"
  416. const m___UINTMAX_FMTu__ = "lu"
  417. const m___UINTMAX_FMTx__ = "lx"
  418. const m___UINTMAX_MAX__ = 18446744073709551615
  419. const m___UINTMAX_WIDTH__ = 64
  420. const m___UINTPTR_FMTX__ = "lX"
  421. const m___UINTPTR_FMTo__ = "lo"
  422. const m___UINTPTR_FMTu__ = "lu"
  423. const m___UINTPTR_FMTx__ = "lx"
  424. const m___UINTPTR_MAX__ = 18446744073709551615
  425. const m___UINTPTR_WIDTH__ = 64
  426. const m___UINT_FAST16_FMTX__ = "hX"
  427. const m___UINT_FAST16_FMTo__ = "ho"
  428. const m___UINT_FAST16_FMTu__ = "hu"
  429. const m___UINT_FAST16_FMTx__ = "hx"
  430. const m___UINT_FAST16_MAX__ = 65535
  431. const m___UINT_FAST32_FMTX__ = "X"
  432. const m___UINT_FAST32_FMTo__ = "o"
  433. const m___UINT_FAST32_FMTu__ = "u"
  434. const m___UINT_FAST32_FMTx__ = "x"
  435. const m___UINT_FAST32_MAX__ = 4294967295
  436. const m___UINT_FAST64_FMTX__ = "lX"
  437. const m___UINT_FAST64_FMTo__ = "lo"
  438. const m___UINT_FAST64_FMTu__ = "lu"
  439. const m___UINT_FAST64_FMTx__ = "lx"
  440. const m___UINT_FAST64_MAX__ = 18446744073709551615
  441. const m___UINT_FAST8_FMTX__ = "hhX"
  442. const m___UINT_FAST8_FMTo__ = "hho"
  443. const m___UINT_FAST8_FMTu__ = "hhu"
  444. const m___UINT_FAST8_FMTx__ = "hhx"
  445. const m___UINT_FAST8_MAX__ = 255
  446. const m___UINT_LEAST16_FMTX__ = "hX"
  447. const m___UINT_LEAST16_FMTo__ = "ho"
  448. const m___UINT_LEAST16_FMTu__ = "hu"
  449. const m___UINT_LEAST16_FMTx__ = "hx"
  450. const m___UINT_LEAST16_MAX__ = 65535
  451. const m___UINT_LEAST32_FMTX__ = "X"
  452. const m___UINT_LEAST32_FMTo__ = "o"
  453. const m___UINT_LEAST32_FMTu__ = "u"
  454. const m___UINT_LEAST32_FMTx__ = "x"
  455. const m___UINT_LEAST32_MAX__ = 4294967295
  456. const m___UINT_LEAST64_FMTX__ = "lX"
  457. const m___UINT_LEAST64_FMTo__ = "lo"
  458. const m___UINT_LEAST64_FMTu__ = "lu"
  459. const m___UINT_LEAST64_FMTx__ = "lx"
  460. const m___UINT_LEAST64_MAX__ = 18446744073709551615
  461. const m___UINT_LEAST8_FMTX__ = "hhX"
  462. const m___UINT_LEAST8_FMTo__ = "hho"
  463. const m___UINT_LEAST8_FMTu__ = "hhu"
  464. const m___UINT_LEAST8_FMTx__ = "hhx"
  465. const m___UINT_LEAST8_MAX__ = 255
  466. const m___UINT_MAX = 0xffffffff
  467. const m___ULLONG_MAX = "0xffffffffffffffffU"
  468. const m___ULONG_MAX = 0xffffffffffffffff
  469. const m___UQUAD_MAX = "__ULONG_MAX"
  470. const m___USHRT_MAX = 0xffff
  471. const m___VERSION__ = "FreeBSD Clang 18.1.6 (https://github.com/llvm/llvm-project.git llvmorg-18.1.6-0-g1118c2e05e67)"
  472. const m___WCHAR_MAX = "__INT_MAX"
  473. const m___WCHAR_MAX__ = 2147483647
  474. const m___WCHAR_MIN = "__INT_MIN"
  475. const m___WCHAR_TYPE__ = "int"
  476. const m___WCHAR_WIDTH__ = 32
  477. const m___WINT_MAX__ = 2147483647
  478. const m___WINT_TYPE__ = "int"
  479. const m___WINT_WIDTH__ = 32
  480. const m___WORDSIZE = 64
  481. const m___WORD_BIT = 32
  482. const m___XSI_VISIBLE = 700
  483. const m___amd64 = 1
  484. const m___amd64__ = 1
  485. const m___clang__ = 1
  486. const m___clang_literal_encoding__ = "UTF-8"
  487. const m___clang_major__ = 18
  488. const m___clang_minor__ = 1
  489. const m___clang_patchlevel__ = 6
  490. const m___clang_version__ = "18.1.6 (https://github.com/llvm/llvm-project.git llvmorg-18.1.6-0-g1118c2e05e67)"
  491. const m___clang_wide_literal_encoding__ = "UTF-32"
  492. const m___code_model_small__ = 1
  493. const m___const = "const"
  494. const m___has_extension = "__has_feature"
  495. const m___k8 = 1
  496. const m___k8__ = 1
  497. const m___llvm__ = 1
  498. const m___restrict = "restrict"
  499. const m___restrict_arr = "restrict"
  500. const m___signed = "signed"
  501. const m___tune_k8__ = 1
  502. const m___unix = 1
  503. const m___unix__ = 1
  504. const m___volatile = "volatile"
  505. const m___writeonly = "__unused"
  506. const m___x86_64 = 1
  507. const m___x86_64__ = 1
  508. const m_fds_bits = "__fds_bits"
  509. const m_static_assert = "_Static_assert"
  510. const m_unix = 1
  511. type t__builtin_va_list = uintptr
  512. type t__predefined_size_t = uint64
  513. type t__predefined_wchar_t = int32
  514. type t__predefined_ptrdiff_t = int64
  515. type t__int8_t = int8
  516. type t__uint8_t = uint8
  517. type t__int16_t = int16
  518. type t__uint16_t = uint16
  519. type t__int32_t = int32
  520. type t__uint32_t = uint32
  521. type t__int64_t = int64
  522. type t__uint64_t = uint64
  523. type t__int_least8_t = int8
  524. type t__int_least16_t = int16
  525. type t__int_least32_t = int32
  526. type t__int_least64_t = int64
  527. type t__intmax_t = int64
  528. type t__uint_least8_t = uint8
  529. type t__uint_least16_t = uint16
  530. type t__uint_least32_t = uint32
  531. type t__uint_least64_t = uint64
  532. type t__uintmax_t = uint64
  533. type t__intptr_t = int64
  534. type t__intfptr_t = int64
  535. type t__uintptr_t = uint64
  536. type t__uintfptr_t = uint64
  537. type t__vm_offset_t = uint64
  538. type t__vm_size_t = uint64
  539. type t__size_t = uint64
  540. type t__ssize_t = int64
  541. type t__ptrdiff_t = int64
  542. type t__clock_t = int32
  543. type t__critical_t = int64
  544. type t__double_t = float64
  545. type t__float_t = float32
  546. type t__int_fast8_t = int32
  547. type t__int_fast16_t = int32
  548. type t__int_fast32_t = int32
  549. type t__int_fast64_t = int64
  550. type t__register_t = int64
  551. type t__segsz_t = int64
  552. type t__time_t = int64
  553. type t__uint_fast8_t = uint32
  554. type t__uint_fast16_t = uint32
  555. type t__uint_fast32_t = uint32
  556. type t__uint_fast64_t = uint64
  557. type t__u_register_t = uint64
  558. type t__vm_paddr_t = uint64
  559. type T___wchar_t = int32
  560. type t__blksize_t = int32
  561. type t__blkcnt_t = int64
  562. type t__clockid_t = int32
  563. type t__fflags_t = uint32
  564. type t__fsblkcnt_t = uint64
  565. type t__fsfilcnt_t = uint64
  566. type t__gid_t = uint32
  567. type t__id_t = int64
  568. type t__ino_t = uint64
  569. type t__key_t = int64
  570. type t__lwpid_t = int32
  571. type t__mode_t = uint16
  572. type t__accmode_t = int32
  573. type t__nl_item = int32
  574. type t__nlink_t = uint64
  575. type t__off_t = int64
  576. type t__off64_t = int64
  577. type t__pid_t = int32
  578. type t__sbintime_t = int64
  579. type t__rlim_t = int64
  580. type t__sa_family_t = uint8
  581. type t__socklen_t = uint32
  582. type t__suseconds_t = int64
  583. type t__timer_t = uintptr
  584. type t__mqd_t = uintptr
  585. type t__uid_t = uint32
  586. type t__useconds_t = uint32
  587. type t__cpuwhich_t = int32
  588. type t__cpulevel_t = int32
  589. type t__cpusetid_t = int32
  590. type t__daddr_t = int64
  591. type t__ct_rune_t = int32
  592. type t__rune_t = int32
  593. type t__wint_t = int32
  594. type t__char16_t = uint16
  595. type t__char32_t = uint32
  596. type t__max_align_t = struct {
  597. F__max_align1 int64
  598. F__max_align2 float64
  599. }
  600. type t__dev_t = uint64
  601. type t__fixpt_t = uint32
  602. type t__mbstate_t = struct {
  603. F_mbstateL [0]t__int64_t
  604. F__mbstate8 [128]int8
  605. }
  606. type t__rman_res_t = uint64
  607. type t__va_list = uintptr
  608. type t__gnuc_va_list = uintptr
  609. type Tpthread_once = struct {
  610. Fstate int32
  611. Fmutex Tpthread_mutex_t
  612. }
  613. type Tpthread_t = uintptr
  614. type Tpthread_attr_t = uintptr
  615. type Tpthread_mutex_t = uintptr
  616. type Tpthread_mutexattr_t = uintptr
  617. type Tpthread_cond_t = uintptr
  618. type Tpthread_condattr_t = uintptr
  619. type Tpthread_key_t = int32
  620. type Tpthread_once_t = struct {
  621. Fstate int32
  622. Fmutex Tpthread_mutex_t
  623. }
  624. type Tpthread_rwlock_t = uintptr
  625. type Tpthread_rwlockattr_t = uintptr
  626. type Tpthread_barrier_t = uintptr
  627. type Tpthread_barrierattr_t = uintptr
  628. type Tpthread_spinlock_t = uintptr
  629. type Tpthread_addr_t = uintptr
  630. type Tpthread_startroutine_t = uintptr
  631. type Tu_char = uint8
  632. type Tu_short = uint16
  633. type Tu_int = uint32
  634. type Tu_long = uint64
  635. type Tushort = uint16
  636. type Tuint = uint32
  637. type Tint8_t = int8
  638. type Tint16_t = int16
  639. type Tint32_t = int32
  640. type Tint64_t = int64
  641. type Tuint8_t = uint8
  642. type Tuint16_t = uint16
  643. type Tuint32_t = uint32
  644. type Tuint64_t = uint64
  645. type Tintptr_t = int64
  646. type Tuintptr_t = uint64
  647. type Tintmax_t = int64
  648. type Tuintmax_t = uint64
  649. type Tu_int8_t = uint8
  650. type Tu_int16_t = uint16
  651. type Tu_int32_t = uint32
  652. type Tu_int64_t = uint64
  653. type Tu_quad_t = uint64
  654. type Tquad_t = int64
  655. type Tqaddr_t = uintptr
  656. type Tcaddr_t = uintptr
  657. type Tc_caddr_t = uintptr
  658. type Tblksize_t = int32
  659. type Tcpuwhich_t = int32
  660. type Tcpulevel_t = int32
  661. type Tcpusetid_t = int32
  662. type Tblkcnt_t = int64
  663. type Tclock_t = int32
  664. type Tclockid_t = int32
  665. type Tcritical_t = int64
  666. type Tdaddr_t = int64
  667. type Tdev_t = uint64
  668. type Tfflags_t = uint32
  669. type Tfixpt_t = uint32
  670. type Tfsblkcnt_t = uint64
  671. type Tfsfilcnt_t = uint64
  672. type Tgid_t = uint32
  673. type Tin_addr_t = uint32
  674. type Tin_port_t = uint16
  675. type Tid_t = int64
  676. type Tino_t = uint64
  677. type Tkey_t = int64
  678. type Tlwpid_t = int32
  679. type Tmode_t = uint16
  680. type Taccmode_t = int32
  681. type Tnlink_t = uint64
  682. type Toff_t = int64
  683. type Toff64_t = int64
  684. type Tpid_t = int32
  685. type Tregister_t = int64
  686. type Trlim_t = int64
  687. type Tsbintime_t = int64
  688. type Tsegsz_t = int64
  689. type Tsize_t = uint64
  690. type Tssize_t = int64
  691. type Tsuseconds_t = int64
  692. type Ttime_t = int64
  693. type Ttimer_t = uintptr
  694. type Tmqd_t = uintptr
  695. type Tu_register_t = uint64
  696. type Tuid_t = uint32
  697. type Tuseconds_t = uint32
  698. type Tcap_ioctl_t = uint64
  699. type Tkpaddr_t = uint64
  700. type Tkvaddr_t = uint64
  701. type Tksize_t = uint64
  702. type Tkssize_t = int64
  703. type Tvm_offset_t = uint64
  704. type Tvm_ooffset_t = uint64
  705. type Tvm_paddr_t = uint64
  706. type Tvm_pindex_t = uint64
  707. type Tvm_size_t = uint64
  708. type Trman_res_t = uint64
  709. type Tsyscallarg_t = int64
  710. type t__sigset_t = struct {
  711. F__bits [4]t__uint32_t
  712. }
  713. type t__sigset = t__sigset_t
  714. type Ttimeval = struct {
  715. Ftv_sec Ttime_t
  716. Ftv_usec Tsuseconds_t
  717. }
  718. type Ttimespec = struct {
  719. Ftv_sec Ttime_t
  720. Ftv_nsec int64
  721. }
  722. type Titimerspec = struct {
  723. Fit_interval Ttimespec
  724. Fit_value Ttimespec
  725. }
  726. type t__fd_mask = uint64
  727. type Tfd_mask = uint64
  728. type Tsigset_t = struct {
  729. F__bits [4]t__uint32_t
  730. }
  731. type Tfd_set = struct {
  732. F__fds_bits [16]t__fd_mask
  733. }
  734. type Tint_least8_t = int8
  735. type Tint_least16_t = int16
  736. type Tint_least32_t = int32
  737. type Tint_least64_t = int64
  738. type Tuint_least8_t = uint8
  739. type Tuint_least16_t = uint16
  740. type Tuint_least32_t = uint32
  741. type Tuint_least64_t = uint64
  742. type Tint_fast8_t = int32
  743. type Tint_fast16_t = int32
  744. type Tint_fast32_t = int32
  745. type Tint_fast64_t = int64
  746. type Tuint_fast8_t = uint32
  747. type Tuint_fast16_t = uint32
  748. type Tuint_fast32_t = uint32
  749. type Tuint_fast64_t = uint64
  750. type TMD2_CTX = struct {
  751. Fi Tuint32_t
  752. FC [16]uint8
  753. FX [48]uint8
  754. }
  755. type TMD2Context = TMD2_CTX
  756. type Tlocale_t = uintptr
  757. type Trsize_t = uint64
  758. type Terrno_t = int32
  759. // C documentation
  760. //
  761. // /* cut-n-pasted from rfc1319 */
  762. var _S = [256]uint8{
  763. 0: uint8(41),
  764. 1: uint8(46),
  765. 2: uint8(67),
  766. 3: uint8(201),
  767. 4: uint8(162),
  768. 5: uint8(216),
  769. 6: uint8(124),
  770. 7: uint8(1),
  771. 8: uint8(61),
  772. 9: uint8(54),
  773. 10: uint8(84),
  774. 11: uint8(161),
  775. 12: uint8(236),
  776. 13: uint8(240),
  777. 14: uint8(6),
  778. 15: uint8(19),
  779. 16: uint8(98),
  780. 17: uint8(167),
  781. 18: uint8(5),
  782. 19: uint8(243),
  783. 20: uint8(192),
  784. 21: uint8(199),
  785. 22: uint8(115),
  786. 23: uint8(140),
  787. 24: uint8(152),
  788. 25: uint8(147),
  789. 26: uint8(43),
  790. 27: uint8(217),
  791. 28: uint8(188),
  792. 29: uint8(76),
  793. 30: uint8(130),
  794. 31: uint8(202),
  795. 32: uint8(30),
  796. 33: uint8(155),
  797. 34: uint8(87),
  798. 35: uint8(60),
  799. 36: uint8(253),
  800. 37: uint8(212),
  801. 38: uint8(224),
  802. 39: uint8(22),
  803. 40: uint8(103),
  804. 41: uint8(66),
  805. 42: uint8(111),
  806. 43: uint8(24),
  807. 44: uint8(138),
  808. 45: uint8(23),
  809. 46: uint8(229),
  810. 47: uint8(18),
  811. 48: uint8(190),
  812. 49: uint8(78),
  813. 50: uint8(196),
  814. 51: uint8(214),
  815. 52: uint8(218),
  816. 53: uint8(158),
  817. 54: uint8(222),
  818. 55: uint8(73),
  819. 56: uint8(160),
  820. 57: uint8(251),
  821. 58: uint8(245),
  822. 59: uint8(142),
  823. 60: uint8(187),
  824. 61: uint8(47),
  825. 62: uint8(238),
  826. 63: uint8(122),
  827. 64: uint8(169),
  828. 65: uint8(104),
  829. 66: uint8(121),
  830. 67: uint8(145),
  831. 68: uint8(21),
  832. 69: uint8(178),
  833. 70: uint8(7),
  834. 71: uint8(63),
  835. 72: uint8(148),
  836. 73: uint8(194),
  837. 74: uint8(16),
  838. 75: uint8(137),
  839. 76: uint8(11),
  840. 77: uint8(34),
  841. 78: uint8(95),
  842. 79: uint8(33),
  843. 80: uint8(128),
  844. 81: uint8(127),
  845. 82: uint8(93),
  846. 83: uint8(154),
  847. 84: uint8(90),
  848. 85: uint8(144),
  849. 86: uint8(50),
  850. 87: uint8(39),
  851. 88: uint8(53),
  852. 89: uint8(62),
  853. 90: uint8(204),
  854. 91: uint8(231),
  855. 92: uint8(191),
  856. 93: uint8(247),
  857. 94: uint8(151),
  858. 95: uint8(3),
  859. 96: uint8(255),
  860. 97: uint8(25),
  861. 98: uint8(48),
  862. 99: uint8(179),
  863. 100: uint8(72),
  864. 101: uint8(165),
  865. 102: uint8(181),
  866. 103: uint8(209),
  867. 104: uint8(215),
  868. 105: uint8(94),
  869. 106: uint8(146),
  870. 107: uint8(42),
  871. 108: uint8(172),
  872. 109: uint8(86),
  873. 110: uint8(170),
  874. 111: uint8(198),
  875. 112: uint8(79),
  876. 113: uint8(184),
  877. 114: uint8(56),
  878. 115: uint8(210),
  879. 116: uint8(150),
  880. 117: uint8(164),
  881. 118: uint8(125),
  882. 119: uint8(182),
  883. 120: uint8(118),
  884. 121: uint8(252),
  885. 122: uint8(107),
  886. 123: uint8(226),
  887. 124: uint8(156),
  888. 125: uint8(116),
  889. 126: uint8(4),
  890. 127: uint8(241),
  891. 128: uint8(69),
  892. 129: uint8(157),
  893. 130: uint8(112),
  894. 131: uint8(89),
  895. 132: uint8(100),
  896. 133: uint8(113),
  897. 134: uint8(135),
  898. 135: uint8(32),
  899. 136: uint8(134),
  900. 137: uint8(91),
  901. 138: uint8(207),
  902. 139: uint8(101),
  903. 140: uint8(230),
  904. 141: uint8(45),
  905. 142: uint8(168),
  906. 143: uint8(2),
  907. 144: uint8(27),
  908. 145: uint8(96),
  909. 146: uint8(37),
  910. 147: uint8(173),
  911. 148: uint8(174),
  912. 149: uint8(176),
  913. 150: uint8(185),
  914. 151: uint8(246),
  915. 152: uint8(28),
  916. 153: uint8(70),
  917. 154: uint8(97),
  918. 155: uint8(105),
  919. 156: uint8(52),
  920. 157: uint8(64),
  921. 158: uint8(126),
  922. 159: uint8(15),
  923. 160: uint8(85),
  924. 161: uint8(71),
  925. 162: uint8(163),
  926. 163: uint8(35),
  927. 164: uint8(221),
  928. 165: uint8(81),
  929. 166: uint8(175),
  930. 167: uint8(58),
  931. 168: uint8(195),
  932. 169: uint8(92),
  933. 170: uint8(249),
  934. 171: uint8(206),
  935. 172: uint8(186),
  936. 173: uint8(197),
  937. 174: uint8(234),
  938. 175: uint8(38),
  939. 176: uint8(44),
  940. 177: uint8(83),
  941. 178: uint8(13),
  942. 179: uint8(110),
  943. 180: uint8(133),
  944. 181: uint8(40),
  945. 182: uint8(132),
  946. 183: uint8(9),
  947. 184: uint8(211),
  948. 185: uint8(223),
  949. 186: uint8(205),
  950. 187: uint8(244),
  951. 188: uint8(65),
  952. 189: uint8(129),
  953. 190: uint8(77),
  954. 191: uint8(82),
  955. 192: uint8(106),
  956. 193: uint8(220),
  957. 194: uint8(55),
  958. 195: uint8(200),
  959. 196: uint8(108),
  960. 197: uint8(193),
  961. 198: uint8(171),
  962. 199: uint8(250),
  963. 200: uint8(36),
  964. 201: uint8(225),
  965. 202: uint8(123),
  966. 203: uint8(8),
  967. 204: uint8(12),
  968. 205: uint8(189),
  969. 206: uint8(177),
  970. 207: uint8(74),
  971. 208: uint8(120),
  972. 209: uint8(136),
  973. 210: uint8(149),
  974. 211: uint8(139),
  975. 212: uint8(227),
  976. 213: uint8(99),
  977. 214: uint8(232),
  978. 215: uint8(109),
  979. 216: uint8(233),
  980. 217: uint8(203),
  981. 218: uint8(213),
  982. 219: uint8(254),
  983. 220: uint8(59),
  984. 222: uint8(29),
  985. 223: uint8(57),
  986. 224: uint8(242),
  987. 225: uint8(239),
  988. 226: uint8(183),
  989. 227: uint8(14),
  990. 228: uint8(102),
  991. 229: uint8(88),
  992. 230: uint8(208),
  993. 231: uint8(228),
  994. 232: uint8(166),
  995. 233: uint8(119),
  996. 234: uint8(114),
  997. 235: uint8(248),
  998. 236: uint8(235),
  999. 237: uint8(117),
  1000. 238: uint8(75),
  1001. 239: uint8(10),
  1002. 240: uint8(49),
  1003. 241: uint8(68),
  1004. 242: uint8(80),
  1005. 243: uint8(180),
  1006. 244: uint8(143),
  1007. 245: uint8(237),
  1008. 246: uint8(31),
  1009. 247: uint8(26),
  1010. 248: uint8(219),
  1011. 249: uint8(153),
  1012. 250: uint8(141),
  1013. 251: uint8(51),
  1014. 252: uint8(159),
  1015. 253: uint8(17),
  1016. 254: uint8(131),
  1017. 255: uint8(20),
  1018. }
  1019. // C documentation
  1020. //
  1021. // /* cut-n-pasted from rfc1319 */
  1022. var _pad = [17]uintptr{
  1023. 0: __ccgo_ts,
  1024. 1: __ccgo_ts + 1,
  1025. 2: __ccgo_ts + 3,
  1026. 3: __ccgo_ts + 6,
  1027. 4: __ccgo_ts + 10,
  1028. 5: __ccgo_ts + 15,
  1029. 6: __ccgo_ts + 21,
  1030. 7: __ccgo_ts + 28,
  1031. 8: __ccgo_ts + 36,
  1032. 9: __ccgo_ts + 45,
  1033. 10: __ccgo_ts + 55,
  1034. 11: __ccgo_ts + 66,
  1035. 12: __ccgo_ts + 78,
  1036. 13: __ccgo_ts + 91,
  1037. 14: __ccgo_ts + 105,
  1038. 15: __ccgo_ts + 120,
  1039. 16: __ccgo_ts + 136,
  1040. }
  1041. func XMD2Init(tls *libc.TLS, context uintptr) {
  1042. (*TMD2_CTX)(unsafe.Pointer(context)).Fi = uint32(16)
  1043. libc.Xmemset(tls, context+4, 0, uint64(16))
  1044. libc.Xmemset(tls, context+20, 0, uint64(48))
  1045. }
  1046. func XMD2Update(tls *libc.TLS, context uintptr, input uintptr, inputLen uint32) {
  1047. var idx, piece uint32
  1048. var p2 uintptr
  1049. _, _, _ = idx, piece, p2
  1050. idx = uint32(0)
  1051. for {
  1052. if !(idx < inputLen) {
  1053. break
  1054. }
  1055. piece = uint32(32) - (*TMD2_CTX)(unsafe.Pointer(context)).Fi
  1056. if inputLen-idx < piece {
  1057. piece = inputLen - idx
  1058. }
  1059. libc.Xmemcpy(tls, context+20+uintptr((*TMD2_CTX)(unsafe.Pointer(context)).Fi), input+uintptr(idx), uint64(piece))
  1060. p2 = context
  1061. *(*Tuint32_t)(unsafe.Pointer(p2)) += piece
  1062. if *(*Tuint32_t)(unsafe.Pointer(p2)) == uint32(32) {
  1063. XMD2Transform(tls, context)
  1064. } /* resets i */
  1065. goto _1
  1066. _1:
  1067. ;
  1068. idx += piece
  1069. }
  1070. }
  1071. func XMD2Final(tls *libc.TLS, digest uintptr, context uintptr) {
  1072. var padlen uint32
  1073. _ = padlen
  1074. /* padlen should be 1..16 */
  1075. padlen = uint32(32) - (*TMD2_CTX)(unsafe.Pointer(context)).Fi
  1076. /* add padding */
  1077. XMD2Update(tls, context, _pad[padlen], padlen)
  1078. /* add checksum */
  1079. XMD2Update(tls, context, context+4, libc.Uint32FromInt64(16))
  1080. /* copy out final digest */
  1081. libc.Xmemcpy(tls, digest, context+20, libc.Uint64FromInt32(16))
  1082. /* reset the context */
  1083. XMD2Init(tls, context)
  1084. }
  1085. // C documentation
  1086. //
  1087. // /*static*/
  1088. func XMD2Transform(tls *libc.TLS, context uintptr) {
  1089. var j, k, l, t, v4 Tuint32_t
  1090. var v6 uint8
  1091. var p2 uintptr
  1092. _, _, _, _, _, _, _ = j, k, l, t, v4, v6, p2
  1093. /* set block "3" and update "checksum" */
  1094. l = uint32(*(*uint8)(unsafe.Pointer(context + 4 + 15)))
  1095. j = libc.Uint32FromInt32(0)
  1096. for {
  1097. if !(j < uint32(16)) {
  1098. break
  1099. }
  1100. *(*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)))))
  1101. p2 = context + 4 + uintptr(j)
  1102. *(*uint8)(unsafe.Pointer(p2)) = uint8(int32(*(*uint8)(unsafe.Pointer(p2))) ^ libc.Int32FromUint8(_S[uint32(*(*uint8)(unsafe.Pointer(context + 20 + uintptr(uint32(16)+j))))^l]))
  1103. l = uint32(*(*uint8)(unsafe.Pointer(p2)))
  1104. goto _1
  1105. _1:
  1106. ;
  1107. j++
  1108. }
  1109. /* mangle input block */
  1110. v4 = libc.Uint32FromInt32(0)
  1111. j = v4
  1112. t = v4
  1113. for {
  1114. if !(j < uint32(18)) {
  1115. break
  1116. }
  1117. k = uint32(0)
  1118. for {
  1119. if !(k < uint32(48)) {
  1120. break
  1121. }
  1122. v6 = libc.Uint8FromInt32(libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(context + 20 + uintptr(k)))) ^ libc.Int32FromUint8(_S[t]))
  1123. *(*uint8)(unsafe.Pointer(context + 20 + uintptr(k))) = v6
  1124. t = uint32(v6)
  1125. goto _5
  1126. _5:
  1127. ;
  1128. k++
  1129. }
  1130. goto _3
  1131. _3:
  1132. ;
  1133. t = (t + j) % uint32(256)
  1134. j++
  1135. }
  1136. /* reset input pointer */
  1137. (*TMD2_CTX)(unsafe.Pointer(context)).Fi = uint32(16)
  1138. }
  1139. const m_MD4_BLOCK_LENGTH = 64
  1140. const m_MD4_DIGEST_LENGTH = 16
  1141. type TMD4_CTX = struct {
  1142. Fstate [4]Tuint32_t
  1143. Fcount Tuint64_t
  1144. Fbuffer [64]Tuint8_t
  1145. }
  1146. type TMD4Context = TMD4_CTX
  1147. var _PADDING = [64]Tuint8_t{
  1148. 0: uint8(0x80),
  1149. }
  1150. // C documentation
  1151. //
  1152. // /*
  1153. // * Start MD4 accumulation.
  1154. // * Set bit count to 0 and buffer to mysterious initialization constants.
  1155. // */
  1156. func XMD4Init(tls *libc.TLS, ctx uintptr) {
  1157. (*TMD4_CTX)(unsafe.Pointer(ctx)).Fcount = uint64(0)
  1158. *(*Tuint32_t)(unsafe.Pointer(ctx)) = uint32(0x67452301)
  1159. *(*Tuint32_t)(unsafe.Pointer(ctx + 1*4)) = uint32(0xefcdab89)
  1160. *(*Tuint32_t)(unsafe.Pointer(ctx + 2*4)) = uint32(0x98badcfe)
  1161. *(*Tuint32_t)(unsafe.Pointer(ctx + 3*4)) = uint32(0x10325476)
  1162. }
  1163. // C documentation
  1164. //
  1165. // /*
  1166. // * Update context to reflect the concatenation of another buffer full
  1167. // * of bytes.
  1168. // */
  1169. func XMD4Update(tls *libc.TLS, ctx uintptr, input uintptr, len1 Tsize_t) {
  1170. var have, need Tsize_t
  1171. _, _ = have, need
  1172. /* Check how many bytes we already have and how many more we need. */
  1173. have = (*TMD4_CTX)(unsafe.Pointer(ctx)).Fcount >> libc.Int32FromInt32(3) & libc.Uint64FromInt32(libc.Int32FromInt32(m_MD4_BLOCK_LENGTH)-libc.Int32FromInt32(1))
  1174. need = uint64(m_MD4_BLOCK_LENGTH) - have
  1175. /* Update bitcount */
  1176. *(*Tuint64_t)(unsafe.Pointer(ctx + 16)) += len1 << int32(3)
  1177. if len1 >= need {
  1178. if have != uint64(0) {
  1179. libc.Xmemcpy(tls, ctx+24+uintptr(have), input, need)
  1180. XMD4Transform(tls, ctx, ctx+24)
  1181. input += uintptr(need)
  1182. len1 -= need
  1183. have = uint64(0)
  1184. }
  1185. /* Process data in MD4_BLOCK_LENGTH-byte chunks. */
  1186. for len1 >= uint64(m_MD4_BLOCK_LENGTH) {
  1187. XMD4Transform(tls, ctx, input)
  1188. input += uintptr(m_MD4_BLOCK_LENGTH)
  1189. len1 -= uint64(m_MD4_BLOCK_LENGTH)
  1190. }
  1191. }
  1192. /* Handle any remaining bytes of data. */
  1193. if len1 != uint64(0) {
  1194. libc.Xmemcpy(tls, ctx+24+uintptr(have), input, len1)
  1195. }
  1196. }
  1197. // C documentation
  1198. //
  1199. // /*
  1200. // * Pad pad to 64-byte boundary with the bit pattern
  1201. // * 1 0* (64-bit count of bits processed, MSB-first)
  1202. // */
  1203. func XMD4Pad(tls *libc.TLS, ctx uintptr) {
  1204. bp := tls.Alloc(16)
  1205. defer tls.Free(16)
  1206. var padlen Tsize_t
  1207. var _ /* count at bp+0 */ [8]Tuint8_t
  1208. _ = padlen
  1209. /* Convert count to 8 bytes in little endian order. */
  1210. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(7)] = uint8((*TMD4_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(56))
  1211. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(6)] = uint8((*TMD4_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(48))
  1212. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(5)] = uint8((*TMD4_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(40))
  1213. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(4)] = uint8((*TMD4_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(32))
  1214. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(3)] = uint8((*TMD4_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(24))
  1215. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(2)] = uint8((*TMD4_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(16))
  1216. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(1)] = uint8((*TMD4_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(8))
  1217. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[0] = uint8((*TMD4_CTX)(unsafe.Pointer(ctx)).Fcount)
  1218. /* Pad out to 56 mod 64. */
  1219. 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))
  1220. if padlen < libc.Uint64FromInt32(libc.Int32FromInt32(1)+libc.Int32FromInt32(8)) {
  1221. padlen += uint64(m_MD4_BLOCK_LENGTH)
  1222. }
  1223. XMD4Update(tls, ctx, uintptr(unsafe.Pointer(&_PADDING)), padlen-uint64(8)) /* padlen - 8 <= 64 */
  1224. XMD4Update(tls, ctx, bp, uint64(8))
  1225. }
  1226. // C documentation
  1227. //
  1228. // /*
  1229. // * Final wrapup--call MD4Pad, fill in digest and zero out ctx.
  1230. // */
  1231. func XMD4Final(tls *libc.TLS, digest uintptr, ctx uintptr) {
  1232. var i int32
  1233. _ = i
  1234. XMD4Pad(tls, ctx)
  1235. if digest != libc.UintptrFromInt32(0) {
  1236. i = 0
  1237. for {
  1238. if !(i < int32(4)) {
  1239. break
  1240. }
  1241. *(*uint8)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(4)) + 3)) = uint8(*(*Tuint32_t)(unsafe.Pointer(ctx + uintptr(i)*4)) >> int32(24))
  1242. *(*uint8)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(4)) + 2)) = uint8(*(*Tuint32_t)(unsafe.Pointer(ctx + uintptr(i)*4)) >> int32(16))
  1243. *(*uint8)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(4)) + 1)) = uint8(*(*Tuint32_t)(unsafe.Pointer(ctx + uintptr(i)*4)) >> int32(8))
  1244. *(*uint8)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(4)))) = uint8(*(*Tuint32_t)(unsafe.Pointer(ctx + uintptr(i)*4)))
  1245. goto _1
  1246. _1:
  1247. ;
  1248. i++
  1249. }
  1250. libc.Xmemset(tls, ctx, 0, uint64(88))
  1251. }
  1252. }
  1253. /* The three core functions - F1 is optimized somewhat */
  1254. /* #define F1(x, y, z) (x & y | ~x & z) */
  1255. /* This is the central step in the MD4 algorithm. */
  1256. // C documentation
  1257. //
  1258. // /*
  1259. // * The core of the MD4 algorithm, this alters an existing MD4 hash to
  1260. // * reflect the addition of 16 longwords of new data. MD4Update blocks
  1261. // * the data and converts bytes into longwords for this routine.
  1262. // */
  1263. func XMD4Transform(tls *libc.TLS, state uintptr, block uintptr) {
  1264. bp := tls.Alloc(64)
  1265. defer tls.Free(64)
  1266. var a, b, c, d Tuint32_t
  1267. var _ /* in at bp+0 */ [16]Tuint32_t
  1268. _, _, _, _ = a, b, c, d
  1269. libc.Xmemcpy(tls, bp, block, uint64(64))
  1270. a = *(*Tuint32_t)(unsafe.Pointer(state))
  1271. b = *(*Tuint32_t)(unsafe.Pointer(state + 1*4))
  1272. c = *(*Tuint32_t)(unsafe.Pointer(state + 2*4))
  1273. d = *(*Tuint32_t)(unsafe.Pointer(state + 3*4))
  1274. a += d ^ b&(c^d) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[0]
  1275. a = a<<libc.Int32FromInt32(3) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(3))
  1276. d += c ^ a&(b^c) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(1)]
  1277. d = d<<libc.Int32FromInt32(7) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(7))
  1278. c += b ^ d&(a^b) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(2)]
  1279. c = c<<libc.Int32FromInt32(11) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11))
  1280. b += a ^ c&(d^a) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(3)]
  1281. b = b<<libc.Int32FromInt32(19) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(19))
  1282. a += d ^ b&(c^d) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(4)]
  1283. a = a<<libc.Int32FromInt32(3) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(3))
  1284. d += c ^ a&(b^c) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(5)]
  1285. d = d<<libc.Int32FromInt32(7) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(7))
  1286. c += b ^ d&(a^b) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(6)]
  1287. c = c<<libc.Int32FromInt32(11) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11))
  1288. b += a ^ c&(d^a) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(7)]
  1289. b = b<<libc.Int32FromInt32(19) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(19))
  1290. a += d ^ b&(c^d) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(8)]
  1291. a = a<<libc.Int32FromInt32(3) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(3))
  1292. d += c ^ a&(b^c) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(9)]
  1293. d = d<<libc.Int32FromInt32(7) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(7))
  1294. c += b ^ d&(a^b) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(10)]
  1295. c = c<<libc.Int32FromInt32(11) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11))
  1296. b += a ^ c&(d^a) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(11)]
  1297. b = b<<libc.Int32FromInt32(19) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(19))
  1298. a += d ^ b&(c^d) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(12)]
  1299. a = a<<libc.Int32FromInt32(3) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(3))
  1300. d += c ^ a&(b^c) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(13)]
  1301. d = d<<libc.Int32FromInt32(7) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(7))
  1302. c += b ^ d&(a^b) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(14)]
  1303. c = c<<libc.Int32FromInt32(11) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11))
  1304. b += a ^ c&(d^a) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(15)]
  1305. b = b<<libc.Int32FromInt32(19) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(19))
  1306. a += b&c | b&d | c&d + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[0] + uint32(0x5a827999)
  1307. a = a<<libc.Int32FromInt32(3) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(3))
  1308. d += a&b | a&c | b&c + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(4)] + uint32(0x5a827999)
  1309. d = d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5))
  1310. c += d&a | d&b | a&b + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(8)] + uint32(0x5a827999)
  1311. c = c<<libc.Int32FromInt32(9) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9))
  1312. b += c&d | c&a | d&a + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(12)] + uint32(0x5a827999)
  1313. b = b<<libc.Int32FromInt32(13) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(13))
  1314. a += b&c | b&d | c&d + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(1)] + uint32(0x5a827999)
  1315. a = a<<libc.Int32FromInt32(3) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(3))
  1316. d += a&b | a&c | b&c + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(5)] + uint32(0x5a827999)
  1317. d = d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5))
  1318. c += d&a | d&b | a&b + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(9)] + uint32(0x5a827999)
  1319. c = c<<libc.Int32FromInt32(9) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9))
  1320. b += c&d | c&a | d&a + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(13)] + uint32(0x5a827999)
  1321. b = b<<libc.Int32FromInt32(13) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(13))
  1322. a += b&c | b&d | c&d + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(2)] + uint32(0x5a827999)
  1323. a = a<<libc.Int32FromInt32(3) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(3))
  1324. d += a&b | a&c | b&c + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(6)] + uint32(0x5a827999)
  1325. d = d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5))
  1326. c += d&a | d&b | a&b + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(10)] + uint32(0x5a827999)
  1327. c = c<<libc.Int32FromInt32(9) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9))
  1328. b += c&d | c&a | d&a + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(14)] + uint32(0x5a827999)
  1329. b = b<<libc.Int32FromInt32(13) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(13))
  1330. a += b&c | b&d | c&d + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(3)] + uint32(0x5a827999)
  1331. a = a<<libc.Int32FromInt32(3) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(3))
  1332. d += a&b | a&c | b&c + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(7)] + uint32(0x5a827999)
  1333. d = d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5))
  1334. c += d&a | d&b | a&b + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(11)] + uint32(0x5a827999)
  1335. c = c<<libc.Int32FromInt32(9) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9))
  1336. b += c&d | c&a | d&a + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(15)] + uint32(0x5a827999)
  1337. b = b<<libc.Int32FromInt32(13) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(13))
  1338. a += b ^ c ^ d + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[0] + uint32(0x6ed9eba1)
  1339. a = a<<libc.Int32FromInt32(3) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(3))
  1340. d += a ^ b ^ c + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(8)] + uint32(0x6ed9eba1)
  1341. d = d<<libc.Int32FromInt32(9) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9))
  1342. c += d ^ a ^ b + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(4)] + uint32(0x6ed9eba1)
  1343. c = c<<libc.Int32FromInt32(11) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11))
  1344. b += c ^ d ^ a + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(12)] + uint32(0x6ed9eba1)
  1345. b = b<<libc.Int32FromInt32(15) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(15))
  1346. a += b ^ c ^ d + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(2)] + uint32(0x6ed9eba1)
  1347. a = a<<libc.Int32FromInt32(3) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(3))
  1348. d += a ^ b ^ c + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(10)] + uint32(0x6ed9eba1)
  1349. d = d<<libc.Int32FromInt32(9) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9))
  1350. c += d ^ a ^ b + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(6)] + uint32(0x6ed9eba1)
  1351. c = c<<libc.Int32FromInt32(11) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11))
  1352. b += c ^ d ^ a + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(14)] + uint32(0x6ed9eba1)
  1353. b = b<<libc.Int32FromInt32(15) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(15))
  1354. a += b ^ c ^ d + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(1)] + uint32(0x6ed9eba1)
  1355. a = a<<libc.Int32FromInt32(3) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(3))
  1356. d += a ^ b ^ c + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(9)] + uint32(0x6ed9eba1)
  1357. d = d<<libc.Int32FromInt32(9) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9))
  1358. c += d ^ a ^ b + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(5)] + uint32(0x6ed9eba1)
  1359. c = c<<libc.Int32FromInt32(11) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11))
  1360. b += c ^ d ^ a + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(13)] + uint32(0x6ed9eba1)
  1361. b = b<<libc.Int32FromInt32(15) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(15))
  1362. a += b ^ c ^ d + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(3)] + uint32(0x6ed9eba1)
  1363. a = a<<libc.Int32FromInt32(3) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(3))
  1364. d += a ^ b ^ c + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(11)] + uint32(0x6ed9eba1)
  1365. d = d<<libc.Int32FromInt32(9) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9))
  1366. c += d ^ a ^ b + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(7)] + uint32(0x6ed9eba1)
  1367. c = c<<libc.Int32FromInt32(11) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11))
  1368. b += c ^ d ^ a + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(15)] + uint32(0x6ed9eba1)
  1369. b = b<<libc.Int32FromInt32(15) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(15))
  1370. *(*Tuint32_t)(unsafe.Pointer(state)) += a
  1371. *(*Tuint32_t)(unsafe.Pointer(state + 1*4)) += b
  1372. *(*Tuint32_t)(unsafe.Pointer(state + 2*4)) += c
  1373. *(*Tuint32_t)(unsafe.Pointer(state + 3*4)) += d
  1374. }
  1375. const m_MD5_BLOCK_LENGTH = 64
  1376. const m_MD5_DIGEST_LENGTH = 16
  1377. type TMD5_CTX = struct {
  1378. Fstate [4]Tuint32_t
  1379. Fcount Tuint64_t
  1380. Fbuffer [64]Tuint8_t
  1381. }
  1382. type TMD5Context = TMD5_CTX
  1383. /* Avoid polluting the namespace. Even though this makes this usage
  1384. * implementation-specific, defining it unconditionally should not be
  1385. * a problem, and better than possibly breaking unexpecting code. */
  1386. var _PADDING1 = [64]Tuint8_t{
  1387. 0: uint8(0x80),
  1388. }
  1389. // C documentation
  1390. //
  1391. // /*
  1392. // * Start MD5 accumulation. Set bit count to 0 and buffer to mysterious
  1393. // * initialization constants.
  1394. // */
  1395. func XMD5Init(tls *libc.TLS, ctx uintptr) {
  1396. (*TMD5_CTX)(unsafe.Pointer(ctx)).Fcount = uint64(0)
  1397. *(*Tuint32_t)(unsafe.Pointer(ctx)) = uint32(0x67452301)
  1398. *(*Tuint32_t)(unsafe.Pointer(ctx + 1*4)) = uint32(0xefcdab89)
  1399. *(*Tuint32_t)(unsafe.Pointer(ctx + 2*4)) = uint32(0x98badcfe)
  1400. *(*Tuint32_t)(unsafe.Pointer(ctx + 3*4)) = uint32(0x10325476)
  1401. }
  1402. // C documentation
  1403. //
  1404. // /*
  1405. // * Update context to reflect the concatenation of another buffer full
  1406. // * of bytes.
  1407. // */
  1408. func XMD5Update(tls *libc.TLS, ctx uintptr, input uintptr, len1 Tsize_t) {
  1409. var have, need Tsize_t
  1410. _, _ = have, need
  1411. /* Check how many bytes we already have and how many more we need. */
  1412. have = (*TMD5_CTX)(unsafe.Pointer(ctx)).Fcount >> libc.Int32FromInt32(3) & libc.Uint64FromInt32(libc.Int32FromInt32(m_MD5_BLOCK_LENGTH)-libc.Int32FromInt32(1))
  1413. need = uint64(m_MD5_BLOCK_LENGTH) - have
  1414. /* Update bitcount */
  1415. *(*Tuint64_t)(unsafe.Pointer(ctx + 16)) += len1 << int32(3)
  1416. if len1 >= need {
  1417. if have != uint64(0) {
  1418. libc.Xmemcpy(tls, ctx+24+uintptr(have), input, need)
  1419. XMD5Transform(tls, ctx, ctx+24)
  1420. input += uintptr(need)
  1421. len1 -= need
  1422. have = uint64(0)
  1423. }
  1424. /* Process data in MD5_BLOCK_LENGTH-byte chunks. */
  1425. for len1 >= uint64(m_MD5_BLOCK_LENGTH) {
  1426. XMD5Transform(tls, ctx, input)
  1427. input += uintptr(m_MD5_BLOCK_LENGTH)
  1428. len1 -= uint64(m_MD5_BLOCK_LENGTH)
  1429. }
  1430. }
  1431. /* Handle any remaining bytes of data. */
  1432. if len1 != uint64(0) {
  1433. libc.Xmemcpy(tls, ctx+24+uintptr(have), input, len1)
  1434. }
  1435. }
  1436. // C documentation
  1437. //
  1438. // /*
  1439. // * Pad pad to 64-byte boundary with the bit pattern
  1440. // * 1 0* (64-bit count of bits processed, MSB-first)
  1441. // */
  1442. func XMD5Pad(tls *libc.TLS, ctx uintptr) {
  1443. bp := tls.Alloc(16)
  1444. defer tls.Free(16)
  1445. var padlen Tsize_t
  1446. var _ /* count at bp+0 */ [8]Tuint8_t
  1447. _ = padlen
  1448. /* Convert count to 8 bytes in little endian order. */
  1449. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(7)] = uint8((*TMD5_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(56))
  1450. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(6)] = uint8((*TMD5_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(48))
  1451. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(5)] = uint8((*TMD5_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(40))
  1452. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(4)] = uint8((*TMD5_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(32))
  1453. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(3)] = uint8((*TMD5_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(24))
  1454. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(2)] = uint8((*TMD5_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(16))
  1455. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(1)] = uint8((*TMD5_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(8))
  1456. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[0] = uint8((*TMD5_CTX)(unsafe.Pointer(ctx)).Fcount)
  1457. /* Pad out to 56 mod 64. */
  1458. 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))
  1459. if padlen < libc.Uint64FromInt32(libc.Int32FromInt32(1)+libc.Int32FromInt32(8)) {
  1460. padlen += uint64(m_MD5_BLOCK_LENGTH)
  1461. }
  1462. XMD5Update(tls, ctx, uintptr(unsafe.Pointer(&_PADDING1)), padlen-uint64(8)) /* padlen - 8 <= 64 */
  1463. XMD5Update(tls, ctx, bp, uint64(8))
  1464. }
  1465. // C documentation
  1466. //
  1467. // /*
  1468. // * Final wrapup--call MD5Pad, fill in digest and zero out ctx.
  1469. // */
  1470. func XMD5Final(tls *libc.TLS, digest uintptr, ctx uintptr) {
  1471. var i int32
  1472. _ = i
  1473. XMD5Pad(tls, ctx)
  1474. if digest != libc.UintptrFromInt32(0) {
  1475. i = 0
  1476. for {
  1477. if !(i < int32(4)) {
  1478. break
  1479. }
  1480. *(*uint8)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(4)) + 3)) = uint8(*(*Tuint32_t)(unsafe.Pointer(ctx + uintptr(i)*4)) >> int32(24))
  1481. *(*uint8)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(4)) + 2)) = uint8(*(*Tuint32_t)(unsafe.Pointer(ctx + uintptr(i)*4)) >> int32(16))
  1482. *(*uint8)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(4)) + 1)) = uint8(*(*Tuint32_t)(unsafe.Pointer(ctx + uintptr(i)*4)) >> int32(8))
  1483. *(*uint8)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(4)))) = uint8(*(*Tuint32_t)(unsafe.Pointer(ctx + uintptr(i)*4)))
  1484. goto _1
  1485. _1:
  1486. ;
  1487. i++
  1488. }
  1489. libc.Xmemset(tls, ctx, 0, uint64(88))
  1490. }
  1491. }
  1492. /* The four core functions - F1 is optimized somewhat */
  1493. /* #define F1(x, y, z) (x & y | ~x & z) */
  1494. /* This is the central step in the MD5 algorithm. */
  1495. // C documentation
  1496. //
  1497. // /*
  1498. // * The core of the MD5 algorithm, this alters an existing MD5 hash to
  1499. // * reflect the addition of 16 longwords of new data. MD5Update blocks
  1500. // * the data and converts bytes into longwords for this routine.
  1501. // */
  1502. func XMD5Transform(tls *libc.TLS, state uintptr, block uintptr) {
  1503. bp := tls.Alloc(64)
  1504. defer tls.Free(64)
  1505. var a, b, c, d Tuint32_t
  1506. var _ /* in at bp+0 */ [16]Tuint32_t
  1507. _, _, _, _ = a, b, c, d
  1508. libc.Xmemcpy(tls, bp, block, uint64(64))
  1509. a = *(*Tuint32_t)(unsafe.Pointer(state))
  1510. b = *(*Tuint32_t)(unsafe.Pointer(state + 1*4))
  1511. c = *(*Tuint32_t)(unsafe.Pointer(state + 2*4))
  1512. d = *(*Tuint32_t)(unsafe.Pointer(state + 3*4))
  1513. a += d ^ b&(c^d) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[0] + uint32(0xd76aa478)
  1514. a = a<<int32(7) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(7))
  1515. a += b
  1516. d += c ^ a&(b^c) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(1)] + uint32(0xe8c7b756)
  1517. d = d<<int32(12) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(12))
  1518. d += a
  1519. c += b ^ d&(a^b) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(2)] + uint32(0x242070db)
  1520. c = c<<int32(17) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(17))
  1521. c += d
  1522. b += a ^ c&(d^a) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(3)] + uint32(0xc1bdceee)
  1523. b = b<<int32(22) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(22))
  1524. b += c
  1525. a += d ^ b&(c^d) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(4)] + uint32(0xf57c0faf)
  1526. a = a<<int32(7) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(7))
  1527. a += b
  1528. d += c ^ a&(b^c) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(5)] + uint32(0x4787c62a)
  1529. d = d<<int32(12) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(12))
  1530. d += a
  1531. c += b ^ d&(a^b) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(6)] + uint32(0xa8304613)
  1532. c = c<<int32(17) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(17))
  1533. c += d
  1534. b += a ^ c&(d^a) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(7)] + uint32(0xfd469501)
  1535. b = b<<int32(22) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(22))
  1536. b += c
  1537. a += d ^ b&(c^d) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(8)] + uint32(0x698098d8)
  1538. a = a<<int32(7) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(7))
  1539. a += b
  1540. d += c ^ a&(b^c) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(9)] + uint32(0x8b44f7af)
  1541. d = d<<int32(12) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(12))
  1542. d += a
  1543. c += b ^ d&(a^b) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(10)] + uint32(0xffff5bb1)
  1544. c = c<<int32(17) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(17))
  1545. c += d
  1546. b += a ^ c&(d^a) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(11)] + uint32(0x895cd7be)
  1547. b = b<<int32(22) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(22))
  1548. b += c
  1549. a += d ^ b&(c^d) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(12)] + uint32(0x6b901122)
  1550. a = a<<int32(7) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(7))
  1551. a += b
  1552. d += c ^ a&(b^c) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(13)] + uint32(0xfd987193)
  1553. d = d<<int32(12) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(12))
  1554. d += a
  1555. c += b ^ d&(a^b) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(14)] + uint32(0xa679438e)
  1556. c = c<<int32(17) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(17))
  1557. c += d
  1558. b += a ^ c&(d^a) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(15)] + uint32(0x49b40821)
  1559. b = b<<int32(22) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(22))
  1560. b += c
  1561. a += c ^ d&(b^c) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(1)] + uint32(0xf61e2562)
  1562. a = a<<int32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5))
  1563. a += b
  1564. d += b ^ c&(a^b) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(6)] + uint32(0xc040b340)
  1565. d = d<<int32(9) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9))
  1566. d += a
  1567. c += a ^ b&(d^a) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(11)] + uint32(0x265e5a51)
  1568. c = c<<int32(14) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(14))
  1569. c += d
  1570. b += d ^ a&(c^d) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[0] + uint32(0xe9b6c7aa)
  1571. b = b<<int32(20) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(20))
  1572. b += c
  1573. a += c ^ d&(b^c) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(5)] + uint32(0xd62f105d)
  1574. a = a<<int32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5))
  1575. a += b
  1576. d += b ^ c&(a^b) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(10)] + uint32(0x02441453)
  1577. d = d<<int32(9) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9))
  1578. d += a
  1579. c += a ^ b&(d^a) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(15)] + uint32(0xd8a1e681)
  1580. c = c<<int32(14) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(14))
  1581. c += d
  1582. b += d ^ a&(c^d) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(4)] + uint32(0xe7d3fbc8)
  1583. b = b<<int32(20) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(20))
  1584. b += c
  1585. a += c ^ d&(b^c) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(9)] + uint32(0x21e1cde6)
  1586. a = a<<int32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5))
  1587. a += b
  1588. d += b ^ c&(a^b) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(14)] + uint32(0xc33707d6)
  1589. d = d<<int32(9) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9))
  1590. d += a
  1591. c += a ^ b&(d^a) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(3)] + uint32(0xf4d50d87)
  1592. c = c<<int32(14) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(14))
  1593. c += d
  1594. b += d ^ a&(c^d) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(8)] + uint32(0x455a14ed)
  1595. b = b<<int32(20) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(20))
  1596. b += c
  1597. a += c ^ d&(b^c) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(13)] + uint32(0xa9e3e905)
  1598. a = a<<int32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5))
  1599. a += b
  1600. d += b ^ c&(a^b) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(2)] + uint32(0xfcefa3f8)
  1601. d = d<<int32(9) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(9))
  1602. d += a
  1603. c += a ^ b&(d^a) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(7)] + uint32(0x676f02d9)
  1604. c = c<<int32(14) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(14))
  1605. c += d
  1606. b += d ^ a&(c^d) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(12)] + uint32(0x8d2a4c8a)
  1607. b = b<<int32(20) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(20))
  1608. b += c
  1609. a += b ^ c ^ d + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(5)] + uint32(0xfffa3942)
  1610. a = a<<int32(4) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(4))
  1611. a += b
  1612. d += a ^ b ^ c + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(8)] + uint32(0x8771f681)
  1613. d = d<<int32(11) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11))
  1614. d += a
  1615. c += d ^ a ^ b + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(11)] + uint32(0x6d9d6122)
  1616. c = c<<int32(16) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(16))
  1617. c += d
  1618. b += c ^ d ^ a + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(14)] + uint32(0xfde5380c)
  1619. b = b<<int32(23) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(23))
  1620. b += c
  1621. a += b ^ c ^ d + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(1)] + uint32(0xa4beea44)
  1622. a = a<<int32(4) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(4))
  1623. a += b
  1624. d += a ^ b ^ c + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(4)] + uint32(0x4bdecfa9)
  1625. d = d<<int32(11) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11))
  1626. d += a
  1627. c += d ^ a ^ b + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(7)] + uint32(0xf6bb4b60)
  1628. c = c<<int32(16) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(16))
  1629. c += d
  1630. b += c ^ d ^ a + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(10)] + uint32(0xbebfbc70)
  1631. b = b<<int32(23) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(23))
  1632. b += c
  1633. a += b ^ c ^ d + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(13)] + uint32(0x289b7ec6)
  1634. a = a<<int32(4) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(4))
  1635. a += b
  1636. d += a ^ b ^ c + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[0] + uint32(0xeaa127fa)
  1637. d = d<<int32(11) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11))
  1638. d += a
  1639. c += d ^ a ^ b + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(3)] + uint32(0xd4ef3085)
  1640. c = c<<int32(16) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(16))
  1641. c += d
  1642. b += c ^ d ^ a + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(6)] + uint32(0x04881d05)
  1643. b = b<<int32(23) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(23))
  1644. b += c
  1645. a += b ^ c ^ d + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(9)] + uint32(0xd9d4d039)
  1646. a = a<<int32(4) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(4))
  1647. a += b
  1648. d += a ^ b ^ c + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(12)] + uint32(0xe6db99e5)
  1649. d = d<<int32(11) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(11))
  1650. d += a
  1651. c += d ^ a ^ b + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(15)] + uint32(0x1fa27cf8)
  1652. c = c<<int32(16) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(16))
  1653. c += d
  1654. b += c ^ d ^ a + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(2)] + uint32(0xc4ac5665)
  1655. b = b<<int32(23) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(23))
  1656. b += c
  1657. a += c ^ (b | ^d) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[0] + uint32(0xf4292244)
  1658. a = a<<int32(6) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(6))
  1659. a += b
  1660. d += b ^ (a | ^c) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(7)] + uint32(0x432aff97)
  1661. d = d<<int32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1662. d += a
  1663. c += a ^ (d | ^b) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(14)] + uint32(0xab9423a7)
  1664. c = c<<int32(15) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(15))
  1665. c += d
  1666. b += d ^ (c | ^a) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(5)] + uint32(0xfc93a039)
  1667. b = b<<int32(21) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(21))
  1668. b += c
  1669. a += c ^ (b | ^d) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(12)] + uint32(0x655b59c3)
  1670. a = a<<int32(6) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(6))
  1671. a += b
  1672. d += b ^ (a | ^c) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(3)] + uint32(0x8f0ccc92)
  1673. d = d<<int32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1674. d += a
  1675. c += a ^ (d | ^b) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(10)] + uint32(0xffeff47d)
  1676. c = c<<int32(15) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(15))
  1677. c += d
  1678. b += d ^ (c | ^a) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(1)] + uint32(0x85845dd1)
  1679. b = b<<int32(21) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(21))
  1680. b += c
  1681. a += c ^ (b | ^d) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(8)] + uint32(0x6fa87e4f)
  1682. a = a<<int32(6) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(6))
  1683. a += b
  1684. d += b ^ (a | ^c) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(15)] + uint32(0xfe2ce6e0)
  1685. d = d<<int32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1686. d += a
  1687. c += a ^ (d | ^b) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(6)] + uint32(0xa3014314)
  1688. c = c<<int32(15) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(15))
  1689. c += d
  1690. b += d ^ (c | ^a) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(13)] + uint32(0x4e0811a1)
  1691. b = b<<int32(21) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(21))
  1692. b += c
  1693. a += c ^ (b | ^d) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(4)] + uint32(0xf7537e82)
  1694. a = a<<int32(6) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(6))
  1695. a += b
  1696. d += b ^ (a | ^c) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(11)] + uint32(0xbd3af235)
  1697. d = d<<int32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1698. d += a
  1699. c += a ^ (d | ^b) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(2)] + uint32(0x2ad7d2bb)
  1700. c = c<<int32(15) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(15))
  1701. c += d
  1702. b += d ^ (c | ^a) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[int32(9)] + uint32(0xeb86d391)
  1703. b = b<<int32(21) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(21))
  1704. b += c
  1705. *(*Tuint32_t)(unsafe.Pointer(state)) += a
  1706. *(*Tuint32_t)(unsafe.Pointer(state + 1*4)) += b
  1707. *(*Tuint32_t)(unsafe.Pointer(state + 2*4)) += c
  1708. *(*Tuint32_t)(unsafe.Pointer(state + 3*4)) += d
  1709. }
  1710. const m_H0 = 1732584193
  1711. const m_H1 = 4023233417
  1712. const m_H2 = 2562383102
  1713. const m_H3 = 271733878
  1714. const m_H4 = 3285377520
  1715. const m_K0 = 0
  1716. const m_K1 = 1518500249
  1717. const m_K2 = 1859775393
  1718. const m_K3 = 2400959708
  1719. const m_K4 = 2840853838
  1720. const m_KK0 = 1352829926
  1721. const m_KK1 = 1548603684
  1722. const m_KK2 = 1836072691
  1723. const m_KK3 = 2053994217
  1724. const m_KK4 = 0
  1725. const m_RMD160_BLOCK_LENGTH = 64
  1726. const m_RMD160_DIGEST_LENGTH = 20
  1727. type TRMD160_CTX = struct {
  1728. Fstate [5]Tuint32_t
  1729. Fcount Tuint64_t
  1730. Fbuffer [64]Tuint8_t
  1731. }
  1732. type TRMD160Context = TRMD160_CTX
  1733. /* rotate x left n bits. */
  1734. var _PADDING2 = [64]Tuint8_t{
  1735. 0: uint8(0x80),
  1736. }
  1737. func XRMD160Init(tls *libc.TLS, ctx uintptr) {
  1738. (*TRMD160_CTX)(unsafe.Pointer(ctx)).Fcount = uint64(0)
  1739. *(*Tuint32_t)(unsafe.Pointer(ctx)) = uint32(0x67452301)
  1740. *(*Tuint32_t)(unsafe.Pointer(ctx + 1*4)) = uint32(0xEFCDAB89)
  1741. *(*Tuint32_t)(unsafe.Pointer(ctx + 2*4)) = uint32(0x98BADCFE)
  1742. *(*Tuint32_t)(unsafe.Pointer(ctx + 3*4)) = uint32(0x10325476)
  1743. *(*Tuint32_t)(unsafe.Pointer(ctx + 4*4)) = uint32(0xC3D2E1F0)
  1744. }
  1745. func XRMD160Update(tls *libc.TLS, ctx uintptr, input uintptr, len1 Tsize_t) {
  1746. var have, need, off Tsize_t
  1747. _, _, _ = have, need, off
  1748. have = (*TRMD160_CTX)(unsafe.Pointer(ctx)).Fcount / uint64(8) % uint64(m_RMD160_BLOCK_LENGTH)
  1749. need = uint64(m_RMD160_BLOCK_LENGTH) - have
  1750. *(*Tuint64_t)(unsafe.Pointer(ctx + 24)) += uint64(8) * len1
  1751. off = uint64(0)
  1752. if len1 >= need {
  1753. if have != 0 {
  1754. libc.Xmemcpy(tls, ctx+32+uintptr(have), input, need)
  1755. XRMD160Transform(tls, ctx, ctx+32)
  1756. off = need
  1757. have = uint64(0)
  1758. }
  1759. /* now the buffer is empty */
  1760. for off+uint64(m_RMD160_BLOCK_LENGTH) <= len1 {
  1761. XRMD160Transform(tls, ctx, input+uintptr(off))
  1762. off += uint64(m_RMD160_BLOCK_LENGTH)
  1763. }
  1764. }
  1765. if off < len1 {
  1766. libc.Xmemcpy(tls, ctx+32+uintptr(have), input+uintptr(off), len1-off)
  1767. }
  1768. }
  1769. func XRMD160Pad(tls *libc.TLS, ctx uintptr) {
  1770. bp := tls.Alloc(16)
  1771. defer tls.Free(16)
  1772. var padlen Tsize_t
  1773. var _ /* size at bp+0 */ [8]Tuint8_t
  1774. _ = padlen
  1775. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(7)] = uint8((*TRMD160_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(56))
  1776. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(6)] = uint8((*TRMD160_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(48))
  1777. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(5)] = uint8((*TRMD160_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(40))
  1778. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(4)] = uint8((*TRMD160_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(32))
  1779. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(3)] = uint8((*TRMD160_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(24))
  1780. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(2)] = uint8((*TRMD160_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(16))
  1781. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[int32(1)] = uint8((*TRMD160_CTX)(unsafe.Pointer(ctx)).Fcount >> int32(8))
  1782. (*(*[8]Tuint8_t)(unsafe.Pointer(bp)))[0] = uint8((*TRMD160_CTX)(unsafe.Pointer(ctx)).Fcount)
  1783. /*
  1784. * pad to RMD160_BLOCK_LENGTH byte blocks, at least one byte from
  1785. * PADDING plus 8 bytes for the size
  1786. */
  1787. padlen = uint64(m_RMD160_BLOCK_LENGTH) - (*TRMD160_CTX)(unsafe.Pointer(ctx)).Fcount/uint64(8)%uint64(m_RMD160_BLOCK_LENGTH)
  1788. if padlen < libc.Uint64FromInt32(libc.Int32FromInt32(1)+libc.Int32FromInt32(8)) {
  1789. padlen += uint64(m_RMD160_BLOCK_LENGTH)
  1790. }
  1791. XRMD160Update(tls, ctx, uintptr(unsafe.Pointer(&_PADDING2)), padlen-uint64(8)) /* padlen - 8 <= 64 */
  1792. XRMD160Update(tls, ctx, bp, uint64(8))
  1793. }
  1794. func XRMD160Final(tls *libc.TLS, digest uintptr, ctx uintptr) {
  1795. var i int32
  1796. _ = i
  1797. XRMD160Pad(tls, ctx)
  1798. if digest != libc.UintptrFromInt32(0) {
  1799. i = 0
  1800. for {
  1801. if !(i < int32(5)) {
  1802. break
  1803. }
  1804. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(4)) + 3)) = uint8(*(*Tuint32_t)(unsafe.Pointer(ctx + uintptr(i)*4)) >> int32(24))
  1805. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(4)) + 2)) = uint8(*(*Tuint32_t)(unsafe.Pointer(ctx + uintptr(i)*4)) >> int32(16))
  1806. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(4)) + 1)) = uint8(*(*Tuint32_t)(unsafe.Pointer(ctx + uintptr(i)*4)) >> int32(8))
  1807. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(4)))) = uint8(*(*Tuint32_t)(unsafe.Pointer(ctx + uintptr(i)*4)))
  1808. goto _1
  1809. _1:
  1810. ;
  1811. i++
  1812. }
  1813. libc.Xmemset(tls, ctx, 0, uint64(96))
  1814. }
  1815. }
  1816. func XRMD160Transform(tls *libc.TLS, state uintptr, block uintptr) {
  1817. bp := tls.Alloc(64)
  1818. defer tls.Free(64)
  1819. var a, aa, b, bb, c, cc, d, dd, e, ee, t Tuint32_t
  1820. var _ /* x at bp+0 */ [16]Tuint32_t
  1821. _, _, _, _, _, _, _, _, _, _, _ = a, aa, b, bb, c, cc, d, dd, e, ee, t
  1822. libc.Xmemcpy(tls, bp, block, uint64(m_RMD160_BLOCK_LENGTH))
  1823. a = *(*Tuint32_t)(unsafe.Pointer(state))
  1824. b = *(*Tuint32_t)(unsafe.Pointer(state + 1*4))
  1825. c = *(*Tuint32_t)(unsafe.Pointer(state + 2*4))
  1826. d = *(*Tuint32_t)(unsafe.Pointer(state + 3*4))
  1827. e = *(*Tuint32_t)(unsafe.Pointer(state + 4*4))
  1828. /* Round 1 */
  1829. 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
  1830. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1831. 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
  1832. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1833. 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
  1834. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1835. 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
  1836. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1837. 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
  1838. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1839. 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
  1840. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1841. 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
  1842. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1843. 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
  1844. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1845. 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
  1846. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1847. 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
  1848. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1849. 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
  1850. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1851. 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
  1852. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1853. 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
  1854. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1855. 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
  1856. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1857. 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
  1858. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1859. 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
  1860. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10)) /* #15 */
  1861. /* Round 2 */
  1862. 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
  1863. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1864. 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
  1865. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1866. 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
  1867. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1868. 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
  1869. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1870. 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
  1871. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1872. 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
  1873. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1874. 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
  1875. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1876. 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
  1877. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1878. 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
  1879. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1880. 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
  1881. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1882. 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
  1883. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1884. 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
  1885. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1886. 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
  1887. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1888. 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
  1889. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1890. 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
  1891. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1892. 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
  1893. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10)) /* #31 */
  1894. /* Round 3 */
  1895. 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
  1896. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1897. 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
  1898. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1899. 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
  1900. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1901. 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
  1902. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1903. 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
  1904. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1905. 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
  1906. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1907. 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
  1908. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1909. 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
  1910. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1911. 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
  1912. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1913. 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
  1914. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1915. 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
  1916. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1917. 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
  1918. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1919. 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
  1920. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1921. 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
  1922. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1923. 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
  1924. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1925. 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
  1926. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10)) /* #47 */
  1927. /* Round 4 */
  1928. 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
  1929. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1930. 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
  1931. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1932. 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
  1933. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1934. 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
  1935. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1936. 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
  1937. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1938. 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
  1939. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1940. 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
  1941. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1942. 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
  1943. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1944. 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
  1945. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1946. 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
  1947. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1948. 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
  1949. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1950. 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
  1951. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1952. 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
  1953. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1954. 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
  1955. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1956. 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
  1957. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1958. 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
  1959. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10)) /* #63 */
  1960. /* Round 5 */
  1961. 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
  1962. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1963. 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
  1964. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1965. 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
  1966. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1967. 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
  1968. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1969. 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
  1970. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1971. 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
  1972. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1973. 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
  1974. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1975. 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
  1976. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1977. 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
  1978. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1979. 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
  1980. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1981. 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
  1982. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1983. 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
  1984. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1985. 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
  1986. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1987. 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
  1988. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1989. 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
  1990. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  1991. 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
  1992. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10)) /* #79 */
  1993. aa = a
  1994. bb = b
  1995. cc = c
  1996. dd = d
  1997. ee = e
  1998. a = *(*Tuint32_t)(unsafe.Pointer(state))
  1999. b = *(*Tuint32_t)(unsafe.Pointer(state + 1*4))
  2000. c = *(*Tuint32_t)(unsafe.Pointer(state + 2*4))
  2001. d = *(*Tuint32_t)(unsafe.Pointer(state + 3*4))
  2002. e = *(*Tuint32_t)(unsafe.Pointer(state + 4*4))
  2003. /* Parallel round 1 */
  2004. 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
  2005. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2006. 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
  2007. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2008. 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
  2009. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2010. 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
  2011. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2012. 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
  2013. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2014. 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
  2015. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2016. 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
  2017. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2018. 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
  2019. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2020. 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
  2021. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2022. 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
  2023. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2024. 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
  2025. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2026. 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
  2027. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2028. 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
  2029. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2030. 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
  2031. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2032. 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
  2033. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2034. 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
  2035. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10)) /* #15 */
  2036. /* Parallel round 2 */
  2037. 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
  2038. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2039. 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
  2040. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2041. 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
  2042. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2043. 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
  2044. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2045. 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
  2046. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2047. 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
  2048. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2049. 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
  2050. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2051. 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
  2052. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2053. 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
  2054. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2055. 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
  2056. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2057. 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
  2058. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2059. 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
  2060. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2061. 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
  2062. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2063. 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
  2064. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2065. 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
  2066. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2067. 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
  2068. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10)) /* #31 */
  2069. /* Parallel round 3 */
  2070. 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
  2071. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2072. 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
  2073. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2074. 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
  2075. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2076. 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
  2077. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2078. 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
  2079. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2080. 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
  2081. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2082. 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
  2083. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2084. 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
  2085. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2086. 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
  2087. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2088. 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
  2089. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2090. 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
  2091. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2092. 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
  2093. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2094. 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
  2095. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2096. 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
  2097. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2098. 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
  2099. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2100. 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
  2101. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10)) /* #47 */
  2102. /* Parallel round 4 */
  2103. 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
  2104. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2105. 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
  2106. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2107. 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
  2108. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2109. 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
  2110. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2111. 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
  2112. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2113. 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
  2114. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2115. 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
  2116. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2117. 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
  2118. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2119. 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
  2120. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2121. 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
  2122. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2123. 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
  2124. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2125. 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
  2126. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2127. 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
  2128. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2129. 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
  2130. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2131. 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
  2132. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2133. 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
  2134. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10)) /* #63 */
  2135. /* Parallel round 5 */
  2136. 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
  2137. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2138. 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
  2139. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2140. 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
  2141. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2142. 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
  2143. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2144. 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
  2145. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2146. 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
  2147. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2148. 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
  2149. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2150. 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
  2151. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2152. 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
  2153. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2154. 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
  2155. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2156. 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
  2157. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2158. 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
  2159. c = c<<libc.Int32FromInt32(10) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2160. 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
  2161. b = b<<libc.Int32FromInt32(10) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2162. 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
  2163. a = a<<libc.Int32FromInt32(10) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2164. 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
  2165. e = e<<libc.Int32FromInt32(10) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10))
  2166. 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
  2167. d = d<<libc.Int32FromInt32(10) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(10)) /* #79 */
  2168. t = *(*Tuint32_t)(unsafe.Pointer(state + 1*4)) + cc + d
  2169. *(*Tuint32_t)(unsafe.Pointer(state + 1*4)) = *(*Tuint32_t)(unsafe.Pointer(state + 2*4)) + dd + e
  2170. *(*Tuint32_t)(unsafe.Pointer(state + 2*4)) = *(*Tuint32_t)(unsafe.Pointer(state + 3*4)) + ee + a
  2171. *(*Tuint32_t)(unsafe.Pointer(state + 3*4)) = *(*Tuint32_t)(unsafe.Pointer(state + 4*4)) + aa + b
  2172. *(*Tuint32_t)(unsafe.Pointer(state + 4*4)) = *(*Tuint32_t)(unsafe.Pointer(state)) + bb + c
  2173. *(*Tuint32_t)(unsafe.Pointer(state)) = t
  2174. }
  2175. const m_SHA1_BLOCK_LENGTH = 64
  2176. const m_SHA1_DIGEST_LENGTH = 20
  2177. type TSHA1_CTX = struct {
  2178. Fstate [5]Tuint32_t
  2179. Fcount Tuint64_t
  2180. Fbuffer [64]Tuint8_t
  2181. }
  2182. /*
  2183. * blk0() and blk() perform the initial expand.
  2184. * I got the idea of expanding during the round function from SSLeay
  2185. */
  2186. /*
  2187. * (R0+R1), R2, R3, R4 are the different operations (rounds) used in SHA1
  2188. */
  2189. type TCHAR64LONG16 = struct {
  2190. Fl [0][16]Tuint32_t
  2191. Fc [64]Tuint8_t
  2192. }
  2193. // C documentation
  2194. //
  2195. // /*
  2196. // * Hash a single 512-bit block. This is the core of the algorithm.
  2197. // */
  2198. func XSHA1Transform(tls *libc.TLS, state uintptr, buffer uintptr) {
  2199. bp := tls.Alloc(64)
  2200. defer tls.Free(64)
  2201. 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
  2202. var block uintptr
  2203. var _ /* workspace at bp+0 */ [64]Tuint8_t
  2204. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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
  2205. block = bp
  2206. libc.Xmemcpy(tls, block, buffer, uint64(m_SHA1_BLOCK_LENGTH))
  2207. /* Copy context->state[] to working vars */
  2208. a = *(*Tuint32_t)(unsafe.Pointer(state))
  2209. b = *(*Tuint32_t)(unsafe.Pointer(state + 1*4))
  2210. c = *(*Tuint32_t)(unsafe.Pointer(state + 2*4))
  2211. d = *(*Tuint32_t)(unsafe.Pointer(state + 3*4))
  2212. e = *(*Tuint32_t)(unsafe.Pointer(state + 4*4))
  2213. /* 4 rounds of 20 operations each. Loop unrolled. */
  2214. 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)
  2215. *(*Tuint32_t)(unsafe.Pointer(block)) = v1
  2216. e += b&(c^d) ^ d + v1 + uint32(0x5A827999) + (a<<libc.Int32FromInt32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2217. b = b<<libc.Int32FromInt32(30) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2218. 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)
  2219. *(*Tuint32_t)(unsafe.Pointer(block + 1*4)) = v2
  2220. d += a&(b^c) ^ c + v2 + uint32(0x5A827999) + (e<<libc.Int32FromInt32(5) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2221. a = a<<libc.Int32FromInt32(30) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2222. 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)
  2223. *(*Tuint32_t)(unsafe.Pointer(block + 2*4)) = v3
  2224. c += e&(a^b) ^ b + v3 + uint32(0x5A827999) + (d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2225. e = e<<libc.Int32FromInt32(30) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2226. 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)
  2227. *(*Tuint32_t)(unsafe.Pointer(block + 3*4)) = v4
  2228. b += d&(e^a) ^ a + v4 + uint32(0x5A827999) + (c<<libc.Int32FromInt32(5) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2229. d = d<<libc.Int32FromInt32(30) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2230. 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)
  2231. *(*Tuint32_t)(unsafe.Pointer(block + 4*4)) = v5
  2232. a += c&(d^e) ^ e + v5 + uint32(0x5A827999) + (b<<libc.Int32FromInt32(5) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2233. c = c<<libc.Int32FromInt32(30) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2234. 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)
  2235. *(*Tuint32_t)(unsafe.Pointer(block + 5*4)) = v6
  2236. e += b&(c^d) ^ d + v6 + uint32(0x5A827999) + (a<<libc.Int32FromInt32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2237. b = b<<libc.Int32FromInt32(30) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2238. 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)
  2239. *(*Tuint32_t)(unsafe.Pointer(block + 6*4)) = v7
  2240. d += a&(b^c) ^ c + v7 + uint32(0x5A827999) + (e<<libc.Int32FromInt32(5) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2241. a = a<<libc.Int32FromInt32(30) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2242. 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)
  2243. *(*Tuint32_t)(unsafe.Pointer(block + 7*4)) = v8
  2244. c += e&(a^b) ^ b + v8 + uint32(0x5A827999) + (d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2245. e = e<<libc.Int32FromInt32(30) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2246. 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)
  2247. *(*Tuint32_t)(unsafe.Pointer(block + 8*4)) = v9
  2248. b += d&(e^a) ^ a + v9 + uint32(0x5A827999) + (c<<libc.Int32FromInt32(5) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2249. d = d<<libc.Int32FromInt32(30) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2250. 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)
  2251. *(*Tuint32_t)(unsafe.Pointer(block + 9*4)) = v10
  2252. a += c&(d^e) ^ e + v10 + uint32(0x5A827999) + (b<<libc.Int32FromInt32(5) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2253. c = c<<libc.Int32FromInt32(30) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2254. 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)
  2255. *(*Tuint32_t)(unsafe.Pointer(block + 10*4)) = v11
  2256. e += b&(c^d) ^ d + v11 + uint32(0x5A827999) + (a<<libc.Int32FromInt32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2257. b = b<<libc.Int32FromInt32(30) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2258. 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)
  2259. *(*Tuint32_t)(unsafe.Pointer(block + 11*4)) = v12
  2260. d += a&(b^c) ^ c + v12 + uint32(0x5A827999) + (e<<libc.Int32FromInt32(5) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2261. a = a<<libc.Int32FromInt32(30) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2262. 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)
  2263. *(*Tuint32_t)(unsafe.Pointer(block + 12*4)) = v13
  2264. c += e&(a^b) ^ b + v13 + uint32(0x5A827999) + (d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2265. e = e<<libc.Int32FromInt32(30) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2266. 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)
  2267. *(*Tuint32_t)(unsafe.Pointer(block + 13*4)) = v14
  2268. b += d&(e^a) ^ a + v14 + uint32(0x5A827999) + (c<<libc.Int32FromInt32(5) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2269. d = d<<libc.Int32FromInt32(30) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2270. 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)
  2271. *(*Tuint32_t)(unsafe.Pointer(block + 14*4)) = v15
  2272. a += c&(d^e) ^ e + v15 + uint32(0x5A827999) + (b<<libc.Int32FromInt32(5) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2273. c = c<<libc.Int32FromInt32(30) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2274. 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)
  2275. *(*Tuint32_t)(unsafe.Pointer(block + 15*4)) = v16
  2276. e += b&(c^d) ^ d + v16 + uint32(0x5A827999) + (a<<libc.Int32FromInt32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2277. b = b<<libc.Int32FromInt32(30) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2278. 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))
  2279. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(16)&libc.Int32FromInt32(15))*4)) = v17
  2280. d += a&(b^c) ^ c + v17 + uint32(0x5A827999) + (e<<libc.Int32FromInt32(5) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2281. a = a<<libc.Int32FromInt32(30) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2282. 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))
  2283. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(17)&libc.Int32FromInt32(15))*4)) = v18
  2284. c += e&(a^b) ^ b + v18 + uint32(0x5A827999) + (d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2285. e = e<<libc.Int32FromInt32(30) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2286. 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))
  2287. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(18)&libc.Int32FromInt32(15))*4)) = v19
  2288. b += d&(e^a) ^ a + v19 + uint32(0x5A827999) + (c<<libc.Int32FromInt32(5) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2289. d = d<<libc.Int32FromInt32(30) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2290. 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))
  2291. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(19)&libc.Int32FromInt32(15))*4)) = v20
  2292. a += c&(d^e) ^ e + v20 + uint32(0x5A827999) + (b<<libc.Int32FromInt32(5) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2293. c = c<<libc.Int32FromInt32(30) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2294. 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))
  2295. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(20)&libc.Int32FromInt32(15))*4)) = v21
  2296. e += b ^ c ^ d + v21 + uint32(0x6ED9EBA1) + (a<<libc.Int32FromInt32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2297. b = b<<libc.Int32FromInt32(30) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2298. 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))
  2299. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(21)&libc.Int32FromInt32(15))*4)) = v22
  2300. d += a ^ b ^ c + v22 + uint32(0x6ED9EBA1) + (e<<libc.Int32FromInt32(5) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2301. a = a<<libc.Int32FromInt32(30) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2302. 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))
  2303. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(22)&libc.Int32FromInt32(15))*4)) = v23
  2304. c += e ^ a ^ b + v23 + uint32(0x6ED9EBA1) + (d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2305. e = e<<libc.Int32FromInt32(30) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2306. 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))
  2307. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(23)&libc.Int32FromInt32(15))*4)) = v24
  2308. b += d ^ e ^ a + v24 + uint32(0x6ED9EBA1) + (c<<libc.Int32FromInt32(5) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2309. d = d<<libc.Int32FromInt32(30) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2310. 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))
  2311. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(24)&libc.Int32FromInt32(15))*4)) = v25
  2312. a += c ^ d ^ e + v25 + uint32(0x6ED9EBA1) + (b<<libc.Int32FromInt32(5) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2313. c = c<<libc.Int32FromInt32(30) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2314. 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))
  2315. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(25)&libc.Int32FromInt32(15))*4)) = v26
  2316. e += b ^ c ^ d + v26 + uint32(0x6ED9EBA1) + (a<<libc.Int32FromInt32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2317. b = b<<libc.Int32FromInt32(30) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2318. 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))
  2319. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(26)&libc.Int32FromInt32(15))*4)) = v27
  2320. d += a ^ b ^ c + v27 + uint32(0x6ED9EBA1) + (e<<libc.Int32FromInt32(5) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2321. a = a<<libc.Int32FromInt32(30) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2322. 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))
  2323. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(27)&libc.Int32FromInt32(15))*4)) = v28
  2324. c += e ^ a ^ b + v28 + uint32(0x6ED9EBA1) + (d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2325. e = e<<libc.Int32FromInt32(30) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2326. 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))
  2327. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(28)&libc.Int32FromInt32(15))*4)) = v29
  2328. b += d ^ e ^ a + v29 + uint32(0x6ED9EBA1) + (c<<libc.Int32FromInt32(5) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2329. d = d<<libc.Int32FromInt32(30) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2330. 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))
  2331. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(29)&libc.Int32FromInt32(15))*4)) = v30
  2332. a += c ^ d ^ e + v30 + uint32(0x6ED9EBA1) + (b<<libc.Int32FromInt32(5) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2333. c = c<<libc.Int32FromInt32(30) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2334. 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))
  2335. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(30)&libc.Int32FromInt32(15))*4)) = v31
  2336. e += b ^ c ^ d + v31 + uint32(0x6ED9EBA1) + (a<<libc.Int32FromInt32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2337. b = b<<libc.Int32FromInt32(30) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2338. 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))
  2339. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(31)&libc.Int32FromInt32(15))*4)) = v32
  2340. d += a ^ b ^ c + v32 + uint32(0x6ED9EBA1) + (e<<libc.Int32FromInt32(5) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2341. a = a<<libc.Int32FromInt32(30) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2342. 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))
  2343. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(32)&libc.Int32FromInt32(15))*4)) = v33
  2344. c += e ^ a ^ b + v33 + uint32(0x6ED9EBA1) + (d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2345. e = e<<libc.Int32FromInt32(30) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2346. 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))
  2347. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(33)&libc.Int32FromInt32(15))*4)) = v34
  2348. b += d ^ e ^ a + v34 + uint32(0x6ED9EBA1) + (c<<libc.Int32FromInt32(5) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2349. d = d<<libc.Int32FromInt32(30) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2350. 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))
  2351. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(34)&libc.Int32FromInt32(15))*4)) = v35
  2352. a += c ^ d ^ e + v35 + uint32(0x6ED9EBA1) + (b<<libc.Int32FromInt32(5) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2353. c = c<<libc.Int32FromInt32(30) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2354. 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))
  2355. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(35)&libc.Int32FromInt32(15))*4)) = v36
  2356. e += b ^ c ^ d + v36 + uint32(0x6ED9EBA1) + (a<<libc.Int32FromInt32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2357. b = b<<libc.Int32FromInt32(30) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2358. 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))
  2359. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(36)&libc.Int32FromInt32(15))*4)) = v37
  2360. d += a ^ b ^ c + v37 + uint32(0x6ED9EBA1) + (e<<libc.Int32FromInt32(5) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2361. a = a<<libc.Int32FromInt32(30) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2362. 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))
  2363. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(37)&libc.Int32FromInt32(15))*4)) = v38
  2364. c += e ^ a ^ b + v38 + uint32(0x6ED9EBA1) + (d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2365. e = e<<libc.Int32FromInt32(30) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2366. 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))
  2367. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(38)&libc.Int32FromInt32(15))*4)) = v39
  2368. b += d ^ e ^ a + v39 + uint32(0x6ED9EBA1) + (c<<libc.Int32FromInt32(5) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2369. d = d<<libc.Int32FromInt32(30) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2370. 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))
  2371. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(39)&libc.Int32FromInt32(15))*4)) = v40
  2372. a += c ^ d ^ e + v40 + uint32(0x6ED9EBA1) + (b<<libc.Int32FromInt32(5) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2373. c = c<<libc.Int32FromInt32(30) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2374. 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))
  2375. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(40)&libc.Int32FromInt32(15))*4)) = v41
  2376. e += (b|c)&d | b&c + v41 + uint32(0x8F1BBCDC) + (a<<libc.Int32FromInt32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2377. b = b<<libc.Int32FromInt32(30) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2378. 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))
  2379. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(41)&libc.Int32FromInt32(15))*4)) = v42
  2380. d += (a|b)&c | a&b + v42 + uint32(0x8F1BBCDC) + (e<<libc.Int32FromInt32(5) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2381. a = a<<libc.Int32FromInt32(30) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2382. 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))
  2383. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(42)&libc.Int32FromInt32(15))*4)) = v43
  2384. c += (e|a)&b | e&a + v43 + uint32(0x8F1BBCDC) + (d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2385. e = e<<libc.Int32FromInt32(30) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2386. 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))
  2387. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(43)&libc.Int32FromInt32(15))*4)) = v44
  2388. b += (d|e)&a | d&e + v44 + uint32(0x8F1BBCDC) + (c<<libc.Int32FromInt32(5) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2389. d = d<<libc.Int32FromInt32(30) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2390. 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))
  2391. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(44)&libc.Int32FromInt32(15))*4)) = v45
  2392. a += (c|d)&e | c&d + v45 + uint32(0x8F1BBCDC) + (b<<libc.Int32FromInt32(5) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2393. c = c<<libc.Int32FromInt32(30) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2394. 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))
  2395. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(45)&libc.Int32FromInt32(15))*4)) = v46
  2396. e += (b|c)&d | b&c + v46 + uint32(0x8F1BBCDC) + (a<<libc.Int32FromInt32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2397. b = b<<libc.Int32FromInt32(30) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2398. 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))
  2399. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(46)&libc.Int32FromInt32(15))*4)) = v47
  2400. d += (a|b)&c | a&b + v47 + uint32(0x8F1BBCDC) + (e<<libc.Int32FromInt32(5) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2401. a = a<<libc.Int32FromInt32(30) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2402. 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))
  2403. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(47)&libc.Int32FromInt32(15))*4)) = v48
  2404. c += (e|a)&b | e&a + v48 + uint32(0x8F1BBCDC) + (d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2405. e = e<<libc.Int32FromInt32(30) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2406. 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))
  2407. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(48)&libc.Int32FromInt32(15))*4)) = v49
  2408. b += (d|e)&a | d&e + v49 + uint32(0x8F1BBCDC) + (c<<libc.Int32FromInt32(5) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2409. d = d<<libc.Int32FromInt32(30) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2410. 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))
  2411. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(49)&libc.Int32FromInt32(15))*4)) = v50
  2412. a += (c|d)&e | c&d + v50 + uint32(0x8F1BBCDC) + (b<<libc.Int32FromInt32(5) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2413. c = c<<libc.Int32FromInt32(30) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2414. 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))
  2415. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(50)&libc.Int32FromInt32(15))*4)) = v51
  2416. e += (b|c)&d | b&c + v51 + uint32(0x8F1BBCDC) + (a<<libc.Int32FromInt32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2417. b = b<<libc.Int32FromInt32(30) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2418. 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))
  2419. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(51)&libc.Int32FromInt32(15))*4)) = v52
  2420. d += (a|b)&c | a&b + v52 + uint32(0x8F1BBCDC) + (e<<libc.Int32FromInt32(5) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2421. a = a<<libc.Int32FromInt32(30) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2422. 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))
  2423. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(52)&libc.Int32FromInt32(15))*4)) = v53
  2424. c += (e|a)&b | e&a + v53 + uint32(0x8F1BBCDC) + (d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2425. e = e<<libc.Int32FromInt32(30) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2426. 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))
  2427. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(53)&libc.Int32FromInt32(15))*4)) = v54
  2428. b += (d|e)&a | d&e + v54 + uint32(0x8F1BBCDC) + (c<<libc.Int32FromInt32(5) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2429. d = d<<libc.Int32FromInt32(30) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2430. 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))
  2431. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(54)&libc.Int32FromInt32(15))*4)) = v55
  2432. a += (c|d)&e | c&d + v55 + uint32(0x8F1BBCDC) + (b<<libc.Int32FromInt32(5) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2433. c = c<<libc.Int32FromInt32(30) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2434. 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))
  2435. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(55)&libc.Int32FromInt32(15))*4)) = v56
  2436. e += (b|c)&d | b&c + v56 + uint32(0x8F1BBCDC) + (a<<libc.Int32FromInt32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2437. b = b<<libc.Int32FromInt32(30) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2438. 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))
  2439. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(56)&libc.Int32FromInt32(15))*4)) = v57
  2440. d += (a|b)&c | a&b + v57 + uint32(0x8F1BBCDC) + (e<<libc.Int32FromInt32(5) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2441. a = a<<libc.Int32FromInt32(30) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2442. 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))
  2443. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(57)&libc.Int32FromInt32(15))*4)) = v58
  2444. c += (e|a)&b | e&a + v58 + uint32(0x8F1BBCDC) + (d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2445. e = e<<libc.Int32FromInt32(30) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2446. 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))
  2447. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(58)&libc.Int32FromInt32(15))*4)) = v59
  2448. b += (d|e)&a | d&e + v59 + uint32(0x8F1BBCDC) + (c<<libc.Int32FromInt32(5) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2449. d = d<<libc.Int32FromInt32(30) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2450. 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))
  2451. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(59)&libc.Int32FromInt32(15))*4)) = v60
  2452. a += (c|d)&e | c&d + v60 + uint32(0x8F1BBCDC) + (b<<libc.Int32FromInt32(5) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2453. c = c<<libc.Int32FromInt32(30) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2454. 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))
  2455. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(60)&libc.Int32FromInt32(15))*4)) = v61
  2456. e += b ^ c ^ d + v61 + uint32(0xCA62C1D6) + (a<<libc.Int32FromInt32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2457. b = b<<libc.Int32FromInt32(30) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2458. 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))
  2459. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(61)&libc.Int32FromInt32(15))*4)) = v62
  2460. d += a ^ b ^ c + v62 + uint32(0xCA62C1D6) + (e<<libc.Int32FromInt32(5) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2461. a = a<<libc.Int32FromInt32(30) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2462. 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))
  2463. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(62)&libc.Int32FromInt32(15))*4)) = v63
  2464. c += e ^ a ^ b + v63 + uint32(0xCA62C1D6) + (d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2465. e = e<<libc.Int32FromInt32(30) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2466. 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))
  2467. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(63)&libc.Int32FromInt32(15))*4)) = v64
  2468. b += d ^ e ^ a + v64 + uint32(0xCA62C1D6) + (c<<libc.Int32FromInt32(5) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2469. d = d<<libc.Int32FromInt32(30) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2470. 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))
  2471. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(64)&libc.Int32FromInt32(15))*4)) = v65
  2472. a += c ^ d ^ e + v65 + uint32(0xCA62C1D6) + (b<<libc.Int32FromInt32(5) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2473. c = c<<libc.Int32FromInt32(30) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2474. 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))
  2475. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(65)&libc.Int32FromInt32(15))*4)) = v66
  2476. e += b ^ c ^ d + v66 + uint32(0xCA62C1D6) + (a<<libc.Int32FromInt32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2477. b = b<<libc.Int32FromInt32(30) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2478. 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))
  2479. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(66)&libc.Int32FromInt32(15))*4)) = v67
  2480. d += a ^ b ^ c + v67 + uint32(0xCA62C1D6) + (e<<libc.Int32FromInt32(5) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2481. a = a<<libc.Int32FromInt32(30) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2482. 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))
  2483. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(67)&libc.Int32FromInt32(15))*4)) = v68
  2484. c += e ^ a ^ b + v68 + uint32(0xCA62C1D6) + (d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2485. e = e<<libc.Int32FromInt32(30) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2486. 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))
  2487. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(68)&libc.Int32FromInt32(15))*4)) = v69
  2488. b += d ^ e ^ a + v69 + uint32(0xCA62C1D6) + (c<<libc.Int32FromInt32(5) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2489. d = d<<libc.Int32FromInt32(30) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2490. 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))
  2491. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(69)&libc.Int32FromInt32(15))*4)) = v70
  2492. a += c ^ d ^ e + v70 + uint32(0xCA62C1D6) + (b<<libc.Int32FromInt32(5) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2493. c = c<<libc.Int32FromInt32(30) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2494. 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))
  2495. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(70)&libc.Int32FromInt32(15))*4)) = v71
  2496. e += b ^ c ^ d + v71 + uint32(0xCA62C1D6) + (a<<libc.Int32FromInt32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2497. b = b<<libc.Int32FromInt32(30) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2498. 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))
  2499. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(71)&libc.Int32FromInt32(15))*4)) = v72
  2500. d += a ^ b ^ c + v72 + uint32(0xCA62C1D6) + (e<<libc.Int32FromInt32(5) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2501. a = a<<libc.Int32FromInt32(30) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2502. 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))
  2503. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(72)&libc.Int32FromInt32(15))*4)) = v73
  2504. c += e ^ a ^ b + v73 + uint32(0xCA62C1D6) + (d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2505. e = e<<libc.Int32FromInt32(30) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2506. 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))
  2507. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(73)&libc.Int32FromInt32(15))*4)) = v74
  2508. b += d ^ e ^ a + v74 + uint32(0xCA62C1D6) + (c<<libc.Int32FromInt32(5) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2509. d = d<<libc.Int32FromInt32(30) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2510. 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))
  2511. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(74)&libc.Int32FromInt32(15))*4)) = v75
  2512. a += c ^ d ^ e + v75 + uint32(0xCA62C1D6) + (b<<libc.Int32FromInt32(5) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2513. c = c<<libc.Int32FromInt32(30) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2514. 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))
  2515. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(75)&libc.Int32FromInt32(15))*4)) = v76
  2516. e += b ^ c ^ d + v76 + uint32(0xCA62C1D6) + (a<<libc.Int32FromInt32(5) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2517. b = b<<libc.Int32FromInt32(30) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2518. 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))
  2519. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(76)&libc.Int32FromInt32(15))*4)) = v77
  2520. d += a ^ b ^ c + v77 + uint32(0xCA62C1D6) + (e<<libc.Int32FromInt32(5) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2521. a = a<<libc.Int32FromInt32(30) | a>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2522. 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))
  2523. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(77)&libc.Int32FromInt32(15))*4)) = v78
  2524. c += e ^ a ^ b + v78 + uint32(0xCA62C1D6) + (d<<libc.Int32FromInt32(5) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2525. e = e<<libc.Int32FromInt32(30) | e>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2526. 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))
  2527. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(78)&libc.Int32FromInt32(15))*4)) = v79
  2528. b += d ^ e ^ a + v79 + uint32(0xCA62C1D6) + (c<<libc.Int32FromInt32(5) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2529. d = d<<libc.Int32FromInt32(30) | d>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2530. 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))
  2531. *(*Tuint32_t)(unsafe.Pointer(block + uintptr(libc.Int32FromInt32(79)&libc.Int32FromInt32(15))*4)) = v80
  2532. a += c ^ d ^ e + v80 + uint32(0xCA62C1D6) + (b<<libc.Int32FromInt32(5) | b>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(5)))
  2533. c = c<<libc.Int32FromInt32(30) | c>>(libc.Int32FromInt32(32)-libc.Int32FromInt32(30))
  2534. /* Add the working vars back into context.state[] */
  2535. *(*Tuint32_t)(unsafe.Pointer(state)) += a
  2536. *(*Tuint32_t)(unsafe.Pointer(state + 1*4)) += b
  2537. *(*Tuint32_t)(unsafe.Pointer(state + 2*4)) += c
  2538. *(*Tuint32_t)(unsafe.Pointer(state + 3*4)) += d
  2539. *(*Tuint32_t)(unsafe.Pointer(state + 4*4)) += e
  2540. /* Wipe variables */
  2541. v84 = libc.Uint32FromInt32(0)
  2542. e = v84
  2543. v83 = v84
  2544. d = v83
  2545. v82 = v83
  2546. c = v82
  2547. v81 = v82
  2548. b = v81
  2549. a = v81
  2550. }
  2551. // C documentation
  2552. //
  2553. // /*
  2554. // * SHA1Init - Initialize new context
  2555. // */
  2556. func XSHA1Init(tls *libc.TLS, context uintptr) {
  2557. /* SHA1 initialization constants */
  2558. (*TSHA1_CTX)(unsafe.Pointer(context)).Fcount = uint64(0)
  2559. *(*Tuint32_t)(unsafe.Pointer(context)) = uint32(0x67452301)
  2560. *(*Tuint32_t)(unsafe.Pointer(context + 1*4)) = uint32(0xEFCDAB89)
  2561. *(*Tuint32_t)(unsafe.Pointer(context + 2*4)) = uint32(0x98BADCFE)
  2562. *(*Tuint32_t)(unsafe.Pointer(context + 3*4)) = uint32(0x10325476)
  2563. *(*Tuint32_t)(unsafe.Pointer(context + 4*4)) = uint32(0xC3D2E1F0)
  2564. }
  2565. // C documentation
  2566. //
  2567. // /*
  2568. // * Run your data through this.
  2569. // */
  2570. func XSHA1Update(tls *libc.TLS, context uintptr, data uintptr, len1 Tsize_t) {
  2571. var i, j, v1 Tsize_t
  2572. _, _, _ = i, j, v1
  2573. j = (*TSHA1_CTX)(unsafe.Pointer(context)).Fcount >> libc.Int32FromInt32(3) & libc.Uint64FromInt32(63)
  2574. *(*Tuint64_t)(unsafe.Pointer(context + 24)) += len1 << libc.Int32FromInt32(3)
  2575. if j+len1 > uint64(63) {
  2576. v1 = libc.Uint64FromInt32(64) - j
  2577. i = v1
  2578. libc.Xmemcpy(tls, context+32+uintptr(j), data, v1)
  2579. XSHA1Transform(tls, context, context+32)
  2580. for {
  2581. if !(i+uint64(63) < len1) {
  2582. break
  2583. }
  2584. XSHA1Transform(tls, context, data+uintptr(i))
  2585. goto _2
  2586. _2:
  2587. ;
  2588. i += uint64(64)
  2589. }
  2590. j = uint64(0)
  2591. } else {
  2592. i = uint64(0)
  2593. }
  2594. libc.Xmemcpy(tls, context+32+uintptr(j), data+uintptr(i), len1-i)
  2595. }
  2596. // C documentation
  2597. //
  2598. // /*
  2599. // * Add padding and return the message digest.
  2600. // */
  2601. func XSHA1Pad(tls *libc.TLS, context uintptr) {
  2602. bp := tls.Alloc(16)
  2603. defer tls.Free(16)
  2604. var i uint32
  2605. var _ /* finalcount at bp+0 */ [8]Tuint8_t
  2606. _ = i
  2607. i = uint32(0)
  2608. for {
  2609. if !(i < uint32(8)) {
  2610. break
  2611. }
  2612. (*(*[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 */
  2613. goto _1
  2614. _1:
  2615. ;
  2616. i++
  2617. }
  2618. XSHA1Update(tls, context, __ccgo_ts+153, uint64(1))
  2619. for (*TSHA1_CTX)(unsafe.Pointer(context)).Fcount&uint64(504) != uint64(448) {
  2620. XSHA1Update(tls, context, __ccgo_ts+155, uint64(1))
  2621. }
  2622. XSHA1Update(tls, context, bp, uint64(8)) /* Should cause a SHA1Transform() */
  2623. }
  2624. func XSHA1Final(tls *libc.TLS, digest uintptr, context uintptr) {
  2625. var i uint32
  2626. _ = i
  2627. XSHA1Pad(tls, context)
  2628. if digest != 0 {
  2629. i = uint32(0)
  2630. for {
  2631. if !(i < uint32(m_SHA1_DIGEST_LENGTH)) {
  2632. break
  2633. }
  2634. *(*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))
  2635. goto _1
  2636. _1:
  2637. ;
  2638. i++
  2639. }
  2640. libc.Xmemset(tls, context, 0, uint64(96))
  2641. }
  2642. }
  2643. const m_SHA256_BLOCK_LENGTH = 64
  2644. const m_SHA256_DIGEST_LENGTH = 32
  2645. const m_SHA384_BLOCK_LENGTH = 128
  2646. const m_SHA384_DIGEST_LENGTH = 48
  2647. const m_SHA512_BLOCK_LENGTH = 128
  2648. const m_SHA512_DIGEST_LENGTH = 64
  2649. type TSHA2_CTX = struct {
  2650. Fstate struct {
  2651. Fst64 [0][8]Tuint64_t
  2652. Fst32 [8]Tuint32_t
  2653. F__ccgo_pad2 [32]byte
  2654. }
  2655. Fbitcount [2]Tuint64_t
  2656. Fbuffer [128]Tuint8_t
  2657. }
  2658. type T_SHA2_CTX = TSHA2_CTX
  2659. /*
  2660. * UNROLLED TRANSFORM LOOP NOTE:
  2661. * You can define SHA2_UNROLL_TRANSFORM to use the unrolled transform
  2662. * loop version for the hash transform rounds (defined using macros
  2663. * later in this file). Either define on the command line, for example:
  2664. *
  2665. * cc -DSHA2_UNROLL_TRANSFORM -o sha2 sha2.c sha2prog.c
  2666. *
  2667. * or define below:
  2668. *
  2669. * #define SHA2_UNROLL_TRANSFORM
  2670. *
  2671. */
  2672. /*** SHA-256/384/512 Various Length Definitions ***********************/
  2673. /* NOTE: Most of these are in sha2.h */
  2674. /*** ENDIAN SPECIFIC COPY MACROS **************************************/
  2675. /*
  2676. * Macro for incrementally adding the unsigned 64-bit integer n to the
  2677. * unsigned 128-bit integer (represented using a two-element array of
  2678. * 64-bit words):
  2679. */
  2680. /*** THE SIX LOGICAL FUNCTIONS ****************************************/
  2681. /*
  2682. * Bit shifting and rotation (used by the six SHA-XYZ logical functions:
  2683. *
  2684. * NOTE: The naming of R and S appears backwards here (R is a SHIFT and
  2685. * S is a ROTATION) because the SHA-256/384/512 description document
  2686. * (see http://csrc.nist.gov/cryptval/shs/sha256-384-512.pdf) uses this
  2687. * same "backwards" definition.
  2688. */
  2689. /* Shift-right (used in SHA-256, SHA-384, and SHA-512): */
  2690. /* 32-bit Rotate-right (used in SHA-256): */
  2691. /* 64-bit Rotate-right (used in SHA-384 and SHA-512): */
  2692. /* Two of six logical functions used in SHA-256, SHA-384, and SHA-512: */
  2693. /* Four of six logical functions used in SHA-256: */
  2694. /* Four of six logical functions used in SHA-384 and SHA-512: */
  2695. // C documentation
  2696. //
  2697. // /*** SHA-XYZ INITIAL HASH VALUES AND CONSTANTS ************************/
  2698. // /* Hash constant words K for SHA-256: */
  2699. var _K256 = [64]Tuint32_t{
  2700. 0: uint32(0x428a2f98),
  2701. 1: uint32(0x71374491),
  2702. 2: uint32(0xb5c0fbcf),
  2703. 3: uint32(0xe9b5dba5),
  2704. 4: uint32(0x3956c25b),
  2705. 5: uint32(0x59f111f1),
  2706. 6: uint32(0x923f82a4),
  2707. 7: uint32(0xab1c5ed5),
  2708. 8: uint32(0xd807aa98),
  2709. 9: uint32(0x12835b01),
  2710. 10: uint32(0x243185be),
  2711. 11: uint32(0x550c7dc3),
  2712. 12: uint32(0x72be5d74),
  2713. 13: uint32(0x80deb1fe),
  2714. 14: uint32(0x9bdc06a7),
  2715. 15: uint32(0xc19bf174),
  2716. 16: uint32(0xe49b69c1),
  2717. 17: uint32(0xefbe4786),
  2718. 18: uint32(0x0fc19dc6),
  2719. 19: uint32(0x240ca1cc),
  2720. 20: uint32(0x2de92c6f),
  2721. 21: uint32(0x4a7484aa),
  2722. 22: uint32(0x5cb0a9dc),
  2723. 23: uint32(0x76f988da),
  2724. 24: uint32(0x983e5152),
  2725. 25: uint32(0xa831c66d),
  2726. 26: uint32(0xb00327c8),
  2727. 27: uint32(0xbf597fc7),
  2728. 28: uint32(0xc6e00bf3),
  2729. 29: uint32(0xd5a79147),
  2730. 30: uint32(0x06ca6351),
  2731. 31: uint32(0x14292967),
  2732. 32: uint32(0x27b70a85),
  2733. 33: uint32(0x2e1b2138),
  2734. 34: uint32(0x4d2c6dfc),
  2735. 35: uint32(0x53380d13),
  2736. 36: uint32(0x650a7354),
  2737. 37: uint32(0x766a0abb),
  2738. 38: uint32(0x81c2c92e),
  2739. 39: uint32(0x92722c85),
  2740. 40: uint32(0xa2bfe8a1),
  2741. 41: uint32(0xa81a664b),
  2742. 42: uint32(0xc24b8b70),
  2743. 43: uint32(0xc76c51a3),
  2744. 44: uint32(0xd192e819),
  2745. 45: uint32(0xd6990624),
  2746. 46: uint32(0xf40e3585),
  2747. 47: uint32(0x106aa070),
  2748. 48: uint32(0x19a4c116),
  2749. 49: uint32(0x1e376c08),
  2750. 50: uint32(0x2748774c),
  2751. 51: uint32(0x34b0bcb5),
  2752. 52: uint32(0x391c0cb3),
  2753. 53: uint32(0x4ed8aa4a),
  2754. 54: uint32(0x5b9cca4f),
  2755. 55: uint32(0x682e6ff3),
  2756. 56: uint32(0x748f82ee),
  2757. 57: uint32(0x78a5636f),
  2758. 58: uint32(0x84c87814),
  2759. 59: uint32(0x8cc70208),
  2760. 60: uint32(0x90befffa),
  2761. 61: uint32(0xa4506ceb),
  2762. 62: uint32(0xbef9a3f7),
  2763. 63: uint32(0xc67178f2),
  2764. }
  2765. // C documentation
  2766. //
  2767. // /* Initial hash value H for SHA-256: */
  2768. var _sha256_initial_hash_value = [8]Tuint32_t{
  2769. 0: uint32(0x6a09e667),
  2770. 1: uint32(0xbb67ae85),
  2771. 2: uint32(0x3c6ef372),
  2772. 3: uint32(0xa54ff53a),
  2773. 4: uint32(0x510e527f),
  2774. 5: uint32(0x9b05688c),
  2775. 6: uint32(0x1f83d9ab),
  2776. 7: uint32(0x5be0cd19),
  2777. }
  2778. // C documentation
  2779. //
  2780. // /* Hash constant words K for SHA-384 and SHA-512: */
  2781. var _K512 = [80]Tuint64_t{
  2782. 0: uint64(0x428a2f98d728ae22),
  2783. 1: uint64(0x7137449123ef65cd),
  2784. 2: uint64(0xb5c0fbcfec4d3b2f),
  2785. 3: uint64(0xe9b5dba58189dbbc),
  2786. 4: uint64(0x3956c25bf348b538),
  2787. 5: uint64(0x59f111f1b605d019),
  2788. 6: uint64(0x923f82a4af194f9b),
  2789. 7: uint64(0xab1c5ed5da6d8118),
  2790. 8: uint64(0xd807aa98a3030242),
  2791. 9: uint64(0x12835b0145706fbe),
  2792. 10: uint64(0x243185be4ee4b28c),
  2793. 11: uint64(0x550c7dc3d5ffb4e2),
  2794. 12: uint64(0x72be5d74f27b896f),
  2795. 13: uint64(0x80deb1fe3b1696b1),
  2796. 14: uint64(0x9bdc06a725c71235),
  2797. 15: uint64(0xc19bf174cf692694),
  2798. 16: uint64(0xe49b69c19ef14ad2),
  2799. 17: uint64(0xefbe4786384f25e3),
  2800. 18: uint64(0x0fc19dc68b8cd5b5),
  2801. 19: uint64(0x240ca1cc77ac9c65),
  2802. 20: uint64(0x2de92c6f592b0275),
  2803. 21: uint64(0x4a7484aa6ea6e483),
  2804. 22: uint64(0x5cb0a9dcbd41fbd4),
  2805. 23: uint64(0x76f988da831153b5),
  2806. 24: uint64(0x983e5152ee66dfab),
  2807. 25: uint64(0xa831c66d2db43210),
  2808. 26: uint64(0xb00327c898fb213f),
  2809. 27: uint64(0xbf597fc7beef0ee4),
  2810. 28: uint64(0xc6e00bf33da88fc2),
  2811. 29: uint64(0xd5a79147930aa725),
  2812. 30: uint64(0x06ca6351e003826f),
  2813. 31: uint64(0x142929670a0e6e70),
  2814. 32: uint64(0x27b70a8546d22ffc),
  2815. 33: uint64(0x2e1b21385c26c926),
  2816. 34: uint64(0x4d2c6dfc5ac42aed),
  2817. 35: uint64(0x53380d139d95b3df),
  2818. 36: uint64(0x650a73548baf63de),
  2819. 37: uint64(0x766a0abb3c77b2a8),
  2820. 38: uint64(0x81c2c92e47edaee6),
  2821. 39: uint64(0x92722c851482353b),
  2822. 40: uint64(0xa2bfe8a14cf10364),
  2823. 41: uint64(0xa81a664bbc423001),
  2824. 42: uint64(0xc24b8b70d0f89791),
  2825. 43: uint64(0xc76c51a30654be30),
  2826. 44: uint64(0xd192e819d6ef5218),
  2827. 45: uint64(0xd69906245565a910),
  2828. 46: uint64(0xf40e35855771202a),
  2829. 47: uint64(0x106aa07032bbd1b8),
  2830. 48: uint64(0x19a4c116b8d2d0c8),
  2831. 49: uint64(0x1e376c085141ab53),
  2832. 50: uint64(0x2748774cdf8eeb99),
  2833. 51: uint64(0x34b0bcb5e19b48a8),
  2834. 52: uint64(0x391c0cb3c5c95a63),
  2835. 53: uint64(0x4ed8aa4ae3418acb),
  2836. 54: uint64(0x5b9cca4f7763e373),
  2837. 55: uint64(0x682e6ff3d6b2b8a3),
  2838. 56: uint64(0x748f82ee5defb2fc),
  2839. 57: uint64(0x78a5636f43172f60),
  2840. 58: uint64(0x84c87814a1f0ab72),
  2841. 59: uint64(0x8cc702081a6439ec),
  2842. 60: uint64(0x90befffa23631e28),
  2843. 61: uint64(0xa4506cebde82bde9),
  2844. 62: uint64(0xbef9a3f7b2c67915),
  2845. 63: uint64(0xc67178f2e372532b),
  2846. 64: uint64(0xca273eceea26619c),
  2847. 65: uint64(0xd186b8c721c0c207),
  2848. 66: uint64(0xeada7dd6cde0eb1e),
  2849. 67: uint64(0xf57d4f7fee6ed178),
  2850. 68: uint64(0x06f067aa72176fba),
  2851. 69: uint64(0x0a637dc5a2c898a6),
  2852. 70: uint64(0x113f9804bef90dae),
  2853. 71: uint64(0x1b710b35131c471b),
  2854. 72: uint64(0x28db77f523047d84),
  2855. 73: uint64(0x32caab7b40c72493),
  2856. 74: uint64(0x3c9ebe0a15c9bebc),
  2857. 75: uint64(0x431d67c49c100d4c),
  2858. 76: uint64(0x4cc5d4becb3e42b6),
  2859. 77: uint64(0x597f299cfc657e2a),
  2860. 78: uint64(0x5fcb6fab3ad6faec),
  2861. 79: uint64(0x6c44198c4a475817),
  2862. }
  2863. // C documentation
  2864. //
  2865. // /* Initial hash value H for SHA-384 */
  2866. var _sha384_initial_hash_value = [8]Tuint64_t{
  2867. 0: uint64(0xcbbb9d5dc1059ed8),
  2868. 1: uint64(0x629a292a367cd507),
  2869. 2: uint64(0x9159015a3070dd17),
  2870. 3: uint64(0x152fecd8f70e5939),
  2871. 4: uint64(0x67332667ffc00b31),
  2872. 5: uint64(0x8eb44a8768581511),
  2873. 6: uint64(0xdb0c2e0d64f98fa7),
  2874. 7: uint64(0x47b5481dbefa4fa4),
  2875. }
  2876. // C documentation
  2877. //
  2878. // /* Initial hash value H for SHA-512 */
  2879. var _sha512_initial_hash_value = [8]Tuint64_t{
  2880. 0: uint64(0x6a09e667f3bcc908),
  2881. 1: uint64(0xbb67ae8584caa73b),
  2882. 2: uint64(0x3c6ef372fe94f82b),
  2883. 3: uint64(0xa54ff53a5f1d36f1),
  2884. 4: uint64(0x510e527fade682d1),
  2885. 5: uint64(0x9b05688c2b3e6c1f),
  2886. 6: uint64(0x1f83d9abfb41bd6b),
  2887. 7: uint64(0x5be0cd19137e2179),
  2888. }
  2889. // C documentation
  2890. //
  2891. // /*** SHA-256: *********************************************************/
  2892. func XSHA256Init(tls *libc.TLS, context uintptr) {
  2893. if context == libc.UintptrFromInt32(0) {
  2894. return
  2895. }
  2896. libc.Xmemcpy(tls, context, uintptr(unsafe.Pointer(&_sha256_initial_hash_value)), uint64(32))
  2897. libc.Xmemset(tls, context+80, 0, uint64(128))
  2898. *(*Tuint64_t)(unsafe.Pointer(context + 64)) = uint64(0)
  2899. }
  2900. func XSHA256Transform(tls *libc.TLS, state uintptr, data uintptr) {
  2901. bp := tls.Alloc(64)
  2902. defer tls.Free(64)
  2903. var T1, T2, a, b, c, d, e, f, g, h, s0, s1, v10, v2, v3, v4, v5, v6, v7, v8, v9 Tuint32_t
  2904. var j int32
  2905. var p1 uintptr
  2906. var _ /* W256 at bp+0 */ [16]Tuint32_t
  2907. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = T1, T2, a, b, c, d, e, f, g, h, j, s0, s1, v10, v2, v3, v4, v5, v6, v7, v8, v9, p1
  2908. /* Initialize registers with the prev. intermediate value */
  2909. a = *(*Tuint32_t)(unsafe.Pointer(state))
  2910. b = *(*Tuint32_t)(unsafe.Pointer(state + 1*4))
  2911. c = *(*Tuint32_t)(unsafe.Pointer(state + 2*4))
  2912. d = *(*Tuint32_t)(unsafe.Pointer(state + 3*4))
  2913. e = *(*Tuint32_t)(unsafe.Pointer(state + 4*4))
  2914. f = *(*Tuint32_t)(unsafe.Pointer(state + 5*4))
  2915. g = *(*Tuint32_t)(unsafe.Pointer(state + 6*4))
  2916. h = *(*Tuint32_t)(unsafe.Pointer(state + 7*4))
  2917. j = 0
  2918. for cond := true; cond; cond = j < int32(16) {
  2919. (*(*[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)
  2920. data += uintptr(4)
  2921. /* Apply the SHA-256 compression function to update a..h */
  2922. 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]
  2923. 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)
  2924. h = g
  2925. g = f
  2926. f = e
  2927. e = d + T1
  2928. d = c
  2929. c = b
  2930. b = a
  2931. a = T1 + T2
  2932. j++
  2933. }
  2934. for cond := true; cond; cond = j < int32(64) {
  2935. /* Part of the message block expansion: */
  2936. s0 = (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[(j+int32(1))&int32(0x0f)]
  2937. 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)
  2938. s1 = (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[(j+int32(14))&int32(0x0f)]
  2939. 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)
  2940. /* Apply the SHA-256 compression function to update a..h */
  2941. p1 = bp + uintptr(j&int32(0x0f))*4
  2942. *(*Tuint32_t)(unsafe.Pointer(p1)) += s1 + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[(j+int32(9))&int32(0x0f)] + s0
  2943. 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))
  2944. 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)
  2945. h = g
  2946. g = f
  2947. f = e
  2948. e = d + T1
  2949. d = c
  2950. c = b
  2951. b = a
  2952. a = T1 + T2
  2953. j++
  2954. }
  2955. /* Compute the current intermediate hash value */
  2956. *(*Tuint32_t)(unsafe.Pointer(state)) += a
  2957. *(*Tuint32_t)(unsafe.Pointer(state + 1*4)) += b
  2958. *(*Tuint32_t)(unsafe.Pointer(state + 2*4)) += c
  2959. *(*Tuint32_t)(unsafe.Pointer(state + 3*4)) += d
  2960. *(*Tuint32_t)(unsafe.Pointer(state + 4*4)) += e
  2961. *(*Tuint32_t)(unsafe.Pointer(state + 5*4)) += f
  2962. *(*Tuint32_t)(unsafe.Pointer(state + 6*4)) += g
  2963. *(*Tuint32_t)(unsafe.Pointer(state + 7*4)) += h
  2964. /* Clean up */
  2965. v10 = libc.Uint32FromInt32(0)
  2966. T2 = v10
  2967. v9 = v10
  2968. T1 = v9
  2969. v8 = v9
  2970. h = v8
  2971. v7 = v8
  2972. g = v7
  2973. v6 = v7
  2974. f = v6
  2975. v5 = v6
  2976. e = v5
  2977. v4 = v5
  2978. d = v4
  2979. v3 = v4
  2980. c = v3
  2981. v2 = v3
  2982. b = v2
  2983. a = v2
  2984. }
  2985. func XSHA256Update(tls *libc.TLS, context uintptr, data uintptr, len1 Tsize_t) {
  2986. var freespace, usedspace, v1, v2 Tsize_t
  2987. _, _, _, _ = freespace, usedspace, v1, v2
  2988. /* Calling with no data is valid (we do nothing) */
  2989. if len1 == uint64(0) {
  2990. return
  2991. }
  2992. usedspace = *(*Tuint64_t)(unsafe.Pointer(context + 64)) >> libc.Int32FromInt32(3) % uint64(m_SHA256_BLOCK_LENGTH)
  2993. if usedspace > uint64(0) {
  2994. /* Calculate how much free space is available in the buffer */
  2995. freespace = uint64(m_SHA256_BLOCK_LENGTH) - usedspace
  2996. if len1 >= freespace {
  2997. /* Fill the buffer completely and process it */
  2998. libc.Xmemcpy(tls, context+80+uintptr(usedspace), data, freespace)
  2999. *(*Tuint64_t)(unsafe.Pointer(context + 64)) += freespace << int32(3)
  3000. len1 -= freespace
  3001. data += uintptr(freespace)
  3002. XSHA256Transform(tls, context, context+80)
  3003. } else {
  3004. /* The buffer is not yet full */
  3005. libc.Xmemcpy(tls, context+80+uintptr(usedspace), data, len1)
  3006. *(*Tuint64_t)(unsafe.Pointer(context + 64)) += len1 << int32(3)
  3007. /* Clean up: */
  3008. v1 = libc.Uint64FromInt32(0)
  3009. freespace = v1
  3010. usedspace = v1
  3011. return
  3012. }
  3013. }
  3014. for len1 >= uint64(m_SHA256_BLOCK_LENGTH) {
  3015. /* Process as many complete blocks as we can */
  3016. XSHA256Transform(tls, context, data)
  3017. *(*Tuint64_t)(unsafe.Pointer(context + 64)) += libc.Uint64FromInt32(libc.Int32FromInt32(m_SHA256_BLOCK_LENGTH) << libc.Int32FromInt32(3))
  3018. len1 -= uint64(m_SHA256_BLOCK_LENGTH)
  3019. data += uintptr(m_SHA256_BLOCK_LENGTH)
  3020. }
  3021. if len1 > uint64(0) {
  3022. /* There's left-overs, so save 'em */
  3023. libc.Xmemcpy(tls, context+80, data, len1)
  3024. *(*Tuint64_t)(unsafe.Pointer(context + 64)) += len1 << int32(3)
  3025. }
  3026. /* Clean up: */
  3027. v2 = libc.Uint64FromInt32(0)
  3028. freespace = v2
  3029. usedspace = v2
  3030. }
  3031. func XSHA256Pad(tls *libc.TLS, context uintptr) {
  3032. var usedspace, v1 uint32
  3033. _, _ = usedspace, v1
  3034. usedspace = uint32(*(*Tuint64_t)(unsafe.Pointer(context + 64)) >> libc.Int32FromInt32(3) % uint64(m_SHA256_BLOCK_LENGTH))
  3035. if usedspace > uint32(0) {
  3036. /* Begin padding with a 1 bit: */
  3037. v1 = usedspace
  3038. usedspace++
  3039. *(*Tuint8_t)(unsafe.Pointer(context + 80 + uintptr(v1))) = uint8(0x80)
  3040. if usedspace <= libc.Uint32FromInt32(libc.Int32FromInt32(m_SHA256_BLOCK_LENGTH)-libc.Int32FromInt32(8)) {
  3041. /* Set-up for the last transform: */
  3042. libc.Xmemset(tls, context+80+uintptr(usedspace), 0, uint64(libc.Uint32FromInt32(libc.Int32FromInt32(m_SHA256_BLOCK_LENGTH)-libc.Int32FromInt32(8))-usedspace))
  3043. } else {
  3044. if usedspace < uint32(m_SHA256_BLOCK_LENGTH) {
  3045. libc.Xmemset(tls, context+80+uintptr(usedspace), 0, uint64(uint32(m_SHA256_BLOCK_LENGTH)-usedspace))
  3046. }
  3047. /* Do second-to-last transform: */
  3048. XSHA256Transform(tls, context, context+80)
  3049. /* Prepare for last transform: */
  3050. libc.Xmemset(tls, context+80, 0, libc.Uint64FromInt32(libc.Int32FromInt32(m_SHA256_BLOCK_LENGTH)-libc.Int32FromInt32(8)))
  3051. }
  3052. } else {
  3053. /* Set-up for the last transform: */
  3054. libc.Xmemset(tls, context+80, 0, libc.Uint64FromInt32(libc.Int32FromInt32(m_SHA256_BLOCK_LENGTH)-libc.Int32FromInt32(8)))
  3055. /* Begin padding with a 1 bit: */
  3056. *(*Tuint8_t)(unsafe.Pointer(context + 80)) = uint8(0x80)
  3057. }
  3058. /* Store the length of input data (in bits) in big endian format: */
  3059. *(*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))
  3060. *(*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))
  3061. *(*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))
  3062. *(*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))
  3063. *(*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))
  3064. *(*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))
  3065. *(*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))
  3066. *(*Tuint8_t)(unsafe.Pointer(context + 80 + uintptr(libc.Int32FromInt32(m_SHA256_BLOCK_LENGTH)-libc.Int32FromInt32(8)) + 7)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + 64)))
  3067. /* Final transform: */
  3068. XSHA256Transform(tls, context, context+80)
  3069. /* Clean up: */
  3070. usedspace = uint32(0)
  3071. }
  3072. func XSHA256Final(tls *libc.TLS, digest uintptr, context uintptr) {
  3073. var i int32
  3074. _ = i
  3075. XSHA256Pad(tls, context)
  3076. /* If no digest buffer is passed, we don't bother doing this: */
  3077. if digest != libc.UintptrFromInt32(0) {
  3078. /* Convert TO host byte order */
  3079. i = 0
  3080. for {
  3081. if !(i < int32(8)) {
  3082. break
  3083. }
  3084. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(4)))) = uint8(*(*Tuint32_t)(unsafe.Pointer(context + uintptr(i)*4)) >> int32(24))
  3085. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(4)) + 1)) = uint8(*(*Tuint32_t)(unsafe.Pointer(context + uintptr(i)*4)) >> int32(16))
  3086. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(4)) + 2)) = uint8(*(*Tuint32_t)(unsafe.Pointer(context + uintptr(i)*4)) >> int32(8))
  3087. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(4)) + 3)) = uint8(*(*Tuint32_t)(unsafe.Pointer(context + uintptr(i)*4)))
  3088. goto _1
  3089. _1:
  3090. ;
  3091. i++
  3092. }
  3093. libc.Xmemset(tls, context, 0, uint64(208))
  3094. }
  3095. }
  3096. // C documentation
  3097. //
  3098. // /*** SHA-512: *********************************************************/
  3099. func XSHA512Init(tls *libc.TLS, context uintptr) {
  3100. var v1 Tuint64_t
  3101. _ = v1
  3102. if context == libc.UintptrFromInt32(0) {
  3103. return
  3104. }
  3105. libc.Xmemcpy(tls, context, uintptr(unsafe.Pointer(&_sha512_initial_hash_value)), uint64(64))
  3106. libc.Xmemset(tls, context+80, 0, uint64(128))
  3107. v1 = libc.Uint64FromInt32(0)
  3108. *(*Tuint64_t)(unsafe.Pointer(context + 64 + 1*8)) = v1
  3109. *(*Tuint64_t)(unsafe.Pointer(context + 64)) = v1
  3110. }
  3111. func XSHA512Transform(tls *libc.TLS, state uintptr, data uintptr) {
  3112. bp := tls.Alloc(128)
  3113. defer tls.Free(128)
  3114. var T1, T2, a, b, c, d, e, f, g, h, s0, s1, v10, v2, v3, v4, v5, v6, v7, v8, v9 Tuint64_t
  3115. var j int32
  3116. var p1 uintptr
  3117. var _ /* W512 at bp+0 */ [16]Tuint64_t
  3118. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = T1, T2, a, b, c, d, e, f, g, h, j, s0, s1, v10, v2, v3, v4, v5, v6, v7, v8, v9, p1
  3119. /* Initialize registers with the prev. intermediate value */
  3120. a = *(*Tuint64_t)(unsafe.Pointer(state))
  3121. b = *(*Tuint64_t)(unsafe.Pointer(state + 1*8))
  3122. c = *(*Tuint64_t)(unsafe.Pointer(state + 2*8))
  3123. d = *(*Tuint64_t)(unsafe.Pointer(state + 3*8))
  3124. e = *(*Tuint64_t)(unsafe.Pointer(state + 4*8))
  3125. f = *(*Tuint64_t)(unsafe.Pointer(state + 5*8))
  3126. g = *(*Tuint64_t)(unsafe.Pointer(state + 6*8))
  3127. h = *(*Tuint64_t)(unsafe.Pointer(state + 7*8))
  3128. j = 0
  3129. for cond := true; cond; cond = j < int32(16) {
  3130. (*(*[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)
  3131. data += uintptr(8)
  3132. /* Apply the SHA-512 compression function to update a..h */
  3133. 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]
  3134. 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)
  3135. h = g
  3136. g = f
  3137. f = e
  3138. e = d + T1
  3139. d = c
  3140. c = b
  3141. b = a
  3142. a = T1 + T2
  3143. j++
  3144. }
  3145. for cond := true; cond; cond = j < int32(80) {
  3146. /* Part of the message block expansion: */
  3147. s0 = (*(*[16]Tuint64_t)(unsafe.Pointer(bp)))[(j+int32(1))&int32(0x0f)]
  3148. 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)
  3149. s1 = (*(*[16]Tuint64_t)(unsafe.Pointer(bp)))[(j+int32(14))&int32(0x0f)]
  3150. 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)
  3151. /* Apply the SHA-512 compression function to update a..h */
  3152. p1 = bp + uintptr(j&int32(0x0f))*8
  3153. *(*Tuint64_t)(unsafe.Pointer(p1)) += s1 + (*(*[16]Tuint64_t)(unsafe.Pointer(bp)))[(j+int32(9))&int32(0x0f)] + s0
  3154. 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))
  3155. 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)
  3156. h = g
  3157. g = f
  3158. f = e
  3159. e = d + T1
  3160. d = c
  3161. c = b
  3162. b = a
  3163. a = T1 + T2
  3164. j++
  3165. }
  3166. /* Compute the current intermediate hash value */
  3167. *(*Tuint64_t)(unsafe.Pointer(state)) += a
  3168. *(*Tuint64_t)(unsafe.Pointer(state + 1*8)) += b
  3169. *(*Tuint64_t)(unsafe.Pointer(state + 2*8)) += c
  3170. *(*Tuint64_t)(unsafe.Pointer(state + 3*8)) += d
  3171. *(*Tuint64_t)(unsafe.Pointer(state + 4*8)) += e
  3172. *(*Tuint64_t)(unsafe.Pointer(state + 5*8)) += f
  3173. *(*Tuint64_t)(unsafe.Pointer(state + 6*8)) += g
  3174. *(*Tuint64_t)(unsafe.Pointer(state + 7*8)) += h
  3175. /* Clean up */
  3176. v10 = libc.Uint64FromInt32(0)
  3177. T2 = v10
  3178. v9 = v10
  3179. T1 = v9
  3180. v8 = v9
  3181. h = v8
  3182. v7 = v8
  3183. g = v7
  3184. v6 = v7
  3185. f = v6
  3186. v5 = v6
  3187. e = v5
  3188. v4 = v5
  3189. d = v4
  3190. v3 = v4
  3191. c = v3
  3192. v2 = v3
  3193. b = v2
  3194. a = v2
  3195. }
  3196. func XSHA512Update(tls *libc.TLS, context uintptr, data uintptr, len1 Tsize_t) {
  3197. var freespace, usedspace, v1, v2 Tsize_t
  3198. _, _, _, _ = freespace, usedspace, v1, v2
  3199. /* Calling with no data is valid (we do nothing) */
  3200. if len1 == uint64(0) {
  3201. return
  3202. }
  3203. usedspace = *(*Tuint64_t)(unsafe.Pointer(context + 64)) >> libc.Int32FromInt32(3) % uint64(m_SHA512_BLOCK_LENGTH)
  3204. if usedspace > uint64(0) {
  3205. /* Calculate how much free space is available in the buffer */
  3206. freespace = uint64(m_SHA512_BLOCK_LENGTH) - usedspace
  3207. if len1 >= freespace {
  3208. /* Fill the buffer completely and process it */
  3209. libc.Xmemcpy(tls, context+80+uintptr(usedspace), data, freespace)
  3210. *(*Tuint64_t)(unsafe.Pointer(context + 64)) += freespace << libc.Int32FromInt32(3)
  3211. if *(*Tuint64_t)(unsafe.Pointer(context + 64)) < freespace<<libc.Int32FromInt32(3) {
  3212. *(*Tuint64_t)(unsafe.Pointer(context + 64 + 1*8))++
  3213. }
  3214. len1 -= freespace
  3215. data += uintptr(freespace)
  3216. XSHA512Transform(tls, context, context+80)
  3217. } else {
  3218. /* The buffer is not yet full */
  3219. libc.Xmemcpy(tls, context+80+uintptr(usedspace), data, len1)
  3220. *(*Tuint64_t)(unsafe.Pointer(context + 64)) += len1 << libc.Int32FromInt32(3)
  3221. if *(*Tuint64_t)(unsafe.Pointer(context + 64)) < len1<<libc.Int32FromInt32(3) {
  3222. *(*Tuint64_t)(unsafe.Pointer(context + 64 + 1*8))++
  3223. }
  3224. /* Clean up: */
  3225. v1 = libc.Uint64FromInt32(0)
  3226. freespace = v1
  3227. usedspace = v1
  3228. return
  3229. }
  3230. }
  3231. for len1 >= uint64(m_SHA512_BLOCK_LENGTH) {
  3232. /* Process as many complete blocks as we can */
  3233. XSHA512Transform(tls, context, data)
  3234. *(*Tuint64_t)(unsafe.Pointer(context + 64)) += libc.Uint64FromInt32(libc.Int32FromInt32(m_SHA512_BLOCK_LENGTH) << libc.Int32FromInt32(3))
  3235. if *(*Tuint64_t)(unsafe.Pointer(context + 64)) < libc.Uint64FromInt32(libc.Int32FromInt32(m_SHA512_BLOCK_LENGTH)<<libc.Int32FromInt32(3)) {
  3236. *(*Tuint64_t)(unsafe.Pointer(context + 64 + 1*8))++
  3237. }
  3238. len1 -= uint64(m_SHA512_BLOCK_LENGTH)
  3239. data += uintptr(m_SHA512_BLOCK_LENGTH)
  3240. }
  3241. if len1 > uint64(0) {
  3242. /* There's left-overs, so save 'em */
  3243. libc.Xmemcpy(tls, context+80, data, len1)
  3244. *(*Tuint64_t)(unsafe.Pointer(context + 64)) += len1 << libc.Int32FromInt32(3)
  3245. if *(*Tuint64_t)(unsafe.Pointer(context + 64)) < len1<<libc.Int32FromInt32(3) {
  3246. *(*Tuint64_t)(unsafe.Pointer(context + 64 + 1*8))++
  3247. }
  3248. }
  3249. /* Clean up: */
  3250. v2 = libc.Uint64FromInt32(0)
  3251. freespace = v2
  3252. usedspace = v2
  3253. }
  3254. func XSHA512Pad(tls *libc.TLS, context uintptr) {
  3255. var usedspace, v1 uint32
  3256. _, _ = usedspace, v1
  3257. usedspace = uint32(*(*Tuint64_t)(unsafe.Pointer(context + 64)) >> libc.Int32FromInt32(3) % uint64(m_SHA512_BLOCK_LENGTH))
  3258. if usedspace > uint32(0) {
  3259. /* Begin padding with a 1 bit: */
  3260. v1 = usedspace
  3261. usedspace++
  3262. *(*Tuint8_t)(unsafe.Pointer(context + 80 + uintptr(v1))) = uint8(0x80)
  3263. if usedspace <= libc.Uint32FromInt32(libc.Int32FromInt32(m_SHA512_BLOCK_LENGTH)-libc.Int32FromInt32(16)) {
  3264. /* Set-up for the last transform: */
  3265. libc.Xmemset(tls, context+80+uintptr(usedspace), 0, uint64(libc.Uint32FromInt32(libc.Int32FromInt32(m_SHA512_BLOCK_LENGTH)-libc.Int32FromInt32(16))-usedspace))
  3266. } else {
  3267. if usedspace < uint32(m_SHA512_BLOCK_LENGTH) {
  3268. libc.Xmemset(tls, context+80+uintptr(usedspace), 0, uint64(uint32(m_SHA512_BLOCK_LENGTH)-usedspace))
  3269. }
  3270. /* Do second-to-last transform: */
  3271. XSHA512Transform(tls, context, context+80)
  3272. /* And set-up for the last transform: */
  3273. libc.Xmemset(tls, context+80, 0, libc.Uint64FromInt32(libc.Int32FromInt32(m_SHA512_BLOCK_LENGTH)-libc.Int32FromInt32(2)))
  3274. }
  3275. } else {
  3276. /* Prepare for final transform: */
  3277. libc.Xmemset(tls, context+80, 0, libc.Uint64FromInt32(libc.Int32FromInt32(m_SHA512_BLOCK_LENGTH)-libc.Int32FromInt32(16)))
  3278. /* Begin padding with a 1 bit: */
  3279. *(*Tuint8_t)(unsafe.Pointer(context + 80)) = uint8(0x80)
  3280. }
  3281. /* Store the length of input data (in bits) in big endian format: */
  3282. *(*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))
  3283. *(*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))
  3284. *(*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))
  3285. *(*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))
  3286. *(*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))
  3287. *(*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))
  3288. *(*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))
  3289. *(*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)))
  3290. *(*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))
  3291. *(*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))
  3292. *(*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))
  3293. *(*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))
  3294. *(*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))
  3295. *(*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))
  3296. *(*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))
  3297. *(*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)))
  3298. /* Final transform: */
  3299. XSHA512Transform(tls, context, context+80)
  3300. /* Clean up: */
  3301. usedspace = uint32(0)
  3302. }
  3303. func XSHA512Final(tls *libc.TLS, digest uintptr, context uintptr) {
  3304. var i int32
  3305. _ = i
  3306. XSHA512Pad(tls, context)
  3307. /* If no digest buffer is passed, we don't bother doing this: */
  3308. if digest != libc.UintptrFromInt32(0) {
  3309. /* Convert TO host byte order */
  3310. i = 0
  3311. for {
  3312. if !(i < int32(8)) {
  3313. break
  3314. }
  3315. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)))) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)) >> int32(56))
  3316. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)) + 1)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)) >> int32(48))
  3317. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)) + 2)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)) >> int32(40))
  3318. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)) + 3)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)) >> int32(32))
  3319. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)) + 4)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)) >> int32(24))
  3320. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)) + 5)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)) >> int32(16))
  3321. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)) + 6)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)) >> int32(8))
  3322. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)) + 7)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)))
  3323. goto _1
  3324. _1:
  3325. ;
  3326. i++
  3327. }
  3328. libc.Xmemset(tls, context, 0, uint64(208))
  3329. }
  3330. }
  3331. // C documentation
  3332. //
  3333. // /*** SHA-384: *********************************************************/
  3334. func XSHA384Init(tls *libc.TLS, context uintptr) {
  3335. var v1 Tuint64_t
  3336. _ = v1
  3337. if context == libc.UintptrFromInt32(0) {
  3338. return
  3339. }
  3340. libc.Xmemcpy(tls, context, uintptr(unsafe.Pointer(&_sha384_initial_hash_value)), uint64(64))
  3341. libc.Xmemset(tls, context+80, 0, uint64(128))
  3342. v1 = libc.Uint64FromInt32(0)
  3343. *(*Tuint64_t)(unsafe.Pointer(context + 64 + 1*8)) = v1
  3344. *(*Tuint64_t)(unsafe.Pointer(context + 64)) = v1
  3345. }
  3346. func XSHA384Final(tls *libc.TLS, digest uintptr, context uintptr) {
  3347. var i int32
  3348. _ = i
  3349. XSHA512Pad(tls, context)
  3350. /* If no digest buffer is passed, we don't bother doing this: */
  3351. if digest != libc.UintptrFromInt32(0) {
  3352. /* Convert TO host byte order */
  3353. i = 0
  3354. for {
  3355. if !(i < int32(6)) {
  3356. break
  3357. }
  3358. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)))) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)) >> int32(56))
  3359. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)) + 1)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)) >> int32(48))
  3360. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)) + 2)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)) >> int32(40))
  3361. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)) + 3)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)) >> int32(32))
  3362. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)) + 4)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)) >> int32(24))
  3363. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)) + 5)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)) >> int32(16))
  3364. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)) + 6)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)) >> int32(8))
  3365. *(*Tuint8_t)(unsafe.Pointer(digest + uintptr(i*libc.Int32FromInt32(8)) + 7)) = uint8(*(*Tuint64_t)(unsafe.Pointer(context + uintptr(i)*8)))
  3366. goto _1
  3367. _1:
  3368. ;
  3369. i++
  3370. }
  3371. }
  3372. /* Zero out state data */
  3373. libc.Xmemset(tls, context, 0, uint64(208))
  3374. }
  3375. const m_AT_EACCESS = 0x0100
  3376. const m_AT_EMPTY_PATH = 0x4000
  3377. const m_AT_REMOVEDIR = 0x0800
  3378. const m_AT_RESOLVE_BENEATH = 0x2000
  3379. const m_AT_SYMLINK_FOLLOW = 0x0400
  3380. const m_AT_SYMLINK_NOFOLLOW = 0x0200
  3381. const m_BUFSIZ = 1024
  3382. const m_CLK_TCK = 128
  3383. const m_CLOCKS_PER_SEC = 128
  3384. const m_CLOCK_BOOTTIME = "CLOCK_UPTIME"
  3385. const m_CLOCK_MONOTONIC = 4
  3386. const m_CLOCK_MONOTONIC_COARSE = "CLOCK_MONOTONIC_FAST"
  3387. const m_CLOCK_MONOTONIC_FAST = 12
  3388. const m_CLOCK_MONOTONIC_PRECISE = 11
  3389. const m_CLOCK_PROCESS_CPUTIME_ID = 15
  3390. const m_CLOCK_PROF = 2
  3391. const m_CLOCK_REALTIME = 0
  3392. const m_CLOCK_REALTIME_COARSE = "CLOCK_REALTIME_FAST"
  3393. const m_CLOCK_REALTIME_FAST = 10
  3394. const m_CLOCK_REALTIME_PRECISE = 9
  3395. const m_CLOCK_SECOND = 13
  3396. const m_CLOCK_THREAD_CPUTIME_ID = 14
  3397. const m_CLOCK_UPTIME = 5
  3398. const m_CLOCK_UPTIME_FAST = 8
  3399. const m_CLOCK_UPTIME_PRECISE = 7
  3400. const m_CLOCK_VIRTUAL = 1
  3401. const m_CPUCLOCK_WHICH_PID = 0
  3402. const m_CPUCLOCK_WHICH_TID = 1
  3403. const m_DST_AUST = 2
  3404. const m_DST_CAN = 6
  3405. const m_DST_EET = 5
  3406. const m_DST_MET = 4
  3407. const m_DST_NONE = 0
  3408. const m_DST_USA = 1
  3409. const m_DST_WET = 3
  3410. const m_E2BIG = 7
  3411. const m_EACCES = 13
  3412. const m_EADDRINUSE = 48
  3413. const m_EADDRNOTAVAIL = 49
  3414. const m_EAFNOSUPPORT = 47
  3415. const m_EAGAIN = 35
  3416. const m_EALREADY = 37
  3417. const m_EAUTH = 80
  3418. const m_EBADF = 9
  3419. const m_EBADMSG = 89
  3420. const m_EBADRPC = 72
  3421. const m_EBUSY = 16
  3422. const m_ECANCELED = 85
  3423. const m_ECAPMODE = 94
  3424. const m_ECHILD = 10
  3425. const m_ECONNABORTED = 53
  3426. const m_ECONNREFUSED = 61
  3427. const m_ECONNRESET = 54
  3428. const m_EDEADLK = 11
  3429. const m_EDESTADDRREQ = 39
  3430. const m_EDOM = 33
  3431. const m_EDOOFUS = 88
  3432. const m_EDQUOT = 69
  3433. const m_EEXIST = 17
  3434. const m_EFAULT = 14
  3435. const m_EFBIG = 27
  3436. const m_EFTYPE = 79
  3437. const m_EHOSTDOWN = 64
  3438. const m_EHOSTUNREACH = 65
  3439. const m_EIDRM = 82
  3440. const m_EILSEQ = 86
  3441. const m_EINPROGRESS = 36
  3442. const m_EINTEGRITY = 97
  3443. const m_EINTR = 4
  3444. const m_EINVAL = 22
  3445. const m_EIO = 5
  3446. const m_EISCONN = 56
  3447. const m_EISDIR = 21
  3448. const m_ELAST = 97
  3449. const m_ELOOP = 62
  3450. const m_EMFILE = 24
  3451. const m_EMLINK = 31
  3452. const m_EMSGSIZE = 40
  3453. const m_EMULTIHOP = 90
  3454. const m_ENAMETOOLONG = 63
  3455. const m_ENEEDAUTH = 81
  3456. const m_ENETDOWN = 50
  3457. const m_ENETRESET = 52
  3458. const m_ENETUNREACH = 51
  3459. const m_ENFILE = 23
  3460. const m_ENOATTR = 87
  3461. const m_ENOBUFS = 55
  3462. const m_ENODEV = 19
  3463. const m_ENOENT = 2
  3464. const m_ENOEXEC = 8
  3465. const m_ENOLCK = 77
  3466. const m_ENOLINK = 91
  3467. const m_ENOMEM = 12
  3468. const m_ENOMSG = 83
  3469. const m_ENOPROTOOPT = 42
  3470. const m_ENOSPC = 28
  3471. const m_ENOSYS = 78
  3472. const m_ENOTBLK = 15
  3473. const m_ENOTCAPABLE = 93
  3474. const m_ENOTCONN = 57
  3475. const m_ENOTDIR = 20
  3476. const m_ENOTEMPTY = 66
  3477. const m_ENOTRECOVERABLE = 95
  3478. const m_ENOTSOCK = 38
  3479. const m_ENOTSUP = "EOPNOTSUPP"
  3480. const m_ENOTTY = 25
  3481. const m_ENXIO = 6
  3482. const m_EOPNOTSUPP = 45
  3483. const m_EOVERFLOW = 84
  3484. const m_EOWNERDEAD = 96
  3485. const m_EPERM = 1
  3486. const m_EPFNOSUPPORT = 46
  3487. const m_EPIPE = 32
  3488. const m_EPROCLIM = 67
  3489. const m_EPROCUNAVAIL = 76
  3490. const m_EPROGMISMATCH = 75
  3491. const m_EPROGUNAVAIL = 74
  3492. const m_EPROTO = 92
  3493. const m_EPROTONOSUPPORT = 43
  3494. const m_EPROTOTYPE = 41
  3495. const m_ERANGE = 34
  3496. const m_EREMOTE = 71
  3497. const m_EROFS = 30
  3498. const m_ERPCMISMATCH = 73
  3499. const m_ESHUTDOWN = 58
  3500. const m_ESOCKTNOSUPPORT = 44
  3501. const m_ESPIPE = 29
  3502. const m_ESRCH = 3
  3503. const m_ESTALE = 70
  3504. const m_ETIMEDOUT = 60
  3505. const m_ETOOMANYREFS = 59
  3506. const m_ETXTBSY = 26
  3507. const m_EUSERS = 68
  3508. const m_EWOULDBLOCK = "EAGAIN"
  3509. const m_EXDEV = 18
  3510. const m_EXIT_FAILURE = 1
  3511. const m_EXIT_SUCCESS = 0
  3512. const m_FAPPEND = "O_APPEND"
  3513. const m_FASYNC = "O_ASYNC"
  3514. const m_FDSYNC = "O_DSYNC"
  3515. const m_FD_CLOEXEC = 1
  3516. const m_FFSYNC = "O_FSYNC"
  3517. const m_FILENAME_MAX = 1024
  3518. const m_FNDELAY = "O_NONBLOCK"
  3519. const m_FNONBLOCK = "O_NONBLOCK"
  3520. const m_FOPEN_MAX = 20
  3521. const m_FRDAHEAD = "O_CREAT"
  3522. const m_FREAD = 0x0001
  3523. const m_FWRITE = 0x0002
  3524. const m_F_ADD_SEALS = 19
  3525. const m_F_CANCEL = 5
  3526. const m_F_DUP2FD = 10
  3527. const m_F_DUP2FD_CLOEXEC = 18
  3528. const m_F_DUPFD = 0
  3529. const m_F_DUPFD_CLOEXEC = 17
  3530. const m_F_GETFD = 1
  3531. const m_F_GETFL = 3
  3532. const m_F_GETLK = 11
  3533. const m_F_GETOWN = 5
  3534. const m_F_GET_SEALS = 20
  3535. const m_F_ISUNIONSTACK = 21
  3536. const m_F_KINFO = 22
  3537. const m_F_LOCK = 1
  3538. const m_F_OGETLK = 7
  3539. const m_F_OK = 0
  3540. const m_F_OSETLK = 8
  3541. const m_F_OSETLKW = 9
  3542. const m_F_RDAHEAD = 16
  3543. const m_F_RDLCK = 1
  3544. const m_F_READAHEAD = 15
  3545. const m_F_SEAL_GROW = 0x0004
  3546. const m_F_SEAL_SEAL = 0x0001
  3547. const m_F_SEAL_SHRINK = 0x0002
  3548. const m_F_SEAL_WRITE = 0x0008
  3549. const m_F_SETFD = 2
  3550. const m_F_SETFL = 4
  3551. const m_F_SETLK = 12
  3552. const m_F_SETLKW = 13
  3553. const m_F_SETLK_REMOTE = 14
  3554. const m_F_SETOWN = 6
  3555. const m_F_TEST = 3
  3556. const m_F_TLOCK = 2
  3557. const m_F_ULOCK = 0
  3558. const m_F_UNLCK = 2
  3559. const m_F_UNLCKSYS = 4
  3560. const m_F_WRLCK = 3
  3561. const m_ITIMER_PROF = 2
  3562. const m_ITIMER_REAL = 0
  3563. const m_ITIMER_VIRTUAL = 1
  3564. const m_KCMP_FILE = 100
  3565. const m_KCMP_FILEOBJ = 101
  3566. const m_KCMP_FILES = 102
  3567. const m_KCMP_SIGHAND = 103
  3568. const m_KCMP_VM = 104
  3569. const m_LOCK_EX = 0x02
  3570. const m_LOCK_NB = 0x04
  3571. const m_LOCK_SH = 0x01
  3572. const m_LOCK_UN = 0x08
  3573. const m_L_INCR = "SEEK_CUR"
  3574. const m_L_SET = "SEEK_SET"
  3575. const m_L_XTND = "SEEK_END"
  3576. const m_L_ctermid = 1024
  3577. const m_L_cuserid = 17
  3578. const m_L_tmpnam = 1024
  3579. const m_O_ACCMODE = 0x0003
  3580. const m_O_APPEND = 0x0008
  3581. const m_O_ASYNC = 0x0040
  3582. const m_O_CLOEXEC = 0x00100000
  3583. const m_O_CREAT = 0x0200
  3584. const m_O_DIRECT = 0x00010000
  3585. const m_O_DIRECTORY = 0x00020000
  3586. const m_O_DSYNC = 0x01000000
  3587. const m_O_EMPTY_PATH = 0x02000000
  3588. const m_O_EXCL = 0x0800
  3589. const m_O_EXEC = 0x00040000
  3590. const m_O_EXLOCK = 0x0020
  3591. const m_O_FSYNC = 0x0080
  3592. const m_O_NDELAY = "O_NONBLOCK"
  3593. const m_O_NOCTTY = 0x8000
  3594. const m_O_NOFOLLOW = 0x0100
  3595. const m_O_NONBLOCK = 0x0004
  3596. const m_O_PATH = 0x00400000
  3597. const m_O_RDONLY = 0
  3598. const m_O_RDWR = 0x0002
  3599. const m_O_RESOLVE_BENEATH = 0x00800000
  3600. const m_O_SEARCH = "O_EXEC"
  3601. const m_O_SHLOCK = 0x0010
  3602. const m_O_SYNC = 0x0080
  3603. const m_O_TRUNC = 0x0400
  3604. const m_O_TTY_INIT = 0x00080000
  3605. const m_O_VERIFY = 0x00200000
  3606. const m_O_WRONLY = 0x0001
  3607. const m_POSIX_FADV_DONTNEED = 4
  3608. const m_POSIX_FADV_NOREUSE = 5
  3609. const m_POSIX_FADV_NORMAL = 0
  3610. const m_POSIX_FADV_RANDOM = 1
  3611. const m_POSIX_FADV_SEQUENTIAL = 2
  3612. const m_POSIX_FADV_WILLNEED = 3
  3613. const m_P_tmpdir = "/tmp/"
  3614. const m_RAND_MAX = 0x7fffffff
  3615. const m_RFTSIGMASK = 0xFF
  3616. const m_RFTSIGSHIFT = 20
  3617. const m_R_OK = 0x04
  3618. const m_SBT_MAX = 0x7fffffffffffffff
  3619. const m_SEEK_CUR = 1
  3620. const m_SEEK_DATA = 3
  3621. const m_SEEK_END = 2
  3622. const m_SEEK_HOLE = 4
  3623. const m_SEEK_SET = 0
  3624. const m_SF_APPEND = 0x00040000
  3625. const m_SF_ARCHIVED = 0x00010000
  3626. const m_SF_IMMUTABLE = 0x00020000
  3627. const m_SF_NOUNLINK = 0x00100000
  3628. const m_SF_SETTABLE = 0xffff0000
  3629. const m_SF_SNAPSHOT = 0x00200000
  3630. const m_SPACECTL_DEALLOC = 1
  3631. const m_SPACECTL_F_SUPPORTED = 0
  3632. const m_STDERR_FILENO = 2
  3633. const m_STDIN_FILENO = 0
  3634. const m_STDOUT_FILENO = 1
  3635. const m_SWAPOFF_FORCE = 0x00000001
  3636. const m_S_BLKSIZE = 512
  3637. const m_S_IEXEC = "S_IXUSR"
  3638. const m_S_IFBLK = 0060000
  3639. const m_S_IFCHR = 0020000
  3640. const m_S_IFDIR = 0040000
  3641. const m_S_IFIFO = 0010000
  3642. const m_S_IFLNK = 0120000
  3643. const m_S_IFMT = 0170000
  3644. const m_S_IFREG = 0100000
  3645. const m_S_IFSOCK = 0140000
  3646. const m_S_IFWHT = 0160000
  3647. const m_S_IREAD = "S_IRUSR"
  3648. const m_S_IRGRP = 0000040
  3649. const m_S_IROTH = 0000004
  3650. const m_S_IRUSR = 0000400
  3651. const m_S_IRWXG = 0000070
  3652. const m_S_IRWXO = 0000007
  3653. const m_S_IRWXU = 0000700
  3654. const m_S_ISGID = 0002000
  3655. const m_S_ISTXT = 0001000
  3656. const m_S_ISUID = 0004000
  3657. const m_S_ISVTX = 0001000
  3658. const m_S_IWGRP = 0000020
  3659. const m_S_IWOTH = 0000002
  3660. const m_S_IWRITE = "S_IWUSR"
  3661. const m_S_IWUSR = 0000200
  3662. const m_S_IXGRP = 0000010
  3663. const m_S_IXOTH = 0000001
  3664. const m_S_IXUSR = 0000100
  3665. const m_TIMER_ABSTIME = 0x1
  3666. const m_TIMER_RELTIME = 0x0
  3667. const m_TIME_MONOTONIC = 2
  3668. const m_TIME_UTC = 1
  3669. const m_TMP_MAX = 308915776
  3670. const m_UF_APPEND = 0x00000004
  3671. const m_UF_ARCHIVE = 0x00000800
  3672. const m_UF_HIDDEN = 0x00008000
  3673. const m_UF_IMMUTABLE = 0x00000002
  3674. const m_UF_NODUMP = 0x00000001
  3675. const m_UF_NOUNLINK = 0x00000010
  3676. const m_UF_OFFLINE = 0x00000200
  3677. const m_UF_OPAQUE = 0x00000008
  3678. const m_UF_READONLY = 0x00001000
  3679. const m_UF_REPARSE = 0x00000400
  3680. const m_UF_SETTABLE = 0x0000ffff
  3681. const m_UF_SPARSE = 0x00000100
  3682. const m_UF_SYSTEM = 0x00000080
  3683. const m_W_OK = 0x02
  3684. const m_X_OK = 0x01
  3685. const m__CS_PATH = 1
  3686. const m__CS_POSIX_V6_ILP32_OFF32_CFLAGS = 2
  3687. const m__CS_POSIX_V6_ILP32_OFF32_LDFLAGS = 3
  3688. const m__CS_POSIX_V6_ILP32_OFF32_LIBS = 4
  3689. const m__CS_POSIX_V6_ILP32_OFFBIG_CFLAGS = 5
  3690. const m__CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS = 6
  3691. const m__CS_POSIX_V6_ILP32_OFFBIG_LIBS = 7
  3692. const m__CS_POSIX_V6_LP64_OFF64_CFLAGS = 8
  3693. const m__CS_POSIX_V6_LP64_OFF64_LDFLAGS = 9
  3694. const m__CS_POSIX_V6_LP64_OFF64_LIBS = 10
  3695. const m__CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS = 11
  3696. const m__CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS = 12
  3697. const m__CS_POSIX_V6_LPBIG_OFFBIG_LIBS = 13
  3698. const m__CS_POSIX_V6_WIDTH_RESTRICTED_ENVS = 14
  3699. const m__IOFBF = 0
  3700. const m__IOLBF = 1
  3701. const m__IONBF = 2
  3702. const m__PC_ACL_EXTENDED = 59
  3703. const m__PC_ACL_NFS4 = 64
  3704. const m__PC_ACL_PATH_MAX = 60
  3705. const m__PC_ALLOC_SIZE_MIN = 10
  3706. const m__PC_ASYNC_IO = 53
  3707. const m__PC_CAP_PRESENT = 61
  3708. const m__PC_CHOWN_RESTRICTED = 7
  3709. const m__PC_DEALLOC_PRESENT = 65
  3710. const m__PC_FILESIZEBITS = 12
  3711. const m__PC_INF_PRESENT = 62
  3712. const m__PC_LINK_MAX = 1
  3713. const m__PC_MAC_PRESENT = 63
  3714. const m__PC_MAX_CANON = 2
  3715. const m__PC_MAX_INPUT = 3
  3716. const m__PC_MIN_HOLE_SIZE = 21
  3717. const m__PC_NAME_MAX = 4
  3718. const m__PC_NO_TRUNC = 8
  3719. const m__PC_PATH_MAX = 5
  3720. const m__PC_PIPE_BUF = 6
  3721. const m__PC_PRIO_IO = 54
  3722. const m__PC_REC_INCR_XFER_SIZE = 14
  3723. const m__PC_REC_MAX_XFER_SIZE = 15
  3724. const m__PC_REC_MIN_XFER_SIZE = 16
  3725. const m__PC_REC_XFER_ALIGN = 17
  3726. const m__PC_SYMLINK_MAX = 18
  3727. const m__PC_SYNC_IO = 55
  3728. const m__PC_VDISABLE = 9
  3729. const m__POSIX2_CHAR_TERM = 1
  3730. const m__POSIX2_C_BIND = 200112
  3731. const m__POSIX2_FORT_RUN = 200112
  3732. const m__POSIX2_UPE = 200112
  3733. const m__POSIX2_VERSION = 199212
  3734. const m__POSIX_ADVISORY_INFO = 200112
  3735. const m__POSIX_ASYNCHRONOUS_IO = 200112
  3736. const m__POSIX_BARRIERS = 200112
  3737. const m__POSIX_CHOWN_RESTRICTED = 1
  3738. const m__POSIX_CPUTIME = 200112
  3739. const m__POSIX_FSYNC = 200112
  3740. const m__POSIX_IPV6 = 0
  3741. const m__POSIX_JOB_CONTROL = 1
  3742. const m__POSIX_MAPPED_FILES = 200112
  3743. const m__POSIX_MEMLOCK_RANGE = 200112
  3744. const m__POSIX_MEMORY_PROTECTION = 200112
  3745. const m__POSIX_MESSAGE_PASSING = 200112
  3746. const m__POSIX_MONOTONIC_CLOCK = 200112
  3747. const m__POSIX_NO_TRUNC = 1
  3748. const m__POSIX_PRIORITY_SCHEDULING = 0
  3749. const m__POSIX_RAW_SOCKETS = 200112
  3750. const m__POSIX_READER_WRITER_LOCKS = 200112
  3751. const m__POSIX_REALTIME_SIGNALS = 200112
  3752. const m__POSIX_REGEXP = 1
  3753. const m__POSIX_SEMAPHORES = 200112
  3754. const m__POSIX_SHARED_MEMORY_OBJECTS = 200112
  3755. const m__POSIX_SHELL = 1
  3756. const m__POSIX_SPAWN = 200112
  3757. const m__POSIX_SPIN_LOCKS = 200112
  3758. const m__POSIX_THREADS = 200112
  3759. const m__POSIX_THREAD_ATTR_STACKADDR = 200112
  3760. const m__POSIX_THREAD_ATTR_STACKSIZE = 200112
  3761. const m__POSIX_THREAD_CPUTIME = 200112
  3762. const m__POSIX_THREAD_PRIORITY_SCHEDULING = 200112
  3763. const m__POSIX_THREAD_PRIO_INHERIT = 200112
  3764. const m__POSIX_THREAD_PRIO_PROTECT = 200112
  3765. const m__POSIX_THREAD_PROCESS_SHARED = 200112
  3766. const m__POSIX_TIMEOUTS = 200112
  3767. const m__POSIX_TIMERS = 200112
  3768. const m__POSIX_VDISABLE = 0xff
  3769. const m__POSIX_VERSION = 200112
  3770. const m__SC_2_CHAR_TERM = 20
  3771. const m__SC_2_C_BIND = 18
  3772. const m__SC_2_C_DEV = 19
  3773. const m__SC_2_FORT_DEV = 21
  3774. const m__SC_2_FORT_RUN = 22
  3775. const m__SC_2_LOCALEDEF = 23
  3776. const m__SC_2_PBS = 59
  3777. const m__SC_2_PBS_ACCOUNTING = 60
  3778. const m__SC_2_PBS_CHECKPOINT = 61
  3779. const m__SC_2_PBS_LOCATE = 62
  3780. const m__SC_2_PBS_MESSAGE = 63
  3781. const m__SC_2_PBS_TRACK = 64
  3782. const m__SC_2_SW_DEV = 24
  3783. const m__SC_2_UPE = 25
  3784. const m__SC_2_VERSION = 17
  3785. const m__SC_ADVISORY_INFO = 65
  3786. const m__SC_AIO_LISTIO_MAX = 42
  3787. const m__SC_AIO_MAX = 43
  3788. const m__SC_AIO_PRIO_DELTA_MAX = 44
  3789. const m__SC_ARG_MAX = 1
  3790. const m__SC_ASYNCHRONOUS_IO = 28
  3791. const m__SC_ATEXIT_MAX = 107
  3792. const m__SC_BARRIERS = 66
  3793. const m__SC_BC_BASE_MAX = 9
  3794. const m__SC_BC_DIM_MAX = 10
  3795. const m__SC_BC_SCALE_MAX = 11
  3796. const m__SC_BC_STRING_MAX = 12
  3797. const m__SC_CHILD_MAX = 2
  3798. const m__SC_CLK_TCK = 3
  3799. const m__SC_CLOCK_SELECTION = 67
  3800. const m__SC_COLL_WEIGHTS_MAX = 13
  3801. const m__SC_CPUSET_SIZE = 122
  3802. const m__SC_CPUTIME = 68
  3803. const m__SC_DELAYTIMER_MAX = 45
  3804. const m__SC_EXPR_NEST_MAX = 14
  3805. const m__SC_FILE_LOCKING = 69
  3806. const m__SC_FSYNC = 38
  3807. const m__SC_GETGR_R_SIZE_MAX = 70
  3808. const m__SC_GETPW_R_SIZE_MAX = 71
  3809. const m__SC_HOST_NAME_MAX = 72
  3810. const m__SC_IOV_MAX = 56
  3811. const m__SC_IPV6 = 118
  3812. const m__SC_JOB_CONTROL = 6
  3813. const m__SC_LINE_MAX = 15
  3814. const m__SC_LOGIN_NAME_MAX = 73
  3815. const m__SC_MAPPED_FILES = 29
  3816. const m__SC_MEMLOCK = 30
  3817. const m__SC_MEMLOCK_RANGE = 31
  3818. const m__SC_MEMORY_PROTECTION = 32
  3819. const m__SC_MESSAGE_PASSING = 33
  3820. const m__SC_MONOTONIC_CLOCK = 74
  3821. const m__SC_MQ_OPEN_MAX = 46
  3822. const m__SC_MQ_PRIO_MAX = 75
  3823. const m__SC_NGROUPS_MAX = 4
  3824. const m__SC_NPROCESSORS_CONF = 57
  3825. const m__SC_NPROCESSORS_ONLN = 58
  3826. const m__SC_OPEN_MAX = 5
  3827. const m__SC_PAGESIZE = 47
  3828. const m__SC_PAGE_SIZE = "_SC_PAGESIZE"
  3829. const m__SC_PHYS_PAGES = 121
  3830. const m__SC_PRIORITIZED_IO = 34
  3831. const m__SC_PRIORITY_SCHEDULING = 35
  3832. const m__SC_RAW_SOCKETS = 119
  3833. const m__SC_READER_WRITER_LOCKS = 76
  3834. const m__SC_REALTIME_SIGNALS = 36
  3835. const m__SC_REGEXP = 77
  3836. const m__SC_RE_DUP_MAX = 16
  3837. const m__SC_RTSIG_MAX = 48
  3838. const m__SC_SAVED_IDS = 7
  3839. const m__SC_SEMAPHORES = 37
  3840. const m__SC_SEM_NSEMS_MAX = 49
  3841. const m__SC_SEM_VALUE_MAX = 50
  3842. const m__SC_SHARED_MEMORY_OBJECTS = 39
  3843. const m__SC_SHELL = 78
  3844. const m__SC_SIGQUEUE_MAX = 51
  3845. const m__SC_SPAWN = 79
  3846. const m__SC_SPIN_LOCKS = 80
  3847. const m__SC_SPORADIC_SERVER = 81
  3848. const m__SC_STREAM_MAX = 26
  3849. const m__SC_SYMLOOP_MAX = 120
  3850. const m__SC_SYNCHRONIZED_IO = 40
  3851. const m__SC_THREADS = 96
  3852. const m__SC_THREAD_ATTR_STACKADDR = 82
  3853. const m__SC_THREAD_ATTR_STACKSIZE = 83
  3854. const m__SC_THREAD_CPUTIME = 84
  3855. const m__SC_THREAD_DESTRUCTOR_ITERATIONS = 85
  3856. const m__SC_THREAD_KEYS_MAX = 86
  3857. const m__SC_THREAD_PRIORITY_SCHEDULING = 89
  3858. const m__SC_THREAD_PRIO_INHERIT = 87
  3859. const m__SC_THREAD_PRIO_PROTECT = 88
  3860. const m__SC_THREAD_PROCESS_SHARED = 90
  3861. const m__SC_THREAD_SAFE_FUNCTIONS = 91
  3862. const m__SC_THREAD_SPORADIC_SERVER = 92
  3863. const m__SC_THREAD_STACK_MIN = 93
  3864. const m__SC_THREAD_THREADS_MAX = 94
  3865. const m__SC_TIMEOUTS = 95
  3866. const m__SC_TIMERS = 41
  3867. const m__SC_TIMER_MAX = 52
  3868. const m__SC_TRACE = 97
  3869. const m__SC_TRACE_EVENT_FILTER = 98
  3870. const m__SC_TRACE_INHERIT = 99
  3871. const m__SC_TRACE_LOG = 100
  3872. const m__SC_TTY_NAME_MAX = 101
  3873. const m__SC_TYPED_MEMORY_OBJECTS = 102
  3874. const m__SC_TZNAME_MAX = 27
  3875. const m__SC_V6_ILP32_OFF32 = 103
  3876. const m__SC_V6_ILP32_OFFBIG = 104
  3877. const m__SC_V6_LP64_OFF64 = 105
  3878. const m__SC_V6_LPBIG_OFFBIG = 106
  3879. const m__SC_VERSION = 8
  3880. const m__SC_XOPEN_CRYPT = 108
  3881. const m__SC_XOPEN_ENH_I18N = 109
  3882. const m__SC_XOPEN_LEGACY = 110
  3883. const m__SC_XOPEN_REALTIME = 111
  3884. const m__SC_XOPEN_REALTIME_THREADS = 112
  3885. const m__SC_XOPEN_SHM = 113
  3886. const m__SC_XOPEN_STREAMS = 114
  3887. const m__SC_XOPEN_UNIX = 115
  3888. const m__SC_XOPEN_VERSION = 116
  3889. const m__SC_XOPEN_XCU_VERSION = 117
  3890. const m__V6_ILP32_OFFBIG = 0
  3891. const m__V6_LP64_OFF64 = 0
  3892. const m__XOPEN_SHM = 1
  3893. const m___S2OAP = 0x0001
  3894. const m___SALC = 0x4000
  3895. const m___SAPP = 0x0100
  3896. const m___SEOF = 0x0020
  3897. const m___SERR = 0x0040
  3898. const m___SIGN = 0x8000
  3899. const m___SLBF = 0x0001
  3900. const m___SMBF = 0x0080
  3901. const m___SMOD = 0x2000
  3902. const m___SNBF = 0x0002
  3903. const m___SNPT = 0x0800
  3904. const m___SOFF = 0x1000
  3905. const m___SOPT = 0x0400
  3906. const m___SRD = 0x0004
  3907. const m___SRW = 0x0010
  3908. const m___SSTR = 0x0200
  3909. const m___SWR = 0x0008
  3910. const m_st_atimespec = "st_atim"
  3911. const m_st_birthtimespec = "st_birthtim"
  3912. const m_st_ctimespec = "st_ctim"
  3913. const m_st_mtimespec = "st_mtim"
  3914. const m_stderr = "__stderrp"
  3915. const m_stdin = "__stdinp"
  3916. const m_stdout = "__stdoutp"
  3917. type Ttimezone = struct {
  3918. Ftz_minuteswest int32
  3919. Ftz_dsttime int32
  3920. }
  3921. type Tbintime = struct {
  3922. Fsec Ttime_t
  3923. Ffrac Tuint64_t
  3924. }
  3925. type Titimerval = struct {
  3926. Fit_interval Ttimeval
  3927. Fit_value Ttimeval
  3928. }
  3929. type Tclockinfo = struct {
  3930. Fhz int32
  3931. Ftick int32
  3932. Fspare int32
  3933. Fstathz int32
  3934. Fprofhz int32
  3935. }
  3936. type Ttm = struct {
  3937. Ftm_sec int32
  3938. Ftm_min int32
  3939. Ftm_hour int32
  3940. Ftm_mday int32
  3941. Ftm_mon int32
  3942. Ftm_year int32
  3943. Ftm_wday int32
  3944. Ftm_yday int32
  3945. Ftm_isdst int32
  3946. Ftm_gmtoff int64
  3947. Ftm_zone uintptr
  3948. }
  3949. type Tstat = struct {
  3950. Fst_dev Tdev_t
  3951. Fst_ino Tino_t
  3952. Fst_nlink Tnlink_t
  3953. Fst_mode Tmode_t
  3954. Fst_padding0 t__int16_t
  3955. Fst_uid Tuid_t
  3956. Fst_gid Tgid_t
  3957. Fst_padding1 t__int32_t
  3958. Fst_rdev Tdev_t
  3959. Fst_atim Ttimespec
  3960. Fst_mtim Ttimespec
  3961. Fst_ctim Ttimespec
  3962. Fst_birthtim Ttimespec
  3963. Fst_size Toff_t
  3964. Fst_blocks Tblkcnt_t
  3965. Fst_blksize Tblksize_t
  3966. Fst_flags Tfflags_t
  3967. Fst_gen t__uint64_t
  3968. Fst_spare [10]t__uint64_t
  3969. }
  3970. type Tflock = struct {
  3971. Fl_start Toff_t
  3972. Fl_len Toff_t
  3973. Fl_pid Tpid_t
  3974. Fl_type int16
  3975. Fl_whence int16
  3976. Fl_sysid int32
  3977. }
  3978. type t__oflock = struct {
  3979. Fl_start Toff_t
  3980. Fl_len Toff_t
  3981. Fl_pid Tpid_t
  3982. Fl_type int16
  3983. Fl_whence int16
  3984. }
  3985. type Tspacectl_range = struct {
  3986. Fr_offset Toff_t
  3987. Fr_len Toff_t
  3988. }
  3989. type Trune_t = int32
  3990. type Twchar_t = int32
  3991. type Tdiv_t = struct {
  3992. Fquot int32
  3993. Frem int32
  3994. }
  3995. type Tldiv_t = struct {
  3996. Fquot int64
  3997. Frem int64
  3998. }
  3999. type Tlldiv_t = struct {
  4000. Fquot int64
  4001. Frem int64
  4002. }
  4003. type Tconstraint_handler_t = uintptr
  4004. type Tfpos_t = int64
  4005. type Tva_list = uintptr
  4006. type t__sbuf = struct {
  4007. F_base uintptr
  4008. F_size int32
  4009. }
  4010. type t__sFILE = struct {
  4011. F_p uintptr
  4012. F_r int32
  4013. F_w int32
  4014. F_flags int16
  4015. F_file int16
  4016. F_bf t__sbuf
  4017. F_lbfsize int32
  4018. F_cookie uintptr
  4019. F_close uintptr
  4020. F_read uintptr
  4021. F_seek uintptr
  4022. F_write uintptr
  4023. F_ub t__sbuf
  4024. F_up uintptr
  4025. F_ur int32
  4026. F_ubuf [3]uint8
  4027. F_nbuf [1]uint8
  4028. F_lb t__sbuf
  4029. F_blksize int32
  4030. F_offset Tfpos_t
  4031. F_fl_mutex uintptr
  4032. F_fl_owner uintptr
  4033. F_fl_count int32
  4034. F_orientation int32
  4035. F_mbstate t__mbstate_t
  4036. F_flags2 int32
  4037. }
  4038. type TFILE = struct {
  4039. F_p uintptr
  4040. F_r int32
  4041. F_w int32
  4042. F_flags int16
  4043. F_file int16
  4044. F_bf t__sbuf
  4045. F_lbfsize int32
  4046. F_cookie uintptr
  4047. F_close uintptr
  4048. F_read uintptr
  4049. F_seek uintptr
  4050. F_write uintptr
  4051. F_ub t__sbuf
  4052. F_up uintptr
  4053. F_ur int32
  4054. F_ubuf [3]uint8
  4055. F_nbuf [1]uint8
  4056. F_lb t__sbuf
  4057. F_blksize int32
  4058. F_offset Tfpos_t
  4059. F_fl_mutex uintptr
  4060. F_fl_owner uintptr
  4061. F_fl_count int32
  4062. F_orientation int32
  4063. F_mbstate t__mbstate_t
  4064. F_flags2 int32
  4065. }
  4066. type Tcookie_io_functions_t = struct {
  4067. Fread uintptr
  4068. Fwrite uintptr
  4069. Fseek uintptr
  4070. Fclose1 uintptr
  4071. }
  4072. type Tcrypt_data = struct {
  4073. Finitialized int32
  4074. F__buf [256]int8
  4075. }
  4076. // C documentation
  4077. //
  4078. // /* ARGSUSED */
  4079. func XMD2End(tls *libc.TLS, ctx uintptr, buf uintptr) (r uintptr) {
  4080. bp := tls.Alloc(16)
  4081. defer tls.Free(16)
  4082. var i int32
  4083. var v1 uintptr
  4084. var v2 bool
  4085. var _ /* digest at bp+0 */ [16]Tuint8_t
  4086. _, _, _ = i, v1, v2
  4087. if v2 = buf == libc.UintptrFromInt32(0); v2 {
  4088. v1 = libc.Xmalloc(tls, uint64(m_MD2_DIGEST_STRING_LENGTH))
  4089. buf = v1
  4090. }
  4091. if v2 && v1 == libc.UintptrFromInt32(0) {
  4092. return libc.UintptrFromInt32(0)
  4093. }
  4094. XMD2Final(tls, bp, ctx)
  4095. i = 0
  4096. for {
  4097. if !(i < int32(m_MD2_DIGEST_LENGTH)) {
  4098. break
  4099. }
  4100. *(*int8)(unsafe.Pointer(buf + uintptr(i+i))) = _hex[libc.Int32FromUint8((*(*[16]Tuint8_t)(unsafe.Pointer(bp)))[i])>>int32(4)]
  4101. *(*int8)(unsafe.Pointer(buf + uintptr(i+i+int32(1)))) = _hex[libc.Int32FromUint8((*(*[16]Tuint8_t)(unsafe.Pointer(bp)))[i])&int32(0x0f)]
  4102. goto _3
  4103. _3:
  4104. ;
  4105. i++
  4106. }
  4107. *(*int8)(unsafe.Pointer(buf + uintptr(i+i))) = int8('\000')
  4108. libc.Xmemset(tls, bp, 0, uint64(16))
  4109. return buf
  4110. }
  4111. var _hex = [17]int8{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}
  4112. func XMD2FileChunk(tls *libc.TLS, filename uintptr, buf uintptr, off Toff_t, len1 Toff_t) (r uintptr) {
  4113. bp := tls.Alloc(1328)
  4114. defer tls.Free(1328)
  4115. var fd, save_errno, v1 int32
  4116. var nr, v2 Tssize_t
  4117. var v3 int64
  4118. var v4 bool
  4119. var v5 uintptr
  4120. var _ /* buffer at bp+224 */ [1024]Tuint8_t
  4121. var _ /* ctx at bp+1248 */ TMD2_CTX
  4122. var _ /* sb at bp+0 */ Tstat
  4123. _, _, _, _, _, _, _, _ = fd, nr, save_errno, v1, v2, v3, v4, v5
  4124. XMD2Init(tls, bp+1248)
  4125. v1 = libc.Xopen(tls, filename, m_O_RDONLY, 0)
  4126. fd = v1
  4127. if v1 < 0 {
  4128. return libc.UintptrFromInt32(0)
  4129. }
  4130. if len1 == 0 {
  4131. if libc.Xfstat(tls, fd, bp) == -int32(1) {
  4132. libc.Xclose(tls, fd)
  4133. return libc.UintptrFromInt32(0)
  4134. }
  4135. len1 = (*(*Tstat)(unsafe.Pointer(bp))).Fst_size
  4136. }
  4137. if off > 0 && libc.Xlseek(tls, fd, off, m_SEEK_SET) < 0 {
  4138. libc.Xclose(tls, fd)
  4139. return libc.UintptrFromInt32(0)
  4140. }
  4141. for {
  4142. if libc.Int64FromInt64(1024) < len1 {
  4143. v3 = libc.Int64FromInt64(1024)
  4144. } else {
  4145. v3 = len1
  4146. }
  4147. v2 = libc.Xread(tls, fd, bp+224, libc.Uint64FromInt64(v3))
  4148. nr = v2
  4149. if !(v2 > 0) {
  4150. break
  4151. }
  4152. XMD2Update(tls, bp+1248, bp+224, uint32(libc.Uint64FromInt64(nr)))
  4153. if v4 = len1 > 0; v4 {
  4154. len1 -= nr
  4155. }
  4156. if v4 && len1 == 0 {
  4157. break
  4158. }
  4159. }
  4160. save_errno = *(*int32)(unsafe.Pointer(libc.X__error(tls)))
  4161. libc.Xclose(tls, fd)
  4162. *(*int32)(unsafe.Pointer(libc.X__error(tls))) = save_errno
  4163. if nr < 0 {
  4164. v5 = libc.UintptrFromInt32(0)
  4165. } else {
  4166. v5 = XMD2End(tls, bp+1248, buf)
  4167. }
  4168. return v5
  4169. }
  4170. func XMD2File(tls *libc.TLS, filename uintptr, buf uintptr) (r uintptr) {
  4171. return XMD2FileChunk(tls, filename, buf, libc.Int64FromInt32(0), libc.Int64FromInt32(0))
  4172. }
  4173. func XMD2Data(tls *libc.TLS, data uintptr, len1 Tsize_t, buf uintptr) (r uintptr) {
  4174. bp := tls.Alloc(80)
  4175. defer tls.Free(80)
  4176. var _ /* ctx at bp+0 */ TMD2_CTX
  4177. XMD2Init(tls, bp)
  4178. XMD2Update(tls, bp, data, uint32(len1))
  4179. return XMD2End(tls, bp, buf)
  4180. }
  4181. // C documentation
  4182. //
  4183. // /* ARGSUSED */
  4184. func XMD4End(tls *libc.TLS, ctx uintptr, buf uintptr) (r uintptr) {
  4185. bp := tls.Alloc(16)
  4186. defer tls.Free(16)
  4187. var i int32
  4188. var v1 uintptr
  4189. var v2 bool
  4190. var _ /* digest at bp+0 */ [16]Tuint8_t
  4191. _, _, _ = i, v1, v2
  4192. if v2 = buf == libc.UintptrFromInt32(0); v2 {
  4193. v1 = libc.Xmalloc(tls, libc.Uint64FromInt32(libc.Int32FromInt32(m_MD4_DIGEST_LENGTH)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))
  4194. buf = v1
  4195. }
  4196. if v2 && v1 == libc.UintptrFromInt32(0) {
  4197. return libc.UintptrFromInt32(0)
  4198. }
  4199. XMD4Final(tls, bp, ctx)
  4200. i = 0
  4201. for {
  4202. if !(i < int32(m_MD4_DIGEST_LENGTH)) {
  4203. break
  4204. }
  4205. *(*int8)(unsafe.Pointer(buf + uintptr(i+i))) = _hex1[libc.Int32FromUint8((*(*[16]Tuint8_t)(unsafe.Pointer(bp)))[i])>>int32(4)]
  4206. *(*int8)(unsafe.Pointer(buf + uintptr(i+i+int32(1)))) = _hex1[libc.Int32FromUint8((*(*[16]Tuint8_t)(unsafe.Pointer(bp)))[i])&int32(0x0f)]
  4207. goto _3
  4208. _3:
  4209. ;
  4210. i++
  4211. }
  4212. *(*int8)(unsafe.Pointer(buf + uintptr(i+i))) = int8('\000')
  4213. libc.Xmemset(tls, bp, 0, uint64(16))
  4214. return buf
  4215. }
  4216. var _hex1 = [17]int8{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}
  4217. func XMD4FileChunk(tls *libc.TLS, filename uintptr, buf uintptr, off Toff_t, len1 Toff_t) (r uintptr) {
  4218. bp := tls.Alloc(1344)
  4219. defer tls.Free(1344)
  4220. var fd, save_errno, v1 int32
  4221. var nr, v2 Tssize_t
  4222. var v3 int64
  4223. var v4 bool
  4224. var v5 uintptr
  4225. var _ /* buffer at bp+224 */ [1024]Tuint8_t
  4226. var _ /* ctx at bp+1248 */ TMD4_CTX
  4227. var _ /* sb at bp+0 */ Tstat
  4228. _, _, _, _, _, _, _, _ = fd, nr, save_errno, v1, v2, v3, v4, v5
  4229. XMD4Init(tls, bp+1248)
  4230. v1 = libc.Xopen(tls, filename, m_O_RDONLY, 0)
  4231. fd = v1
  4232. if v1 < 0 {
  4233. return libc.UintptrFromInt32(0)
  4234. }
  4235. if len1 == 0 {
  4236. if libc.Xfstat(tls, fd, bp) == -int32(1) {
  4237. libc.Xclose(tls, fd)
  4238. return libc.UintptrFromInt32(0)
  4239. }
  4240. len1 = (*(*Tstat)(unsafe.Pointer(bp))).Fst_size
  4241. }
  4242. if off > 0 && libc.Xlseek(tls, fd, off, m_SEEK_SET) < 0 {
  4243. libc.Xclose(tls, fd)
  4244. return libc.UintptrFromInt32(0)
  4245. }
  4246. for {
  4247. if libc.Int64FromInt64(1024) < len1 {
  4248. v3 = libc.Int64FromInt64(1024)
  4249. } else {
  4250. v3 = len1
  4251. }
  4252. v2 = libc.Xread(tls, fd, bp+224, libc.Uint64FromInt64(v3))
  4253. nr = v2
  4254. if !(v2 > 0) {
  4255. break
  4256. }
  4257. XMD4Update(tls, bp+1248, bp+224, libc.Uint64FromInt64(nr))
  4258. if v4 = len1 > 0; v4 {
  4259. len1 -= nr
  4260. }
  4261. if v4 && len1 == 0 {
  4262. break
  4263. }
  4264. }
  4265. save_errno = *(*int32)(unsafe.Pointer(libc.X__error(tls)))
  4266. libc.Xclose(tls, fd)
  4267. *(*int32)(unsafe.Pointer(libc.X__error(tls))) = save_errno
  4268. if nr < 0 {
  4269. v5 = libc.UintptrFromInt32(0)
  4270. } else {
  4271. v5 = XMD4End(tls, bp+1248, buf)
  4272. }
  4273. return v5
  4274. }
  4275. func XMD4File(tls *libc.TLS, filename uintptr, buf uintptr) (r uintptr) {
  4276. return XMD4FileChunk(tls, filename, buf, libc.Int64FromInt32(0), libc.Int64FromInt32(0))
  4277. }
  4278. func XMD4Data(tls *libc.TLS, data uintptr, len1 Tsize_t, buf uintptr) (r uintptr) {
  4279. bp := tls.Alloc(96)
  4280. defer tls.Free(96)
  4281. var _ /* ctx at bp+0 */ TMD4_CTX
  4282. XMD4Init(tls, bp)
  4283. XMD4Update(tls, bp, data, len1)
  4284. return XMD4End(tls, bp, buf)
  4285. }
  4286. /* Avoid polluting the namespace. Even though this makes this usage
  4287. * implementation-specific, defining it unconditionally should not be
  4288. * a problem, and better than possibly breaking unexpecting code. */
  4289. // C documentation
  4290. //
  4291. // /* ARGSUSED */
  4292. func XMD5End(tls *libc.TLS, ctx uintptr, buf uintptr) (r uintptr) {
  4293. bp := tls.Alloc(16)
  4294. defer tls.Free(16)
  4295. var i int32
  4296. var v1 uintptr
  4297. var v2 bool
  4298. var _ /* digest at bp+0 */ [16]Tuint8_t
  4299. _, _, _ = i, v1, v2
  4300. if v2 = buf == libc.UintptrFromInt32(0); v2 {
  4301. v1 = libc.Xmalloc(tls, libc.Uint64FromInt32(libc.Int32FromInt32(m_MD5_DIGEST_LENGTH)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))
  4302. buf = v1
  4303. }
  4304. if v2 && v1 == libc.UintptrFromInt32(0) {
  4305. return libc.UintptrFromInt32(0)
  4306. }
  4307. XMD5Final(tls, bp, ctx)
  4308. i = 0
  4309. for {
  4310. if !(i < int32(m_MD5_DIGEST_LENGTH)) {
  4311. break
  4312. }
  4313. *(*int8)(unsafe.Pointer(buf + uintptr(i+i))) = _hex2[libc.Int32FromUint8((*(*[16]Tuint8_t)(unsafe.Pointer(bp)))[i])>>int32(4)]
  4314. *(*int8)(unsafe.Pointer(buf + uintptr(i+i+int32(1)))) = _hex2[libc.Int32FromUint8((*(*[16]Tuint8_t)(unsafe.Pointer(bp)))[i])&int32(0x0f)]
  4315. goto _3
  4316. _3:
  4317. ;
  4318. i++
  4319. }
  4320. *(*int8)(unsafe.Pointer(buf + uintptr(i+i))) = int8('\000')
  4321. libc.Xmemset(tls, bp, 0, uint64(16))
  4322. return buf
  4323. }
  4324. var _hex2 = [17]int8{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}
  4325. func XMD5FileChunk(tls *libc.TLS, filename uintptr, buf uintptr, off Toff_t, len1 Toff_t) (r uintptr) {
  4326. bp := tls.Alloc(1344)
  4327. defer tls.Free(1344)
  4328. var fd, save_errno, v1 int32
  4329. var nr, v2 Tssize_t
  4330. var v3 int64
  4331. var v4 bool
  4332. var v5 uintptr
  4333. var _ /* buffer at bp+224 */ [1024]Tuint8_t
  4334. var _ /* ctx at bp+1248 */ TMD5_CTX
  4335. var _ /* sb at bp+0 */ Tstat
  4336. _, _, _, _, _, _, _, _ = fd, nr, save_errno, v1, v2, v3, v4, v5
  4337. XMD5Init(tls, bp+1248)
  4338. v1 = libc.Xopen(tls, filename, m_O_RDONLY, 0)
  4339. fd = v1
  4340. if v1 < 0 {
  4341. return libc.UintptrFromInt32(0)
  4342. }
  4343. if len1 == 0 {
  4344. if libc.Xfstat(tls, fd, bp) == -int32(1) {
  4345. libc.Xclose(tls, fd)
  4346. return libc.UintptrFromInt32(0)
  4347. }
  4348. len1 = (*(*Tstat)(unsafe.Pointer(bp))).Fst_size
  4349. }
  4350. if off > 0 && libc.Xlseek(tls, fd, off, m_SEEK_SET) < 0 {
  4351. libc.Xclose(tls, fd)
  4352. return libc.UintptrFromInt32(0)
  4353. }
  4354. for {
  4355. if libc.Int64FromInt64(1024) < len1 {
  4356. v3 = libc.Int64FromInt64(1024)
  4357. } else {
  4358. v3 = len1
  4359. }
  4360. v2 = libc.Xread(tls, fd, bp+224, libc.Uint64FromInt64(v3))
  4361. nr = v2
  4362. if !(v2 > 0) {
  4363. break
  4364. }
  4365. XMD5Update(tls, bp+1248, bp+224, libc.Uint64FromInt64(nr))
  4366. if v4 = len1 > 0; v4 {
  4367. len1 -= nr
  4368. }
  4369. if v4 && len1 == 0 {
  4370. break
  4371. }
  4372. }
  4373. save_errno = *(*int32)(unsafe.Pointer(libc.X__error(tls)))
  4374. libc.Xclose(tls, fd)
  4375. *(*int32)(unsafe.Pointer(libc.X__error(tls))) = save_errno
  4376. if nr < 0 {
  4377. v5 = libc.UintptrFromInt32(0)
  4378. } else {
  4379. v5 = XMD5End(tls, bp+1248, buf)
  4380. }
  4381. return v5
  4382. }
  4383. func XMD5File(tls *libc.TLS, filename uintptr, buf uintptr) (r uintptr) {
  4384. return XMD5FileChunk(tls, filename, buf, libc.Int64FromInt32(0), libc.Int64FromInt32(0))
  4385. }
  4386. func XMD5Data(tls *libc.TLS, data uintptr, len1 Tsize_t, buf uintptr) (r uintptr) {
  4387. bp := tls.Alloc(96)
  4388. defer tls.Free(96)
  4389. var _ /* ctx at bp+0 */ TMD5_CTX
  4390. XMD5Init(tls, bp)
  4391. XMD5Update(tls, bp, data, len1)
  4392. return XMD5End(tls, bp, buf)
  4393. }
  4394. // C documentation
  4395. //
  4396. // /* ARGSUSED */
  4397. func XRMD160End(tls *libc.TLS, ctx uintptr, buf uintptr) (r uintptr) {
  4398. bp := tls.Alloc(32)
  4399. defer tls.Free(32)
  4400. var i int32
  4401. var v1 uintptr
  4402. var v2 bool
  4403. var _ /* digest at bp+0 */ [20]Tuint8_t
  4404. _, _, _ = i, v1, v2
  4405. if v2 = buf == libc.UintptrFromInt32(0); v2 {
  4406. v1 = libc.Xmalloc(tls, libc.Uint64FromInt32(libc.Int32FromInt32(m_RMD160_DIGEST_LENGTH)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))
  4407. buf = v1
  4408. }
  4409. if v2 && v1 == libc.UintptrFromInt32(0) {
  4410. return libc.UintptrFromInt32(0)
  4411. }
  4412. XRMD160Final(tls, bp, ctx)
  4413. i = 0
  4414. for {
  4415. if !(i < int32(m_RMD160_DIGEST_LENGTH)) {
  4416. break
  4417. }
  4418. *(*int8)(unsafe.Pointer(buf + uintptr(i+i))) = _hex3[libc.Int32FromUint8((*(*[20]Tuint8_t)(unsafe.Pointer(bp)))[i])>>int32(4)]
  4419. *(*int8)(unsafe.Pointer(buf + uintptr(i+i+int32(1)))) = _hex3[libc.Int32FromUint8((*(*[20]Tuint8_t)(unsafe.Pointer(bp)))[i])&int32(0x0f)]
  4420. goto _3
  4421. _3:
  4422. ;
  4423. i++
  4424. }
  4425. *(*int8)(unsafe.Pointer(buf + uintptr(i+i))) = int8('\000')
  4426. libc.Xmemset(tls, bp, 0, uint64(20))
  4427. return buf
  4428. }
  4429. var _hex3 = [17]int8{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}
  4430. func XRMD160FileChunk(tls *libc.TLS, filename uintptr, buf uintptr, off Toff_t, len1 Toff_t) (r uintptr) {
  4431. bp := tls.Alloc(1344)
  4432. defer tls.Free(1344)
  4433. var fd, save_errno, v1 int32
  4434. var nr, v2 Tssize_t
  4435. var v3 int64
  4436. var v4 bool
  4437. var v5 uintptr
  4438. var _ /* buffer at bp+224 */ [1024]Tuint8_t
  4439. var _ /* ctx at bp+1248 */ TRMD160_CTX
  4440. var _ /* sb at bp+0 */ Tstat
  4441. _, _, _, _, _, _, _, _ = fd, nr, save_errno, v1, v2, v3, v4, v5
  4442. XRMD160Init(tls, bp+1248)
  4443. v1 = libc.Xopen(tls, filename, m_O_RDONLY, 0)
  4444. fd = v1
  4445. if v1 < 0 {
  4446. return libc.UintptrFromInt32(0)
  4447. }
  4448. if len1 == 0 {
  4449. if libc.Xfstat(tls, fd, bp) == -int32(1) {
  4450. libc.Xclose(tls, fd)
  4451. return libc.UintptrFromInt32(0)
  4452. }
  4453. len1 = (*(*Tstat)(unsafe.Pointer(bp))).Fst_size
  4454. }
  4455. if off > 0 && libc.Xlseek(tls, fd, off, m_SEEK_SET) < 0 {
  4456. libc.Xclose(tls, fd)
  4457. return libc.UintptrFromInt32(0)
  4458. }
  4459. for {
  4460. if libc.Int64FromInt64(1024) < len1 {
  4461. v3 = libc.Int64FromInt64(1024)
  4462. } else {
  4463. v3 = len1
  4464. }
  4465. v2 = libc.Xread(tls, fd, bp+224, libc.Uint64FromInt64(v3))
  4466. nr = v2
  4467. if !(v2 > 0) {
  4468. break
  4469. }
  4470. XRMD160Update(tls, bp+1248, bp+224, libc.Uint64FromInt64(nr))
  4471. if v4 = len1 > 0; v4 {
  4472. len1 -= nr
  4473. }
  4474. if v4 && len1 == 0 {
  4475. break
  4476. }
  4477. }
  4478. save_errno = *(*int32)(unsafe.Pointer(libc.X__error(tls)))
  4479. libc.Xclose(tls, fd)
  4480. *(*int32)(unsafe.Pointer(libc.X__error(tls))) = save_errno
  4481. if nr < 0 {
  4482. v5 = libc.UintptrFromInt32(0)
  4483. } else {
  4484. v5 = XRMD160End(tls, bp+1248, buf)
  4485. }
  4486. return v5
  4487. }
  4488. func XRMD160File(tls *libc.TLS, filename uintptr, buf uintptr) (r uintptr) {
  4489. return XRMD160FileChunk(tls, filename, buf, libc.Int64FromInt32(0), libc.Int64FromInt32(0))
  4490. }
  4491. func XRMD160Data(tls *libc.TLS, data uintptr, len1 Tsize_t, buf uintptr) (r uintptr) {
  4492. bp := tls.Alloc(96)
  4493. defer tls.Free(96)
  4494. var _ /* ctx at bp+0 */ TRMD160_CTX
  4495. XRMD160Init(tls, bp)
  4496. XRMD160Update(tls, bp, data, len1)
  4497. return XRMD160End(tls, bp, buf)
  4498. }
  4499. // C documentation
  4500. //
  4501. // /* ARGSUSED */
  4502. func XSHA1End(tls *libc.TLS, ctx uintptr, buf uintptr) (r uintptr) {
  4503. bp := tls.Alloc(32)
  4504. defer tls.Free(32)
  4505. var i int32
  4506. var v1 uintptr
  4507. var v2 bool
  4508. var _ /* digest at bp+0 */ [20]Tuint8_t
  4509. _, _, _ = i, v1, v2
  4510. if v2 = buf == libc.UintptrFromInt32(0); v2 {
  4511. v1 = libc.Xmalloc(tls, libc.Uint64FromInt32(libc.Int32FromInt32(m_SHA1_DIGEST_LENGTH)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))
  4512. buf = v1
  4513. }
  4514. if v2 && v1 == libc.UintptrFromInt32(0) {
  4515. return libc.UintptrFromInt32(0)
  4516. }
  4517. XSHA1Final(tls, bp, ctx)
  4518. i = 0
  4519. for {
  4520. if !(i < int32(m_SHA1_DIGEST_LENGTH)) {
  4521. break
  4522. }
  4523. *(*int8)(unsafe.Pointer(buf + uintptr(i+i))) = _hex4[libc.Int32FromUint8((*(*[20]Tuint8_t)(unsafe.Pointer(bp)))[i])>>int32(4)]
  4524. *(*int8)(unsafe.Pointer(buf + uintptr(i+i+int32(1)))) = _hex4[libc.Int32FromUint8((*(*[20]Tuint8_t)(unsafe.Pointer(bp)))[i])&int32(0x0f)]
  4525. goto _3
  4526. _3:
  4527. ;
  4528. i++
  4529. }
  4530. *(*int8)(unsafe.Pointer(buf + uintptr(i+i))) = int8('\000')
  4531. libc.Xmemset(tls, bp, 0, uint64(20))
  4532. return buf
  4533. }
  4534. var _hex4 = [17]int8{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}
  4535. func XSHA1FileChunk(tls *libc.TLS, filename uintptr, buf uintptr, off Toff_t, len1 Toff_t) (r uintptr) {
  4536. bp := tls.Alloc(1344)
  4537. defer tls.Free(1344)
  4538. var fd, save_errno, v1 int32
  4539. var nr, v2 Tssize_t
  4540. var v3 int64
  4541. var v4 bool
  4542. var v5 uintptr
  4543. var _ /* buffer at bp+224 */ [1024]Tuint8_t
  4544. var _ /* ctx at bp+1248 */ TSHA1_CTX
  4545. var _ /* sb at bp+0 */ Tstat
  4546. _, _, _, _, _, _, _, _ = fd, nr, save_errno, v1, v2, v3, v4, v5
  4547. XSHA1Init(tls, bp+1248)
  4548. v1 = libc.Xopen(tls, filename, m_O_RDONLY, 0)
  4549. fd = v1
  4550. if v1 < 0 {
  4551. return libc.UintptrFromInt32(0)
  4552. }
  4553. if len1 == 0 {
  4554. if libc.Xfstat(tls, fd, bp) == -int32(1) {
  4555. libc.Xclose(tls, fd)
  4556. return libc.UintptrFromInt32(0)
  4557. }
  4558. len1 = (*(*Tstat)(unsafe.Pointer(bp))).Fst_size
  4559. }
  4560. if off > 0 && libc.Xlseek(tls, fd, off, m_SEEK_SET) < 0 {
  4561. libc.Xclose(tls, fd)
  4562. return libc.UintptrFromInt32(0)
  4563. }
  4564. for {
  4565. if libc.Int64FromInt64(1024) < len1 {
  4566. v3 = libc.Int64FromInt64(1024)
  4567. } else {
  4568. v3 = len1
  4569. }
  4570. v2 = libc.Xread(tls, fd, bp+224, libc.Uint64FromInt64(v3))
  4571. nr = v2
  4572. if !(v2 > 0) {
  4573. break
  4574. }
  4575. XSHA1Update(tls, bp+1248, bp+224, libc.Uint64FromInt64(nr))
  4576. if v4 = len1 > 0; v4 {
  4577. len1 -= nr
  4578. }
  4579. if v4 && len1 == 0 {
  4580. break
  4581. }
  4582. }
  4583. save_errno = *(*int32)(unsafe.Pointer(libc.X__error(tls)))
  4584. libc.Xclose(tls, fd)
  4585. *(*int32)(unsafe.Pointer(libc.X__error(tls))) = save_errno
  4586. if nr < 0 {
  4587. v5 = libc.UintptrFromInt32(0)
  4588. } else {
  4589. v5 = XSHA1End(tls, bp+1248, buf)
  4590. }
  4591. return v5
  4592. }
  4593. func XSHA1File(tls *libc.TLS, filename uintptr, buf uintptr) (r uintptr) {
  4594. return XSHA1FileChunk(tls, filename, buf, libc.Int64FromInt32(0), libc.Int64FromInt32(0))
  4595. }
  4596. func XSHA1Data(tls *libc.TLS, data uintptr, len1 Tsize_t, buf uintptr) (r uintptr) {
  4597. bp := tls.Alloc(96)
  4598. defer tls.Free(96)
  4599. var _ /* ctx at bp+0 */ TSHA1_CTX
  4600. XSHA1Init(tls, bp)
  4601. XSHA1Update(tls, bp, data, len1)
  4602. return XSHA1End(tls, bp, buf)
  4603. }
  4604. // C documentation
  4605. //
  4606. // /* ARGSUSED */
  4607. func XSHA256End(tls *libc.TLS, ctx uintptr, buf uintptr) (r uintptr) {
  4608. bp := tls.Alloc(32)
  4609. defer tls.Free(32)
  4610. var i int32
  4611. var v1 uintptr
  4612. var v2 bool
  4613. var _ /* digest at bp+0 */ [32]Tuint8_t
  4614. _, _, _ = i, v1, v2
  4615. if v2 = buf == libc.UintptrFromInt32(0); v2 {
  4616. v1 = libc.Xmalloc(tls, libc.Uint64FromInt32(libc.Int32FromInt32(m_SHA256_DIGEST_LENGTH)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))
  4617. buf = v1
  4618. }
  4619. if v2 && v1 == libc.UintptrFromInt32(0) {
  4620. return libc.UintptrFromInt32(0)
  4621. }
  4622. XSHA256Final(tls, bp, ctx)
  4623. i = 0
  4624. for {
  4625. if !(i < int32(m_SHA256_DIGEST_LENGTH)) {
  4626. break
  4627. }
  4628. *(*int8)(unsafe.Pointer(buf + uintptr(i+i))) = _hex5[libc.Int32FromUint8((*(*[32]Tuint8_t)(unsafe.Pointer(bp)))[i])>>int32(4)]
  4629. *(*int8)(unsafe.Pointer(buf + uintptr(i+i+int32(1)))) = _hex5[libc.Int32FromUint8((*(*[32]Tuint8_t)(unsafe.Pointer(bp)))[i])&int32(0x0f)]
  4630. goto _3
  4631. _3:
  4632. ;
  4633. i++
  4634. }
  4635. *(*int8)(unsafe.Pointer(buf + uintptr(i+i))) = int8('\000')
  4636. libc.Xmemset(tls, bp, 0, uint64(32))
  4637. return buf
  4638. }
  4639. var _hex5 = [17]int8{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}
  4640. func XSHA256FileChunk(tls *libc.TLS, filename uintptr, buf uintptr, off Toff_t, len1 Toff_t) (r uintptr) {
  4641. bp := tls.Alloc(1456)
  4642. defer tls.Free(1456)
  4643. var fd, save_errno, v1 int32
  4644. var nr, v2 Tssize_t
  4645. var v3 int64
  4646. var v4 bool
  4647. var v5 uintptr
  4648. var _ /* buffer at bp+224 */ [1024]Tuint8_t
  4649. var _ /* ctx at bp+1248 */ TSHA2_CTX
  4650. var _ /* sb at bp+0 */ Tstat
  4651. _, _, _, _, _, _, _, _ = fd, nr, save_errno, v1, v2, v3, v4, v5
  4652. XSHA256Init(tls, bp+1248)
  4653. v1 = libc.Xopen(tls, filename, m_O_RDONLY, 0)
  4654. fd = v1
  4655. if v1 < 0 {
  4656. return libc.UintptrFromInt32(0)
  4657. }
  4658. if len1 == 0 {
  4659. if libc.Xfstat(tls, fd, bp) == -int32(1) {
  4660. libc.Xclose(tls, fd)
  4661. return libc.UintptrFromInt32(0)
  4662. }
  4663. len1 = (*(*Tstat)(unsafe.Pointer(bp))).Fst_size
  4664. }
  4665. if off > 0 && libc.Xlseek(tls, fd, off, m_SEEK_SET) < 0 {
  4666. libc.Xclose(tls, fd)
  4667. return libc.UintptrFromInt32(0)
  4668. }
  4669. for {
  4670. if libc.Int64FromInt64(1024) < len1 {
  4671. v3 = libc.Int64FromInt64(1024)
  4672. } else {
  4673. v3 = len1
  4674. }
  4675. v2 = libc.Xread(tls, fd, bp+224, libc.Uint64FromInt64(v3))
  4676. nr = v2
  4677. if !(v2 > 0) {
  4678. break
  4679. }
  4680. XSHA256Update(tls, bp+1248, bp+224, libc.Uint64FromInt64(nr))
  4681. if v4 = len1 > 0; v4 {
  4682. len1 -= nr
  4683. }
  4684. if v4 && len1 == 0 {
  4685. break
  4686. }
  4687. }
  4688. save_errno = *(*int32)(unsafe.Pointer(libc.X__error(tls)))
  4689. libc.Xclose(tls, fd)
  4690. *(*int32)(unsafe.Pointer(libc.X__error(tls))) = save_errno
  4691. if nr < 0 {
  4692. v5 = libc.UintptrFromInt32(0)
  4693. } else {
  4694. v5 = XSHA256End(tls, bp+1248, buf)
  4695. }
  4696. return v5
  4697. }
  4698. func XSHA256File(tls *libc.TLS, filename uintptr, buf uintptr) (r uintptr) {
  4699. return XSHA256FileChunk(tls, filename, buf, libc.Int64FromInt32(0), libc.Int64FromInt32(0))
  4700. }
  4701. func XSHA256Data(tls *libc.TLS, data uintptr, len1 Tsize_t, buf uintptr) (r uintptr) {
  4702. bp := tls.Alloc(208)
  4703. defer tls.Free(208)
  4704. var _ /* ctx at bp+0 */ TSHA2_CTX
  4705. XSHA256Init(tls, bp)
  4706. XSHA256Update(tls, bp, data, len1)
  4707. return XSHA256End(tls, bp, buf)
  4708. }
  4709. // C documentation
  4710. //
  4711. // /* ARGSUSED */
  4712. func XSHA384End(tls *libc.TLS, ctx uintptr, buf uintptr) (r uintptr) {
  4713. bp := tls.Alloc(48)
  4714. defer tls.Free(48)
  4715. var i int32
  4716. var v1 uintptr
  4717. var v2 bool
  4718. var _ /* digest at bp+0 */ [48]Tuint8_t
  4719. _, _, _ = i, v1, v2
  4720. if v2 = buf == libc.UintptrFromInt32(0); v2 {
  4721. v1 = libc.Xmalloc(tls, libc.Uint64FromInt32(libc.Int32FromInt32(m_SHA384_DIGEST_LENGTH)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))
  4722. buf = v1
  4723. }
  4724. if v2 && v1 == libc.UintptrFromInt32(0) {
  4725. return libc.UintptrFromInt32(0)
  4726. }
  4727. XSHA384Final(tls, bp, ctx)
  4728. i = 0
  4729. for {
  4730. if !(i < int32(m_SHA384_DIGEST_LENGTH)) {
  4731. break
  4732. }
  4733. *(*int8)(unsafe.Pointer(buf + uintptr(i+i))) = _hex6[libc.Int32FromUint8((*(*[48]Tuint8_t)(unsafe.Pointer(bp)))[i])>>int32(4)]
  4734. *(*int8)(unsafe.Pointer(buf + uintptr(i+i+int32(1)))) = _hex6[libc.Int32FromUint8((*(*[48]Tuint8_t)(unsafe.Pointer(bp)))[i])&int32(0x0f)]
  4735. goto _3
  4736. _3:
  4737. ;
  4738. i++
  4739. }
  4740. *(*int8)(unsafe.Pointer(buf + uintptr(i+i))) = int8('\000')
  4741. libc.Xmemset(tls, bp, 0, uint64(48))
  4742. return buf
  4743. }
  4744. var _hex6 = [17]int8{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}
  4745. func XSHA384FileChunk(tls *libc.TLS, filename uintptr, buf uintptr, off Toff_t, len1 Toff_t) (r uintptr) {
  4746. bp := tls.Alloc(1456)
  4747. defer tls.Free(1456)
  4748. var fd, save_errno, v1 int32
  4749. var nr, v2 Tssize_t
  4750. var v3 int64
  4751. var v4 bool
  4752. var v5 uintptr
  4753. var _ /* buffer at bp+224 */ [1024]Tuint8_t
  4754. var _ /* ctx at bp+1248 */ TSHA2_CTX
  4755. var _ /* sb at bp+0 */ Tstat
  4756. _, _, _, _, _, _, _, _ = fd, nr, save_errno, v1, v2, v3, v4, v5
  4757. XSHA384Init(tls, bp+1248)
  4758. v1 = libc.Xopen(tls, filename, m_O_RDONLY, 0)
  4759. fd = v1
  4760. if v1 < 0 {
  4761. return libc.UintptrFromInt32(0)
  4762. }
  4763. if len1 == 0 {
  4764. if libc.Xfstat(tls, fd, bp) == -int32(1) {
  4765. libc.Xclose(tls, fd)
  4766. return libc.UintptrFromInt32(0)
  4767. }
  4768. len1 = (*(*Tstat)(unsafe.Pointer(bp))).Fst_size
  4769. }
  4770. if off > 0 && libc.Xlseek(tls, fd, off, m_SEEK_SET) < 0 {
  4771. libc.Xclose(tls, fd)
  4772. return libc.UintptrFromInt32(0)
  4773. }
  4774. for {
  4775. if libc.Int64FromInt64(1024) < len1 {
  4776. v3 = libc.Int64FromInt64(1024)
  4777. } else {
  4778. v3 = len1
  4779. }
  4780. v2 = libc.Xread(tls, fd, bp+224, libc.Uint64FromInt64(v3))
  4781. nr = v2
  4782. if !(v2 > 0) {
  4783. break
  4784. }
  4785. XSHA512Update(tls, bp+1248, bp+224, libc.Uint64FromInt64(nr))
  4786. if v4 = len1 > 0; v4 {
  4787. len1 -= nr
  4788. }
  4789. if v4 && len1 == 0 {
  4790. break
  4791. }
  4792. }
  4793. save_errno = *(*int32)(unsafe.Pointer(libc.X__error(tls)))
  4794. libc.Xclose(tls, fd)
  4795. *(*int32)(unsafe.Pointer(libc.X__error(tls))) = save_errno
  4796. if nr < 0 {
  4797. v5 = libc.UintptrFromInt32(0)
  4798. } else {
  4799. v5 = XSHA384End(tls, bp+1248, buf)
  4800. }
  4801. return v5
  4802. }
  4803. func XSHA384File(tls *libc.TLS, filename uintptr, buf uintptr) (r uintptr) {
  4804. return XSHA384FileChunk(tls, filename, buf, libc.Int64FromInt32(0), libc.Int64FromInt32(0))
  4805. }
  4806. func XSHA384Data(tls *libc.TLS, data uintptr, len1 Tsize_t, buf uintptr) (r uintptr) {
  4807. bp := tls.Alloc(208)
  4808. defer tls.Free(208)
  4809. var _ /* ctx at bp+0 */ TSHA2_CTX
  4810. XSHA384Init(tls, bp)
  4811. XSHA512Update(tls, bp, data, len1)
  4812. return XSHA384End(tls, bp, buf)
  4813. }
  4814. // C documentation
  4815. //
  4816. // /* ARGSUSED */
  4817. func XSHA512End(tls *libc.TLS, ctx uintptr, buf uintptr) (r uintptr) {
  4818. bp := tls.Alloc(64)
  4819. defer tls.Free(64)
  4820. var i int32
  4821. var v1 uintptr
  4822. var v2 bool
  4823. var _ /* digest at bp+0 */ [64]Tuint8_t
  4824. _, _, _ = i, v1, v2
  4825. if v2 = buf == libc.UintptrFromInt32(0); v2 {
  4826. v1 = libc.Xmalloc(tls, libc.Uint64FromInt32(libc.Int32FromInt32(m_SHA512_DIGEST_LENGTH)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))
  4827. buf = v1
  4828. }
  4829. if v2 && v1 == libc.UintptrFromInt32(0) {
  4830. return libc.UintptrFromInt32(0)
  4831. }
  4832. XSHA512Final(tls, bp, ctx)
  4833. i = 0
  4834. for {
  4835. if !(i < int32(m_SHA512_DIGEST_LENGTH)) {
  4836. break
  4837. }
  4838. *(*int8)(unsafe.Pointer(buf + uintptr(i+i))) = _hex7[libc.Int32FromUint8((*(*[64]Tuint8_t)(unsafe.Pointer(bp)))[i])>>int32(4)]
  4839. *(*int8)(unsafe.Pointer(buf + uintptr(i+i+int32(1)))) = _hex7[libc.Int32FromUint8((*(*[64]Tuint8_t)(unsafe.Pointer(bp)))[i])&int32(0x0f)]
  4840. goto _3
  4841. _3:
  4842. ;
  4843. i++
  4844. }
  4845. *(*int8)(unsafe.Pointer(buf + uintptr(i+i))) = int8('\000')
  4846. libc.Xmemset(tls, bp, 0, uint64(64))
  4847. return buf
  4848. }
  4849. var _hex7 = [17]int8{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}
  4850. func XSHA512FileChunk(tls *libc.TLS, filename uintptr, buf uintptr, off Toff_t, len1 Toff_t) (r uintptr) {
  4851. bp := tls.Alloc(1456)
  4852. defer tls.Free(1456)
  4853. var fd, save_errno, v1 int32
  4854. var nr, v2 Tssize_t
  4855. var v3 int64
  4856. var v4 bool
  4857. var v5 uintptr
  4858. var _ /* buffer at bp+224 */ [1024]Tuint8_t
  4859. var _ /* ctx at bp+1248 */ TSHA2_CTX
  4860. var _ /* sb at bp+0 */ Tstat
  4861. _, _, _, _, _, _, _, _ = fd, nr, save_errno, v1, v2, v3, v4, v5
  4862. XSHA512Init(tls, bp+1248)
  4863. v1 = libc.Xopen(tls, filename, m_O_RDONLY, 0)
  4864. fd = v1
  4865. if v1 < 0 {
  4866. return libc.UintptrFromInt32(0)
  4867. }
  4868. if len1 == 0 {
  4869. if libc.Xfstat(tls, fd, bp) == -int32(1) {
  4870. libc.Xclose(tls, fd)
  4871. return libc.UintptrFromInt32(0)
  4872. }
  4873. len1 = (*(*Tstat)(unsafe.Pointer(bp))).Fst_size
  4874. }
  4875. if off > 0 && libc.Xlseek(tls, fd, off, m_SEEK_SET) < 0 {
  4876. libc.Xclose(tls, fd)
  4877. return libc.UintptrFromInt32(0)
  4878. }
  4879. for {
  4880. if libc.Int64FromInt64(1024) < len1 {
  4881. v3 = libc.Int64FromInt64(1024)
  4882. } else {
  4883. v3 = len1
  4884. }
  4885. v2 = libc.Xread(tls, fd, bp+224, libc.Uint64FromInt64(v3))
  4886. nr = v2
  4887. if !(v2 > 0) {
  4888. break
  4889. }
  4890. XSHA512Update(tls, bp+1248, bp+224, libc.Uint64FromInt64(nr))
  4891. if v4 = len1 > 0; v4 {
  4892. len1 -= nr
  4893. }
  4894. if v4 && len1 == 0 {
  4895. break
  4896. }
  4897. }
  4898. save_errno = *(*int32)(unsafe.Pointer(libc.X__error(tls)))
  4899. libc.Xclose(tls, fd)
  4900. *(*int32)(unsafe.Pointer(libc.X__error(tls))) = save_errno
  4901. if nr < 0 {
  4902. v5 = libc.UintptrFromInt32(0)
  4903. } else {
  4904. v5 = XSHA512End(tls, bp+1248, buf)
  4905. }
  4906. return v5
  4907. }
  4908. func XSHA512File(tls *libc.TLS, filename uintptr, buf uintptr) (r uintptr) {
  4909. return XSHA512FileChunk(tls, filename, buf, libc.Int64FromInt32(0), libc.Int64FromInt32(0))
  4910. }
  4911. func XSHA512Data(tls *libc.TLS, data uintptr, len1 Tsize_t, buf uintptr) (r uintptr) {
  4912. bp := tls.Alloc(208)
  4913. defer tls.Free(208)
  4914. var _ /* ctx at bp+0 */ TSHA2_CTX
  4915. XSHA512Init(tls, bp)
  4916. XSHA512Update(tls, bp, data, len1)
  4917. return XSHA512End(tls, bp, buf)
  4918. }
  4919. var __ccgo_ts = (*reflect.StringHeader)(unsafe.Pointer(&__ccgo_ts1)).Data
  4920. 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"