// File: /workspace/github_c_makefile_star2_O0/mjosaarinen[P]brutus/crypto_aead/minalpherv11/ref/minalpher.c
// Function: T
static void T( 
  unsigned char *_m_      /* I/O  Message     */
  )
{
  int i,j;
  unsigned char t0,t1,t2,t3,temp[16];

  /*--- ShuffleRows ---*/
  for( i=0; i<4; i++ ){
    t0 = _m_[SR1[i]];
    t1 = _m_[SR2[i]+8];
    t2 = _m_[iSR1[i]+16];
    t3 = _m_[iSR2[i]+24];

    if( i == 0 ){
      t2 = (t2>>4) | (t2<<4);
    }else if( i == 1 ){
      t0 = (t0>>4) | (t0<<4);
    }else if( i == 2 ){
      t1 = (t1>>4) | (t1<<4);
    }else if( i == 3 ){
      t3 = (t3>>4) | (t3<<4);
    }

    temp[i]    = t0;
    temp[i+4]  = t1;
    temp[i+8]  = t2;
    temp[i+12] = t3;
  }

  for( i=0; i<4; i++ ){
    _m_[i]    = temp[i];
    _m_[i+8]  = temp[i+4];
    _m_[i+16] = temp[i+8];
    _m_[i+24] = temp[i+12];
  }       

  for( i=0; i<4; i++ ){
    t0 = _m_[iSR1[i]+4];
    t1 = _m_[iSR2[i]+8+4];
    t2 = _m_[SR1[i]+16+4];
    t3 = _m_[SR2[i]+24+4];

    if( i == 0 ){
      t0 = (t0>>4) | (t0<<4);
    }else if( i == 1 ){
      t2 = (t2>>4) | (t2<<4);
    }else if( i == 2 ){
      t3 = (t3>>4) | (t3<<4);
    }else if( i == 3 ){
      t1 = (t1>>4) | (t1<<4);
    }

    temp[i]    = t0;
    temp[i+4]  = t1;
    temp[i+8]  = t2;
    temp[i+12] = t3;
  }

  for( i=0; i<4; i++ ){
    _m_[i+4]    = temp[i];
    _m_[i+8+4]  = temp[i+4];
    _m_[i+16+4] = temp[i+8];
    _m_[i+24+4] = temp[i+12];
  }       

  /*=== SwapMatrices ===*/
  for( i=0; i<BLOCK_SIZE; i+=8 ){
    for( j=0; j<4; j++ ){
      t0 = _m_[i+j];
      _m_[i+j] = _m_[i+j+4];
      _m_[i+j+4] = t0;
    }
  }
}

