log☇︎
▁▁▁▁▁▁▁▁⏐︎▁▁▁▁▁ 3900
mircea_popescu: https://github.com/ariya/phantomjs/issues/15344 << in other not-really-news, phantomjs either died or something like that early this year.
asciilifeform: wtf was it ?
mircea_popescu: state of the art re de-javascriptifying afaik.
asciilifeform: i.e. 1 of those http://btcbase.org/log/2018-10-25#1866191 warcrimes ? ☝︎
a111: Logged on 2018-10-25 19:10 asciilifeform: when you add compatibility spackle, serious reader is not saved from reading the thing you spackled over -- on the contrary nao he has to read the ~original~ rubbish ~plus~ your spackle, however much it weighs.
mircea_popescu: well, if you're going to replicate archive.is, you're going to use ~something~ to go from webshitsoup to plain html.
mircea_popescu: and if you don't replicate it, well...
asciilifeform: ( a 'js lib' dun 'dejavascriptify' any moar than 'qt' de-x11-ifies )
mircea_popescu: you have to, somehow, move from a to b.
asciilifeform: 1 possible move is instead from 'a' to 'c', i.e. to entirely new, sane stack, where e.g. sexprs instead of htmlolade and 'scheme' subset instead of jsolade.
mircea_popescu: you're not even parsing what i'm saying here.
asciilifeform: was speaking specifically of existing browserisms ? then sure.
mircea_popescu: are you aware that curl will not in point of fact produce copies of shitty imperial websites, because those shitty imperial websides use javascript to fuck with the dom ?
mircea_popescu: we have a hole in the process here, where bash existence is not === browser existence. phantomjs used to fill it, or at least mostly, or so i thought.
mircea_popescu: as things stand right now, though, there IS a hole.
asciilifeform: a. yes
asciilifeform: there were other 'headless browsers'; i've used 'selenium' in particular (~8 or so yrs ago), it worked (then)
asciilifeform: ( loox like i was wrong re what the subj of thread was; thought it was a js layer lib )
mircea_popescu: prime target for pantsuit shenanigans ; i expect a lot of http://btcbase.org/log/2018-12-01#1877139 going on. because otherwise, very much a problem of http://trilema.com/2016/give-computers-the-vote-theyre-cheaper-than-women-even/ ☝︎
a111: Logged on 2018-12-01 02:00 asciilifeform: by the time someone reverses, they change it, and force the idjit users to 'upgrade'
asciilifeform: verily, it's pestilentially universal in heathendom www
mircea_popescu: but it occurs to me we kinda HAVE TO maintain the browser===bash equivalency.
asciilifeform: 'load article + 50MB of ads via dynamic js'
asciilifeform: + rowhammer.js , lol, naturally..
mircea_popescu: subset of turing test, if you will. if there exists means to mechanically distinguish browsering luser from bashing republican, the world is broken.
asciilifeform: in asciilifeform's experience, gold standard for this is a cycle-accurate emul of luser-os , with kbd/mouse controlled by e.g. cl proggy.
asciilifeform used, successfully, for various spamtronics
asciilifeform: it is also what e.g. the pokerists, use.
asciilifeform: can haz whatever one likes in the emul, even , say, 'internet exploder' complete with bugola, etc
asciilifeform: the win from this pov is that you dun need the 100kg of liquishit of grasping/emulating js+browserbreakages+etc but only x86 (10kg of liquishit).
asciilifeform: you bring up the emulated box for each session, and tear it down after (ramdisk).
asciilifeform: somewhat surprisingly, mmap makes this less 'heavy' than appears at first glance.
asciilifeform used system roughly along these lines for auto-analysis of shitwares
asciilifeform: in shitwareology, it is absolutely vital that the instrument be minimally distinguishable from actual 'luser box'. (thinkaboutit.)
mircea_popescu: for crying out loud, a virtual machine running firefox just to do what lobbesbot does atm in case archive.is croaks ?! ☟︎
asciilifeform ended up building an actual iron pc-like, with instrumented ram, faux disk, etc. this was described in ancient thread.
asciilifeform: mircea_popescu: paradoxically it is the simplest known pill.
mircea_popescu: yeah but kinda diff app
asciilifeform: actually very similar app.
mircea_popescu: dude, the archive russki fellow utterly doesn't do this.
asciilifeform: if he doesn't, he's theoretically open to, e.g. rowhammer.js .
asciilifeform: ( as well as various incompats. erry 10 or so links that asciilifeform feeds to 'archive', dun actually archive. not even via the 'hypothesis.is' and similar kludges. )
asciilifeform: btw i'm not aware that he published his complete mechanism. ( did he ? )
asciilifeform: afaik , it is indeed easier to write a reliable x86 emulator, and run shitfox & exploder , etc -- than to build a shitfox-and-exploder emulator. sad but troo.
asciilifeform: for all that intel tried, it was not able to stuff anywhere near the poundage of complexity-liquishit found in even old www browser, into x86 .
asciilifeform: i had emulators successfully running even winblowz 7, etc.
asciilifeform: imho a proper, adatronic x64 emulator, would be a handy thing.
asciilifeform doesn't have one yet, sadly
asciilifeform: what i had, was a lightly patched 'qemu' (removed all the 'acceleration' nonsense that wants to run as root and then gets you owned)
asciilifeform: that variant was far short of ideal -- iron on which one runs it still has to be considered disposable
asciilifeform: in other noose, finished ch14b writeup, will post after proofread.
feedbot: http://www.loper-os.org/?p=2892 << Loper OS -- Finite Field Arithmetic. Chapter 14B: Barretts Modular Reduction. (Part 2 of 2.)
asciilifeform: mircea_popescu, diana_coman , et al ^
asciilifeform: !Q later tell phf plox to snarf ch. 14b into http://btcbase.org/patches , ty !
lobbesbot: asciilifeform: The operation succeeded.
asciilifeform bbl,meat
asciilifeform: meanwhile: $ wc -l libffa/* >> 4559 total ; $ wc -l ffacalc/* >> 1226 total .
asciilifeform: http://www.loper-os.org/?p=2892#selection-4511.0-4595.6 << rsa timings.
mircea_popescu: not even bad.
asciilifeform: there's a surprise waiting, gimme a coupla min
mircea_popescu: in other random not-news, 37.187.150.139 is "ddosing" trilema by loading random pages ; but with a few select "lurkmore.to" pages as referrer.
mircea_popescu: i hope i didn't say something to offend teh russki patriot, did i ? http://btcbase.org/log/2018-12-20#1882391 is just a neutral observation, not in any sense ~my fault~ they're morons. ☝︎
a111: Logged on 2018-12-20 15:46 mircea_popescu: asciilifeform on meditation, that piece makes it plainly evident redditardation is ~generational~, not ideological. there sit the russki kids, who'd be in a fine position to understand the problem. god knows they have much better access to much better priors that readily illuminate it.
asciilifeform: mircea_popescu: i got these too !
asciilifeform: 9000 just today.
mircea_popescu: possibly you shouldn't have agreed!
feedbot: http://www.loper-os.org/?p=2906 << Loper OS -- Finite Field Arithmetic vs MPI.
asciilifeform: ^ newyear present for mircea_popescu & diana_coman
asciilifeform brb,teatime
mircea_popescu: Turns out, Koch’s pile of shit, despite eschewing constant time arithmetic, and being implemented in Overflowandcrashlang… loses the footrace, when given a full-width modular exponentiation (i.e. one where it cannot cheat by skipping over leading zeroes.)
mircea_popescu: this was never controversial was it.
asciilifeform: that it would lose on ~speed~ ?!
asciilifeform: until hr ago i was deadly certain that it couldn't
asciilifeform: ( considering that, e.g. http://www.loper-os.org/?p=2798#selection-5181.0-5211.75 )
asciilifeform: and that he still gets to skip , theoretically , ~half~ of the work of a modexp with random inputs (half the bits of exp are 0, and in kochian modexp dun result in a mul/square cycle)
asciilifeform: but what we find is that -- even on decade-old irons -- he loses moar to the branch predictor, than he wins from skipping
asciilifeform: incidentally, it's a 'fair fight', i.e. both ch14 ffa and mpi-koch lack asmism
asciilifeform: but i expect ffa-cum-asmism will still beat shit out of koch-cum-asmism
asciilifeform: ( and incidentally if you disable the bounds checks, having been satisfied with the proofs, ffa speeds up by another 2x 'for phree' )
asciilifeform fixed formatting barf in post
asciilifeform: turns out, the entire justification for use of branching in rsa at all, is bogus. ( and 'short exps' aint a justification -- if you know the max length of your e in advance, you can use fixed exponentiator , same as i do )
asciilifeform: i.e. you win moar from not upending the cache, than you lose by doing erry single bit of modexp and muxing.
asciilifeform: mircea_popescu: phunphakt, since last night , massive uptick in heathens visiting ffa www, even curl'ing patches. but so far none have the balls to speak up.
mircea_popescu: asciilifeform in my mind the idea was that if you force non-republican software to use republican exponents it will either crash or take forever.
mircea_popescu: hence why original choice for full sized exponents, "why let enemy enjoy the fruits of his lies"
mircea_popescu: moreover you know, http://btcbase.org/log/2016-11-26#1573488 ☝︎
a111: Logged on 2016-11-26 16:31 asciilifeform: koch's shitball per se is written in such a way that the cruft is glued on with broken glass (all the ciphers are modularized in very gnarly multilayered way, whole thing relies through and through on his weirdo streams thing, 1,001 idiocies)
asciilifeform: mircea_popescu: this is tru re gpg per se
asciilifeform: test was re koch's arithm engine (which does take arbitrary exps etc, and a patched ver is used in e.g. phuctor)
mircea_popescu: yeah but i mean...
mircea_popescu: WHY was it true re gpg per se ?
asciilifeform: he hardcoded a short buffer, iirc, lol
asciilifeform: gpg itself is substantially moar crippled than koch's mpi lib
asciilifeform: ( which i suspect is largely cribbed, but i dun specifically know from where )
mircea_popescu: still, gpg itself uses mpi to do the mathing
asciilifeform: aha
mircea_popescu: same place rms got emacs im sure.
mircea_popescu: teh goddess.
asciilifeform: the copy on my www ( and later cleaned further by diana_coman ) is from gpg 1.4.10 ( itself from signed tar that mircea_popescu dug in in '14 )
mircea_popescu: aha.
mircea_popescu: anyway, sorry if i inadvertently rained. tis indeed great news, and it being expected great news dun detract from greatness.
asciilifeform: possibly mircea_popescu is simply less thick than asciilifeform and expected the find
asciilifeform: ( i.e. that branch predictor nukes ~all~ win from skipping zeros )
mircea_popescu: possibly more thick, expected the find :D
asciilifeform: lol
mircea_popescu: anyway, yes, we're here ending "computing", and good for you.
asciilifeform: btw i expect that on moar recent irons, with gigantic caches, diff will be even moar palpable
mircea_popescu: imo putting an end to "software development" much greater achievement for human race than "decrypting bolix"
asciilifeform: ( anyone have an 'i7' handy ? )
asciilifeform: bolix is a sort of rommel's afrika front to this.
asciilifeform: ( which reminds me, i still have a bolix post queued on conveyor )
asciilifeform: re 'end to software' : http://www.loper-os.org/?p=2892#selection-985.1-1041.25 .
asciilifeform loox at scrolling wwwbox log, waves to the academitards
mircea_popescu: i'm not even sure how that kelvin thing's supposed to work ; notably bothj knuth and mod6 attempted it, but the problem with starting with a number is that you don't know what to pick.
mircea_popescu: nature found 273.15 i suppose the same way it computed ocean level ; but we're not quite equal to nature.
asciilifeform: it requires knowing what yer doing.
mircea_popescu: so how did you pick 255 and he 10k and knuth whatever it was, 100
asciilifeform: with guts. ☟︎☟︎
asciilifeform: i.e. 'if this thing needs >255 vpatches after today, then asciilifeform is a tard and somebody else ought to do the whole fucking job over'
mircea_popescu: lmao, your guts know what you're doing ?
mircea_popescu: looky, management is a rational activity. there's nothing wrong with hanging kids for having failed to master spanish in two weeks -- just as long as you can answer as to how you came up wih the two weeks.
asciilifeform: it also has gut component.
asciilifeform: just like shoemakin' and any other art.
mircea_popescu: this is like saying language has innate poetry.
mircea_popescu: only because someone had a fucking clue ~before~.
asciilifeform: at some pt you gotta make a cut where you dun have exact logical support for precisely what cut.
asciilifeform: whether it's 'attack is at quarter past dawn' or 'this needs <=255 patches or fuck it'
asciilifeform: incidentally i expected mircea_popescu to say '255 is laughably generous'
mircea_popescu: there's great cause to attack at dawn : morale superiority. there's also great cause to attack at night, note eg dracula's not famous for attacking the turkish camp at dawn and nearly making sultan run off.
asciilifeform: ya but why quarter past, and not 33min.
asciilifeform: gut.
mircea_popescu: asciilifeform the discussion spawned from me going "wtf is the POINT of even counting to 255, nobody can fit such in head" that then merged into "how do you know ?" which resulted in the predictable "i wonder how the fuck does ~he~ know"
asciilifeform: fwiw i gave orig vtron, 'v.py' , 100. it's on 97 (phf's revision) and when i get around to massaging it, i suppose will be 96, and i dunsee why to touch it again after that..
mircea_popescu: turns out he doesn't know ; in context probably dunbar's number is the saner approach.
asciilifeform: mircea_popescu: how does bridge constructor decide 'it should hold 50 tanks time margin of 3' and not 55 and not 45.
asciilifeform: correct.
mircea_popescu: the larger problem is "what is meant by a patch". i doubt the item can survive ~even one~ major alterations. meanwhile "hey, you spelled theyre with an apostrophe" needn't be counted (but need be fixed)
asciilifeform: a patch in the context is a vpatch.
mircea_popescu: in short, putting numbers on the human mind's http://btcbase.org/log/2018-12-19#1881724 process is gonna be painful. ☝︎
a111: Logged on 2018-12-19 17:09 mircea_popescu: natural language, however, ablates the trees for "convenience" so to speak, ie, uses commonly what's known in computing as sparse trees.
mircea_popescu: asciilifeform i know, but not all vpatches are created equal.
asciilifeform: which can carry some qty of change ( i hold to the practice of keeping'em reasonably compact )
asciilifeform: the declaration i want to make with 'kelvins' is that there is such a thing as a correct program.
asciilifeform: to which one can converge.
mircea_popescu: the vpatch that adds a "except if number is 5577, math doesn't work for 5577" is a VERY different patch from the vpatch that adds "here's a sentence ended by a comma turned ended by a dot instead"
asciilifeform: ( where it dun make sense to make anymoar changes without simply baking new item out of the dismembered corpse of old )
mircea_popescu: asciilifeform it's more than that : a) that there's such a thing as a correct program ; b) to which one can converge ; c) in a finite number of itemized steps ; d) the count therewhich can be known in advance.
asciilifeform: mircea_popescu: if i v-versioned the ~docs~, we'd be at 50-ish, nao, i suppose
mircea_popescu: yet our ideal is literate code, as in, docs in the program.
asciilifeform: mircea_popescu: upper bounds can be known in advance . ( in ffadom, at least. ) in larger meta-heuristics, naturally cannot be ~known~, but can be estimated.
mircea_popescu: ok, how.
asciilifeform: mircea_popescu: if someone knows how to make ffa moar 'docs is the program'-y, oughta write in and tell asciilifeform , cuz i came as close to it as i knew how.
asciilifeform: ( and it still needed conventional docs, illustrations, etc )
mircea_popescu: seems to me the unspoken heuristic is, "large enough so it's not meaningful [and therefore large enough to not bother] and small enough so it's not larger than some other number i thought about". ☟︎☟︎
mircea_popescu: this doesn't make for much.
asciilifeform: imho the haskellism where 'program carries proof' is generally a sad thing and results in soup
mircea_popescu: not proof ; comments. like knuth wrote them.
asciilifeform: thing's about 50-60% comment by mass.
mircea_popescu: right. and such a thing as typos in those comments is possible. this entire line is the result of your ineffectual sideswiping.
asciilifeform: there's at least 1 still in'ere.
asciilifeform: http://btcbase.org/log/2018-12-28#1883605 << it is impossible to defend against this criticism, as formulated, so i won't try ☝︎
a111: Logged on 2018-12-28 17:15 mircea_popescu: seems to me the unspoken heuristic is, "large enough so it's not meaningful [and therefore large enough to not bother] and small enough so it's not larger than some other number i thought about".
mircea_popescu: in short : "why not say the magic number 3 ?" "because maybe i need to fix a typo, and i dun wanna lose 1 out of 3 for this, but i do wanna fix it" "so how do you know 1 in 255 is ok to lose for this ?" "um http://btcbase.org/log/2017-07-18#1686299 " ☝︎
a111: Logged on 2017-07-18 22:58 asciilifeform: whaack is quite likely thinking of the bulk of the b00k, which consists of blockcipher liquishit which is complicated for no reason at all other than the religion where 'it is confusing to ME, author, and therefore Must Be Hard To Break'
asciilifeform: http://btcbase.org/log/2014-04-29#650478 << see also. ☝︎
a111: Logged on 2014-04-29 22:56 asciilifeform: 'Dijkstra said angrily. (He’d been visibly shaking his head through out the talk even before this outburst.) “How many bugs are we going to tolerate?” he demanded. “Seven,” Teitelman shot back.'
mircea_popescu: !Qcalc 255/7
lobbesbot: mircea_popescu: 36.4285714286
mircea_popescu: seems we've improved.
asciilifeform: lol
asciilifeform: i'll be surprised if i haven't nailed the last comment typo by the time done adding chapter-sized knobs, tbh
mircea_popescu: the fundamental promise involved in the concept of number, as a scalar measure of something
mircea_popescu: is thgat it'll be applied to like things
mircea_popescu: my objection inter alia is that this is not satisfied here ; makes us look like a bunch of retards.
asciilifeform: let's hear mircea_popescu's logical end of the stick tho. mircea_popescu finds himself partizan commander again, in the field. has 300 men. how he decides how many to send to ambush nazi convoy ?
mircea_popescu: any details re this convoy ?
asciilifeform: let's say scout reported a 1k-man garrison in the point of origin. and nobody knows precisely how many hauptmann fuckface will be sending.
mircea_popescu: im not sending anyone.
asciilifeform: lol
mircea_popescu: well what's the incentive ?
asciilifeform: e.g. you gotta keep'em from linking up with neighbouring pile o'jerries, they'll encircle you and yer done
mircea_popescu: im sending everyone.
mircea_popescu: see ? there's ~reasoning~.
asciilifeform: good, yer erryone register is 8bit long
asciilifeform: you nao sent 255, congrats
mircea_popescu: so your reasoning was that if some bits get left out the koch is gonna eat them ?
asciilifeform: not as such
asciilifeform: my reasoning is 'must pick a number, distinguish item from the endless moron march of firefox etc'
mircea_popescu: not even ff reached 255 yet. but anyway, i think this is exhausted
mircea_popescu: "gotta pick something" and all that.
asciilifeform: meanwhile, pehbot updated
asciilifeform: !!up pehbot
deedbot: pehbot voiced for 30 minutes.
asciilifeform: !A V_[FFACalc Ver: ]#
pehbot: asciilifeform: FFACalc Ver: 00000000000000000000000000000000000000000000000000000000000000FF
asciilifeform: !A V[FFA Ver: ]#
pehbot: asciilifeform: FFA Ver: 00000000000000000000000000000000000000000000000000000000000000FF
asciilifeform: nuffin to write home about; but there, current.
asciilifeform: ( if not for irc line char # cap, could even make it do 2048bit widths, rsa etc. will still fire faster than ping lag on typical day..)
asciilifeform: meanwhile, in ancient l0gz, http://btcbase.org/log/2016-11-26#1573520 << still, interestingly, live. ☝︎
a111: Logged on 2016-11-26 19:16 mircea_popescu: and in other news, a... bar. http://68.media.tumblr.com/95befa3bb9c2e4fac4f3dfb4a94b23e6/tumblr_mrxj9415lX1sfcru6o1_1280.jpg
asciilifeform: despite 'ban'
asciilifeform: http://btcbase.org/log/2016-11-26#1573536 << ditto. and, come to think of it, ~all of'em. ☝︎
a111: Logged on 2016-11-26 22:20 mircea_popescu: meanwhile at the slut party, http://68.media.tumblr.com/tumblr_lard124fV41qzw9y2o1_1280.jpg
diana_coman: oh wow asciilifeform !
diana_coman catches up
feedbot: http://qntra.net/2018/12/stanislav-datskovskiy-publishes-fully-constant-time-code-for-barretts-modular-reduction-as-part-of-ffa-library/ << Qntra -- Stanislav Datskovskiy Publishes Fully Constant Time Code For Barrett's Modular Reduction As Part Of FFA Library
BingoBoingo: Meanwhile in local lulz, confiscated drugs liberated from the police in motorcycle snatch and grab https://www.teledoce.com/telemundo/policiales/en-san-jose-robaron-145-envoltorios-de-droga-que-habian-incautado-a-un-hombre-minutos-antes/
asciilifeform: lollers BingoBoingo
asciilifeform: diana_coman: lulzy, neh. we do 4 MUL instrs for each word x word , and we do each ADD & SUB ~twice~ ( http://www.loper-os.org/?p=1913#selection-3319.14-3343.1 ) ( plus buncha ands, ors, shifts ) , and ~still~ win...
diana_coman: on one hand there is what mircea_popescu says that yes, by now and given the type of rot it's actually to be expected; on the other hand it's of the sort that still sounds...unbelievable, yes
asciilifeform: btw there's a 'seekrit' 30% linear speed boost if one uses unrolled combas.
asciilifeform: ( not in any patch yet, but pasted last summer )
asciilifeform: and incidentally it wins for same reason -- branch predictors suck
asciilifeform: for some particular applications (e.g. gossipd) it (and asmism etc) justified.
asciilifeform: ( http://btcbase.org/log/2018-10-12#1860844 << see also oldthread where the same effect ) ☝︎
a111: Logged on 2018-10-12 13:52 asciilifeform: ( bonus is that the closed form is not only constant time, but substantially faster on pc, nomoar branch prediction misses )
asciilifeform: the other thing we get, is of course http://btcbase.org/log/2017-10-08#1722435 . ☝︎
a111: Logged on 2017-10-08 00:20 asciilifeform: http://btcbase.org/log/2017-10-07#1722411 << 1 ) ffa is closed form. i.e. it CAN be written as a number of nand gates, with a 'funnel' at the top, to which you present a,b,c, e.g. 4096bit, numbers, and at the bottom in a little cup you get a^b mod c , and with NO UPWARDS FEEDBACK FLOW of information , i.e. answer comes after same interval of time always, and with strictly downwards signals.
asciilifeform: ( i.e. thing is siliconizable, in principle. )
asciilifeform: diana_coman -- will be interesting to see benchmarks from your irons, if you get the chance.
diana_coman: asciilifeform, I'll try to get to it but more probably in January really
asciilifeform: no particular hurry
asciilifeform: ( the key work for diana_coman et al, from ffaology pov, is to eat the proofs )
diana_coman: that's precisely why the slow pace - I need a bit of fresher mind to get back and read through the rest of ffa
asciilifeform: this is the place where slow an' careful is the Right Thing.
diana_coman: that being said, I dug up and yes, I even have an i7 around here
asciilifeform: you may find it interesting that asciilifeform's 1st shot at barrett managed to have a subtly fatal mistake in the proof, and correspondingly a proggy that failed on <0.1% of input space.
diana_coman: sadly though no amount of slow is any guarantee of perfection still
asciilifeform: ( hence the somewhat pedantic treatment of the subj, 2 separate proofolade articles. was going for 'measure 7777 times, cut 1ce' there. )
diana_coman: fwiw I like very much that "pedantic" there
asciilifeform: btw it is possible to dispense with FZ_LoMul , and simply discard upper chunk of ordinary karatsuba product. this costs ~10% cpuwise, and may be justified for some proggies.
asciilifeform: ( where yer tryin' to save coad space )
asciilifeform: ( http://btcbase.org/log/2018-12-18#1881560 << see also. technically applies to ~errything after ch6. ) ☝︎
a111: Logged on 2018-12-18 20:14 asciilifeform: barrett is 'optional' (technically errything after ch6 is!)
asciilifeform: diana_coman: sadly i do not know how to 'guarantee perfection'. all i know how to do is to bake maximally 'fits in head' and bank that the folx here will find mistake if it turns out that i made one. ☟︎
asciilifeform: ( and it is fortunately much easier to find mistake in 5k loc , with ~one~ execution path, than in 150kloc with 900000 paths... )
diana_coman: certainly
asciilifeform: the other thing, if one is writing a proggy where only 1 ffawidth is used, it is possible to unroll all of the loops, derecursivize karatsuba, etc. and get straight line of instructions
asciilifeform: ( i.e. sequence where only ADD, SUB, MUL, SHR/SHL, MOV, all the way from head to toe , a,b,c in, a^b mod c comes out )
asciilifeform: aanyways, teatime, bbl.