// File: /workspace/github_cpp_makefile_star2_O3/rellla[P]E3DC-Rscp/AES.cpp
// Function: (anonymous namespace)::CheckByteSub(bool)
bool CheckByteSub(bool create)
	{
	if (CheckInverses(create) == false)
		return false; // we cannot do this without inverses

	unsigned int x,y; // need ints here to prevent wrap in loop
	for (x = 0; x <= 255; x++)
		{
		y = gf2_8_inv[x]; // inverse to start with

		// affine transform
		y = BitSum(y&0xF1) | (BitSum(y&0xE3)<<1) | (BitSum(y&0xC7)<<2) | (BitSum(y&0x8F)<<3) |
			(BitSum(y&0x1F)<<4) | (BitSum(y&0x3E)<<5) | (BitSum(y&0x7C)<<6) | (BitSum(y&0xF8)<<7);
		y = y ^ 0x63;
		if (create == true)
			byte_sub[x] = y;
		else if (byte_sub[x] != y)
			return false;
		}
	return true;
	}

// Assembly:
pushq %rax
callq 0xf4e8
xorl %eax, %eax
leaq 0xc46e(%rip), %rcx      # 0x1b9d0
movdqa 0x1406(%rip), %xmm1     # 0x10970
movdqa 0x140e(%rip), %xmm2     # 0x10980
movdqa 0x1426(%rip), %xmm4     # 0x109a0
movdqa 0x142e(%rip), %xmm5     # 0x109b0
leaq 0xc347(%rip), %rdx      # 0x1b8d0
movdqa 0x14cf(%rip), %xmm0     # 0x10a60
movdqa (%rax,%rcx), %xmm6
movdqa %xmm6, %xmm13
psrlw $0x4, %xmm13
movdqa %xmm6, %xmm7
pand %xmm1, %xmm7
movdqa %xmm6, %xmm9
psrlw $0x6, %xmm9
pand %xmm2, %xmm9
movdqa %xmm13, %xmm14
pand %xmm2, %xmm14
pxor %xmm9, %xmm7
pxor %xmm14, %xmm7
movdqa %xmm7, %xmm3
psrlw $0x1, %xmm3
pand 0x13b2(%rip), %xmm3     # 0x10990
pand %xmm1, %xmm7
pxor %xmm3, %xmm7
movdqa %xmm6, %xmm11
pand %xmm2, %xmm11
pxor %xmm11, %xmm9
movdqa %xmm6, %xmm3
psrlw $0x2, %xmm3
movdqa %xmm9, %xmm10
pxor %xmm3, %xmm10
movdqa %xmm9, %xmm8
psrlw $0x1, %xmm8
pand %xmm1, %xmm10
pxor %xmm8, %xmm10
movdqa %xmm13, %xmm8
pand %xmm5, %xmm8
movdqa %xmm6, %xmm15
pand 0x138b(%rip), %xmm15    # 0x109c0
pxor %xmm15, %xmm8
psrlw $0x2, %xmm8
pand %xmm4, %xmm8
pxor %xmm11, %xmm8
movdqa %xmm8, %xmm12
psrlw $0x1, %xmm12
pand %xmm1, %xmm8
pxor %xmm12, %xmm8
movdqa %xmm13, %xmm12
pand %xmm1, %xmm12
pand %xmm2, %xmm3
pxor %xmm12, %xmm3
pxor %xmm11, %xmm3
movdqa %xmm3, %xmm11
psrlw $0x1, %xmm11
pand %xmm1, %xmm3
pxor %xmm11, %xmm3
movdqa %xmm6, %xmm12
pand 0x1337(%rip), %xmm12    # 0x109d0
movdqa %xmm13, %xmm11
pxor %xmm12, %xmm11
psrlw $0x2, %xmm12
pand %xmm4, %xmm12
pand %xmm2, %xmm11
pxor %xmm12, %xmm11
movdqa %xmm11, %xmm12
psrlw $0x1, %xmm12
pand %xmm1, %xmm11
pxor %xmm12, %xmm11
movdqa %xmm13, %xmm12
pand 0x1305(%rip), %xmm12    # 0x109e0
pxor %xmm15, %xmm12
psrlw $0x2, %xmm12
pand %xmm4, %xmm12
pxor %xmm14, %xmm12
movdqa %xmm12, %xmm15
psrlw $0x1, %xmm15
pand %xmm1, %xmm12
pxor %xmm15, %xmm12
movdqa %xmm13, %xmm15
pand 0x124d(%rip), %xmm15    # 0x10960
pand %xmm5, %xmm6
pxor %xmm15, %xmm6
psrlw $0x2, %xmm6
pand %xmm4, %xmm6
pxor %xmm14, %xmm6
movdqa %xmm6, %xmm14
psrlw $0x1, %xmm14
pxor %xmm6, %xmm14
pxor %xmm9, %xmm13
paddb %xmm9, %xmm9
pxor %xmm13, %xmm9
pand 0x129e(%rip), %xmm9     # 0x109f0
por %xmm7, %xmm9
psllw $0x2, %xmm10
pand 0x129a(%rip), %xmm10    # 0x10a00
por %xmm9, %xmm10
psllw $0x4, %xmm3
pand 0x12a8(%rip), %xmm3     # 0x10a20
paddb %xmm10, %xmm3
psllw $0x3, %xmm8
pand 0x1284(%rip), %xmm8     # 0x10a10
paddb %xmm8, %xmm3
psllw $0x6, %xmm12
pand 0x12a0(%rip), %xmm12    # 0x10a40
por %xmm3, %xmm12
psllw $0x5, %xmm11
pand 0x127c(%rip), %xmm11    # 0x10a30
psllw $0x7, %xmm14
pand 0x128d(%rip), %xmm14    # 0x10a50
por %xmm11, %xmm14
por %xmm12, %xmm14
pxor %xmm0, %xmm14
movdqa %xmm14, (%rax,%rdx)
addq $0x10, %rax
cmpq $0x100, %rax            # imm = 0x100
jne 0xf591
popq %rax
retq
nop