$0x2145; BYTE $0xc4 // and r12d,r8d LONG $0xf07b43c4; WORD $0x19e8 // rorx r13d,r8d,0x19 LONG $0xf07b43c4; WORD $0x0bf8 // rorx r15d,r8d,0xb LONG $0x30048d42 // lea eax,[rax+r14*1] LONG $0x231c8d47 // lea r11d,[r11+r12*1] LONG $0xf23842c4; BYTE $0xe2 // andn r12d,r8d,r10d WORD $0x3145; BYTE $0xfd // xor r13d,r15d LONG $0xf07b43c4; WORD $0x06f0 // rorx r14d,r8d,0x6 LONG $0x231c8d47 // lea r11d,[r11+r12*1] WORD $0x3145; BYTE $0xf5 // xor r13d,r14d WORD $0x8941; BYTE $0xc7 // mov r15d,eax LONG $0xf07b63c4; WORD $0x16e0 // rorx r12d,eax,0x16 LONG $0x2b1c8d47 // lea r11d,[r11+r13*1] WORD $0x3141; BYTE $0xdf // xor r15d,ebx LONG $0xf07b63c4; WORD $0x0df0 // rorx r14d,eax,0xd LONG $0xf07b63c4; WORD $0x02e8 // rorx r13d,eax,0x2 LONG $0x1a148d42 // lea edx,[rdx+r11*1] WORD $0x2144; BYTE $0xff // and edi,r15d WORD $0x3145; BYTE $0xe6 // xor r14d,r12d WORD $0xdf31 // xor edi,ebx WORD $0x3145; BYTE $0xee // xor r14d,r13d LONG $0x3b1c8d45 // lea r11d,[r11+rdi*1] WORD $0x8945; BYTE $0xc4 // mov r12d,r8d // ROUND(R11, AX, BX, CX, DX, R8, R9, R10, R12, R13, R14, DI, R15, SP, 0x44) LONG $0x24540344; BYTE $0x44 // add r10d,[rsp+0x44] WORD $0x2141; BYTE $0xd4 // and r12d,edx LONG $0xf07b63c4; WORD $0x19ea // rorx r13d,edx,0x19 LONG $0xf07be3c4; WORD $0x0bfa // rorx edi,edx,0xb LONG $0x331c8d47 // lea r11d,[r11+r14*1] LONG $0x22148d47 // lea r10d,[r10+r12*1] LONG $0xf26842c4; BYTE $0xe1 // andn r12d,edx,r9d WORD $0x3141; BYTE $0xfd // xor r13d,edi LONG $0xf07b63c4; WORD $0x06f2 // rorx r14d,edx,0x6 LONG $0x22148d47 // lea r10d,[r10+r12*1] WORD $0x3145; BYTE $0xf5 // xor r13d,r14d WORD $0x8944; BYTE $0xdf // mov edi,r11d LONG $0xf07b43c4; WORD $0x16e3 // rorx r12d,r11d,0x16 LONG $0x2a148d47 // lea r10d,[r10+r13*1] WORD $0xc731 // xor edi,eax LONG $0xf07b43c4; WORD $0x0df3 // rorx r14d,r11d,0xd LONG $0xf07b43c4; WORD $0x02eb // rorx r13d,r11d,0x2 LONG $0x110c8d42 // lea ecx,[rcx+r10*1] WORD $0x2141; BYTE $0xff // and r15d,edi WORD $0x3145; BYTE $0xe6 // xor r14d,r12d WORD $0x3141; BYTE $0xc7 // xor r15d,eax WORD $0x3145; BYTE $0xee // xor r14d,r13d LONG $0x3a148d47 // lea r10d,[r10+r15*1] WORD $0x8941; BYTE $0xd4 // mov r12d,edx // ROUND(R10, R11, AX, BX, CX, DX, R8, R9, R12, R13, R14, R15, DI, SP, 0x48) LONG $0x244c0344; BYTE $0x48 // add r9d,[rsp+0x48] WORD $0x2141; BYTE $0xcc // and r12d,ecx LONG $0xf07b63c4; WORD $0x19e9 // rorx r13d,ecx,0x19 LONG $0xf07b63c4; WORD $0x0bf9 // rorx r15d,ecx,0xb LONG $0x32148d47 // lea r10d,[r10+r14*1] LONG $0x210c8d47 // lea r9d,[r9+r12*1] LONG $0xf27042c4; BYTE $0xe0 // andn r12d,ecx,r8d WORD $0x3145; BYTE $0xfd // xor r13d,r15d LONG $0xf07b63c4; WORD $0x06f1 // rorx r14d,ecx,0x6 LONG $0x210c8d47 // lea r9d,[r9+r12*1] WORD $0x3145; BYTE $0xf5 // xor r13d,r14d WORD $0x8945; BYTE $0xd7 // mov r15d,r10d LONG $0xf07b43c4; WORD $0x16e2 // rorx r12d,r10d,0x16 LONG $0x290c8d47 // lea r9d,[r9+r13*1] WORD $0x3145; BYTE $0xdf // xor r15d,r11d LONG $0xf07b43c4; WORD $0x0df2 // rorx r14d,r10d,0xd LONG $0xf07b43c4; WORD $0x02ea // rorx r13d,r10d,0x2 LONG $0x0b1c8d42 // lea ebx,[rbx+r9*1] WORD $0x2144; BYTE $0xff // and edi,r15d WORD $0x3145; BYTE $0xe6 // xor r14d,r12d WORD $0x3144; BYTE $0xdf // xor edi,r11d WORD $0x3145; BYTE $0xee // xor r14d,r13d LONG $0x390c8d45 // lea r9d,[r9+rdi*1] WORD $0x8941; BYTE $0xcc // mov r12d,ecx // ROUND(R9, R10, R11, AX, BX, CX, DX, R8, R12, R13, R14, DI, R15, SP, 0x4c) LONG $0x24440344; BYTE $0x4c // add r8d,[rsp+0x4c] WORD $0x2141; BYTE $0xdc // and r12d,ebx LONG $0xf07b63c4; WORD $0x19eb // rorx r13d,ebx,0x19 LONG $0xf07be3c4; WORD $0x0bfb // rorx edi,ebx,0xb LONG $0x310c8d47 // lea r9d,[r9+r14*1] LONG $0x20048d47 // lea r8d,[r8+r12*1] LONG $0xf26062c4; BYTE $0xe2 // andn r12d,ebx,edx WORD $0x3141; BYTE $0xfd // xor r13d,edi LONG $0xf07b63c4; WORD $0x06f3 // rorx r14d,ebx,0x6 LONG $0x20048d47 // lea r8d,[r8+r12*1] WORD $0x3145; BYTE $0xf5 // xor r13d,r14d WORD $0x8944; BYTE $0xcf // mov edi,r9d LONG $0xf07b43c4; WORD $0x16e1 // rorx r12d,r9d,0x16 LONG $0x28048d47 // lea r8d,[r8+r13*1] WORD $0x3144; BYTE $0xd7 // xor edi,r10d LONG $0xf07b43c4; WORD $0x0df1 // rorx r14d,r9d,0xd LONG $0xf07b43c4; WORD $0x02e9 // rorx r13d,r9d,0x2 LONG $0x00048d42 // lea eax,[rax+r8*1] WORD $0x2141; BYTE $0xff // and r15d,edi WORD $0x3145; BYTE $0xe6 // xor r14d,r12d WORD $0x3145; BYTE $0xd7 // xor r15d,r10d WORD $0x3145; BYTE $0xee // xor r14d,r13d LONG $0x38048d47 // lea r8d,[r8+r15*1] WORD $0x8941; BYTE $0xdc // mov r12d,ebx // ROUND(R8, R9, R10, R11, AX, BX, CX, DX, R12, R13, R14, R15, DI, SP, 0x60) LONG $0x60245403 // add edx,[rsp+0x60] WORD $0x2141; BYTE $0xc4 // and r12d,eax LONG $0xf07b63c4; WORD $0x19e8 // rorx r13d,eax,0x19 LONG $0xf07b63c4; WORD $0x0bf8 // rorx r15d,eax,0xb LONG $0x30048d47 // lea r8d,[r8+r14*1] LONG $0x22148d42 // lea edx,[rdx+r12*1] LONG $0xf27862c4; BYTE $0xe1 // andn r12d,eax,ecx WORD $0x3145; BYTE $0xfd // xor r13d,r15d LONG $0xf07b63c4; WORD $0x06f0 // rorx r14d,eax,0x6 LONG $0x22148d42 // lea edx,[rdx+r12*1] WORD $0x3145; BYTE $0xf5 // xor r13d,r14d WORD $0x8945; BYTE $0xc7 // mov r15d,r8d LONG $0xf07b43c4; WORD $0x16e0 // rorx r12d,r8d,0x16 LONG $0x2a148d42 // lea edx,[rdx+r13*1] WORD $0x3145; BYTE $0xcf // xor r15d,r9d LONG $0xf07b43c4; WORD $0x0df0 // rorx r14d,r8d,0xd LONG $0xf07b43c4; WORD $0x02e8 // rorx r13d,r8d,0x2 LONG $0x131c8d45 // lea r11d,[r11+rdx*1] WORD $0x2144; BYTE $0xff // and edi,r15d WORD $0x3145; BYTE $0xe6 // xor r14d,r12d WORD $0x3144; BYTE $0xcf // xor edi,r9d WORD $0x3145; BYTE $0xee // xor r14d,r13d WORD $0x148d; BYTE $0x3a // lea edx,[rdx+rdi*1] WORD $0x8941; BYTE $0xc4 // mov r12d,eax // ROUND(DX, R8, R9, R10, R11, AX, BX, CX, R12, R13, R14, DI, R15, SP, 0x64) LONG $0x64244c03 // add ecx,[rsp+0x64] WORD $0x2145; BYTE $0xdc // and r12d,r11d LONG $0xf07b43c4; WORD $0x19eb // rorx r13d,r11d,0x19 LONG $0xf07bc3c4; WORD $0x0bfb // rorx edi,r11d,0xb LONG $0x32148d42 // lea edx,[rdx+r14*1] LONG $0x210c8d42 // lea ecx,[rcx+r12*1] LONG $0xf22062c4; BYTE $0xe3 // andn r12d,r11d,ebx WORD $0x3141; BYTE $0xfd // xor r13d,edi LONG $0xf07b43c4; WORD $0x06f3 // rorx r14d,r11d,0x6 LONG $0x210c8d42 // lea ecx,[rcx+r12*1] WORD $0x3145; BYTE $0xf5 // xor r13d,r14d WORD $0xd789 // mov edi,edx LONG $0xf07b63c4; WORD $0x16e2 // rorx r12d,edx,0x16 LONG $0x290c8d42 // lea ecx,[rcx+r13*1] WORD $0x3144; BYTE $0xc7 // xor edi,r8d LONG $0xf07b63c4; WORD $0x0df2 // rorx r14d,edx,0xd LONG $0xf07b63c4; WORD $0x02ea // rorx r13d,edx,0x2 LONG $0x0a148d45 // lea r10d,[r10+rcx*1] WORD $0x2141; BYTE $0xff // and r15d,edi WORD $0x3145; BYTE $0xe6 // xor r14d,r12d WORD $0x3145; BYTE $0xc7 // xor r15d,r8d WORD $0x3145; BYTE $0xee // xor r14d,r13d LONG $0x390c8d42 // lea ecx,[rcx+r15*1] WORD $0x8945; BYTE $0xdc // mov r12d,r11d // ROUND(CX, DX, R8, R9, R10, R11, AX, BX, R12, R13, R14, R15, DI, SP, 0x68) LONG $0x68245c03 // add ebx,[rsp+0x68] WORD $0x2145; BYTE $0xd4 // and r12d,r10d LONG $0xf07b43c4; WORD $0x19ea // rorx r13d,r10d,0x19 LONG $0xf07b43c4; WORD $0x0bfa // rorx r15d,r10d,0xb LONG $0x310c8d42 // lea ecx,[rcx+r14*1] LONG $0x231c8d42 // lea ebx,[rbx+r12*1] LONG $0xf22862c4; BYTE $0xe0 // andn r12d,r10d,eax WORD $0x3145; BYTE $0xfd // xor r13d,r15d LONG $0xf07b43c4; WORD $0x06f2 // rorx r14d,r10d,0x6 LONG $0x231c8d42 // lea ebx,[rbx+r12*1] WORD $0x3145; BYTE $0xf5 // xor r13d,r14d WORD $0x8941; BYTE $0xcf // mov r15d,ecx LONG $0xf07b63c4; WORD $0x16e1 // rorx r12d,ecx,0x16 LONG $0x2b1c8d42 // lea ebx,[rbx+r13*1] WORD $0x3141; BYTE $0xd7 // xor r15d,edx LONG $0xf07b63c4; WORD $0x0df1 // rorx r14d,ecx,0xd LONG $0xf07b63c4; WORD $0x02e9 // rorx r13d,ecx,0x2 LONG $0x190c8d45 // lea r9d,[r9+rbx*1] WORD $0x2144; BYTE $0xff // and edi,r15d WORD $0x3145; BYTE $0xe6 // xor r14d,r12d WORD $0xd731 // xor edi,edx WORD $0x3145; BYTE $0xee // xor r14d,r13d WORD $0x1c8d; BYTE $0x3b // lea ebx,[rbx+rdi*1] WORD $0x8945; BYTE $0xd4 // mov r12d,r10d // ROUND(BX, CX, DX, R8, R9, R10, R11, AX, R12, R13, R14, DI, R15, SP, 0x6c) LONG $0x6c244403 // add eax,[rsp+0x6c] WORD $0x2145; BYTE $0xcc // and r12d,r9d LONG $0xf07b43c4; WORD $0x19e9 // rorx r13d,r9d,0x19 LONG $0xf07bc3c4; WORD $0x0bf9 // rorx edi,r9d,0xb LONG $0x331c8d42 // lea ebx,[rbx+r14*1] LONG $0x20048d42 // lea eax,[rax+r12*1] LONG $0xf23042c4; BYTE $0xe3 // andn r12d,r9d,r11d WORD $0x3141; BYTE $0xfd // xor r13d,edi LONG $0xf07b43c4; WORD $0x06f1 // rorx r14d,r9d,0x6 LONG $0x20048d42 // lea eax,[rax+r12*1] WORD $0x3145; BYTE $0xf5 // xor r13d,r14d WORD $0xdf89 // mov edi,ebx LONG $0xf07b63c4; WORD $0x16e3 // rorx r12d,ebx,0x16 LONG $0x28048d42 // lea eax,[rax+r13*1] WORD $0xcf31 // xor edi,ecx LONG $0xf07b63c4; WORD $0x0df3 // rorx r14d,ebx,0xd LONG $0xf07b63c4; WORD $0x02eb // rorx r13d,ebx,0x2 LONG $0x00048d45 // lea r8d,[r8+rax*1] WORD $0x2141; BYTE $0xff // and r15d,edi WORD $0x3145; BYTE $0xe6 // xor r14d,r12d WORD $0x3141; BYTE $0xcf // xor r15d,ecx WORD $0x3145; BYTE $0xee // xor r14d,r13d LONG $0x38048d42 // lea eax,[rax+r15*1] WORD $0x8945; BYTE $0xcc // mov r12d,r9d // ROUND(AX, BX, CX, DX, R8, R9, R10, R11, R12, R13, R14, R15, DI, SP, 0x00) LONG $0x241c0344 // add r11d,[rsp] WORD $0x2145; BYTE $0xc4 // and r12d,r8d LONG $0xf07b43c4; WORD $0x19e8 // rorx r13d,r8d,0x19 LONG $0xf07b43c4; WORD $0x0bf8 // rorx r15d,r8d,0xb LONG $0x30048d42 // lea eax,[rax+r14*1] LONG $0x231c8d47 // lea r11d,[r11+r12*1] LONG $0xf23842c4; BYTE $0xe2 // andn r12d,r8d,r10d WORD $0x3145; BYTE $0xfd // xor r13d,r15d LONG $0xf07b43c4; WORD $0x06f0 // rorx r14d,r8d,0x6 LONG $0x231c8d47 // lea r11d,[r11+r12*1] WORD $0x3145; BYTE $0xf5 // xor r13d,r14d WORD $0x8941; BYTE $0xc7 // mov r15d,eax LONG $0xf07b63c4; WORD $0x16e0 // rorx r12d,eax,0x16 LONG $0x2b1c8d47 // lea r11d,[r11+r13*1] WORD $0x3141; BYTE $0xdf // xor r15d,ebx LONG $0xf07b63c4; WORD $0x0df0 // rorx r14d,eax,0xd LONG $0xf07b63c4; WORD $0x02e8 // rorx r13d,eax,0x2 LONG $0x1a148d42 // lea edx,[rdx+r11*1] WORD $0x2144; BYTE $0xff // and edi,r15d WORD $0x3145; BYTE $0xe6 // xor r14d,r12d WORD $0xdf31 // xor edi,ebx WORD $0x3145; BYTE $0xee // xor r14d,r13d LONG $0x3b1c8d45 // lea r11d,[r11+rdi*1] WORD $0x8945; BYTE $0xc4 // mov r12d,r8d // ROUND(R11, AX, BX, CX, DX, R8, R9, R10, R12, R13, R14, DI, R15, SP, 0x04) LONG $0x24540344; BYTE $0x04 // add r10d,[rsp+0x4] WORD $0x2141; BYTE $0xd4 // and r12d,edx LONG $0xf07b63c4; WORD $0x19ea // rorx r13d,edx,0x19 LONG $0xf07be3c4; WORD $0x0bfa // rorx edi,edx,0xb LONG $0x331c8d47 // lea r11d,[r11+r14*1] LONG $0x22148d47 // lea r10d,[r10+r12*1] LONG $0xf26842c4; BYTE $0xe1 // andn r12d,edx,r9d WORD $0x3141; BYTE $0xfd // xor r13d,edi LONG $0xf07b63c4; WORD $0x06f2 // rorx r14d,edx,0x6 LONG $0x22148d47 // lea r10d,[r10+r12*1] WORD $0x3145; BYTE $0xf5 // xor r13d,r14d WORD $0x8944; BYTE $0xdf // mov edi,r11d LONG $0xf07b43c4; WORD $0x16e3 // rorx r12d,r11d,0x16 LONG $0x2a148d47 // lea r10d,[r10+r13*1] WORD $0xc731 // xor edi,eax LONG $0xf07b43c4; WORD $0x0df3 // rorx r14d,r11d,0xd LONG $0xf07b43c4; WORD $0x02eb // rorx r13d,r11d,0x2 LONG $0x110c8d42 // lea ecx,[rcx+r10*1] WORD $0x2141; BYTE $0xff // and r15d,edi WORD $0x3145; BYTE $0xe6 // xor r14d,r12d WORD $0x3141; BYTE $0xc7 // xor r15d,eax WORD $0x3145; BYTE $0xee // xor r14d,r13d LONG $0x3a148d47 // lea r10d,[r10+r15*1] WORD $0x8941; BYTE $0xd4 // mov r12d,edx // ROUND(R10, R11, AX, BX, CX, DX, R8, R9, R12, R13, R14, R15, DI, SP, 0x08) LONG $0x244c0344; BYTE $0x08 // add r9d,[rsp+0x8] WORD $0x2141; BYTE $0xcc // and r12d,ecx LONG $0xf07b63c4; WORD $0x19e9 // rorx r13d,ecx,0x19 LONG $0xf07b63c4; WORD $0x0bf9 // rorx r15d,ecx,0xb LONG $0x32148d47 // lea r10d,[r10+r14*1] LONG $0x210c8d47 // lea r9d,[r9+r12*1] LONG $0xf27042c4; BYTE $0xe0 // andn r12d,ecx,r8d WORD $0x3145; BYTE $0xfd // xor r13d,r15d LONG $0xf07b63c4; WORD $0x06f1 // rorx r14d,ecx,0x6 LONG $0x210c8d47 // lea r9d,[r9+r12*1] WORD $0x3145; BYTE $0xf5 // xor r13d,r14d WORD $0x8945; BYTE $0xd7 // mov r15d,r10d LONG $0xf07b43c4; WORD $0x16e2 // rorx r12d,r10d,0x16 LONG $0x290c8d47 // lea r9d,[r9+r13*1] WORD $0x3145; BYTE $0xdf // xor r15d,r11d LONG $0xf07b43c4; WORD $0x0df2 // rorx r14d,r10d,0xd LONG $0xf07b43c4; WORD $0x02ea // rorx r13d,r10d,0x2 LONG $0x0b1c8d42 // lea ebx,[rbx+r9*1] WORD $0x2144; BYTE $0xff // and edi,r15d WORD $0x3145; BYTE $0xe6 // xor r14d,r12d WORD $0x3144; BYTE $0xdf // xor edi,r11d WORD $0x3145; BYTE $0xee // xor r14d,r13d LONG $0x390c8d45 // lea r9d,[r9+rdi*1] WORD $0x8941; BYTE $0xcc // mov r12d,ecx // ROUND(R9, R10, R11, AX, BX, CX, DX, R8, R12, R13, R14, DI, R15, SP, 0x0c) LONG $0x24440344; BYTE $0x0c // add r8d,[rsp+0xc] WORD $0x2141; BYTE $0xdc // and r12d,ebx LONG $0xf07b63c4; WORD $0x19eb // rorx r13d,ebx,0x19 LONG $0xf07be3c4; WORD $0x0bfb // rorx edi,ebx,0xb LONG $0x310c8d47 // lea r9d,[r9+r14*1] LONG $0x20048d47 // lea r8d,[r8+r12*1] LONG $0xf26062c4; BYTE $0xe2 // andn r12d,ebx,edx WORD $0x3141; BYTE $0xfd // xor r13d,edi LONG $0xf07b63c4; WORD $0x06f3 // rorx r14d,ebx,0x6 LONG $0x20048d47 // lea r8d,[r8+r12*1] WORD $0x3145; BYTE $0xf5 // xor r13d,r14d WORD $0x8944; BYTE $0xcf // mov edi,r9d LONG $0xf07b43c4; WORD $0x16e1 // rorx r12d,r9d,0x16 LONG $0x28048d47 // lea r8d,[r8+r13*1] WORD $0x3144; BYTE $0xd7 // xor edi,r10d LONG $0xf07b43c4; WORD $0x0df1 // rorx r14d,r9d,0xd LONG $0xf07b43c4; WORD $0x02e9 // rorx r13d,r9d,0x2 LONG $0x00048d42 // lea eax,[rax+r8*1] WORD $0x2141; BYTE $0xff // and r15d,edi WORD $0x3145; BYTE $0xe6 // xor r14d,r12d WORD $0x3145; BYTE $0xd7 // xor r15d,r10d WORD $0x3145; BYTE $0xee // xor r14d,r13d LONG $0x38048d47 // lea r8d,[r8+r15*1] WORD $0x8941; BYTE $0xdc // mov r12d,ebx // ROUND(R8, R9, R10, R11, AX, BX, CX, DX, R12, R13, R14, R15, DI, SP, 0x20) LONG $0x20245403 // add edx,[rsp+0x20] WORD $0x2141; BYTE $0xc4 // and r12d,eax LONG $0xf07b63c4; WORD $0x19e8 // rorx r13d,eax,0x19 LONG $0xf07b63c4; WORD $0x0bf8 // rorx r15d,eax,0xb LONG $0x30048d47 // lea r8d,[r8+r14*1] LONG $0x22148d42 // lea edx,[rdx+r12*1] LONG $0xf27862c4; BYTE $0xe1 // andn r12d,eax,ecx WORD $0x3145; BYTE $0xfd // xor r13d,r15d LONG $0xf07b63c4; WORD $0x06f0 // rorx r14d,eax,0x6 LONG $0x22148d42 // lea edx,[rdx+r12*1] WORD $0x3145; BYTE $0xf5 // xor r13d,r14d WORD $0x8945; BYTE $0xc7 // mov r15d,r8d LONG $0xf07b43c4; WORD $0x16e0 // rorx r12d,r8d,0x16 LONG $0x2a148d42 // lea edx,[rdx+r13*1] WORD $0x3145; BYTE $0xcf // xor r15d,r9d LONG $0xf07b43c4; WORD $0x0df0 // rorx r14d,r8d,0xd LONG $0xf07b43c4; WORD $0x02e8 // rorx r13d,r8d,0x2 LONG $0x131c8d45 // lea r11d,[r11+rdx*1] WORD $0x2144; BYTE $0xff // and edi,r15d WORD $0x3145; BYTE $0xe6 // xor r14d,r12d WORD $0x3144; BYTE $0xcf // xor edi,r9d WORD $0x3145; BYTE $0xee // xor r14d,r13d WORD $0x148d; BYTE $0x3a // lea edx,[rdx+rdi*1] WORD $0x8941; BYTE $0xc4 // mov r12d,eax // ROUND(DX, R8, R9, R10, R11, AX, BX, CX, R12, R13, R14, DI, R15, SP, 0x24) LONG $0x24244c03 // add ecx,[rsp+0x24] WORD $0x2145; BYTE $0xdc // and r12d,r11d LONG $0xf07b43c4; WORD $0x19eb // rorx r13d,r11d,0x19 LONG $0xf07bc3c4; WORD $0x0bfb // rorx edi,r11d,0xb LONG $0x32148d42 // lea edx,[rdx+r14*1] LONG $0x210c8d42 // lea ecx,[rcx+r12*1] LONG $0xf22062c4; BYTE $0xe3 // andn r12d,r11d,ebx WORD $0x3141; BYTE $0xfd // xor r13d,edi LONG $0xf07b43c4; WORD $0x06f3 // rorx r14d,r11d,0x6 LONG $0x210c8d42 // lea ecx,[rcx+r12*1] WORD $0x3145; BYTE $0xf5 // xor r13d,r14d WORD $0xd789 // mov edi,edx LONG $0xf07b63c4; WORD $0x16e2 // rorx r12d,edx,0x16 LONG $0x290c8d42 // lea ecx,[rcx+r13*1] WORD $0x3144; BYTE $0xc7 // xor edi,r8d LONG $0xf07b63c4; WORD $0x0df2 // rorx r14d,edx,0xd LONG $0xf07b63c4; WORD $0x02ea // rorx r13d,edx,0x2 LONG $0x0a148d45 // lea r10d,[r10+rcx*1] WORD $0x2141; BYTE $0xff // and r15d,edi WORD $0x3145; BYTE $0xe6 // xor r14d,r12d WORD $0x3145; BYTE $0xc7 // xor r15d,r8d WORD $0x3145; BYTE $0xee // xor r14d,r13d LONG $0x390c8d42 // lea ecx,[rcx+r15*1] WORD $0x8945; BYTE $0xdc // mov r12d,r11d // ROUND(CX, DX, R8, R9, R10, R11, AX, BX, R12, R13, R14, R15, DI, SP, 0x28) LONG $0x28245c03 // add ebx,[rsp+0x28] WORD $0x2145; BYTE $0xd4 // and r12d,r10d LONG $0xf07b43c4; WORD $0x19ea // rorx r13d,r10d,0x19 LONG $0xf07b43c4; WORD $0x0bfa // rorx r15d,r10d,0xb LONG $0x310c8d42 // lea ecx,[rcx+r14*1] LONG $0x231c8d42 // lea ebx,[rbx+r12*1] LONG $0xf22862c4; BYTE $0xe0 // andn r12d,r10d,eax WORD $0x3145; BYTE $0xfd // xor r13d,r15d LONG $0xf07b43c4; WORD $0x06f2 // rorx r14d,r10d,0x6 LONG $0x231c8d42 // lea ebx,[rbx+r12*1] WORD $0x3145; BYTE $0xf5 // xor r13d,r14d WORD $0x8941; BYTE $0xcf // mov r15d,ecx LONG $0xf07b63c4; WORD $0x16e1 // rorx r12d,ecx,0x16 LONG $0x2b1c8d42 // lea ebx,[rbx+r13*1] WORD $0x3141; BYTE $0xd7 // xor r15d,edx LONG $0xf07b63c4; WORD $0x0df1 // rorx r14d,ecx,0xd LONG $0xf07b63c4; WORD $0x02e9 // rorx r13d,ecx,0x2 LONG $0x190c8d45 // lea r9d,[r9+rbx*1] WORD $0x2144; BYTE $0xff // and edi,r15d WORD $0x3145; BYTE $0xe6 // xor r14d,r12d WORD $0xd731 // xor edi,edx WORD $0x3145; BYTE $0xee // xor r14d,r13d WORD $0x1c8d; BYTE $0x3b // lea ebx,[rbx+rdi*1] WORD $0x8945; BYTE $0xd4 // mov r12d,r10d // ROUND(BX, CX, DX, R8, R9, R10, R11, AX, R12, R13, R14, DI, R15, SP, 0x2c) LONG $0x2c244403 // add eax,[rsp+0x2c] WORD $0x2145; BYTE $0xcc // and r12d,r9d LONG $0xf07b43c4; WORD $0x19e9 // rorx r13d,r9d,0x19 LONG $0xf07bc3c4; WORD $0x0bf9 // rorx edi,r9d,0xb LONG $0x331c8d42 // lea ebx,[rbx+r14*1] LONG $0x20048d42 // lea eax,[rax+r12*1] LONG $0xf23042c4; BYTE $0xe3 // andn r12d,r9d,r11d WORD $0x3141; BYTE $0xfd // xor r13d,edi LONG $0xf07b43c4; WORD $0x06f1 // rorx r14d,r9d,0x6 LONG $0x20048d42 // lea eax,[rax+r12*1] WORD $0x3145; BYTE $0xf5 // xor r13d,r14d WORD $0xdf89 // mov edi,ebx LONG $0xf07b63c4; WORD $0x16e3 // rorx r12d,ebx,0x16 LONG $0x28048d42 // lea eax,[rax+r13*1] WORD $0xcf31 // xor edi,ecx LONG $0xf07b63c4; WORD $0x0df3 // rorx r14d,ebx,0xd LONG $0xf07b63c4; WORD $0x02eb // rorx r13d,ebx,0x2 LONG $0x00048d45 // lea r8d,[r8+rax*1] WORD $0x2141; BYTE $0xff // and r15d,edi WORD $0x3145; BYTE $0xe6 // xor r14d,r12d WORD $0x3141; BYTE $0xcf // xor r15d,ecx WORD $0x3145; BYTE $0xee // xor r14d,r13d LONG $0x38048d42 // lea eax,[rax+r15*1] WORD $0x8945; BYTE $0xcc // mov r12d,r9d MOVQ 0x200(SP), DI // $_ctx ADDQ R14, AX LEAQ 0x1c0(SP), BP ADDL (DI), AX ADDL 4(DI), BX ADDL 8(DI), CX ADDL 12(DI), DX ADDL 16(DI), R8 ADDL 20(DI), R9 ADDL 24(DI), R10 ADDL 28(DI), R11 MOVL AX, (DI) MOVL BX, 4(DI) MOVL CX, 8(DI) MOVL DX, 12(DI) MOVL R8, 16(DI) MOVL R9, 20(DI) MOVL R10, 24(DI) MOVL R11, 28(DI) CMPQ SI, 0x50(BP) // $_end JE done XORQ R14, R14 MOVQ BX, DI XORQ CX, DI // magic MOVQ R9, R12 loop2: // ROUND(AX, BX, CX, DX, R8, R9, R10, R11, R12, R13, R14, R15, DI, BP, 0x10) LONG $0x105d0344 // add r11d,[rbp+0x10] WORD $0x2145; BYTE $0xc4 // and r12d,r8d LONG $0xf07b43c4; WORD $0x19e8 // rorx r13d,r8d,0x19 LONG $0xf07b43c4; WORD $0x0bf8 // rorx r15d,r8d,0xb LONG $0x30048d42 // lea eax,[rax+r14*1] LONG $0x231c8d47 // lea r11d,[r11+r12*1] LONG $0xf23842c4; BYTE $0xe2 // andn r12d,r8d,r10d WORD $0x3145; BYTE $0xfd // xor r13d,r15d LONG $0xf07b43c4; WORD $0x06f0 // rorx r14d,r8d,0x6 LONG $0x231c8d47 // lea r11d,[r11+r12*1] WORD $0x3145; BYTE $0xf5 // xor r13d,r14d WORD $0x8941; BYTE $0xc7 // mov r15d,eax LONG $0xf07b63c4; WORD $0x16e0 // rorx r12d,eax,0x16 LONG $0x2b1c8d47 // lea r11d,[r11+r13*1] WORD $0x3141; BYTE $0xdf // xor r15d,ebx LONG $0xf07b63c4; WORD $0x0df0 // rorx r14d,eax,0xd LONG $0xf07b63c4; WORD $0x02e8 // rorx r13d,eax,0x2 LONG $0x1a148d42 // lea edx,[rdx+r11*1] WORD $0x2144; BYTE $0xff // and edi,r15d WORD $0x3145; BYTE $0xe6 // xor r14d,r12d WORD $0xdf31 // xor edi,ebx WORD $0x3145; BYTE $0xee // xor r14d,r13d LONG $0x3b1c8d45 // lea r11d,[r11+rdi*1] WORD $0x8945; BYTE $0xc4 // mov r12d,r8d // ROUND(R11, AX, BX, CX, DX, R8, R9, R10, R12, R13, R14, DI, R15, BP, 0x14) LONG $0x14550344 // add r10d,[rbp+0x14] WORD $0x2141; BYTE $0xd4 // and r12d,edx LONG $0xf07b63c4; WORD $0x19ea // rorx r13d,edx,0x19 LONG $0xf07be3c4; WORD $0x0bfa // rorx edi,edx,0xb LONG $0x331c8d47 // lea r11d,[r11+r14*1] LONG $0x22148d47 // lea r10d,[r10+r12*1] LONG $0xf26842c4; BYTE $0xe1 // andn r12d,edx,r9d WORD $0x3141; BYTE $0xfd // xor r13d,edi LONG $0xf07b63c4; WORD $0x06f2 // rorx r14d,edx,0x6 LONG $0x22148d47 // lea r10d,[r10+r12*1] WORD $0x3145; BYTE $0xf5 // xor r13d,r14d WORD $0x8944; BYTE $0xdf // mov edi,r11d LONG $0xf07b43c4; WORD $0x16e3 // rorx r12d,r11d,0x16 LONG $0x2a148d47 // lea r10d,[r10+r13*1] WORD $0xc731 // xor edi,eax LONG $0xf07b43c4; WORD $0x0df3 // rorx r14d,r11d,0xd LONG $0xf07b43c4; WORD $0x02eb // rorx r13d,r11d,0x2 LONG $0x110c8d42 // lea ecx,[rcx+r10*1] WORD $0x2141; BYTE $0xff // and r15d,edi WORD $0x3145; BYTE $0xe6 // xor r14d,r12d WORD $0x3141; BYTE $0xc7 // xor r15d,eax WORD $0x3145; BYTE $0xee // xor r14d,r13d LONG $0x3a148d47 // lea r10d,[r10+r15*1] WORD $0x8941; BYTE $0xd4 // mov r12d,edx // ROUND(R10, R11, AX, BX, CX, DX, R8, R9, R12, R13, R14, R15, DI, BP, 0x18) LONG $0x184d0344 // add r9d,[rbp+0x18] WORD $0x2141; BYTE $0xcc // and r12d,ecx LONG $0xf07b63c4; WORD $0x19e9 // rorx r13d,ecx,0x19 LONG $0xf07b63c4; WORD $0x0bf9 // rorx r15d,ecx,0xb LONG $0x32148d47 // lea r10d,[r10+r14*1] LONG $0x210c8d47 // lea r9d,[r9+r12*1] LONG $0xf27042c4; BYTE $0xe0 // andn r12d,ecx,r8d WORD $0x3145; BYTE $0xfd // xor r13d,r15d LONG $0xf07b63c4; WORD $0x06f1 // rorx r14d,ecx,0x6 LONG $0x210c8d47 // lea r9d,[r9+r12*1] WORD $0x3145; BYTE $0xf5 // xor r13d,r14d WORD $0x8945; BYTE $0xd7 // mov r15d,r10d LONG $0xf07b43c4; WORD $0x16e2 // rorx r12d,r10d,0x16 LONG $0x290c8d47 // lea r9d,[r9+r13*1] WORD $0x3145; BYTE $0xdf // xor r15d,r11d LONG $0xf07b43c4; WORD $0x0df2 // rorx r14d,r10d,0xd LONG $0xf07b43c4; WORD $0x02ea // rorx r13d,r10d,0x2 LONG $0x0b1c8d42 // lea ebx,[rbx+r9*1] WORD $0x2144; BYTE $0xff // and edi,r15d WORD $0x3145; BYTE $0xe6 // xor r14d,r12d WORD $0x3144; BYTE $0xdf // xor edi,r11d WORD $0x3145; BYTE $0xee // xor r14d,r13d LONG $0x390c8d45 // lea r9d,[r9+rdi*1] WORD $0x8941; BYTE $0xcc // mov r12d,ecx // ROUND(R9, R10, R11, AX, BX, CX, DX, R8, R12, R13, R14, DI, R15, BP, 0x1c) LONG $0x1c450344 // add r8d,[rbp+0x1c] WORD $0x2141; BYTE $0xdc // and r12d,ebx LONG $0xf07b63c4; WORD $0x19eb // rorx r13d,ebx,0x19 LONG $0xf07be3c4; WORD $0x0bfb // rorx edi,ebx,0xb LONG $0x310c8d47 // lea r9d,[r9+r14*1] LONG $0x20048d47 // lea r8d,[r8+r12*1] LONG $0xf26062c4; BYTE $0xe2 // andn r12d,ebx,edx WORD $0x3141; BYTE $0xfd // xor r13d,edi LONG $0xf07b63c4; WORD $0x06f3 // rorx r14d,ebx,0x6 LONG $0x20048d47 // lea r8d,[r8+r12*1] WORD $0x3145; BYTE $0xf5 // xor r13d,r14d WORD $0x8944; BYTE $0xcf // mov edi,r9d LONG $0xf07b43c4; WORD $0x16e1 // rorx r12d,r9d,0x16 LONG $0x28048d47 // lea r8d,[r8+r13*1] WORD $0x3144; BYTE $0xd7 // xor edi,r10d LONG $0xf07b43c4; WORD $0x0df1 // rorx r14d,r9d,0xd LONG $0xf07b43c4; WORD $0x02e9 // rorx r13d,r9d,0x2 LONG $0x00048d42 // lea eax,[rax+r8*1] WORD $0x2141; BYTE $0xff // and r15d,edi WORD $0x3145; BYTE $0xe6 // xor r14d,r12d WORD $0x3145; BYTE $0xd7 // xor r15d,r10d WORD $0x3145; BYTE $0xee // xor r14d,r13d LONG $0x38048d47 // lea r8d,[r8+r15*1] WORD $0x8941; BYTE $0xdc // mov r12d,ebx // ROUND(R8, R9, R10, R11, AX, BX, CX, DX, R12, R13, R14, R15, DI, BP, 0x30) WORD $0x5503; BYTE $0x30 // add edx,[rbp+0x30] WORD $0x2141; BYTE $0xc4 // and r12d,eax LONG $0xf07b63c4; WORD $0x19e8 // rorx r13d,eax,0x19 LONG $0xf07b63c4; WORD $0x0bf8 // rorx r15d,eax,0xb LONG $0x30048d47 // lea r8d,[r8+r14*1] LONG $0x22148d42 // lea edx,[rdx+r12*1] LONG $0xf27862c4; BYTE $0xe1 // andn r12d,eax,ecx WORD $0x3145; BYTE $0xfd // xor r13d,r15d LONG $0xf07b63c4; WORD $0x06f0 // rorx r14d,eax,0x6 LONG $0x22148d42 // lea edx,[rdx+r12*1] WORD $0x3145; BYTE $0xf5 // xor r13d,r14d WORD $0x8945; BYTE $0xc7 // mov r15d,r8d LONG $0xf07b43c4; WORD $0x16e0 // rorx r12d,r8d,0x16 LONG $0x2a148d42 // lea edx,[rdx+r13*1] WORD $0x3145; BYTE $0xcf // xor r15d,r9d LONG $0xf07b43c4; WORD $0x0df0 // rorx r14d,r8d,0xd LONG $0xf07b43c4; WORD $0x02e8 // rorx r13d,r8d,0x2 LONG $0x131c8d45 // lea r11d,[r11+rdx*1] WORD $0x2144; BYTE $0xff // and edi,r15d WORD $0x3145; BYTE $0xe6 // xor r14d,r12d WORD $0x3144; BYTE $0xcf // xor edi,r9d WORD $0x3145; BYTE $0xee // xor r14d,r13d WORD $0x148d; BYTE $0x3a // lea edx,[rdx+rdi*1] WORD $0x8941; BYTE $0xc4 // mov r12d,eax // ROUND(DX, R8, R9, R10, R11, AX, BX, CX, R12, R13, R14, DI, R15, BP, 0x34) WORD $0x4d03; BYTE $0x34 // add ecx,[rbp+0x34] WORD $0x2145; BYTE $0xdc // and r12d,r11d LONG $0xf07b43c4; WORD $0x19eb // rorx r13d,r11d,0x19 LONG $0xf07bc3c4; WORD $0x0bfb // rorx edi,r11d,0xb LONG $0x32148d42 // lea edx,[rdx+r14*1] LONG $0x210c8d42 // lea ecx,[rcx+r12*1] LONG $0xf22062c4; BYTE $0xe3 // andn r12d,r11d,ebx WORD $0x3141; BYTE $0xfd // xor r13d,edi LONG $0xf07b43c4; WORD $0x06f3 // rorx r14d,r11d,0x6 LONG $0x210c8d42 // lea ecx,[rcx+r12*1] WORD $0x3145; BYTE $0xf5 // xor r13d,r14d WORD $0xd789 // mov edi,edx LONG $0xf07b63c4; WORD $0x16e2 // rorx r12d,edx,0x16 LONG $0x290c8d42 // lea ecx,[rcx+r13*1] WORD $0x3144; BYTE $0xc7 // xor edi,r8d LONG $0xf07b63c4; WORD $0x0df2 // rorx r14d,edx,0xd LONG $0xf07b63c4; WORD $0x02ea // rorx r13d,edx,0x2 LONG $0x0a148d45 // lea r10d,[r10+rcx*1] WORD $0x2141; BYTE $0xff // and r15d,edi WORD $0x3145; BYTE $0xe6 // xor r14d,r12d WORD $0x3145; BYTE $0xc7 // xor r15d,r8d WORD $0x3145; BYTE $0xee // xor r14d,r13d LONG $0x390c8d42 // lea ecx,[rcx+r15*1] WORD $0x8945; BYTE $0xdc // mov r12d,r11d // ROUND(CX, DX, R8, R9, R10, R11, AX, BX, R12, R13, R14, R15, DI, BP, 0x38) WORD $0x5d03; BYTE $0x38 // add ebx,[rbp+0x38] WORD $0x2145; BYTE $0xd4 // and r12d,r10d LONG $0xf07b43c4; WORD $0x19ea // rorx r13d,r10d,0x19 LONG $0xf07b43c4; WORD $0x0bfa // rorx r15d,r10d,0xb LONG $0x310c8d42 // lea ecx,[rcx+r14*1] LONG $0x231c8d42 // lea ebx,[rbx+r12*1] LONG $0xf22862c4; BYTE $0xe0 // andn r12d,r10d,eax WORD $0x3145; BYTE $0xfd // xor r13d,r15d LONG $0xf07b43c4; WORD $0x06f2 // rorx r14d,r10d,0x6 LONG $0x231c8d42 // lea ebx,[rbx+r12*1] WORD $0x3145; BYTE $0xf5 // xor r13d,r14d WORD $0x8941; BYTE $0xcf // mov r15d,ecx LONG $0xf07b63c4; WORD $0x16e1 // rorx r12d,ecx,0x16 LONG $0x2b1c8d42 // lea ebx,[rbx+r13*1] WORD $0x3141; BYTE $0xd7 // xor r15d,edx LONG $0xf07b63c4; WORD $0x0df1 // rorx r14d,ecx,0xd LONG $0xf07b63c4; WORD $0x02e9 // rorx r13d,ecx,0x2 LONG $0x190c8d45 // lea r9d,[r9+rbx*1] WORD $0x2144; BYTE $0xff // and edi,r15d WORD $0x3145; BYTE $0xe6 // xor r14d,r12d WORD $0xd731 // xor edi,edx WORD $0x3145; BYTE $0xee // xor r14d,r13d WORD $0x1c8d; BYTE $0x3b // lea ebx,[rbx+rdi*1] WORD $0x8945; BYTE $0xd4 // mov r12d,r10d // ROUND(BX, CX, DX, R8, R9, R10, R11, AX, R12, R13, R14, DI, R15, BP, 0x3c) WORD $0x4503; BYTE $0x3c // add eax,[rbp+0x3c] WORD $0x2145; BYTE $0xcc // and r12d,r9d LONG $0xf07b43c4; WORD $0x19e9 // rorx r13d,r9d,0x19 LONG $0xf07bc3c4; WORD $0x0bf9 // rorx edi,r9d,0xb LONG $0x331c8d42 // lea ebx,[rbx+r14*1] LONG $0x20048d42 // lea eax,[rax+r12*1] LONG $0xf23042c4; BYTE $0xe3 // andn r12d,r9d,r11d WORD $0x3141; BYTE $0xfd // xor r13d,edi LONG $0xf07b43c4; WORD $0x06f1 // rorx r14d,r9d,0x6 LONG $0x20048d42 // lea eax,[rax+r12*1] WORD $0x3145; BYTE $0xf5 // xor r13d,r14d WORD $0xdf89 // mov edi,ebx LONG $0xf07b63c4; WORD $0x16e3 // rorx r12d,ebx,0x16 LONG $0x28048d42 // lea eax,[rax+r13*1] WORD $0xcf31 // xor edi,ecx LONG $0xf07b63c4; WORD $0x0df3 // rorx r14d,ebx,0xd LONG $0xf07b63c4; WORD $0x02eb // rorx r13d,ebx,0x2 LONG $0x00048d45 // lea r8d,[r8+rax*1] WORD $0x2141; BYTE $0xff // and r15d,edi WORD $0x3145; BYTE $0xe6 // xor r14d,r12d WORD $0x3141; BYTE $0xcf // xor r15d,ecx WORD $0x3145; BYTE $0xee // xor r14d,r13d LONG $0x38048d42 // lea eax,[rax+r15*1] WORD $0x8945; BYTE $0xcc // mov r12d,r9d ADDQ $-0x40, BP CMPQ BP, SP JAE loop2 MOVQ 0x200(SP), DI // $_ctx ADDQ R14, AX ADDQ $0x1c0, SP ADDL (DI), AX ADDL 4(DI), BX ADDL 8(DI), CX ADDL 12(DI), DX ADDL 16(DI), R8 ADDL 20(DI), R9 ADDQ $0x80, SI // input += 2 ADDL 24(DI), R10 MOVQ SI, R12 ADDL 28(DI), R11 CMPQ SI, 0x50(SP) // input == _end MOVL AX, (DI) LONG $0xe4440f4c // cmove r12,rsp /* next block or stale data */ MOVL AX, (DI) MOVL BX, 4(DI) MOVL CX, 8(DI) MOVL DX, 12(DI) MOVL R8, 16(DI) MOVL R9, 20(DI) MOVL R10, 24(DI) MOVL R11, 28(DI) JBE loop0 LEAQ (SP), BP done: MOVQ BP, SP MOVQ 0x58(SP), SP // restore saved stack pointer WORD $0xf8c5; BYTE $0x77 // vzeroupper RET