// File: /workspace/github_c_makefile_star2_O0/tvlabs[P]edge264/./edge264_slice.c
// Function: parse_NxN_residual_cabac
static void CAFUNC(parse_NxN_residual)
{
	static const int8_t Intra4x4Modes[9][16] = {
		{I4x4_V_8  , I4x4_V_8   , I4x4_DCAB_8, I4x4_DCAB_8, I4x4_V_8   , I4x4_V_8   , I4x4_DCAB_8, I4x4_DCAB_8, I4x4_V_8   , I4x4_V_8   , I4x4_DCAB_8, I4x4_DCAB_8, I4x4_V_8   , I4x4_V_8   , I4x4_DCAB_8, I4x4_DCAB_8},
		{I4x4_H_8  , I4x4_DCAB_8, I4x4_H_8   , I4x4_DCAB_8, I4x4_H_8   , I4x4_DCAB_8, I4x4_H_8   , I4x4_DCAB_8, I4x4_H_8   , I4x4_DCAB_8, I4x4_H_8   , I4x4_DCAB_8, I4x4_H_8   , I4x4_DCAB_8, I4x4_H_8   , I4x4_DCAB_8},
		{I4x4_DC_8 , I4x4_DCA_8 , I4x4_DCB_8 , I4x4_DCAB_8, I4x4_DC_8  , I4x4_DCA_8 , I4x4_DCB_8 , I4x4_DCAB_8, I4x4_DC_8  , I4x4_DCA_8 , I4x4_DCB_8 , I4x4_DCAB_8, I4x4_DC_8  , I4x4_DCA_8 , I4x4_DCB_8 , I4x4_DCAB_8},
		{I4x4_DDL_8, I4x4_DDL_8 , I4x4_DCAB_8, I4x4_DCAB_8, I4x4_DDLC_8, I4x4_DDLC_8, I4x4_DCAB_8, I4x4_DCAB_8, I4x4_DDL_8 , I4x4_DDL_8 , I4x4_DCAB_8, I4x4_DCAB_8, I4x4_DDLC_8, I4x4_DDLC_8, I4x4_DCAB_8, I4x4_DCAB_8},
		{I4x4_DDR_8, I4x4_DCAB_8, I4x4_DCAB_8, I4x4_DCAB_8, I4x4_DDR_8 , I4x4_DCAB_8, I4x4_DCAB_8, I4x4_DCAB_8, I4x4_DCAB_8, I4x4_DCAB_8, I4x4_DCAB_8, I4x4_DCAB_8, I4x4_DCAB_8, I4x4_DCAB_8, I4x4_DCAB_8, I4x4_DCAB_8},
		{I4x4_VR_8 , I4x4_DCAB_8, I4x4_DCAB_8, I4x4_DCAB_8, I4x4_VR_8  , I4x4_DCAB_8, I4x4_DCAB_8, I4x4_DCAB_8, I4x4_DCAB_8, I4x4_DCAB_8, I4x4_DCAB_8, I4x4_DCAB_8, I4x4_DCAB_8, I4x4_DCAB_8, I4x4_DCAB_8, I4x4_DCAB_8},
		{I4x4_HD_8 , I4x4_DCAB_8, I4x4_DCAB_8, I4x4_DCAB_8, I4x4_HD_8  , I4x4_DCAB_8, I4x4_DCAB_8, I4x4_DCAB_8, I4x4_DCAB_8, I4x4_DCAB_8, I4x4_DCAB_8, I4x4_DCAB_8, I4x4_DCAB_8, I4x4_DCAB_8, I4x4_DCAB_8, I4x4_DCAB_8},
		{I4x4_VL_8 , I4x4_VL_8  , I4x4_DCAB_8, I4x4_DCAB_8, I4x4_VLC_8 , I4x4_VLC_8 , I4x4_DCAB_8, I4x4_DCAB_8, I4x4_VL_8  , I4x4_VL_8  , I4x4_DCAB_8, I4x4_DCAB_8, I4x4_VLC_8 , I4x4_VLC_8 , I4x4_DCAB_8, I4x4_DCAB_8},
		{I4x4_HU_8 , I4x4_DCAB_8, I4x4_HU_8  , I4x4_DCAB_8, I4x4_HU_8  , I4x4_DCAB_8, I4x4_HU_8  , I4x4_DCAB_8, I4x4_HU_8  , I4x4_DCAB_8, I4x4_HU_8  , I4x4_DCAB_8, I4x4_HU_8  , I4x4_DCAB_8, I4x4_HU_8  , I4x4_DCAB_8},
	};
	static const int8_t Intra8x8Modes[9][16] = {
		{I8x8_V_8  , I8x8_V_8    , I8x8_DC_AB_8, I8x8_DC_AB_8, I8x8_V_C_8  , I8x8_V_C_8  , I8x8_DC_AB_8, I8x8_DC_AB_8, I8x8_V_D_8  , I8x8_V_D_8  , I8x8_DC_AB_8, I8x8_DC_AB_8, I8x8_V_CD_8  , I8x8_V_CD_8  , I8x8_DC_AB_8, I8x8_DC_AB_8},
		{I8x8_H_8  , I8x8_DC_AB_8, I8x8_H_8    , I8x8_DC_AB_8, I8x8_H_8    , I8x8_DC_AB_8, I8x8_H_8    , I8x8_DC_AB_8, I8x8_H_D_8  , I8x8_DC_AB_8, I8x8_H_D_8  , I8x8_DC_AB_8, I8x8_H_D_8   , I8x8_DC_AB_8 , I8x8_H_D_8  , I8x8_DC_AB_8},
		{I8x8_DC_8 , I8x8_DC_A_8 , I8x8_DC_B_8 , I8x8_DC_AB_8, I8x8_DC_C_8 , I8x8_DC_AC_8, I8x8_DC_B_8 , I8x8_DC_AB_8, I8x8_DC_D_8 , I8x8_DC_AD_8, I8x8_DC_BD_8, I8x8_DC_AB_8, I8x8_DC_CD_8 , I8x8_DC_ACD_8, I8x8_DC_BD_8, I8x8_DC_AB_8},
		{I8x8_DDL_8, I8x8_DDL_8  , I8x8_DC_AB_8, I8x8_DC_AB_8, I8x8_DDL_C_8, I8x8_DDL_C_8, I8x8_DC_AB_8, I8x8_DC_AB_8, I8x8_DDL_D_8, I8x8_DDL_D_8, I8x8_DC_AB_8, I8x8_DC_AB_8, I8x8_DDL_CD_8, I8x8_DDL_CD_8, I8x8_DC_AB_8, I8x8_DC_AB_8},
		{I8x8_DDR_8, I8x8_DC_AB_8, I8x8_DC_AB_8, I8x8_DC_AB_8, I8x8_DDR_C_8, I8x8_DC_AB_8, I8x8_DC_AB_8, I8x8_DC_AB_8, I8x8_DC_AB_8, I8x8_DC_AB_8, I8x8_DC_AB_8, I8x8_DC_AB_8, I8x8_DC_AB_8 , I8x8_DC_AB_8 , I8x8_DC_AB_8, I8x8_DC_AB_8},
		{I8x8_VR_8 , I8x8_DC_AB_8, I8x8_DC_AB_8, I8x8_DC_AB_8, I8x8_VR_C_8 , I8x8_DC_AB_8, I8x8_DC_AB_8, I8x8_DC_AB_8, I8x8_DC_AB_8, I8x8_DC_AB_8, I8x8_DC_AB_8, I8x8_DC_AB_8, I8x8_DC_AB_8 , I8x8_DC_AB_8 , I8x8_DC_AB_8, I8x8_DC_AB_8},
		{I8x8_HD_8 , I8x8_DC_AB_8, I8x8_DC_AB_8, I8x8_DC_AB_8, I8x8_HD_8   , I8x8_DC_AB_8, I8x8_DC_AB_8, I8x8_DC_AB_8, I8x8_DC_AB_8, I8x8_DC_AB_8, I8x8_DC_AB_8, I8x8_DC_AB_8, I8x8_DC_AB_8 , I8x8_DC_AB_8 , I8x8_DC_AB_8, I8x8_DC_AB_8},
		{I8x8_VL_8 , I8x8_VL_8   , I8x8_DC_AB_8, I8x8_DC_AB_8, I8x8_VL_C_8 , I8x8_VL_C_8 , I8x8_DC_AB_8, I8x8_DC_AB_8, I8x8_VL_D_8 , I8x8_VL_D_8 , I8x8_DC_AB_8, I8x8_DC_AB_8, I8x8_VL_CD_8 , I8x8_VL_CD_8 , I8x8_DC_AB_8, I8x8_DC_AB_8},
		{I8x8_HU_8 , I8x8_DC_AB_8, I8x8_HU_8   , I8x8_DC_AB_8, I8x8_HU_8   , I8x8_DC_AB_8, I8x8_HU_8   , I8x8_DC_AB_8, I8x8_HU_D_8 , I8x8_DC_AB_8, I8x8_HU_D_8 , I8x8_DC_AB_8, I8x8_HU_D_8  , I8x8_DC_AB_8 , I8x8_HU_D_8 , I8x8_DC_AB_8},
	};
	
	if (mb->f.CodedBlockPatternChromaDC | (mb->bits[0] & 0xac)) {
		CACALL(parse_mb_qp_delta);
		log_mb(ctx, "    coeffLevels:\n");
	}
	#if CABAC
		else
			ctx->mb_qp_delta_nz = 0;
	#endif
	
	// next few blocks will share many parameters, so we cache them
	for (int iYCbCr = 0; iYCbCr < 3; iYCbCr++) {
		if (!mb->f.transform_size_8x8_flag) {
			#if CABAC
				ctx->ctxIdxOffsets_l = ctxIdxOffsets_4x4[iYCbCr][0];
				ctx->coeff_abs_inc_l = (i8x8){6, 7, 8, 9, 9};
				ctx->sig_inc_v[0] = ctx->last_inc_v[0] = sig_inc_4x4;
			#endif
			ctx->scan_v[0] = scan_4x4[0];
			
			// Decoding directly follows parsing to avoid duplicate loops.
			for (int i4x4 = 0; i4x4 < 16; i4x4++) {
				size_t stride = ctx->t.stride[iYCbCr];
				uint8_t *samples = ctx->samples_mb[iYCbCr] + y444[i4x4] * stride + x444[i4x4];
				if (!mb->mbIsInterFlag)
					decode_intra4x4(Intra4x4Modes[mb->Intra4x4PredMode[i4x4]][ctx->unavail4x4[i4x4]], samples, stride, ctx->t.samples_clip_v[iYCbCr]);
				if (mb->bits[0] & 1 << bit8x8[i4x4 >> 2]) {
					int nA = *((int8_t *)mb->nC + iYCbCr * 16 + ctx->A4x4_int8[i4x4]);
					int nB = *((int8_t *)mb->nC + iYCbCr * 16 + ctx->B4x4_int8[i4x4]);
					// DC blocks are marginal here (about 16%) so we do not handle them separately
					#if !CABAC
						if (parse_residual_block_4x4_cavlc(ctx, iYCbCr * 16 + i4x4, nA, nB, 0))
							add_idct4x4(ctx, iYCbCr, -1, samples); // FIXME 4:4:4
					#else
						if (get_ae(ctx, ctx->ctxIdxOffsets[0] + ctx->nC_inc[iYCbCr][i4x4] + nA + nB * 2)) {
							mb->nC[iYCbCr * 16 + i4x4] = 1;
							parse_residual_coeffs_cabac(ctx, 0, 15);
							add_idct4x4(ctx, iYCbCr, -1, samples); // FIXME 4:4:4
						}
					#endif
				}
			}
		} else {
			#if CABAC
				ctx->ctxIdxOffsets_l = ctxIdxOffsets_8x8[iYCbCr][0];
				ctx->coeff_abs_inc_l = (i8x8){6, 7, 8, 9, 9};
				ctx->sig_inc_v[0] = sig_inc_8x8[0][0];
				ctx->last_inc_v[0] = last_inc_8x8[0];
				ctx->scan_v[0] = scan_8x8_cabac[0][0];
			#endif
			
			for (int i8x8 = 0; i8x8 < 4; i8x8++) {
				size_t stride = ctx->t.stride[iYCbCr];
				uint8_t *samples = ctx->samples_mb[iYCbCr] + y444[i8x8 * 4] * stride + x444[i8x8 * 4];
				if (!mb->mbIsInterFlag)
					decode_intra8x8(Intra8x8Modes[mb->Intra4x4PredMode[i8x8 * 4 + 1]][ctx->unavail4x4[i8x8 * 5]], samples, stride, ctx->t.samples_clip_v[iYCbCr]);
				if (mb->bits[0] & 1 << bit8x8[i8x8]) {
					#if !CABAC
						for (int i4x4 = 0; i4x4 < 4; i4x4++) {
							ctx->scan_v[0] = scan_8x8_cavlc[0][i4x4];
							int nA = *((int8_t *)mb->nC + iYCbCr * 16 + ctx->A4x4_int8[i8x8 * 4 + i4x4]);
							int nB = *((int8_t *)mb->nC + iYCbCr * 16 + ctx->B4x4_int8[i8x8 * 4 + i4x4]);
							parse_residual_block_4x4_cavlc(ctx, iYCbCr * 16 + i8x8 * 4 + i4x4, nA, nB, 0);
						}
						add_idct8x8(ctx, iYCbCr, samples);
					#else
						if (ctx->t.ChromaArrayType < 3 || get_ae(ctx, ctx->ctxIdxOffsets[0] + (mb->bits[1] >> inc8x8[iYCbCr * 4 + i8x8] & 3))) {
							mb->bits[1] |= 1 << bit8x8[iYCbCr * 4 + i8x8];
							mb->nC_s[iYCbCr * 4 + i8x8] = 0x01010101;
							parse_residual_coeffs_cabac(ctx, 0, 63);
							add_idct8x8(ctx, iYCbCr, samples);
						}
					#endif
				}
			}
		}
		
		// nice optimisation for 4:4:4 modes
		if (ctx->t.ChromaArrayType <3)
			CAJUMP(parse_chroma_residual);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
movsbl 0x26(%rax), %eax
movq -0x8(%rbp), %rcx
movq 0x680(%rcx), %rcx
movl 0x8(%rcx), %ecx
andl $0xac, %ecx
orl %ecx, %eax
cmpl $0x0, %eax
je 0xb0548
movq -0x8(%rbp), %rdi
callq 0xb0a90
movq -0x8(%rbp), %rax
movswq 0x1cd0(%rax), %rax
cmpq $0x1000, %rax           # imm = 0x1000
jae 0xb0546
movq -0x8(%rbp), %rdi
addq $0x1cd2, %rdi           # imm = 0x1CD2
movq -0x8(%rbp), %rax
movswl 0x1cd0(%rax), %eax
cltq
addq %rax, %rdi
movq -0x8(%rbp), %rax
movswq 0x1cd0(%rax), %rax
movl $0x1000, %esi           # imm = 0x1000
subq %rax, %rsi
leaq 0x20492(%rip), %rdx     # 0xd09bb
movb $0x0, %al
callq 0x7070
movl %eax, %edx
movq -0x8(%rbp), %rax
movswl 0x1cd0(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x1cd0(%rax)
jmp 0xb0553
movq -0x8(%rbp), %rax
movb $0x0, 0x651(%rax)
movl $0x0, -0xc(%rbp)
cmpl $0x3, -0xc(%rbp)
jge 0xb0a7e
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
cmpb $0x0, 0x24(%rax)
jne 0xb07f1
movslq -0xc(%rbp), %rax
shlq $0x4, %rax
leaq 0x1f248(%rip), %rcx     # 0xcf7d0
movq (%rax,%rcx), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x1a10(%rax)
movabsq $0x909080706, %rax      # imm = 0x909080706
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x1a18(%rax)
movq -0x8(%rbp), %rax
vmovdqa 0x19000(%rip), %xmm0    # 0xc95c0
vmovdqa %xmm0, 0x1a60(%rax)
movq -0x8(%rbp), %rax
vmovdqa %xmm0, 0x1a20(%rax)
vmovdqa 0x1e414(%rip), %xmm0    # 0xce9f0
movq -0x8(%rbp), %rax
vmovdqa %xmm0, 0x1aa0(%rax)
movl $0x0, -0x1c(%rbp)
cmpl $0x10, -0x1c(%rbp)
jge 0xb07ec
movq -0x8(%rbp), %rax
movslq -0xc(%rbp), %rcx
movzwl 0x34(%rax,%rcx,2), %eax
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rax
movslq -0xc(%rbp), %rcx
movq 0x668(%rax,%rcx,8), %rax
movslq -0x1c(%rbp), %rdx
leaq 0x1e23b(%rip), %rcx     # 0xce860
movsbq (%rcx,%rdx), %rcx
imulq -0x28(%rbp), %rcx
addq %rcx, %rax
movslq -0x1c(%rbp), %rdx
leaq 0x1e213(%rip), %rcx     # 0xce850
movsbl (%rcx,%rdx), %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
cmpb $0x0, 0x2(%rax)
jne 0xb06ba
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
movslq -0x1c(%rbp), %rcx
movsbq 0x30(%rax,%rcx), %rcx
leaq 0x1f038(%rip), %rax     # 0xcf6b0
shlq $0x4, %rcx
addq %rcx, %rax
movq -0x8(%rbp), %rcx
movslq -0x1c(%rbp), %rdx
movsbq 0x6d0(%rcx,%rdx), %rcx
movsbl (%rax,%rcx), %edi
movq -0x30(%rbp), %rsi
movq -0x28(%rbp), %rdx
movq -0x8(%rbp), %rax
addq $0x170, %rax            # imm = 0x170
movslq -0xc(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
vmovdqa (%rax), %xmm0
callq 0x94820
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
movl 0x8(%rax), %eax
movl -0x1c(%rbp), %ecx
sarl $0x2, %ecx
movslq %ecx, %rdx
leaq 0x1e338(%rip), %rcx     # 0xcea10
movsbl (%rcx,%rdx), %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
andl %ecx, %eax
cmpl $0x0, %eax
je 0xb07dc
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
addq $0x40, %rax
movl -0xc(%rbp), %ecx
shll $0x4, %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq -0x8(%rbp), %rcx
movslq -0x1c(%rbp), %rdx
movswl 0xb40(%rcx,%rdx,2), %ecx
movslq %ecx, %rcx
movsbl (%rax,%rcx), %eax
movl %eax, -0x34(%rbp)
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
addq $0x40, %rax
movl -0xc(%rbp), %ecx
shll $0x4, %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq -0x8(%rbp), %rcx
movslq -0x1c(%rbp), %rdx
movslq 0xb80(%rcx,%rdx,4), %rcx
movsbl (%rax,%rcx), %eax
movl %eax, -0x38(%rbp)
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movswl 0x1a10(%rax), %esi
movq -0x8(%rbp), %rax
addq $0x700, %rax            # imm = 0x700
movslq -0xc(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movslq -0x1c(%rbp), %rcx
movsbl (%rax,%rcx), %eax
addl %eax, %esi
addl -0x34(%rbp), %esi
movl -0x38(%rbp), %eax
shll %eax
addl %eax, %esi
callq 0xae5c0
cmpl $0x0, %eax
je 0xb07da
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
movl -0xc(%rbp), %ecx
shll $0x4, %ecx
addl -0x1c(%rbp), %ecx
movslq %ecx, %rcx
movb $0x1, 0x40(%rax,%rcx)
movq -0x8(%rbp), %rdi
xorl %esi, %esi
movl $0xf, %edx
callq 0xb0c50
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movq -0x30(%rbp), %rcx
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x96120
jmp 0xb07dc
jmp 0xb07de
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0xb05ef
jmp 0xb0a56
movslq -0xc(%rbp), %rax
shlq $0x4, %rax
leaq 0x1f000(%rip), %rcx     # 0xcf800
movq (%rax,%rcx), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x1a10(%rax)
movabsq $0x909080706, %rax      # imm = 0x909080706
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x1a18(%rax)
vmovdqa 0x1ddcc(%rip), %xmm0    # 0xce600
movq -0x8(%rbp), %rax
vmovdqa %xmm0, 0x1a20(%rax)
vmovdqa 0x1de38(%rip), %xmm0    # 0xce680
movq -0x8(%rbp), %rax
vmovdqa %xmm0, 0x1a60(%rax)
vmovdqa 0x1de64(%rip), %xmm0    # 0xce6c0
movq -0x8(%rbp), %rax
vmovdqa %xmm0, 0x1aa0(%rax)
movl $0x0, -0x44(%rbp)
cmpl $0x4, -0x44(%rbp)
jge 0xb0a54
movq -0x8(%rbp), %rax
movslq -0xc(%rbp), %rcx
movzwl 0x34(%rax,%rcx,2), %eax
movq %rax, -0x50(%rbp)
movq -0x8(%rbp), %rax
movslq -0xc(%rbp), %rcx
movq 0x668(%rax,%rcx,8), %rax
movl -0x44(%rbp), %ecx
shll $0x2, %ecx
movslq %ecx, %rdx
leaq 0x1dfb6(%rip), %rcx     # 0xce860
movsbq (%rcx,%rdx), %rcx
imulq -0x50(%rbp), %rcx
addq %rcx, %rax
movl -0x44(%rbp), %ecx
shll $0x2, %ecx
movslq %ecx, %rdx
leaq 0x1df89(%rip), %rcx     # 0xce850
movsbl (%rcx,%rdx), %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x58(%rbp)
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
cmpb $0x0, 0x2(%rax)
jne 0xb094f
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
movl -0x44(%rbp), %ecx
shll $0x2, %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movsbq 0x30(%rax,%rcx), %rcx
leaq 0x1ee36(%rip), %rax     # 0xcf740
shlq $0x4, %rcx
addq %rcx, %rax
movq -0x8(%rbp), %rcx
imull $0x5, -0x44(%rbp), %edx
movslq %edx, %rdx
movsbq 0x6d0(%rcx,%rdx), %rcx
movsbl (%rax,%rcx), %edi
movq -0x58(%rbp), %rsi
movq -0x50(%rbp), %rdx
movq -0x8(%rbp), %rax
addq $0x170, %rax            # imm = 0x170
movslq -0xc(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
vmovdqa (%rax), %xmm0
callq 0x96bb0
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
movl 0x8(%rax), %eax
movslq -0x44(%rbp), %rdx
leaq 0x1e0a8(%rip), %rcx     # 0xcea10
movsbl (%rcx,%rdx), %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
andl %ecx, %eax
cmpl $0x0, %eax
je 0xb0a44
movq -0x8(%rbp), %rax
movsbl 0x2a(%rax), %eax
cmpl $0x3, %eax
jl 0xb09d2
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movswl 0x1a10(%rax), %esi
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
movl 0xc(%rax), %eax
movl -0xc(%rbp), %ecx
shll $0x2, %ecx
addl -0x44(%rbp), %ecx
movslq %ecx, %rdx
leaq 0x1ecb3(%rip), %rcx     # 0xcf670
movsbl (%rcx,%rdx), %ecx
shrl %cl, %eax
andl $0x3, %eax
addl %eax, %esi
callq 0xae5c0
cmpl $0x0, %eax
je 0xb0a42
movl -0xc(%rbp), %eax
shll $0x2, %eax
addl -0x44(%rbp), %eax
movslq %eax, %rcx
leaq 0x1e02b(%rip), %rax     # 0xcea10
movsbl (%rax,%rcx), %ecx
movl $0x1, %eax
shll %cl, %eax
movl %eax, %ecx
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
orl 0xc(%rax), %ecx
movl %ecx, 0xc(%rax)
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
movl -0xc(%rbp), %ecx
shll $0x2, %ecx
addl -0x44(%rbp), %ecx
movslq %ecx, %rcx
movl $0x1010101, 0x40(%rax,%rcx,4) # imm = 0x1010101
movq -0x8(%rbp), %rdi
xorl %esi, %esi
movl $0x3f, %edx
callq 0xb0c50
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movq -0x58(%rbp), %rdx
callq 0x9cfe0
jmp 0xb0a44
jmp 0xb0a46
movl -0x44(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x44(%rbp)
jmp 0xb086f
jmp 0xb0a56
movq -0x8(%rbp), %rax
movsbl 0x2a(%rax), %eax
cmpl $0x3, %eax
jge 0xb0a6e
movq -0x8(%rbp), %rdi
callq 0xb1070
jmp 0xb0a7e
jmp 0xb0a70
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0xb055a
addq $0x60, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)