// File: /workspace/github_c_makefile_star2_O0/tvlabs[P]edge264/edge264_headers.c
// Function: parse_slice_layer_without_partitioning_log
int ADD_VARIANT(parse_slice_layer_without_partitioning)(Edge264Decoder *dec, int non_blocking, void(*free_cb)(void*,int), void *free_arg)
{
	static const char * const slice_type_names[5] = {"P", "B", "I", "SP", "SI"};
	static const char * const disable_deblocking_filter_idc_names[3] = {"enabled", "disabled", "sliced"};
	
	// reserving a slot without locking is fine since workers can only unset busy_tasks
	unsigned avail_tasks;
	while (!(avail_tasks = 0xffff & ~dec->busy_tasks)) {
		if (non_blocking)
			return EWOULDBLOCK;
		pthread_cond_wait(&dec->task_complete, &dec->lock);
	}
	Edge264Task *t = dec->tasks + __builtin_ctz(avail_tasks);
	t->free_cb = free_cb;
	t->free_arg = free_arg;
	t->RefPicList_v[0] = t->RefPicList_v[1] = t->RefPicList_v[2] = t->RefPicList_v[3] =
		(i8x16){-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1};
	
	// first important fields and checks before decoding the slice header
	t->first_mb_in_slice = get_ue32(&dec->_gb, 139263);
	int slice_type = get_ue16(&dec->_gb, 9);
	t->slice_type = (slice_type < 5) ? slice_type : slice_type - 5;
	int pic_parameter_set_id = get_ue16(&dec->_gb, 255);
	log_dec(dec, "  first_mb_in_slice: %u\n"
		"  slice_type: %u # %s%s\n"
		"  pic_parameter_set_id: %u%s\n",
		t->first_mb_in_slice,
		slice_type, slice_type_names[t->slice_type], unsup_if(t->slice_type > 2),
		pic_parameter_set_id, unsup_if(pic_parameter_set_id >= 4));
	Edge264SeqParameterSet *sps = (dec->nal_unit_type == 20) ? &dec->ssps : &dec->sps;
	if (t->slice_type > 2 || pic_parameter_set_id >= 4)
		return ENOTSUP;
	t->pps = dec->PPS[pic_parameter_set_id];
	if (!sps->DPB_format || !t->pps.num_ref_idx_active[0]) // if SPS or PPS wasn't initialized
		return EBADMSG;
	
	// check on view_id
	int non_base_view = 1;
	unsigned same_views = dec->second_views;
	if (dec->nal_unit_type != 20) {
		non_base_view = 0;
		same_views = ~same_views;
		dec->IdrPicFlag = dec->nal_unit_type == 5;
	}
	if (dec->currPic >= 0 && (dec->nal_unit_type == 20) != (dec->second_views >> dec->currPic & 1))
		finish_frame(dec);
	
	// parse frame_num
	int frame_num = get_uv(&dec->_gb, sps->log2_max_frame_num);
	int FrameNumMask = (1 << sps->log2_max_frame_num) - 1;
	if (dec->currPic >= 0 && frame_num != (dec->FrameNum & FrameNumMask))
		finish_frame(dec);
	// FIXME incorrect for MVC
	int prevRefFrameNum = dec->IdrPicFlag ? 0 : dec->FrameNums[dec->prevPic];
	dec->FrameNum = prevRefFrameNum + ((frame_num - prevRefFrameNum) & FrameNumMask);
	log_dec(dec, "  frame_num: {bits: %u, absolute: %u}\n",
		sps->log2_max_frame_num, dec->FrameNum);
	
	// check for gaps in frame_num (8.2.5.2)
	int gap = dec->FrameNum - prevRefFrameNum;
	if (__builtin_expect(gap > 1, 0)) {
		// make enough non-referenced slots by dereferencing frames
		int non_existing = min(gap - 1, sps->max_num_ref_frames - __builtin_popcount(same_views & dec->long_term_flags));
		for (int excess = __builtin_popcount(same_views & dec->reference_flags) - (sps->max_num_ref_frames - non_existing); excess > 0; excess--) {
			int unref, poc = INT_MAX;
			for (unsigned r = same_views & dec->reference_flags & ~dec->long_term_flags; r; r &= r - 1) {
				int i = __builtin_ctz(r);
				if (dec->FrameNums[i] < poc)
					poc = dec->FrameNums[unref = i];
			}
			dec->reference_flags &= ~(1 << unref);
		}
		// make enough non-outputable slots by raising dispPicOrderCnt
		unsigned output_flags = dec->output_flags;
		for (int excess = __builtin_popcount(same_views & (dec->reference_flags | output_flags)) - (sps->num_frame_buffers - non_existing); excess > 0; excess--) {
			int disp, poc = INT_MAX;
			for (unsigned o = same_views & ~dec->reference_flags & output_flags; o; o &= o - 1) {
				int i = __builtin_ctz(o);
				if (dec->FieldOrderCnt[0][i] < poc)
					poc = dec->FieldOrderCnt[0][disp = i];
			}
			output_flags &= ~(1 << disp);
			dec->dispPicOrderCnt = max(dec->dispPicOrderCnt, poc);
		}
		// stop here if we must wait for get_frame to consume and return enough frames
		if (__builtin_popcount(same_views & (dec->reference_flags | dec->output_flags | dec->borrow_flags)) + non_existing > sps->num_frame_buffers)
			return ENOBUFS;
		// wait until enough free slots are undepended
		unsigned unavail;
		while (__builtin_popcount(unavail = same_views & (dec->reference_flags | output_flags | dec->borrow_flags | depended_frames(dec))) + non_existing > sps->num_frame_buffers) {
			if (non_blocking)
				return EWOULDBLOCK;
			pthread_cond_wait(&dec->task_complete, &dec->lock);
		}
		// finally insert the last non-existing frames one by one
		for (unsigned FrameNum = dec->FrameNum - non_existing; FrameNum < dec->FrameNum; FrameNum++) {
			int i = dec->prevPic = __builtin_ctz(same_views & ~unavail);
			unavail |= 1 << i;
			dec->reference_flags |= 1 << i;
			dec->second_views = dec->second_views & ~(1 << i) | (dec->nal_unit_type == 20) << i;
			dec->FrameNums[i] = FrameNum;
			int PicOrderCnt = 0;
			if (sps->pic_order_cnt_type == 2) {
				PicOrderCnt = FrameNum * 2;
			} else if (sps->num_ref_frames_in_pic_order_cnt_cycle > 0) {
				PicOrderCnt = (FrameNum / sps->num_ref_frames_in_pic_order_cnt_cycle) *
					sps->PicOrderCntDeltas[sps->num_ref_frames_in_pic_order_cnt_cycle] +
					sps->PicOrderCntDeltas[FrameNum % sps->num_ref_frames_in_pic_order_cnt_cycle];
			}
			dec->FieldOrderCnt[0][i] = dec->FieldOrderCnt[1][i] = PicOrderCnt;
			if (dec->frame_buffers[i] == NULL && alloc_frame(dec, i))
				return ENOMEM;
		}
	}
	
	// As long as PAFF/MBAFF are unsupported, this code won't execute (but is still kept).
	t->field_pic_flag = 0;
	t->bottom_field_flag = 0;
	if (!sps->frame_mbs_only_flag) {
		t->field_pic_flag = get_u1(&dec->_gb);
		log_dec(dec, "  field_pic_flag: %u\n", t->field_pic_flag);
		if (t->field_pic_flag) {
			t->bottom_field_flag = get_u1(&dec->_gb);
			log_dec(dec, "  bottom_field_flag: %u\n",
				t->bottom_field_flag);
		}
	}
	t->MbaffFrameFlag = sps->mb_adaptive_frame_field_flag & ~t->field_pic_flag;
	
	// I did not get the point of idr_pic_id yet.
	if (dec->IdrPicFlag) {
		int idr_pic_id = get_ue32(&dec->_gb, 65535);
		log_dec(dec, "  idr_pic_id: %u\n", idr_pic_id);
	}
	
	// Compute Top/BottomFieldOrderCnt (8.2.1).
	if (sps->pic_order_cnt_type == 0) {
		int pic_order_cnt_lsb = get_uv(&dec->_gb, sps->log2_max_pic_order_cnt_lsb);
		int shift = WORD_BIT - sps->log2_max_pic_order_cnt_lsb;
		if (dec->currPic >= 0 && pic_order_cnt_lsb != ((unsigned)dec->FieldOrderCnt[0][dec->currPic] << shift >> shift))
			finish_frame(dec);
		int prevPicOrderCnt = dec->IdrPicFlag ? 0 : dec->prevPicOrderCnt;
		int inc = (pic_order_cnt_lsb - prevPicOrderCnt) << shift >> shift;
		dec->BottomFieldOrderCnt = dec->TopFieldOrderCnt = prevPicOrderCnt + inc;
		log_dec(dec, "  pic_order_cnt: {type: 0, bits: %u, absolute: %d",
			sps->log2_max_pic_order_cnt_lsb, dec->TopFieldOrderCnt);
		if (t->pps.bottom_field_pic_order_in_frame_present_flag && !t->field_pic_flag) {
			dec->BottomFieldOrderCnt += get_se32(&dec->_gb, (-1u << 31) + 1, (1u << 31) - 1);
			log_dec(dec, ", bottom: %d", dec->BottomFieldOrderCnt);
		}
		log_dec(dec, "}\n");
	} else if (sps->pic_order_cnt_type == 1) {
		log_dec(dec, "  pic_order_cnt: {type: 1");
		unsigned absFrameNum = dec->FrameNum + (dec->nal_ref_idc != 0) - 1;
		dec->TopFieldOrderCnt = (dec->nal_ref_idc) ? 0 : sps->offset_for_non_ref_pic;
		if (sps->num_ref_frames_in_pic_order_cnt_cycle > 0) {
			dec->TopFieldOrderCnt += (absFrameNum / sps->num_ref_frames_in_pic_order_cnt_cycle) *
				sps->PicOrderCntDeltas[sps->num_ref_frames_in_pic_order_cnt_cycle] +
				sps->PicOrderCntDeltas[absFrameNum % sps->num_ref_frames_in_pic_order_cnt_cycle];
		}
		dec->BottomFieldOrderCnt = dec->TopFieldOrderCnt + sps->offset_for_top_to_bottom_field;
		if (!sps->delta_pic_order_always_zero_flag) {
			int delta_pic_order_cnt0 = get_se32(&dec->_gb, (-1u << 31) + 1, (1u << 31) - 1);
			dec->TopFieldOrderCnt += delta_pic_order_cnt0;
			dec->BottomFieldOrderCnt += delta_pic_order_cnt0;
			log_dec(dec, ", delta0: %d", delta_pic_order_cnt0);
			if (t->pps.bottom_field_pic_order_in_frame_present_flag && !t->field_pic_flag) {
				int delta_pic_order_cnt1 = get_se32(&dec->_gb, (-1u << 31) + 1, (1u << 31) - 1);
				dec->BottomFieldOrderCnt += delta_pic_order_cnt1;
				log_dec(dec, ", delta1: %d", delta_pic_order_cnt1);
			}
		}
		log_dec(dec, (dec->TopFieldOrderCnt == dec->BottomFieldOrderCnt) ?
			", absolute: %d}" : ", absolute: %d, bottom: %d}\n",
			dec->TopFieldOrderCnt, dec->BottomFieldOrderCnt);
		if (dec->currPic >= 0 && dec->TopFieldOrderCnt != dec->FieldOrderCnt[0][dec->currPic])
			finish_frame(dec);
	} else {
		dec->TopFieldOrderCnt = dec->BottomFieldOrderCnt = dec->FrameNum * 2 + (dec->nal_ref_idc != 0) - 1;
		log_dec(dec, (dec->TopFieldOrderCnt == dec->BottomFieldOrderCnt) ?
			"  pic_order_cnt: {type: 2, absolute: %d}" : "  pic_order_cnt: {type: 2, absolute: %d, bottom: %d}\n",
			dec->TopFieldOrderCnt, dec->BottomFieldOrderCnt);
	}
	
	// find and possibly allocate a DPB slot for the upcoming frame
	if (dec->currPic < 0) {
		// reset refs if we jumped from a stream with higher limit
		if (__builtin_popcount(same_views & dec->reference_flags) > sps->max_num_ref_frames)
			dec->reference_flags = dec->long_term_flags = 0;
		// stop here if we must wait for get_frame to consume and return a non-ref frame
		if (__builtin_popcount(same_views & (dec->reference_flags | dec->output_flags | dec->borrow_flags)) >= sps->num_frame_buffers)
			return ENOBUFS;
		// wait until at least one empty slot is undepended
		unsigned unavail;
		while (__builtin_popcount(same_views & (unavail = dec->reference_flags | dec->output_flags | dec->borrow_flags | depended_frames(dec))) >= sps->num_frame_buffers) {
			if (non_blocking)
				return EWOULDBLOCK;
			pthread_cond_wait(&dec->task_complete, &dec->lock);
		}
		dec->currPic = __builtin_ctz(~unavail);
		dec->output_flags |= 1 << dec->currPic;
		dec->second_views = dec->second_views & ~(1 << dec->currPic) | (dec->nal_unit_type == 20) << dec->currPic;
		dec->frame_flip_bits ^= 1 << dec->currPic;
		dec->remaining_mbs[dec->currPic] = sps->pic_width_in_mbs * sps->pic_height_in_mbs;
		dec->next_deblock_addr[dec->currPic] = 0;
		dec->FrameNums[dec->currPic] = dec->FrameNum;
		dec->FrameIds[dec->currPic] = (dec->prevPic >= 0) ? dec->FrameIds[dec->prevPic] + 1 : 0;
		dec->FieldOrderCnt[0][dec->currPic] = dec->TopFieldOrderCnt;
		dec->FieldOrderCnt[1][dec->currPic] = dec->BottomFieldOrderCnt;
		if (dec->frame_buffers[dec->currPic] == NULL && alloc_frame(dec, dec->currPic))
			return ENOMEM;
	}
	dec->pic_reference_flags = dec->reference_flags & same_views;
	dec->pic_long_term_flags = dec->long_term_flags & same_views;
	dec->pic_LongTermFrameIdx_v[0] = dec->LongTermFrameIdx_v[0];
	dec->pic_LongTermFrameIdx_v[1] = dec->LongTermFrameIdx_v[1];
	log_dec(dec, "  FrameId: %u\n", dec->FrameIds[dec->currPic]);
	
	// The first test could be optimised into a fast bit test, but would be less readable :)
	if (t->slice_type == 0 || t->slice_type == 1) {
		if (t->slice_type == 1) {
			t->direct_spatial_mv_pred_flag = get_u1(&dec->_gb);
			log_dec(dec, "  direct_spatial_mv_pred_flag: %u\n",
				t->direct_spatial_mv_pred_flag);
		}
		
		// num_ref_idx_active_override_flag
		int lim = 16 << t->field_pic_flag; // MVC limit is not enforced since MVC detection is too cumbersome
		if (get_u1(&dec->_gb)) {
			for (int l = 0; l <= t->slice_type; l++)
				t->pps.num_ref_idx_active[l] = get_ue16(&dec->_gb, lim - 1) + 1;
			log_dec(dec, "  num_ref_idx_active: {override_flag: 1");
		} else {
			t->pps.num_ref_idx_active[0] = min(t->pps.num_ref_idx_active[0], lim);
			t->pps.num_ref_idx_active[1] = min(t->pps.num_ref_idx_active[1], lim);
			log_dec(dec, "  num_ref_idx_active: {override_flag: 0");
		}
		log_dec(dec, t->slice_type ? ", l0: %u, l1: %u}\n" : ", l0: %u}\n",
			t->pps.num_ref_idx_active[0], t->pps.num_ref_idx_active[1]);
		
		parse_ref_pic_list_modification(dec, sps, t);
		parse_pred_weight_table(dec, sps, t);
	}
	
	if (dec->nal_ref_idc)
		parse_dec_ref_pic_marking(dec, sps);
	
	t->cabac_init_idc = 0;
	if (t->pps.entropy_coding_mode_flag && t->slice_type != 2) {
		t->cabac_init_idc = 1 + get_ue16(&dec->_gb, 2);
		log_dec(dec, "  cabac_init_idc: %u\n", t->cabac_init_idc - 1);
	}
	t->QP[0] = t->pps.QPprime_Y + get_se16(&dec->_gb, -t->pps.QPprime_Y, 51 - t->pps.QPprime_Y); // FIXME QpBdOffset
	log_dec(dec, "  slice_qp_delta: %d\n", t->QP[0] - t->pps.QPprime_Y);
	
	if (t->pps.deblocking_filter_control_present_flag) {
		t->disable_deblocking_filter_idc = get_ue16(&dec->_gb, 2);
		log_dec(dec, "  disable_deblocking_filter_idc: %u # %s\n",
			t->disable_deblocking_filter_idc, disable_deblocking_filter_idc_names[t->disable_deblocking_filter_idc]);
		if (t->disable_deblocking_filter_idc != 1) {
			t->FilterOffsetA = get_se16(&dec->_gb, -6, 6) * 2;
			t->FilterOffsetB = get_se16(&dec->_gb, -6, 6) * 2;
			log_dec(dec, "  slice_alpha_c0_offset: %d\n"
				"  slice_beta_offset: %d\n", t->FilterOffsetA, t->FilterOffsetB);
		}
	} else {
		t->disable_deblocking_filter_idc = 0;
		t->FilterOffsetA = 0;
		t->FilterOffsetB = 0;
	}
	
	// update output flags now that we know if mmco5 happened
	if (dec->IdrPicFlag) {
		int max_poc = INT_MIN;
		for (unsigned o = dec->output_flags & same_views & ~(1 << dec->currPic); o; o &= o - 1)
			max_poc = max(max_poc, dec->FieldOrderCnt[0][__builtin_ctz(o)]);
		dec->dispPicOrderCnt = -1 << 16;
		for (unsigned o = dec->output_flags & same_views & ~(1 << dec->currPic); o; o &= o - 1) {
			int i = __builtin_ctz(o);
			dec->FieldOrderCnt[0][i] -= max_poc + (1 << 16);
			dec->FieldOrderCnt[1][i] -= max_poc + (1 << 16);
		}
	}
	if (!dec->nal_ref_idc)
		dec->dispPicOrderCnt = dec->TopFieldOrderCnt; // make all frames with lower POCs ready for output
	
	#ifdef LOGS
		log_dec(dec, "  FrameBuffer:\n");
		unsigned reference_flags = dec->pic_reference_flags | dec->reference_flags & ~same_views;
		unsigned long_term_flags = dec->pic_long_term_flags | dec->long_term_flags & ~same_views;
		for (int i = 0; i < 32 - __builtin_clzg(reference_flags | dec->output_flags, 32); i++) {
			log_dec(dec, "    - {id: %u", dec->FrameIds[i]);
			if (reference_flags & 1 << i)
				log_dec(dec, long_term_flags & 1 << i ? ", lref: %u" : ", sref: %u", long_term_flags & 1 << i ? dec->LongTermFrameIdx[i] : dec->FrameNums[i]);
			if (dec->output_flags & 1 << i)
				log_dec(dec, ", poc: %d", minw(dec->FieldOrderCnt[0][i], dec->FieldOrderCnt[1][i]));
			if (dec->second_views)
				log_dec(dec, ", view: %u", dec->second_views >> i & 1);
			log_dec(dec, "}\n");
		}
	#endif
	
	// prepare the task and signal it
	initialize_task(dec, sps, t);
	int task_id = t - dec->tasks;
	dec->busy_tasks |= 1 << task_id;
	dec->pending_tasks |= 1 << task_id;
	dec->task_dependencies[task_id] = refs_to_mask(t);
	dec->ready_tasks |= ((dec->task_dependencies[task_id] & ~ready_frames(dec)) == 0) << task_id;
	dec->taskPics[task_id] = dec->currPic;
	if (!dec->n_threads)
		log_dec(dec, t->pps.entropy_coding_mode_flag ? "  macroblocks_cabac:\n" : "  macroblocks_cavlc:\n");
	if (print_dec(dec))
		return ENOTSUP;
	if (!dec->n_threads)
		return (intptr_t)dec->worker_loop(dec);
	pthread_cond_signal(&dec->task_ready);
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
subq $0x698, %rsp            # imm = 0x698
movq %rdi, -0x500(%rbp)
movl %esi, -0x504(%rbp)
movq %rdx, -0x510(%rbp)
movq %rcx, -0x518(%rbp)
movq -0x500(%rbp), %rax
movzwl 0x1638(%rax), %eax
xorl $-0x1, %eax
andl $0xffff, %eax           # imm = 0xFFFF
movl %eax, -0x51c(%rbp)
cmpl $0x0, %eax
setne %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x73b61
jmp 0x73b9c
cmpl $0x0, -0x504(%rbp)
je 0x73b79
movl $0xb, -0x4f4(%rbp)
jmp 0x76d00
movq -0x500(%rbp), %rdi
addq $0x1608, %rdi           # imm = 0x1608
movq -0x500(%rbp), %rsi
addq $0x1580, %rsi           # imm = 0x1580
callq 0x7050
jmp 0x73b37
movq -0x500(%rbp), %rax
tzcntl -0x51c(%rbp), %ecx
imulq $0x650, %rcx, %rcx      # imm = 0x650
leaq 0x1790(%rax,%rcx), %rax
movq %rax, -0x528(%rbp)
movq -0x510(%rbp), %rcx
movq -0x528(%rbp), %rax
movq %rcx, 0x160(%rax)
movq -0x518(%rbp), %rcx
movq -0x528(%rbp), %rax
movq %rcx, 0x168(%rax)
vpcmpeqd %xmm0, %xmm0, %xmm0
vmovdqa %xmm0, -0x540(%rbp)
vmovdqa -0x540(%rbp), %xmm0
movq -0x528(%rbp), %rax
vmovdqa %xmm0, 0x1d0(%rax)
movq -0x528(%rbp), %rax
vmovdqa %xmm0, 0x1c0(%rax)
movq -0x528(%rbp), %rax
vmovdqa %xmm0, 0x1b0(%rax)
movq -0x528(%rbp), %rax
vmovdqa %xmm0, 0x1a0(%rax)
movq -0x500(%rbp), %rdi
movl $0x21fff, %esi          # imm = 0x21FFF
callq 0x76d10
movl %eax, %ecx
movq -0x528(%rbp), %rax
movl %ecx, 0x48(%rax)
movq -0x500(%rbp), %rdi
movl $0x9, %esi
callq 0x76d10
movl %eax, -0x544(%rbp)
cmpl $0x5, -0x544(%rbp)
jge 0x73c86
movl -0x544(%rbp), %eax
movl %eax, -0x5f8(%rbp)
jmp 0x73c95
movl -0x544(%rbp), %eax
subl $0x5, %eax
movl %eax, -0x5f8(%rbp)
movl -0x5f8(%rbp), %eax
movb %al, %cl
movq -0x528(%rbp), %rax
movb %cl, 0x20(%rax)
movq -0x500(%rbp), %rdi
movl $0xff, %esi
callq 0x76d10
movl %eax, -0x548(%rbp)
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
cmpq $0x2542, %rax           # imm = 0x2542
jae 0x73ddc
movq -0x500(%rbp), %rdi
addq $0x7ca2, %rdi           # imm = 0x7CA2
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %eax
cltq
addq %rax, %rdi
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
movl $0x2542, %esi           # imm = 0x2542
subq %rax, %rsi
movq -0x528(%rbp), %rax
movl 0x48(%rax), %ecx
movl -0x544(%rbp), %r8d
movq -0x528(%rbp), %rax
movsbq 0x20(%rax), %rdx
leaq 0x624ab(%rip), %rax     # 0xd61e0
movq (%rax,%rdx,8), %r9
movq -0x528(%rbp), %rax
movsbl 0x20(%rax), %eax
cmpl $0x2, %eax
setg %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x4dc(%rbp)
movl -0x4dc(%rbp), %edx
leaq 0x5cad0(%rip), %r11     # 0xd0832
leaq 0x5a017(%rip), %rax     # 0xcdd80
cmpl $0x0, %edx
cmovneq %rax, %r11
movl -0x548(%rbp), %r10d
cmpl $0x4, -0x548(%rbp)
setge %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x4e0(%rbp)
movl -0x4e0(%rbp), %ebx
leaq 0x5ca99(%rip), %rax     # 0xd0832
leaq 0x59fe0(%rip), %rdx     # 0xcdd80
cmpl $0x0, %ebx
cmovneq %rdx, %rax
leaq 0x5be80(%rip), %rdx     # 0xcfc2e
movq %r11, (%rsp)
movl %r10d, 0x8(%rsp)
movq %rax, 0x10(%rsp)
movb $0x0, %al
callq 0x7070
movl %eax, %edx
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x7ca0(%rax)
movq -0x500(%rbp), %rax
movsbl 0x22(%rax), %eax
cmpl $0x14, %eax
jne 0x73e02
movq -0x500(%rbp), %rax
addq $0x930, %rax            # imm = 0x930
movq %rax, -0x600(%rbp)
jmp 0x73e16
movq -0x500(%rbp), %rax
addq $0x520, %rax            # imm = 0x520
movq %rax, -0x600(%rbp)
movq -0x600(%rbp), %rax
movq %rax, -0x550(%rbp)
movq -0x528(%rbp), %rax
movsbl 0x20(%rax), %eax
cmpl $0x2, %eax
jg 0x73e3d
cmpl $0x4, -0x548(%rbp)
jl 0x73e4c
movl $0x5f, -0x4f4(%rbp)
jmp 0x76d00
movq -0x528(%rbp), %rdi
addq $0x220, %rdi            # imm = 0x220
movq -0x500(%rbp), %rsi
addq $0xd40, %rsi            # imm = 0xD40
movslq -0x548(%rbp), %rax
imulq $0x1f0, %rax, %rax      # imm = 0x1F0
addq %rax, %rsi
movl $0x1f0, %edx            # imm = 0x1F0
callq 0x70c0
movq -0x550(%rbp), %rax
cmpq $0x0, (%rax)
je 0x73ea0
movq -0x528(%rbp), %rax
cmpb $0x0, 0x222(%rax)
jne 0x73eaf
movl $0x4a, -0x4f4(%rbp)
jmp 0x76d00
movl $0x1, -0x554(%rbp)
movq -0x500(%rbp), %rax
movl 0x68(%rax), %eax
movl %eax, -0x558(%rbp)
movq -0x500(%rbp), %rax
movsbl 0x22(%rax), %eax
cmpl $0x14, %eax
je 0x73f14
movl $0x0, -0x554(%rbp)
movl -0x558(%rbp), %eax
xorl $-0x1, %eax
movl %eax, -0x558(%rbp)
movq -0x500(%rbp), %rax
movsbl 0x22(%rax), %eax
cmpl $0x5, %eax
sete %al
andb $0x1, %al
movzbl %al, %eax
movb %al, %cl
movq -0x500(%rbp), %rax
movb %cl, 0x23(%rax)
movq -0x500(%rbp), %rax
movsbl 0x24(%rax), %eax
cmpl $0x0, %eax
jl 0x73f66
movq -0x500(%rbp), %rax
movsbl 0x22(%rax), %eax
cmpl $0x14, %eax
sete %al
andb $0x1, %al
movzbl %al, %eax
movq -0x500(%rbp), %rcx
movl 0x68(%rcx), %edx
movq -0x500(%rbp), %rcx
movsbl 0x24(%rcx), %ecx
shrl %cl, %edx
movl %edx, %ecx
andl $0x1, %ecx
cmpl %ecx, %eax
je 0x73f66
movq -0x500(%rbp), %rdi
callq 0x76e00
movq -0x500(%rbp), %rdi
movq -0x550(%rbp), %rax
movsbl 0xa(%rax), %esi
callq 0x65e90
movl %eax, -0x55c(%rbp)
movq -0x550(%rbp), %rax
movsbl 0xa(%rax), %ecx
movl $0x1, %eax
shll %cl, %eax
subl $0x1, %eax
movl %eax, -0x560(%rbp)
movq -0x500(%rbp), %rax
movsbl 0x24(%rax), %eax
cmpl $0x0, %eax
jl 0x73fd4
movl -0x55c(%rbp), %eax
movq -0x500(%rbp), %rcx
movl 0x38(%rcx), %ecx
andl -0x560(%rbp), %ecx
cmpl %ecx, %eax
je 0x73fd4
movq -0x500(%rbp), %rdi
callq 0x76e00
movq -0x500(%rbp), %rax
movsbl 0x23(%rax), %eax
cmpl $0x0, %eax
je 0x73fee
xorl %eax, %eax
movl %eax, -0x604(%rbp)
jmp 0x7400b
movq -0x500(%rbp), %rax
movq -0x500(%rbp), %rcx
movsbq 0x25(%rcx), %rcx
movl 0x6c(%rax,%rcx,4), %eax
movl %eax, -0x604(%rbp)
movl -0x604(%rbp), %eax
movl %eax, -0x564(%rbp)
movl -0x564(%rbp), %ecx
movl -0x55c(%rbp), %eax
subl -0x564(%rbp), %eax
andl -0x560(%rbp), %eax
addl %eax, %ecx
movq -0x500(%rbp), %rax
movl %ecx, 0x38(%rax)
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
cmpq $0x2542, %rax           # imm = 0x2542
jae 0x740c7
movq -0x500(%rbp), %rdi
addq $0x7ca2, %rdi           # imm = 0x7CA2
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %eax
cltq
addq %rax, %rdi
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
movl $0x2542, %esi           # imm = 0x2542
subq %rax, %rsi
movq -0x550(%rbp), %rax
movsbl 0xa(%rax), %ecx
movq -0x500(%rbp), %rax
movl 0x38(%rax), %r8d
leaq 0x5bbd5(%rip), %rdx     # 0xcfc7c
movb $0x0, %al
callq 0x7070
movl %eax, %edx
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x7ca0(%rax)
movq -0x500(%rbp), %rax
movl 0x38(%rax), %eax
subl -0x564(%rbp), %eax
movl %eax, -0x568(%rbp)
cmpl $0x1, -0x568(%rbp)
setg %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x74742
movl -0x568(%rbp), %ecx
subl $0x1, %ecx
movq -0x550(%rbp), %rax
movsbl 0xf(%rax), %eax
movl -0x558(%rbp), %edx
movq -0x500(%rbp), %rsi
andl 0x50(%rsi), %edx
popcntl %edx, %edx
subl %edx, %eax
movl %ecx, -0x4c4(%rbp)
movl %eax, -0x4c8(%rbp)
movl -0x4c4(%rbp), %eax
cmpl -0x4c8(%rbp), %eax
jge 0x7414a
movl -0x4c4(%rbp), %eax
movl %eax, -0x608(%rbp)
jmp 0x74156
movl -0x4c8(%rbp), %eax
movl %eax, -0x608(%rbp)
movl -0x608(%rbp), %eax
movl %eax, -0x56c(%rbp)
movl -0x558(%rbp), %eax
movq -0x500(%rbp), %rcx
andl 0x4c(%rcx), %eax
popcntl %eax, %eax
movq -0x550(%rbp), %rcx
movsbl 0xf(%rcx), %ecx
subl -0x56c(%rbp), %ecx
subl %ecx, %eax
movl %eax, -0x570(%rbp)
cmpl $0x0, -0x570(%rbp)
jle 0x7426a
movl $0x7fffffff, -0x578(%rbp) # imm = 0x7FFFFFFF
movl -0x558(%rbp), %eax
movq -0x500(%rbp), %rcx
andl 0x4c(%rcx), %eax
movq -0x500(%rbp), %rcx
movl 0x50(%rcx), %ecx
xorl $-0x1, %ecx
andl %ecx, %eax
movl %eax, -0x57c(%rbp)
cmpl $0x0, -0x57c(%rbp)
je 0x74237
movl -0x57c(%rbp), %eax
tzcntl %eax, %eax
movl %eax, -0x580(%rbp)
movq -0x500(%rbp), %rax
movslq -0x580(%rbp), %rcx
movl 0x6c(%rax,%rcx,4), %eax
cmpl -0x578(%rbp), %eax
jge 0x7421e
movq -0x500(%rbp), %rax
movl -0x580(%rbp), %ecx
movl %ecx, -0x574(%rbp)
movslq %ecx, %rcx
movl 0x6c(%rax,%rcx,4), %eax
movl %eax, -0x578(%rbp)
jmp 0x74220
movl -0x57c(%rbp), %eax
subl $0x1, %eax
andl -0x57c(%rbp), %eax
movl %eax, -0x57c(%rbp)
jmp 0x741cb
movl -0x574(%rbp), %ecx
movl $0x1, %eax
shll %cl, %eax
movl %eax, %ecx
xorl $-0x1, %ecx
movq -0x500(%rbp), %rax
andl 0x4c(%rax), %ecx
movl %ecx, 0x4c(%rax)
movl -0x570(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x570(%rbp)
jmp 0x7418f
movq -0x500(%rbp), %rax
movl 0x54(%rax), %eax
movl %eax, -0x584(%rbp)
movl -0x558(%rbp), %eax
movq -0x500(%rbp), %rcx
movl 0x4c(%rcx), %ecx
orl -0x584(%rbp), %ecx
andl %ecx, %eax
popcntl %eax, %eax
movq -0x550(%rbp), %rcx
movsbl 0x13(%rcx), %ecx
subl -0x56c(%rbp), %ecx
subl %ecx, %eax
movl %eax, -0x588(%rbp)
cmpl $0x0, -0x588(%rbp)
jle 0x743dd
movl $0x7fffffff, -0x590(%rbp) # imm = 0x7FFFFFFF
movl -0x558(%rbp), %eax
movq -0x500(%rbp), %rcx
movl 0x4c(%rcx), %ecx
xorl $-0x1, %ecx
andl %ecx, %eax
andl -0x584(%rbp), %eax
movl %eax, -0x594(%rbp)
cmpl $0x0, -0x594(%rbp)
je 0x74359
movl -0x594(%rbp), %eax
tzcntl %eax, %eax
movl %eax, -0x598(%rbp)
movq -0x500(%rbp), %rax
movslq -0x598(%rbp), %rcx
movl 0x3c0(%rax,%rcx,4), %eax
cmpl -0x590(%rbp), %eax
jge 0x74340
movq -0x500(%rbp), %rax
movl -0x598(%rbp), %ecx
movl %ecx, -0x58c(%rbp)
movslq %ecx, %rcx
movl 0x3c0(%rax,%rcx,4), %eax
movl %eax, -0x590(%rbp)
jmp 0x74342
movl -0x594(%rbp), %eax
subl $0x1, %eax
andl -0x594(%rbp), %eax
movl %eax, -0x594(%rbp)
jmp 0x742e7
movl -0x58c(%rbp), %ecx
movl $0x1, %eax
shll %cl, %eax
xorl $-0x1, %eax
andl -0x584(%rbp), %eax
movl %eax, -0x584(%rbp)
movq -0x500(%rbp), %rax
movl 0x48(%rax), %ecx
movl -0x590(%rbp), %eax
movl %ecx, -0x4e4(%rbp)
movl %eax, -0x4e8(%rbp)
movl -0x4e4(%rbp), %eax
cmpl -0x4e8(%rbp), %eax
jle 0x743ad
movl -0x4e4(%rbp), %eax
movl %eax, -0x60c(%rbp)
jmp 0x743b9
movl -0x4e8(%rbp), %eax
movl %eax, -0x60c(%rbp)
movl -0x60c(%rbp), %ecx
movq -0x500(%rbp), %rax
movl %ecx, 0x48(%rax)
movl -0x588(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x588(%rbp)
jmp 0x742af
movl -0x558(%rbp), %eax
movq -0x500(%rbp), %rcx
movl 0x4c(%rcx), %ecx
movq -0x500(%rbp), %rdx
orl 0x54(%rdx), %ecx
movq -0x500(%rbp), %rdx
orl 0x58(%rdx), %ecx
andl %ecx, %eax
popcntl %eax, %eax
addl -0x56c(%rbp), %eax
movq -0x550(%rbp), %rcx
movsbl 0x13(%rcx), %ecx
cmpl %ecx, %eax
jle 0x7442b
movl $0x69, -0x4f4(%rbp)
jmp 0x76d00
jmp 0x7442d
movl -0x558(%rbp), %eax
movq -0x500(%rbp), %rdx
movl -0x584(%rbp), %edi
movl 0x4c(%rdx), %ecx
movl 0x58(%rdx), %esi
orl %edi, %ecx
orl %esi, %ecx
movq %rdx, -0x448(%rbp)
movq -0x448(%rbp), %rdx
vmovdqa 0x1740(%rdx), %xmm1
vmovdqa 0x1750(%rdx), %xmm3
vmovdqa 0x1760(%rdx), %xmm2
vmovdqa 0x1770(%rdx), %xmm0
vpor %xmm3, %xmm1, %xmm1
vpternlogd $0xfe, %xmm2, %xmm1, %xmm0
vmovdqa %xmm0, -0x460(%rbp)
vmovdqa -0x460(%rbp), %xmm0
vpsrldq $0x8, %xmm0, %xmm1      # xmm1 = xmm0[8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero
vpor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x470(%rbp)
vmovdqa -0x470(%rbp), %xmm0
vpsrldq $0x4, %xmm0, %xmm1      # xmm1 = xmm0[4,5,6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero
vpor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x480(%rbp)
movl -0x480(%rbp), %edx
orl %edx, %ecx
andl %ecx, %eax
movl %eax, -0x59c(%rbp)
popcntl %eax, %eax
addl -0x56c(%rbp), %eax
movq -0x550(%rbp), %rcx
movsbl 0x13(%rcx), %ecx
cmpl %ecx, %eax
jle 0x74524
cmpl $0x0, -0x504(%rbp)
je 0x744fe
movl $0xb, -0x4f4(%rbp)
jmp 0x76d00
movq -0x500(%rbp), %rdi
addq $0x1608, %rdi           # imm = 0x1608
movq -0x500(%rbp), %rsi
addq $0x1580, %rsi           # imm = 0x1580
callq 0x7050
jmp 0x7442d
movq -0x500(%rbp), %rax
movl 0x38(%rax), %eax
subl -0x56c(%rbp), %eax
movl %eax, -0x5a0(%rbp)
movl -0x5a0(%rbp), %eax
movq -0x500(%rbp), %rcx
cmpl 0x38(%rcx), %eax
jae 0x74740
movl -0x558(%rbp), %eax
movl -0x59c(%rbp), %ecx
xorl $-0x1, %ecx
andl %ecx, %eax
tzcntl %eax, %eax
movq -0x500(%rbp), %rcx
movb %al, 0x25(%rcx)
movsbl %al, %eax
movl %eax, -0x5a4(%rbp)
movl -0x5a4(%rbp), %ecx
movl $0x1, %eax
shll %cl, %eax
orl -0x59c(%rbp), %eax
movl %eax, -0x59c(%rbp)
movl -0x5a4(%rbp), %ecx
movl $0x1, %eax
shll %cl, %eax
movl %eax, %ecx
movq -0x500(%rbp), %rax
orl 0x4c(%rax), %ecx
movl %ecx, 0x4c(%rax)
movq -0x500(%rbp), %rax
movl 0x68(%rax), %eax
movl -0x5a4(%rbp), %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
xorl $-0x1, %ecx
andl %ecx, %eax
movl %eax, -0x610(%rbp)
movq -0x500(%rbp), %rax
movsbl 0x22(%rax), %eax
cmpl $0x14, %eax
sete %al
andb $0x1, %al
movzbl %al, %eax
movl -0x5a4(%rbp), %ecx
shll %cl, %eax
movl -0x610(%rbp), %ecx
orl %eax, %ecx
movq -0x500(%rbp), %rax
movl %ecx, 0x68(%rax)
movl -0x5a0(%rbp), %edx
movq -0x500(%rbp), %rax
movslq -0x5a4(%rbp), %rcx
movl %edx, 0x6c(%rax,%rcx,4)
movl $0x0, -0x5a8(%rbp)
movq -0x550(%rbp), %rax
movsbl 0xb(%rax), %eax
cmpl $0x2, %eax
jne 0x74643
movl -0x5a0(%rbp), %eax
shll %eax
movl %eax, -0x5a8(%rbp)
jmp 0x746bb
movq -0x550(%rbp), %rax
movzbl 0xe(%rax), %eax
cmpl $0x0, %eax
jle 0x746b9
movl -0x5a0(%rbp), %eax
movq -0x550(%rbp), %rcx
movzbl 0xe(%rcx), %ecx
xorl %edx, %edx
divl %ecx
movq -0x550(%rbp), %rcx
movq -0x550(%rbp), %rdx
movzbl 0xe(%rdx), %edx
movswl 0x28(%rcx,%rdx,2), %ecx
imull %ecx, %eax
movl %eax, -0x614(%rbp)
movq -0x550(%rbp), %rcx
movl -0x5a0(%rbp), %eax
movq -0x550(%rbp), %rdx
movzbl 0xe(%rdx), %esi
xorl %edx, %edx
divl %esi
movl -0x614(%rbp), %eax
movl %edx, %edx
movswl 0x28(%rcx,%rdx,2), %ecx
addl %ecx, %eax
movl %eax, -0x5a8(%rbp)
jmp 0x746bb
movl -0x5a8(%rbp), %edx
movq -0x500(%rbp), %rax
movslq -0x5a4(%rbp), %rcx
movl %edx, 0x440(%rax,%rcx,4)
movq -0x500(%rbp), %rax
movslq -0x5a4(%rbp), %rcx
movl %edx, 0x3c0(%rax,%rcx,4)
movq -0x500(%rbp), %rax
movslq -0x5a4(%rbp), %rcx
cmpq $0x0, 0x178(%rax,%rcx,8)
jne 0x7472a
movq -0x500(%rbp), %rdi
movl -0x5a4(%rbp), %esi
callq 0x76f00
cmpl $0x0, %eax
je 0x7472a
movl $0xc, -0x4f4(%rbp)
jmp 0x76d00
jmp 0x7472c
movl -0x5a0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x5a0(%rbp)
jmp 0x7453a
jmp 0x74742
movq -0x528(%rbp), %rax
movb $0x0, 0x21(%rax)
movq -0x528(%rbp), %rax
movb $0x0, 0x22(%rax)
movq -0x550(%rbp), %rax
cmpb $0x0, 0x10(%rax)
jne 0x748b0
movq -0x500(%rbp), %rdi
callq 0x77060
movb %al, %cl
movq -0x528(%rbp), %rax
movb %cl, 0x21(%rax)
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
cmpq $0x2542, %rax           # imm = 0x2542
jae 0x74802
movq -0x500(%rbp), %rdi
addq $0x7ca2, %rdi           # imm = 0x7CA2
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %eax
cltq
addq %rax, %rdi
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
movl $0x2542, %esi           # imm = 0x2542
subq %rax, %rsi
movq -0x528(%rbp), %rax
movsbl 0x21(%rax), %ecx
leaq 0x5b4c1(%rip), %rdx     # 0xcfca3
movb $0x0, %al
callq 0x7070
movl %eax, %edx
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x7ca0(%rax)
movq -0x528(%rbp), %rax
cmpb $0x0, 0x21(%rax)
je 0x748ae
movq -0x500(%rbp), %rdi
callq 0x77060
movb %al, %cl
movq -0x528(%rbp), %rax
movb %cl, 0x22(%rax)
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
cmpq $0x2542, %rax           # imm = 0x2542
jae 0x748ac
movq -0x500(%rbp), %rdi
addq $0x7ca2, %rdi           # imm = 0x7CA2
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %eax
cltq
addq %rax, %rdi
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
movl $0x2542, %esi           # imm = 0x2542
subq %rax, %rsi
movq -0x528(%rbp), %rax
movsbl 0x22(%rax), %ecx
leaq 0x5b42d(%rip), %rdx     # 0xcfcb9
movb $0x0, %al
callq 0x7070
movl %eax, %edx
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x7ca0(%rax)
jmp 0x748ae
jmp 0x748b0
movq -0x550(%rbp), %rax
movsbl 0x11(%rax), %eax
movq -0x528(%rbp), %rcx
movsbl 0x21(%rcx), %ecx
xorl $-0x1, %ecx
andl %ecx, %eax
movb %al, %cl
movq -0x528(%rbp), %rax
movb %cl, 0x23(%rax)
movq -0x500(%rbp), %rax
cmpb $0x0, 0x23(%rax)
je 0x7497d
movq -0x500(%rbp), %rdi
movl $0xffff, %esi           # imm = 0xFFFF
callq 0x76d10
movl %eax, -0x5ac(%rbp)
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
cmpq $0x2542, %rax           # imm = 0x2542
jae 0x7497b
movq -0x500(%rbp), %rdi
addq $0x7ca2, %rdi           # imm = 0x7CA2
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %eax
cltq
addq %rax, %rdi
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
movl $0x2542, %esi           # imm = 0x2542
subq %rax, %rsi
movl -0x5ac(%rbp), %ecx
leaq 0x5b377(%rip), %rdx     # 0xcfcd2
movb $0x0, %al
callq 0x7070
movl %eax, %edx
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x7ca0(%rax)
jmp 0x7497d
movq -0x550(%rbp), %rax
movsbl 0xb(%rax), %eax
cmpl $0x0, %eax
jne 0x74c66
movq -0x500(%rbp), %rdi
movq -0x550(%rbp), %rax
movsbl 0xc(%rax), %esi
callq 0x65e90
movl %eax, -0x5b0(%rbp)
movq -0x550(%rbp), %rax
movsbl 0xc(%rax), %ecx
movl $0x20, %eax
subl %ecx, %eax
movl %eax, -0x5b4(%rbp)
movq -0x500(%rbp), %rax
movsbl 0x24(%rax), %eax
cmpl $0x0, %eax
jl 0x74a18
movl -0x5b0(%rbp), %eax
movq -0x500(%rbp), %rcx
movq -0x500(%rbp), %rdx
movsbq 0x24(%rdx), %rdx
movl 0x3c0(%rcx,%rdx,4), %edx
movl -0x5b4(%rbp), %ecx
shll %cl, %edx
movl -0x5b4(%rbp), %ecx
shrl %cl, %edx
movl %edx, %ecx
cmpl %ecx, %eax
je 0x74a18
movq -0x500(%rbp), %rdi
callq 0x76e00
movq -0x500(%rbp), %rax
movsbl 0x23(%rax), %eax
cmpl $0x0, %eax
je 0x74a32
xorl %eax, %eax
movl %eax, -0x618(%rbp)
jmp 0x74a42
movq -0x500(%rbp), %rax
movl 0x44(%rax), %eax
movl %eax, -0x618(%rbp)
movl -0x618(%rbp), %eax
movl %eax, -0x5b8(%rbp)
movl -0x5b0(%rbp), %eax
subl -0x5b8(%rbp), %eax
movl -0x5b4(%rbp), %ecx
shll %cl, %eax
movl -0x5b4(%rbp), %ecx
sarl %cl, %eax
movl %eax, -0x5bc(%rbp)
movl -0x5b8(%rbp), %ecx
addl -0x5bc(%rbp), %ecx
movq -0x500(%rbp), %rax
movl %ecx, 0x3c(%rax)
movq -0x500(%rbp), %rax
movl %ecx, 0x40(%rax)
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
cmpq $0x2542, %rax           # imm = 0x2542
jae 0x74b1c
movq -0x500(%rbp), %rdi
addq $0x7ca2, %rdi           # imm = 0x7CA2
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %eax
cltq
addq %rax, %rdi
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
movl $0x2542, %esi           # imm = 0x2542
subq %rax, %rsi
movq -0x550(%rbp), %rax
movsbl 0xc(%rax), %ecx
movq -0x500(%rbp), %rax
movl 0x3c(%rax), %r8d
leaq 0x5b1e8(%rip), %rdx     # 0xcfce4
movb $0x0, %al
callq 0x7070
movl %eax, %edx
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x7ca0(%rax)
movq -0x528(%rbp), %rax
movsbl 0x221(%rax), %eax
cmpl $0x0, %eax
je 0x74beb
movq -0x528(%rbp), %rax
cmpb $0x0, 0x21(%rax)
jne 0x74beb
movq -0x500(%rbp), %rdi
movl $0x80000001, %esi       # imm = 0x80000001
movl $0x7fffffff, %edx       # imm = 0x7FFFFFFF
callq 0x770f0
movl %eax, %ecx
movq -0x500(%rbp), %rax
addl 0x40(%rax), %ecx
movl %ecx, 0x40(%rax)
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
cmpq $0x2542, %rax           # imm = 0x2542
jae 0x74be9
movq -0x500(%rbp), %rdi
addq $0x7ca2, %rdi           # imm = 0x7CA2
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %eax
cltq
addq %rax, %rdi
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
movl $0x2542, %esi           # imm = 0x2542
subq %rax, %rsi
movq -0x500(%rbp), %rax
movl 0x40(%rax), %ecx
leaq 0x5b14d(%rip), %rdx     # 0xcfd16
movb $0x0, %al
callq 0x7070
movl %eax, %edx
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x7ca0(%rax)
jmp 0x74beb
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
cmpq $0x2542, %rax           # imm = 0x2542
jae 0x74c61
movq -0x500(%rbp), %rdi
addq $0x7ca2, %rdi           # imm = 0x7CA2
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %eax
cltq
addq %rax, %rdi
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
movl $0x2542, %esi           # imm = 0x2542
subq %rax, %rsi
leaq 0x5c08b(%rip), %rdx     # 0xd0ccc
movb $0x0, %al
callq 0x7070
movl %eax, %edx
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x7ca0(%rax)
jmp 0x75189
movq -0x550(%rbp), %rax
movsbl 0xb(%rax), %eax
cmpl $0x1, %eax
jne 0x75098
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
cmpq $0x2542, %rax           # imm = 0x2542
jae 0x74cf0
movq -0x500(%rbp), %rdi
addq $0x7ca2, %rdi           # imm = 0x7CA2
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %eax
cltq
addq %rax, %rdi
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
movl $0x2542, %esi           # imm = 0x2542
subq %rax, %rsi
leaq 0x5b053(%rip), %rdx     # 0xcfd23
movb $0x0, %al
callq 0x7070
movl %eax, %edx
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x7ca0(%rax)
movq -0x500(%rbp), %rax
movl 0x38(%rax), %eax
movq -0x500(%rbp), %rcx
movsbl 0x21(%rcx), %ecx
cmpl $0x0, %ecx
setne %cl
andb $0x1, %cl
movzbl %cl, %ecx
addl %ecx, %eax
subl $0x1, %eax
movl %eax, -0x5c0(%rbp)
movq -0x500(%rbp), %rax
movsbl 0x21(%rax), %eax
cmpl $0x0, %eax
je 0x74d36
xorl %eax, %eax
movl %eax, -0x61c(%rbp)
jmp 0x74d47
movq -0x550(%rbp), %rax
movswl 0x1c(%rax), %eax
movl %eax, -0x61c(%rbp)
movl -0x61c(%rbp), %ecx
movq -0x500(%rbp), %rax
movl %ecx, 0x3c(%rax)
movq -0x550(%rbp), %rax
movzbl 0xe(%rax), %eax
cmpl $0x0, %eax
jle 0x74dd8
movl -0x5c0(%rbp), %eax
movq -0x550(%rbp), %rcx
movzbl 0xe(%rcx), %ecx
xorl %edx, %edx
divl %ecx
movl %eax, %ecx
movq -0x550(%rbp), %rax
movq -0x550(%rbp), %rdx
movzbl 0xe(%rdx), %edx
movswl 0x28(%rax,%rdx,2), %eax
imull %eax, %ecx
movq -0x550(%rbp), %rax
movq %rax, -0x628(%rbp)
movl -0x5c0(%rbp), %eax
movq -0x550(%rbp), %rdx
movzbl 0xe(%rdx), %esi
xorl %edx, %edx
divl %esi
movq -0x628(%rbp), %rax
movl %edx, %edx
movswl 0x28(%rax,%rdx,2), %eax
addl %eax, %ecx
movq -0x500(%rbp), %rax
addl 0x3c(%rax), %ecx
movl %ecx, 0x3c(%rax)
movq -0x500(%rbp), %rax
movl 0x3c(%rax), %ecx
movq -0x550(%rbp), %rax
movswl 0x1e(%rax), %eax
addl %eax, %ecx
movq -0x500(%rbp), %rax
movl %ecx, 0x40(%rax)
movq -0x550(%rbp), %rax
cmpb $0x0, 0xd(%rax)
jne 0x74f9f
movq -0x500(%rbp), %rdi
movl $0x80000001, %esi       # imm = 0x80000001
movl $0x7fffffff, %edx       # imm = 0x7FFFFFFF
callq 0x770f0
movl %eax, -0x5c4(%rbp)
movl -0x5c4(%rbp), %ecx
movq -0x500(%rbp), %rax
addl 0x3c(%rax), %ecx
movl %ecx, 0x3c(%rax)
movl -0x5c4(%rbp), %ecx
movq -0x500(%rbp), %rax
addl 0x40(%rax), %ecx
movl %ecx, 0x40(%rax)
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
cmpq $0x2542, %rax           # imm = 0x2542
jae 0x74ec8
movq -0x500(%rbp), %rdi
addq $0x7ca2, %rdi           # imm = 0x7CA2
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %eax
cltq
addq %rax, %rdi
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
movl $0x2542, %esi           # imm = 0x2542
subq %rax, %rsi
movl -0x5c4(%rbp), %ecx
leaq 0x5ae95(%rip), %rdx     # 0xcfd3d
movb $0x0, %al
callq 0x7070
movl %eax, %edx
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x7ca0(%rax)
movq -0x528(%rbp), %rax
movsbl 0x221(%rax), %eax
cmpl $0x0, %eax
je 0x74f9d
movq -0x528(%rbp), %rax
cmpb $0x0, 0x21(%rax)
jne 0x74f9d
movq -0x500(%rbp), %rdi
movl $0x80000001, %esi       # imm = 0x80000001
movl $0x7fffffff, %edx       # imm = 0x7FFFFFFF
callq 0x770f0
movl %eax, -0x5c8(%rbp)
movl -0x5c8(%rbp), %ecx
movq -0x500(%rbp), %rax
addl 0x40(%rax), %ecx
movl %ecx, 0x40(%rax)
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
cmpq $0x2542, %rax           # imm = 0x2542
jae 0x74f9b
movq -0x500(%rbp), %rdi
addq $0x7ca2, %rdi           # imm = 0x7CA2
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %eax
cltq
addq %rax, %rdi
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
movl $0x2542, %esi           # imm = 0x2542
subq %rax, %rsi
movl -0x5c8(%rbp), %ecx
leaq 0x5adcf(%rip), %rdx     # 0xcfd4a
movb $0x0, %al
callq 0x7070
movl %eax, %edx
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x7ca0(%rax)
jmp 0x74f9d
jmp 0x74f9f
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
cmpq $0x2542, %rax           # imm = 0x2542
jae 0x75051
movq -0x500(%rbp), %rdi
addq $0x7ca2, %rdi           # imm = 0x7CA2
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %eax
cltq
addq %rax, %rdi
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
movl $0x2542, %esi           # imm = 0x2542
subq %rax, %rsi
movq -0x500(%rbp), %rax
movl 0x3c(%rax), %ecx
movq -0x500(%rbp), %rax
movl 0x40(%rax), %r8d
leaq 0x5ad8b(%rip), %rdx     # 0xcfd99
leaq 0x5ad5b(%rip), %rax     # 0xcfd70
cmpl %r8d, %ecx
cmoveq %rax, %rdx
movq -0x500(%rbp), %rax
movl 0x3c(%rax), %ecx
movq -0x500(%rbp), %rax
movl 0x40(%rax), %r8d
movb $0x0, %al
callq 0x7070
movl %eax, %edx
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x7ca0(%rax)
movq -0x500(%rbp), %rax
movsbl 0x24(%rax), %eax
cmpl $0x0, %eax
jl 0x75093
movq -0x500(%rbp), %rax
movl 0x3c(%rax), %eax
movq -0x500(%rbp), %rcx
movq -0x500(%rbp), %rdx
movsbq 0x24(%rdx), %rdx
cmpl 0x3c0(%rcx,%rdx,4), %eax
je 0x75093
movq -0x500(%rbp), %rdi
callq 0x76e00
jmp 0x75187
movq -0x500(%rbp), %rax
movl 0x38(%rax), %ecx
shll %ecx
movq -0x500(%rbp), %rax
movsbl 0x21(%rax), %eax
cmpl $0x0, %eax
setne %al
andb $0x1, %al
movzbl %al, %eax
addl %eax, %ecx
subl $0x1, %ecx
movq -0x500(%rbp), %rax
movl %ecx, 0x40(%rax)
movq -0x500(%rbp), %rax
movl %ecx, 0x3c(%rax)
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
cmpq $0x2542, %rax           # imm = 0x2542
jae 0x75185
movq -0x500(%rbp), %rdi
addq $0x7ca2, %rdi           # imm = 0x7CA2
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %eax
cltq
addq %rax, %rdi
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
movl $0x2542, %esi           # imm = 0x2542
subq %rax, %rsi
movq -0x500(%rbp), %rax
movl 0x3c(%rax), %ecx
movq -0x500(%rbp), %rax
movl 0x40(%rax), %r8d
leaq 0x5ac3e(%rip), %rdx     # 0xcfd80
leaq 0x5ac0e(%rip), %rax     # 0xcfd57
cmpl %r8d, %ecx
cmoveq %rax, %rdx
movq -0x500(%rbp), %rax
movl 0x3c(%rax), %ecx
movq -0x500(%rbp), %rax
movl 0x40(%rax), %r8d
movb $0x0, %al
callq 0x7070
movl %eax, %edx
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x7ca0(%rax)
jmp 0x75187
jmp 0x75189
movq -0x500(%rbp), %rax
movsbl 0x24(%rax), %eax
cmpl $0x0, %eax
jge 0x75531
movl -0x558(%rbp), %eax
movq -0x500(%rbp), %rcx
andl 0x4c(%rcx), %eax
popcntl %eax, %eax
movq -0x550(%rbp), %rcx
movsbl 0xf(%rcx), %ecx
cmpl %ecx, %eax
jle 0x751dc
movq -0x500(%rbp), %rax
movl $0x0, 0x50(%rax)
movq -0x500(%rbp), %rax
movl $0x0, 0x4c(%rax)
movl -0x558(%rbp), %eax
movq -0x500(%rbp), %rcx
movl 0x4c(%rcx), %ecx
movq -0x500(%rbp), %rdx
orl 0x54(%rdx), %ecx
movq -0x500(%rbp), %rdx
orl 0x58(%rdx), %ecx
andl %ecx, %eax
popcntl %eax, %eax
movq -0x550(%rbp), %rcx
movsbl 0x13(%rcx), %ecx
cmpl %ecx, %eax
jl 0x75224
movl $0x69, -0x4f4(%rbp)
jmp 0x76d00
jmp 0x75226
movl -0x558(%rbp), %eax
movq -0x500(%rbp), %rdx
movl 0x4c(%rdx), %ecx
movl 0x54(%rdx), %esi
orl %esi, %ecx
movl 0x58(%rdx), %esi
orl %esi, %ecx
movq %rdx, -0x488(%rbp)
movq -0x488(%rbp), %rdx
vmovdqa 0x1740(%rdx), %xmm1
vmovdqa 0x1750(%rdx), %xmm3
vmovdqa 0x1760(%rdx), %xmm2
vmovdqa 0x1770(%rdx), %xmm0
vpor %xmm3, %xmm1, %xmm1
vpternlogd $0xfe, %xmm2, %xmm1, %xmm0
vmovdqa %xmm0, -0x4a0(%rbp)
vmovdqa -0x4a0(%rbp), %xmm0
vpsrldq $0x8, %xmm0, %xmm1      # xmm1 = xmm0[8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero
vpor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x4b0(%rbp)
vmovdqa -0x4b0(%rbp), %xmm0
vpsrldq $0x4, %xmm0, %xmm1      # xmm1 = xmm0[4,5,6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero
vpor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x4c0(%rbp)
movl -0x4c0(%rbp), %edx
orl %edx, %ecx
movl %ecx, -0x5cc(%rbp)
andl %ecx, %eax
popcntl %eax, %eax
movq -0x550(%rbp), %rcx
movsbl 0x13(%rcx), %ecx
cmpl %ecx, %eax
jl 0x75314
cmpl $0x0, -0x504(%rbp)
je 0x752ee
movl $0xb, -0x4f4(%rbp)
jmp 0x76d00
movq -0x500(%rbp), %rdi
addq $0x1608, %rdi           # imm = 0x1608
movq -0x500(%rbp), %rsi
addq $0x1580, %rsi           # imm = 0x1580
callq 0x7050
jmp 0x75226
movl -0x5cc(%rbp), %eax
xorl $-0x1, %eax
tzcntl %eax, %eax
movb %al, %cl
movq -0x500(%rbp), %rax
movb %cl, 0x24(%rax)
movq -0x500(%rbp), %rax
movsbl 0x24(%rax), %ecx
movl $0x1, %eax
shll %cl, %eax
movl %eax, %ecx
movq -0x500(%rbp), %rax
orl 0x54(%rax), %ecx
movl %ecx, 0x54(%rax)
movq -0x500(%rbp), %rax
movl 0x68(%rax), %eax
movq -0x500(%rbp), %rcx
movsbl 0x24(%rcx), %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
xorl $-0x1, %ecx
andl %ecx, %eax
movl %eax, -0x62c(%rbp)
movq -0x500(%rbp), %rax
movsbl 0x22(%rax), %eax
cmpl $0x14, %eax
sete %al
andb $0x1, %al
movzbl %al, %eax
movq -0x500(%rbp), %rcx
movsbl 0x24(%rcx), %ecx
shll %cl, %eax
movl -0x62c(%rbp), %ecx
orl %eax, %ecx
movq -0x500(%rbp), %rax
movl %ecx, 0x68(%rax)
movq -0x500(%rbp), %rax
movsbl 0x24(%rax), %ecx
movl $0x1, %eax
shll %cl, %eax
movl %eax, %ecx
movq -0x500(%rbp), %rax
xorl 0x5c(%rax), %ecx
movl %ecx, 0x5c(%rax)
movq -0x550(%rbp), %rax
movzwl 0x4(%rax), %edx
movq -0x550(%rbp), %rax
movswl 0x6(%rax), %eax
imull %eax, %edx
movq -0x500(%rbp), %rax
movq -0x500(%rbp), %rcx
movsbq 0x24(%rcx), %rcx
movl %edx, 0x1640(%rax,%rcx,4)
movq -0x500(%rbp), %rax
movq -0x500(%rbp), %rcx
movsbq 0x24(%rcx), %rcx
movl $0x0, 0x16c0(%rax,%rcx,4)
movq -0x500(%rbp), %rax
movl 0x38(%rax), %edx
movq -0x500(%rbp), %rax
movq -0x500(%rbp), %rcx
movsbq 0x24(%rcx), %rcx
movl %edx, 0x6c(%rax,%rcx,4)
movq -0x500(%rbp), %rax
movsbl 0x25(%rax), %eax
cmpl $0x0, %eax
jl 0x75474
movq -0x500(%rbp), %rax
movq -0x500(%rbp), %rcx
movsbq 0x25(%rcx), %rcx
movl 0xec(%rax,%rcx,4), %eax
addl $0x1, %eax
movl %eax, -0x630(%rbp)
jmp 0x7547e
xorl %eax, %eax
movl %eax, -0x630(%rbp)
jmp 0x7547e
movl -0x630(%rbp), %edx
movq -0x500(%rbp), %rax
movq -0x500(%rbp), %rcx
movsbq 0x24(%rcx), %rcx
movl %edx, 0xec(%rax,%rcx,4)
movq -0x500(%rbp), %rax
movl 0x3c(%rax), %edx
movq -0x500(%rbp), %rax
movq -0x500(%rbp), %rcx
movsbq 0x24(%rcx), %rcx
movl %edx, 0x3c0(%rax,%rcx,4)
movq -0x500(%rbp), %rax
movl 0x40(%rax), %edx
movq -0x500(%rbp), %rax
movq -0x500(%rbp), %rcx
movsbq 0x24(%rcx), %rcx
movl %edx, 0x440(%rax,%rcx,4)
movq -0x500(%rbp), %rax
movq -0x500(%rbp), %rcx
movsbq 0x24(%rcx), %rcx
cmpq $0x0, 0x178(%rax,%rcx,8)
jne 0x7552f
movq -0x500(%rbp), %rdi
movq -0x500(%rbp), %rax
movsbl 0x24(%rax), %esi
callq 0x76f00
cmpl $0x0, %eax
je 0x7552f
movl $0xc, -0x4f4(%rbp)
jmp 0x76d00
jmp 0x75531
movq -0x500(%rbp), %rax
movl 0x4c(%rax), %ecx
andl -0x558(%rbp), %ecx
movq -0x500(%rbp), %rax
movl %ecx, 0x60(%rax)
movq -0x500(%rbp), %rax
movl 0x50(%rax), %ecx
andl -0x558(%rbp), %ecx
movq -0x500(%rbp), %rax
movl %ecx, 0x64(%rax)
movq -0x500(%rbp), %rax
vmovdqa 0x380(%rax), %xmm0
movq -0x500(%rbp), %rax
vmovdqa %xmm0, 0x3a0(%rax)
movq -0x500(%rbp), %rax
vmovdqa 0x390(%rax), %xmm0
movq -0x500(%rbp), %rax
vmovdqa %xmm0, 0x3b0(%rax)
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
cmpq $0x2542, %rax           # imm = 0x2542
jae 0x75631
movq -0x500(%rbp), %rdi
addq $0x7ca2, %rdi           # imm = 0x7CA2
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %eax
cltq
addq %rax, %rdi
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
movl $0x2542, %esi           # imm = 0x2542
subq %rax, %rsi
movq -0x500(%rbp), %rax
movq -0x500(%rbp), %rcx
movsbq 0x24(%rcx), %rcx
movl 0xec(%rax,%rcx,4), %ecx
leaq 0x5a7a5(%rip), %rdx     # 0xcfdb6
movb $0x0, %al
callq 0x7070
movl %eax, %edx
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x7ca0(%rax)
movq -0x528(%rbp), %rax
movsbl 0x20(%rax), %eax
cmpl $0x0, %eax
je 0x75655
movq -0x528(%rbp), %rax
movsbl 0x20(%rax), %eax
cmpl $0x1, %eax
jne 0x75a21
movq -0x528(%rbp), %rax
movsbl 0x20(%rax), %eax
cmpl $0x1, %eax
jne 0x75704
movq -0x500(%rbp), %rdi
callq 0x77060
movb %al, %cl
movq -0x528(%rbp), %rax
movb %cl, 0x24(%rax)
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
cmpq $0x2542, %rax           # imm = 0x2542
jae 0x75702
movq -0x500(%rbp), %rdi
addq $0x7ca2, %rdi           # imm = 0x7CA2
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %eax
cltq
addq %rax, %rdi
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
movl $0x2542, %esi           # imm = 0x2542
subq %rax, %rsi
movq -0x528(%rbp), %rax
movsbl 0x24(%rax), %ecx
leaq 0x5a6e3(%rip), %rdx     # 0xcfdc5
movb $0x0, %al
callq 0x7070
movl %eax, %edx
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x7ca0(%rax)
jmp 0x75704
movq -0x528(%rbp), %rax
movsbl 0x21(%rax), %ecx
movl $0x10, %eax
shll %cl, %eax
movl %eax, -0x5d0(%rbp)
movq -0x500(%rbp), %rdi
callq 0x77060
cmpl $0x0, %eax
je 0x7580b
movl $0x0, -0x5d4(%rbp)
movl -0x5d4(%rbp), %eax
movq -0x528(%rbp), %rcx
movsbl 0x20(%rcx), %ecx
cmpl %ecx, %eax
jg 0x75790
movq -0x500(%rbp), %rdi
movl -0x5d0(%rbp), %esi
subl $0x1, %esi
callq 0x76d10
addl $0x1, %eax
movb %al, %dl
movq -0x528(%rbp), %rax
movslq -0x5d4(%rbp), %rcx
movb %dl, 0x222(%rax,%rcx)
movl -0x5d4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x5d4(%rbp)
jmp 0x7573b
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
cmpq $0x2542, %rax           # imm = 0x2542
jae 0x75806
movq -0x500(%rbp), %rdi
addq $0x7ca2, %rdi           # imm = 0x7CA2
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %eax
cltq
addq %rax, %rdi
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
movl $0x2542, %esi           # imm = 0x2542
subq %rax, %rsi
leaq 0x5a602(%rip), %rdx     # 0xcfde8
movb $0x0, %al
callq 0x7070
movl %eax, %edx
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x7ca0(%rax)
jmp 0x7593d
movq -0x528(%rbp), %rax
movsbl 0x222(%rax), %ecx
movl -0x5d0(%rbp), %eax
movl %ecx, -0x4cc(%rbp)
movl %eax, -0x4d0(%rbp)
movl -0x4cc(%rbp), %eax
cmpl -0x4d0(%rbp), %eax
jge 0x75847
movl -0x4cc(%rbp), %eax
movl %eax, -0x634(%rbp)
jmp 0x75853
movl -0x4d0(%rbp), %eax
movl %eax, -0x634(%rbp)
movl -0x634(%rbp), %eax
movb %al, %cl
movq -0x528(%rbp), %rax
movb %cl, 0x222(%rax)
movq -0x528(%rbp), %rax
movsbl 0x223(%rax), %ecx
movl -0x5d0(%rbp), %eax
movl %ecx, -0x4d4(%rbp)
movl %eax, -0x4d8(%rbp)
movl -0x4d4(%rbp), %eax
cmpl -0x4d8(%rbp), %eax
jge 0x758a4
movl -0x4d4(%rbp), %eax
movl %eax, -0x638(%rbp)
jmp 0x758b0
movl -0x4d8(%rbp), %eax
movl %eax, -0x638(%rbp)
movl -0x638(%rbp), %eax
movb %al, %cl
movq -0x528(%rbp), %rax
movb %cl, 0x223(%rax)
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
cmpq $0x2542, %rax           # imm = 0x2542
jae 0x7593b
movq -0x500(%rbp), %rdi
addq $0x7ca2, %rdi           # imm = 0x7CA2
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %eax
cltq
addq %rax, %rdi
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
movl $0x2542, %esi           # imm = 0x2542
subq %rax, %rsi
leaq 0x5a4f5(%rip), %rdx     # 0xcfe10
movb $0x0, %al
callq 0x7070
movl %eax, %edx
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x7ca0(%rax)
jmp 0x7593d
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
cmpq $0x2542, %rax           # imm = 0x2542
jae 0x759ed
movq -0x500(%rbp), %rdi
addq $0x7ca2, %rdi           # imm = 0x7CA2
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %eax
cltq
addq %rax, %rdi
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
movl $0x2542, %esi           # imm = 0x2542
subq %rax, %rsi
movq -0x528(%rbp), %rax
movsbl 0x20(%rax), %ecx
leaq 0x5a4a9(%rip), %rdx     # 0xcfe4b
leaq 0x5a48f(%rip), %rax     # 0xcfe38
cmpl $0x0, %ecx
cmovneq %rax, %rdx
movq -0x528(%rbp), %rax
movsbl 0x222(%rax), %ecx
movq -0x528(%rbp), %rax
movsbl 0x223(%rax), %r8d
movb $0x0, %al
callq 0x7070
movl %eax, %edx
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x7ca0(%rax)
movq -0x500(%rbp), %rdi
movq -0x550(%rbp), %rsi
movq -0x528(%rbp), %rdx
callq 0x77230
movq -0x500(%rbp), %rdi
movq -0x550(%rbp), %rsi
movq -0x528(%rbp), %rdx
callq 0x77b60
movq -0x500(%rbp), %rax
cmpb $0x0, 0x21(%rax)
je 0x75a41
movq -0x500(%rbp), %rdi
movq -0x550(%rbp), %rsi
callq 0x77f90
movq -0x528(%rbp), %rax
movb $0x0, 0x2c(%rax)
movq -0x528(%rbp), %rax
movsbl 0x220(%rax), %eax
cmpl $0x0, %eax
je 0x75b1d
movq -0x528(%rbp), %rax
movsbl 0x20(%rax), %eax
cmpl $0x2, %eax
je 0x75b1d
movq -0x500(%rbp), %rdi
movl $0x2, %esi
callq 0x76d10
addl $0x1, %eax
movb %al, %cl
movq -0x528(%rbp), %rax
movb %cl, 0x2c(%rax)
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
cmpq $0x2542, %rax           # imm = 0x2542
jae 0x75b1b
movq -0x500(%rbp), %rdi
addq $0x7ca2, %rdi           # imm = 0x7CA2
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %eax
cltq
addq %rax, %rdi
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
movl $0x2542, %esi           # imm = 0x2542
subq %rax, %rsi
movq -0x528(%rbp), %rax
movsbl 0x2c(%rax), %ecx
subl $0x1, %ecx
leaq 0x5a35b(%rip), %rdx     # 0xcfe56
movb $0x0, %al
callq 0x7070
movl %eax, %edx
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x7ca0(%rax)
jmp 0x75b1d
movq -0x528(%rbp), %rax
movsbl 0x226(%rax), %eax
movl %eax, -0x63c(%rbp)
movq -0x500(%rbp), %rdi
movq -0x528(%rbp), %rax
movsbl 0x226(%rax), %eax
xorl %esi, %esi
subl %eax, %esi
movq -0x528(%rbp), %rax
movsbl 0x226(%rax), %eax
movl $0x33, %edx
subl %eax, %edx
callq 0x770f0
movl %eax, %ecx
movl -0x63c(%rbp), %eax
addl %ecx, %eax
movb %al, %cl
movq -0x528(%rbp), %rax
movb %cl, 0x50(%rax)
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
cmpq $0x2542, %rax           # imm = 0x2542
jae 0x75c0b
movq -0x500(%rbp), %rdi
addq $0x7ca2, %rdi           # imm = 0x7CA2
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %eax
cltq
addq %rax, %rdi
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
movl $0x2542, %esi           # imm = 0x2542
subq %rax, %rsi
movq -0x528(%rbp), %rax
movsbl 0x50(%rax), %ecx
movq -0x528(%rbp), %rax
movsbl 0x226(%rax), %eax
subl %eax, %ecx
leaq 0x5a281(%rip), %rdx     # 0xcfe6c
movb $0x0, %al
callq 0x7070
movl %eax, %edx
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x7ca0(%rax)
movq -0x528(%rbp), %rax
cmpb $0x0, 0x228(%rax)
je 0x75dc5
movq -0x500(%rbp), %rdi
movl $0x2, %esi
callq 0x76d10
movb %al, %cl
movq -0x528(%rbp), %rax
movb %cl, 0x27(%rax)
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
cmpq $0x2542, %rax           # imm = 0x2542
jae 0x75cd8
movq -0x500(%rbp), %rdi
addq $0x7ca2, %rdi           # imm = 0x7CA2
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %eax
cltq
addq %rax, %rdi
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
movl $0x2542, %esi           # imm = 0x2542
subq %rax, %rsi
movq -0x528(%rbp), %rax
movsbl 0x27(%rax), %ecx
movq -0x528(%rbp), %rax
movsbq 0x27(%rax), %rdx
leaq 0x60563(%rip), %rax     # 0xd6210
movq (%rax,%rdx,8), %r8
leaq 0x5a1ca(%rip), %rdx     # 0xcfe82
movb $0x0, %al
callq 0x7070
movl %eax, %edx
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x7ca0(%rax)
movq -0x528(%rbp), %rax
movsbl 0x27(%rax), %eax
cmpl $0x1, %eax
je 0x75dc3
movq -0x500(%rbp), %rdi
movl $0xfffffffa, %esi       # imm = 0xFFFFFFFA
movl $0x6, %edx
callq 0x770f0
shll %eax
movb %al, %cl
movq -0x528(%rbp), %rax
movb %cl, 0x28(%rax)
movq -0x500(%rbp), %rdi
movl $0xfffffffa, %esi       # imm = 0xFFFFFFFA
movl $0x6, %edx
callq 0x770f0
shll %eax
movb %al, %cl
movq -0x528(%rbp), %rax
movb %cl, 0x29(%rax)
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
cmpq $0x2542, %rax           # imm = 0x2542
jae 0x75dc1
movq -0x500(%rbp), %rdi
addq $0x7ca2, %rdi           # imm = 0x7CA2
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %eax
cltq
addq %rax, %rdi
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
movl $0x2542, %esi           # imm = 0x2542
subq %rax, %rsi
movq -0x528(%rbp), %rax
movsbl 0x28(%rax), %ecx
movq -0x528(%rbp), %rax
movsbl 0x29(%rax), %r8d
leaq 0x5a10b(%rip), %rdx     # 0xcfeac
movb $0x0, %al
callq 0x7070
movl %eax, %edx
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x7ca0(%rax)
jmp 0x75dc3
jmp 0x75de6
movq -0x528(%rbp), %rax
movb $0x0, 0x27(%rax)
movq -0x528(%rbp), %rax
movb $0x0, 0x28(%rax)
movq -0x528(%rbp), %rax
movb $0x0, 0x29(%rax)
movq -0x500(%rbp), %rax
cmpb $0x0, 0x23(%rax)
je 0x75f7a
movl $0x80000000, -0x5d8(%rbp) # imm = 0x80000000
movq -0x500(%rbp), %rax
movl 0x54(%rax), %eax
andl -0x558(%rbp), %eax
movq -0x500(%rbp), %rcx
movsbl 0x24(%rcx), %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
xorl $-0x1, %ecx
andl %ecx, %eax
movl %eax, -0x5dc(%rbp)
cmpl $0x0, -0x5dc(%rbp)
je 0x75eb4
movl -0x5d8(%rbp), %ecx
movq -0x500(%rbp), %rax
movl -0x5dc(%rbp), %edx
tzcntl %edx, %edx
movslq %edx, %rdx
movl 0x3c0(%rax,%rdx,4), %eax
movl %ecx, -0x4ec(%rbp)
movl %eax, -0x4f0(%rbp)
movl -0x4ec(%rbp), %eax
cmpl -0x4f0(%rbp), %eax
jle 0x75e82
movl -0x4ec(%rbp), %eax
movl %eax, -0x640(%rbp)
jmp 0x75e8e
movl -0x4f0(%rbp), %eax
movl %eax, -0x640(%rbp)
movl -0x640(%rbp), %eax
movl %eax, -0x5d8(%rbp)
movl -0x5dc(%rbp), %eax
subl $0x1, %eax
andl -0x5dc(%rbp), %eax
movl %eax, -0x5dc(%rbp)
jmp 0x75e30
movq -0x500(%rbp), %rax
movl $0xffff0000, 0x48(%rax) # imm = 0xFFFF0000
movq -0x500(%rbp), %rax
movl 0x54(%rax), %eax
andl -0x558(%rbp), %eax
movq -0x500(%rbp), %rcx
movsbl 0x24(%rcx), %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
xorl $-0x1, %ecx
andl %ecx, %eax
movl %eax, -0x5e0(%rbp)
cmpl $0x0, -0x5e0(%rbp)
je 0x75f78
movl -0x5e0(%rbp), %eax
tzcntl %eax, %eax
movl %eax, -0x5e4(%rbp)
movl -0x5d8(%rbp), %esi
addl $0x10000, %esi          # imm = 0x10000
movq -0x500(%rbp), %rax
movslq -0x5e4(%rbp), %rcx
movl 0x3c0(%rax,%rcx,4), %edx
subl %esi, %edx
movl %edx, 0x3c0(%rax,%rcx,4)
movl -0x5d8(%rbp), %esi
addl $0x10000, %esi          # imm = 0x10000
movq -0x500(%rbp), %rax
movslq -0x5e4(%rbp), %rcx
movl 0x440(%rax,%rcx,4), %edx
subl %esi, %edx
movl %edx, 0x440(%rax,%rcx,4)
movl -0x5e0(%rbp), %eax
subl $0x1, %eax
andl -0x5e0(%rbp), %eax
movl %eax, -0x5e0(%rbp)
jmp 0x75ef1
jmp 0x75f7a
movq -0x500(%rbp), %rax
cmpb $0x0, 0x21(%rax)
jne 0x75f9b
movq -0x500(%rbp), %rax
movl 0x3c(%rax), %ecx
movq -0x500(%rbp), %rax
movl %ecx, 0x48(%rax)
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
cmpq $0x2542, %rax           # imm = 0x2542
jae 0x76011
movq -0x500(%rbp), %rdi
addq $0x7ca2, %rdi           # imm = 0x7CA2
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %eax
cltq
addq %rax, %rdi
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
movl $0x2542, %esi           # imm = 0x2542
subq %rax, %rsi
leaq 0x59ef0(%rip), %rdx     # 0xcfee1
movb $0x0, %al
callq 0x7070
movl %eax, %edx
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x7ca0(%rax)
movq -0x500(%rbp), %rax
movl 0x60(%rax), %eax
movq -0x500(%rbp), %rcx
movl 0x4c(%rcx), %ecx
movl -0x558(%rbp), %edx
xorl $-0x1, %edx
andl %edx, %ecx
orl %ecx, %eax
movl %eax, -0x5e8(%rbp)
movq -0x500(%rbp), %rax
movl 0x64(%rax), %eax
movq -0x500(%rbp), %rcx
movl 0x50(%rcx), %ecx
movl -0x558(%rbp), %edx
xorl $-0x1, %edx
andl %edx, %ecx
orl %ecx, %eax
movl %eax, -0x5ec(%rbp)
movl $0x0, -0x5f0(%rbp)
movl -0x5f0(%rbp), %eax
movl %eax, -0x644(%rbp)
movl -0x5e8(%rbp), %eax
movq -0x500(%rbp), %rcx
orl 0x54(%rcx), %eax
movl %eax, -0x43c(%rbp)
movl $0x20, -0x440(%rbp)
cmpl $0x0, -0x43c(%rbp)
je 0x760b0
movl -0x43c(%rbp), %eax
lzcntl %eax, %eax
movl %eax, -0x648(%rbp)
jmp 0x760bc
movl -0x440(%rbp), %eax
movl %eax, -0x648(%rbp)
movl -0x644(%rbp), %eax
movl -0x648(%rbp), %edx
movl $0x20, %ecx
subl %edx, %ecx
cmpl %ecx, %eax
jge 0x764f2
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
cmpq $0x2542, %rax           # imm = 0x2542
jae 0x76162
movq -0x500(%rbp), %rdi
addq $0x7ca2, %rdi           # imm = 0x7CA2
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %eax
cltq
addq %rax, %rdi
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
movl $0x2542, %esi           # imm = 0x2542
subq %rax, %rsi
movq -0x500(%rbp), %rax
movslq -0x5f0(%rbp), %rcx
movl 0xec(%rax,%rcx,4), %ecx
leaq 0x59daf(%rip), %rdx     # 0xcfef1
movb $0x0, %al
callq 0x7070
movl %eax, %edx
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x7ca0(%rax)
movl -0x5e8(%rbp), %eax
movl -0x5f0(%rbp), %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
andl %ecx, %eax
cmpl $0x0, %eax
je 0x762a3
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
cmpq $0x2542, %rax           # imm = 0x2542
jae 0x762a1
movq -0x500(%rbp), %rax
addq $0x7ca2, %rax           # imm = 0x7CA2
movq -0x500(%rbp), %rcx
movswl 0x7ca0(%rcx), %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x660(%rbp)
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rcx
movl $0x2542, %eax           # imm = 0x2542
subq %rcx, %rax
movq %rax, -0x658(%rbp)
movl -0x5ec(%rbp), %edx
movl -0x5f0(%rbp), %ecx
movl $0x1, %eax
shll %cl, %eax
andl %eax, %edx
leaq 0x59d0b(%rip), %rax     # 0xcff0a
leaq 0x59cf9(%rip), %rcx     # 0xcfeff
cmpl $0x0, %edx
cmovneq %rcx, %rax
movq %rax, -0x650(%rbp)
movl -0x5ec(%rbp), %eax
movl -0x5f0(%rbp), %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
andl %ecx, %eax
cmpl $0x0, %eax
je 0x7624e
movq -0x500(%rbp), %rax
movslq -0x5f0(%rbp), %rcx
movsbl 0x380(%rax,%rcx), %eax
movl %eax, -0x664(%rbp)
jmp 0x76266
movq -0x500(%rbp), %rax
movslq -0x5f0(%rbp), %rcx
movl 0x6c(%rax,%rcx,4), %eax
movl %eax, -0x664(%rbp)
movq -0x650(%rbp), %rdx
movq -0x658(%rbp), %rsi
movq -0x660(%rbp), %rdi
movl -0x664(%rbp), %ecx
movb $0x0, %al
callq 0x7070
movl %eax, %edx
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x7ca0(%rax)
jmp 0x762a3
movq -0x500(%rbp), %rax
movl 0x54(%rax), %eax
movl -0x5f0(%rbp), %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
andl %ecx, %eax
cmpl $0x0, %eax
je 0x763c6
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
cmpq $0x2542, %rax           # imm = 0x2542
jae 0x763c4
movq -0x500(%rbp), %rax
addq $0x7ca2, %rax           # imm = 0x7CA2
movq -0x500(%rbp), %rcx
movswl 0x7ca0(%rcx), %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x678(%rbp)
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rcx
movl $0x2542, %eax           # imm = 0x2542
subq %rcx, %rax
movq %rax, -0x670(%rbp)
movq -0x500(%rbp), %rax
movslq -0x5f0(%rbp), %rcx
movl 0x3c0(%rax,%rcx,4), %ecx
movq -0x500(%rbp), %rax
movslq -0x5f0(%rbp), %rdx
movl 0x440(%rax,%rdx,4), %eax
movl %ecx, -0x434(%rbp)
movl %eax, -0x438(%rbp)
movl -0x434(%rbp), %eax
subl -0x438(%rbp), %eax
cmpl $0x0, %eax
jge 0x7637d
movl -0x434(%rbp), %eax
movl %eax, -0x67c(%rbp)
jmp 0x76389
movl -0x438(%rbp), %eax
movl %eax, -0x67c(%rbp)
movq -0x670(%rbp), %rsi
movq -0x678(%rbp), %rdi
movl -0x67c(%rbp), %ecx
leaq 0x59b71(%rip), %rdx     # 0xcff15
movb $0x0, %al
callq 0x7070
movl %eax, %edx
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x7ca0(%rax)
jmp 0x763c6
movq -0x500(%rbp), %rax
cmpl $0x0, 0x68(%rax)
je 0x76466
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
cmpq $0x2542, %rax           # imm = 0x2542
jae 0x76464
movq -0x500(%rbp), %rdi
addq $0x7ca2, %rdi           # imm = 0x7CA2
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %eax
cltq
addq %rax, %rdi
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
movl $0x2542, %esi           # imm = 0x2542
subq %rax, %rsi
movq -0x500(%rbp), %rax
movl 0x68(%rax), %eax
movl -0x5f0(%rbp), %ecx
shrl %cl, %eax
movl %eax, %ecx
andl $0x1, %ecx
leaq 0x59adb(%rip), %rdx     # 0xcff1f
movb $0x0, %al
callq 0x7070
movl %eax, %edx
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x7ca0(%rax)
jmp 0x76466
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
cmpq $0x2542, %rax           # imm = 0x2542
jae 0x764dc
movq -0x500(%rbp), %rdi
addq $0x7ca2, %rdi           # imm = 0x7CA2
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %eax
cltq
addq %rax, %rdi
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
movl $0x2542, %esi           # imm = 0x2542
subq %rax, %rsi
leaq 0x5a810(%rip), %rdx     # 0xd0ccc
movb $0x0, %al
callq 0x7070
movl %eax, %edx
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x7ca0(%rax)
jmp 0x764de
movl -0x5f0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x5f0(%rbp)
jmp 0x76069
movq -0x500(%rbp), %rdi
movq -0x550(%rbp), %rsi
movq -0x528(%rbp), %rdx
callq 0x78570
movq -0x528(%rbp), %rax
movq -0x500(%rbp), %rcx
subq %rcx, %rax
addq $-0x1790, %rax          # imm = 0xE870
shrq $0x4, %rax
imull $0x7c32b16d, %eax, %eax # imm = 0x7C32B16D
movl %eax, -0x5f4(%rbp)
movb -0x5f4(%rbp), %sil
movq -0x500(%rbp), %rax
movl 0x1638(%rax), %ecx
movb %sil, %dl
btsl %edx, %ecx
movw %cx, 0x1638(%rax)
movb -0x5f4(%rbp), %sil
movq -0x500(%rbp), %rax
movzwl 0x163a(%rax), %ecx
movb %sil, %dl
btsl %edx, %ecx
movw %cx, 0x163a(%rax)
movq -0x528(%rbp), %rax
movq %rax, -0x388(%rbp)
movq -0x388(%rbp), %rax
vmovdqa 0x1a0(%rax), %xmm0
vmovdqa 0x52ca5(%rip), %xmm1    # 0xc9240
vpaddb %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x3a0(%rbp)
movq -0x388(%rbp), %rax
vmovdqa 0x1c0(%rax), %xmm0
vpaddb %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x3b0(%rbp)
vpxor %xmm0, %xmm0, %xmm0
vmovdqa %xmm0, -0x3c0(%rbp)
vmovdqa -0x3a0(%rbp), %xmm1
vmovdqa -0x3c0(%rbp), %xmm0
vmovdqa %xmm1, -0x290(%rbp)
vmovdqa %xmm0, -0x2a0(%rbp)
vmovdqa -0x290(%rbp), %xmm0
vmovdqa -0x2a0(%rbp), %xmm1
vpunpcklbw %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3],xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]
vpsllw $0x7, %xmm0, %xmm0
vmovdqa %xmm0, -0x3d0(%rbp)
vmovdqa -0x3a0(%rbp), %xmm1
vmovdqa -0x3c0(%rbp), %xmm0
vmovdqa %xmm1, -0x250(%rbp)
vmovdqa %xmm0, -0x260(%rbp)
vmovdqa -0x250(%rbp), %xmm0
vmovdqa -0x260(%rbp), %xmm1
vpunpckhbw %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[8],xmm1[8],xmm0[9],xmm1[9],xmm0[10],xmm1[10],xmm0[11],xmm1[11],xmm0[12],xmm1[12],xmm0[13],xmm1[13],xmm0[14],xmm1[14],xmm0[15],xmm1[15]
vpsllw $0x7, %xmm0, %xmm0
vmovdqa %xmm0, -0x3e0(%rbp)
vmovdqa -0x3b0(%rbp), %xmm1
vmovdqa -0x3c0(%rbp), %xmm0
vmovdqa %xmm1, -0x2b0(%rbp)
vmovdqa %xmm0, -0x2c0(%rbp)
vmovdqa -0x2b0(%rbp), %xmm0
vmovdqa -0x2c0(%rbp), %xmm1
vpunpcklbw %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3],xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]
vpsllw $0x7, %xmm0, %xmm0
vmovdqa %xmm0, -0x3f0(%rbp)
vmovdqa -0x3b0(%rbp), %xmm1
vmovdqa -0x3c0(%rbp), %xmm0
vmovdqa %xmm1, -0x270(%rbp)
vmovdqa %xmm0, -0x280(%rbp)
vmovdqa -0x270(%rbp), %xmm0
vmovdqa -0x280(%rbp), %xmm1
vpunpckhbw %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[8],xmm1[8],xmm0[9],xmm1[9],xmm0[10],xmm1[10],xmm0[11],xmm1[11],xmm0[12],xmm1[12],xmm0[13],xmm1[13],xmm0[14],xmm1[14],xmm0[15],xmm1[15]
vpsllw $0x7, %xmm0, %xmm0
vmovdqa %xmm0, -0x400(%rbp)
vmovdqa -0x3c0(%rbp), %xmm1
vmovdqa -0x3d0(%rbp), %xmm0
vmovdqa %xmm1, -0x1d0(%rbp)
vmovdqa %xmm0, -0x1e0(%rbp)
vmovdqa -0x1d0(%rbp), %xmm0
vmovdqa -0x1e0(%rbp), %xmm1
vpunpcklwd %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]
vmovdqa %xmm0, -0x20(%rbp)
vcvtps2dq -0x20(%rbp), %xmm0
vmovdqa -0x3c0(%rbp), %xmm2
vmovdqa -0x3d0(%rbp), %xmm1
vmovdqa %xmm2, -0x120(%rbp)
vmovdqa %xmm1, -0x130(%rbp)
vmovdqa -0x120(%rbp), %xmm1
vmovdqa -0x130(%rbp), %xmm2
vpunpckhwd %xmm2, %xmm1, %xmm1 # xmm1 = xmm1[4],xmm2[4],xmm1[5],xmm2[5],xmm1[6],xmm2[6],xmm1[7],xmm2[7]
vmovdqa %xmm1, -0x30(%rbp)
vcvtps2dq -0x30(%rbp), %xmm1
vpor %xmm1, %xmm0, %xmm1
vmovdqa -0x3c0(%rbp), %xmm2
vmovdqa -0x3e0(%rbp), %xmm0
vmovdqa %xmm2, -0x1f0(%rbp)
vmovdqa %xmm0, -0x200(%rbp)
vmovdqa -0x1f0(%rbp), %xmm0
vmovdqa -0x200(%rbp), %xmm2
vpunpcklwd %xmm2, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],xmm2[3]
vmovdqa %xmm0, -0x40(%rbp)
vcvtps2dq -0x40(%rbp), %xmm2
vmovdqa -0x3c0(%rbp), %xmm3
vmovdqa -0x3e0(%rbp), %xmm0
vmovdqa %xmm3, -0x140(%rbp)
vmovdqa %xmm0, -0x150(%rbp)
vmovdqa -0x140(%rbp), %xmm0
vmovdqa -0x150(%rbp), %xmm3
vpunpckhwd %xmm3, %xmm0, %xmm0 # xmm0 = xmm0[4],xmm3[4],xmm0[5],xmm3[5],xmm0[6],xmm3[6],xmm0[7],xmm3[7]
vmovdqa %xmm0, -0x50(%rbp)
vcvtps2dq -0x50(%rbp), %xmm0
vpternlogd $0xfe, %xmm2, %xmm1, %xmm0
vmovdqa -0x3c0(%rbp), %xmm2
vmovdqa -0x3f0(%rbp), %xmm1
vmovdqa %xmm2, -0x210(%rbp)
vmovdqa %xmm1, -0x220(%rbp)
vmovdqa -0x210(%rbp), %xmm1
vmovdqa -0x220(%rbp), %xmm2
vpunpcklwd %xmm2, %xmm1, %xmm1 # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]
vmovdqa %xmm1, -0x60(%rbp)
vcvtps2dq -0x60(%rbp), %xmm2
vmovdqa -0x3c0(%rbp), %xmm3
vmovdqa -0x3f0(%rbp), %xmm1
vmovdqa %xmm3, -0x160(%rbp)
vmovdqa %xmm1, -0x170(%rbp)
vmovdqa -0x160(%rbp), %xmm1
vmovdqa -0x170(%rbp), %xmm3
vpunpckhwd %xmm3, %xmm1, %xmm1 # xmm1 = xmm1[4],xmm3[4],xmm1[5],xmm3[5],xmm1[6],xmm3[6],xmm1[7],xmm3[7]
vmovdqa %xmm1, -0x70(%rbp)
vcvtps2dq -0x70(%rbp), %xmm1
vpternlogd $0xfe, %xmm2, %xmm0, %xmm1
vmovdqa -0x3c0(%rbp), %xmm2
vmovdqa -0x400(%rbp), %xmm0
vmovdqa %xmm2, -0x230(%rbp)
vmovdqa %xmm0, -0x240(%rbp)
vmovdqa -0x230(%rbp), %xmm0
vmovdqa -0x240(%rbp), %xmm2
vpunpcklwd %xmm2, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],xmm2[3]
vmovdqa %xmm0, -0x80(%rbp)
vcvtps2dq -0x80(%rbp), %xmm2
vmovdqa -0x3c0(%rbp), %xmm3
vmovdqa -0x400(%rbp), %xmm0
vmovdqa %xmm3, -0x180(%rbp)
vmovdqa %xmm0, -0x190(%rbp)
vmovdqa -0x180(%rbp), %xmm0
vmovdqa -0x190(%rbp), %xmm3
vpunpckhwd %xmm3, %xmm0, %xmm0 # xmm0 = xmm0[4],xmm3[4],xmm0[5],xmm3[5],xmm0[6],xmm3[6],xmm0[7],xmm3[7]
vmovdqa %xmm0, -0x90(%rbp)
vcvtps2dq -0x90(%rbp), %xmm0
vpternlogd $0xfe, %xmm2, %xmm1, %xmm0
vmovdqa %xmm0, -0x410(%rbp)
vmovdqa -0x410(%rbp), %xmm0
vpsrldq $0x8, %xmm0, %xmm1      # xmm1 = xmm0[8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero
vpor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x420(%rbp)
vmovdqa -0x420(%rbp), %xmm0
vpsrldq $0x4, %xmm0, %xmm1      # xmm1 = xmm0[4,5,6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero
vpor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x430(%rbp)
movl -0x430(%rbp), %edx
movq -0x500(%rbp), %rax
movslq -0x5f4(%rbp), %rcx
movl %edx, 0x1740(%rax,%rcx,4)
movq -0x500(%rbp), %rcx
movslq -0x5f4(%rbp), %rax
movl 0x1740(%rcx,%rax,4), %eax
movq %rcx, -0x328(%rbp)
movl $0x7fffffff, -0x1b4(%rbp) # imm = 0x7FFFFFFF
movl -0x1b4(%rbp), %ecx
movl %ecx, -0x194(%rbp)
movl %ecx, -0x198(%rbp)
movl %ecx, -0x19c(%rbp)
movl %ecx, -0x1a0(%rbp)
movl -0x19c(%rbp), %esi
movl -0x198(%rbp), %edx
movl -0x194(%rbp), %ecx
vmovd -0x1a0(%rbp), %xmm0
vpinsrd $0x1, %esi, %xmm0, %xmm0
vpinsrd $0x2, %edx, %xmm0, %xmm0
vpinsrd $0x3, %ecx, %xmm0, %xmm0
vmovdqa %xmm0, -0x1b0(%rbp)
vmovdqa -0x1b0(%rbp), %xmm0
vmovdqa %xmm0, -0x340(%rbp)
movq -0x328(%rbp), %rcx
vmovdqa -0x340(%rbp), %xmm2
vmovdqa 0x16c0(%rcx), %xmm1
vmovdqa 0x16d0(%rcx), %xmm0
vpcmpeqd %xmm2, %xmm1, %xmm1
vpcmpeqd %xmm2, %xmm0, %xmm0
vmovdqa %xmm1, -0xa0(%rbp)
vmovdqa %xmm0, -0xb0(%rbp)
vmovdqa -0xa0(%rbp), %xmm0
vmovdqa -0xb0(%rbp), %xmm1
vpackssdw %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x350(%rbp)
movq -0x328(%rbp), %rcx
vmovdqa -0x340(%rbp), %xmm2
vmovdqa 0x16e0(%rcx), %xmm1
vmovdqa 0x16f0(%rcx), %xmm0
vpcmpeqd %xmm2, %xmm1, %xmm1
vpcmpeqd %xmm2, %xmm0, %xmm0
vmovdqa %xmm1, -0xc0(%rbp)
vmovdqa %xmm0, -0xd0(%rbp)
vmovdqa -0xc0(%rbp), %xmm0
vmovdqa -0xd0(%rbp), %xmm1
vpackssdw %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x360(%rbp)
movq -0x328(%rbp), %rcx
vmovdqa -0x340(%rbp), %xmm2
vmovdqa 0x1700(%rcx), %xmm1
vmovdqa 0x1710(%rcx), %xmm0
vpcmpeqd %xmm2, %xmm1, %xmm1
vpcmpeqd %xmm2, %xmm0, %xmm0
vmovdqa %xmm1, -0xe0(%rbp)
vmovdqa %xmm0, -0xf0(%rbp)
vmovdqa -0xe0(%rbp), %xmm0
vmovdqa -0xf0(%rbp), %xmm1
vpackssdw %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x370(%rbp)
movq -0x328(%rbp), %rcx
vmovdqa -0x340(%rbp), %xmm2
vmovdqa 0x1720(%rcx), %xmm1
vmovdqa 0x1730(%rcx), %xmm0
vpcmpeqd %xmm2, %xmm1, %xmm1
vpcmpeqd %xmm2, %xmm0, %k0
vpmovm2d %k0, %xmm0
vmovdqa %xmm1, -0x100(%rbp)
vmovdqa %xmm0, -0x110(%rbp)
vmovdqa -0x100(%rbp), %xmm0
vmovdqa -0x110(%rbp), %xmm1
vpackssdw %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x380(%rbp)
vmovdqa -0x350(%rbp), %xmm1
vmovdqa -0x360(%rbp), %xmm0
vmovdqa %xmm1, -0x2d0(%rbp)
vmovdqa %xmm0, -0x2e0(%rbp)
vmovdqa -0x2d0(%rbp), %xmm0
vmovdqa -0x2e0(%rbp), %xmm1
vpacksswb %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x310(%rbp)
vmovdqa -0x310(%rbp), %xmm0
vpmovmskb %xmm0, %ecx
vmovdqa -0x370(%rbp), %xmm1
vmovdqa -0x380(%rbp), %xmm0
vmovdqa %xmm1, -0x2f0(%rbp)
vmovdqa %xmm0, -0x300(%rbp)
vmovdqa -0x2f0(%rbp), %xmm0
vmovdqa -0x300(%rbp), %xmm1
vpacksswb %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x320(%rbp)
vmovdqa -0x320(%rbp), %xmm0
vpmovmskb %xmm0, %edx
shll $0x10, %edx
orl %edx, %ecx
xorl $-0x1, %ecx
andl %ecx, %eax
cmpl $0x0, %eax
sete %al
andb $0x1, %al
movzbl %al, %edx
movl -0x5f4(%rbp), %ecx
shll %cl, %edx
movq -0x500(%rbp), %rax
movzwl 0x163c(%rax), %ecx
orl %edx, %ecx
movw %cx, 0x163c(%rax)
movq -0x500(%rbp), %rax
movb 0x24(%rax), %dl
movq -0x500(%rbp), %rax
movslq -0x5f4(%rbp), %rcx
movb %dl, 0x1780(%rax,%rcx)
movq -0x500(%rbp), %rax
cmpb $0x0, 0x20(%rax)
jne 0x76c9a
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
cmpq $0x2542, %rax           # imm = 0x2542
jae 0x76c98
movq -0x500(%rbp), %rdi
addq $0x7ca2, %rdi           # imm = 0x7CA2
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %eax
cltq
addq %rax, %rdi
movq -0x500(%rbp), %rax
movswq 0x7ca0(%rax), %rax
movl $0x2542, %esi           # imm = 0x2542
subq %rax, %rsi
movq -0x528(%rbp), %rax
movsbl 0x220(%rax), %ecx
leaq 0x592d6(%rip), %rdx     # 0xcff40
leaq 0x592b9(%rip), %rax     # 0xcff2a
cmpl $0x0, %ecx
cmovneq %rax, %rdx
movb $0x0, %al
callq 0x7070
movl %eax, %edx
movq -0x500(%rbp), %rax
movswl 0x7ca0(%rax), %ecx
addl %edx, %ecx
movw %cx, 0x7ca0(%rax)
jmp 0x76c9a
movq -0x500(%rbp), %rdi
callq 0x65e20
cmpl $0x0, %eax
je 0x76cb7
movl $0x5f, -0x4f4(%rbp)
jmp 0x76d00
movq -0x500(%rbp), %rax
cmpb $0x0, 0x20(%rax)
jne 0x76ce3
movq -0x500(%rbp), %rax
movq 0x170(%rax), %rax
movq -0x500(%rbp), %rdi
callq *%rax
movl %eax, -0x4f4(%rbp)
jmp 0x76d00
movq -0x500(%rbp), %rdi
addq $0x15a8, %rdi           # imm = 0x15A8
callq 0x70a0
movl $0x0, -0x4f4(%rbp)
movl -0x4f4(%rbp), %eax
addq $0x698, %rsp            # imm = 0x698
popq %rbx
popq %rbp
retq