// File: /workspace/github_c_makefile_star2_O0/mjosaarinen[P]brutus/crypto_aead/aescopav2/ref/aes-core.c
// Function: aes_isubbyte_ishiftrows_imixcols
void aes_isubbyte_ishiftrows_imixcols(uint8_t state[])
{
	uint8_t tmp[16];
	
	block_copy(tmp, state);
	
	state[0] = isbox(xtimee(tmp[0]) ^ xtimeb(tmp[1]) ^ xtimed(tmp[2]) ^ xtime9(tmp[3]));
	state[5] = isbox(xtime9(tmp[0]) ^ xtimee(tmp[1]) ^ xtimeb(tmp[2]) ^ xtimed(tmp[3]));
	state[10] = isbox(xtimed(tmp[0]) ^ xtime9(tmp[1]) ^ xtimee(tmp[2]) ^ xtimeb(tmp[3]));
	state[15] = isbox(xtimeb(tmp[0]) ^ xtimed(tmp[1]) ^ xtime9(tmp[2]) ^ xtimee(tmp[3]));
	
	state[4] = isbox(xtimee(tmp[4]) ^ xtimeb(tmp[5]) ^ xtimed(tmp[6]) ^ xtime9(tmp[7]));
	state[9] = isbox(xtime9(tmp[4]) ^ xtimee(tmp[5]) ^ xtimeb(tmp[6]) ^ xtimed(tmp[7]));
	state[14] = isbox(xtimed(tmp[4]) ^ xtime9(tmp[5]) ^ xtimee(tmp[6]) ^ xtimeb(tmp[7]));
	state[3] = isbox(xtimeb(tmp[4]) ^ xtimed(tmp[5]) ^ xtime9(tmp[6]) ^ xtimee(tmp[7]));
	
	state[8] = isbox(xtimee(tmp[8]) ^ xtimeb(tmp[9]) ^ xtimed(tmp[10]) ^ xtime9(tmp[11]));
	state[13] = isbox(xtime9(tmp[8]) ^ xtimee(tmp[9]) ^ xtimeb(tmp[10]) ^ xtimed(tmp[11]));
	state[2] = isbox(xtimed(tmp[8]) ^ xtime9(tmp[9]) ^ xtimee(tmp[10]) ^ xtimeb(tmp[11]));
	state[7] = isbox(xtimeb(tmp[8]) ^ xtimed(tmp[9]) ^ xtime9(tmp[10]) ^ xtimee(tmp[11]));
	
	state[12] = isbox(xtimee(tmp[12]) ^ xtimeb(tmp[13]) ^ xtimed(tmp[14]) ^ xtime9(tmp[15]));
	state[1] = isbox(xtime9(tmp[12]) ^ xtimee(tmp[13]) ^ xtimeb(tmp[14]) ^ xtimed(tmp[15]));
	state[6] = isbox(xtimed(tmp[12]) ^ xtime9(tmp[13]) ^ xtimee(tmp[14]) ^ xtimeb(tmp[15]));
	state[11] = isbox(xtimeb(tmp[12]) ^ xtimed(tmp[13]) ^ xtime9(tmp[14]) ^ xtimee(tmp[15]));
}

