// File: /workspace/github_cpp_makefile_star2_O3/rossy[P]crossc/SPIRV-Cross/spirv_hlsl.cpp
// Function: spirv_cross::CompilerHLSL::emit_subgroup_op(spirv_cross::Instruction const&)
void CompilerHLSL::emit_subgroup_op(const Instruction &i)
{
	if (hlsl_options.shader_model < 60)
		SPIRV_CROSS_THROW("Wave ops requires SM 6.0 or higher.");

	const uint32_t *ops = stream(i);
	auto op = static_cast<Op>(i.op);

	uint32_t result_type = ops[0];
	uint32_t id = ops[1];

	auto scope = static_cast<Scope>(get<SPIRConstant>(ops[2]).scalar());
	if (scope != ScopeSubgroup)
		SPIRV_CROSS_THROW("Only subgroup scope is supported.");

	const auto make_inclusive_Sum = [&](const string &expr) -> string {
		return join(expr, " + ", to_expression(ops[4]));
	};

	const auto make_inclusive_Product = [&](const string &expr) -> string {
		return join(expr, " * ", to_expression(ops[4]));
	};

#define make_inclusive_BitAnd(expr) ""
#define make_inclusive_BitOr(expr) ""
#define make_inclusive_BitXor(expr) ""
#define make_inclusive_Min(expr) ""
#define make_inclusive_Max(expr) ""

	switch (op)
	{
	case OpGroupNonUniformElect:
		emit_op(result_type, id, "WaveIsFirstLane()", true);
		break;

	case OpGroupNonUniformBroadcast:
		emit_binary_func_op(result_type, id, ops[3], ops[4], "WaveReadLaneAt");
		break;

	case OpGroupNonUniformBroadcastFirst:
		emit_unary_func_op(result_type, id, ops[3], "WaveReadLaneFirst");
		break;

	case OpGroupNonUniformBallot:
		emit_unary_func_op(result_type, id, ops[3], "WaveActiveBallot");
		break;

	case OpGroupNonUniformInverseBallot:
		SPIRV_CROSS_THROW("Cannot trivially implement InverseBallot in HLSL.");
		break;

	case OpGroupNonUniformBallotBitExtract:
		SPIRV_CROSS_THROW("Cannot trivially implement BallotBitExtract in HLSL.");
		break;

	case OpGroupNonUniformBallotFindLSB:
		SPIRV_CROSS_THROW("Cannot trivially implement BallotFindLSB in HLSL.");
		break;

	case OpGroupNonUniformBallotFindMSB:
		SPIRV_CROSS_THROW("Cannot trivially implement BallotFindMSB in HLSL.");
		break;

	case OpGroupNonUniformBallotBitCount:
	{
		auto operation = static_cast<GroupOperation>(ops[3]);
		if (operation == GroupOperationReduce)
		{
			bool forward = should_forward(ops[4]);
			auto left = join("countbits(", to_enclosed_expression(ops[4]), ".x) + countbits(",
			                 to_enclosed_expression(ops[4]), ".y)");
			auto right = join("countbits(", to_enclosed_expression(ops[4]), ".z) + countbits(",
			                  to_enclosed_expression(ops[4]), ".w)");
			emit_op(result_type, id, join(left, " + ", right), forward);
			inherit_expression_dependencies(id, ops[4]);
		}
		else if (operation == GroupOperationInclusiveScan)
			SPIRV_CROSS_THROW("Cannot trivially implement BallotBitCount Inclusive Scan in HLSL.");
		else if (operation == GroupOperationExclusiveScan)
			SPIRV_CROSS_THROW("Cannot trivially implement BallotBitCount Exclusive Scan in HLSL.");
		else
			SPIRV_CROSS_THROW("Invalid BitCount operation.");
		break;
	}

	case OpGroupNonUniformShuffle:
		SPIRV_CROSS_THROW("Cannot trivially implement Shuffle in HLSL.");
	case OpGroupNonUniformShuffleXor:
		SPIRV_CROSS_THROW("Cannot trivially implement ShuffleXor in HLSL.");
	case OpGroupNonUniformShuffleUp:
		SPIRV_CROSS_THROW("Cannot trivially implement ShuffleUp in HLSL.");
	case OpGroupNonUniformShuffleDown:
		SPIRV_CROSS_THROW("Cannot trivially implement ShuffleDown in HLSL.");

	case OpGroupNonUniformAll:
		emit_unary_func_op(result_type, id, ops[3], "WaveActiveAllTrue");
		break;

	case OpGroupNonUniformAny:
		emit_unary_func_op(result_type, id, ops[3], "WaveActiveAnyTrue");
		break;

	case OpGroupNonUniformAllEqual:
	{
		auto &type = get<SPIRType>(result_type);
		emit_unary_func_op(result_type, id, ops[3],
		                   type.basetype == SPIRType::Boolean ? "WaveActiveAllEqualBool" : "WaveActiveAllEqual");
		break;
	}

	// clang-format off
#define HLSL_GROUP_OP(op, hlsl_op, supports_scan) \
case OpGroupNonUniform##op: \
	{ \
		auto operation = static_cast<GroupOperation>(ops[3]); \
		if (operation == GroupOperationReduce) \
			emit_unary_func_op(result_type, id, ops[4], "WaveActive" #hlsl_op); \
		else if (operation == GroupOperationInclusiveScan && supports_scan) \
        { \
			bool forward = should_forward(ops[4]); \
			emit_op(result_type, id, make_inclusive_##hlsl_op (join("WavePrefix" #hlsl_op, "(", to_expression(ops[4]), ")")), forward); \
			inherit_expression_dependencies(id, ops[4]); \
        } \
		else if (operation == GroupOperationExclusiveScan && supports_scan) \
			emit_unary_func_op(result_type, id, ops[4], "WavePrefix" #hlsl_op); \
		else if (operation == GroupOperationClusteredReduce) \
			SPIRV_CROSS_THROW("Cannot trivially implement ClusteredReduce in HLSL."); \
		else \
			SPIRV_CROSS_THROW("Invalid group operation."); \
		break; \
	}
	HLSL_GROUP_OP(FAdd, Sum, true)
	HLSL_GROUP_OP(FMul, Product, true)
	HLSL_GROUP_OP(FMin, Min, false)
	HLSL_GROUP_OP(FMax, Max, false)
	HLSL_GROUP_OP(IAdd, Sum, true)
	HLSL_GROUP_OP(IMul, Product, true)
	HLSL_GROUP_OP(SMin, Min, false)
	HLSL_GROUP_OP(SMax, Max, false)
	HLSL_GROUP_OP(UMin, Min, false)
	HLSL_GROUP_OP(UMax, Max, false)
	HLSL_GROUP_OP(BitwiseAnd, BitAnd, false)
	HLSL_GROUP_OP(BitwiseOr, BitOr, false)
	HLSL_GROUP_OP(BitwiseXor, BitXor, false)
#undef HLSL_GROUP_OP
		// clang-format on

	case OpGroupNonUniformQuadSwap:
	{
		uint32_t direction = get<SPIRConstant>(ops[4]).scalar();
		if (direction == 0)
			emit_unary_func_op(result_type, id, ops[3], "QuadReadAcrossX");
		else if (direction == 1)
			emit_unary_func_op(result_type, id, ops[3], "QuadReadAcrossY");
		else if (direction == 2)
			emit_unary_func_op(result_type, id, ops[3], "QuadReadAcrossDiagonal");
		else
			SPIRV_CROSS_THROW("Invalid quad swap direction.");
		break;
	}

	case OpGroupNonUniformQuadBroadcast:
	{
		emit_binary_func_op(result_type, id, ops[3], ops[4], "QuadReadLaneAt");
		break;
	}

	default:
		SPIRV_CROSS_THROW("Invalid opcode for subgroup.");
	}

	register_control_dependent_expression(id);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x88, %rsp
cmpl $0x3b, 0x788(%rdi)
jbe 0x6fcf1
movq %rsi, %r15
movq %rdi, %rbx
callq 0x1b2ac
movq %rax, %r14
movzwl (%r15), %r12d
movl (%rax), %r15d
movl 0x4(%rax), %ebp
movl 0x8(%rax), %esi
movq %rbx, %rdi
callq 0x1c036
cmpl $0x3, 0x10(%rax)
jne 0x6fd5a
addl $0xfffffeb3, %r12d      # imm = 0xFFFFFEB3
cmpl $0x21, %r12d
ja 0x7073a
leaq 0x4be79(%rip), %rax     # 0xbb2e0
movslq (%rax,%r12,4), %rcx
addq %rax, %rcx
jmpq *%rcx
leaq 0x18(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x4f142(%rip), %rsi     # 0xbe5c2
leaq 0x4f14c(%rip), %rdx     # 0xbe5d3
leaq 0x8(%rsp), %rdi
callq 0x7be0
leaq 0x8(%rsp), %rcx
movq %rbx, %rdi
movl %r15d, %esi
movl %ebp, %edx
movl $0x1, %r8d
xorl %r9d, %r9d
callq 0x3942c
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
jne 0x6f989
jmp 0x6fb22
movl 0xc(%r14), %eax
testl %eax, %eax
jne 0x6fe3e
movl 0x10(%r14), %ecx
leaq 0x4f45d(%rip), %r8      # 0xbe933
jmp 0x6fb15
movl 0xc(%r14), %eax
cmpq $0x3, %rax
ja 0x70a82
leaq 0x4be88(%rip), %rcx     # 0xbb378
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl 0x10(%r14), %esi
movq %rbx, %rdi
callq 0x39684
movl %eax, %r12d
movl 0x10(%r14), %edx
leaq 0x28(%rsp), %r13
movq %r13, %rdi
movq %rbx, %rsi
callq 0x33f8a
leaq 0x4f36d(%rip), %rsi     # 0xbe890
leaq 0x53747(%rip), %rdx     # 0xc2c71
leaq 0x4b4e4(%rip), %r8      # 0xbaa15
leaq 0x48(%rsp), %rdi
movq %r13, %rcx
callq 0x7ba77
movl 0x10(%r14), %edx
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rcx
movq %rbx, %rsi
callq 0x70f30
movzbl %r12b, %r8d
leaq 0x8(%rsp), %rcx
movq %rbx, %rdi
movl %r15d, %esi
movl %ebp, %edx
xorl %r9d, %r9d
callq 0x3942c
jmp 0x6fc8d
movl 0xc(%r14), %ecx
leaq 0x4f078(%rip), %r8      # 0xbe5f5
jmp 0x6fb15
movl 0xc(%r14), %eax
cmpq $0x3, %rax
ja 0x70aeb
leaq 0x4be01(%rip), %rcx     # 0xbb398
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl 0x10(%r14), %ecx
leaq 0x4f2d7(%rip), %r8      # 0xbe882
jmp 0x6fb15
movq %rbx, %rdi
movl %r15d, %esi
callq 0xa3ea
movl 0xc(%r14), %ecx
cmpl $0x2, 0xc(%rax)
leaq 0x4f28e(%rip), %rax     # 0xbe858
leaq 0x4f29e(%rip), %r8      # 0xbe86f
cmoveq %rax, %r8
jmp 0x6fb15
movl 0xc(%r14), %eax
cmpq $0x3, %rax
ja 0x70b54
leaq 0x4bd99(%rip), %rcx     # 0xbb388
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl 0x10(%r14), %esi
movq %rbx, %rdi
callq 0x39684
movl %eax, %r12d
movl 0x10(%r14), %edx
leaq 0x28(%rsp), %r13
movq %r13, %rdi
movq %rbx, %rsi
callq 0x33f8a
leaq 0x4f2c2(%rip), %rsi     # 0xbe8e4
leaq 0x53648(%rip), %rdx     # 0xc2c71
leaq 0x4b3e5(%rip), %r8      # 0xbaa15
leaq 0x48(%rsp), %rdi
movq %r13, %rcx
callq 0x7bb15
movl 0x10(%r14), %edx
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rcx
movq %rbx, %rsi
callq 0x70faa
movzbl %r12b, %r8d
leaq 0x8(%rsp), %rcx
movq %rbx, %rdi
movl %r15d, %esi
movl %ebp, %edx
xorl %r9d, %r9d
callq 0x3942c
jmp 0x6fc8d
movl 0xc(%r14), %eax
testl %eax, %eax
je 0x6fa74
movl $0x10, %edi
cmpl $0x3, %eax
jne 0x70352
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4f1fb(%rip), %rsi     # 0xbe89e
leaq 0x4f227(%rip), %rdx     # 0xbe8d1
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8c6fd(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8c6d5(%rip), %rsi     # 0xfbdb0
movq 0x8d8f6(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
movl 0xc(%r14), %ecx
leaq 0x4f13a(%rip), %r8      # 0xbe834
jmp 0x6fb15
movl 0xc(%r14), %eax
testl %eax, %eax
jne 0x6feb0
movl 0x10(%r14), %ecx
leaq 0x4f20d(%rip), %r8      # 0xbe923
jmp 0x6fb15
movl 0xc(%r14), %ecx
movl 0x10(%r14), %r8d
leaq 0x4eeaa(%rip), %r9      # 0xbe5d4
jmp 0x6fa28
movl 0xc(%r14), %ecx
leaq 0x4f10c(%rip), %r8      # 0xbe846
jmp 0x6fb15
movl 0xc(%r14), %eax
testl %eax, %eax
jne 0x6ff22
movl 0x10(%r14), %ecx
leaq 0x4f1bc(%rip), %r8      # 0xbe912
jmp 0x6fb15
movl 0xc(%r14), %ecx
leaq 0x4ee7d(%rip), %r8      # 0xbe5e3
jmp 0x6fb15
movl 0xc(%r14), %eax
testl %eax, %eax
je 0x6fb0a
movl $0x10, %edi
cmpl $0x3, %eax
jne 0x7041a
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4f101(%rip), %rsi     # 0xbe89e
leaq 0x4f12d(%rip), %rdx     # 0xbe8d1
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8c603(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8c5db(%rip), %rsi     # 0xfbdb0
movq 0x8d7fc(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
movl 0xc(%r14), %eax
testl %eax, %eax
jne 0x6fdc3
movl 0x10(%r14), %esi
movq %rbx, %rdi
callq 0x39684
movl %eax, %r12d
movl 0x10(%r14), %edx
leaq 0x48(%rsp), %rdi
movq %rbx, %rsi
callq 0x34600
movl 0x10(%r14), %edx
leaq 0x28(%rsp), %rdi
movq %rbx, %rsi
callq 0x34600
leaq 0x4eeaa(%rip), %rsi     # 0xbe6d7
leaq 0x4ee9d(%rip), %rcx     # 0xbe6d1
leaq 0x48e10(%rip), %r9      # 0xb864b
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rdx
leaq 0x28(%rsp), %r8
callq 0x7b917
leaq 0x38(%rsp), %r13
movq -0x10(%r13), %rdi
cmpq %r13, %rdi
je 0x6f86a
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x6260
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6f885
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x6260
movl 0x10(%r14), %edx
leaq 0x28(%rsp), %rdi
movq %rbx, %rsi
callq 0x34600
movl 0x10(%r14), %edx
leaq 0x68(%rsp), %rdi
movq %rbx, %rsi
callq 0x34600
leaq 0x4ee29(%rip), %rsi     # 0xbe6d7
leaq 0x4ee2d(%rip), %rcx     # 0xbe6e2
leaq 0x4ee37(%rip), %r9      # 0xbe6f3
leaq 0x48(%rsp), %rdi
leaq 0x28(%rsp), %rdx
leaq 0x68(%rsp), %r8
callq 0x7b917
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6f8eb
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x6260
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0x6f902
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x6260
leaq 0x5336c(%rip), %rdx     # 0xc2c75
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
leaq 0x48(%rsp), %rcx
callq 0x7b9cb
movzbl %r12b, %r8d
leaq 0x28(%rsp), %rcx
movq %rbx, %rdi
movl %r15d, %esi
movl %ebp, %edx
xorl %r9d, %r9d
callq 0x3942c
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0x6f94d
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x6260
movl 0x10(%r14), %edx
movq %rbx, %rdi
movl %ebp, %esi
callq 0x1616c
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x6f977
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x6260
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6fb22
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x6fb22
movl 0xc(%r14), %eax
testl %eax, %eax
je 0x6fa74
movl $0x10, %edi
cmpl $0x3, %eax
jne 0x70546
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4eed1(%rip), %rsi     # 0xbe89e
leaq 0x4eefd(%rip), %rdx     # 0xbe8d1
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8c3d3(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8c3ab(%rip), %rsi     # 0xfbdb0
movq 0x8d5cc(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
movl 0xc(%r14), %ecx
movl 0x10(%r14), %r8d
leaq 0x4ef53(%rip), %r9      # 0xbe97b
movq %rbx, %rdi
movl %r15d, %esi
movl %ebp, %edx
callq 0x3a096
jmp 0x6fb22
movl 0xc(%r14), %eax
cmpq $0x3, %rax
ja 0x70bba
leaq 0x4b919(%rip), %rcx     # 0xbb368
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl 0x10(%r14), %ecx
leaq 0x4ee6f(%rip), %r8      # 0xbe8d2
jmp 0x6fb15
movl 0xc(%r14), %eax
testl %eax, %eax
jne 0x6ff94
movl 0x10(%r14), %ecx
leaq 0x4ee77(%rip), %r8      # 0xbe8f6
jmp 0x6fb15
movl 0xc(%r14), %eax
testl %eax, %eax
je 0x6fb0a
movl $0x10, %edi
cmpl $0x3, %eax
jne 0x70672
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4edec(%rip), %rsi     # 0xbe89e
leaq 0x4ee18(%rip), %rdx     # 0xbe8d1
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8c2ee(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8c2c6(%rip), %rsi     # 0xfbdb0
movq 0x8d4e7(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
movl 0xc(%r14), %eax
testl %eax, %eax
jne 0x70006
movl 0x10(%r14), %ecx
leaq 0x4edef(%rip), %r8      # 0xbe904
movq %rbx, %rdi
movl %r15d, %esi
movl %ebp, %edx
callq 0x39f86
movq %rbx, %rdi
movl %ebp, %esi
callq 0x3c676
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl 0x10(%r14), %esi
movq %rbx, %rdi
callq 0x1c036
movl 0x10(%rax), %eax
cmpl $0x2, %eax
je 0x6fb93
cmpl $0x1, %eax
je 0x6fb86
testl %eax, %eax
jne 0x70875
movl 0xc(%r14), %ecx
leaq 0x4edda(%rip), %r8      # 0xbe944
jmp 0x6fb15
movl 0x10(%r14), %ecx
leaq 0x4ed19(%rip), %r8      # 0xbe890
jmp 0x6fb15
movl 0x10(%r14), %ecx
leaq 0x4ed60(%rip), %r8      # 0xbe8e4
jmp 0x6fb15
movl 0xc(%r14), %ecx
leaq 0x4edc3(%rip), %r8      # 0xbe954
jmp 0x6fb15
movl 0xc(%r14), %ecx
leaq 0x4edc6(%rip), %r8      # 0xbe964
jmp 0x6fb15
movl 0x10(%r14), %esi
movq %rbx, %rdi
callq 0x39684
movl %eax, %r12d
movl 0x10(%r14), %edx
leaq 0x28(%rsp), %r13
movq %r13, %rdi
movq %rbx, %rsi
callq 0x33f8a
leaq 0x4ecc3(%rip), %rsi     # 0xbe890
leaq 0x5309d(%rip), %rdx     # 0xc2c71
leaq 0x4ae3a(%rip), %r8      # 0xbaa15
leaq 0x48(%rsp), %rdi
movq %r13, %rcx
callq 0x7ba77
movl 0x10(%r14), %edx
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rcx
movq %rbx, %rsi
callq 0x70f30
movzbl %r12b, %r8d
leaq 0x8(%rsp), %rcx
movq %rbx, %rdi
movl %r15d, %esi
movl %ebp, %edx
xorl %r9d, %r9d
callq 0x3942c
jmp 0x6fc8d
movl 0x10(%r14), %esi
movq %rbx, %rdi
callq 0x39684
movl %eax, %r12d
movl 0x10(%r14), %edx
leaq 0x28(%rsp), %r13
movq %r13, %rdi
movq %rbx, %rsi
callq 0x33f8a
leaq 0x4eca1(%rip), %rsi     # 0xbe8e4
leaq 0x53027(%rip), %rdx     # 0xc2c71
leaq 0x4adc4(%rip), %r8      # 0xbaa15
leaq 0x48(%rsp), %rdi
movq %r13, %rcx
callq 0x7bb15
movl 0x10(%r14), %edx
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rcx
movq %rbx, %rsi
callq 0x70faa
movzbl %r12b, %r8d
leaq 0x8(%rsp), %rcx
movq %rbx, %rdi
movl %r15d, %esi
movl %ebp, %edx
xorl %r9d, %r9d
callq 0x3942c
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6fca8
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6260
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6fcc3
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x6260
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6fcde
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x6260
movl 0x10(%r14), %edx
movq %rbx, %rdi
movl %ebp, %esi
callq 0x1616c
jmp 0x6fb22
movl $0x10, %edi
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4e890(%rip), %rsi     # 0xbe59e
leaq 0x4e8ac(%rip), %rdx     # 0xbe5c1
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8c092(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8c06a(%rip), %rsi     # 0xfbdb0
movq 0x8d28b(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
movl $0x10, %edi
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x48d6d(%rip), %rsi     # 0xb8ae4
leaq 0x48d87(%rip), %rdx     # 0xb8b05
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8c029(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8c001(%rip), %rsi     # 0xfbdb0
movq 0x8d222(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
movl $0x10, %edi
cmpl $0x1, %eax
je 0x7047e
cmpl $0x2, %eax
jne 0x705aa
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4e947(%rip), %rsi     # 0xbe739
leaq 0x4e981(%rip), %rdx     # 0xbe77a
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8bfae(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8bf86(%rip), %rsi     # 0xfbdb0
movq 0x8d1a7(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
movl $0x10, %edi
cmpl $0x3, %eax
jne 0x702ee
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4ea3a(%rip), %rsi     # 0xbe89e
leaq 0x4ea66(%rip), %rdx     # 0xbe8d1
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8bf3c(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8bf14(%rip), %rsi     # 0xfbdb0
movq 0x8d135(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
movl $0x10, %edi
cmpl $0x3, %eax
jne 0x703b6
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4e9c8(%rip), %rsi     # 0xbe89e
leaq 0x4e9f4(%rip), %rdx     # 0xbe8d1
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8beca(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8bea2(%rip), %rsi     # 0xfbdb0
movq 0x8d0c3(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
movl $0x10, %edi
cmpl $0x3, %eax
jne 0x704e2
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4e956(%rip), %rsi     # 0xbe89e
leaq 0x4e982(%rip), %rdx     # 0xbe8d1
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8be58(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8be30(%rip), %rsi     # 0xfbdb0
movq 0x8d051(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
movl $0x10, %edi
cmpl $0x3, %eax
jne 0x7060e
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4e8e4(%rip), %rsi     # 0xbe89e
leaq 0x4e910(%rip), %rdx     # 0xbe8d1
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8bde6(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8bdbe(%rip), %rsi     # 0xfbdb0
movq 0x8cfdf(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
movl $0x10, %edi
cmpl $0x3, %eax
jne 0x706d6
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4e872(%rip), %rsi     # 0xbe89e
leaq 0x4e89e(%rip), %rdx     # 0xbe8d1
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8bd74(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8bd4c(%rip), %rsi     # 0xfbdb0
movq 0x8cf6d(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
movl $0x10, %edi
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4e76f(%rip), %rsi     # 0xbe804
leaq 0x4e797(%rip), %rdx     # 0xbe833
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8bd0b(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8bce3(%rip), %rsi     # 0xfbdb0
movq 0x8cf04(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
movl $0x10, %edi
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4e6d8(%rip), %rsi     # 0xbe7d6
leaq 0x4e6fe(%rip), %rdx     # 0xbe803
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8bca2(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8bc7a(%rip), %rsi     # 0xfbdb0
movq 0x8ce9b(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
movl $0x10, %edi
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4e640(%rip), %rsi     # 0xbe7a7
leaq 0x4e667(%rip), %rdx     # 0xbe7d5
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8bc39(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8bc11(%rip), %rsi     # 0xfbdb0
movq 0x8ce32(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
movl $0x10, %edi
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4e5ab(%rip), %rsi     # 0xbe77b
leaq 0x4e5cf(%rip), %rdx     # 0xbe7a6
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8bbd0(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8bba8(%rip), %rsi     # 0xfbdb0
movq 0x8cdc9(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
movl $0x10, %edi
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4e466(%rip), %rsi     # 0xbe69f
leaq 0x4e490(%rip), %rdx     # 0xbe6d0
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8bb67(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8bb3f(%rip), %rsi     # 0xfbdb0
movq 0x8cd60(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
movl $0x10, %edi
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4e3cb(%rip), %rsi     # 0xbe66d
leaq 0x4e3f5(%rip), %rdx     # 0xbe69e
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8bafe(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8bad6(%rip), %rsi     # 0xfbdb0
movq 0x8ccf7(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4878c(%rip), %rsi     # 0xb8a92
leaq 0x4879d(%rip), %rdx     # 0xb8aaa
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8ba9a(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8ba72(%rip), %rsi     # 0xfbdb0
movq 0x8cc93(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x48728(%rip), %rsi     # 0xb8a92
leaq 0x48739(%rip), %rdx     # 0xb8aaa
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8ba36(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8ba0e(%rip), %rsi     # 0xfbdb0
movq 0x8cc2f(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x486c4(%rip), %rsi     # 0xb8a92
leaq 0x486d5(%rip), %rdx     # 0xb8aaa
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8b9d2(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8b9aa(%rip), %rsi     # 0xfbdb0
movq 0x8cbcb(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x48660(%rip), %rsi     # 0xb8a92
leaq 0x48671(%rip), %rdx     # 0xb8aaa
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8b96e(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8b946(%rip), %rsi     # 0xfbdb0
movq 0x8cb67(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4e261(%rip), %rsi     # 0xbe6f7
leaq 0x4e29b(%rip), %rdx     # 0xbe738
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8b90a(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8b8e2(%rip), %rsi     # 0xfbdb0
movq 0x8cb03(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x48598(%rip), %rsi     # 0xb8a92
leaq 0x485a9(%rip), %rdx     # 0xb8aaa
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8b8a6(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8b87e(%rip), %rsi     # 0xfbdb0
movq 0x8ca9f(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x48534(%rip), %rsi     # 0xb8a92
leaq 0x48545(%rip), %rdx     # 0xb8aaa
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8b842(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8b81a(%rip), %rsi     # 0xfbdb0
movq 0x8ca3b(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4863e(%rip), %rsi     # 0xb8c00
leaq 0x48652(%rip), %rdx     # 0xb8c1b
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8b7de(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8b7b6(%rip), %rsi     # 0xfbdb0
movq 0x8c9d7(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4846c(%rip), %rsi     # 0xb8a92
leaq 0x4847d(%rip), %rdx     # 0xb8aaa
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8b77a(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8b752(%rip), %rsi     # 0xfbdb0
movq 0x8c973(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x48408(%rip), %rsi     # 0xb8a92
leaq 0x48419(%rip), %rdx     # 0xb8aaa
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8b716(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8b6ee(%rip), %rsi     # 0xfbdb0
movq 0x8c90f(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x483a4(%rip), %rsi     # 0xb8a92
leaq 0x483b5(%rip), %rdx     # 0xb8aaa
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8b6b2(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8b68a(%rip), %rsi     # 0xfbdb0
movq 0x8c8ab(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
movl $0x10, %edi
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x48370(%rip), %rsi     # 0xb8ac7
leaq 0x48385(%rip), %rdx     # 0xb8ae3
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8b649(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8b621(%rip), %rsi     # 0xfbdb0
movq 0x8c842(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
movl $0x10, %edi
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4de78(%rip), %rsi     # 0xbe638
leaq 0x4dea5(%rip), %rdx     # 0xbe66c
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8b5e0(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8b5b8(%rip), %rsi     # 0xfbdb0
movq 0x8c7d9(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
movl $0x10, %edi
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4dddd(%rip), %rsi     # 0xbe606
leaq 0x4de07(%rip), %rdx     # 0xbe637
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8b577(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8b54f(%rip), %rsi     # 0xfbdb0
movq 0x8c770(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
movl $0x10, %edi
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x48652(%rip), %rsi     # 0xb8ee4
leaq 0x48667(%rip), %rdx     # 0xb8f00
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8b50e(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8b4e6(%rip), %rsi     # 0xfbdb0
movq 0x8c707(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
movl $0x10, %edi
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4dfa3(%rip), %rsi     # 0xbe89e
leaq 0x4dfcf(%rip), %rdx     # 0xbe8d1
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8b4a5(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8b47d(%rip), %rsi     # 0xfbdb0
movq 0x8c69e(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
movl $0x10, %edi
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4df3a(%rip), %rsi     # 0xbe89e
leaq 0x4df66(%rip), %rdx     # 0xbe8d1
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8b43c(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8b414(%rip), %rsi     # 0xfbdb0
movq 0x8c635(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
movl $0x10, %edi
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4ded1(%rip), %rsi     # 0xbe89e
leaq 0x4defd(%rip), %rdx     # 0xbe8d1
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8b3d3(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8b3ab(%rip), %rsi     # 0xfbdb0
movq 0x8c5cc(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
movl $0x10, %edi
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4de68(%rip), %rsi     # 0xbe89e
leaq 0x4de94(%rip), %rdx     # 0xbe8d1
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8b36a(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8b342(%rip), %rsi     # 0xfbdb0
movq 0x8c563(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
movl $0x10, %edi
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x47ff3(%rip), %rsi     # 0xb8a92
leaq 0x48004(%rip), %rdx     # 0xb8aaa
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8b301(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8b2d9(%rip), %rsi     # 0xfbdb0
movq 0x8c4fa(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
movl $0x10, %edi
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x47f8a(%rip), %rsi     # 0xb8a92
leaq 0x47f9b(%rip), %rdx     # 0xb8aaa
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8b298(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8b270(%rip), %rsi     # 0xfbdb0
movq 0x8c491(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
movl $0x10, %edi
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x47f21(%rip), %rsi     # 0xb8a92
leaq 0x47f32(%rip), %rdx     # 0xb8aaa
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8b22f(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8b207(%rip), %rsi     # 0xfbdb0
movq 0x8c428(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70c1e
movl $0x10, %edi
callq 0x6140
movq %rax, %r14
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x47ebb(%rip), %rsi     # 0xb8a92
leaq 0x47ecc(%rip), %rdx     # 0xb8aaa
leaq 0x8(%rsp), %rdi
callq 0x7be0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x6320
leaq 0x8b1c9(%rip), %rax     # 0xfbdc8
addq $0x10, %rax
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x8b1a1(%rip), %rsi     # 0xfbdb0
movq 0x8c3c2(%rip), %rdx     # 0xfcfd8
movq %r14, %rdi
callq 0x6470
jmp 0x70efc
jmp 0x70f1d
jmp 0x70efc
jmp 0x70f1d
jmp 0x70efc
jmp 0x70f1d
jmp 0x70efc
jmp 0x70f1d
jmp 0x70efc
jmp 0x70f1d
jmp 0x70efc
jmp 0x70f1d
jmp 0x70efc
jmp 0x70f1d
jmp 0x70efc
jmp 0x70f1d
jmp 0x70efc
jmp 0x70f1d
jmp 0x70c7e
jmp 0x70c7e
jmp 0x70c7e
movq %rax, %rbx
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x70ca7
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x70ca7
jmp 0x70ca4
jmp 0x70ca4
jmp 0x70ca4
movq %rax, %rbx
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x70ccd
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x70ccd
jmp 0x70cca
jmp 0x70cca
jmp 0x70cca
movq %rax, %rbx
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x70f28
movq 0x38(%rsp), %rsi
jmp 0x70eda
jmp 0x70efc
jmp 0x70f1d
jmp 0x70efc
jmp 0x70f1d
jmp 0x70efc
jmp 0x70f1d
jmp 0x70efc
jmp 0x70efc
jmp 0x70f1d
jmp 0x70efc
jmp 0x70f1d
jmp 0x70efc
jmp 0x70f1d
jmp 0x70efc
jmp 0x70f1d
jmp 0x70efc
jmp 0x70f1d
jmp 0x70f1d
jmp 0x70efc
jmp 0x70f1d
jmp 0x70efc
jmp 0x70f1d
jmp 0x70efc
jmp 0x70f1d
jmp 0x70efc
jmp 0x70f1d
jmp 0x70efc
jmp 0x70f1d
jmp 0x70efc
jmp 0x70f1d
jmp 0x70efc
jmp 0x70f1d
jmp 0x70efc
jmp 0x70f1d
jmp 0x70efc
jmp 0x70f1d
jmp 0x70efc
jmp 0x70f1d
jmp 0x70efc
jmp 0x70f1d
jmp 0x70efc
jmp 0x70f1d
jmp 0x70efc
jmp 0x70f1d
jmp 0x70efc
jmp 0x70f1d
jmp 0x70efc
jmp 0x70f1d
jmp 0x70efc
jmp 0x70f1d
jmp 0x70efc
jmp 0x70f1d
jmp 0x70efc
jmp 0x70f1d
jmp 0x70efc
jmp 0x70f1d
jmp 0x70efc
jmp 0x70f1d
jmp 0x70efc
jmp 0x70f1d
jmp 0x70e33
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0x70e36
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x70e36
movq %rax, %rbx
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x70e8b
movq 0x58(%rsp), %rsi
jmp 0x70e7e
movq %rax, %rbx
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x70e6f
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x70e6f
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0x70e8b
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x70e8b
movq %rax, %rbx
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x70f28
movq 0x18(%rsp), %rsi
jmp 0x70eda
movq %rax, %rbx
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x70ec7
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x70ec7
movq %rax, %rbx
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x70f28
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x6260
jmp 0x70f28
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
jne 0x70e9d
jmp 0x70f28
movq %rax, %rbx
jmp 0x70f28
jmp 0x70efc
jmp 0x70f1d
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x70f16
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6260
testb %bpl, %bpl
jne 0x70f20
jmp 0x70f28
movq %rax, %rbx
movq %r14, %rdi
callq 0x6200
movq %rbx, %rdi
callq 0x64a0