// File: /workspace/github_cpp_makefile_star2_O1/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 0xf756
xorl %eax, %eax
leaq 0xd1fa(%rip), %rcx      # 0x1c9d0
movdqa 0x1192(%rip), %xmm1     # 0x10970
movdqa 0x119a(%rip), %xmm2     # 0x10980
movdqa 0x11b2(%rip), %xmm4     # 0x109a0
movdqa 0x11ba(%rip), %xmm5     # 0x109b0
leaq 0xd0d3(%rip), %rdx      # 0x1c8d0
movdqa 0x125b(%rip), %xmm0     # 0x10a60
movdqa (%rax,%rcx), %xmm3
movdqa %xmm3, %xmm13
psrlw $0x4, %xmm13
movdqa %xmm3, %xmm6
pand %xmm1, %xmm6
movdqa %xmm3, %xmm8
psrlw $0x6, %xmm8
pand %xmm2, %xmm8
movdqa %xmm13, %xmm14
pand %xmm2, %xmm14
pxor %xmm8, %xmm6
pxor %xmm14, %xmm6
movdqa %xmm6, %xmm7
psrlw $0x1, %xmm7
pand 0x113e(%rip), %xmm7     # 0x10990
pand %xmm1, %xmm6
pxor %xmm7, %xmm6
movdqa %xmm3, %xmm11
pand %xmm2, %xmm11
pxor %xmm11, %xmm8
movdqa %xmm3, %xmm12
psrlw $0x2, %xmm12
movdqa %xmm8, %xmm9
pxor %xmm12, %xmm9
movdqa %xmm8, %xmm7
psrlw $0x1, %xmm7
pand %xmm1, %xmm9
pxor %xmm7, %xmm9
movdqa %xmm13, %xmm7
pand %xmm5, %xmm7
movdqa %xmm3, %xmm15
pand 0x1117(%rip), %xmm15    # 0x109c0
pxor %xmm15, %xmm7
psrlw $0x2, %xmm7
pand %xmm4, %xmm7
pxor %xmm11, %xmm7
movdqa %xmm7, %xmm10
psrlw $0x1, %xmm10
pand %xmm1, %xmm7
pxor %xmm10, %xmm7
movdqa %xmm13, %xmm10
pand %xmm1, %xmm10
pand %xmm2, %xmm12
pxor %xmm11, %xmm10
pxor %xmm12, %xmm10
movdqa %xmm10, %xmm11
psrlw $0x1, %xmm11
pand %xmm1, %xmm10
pxor %xmm11, %xmm10
movdqa %xmm3, %xmm12
pand 0x10c4(%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 0x1092(%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 0xfda(%rip), %xmm15     # 0x10960
pand %xmm5, %xmm3
pxor %xmm15, %xmm3
psrlw $0x2, %xmm3
pand %xmm4, %xmm3
pxor %xmm14, %xmm3
movdqa %xmm3, %xmm14
psrlw $0x1, %xmm14
pxor %xmm3, %xmm14
pxor %xmm8, %xmm13
paddb %xmm8, %xmm8
pxor %xmm13, %xmm8
pand 0x102b(%rip), %xmm8     # 0x109f0
por %xmm6, %xmm8
psllw $0x2, %xmm9
pand 0x1027(%rip), %xmm9     # 0x10a00
por %xmm8, %xmm9
psllw $0x4, %xmm10
pand 0x1033(%rip), %xmm10    # 0x10a20
paddb %xmm9, %xmm10
psllw $0x3, %xmm7
pand 0x1011(%rip), %xmm7     # 0x10a10
paddb %xmm7, %xmm10
psllw $0x6, %xmm12
pand 0x102d(%rip), %xmm12    # 0x10a40
por %xmm10, %xmm12
psllw $0x5, %xmm11
pand 0x1009(%rip), %xmm11    # 0x10a30
psllw $0x7, %xmm14
pand 0x101a(%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 0xf805
popq %rax
retq
nopl (%rax)