// Assembly:
movq %rdi, -0x8(%rsp)
movl $0x0, -0xc(%rsp)
cmpl $0x4, -0xc(%rsp)
jge 0x3027
movq -0x8(%rsp), %rax
movslq -0xc(%rsp), %rdx
leaq 0x1127(%rip), %rcx      # 0x4010
movslq (%rcx,%rdx,4), %rcx
movb (%rax,%rcx), %al
movb %al, -0x11(%rsp)
movq -0x8(%rsp), %rax
movslq -0xc(%rsp), %rdx
leaq 0x111b(%rip), %rcx      # 0x4020
movl (%rcx,%rdx,4), %ecx
addl $0x8, %ecx
movslq %ecx, %rcx
movb (%rax,%rcx), %al
movb %al, -0x12(%rsp)
movq -0x8(%rsp), %rax
movslq -0xc(%rsp), %rdx
leaq 0x110a(%rip), %rcx      # 0x4030
movl (%rcx,%rdx,4), %ecx
addl $0x10, %ecx
movslq %ecx, %rcx
movb (%rax,%rcx), %al
movb %al, -0x13(%rsp)
movq -0x8(%rsp), %rax
movslq -0xc(%rsp), %rdx
leaq 0x10f9(%rip), %rcx      # 0x4040
movl (%rcx,%rdx,4), %ecx
addl $0x18, %ecx
movslq %ecx, %rcx
movb (%rax,%rcx), %al
movb %al, -0x14(%rsp)
cmpl $0x0, -0xc(%rsp)
jne 0x2f76
movzbl -0x13(%rsp), %eax
sarl $0x4, %eax
movzbl -0x13(%rsp), %ecx
shll $0x4, %ecx
orl %ecx, %eax
movb %al, -0x13(%rsp)
jmp 0x2fd7
cmpl $0x1, -0xc(%rsp)
jne 0x2f95
movzbl -0x11(%rsp), %eax
sarl $0x4, %eax
movzbl -0x11(%rsp), %ecx
shll $0x4, %ecx
orl %ecx, %eax
movb %al, -0x11(%rsp)
jmp 0x2fd5
cmpl $0x2, -0xc(%rsp)
jne 0x2fb4
movzbl -0x12(%rsp), %eax
sarl $0x4, %eax
movzbl -0x12(%rsp), %ecx
shll $0x4, %ecx
orl %ecx, %eax
movb %al, -0x12(%rsp)
jmp 0x2fd3
cmpl $0x3, -0xc(%rsp)
jne 0x2fd1
movzbl -0x14(%rsp), %eax
sarl $0x4, %eax
movzbl -0x14(%rsp), %ecx
shll $0x4, %ecx
orl %ecx, %eax
movb %al, -0x14(%rsp)
jmp 0x2fd3
jmp 0x2fd5
jmp 0x2fd7
movb -0x11(%rsp), %cl
movslq -0xc(%rsp), %rax
movb %cl, -0x28(%rsp,%rax)
movb -0x12(%rsp), %cl
movl -0xc(%rsp), %eax
addl $0x4, %eax
cltq
movb %cl, -0x28(%rsp,%rax)
movb -0x13(%rsp), %cl
movl -0xc(%rsp), %eax
addl $0x8, %eax
cltq
movb %cl, -0x28(%rsp,%rax)
movb -0x14(%rsp), %cl
movl -0xc(%rsp), %eax
addl $0xc, %eax
cltq
movb %cl, -0x28(%rsp,%rax)
movl -0xc(%rsp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rsp)
jmp 0x2ecd
movl $0x0, -0xc(%rsp)
cmpl $0x4, -0xc(%rsp)
jge 0x30bd
movslq -0xc(%rsp), %rax
movb -0x28(%rsp,%rax), %dl
movq -0x8(%rsp), %rax
movslq -0xc(%rsp), %rcx
movb %dl, (%rax,%rcx)
movl -0xc(%rsp), %eax
addl $0x4, %eax
cltq
movb -0x28(%rsp,%rax), %dl
movq -0x8(%rsp), %rax
movl -0xc(%rsp), %ecx
addl $0x8, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movl -0xc(%rsp), %eax
addl $0x8, %eax
cltq
movb -0x28(%rsp,%rax), %dl
movq -0x8(%rsp), %rax
movl -0xc(%rsp), %ecx
addl $0x10, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movl -0xc(%rsp), %eax
addl $0xc, %eax
cltq
movb -0x28(%rsp,%rax), %dl
movq -0x8(%rsp), %rax
movl -0xc(%rsp), %ecx
addl $0x18, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movl -0xc(%rsp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rsp)
jmp 0x302f
movl $0x0, -0xc(%rsp)
cmpl $0x4, -0xc(%rsp)
jge 0x322d
movq -0x8(%rsp), %rax
movslq -0xc(%rsp), %rdx
leaq 0xf4f(%rip), %rcx       # 0x4030
movl (%rcx,%rdx,4), %ecx
addl $0x4, %ecx
movslq %ecx, %rcx
movb (%rax,%rcx), %al
movb %al, -0x11(%rsp)
movq -0x8(%rsp), %rax
movslq -0xc(%rsp), %rdx
leaq 0xf3e(%rip), %rcx       # 0x4040
movl (%rcx,%rdx,4), %ecx
addl $0x8, %ecx
addl $0x4, %ecx
movslq %ecx, %rcx
movb (%rax,%rcx), %al
movb %al, -0x12(%rsp)
movq -0x8(%rsp), %rax
movslq -0xc(%rsp), %rdx
leaq 0xeea(%rip), %rcx       # 0x4010
movl (%rcx,%rdx,4), %ecx
addl $0x10, %ecx
addl $0x4, %ecx
movslq %ecx, %rcx
movb (%rax,%rcx), %al
movb %al, -0x13(%rsp)
movq -0x8(%rsp), %rax
movslq -0xc(%rsp), %rdx
leaq 0xed6(%rip), %rcx       # 0x4020
movl (%rcx,%rdx,4), %ecx
addl $0x18, %ecx
addl $0x4, %ecx
movslq %ecx, %rcx
movb (%rax,%rcx), %al
movb %al, -0x14(%rsp)
cmpl $0x0, -0xc(%rsp)
jne 0x317c
movzbl -0x11(%rsp), %eax
sarl $0x4, %eax
movzbl -0x11(%rsp), %ecx
shll $0x4, %ecx
orl %ecx, %eax
movb %al, -0x11(%rsp)
jmp 0x31dd
cmpl $0x1, -0xc(%rsp)
jne 0x319b
movzbl -0x13(%rsp), %eax
sarl $0x4, %eax
movzbl -0x13(%rsp), %ecx
shll $0x4, %ecx
orl %ecx, %eax
movb %al, -0x13(%rsp)
jmp 0x31db
cmpl $0x2, -0xc(%rsp)
jne 0x31ba
movzbl -0x14(%rsp), %eax
sarl $0x4, %eax
movzbl -0x14(%rsp), %ecx
shll $0x4, %ecx
orl %ecx, %eax
movb %al, -0x14(%rsp)
jmp 0x31d9
cmpl $0x3, -0xc(%rsp)
jne 0x31d7
movzbl -0x12(%rsp), %eax
sarl $0x4, %eax
movzbl -0x12(%rsp), %ecx
shll $0x4, %ecx
orl %ecx, %eax
movb %al, -0x12(%rsp)
jmp 0x31d9
jmp 0x31db
jmp 0x31dd
movb -0x11(%rsp), %cl
movslq -0xc(%rsp), %rax
movb %cl, -0x28(%rsp,%rax)
movb -0x12(%rsp), %cl
movl -0xc(%rsp), %eax
addl $0x4, %eax
cltq
movb %cl, -0x28(%rsp,%rax)
movb -0x13(%rsp), %cl
movl -0xc(%rsp), %eax
addl $0x8, %eax
cltq
movb %cl, -0x28(%rsp,%rax)
movb -0x14(%rsp), %cl
movl -0xc(%rsp), %eax
addl $0xc, %eax
cltq
movb %cl, -0x28(%rsp,%rax)
movl -0xc(%rsp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rsp)
jmp 0x30c5
movl $0x0, -0xc(%rsp)
cmpl $0x4, -0xc(%rsp)
jge 0x32d1
movslq -0xc(%rsp), %rax
movb -0x28(%rsp,%rax), %dl
movq -0x8(%rsp), %rax
movl -0xc(%rsp), %ecx
addl $0x4, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movl -0xc(%rsp), %eax
addl $0x4, %eax
cltq
movb -0x28(%rsp,%rax), %dl
movq -0x8(%rsp), %rax
movl -0xc(%rsp), %ecx
addl $0x8, %ecx
addl $0x4, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movl -0xc(%rsp), %eax
addl $0x8, %eax
cltq
movb -0x28(%rsp,%rax), %dl
movq -0x8(%rsp), %rax
movl -0xc(%rsp), %ecx
addl $0x10, %ecx
addl $0x4, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movl -0xc(%rsp), %eax
addl $0xc, %eax
cltq
movb -0x28(%rsp,%rax), %dl
movq -0x8(%rsp), %rax
movl -0xc(%rsp), %ecx
addl $0x18, %ecx
addl $0x4, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movl -0xc(%rsp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rsp)
jmp 0x3235
movl $0x0, -0xc(%rsp)
cmpl $0x20, -0xc(%rsp)
jge 0x336c
movl $0x0, -0x10(%rsp)
cmpl $0x4, -0x10(%rsp)
jge 0x335a
movq -0x8(%rsp), %rax
movl -0xc(%rsp), %ecx
addl -0x10(%rsp), %ecx
movslq %ecx, %rcx
movb (%rax,%rcx), %al
movb %al, -0x11(%rsp)
movq -0x8(%rsp), %rax
movl -0xc(%rsp), %ecx
addl -0x10(%rsp), %ecx
addl $0x4, %ecx
movslq %ecx, %rcx
movb (%rax,%rcx), %dl
movq -0x8(%rsp), %rax
movl -0xc(%rsp), %ecx
addl -0x10(%rsp), %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movb -0x11(%rsp), %dl
movq -0x8(%rsp), %rax
movl -0xc(%rsp), %ecx
addl -0x10(%rsp), %ecx
addl $0x4, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movl -0x10(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rsp)
jmp 0x32ec
jmp 0x335c
movl -0xc(%rsp), %eax
addl $0x8, %eax
movl %eax, -0xc(%rsp)
jmp 0x32d9
retq
nopl (%rax)