// File: rossy[P]crossc/SPIRV-Cross/spirv_glsl.cpp
// Function: spirv_cross::CompilerGLSL::emit_subgroup_op(spirv_cross::Instruction const&)
void CompilerGLSL::emit_subgroup_op(const Instruction &i)
{
	const uint32_t *ops = stream(i);
	auto op = static_cast<Op>(i.op);

	if (!options.vulkan_semantics)
		SPIRV_CROSS_THROW("Can only use subgroup operations in Vulkan semantics.");

	switch (op)
	{
	case OpGroupNonUniformElect:
		require_extension_internal("GL_KHR_shader_subgroup_basic");
		break;

	case OpGroupNonUniformBroadcast:
	case OpGroupNonUniformBroadcastFirst:
	case OpGroupNonUniformBallot:
	case OpGroupNonUniformInverseBallot:
	case OpGroupNonUniformBallotBitExtract:
	case OpGroupNonUniformBallotBitCount:
	case OpGroupNonUniformBallotFindLSB:
	case OpGroupNonUniformBallotFindMSB:
		require_extension_internal("GL_KHR_shader_subgroup_ballot");
		break;

	case OpGroupNonUniformShuffle:
	case OpGroupNonUniformShuffleXor:
		require_extension_internal("GL_KHR_shader_subgroup_shuffle");
		break;

	case OpGroupNonUniformShuffleUp:
	case OpGroupNonUniformShuffleDown:
		require_extension_internal("GL_KHR_shader_subgroup_shuffle_relative");
		break;

	case OpGroupNonUniformAll:
	case OpGroupNonUniformAny:
	case OpGroupNonUniformAllEqual:
		require_extension_internal("GL_KHR_shader_subgroup_vote");
		break;

	case OpGroupNonUniformFAdd:
	case OpGroupNonUniformFMul:
	case OpGroupNonUniformFMin:
	case OpGroupNonUniformFMax:
	case OpGroupNonUniformIAdd:
	case OpGroupNonUniformIMul:
	case OpGroupNonUniformSMin:
	case OpGroupNonUniformSMax:
	case OpGroupNonUniformUMin:
	case OpGroupNonUniformUMax:
	case OpGroupNonUniformBitwiseAnd:
	case OpGroupNonUniformBitwiseOr:
	case OpGroupNonUniformBitwiseXor:
	{
		auto operation = static_cast<GroupOperation>(ops[3]);
		if (operation == GroupOperationClusteredReduce)
		{
			require_extension_internal("GL_KHR_shader_subgroup_clustered");
		}
		else if (operation == GroupOperationExclusiveScan || operation == GroupOperationInclusiveScan ||
		         operation == GroupOperationReduce)
		{
			require_extension_internal("GL_KHR_shader_subgroup_arithmetic");
		}
		else
			SPIRV_CROSS_THROW("Invalid group operation.");
		break;
	}

	case OpGroupNonUniformQuadSwap:
	case OpGroupNonUniformQuadBroadcast:
		require_extension_internal("GL_KHR_shader_subgroup_quad");
		break;

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

	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.");

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

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

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

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

	case OpGroupNonUniformInverseBallot:
		emit_unary_func_op(result_type, id, ops[3], "subgroupInverseBallot");
		break;

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

	case OpGroupNonUniformBallotFindLSB:
		emit_unary_func_op(result_type, id, ops[3], "subgroupBallotFindLSB");
		break;

	case OpGroupNonUniformBallotFindMSB:
		emit_unary_func_op(result_type, id, ops[3], "subgroupBallotFindMSB");
		break;

	case OpGroupNonUniformBallotBitCount:
	{
		auto operation = static_cast<GroupOperation>(ops[3]);
		if (operation == GroupOperationReduce)
			emit_unary_func_op(result_type, id, ops[4], "subgroupBallotBitCount");
		else if (operation == GroupOperationInclusiveScan)
			emit_unary_func_op(result_type, id, ops[4], "subgroupBallotInclusiveBitCount");
		else if (operation == GroupOperationExclusiveScan)
			emit_unary_func_op(result_type, id, ops[4], "subgroupBallotExclusiveBitCount");
		else
			SPIRV_CROSS_THROW("Invalid BitCount operation.");
		break;
	}

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

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

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

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

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

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

	case OpGroupNonUniformAllEqual:
		emit_unary_func_op(result_type, id, ops[3], "subgroupAllEqual");
		break;

		// clang-format off
#define GLSL_GROUP_OP(op, glsl_op) \
case OpGroupNonUniform##op: \
	{ \
		auto operation = static_cast<GroupOperation>(ops[3]); \
		if (operation == GroupOperationReduce) \
			emit_unary_func_op(result_type, id, ops[4], "subgroup" #glsl_op); \
		else if (operation == GroupOperationInclusiveScan) \
			emit_unary_func_op(result_type, id, ops[4], "subgroupInclusive" #glsl_op); \
		else if (operation == GroupOperationExclusiveScan) \
			emit_unary_func_op(result_type, id, ops[4], "subgroupExclusive" #glsl_op); \
		else if (operation == GroupOperationClusteredReduce) \
			emit_binary_func_op(result_type, id, ops[4], ops[5], "subgroupClustered" #glsl_op); \
		else \
			SPIRV_CROSS_THROW("Invalid group operation."); \
		break; \
	}
	GLSL_GROUP_OP(FAdd, Add)
	GLSL_GROUP_OP(FMul, Mul)
	GLSL_GROUP_OP(FMin, Min)
	GLSL_GROUP_OP(FMax, Max)
	GLSL_GROUP_OP(IAdd, Add)
	GLSL_GROUP_OP(IMul, Mul)
	GLSL_GROUP_OP(SMin, Min)
	GLSL_GROUP_OP(SMax, Max)
	GLSL_GROUP_OP(UMin, Min)
	GLSL_GROUP_OP(UMax, Max)
	GLSL_GROUP_OP(BitwiseAnd, And)
	GLSL_GROUP_OP(BitwiseOr, Or)
	GLSL_GROUP_OP(BitwiseXor, Xor)
#undef GLSL_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], "subgroupQuadSwapHorizontal");
		else if (direction == 1)
			emit_unary_func_op(result_type, id, ops[3], "subgroupQuadSwapVertical");
		else if (direction == 2)
			emit_unary_func_op(result_type, id, ops[3], "subgroupQuadSwapDiagonal");
		else
			SPIRV_CROSS_THROW("Invalid quad swap direction.");
		break;
	}

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

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

	register_control_dependent_expression(id);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x670, %rsp            # imm = 0x670
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x4c8(%rbp)
movq -0x10(%rbp), %rsi
callq 0x2e560
movq %rax, %rcx
movq -0x4c8(%rbp), %rax
movq %rcx, -0x18(%rbp)
movq -0x10(%rbp), %rcx
movzwl (%rcx), %ecx
movl %ecx, -0x1c(%rbp)
testb $0x1, 0x43e(%rax)
jne 0x7fe04
movb $0x1, -0x55(%rbp)
movl $0x10, %edi
callq 0x71a0
movq %rax, -0x4d8(%rbp)
leaq -0x41(%rbp), %rdi
movq %rdi, -0x4d0(%rbp)
callq 0x7650
movq -0x4d0(%rbp), %rdx
leaq 0xc30e0(%rip), %rsi     # 0x142e5f
leaq -0x40(%rbp), %rdi
callq 0x7520
jmp 0x7fd8a
movq -0x4d8(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x9c50
jmp 0x7fd9c
movq -0x4d8(%rbp), %rdi
movb $0x0, -0x55(%rbp)
leaq 0x12e02a(%rip), %rsi    # 0x1addd8
leaq -0x76125(%rip), %rdx    # 0x9c90
callq 0x7610
jmp 0x82458
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x7fde2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x7708
leaq -0x41(%rbp), %rdi
callq 0x73d0
testb $0x1, -0x55(%rbp)
jne 0x7fdf3
jmp 0x7fdff
movq -0x4d8(%rbp), %rdi
callq 0x72c0
jmp 0x8244f
movl -0x1c(%rbp), %eax
addl $0xfffffeb3, %eax       # imm = 0xFFFFFEB3
movl %eax, %ecx
movq %rcx, -0x4e0(%rbp)
subl $0x21, %eax
ja 0x803f0
movq -0x4e0(%rbp), %rax
leaq 0xc0848(%rip), %rcx     # 0x140674
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq -0x79(%rbp), %rdi
movq %rdi, -0x4e8(%rbp)
callq 0x7650
movq -0x4e8(%rbp), %rdx
leaq 0xc3042(%rip), %rsi     # 0x142e95
leaq -0x78(%rbp), %rdi
callq 0x7520
jmp 0x7fe5e
movq -0x4c8(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x589d0
jmp 0x7fe70
leaq -0x78(%rbp), %rdi
callq 0x7708
leaq -0x79(%rbp), %rdi
callq 0x73d0
jmp 0x804c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x7feaa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x78(%rbp), %rdi
callq 0x7708
leaq -0x79(%rbp), %rdi
callq 0x73d0
jmp 0x8244f
leaq -0xa1(%rbp), %rdi
movq %rdi, -0x4f0(%rbp)
callq 0x7650
movq -0x4f0(%rbp), %rdx
leaq 0xc2fd9(%rip), %rsi     # 0x142eb2
leaq -0xa0(%rbp), %rdi
callq 0x7520
jmp 0x7fee7
movq -0x4c8(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x589d0
jmp 0x7fefc
leaq -0xa0(%rbp), %rdi
callq 0x7708
leaq -0xa1(%rbp), %rdi
callq 0x73d0
jmp 0x804c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x7ff3f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0x7708
leaq -0xa1(%rbp), %rdi
callq 0x73d0
jmp 0x8244f
leaq -0xc9(%rbp), %rdi
movq %rdi, -0x4f8(%rbp)
callq 0x7650
movq -0x4f8(%rbp), %rdx
leaq 0xc2f5f(%rip), %rsi     # 0x142ed0
leaq -0xc8(%rbp), %rdi
callq 0x7520
jmp 0x7ff7f
movq -0x4c8(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0x589d0
jmp 0x7ff94
leaq -0xc8(%rbp), %rdi
callq 0x7708
leaq -0xc9(%rbp), %rdi
callq 0x73d0
jmp 0x804c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x7ffd7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0x7708
leaq -0xc9(%rbp), %rdi
callq 0x73d0
jmp 0x8244f
leaq -0xf1(%rbp), %rdi
movq %rdi, -0x500(%rbp)
callq 0x7650
movq -0x500(%rbp), %rdx
leaq 0xc2ee6(%rip), %rsi     # 0x142eef
leaq -0xf0(%rbp), %rdi
callq 0x7520
jmp 0x80017
movq -0x4c8(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x589d0
jmp 0x8002c
leaq -0xf0(%rbp), %rdi
callq 0x7708
leaq -0xf1(%rbp), %rdi
callq 0x73d0
jmp 0x804c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x8006f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x7708
leaq -0xf1(%rbp), %rdi
callq 0x73d0
jmp 0x8244f
leaq -0x119(%rbp), %rdi
movq %rdi, -0x508(%rbp)
callq 0x7650
movq -0x508(%rbp), %rdx
leaq 0xc2e76(%rip), %rsi     # 0x142f17
leaq -0x118(%rbp), %rdi
callq 0x7520
jmp 0x800af
movq -0x4c8(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0x589d0
jmp 0x800c4
leaq -0x118(%rbp), %rdi
callq 0x7708
leaq -0x119(%rbp), %rdi
callq 0x73d0
jmp 0x804c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x80107
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x7708
leaq -0x119(%rbp), %rdi
callq 0x73d0
jmp 0x8244f
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0x120(%rbp)
cmpl $0x3, -0x120(%rbp)
jne 0x801ca
leaq -0x141(%rbp), %rdi
movq %rdi, -0x510(%rbp)
callq 0x7650
movq -0x510(%rbp), %rdx
leaq 0xc2de0(%rip), %rsi     # 0x142f33
leaq -0x140(%rbp), %rdi
callq 0x7520
jmp 0x80161
movq -0x4c8(%rbp), %rdi
leaq -0x140(%rbp), %rsi
callq 0x589d0
jmp 0x80176
leaq -0x140(%rbp), %rdi
callq 0x7708
leaq -0x141(%rbp), %rdi
callq 0x73d0
jmp 0x80353
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x801b9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x140(%rbp), %rdi
callq 0x7708
leaq -0x141(%rbp), %rdi
callq 0x73d0
jmp 0x8244f
cmpl $0x2, -0x120(%rbp)
je 0x801e9
cmpl $0x1, -0x120(%rbp)
je 0x801e9
cmpl $0x0, -0x120(%rbp)
jne 0x80281
leaq -0x169(%rbp), %rdi
movq %rdi, -0x518(%rbp)
callq 0x7650
movq -0x518(%rbp), %rdx
leaq 0xc2d4a(%rip), %rsi     # 0x142f54
leaq -0x168(%rbp), %rdi
callq 0x7520
jmp 0x80218
movq -0x4c8(%rbp), %rdi
leaq -0x168(%rbp), %rsi
callq 0x589d0
jmp 0x8022d
leaq -0x168(%rbp), %rdi
callq 0x7708
leaq -0x169(%rbp), %rdi
callq 0x73d0
jmp 0x80351
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x80270
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x168(%rbp), %rdi
callq 0x7708
leaq -0x169(%rbp), %rdi
callq 0x73d0
jmp 0x8244f
movb $0x1, -0x192(%rbp)
movl $0x10, %edi
callq 0x71a0
movq %rax, -0x528(%rbp)
leaq -0x191(%rbp), %rdi
movq %rdi, -0x520(%rbp)
callq 0x7650
movq -0x520(%rbp), %rdx
leaq 0xc2cbc(%rip), %rsi     # 0x142f76
leaq -0x190(%rbp), %rdi
callq 0x7520
jmp 0x802c8
movq -0x528(%rbp), %rdi
leaq -0x190(%rbp), %rsi
callq 0x9c50
jmp 0x802dd
movq -0x528(%rbp), %rdi
movb $0x0, -0x192(%rbp)
leaq 0x12dae6(%rip), %rsi    # 0x1addd8
leaq -0x76669(%rip), %rdx    # 0x9c90
callq 0x7610
jmp 0x82458
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x80329
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x190(%rbp), %rdi
callq 0x7708
leaq -0x191(%rbp), %rdi
callq 0x73d0
testb $0x1, -0x192(%rbp)
jne 0x80340
jmp 0x8034c
movq -0x528(%rbp), %rdi
callq 0x72c0
jmp 0x8244f
jmp 0x80353
jmp 0x804c0
leaq -0x1b9(%rbp), %rdi
movq %rdi, -0x530(%rbp)
callq 0x7650
movq -0x530(%rbp), %rdx
leaq 0xc2c16(%rip), %rsi     # 0x142f8f
leaq -0x1b8(%rbp), %rdi
callq 0x7520
jmp 0x80387
movq -0x4c8(%rbp), %rdi
leaq -0x1b8(%rbp), %rsi
callq 0x589d0
jmp 0x8039c
leaq -0x1b8(%rbp), %rdi
callq 0x7708
leaq -0x1b9(%rbp), %rdi
callq 0x73d0
jmp 0x804c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x803df
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x1b8(%rbp), %rdi
callq 0x7708
leaq -0x1b9(%rbp), %rdi
callq 0x73d0
jmp 0x8244f
movb $0x1, -0x1e2(%rbp)
movl $0x10, %edi
callq 0x71a0
movq %rax, -0x540(%rbp)
leaq -0x1e1(%rbp), %rdi
movq %rdi, -0x538(%rbp)
callq 0x7650
movq -0x538(%rbp), %rdx
leaq 0xc2b82(%rip), %rsi     # 0x142fab
leaq -0x1e0(%rbp), %rdi
callq 0x7520
jmp 0x80437
movq -0x540(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
callq 0x9c50
jmp 0x8044c
movq -0x540(%rbp), %rdi
movb $0x0, -0x1e2(%rbp)
leaq 0x12d977(%rip), %rsi    # 0x1addd8
leaq -0x767d8(%rip), %rdx    # 0x9c90
callq 0x7610
jmp 0x82458
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x80498
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x7708
leaq -0x1e1(%rbp), %rdi
callq 0x73d0
testb $0x1, -0x1e2(%rbp)
jne 0x804af
jmp 0x804bb
movq -0x540(%rbp), %rdi
callq 0x72c0
jmp 0x8244f
movq -0x4c8(%rbp), %rdi
movq -0x18(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x1e8(%rbp)
movq -0x18(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x1ec(%rbp)
movq -0x18(%rbp), %rax
movl 0x8(%rax), %esi
callq 0x31910
movq %rax, %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x2f560
movl %eax, -0x1f0(%rbp)
cmpl $0x3, -0x1f0(%rbp)
je 0x805db
movb $0x1, -0x212(%rbp)
movl $0x10, %edi
callq 0x71a0
movq %rax, -0x550(%rbp)
leaq -0x211(%rbp), %rdi
movq %rdi, -0x548(%rbp)
callq 0x7650
movq -0x548(%rbp), %rdx
leaq 0xc2a84(%rip), %rsi     # 0x142fc8
leaq -0x210(%rbp), %rdi
callq 0x7520
jmp 0x80552
movq -0x550(%rbp), %rdi
leaq -0x210(%rbp), %rsi
callq 0x9c50
jmp 0x80567
movq -0x550(%rbp), %rdi
movb $0x0, -0x212(%rbp)
leaq 0x12d85c(%rip), %rsi    # 0x1addd8
leaq -0x768f3(%rip), %rdx    # 0x9c90
callq 0x7610
jmp 0x82458
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x805b3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x210(%rbp), %rdi
callq 0x7708
leaq -0x211(%rbp), %rdi
callq 0x73d0
testb $0x1, -0x212(%rbp)
jne 0x805ca
jmp 0x805d6
movq -0x550(%rbp), %rdi
callq 0x72c0
jmp 0x8244f
movl -0x1c(%rbp), %eax
addl $0xfffffeb3, %eax       # imm = 0xFFFFFEB3
movl %eax, %ecx
movq %rcx, -0x558(%rbp)
subl $0x21, %eax
ja 0x8236a
movq -0x558(%rbp), %rax
leaq 0xc00f9(%rip), %rcx     # 0x1406fc
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl -0x1e8(%rbp), %eax
movl %eax, -0x568(%rbp)
movl -0x1ec(%rbp), %eax
movl %eax, -0x564(%rbp)
leaq -0x239(%rbp), %rdi
movq %rdi, -0x560(%rbp)
callq 0x7650
movq -0x560(%rbp), %rdx
leaq 0xc29a5(%rip), %rsi     # 0x142fea
leaq -0x238(%rbp), %rdi
callq 0x7520
jmp 0x80653
movl -0x564(%rbp), %edx
movl -0x568(%rbp), %esi
movq -0x4c8(%rbp), %rdi
leaq -0x238(%rbp), %rcx
movl $0x1, %r8d
xorl %r9d, %r9d
callq 0x784f0
jmp 0x8067d
leaq -0x238(%rbp), %rdi
callq 0x7708
leaq -0x239(%rbp), %rdi
callq 0x73d0
jmp 0x82434
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x806c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x238(%rbp), %rdi
callq 0x7708
leaq -0x239(%rbp), %rdi
callq 0x73d0
jmp 0x8244f
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0xc(%rax), %ecx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %r8d
leaq 0xc2900(%rip), %r9      # 0x142ffa
callq 0x79330
jmp 0x82434
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0xc(%rax), %ecx
leaq 0xc28e7(%rip), %r8      # 0x14300c
callq 0x79220
jmp 0x82434
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0xc(%rax), %ecx
leaq 0xc28d3(%rip), %r8      # 0x143023
callq 0x79220
jmp 0x82434
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0xc(%rax), %ecx
leaq 0xc28b7(%rip), %r8      # 0x143032
callq 0x79220
jmp 0x82434
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0xc(%rax), %ecx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %r8d
leaq 0xc289a(%rip), %r9      # 0x143048
callq 0x79330
jmp 0x82434
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0xc(%rax), %ecx
leaq 0xc2888(%rip), %r8      # 0x143061
callq 0x79220
jmp 0x82434
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0xc(%rax), %ecx
leaq 0xc2873(%rip), %r8      # 0x143077
callq 0x79220
jmp 0x82434
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0x240(%rbp)
cmpl $0x0, -0x240(%rbp)
jne 0x8084f
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc2848(%rip), %r8      # 0x14308d
callq 0x79220
jmp 0x8098b
cmpl $0x1, -0x240(%rbp)
jne 0x80883
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc282b(%rip), %r8      # 0x1430a4
callq 0x79220
jmp 0x80989
cmpl $0x2, -0x240(%rbp)
jne 0x808b7
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc2817(%rip), %r8      # 0x1430c4
callq 0x79220
jmp 0x80987
movb $0x1, -0x262(%rbp)
movl $0x10, %edi
callq 0x71a0
movq %rax, -0x578(%rbp)
leaq -0x261(%rbp), %rdi
movq %rdi, -0x570(%rbp)
callq 0x7650
movq -0x570(%rbp), %rdx
leaq 0xc27f4(%rip), %rsi     # 0x1430e4
leaq -0x260(%rbp), %rdi
callq 0x7520
jmp 0x808fe
movq -0x578(%rbp), %rdi
leaq -0x260(%rbp), %rsi
callq 0x9c50
jmp 0x80913
movq -0x578(%rbp), %rdi
movb $0x0, -0x262(%rbp)
leaq 0x12d4b0(%rip), %rsi    # 0x1addd8
leaq -0x76c9f(%rip), %rdx    # 0x9c90
callq 0x7610
jmp 0x82458
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x8095f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x260(%rbp), %rdi
callq 0x7708
leaq -0x261(%rbp), %rdi
callq 0x73d0
testb $0x1, -0x262(%rbp)
jne 0x80976
jmp 0x80982
movq -0x578(%rbp), %rdi
callq 0x72c0
jmp 0x8244f
jmp 0x80989
jmp 0x8098b
jmp 0x82434
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0xc(%rax), %ecx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %r8d
leaq 0xc2747(%rip), %r9      # 0x143100
callq 0x79330
jmp 0x82434
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0xc(%rax), %ecx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %r8d
leaq 0xc2724(%rip), %r9      # 0x143110
callq 0x79330
jmp 0x82434
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0xc(%rax), %ecx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %r8d
leaq 0xc2704(%rip), %r9      # 0x143123
callq 0x79330
jmp 0x82434
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0xc(%rax), %ecx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %r8d
leaq 0xc26e3(%rip), %r9      # 0x143135
callq 0x79330
jmp 0x82434
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0xc(%rax), %ecx
leaq 0xc26cc(%rip), %r8      # 0x143149
callq 0x79220
jmp 0x82434
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0xc(%rax), %ecx
leaq 0xc26ad(%rip), %r8      # 0x143155
callq 0x79220
jmp 0x82434
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0xc(%rax), %ecx
leaq 0xc268e(%rip), %r8      # 0x143161
callq 0x79220
jmp 0x82434
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0x268(%rbp)
cmpl $0x0, -0x268(%rbp)
jne 0x80b1e
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc265e(%rip), %r8      # 0x143172
callq 0x79220
jmp 0x80c98
cmpl $0x1, -0x268(%rbp)
jne 0x80b52
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc2636(%rip), %r8      # 0x14317e
callq 0x79220
jmp 0x80c96
cmpl $0x2, -0x268(%rbp)
jne 0x80b86
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc2617(%rip), %r8      # 0x143193
callq 0x79220
jmp 0x80c94
cmpl $0x3, -0x268(%rbp)
jne 0x80bc2
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
movq -0x18(%rbp), %rax
movl 0x14(%rax), %r8d
leaq 0xc25f0(%rip), %r9      # 0x1431a8
callq 0x79330
jmp 0x80c92
movb $0x1, -0x28a(%rbp)
movl $0x10, %edi
callq 0x71a0
movq %rax, -0x588(%rbp)
leaq -0x289(%rbp), %rdi
movq %rdi, -0x580(%rbp)
callq 0x7650
movq -0x580(%rbp), %rdx
leaq 0xc237b(%rip), %rsi     # 0x142f76
leaq -0x288(%rbp), %rdi
callq 0x7520
jmp 0x80c09
movq -0x588(%rbp), %rdi
leaq -0x288(%rbp), %rsi
callq 0x9c50
jmp 0x80c1e
movq -0x588(%rbp), %rdi
movb $0x0, -0x28a(%rbp)
leaq 0x12d1a5(%rip), %rsi    # 0x1addd8
leaq -0x76faa(%rip), %rdx    # 0x9c90
callq 0x7610
jmp 0x82458
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x80c6a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x288(%rbp), %rdi
callq 0x7708
leaq -0x289(%rbp), %rdi
callq 0x73d0
testb $0x1, -0x28a(%rbp)
jne 0x80c81
jmp 0x80c8d
movq -0x588(%rbp), %rdi
callq 0x72c0
jmp 0x8244f
jmp 0x80c94
jmp 0x80c96
jmp 0x80c98
jmp 0x82434
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0x290(%rbp)
cmpl $0x0, -0x290(%rbp)
jne 0x80cde
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc24e9(%rip), %r8      # 0x1431bd
callq 0x79220
jmp 0x80e58
cmpl $0x1, -0x290(%rbp)
jne 0x80d12
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc24c1(%rip), %r8      # 0x1431c9
callq 0x79220
jmp 0x80e56
cmpl $0x2, -0x290(%rbp)
jne 0x80d46
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc24a2(%rip), %r8      # 0x1431de
callq 0x79220
jmp 0x80e54
cmpl $0x3, -0x290(%rbp)
jne 0x80d82
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
movq -0x18(%rbp), %rax
movl 0x14(%rax), %r8d
leaq 0xc247b(%rip), %r9      # 0x1431f3
callq 0x79330
jmp 0x80e52
movb $0x1, -0x2b2(%rbp)
movl $0x10, %edi
callq 0x71a0
movq %rax, -0x598(%rbp)
leaq -0x2b1(%rbp), %rdi
movq %rdi, -0x590(%rbp)
callq 0x7650
movq -0x590(%rbp), %rdx
leaq 0xc21bb(%rip), %rsi     # 0x142f76
leaq -0x2b0(%rbp), %rdi
callq 0x7520
jmp 0x80dc9
movq -0x598(%rbp), %rdi
leaq -0x2b0(%rbp), %rsi
callq 0x9c50
jmp 0x80dde
movq -0x598(%rbp), %rdi
movb $0x0, -0x2b2(%rbp)
leaq 0x12cfe5(%rip), %rsi    # 0x1addd8
leaq -0x7716a(%rip), %rdx    # 0x9c90
callq 0x7610
jmp 0x82458
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x80e2a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x2b0(%rbp), %rdi
callq 0x7708
leaq -0x2b1(%rbp), %rdi
callq 0x73d0
testb $0x1, -0x2b2(%rbp)
jne 0x80e41
jmp 0x80e4d
movq -0x598(%rbp), %rdi
callq 0x72c0
jmp 0x8244f
jmp 0x80e54
jmp 0x80e56
jmp 0x80e58
jmp 0x82434
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0x2b8(%rbp)
cmpl $0x0, -0x2b8(%rbp)
jne 0x80e9e
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc2374(%rip), %r8      # 0x143208
callq 0x79220
jmp 0x81018
cmpl $0x1, -0x2b8(%rbp)
jne 0x80ed2
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc234c(%rip), %r8      # 0x143214
callq 0x79220
jmp 0x81016
cmpl $0x2, -0x2b8(%rbp)
jne 0x80f06
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc232d(%rip), %r8      # 0x143229
callq 0x79220
jmp 0x81014
cmpl $0x3, -0x2b8(%rbp)
jne 0x80f42
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
movq -0x18(%rbp), %rax
movl 0x14(%rax), %r8d
leaq 0xc2306(%rip), %r9      # 0x14323e
callq 0x79330
jmp 0x81012
movb $0x1, -0x2da(%rbp)
movl $0x10, %edi
callq 0x71a0
movq %rax, -0x5a8(%rbp)
leaq -0x2d9(%rbp), %rdi
movq %rdi, -0x5a0(%rbp)
callq 0x7650
movq -0x5a0(%rbp), %rdx
leaq 0xc1ffb(%rip), %rsi     # 0x142f76
leaq -0x2d8(%rbp), %rdi
callq 0x7520
jmp 0x80f89
movq -0x5a8(%rbp), %rdi
leaq -0x2d8(%rbp), %rsi
callq 0x9c50
jmp 0x80f9e
movq -0x5a8(%rbp), %rdi
movb $0x0, -0x2da(%rbp)
leaq 0x12ce25(%rip), %rsi    # 0x1addd8
leaq -0x7732a(%rip), %rdx    # 0x9c90
callq 0x7610
jmp 0x82458
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x80fea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x2d8(%rbp), %rdi
callq 0x7708
leaq -0x2d9(%rbp), %rdi
callq 0x73d0
testb $0x1, -0x2da(%rbp)
jne 0x81001
jmp 0x8100d
movq -0x5a8(%rbp), %rdi
callq 0x72c0
jmp 0x8244f
jmp 0x81014
jmp 0x81016
jmp 0x81018
jmp 0x82434
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0x2e0(%rbp)
cmpl $0x0, -0x2e0(%rbp)
jne 0x8105e
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc21ff(%rip), %r8      # 0x143253
callq 0x79220
jmp 0x811d8
cmpl $0x1, -0x2e0(%rbp)
jne 0x81092
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc21d7(%rip), %r8      # 0x14325f
callq 0x79220
jmp 0x811d6
cmpl $0x2, -0x2e0(%rbp)
jne 0x810c6
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc21b8(%rip), %r8      # 0x143274
callq 0x79220
jmp 0x811d4
cmpl $0x3, -0x2e0(%rbp)
jne 0x81102
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
movq -0x18(%rbp), %rax
movl 0x14(%rax), %r8d
leaq 0xc2191(%rip), %r9      # 0x143289
callq 0x79330
jmp 0x811d2
movb $0x1, -0x302(%rbp)
movl $0x10, %edi
callq 0x71a0
movq %rax, -0x5b8(%rbp)
leaq -0x301(%rbp), %rdi
movq %rdi, -0x5b0(%rbp)
callq 0x7650
movq -0x5b0(%rbp), %rdx
leaq 0xc1e3b(%rip), %rsi     # 0x142f76
leaq -0x300(%rbp), %rdi
callq 0x7520
jmp 0x81149
movq -0x5b8(%rbp), %rdi
leaq -0x300(%rbp), %rsi
callq 0x9c50
jmp 0x8115e
movq -0x5b8(%rbp), %rdi
movb $0x0, -0x302(%rbp)
leaq 0x12cc65(%rip), %rsi    # 0x1addd8
leaq -0x774ea(%rip), %rdx    # 0x9c90
callq 0x7610
jmp 0x82458
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x811aa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x300(%rbp), %rdi
callq 0x7708
leaq -0x301(%rbp), %rdi
callq 0x73d0
testb $0x1, -0x302(%rbp)
jne 0x811c1
jmp 0x811cd
movq -0x5b8(%rbp), %rdi
callq 0x72c0
jmp 0x8244f
jmp 0x811d4
jmp 0x811d6
jmp 0x811d8
jmp 0x82434
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0x308(%rbp)
cmpl $0x0, -0x308(%rbp)
jne 0x8121e
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc1f5e(%rip), %r8      # 0x143172
callq 0x79220
jmp 0x81398
cmpl $0x1, -0x308(%rbp)
jne 0x81252
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc1f36(%rip), %r8      # 0x14317e
callq 0x79220
jmp 0x81396
cmpl $0x2, -0x308(%rbp)
jne 0x81286
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc1f17(%rip), %r8      # 0x143193
callq 0x79220
jmp 0x81394
cmpl $0x3, -0x308(%rbp)
jne 0x812c2
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
movq -0x18(%rbp), %rax
movl 0x14(%rax), %r8d
leaq 0xc1ef0(%rip), %r9      # 0x1431a8
callq 0x79330
jmp 0x81392
movb $0x1, -0x32a(%rbp)
movl $0x10, %edi
callq 0x71a0
movq %rax, -0x5c8(%rbp)
leaq -0x329(%rbp), %rdi
movq %rdi, -0x5c0(%rbp)
callq 0x7650
movq -0x5c0(%rbp), %rdx
leaq 0xc1c7b(%rip), %rsi     # 0x142f76
leaq -0x328(%rbp), %rdi
callq 0x7520
jmp 0x81309
movq -0x5c8(%rbp), %rdi
leaq -0x328(%rbp), %rsi
callq 0x9c50
jmp 0x8131e
movq -0x5c8(%rbp), %rdi
movb $0x0, -0x32a(%rbp)
leaq 0x12caa5(%rip), %rsi    # 0x1addd8
leaq -0x776aa(%rip), %rdx    # 0x9c90
callq 0x7610
jmp 0x82458
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x8136a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x328(%rbp), %rdi
callq 0x7708
leaq -0x329(%rbp), %rdi
callq 0x73d0
testb $0x1, -0x32a(%rbp)
jne 0x81381
jmp 0x8138d
movq -0x5c8(%rbp), %rdi
callq 0x72c0
jmp 0x8244f
jmp 0x81394
jmp 0x81396
jmp 0x81398
jmp 0x82434
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0x330(%rbp)
cmpl $0x0, -0x330(%rbp)
jne 0x813de
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc1de9(%rip), %r8      # 0x1431bd
callq 0x79220
jmp 0x81558
cmpl $0x1, -0x330(%rbp)
jne 0x81412
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc1dc1(%rip), %r8      # 0x1431c9
callq 0x79220
jmp 0x81556
cmpl $0x2, -0x330(%rbp)
jne 0x81446
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc1da2(%rip), %r8      # 0x1431de
callq 0x79220
jmp 0x81554
cmpl $0x3, -0x330(%rbp)
jne 0x81482
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
movq -0x18(%rbp), %rax
movl 0x14(%rax), %r8d
leaq 0xc1d7b(%rip), %r9      # 0x1431f3
callq 0x79330
jmp 0x81552
movb $0x1, -0x352(%rbp)
movl $0x10, %edi
callq 0x71a0
movq %rax, -0x5d8(%rbp)
leaq -0x351(%rbp), %rdi
movq %rdi, -0x5d0(%rbp)
callq 0x7650
movq -0x5d0(%rbp), %rdx
leaq 0xc1abb(%rip), %rsi     # 0x142f76
leaq -0x350(%rbp), %rdi
callq 0x7520
jmp 0x814c9
movq -0x5d8(%rbp), %rdi
leaq -0x350(%rbp), %rsi
callq 0x9c50
jmp 0x814de
movq -0x5d8(%rbp), %rdi
movb $0x0, -0x352(%rbp)
leaq 0x12c8e5(%rip), %rsi    # 0x1addd8
leaq -0x7786a(%rip), %rdx    # 0x9c90
callq 0x7610
jmp 0x82458
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x8152a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x350(%rbp), %rdi
callq 0x7708
leaq -0x351(%rbp), %rdi
callq 0x73d0
testb $0x1, -0x352(%rbp)
jne 0x81541
jmp 0x8154d
movq -0x5d8(%rbp), %rdi
callq 0x72c0
jmp 0x8244f
jmp 0x81554
jmp 0x81556
jmp 0x81558
jmp 0x82434
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0x358(%rbp)
cmpl $0x0, -0x358(%rbp)
jne 0x8159e
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc1c74(%rip), %r8      # 0x143208
callq 0x79220
jmp 0x81718
cmpl $0x1, -0x358(%rbp)
jne 0x815d2
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc1c4c(%rip), %r8      # 0x143214
callq 0x79220
jmp 0x81716
cmpl $0x2, -0x358(%rbp)
jne 0x81606
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc1c2d(%rip), %r8      # 0x143229
callq 0x79220
jmp 0x81714
cmpl $0x3, -0x358(%rbp)
jne 0x81642
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
movq -0x18(%rbp), %rax
movl 0x14(%rax), %r8d
leaq 0xc1c06(%rip), %r9      # 0x14323e
callq 0x79330
jmp 0x81712
movb $0x1, -0x37a(%rbp)
movl $0x10, %edi
callq 0x71a0
movq %rax, -0x5e8(%rbp)
leaq -0x379(%rbp), %rdi
movq %rdi, -0x5e0(%rbp)
callq 0x7650
movq -0x5e0(%rbp), %rdx
leaq 0xc18fb(%rip), %rsi     # 0x142f76
leaq -0x378(%rbp), %rdi
callq 0x7520
jmp 0x81689
movq -0x5e8(%rbp), %rdi
leaq -0x378(%rbp), %rsi
callq 0x9c50
jmp 0x8169e
movq -0x5e8(%rbp), %rdi
movb $0x0, -0x37a(%rbp)
leaq 0x12c725(%rip), %rsi    # 0x1addd8
leaq -0x77a2a(%rip), %rdx    # 0x9c90
callq 0x7610
jmp 0x82458
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x816ea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x378(%rbp), %rdi
callq 0x7708
leaq -0x379(%rbp), %rdi
callq 0x73d0
testb $0x1, -0x37a(%rbp)
jne 0x81701
jmp 0x8170d
movq -0x5e8(%rbp), %rdi
callq 0x72c0
jmp 0x8244f
jmp 0x81714
jmp 0x81716
jmp 0x81718
jmp 0x82434
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0x380(%rbp)
cmpl $0x0, -0x380(%rbp)
jne 0x8175e
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc1aff(%rip), %r8      # 0x143253
callq 0x79220
jmp 0x818d8
cmpl $0x1, -0x380(%rbp)
jne 0x81792
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc1ad7(%rip), %r8      # 0x14325f
callq 0x79220
jmp 0x818d6
cmpl $0x2, -0x380(%rbp)
jne 0x817c6
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc1ab8(%rip), %r8      # 0x143274
callq 0x79220
jmp 0x818d4
cmpl $0x3, -0x380(%rbp)
jne 0x81802
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
movq -0x18(%rbp), %rax
movl 0x14(%rax), %r8d
leaq 0xc1a91(%rip), %r9      # 0x143289
callq 0x79330
jmp 0x818d2
movb $0x1, -0x3a2(%rbp)
movl $0x10, %edi
callq 0x71a0
movq %rax, -0x5f8(%rbp)
leaq -0x3a1(%rbp), %rdi
movq %rdi, -0x5f0(%rbp)
callq 0x7650
movq -0x5f0(%rbp), %rdx
leaq 0xc173b(%rip), %rsi     # 0x142f76
leaq -0x3a0(%rbp), %rdi
callq 0x7520
jmp 0x81849
movq -0x5f8(%rbp), %rdi
leaq -0x3a0(%rbp), %rsi
callq 0x9c50
jmp 0x8185e
movq -0x5f8(%rbp), %rdi
movb $0x0, -0x3a2(%rbp)
leaq 0x12c565(%rip), %rsi    # 0x1addd8
leaq -0x77bea(%rip), %rdx    # 0x9c90
callq 0x7610
jmp 0x82458
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x818aa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x3a0(%rbp), %rdi
callq 0x7708
leaq -0x3a1(%rbp), %rdi
callq 0x73d0
testb $0x1, -0x3a2(%rbp)
jne 0x818c1
jmp 0x818cd
movq -0x5f8(%rbp), %rdi
callq 0x72c0
jmp 0x8244f
jmp 0x818d4
jmp 0x818d6
jmp 0x818d8
jmp 0x82434
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0x3a8(%rbp)
cmpl $0x0, -0x3a8(%rbp)
jne 0x8191e
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc18f4(%rip), %r8      # 0x143208
callq 0x79220
jmp 0x81a98
cmpl $0x1, -0x3a8(%rbp)
jne 0x81952
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc18cc(%rip), %r8      # 0x143214
callq 0x79220
jmp 0x81a96
cmpl $0x2, -0x3a8(%rbp)
jne 0x81986
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc18ad(%rip), %r8      # 0x143229
callq 0x79220
jmp 0x81a94
cmpl $0x3, -0x3a8(%rbp)
jne 0x819c2
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
movq -0x18(%rbp), %rax
movl 0x14(%rax), %r8d
leaq 0xc1886(%rip), %r9      # 0x14323e
callq 0x79330
jmp 0x81a92
movb $0x1, -0x3ca(%rbp)
movl $0x10, %edi
callq 0x71a0
movq %rax, -0x608(%rbp)
leaq -0x3c9(%rbp), %rdi
movq %rdi, -0x600(%rbp)
callq 0x7650
movq -0x600(%rbp), %rdx
leaq 0xc157b(%rip), %rsi     # 0x142f76
leaq -0x3c8(%rbp), %rdi
callq 0x7520
jmp 0x81a09
movq -0x608(%rbp), %rdi
leaq -0x3c8(%rbp), %rsi
callq 0x9c50
jmp 0x81a1e
movq -0x608(%rbp), %rdi
movb $0x0, -0x3ca(%rbp)
leaq 0x12c3a5(%rip), %rsi    # 0x1addd8
leaq -0x77daa(%rip), %rdx    # 0x9c90
callq 0x7610
jmp 0x82458
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x81a6a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x3c8(%rbp), %rdi
callq 0x7708
leaq -0x3c9(%rbp), %rdi
callq 0x73d0
testb $0x1, -0x3ca(%rbp)
jne 0x81a81
jmp 0x81a8d
movq -0x608(%rbp), %rdi
callq 0x72c0
jmp 0x8244f
jmp 0x81a94
jmp 0x81a96
jmp 0x81a98
jmp 0x82434
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0x3d0(%rbp)
cmpl $0x0, -0x3d0(%rbp)
jne 0x81ade
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc177f(%rip), %r8      # 0x143253
callq 0x79220
jmp 0x81c58
cmpl $0x1, -0x3d0(%rbp)
jne 0x81b12
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc1757(%rip), %r8      # 0x14325f
callq 0x79220
jmp 0x81c56
cmpl $0x2, -0x3d0(%rbp)
jne 0x81b46
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc1738(%rip), %r8      # 0x143274
callq 0x79220
jmp 0x81c54
cmpl $0x3, -0x3d0(%rbp)
jne 0x81b82
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
movq -0x18(%rbp), %rax
movl 0x14(%rax), %r8d
leaq 0xc1711(%rip), %r9      # 0x143289
callq 0x79330
jmp 0x81c52
movb $0x1, -0x3f2(%rbp)
movl $0x10, %edi
callq 0x71a0
movq %rax, -0x618(%rbp)
leaq -0x3f1(%rbp), %rdi
movq %rdi, -0x610(%rbp)
callq 0x7650
movq -0x610(%rbp), %rdx
leaq 0xc13bb(%rip), %rsi     # 0x142f76
leaq -0x3f0(%rbp), %rdi
callq 0x7520
jmp 0x81bc9
movq -0x618(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0x9c50
jmp 0x81bde
movq -0x618(%rbp), %rdi
movb $0x0, -0x3f2(%rbp)
leaq 0x12c1e5(%rip), %rsi    # 0x1addd8
leaq -0x77f6a(%rip), %rdx    # 0x9c90
callq 0x7610
jmp 0x82458
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x81c2a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x3f0(%rbp), %rdi
callq 0x7708
leaq -0x3f1(%rbp), %rdi
callq 0x73d0
testb $0x1, -0x3f2(%rbp)
jne 0x81c41
jmp 0x81c4d
movq -0x618(%rbp), %rdi
callq 0x72c0
jmp 0x8244f
jmp 0x81c54
jmp 0x81c56
jmp 0x81c58
jmp 0x82434
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0x3f8(%rbp)
cmpl $0x0, -0x3f8(%rbp)
jne 0x81c9e
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc160a(%rip), %r8      # 0x14329e
callq 0x79220
jmp 0x81e18
cmpl $0x1, -0x3f8(%rbp)
jne 0x81cd2
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc15e2(%rip), %r8      # 0x1432aa
callq 0x79220
jmp 0x81e16
cmpl $0x2, -0x3f8(%rbp)
jne 0x81d06
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc15c3(%rip), %r8      # 0x1432bf
callq 0x79220
jmp 0x81e14
cmpl $0x3, -0x3f8(%rbp)
jne 0x81d42
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
movq -0x18(%rbp), %rax
movl 0x14(%rax), %r8d
leaq 0xc159c(%rip), %r9      # 0x1432d4
callq 0x79330
jmp 0x81e12
movb $0x1, -0x41a(%rbp)
movl $0x10, %edi
callq 0x71a0
movq %rax, -0x628(%rbp)
leaq -0x419(%rbp), %rdi
movq %rdi, -0x620(%rbp)
callq 0x7650
movq -0x620(%rbp), %rdx
leaq 0xc11fb(%rip), %rsi     # 0x142f76
leaq -0x418(%rbp), %rdi
callq 0x7520
jmp 0x81d89
movq -0x628(%rbp), %rdi
leaq -0x418(%rbp), %rsi
callq 0x9c50
jmp 0x81d9e
movq -0x628(%rbp), %rdi
movb $0x0, -0x41a(%rbp)
leaq 0x12c025(%rip), %rsi    # 0x1addd8
leaq -0x7812a(%rip), %rdx    # 0x9c90
callq 0x7610
jmp 0x82458
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x81dea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x418(%rbp), %rdi
callq 0x7708
leaq -0x419(%rbp), %rdi
callq 0x73d0
testb $0x1, -0x41a(%rbp)
jne 0x81e01
jmp 0x81e0d
movq -0x628(%rbp), %rdi
callq 0x72c0
jmp 0x8244f
jmp 0x81e14
jmp 0x81e16
jmp 0x81e18
jmp 0x82434
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0x420(%rbp)
cmpl $0x0, -0x420(%rbp)
jne 0x81e5e
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc1495(%rip), %r8      # 0x1432e9
callq 0x79220
jmp 0x81fd8
cmpl $0x1, -0x420(%rbp)
jne 0x81e92
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc146c(%rip), %r8      # 0x1432f4
callq 0x79220
jmp 0x81fd6
cmpl $0x2, -0x420(%rbp)
jne 0x81ec6
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc144c(%rip), %r8      # 0x143308
callq 0x79220
jmp 0x81fd4
cmpl $0x3, -0x420(%rbp)
jne 0x81f02
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
movq -0x18(%rbp), %rax
movl 0x14(%rax), %r8d
leaq 0xc1424(%rip), %r9      # 0x14331c
callq 0x79330
jmp 0x81fd2
movb $0x1, -0x442(%rbp)
movl $0x10, %edi
callq 0x71a0
movq %rax, -0x638(%rbp)
leaq -0x441(%rbp), %rdi
movq %rdi, -0x630(%rbp)
callq 0x7650
movq -0x630(%rbp), %rdx
leaq 0xc103b(%rip), %rsi     # 0x142f76
leaq -0x440(%rbp), %rdi
callq 0x7520
jmp 0x81f49
movq -0x638(%rbp), %rdi
leaq -0x440(%rbp), %rsi
callq 0x9c50
jmp 0x81f5e
movq -0x638(%rbp), %rdi
movb $0x0, -0x442(%rbp)
leaq 0x12be65(%rip), %rsi    # 0x1addd8
leaq -0x782ea(%rip), %rdx    # 0x9c90
callq 0x7610
jmp 0x82458
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x81faa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x440(%rbp), %rdi
callq 0x7708
leaq -0x441(%rbp), %rdi
callq 0x73d0
testb $0x1, -0x442(%rbp)
jne 0x81fc1
jmp 0x81fcd
movq -0x638(%rbp), %rdi
callq 0x72c0
jmp 0x8244f
jmp 0x81fd4
jmp 0x81fd6
jmp 0x81fd8
jmp 0x82434
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0x448(%rbp)
cmpl $0x0, -0x448(%rbp)
jne 0x8201e
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc131c(%rip), %r8      # 0x143330
callq 0x79220
jmp 0x82198
cmpl $0x1, -0x448(%rbp)
jne 0x82052
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc12f4(%rip), %r8      # 0x14333c
callq 0x79220
jmp 0x82196
cmpl $0x2, -0x448(%rbp)
jne 0x82086
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
leaq 0xc12d5(%rip), %r8      # 0x143351
callq 0x79220
jmp 0x82194
cmpl $0x3, -0x448(%rbp)
jne 0x820c2
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %ecx
movq -0x18(%rbp), %rax
movl 0x14(%rax), %r8d
leaq 0xc12ae(%rip), %r9      # 0x143366
callq 0x79330
jmp 0x82192
movb $0x1, -0x46a(%rbp)
movl $0x10, %edi
callq 0x71a0
movq %rax, -0x648(%rbp)
leaq -0x469(%rbp), %rdi
movq %rdi, -0x640(%rbp)
callq 0x7650
movq -0x640(%rbp), %rdx
leaq 0xc0e7b(%rip), %rsi     # 0x142f76
leaq -0x468(%rbp), %rdi
callq 0x7520
jmp 0x82109
movq -0x648(%rbp), %rdi
leaq -0x468(%rbp), %rsi
callq 0x9c50
jmp 0x8211e
movq -0x648(%rbp), %rdi
movb $0x0, -0x46a(%rbp)
leaq 0x12bca5(%rip), %rsi    # 0x1addd8
leaq -0x784aa(%rip), %rdx    # 0x9c90
callq 0x7610
jmp 0x82458
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x8216a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x468(%rbp), %rdi
callq 0x7708
leaq -0x469(%rbp), %rdi
callq 0x73d0
testb $0x1, -0x46a(%rbp)
jne 0x82181
jmp 0x8218d
movq -0x648(%rbp), %rdi
callq 0x72c0
jmp 0x8244f
jmp 0x82194
jmp 0x82196
jmp 0x82198
jmp 0x82434
movq -0x4c8(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x10(%rax), %esi
callq 0x31910
movq %rax, %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x2f560
movl %eax, -0x470(%rbp)
cmpl $0x0, -0x470(%rbp)
jne 0x821f6
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0xc(%rax), %ecx
leaq 0xc118f(%rip), %r8      # 0x14337b
callq 0x79220
jmp 0x82332
cmpl $0x1, -0x470(%rbp)
jne 0x8222a
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0xc(%rax), %ecx
leaq 0xc1176(%rip), %r8      # 0x143396
callq 0x79220
jmp 0x82330
cmpl $0x2, -0x470(%rbp)
jne 0x8225e
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0xc(%rax), %ecx
leaq 0xc115b(%rip), %r8      # 0x1433af
callq 0x79220
jmp 0x8232e
movb $0x1, -0x492(%rbp)
movl $0x10, %edi
callq 0x71a0
movq %rax, -0x658(%rbp)
leaq -0x491(%rbp), %rdi
movq %rdi, -0x650(%rbp)
callq 0x7650
movq -0x650(%rbp), %rdx
leaq 0xc1131(%rip), %rsi     # 0x1433c8
leaq -0x490(%rbp), %rdi
callq 0x7520
jmp 0x822a5
movq -0x658(%rbp), %rdi
leaq -0x490(%rbp), %rsi
callq 0x9c50
jmp 0x822ba
movq -0x658(%rbp), %rdi
movb $0x0, -0x492(%rbp)
leaq 0x12bb09(%rip), %rsi    # 0x1addd8
leaq -0x78646(%rip), %rdx    # 0x9c90
callq 0x7610
jmp 0x82458
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x82306
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x490(%rbp), %rdi
callq 0x7708
leaq -0x491(%rbp), %rdi
callq 0x73d0
testb $0x1, -0x492(%rbp)
jne 0x8231d
jmp 0x82329
movq -0x658(%rbp), %rdi
callq 0x72c0
jmp 0x8244f
jmp 0x82330
jmp 0x82332
jmp 0x82434
movq -0x4c8(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0x1ec(%rbp), %edx
movq -0x18(%rbp), %rax
movl 0xc(%rax), %ecx
movq -0x18(%rbp), %rax
movl 0x10(%rax), %r8d
leaq 0xc1085(%rip), %r9      # 0x1433e5
callq 0x79330
jmp 0x82434
movb $0x1, -0x4ba(%rbp)
movl $0x10, %edi
callq 0x71a0
movq %rax, -0x668(%rbp)
leaq -0x4b9(%rbp), %rdi
movq %rdi, -0x660(%rbp)
callq 0x7650
movq -0x660(%rbp), %rdx
leaq 0xc0c08(%rip), %rsi     # 0x142fab
leaq -0x4b8(%rbp), %rdi
callq 0x7520
jmp 0x823b1
movq -0x668(%rbp), %rdi
leaq -0x4b8(%rbp), %rsi
callq 0x9c50
jmp 0x823c6
movq -0x668(%rbp), %rdi
movb $0x0, -0x4ba(%rbp)
leaq 0x12b9fd(%rip), %rsi    # 0x1addd8
leaq -0x78752(%rip), %rdx    # 0x9c90
callq 0x7610
jmp 0x82458
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x8240f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x4b8(%rbp), %rdi
callq 0x7708
leaq -0x4b9(%rbp), %rdi
callq 0x73d0
testb $0x1, -0x4ba(%rbp)
jne 0x82426
jmp 0x82432
movq -0x668(%rbp), %rdi
callq 0x72c0
jmp 0x8244f
movq -0x4c8(%rbp), %rdi
movl -0x1ec(%rbp), %esi
callq 0x7c5f0
addq $0x670, %rsp            # imm = 0x670
popq %rbp
retq
movq -0x50(%rbp), %rdi
callq 0x7640
nopl (%rax,%rax)