// File: /workspace/github_c_makefile_star2_O0/mjosaarinen[P]brutus/crypto_aead/icepole128v2/ref/icepole.c
// Function: Mu
void Mu(ICESTATE SS, ICESTATE S)
{
    SS[0][0] = S[0][4] ^ S[1][0] ^ S[2][0] ^ S[3][0];
    SS[0][1] = S[0][0] ^ S[1][1] ^ S[2][1] ^ S[3][1];
    SS[0][2] = S[0][4] ^ S[0][1] ^ S[1][2] ^ S[2][2] ^ S[3][2];
    SS[0][3] = S[0][2] ^ S[1][3] ^ S[2][3] ^ S[3][3];
    SS[0][4] = S[0][3] ^ S[1][4] ^ S[2][4] ^ S[3][4];

    SS[1][0] = S[0][0] ^ S[1][0] ^ S[2][1] ^ S[3][4];
    SS[1][1] = S[0][1] ^ S[1][1] ^ S[2][2] ^ S[2][0] ^ S[3][0];
    SS[1][2] = S[0][2] ^ S[1][2] ^ S[2][3] ^ S[3][4] ^ S[3][1];
    SS[1][3] = S[0][3] ^ S[1][3] ^ S[2][4] ^ S[3][2];
    SS[1][4] = S[0][4] ^ S[1][4] ^ S[2][0] ^ S[3][3];

    SS[2][0] = S[0][0] ^ S[1][4] ^ S[2][0] ^ S[3][1];
    SS[2][1] = S[0][1] ^ S[1][0] ^ S[2][1] ^ S[3][2] ^ S[3][0];
    SS[2][2] = S[0][2] ^ S[1][4] ^ S[1][1] ^ S[2][2] ^ S[3][3];
    SS[2][3] = S[0][3] ^ S[1][2] ^ S[2][3] ^ S[3][4];
    SS[2][4] = S[0][4] ^ S[1][3] ^ S[2][4] ^ S[3][0];

    SS[3][0] = S[0][0] ^ S[1][1] ^ S[2][4] ^ S[3][0];
    SS[3][1] = S[0][1] ^ S[1][2] ^ S[1][0] ^ S[2][0] ^ S[3][1];
    SS[3][2] = S[0][2] ^ S[1][3] ^ S[2][4] ^ S[2][1] ^ S[3][2];
    SS[3][3] = S[0][3] ^ S[1][4] ^ S[2][2] ^ S[3][3];
    SS[3][4] = S[0][4] ^ S[1][0] ^ S[2][3] ^ S[3][4];
}

// Assembly:
movq %rdi, -0x8(%rsp)
movq %rsi, -0x10(%rsp)
movq -0x10(%rsp), %rax
movq 0x20(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x28(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x50(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x78(%rax), %rcx
movq -0x8(%rsp), %rax
movq %rcx, (%rax)
movq -0x10(%rsp), %rax
movq (%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x30(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x58(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x80(%rax), %rcx
movq -0x8(%rsp), %rax
movq %rcx, 0x8(%rax)
movq -0x10(%rsp), %rax
movq 0x20(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x8(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x38(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x60(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x88(%rax), %rcx
movq -0x8(%rsp), %rax
movq %rcx, 0x10(%rax)
movq -0x10(%rsp), %rax
movq 0x10(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x40(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x68(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x90(%rax), %rcx
movq -0x8(%rsp), %rax
movq %rcx, 0x18(%rax)
movq -0x10(%rsp), %rax
movq 0x18(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x48(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x70(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x98(%rax), %rcx
movq -0x8(%rsp), %rax
movq %rcx, 0x20(%rax)
movq -0x10(%rsp), %rax
movq (%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x28(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x58(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x98(%rax), %rcx
movq -0x8(%rsp), %rax
movq %rcx, 0x28(%rax)
movq -0x10(%rsp), %rax
movq 0x8(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x30(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x60(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x50(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x78(%rax), %rcx
movq -0x8(%rsp), %rax
movq %rcx, 0x30(%rax)
movq -0x10(%rsp), %rax
movq 0x10(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x38(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x68(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x98(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x80(%rax), %rcx
movq -0x8(%rsp), %rax
movq %rcx, 0x38(%rax)
movq -0x10(%rsp), %rax
movq 0x18(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x40(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x70(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x88(%rax), %rcx
movq -0x8(%rsp), %rax
movq %rcx, 0x40(%rax)
movq -0x10(%rsp), %rax
movq 0x20(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x48(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x50(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x90(%rax), %rcx
movq -0x8(%rsp), %rax
movq %rcx, 0x48(%rax)
movq -0x10(%rsp), %rax
movq (%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x48(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x50(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x80(%rax), %rcx
movq -0x8(%rsp), %rax
movq %rcx, 0x50(%rax)
movq -0x10(%rsp), %rax
movq 0x8(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x28(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x58(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x88(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x78(%rax), %rcx
movq -0x8(%rsp), %rax
movq %rcx, 0x58(%rax)
movq -0x10(%rsp), %rax
movq 0x10(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x48(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x30(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x60(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x90(%rax), %rcx
movq -0x8(%rsp), %rax
movq %rcx, 0x60(%rax)
movq -0x10(%rsp), %rax
movq 0x18(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x38(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x68(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x98(%rax), %rcx
movq -0x8(%rsp), %rax
movq %rcx, 0x68(%rax)
movq -0x10(%rsp), %rax
movq 0x20(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x40(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x70(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x78(%rax), %rcx
movq -0x8(%rsp), %rax
movq %rcx, 0x70(%rax)
movq -0x10(%rsp), %rax
movq (%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x30(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x70(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x78(%rax), %rcx
movq -0x8(%rsp), %rax
movq %rcx, 0x78(%rax)
movq -0x10(%rsp), %rax
movq 0x8(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x38(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x28(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x50(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x80(%rax), %rcx
movq -0x8(%rsp), %rax
movq %rcx, 0x80(%rax)
movq -0x10(%rsp), %rax
movq 0x10(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x40(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x70(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x58(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x88(%rax), %rcx
movq -0x8(%rsp), %rax
movq %rcx, 0x88(%rax)
movq -0x10(%rsp), %rax
movq 0x18(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x48(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x60(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x90(%rax), %rcx
movq -0x8(%rsp), %rax
movq %rcx, 0x90(%rax)
movq -0x10(%rsp), %rax
movq 0x20(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x28(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x68(%rax), %rcx
movq -0x10(%rsp), %rax
xorq 0x98(%rax), %rcx
movq -0x8(%rsp), %rax
movq %rcx, 0x98(%rax)
retq
nopl (%rax,%rax)