# x86-64 Machine Code, 14 bytes 8D 3C 7F 8D 14 92 8D 04 B7 01 D0 29 C8 C3 A function following the System V AMD64 calling convention (ubiquitous on Gnu/Linux systems) that takes four integer parameters: - `EDI` = num_of_3_par_holes - `ESI` = num_of_4_par_holes - `EDX` = num_of_5_par_holes - `ECX` = difficulty_rating It returns a single value, the standard scratch, in the `EAX` register. **Ungolfed assembly mnemonics:** ; int ComputeStandardScratch(int num_of_3_par_holes, ; int num_of_4_par_holes, ; int num_of_5_par_holes, ; int difficulty_rating); lea edi, [rdi+rdi*2] ; EDI = num_of_3_par_holes * 3 lea edx, [rdx+rdx*4] ; EDX = num_of_5_par_holes * 5 lea eax, [rdi+rsi*4] ; EAX = EDI + (num_of_4_par_holes * 4) add eax, edx ; EAX += EDX sub eax, ecx ; EAX -= difficulty_rating ret ; return, leaving result in EAX Just a simple translation of the formula. What's interesting is that this is essentially the same code that you would write when optimizing for *speed*, too. This really shows the power of the x86's `LEA` instruction, which is designed to *l*oad an *e*ffective *a*ddress, but can do addition and scaling (multiplication by low powers of 2) in a single instruction, making it a powerful multi-purpose arithmetic workhorse.