// File: /workspace/github_cpp_makefile_star2_O3/rossy[P]crossc/SPIRV-Cross/spirv_msl.cpp
// Function: spirv_cross::CompilerMSL::member_attribute_qualifier[abi:cxx11](spirv_cross::SPIRType const&, unsigned int)
string CompilerMSL::member_attribute_qualifier(const SPIRType &type, uint32_t index)
{
	auto &execution = get_entry_point();

	uint32_t mbr_type_id = type.member_types[index];
	auto &mbr_type = get<SPIRType>(mbr_type_id);

	BuiltIn builtin;
	bool is_builtin = is_member_builtin(type, index, &builtin);

	// Vertex function inputs
	if (execution.model == ExecutionModelVertex && type.storage == StorageClassInput)
	{
		if (is_builtin)
		{
			switch (builtin)
			{
			case BuiltInVertexId:
			case BuiltInVertexIndex:
			case BuiltInBaseVertex:
			case BuiltInInstanceId:
			case BuiltInInstanceIndex:
			case BuiltInBaseInstance:
				return string(" [[") + builtin_qualifier(builtin) + "]]";

			case BuiltInDrawIndex:
				SPIRV_CROSS_THROW("DrawIndex is not supported in MSL.");

			default:
				return "";
			}
		}
		uint32_t locn = get_ordered_member_location(type.self, index);
		if (locn != k_unknown_location)
			return string(" [[attribute(") + convert_to_string(locn) + ")]]";
	}

	// Vertex function outputs
	if (execution.model == ExecutionModelVertex && type.storage == StorageClassOutput)
	{
		if (is_builtin)
		{
			switch (builtin)
			{
			case BuiltInPointSize:
				// Only mark the PointSize builtin if really rendering points.
				// Some shaders may include a PointSize builtin even when used to render
				// non-point topologies, and Metal will reject this builtin when compiling
				// the shader into a render pipeline that uses a non-point topology.
				return msl_options.enable_point_size_builtin ? (string(" [[") + builtin_qualifier(builtin) + "]]") : "";

			case BuiltInViewportIndex:
				if (!msl_options.supports_msl_version(2, 0))
					SPIRV_CROSS_THROW("ViewportIndex requires Metal 2.0.");
				/* fallthrough */
			case BuiltInPosition:
			case BuiltInLayer:
			case BuiltInClipDistance:
				return string(" [[") + builtin_qualifier(builtin) + "]]" + (mbr_type.array.empty() ? "" : " ");

			default:
				return "";
			}
		}
		uint32_t comp;
		uint32_t locn = get_ordered_member_location(type.self, index, &comp);
		if (locn != k_unknown_location)
		{
			if (comp != k_unknown_component)
				return string(" [[user(locn") + convert_to_string(locn) + "_" + convert_to_string(comp) + ")]]";
			else
				return string(" [[user(locn") + convert_to_string(locn) + ")]]";
		}
	}

	// Fragment function inputs
	if (execution.model == ExecutionModelFragment && type.storage == StorageClassInput)
	{
		string quals = "";
		if (is_builtin)
		{
			switch (builtin)
			{
			case BuiltInFrontFacing:
			case BuiltInPointCoord:
			case BuiltInFragCoord:
			case BuiltInSampleId:
			case BuiltInSampleMask:
			case BuiltInLayer:
				quals = builtin_qualifier(builtin);

			default:
				break;
			}
		}
		else
		{
			uint32_t comp;
			uint32_t locn = get_ordered_member_location(type.self, index, &comp);
			if (locn != k_unknown_location)
			{
				if (comp != k_unknown_component)
					quals = string("user(locn") + convert_to_string(locn) + "_" + convert_to_string(comp) + ")";
				else
					quals = string("user(locn") + convert_to_string(locn) + ")";
			}
		}
		// Don't bother decorating integers with the 'flat' attribute; it's
		// the default (in fact, the only option). Also don't bother with the
		// FragCoord builtin; it's always noperspective on Metal.
		if (!type_is_integral(mbr_type) && (!is_builtin || builtin != BuiltInFragCoord))
		{
			if (has_member_decoration(type.self, index, DecorationFlat))
			{
				if (!quals.empty())
					quals += ", ";
				quals += "flat";
			}
			else if (has_member_decoration(type.self, index, DecorationCentroid))
			{
				if (!quals.empty())
					quals += ", ";
				if (has_member_decoration(type.self, index, DecorationNoPerspective))
					quals += "centroid_no_perspective";
				else
					quals += "centroid_perspective";
			}
			else if (has_member_decoration(type.self, index, DecorationSample))
			{
				if (!quals.empty())
					quals += ", ";
				if (has_member_decoration(type.self, index, DecorationNoPerspective))
					quals += "sample_no_perspective";
				else
					quals += "sample_perspective";
			}
			else if (has_member_decoration(type.self, index, DecorationNoPerspective))
			{
				if (!quals.empty())
					quals += ", ";
				quals += "center_no_perspective";
			}
		}
		if (!quals.empty())
			return " [[" + quals + "]]";
	}

	// Fragment function outputs
	if (execution.model == ExecutionModelFragment && type.storage == StorageClassOutput)
	{
		if (is_builtin)
		{
			switch (builtin)
			{
			case BuiltInSampleMask:
			case BuiltInFragDepth:
				return string(" [[") + builtin_qualifier(builtin) + "]]";

			default:
				return "";
			}
		}
		uint32_t locn = get_ordered_member_location(type.self, index);
		if (locn != k_unknown_location && has_member_decoration(type.self, index, DecorationIndex))
			return join(" [[color(", locn, "), index(", get_member_decoration(type.self, index, DecorationIndex),
			            ")]]");
		else if (locn != k_unknown_location)
			return join(" [[color(", locn, ")]]");
		else if (has_member_decoration(type.self, index, DecorationIndex))
			return join(" [[index(", get_member_decoration(type.self, index, DecorationIndex), ")]]");
		else
			return "";
	}

	// Compute function inputs
	if (execution.model == ExecutionModelGLCompute && type.storage == StorageClassInput)
	{
		if (is_builtin)
		{
			switch (builtin)
			{
			case BuiltInGlobalInvocationId:
			case BuiltInWorkgroupId:
			case BuiltInNumWorkgroups:
			case BuiltInLocalInvocationId:
			case BuiltInLocalInvocationIndex:
				return string(" [[") + builtin_qualifier(builtin) + "]]";

			default:
				return "";
			}
		}
	}

	return "";
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x128, %rsp            # imm = 0x128
movl %ecx, %ebp
movq %rdx, %r15
movq %rsi, %r14
movq %rdi, 0x68(%rsp)
movq %rsi, %rdi
callq 0x15f76
movq %rax, %r13
movl %ebp, %eax
movq 0x68(%r15), %rcx
movl (%rcx,%rax,4), %esi
movq %r14, %rdi
callq 0xa3ea
movq %rax, %rbx
leaq 0x64(%rsp), %rcx
movq %r14, %rdi
movq %r15, %rsi
movl %ebp, %edx
callq 0x133ea
movl %eax, %r12d
movq %r13, 0xf8(%rsp)
movl 0xb8(%r13), %eax
movl 0x64(%r15), %ecx
movl %ecx, %edx
xorl $0x1, %edx
orl %eax, %edx
jne 0x9bef9
testb %r12b, %r12b
je 0x9bf9b
movl 0x64(%rsp), %eax
cmpq $0x2b, %rax
ja 0x9be5b
movabsq $0xc0000000060, %rcx    # imm = 0xC0000000060
btq %rax, %rcx
jb 0x9be6a
leal -0x1148(%rax), %ecx
cmpl $0x2, %ecx
jae 0x9c3dc
leaq 0x50(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x26e70(%rip), %rsi     # 0xc2cea
leaq 0x26e6c(%rip), %rdx     # 0xc2ced
leaq 0x40(%rsp), %rdi
callq 0x7be0
movq 0x68(%rsp), %rbp
movl 0x64(%rsp), %edx
leaq 0x20(%rsp), %rdi
movq %r14, %rsi
callq 0x9dc94
movq 0x40(%rsp), %rcx
movq 0x48(%rsp), %r8
movq 0x28(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %r15, %rcx
je 0x9bec3
movq 0x50(%rsp), %rdi
movq 0x20(%rsp), %rsi
cmpq %rdi, %rax
jbe 0x9beea
leaq 0x30(%rsp), %r9
movl $0xf, %edi
cmpq %r9, %rsi
je 0x9bee1
movq 0x30(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x9c26f
leaq 0x40(%rsp), %rdi
callq 0x60b0
jmp 0x9c27d
movl %ecx, %edx
xorl $0x3, %edx
orl %eax, %edx
jne 0x9c125
testb %r12b, %r12b
je 0x9c05b
movl 0x64(%rsp), %eax
cmpq $0xa, %rax
ja 0x9d6a8
leaq 0x23d80(%rip), %rcx     # 0xbfca4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
cmpb $0x1, 0x7dc(%r14)
movq 0x68(%rsp), %rbp
jne 0x9d6ad
leaq 0x50(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x26d9a(%rip), %rsi     # 0xc2cea
leaq 0x26d96(%rip), %rdx     # 0xc2ced
leaq 0x40(%rsp), %rdi
callq 0x7be0
movl 0x64(%rsp), %edx
leaq 0x20(%rsp), %rdi
movq %r14, %rsi
callq 0x9dc94
movq %rsp, %rdi
leaq 0x40(%rsp), %rsi
leaq 0x20(%rsp), %rdx
callq 0xa34a4
leaq 0x26e72(%rip), %rdx     # 0xc2dfd
movq %rsp, %rsi
movq %rbp, %rdi
callq 0xa33f7
jmp 0x9c313
movq %rbx, %r13
movl 0x8(%r15), %esi
movq %r14, %rdi
movl %ebp, %edx
xorl %ecx, %ecx
callq 0x9e0bc
cmpl $-0x1, %eax
je 0x9c039
movl %eax, %ebx
leaq 0x50(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x26d48(%rip), %rsi     # 0xc2d11
leaq 0x26d4e(%rip), %rdx     # 0xc2d1e
leaq 0x40(%rsp), %rdi
callq 0x7be0
movl $0x1, %eax
cmpl $0xa, %ebx
movq 0x68(%rsp), %rbp
jb 0x9c6ee
movl $0x4, %eax
movl $0xd1b71759, %ecx       # imm = 0xD1B71759
movl %ebx, %edx
cmpl $0x63, %edx
jbe 0x9c6e7
cmpl $0x3e7, %edx            # imm = 0x3E7
jbe 0x9c6ec
cmpl $0x2710, %edx           # imm = 0x2710
jb 0x9c6ee
movl %edx, %esi
imulq %rcx, %rsi
shrq $0x2d, %rsi
addl $0x4, %eax
cmpl $0x1869f, %edx          # imm = 0x1869F
movl %esi, %edx
ja 0x9bff9
addl $-0x3, %eax
jmp 0x9c6ee
movq 0xf8(%rsp), %rax
movl 0xb8(%rax), %eax
movl 0x64(%r15), %ecx
movl %ecx, %edx
xorl $0x3, %edx
orl %eax, %edx
movq %r13, %rbx
jne 0x9c125
movq %rbx, %r13
movl 0x8(%r15), %esi
leaq 0xd8(%rsp), %rcx
movq %r14, %rdi
movl %ebp, %edx
callq 0x9e0bc
cmpl $-0x1, %eax
je 0x9c110
movl %eax, %ebx
cmpl $-0x1, 0xd8(%rsp)
je 0x9c35c
leaq 0x80(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x26ca5(%rip), %rsi     # 0xc2d45
leaq 0x26caa(%rip), %rdx     # 0xc2d51
leaq 0x70(%rsp), %rdi
callq 0x7be0
movq 0x68(%rsp), %rbp
movl $0x1, %eax
cmpl $0xa, %ebx
jb 0x9c7d0
movl $0x4, %eax
movl $0xd1b71759, %ecx       # imm = 0xD1B71759
movl %ebx, %edx
cmpl $0x63, %edx
jbe 0x9c7c9
cmpl $0x3e7, %edx            # imm = 0x3E7
jbe 0x9c7ce
cmpl $0x2710, %edx           # imm = 0x2710
jb 0x9c7d0
movl %edx, %esi
imulq %rcx, %rsi
shrq $0x2d, %rsi
addl $0x4, %eax
cmpl $0x1869f, %edx          # imm = 0x1869F
movl %esi, %edx
ja 0x9c0d0
addl $-0x3, %eax
jmp 0x9c7d0
movq 0xf8(%rsp), %rax
movl 0xb8(%rax), %eax
movl 0x64(%r15), %ecx
movq %r13, %rbx
movl %eax, %edx
xorl $0x4, %edx
movl %ecx, %esi
xorl $0x1, %esi
orl %edx, %esi
jne 0x9d429
leaq 0x10(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x18768(%rip), %rdx     # 0xb48af
movq %rsp, %rdi
movq %rdx, %rsi
callq 0x7be0
testb %r12b, %r12b
je 0x9c1b4
movl 0x64(%rsp), %edx
cmpl $0x14, %edx
ja 0x9d28c
movl $0x178200, %eax         # imm = 0x178200
btl %edx, %eax
jae 0x9d28c
movq %rbx, %r13
leaq 0x40(%rsp), %rdi
movq %r14, %rsi
callq 0x9dc94
movq %rsp, %rdi
leaq 0x40(%rsp), %rbx
movq %rbx, %rsi
callq 0x6310
movq (%rbx), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x9c1ac
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x6260
movq %r13, %rbx
jmp 0x9d28c
movl 0x8(%r15), %esi
leaq 0xd4(%rsp), %rcx
movq %r14, %rdi
movl %ebp, %edx
callq 0x9e0bc
cmpl $-0x1, %eax
je 0x9d28c
movl %eax, %r13d
cmpl $-0x1, 0xd4(%rsp)
movq %rbx, 0x120(%rsp)
je 0x9c451
leaq 0xc0(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x26b49(%rip), %rsi     # 0xc2d48
leaq 0x26b4b(%rip), %rdx     # 0xc2d51
leaq 0xb0(%rsp), %rdi
callq 0x7be0
movl $0x1, %eax
cmpl $0xa, %r13d
jb 0x9cca9
movl %r13d, %edx
movl $0x4, %eax
movl $0xd1b71759, %ecx       # imm = 0xD1B71759
cmpl $0x63, %edx
jbe 0x9cca2
cmpl $0x3e7, %edx            # imm = 0x3E7
jbe 0x9cca7
cmpl $0x2710, %edx           # imm = 0x2710
jb 0x9cca9
movl %edx, %esi
imulq %rcx, %rsi
shrq $0x2d, %rsi
addl $0x4, %eax
cmpl $0x1869f, %edx          # imm = 0x1869F
movl %esi, %edx
ja 0x9c22f
addl $-0x3, %eax
jmp 0x9cca9
leaq 0x20(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x62c0
leaq 0x10(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x9c2a0
movq %rsi, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0x9c2a6
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x8(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x26b33(%rip), %rsi     # 0xc2dfd
movq %rsp, %rdi
callq 0x64e0
leaq 0x10(%rbp), %rdx
movq %rdx, (%rbp)
movq (%rax), %rsi
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rsi
je 0x9c2f6
movq %rsi, (%rbp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rbp)
jmp 0x9c2fc
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9c32e
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6260
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9c349
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x6260
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
jne 0x9cc90
jmp 0x9d6c7
leaq 0x50(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x269d9(%rip), %rsi     # 0xc2d45
leaq 0x269de(%rip), %rdx     # 0xc2d51
leaq 0x40(%rsp), %rdi
callq 0x7be0
movq 0x68(%rsp), %rbp
movl $0x1, %eax
cmpl $0xa, %ebx
jb 0x9cb39
movl $0x4, %eax
movl $0xd1b71759, %ecx       # imm = 0xD1B71759
movl %ebx, %edx
cmpl $0x63, %edx
jbe 0x9cb32
cmpl $0x3e7, %edx            # imm = 0x3E7
jbe 0x9cb37
cmpl $0x2710, %edx           # imm = 0x2710
jb 0x9cb39
movl %edx, %esi
imulq %rcx, %rsi
shrq $0x2d, %rsi
addl $0x4, %eax
cmpl $0x1869f, %edx          # imm = 0x1869F
movl %esi, %edx
ja 0x9c39c
addl $-0x3, %eax
jmp 0x9cb39
cmpl $0x114a, %eax           # imm = 0x114A
movq 0x68(%rsp), %rbp
jne 0x9d6ad
movl $0x10, %edi
callq 0x6140
movq %rax, %r14
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x268e5(%rip), %rsi     # 0xc2cee
leaq 0x26900(%rip), %rdx     # 0xc2d10
movq %rsp, %rdi
callq 0x7be0
movb $0x1, %bpl
movq %rsp, %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x5f99b(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x5f973(%rip), %rsi     # 0xfbdb0
movq 0x60b94(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x9d86e
leaq 0x80(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x268e4(%rip), %rsi     # 0xc2d48
leaq 0x268e6(%rip), %rdx     # 0xc2d51
leaq 0x70(%rsp), %rdi
callq 0x7be0
movl $0x1, %eax
cmpl $0xa, %r13d
jb 0x9d0b2
movl %r13d, %edx
movl $0x4, %eax
movl $0xd1b71759, %ecx       # imm = 0xD1B71759
cmpl $0x63, %edx
jbe 0x9d0ab
cmpl $0x3e7, %edx            # imm = 0x3E7
jbe 0x9d0b0
cmpl $0x2710, %edx           # imm = 0x2710
jb 0x9d0b2
movl %edx, %esi
imulq %rcx, %rsi
shrq $0x2d, %rsi
addl $0x4, %eax
cmpl $0x1869f, %edx          # imm = 0x1869F
movl %esi, %edx
ja 0x9c491
addl $-0x3, %eax
jmp 0x9d0b2
cmpl $0x4e1f, 0x7d0(%r14) # imm = 0x4E1F
jbe 0x9d80e
leaq 0x30(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x267f8(%rip), %rsi     # 0xc2cea
leaq 0x267f4(%rip), %rdx     # 0xc2ced
leaq 0x20(%rsp), %rdi
callq 0x7be0
movq 0x68(%rsp), %rbp
movl 0x64(%rsp), %edx
leaq 0x70(%rsp), %rdi
movq %r14, %rsi
callq 0x9dc94
movq 0x20(%rsp), %rcx
movq 0x28(%rsp), %r8
movq 0x78(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %r15, %rcx
je 0x9c53b
movq 0x30(%rsp), %rdi
movq 0x70(%rsp), %rsi
cmpq %rdi, %rax
jbe 0x9c564
leaq 0x80(%rsp), %r9
movl $0xf, %edi
cmpq %r9, %rsi
je 0x9c55f
movq 0x80(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x9c570
leaq 0x20(%rsp), %rdi
callq 0x60b0
jmp 0x9c57e
leaq 0x70(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x62c0
leaq 0x50(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x9c5a2
movq %rsi, 0x40(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x50(%rsp)
jmp 0x9c5a8
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x48(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x26831(%rip), %rsi     # 0xc2dfd
leaq 0x40(%rsp), %rdi
callq 0x64e0
leaq 0x10(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x9c5fc
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0x9c603
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
movq %rsp, %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x20(%rbx), %rax
cmpq 0x28(%rbx), %rax
leaq 0x18283(%rip), %rax     # 0xb48af
leaq 0x1827b(%rip), %rsi     # 0xb48ae
cmoveq %rax, %rsi
callq 0x64e0
leaq 0x10(%rbp), %rdx
movq %rdx, (%rbp)
movq (%rax), %rsi
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rsi
je 0x9c660
movq %rsi, (%rbp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rbp)
jmp 0x9c666
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x9c693
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6260
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9c6ae
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x6260
leaq 0x80(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9c6cf
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x6260
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0x9d6c7
movq 0x30(%rsp), %rsi
jmp 0x9cc95
addl $-0x2, %eax
jmp 0x9c6ee
decl %eax
movl %eax, %esi
leaq 0x30(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x20(%rsp), %rdi
xorl %edx, %edx
callq 0x62f0
movq 0x20(%rsp), %rdi
movl 0x28(%rsp), %esi
movl %ebx, %edx
callq 0x20b57
movq 0x40(%rsp), %rcx
movq 0x48(%rsp), %r8
movq 0x28(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %r14, %rcx
je 0x9c737
movq 0x50(%rsp), %rdi
movq 0x20(%rsp), %rsi
cmpq %rdi, %rax
jbe 0x9c755
movl $0xf, %edi
cmpq %r15, %rsi
je 0x9c750
movq 0x30(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x9c761
leaq 0x40(%rsp), %rdi
callq 0x60b0
jmp 0x9c76f
leaq 0x20(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x62c0
leaq 0x10(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x9c792
movq %rsi, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0x9c798
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x8(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x26563(%rip), %rsi     # 0xc2d1f
movq %rsp, %rdi
callq 0x64e0
jmp 0x9cc0f
addl $-0x2, %eax
jmp 0x9c7d0
decl %eax
movl %eax, %esi
leaq 0xa0(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x90(%rsp), %rdi
xorl %edx, %edx
callq 0x62f0
movq 0x90(%rsp), %rdi
movl 0x98(%rsp), %esi
movl %ebx, %edx
callq 0x20b57
movq 0x70(%rsp), %rcx
movq 0x78(%rsp), %r8
movq 0x98(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %r14, %rcx
je 0x9c82b
movq 0x80(%rsp), %rdi
movq 0x90(%rsp), %rsi
cmpq %rdi, %rax
jbe 0x9c84f
movl $0xf, %edi
cmpq %r15, %rsi
je 0x9c84a
movq 0xa0(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x9c85b
leaq 0x70(%rsp), %rdi
callq 0x60b0
jmp 0x9c86c
leaq 0x90(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x62c0
leaq 0x30(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x9c890
movq %rsi, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0x9c896
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x28(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x216fd(%rip), %rsi     # 0xbdfb7
leaq 0x20(%rsp), %rdi
callq 0x64e0
leaq 0x50(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x9c8ec
movq %rdx, 0x40(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x50(%rsp)
jmp 0x9c8f4
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, 0x48(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl 0xd8(%rsp), %ebx
movl $0x1, %eax
cmpl $0xa, %ebx
jb 0x9c961
movl $0x4, %eax
movl $0xd1b71759, %ecx       # imm = 0xD1B71759
movl %ebx, %edx
cmpl $0x63, %edx
jbe 0x9c95a
cmpl $0x3e7, %edx            # imm = 0x3E7
jbe 0x9c95f
cmpl $0x2710, %edx           # imm = 0x2710
jb 0x9c961
movl %edx, %esi
imulq %rcx, %rsi
shrq $0x2d, %rsi
addl $0x4, %eax
cmpl $0x1869f, %edx          # imm = 0x1869F
movl %esi, %edx
ja 0x9c929
addl $-0x3, %eax
jmp 0x9c961
addl $-0x2, %eax
jmp 0x9c961
decl %eax
movl %eax, %esi
leaq 0xc0(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xb0(%rsp), %rdi
xorl %edx, %edx
callq 0x62f0
movq 0xb0(%rsp), %rdi
movl 0xb8(%rsp), %esi
movl %ebx, %edx
callq 0x20b57
movq 0x40(%rsp), %rcx
movq 0x48(%rsp), %r8
movq 0xb8(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %r12, %rcx
je 0x9c9b9
movq 0x50(%rsp), %rdi
movq 0xb0(%rsp), %rsi
cmpq %rdi, %rax
jbe 0x9c9dd
movl $0xf, %edi
cmpq %r13, %rsi
je 0x9c9d8
movq 0xc0(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x9c9e9
leaq 0x40(%rsp), %rdi
callq 0x60b0
jmp 0x9c9fa
leaq 0xb0(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x62c0
leaq 0x10(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x9ca1d
movq %rsi, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0x9ca23
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x8(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x262d8(%rip), %rsi     # 0xc2d1f
movq %rsp, %rdi
callq 0x64e0
leaq 0x10(%rbp), %rdx
movq %rdx, (%rbp)
movq (%rax), %rsi
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rsi
je 0x9ca73
movq %rsi, (%rbp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rbp)
jmp 0x9ca79
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9caab
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6260
movq 0xb0(%rsp), %rdi
cmpq %r13, %rdi
je 0x9cac8
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x6260
movq 0x40(%rsp), %rdi
cmpq %r12, %rdi
je 0x9cadf
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x6260
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9cafa
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x6260
movq 0x90(%rsp), %rdi
cmpq %r15, %rdi
je 0x9cb17
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x6260
movq 0x70(%rsp), %rdi
cmpq %r14, %rdi
je 0x9d6c7
movq 0x80(%rsp), %rsi
jmp 0x9cc95
addl $-0x2, %eax
jmp 0x9cb39
decl %eax
movl %eax, %esi
leaq 0x30(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x20(%rsp), %rdi
xorl %edx, %edx
callq 0x62f0
movq 0x20(%rsp), %rdi
movl 0x28(%rsp), %esi
movl %ebx, %edx
callq 0x20b57
movq 0x40(%rsp), %rcx
movq 0x48(%rsp), %r8
movq 0x28(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %r14, %rcx
je 0x9cb82
movq 0x50(%rsp), %rdi
movq 0x20(%rsp), %rsi
cmpq %rdi, %rax
jbe 0x9cba0
movl $0xf, %edi
cmpq %r15, %rsi
je 0x9cb9b
movq 0x30(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x9cbac
leaq 0x40(%rsp), %rdi
callq 0x60b0
jmp 0x9cbba
leaq 0x20(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x62c0
leaq 0x10(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x9cbdd
movq %rsi, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0x9cbe3
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x8(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x26118(%rip), %rsi     # 0xc2d1f
movq %rsp, %rdi
callq 0x64e0
leaq 0x10(%rbp), %rdx
movq %rdx, (%rbp)
movq (%rax), %rsi
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rsi
je 0x9cc33
movq %rsi, (%rbp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rbp)
jmp 0x9cc39
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9cc6b
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6260
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0x9cc82
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x6260
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x9d6c7
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9d6c7
addl $-0x2, %eax
jmp 0x9cca9
decl %eax
movl %eax, %esi
leaq 0xe8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0xd8(%rsp), %rdi
xorl %edx, %edx
callq 0x62f0
movq 0xd8(%rsp), %rdi
movl 0xe0(%rsp), %esi
movl %r13d, %edx
callq 0x20b57
movq 0xb0(%rsp), %rcx
movq 0xb8(%rsp), %r8
movq 0xe0(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
leaq 0xc0(%rsp), %rsi
cmpq %rsi, %rcx
je 0x9cd13
movq 0xc0(%rsp), %rdi
movq 0xd8(%rsp), %rsi
cmpq %rdi, %rax
jbe 0x9cd3f
movl $0xf, %edi
leaq 0xe8(%rsp), %r9
cmpq %r9, %rsi
je 0x9cd3a
movq 0xe8(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x9cd4e
leaq 0xb0(%rsp), %rdi
callq 0x60b0
jmp 0x9cd5f
leaq 0xd8(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x62c0
leaq 0xa0(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x9cd8c
movq %rsi, 0x90(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xa0(%rsp)
jmp 0x9cd92
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x98(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x211fe(%rip), %rsi     # 0xbdfb7
leaq 0x90(%rsp), %rdi
callq 0x64e0
leaq 0x80(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x9cdf3
movq %rdx, 0x70(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x80(%rsp)
jmp 0x9cdf9
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x78(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl 0xd4(%rsp), %ebx
movl $0x1, %eax
cmpl $0xa, %ebx
jb 0x9ce66
movl $0x4, %eax
movl $0xd1b71759, %ecx       # imm = 0xD1B71759
movl %ebx, %edx
cmpl $0x63, %edx
jbe 0x9ce5f
cmpl $0x3e7, %edx            # imm = 0x3E7
jbe 0x9ce64
cmpl $0x2710, %edx           # imm = 0x2710
jb 0x9ce66
movl %edx, %esi
imulq %rcx, %rsi
shrq $0x2d, %rsi
addl $0x4, %eax
cmpl $0x1869f, %edx          # imm = 0x1869F
movl %esi, %edx
ja 0x9ce2e
addl $-0x3, %eax
jmp 0x9ce66
addl $-0x2, %eax
jmp 0x9ce66
decl %eax
movl %eax, %esi
leaq 0x110(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x100(%rsp), %rdi
xorl %edx, %edx
callq 0x62f0
movq 0x100(%rsp), %rdi
movl 0x108(%rsp), %esi
movl %ebx, %edx
callq 0x20b57
movq 0x70(%rsp), %rcx
movq 0x78(%rsp), %r8
movq 0x108(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
leaq 0x80(%rsp), %rsi
cmpq %rsi, %rcx
je 0x9cec9
movq 0x80(%rsp), %rdi
movq 0x100(%rsp), %rsi
cmpq %rdi, %rax
jbe 0x9cef5
movl $0xf, %edi
leaq 0x110(%rsp), %r9
cmpq %r9, %rsi
je 0x9cef0
movq 0x110(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x9cf01
leaq 0x70(%rsp), %rdi
callq 0x60b0
jmp 0x9cf12
leaq 0x100(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x62c0
leaq 0x30(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x9cf36
movq %rsi, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0x9cf3c
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x28(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x1dab5(%rip), %rsi     # 0xbaa15
leaq 0x20(%rsp), %rdi
callq 0x64e0
leaq 0x50(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x9cf91
movq %rdx, 0x40(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x50(%rsp)
jmp 0x9cf99
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
leaq 0x40(%rsp), %rbx
movq %rdx, 0x8(%rbx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %rsp, %rdi
movq %rbx, %rsi
callq 0x6310
movq (%rbx), %rdi
cmpq %r13, %rdi
je 0x9cfd5
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x6260
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
movq 0x120(%rsp), %rbx
je 0x9cff8
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x6260
movq 0x100(%rsp), %rdi
leaq 0x110(%rsp), %rax
cmpq %rax, %rdi
je 0x9d01d
movq 0x110(%rsp), %rsi
incq %rsi
callq 0x6260
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x9d03f
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x6260
leaq 0xa0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
leaq 0xc0(%rsp), %r13
je 0x9d068
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x6260
movq 0xd8(%rsp), %rdi
leaq 0xe8(%rsp), %rax
cmpq %rax, %rdi
je 0x9d08d
movq 0xe8(%rsp), %rsi
incq %rsi
callq 0x6260
movq 0xb0(%rsp), %rdi
cmpq %r13, %rdi
je 0x9d28c
movq 0xc0(%rsp), %rsi
jmp 0x9d284
addl $-0x2, %eax
jmp 0x9d0b2
decl %eax
movl %eax, %esi
leaq 0xa0(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x90(%rsp), %rdi
xorl %edx, %edx
callq 0x62f0
movq 0x90(%rsp), %rdi
movl 0x98(%rsp), %esi
movl %r13d, %edx
callq 0x20b57
movq 0x70(%rsp), %rcx
movq 0x78(%rsp), %r8
movq 0x98(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
leaq 0x80(%rsp), %r13
cmpq %r13, %rcx
je 0x9d116
movq 0x80(%rsp), %rdi
movq 0x90(%rsp), %rsi
cmpq %rdi, %rax
jbe 0x9d142
movl $0xf, %edi
leaq 0xa0(%rsp), %r9
cmpq %r9, %rsi
je 0x9d13d
movq 0xa0(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x9d14e
leaq 0x70(%rsp), %rdi
callq 0x60b0
jmp 0x9d15f
leaq 0x90(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x62c0
leaq 0x30(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x9d183
movq %rsi, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0x9d189
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x28(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x1d868(%rip), %rsi     # 0xbaa15
leaq 0x20(%rsp), %rdi
callq 0x64e0
leaq 0x50(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x9d1de
movq %rdx, 0x40(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x50(%rsp)
jmp 0x9d1e6
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
leaq 0x40(%rsp), %rbx
movq %rdx, 0x8(%rbx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %rsp, %rdi
movq %rbx, %rsi
callq 0x6310
movq (%rbx), %rdi
cmpq %r13, %rdi
je 0x9d222
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x6260
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
movq 0x120(%rsp), %rbx
leaq 0x80(%rsp), %r13
je 0x9d24d
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x6260
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x9d272
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x6260
movq 0x70(%rsp), %rdi
cmpq %r13, %rdi
je 0x9d28c
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x6260
movl 0xc(%rbx), %eax
andl $-0x4, %eax
cmpl $0x4, %eax
je 0x9d39f
cmpl $0xf, 0x64(%rsp)
sete %al
testb %al, %r12b
jne 0x9d39f
movl 0x8(%r15), %esi
movq %r14, %rdi
movl %ebp, %edx
movl $0xe, %ecx
callq 0x1406a
testb %al, %al
je 0x9d2ea
leaq 0x1a5d1(%rip), %rbx     # 0xb789b
cmpq $0x0, 0x8(%rsp)
je 0x9d394
leaq 0x1cdce(%rip), %rsi     # 0xba0ab
movq %rsp, %rdi
callq 0x64e0
jmp 0x9d394
movl 0x8(%r15), %esi
movq %r14, %rdi
movl %ebp, %edx
movl $0x10, %ecx
callq 0x1406a
testb %al, %al
je 0x9d33b
cmpq $0x0, 0x8(%rsp)
je 0x9d318
leaq 0x1cd9b(%rip), %rsi     # 0xba0ab
movq %rsp, %rdi
callq 0x64e0
movl 0x8(%r15), %esi
movq %r14, %rdi
movl %ebp, %edx
movl $0xd, %ecx
callq 0x1406a
leaq 0x25a20(%rip), %rcx     # 0xc2d52
leaq 0x25a31(%rip), %rbx     # 0xc2d6a
jmp 0x9d38e
movl 0x8(%r15), %esi
movq %r14, %rdi
movl %ebp, %edx
movl $0x11, %ecx
callq 0x1406a
testb %al, %al
je 0x9d7cc
cmpq $0x0, 0x8(%rsp)
je 0x9d36d
leaq 0x1cd46(%rip), %rsi     # 0xba0ab
movq %rsp, %rdi
callq 0x64e0
movl 0x8(%r15), %esi
movq %r14, %rdi
movl %ebp, %edx
movl $0xd, %ecx
callq 0x1406a
leaq 0x259f8(%rip), %rcx     # 0xc2d7f
leaq 0x25a07(%rip), %rbx     # 0xc2d95
testb %al, %al
cmovneq %rcx, %rbx
movq %rsp, %rdi
movq %rbx, %rsi
callq 0x64e0
cmpq $0x0, 0x8(%rsp)
je 0x9d3fc
leaq 0x2593c(%rip), %rsi     # 0xc2cea
leaq 0x40(%rsp), %rdi
movq %rsp, %rdx
callq 0x7a29a
leaq 0x25a3b(%rip), %rsi     # 0xc2dfd
leaq 0x40(%rsp), %rdi
callq 0x64e0
movq 0x68(%rsp), %rbp
leaq 0x10(%rbp), %rdx
movq %rdx, (%rbp)
movq (%rax), %rsi
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rsi
je 0x9d61d
movq %rsi, (%rbp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rbp)
jmp 0x9d623
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x9d417
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6260
movq 0xf8(%rsp), %rax
movl 0xb8(%rax), %eax
movl 0x64(%r15), %ecx
cmpl $0x4, %eax
jne 0x9d4e3
cmpl $0x3, %ecx
jne 0x9d4e3
testb %r12b, %r12b
je 0x9d59f
movl 0x64(%rsp), %eax
orl $0x2, %eax
cmpl $0x16, %eax
jne 0x9d6a8
leaq 0x50(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x25886(%rip), %rsi     # 0xc2cea
leaq 0x25882(%rip), %rdx     # 0xc2ced
leaq 0x40(%rsp), %rdi
callq 0x7be0
movq 0x68(%rsp), %rbp
movl 0x64(%rsp), %edx
leaq 0x20(%rsp), %rdi
movq %r14, %rsi
callq 0x9dc94
movq 0x40(%rsp), %rcx
movq 0x48(%rsp), %r8
movq 0x28(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %r15, %rcx
je 0x9d4ad
movq 0x50(%rsp), %rdi
movq 0x20(%rsp), %rsi
cmpq %rdi, %rax
jbe 0x9d4d4
leaq 0x30(%rsp), %r9
movl $0xf, %edi
cmpq %r9, %rsi
je 0x9d4cb
movq 0x30(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x9d764
leaq 0x40(%rsp), %rdi
callq 0x60b0
jmp 0x9d772
xorl $0x5, %eax
xorl $0x1, %ecx
orl %eax, %ecx
sete %al
andb %al, %r12b
cmpb $0x1, %r12b
jne 0x9d6a8
movl 0x64(%rsp), %eax
leal -0x1a(%rax), %ecx
cmpl $0x4, %ecx
movq 0x68(%rsp), %rbp
jb 0x9d515
cmpl $0x18, %eax
jne 0x9d6ad
leaq 0x50(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x257c5(%rip), %rsi     # 0xc2cea
leaq 0x257c1(%rip), %rdx     # 0xc2ced
leaq 0x40(%rsp), %rdi
callq 0x7be0
movl 0x64(%rsp), %edx
leaq 0x20(%rsp), %rdi
movq %r14, %rsi
callq 0x9dc94
movq 0x40(%rsp), %rcx
movq 0x48(%rsp), %r8
movq 0x28(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %r15, %rcx
je 0x9d569
movq 0x50(%rsp), %rdi
movq 0x20(%rsp), %rsi
cmpq %rdi, %rax
jbe 0x9d590
leaq 0x30(%rsp), %r9
movl $0xf, %edi
cmpq %r9, %rsi
je 0x9d587
movq 0x30(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x9d6fc
leaq 0x40(%rsp), %rdi
callq 0x60b0
jmp 0x9d70a
movl 0x8(%r15), %esi
movq %r14, %rdi
movl %ebp, %edx
xorl %ecx, %ecx
callq 0x9e0bc
movl %eax, %ebx
movl %eax, (%rsp)
movl 0x8(%r15), %esi
movq %r14, %rdi
movl %ebp, %edx
movl $0x20, %ecx
callq 0x1406a
cmpl $-0x1, %ebx
je 0x9d66d
testb %al, %al
je 0x9d6dc
movl 0x8(%r15), %esi
movq %r14, %rdi
movl %ebp, %edx
movl $0x20, %ecx
callq 0x14cde
leaq 0x40(%rsp), %r8
movl %eax, (%r8)
leaq 0x257c4(%rip), %rsi     # 0xc2dbe
leaq 0x257c7(%rip), %rcx     # 0xc2dc8
leaq 0x25717(%rip), %r9      # 0xc2d1f
movq %rsp, %rdx
movq 0x68(%rsp), %rbp
movq %rbp, %rdi
callq 0xa66d9
jmp 0x9d6c7
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9d655
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x6260
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x9d6c7
movq 0x10(%rsp), %rsi
jmp 0x9cc95
testb %al, %al
je 0x9d6a8
movl 0x8(%r15), %esi
movq %r14, %rdi
movl %ebp, %edx
movl $0x20, %ecx
callq 0x14cde
leaq 0x40(%rsp), %rdx
movl %eax, (%rdx)
leaq 0x25740(%rip), %rsi     # 0xc2dd2
leaq 0x25686(%rip), %rcx     # 0xc2d1f
movq 0x68(%rsp), %rbp
movq %rbp, %rdi
callq 0xa6829
jmp 0x9d6c7
movq 0x68(%rsp), %rbp
leaq 0x10(%rbp), %rax
movq %rax, (%rbp)
leaq 0x171f3(%rip), %rdx     # 0xb48af
movq %rbp, %rdi
movq %rdx, %rsi
callq 0x7be0
movq %rbp, %rax
addq $0x128, %rsp            # imm = 0x128
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x256db(%rip), %rsi     # 0xc2dbe
leaq 0x25635(%rip), %rcx     # 0xc2d1f
movq %rsp, %rdx
movq 0x68(%rsp), %rbp
movq %rbp, %rdi
callq 0xa678d
jmp 0x9d6c7
leaq 0x20(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x62c0
leaq 0x10(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x9d72d
movq %rsi, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0x9d733
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x8(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x256a6(%rip), %rsi     # 0xc2dfd
movq %rsp, %rdi
callq 0x64e0
jmp 0x9c2d2
leaq 0x20(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x62c0
leaq 0x10(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x9d795
movq %rsi, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0x9d79b
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x8(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x2563e(%rip), %rsi     # 0xc2dfd
movq %rsp, %rdi
callq 0x64e0
jmp 0x9c2d2
movl 0x8(%r15), %esi
movq %r14, %rdi
movl %ebp, %edx
movl $0xd, %ecx
callq 0x1406a
testb %al, %al
je 0x9d39f
leaq 0x255ba(%rip), %rbx     # 0xc2da8
cmpq $0x0, 0x8(%rsp)
je 0x9d394
leaq 0x1c8aa(%rip), %rsi     # 0xba0ab
movq %rsp, %rdi
callq 0x64e0
jmp 0x9d394
movl $0x10, %edi
callq 0x6140
movq %rax, %r14
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x254f8(%rip), %rsi     # 0xc2d23
leaq 0x25512(%rip), %rdx     # 0xc2d44
movq %rsp, %rdi
callq 0x7be0
movb $0x1, %bpl
movq %rsp, %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x5e579(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x5e551(%rip), %rsi     # 0xfbdb0
movq 0x5f772(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x9dc2d
jmp 0x9dc4d
jmp 0x9dc6d
jmp 0x9d886
jmp 0x9d8a9
jmp 0x9dc89
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x9d89f
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6260
testb %bpl, %bpl
jne 0x9d8ac
jmp 0x9dc8c
movq %rax, %rbx
movq %r14, %rdi
callq 0x6200
jmp 0x9dc8c
movq %rax, %rbx
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9d8dc
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9d8dc
movq %rax, %rbx
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x9d906
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9d906
movq %rax, %rbx
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x9dc16
movq 0x80(%rsp), %rsi
jmp 0x9dbba
jmp 0x9dc13
movq %rax, %rbx
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9d951
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9d951
movq %rax, %rbx
movq 0x100(%rsp), %rdi
leaq 0x110(%rsp), %rax
cmpq %rax, %rdi
je 0x9d97b
movq 0x110(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9d97b
movq %rax, %rbx
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x9d9a2
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9d9a2
movq %rax, %rbx
leaq 0xa0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9d9c8
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9d9c8
movq %rax, %rbx
movq 0xd8(%rsp), %rdi
leaq 0xe8(%rsp), %rax
cmpq %rax, %rdi
je 0x9d9f2
movq 0xe8(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9d9f2
movq %rax, %rbx
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x9dc16
movq 0xc0(%rsp), %rsi
jmp 0x9dbba
jmp 0x9dc13
jmp 0x9dbc6
jmp 0x9dbe6
jmp 0x9dc02
jmp 0x9dc89
jmp 0x9dc2d
jmp 0x9dc4d
jmp 0x9dc6d
jmp 0x9dc89
jmp 0x9dc2d
jmp 0x9dc4d
jmp 0x9dc6d
jmp 0x9dc89
movq %rax, %rbx
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9da7c
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9da7c
movq %rax, %rbx
movq 0xb0(%rsp), %rdi
cmpq %r13, %rdi
je 0x9da9e
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9da9e
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r12, %rdi
je 0x9daba
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9daba
movq %rax, %rbx
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9dada
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9dada
movq %rax, %rbx
movq 0x90(%rsp), %rdi
cmpq %r15, %rdi
je 0x9dafc
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9dafc
movq %rax, %rbx
movq 0x70(%rsp), %rdi
cmpq %r14, %rdi
je 0x9dc8c
movq 0x80(%rsp), %rsi
jmp 0x9dc7f
jmp 0x9dc89
jmp 0x9dc13
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x9db3f
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9db3f
movq %rax, %rbx
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9db5f
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9db5f
movq %rax, %rbx
leaq 0x80(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9db85
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9db85
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0x9dc8c
movq 0x30(%rsp), %rsi
jmp 0x9dc7f
jmp 0x9dc89
jmp 0x9dc13
movq %rax, %rbx
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9dc16
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9dc16
jmp 0x9dc13
movq %rax, %rbx
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9dbe9
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9dbe9
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0x9dc05
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9dc05
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
jne 0x9dc7a
jmp 0x9dc8c
jmp 0x9dc89
movq %rax, %rbx
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x9dc8c
movq 0x10(%rsp), %rsi
jmp 0x9dc7f
jmp 0x9dc89
movq %rax, %rbx
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9dc50
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9dc50
movq %rax, %rbx
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9dc70
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9dc70
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0x9dc8c
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9dc8c
movq %rax, %rbx
movq %rbx, %rdi
callq 0x64a0