Skip to content

Instantly share code, notes, and snippets.

@pervognsen
Last active August 5, 2021 07:51
Show Gist options
  • Save pervognsen/2fd4b74ee503a66e976a473e32f12f5d to your computer and use it in GitHub Desktop.
Save pervognsen/2fd4b74ee503a66e976a473e32f12f5d to your computer and use it in GitHub Desktop.
multistep: # @multistep
push r15
push r14
push r13
push r12
push rbx
mov rcx, qword ptr [rsi]
mov r10, qword ptr [rsi + 8]
mov rdx, qword ptr [rsi + 24]
mov r11, qword ptr [rsi + 32]
mov rbx, qword ptr [rsi + 48]
mov r14, qword ptr [rsi + 56]
mov r15, qword ptr [rsi + 72]
mov r8, qword ptr [rsi + 80]
mov r12, qword ptr [rsi + 96]
mov r9, qword ptr [rsi + 104]
movzx eax, byte ptr [r10]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 1]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 1]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 1]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 1]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 1]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 2]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 2]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 2]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 2]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 2]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 3]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 3]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 3]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 3]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 3]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 4]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 4]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 4]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 4]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 4]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 5]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 5]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 5]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 5]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 5]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 6]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 6]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 6]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 6]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 6]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 7]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 7]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 7]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 7]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 7]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 8]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 8]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 8]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 8]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 8]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 9]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 9]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 9]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 9]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 9]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 10]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 10]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 10]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 10]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 10]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 11]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 11]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 11]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 11]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 11]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 12]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 12]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 12]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 12]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 12]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 13]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 13]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 13]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 13]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 13]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 14]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 14]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 14]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 14]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 14]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 15]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 15]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 15]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 15]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 15]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 16]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 16]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 16]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 16]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 16]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 17]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 17]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 17]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 17]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 17]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 18]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 18]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 18]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 18]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 18]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 19]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 19]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 19]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 19]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 19]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 20]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 20]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 20]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 20]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 20]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 21]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 21]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 21]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 21]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 21]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 22]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 22]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 22]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 22]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 22]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 23]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 23]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 23]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 23]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 23]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 24]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 24]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 24]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 24]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 24]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 25]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 25]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 25]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 25]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 25]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 26]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 26]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 26]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 26]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 26]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 27]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 27]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 27]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 27]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 27]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 28]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 28]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 28]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 28]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 28]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 29]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 29]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 29]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 29]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 29]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 30]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 30]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 30]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 30]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 30]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 31]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 31]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 31]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 31]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 31]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 32]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 32]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 32]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 32]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 32]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 33]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 33]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 33]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 33]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 33]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 34]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 34]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 34]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 34]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 34]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 35]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 35]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 35]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 35]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 35]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 36]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 36]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 36]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 36]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 36]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 37]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 37]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 37]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 37]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 37]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 38]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 38]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 38]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 38]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 38]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 39]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 39]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 39]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 39]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 39]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 40]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 40]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 40]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 40]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 40]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 41]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 41]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 41]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 41]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 41]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 42]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 42]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 42]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 42]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 42]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 43]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 43]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 43]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 43]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 43]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 44]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 44]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 44]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 44]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 44]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 45]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 45]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 45]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 45]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 45]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 46]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 46]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 46]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 46]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 46]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 47]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 47]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 47]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 47]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 47]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 48]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 48]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 48]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 48]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 48]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 49]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 49]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 49]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 49]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 49]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 50]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 50]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 50]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 50]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 50]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 51]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 51]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 51]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 51]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 51]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 52]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 52]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 52]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 52]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 52]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 53]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 53]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 53]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 53]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 53]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 54]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 54]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 54]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 54]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 54]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 55]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 55]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 55]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 55]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 55]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 56]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 56]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 56]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 56]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 56]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 57]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 57]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 57]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 57]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 57]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 58]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 58]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 58]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 58]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 58]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 59]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 59]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 59]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 59]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 59]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 60]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 60]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 60]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 60]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 60]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 61]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 61]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 61]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 61]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 61]
shl rax, 6
add rax, rdi
movzx r13d, byte ptr [r12 + rax]
movzx eax, byte ptr [r10 + 62]
shl rax, 6
add rax, rdi
movzx ecx, byte ptr [rcx + rax]
movzx eax, byte ptr [r11 + 62]
shl rax, 6
add rax, rdi
movzx edx, byte ptr [rdx + rax]
movzx eax, byte ptr [r14 + 62]
shl rax, 6
add rax, rdi
movzx ebx, byte ptr [rbx + rax]
movzx eax, byte ptr [r8 + 62]
shl rax, 6
add rax, rdi
movzx r12d, byte ptr [r15 + rax]
movzx eax, byte ptr [r9 + 62]
shl rax, 6
add rax, rdi
movzx r15d, byte ptr [r13 + rax]
movzx eax, byte ptr [r10 + 63]
add r10, 64
shl rax, 6
add rax, rdi
movzx r13d, byte ptr [rcx + rax]
movzx ecx, byte ptr [r11 + 63]
add r11, 64
shl rcx, 6
add rcx, rdi
movzx ecx, byte ptr [rdx + rcx]
movzx edx, byte ptr [r14 + 63]
add r14, 64
shl rdx, 6
add rdx, rdi
movzx edx, byte ptr [rbx + rdx]
movzx ebx, byte ptr [r8 + 63]
add r8, 64
shl rbx, 6
add rbx, rdi
movzx ebx, byte ptr [r12 + rbx]
movzx eax, byte ptr [r9 + 63]
add r9, 64
shl rax, 6
add rax, rdi
movzx eax, byte ptr [r15 + rax]
mov qword ptr [rsi], r13
mov qword ptr [rsi + 8], r10
mov qword ptr [rsi + 24], rcx
mov qword ptr [rsi + 32], r11
mov qword ptr [rsi + 48], rdx
mov qword ptr [rsi + 56], r14
mov qword ptr [rsi + 72], rbx
mov qword ptr [rsi + 80], r8
mov qword ptr [rsi + 96], rax
mov qword ptr [rsi + 104], r9
pop rbx
pop r12
pop r13
pop r14
pop r15
ret
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment