// File: /workspace/github_cpp_makefile_star2_O2/rossy[P]crossc/SPIRV-Cross/spirv_msl.cpp
// Function: spirv_cross::CompilerMSL::to_function_args[abi:cxx11](unsigned int, spirv_cross::SPIRType const&, bool, bool, bool, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, bool*)
string CompilerMSL::to_function_args(uint32_t img, const SPIRType &imgtype, bool is_fetch, bool is_gather, bool is_proj,
                                     uint32_t coord, uint32_t, uint32_t dref, uint32_t grad_x, uint32_t grad_y,
                                     uint32_t lod, uint32_t coffset, uint32_t offset, uint32_t bias, uint32_t comp,
                                     uint32_t sample, bool *p_forward)
{
	string farg_str;
	if (!is_fetch)
		farg_str += to_sampler_expression(img);

	if (msl_options.swizzle_texture_samples && is_gather)
	{
		if (!farg_str.empty())
			farg_str += ", ";

		auto *combined = maybe_get<SPIRCombinedImageSampler>(img);
		farg_str += to_expression(combined ? combined->image : img);
	}

	// Texture coordinates
	bool forward = should_forward(coord);
	auto coord_expr = to_enclosed_expression(coord);
	auto &coord_type = expression_type(coord);
	bool coord_is_fp = type_is_floating_point(coord_type);
	bool is_cube_fetch = false;

	string tex_coords = coord_expr;
	const char *alt_coord = "";

	switch (imgtype.image.dim)
	{

	case Dim1D:
		if (coord_type.vecsize > 1)
			tex_coords += ".x";

		if (is_fetch)
			tex_coords = "uint(" + round_fp_tex_coords(tex_coords, coord_is_fp) + ")";

		alt_coord = ".y";

		break;

	case DimBuffer:
		if (coord_type.vecsize > 1)
			tex_coords += ".x";

		// Metal texel buffer textures are 2D, so convert 1D coord to 2D.
		if (is_fetch)
			tex_coords = "spvTexelBufferCoord(" + round_fp_tex_coords(tex_coords, coord_is_fp) + ")";

		alt_coord = ".y";

		break;

	case DimSubpassData:
		if (imgtype.image.ms)
			tex_coords = "uint2(gl_FragCoord.xy)";
		else
			tex_coords = join("uint2(gl_FragCoord.xy), 0");
		break;

	case Dim2D:
		if (coord_type.vecsize > 2)
			tex_coords += ".xy";

		if (is_fetch)
			tex_coords = "uint2(" + round_fp_tex_coords(tex_coords, coord_is_fp) + ")";

		alt_coord = ".z";

		break;

	case Dim3D:
		if (coord_type.vecsize > 3)
			tex_coords += ".xyz";

		if (is_fetch)
			tex_coords = "uint3(" + round_fp_tex_coords(tex_coords, coord_is_fp) + ")";

		alt_coord = ".w";

		break;

	case DimCube:
		if (is_fetch)
		{
			is_cube_fetch = true;
			tex_coords += ".xy";
			tex_coords = "uint2(" + round_fp_tex_coords(tex_coords, coord_is_fp) + ")";
		}
		else
		{
			if (coord_type.vecsize > 3)
				tex_coords += ".xyz";
		}

		alt_coord = ".w";

		break;

	default:
		break;
	}

	if (is_fetch && offset)
	{
		// Fetch offsets must be applied directly to the coordinate.
		forward = forward && should_forward(offset);
		auto &type = expression_type(offset);
		if (type.basetype != SPIRType::UInt)
			tex_coords += " + " + bitcast_expression(SPIRType::UInt, offset);
		else
			tex_coords += " + " + to_enclosed_expression(offset);
	}
	else if (is_fetch && coffset)
	{
		// Fetch offsets must be applied directly to the coordinate.
		forward = forward && should_forward(coffset);
		auto &type = expression_type(coffset);
		if (type.basetype != SPIRType::UInt)
			tex_coords += " + " + bitcast_expression(SPIRType::UInt, coffset);
		else
			tex_coords += " + " + to_enclosed_expression(coffset);
	}

	// If projection, use alt coord as divisor
	if (is_proj)
		tex_coords += " / " + coord_expr + alt_coord;

	if (!farg_str.empty())
		farg_str += ", ";
	farg_str += tex_coords;

	// If fetch from cube, add face explicitly
	if (is_cube_fetch)
	{
		// Special case for cube arrays, face and layer are packed in one dimension.
		if (imgtype.image.arrayed)
			farg_str += ", uint(" + join(coord_expr, ".z) % 6u");
		else
			farg_str += ", uint(" + round_fp_tex_coords(coord_expr + ".z", coord_is_fp) + ")";
	}

	// If array, use alt coord
	if (imgtype.image.arrayed)
	{
		// Special case for cube arrays, face and layer are packed in one dimension.
		if (imgtype.image.dim == DimCube && is_fetch)
			farg_str += ", uint(" + join(coord_expr, ".z) / 6u");
		else
			farg_str += ", uint(" + round_fp_tex_coords(coord_expr + alt_coord, coord_is_fp) + ")";
	}

	// Depth compare reference value
	if (dref)
	{
		forward = forward && should_forward(dref);
		farg_str += ", ";
		farg_str += to_expression(dref);
	}

	// LOD Options
	// Metal does not support LOD for 1D textures.
	if (bias && imgtype.image.dim != Dim1D)
	{
		forward = forward && should_forward(bias);
		farg_str += ", bias(" + to_expression(bias) + ")";
	}

	// Metal does not support LOD for 1D textures.
	if (lod && imgtype.image.dim != Dim1D)
	{
		forward = forward && should_forward(lod);
		if (is_fetch)
		{
			farg_str += ", " + to_expression(lod);
		}
		else
		{
			farg_str += ", level(" + to_expression(lod) + ")";
		}
	}
	else if (is_fetch && !lod && imgtype.image.dim != Dim1D && imgtype.image.dim != DimBuffer && !imgtype.image.ms &&
	         imgtype.image.sampled != 2)
	{
		// Lod argument is optional in OpImageFetch, but we require a LOD value, pick 0 as the default.
		// Check for sampled type as well, because is_fetch is also used for OpImageRead in MSL.
		farg_str += ", 0";
	}

	// Metal does not support LOD for 1D textures.
	if ((grad_x || grad_y) && imgtype.image.dim != Dim1D)
	{
		forward = forward && should_forward(grad_x);
		forward = forward && should_forward(grad_y);
		string grad_opt;
		switch (imgtype.image.dim)
		{
		case Dim2D:
			grad_opt = "2d";
			break;
		case Dim3D:
			grad_opt = "3d";
			break;
		case DimCube:
			grad_opt = "cube";
			break;
		default:
			grad_opt = "unsupported_gradient_dimension";
			break;
		}
		farg_str += ", gradient" + grad_opt + "(" + to_expression(grad_x) + ", " + to_expression(grad_y) + ")";
	}

	// Add offsets
	string offset_expr;
	if (coffset && !is_fetch)
	{
		forward = forward && should_forward(coffset);
		offset_expr = to_expression(coffset);
	}
	else if (offset && !is_fetch)
	{
		forward = forward && should_forward(offset);
		offset_expr = to_expression(offset);
	}

	if (!offset_expr.empty())
	{
		switch (imgtype.image.dim)
		{
		case Dim2D:
			if (coord_type.vecsize > 2)
				offset_expr = enclose_expression(offset_expr) + ".xy";

			farg_str += ", " + offset_expr;
			break;

		case Dim3D:
			if (coord_type.vecsize > 3)
				offset_expr = enclose_expression(offset_expr) + ".xyz";

			farg_str += ", " + offset_expr;
			break;

		default:
			break;
		}
	}

	if (comp)
	{
		// If 2D has gather component, ensure it also has an offset arg
		if (imgtype.image.dim == Dim2D && offset_expr.empty())
			farg_str += ", int2(0)";

		forward = forward && should_forward(comp);
		farg_str += ", " + to_component_argument(comp);
	}

	if (sample)
	{
		farg_str += ", ";
		farg_str += to_expression(sample);
	}

	if (msl_options.swizzle_texture_samples && is_sampled_image_type(imgtype))
	{
		// Add the swizzle constant from the swizzle buffer.
		if (!is_gather)
			farg_str += ")";
		// Get the original input variable for this image.
		uint32_t img_var = img;

		auto *combined = maybe_get<SPIRCombinedImageSampler>(img_var);
		if (combined)
			img_var = combined->image;

		if (auto *var = maybe_get_backing_variable(img_var))
		{
			if (var->parameter && !var->parameter->alias_global_variable)
				SPIRV_CROSS_THROW("Cannot yet map non-aliased parameter to Metal resource!");
			img_var = var->self;
		}
		auto &aux_type = expression_type(aux_buffer_id);
		farg_str += ", " + to_name(aux_buffer_id) + "." + to_member_name(aux_type, k_aux_mbr_idx_swizzle_const) + "[" +
		            convert_to_string(get_metal_resource_index(get<SPIRVariable>(img_var), SPIRType::Image)) + "]";
		used_aux_buffer = true;
	}

	*p_forward = forward;

	return farg_str;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x288, %rsp            # imm = 0x288
movl %r9d, 0xa4(%rsp)
movq %rcx, %r13
movq %rdi, %rbx
leaq 0x10(%rdi), %rax
movq %rax, (%rdi)
andq $0x0, 0x8(%rdi)
movl %edx, 0x54(%rsp)
movq %rsi, %r14
movb $0x0, 0x10(%rdi)
movl %r8d, 0x2c(%rsp)
testl %r8d, %r8d
jne 0x78733
leaq 0xa8(%rsp), %rdi
movq %r14, %rsi
movl 0x54(%rsp), %edx
callq 0x6f3a6
leaq 0xa8(%rsp), %rsi
movq %rbx, %rdi
callq 0x64f0
leaq 0xa8(%rsp), %rdi
callq 0x6548
movb 0x7df(%r14), %al
andb 0xa4(%rsp), %al
cmpb $0x1, %al
jne 0x787a0
cmpq $0x0, 0x8(%rbx)
je 0x7875b
leaq 0x1c938(%rip), %rsi     # 0x9508b
movq %rbx, %rdi
callq 0x64d0
movq %r14, %rdi
movl 0x54(%rsp), %ebp
movl %ebp, %esi
callq 0x625ca
testq %rax, %rax
je 0x78771
movl 0x10(%rax), %ebp
leaq 0xa8(%rsp), %rdi
movq %r14, %rsi
movl %ebp, %edx
callq 0x2b9f0
leaq 0xa8(%rsp), %rsi
movq %rbx, %rdi
callq 0x64f0
leaq 0xa8(%rsp), %rdi
callq 0x6548
movl 0x2c8(%rsp), %ebp
movq %r14, %rdi
movl %ebp, %esi
callq 0x2f360
movl %eax, %r15d
leaq 0xa8(%rsp), %rdi
movq %r14, %rsi
movl %ebp, %edx
callq 0x2beca
movq %r14, %rdi
movl %ebp, %esi
callq 0x104b0
movq %rax, 0x78(%rsp)
movl 0xc(%rax), %ebp
leaq 0x80(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0x63c0
addl $-0x9, %ebp
movl %ebp, 0x50(%rsp)
movl 0x84(%r13), %eax
leaq 0x17085(%rip), %rbp     # 0x8f887
xorl %r12d, %r12d
cmpq $0x6, %rax
ja 0x78c81
leaq 0x223f2(%rip), %rcx     # 0x9ac08
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x78(%rsp), %rax
cmpl $0x2, 0x14(%rax)
jb 0x7883e
leaq 0x1c52b(%rip), %rsi     # 0x94d5c
leaq 0x80(%rsp), %rdi
callq 0x64d0
cmpb $0x0, 0x2c(%rsp)
je 0x78c44
leaq 0x268(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0x63c0
xorl %ecx, %ecx
cmpl $0x3, 0x50(%rsp)
setb %cl
leaq 0x58(%rsp), %rdi
leaq 0x268(%rsp), %rdx
callq 0x79ee8
leaq 0x2521c(%rip), %rsi     # 0x9da9d
leaq 0x8(%rsp), %rdi
leaq 0x58(%rsp), %rdx
callq 0x463dd
leaq 0x1d15e(%rip), %rdx     # 0x959f5
leaq 0x30(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xab3f
leaq 0x80(%rsp), %rdi
leaq 0x30(%rsp), %r12
movq %r12, %rsi
callq 0x6320
movq %r12, %rdi
callq 0x6548
leaq 0x8(%rsp), %rdi
callq 0x6548
leaq 0x58(%rsp), %rdi
callq 0x6548
leaq 0x268(%rsp), %rdi
jmp 0x78c36
movq 0x78(%rsp), %rax
cmpl $0x4, 0x14(%rax)
jb 0x78903
leaq 0x1d41a(%rip), %rsi     # 0x95d10
leaq 0x80(%rsp), %rdi
callq 0x64d0
cmpb $0x0, 0x2c(%rsp)
je 0x78e6f
leaq 0x208(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0x63c0
xorl %ecx, %ecx
cmpl $0x3, 0x50(%rsp)
setb %cl
leaq 0x58(%rsp), %rdi
leaq 0x208(%rsp), %rdx
callq 0x79ee8
leaq 0x2514e(%rip), %rsi     # 0x9da94
leaq 0x8(%rsp), %rdi
leaq 0x58(%rsp), %rdx
callq 0x463dd
leaq 0x1d099(%rip), %rdx     # 0x959f5
leaq 0x30(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xab3f
leaq 0x80(%rsp), %rdi
leaq 0x30(%rsp), %r12
movq %r12, %rsi
callq 0x6320
movq %r12, %rdi
callq 0x6548
leaq 0x8(%rsp), %rdi
callq 0x6548
leaq 0x58(%rsp), %rdi
callq 0x6548
leaq 0x208(%rsp), %rdi
callq 0x6548
leaq 0x1d36b(%rip), %rbp     # 0x95d1b
jmp 0x78c7e
cmpb $0x1, 0x8a(%r13)
jne 0x78c50
leaq 0x25092(%rip), %rsi     # 0x9da5c
leaq 0x80(%rsp), %rdi
callq 0x64e0
jmp 0x78c7e
movq 0x78(%rsp), %rax
cmpl $0x3, 0x14(%rax)
jb 0x789fb
leaq 0x1ac47(%rip), %rsi     # 0x93635
leaq 0x80(%rsp), %rdi
callq 0x64d0
cmpb $0x0, 0x2c(%rsp)
je 0x78e78
leaq 0x228(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0x63c0
xorl %ecx, %ecx
cmpl $0x3, 0x50(%rsp)
setb %cl
leaq 0x58(%rsp), %rdi
leaq 0x228(%rsp), %rdx
callq 0x79ee8
leaq 0x2504f(%rip), %rsi     # 0x9da8d
leaq 0x8(%rsp), %rdi
leaq 0x58(%rsp), %rdx
callq 0x463dd
leaq 0x1cfa1(%rip), %rdx     # 0x959f5
leaq 0x30(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xab3f
leaq 0x80(%rsp), %rdi
leaq 0x30(%rsp), %r12
movq %r12, %rsi
callq 0x6320
movq %r12, %rdi
callq 0x6548
leaq 0x8(%rsp), %rdi
callq 0x6548
leaq 0x58(%rsp), %rdi
callq 0x6548
leaq 0x228(%rsp), %rdi
callq 0x6548
leaq 0x1d270(%rip), %rbp     # 0x95d18
jmp 0x78c7e
cmpb $0x0, 0x2c(%rsp)
je 0x78e47
leaq 0x1ab76(%rip), %rsi     # 0x93635
leaq 0x80(%rsp), %rdi
callq 0x64d0
leaq 0x1e8(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0x63c0
xorl %ecx, %ecx
cmpl $0x3, 0x50(%rsp)
setb %cl
leaq 0x58(%rsp), %rdi
leaq 0x1e8(%rsp), %rdx
callq 0x79ee8
leaq 0x24f89(%rip), %rsi     # 0x9da8d
leaq 0x8(%rsp), %rdi
leaq 0x58(%rsp), %rdx
callq 0x463dd
leaq 0x1cedb(%rip), %rdx     # 0x959f5
leaq 0x30(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xab3f
leaq 0x80(%rsp), %rdi
leaq 0x30(%rsp), %r12
movq %r12, %rsi
callq 0x6320
movq %r12, %rdi
callq 0x6548
leaq 0x8(%rsp), %rdi
callq 0x6548
leaq 0x58(%rsp), %rdi
callq 0x6548
leaq 0x1e8(%rsp), %rdi
callq 0x6548
movb $0x1, %r12b
leaq 0x1d1aa(%rip), %rbp     # 0x95d1b
jmp 0x78c81
movq 0x78(%rsp), %rax
cmpl $0x2, 0x14(%rax)
jb 0x78b95
leaq 0x1c1d4(%rip), %rsi     # 0x94d5c
leaq 0x80(%rsp), %rdi
callq 0x64d0
cmpb $0x0, 0x2c(%rsp)
je 0x78c44
leaq 0x248(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0x63c0
xorl %ecx, %ecx
cmpl $0x3, 0x50(%rsp)
setb %cl
leaq 0x58(%rsp), %rdi
leaq 0x248(%rsp), %rdx
callq 0x79ee8
leaq 0x24e6f(%rip), %rsi     # 0x9da47
leaq 0x8(%rsp), %rdi
leaq 0x58(%rsp), %rdx
callq 0x463dd
leaq 0x1ce07(%rip), %rdx     # 0x959f5
leaq 0x30(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xab3f
leaq 0x80(%rsp), %rdi
leaq 0x30(%rsp), %r12
movq %r12, %rsi
callq 0x6320
movq %r12, %rdi
callq 0x6548
leaq 0x8(%rsp), %rdi
callq 0x6548
leaq 0x58(%rsp), %rdi
callq 0x6548
leaq 0x248(%rsp), %rdi
callq 0x6548
leaq 0x1d0d3(%rip), %rbp     # 0x95d15
jmp 0x78c7e
leaq 0x1d0ca(%rip), %rbp     # 0x95d15
jmp 0x78e7f
leaq 0x24e1c(%rip), %rsi     # 0x9da73
leaq 0x30(%rsp), %rdi
callq 0x65de5
leaq 0x80(%rsp), %rdi
leaq 0x30(%rsp), %r12
movq %r12, %rsi
callq 0x6320
movq %r12, %rdi
callq 0x6548
xorl %r12d, %r12d
cmpl $0x0, 0x300(%rsp)
setne %al
movb %al, 0x7(%rsp)
movl 0x2c(%rsp), %ecx
andb %cl, %al
cmpb $0x1, %al
jne 0x78cb3
testb %r15b, %r15b
je 0x78ce9
movq %r14, %rdi
movl 0x300(%rsp), %esi
callq 0x2f360
movl %eax, %r15d
jmp 0x78cec
cmpl $0x0, 0x2f8(%rsp)
sete %al
xorb $0x1, %cl
orb %al, %cl
jne 0x78e8f
testb %r15b, %r15b
je 0x78d9c
movq %r14, %rdi
movl 0x2f8(%rsp), %esi
callq 0x2f360
movl %eax, %r15d
jmp 0x78d9f
xorl %r15d, %r15d
movq %r14, %rdi
movl 0x300(%rsp), %esi
callq 0x104b0
cmpl $0x5, 0xc(%rax)
jne 0x78d3f
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
movl 0x300(%rsp), %edx
callq 0x2beca
leaq 0x24f11(%rip), %rsi     # 0x9dc2d
leaq 0x30(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x463dd
leaq 0x80(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x64f0
jmp 0x78d7e
leaq 0x8(%rsp), %rdi
pushq $0x5
popq %rdx
movq %r14, %rsi
movl 0x300(%rsp), %ecx
callq 0x34706
leaq 0x24ed0(%rip), %rsi     # 0x9dc2d
leaq 0x30(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x463dd
leaq 0x80(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x64f0
leaq 0x30(%rsp), %rdi
callq 0x6548
leaq 0x8(%rsp), %rdi
callq 0x6548
movb $0x1, 0x7(%rsp)
jmp 0x78e8f
xorl %r15d, %r15d
movq %r14, %rdi
movl 0x2f8(%rsp), %esi
callq 0x104b0
cmpl $0x5, 0xc(%rax)
jne 0x78df2
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
movl 0x2f8(%rsp), %edx
callq 0x2beca
leaq 0x24e5e(%rip), %rsi     # 0x9dc2d
leaq 0x30(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x463dd
leaq 0x80(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x64f0
jmp 0x78e31
leaq 0x8(%rsp), %rdi
pushq $0x5
popq %rdx
movq %r14, %rsi
movl 0x2f8(%rsp), %ecx
callq 0x34706
leaq 0x24e1d(%rip), %rsi     # 0x9dc2d
leaq 0x30(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x463dd
leaq 0x80(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x64f0
leaq 0x30(%rsp), %rdi
callq 0x6548
leaq 0x8(%rsp), %rdi
callq 0x6548
jmp 0x78e8f
leaq 0x1cecd(%rip), %rbp     # 0x95d1b
movq 0x78(%rsp), %rax
cmpl $0x4, 0x14(%rax)
jb 0x78e7f
leaq 0x1ceb0(%rip), %rsi     # 0x95d10
leaq 0x80(%rsp), %rdi
callq 0x64d0
jmp 0x78e7f
leaq 0x1cea5(%rip), %rbp     # 0x95d1b
jmp 0x78e7f
leaq 0x1ce99(%rip), %rbp     # 0x95d18
cmpl $0x0, 0x300(%rsp)
setne 0x7(%rsp)
xorl %r12d, %r12d
cmpb $0x0, 0x2c0(%rsp)
je 0x78eea
leaq 0x22c0b(%rip), %rsi     # 0x9baab
leaq 0x8(%rsp), %rdi
leaq 0xa8(%rsp), %rdx
callq 0x625ff
leaq 0x30(%rsp), %rdi
leaq 0x8(%rsp), %rsi
movq %rbp, %rdx
callq 0xab3f
leaq 0x80(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x64f0
leaq 0x30(%rsp), %rdi
callq 0x6548
leaq 0x8(%rsp), %rdi
callq 0x6548
cmpq $0x0, 0x8(%rbx)
je 0x78f00
leaq 0x1c193(%rip), %rsi     # 0x9508b
movq %rbx, %rdi
callq 0x64d0
leaq 0x80(%rsp), %rsi
movq %rbx, %rdi
callq 0x64f0
testb %r12b, %r12b
je 0x7900f
cmpb $0x1, 0x89(%r13)
jne 0x78f73
leaq 0x24b79(%rip), %rdx     # 0x9daa3
leaq 0x8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0x81ab2
leaq 0x24b58(%rip), %rsi     # 0x9da9b
leaq 0x30(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x463dd
leaq 0x30(%rsp), %rsi
movq %rbx, %rdi
callq 0x64f0
leaq 0x30(%rsp), %rdi
callq 0x6548
leaq 0x8(%rsp), %rdi
jmp 0x7900a
leaq 0x1cd9e(%rip), %rdx     # 0x95d18
leaq 0x1c8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0x174a5
xorl %ecx, %ecx
cmpl $0x3, 0x50(%rsp)
setb %cl
leaq 0x58(%rsp), %rdi
leaq 0x1c8(%rsp), %rdx
callq 0x79ee8
leaq 0x24ae9(%rip), %rsi     # 0x9da9b
leaq 0x8(%rsp), %rdi
leaq 0x58(%rsp), %rdx
callq 0x463dd
leaq 0x1ca2d(%rip), %rdx     # 0x959f5
leaq 0x30(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xab3f
leaq 0x30(%rsp), %rsi
movq %rbx, %rdi
callq 0x64f0
leaq 0x30(%rsp), %rdi
callq 0x6548
leaq 0x8(%rsp), %rdi
callq 0x6548
leaq 0x58(%rsp), %rdi
callq 0x6548
leaq 0x1c8(%rsp), %rdi
callq 0x6548
cmpb $0x1, 0x89(%r13)
jne 0x7911b
cmpl $0x3, 0x84(%r13)
setne %al
movl 0x2c(%rsp), %ecx
xorb $0x1, %cl
orb %al, %cl
jne 0x79083
leaq 0x24a72(%rip), %rdx     # 0x9daac
leaq 0x8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0x81ab2
leaq 0x24a48(%rip), %rsi     # 0x9da9b
leaq 0x30(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x463dd
leaq 0x30(%rsp), %rsi
movq %rbx, %rdi
callq 0x64f0
leaq 0x30(%rsp), %rdi
callq 0x6548
leaq 0x8(%rsp), %rdi
jmp 0x79116
leaq 0x1a8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
movq %rbp, %rdx
callq 0x174a5
xorl %ecx, %ecx
cmpl $0x3, 0x50(%rsp)
setb %cl
leaq 0x58(%rsp), %rdi
leaq 0x1a8(%rsp), %rdx
callq 0x79ee8
leaq 0x249dd(%rip), %rsi     # 0x9da9b
leaq 0x8(%rsp), %rdi
leaq 0x58(%rsp), %rdx
callq 0x463dd
leaq 0x1c921(%rip), %rdx     # 0x959f5
leaq 0x30(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xab3f
leaq 0x30(%rsp), %rsi
movq %rbx, %rdi
callq 0x64f0
leaq 0x30(%rsp), %rdi
callq 0x6548
leaq 0x8(%rsp), %rdi
callq 0x6548
leaq 0x58(%rsp), %rdi
callq 0x6548
leaq 0x1a8(%rsp), %rdi
callq 0x6548
movl 0x2d8(%rsp), %ebp
testl %ebp, %ebp
je 0x79172
testb %r15b, %r15b
je 0x7913a
movq %r14, %rdi
movl %ebp, %esi
callq 0x2f360
movl %eax, %r15d
jmp 0x7913d
xorl %r15d, %r15d
leaq 0x1bf47(%rip), %rsi     # 0x9508b
movq %rbx, %rdi
callq 0x64d0
leaq 0x30(%rsp), %rdi
movq %r14, %rsi
movl %ebp, %edx
callq 0x2b9f0
leaq 0x30(%rsp), %rsi
movq %rbx, %rdi
callq 0x64f0
leaq 0x30(%rsp), %rdi
callq 0x6548
movl 0x308(%rsp), %ebp
testl %ebp, %ebp
sete %cl
movl 0x84(%r13), %eax
testl %eax, %eax
sete %dl
orb %cl, %dl
jne 0x79216
testb %r15b, %r15b
je 0x791a6
movq %r14, %rdi
movl %ebp, %esi
callq 0x2f360
movl %eax, %r15d
jmp 0x791a9
xorl %r15d, %r15d
leaq 0x58(%rsp), %rdi
movq %r14, %rsi
movl %ebp, %edx
callq 0x2b9f0
leaq 0x248f6(%rip), %rsi     # 0x9dab5
leaq 0x8(%rsp), %rdi
leaq 0x58(%rsp), %rdx
callq 0x463dd
leaq 0x1c820(%rip), %rdx     # 0x959f5
leaq 0x30(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xab3f
leaq 0x30(%rsp), %rsi
movq %rbx, %rdi
callq 0x64f0
leaq 0x30(%rsp), %rdi
callq 0x6548
leaq 0x8(%rsp), %rdi
callq 0x6548
leaq 0x58(%rsp), %rdi
callq 0x6548
movl 0x84(%r13), %eax
movl 0x2f0(%rsp), %ebp
testl %ebp, %ebp
sete %cl
testl %eax, %eax
sete %dl
orb %cl, %dl
je 0x79280
testl %ebp, %ebp
setne %cl
movl 0x2c(%rsp), %edx
xorb $0x1, %dl
orb %cl, %dl
jne 0x79347
testl %eax, %eax
je 0x79347
cmpl $0x5, %eax
je 0x79347
cmpb $0x0, 0x8a(%r13)
jne 0x79347
cmpl $0x2, 0x8c(%r13)
je 0x79347
leaq 0x24816(%rip), %rsi     # 0x9da89
movq %rbx, %rdi
callq 0x64d0
jmp 0x79347
testb %r15b, %r15b
je 0x79294
movq %r14, %rdi
movl %ebp, %esi
callq 0x2f360
movl %eax, %r15d
jmp 0x79297
xorl %r15d, %r15d
cmpb $0x0, 0x2c(%rsp)
je 0x792e1
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
movl %ebp, %edx
callq 0x2b9f0
leaq 0x1bdd7(%rip), %rsi     # 0x9508b
leaq 0x30(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x463dd
leaq 0x30(%rsp), %rsi
movq %rbx, %rdi
callq 0x64f0
leaq 0x30(%rsp), %rdi
callq 0x6548
leaq 0x8(%rsp), %rdi
jmp 0x79342
leaq 0x58(%rsp), %rdi
movq %r14, %rsi
movl %ebp, %edx
callq 0x2b9f0
leaq 0x247c6(%rip), %rsi     # 0x9dabd
leaq 0x8(%rsp), %rdi
leaq 0x58(%rsp), %rdx
callq 0x463dd
leaq 0x1c6e8(%rip), %rdx     # 0x959f5
leaq 0x30(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xab3f
leaq 0x30(%rsp), %rsi
movq %rbx, %rdi
callq 0x64f0
leaq 0x30(%rsp), %rdi
callq 0x6548
leaq 0x8(%rsp), %rdi
callq 0x6548
leaq 0x58(%rsp), %rdi
callq 0x6548
movl 0x2e8(%rsp), %ebp
movl 0x2e0(%rsp), %r12d
movl %ebp, %eax
orl %r12d, %eax
je 0x79513
cmpl $0x0, 0x84(%r13)
je 0x79513
testb %r15b, %r15b
je 0x79392
movq %r14, %rdi
movl %r12d, %esi
callq 0x2f360
testb %al, %al
je 0x79392
movq %r14, %rdi
movl %ebp, %esi
callq 0x2f360
movl %eax, %r15d
jmp 0x79395
xorl %r15d, %r15d
leaq 0x40(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
movl 0x84(%r13), %eax
decl %eax
cmpl $0x3, %eax
jae 0x793c6
movl %eax, %eax
leaq 0x21d1f(%rip), %rcx     # 0x9b0dc
movslq (%rcx,%rax,4), %rsi
addq %rcx, %rsi
jmp 0x793cd
leaq 0x246f9(%rip), %rsi     # 0x9dac6
leaq 0x30(%rsp), %rdi
callq 0x64e0
leaq 0x24707(%rip), %rsi     # 0x9dae5
leaq 0x108(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x625ff
leaq 0x24832(%rip), %rdx     # 0x9dc29
leaq 0x128(%rsp), %rdi
leaq 0x108(%rsp), %rsi
callq 0xab3f
leaq 0xe8(%rsp), %rdi
movq %r14, %rsi
movl %r12d, %edx
callq 0x2b9f0
leaq 0x148(%rsp), %rdi
leaq 0x128(%rsp), %rsi
leaq 0xe8(%rsp), %rdx
callq 0x1743e
leaq 0x1bc48(%rip), %rdx     # 0x9508b
leaq 0x168(%rsp), %rdi
leaq 0x148(%rsp), %rsi
callq 0xab3f
leaq 0xc8(%rsp), %rdi
movq %r14, %rsi
movl %ebp, %edx
callq 0x2b9f0
leaq 0x58(%rsp), %rdi
leaq 0x168(%rsp), %rsi
leaq 0xc8(%rsp), %rdx
callq 0x1743e
leaq 0x1c56a(%rip), %rdx     # 0x959f5
leaq 0x8(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0xab3f
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x64f0
leaq 0x8(%rsp), %rdi
callq 0x6548
leaq 0x58(%rsp), %rdi
callq 0x6548
leaq 0xc8(%rsp), %rdi
callq 0x6548
leaq 0x168(%rsp), %rdi
callq 0x6548
leaq 0x148(%rsp), %rdi
callq 0x6548
leaq 0xe8(%rsp), %rdi
callq 0x6548
leaq 0x128(%rsp), %rdi
callq 0x6548
leaq 0x108(%rsp), %rdi
callq 0x6548
leaq 0x30(%rsp), %rdi
callq 0x6548
leaq 0x40(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
cmpl $0x0, 0x2f8(%rsp)
sete %al
movl 0x2c(%rsp), %ecx
orb %cl, %al
je 0x7955a
movb 0x7(%rsp), %al
xorb $0x1, %al
orb %cl, %al
jne 0x795bd
testb %r15b, %r15b
je 0x7958c
movq %r14, %rdi
movl 0x300(%rsp), %esi
callq 0x2f360
movl %eax, %r15d
jmp 0x7958f
testb %r15b, %r15b
je 0x79573
movq %r14, %rdi
movl 0x2f8(%rsp), %esi
callq 0x2f360
movl %eax, %r15d
jmp 0x79576
xorl %r15d, %r15d
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
movl 0x2f8(%rsp), %edx
callq 0x2b9f0
jmp 0x795a3
xorl %r15d, %r15d
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
movl 0x300(%rsp), %edx
callq 0x2b9f0
leaq 0x30(%rsp), %rdi
leaq 0x8(%rsp), %r12
movq %r12, %rsi
callq 0x6320
movq %r12, %rdi
callq 0x6548
cmpq $0x0, 0x38(%rsp)
je 0x796e2
movl 0x84(%r13), %eax
cmpl $0x2, %eax
je 0x7965e
cmpl $0x1, %eax
jne 0x796e2
movq 0x78(%rsp), %rax
cmpl $0x3, 0x14(%rax)
jb 0x79639
leaq 0x58(%rsp), %rdi
leaq 0x30(%rsp), %rdx
movq %r14, %rsi
callq 0x2aa76
leaq 0x1a02f(%rip), %rdx     # 0x93635
leaq 0x8(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0xab3f
leaq 0x30(%rsp), %rdi
leaq 0x8(%rsp), %r12
movq %r12, %rsi
callq 0x6320
movq %r12, %rdi
callq 0x6548
leaq 0x58(%rsp), %rdi
callq 0x6548
leaq 0x1ba4b(%rip), %rsi     # 0x9508b
leaq 0x8(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x625ff
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x64f0
jmp 0x796d8
movq 0x78(%rsp), %rax
cmpl $0x4, 0x14(%rax)
jb 0x796b5
leaq 0x58(%rsp), %rdi
leaq 0x30(%rsp), %rdx
movq %r14, %rsi
callq 0x2aa76
leaq 0x1c68e(%rip), %rdx     # 0x95d10
leaq 0x8(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0xab3f
leaq 0x30(%rsp), %rdi
leaq 0x8(%rsp), %r12
movq %r12, %rsi
callq 0x6320
movq %r12, %rdi
callq 0x6548
leaq 0x58(%rsp), %rdi
callq 0x6548
leaq 0x1b9cf(%rip), %rsi     # 0x9508b
leaq 0x8(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x625ff
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x64f0
leaq 0x8(%rsp), %rdi
callq 0x6548
movl 0x310(%rsp), %ebp
testl %ebp, %ebp
je 0x7976b
cmpl $0x1, 0x84(%r13)
jne 0x7970e
cmpq $0x0, 0x38(%rsp)
jne 0x7970e
leaq 0x243ea(%rip), %rsi     # 0x9daf0
movq %rbx, %rdi
callq 0x64d0
testb %r15b, %r15b
je 0x79722
movq %r14, %rdi
movl %ebp, %esi
callq 0x2f360
movl %eax, %r15d
jmp 0x79725
xorl %r15d, %r15d
leaq 0x58(%rsp), %rdi
movq %r14, %rsi
movl %ebp, %edx
callq 0x79f54
leaq 0x1b950(%rip), %rsi     # 0x9508b
leaq 0x8(%rsp), %rdi
leaq 0x58(%rsp), %rdx
callq 0x463dd
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x64f0
leaq 0x8(%rsp), %rdi
callq 0x6548
leaq 0x58(%rsp), %rdi
callq 0x6548
movl 0x318(%rsp), %ebp
testl %ebp, %ebp
je 0x797ab
leaq 0x1b90e(%rip), %rsi     # 0x9508b
movq %rbx, %rdi
callq 0x64d0
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
movl %ebp, %edx
callq 0x2b9f0
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x64f0
leaq 0x8(%rsp), %rdi
callq 0x6548
cmpb $0x1, 0x7df(%r14)
jne 0x799b8
movq %r14, %rdi
movq %r13, %rsi
callq 0x11ea2
testb %al, %al
je 0x799b8
cmpb $0x0, 0xa4(%rsp)
jne 0x797e5
leaq 0x1c218(%rip), %rsi     # 0x959f5
movq %rbx, %rdi
callq 0x64d0
movq %r14, %rdi
movl 0x54(%rsp), %esi
callq 0x625ca
testq %rax, %rax
je 0x797fd
movl 0x10(%rax), %eax
movl %eax, 0x54(%rsp)
movq %r14, %rdi
movl 0x54(%rsp), %esi
callq 0x1067e
testq %rax, %rax
je 0x79828
movq 0x68(%rax), %rcx
testq %rcx, %rcx
je 0x79821
cmpb $0x0, 0x10(%rcx)
je 0x799fc
movl 0x8(%rax), %eax
movl %eax, 0x54(%rsp)
movl 0x7c8(%r14), %esi
movq %r14, %rdi
callq 0x104b0
movq %rax, %r12
movl 0x7c8(%r14), %edx
movq (%r14), %rax
leaq 0xe8(%rsp), %rdi
pushq $0x1
popq %rcx
movq %r14, %rsi
callq *0x38(%rax)
leaq 0x1b82f(%rip), %rsi     # 0x9508b
leaq 0x108(%rsp), %rdi
leaq 0xe8(%rsp), %rdx
callq 0x463dd
leaq 0x1bfb1(%rip), %rdx     # 0x95829
leaq 0x128(%rsp), %rdi
leaq 0x108(%rsp), %rsi
callq 0xab3f
leaq 0xc8(%rsp), %rdi
movq %r14, %rsi
movq %r12, %rdx
xorl %ecx, %ecx
callq 0x25cca
leaq 0x148(%rsp), %rdi
leaq 0x128(%rsp), %rsi
leaq 0xc8(%rsp), %rdx
callq 0x1743e
leaq 0x243de(%rip), %rdx     # 0x9dca4
leaq 0x168(%rsp), %rdi
leaq 0x148(%rsp), %rsi
callq 0xab3f
movq %r14, %rdi
movl 0x54(%rsp), %esi
callq 0x9c0e
pushq $0xd
popq %rdx
movq %r14, %rdi
movq %rax, %rsi
callq 0x7a1a2
leaq 0x188(%rsp), %rdi
movl %eax, %esi
callq 0x1c182
leaq 0x58(%rsp), %rdi
leaq 0x168(%rsp), %rsi
leaq 0x188(%rsp), %rdx
callq 0x1743e
leaq 0x1f1a9(%rip), %rdx     # 0x98ace
leaq 0x8(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0xab3f
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x64f0
leaq 0x8(%rsp), %rdi
callq 0x6548
leaq 0x58(%rsp), %rdi
callq 0x6548
leaq 0x188(%rsp), %rdi
callq 0x6548
leaq 0x168(%rsp), %rdi
callq 0x6548
leaq 0x148(%rsp), %rdi
callq 0x6548
leaq 0xc8(%rsp), %rdi
callq 0x6548
leaq 0x128(%rsp), %rdi
callq 0x6548
leaq 0x108(%rsp), %rdi
callq 0x6548
leaq 0xe8(%rsp), %rdi
callq 0x6548
movb $0x1, 0x938(%r14)
movq 0x320(%rsp), %rax
movb %r15b, (%rax)
leaq 0x30(%rsp), %rdi
callq 0x6548
leaq 0x80(%rsp), %rdi
callq 0x6548
leaq 0xa8(%rsp), %rdi
callq 0x6548
movq %rbx, %rax
addq $0x288, %rsp            # imm = 0x288
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
pushq $0x10
popq %rdi
callq 0x6140
movq %rax, %r15
leaq 0x240ec(%rip), %rsi     # 0x9dafa
leaq 0x8(%rsp), %rdi
leaq 0x58(%rsp), %rdx
callq 0x6100
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r15, %rdi
callq 0x6f6e
xorl %ebp, %ebp
leaq 0x6d38a(%rip), %rsi     # 0xe6dc0
movq 0x6e5a3(%rip), %rdx     # 0xe7fe0
movq %r15, %rdi
callq 0x6490
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x6548
testb %bpl, %bpl
jne 0x79a5f
jmp 0x79eaf
movq %rax, %r14
movq %r15, %rdi
callq 0x6200
jmp 0x79eaf
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x6548
jmp 0x79aba
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x6548
jmp 0x79ac9
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x6548
jmp 0x79ad8
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x6548
jmp 0x79ae7
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x6548
jmp 0x79af6
movq %rax, %r14
leaq 0x58(%rsp), %rdi
callq 0x6548
jmp 0x79b05
movq %rax, %r14
leaq 0x58(%rsp), %rdi
callq 0x6548
jmp 0x79b15
movq %rax, %r14
leaq 0x58(%rsp), %rdi
callq 0x6548
jmp 0x79b25
movq %rax, %r14
leaq 0x58(%rsp), %rdi
callq 0x6548
jmp 0x79b35
movq %rax, %r14
leaq 0x58(%rsp), %rdi
callq 0x6548
jmp 0x79b45
movq %rax, %r14
leaq 0x1e8(%rsp), %rdi
jmp 0x79eb4
movq %rax, %r14
leaq 0x248(%rsp), %rdi
jmp 0x79eb4
movq %rax, %r14
leaq 0x228(%rsp), %rdi
jmp 0x79eb4
movq %rax, %r14
leaq 0x268(%rsp), %rdi
jmp 0x79eb4
movq %rax, %r14
leaq 0x208(%rsp), %rdi
jmp 0x79eb4
jmp 0x79ebb
jmp 0x79ebb
jmp 0x79ebb
jmp 0x79ebb
jmp 0x79ebb
jmp 0x79ebb
jmp 0x79de3
jmp 0x79de3
jmp 0x79df2
jmp 0x79df2
jmp 0x79ebb
jmp 0x79ebb
jmp 0x79e3b
jmp 0x79e3b
jmp 0x79eac
jmp 0x79eac
jmp 0x79de3
jmp 0x79de3
jmp 0x79df2
jmp 0x79df2
jmp 0x79ebb
jmp 0x79ebb
jmp 0x79ebb
jmp 0x79e1d
jmp 0x79e1d
jmp 0x79eac
jmp 0x79eac
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x6548
jmp 0x79beb
movq %rax, %r14
leaq 0x58(%rsp), %rdi
callq 0x6548
jmp 0x79bfa
movq %rax, %r14
leaq 0x188(%rsp), %rdi
callq 0x6548
jmp 0x79e4e
movq %rax, %r14
jmp 0x79e5b
movq %rax, %r14
jmp 0x79e68
movq %rax, %r14
jmp 0x79e75
movq %rax, %r14
jmp 0x79e82
movq %rax, %r14
jmp 0x79e8f
jmp 0x79eac
jmp 0x79eac
jmp 0x79eac
jmp 0x79eac
jmp 0x79eac
jmp 0x79db3
jmp 0x79dc2
jmp 0x79de3
jmp 0x79dd1
jmp 0x79df2
jmp 0x79ebb
jmp 0x79ebb
movq %rax, %r14
leaq 0x30(%rsp), %rdi
callq 0x6548
jmp 0x79c82
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x6548
jmp 0x79c91
movq %rax, %r14
leaq 0x58(%rsp), %rdi
callq 0x6548
jmp 0x79cb4
jmp 0x79de3
movq %rax, %r14
leaq 0x30(%rsp), %rdi
callq 0x6548
jmp 0x79cc9
movq %rax, %r14
leaq 0x1a8(%rsp), %rdi
jmp 0x79eb4
jmp 0x79df2
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x6548
jmp 0x79ce2
jmp 0x79ebb
jmp 0x79ebb
movq %rax, %r14
leaq 0x58(%rsp), %rdi
callq 0x6548
jmp 0x79cf6
jmp 0x79de3
movq %rax, %r14
leaq 0x1c8(%rsp), %rdi
jmp 0x79eb4
jmp 0x79df2
jmp 0x79ebb
jmp 0x79ebb
jmp 0x79ea7
jmp 0x79ebb
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x6548
jmp 0x79d2e
movq %rax, %r14
leaq 0x58(%rsp), %rdi
callq 0x6548
jmp 0x79d3d
movq %rax, %r14
leaq 0xc8(%rsp), %rdi
callq 0x6548
jmp 0x79d4f
movq %rax, %r14
leaq 0x168(%rsp), %rdi
callq 0x6548
jmp 0x79d66
jmp 0x79eac
movq %rax, %r14
leaq 0x148(%rsp), %rdi
callq 0x6548
leaq 0xe8(%rsp), %rdi
callq 0x6548
leaq 0x128(%rsp), %rdi
callq 0x6548
leaq 0x108(%rsp), %rdi
jmp 0x79e97
movq %rax, %r14
jmp 0x79d73
movq %rax, %r14
jmp 0x79d80
movq %rax, %r14
jmp 0x79d8d
jmp 0x79eac
jmp 0x79eac
movq %rax, %r14
leaq 0x30(%rsp), %rdi
callq 0x6548
jmp 0x79dc5
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x6548
jmp 0x79dd4
movq %rax, %r14
leaq 0x58(%rsp), %rdi
jmp 0x79eb4
jmp 0x79ebb
movq %rax, %r14
leaq 0x30(%rsp), %rdi
callq 0x6548
jmp 0x79df5
movq %rax, %r14
leaq 0x8(%rsp), %rdi
jmp 0x79eb4
jmp 0x79ebb
jmp 0x79ea0
jmp 0x79ea7
jmp 0x79ea7
jmp 0x79ea0
jmp 0x79ea7
movq %rax, %r14
leaq 0x8(%rsp), %rdi
jmp 0x79e97
jmp 0x79eac
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x6548
jmp 0x79e3e
movq %rax, %r14
leaq 0x58(%rsp), %rdi
jmp 0x79e97
jmp 0x79eac
jmp 0x79eac
jmp 0x79ebb
movq %rax, %r14
leaq 0x168(%rsp), %rdi
callq 0x6548
leaq 0x148(%rsp), %rdi
callq 0x6548
leaq 0xc8(%rsp), %rdi
callq 0x6548
leaq 0x128(%rsp), %rdi
callq 0x6548
leaq 0x108(%rsp), %rdi
callq 0x6548
leaq 0xe8(%rsp), %rdi
callq 0x6548
jmp 0x79eaf
jmp 0x79ea0
movq %rax, %r14
jmp 0x79ecb
jmp 0x79ea7
movq %rax, %r14
jmp 0x79ed8
movq %rax, %r14
leaq 0x30(%rsp), %rdi
callq 0x6548
jmp 0x79ebe
movq %rax, %r14
leaq 0x80(%rsp), %rdi
callq 0x6548
leaq 0xa8(%rsp), %rdi
callq 0x6548
movq %rbx, %rdi
callq 0x6548
movq %r14, %rdi
callq 0x64b0