// File: rossy[P]crossc/SPIRV-Cross/spirv_glsl.cpp
// Function: spirv_cross::CompilerGLSL::emit_glsl_op(unsigned int, unsigned int, unsigned int, unsigned int const*, unsigned int)
void CompilerGLSL::emit_glsl_op(uint32_t result_type, uint32_t id, uint32_t eop, const uint32_t *args, uint32_t)
{
	auto op = static_cast<GLSLstd450>(eop);

	if (is_legacy() && is_unsigned_glsl_opcode(op))
		SPIRV_CROSS_THROW("Unsigned integers are not supported on legacy GLSL targets.");

	switch (op)
	{
	// FP fiddling
	case GLSLstd450Round:
		emit_unary_func_op(result_type, id, args[0], "round");
		break;

	case GLSLstd450RoundEven:
		if ((options.es && options.version >= 300) || (!options.es && options.version >= 130))
			emit_unary_func_op(result_type, id, args[0], "roundEven");
		else
			SPIRV_CROSS_THROW("roundEven supported only in ESSL 300 and GLSL 130 and up.");
		break;

	case GLSLstd450Trunc:
		emit_unary_func_op(result_type, id, args[0], "trunc");
		break;
	case GLSLstd450SAbs:
	case GLSLstd450FAbs:
		emit_unary_func_op(result_type, id, args[0], "abs");
		break;
	case GLSLstd450SSign:
	case GLSLstd450FSign:
		emit_unary_func_op(result_type, id, args[0], "sign");
		break;
	case GLSLstd450Floor:
		emit_unary_func_op(result_type, id, args[0], "floor");
		break;
	case GLSLstd450Ceil:
		emit_unary_func_op(result_type, id, args[0], "ceil");
		break;
	case GLSLstd450Fract:
		emit_unary_func_op(result_type, id, args[0], "fract");
		break;
	case GLSLstd450Radians:
		emit_unary_func_op(result_type, id, args[0], "radians");
		break;
	case GLSLstd450Degrees:
		emit_unary_func_op(result_type, id, args[0], "degrees");
		break;
	case GLSLstd450Fma:
		emit_trinary_func_op(result_type, id, args[0], args[1], args[2], "fma");
		break;
	case GLSLstd450Modf:
		register_call_out_argument(args[1]);
		forced_temporaries.insert(id);
		emit_binary_func_op(result_type, id, args[0], args[1], "modf");
		break;

	case GLSLstd450ModfStruct:
	{
		forced_temporaries.insert(id);
		auto &type = get<SPIRType>(result_type);
		auto flags = ir.meta[id].decoration.decoration_flags;
		statement(flags_to_precision_qualifiers_glsl(type, flags), variable_decl(type, to_name(id)), ";");
		set<SPIRExpression>(id, to_name(id), result_type, true);

		statement(to_expression(id), ".", to_member_name(type, 0), " = ", "modf(", to_expression(args[0]), ", ",
		          to_expression(id), ".", to_member_name(type, 1), ");");
		break;
	}

	// Minmax
	case GLSLstd450UMin:
	case GLSLstd450FMin:
	case GLSLstd450SMin:
		emit_binary_func_op(result_type, id, args[0], args[1], "min");
		break;
	case GLSLstd450FMax:
	case GLSLstd450UMax:
	case GLSLstd450SMax:
		emit_binary_func_op(result_type, id, args[0], args[1], "max");
		break;
	case GLSLstd450FClamp:
	case GLSLstd450UClamp:
	case GLSLstd450SClamp:
		emit_trinary_func_op(result_type, id, args[0], args[1], args[2], "clamp");
		break;

	// Trig
	case GLSLstd450Sin:
		emit_unary_func_op(result_type, id, args[0], "sin");
		break;
	case GLSLstd450Cos:
		emit_unary_func_op(result_type, id, args[0], "cos");
		break;
	case GLSLstd450Tan:
		emit_unary_func_op(result_type, id, args[0], "tan");
		break;
	case GLSLstd450Asin:
		emit_unary_func_op(result_type, id, args[0], "asin");
		break;
	case GLSLstd450Acos:
		emit_unary_func_op(result_type, id, args[0], "acos");
		break;
	case GLSLstd450Atan:
		emit_unary_func_op(result_type, id, args[0], "atan");
		break;
	case GLSLstd450Sinh:
		emit_unary_func_op(result_type, id, args[0], "sinh");
		break;
	case GLSLstd450Cosh:
		emit_unary_func_op(result_type, id, args[0], "cosh");
		break;
	case GLSLstd450Tanh:
		emit_unary_func_op(result_type, id, args[0], "tanh");
		break;
	case GLSLstd450Asinh:
		emit_unary_func_op(result_type, id, args[0], "asinh");
		break;
	case GLSLstd450Acosh:
		emit_unary_func_op(result_type, id, args[0], "acosh");
		break;
	case GLSLstd450Atanh:
		emit_unary_func_op(result_type, id, args[0], "atanh");
		break;
	case GLSLstd450Atan2:
		emit_binary_func_op(result_type, id, args[0], args[1], "atan");
		break;

	// Exponentials
	case GLSLstd450Pow:
		emit_binary_func_op(result_type, id, args[0], args[1], "pow");
		break;
	case GLSLstd450Exp:
		emit_unary_func_op(result_type, id, args[0], "exp");
		break;
	case GLSLstd450Log:
		emit_unary_func_op(result_type, id, args[0], "log");
		break;
	case GLSLstd450Exp2:
		emit_unary_func_op(result_type, id, args[0], "exp2");
		break;
	case GLSLstd450Log2:
		emit_unary_func_op(result_type, id, args[0], "log2");
		break;
	case GLSLstd450Sqrt:
		emit_unary_func_op(result_type, id, args[0], "sqrt");
		break;
	case GLSLstd450InverseSqrt:
		emit_unary_func_op(result_type, id, args[0], "inversesqrt");
		break;

	// Matrix math
	case GLSLstd450Determinant:
		emit_unary_func_op(result_type, id, args[0], "determinant");
		break;
	case GLSLstd450MatrixInverse:
		emit_unary_func_op(result_type, id, args[0], "inverse");
		break;

	// Lerping
	case GLSLstd450FMix:
	case GLSLstd450IMix:
	{
		emit_mix_op(result_type, id, args[0], args[1], args[2]);
		break;
	}
	case GLSLstd450Step:
		emit_binary_func_op(result_type, id, args[0], args[1], "step");
		break;
	case GLSLstd450SmoothStep:
		emit_trinary_func_op(result_type, id, args[0], args[1], args[2], "smoothstep");
		break;

	// Packing
	case GLSLstd450Frexp:
		register_call_out_argument(args[1]);
		forced_temporaries.insert(id);
		emit_binary_func_op(result_type, id, args[0], args[1], "frexp");
		break;

	case GLSLstd450FrexpStruct:
	{
		forced_temporaries.insert(id);
		auto &type = get<SPIRType>(result_type);
		auto flags = ir.meta[id].decoration.decoration_flags;
		statement(flags_to_precision_qualifiers_glsl(type, flags), variable_decl(type, to_name(id)), ";");
		set<SPIRExpression>(id, to_name(id), result_type, true);

		statement(to_expression(id), ".", to_member_name(type, 0), " = ", "frexp(", to_expression(args[0]), ", ",
		          to_expression(id), ".", to_member_name(type, 1), ");");
		break;
	}

	case GLSLstd450Ldexp:
		emit_binary_func_op(result_type, id, args[0], args[1], "ldexp");
		break;
	case GLSLstd450PackSnorm4x8:
		emit_unary_func_op(result_type, id, args[0], "packSnorm4x8");
		break;
	case GLSLstd450PackUnorm4x8:
		emit_unary_func_op(result_type, id, args[0], "packUnorm4x8");
		break;
	case GLSLstd450PackSnorm2x16:
		emit_unary_func_op(result_type, id, args[0], "packSnorm2x16");
		break;
	case GLSLstd450PackUnorm2x16:
		emit_unary_func_op(result_type, id, args[0], "packUnorm2x16");
		break;
	case GLSLstd450PackHalf2x16:
		emit_unary_func_op(result_type, id, args[0], "packHalf2x16");
		break;
	case GLSLstd450UnpackSnorm4x8:
		emit_unary_func_op(result_type, id, args[0], "unpackSnorm4x8");
		break;
	case GLSLstd450UnpackUnorm4x8:
		emit_unary_func_op(result_type, id, args[0], "unpackUnorm4x8");
		break;
	case GLSLstd450UnpackSnorm2x16:
		emit_unary_func_op(result_type, id, args[0], "unpackSnorm2x16");
		break;
	case GLSLstd450UnpackUnorm2x16:
		emit_unary_func_op(result_type, id, args[0], "unpackUnorm2x16");
		break;
	case GLSLstd450UnpackHalf2x16:
		emit_unary_func_op(result_type, id, args[0], "unpackHalf2x16");
		break;

	case GLSLstd450PackDouble2x32:
		emit_unary_func_op(result_type, id, args[0], "packDouble2x32");
		break;
	case GLSLstd450UnpackDouble2x32:
		emit_unary_func_op(result_type, id, args[0], "unpackDouble2x32");
		break;

	// Vector math
	case GLSLstd450Length:
		emit_unary_func_op(result_type, id, args[0], "length");
		break;
	case GLSLstd450Distance:
		emit_binary_func_op(result_type, id, args[0], args[1], "distance");
		break;
	case GLSLstd450Cross:
		emit_binary_func_op(result_type, id, args[0], args[1], "cross");
		break;
	case GLSLstd450Normalize:
		emit_unary_func_op(result_type, id, args[0], "normalize");
		break;
	case GLSLstd450FaceForward:
		emit_trinary_func_op(result_type, id, args[0], args[1], args[2], "faceforward");
		break;
	case GLSLstd450Reflect:
		emit_binary_func_op(result_type, id, args[0], args[1], "reflect");
		break;
	case GLSLstd450Refract:
		emit_trinary_func_op(result_type, id, args[0], args[1], args[2], "refract");
		break;

	// Bit-fiddling
	case GLSLstd450FindILsb:
		emit_unary_func_op(result_type, id, args[0], "findLSB");
		break;
	case GLSLstd450FindSMsb:
	case GLSLstd450FindUMsb:
		emit_unary_func_op(result_type, id, args[0], "findMSB");
		break;

	// Multisampled varying
	case GLSLstd450InterpolateAtCentroid:
		emit_unary_func_op(result_type, id, args[0], "interpolateAtCentroid");
		break;
	case GLSLstd450InterpolateAtSample:
		emit_binary_func_op(result_type, id, args[0], args[1], "interpolateAtSample");
		break;
	case GLSLstd450InterpolateAtOffset:
		emit_binary_func_op(result_type, id, args[0], args[1], "interpolateAtOffset");
		break;

	case GLSLstd450NMin:
		emit_binary_func_op(result_type, id, args[0], args[1], "unsupported_glsl450_nmin");
		break;
	case GLSLstd450NMax:
		emit_binary_func_op(result_type, id, args[0], args[1], "unsupported_glsl450_nmax");
		break;
	case GLSLstd450NClamp:
		emit_binary_func_op(result_type, id, args[0], args[1], "unsupported_glsl450_nclamp");
		break;

	default:
		statement("// unimplemented GLSL op ", eop);
		break;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x420, %rsp            # imm = 0x420
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movl %ecx, -0x14(%rbp)
movq %r8, -0x20(%rbp)
movl %r9d, -0x24(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x380(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x28(%rbp)
callq 0x9f610
testb $0x1, %al
jne 0x7e14f
jmp 0x7e218
movl -0x28(%rbp), %edi
callq 0x7f620
testb $0x1, %al
jne 0x7e160
jmp 0x7e218
movb $0x1, -0x5d(%rbp)
movl $0x10, %edi
callq 0x71a0
movq %rax, -0x390(%rbp)
leaq -0x49(%rbp), %rdi
movq %rdi, -0x388(%rbp)
callq 0x7650
movq -0x388(%rbp), %rdx
leaq 0xc4a06(%rip), %rsi     # 0x142b99
leaq -0x48(%rbp), %rdi
callq 0x7520
jmp 0x7e19e
movq -0x390(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x9c50
jmp 0x7e1b0
movq -0x390(%rbp), %rdi
movb $0x0, -0x5d(%rbp)
leaq 0x12fc16(%rip), %rsi    # 0x1addd8
leaq -0x74539(%rip), %rdx    # 0x9c90
callq 0x7610
jmp 0x7f61f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x7e1f6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x7708
leaq -0x49(%rbp), %rdi
callq 0x73d0
testb $0x1, -0x5d(%rbp)
jne 0x7e207
jmp 0x7e213
movq -0x390(%rbp), %rdi
callq 0x72c0
jmp 0x7f616
movl -0x28(%rbp), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x398(%rbp)
subl $0x50, %eax
ja 0x7f5f6
movq -0x398(%rbp), %rax
leaq 0xc22e3(%rip), %rcx     # 0x140520
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc3859(%rip), %r8      # 0x141ab9
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rax
testb $0x1, 0x43c(%rax)
je 0x7e28d
movq -0x380(%rbp), %rax
cmpl $0x12c, 0x438(%rax)     # imm = 0x12C
jae 0x7e2b0
movq -0x380(%rbp), %rax
testb $0x1, 0x43c(%rax)
jne 0x7e2d4
movq -0x380(%rbp), %rax
cmpl $0x82, 0x438(%rax)
jb 0x7e2d4
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc37f5(%rip), %r8      # 0x141abf
callq 0x79220
jmp 0x7e39b
movb $0x1, -0x82(%rbp)
movl $0x10, %edi
callq 0x71a0
movq %rax, -0x3a8(%rbp)
leaq -0x81(%rbp), %rdi
movq %rdi, -0x3a0(%rbp)
callq 0x7650
movq -0x3a0(%rbp), %rdx
leaq 0xc48c8(%rip), %rsi     # 0x142bd5
leaq -0x80(%rbp), %rdi
callq 0x7520
jmp 0x7e318
movq -0x3a8(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x9c50
jmp 0x7e32a
movq -0x3a8(%rbp), %rdi
movb $0x0, -0x82(%rbp)
leaq 0x12fa99(%rip), %rsi    # 0x1addd8
leaq -0x746b6(%rip), %rdx    # 0x9c90
callq 0x7610
jmp 0x7f61f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x7e373
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x7708
leaq -0x81(%rbp), %rdi
callq 0x73d0
testb $0x1, -0x82(%rbp)
jne 0x7e38a
jmp 0x7e396
movq -0x3a8(%rbp), %rdi
callq 0x72c0
jmp 0x7f616
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc386a(%rip), %r8      # 0x141c24
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc32a4(%rip), %r8      # 0x141682
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc36c7(%rip), %r8      # 0x141ac9
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc3411(%rip), %r8      # 0x141837
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc3328(%rip), %r8      # 0x141772
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc3645(%rip), %r8      # 0x141ab3
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc360f(%rip), %r8      # 0x141aa1
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc32c7(%rip), %r8      # 0x14177d
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
movq -0x20(%rbp), %rax
movl 0x4(%rax), %r8d
movq -0x20(%rbp), %rax
movl 0x8(%rax), %r9d
leaq 0xc3353(%rip), %rax     # 0x14183d
movq %rax, (%rsp)
callq 0x798c0
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movq -0x20(%rbp), %rax
movl 0x4(%rax), %esi
callq 0x7f670
movq -0x380(%rbp), %rdi
addq $0x228, %rdi            # imm = 0x228
leaq -0x10(%rbp), %rsi
callq 0x2e890
movq -0x380(%rbp), %rdi
movq %rax, -0x98(%rbp)
movb %dl, -0x90(%rbp)
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
movq -0x20(%rbp), %rax
movl 0x4(%rax), %r8d
leaq 0xc3501(%rip), %r9      # 0x141a52
callq 0x79330
jmp 0x7f60d
movq -0x380(%rbp), %rdi
addq $0x228, %rdi            # imm = 0x228
leaq -0x10(%rbp), %rsi
callq 0x2e890
movq -0x380(%rbp), %rdi
movq %rax, -0xa8(%rbp)
movb %dl, -0xa0(%rbp)
movl -0xc(%rbp), %esi
callq 0xea90
movq -0x380(%rbp), %rdi
movq %rax, -0xb0(%rbp)
addq $0x38, %rdi
movl -0x10(%rbp), %eax
movl %eax, %esi
callq 0xead0
movq %rax, %rsi
addq $0x60, %rsi
leaq -0xf0(%rbp), %rdi
movq %rdi, -0x3b8(%rbp)
callq 0xef10
movq -0x380(%rbp), %rdi
movq -0x3b8(%rbp), %rdx
movq -0xb0(%rbp), %rsi
callq 0x61830
movq %rax, -0x3b0(%rbp)
jmp 0x7e5e7
movq -0x380(%rbp), %rsi
movq -0x3b0(%rbp), %rax
movq %rax, -0xf8(%rbp)
movq -0xb0(%rbp), %rax
movq %rax, -0x3c0(%rbp)
movl -0x10(%rbp), %edx
movq (%rsi), %rax
movq 0x38(%rax), %rax
leaq -0x138(%rbp), %rdi
movl $0x1, %ecx
callq *%rax
jmp 0x7e624
movq -0x3c0(%rbp), %rdx
movq -0x380(%rbp), %rsi
movq (%rsi), %rax
movq 0xc8(%rax), %rax
leaq -0x118(%rbp), %rdi
leaq -0x138(%rbp), %rcx
xorl %r8d, %r8d
callq *%rax
jmp 0x7e651
movq -0x380(%rbp), %rdi
leaq 0xcaa47(%rip), %rcx     # 0x1490a6
leaq -0xf8(%rbp), %rsi
leaq -0x118(%rbp), %rdx
callq 0xa37e0
jmp 0x7e674
leaq -0x118(%rbp), %rdi
callq 0x7708
leaq -0x138(%rbp), %rdi
callq 0x7708
movq -0x380(%rbp), %rsi
movl -0x10(%rbp), %edx
movl %edx, -0x3c4(%rbp)
movq (%rsi), %rax
movq 0x38(%rax), %rax
leaq -0x158(%rbp), %rdi
movl $0x1, %ecx
callq *%rax
jmp 0x7e6b3
movl -0x3c4(%rbp), %esi
movq -0x380(%rbp), %rdi
movb $0x1, -0x159(%rbp)
leaq -0x158(%rbp), %rdx
leaq -0xc(%rbp), %rcx
leaq -0x159(%rbp), %r8
callq 0xa2780
jmp 0x7e6e0
leaq -0x158(%rbp), %rdi
callq 0x7708
movq -0x380(%rbp), %rsi
movl -0x10(%rbp), %edx
leaq -0x180(%rbp), %rdi
callq 0x71b50
jmp 0x7e704
movq -0x380(%rbp), %rsi
movq -0xb0(%rbp), %rdx
leaq -0x1a0(%rbp), %rdi
xorl %ecx, %ecx
callq 0x62230
jmp 0x7e722
movq -0x380(%rbp), %rsi
movq -0x20(%rbp), %rax
movl (%rax), %edx
leaq -0x1c0(%rbp), %rdi
callq 0x71b50
jmp 0x7e73d
movq -0x380(%rbp), %rsi
movl -0x10(%rbp), %edx
leaq -0x1e0(%rbp), %rdi
callq 0x71b50
jmp 0x7e755
movq -0x380(%rbp), %rsi
movq -0xb0(%rbp), %rdx
leaq -0x200(%rbp), %rdi
movl $0x1, %ecx
callq 0x62230
jmp 0x7e776
movq -0x380(%rbp), %rdi
leaq 0xca921(%rip), %rcx     # 0x1490a5
movq %rsp, %rax
movq %rcx, 0x28(%rax)
leaq -0x200(%rbp), %rcx
movq %rcx, 0x20(%rax)
leaq 0xc6590(%rip), %rdx     # 0x144d2d
movq %rdx, 0x18(%rax)
leaq -0x1e0(%rbp), %rcx
movq %rcx, 0x10(%rax)
leaq 0xc5ddc(%rip), %rcx     # 0x14458f
movq %rcx, 0x8(%rax)
leaq -0x1c0(%rbp), %rcx
movq %rcx, (%rax)
leaq 0xca847(%rip), %r8      # 0x14900f
leaq 0xc4440(%rip), %r9      # 0x142c0f
leaq -0x180(%rbp), %rsi
leaq -0x1a0(%rbp), %rcx
callq 0xa3910
jmp 0x7e7e4
leaq -0x200(%rbp), %rdi
callq 0x7708
leaq -0x1e0(%rbp), %rdi
callq 0x7708
leaq -0x1c0(%rbp), %rdi
callq 0x7708
leaq -0x1a0(%rbp), %rdi
callq 0x7708
leaq -0x180(%rbp), %rdi
callq 0x7708
leaq -0xf0(%rbp), %rdi
callq 0xf250
jmp 0x7f60d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x7e916
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x7e868
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x7708
leaq -0x138(%rbp), %rdi
callq 0x7708
jmp 0x7e916
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x158(%rbp), %rdi
callq 0x7708
jmp 0x7e916
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x7e90a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x7e8fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x7e8f2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x7e8e6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x200(%rbp), %rdi
callq 0x7708
leaq -0x1e0(%rbp), %rdi
callq 0x7708
leaq -0x1c0(%rbp), %rdi
callq 0x7708
leaq -0x1a0(%rbp), %rdi
callq 0x7708
leaq -0x180(%rbp), %rdi
callq 0x7708
leaq -0xf0(%rbp), %rdi
callq 0xf250
jmp 0x7f616
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
movq -0x20(%rbp), %rax
movl 0x4(%rax), %r8d
leaq 0xce67f(%rip), %r9      # 0x14cfc8
callq 0x79330
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
movq -0x20(%rbp), %rax
movl 0x4(%rax), %r8d
leaq 0xce660(%rip), %r9      # 0x14cfd5
callq 0x79330
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
movq -0x20(%rbp), %rax
movl 0x4(%rax), %r8d
movq -0x20(%rbp), %rax
movl 0x8(%rax), %r9d
leaq 0xce639(%rip), %rax     # 0x14cfe2
movq %rax, (%rsp)
callq 0x798c0
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc2cc9(%rip), %r8      # 0x14169a
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc2c92(%rip), %r8      # 0x141687
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc2c8c(%rip), %r8      # 0x1416a5
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc2c5c(%rip), %r8      # 0x141699
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc2c25(%rip), %r8      # 0x141686
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc2c1f(%rip), %r8      # 0x1416a4
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc2bf6(%rip), %r8      # 0x14169f
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc2bbf(%rip), %r8      # 0x14168c
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc2bb9(%rip), %r8      # 0x1416aa
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc2b89(%rip), %r8      # 0x14169e
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc2b52(%rip), %r8      # 0x14168b
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc2b4c(%rip), %r8      # 0x1416a9
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
movq -0x20(%rbp), %rax
movl 0x4(%rax), %r8d
leaq 0xc2b1b(%rip), %r9      # 0x1416a4
callq 0x79330
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
movq -0x20(%rbp), %rax
movl 0x4(%rax), %r8d
leaq 0xc2ee8(%rip), %r9      # 0x141a9d
callq 0x79330
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc2dd7(%rip), %r8      # 0x1419b0
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc2dd5(%rip), %r8      # 0x1419d2
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc2bd6(%rip), %r8      # 0x1417f7
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc2d91(%rip), %r8      # 0x1419d6
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc2d34(%rip), %r8      # 0x14199d
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc2d09(%rip), %r8      # 0x141996
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc3f64(%rip), %r8      # 0x142c15
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc2cb9(%rip), %r8      # 0x14198e
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
movq -0x20(%rbp), %rax
movl 0x4(%rax), %r8d
movq -0x20(%rbp), %rax
movl 0x8(%rax), %r9d
callq 0x7ac40
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
movq -0x20(%rbp), %rax
movl 0x4(%rax), %r8d
leaq 0xc2da6(%rip), %r9      # 0x141ad4
callq 0x79330
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
movq -0x20(%rbp), %rax
movl 0x4(%rax), %r8d
movq -0x20(%rbp), %rax
movl 0x8(%rax), %r9d
leaq 0xc2d6c(%rip), %rax     # 0x141ace
movq %rax, (%rsp)
callq 0x798c0
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movq -0x20(%rbp), %rax
movl 0x4(%rax), %esi
callq 0x7f670
movq -0x380(%rbp), %rdi
addq $0x228, %rdi            # imm = 0x228
leaq -0x10(%rbp), %rsi
callq 0x2e890
movq -0x380(%rbp), %rdi
movq %rax, -0x210(%rbp)
movb %dl, -0x208(%rbp)
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
movq -0x20(%rbp), %rax
movl 0x4(%rax), %r8d
leaq 0xc2a78(%rip), %r9      # 0x141841
callq 0x79330
jmp 0x7f60d
movq -0x380(%rbp), %rdi
addq $0x228, %rdi            # imm = 0x228
leaq -0x10(%rbp), %rsi
callq 0x2e890
movq -0x380(%rbp), %rdi
movq %rax, -0x220(%rbp)
movb %dl, -0x218(%rbp)
movl -0xc(%rbp), %esi
callq 0xea90
movq -0x380(%rbp), %rdi
movq %rax, -0x228(%rbp)
addq $0x38, %rdi
movl -0x10(%rbp), %eax
movl %eax, %esi
callq 0xead0
movq %rax, %rsi
addq $0x60, %rsi
leaq -0x268(%rbp), %rdi
movq %rdi, -0x3d8(%rbp)
callq 0xef10
movq -0x380(%rbp), %rdi
movq -0x3d8(%rbp), %rdx
movq -0x228(%rbp), %rsi
callq 0x61830
movq %rax, -0x3d0(%rbp)
jmp 0x7ee5f
movq -0x380(%rbp), %rsi
movq -0x3d0(%rbp), %rax
movq %rax, -0x270(%rbp)
movq -0x228(%rbp), %rax
movq %rax, -0x3e0(%rbp)
movl -0x10(%rbp), %edx
movq (%rsi), %rax
movq 0x38(%rax), %rax
leaq -0x2b0(%rbp), %rdi
movl $0x1, %ecx
callq *%rax
jmp 0x7ee9c
movq -0x3e0(%rbp), %rdx
movq -0x380(%rbp), %rsi
movq (%rsi), %rax
movq 0xc8(%rax), %rax
leaq -0x290(%rbp), %rdi
leaq -0x2b0(%rbp), %rcx
xorl %r8d, %r8d
callq *%rax
jmp 0x7eec9
movq -0x380(%rbp), %rdi
leaq 0xca1cf(%rip), %rcx     # 0x1490a6
leaq -0x270(%rbp), %rsi
leaq -0x290(%rbp), %rdx
callq 0xa37e0
jmp 0x7eeec
leaq -0x290(%rbp), %rdi
callq 0x7708
leaq -0x2b0(%rbp), %rdi
callq 0x7708
movq -0x380(%rbp), %rsi
movl -0x10(%rbp), %edx
movl %edx, -0x3e4(%rbp)
movq (%rsi), %rax
movq 0x38(%rax), %rax
leaq -0x2d0(%rbp), %rdi
movl $0x1, %ecx
callq *%rax
jmp 0x7ef2b
movl -0x3e4(%rbp), %esi
movq -0x380(%rbp), %rdi
movb $0x1, -0x2d1(%rbp)
leaq -0x2d0(%rbp), %rdx
leaq -0xc(%rbp), %rcx
leaq -0x2d1(%rbp), %r8
callq 0xa2780
jmp 0x7ef58
leaq -0x2d0(%rbp), %rdi
callq 0x7708
movq -0x380(%rbp), %rsi
movl -0x10(%rbp), %edx
leaq -0x2f8(%rbp), %rdi
callq 0x71b50
jmp 0x7ef7c
movq -0x380(%rbp), %rsi
movq -0x228(%rbp), %rdx
leaq -0x318(%rbp), %rdi
xorl %ecx, %ecx
callq 0x62230
jmp 0x7ef9a
movq -0x380(%rbp), %rsi
movq -0x20(%rbp), %rax
movl (%rax), %edx
leaq -0x338(%rbp), %rdi
callq 0x71b50
jmp 0x7efb5
movq -0x380(%rbp), %rsi
movl -0x10(%rbp), %edx
leaq -0x358(%rbp), %rdi
callq 0x71b50
jmp 0x7efcd
movq -0x380(%rbp), %rsi
movq -0x228(%rbp), %rdx
leaq -0x378(%rbp), %rdi
movl $0x1, %ecx
callq 0x62230
jmp 0x7efee
movq -0x380(%rbp), %rdi
leaq 0xca0a9(%rip), %rcx     # 0x1490a5
movq %rsp, %rax
movq %rcx, 0x28(%rax)
leaq -0x378(%rbp), %rcx
movq %rcx, 0x20(%rax)
leaq 0xc5d18(%rip), %rdx     # 0x144d2d
movq %rdx, 0x18(%rax)
leaq -0x358(%rbp), %rcx
movq %rcx, 0x10(%rax)
leaq 0xc5564(%rip), %rcx     # 0x14458f
movq %rcx, 0x8(%rax)
leaq -0x338(%rbp), %rcx
movq %rcx, (%rax)
leaq 0xc9fcf(%rip), %r8      # 0x14900f
leaq 0xc3bda(%rip), %r9      # 0x142c21
leaq -0x2f8(%rbp), %rsi
leaq -0x318(%rbp), %rcx
callq 0xa3b00
jmp 0x7f05c
leaq -0x378(%rbp), %rdi
callq 0x7708
leaq -0x358(%rbp), %rdi
callq 0x7708
leaq -0x338(%rbp), %rdi
callq 0x7708
leaq -0x318(%rbp), %rdi
callq 0x7708
leaq -0x2f8(%rbp), %rdi
callq 0x7708
leaq -0x268(%rbp), %rdi
callq 0xf250
jmp 0x7f60d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x7f18e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x7f0e0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x290(%rbp), %rdi
callq 0x7708
leaq -0x2b0(%rbp), %rdi
callq 0x7708
jmp 0x7f18e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x2d0(%rbp), %rdi
callq 0x7708
jmp 0x7f18e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x7f182
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x7f176
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x7f16a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x7f15e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x378(%rbp), %rdi
callq 0x7708
leaq -0x358(%rbp), %rdi
callq 0x7708
leaq -0x338(%rbp), %rdi
callq 0x7708
leaq -0x318(%rbp), %rdi
callq 0x7708
leaq -0x2f8(%rbp), %rdi
callq 0x7708
leaq -0x268(%rbp), %rdi
callq 0xf250
jmp 0x7f616
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
movq -0x20(%rbp), %rax
movl 0x4(%rax), %r8d
leaq 0xc27ed(%rip), %r9      # 0x1419ae
callq 0x79330
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc9535(%rip), %r8      # 0x14871a
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc9545(%rip), %r8      # 0x14874e
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc9555(%rip), %r8      # 0x148782
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc9567(%rip), %r8      # 0x1487b8
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc9471(%rip), %r8      # 0x1486e6
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc949a(%rip), %r8      # 0x148733
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc94aa(%rip), %r8      # 0x148767
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc94bb(%rip), %r8      # 0x14879c
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc94cd(%rip), %r8      # 0x1487d2
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc93d6(%rip), %r8      # 0x1486ff
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xcdc19(%rip), %r8      # 0x14cf66
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc28e0(%rip), %r8      # 0x141c51
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc261f(%rip), %r8      # 0x1419b4
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
movq -0x20(%rbp), %rax
movl 0x4(%rax), %r8d
leaq 0xce579(%rip), %r9      # 0x14d93a
callq 0x79330
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
movq -0x20(%rbp), %rax
movl 0x4(%rax), %r8d
leaq 0xc238a(%rip), %r9      # 0x141777
callq 0x79330
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc2668(%rip), %r8      # 0x141a79
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
movq -0x20(%rbp), %rax
movl 0x4(%rax), %r8d
movq -0x20(%rbp), %rax
movl 0x8(%rax), %r9d
leaq 0xc23b7(%rip), %rax     # 0x1417fc
movq %rax, (%rsp)
callq 0x798c0
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
movq -0x20(%rbp), %rax
movl 0x4(%rax), %r8d
leaq 0xc2634(%rip), %r9      # 0x141aa9
callq 0x79330
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
movq -0x20(%rbp), %rax
movl 0x4(%rax), %r8d
movq -0x20(%rbp), %rax
movl 0x8(%rax), %r9d
leaq 0xc2608(%rip), %rax     # 0x141ab1
movq %rax, (%rsp)
callq 0x798c0
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc2337(%rip), %r8      # 0x141808
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc231b(%rip), %r8      # 0x141810
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
leaq 0xc244b(%rip), %r8      # 0x141964
callq 0x79220
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
movq -0x20(%rbp), %rax
movl 0x4(%rax), %r8d
leaq 0xc2435(%rip), %r9      # 0x14197a
callq 0x79330
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
movq -0x20(%rbp), %rax
movl 0x4(%rax), %r8d
leaq 0xc23df(%rip), %r9      # 0x141950
callq 0x79330
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
movq -0x20(%rbp), %rax
movl 0x4(%rax), %r8d
leaq 0xc368b(%rip), %r9      # 0x142c28
callq 0x79330
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
movq -0x20(%rbp), %rax
movl 0x4(%rax), %r8d
leaq 0xc367b(%rip), %r9      # 0x142c41
callq 0x79330
jmp 0x7f60d
movq -0x380(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
movq -0x20(%rbp), %rax
movl 0x4(%rax), %r8d
leaq 0xc366b(%rip), %r9      # 0x142c5a
callq 0x79330
jmp 0x7f60d
movq -0x380(%rbp), %rdi
leaq 0xc3671(%rip), %rsi     # 0x142c75
leaq -0x14(%rbp), %rdx
callq 0xa3cf0
addq $0x420, %rsp            # imm = 0x420
popq %rbp
retq
movq -0x58(%rbp), %rdi
callq 0x7640
nop