// File: /workspace/github_cpp_makefile_star2_O1/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, 0x70(%rsp)
movq %rsi, %rdi
callq 0x16254
movq %rax, %r13
movl %ebp, %eax
movq 0x68(%r15), %rcx
movl (%rcx,%rax,4), %esi
movq %r14, %rdi
callq 0xa426
movq %rax, 0x120(%rsp)
leaq 0x6c(%rsp), %rcx
movq %r14, %rdi
movq %r15, %rsi
movl %ebp, %edx
callq 0x13472
movl %eax, %r12d
cmpl $0x0, 0xb8(%r13)
jne 0x9cc77
cmpl $0x1, 0x64(%r15)
jne 0x9cc77
testb %r12b, %r12b
je 0x9cbdc
movl 0x6c(%rsp), %eax
cmpq $0x2b, %rax
ja 0x9cb3d
movabsq $0xc0000000060, %rcx    # imm = 0xC0000000060
btq %rax, %rcx
jb 0x9cb4c
leal -0x1148(%rax), %ecx
cmpl $0x2, %ecx
jae 0x9d00b
leaq 0x58(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x271be(%rip), %rsi     # 0xc3d1a
leaq 0x271ba(%rip), %rdx     # 0xc3d1d
leaq 0x48(%rsp), %rdi
callq 0x7c64
movq 0x70(%rsp), %rbp
movl 0x6c(%rsp), %edx
leaq 0x28(%rsp), %rdi
movq %r14, %rsi
callq 0x9eaa8
movq 0x48(%rsp), %rcx
movq 0x50(%rsp), %r8
movq 0x30(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
cmpq %r15, %rcx
je 0x9cba5
movq 0x58(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x9cbc8
leaq 0x38(%rsp), %rdi
movl $0xf, %esi
cmpq %rdi, -0x10(%rdi)
je 0x9cbbf
movq 0x38(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x9cf1b
movq 0x28(%rsp), %rsi
leaq 0x48(%rsp), %rdi
callq 0x60b0
jmp 0x9cf29
movl 0x8(%r15), %esi
movq %r14, %rdi
movl %ebp, %edx
xorl %ecx, %ecx
callq 0x9eed2
cmpl $-0x1, %eax
je 0x9cc77
movl %eax, %ebx
leaq 0x58(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2713a(%rip), %rsi     # 0xc3d41
leaq 0x27140(%rip), %rdx     # 0xc3d4e
leaq 0x48(%rsp), %rdi
callq 0x7c64
movl $0x1, %eax
cmpl $0xa, %ebx
movq 0x70(%rsp), %rbp
jb 0x9d3af
movl $0x4, %eax
movl $0xd1b71759, %ecx       # imm = 0xD1B71759
movl %ebx, %edx
cmpl $0x63, %edx
jbe 0x9d3a8
cmpl $0x3e7, %edx            # imm = 0x3E7
jbe 0x9d3ad
cmpl $0x2710, %edx           # imm = 0x2710
jb 0x9d3af
movl %edx, %esi
imulq %rcx, %rsi
shrq $0x2d, %rsi
addl $0x4, %eax
cmpl $0x1869f, %edx          # imm = 0x1869F
movl %esi, %edx
ja 0x9cc37
addl $-0x3, %eax
jmp 0x9d3af
cmpl $0x0, 0xb8(%r13)
jne 0x9cddb
cmpl $0x3, 0x64(%r15)
jne 0x9cddb
testb %r12b, %r12b
je 0x9cd29
movl 0x6c(%rsp), %eax
cmpq $0xa, %rax
ja 0x9e44f
leaq 0x23fe6(%rip), %rcx     # 0xc0c94
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movb 0x7dc(%r14), %bpl
cmpb $0x1, %bpl
jne 0x9d51d
leaq 0x58(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x27042(%rip), %rsi     # 0xc3d1a
leaq 0x2703e(%rip), %rdx     # 0xc3d1d
leaq 0x48(%rsp), %rdi
callq 0x7c64
movl 0x6c(%rsp), %edx
leaq 0x28(%rsp), %rdi
movq %r14, %rsi
callq 0x9eaa8
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rsi
leaq 0x28(%rsp), %rdx
callq 0xa43b0
leaq 0x27118(%rip), %rdx     # 0xc3e2d
leaq 0x8(%rsp), %rsi
movq 0x70(%rsp), %rdi
callq 0xa4303
jmp 0x9d538
movl 0x8(%r15), %esi
leaq 0xe0(%rsp), %rcx
movq %r14, %rdi
movl %ebp, %edx
callq 0x9eed2
cmpl $-0x1, %eax
je 0x9cddb
movl %eax, %ebx
cmpl $-0x1, 0xe0(%rsp)
je 0x9d084
leaq 0x88(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2700a(%rip), %rsi     # 0xc3d75
leaq 0x2700f(%rip), %rdx     # 0xc3d81
leaq 0x78(%rsp), %rdi
callq 0x7c64
movq 0x70(%rsp), %rbp
movl $0x1, %eax
cmpl $0xa, %ebx
jb 0x9d596
movl $0x4, %eax
movl $0xd1b71759, %ecx       # imm = 0xD1B71759
movl %ebx, %edx
cmpl $0x63, %edx
jbe 0x9d58f
cmpl $0x3e7, %edx            # imm = 0x3E7
jbe 0x9d594
cmpl $0x2710, %edx           # imm = 0x2710
jb 0x9d596
movl %edx, %esi
imulq %rcx, %rsi
shrq $0x2d, %rsi
addl $0x4, %eax
cmpl $0x1869f, %edx          # imm = 0x1869F
movl %esi, %edx
ja 0x9cd9b
addl $-0x3, %eax
jmp 0x9d596
cmpl $0x4, 0xb8(%r13)
jne 0x9e18a
cmpl $0x1, 0x64(%r15)
jne 0x9e18a
leaq 0x18(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x18aab(%rip), %rdx     # 0xb58af
leaq 0x8(%rsp), %rdi
movq %rdx, %rsi
callq 0x7c64
testb %r12b, %r12b
je 0x9ce6b
movl 0x6c(%rsp), %edx
cmpl $0x14, %edx
ja 0x9dfec
movl $0x178200, %eax         # imm = 0x178200
btl %edx, %eax
jae 0x9dfec
leaq 0x48(%rsp), %rdi
movq %r14, %rsi
callq 0x9eaa8
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rbx
movq %rbx, %rsi
callq 0x6310
movq (%rbx), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x9dfec
movq 0x58(%rsp), %rsi
jmp 0x9dfe4
movl 0x8(%r15), %esi
leaq 0xdc(%rsp), %rcx
movq %r14, %rdi
movl %ebp, %edx
callq 0x9eed2
movl %eax, %ebx
cmpl $-0x1, %eax
je 0x9dfec
cmpl $-0x1, 0xdc(%rsp)
je 0x9d32a
leaq 0xc8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x26ecb(%rip), %rsi     # 0xc3d78
leaq 0x26ecd(%rip), %rdx     # 0xc3d81
leaq 0xb8(%rsp), %rdi
callq 0x7c64
movl $0x1, %eax
cmpl $0xa, %ebx
jb 0x9d9f9
movl $0x4, %eax
movl $0xd1b71759, %ecx       # imm = 0xD1B71759
movl %ebx, %edx
cmpl $0x63, %edx
jbe 0x9d90d
cmpl $0x3e7, %edx            # imm = 0x3E7
jbe 0x9d9f7
cmpl $0x2710, %edx           # imm = 0x2710
jb 0x9d9f9
movl %edx, %esi
imulq %rcx, %rsi
shrq $0x2d, %rsi
addl $0x4, %eax
cmpl $0x1869f, %edx          # imm = 0x1869F
movl %esi, %edx
ja 0x9cedb
addl $-0x3, %eax
jmp 0x9d9f9
leaq 0x28(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x62c0
leaq 0x18(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x9cf4d
movq %rsi, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0x9cf53
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x26eb6(%rip), %rsi     # 0xc3e2d
leaq 0x8(%rsp), %rdi
callq 0x64e0
leaq 0x10(%rbp), %rdx
movq %rdx, (%rbp)
movq (%rax), %rsi
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rsi
je 0x9cfa5
movq %rsi, (%rbp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rbp)
jmp 0x9cfab
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 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9cfdd
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6260
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9cff8
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x6260
movq 0x48(%rsp), %rdi
cmpq %r15, %rdi
jne 0x9d50b
jmp 0x9e46e
cmpl $0x114a, %eax           # imm = 0x114A
movq 0x70(%rsp), %rbp
jne 0x9e454
movl $0x10, %edi
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x26ce6(%rip), %rsi     # 0xc3d1e
leaq 0x26d01(%rip), %rdx     # 0xc3d40
leaq 0x8(%rsp), %rdi
callq 0x7c64
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x5fd38(%rip), %rax     # 0xfcd98
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x5fd10(%rip), %rsi     # 0xfcd80
movq 0x60f61(%rip), %rdx     # 0xfdfd8
movq %r14, %rdi
callq 0x6470
jmp 0x9e601
leaq 0x58(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x26ce1(%rip), %rsi     # 0xc3d75
leaq 0x26ce6(%rip), %rdx     # 0xc3d81
leaq 0x48(%rsp), %rdi
callq 0x7c64
movq 0x70(%rsp), %rbp
movl $0x1, %eax
cmpl $0xa, %ebx
jb 0x9d917
movl $0x4, %eax
movl $0xd1b71759, %ecx       # imm = 0xD1B71759
movl %ebx, %edx
cmpl $0x63, %edx
jbe 0x9d908
cmpl $0x3e7, %edx            # imm = 0x3E7
jbe 0x9d915
cmpl $0x2710, %edx           # imm = 0x2710
jb 0x9d917
movl %edx, %esi
imulq %rcx, %rsi
shrq $0x2d, %rsi
addl $0x4, %eax
cmpl $0x1869f, %edx          # imm = 0x1869F
movl %esi, %edx
ja 0x9d0c4
addl $-0x3, %eax
jmp 0x9d917
cmpl $0x4e1f, 0x7d0(%r14) # imm = 0x4E1F
jbe 0x9e59d
leaq 0x38(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x26bf5(%rip), %rsi     # 0xc3d1a
leaq 0x26bf1(%rip), %rdx     # 0xc3d1d
leaq 0x28(%rsp), %rdi
callq 0x7c64
movl 0x6c(%rsp), %edx
leaq 0x78(%rsp), %rdi
movq %r14, %rsi
callq 0x9eaa8
movq 0x70(%rsp), %rbp
movq 0x28(%rsp), %rcx
movq 0x30(%rsp), %r8
movq 0x80(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
cmpq %r15, %rcx
je 0x9d171
movq 0x38(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x9d196
leaq 0x88(%rsp), %rdi
movl $0xf, %esi
cmpq %rdi, -0x10(%rdi)
je 0x9d191
movq 0x88(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x9d1a7
movq 0x78(%rsp), %rsi
leaq 0x28(%rsp), %rdi
callq 0x60b0
jmp 0x9d1b5
leaq 0x78(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x62c0
leaq 0x58(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x9d1d9
movq %rsi, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
jmp 0x9d1df
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x50(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x26c2a(%rip), %rsi     # 0xc3e2d
leaq 0x48(%rsp), %rdi
callq 0x64e0
leaq 0x18(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x9d234
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0x9d23b
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq 0x8(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x120(%rsp), %rcx
movq 0x20(%rcx), %rax
cmpq 0x28(%rcx), %rax
leaq 0x18641(%rip), %rax     # 0xb58af
leaq 0x18639(%rip), %rsi     # 0xb58ae
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 0x9d2a2
movq %rsi, (%rbp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rbp)
jmp 0x9d2a8
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 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x9d2d6
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6260
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9d2f1
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x6260
leaq 0x88(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9d312
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x6260
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x9e46e
movq 0x38(%rsp), %rsi
jmp 0x9d510
leaq 0x88(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x26a3b(%rip), %rsi     # 0xc3d78
leaq 0x26a3d(%rip), %rdx     # 0xc3d81
leaq 0x78(%rsp), %rdi
callq 0x7c64
movl $0x1, %eax
cmpl $0xa, %ebx
jb 0x9de0e
movl $0x4, %eax
movl $0xd1b71759, %ecx       # imm = 0xD1B71759
movl %ebx, %edx
cmpl $0x63, %edx
jbe 0x9de07
cmpl $0x3e7, %edx            # imm = 0x3E7
jbe 0x9de0c
cmpl $0x2710, %edx           # imm = 0x2710
jb 0x9de0e
movl %edx, %esi
imulq %rcx, %rsi
shrq $0x2d, %rsi
addl $0x4, %eax
cmpl $0x1869f, %edx          # imm = 0x1869F
movl %esi, %edx
ja 0x9d368
addl $-0x3, %eax
jmp 0x9de0e
addl $-0x2, %eax
jmp 0x9d3af
decl %eax
movl %eax, %esi
leaq 0x38(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x28(%rsp), %rdi
xorl %edx, %edx
callq 0x62f0
movq 0x28(%rsp), %rdi
movl 0x30(%rsp), %esi
movl %ebx, %edx
callq 0x21251
movq 0x48(%rsp), %rcx
movq 0x50(%rsp), %r8
movq 0x30(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
cmpq %r14, %rcx
je 0x9d3f8
movq 0x58(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x9d413
movl $0xf, %esi
cmpq %r15, 0x28(%rsp)
je 0x9d40e
movq 0x38(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x9d424
movq 0x28(%rsp), %rsi
leaq 0x48(%rsp), %rdi
callq 0x60b0
jmp 0x9d432
leaq 0x28(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x62c0
leaq 0x18(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x9d456
movq %rsi, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0x9d45c
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x268cf(%rip), %rsi     # 0xc3d4f
leaq 0x8(%rsp), %rdi
callq 0x64e0
leaq 0x10(%rbp), %rdx
movq %rdx, (%rbp)
movq (%rax), %rsi
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rsi
je 0x9d4ae
movq %rsi, (%rbp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rbp)
jmp 0x9d4b4
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 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9d4e6
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6260
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x9d4fd
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x6260
movq 0x48(%rsp), %rdi
cmpq %r14, %rdi
je 0x9e46e
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9e46e
movq 0x70(%rsp), %rdi
leaq 0x10(%rdi), %rax
movq %rax, (%rdi)
leaq 0x1837f(%rip), %rdx     # 0xb58af
movq %rdx, %rsi
callq 0x7c64
testb %bpl, %bpl
movq 0x70(%rsp), %rbp
je 0x9e46e
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9d561
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6260
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9d57c
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x6260
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
jne 0x9d50b
jmp 0x9e46e
addl $-0x2, %eax
jmp 0x9d596
decl %eax
movl %eax, %esi
leaq 0xa8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x98(%rsp), %rdi
xorl %edx, %edx
callq 0x62f0
movq 0x98(%rsp), %rdi
movl 0xa0(%rsp), %esi
movl %ebx, %edx
callq 0x21251
movq 0x78(%rsp), %rcx
movq 0x80(%rsp), %r8
movq 0xa0(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
cmpq %r14, %rcx
je 0x9d5f4
movq 0x88(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x9d615
movl $0xf, %esi
cmpq %r15, 0x98(%rsp)
je 0x9d610
movq 0xa8(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x9d629
movq 0x98(%rsp), %rsi
leaq 0x78(%rsp), %rdi
callq 0x60b0
jmp 0x9d63a
leaq 0x98(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x62c0
leaq 0x38(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x9d65e
movq %rsi, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
jmp 0x9d664
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x30(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x21927(%rip), %rsi     # 0xbefaf
leaq 0x28(%rsp), %rdi
callq 0x64e0
leaq 0x58(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x9d6ba
movq %rdx, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
jmp 0x9d6c2
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, 0x50(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl 0xe0(%rsp), %ebx
movl $0x1, %eax
cmpl $0xa, %ebx
jb 0x9d72f
movl $0x4, %eax
movl $0xd1b71759, %ecx       # imm = 0xD1B71759
movl %ebx, %edx
cmpl $0x63, %edx
jbe 0x9d728
cmpl $0x3e7, %edx            # imm = 0x3E7
jbe 0x9d72d
cmpl $0x2710, %edx           # imm = 0x2710
jb 0x9d72f
movl %edx, %esi
imulq %rcx, %rsi
shrq $0x2d, %rsi
addl $0x4, %eax
cmpl $0x1869f, %edx          # imm = 0x1869F
movl %esi, %edx
ja 0x9d6f7
addl $-0x3, %eax
jmp 0x9d72f
addl $-0x2, %eax
jmp 0x9d72f
decl %eax
movl %eax, %esi
leaq 0xc8(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xb8(%rsp), %rdi
xorl %edx, %edx
callq 0x62f0
movq 0xb8(%rsp), %rdi
movl 0xc0(%rsp), %esi
movl %ebx, %edx
callq 0x21251
movq 0x48(%rsp), %rcx
movq 0x50(%rsp), %r8
movq 0xc0(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
cmpq %r12, %rcx
je 0x9d787
movq 0x58(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x9d7a8
movl $0xf, %esi
cmpq %r13, 0xb8(%rsp)
je 0x9d7a3
movq 0xc8(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x9d7bc
movq 0xb8(%rsp), %rsi
leaq 0x48(%rsp), %rdi
callq 0x60b0
jmp 0x9d7cd
leaq 0xb8(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x62c0
leaq 0x18(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x9d7f1
movq %rsi, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0x9d7f7
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x26534(%rip), %rsi     # 0xc3d4f
leaq 0x8(%rsp), %rdi
callq 0x64e0
leaq 0x10(%rbp), %rdx
movq %rdx, (%rbp)
movq (%rax), %rsi
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rsi
je 0x9d849
movq %rsi, (%rbp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rbp)
jmp 0x9d84f
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 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9d881
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6260
movq 0xb8(%rsp), %rdi
cmpq %r13, %rdi
je 0x9d89e
movq 0xc8(%rsp), %rsi
incq %rsi
callq 0x6260
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x9d8b5
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x6260
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9d8d0
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x6260
movq 0x98(%rsp), %rdi
cmpq %r15, %rdi
je 0x9d8ed
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x6260
movq 0x78(%rsp), %rdi
cmpq %r14, %rdi
je 0x9e46e
movq 0x88(%rsp), %rsi
jmp 0x9d510
addl $-0x2, %eax
jmp 0x9d917
addl $-0x2, %eax
jmp 0x9d9f9
decl %eax
movl %eax, %esi
leaq 0x38(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x28(%rsp), %rdi
xorl %edx, %edx
callq 0x62f0
movq 0x28(%rsp), %rdi
movl 0x30(%rsp), %esi
movl %ebx, %edx
callq 0x21251
movq 0x48(%rsp), %rcx
movq 0x50(%rsp), %r8
movq 0x30(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
cmpq %r14, %rcx
je 0x9d960
movq 0x58(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x9d97b
movl $0xf, %esi
cmpq %r15, 0x28(%rsp)
je 0x9d976
movq 0x38(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x9d98c
movq 0x28(%rsp), %rsi
leaq 0x48(%rsp), %rdi
callq 0x60b0
jmp 0x9d99a
leaq 0x28(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x62c0
leaq 0x18(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x9d9be
movq %rsi, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0x9d9c4
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x26367(%rip), %rsi     # 0xc3d4f
leaq 0x8(%rsp), %rdi
callq 0x64e0
jmp 0x9d48a
decl %eax
movl %eax, %esi
leaq 0xf0(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0xe0(%rsp), %rdi
xorl %edx, %edx
callq 0x62f0
movq 0xe0(%rsp), %rdi
movl 0xe8(%rsp), %esi
movl %ebx, %edx
callq 0x21251
movq 0xb8(%rsp), %rcx
movq 0xc0(%rsp), %r8
movq 0xe8(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
leaq 0xc8(%rsp), %rdi
cmpq %rdi, %rcx
je 0x9da62
movq 0xc8(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x9da8b
movl $0xf, %esi
leaq 0xf0(%rsp), %rdi
cmpq %rdi, 0xe0(%rsp)
je 0x9da86
movq 0xf0(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x9daa2
movq 0xe0(%rsp), %rsi
leaq 0xb8(%rsp), %rdi
callq 0x60b0
jmp 0x9dab3
leaq 0xe0(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x62c0
leaq 0xa8(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x9dae0
movq %rsi, 0x98(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xa8(%rsp)
jmp 0x9dae6
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0xa0(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x214a2(%rip), %rsi     # 0xbefaf
leaq 0x98(%rsp), %rdi
callq 0x64e0
leaq 0x88(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x9db47
movq %rdx, 0x78(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x88(%rsp)
jmp 0x9db4d
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x80(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl 0xdc(%rsp), %ebx
movl $0x1, %eax
cmpl $0xa, %ebx
jb 0x9dbbd
movl $0x4, %eax
movl $0xd1b71759, %ecx       # imm = 0xD1B71759
movl %ebx, %edx
cmpl $0x63, %edx
jbe 0x9dbb6
cmpl $0x3e7, %edx            # imm = 0x3E7
jbe 0x9dbbb
cmpl $0x2710, %edx           # imm = 0x2710
jb 0x9dbbd
movl %edx, %esi
imulq %rcx, %rsi
shrq $0x2d, %rsi
addl $0x4, %eax
cmpl $0x1869f, %edx          # imm = 0x1869F
movl %esi, %edx
ja 0x9db85
addl $-0x3, %eax
jmp 0x9dbbd
addl $-0x2, %eax
jmp 0x9dbbd
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 0x21251
movq 0x78(%rsp), %rcx
movq 0x80(%rsp), %r8
movq 0x108(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
leaq 0x88(%rsp), %rdi
cmpq %rdi, %rcx
je 0x9dc23
movq 0x88(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x9dc4c
movl $0xf, %esi
leaq 0x110(%rsp), %rdi
cmpq %rdi, 0x100(%rsp)
je 0x9dc47
movq 0x110(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x9dc60
movq 0x100(%rsp), %rsi
leaq 0x78(%rsp), %rdi
callq 0x60b0
jmp 0x9dc71
leaq 0x100(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x62c0
leaq 0x38(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x9dc95
movq %rsi, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
jmp 0x9dc9b
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x30(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x1dd66(%rip), %rsi     # 0xbba25
leaq 0x28(%rsp), %rdi
callq 0x64e0
leaq 0x58(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x9dcf0
movq %rdx, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
jmp 0x9dcf6
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
leaq 0x48(%rsp), %rbx
movq %rdx, 0x8(%rbx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x8(%rsp), %rdi
movq %rbx, %rsi
callq 0x6310
movq (%rbx), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x9dd39
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x6260
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9dd54
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x6260
movq 0x100(%rsp), %rdi
leaq 0x110(%rsp), %rax
cmpq %rax, %rdi
je 0x9dd79
movq 0x110(%rsp), %rsi
incq %rsi
callq 0x6260
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0x9dd9b
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x6260
leaq 0xa8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9ddbc
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x6260
movq 0xe0(%rsp), %rdi
leaq 0xf0(%rsp), %rax
cmpq %rax, %rdi
je 0x9dde1
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x6260
movq 0xb8(%rsp), %rdi
leaq 0xc8(%rsp), %rax
cmpq %rax, %rdi
je 0x9dfec
movq 0xc8(%rsp), %rsi
jmp 0x9dfe4
addl $-0x2, %eax
jmp 0x9de0e
decl %eax
movl %eax, %esi
leaq 0xa8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x98(%rsp), %rdi
xorl %edx, %edx
callq 0x62f0
movq 0x98(%rsp), %rdi
movl 0xa0(%rsp), %esi
movl %ebx, %edx
callq 0x21251
movq 0x78(%rsp), %rcx
movq 0x80(%rsp), %r8
movq 0xa0(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
leaq 0x88(%rsp), %rdi
cmpq %rdi, %rcx
je 0x9de74
movq 0x88(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x9de9d
movl $0xf, %esi
leaq 0xa8(%rsp), %rdi
cmpq %rdi, 0x98(%rsp)
je 0x9de98
movq 0xa8(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x9deb1
movq 0x98(%rsp), %rsi
leaq 0x78(%rsp), %rdi
callq 0x60b0
jmp 0x9dec2
leaq 0x98(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x62c0
leaq 0x38(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x9dee6
movq %rsi, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
jmp 0x9deec
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x30(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x1db15(%rip), %rsi     # 0xbba25
leaq 0x28(%rsp), %rdi
callq 0x64e0
leaq 0x58(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x9df41
movq %rdx, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
jmp 0x9df47
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
leaq 0x48(%rsp), %rbx
movq %rdx, 0x8(%rbx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x8(%rsp), %rdi
movq %rbx, %rsi
callq 0x6310
movq (%rbx), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x9df8a
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x6260
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9dfa5
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x6260
movq 0x98(%rsp), %rdi
leaq 0xa8(%rsp), %rax
cmpq %rax, %rdi
je 0x9dfca
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x6260
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0x9dfec
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x6260
movq 0x120(%rsp), %rax
movl 0xc(%rax), %eax
andl $-0x4, %eax
cmpl $0x4, %eax
je 0x9e10f
cmpl $0xf, 0x6c(%rsp)
sete %al
testb %al, %r12b
jne 0x9e10f
movl 0x8(%r15), %esi
movq %r14, %rdi
movl %ebp, %edx
movl $0xe, %ecx
callq 0x14222
testb %al, %al
je 0x9e054
leaq 0x1a879(%rip), %rbx     # 0xb88ab
cmpq $0x0, 0x10(%rsp)
je 0x9e102
leaq 0x1d076(%rip), %rsi     # 0xbb0bb
leaq 0x8(%rsp), %rdi
callq 0x64e0
jmp 0x9e102
movl 0x8(%r15), %esi
movq %r14, %rdi
movl %ebp, %edx
movl $0x10, %ecx
callq 0x14222
testb %al, %al
je 0x9e0a7
cmpq $0x0, 0x10(%rsp)
je 0x9e084
leaq 0x1d041(%rip), %rsi     # 0xbb0bb
leaq 0x8(%rsp), %rdi
callq 0x64e0
movl 0x8(%r15), %esi
movq %r14, %rdi
movl %ebp, %edx
movl $0xd, %ecx
callq 0x14222
leaq 0x25ce4(%rip), %rcx     # 0xc3d82
leaq 0x25cf5(%rip), %rbx     # 0xc3d9a
jmp 0x9e0fc
movl 0x8(%r15), %esi
movq %r14, %rdi
movl %ebp, %edx
movl $0x11, %ecx
callq 0x14222
testb %al, %al
je 0x9e559
cmpq $0x0, 0x10(%rsp)
je 0x9e0db
leaq 0x1cfea(%rip), %rsi     # 0xbb0bb
leaq 0x8(%rsp), %rdi
callq 0x64e0
movl 0x8(%r15), %esi
movq %r14, %rdi
movl %ebp, %edx
movl $0xd, %ecx
callq 0x14222
leaq 0x25cba(%rip), %rcx     # 0xc3daf
leaq 0x25cc9(%rip), %rbx     # 0xc3dc5
testb %al, %al
cmovneq %rcx, %rbx
leaq 0x8(%rsp), %rdi
movq %rbx, %rsi
callq 0x64e0
cmpq $0x0, 0x10(%rsp)
je 0x9e16e
leaq 0x25bfc(%rip), %rsi     # 0xc3d1a
leaq 0x48(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x7ada6
leaq 0x25cf9(%rip), %rsi     # 0xc3e2d
leaq 0x48(%rsp), %rdi
callq 0x64e0
movq 0x70(%rsp), %rbp
leaq 0x10(%rbp), %rdx
movq %rdx, (%rbp)
movq (%rax), %rsi
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rsi
je 0x9e3b0
movq %rsi, (%rbp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rbp)
jmp 0x9e3b6
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x9e18a
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6260
movl 0xb8(%r13), %eax
movl %eax, %edx
xorl $0x4, %edx
movl 0x64(%r15), %ecx
movl %ecx, %esi
xorl $0x3, %esi
orl %edx, %esi
jne 0x9e250
testb %r12b, %r12b
je 0x9e30d
movl 0x6c(%rsp), %eax
orl $0x2, %eax
cmpl $0x16, %eax
jne 0x9e44f
leaq 0x58(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x25b4a(%rip), %rsi     # 0xc3d1a
leaq 0x25b46(%rip), %rdx     # 0xc3d1d
leaq 0x48(%rsp), %rdi
callq 0x7c64
movq 0x70(%rsp), %rbp
movl 0x6c(%rsp), %edx
leaq 0x28(%rsp), %rdi
movq %r14, %rsi
callq 0x9eaa8
movq 0x48(%rsp), %rcx
movq 0x50(%rsp), %r8
movq 0x30(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
cmpq %r15, %rcx
je 0x9e219
movq 0x58(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x9e23c
leaq 0x38(%rsp), %rdi
movl $0xf, %esi
cmpq %rdi, -0x10(%rdi)
je 0x9e233
movq 0x38(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x9e4ee
movq 0x28(%rsp), %rsi
leaq 0x48(%rsp), %rdi
callq 0x60b0
jmp 0x9e4fc
xorl $0x5, %eax
xorl $0x1, %ecx
orl %eax, %ecx
sete %al
andb %al, %r12b
cmpb $0x1, %r12b
jne 0x9e44f
movl 0x6c(%rsp), %eax
leal -0x1a(%rax), %ecx
cmpl $0x4, %ecx
movq 0x70(%rsp), %rbp
jb 0x9e282
cmpl $0x18, %eax
jne 0x9e454
leaq 0x58(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x25a88(%rip), %rsi     # 0xc3d1a
leaq 0x25a84(%rip), %rdx     # 0xc3d1d
leaq 0x48(%rsp), %rdi
callq 0x7c64
movl 0x6c(%rsp), %edx
leaq 0x28(%rsp), %rdi
movq %r14, %rsi
callq 0x9eaa8
movq 0x48(%rsp), %rcx
movq 0x50(%rsp), %r8
movq 0x30(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
cmpq %r15, %rcx
je 0x9e2d6
movq 0x58(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x9e2f9
leaq 0x38(%rsp), %rdi
movl $0xf, %esi
cmpq %rdi, -0x10(%rdi)
je 0x9e2f0
movq 0x38(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x9e483
movq 0x28(%rsp), %rsi
leaq 0x48(%rsp), %rdi
callq 0x60b0
jmp 0x9e491
movl 0x8(%r15), %esi
movq %r14, %rdi
movl %ebp, %edx
xorl %ecx, %ecx
callq 0x9eed2
movl %eax, 0x8(%rsp)
cmpl $-0x1, %eax
je 0x9e384
movl 0x8(%r15), %esi
movq %r14, %rdi
movl %ebp, %edx
movl $0x20, %ecx
callq 0x14222
testb %al, %al
je 0x9e384
movl 0x8(%r15), %esi
movq %r14, %rdi
movl %ebp, %edx
movl $0x20, %ecx
callq 0x14e6c
leaq 0x48(%rsp), %r8
movl %eax, (%r8)
leaq 0x25a8f(%rip), %rsi     # 0xc3dee
leaq 0x25a92(%rip), %rcx     # 0xc3df8
leaq 0x259e2(%rip), %r9      # 0xc3d4f
leaq 0x8(%rsp), %rdx
movq 0x70(%rsp), %rbp
movq %rbp, %rdi
callq 0xa75e5
jmp 0x9e46e
cmpl $-0x1, 0x8(%rsp)
je 0x9e401
leaq 0x25a5c(%rip), %rsi     # 0xc3dee
leaq 0x259b6(%rip), %rcx     # 0xc3d4f
leaq 0x8(%rsp), %rdx
movq 0x70(%rsp), %rbp
movq %rbp, %rdi
callq 0xa7699
jmp 0x9e46e
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 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9e3e8
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x6260
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x9e46e
movq 0x18(%rsp), %rsi
jmp 0x9d510
movl 0x8(%r15), %esi
movq %r14, %rdi
movl %ebp, %edx
movl $0x20, %ecx
callq 0x14222
testb %al, %al
je 0x9e44f
movl 0x8(%r15), %esi
movq %r14, %rdi
movl %ebp, %edx
movl $0x20, %ecx
callq 0x14e6c
leaq 0x48(%rsp), %rdx
movl %eax, (%rdx)
leaq 0x259c9(%rip), %rsi     # 0xc3e02
leaq 0x2590f(%rip), %rcx     # 0xc3d4f
movq 0x70(%rsp), %rbp
movq %rbp, %rdi
callq 0xa7735
jmp 0x9e46e
movq 0x70(%rsp), %rbp
leaq 0x10(%rbp), %rax
movq %rax, (%rbp)
leaq 0x1744c(%rip), %rdx     # 0xb58af
movq %rbp, %rdi
movq %rdx, %rsi
callq 0x7c64
movq %rbp, %rax
addq $0x128, %rsp            # imm = 0x128
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x28(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x62c0
leaq 0x18(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x9e4b5
movq %rsi, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0x9e4bb
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x2594e(%rip), %rsi     # 0xc3e2d
leaq 0x8(%rsp), %rdi
callq 0x64e0
jmp 0x9cf81
leaq 0x28(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x62c0
leaq 0x18(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x9e520
movq %rsi, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0x9e526
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x258e3(%rip), %rsi     # 0xc3e2d
leaq 0x8(%rsp), %rdi
callq 0x64e0
jmp 0x9cf81
movl 0x8(%r15), %esi
movq %r14, %rdi
movl %ebp, %edx
movl $0xd, %ecx
callq 0x14222
testb %al, %al
je 0x9e10f
leaq 0x2585d(%rip), %rbx     # 0xc3dd8
cmpq $0x0, 0x10(%rsp)
je 0x9e102
leaq 0x1cb2d(%rip), %rsi     # 0xbb0bb
leaq 0x8(%rsp), %rdi
callq 0x64e0
jmp 0x9e102
movl $0x10, %edi
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x25799(%rip), %rsi     # 0xc3d53
leaq 0x257b3(%rip), %rdx     # 0xc3d74
leaq 0x8(%rsp), %rdi
callq 0x7c64
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x5e7b6(%rip), %rax     # 0xfcd98
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x5e78e(%rip), %rsi     # 0xfcd80
movq 0x5f9df(%rip), %rdx     # 0xfdfd8
movq %r14, %rdi
callq 0x6470
jmp 0x9e61a
movq %rax, %rbx
movb $0x1, %bpl
jmp 0x9e640
movq %rax, %rbx
movb $0x1, %bpl
jmp 0x9e660
jmp 0x9e690
jmp 0x9e6ac
movq %rax, %rbx
testb %bpl, %bpl
je 0x9e640
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
movb $0x1, %bpl
cmpq %rax, %rdi
je 0x9e640
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6260
testb %bpl, %bpl
je 0x9e660
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9e660
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x6260
testb %bpl, %bpl
je 0x9e688
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9e688
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9e688
movq %rax, %rbx
movb $0x1, %bpl
testb %bpl, %bpl
jmp 0x9eaa0
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x9e6b2
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9e6b2
movq %rax, %rbx
movb $0x1, %bpl
testb %bpl, %bpl
je 0x9eaa0
movq %r14, %rdi
callq 0x6200
jmp 0x9eaa0
movq %rax, %rbx
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9e6eb
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9e6eb
movq %rax, %rbx
movq 0x98(%rsp), %rdi
leaq 0xa8(%rsp), %rax
cmpq %rax, %rdi
je 0x9e715
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9e715
movq %rax, %rbx
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0x9ea29
movq 0x88(%rsp), %rsi
jmp 0x9e9cd
jmp 0x9ea26
movq %rax, %rbx
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9e760
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9e760
movq %rax, %rbx
movq 0x100(%rsp), %rdi
leaq 0x110(%rsp), %rax
cmpq %rax, %rdi
je 0x9e78a
movq 0x110(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9e78a
movq %rax, %rbx
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0x9e7b1
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9e7b1
movq %rax, %rbx
leaq 0xa8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9e7d7
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9e7d7
movq %rax, %rbx
movq 0xe0(%rsp), %rdi
leaq 0xf0(%rsp), %rax
cmpq %rax, %rdi
je 0x9e801
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9e801
movq %rax, %rbx
movq 0xb8(%rsp), %rdi
leaq 0xc8(%rsp), %rax
cmpq %rax, %rdi
je 0x9ea29
movq 0xc8(%rsp), %rsi
jmp 0x9e9cd
jmp 0x9ea26
jmp 0x9e9d9
jmp 0x9e9f9
jmp 0x9ea15
jmp 0x9ea9d
jmp 0x9ea41
jmp 0x9ea61
jmp 0x9ea81
jmp 0x9ea9d
jmp 0x9ea41
jmp 0x9ea61
jmp 0x9ea81
jmp 0x9ea9d
movq %rax, %rbx
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9e88b
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9e88b
movq %rax, %rbx
movq 0xb8(%rsp), %rdi
cmpq %r13, %rdi
je 0x9e8ad
movq 0xc8(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9e8ad
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x9e8c9
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9e8c9
movq %rax, %rbx
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9e8e9
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9e8e9
movq %rax, %rbx
movq 0x98(%rsp), %rdi
cmpq %r15, %rdi
je 0x9e90b
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9e90b
movq %rax, %rbx
movq 0x78(%rsp), %rdi
cmpq %r14, %rdi
je 0x9eaa0
movq 0x88(%rsp), %rsi
jmp 0x9ea93
jmp 0x9ea9d
jmp 0x9ea26
jmp 0x9ea26
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x9e954
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9e954
movq %rax, %rbx
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9e974
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9e974
movq %rax, %rbx
leaq 0x88(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9e99a
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9e99a
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x9eaa0
movq 0x38(%rsp), %rsi
jmp 0x9ea93
jmp 0x9ea9d
movq %rax, %rbx
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9ea29
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9ea29
jmp 0x9ea26
movq %rax, %rbx
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9e9fc
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9e9fc
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x9ea18
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9ea18
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r14, %rdi
jne 0x9ea8e
jmp 0x9eaa0
jmp 0x9ea9d
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x9eaa0
movq 0x18(%rsp), %rsi
jmp 0x9ea93
jmp 0x9ea9d
movq %rax, %rbx
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9ea64
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9ea64
movq %rax, %rbx
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9ea84
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9ea84
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r15, %rdi
je 0x9eaa0
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x9eaa0
movq %rax, %rbx
movq %rbx, %rdi
callq 0x64a0