// File: /workspace/github_c_makefile_star2_O0/tvlabs[P]edge264/./edge264_slice.c
// Function: parse_B_mb_cabac
static inline void CAFUNC(parse_B_mb)
{
	// Inter initializations
	mb->mbIsInterFlag = 1;
	mb->Intra4x4PredMode_v = (i8x16){2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2};
	#if CABAC
		mb->absMvd_v[0] = mb->absMvd_v[1] = mb->absMvd_v[2] = mb->absMvd_v[3] = (i8x16){};
	#endif
	mb->mvs_v[0] = mb->mvs_v[1] = mb->mvs_v[2] = mb->mvs_v[3] = mb->mvs_v[4] = mb->mvs_v[5] = mb->mvs_v[6] = mb->mvs_v[7] = (i16x8){};
	
	// parse mb_skip_run/flag
	#if !CABAC
		if (ctx->mb_skip_run < 0) {
			ctx->mb_skip_run = get_ue32(&ctx->t._gb, 139264);
			log_mb(ctx, "    mb_skip_run: %u\n", ctx->mb_skip_run);
		}
		int mb_skip_flag = ctx->mb_skip_run-- > 0;
	#else
		int mb_skip_flag = get_ae(ctx, 26 - ctx->inc.mb_skip_flag);
		log_mb(ctx, "    mb_skip_flag: %u\n", mb_skip_flag);
	#endif
	
	// earliest handling for B_Skip
	if (mb_skip_flag) {
		#if CABAC
			mb->f.mb_skip_flag = 1;
			mb->f.mb_type_B_Direct = 1;
			ctx->mb_qp_delta_nz = 0;
		#endif
		mb->f.inter_eqs_s = 0;
		decode_direct_mv_pred(ctx, 0xffffffff);
		return;
	}
		
	// B_Direct_16x16
	#if !CABAC
		int mb_type = get_ue16(&ctx->t._gb, 48);
	#endif
	if (CACOND(mb_type == 0, !get_ae(ctx, 29 - ctx->inc.mb_type_B_Direct))) {
		log_mb(ctx, "    mb_type: 0\n");
		#if CABAC
			mb->f.mb_type_B_Direct = 1;
		#endif
		ctx->transform_8x8_mode_flag = ctx->t.pps.transform_8x8_mode_flag & ctx->t.direct_8x8_inference_flag;
		mb->f.inter_eqs_s = 0;
		decode_direct_mv_pred(ctx, 0xffffffff);
		CAJUMP(parse_inter_residual);
	}
	ctx->transform_8x8_mode_flag = ctx->t.pps.transform_8x8_mode_flag;
	
	// initializations and jumps for mb_type
	#if !CABAC
		log_mb(ctx, "    mb_type: %u\n", mb_type);
		if (mb_type > 22)
			CAJUMP(parse_I_mb, mb_type - 23);
		mb->refIdx_l = -1;
		mb->mvs_v[0] = mb->mvs_v[1] = mb->mvs_v[2] = mb->mvs_v[3] = mb->mvs_v[4] = mb->mvs_v[5] = mb->mvs_v[6] = mb->mvs_v[7] = (i16x8){};
		if (mb_type == 22)
			CAJUMP(parse_B_sub_mb);
		static const uint8_t mb_type2flags[22] = {0, 0x01, 0x10, 0x11, 0x05, 0x03,
			0x50, 0x30, 0x41, 0x21, 0x14, 0x12, 0x45, 0x23, 0x54, 0x32, 0x15, 0x13,
			0x51, 0x31, 0x55, 0x33};
		int flags8x8 = mb_type2flags[mb_type];
	#else
		int str = 4;
		if (!get_ae(ctx, 30) || (str = get_ae(ctx, 31),
			str += str + get_ae(ctx, 32),
			str += str + get_ae(ctx, 32),
			str += str + get_ae(ctx, 32), str - 8 < 5u))
		{
			str += str + get_ae(ctx, 32);
		}
		if (str == 13)
			CAJUMP(parse_I_mb, 32);
		static const uint8_t str2mb_type[26] = {3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 0, 0,
			0, 0, 11, 22, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21};
		log_mb(ctx, "    mb_type: %u\n", str2mb_type[str]);
		mb->refIdx_l = -1;
		mb->mvs_v[0] = mb->mvs_v[1] = mb->mvs_v[2] = mb->mvs_v[3] = mb->mvs_v[4] = mb->mvs_v[5] = mb->mvs_v[6] = mb->mvs_v[7] = (i16x8){};
		if (str == 15)
			CAJUMP(parse_B_sub_mb);
		static const uint8_t str2flags[26] = {0x11, 0x05, 0x03, 0x50, 0x30, 0x41,
			0x21, 0x14, 0x01, 0x10, 0, 0, 0, 0, 0x12, 0, 0x45, 0x23, 0x54, 0x32,
			0x15, 0x13, 0x51, 0x31, 0x55, 0x33};
		int flags8x8 = str2flags[str];
	#endif
	
	// decoding large blocks
	CACALL(parse_ref_idx, flags8x8);
	log_mb(ctx, "    mvds: [");
	if (!(flags8x8 & 0xee)) { // 16x16
		mb->f.inter_eqs_s = little_endian32(0x1b5fbbff);
		if (flags8x8 & 0x01) {
			i16x8 mvd = CACALL(parse_mvd_pair, mb->absMvd, 0);
			decode_inter_16x16(ctx, mvd, 0);
		}
		if (flags8x8 & 0x10) {
			i16x8 mvd = CACALL(parse_mvd_pair, mb->absMvd + 32, 0);
			decode_inter_16x16(ctx, mvd, 1);
		}
	} else if (!(flags8x8 & 0xcc)) { // 8x16
		mb->f.inter_eqs_s = little_endian32(0x1b1bbbbb);
		if (flags8x8 & 0x01) {
			i16x8 mvd = CACALL(parse_mvd_pair, mb->absMvd, 0);
			decode_inter_8x16_left(ctx, mvd, 0);
		}
		if (flags8x8 & 0x02) {
			i16x8 mvd = CACALL(parse_mvd_pair, mb->absMvd, 4);
			decode_inter_8x16_right(ctx, mvd, 0);
		}
		if (flags8x8 & 0x10) {
			i16x8 mvd = CACALL(parse_mvd_pair, mb->absMvd + 32, 0);
			decode_inter_8x16_left(ctx, mvd, 1);
		}
		if (flags8x8 & 0x20) {
			i16x8 mvd = CACALL(parse_mvd_pair, mb->absMvd + 32, 4);
			decode_inter_8x16_right(ctx, mvd, 1);
		}
	} else { // 16x8
		mb->f.inter_eqs_s = little_endian32(0x1b5f1b5f);
		if (flags8x8 & 0x01) {
			i16x8 mvd = CACALL(parse_mvd_pair, mb->absMvd, 0);
			decode_inter_16x8_top(ctx, mvd, 0);
		}
		if (flags8x8 & 0x04) {
			i16x8 mvd = CACALL(parse_mvd_pair, mb->absMvd, 8);
			decode_inter_16x8_bottom(ctx, mvd, 0);
		}
		if (flags8x8 & 0x10) {
			i16x8 mvd = CACALL(parse_mvd_pair, mb->absMvd + 32, 0);
			decode_inter_16x8_top(ctx, mvd, 1);
		}
		if (flags8x8 & 0x40) {
			i16x8 mvd = CACALL(parse_mvd_pair, mb->absMvd + 32, 8);
			decode_inter_16x8_bottom(ctx, mvd, 1);
		}
	}
	log_mb(ctx, "]\n");
	CAJUMP(parse_inter_residual);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x140, %rsp            # imm = 0x140
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
movb $0x1, 0x2(%rax)
vmovdqa 0x1ca5a(%rip), %xmm0    # 0xc9270
vmovdqa %xmm0, -0x20(%rbp)
vmovdqa -0x20(%rbp), %xmm0
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
vmovdqa %xmm0, 0x30(%rax)
vpxor %xmm0, %xmm0, %xmm0
vmovdqa %xmm0, -0x30(%rbp)
vmovdqa -0x30(%rbp), %xmm0
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
vmovdqa %xmm0, 0xa0(%rax)
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
vmovdqa %xmm0, 0x90(%rax)
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
vmovdqa %xmm0, 0x80(%rax)
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
vmovdqa %xmm0, 0x70(%rax)
vpxor %xmm0, %xmm0, %xmm0
vmovdqa %xmm0, -0x40(%rbp)
vmovdqa -0x40(%rbp), %xmm0
vmovaps %xmm0, -0x120(%rbp)
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
vmovdqa %xmm0, 0x120(%rax)
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
vmovdqa %xmm0, 0x110(%rax)
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
vmovdqa %xmm0, 0x100(%rax)
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
vmovdqa %xmm0, 0xf0(%rax)
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
vmovdqa %xmm0, 0xe0(%rax)
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
vmovdqa %xmm0, 0xd0(%rax)
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
vmovdqa %xmm0, 0xc0(%rax)
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
vmovdqa %xmm0, 0xb0(%rax)
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movsbl 0x6c1(%rax), %eax
movl $0x1a, %esi
subl %eax, %esi
callq 0xae5c0
movl %eax, -0x44(%rbp)
movq -0x8(%rbp), %rax
movswq 0x1cd0(%rax), %rax
cmpq $0x1000, %rax           # imm = 0x1000
jae 0xac9bd
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
movl -0x44(%rbp), %ecx
leaq 0x241ea(%rip), %rdx     # 0xd0b8a
movb $0x0, %al
callq 0x7070
movl %eax, %edx
movq -0x8(%rbp), %rax
movswl 0x1cd0(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x1cd0(%rax)
cmpl $0x0, -0x44(%rbp)
je 0xaca11
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
movb $0x1, 0x21(%rax)
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
movb $0x1, 0x23(%rax)
movq -0x8(%rbp), %rax
movb $0x0, 0x651(%rax)
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
movl $0x0, 0x2c(%rax)
movq -0x8(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0xa1080
jmp 0xad14c
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movsbl 0x6c3(%rax), %eax
movl $0x1d, %esi
subl %eax, %esi
callq 0xae5c0
cmpl $0x0, %eax
jne 0xacafa
movq -0x8(%rbp), %rax
movswq 0x1cd0(%rax), %rax
cmpq $0x1000, %rax           # imm = 0x1000
jae 0xaca9c
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 0x23fb1(%rip), %rdx     # 0xd0a30
movb $0x0, %al
callq 0x7070
movl %eax, %edx
movq -0x8(%rbp), %rax
movswl 0x1cd0(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x1cd0(%rax)
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
movb $0x1, 0x23(%rax)
movq -0x8(%rbp), %rax
movsbl 0x22a(%rax), %eax
movq -0x8(%rbp), %rcx
movsbl 0x2b(%rcx), %ecx
andl %ecx, %eax
movb %al, %cl
movq -0x8(%rbp), %rax
movb %cl, 0xdc0(%rax)
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
movl $0x0, 0x2c(%rax)
movq -0x8(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0xa1080
movq -0x8(%rbp), %rdi
callq 0xb0080
jmp 0xad14c
movq -0x8(%rbp), %rax
movb 0x22a(%rax), %cl
movq -0x8(%rbp), %rax
movb %cl, 0xdc0(%rax)
movl $0x4, -0x48(%rbp)
movq -0x8(%rbp), %rdi
movl $0x1e, %esi
callq 0xae5c0
cmpl $0x0, %eax
je 0xacbbd
movq -0x8(%rbp), %rdi
movl $0x1f, %esi
callq 0xae5c0
movl %eax, -0x48(%rbp)
movl -0x48(%rbp), %eax
movl %eax, -0x12c(%rbp)
movq -0x8(%rbp), %rdi
movl $0x20, %esi
callq 0xae5c0
movl %eax, %ecx
movl -0x12c(%rbp), %eax
addl %ecx, %eax
addl -0x48(%rbp), %eax
movl %eax, -0x48(%rbp)
movl -0x48(%rbp), %eax
movl %eax, -0x128(%rbp)
movq -0x8(%rbp), %rdi
movl $0x20, %esi
callq 0xae5c0
movl %eax, %ecx
movl -0x128(%rbp), %eax
addl %ecx, %eax
addl -0x48(%rbp), %eax
movl %eax, -0x48(%rbp)
movl -0x48(%rbp), %eax
movl %eax, -0x124(%rbp)
movq -0x8(%rbp), %rdi
movl $0x20, %esi
callq 0xae5c0
movl %eax, %ecx
movl -0x124(%rbp), %eax
addl %ecx, %eax
addl -0x48(%rbp), %eax
movl %eax, -0x48(%rbp)
movl -0x48(%rbp), %eax
subl $0x8, %eax
cmpl $0x5, %eax
jae 0xacbe4
movl -0x48(%rbp), %eax
movl %eax, -0x130(%rbp)
movq -0x8(%rbp), %rdi
movl $0x20, %esi
callq 0xae5c0
movl %eax, %ecx
movl -0x130(%rbp), %eax
addl %ecx, %eax
addl -0x48(%rbp), %eax
movl %eax, -0x48(%rbp)
cmpl $0xd, -0x48(%rbp)
jne 0xacbfd
movq -0x8(%rbp), %rdi
movl $0x20, %esi
callq 0xad160
jmp 0xad14c
movq -0x8(%rbp), %rax
movswq 0x1cd0(%rax), %rax
cmpq $0x1000, %rax           # imm = 0x1000
jae 0xacc73
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
movslq -0x48(%rbp), %rcx
leaq 0x22c35(%rip), %rax     # 0xcf880
movzbl (%rax,%rcx), %ecx
leaq 0x23cc0(%rip), %rdx     # 0xd0916
movb $0x0, %al
callq 0x7070
movl %eax, %edx
movq -0x8(%rbp), %rax
movswl 0x1cd0(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x1cd0(%rax)
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
movq $-0x1, 0x10(%rax)
vpxor %xmm0, %xmm0, %xmm0
vmovdqa %xmm0, -0x60(%rbp)
vmovdqa -0x60(%rbp), %xmm0
vmovaps %xmm0, -0x140(%rbp)
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
vmovdqa %xmm0, 0x120(%rax)
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
vmovdqa %xmm0, 0x110(%rax)
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
vmovdqa %xmm0, 0x100(%rax)
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
vmovdqa %xmm0, 0xf0(%rax)
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
vmovdqa %xmm0, 0xe0(%rax)
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
vmovdqa %xmm0, 0xd0(%rax)
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
vmovdqa %xmm0, 0xc0(%rax)
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
vmovdqa %xmm0, 0xb0(%rax)
cmpl $0xf, -0x48(%rbp)
jne 0xacd48
movq -0x8(%rbp), %rdi
callq 0xb1390
jmp 0xad14c
movslq -0x48(%rbp), %rcx
leaq 0x22b4d(%rip), %rax     # 0xcf8a0
movzbl (%rax,%rcx), %eax
movl %eax, -0x64(%rbp)
movq -0x8(%rbp), %rdi
movl -0x64(%rbp), %esi
callq 0xaf5c0
movq -0x8(%rbp), %rax
movswq 0x1cd0(%rax), %rax
cmpq $0x1000, %rax           # imm = 0x1000
jae 0xacdcd
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 0x23b8c(%rip), %rdx     # 0xd093c
movb $0x0, %al
callq 0x7070
movl %eax, %edx
movq -0x8(%rbp), %rax
movswl 0x1cd0(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x1cd0(%rax)
movl -0x64(%rbp), %eax
andl $0xee, %eax
cmpl $0x0, %eax
jne 0xace76
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
movl $0x1b5fbbff, 0x2c(%rax) # imm = 0x1B5FBBFF
movl -0x64(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0xace2a
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rsi
addq $0x70, %rsi
xorl %edx, %edx
callq 0xafc70
vmovdqa %xmm0, -0x80(%rbp)
movq -0x8(%rbp), %rdi
vmovdqa -0x80(%rbp), %xmm0
xorl %esi, %esi
callq 0x813b0
movl -0x64(%rbp), %eax
andl $0x10, %eax
cmpl $0x0, %eax
je 0xace71
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rsi
addq $0x70, %rsi
addq $0x20, %rsi
xorl %edx, %edx
callq 0xafc70
vmovdqa %xmm0, -0x90(%rbp)
movq -0x8(%rbp), %rdi
vmovdqa -0x90(%rbp), %xmm0
movl $0x1, %esi
callq 0x813b0
jmp 0xad0dc
movl -0x64(%rbp), %eax
andl $0xcc, %eax
cmpl $0x0, %eax
jne 0xacfb2
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
movl $0x1b1bbbbb, 0x2c(%rax) # imm = 0x1B1BBBBB
movl -0x64(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0xaced9
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rsi
addq $0x70, %rsi
xorl %edx, %edx
callq 0xafc70
vmovdqa %xmm0, -0xa0(%rbp)
movq -0x8(%rbp), %rdi
vmovdqa -0xa0(%rbp), %xmm0
xorl %esi, %esi
callq 0x81950
movl -0x64(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0xacf1c
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rsi
addq $0x70, %rsi
movl $0x4, %edx
callq 0xafc70
vmovdqa %xmm0, -0xb0(%rbp)
movq -0x8(%rbp), %rdi
vmovdqa -0xb0(%rbp), %xmm0
xorl %esi, %esi
callq 0x81f70
movl -0x64(%rbp), %eax
andl $0x10, %eax
cmpl $0x0, %eax
je 0xacf63
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rsi
addq $0x70, %rsi
addq $0x20, %rsi
xorl %edx, %edx
callq 0xafc70
vmovdqa %xmm0, -0xc0(%rbp)
movq -0x8(%rbp), %rdi
vmovdqa -0xc0(%rbp), %xmm0
movl $0x1, %esi
callq 0x81950
movl -0x64(%rbp), %eax
andl $0x20, %eax
cmpl $0x0, %eax
je 0xacfad
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rsi
addq $0x70, %rsi
addq $0x20, %rsi
movl $0x4, %edx
callq 0xafc70
vmovdqa %xmm0, -0xd0(%rbp)
movq -0x8(%rbp), %rdi
vmovdqa -0xd0(%rbp), %xmm0
movl $0x1, %esi
callq 0x81f70
jmp 0xad0da
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rax
movl $0x1b5f1b5f, 0x2c(%rax) # imm = 0x1B5F1B5F
movl -0x64(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0xad004
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rsi
addq $0x70, %rsi
xorl %edx, %edx
callq 0xafc70
vmovdqa %xmm0, -0xe0(%rbp)
movq -0x8(%rbp), %rdi
vmovdqa -0xe0(%rbp), %xmm0
xorl %esi, %esi
callq 0x82560
movl -0x64(%rbp), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0xad047
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rsi
addq $0x70, %rsi
movl $0x8, %edx
callq 0xafc70
vmovdqa %xmm0, -0xf0(%rbp)
movq -0x8(%rbp), %rdi
vmovdqa -0xf0(%rbp), %xmm0
xorl %esi, %esi
callq 0x82b90
movl -0x64(%rbp), %eax
andl $0x10, %eax
cmpl $0x0, %eax
je 0xad08e
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rsi
addq $0x70, %rsi
addq $0x20, %rsi
xorl %edx, %edx
callq 0xafc70
vmovdqa %xmm0, -0x100(%rbp)
movq -0x8(%rbp), %rdi
vmovdqa -0x100(%rbp), %xmm0
movl $0x1, %esi
callq 0x82560
movl -0x64(%rbp), %eax
andl $0x40, %eax
cmpl $0x0, %eax
je 0xad0d8
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x680(%rax), %rsi
addq $0x70, %rsi
addq $0x20, %rsi
movl $0x8, %edx
callq 0xafc70
vmovdqa %xmm0, -0x110(%rbp)
movq -0x8(%rbp), %rdi
vmovdqa -0x110(%rbp), %xmm0
movl $0x1, %esi
callq 0x82b90
jmp 0xad0da
jmp 0xad0dc
movq -0x8(%rbp), %rax
movswq 0x1cd0(%rax), %rax
cmpq $0x1000, %rax           # imm = 0x1000
jae 0xad143
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 0x23a92(%rip), %rdx     # 0xd0bb8
movb $0x0, %al
callq 0x7070
movl %eax, %edx
movq -0x8(%rbp), %rax
movswl 0x1cd0(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x1cd0(%rax)
movq -0x8(%rbp), %rdi
callq 0xb0080
addq $0x140, %rsp            # imm = 0x140
popq %rbp
retq
nopw %cs:(%rax,%rax)