// Assembly:
movq %rdi, -0x8(%rsp)
movq -0x8(%rsp), %rax
movq (%rax), %rcx
movq %rcx, -0x18(%rsp)
movq 0x8(%rax), %rax
movq %rax, -0x10(%rsp)
movzbl -0x18(%rsp), %eax
movl %eax, %ecx
leaq 0x2477(%rip), %rax      # 0x4410
movzbl (%rax,%rcx), %eax
movzbl -0x17(%rsp), %ecx
movl %ecx, %edx
leaq 0x2565(%rip), %rcx      # 0x4510
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movzbl -0x16(%rsp), %ecx
movl %ecx, %edx
leaq 0x2651(%rip), %rcx      # 0x4610
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movzbl -0x15(%rsp), %ecx
movl %ecx, %edx
leaq 0x273d(%rip), %rcx      # 0x4710
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movslq %eax, %rcx
leaq 0x232d(%rip), %rax      # 0x4310
movb (%rax,%rcx), %cl
movq -0x8(%rsp), %rax
movb %cl, (%rax)
movzbl -0x18(%rsp), %eax
movl %eax, %ecx
leaq 0x2715(%rip), %rax      # 0x4710
movzbl (%rax,%rcx), %eax
movzbl -0x17(%rsp), %ecx
movl %ecx, %edx
leaq 0x2403(%rip), %rcx      # 0x4410
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movzbl -0x16(%rsp), %ecx
movl %ecx, %edx
leaq 0x24ef(%rip), %rcx      # 0x4510
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movzbl -0x15(%rsp), %ecx
movl %ecx, %edx
leaq 0x25db(%rip), %rcx      # 0x4610
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movslq %eax, %rcx
leaq 0x22cb(%rip), %rax      # 0x4310
movb (%rax,%rcx), %cl
movq -0x8(%rsp), %rax
movb %cl, 0x5(%rax)
movzbl -0x18(%rsp), %eax
movl %eax, %ecx
leaq 0x25b2(%rip), %rax      # 0x4610
movzbl (%rax,%rcx), %eax
movzbl -0x17(%rsp), %ecx
movl %ecx, %edx
leaq 0x26a0(%rip), %rcx      # 0x4710
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movzbl -0x16(%rsp), %ecx
movl %ecx, %edx
leaq 0x238c(%rip), %rcx      # 0x4410
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movzbl -0x15(%rsp), %ecx
movl %ecx, %edx
leaq 0x2478(%rip), %rcx      # 0x4510
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movslq %eax, %rcx
leaq 0x2268(%rip), %rax      # 0x4310
movb (%rax,%rcx), %cl
movq -0x8(%rsp), %rax
movb %cl, 0xa(%rax)
movzbl -0x18(%rsp), %eax
movl %eax, %ecx
leaq 0x244f(%rip), %rax      # 0x4510
movzbl (%rax,%rcx), %eax
movzbl -0x17(%rsp), %ecx
movl %ecx, %edx
leaq 0x253d(%rip), %rcx      # 0x4610
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movzbl -0x16(%rsp), %ecx
movl %ecx, %edx
leaq 0x2629(%rip), %rcx      # 0x4710
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movzbl -0x15(%rsp), %ecx
movl %ecx, %edx
leaq 0x2315(%rip), %rcx      # 0x4410
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movslq %eax, %rcx
leaq 0x2205(%rip), %rax      # 0x4310
movb (%rax,%rcx), %cl
movq -0x8(%rsp), %rax
movb %cl, 0xf(%rax)
movzbl -0x14(%rsp), %eax
movl %eax, %ecx
leaq 0x22ec(%rip), %rax      # 0x4410
movzbl (%rax,%rcx), %eax
movzbl -0x13(%rsp), %ecx
movl %ecx, %edx
leaq 0x23da(%rip), %rcx      # 0x4510
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movzbl -0x12(%rsp), %ecx
movl %ecx, %edx
leaq 0x24c6(%rip), %rcx      # 0x4610
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movzbl -0x11(%rsp), %ecx
movl %ecx, %edx
leaq 0x25b2(%rip), %rcx      # 0x4710
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movslq %eax, %rcx
leaq 0x21a2(%rip), %rax      # 0x4310
movb (%rax,%rcx), %cl
movq -0x8(%rsp), %rax
movb %cl, 0x4(%rax)
movzbl -0x14(%rsp), %eax
movl %eax, %ecx
leaq 0x2589(%rip), %rax      # 0x4710
movzbl (%rax,%rcx), %eax
movzbl -0x13(%rsp), %ecx
movl %ecx, %edx
leaq 0x2277(%rip), %rcx      # 0x4410
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movzbl -0x12(%rsp), %ecx
movl %ecx, %edx
leaq 0x2363(%rip), %rcx      # 0x4510
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movzbl -0x11(%rsp), %ecx
movl %ecx, %edx
leaq 0x244f(%rip), %rcx      # 0x4610
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movslq %eax, %rcx
leaq 0x213f(%rip), %rax      # 0x4310
movb (%rax,%rcx), %cl
movq -0x8(%rsp), %rax
movb %cl, 0x9(%rax)
movzbl -0x14(%rsp), %eax
movl %eax, %ecx
leaq 0x2426(%rip), %rax      # 0x4610
movzbl (%rax,%rcx), %eax
movzbl -0x13(%rsp), %ecx
movl %ecx, %edx
leaq 0x2514(%rip), %rcx      # 0x4710
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movzbl -0x12(%rsp), %ecx
movl %ecx, %edx
leaq 0x2200(%rip), %rcx      # 0x4410
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movzbl -0x11(%rsp), %ecx
movl %ecx, %edx
leaq 0x22ec(%rip), %rcx      # 0x4510
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movslq %eax, %rcx
leaq 0x20dc(%rip), %rax      # 0x4310
movb (%rax,%rcx), %cl
movq -0x8(%rsp), %rax
movb %cl, 0xe(%rax)
movzbl -0x14(%rsp), %eax
movl %eax, %ecx
leaq 0x22c3(%rip), %rax      # 0x4510
movzbl (%rax,%rcx), %eax
movzbl -0x13(%rsp), %ecx
movl %ecx, %edx
leaq 0x23b1(%rip), %rcx      # 0x4610
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movzbl -0x12(%rsp), %ecx
movl %ecx, %edx
leaq 0x249d(%rip), %rcx      # 0x4710
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movzbl -0x11(%rsp), %ecx
movl %ecx, %edx
leaq 0x2189(%rip), %rcx      # 0x4410
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movslq %eax, %rcx
leaq 0x2079(%rip), %rax      # 0x4310
movb (%rax,%rcx), %cl
movq -0x8(%rsp), %rax
movb %cl, 0x3(%rax)
movzbl -0x10(%rsp), %eax
movl %eax, %ecx
leaq 0x2160(%rip), %rax      # 0x4410
movzbl (%rax,%rcx), %eax
movzbl -0xf(%rsp), %ecx
movl %ecx, %edx
leaq 0x224e(%rip), %rcx      # 0x4510
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movzbl -0xe(%rsp), %ecx
movl %ecx, %edx
leaq 0x233a(%rip), %rcx      # 0x4610
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movzbl -0xd(%rsp), %ecx
movl %ecx, %edx
leaq 0x2426(%rip), %rcx      # 0x4710
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movslq %eax, %rcx
leaq 0x2016(%rip), %rax      # 0x4310
movb (%rax,%rcx), %cl
movq -0x8(%rsp), %rax
movb %cl, 0x8(%rax)
movzbl -0x10(%rsp), %eax
movl %eax, %ecx
leaq 0x23fd(%rip), %rax      # 0x4710
movzbl (%rax,%rcx), %eax
movzbl -0xf(%rsp), %ecx
movl %ecx, %edx
leaq 0x20eb(%rip), %rcx      # 0x4410
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movzbl -0xe(%rsp), %ecx
movl %ecx, %edx
leaq 0x21d7(%rip), %rcx      # 0x4510
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movzbl -0xd(%rsp), %ecx
movl %ecx, %edx
leaq 0x22c3(%rip), %rcx      # 0x4610
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movslq %eax, %rcx
leaq 0x1fb3(%rip), %rax      # 0x4310
movb (%rax,%rcx), %cl
movq -0x8(%rsp), %rax
movb %cl, 0xd(%rax)
movzbl -0x10(%rsp), %eax
movl %eax, %ecx
leaq 0x229a(%rip), %rax      # 0x4610
movzbl (%rax,%rcx), %eax
movzbl -0xf(%rsp), %ecx
movl %ecx, %edx
leaq 0x2388(%rip), %rcx      # 0x4710
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movzbl -0xe(%rsp), %ecx
movl %ecx, %edx
leaq 0x2074(%rip), %rcx      # 0x4410
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movzbl -0xd(%rsp), %ecx
movl %ecx, %edx
leaq 0x2160(%rip), %rcx      # 0x4510
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movslq %eax, %rcx
leaq 0x1f50(%rip), %rax      # 0x4310
movb (%rax,%rcx), %cl
movq -0x8(%rsp), %rax
movb %cl, 0x2(%rax)
movzbl -0x10(%rsp), %eax
movl %eax, %ecx
leaq 0x2137(%rip), %rax      # 0x4510
movzbl (%rax,%rcx), %eax
movzbl -0xf(%rsp), %ecx
movl %ecx, %edx
leaq 0x2225(%rip), %rcx      # 0x4610
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movzbl -0xe(%rsp), %ecx
movl %ecx, %edx
leaq 0x2311(%rip), %rcx      # 0x4710
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movzbl -0xd(%rsp), %ecx
movl %ecx, %edx
leaq 0x1ffd(%rip), %rcx      # 0x4410
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movslq %eax, %rcx
leaq 0x1eed(%rip), %rax      # 0x4310
movb (%rax,%rcx), %cl
movq -0x8(%rsp), %rax
movb %cl, 0x7(%rax)
movzbl -0xc(%rsp), %eax
movl %eax, %ecx
leaq 0x1fd4(%rip), %rax      # 0x4410
movzbl (%rax,%rcx), %eax
movzbl -0xb(%rsp), %ecx
movl %ecx, %edx
leaq 0x20c2(%rip), %rcx      # 0x4510
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movzbl -0xa(%rsp), %ecx
movl %ecx, %edx
leaq 0x21ae(%rip), %rcx      # 0x4610
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movzbl -0x9(%rsp), %ecx
movl %ecx, %edx
leaq 0x229a(%rip), %rcx      # 0x4710
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movslq %eax, %rcx
leaq 0x1e8a(%rip), %rax      # 0x4310
movb (%rax,%rcx), %cl
movq -0x8(%rsp), %rax
movb %cl, 0xc(%rax)
movzbl -0xc(%rsp), %eax
movl %eax, %ecx
leaq 0x2271(%rip), %rax      # 0x4710
movzbl (%rax,%rcx), %eax
movzbl -0xb(%rsp), %ecx
movl %ecx, %edx
leaq 0x1f5f(%rip), %rcx      # 0x4410
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movzbl -0xa(%rsp), %ecx
movl %ecx, %edx
leaq 0x204b(%rip), %rcx      # 0x4510
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movzbl -0x9(%rsp), %ecx
movl %ecx, %edx
leaq 0x2137(%rip), %rcx      # 0x4610
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movslq %eax, %rcx
leaq 0x1e27(%rip), %rax      # 0x4310
movb (%rax,%rcx), %cl
movq -0x8(%rsp), %rax
movb %cl, 0x1(%rax)
movzbl -0xc(%rsp), %eax
movl %eax, %ecx
leaq 0x210e(%rip), %rax      # 0x4610
movzbl (%rax,%rcx), %eax
movzbl -0xb(%rsp), %ecx
movl %ecx, %edx
leaq 0x21fc(%rip), %rcx      # 0x4710
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movzbl -0xa(%rsp), %ecx
movl %ecx, %edx
leaq 0x1ee8(%rip), %rcx      # 0x4410
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movzbl -0x9(%rsp), %ecx
movl %ecx, %edx
leaq 0x1fd4(%rip), %rcx      # 0x4510
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movslq %eax, %rcx
leaq 0x1dc4(%rip), %rax      # 0x4310
movb (%rax,%rcx), %cl
movq -0x8(%rsp), %rax
movb %cl, 0x6(%rax)
movzbl -0xc(%rsp), %eax
movl %eax, %ecx
leaq 0x1fab(%rip), %rax      # 0x4510
movzbl (%rax,%rcx), %eax
movzbl -0xb(%rsp), %ecx
movl %ecx, %edx
leaq 0x2099(%rip), %rcx      # 0x4610
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movzbl -0xa(%rsp), %ecx
movl %ecx, %edx
leaq 0x2185(%rip), %rcx      # 0x4710
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movzbl -0x9(%rsp), %ecx
movl %ecx, %edx
leaq 0x1e71(%rip), %rcx      # 0x4410
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movslq %eax, %rcx
leaq 0x1d61(%rip), %rax      # 0x4310
movb (%rax,%rcx), %cl
movq -0x8(%rsp), %rax
movb %cl, 0xb(%rax)
retq
nopl (%rax,%rax)