// File: /workspace/github_cpp_makefile_star2_O1/DiplIngFrankGerlach[P]MST/./aes/aes.c
// Function: SubBytes
void SubBytes(BYTE state[][4])
{
	state[0][0] = aes_sbox[state[0][0] >> 4][state[0][0] & 0x0F];
	state[0][1] = aes_sbox[state[0][1] >> 4][state[0][1] & 0x0F];
	state[0][2] = aes_sbox[state[0][2] >> 4][state[0][2] & 0x0F];
	state[0][3] = aes_sbox[state[0][3] >> 4][state[0][3] & 0x0F];
	state[1][0] = aes_sbox[state[1][0] >> 4][state[1][0] & 0x0F];
	state[1][1] = aes_sbox[state[1][1] >> 4][state[1][1] & 0x0F];
	state[1][2] = aes_sbox[state[1][2] >> 4][state[1][2] & 0x0F];
	state[1][3] = aes_sbox[state[1][3] >> 4][state[1][3] & 0x0F];
	state[2][0] = aes_sbox[state[2][0] >> 4][state[2][0] & 0x0F];
	state[2][1] = aes_sbox[state[2][1] >> 4][state[2][1] & 0x0F];
	state[2][2] = aes_sbox[state[2][2] >> 4][state[2][2] & 0x0F];
	state[2][3] = aes_sbox[state[2][3] >> 4][state[2][3] & 0x0F];
	state[3][0] = aes_sbox[state[3][0] >> 4][state[3][0] & 0x0F];
	state[3][1] = aes_sbox[state[3][1] >> 4][state[3][1] & 0x0F];
	state[3][2] = aes_sbox[state[3][2] >> 4][state[3][2] & 0x0F];
	state[3][3] = aes_sbox[state[3][3] >> 4][state[3][3] & 0x0F];
}

// Assembly:
movzbl (%rdi), %ecx
movl %ecx, %edx
andl $0xf, %edx
andl $-0x10, %ecx
leaq 0x24bd(%rip), %rax      # 0x5020
addq %rax, %rcx
movb (%rdx,%rcx), %cl
movb %cl, (%rdi)
movzbl 0x1(%rdi), %ecx
movl %ecx, %edx
andl $0xf, %edx
andl $-0x10, %ecx
addq %rax, %rcx
movb (%rdx,%rcx), %cl
movb %cl, 0x1(%rdi)
movzbl 0x2(%rdi), %ecx
movl %ecx, %edx
andl $0xf, %edx
andl $-0x10, %ecx
addq %rax, %rcx
movb (%rdx,%rcx), %cl
movb %cl, 0x2(%rdi)
movzbl 0x3(%rdi), %ecx
movl %ecx, %edx
andl $0xf, %edx
andl $-0x10, %ecx
addq %rax, %rcx
movb (%rdx,%rcx), %cl
movb %cl, 0x3(%rdi)
movzbl 0x4(%rdi), %ecx
movl %ecx, %edx
andl $0xf, %edx
andl $-0x10, %ecx
addq %rax, %rcx
movb (%rdx,%rcx), %cl
movb %cl, 0x4(%rdi)
movzbl 0x5(%rdi), %ecx
movl %ecx, %edx
andl $0xf, %edx
andl $-0x10, %ecx
addq %rax, %rcx
movb (%rdx,%rcx), %cl
movb %cl, 0x5(%rdi)
movzbl 0x6(%rdi), %ecx
movl %ecx, %edx
andl $0xf, %edx
andl $-0x10, %ecx
addq %rax, %rcx
movb (%rdx,%rcx), %cl
movb %cl, 0x6(%rdi)
movzbl 0x7(%rdi), %ecx
movl %ecx, %edx
andl $0xf, %edx
andl $-0x10, %ecx
addq %rax, %rcx
movb (%rdx,%rcx), %cl
movb %cl, 0x7(%rdi)
movzbl 0x8(%rdi), %ecx
movl %ecx, %edx
andl $0xf, %edx
andl $-0x10, %ecx
addq %rax, %rcx
movb (%rdx,%rcx), %cl
movb %cl, 0x8(%rdi)
movzbl 0x9(%rdi), %ecx
movl %ecx, %edx
andl $0xf, %edx
andl $-0x10, %ecx
addq %rax, %rcx
movb (%rdx,%rcx), %cl
movb %cl, 0x9(%rdi)
movzbl 0xa(%rdi), %ecx
movl %ecx, %edx
andl $0xf, %edx
andl $-0x10, %ecx
addq %rax, %rcx
movb (%rdx,%rcx), %cl
movb %cl, 0xa(%rdi)
movzbl 0xb(%rdi), %ecx
movl %ecx, %edx
andl $0xf, %edx
andl $-0x10, %ecx
addq %rax, %rcx
movb (%rdx,%rcx), %cl
movb %cl, 0xb(%rdi)
movzbl 0xc(%rdi), %ecx
movl %ecx, %edx
andl $0xf, %edx
andl $-0x10, %ecx
addq %rax, %rcx
movb (%rdx,%rcx), %cl
movb %cl, 0xc(%rdi)
movzbl 0xd(%rdi), %ecx
movl %ecx, %edx
andl $0xf, %edx
andl $-0x10, %ecx
addq %rax, %rcx
movb (%rdx,%rcx), %cl
movb %cl, 0xd(%rdi)
movzbl 0xe(%rdi), %ecx
movl %ecx, %edx
andl $0xf, %edx
andl $-0x10, %ecx
addq %rax, %rcx
movb (%rdx,%rcx), %cl
movb %cl, 0xe(%rdi)
movzbl 0xf(%rdi), %ecx
movl %ecx, %edx
andl $0xf, %edx
andl $-0x10, %ecx
addq %rax, %rcx
movb (%rdx,%rcx), %al
movb %al, 0xf(%rdi)
retq