// File: rossy[P]crossc/SPIRV-Cross/spirv_glsl.cpp
// Function: spirv_cross::CompilerGLSL::legacy_tex_op(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, spirv_cross::SPIRType const&, unsigned int, unsigned int)
string CompilerGLSL::legacy_tex_op(const std::string &op, const SPIRType &imgtype, uint32_t lod, uint32_t tex)
{
	const char *type;
	switch (imgtype.image.dim)
	{
	case spv::Dim1D:
		type = (imgtype.image.arrayed && !options.es) ? "1DArray" : "1D";
		break;
	case spv::Dim2D:
		type = (imgtype.image.arrayed && !options.es) ? "2DArray" : "2D";
		break;
	case spv::Dim3D:
		type = "3D";
		break;
	case spv::DimCube:
		type = "Cube";
		break;
	case spv::DimBuffer:
		type = "Buffer";
		break;
	case spv::DimSubpassData:
		type = "2D";
		break;
	default:
		type = "";
		break;
	}

	bool use_explicit_lod = check_explicit_lod_allowed(lod);

	if (op == "textureLod" || op == "textureProjLod" || op == "textureGrad" || op == "textureProjGrad")
	{
		if (is_legacy_es())
		{
			if (use_explicit_lod)
				require_extension_internal("GL_EXT_shader_texture_lod");
		}
		else if (is_legacy())
			require_extension_internal("GL_ARB_shader_texture_lod");
	}

	if (op == "textureLodOffset" || op == "textureProjLodOffset")
	{
		if (is_legacy_es())
			SPIRV_CROSS_THROW(join(op, " not allowed in legacy ES"));

		require_extension_internal("GL_EXT_gpu_shader4");
	}

	// GLES has very limited support for shadow samplers.
	// Basically shadow2D and shadow2DProj work through EXT_shadow_samplers,
	// everything else can just throw
	if (image_is_comparison(imgtype, tex) && is_legacy_es())
	{
		if (op == "texture" || op == "textureProj")
			require_extension_internal("GL_EXT_shadow_samplers");
		else
			SPIRV_CROSS_THROW(join(op, " not allowed on depth samplers in legacy ES"));
	}

	bool is_es_and_depth = is_legacy_es() && image_is_comparison(imgtype, tex);
	std::string type_prefix = image_is_comparison(imgtype, tex) ? "shadow" : "texture";

	if (op == "texture")
		return is_es_and_depth ? join(type_prefix, type, "EXT") : join(type_prefix, type);
	else if (op == "textureLod")
	{
		if (use_explicit_lod)
			return join(type_prefix, type, is_legacy_es() ? "LodEXT" : "Lod");
		else
			return join(type_prefix, type);
	}
	else if (op == "textureProj")
		return join(type_prefix, type, is_es_and_depth ? "ProjEXT" : "Proj");
	else if (op == "textureGrad")
		return join(type_prefix, type, is_legacy_es() ? "GradEXT" : is_legacy_desktop() ? "GradARB" : "Grad");
	else if (op == "textureProjLod")
	{
		if (use_explicit_lod)
			return join(type_prefix, type, is_legacy_es() ? "ProjLodEXT" : "ProjLod");
		else
			return join(type_prefix, type, "Proj");
	}
	else if (op == "textureLodOffset")
	{
		if (use_explicit_lod)
			return join(type_prefix, type, "LodOffset");
		else
			return join(type_prefix, type);
	}
	else if (op == "textureProjGrad")
		return join(type_prefix, type,
		            is_legacy_es() ? "ProjGradEXT" : is_legacy_desktop() ? "ProjGradARB" : "ProjGrad");
	else if (op == "textureProjLodOffset")
	{
		if (use_explicit_lod)
			return join(type_prefix, type, "ProjLodOffset");
		else
			return join(type_prefix, type, "ProjOffset");
	}
	else
	{
		SPIRV_CROSS_THROW(join("Unsupported legacy texture op: ", op));
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x250, %rsp            # imm = 0x250
movq %rdi, -0x1d0(%rbp)
movq %rdi, %rax
movq %rax, -0x1c8(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movl %r8d, -0x24(%rbp)
movl %r9d, -0x28(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x1c0(%rbp)
movq -0x20(%rbp), %rax
movl 0x84(%rax), %eax
movq %rax, -0x1b8(%rbp)
subq $0x6, %rax
ja 0x7a04e
movq -0x1b8(%rbp), %rax
leaq 0xc654c(%rip), %rcx     # 0x1404c4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x20(%rbp), %rcx
xorl %eax, %eax
testb $0x1, 0x89(%rcx)
movb %al, -0x1d1(%rbp)
je 0x79fab
movq -0x1c0(%rbp), %rax
movb 0x43c(%rax), %al
xorb $-0x1, %al
movb %al, -0x1d1(%rbp)
movb -0x1d1(%rbp), %dl
leaq 0xc7e0a(%rip), %rax     # 0x141dc2
leaq 0xc7e0c(%rip), %rcx     # 0x141dcb
testb $0x1, %dl
cmovneq %rcx, %rax
movq %rax, -0x30(%rbp)
jmp 0x7a059
movq -0x20(%rbp), %rcx
xorl %eax, %eax
testb $0x1, 0x89(%rcx)
movb %al, -0x1d2(%rbp)
je 0x79ff9
movq -0x1c0(%rbp), %rax
movb 0x43c(%rax), %al
xorb $-0x1, %al
movb %al, -0x1d2(%rbp)
movb -0x1d2(%rbp), %dl
leaq 0xc7dd3(%rip), %rax     # 0x141dd9
leaq 0xc7dd5(%rip), %rcx     # 0x141de2
testb $0x1, %dl
cmovneq %rcx, %rax
movq %rax, -0x30(%rbp)
jmp 0x7a059
leaq 0xc7df7(%rip), %rax     # 0x141e18
movq %rax, -0x30(%rbp)
jmp 0x7a059
leaq 0xc7e00(%rip), %rax     # 0x141e2e
movq %rax, -0x30(%rbp)
jmp 0x7a059
leaq 0xc7de6(%rip), %rax     # 0x141e21
movq %rax, -0x30(%rbp)
jmp 0x7a059
leaq 0xc7d91(%rip), %rax     # 0x141dd9
movq %rax, -0x30(%rbp)
jmp 0x7a059
leaq 0xc4849(%rip), %rax     # 0x13e89e
movq %rax, -0x30(%rbp)
movq -0x1c0(%rbp), %rdi
movl -0x24(%rbp), %esi
callq 0x79db0
andb $0x1, %al
movb %al, -0x31(%rbp)
movq -0x18(%rbp), %rdi
leaq 0xc7ad2(%rip), %rsi     # 0x141b4a
callq 0x2f7c0
testb $0x1, %al
jne 0x7a0c2
movq -0x18(%rbp), %rdi
leaq 0xc7b1a(%rip), %rsi     # 0x141ba6
callq 0x2f7c0
testb $0x1, %al
jne 0x7a0c2
movq -0x18(%rbp), %rdi
leaq 0xc7a8c(%rip), %rsi     # 0x141b2c
callq 0x2f7c0
testb $0x1, %al
jne 0x7a0c2
movq -0x18(%rbp), %rdi
leaq 0xc7acc(%rip), %rsi     # 0x141b80
callq 0x2f7c0
testb $0x1, %al
jne 0x7a0c2
jmp 0x7a214
movq -0x1c0(%rbp), %rdi
callq 0xa0800
testb $0x1, %al
jne 0x7a0d7
jmp 0x7a166
testb $0x1, -0x31(%rbp)
je 0x7a161
leaq -0x59(%rbp), %rdi
movq %rdi, -0x1e0(%rbp)
callq 0x7650
movq -0x1e0(%rbp), %rdx
leaq 0xc8731(%rip), %rsi     # 0x142830
leaq -0x58(%rbp), %rdi
callq 0x7520
jmp 0x7a10a
movq -0x1c0(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x589d0
jmp 0x7a11c
leaq -0x58(%rbp), %rdi
callq 0x7708
leaq -0x59(%rbp), %rdi
callq 0x73d0
jmp 0x7a161
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x7a153
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x7708
leaq -0x59(%rbp), %rdi
callq 0x73d0
jmp 0x7abf5
jmp 0x7a212
movq -0x1c0(%rbp), %rdi
callq 0x9f610
testb $0x1, %al
jne 0x7a17b
jmp 0x7a210
leaq -0x91(%rbp), %rdi
movq %rdi, -0x1e8(%rbp)
callq 0x7650
movq -0x1e8(%rbp), %rdx
leaq 0xc86ae(%rip), %rsi     # 0x14284a
leaq -0x90(%rbp), %rdi
callq 0x7520
jmp 0x7a1aa
movq -0x1c0(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x589d0
jmp 0x7a1bf
leaq -0x90(%rbp), %rdi
callq 0x7708
leaq -0x91(%rbp), %rdi
callq 0x73d0
jmp 0x7a210
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x7a1ff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x7708
leaq -0x91(%rbp), %rdi
callq 0x73d0
jmp 0x7abf5
jmp 0x7a212
jmp 0x7a214
movq -0x18(%rbp), %rdi
leaq 0xc7936(%rip), %rsi     # 0x141b55
callq 0x2f7c0
testb $0x1, %al
jne 0x7a241
movq -0x18(%rbp), %rdi
leaq 0xc7982(%rip), %rsi     # 0x141bb5
callq 0x2f7c0
testb $0x1, %al
jne 0x7a241
jmp 0x7a399
movq -0x1c0(%rbp), %rdi
callq 0xa0800
testb $0x1, %al
jne 0x7a256
jmp 0x7a304
movb $0x1, -0xb9(%rbp)
movl $0x10, %edi
callq 0x71a0
movq %rax, -0x1f0(%rbp)
movq -0x18(%rbp), %rsi
leaq 0xc85eb(%rip), %rdx     # 0x142864
leaq -0xb8(%rbp), %rdi
callq 0xa2f10
jmp 0x7a287
movq -0x1f0(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x9c50
jmp 0x7a29c
movq -0x1f0(%rbp), %rdi
movb $0x0, -0xb9(%rbp)
leaq 0x133b27(%rip), %rsi    # 0x1addd8
leaq -0x70628(%rip), %rdx    # 0x9c90
callq 0x7610
jmp 0x7abfe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x7a2e8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0x7708
testb $0x1, -0xb9(%rbp)
jne 0x7a2f3
jmp 0x7a2ff
movq -0x1f0(%rbp), %rdi
callq 0x72c0
jmp 0x7abf5
leaq -0xe1(%rbp), %rdi
movq %rdi, -0x1f8(%rbp)
callq 0x7650
movq -0x1f8(%rbp), %rdx
leaq 0xc8559(%rip), %rsi     # 0x14287e
leaq -0xe0(%rbp), %rdi
callq 0x7520
jmp 0x7a333
movq -0x1c0(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x589d0
jmp 0x7a348
leaq -0xe0(%rbp), %rdi
callq 0x7708
leaq -0xe1(%rbp), %rdi
callq 0x73d0
jmp 0x7a399
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x7a388
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0xe0(%rbp), %rdi
callq 0x7708
leaq -0xe1(%rbp), %rdi
callq 0x73d0
jmp 0x7abf5
movq -0x1c0(%rbp), %rdi
movq -0x20(%rbp), %rsi
movl -0x28(%rbp), %edx
callq 0x2c890
testb $0x1, %al
jne 0x7a3b5
jmp 0x7a53f
movq -0x1c0(%rbp), %rdi
callq 0xa0800
testb $0x1, %al
jne 0x7a3ca
jmp 0x7a53f
movq -0x18(%rbp), %rdi
leaq 0xd282f(%rip), %rsi     # 0x14cc04
callq 0x2f7c0
testb $0x1, %al
jne 0x7a3f7
movq -0x18(%rbp), %rdi
leaq 0xc778b(%rip), %rsi     # 0x141b74
callq 0x2f7c0
testb $0x1, %al
jne 0x7a3f7
jmp 0x7a48f
leaq -0x109(%rbp), %rdi
movq %rdi, -0x200(%rbp)
callq 0x7650
movq -0x200(%rbp), %rdx
leaq 0xc8479(%rip), %rsi     # 0x142891
leaq -0x108(%rbp), %rdi
callq 0x7520
jmp 0x7a426
movq -0x1c0(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x589d0
jmp 0x7a43b
leaq -0x108(%rbp), %rdi
callq 0x7708
leaq -0x109(%rbp), %rdi
callq 0x73d0
jmp 0x7a53d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x7a47e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x108(%rbp), %rdi
callq 0x7708
leaq -0x109(%rbp), %rdi
callq 0x73d0
jmp 0x7abf5
movb $0x1, -0x131(%rbp)
movl $0x10, %edi
callq 0x71a0
movq %rax, -0x208(%rbp)
movq -0x18(%rbp), %rsi
leaq 0xc83f6(%rip), %rdx     # 0x1428a8
leaq -0x130(%rbp), %rdi
callq 0xa2fc0
jmp 0x7a4c0
movq -0x208(%rbp), %rdi
leaq -0x130(%rbp), %rsi
callq 0x9c50
jmp 0x7a4d5
movq -0x208(%rbp), %rdi
movb $0x0, -0x131(%rbp)
leaq 0x1338ee(%rip), %rsi    # 0x1addd8
leaq -0x70861(%rip), %rdx    # 0x9c90
callq 0x7610
jmp 0x7abfe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x7a521
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x130(%rbp), %rdi
callq 0x7708
testb $0x1, -0x131(%rbp)
jne 0x7a52c
jmp 0x7a538
movq -0x208(%rbp), %rdi
callq 0x72c0
jmp 0x7abf5
jmp 0x7a53f
movq -0x1c0(%rbp), %rdi
callq 0xa0800
movb %al, %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x209(%rbp)
jne 0x7a55c
jmp 0x7a575
movq -0x1c0(%rbp), %rdi
movq -0x20(%rbp), %rsi
movl -0x28(%rbp), %edx
callq 0x2c890
movb %al, -0x209(%rbp)
movq -0x1c0(%rbp), %rdi
movb -0x209(%rbp), %al
andb $0x1, %al
movb %al, -0x132(%rbp)
movq -0x20(%rbp), %rsi
movl -0x28(%rbp), %edx
callq 0x2c890
movb %al, %dl
leaq 0xc8335(%rip), %rcx     # 0x1428d4
leaq 0xd265e(%rip), %rax     # 0x14cc04
testb %dl, %dl
cmovneq %rcx, %rax
movq %rax, -0x220(%rbp)
leaq -0x159(%rbp), %rdi
movq %rdi, -0x218(%rbp)
callq 0x7650
movq -0x220(%rbp), %rsi
movq -0x218(%rbp), %rdx
leaq -0x158(%rbp), %rdi
callq 0x7520
jmp 0x7a5e2
leaq -0x159(%rbp), %rdi
callq 0x73d0
movq -0x18(%rbp), %rdi
leaq 0xd260b(%rip), %rsi     # 0x14cc04
callq 0x2f7c0
movb %al, -0x221(%rbp)
jmp 0x7a606
movb -0x221(%rbp), %al
testb $0x1, %al
jne 0x7a615
jmp 0x7a698
testb $0x1, -0x132(%rbp)
je 0x7a640
movq -0x1d0(%rbp), %rdi
leaq 0xc82ca(%rip), %rcx     # 0x1428f6
leaq -0x158(%rbp), %rsi
leaq -0x30(%rbp), %rdx
callq 0xa3070
jmp 0x7a63e
jmp 0x7a65b
movq -0x1d0(%rbp), %rdi
leaq -0x158(%rbp), %rsi
leaq -0x30(%rbp), %rdx
callq 0xa3130
jmp 0x7a659
jmp 0x7a65b
movl $0x1, -0x160(%rbp)
jmp 0x7abcd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x159(%rbp), %rdi
callq 0x73d0
jmp 0x7abf5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x7abe9
movq -0x18(%rbp), %rdi
leaq 0xc74a7(%rip), %rsi     # 0x141b4a
callq 0x2f7c0
movb %al, -0x222(%rbp)
jmp 0x7a6b0
movb -0x222(%rbp), %al
testb $0x1, %al
jne 0x7a6bf
jmp 0x7a752
testb $0x1, -0x31(%rbp)
je 0x7a72a
movq -0x1c0(%rbp), %rdi
callq 0xa0800
movb %al, -0x223(%rbp)
jmp 0x7a6d9
movq -0x1d0(%rbp), %rdi
movb -0x223(%rbp), %dl
leaq 0xc81fa(%rip), %rcx     # 0x1428e7
leaq 0xc745d(%rip), %rax     # 0x141b51
testb $0x1, %dl
cmovneq %rcx, %rax
movq %rax, -0x168(%rbp)
leaq -0x158(%rbp), %rsi
leaq -0x30(%rbp), %rdx
leaq -0x168(%rbp), %rcx
callq 0xa31e0
jmp 0x7a71b
movl $0x1, -0x160(%rbp)
jmp 0x7abcd
movq -0x1d0(%rbp), %rdi
leaq -0x158(%rbp), %rsi
leaq -0x30(%rbp), %rdx
callq 0xa3130
jmp 0x7a743
movl $0x1, -0x160(%rbp)
jmp 0x7abcd
movq -0x18(%rbp), %rdi
leaq 0xc7417(%rip), %rsi     # 0x141b74
callq 0x2f7c0
movb %al, -0x224(%rbp)
jmp 0x7a76a
movb -0x224(%rbp), %al
testb $0x1, %al
jne 0x7a776
jmp 0x7a7c7
movq -0x1d0(%rbp), %rdi
movb -0x132(%rbp), %dl
leaq 0xc8151(%rip), %rcx     # 0x1428db
leaq 0xc73ea(%rip), %rax     # 0x141b7b
testb $0x1, %dl
cmovneq %rcx, %rax
movq %rax, -0x170(%rbp)
leaq -0x158(%rbp), %rsi
leaq -0x30(%rbp), %rdx
leaq -0x170(%rbp), %rcx
callq 0xa31e0
jmp 0x7a7b8
movl $0x1, -0x160(%rbp)
jmp 0x7abcd
movq -0x18(%rbp), %rdi
leaq 0xc735a(%rip), %rsi     # 0x141b2c
callq 0x2f7c0
movb %al, -0x225(%rbp)
jmp 0x7a7df
movb -0x225(%rbp), %al
testb $0x1, %al
jne 0x7a7ee
jmp 0x7a891
movq -0x1c0(%rbp), %rdi
callq 0xa0800
movb %al, -0x226(%rbp)
jmp 0x7a802
movb -0x226(%rbp), %al
testb $0x1, %al
jne 0x7a80e
jmp 0x7a81e
leaq 0xc80dd(%rip), %rax     # 0x1428f2
movq %rax, -0x230(%rbp)
jmp 0x7a854
movq -0x1c0(%rbp), %rdi
callq 0xa32a0
movb %al, -0x231(%rbp)
jmp 0x7a832
movb -0x231(%rbp), %dl
leaq 0xcdb69(%rip), %rax     # 0x1483a8
leaq 0xc80b8(%rip), %rcx     # 0x1428fe
testb $0x1, %dl
cmovneq %rcx, %rax
movq %rax, -0x230(%rbp)
movq -0x1d0(%rbp), %rdi
movq -0x230(%rbp), %rax
movq %rax, -0x178(%rbp)
leaq -0x158(%rbp), %rsi
leaq -0x30(%rbp), %rdx
leaq -0x178(%rbp), %rcx
callq 0xa31e0
jmp 0x7a882
movl $0x1, -0x160(%rbp)
jmp 0x7abcd
movq -0x18(%rbp), %rdi
leaq 0xc730a(%rip), %rsi     # 0x141ba6
callq 0x2f7c0
movb %al, -0x232(%rbp)
jmp 0x7a8a9
movb -0x232(%rbp), %al
testb $0x1, %al
jne 0x7a8b8
jmp 0x7a952
testb $0x1, -0x31(%rbp)
je 0x7a923
movq -0x1c0(%rbp), %rdi
callq 0xa0800
movb %al, -0x233(%rbp)
jmp 0x7a8d2
movq -0x1d0(%rbp), %rdi
movb -0x233(%rbp), %dl
leaq 0xc7ffd(%rip), %rcx     # 0x1428e3
leaq 0xc72c0(%rip), %rax     # 0x141bad
testb $0x1, %dl
cmovneq %rcx, %rax
movq %rax, -0x180(%rbp)
leaq -0x158(%rbp), %rsi
leaq -0x30(%rbp), %rdx
leaq -0x180(%rbp), %rcx
callq 0xa31e0
jmp 0x7a914
movl $0x1, -0x160(%rbp)
jmp 0x7abcd
movq -0x1d0(%rbp), %rdi
leaq 0xc724a(%rip), %rcx     # 0x141b7b
leaq -0x158(%rbp), %rsi
leaq -0x30(%rbp), %rdx
callq 0xa32e0
jmp 0x7a943
movl $0x1, -0x160(%rbp)
jmp 0x7abcd
movq -0x18(%rbp), %rdi
leaq 0xc71f8(%rip), %rsi     # 0x141b55
callq 0x2f7c0
movb %al, -0x234(%rbp)
jmp 0x7a96a
movb -0x234(%rbp), %al
testb $0x1, %al
jne 0x7a976
jmp 0x7a9d3
testb $0x1, -0x31(%rbp)
je 0x7a9ab
movq -0x1d0(%rbp), %rdi
leaq 0xc71d2(%rip), %rcx     # 0x141b5c
leaq -0x158(%rbp), %rsi
leaq -0x30(%rbp), %rdx
callq 0xa33a0
jmp 0x7a99c
movl $0x1, -0x160(%rbp)
jmp 0x7abcd
movq -0x1d0(%rbp), %rdi
leaq -0x158(%rbp), %rsi
leaq -0x30(%rbp), %rdx
callq 0xa3130
jmp 0x7a9c4
movl $0x1, -0x160(%rbp)
jmp 0x7abcd
movq -0x18(%rbp), %rdi
leaq 0xc71a2(%rip), %rsi     # 0x141b80
callq 0x2f7c0
movb %al, -0x235(%rbp)
jmp 0x7a9eb
movb -0x235(%rbp), %al
testb $0x1, %al
jne 0x7a9fa
jmp 0x7aa9d
movq -0x1c0(%rbp), %rdi
callq 0xa0800
movb %al, -0x236(%rbp)
jmp 0x7aa0e
movb -0x236(%rbp), %al
testb $0x1, %al
jne 0x7aa1a
jmp 0x7aa2a
leaq 0xc7ecd(%rip), %rax     # 0x1428ee
movq %rax, -0x240(%rbp)
jmp 0x7aa60
movq -0x1c0(%rbp), %rdi
callq 0xa32a0
movb %al, -0x241(%rbp)
jmp 0x7aa3e
movb -0x241(%rbp), %dl
leaq 0xc713c(%rip), %rax     # 0x141b87
leaq 0xc7ea8(%rip), %rcx     # 0x1428fa
testb $0x1, %dl
cmovneq %rcx, %rax
movq %rax, -0x240(%rbp)
movq -0x1d0(%rbp), %rdi
movq -0x240(%rbp), %rax
movq %rax, -0x188(%rbp)
leaq -0x158(%rbp), %rsi
leaq -0x30(%rbp), %rdx
leaq -0x188(%rbp), %rcx
callq 0xa31e0
jmp 0x7aa8e
movl $0x1, -0x160(%rbp)
jmp 0x7abcd
movq -0x18(%rbp), %rdi
leaq 0xc710d(%rip), %rsi     # 0x141bb5
callq 0x2f7c0
movb %al, -0x242(%rbp)
jmp 0x7aab5
movb -0x242(%rbp), %al
testb $0x1, %al
jne 0x7aac1
jmp 0x7ab25
testb $0x1, -0x31(%rbp)
je 0x7aaf6
movq -0x1d0(%rbp), %rdi
leaq 0xc70e7(%rip), %rcx     # 0x141bbc
leaq -0x158(%rbp), %rsi
leaq -0x30(%rbp), %rdx
callq 0xa3460
jmp 0x7aae7
movl $0x1, -0x160(%rbp)
jmp 0x7abcd
movq -0x1d0(%rbp), %rdi
leaq 0xc70cd(%rip), %rcx     # 0x141bd1
leaq -0x158(%rbp), %rsi
leaq -0x30(%rbp), %rdx
callq 0xa3520
jmp 0x7ab16
movl $0x1, -0x160(%rbp)
jmp 0x7abcd
movb $0x1, -0x1a9(%rbp)
movl $0x10, %edi
callq 0x71a0
movq %rax, -0x250(%rbp)
movq -0x18(%rbp), %rdx
leaq 0xc7dbe(%rip), %rsi     # 0x142906
leaq -0x1a8(%rbp), %rdi
callq 0xa35e0
jmp 0x7ab56
movq -0x250(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0x9c50
jmp 0x7ab6b
movq -0x250(%rbp), %rdi
movb $0x0, -0x1a9(%rbp)
leaq 0x133258(%rip), %rsi    # 0x1addd8
leaq -0x70ef7(%rip), %rdx    # 0x9c90
callq 0x7610
jmp 0x7abfe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x7abb4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x1a8(%rbp), %rdi
callq 0x7708
testb $0x1, -0x1a9(%rbp)
jne 0x7abbf
jmp 0x7abcb
movq -0x250(%rbp), %rdi
callq 0x72c0
jmp 0x7abe9
leaq -0x158(%rbp), %rdi
callq 0x7708
movq -0x1c8(%rbp), %rax
addq $0x250, %rsp            # imm = 0x250
popq %rbp
retq
leaq -0x158(%rbp), %rdi
callq 0x7708
movq -0x68(%rbp), %rdi
callq 0x7640
nop