// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/system/dynamicloader.cpp
// Function: smooth::System::DynamicLoader::DynamicLoader(smooth::String const&)
S::System::DynamicLoader::DynamicLoader(const String &module) : handle(NIL)
{
#if defined __WIN32__
	static String	 dllExt		= ".dll";
	static String	 versionPattern	= dllExt;
#elif defined __APPLE__
	static String	 dllExt		= ".dylib";
	static String	 versionPattern	= String(".*").Append(dllExt);
#else
	static String	 dllExt		= ".so";
	static String	 versionPattern	= String(dllExt).Append(".*");
#endif

#ifdef __WIN32__
	if (module[1] != ':')
	{
		/* Try the supplied module name in application directory.
		 */
		handle = LoadLibrary(GUI::Application::GetApplicationDirectory().Append(module).Append(module.EndsWith(dllExt) ? String() : dllExt));
	}

	if (handle == NIL)
	{
		/* Try the supplied module name system wide.
		 */
		handle = LoadLibrary(String(module).Append(module.EndsWith(dllExt) ? String() : dllExt));
	}
#else
	Int	 dlopenFlags = RTLD_NOW | RTLD_LOCAL;

#if defined __FreeBSD__ || defined __NetBSD__
	dlopenFlags |= RTLD_NODELETE;
#endif

	if (!module.StartsWith("/"))
	{
		/* Try the supplied module name in application directory.
		 */
		handle = dlopen(GUI::Application::GetApplicationDirectory().Append(module).Append(module.EndsWith(dllExt) || module.Contains(String(dllExt).Append(".")) ? String() : dllExt), dlopenFlags);
	}

	if (handle == NIL)
	{
		/* Try the supplied module name system wide.
		 */
		handle = dlopen(String(module).Append(module.EndsWith(dllExt) || module.Contains(String(dllExt).Append(".")) ? String() : dllExt), dlopenFlags);
	}

	if (handle == NIL)
	{
		const Array<String> &directories = GetLibraryDirectories();

		/* Try loading an unversioned library.
		 */
		foreach (const String &path, directories)
		{
			Directory		 directory(path);
			const Array<File>	&files = directory.GetFilesByPattern(String(module.StartsWith("lib") || module.Contains("/") ? String() : "lib").Append(module).Append(module.EndsWith(dllExt) || module.Contains(String(dllExt).Append(".")) ? String() : dllExt));

			if (files.Length() > 0)
			{
				handle = dlopen((String) files.GetFirst(), dlopenFlags);
			}

			if (handle != NIL) return;
		}

		/* Try loading a versioned library.
		 */
		foreach (const String &path, directories)
		{
			Directory		 directory(path);
			const Array<File>	&files = directory.GetFilesByPattern(String(module.StartsWith("lib") || module.Contains("/") ? String() : "lib").Append(module).Append(module.EndsWith(dllExt) || module.Contains(String(dllExt).Append(".")) ? String() : versionPattern));

			if (files.Length() > 0)
			{
				handle = dlopen((String) files.GetFirst(), dlopenFlags);
			}

			if (handle != NIL) return;
		}
	}
#endif
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x6b0, %rsp            # imm = 0x6B0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x508(%rbp)
callq 0x5b420
movq -0x508(%rbp), %rax
movq 0x101e47(%rip), %rcx    # 0x208788
addq $0x10, %rcx
movq %rcx, (%rax)
movq $0x0, 0x38(%rax)
cmpb $0x0, 0x10d219(%rip)    # 0x213b70
jne 0x1069a5
leaq 0x10d210(%rip), %rdi    # 0x213b70
callq 0x5a4e0
cmpl $0x0, %eax
je 0x1069a5
leaq 0x10d1e7(%rip), %rdi    # 0x213b58
leaq 0xa03ba(%rip), %rsi     # 0x1a6d32
callq 0x5c1f0
jmp 0x10697f
movq 0x1025a2(%rip), %rdi    # 0x208f28
leaq 0x10d1cb(%rip), %rsi    # 0x213b58
leaq 0x104d6c(%rip), %rdx    # 0x20b700
callq 0x5c700
leaq 0x10d1d0(%rip), %rdi    # 0x213b70
callq 0x5b0c0
cmpb $0x0, 0x10d1e4(%rip)    # 0x213b90
jne 0x106a4e
leaq 0x10d1d7(%rip), %rdi    # 0x213b90
callq 0x5a4e0
cmpl $0x0, %eax
je 0x106a4e
leaq 0x10d18a(%rip), %rsi    # 0x213b58
leaq -0x38(%rbp), %rdi
callq 0x5b6d0
jmp 0x1069d9
leaq 0x9f421(%rip), %rsi     # 0x1a5e01
leaq -0x50(%rbp), %rdi
callq 0x5c1f0
jmp 0x1069eb
leaq -0x38(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x5a710
movq %rax, -0x510(%rbp)
jmp 0x106a01
movq -0x510(%rbp), %rsi
leaq 0x10d169(%rip), %rdi    # 0x213b78
callq 0x5b6d0
jmp 0x106a16
leaq -0x50(%rbp), %rdi
callq 0x5df00
leaq -0x38(%rbp), %rdi
callq 0x5df00
movq 0x1024f9(%rip), %rdi    # 0x208f28
leaq 0x10d142(%rip), %rsi    # 0x213b78
leaq 0x104cc3(%rip), %rdx    # 0x20b700
callq 0x5c700
leaq 0x10d147(%rip), %rdi    # 0x213b90
callq 0x5b0c0
movl $0x2, -0x54(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x518(%rbp)
leaq 0x80bcf(%rip), %rsi     # 0x187636
leaq -0x70(%rbp), %rdi
callq 0x5c1f0
jmp 0x106a72
movq -0x518(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x5bf60
movb %al, -0x519(%rbp)
jmp 0x106a8a
movb -0x519(%rbp), %al
xorb $-0x1, %al
movb %al, -0x51a(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x5df00
movb -0x51a(%rbp), %al
testb $0x1, %al
jne 0x106ab0
jmp 0x106d6d
leaq -0x88(%rbp), %rdi
callq 0x5c270
jmp 0x106abe
movq -0x10(%rbp), %rsi
leaq -0x88(%rbp), %rdi
callq 0x5a710
movq %rax, -0x528(%rbp)
jmp 0x106ad7
movq -0x10(%rbp), %rdi
movb $0x0, -0xb9(%rbp)
movb $0x0, -0xd9(%rbp)
leaq 0x10d068(%rip), %rsi    # 0x213b58
callq 0x5d6c0
movb %al, -0x529(%rbp)
jmp 0x106afd
movb -0x529(%rbp), %al
testb $0x1, %al
jne 0x106b93
jmp 0x106b0d
movq -0x10(%rbp), %rax
movq %rax, -0x538(%rbp)
leaq 0x10d039(%rip), %rsi    # 0x213b58
leaq -0xb8(%rbp), %rdi
callq 0x5b6d0
jmp 0x106b2d
movb $0x1, -0xb9(%rbp)
leaq 0xb66b4(%rip), %rsi     # 0x1bd1ef
leaq -0xd8(%rbp), %rdi
callq 0x5c1f0
jmp 0x106b49
movb $0x1, -0xd9(%rbp)
leaq -0xb8(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x5a710
movq %rax, -0x540(%rbp)
jmp 0x106b6c
movq -0x540(%rbp), %rsi
movq -0x538(%rbp), %rdi
callq 0x591d0
movb %al, -0x541(%rbp)
jmp 0x106b87
movb -0x541(%rbp), %al
testb $0x1, %al
jne 0x106b93
jmp 0x106ba5
leaq -0xa0(%rbp), %rdi
xorl %esi, %esi
callq 0x5da90
jmp 0x106ba3
jmp 0x106bbc
leaq 0x10cfac(%rip), %rsi    # 0x213b58
leaq -0xa0(%rbp), %rdi
callq 0x5b6d0
jmp 0x106bba
jmp 0x106bbc
movq -0x528(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x5a710
movq %rax, -0x550(%rbp)
jmp 0x106bd8
movq -0x550(%rbp), %rdi
callq 0x5d090
movq %rax, -0x558(%rbp)
jmp 0x106bed
movq -0x558(%rbp), %rdi
movl -0x54(%rbp), %esi
callq 0x5c5b0
movq %rax, %rcx
movq -0x508(%rbp), %rax
movq %rcx, 0x38(%rax)
leaq -0xa0(%rbp), %rdi
callq 0x5df00
testb $0x1, -0xd9(%rbp)
jne 0x106c21
jmp 0x106c2d
leaq -0xd8(%rbp), %rdi
callq 0x5df00
testb $0x1, -0xb9(%rbp)
jne 0x106c38
jmp 0x106c44
leaq -0xb8(%rbp), %rdi
callq 0x5df00
leaq -0x88(%rbp), %rdi
callq 0x5df00
jmp 0x106d6d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq 0x10cf08(%rip), %rdi    # 0x213b70
callq 0x5a860
jmp 0x107ae4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x106cac
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x106ca3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x5df00
leaq -0x38(%rbp), %rdi
callq 0x5df00
leaq 0x10cedd(%rip), %rdi    # 0x213b90
callq 0x5a860
jmp 0x107ae4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x107ae4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x5df00
jmp 0x107ae4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x106d5c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x106d43
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x106d2a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0x5df00
testb $0x1, -0xd9(%rbp)
jne 0x106d35
jmp 0x106d41
leaq -0xd8(%rbp), %rdi
callq 0x5df00
jmp 0x106d43
testb $0x1, -0xb9(%rbp)
jne 0x106d4e
jmp 0x106d5a
leaq -0xb8(%rbp), %rdi
callq 0x5df00
jmp 0x106d5c
leaq -0x88(%rbp), %rdi
callq 0x5df00
jmp 0x107ae4
movq -0x508(%rbp), %rax
cmpq $0x0, 0x38(%rax)
jne 0x106f94
movq -0x10(%rbp), %rsi
leaq -0xf8(%rbp), %rdi
callq 0x5b6d0
jmp 0x106d91
movq -0x10(%rbp), %rdi
movb $0x0, -0x129(%rbp)
movb $0x0, -0x149(%rbp)
leaq 0x10cdae(%rip), %rsi    # 0x213b58
callq 0x5d6c0
movb %al, -0x559(%rbp)
jmp 0x106db7
movb -0x559(%rbp), %al
testb $0x1, %al
jne 0x106e4d
jmp 0x106dc7
movq -0x10(%rbp), %rax
movq %rax, -0x568(%rbp)
leaq 0x10cd7f(%rip), %rsi    # 0x213b58
leaq -0x128(%rbp), %rdi
callq 0x5b6d0
jmp 0x106de7
movb $0x1, -0x129(%rbp)
leaq 0xb63fa(%rip), %rsi     # 0x1bd1ef
leaq -0x148(%rbp), %rdi
callq 0x5c1f0
jmp 0x106e03
movb $0x1, -0x149(%rbp)
leaq -0x128(%rbp), %rdi
leaq -0x148(%rbp), %rsi
callq 0x5a710
movq %rax, -0x570(%rbp)
jmp 0x106e26
movq -0x570(%rbp), %rsi
movq -0x568(%rbp), %rdi
callq 0x591d0
movb %al, -0x571(%rbp)
jmp 0x106e41
movb -0x571(%rbp), %al
testb $0x1, %al
jne 0x106e4d
jmp 0x106e5f
leaq -0x110(%rbp), %rdi
xorl %esi, %esi
callq 0x5da90
jmp 0x106e5d
jmp 0x106e76
leaq 0x10ccf2(%rip), %rsi    # 0x213b58
leaq -0x110(%rbp), %rdi
callq 0x5b6d0
jmp 0x106e74
jmp 0x106e76
leaq -0xf8(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x5a710
movq %rax, -0x580(%rbp)
jmp 0x106e92
movq -0x580(%rbp), %rdi
callq 0x5d090
movq %rax, -0x588(%rbp)
jmp 0x106ea7
movq -0x588(%rbp), %rdi
movl -0x54(%rbp), %esi
callq 0x5c5b0
movq %rax, %rcx
movq -0x508(%rbp), %rax
movq %rcx, 0x38(%rax)
leaq -0x110(%rbp), %rdi
callq 0x5df00
testb $0x1, -0x149(%rbp)
jne 0x106edb
jmp 0x106ee7
leaq -0x148(%rbp), %rdi
callq 0x5df00
testb $0x1, -0x129(%rbp)
jne 0x106ef2
jmp 0x106efe
leaq -0x128(%rbp), %rdi
callq 0x5df00
leaq -0xf8(%rbp), %rdi
callq 0x5df00
jmp 0x106f94
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x106f83
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x106f6a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x106f51
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x110(%rbp), %rdi
callq 0x5df00
testb $0x1, -0x149(%rbp)
jne 0x106f5c
jmp 0x106f68
leaq -0x148(%rbp), %rdi
callq 0x5df00
jmp 0x106f6a
testb $0x1, -0x129(%rbp)
jne 0x106f75
jmp 0x106f81
leaq -0x128(%rbp), %rdi
callq 0x5df00
jmp 0x106f83
leaq -0xf8(%rbp), %rdi
callq 0x5df00
jmp 0x107ae4
movq -0x508(%rbp), %rax
cmpq $0x0, 0x38(%rax)
jne 0x107adb
movq -0x508(%rbp), %rdi
callq 0x597f0
movq %rax, -0x590(%rbp)
jmp 0x106fbb
movq -0x590(%rbp), %rax
movq %rax, -0x158(%rbp)
movl $0x0, -0x15c(%rbp)
movl $0xffffffff, -0x160(%rbp) # imm = 0xFFFFFFFF
xorl %eax, %eax
cmpl $0x0, -0x15c(%rbp)
movb %al, -0x591(%rbp)
jne 0x107028
movl -0x160(%rbp), %eax
movl %eax, -0x59c(%rbp)
movq -0x158(%rbp), %rdi
callq 0x5c990
movl %eax, -0x598(%rbp)
jmp 0x10700e
movl -0x59c(%rbp), %eax
movl -0x598(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
setl %al
movb %al, -0x591(%rbp)
movb -0x591(%rbp), %al
testb $0x1, %al
jne 0x107037
jmp 0x107554
movq -0x158(%rbp), %rdi
movl -0x160(%rbp), %esi
incl %esi
movl %esi, -0x160(%rbp)
callq 0x74720
movq %rax, -0x5a8(%rbp)
jmp 0x10705a
movq -0x5a8(%rbp), %rax
movq %rax, -0x168(%rbp)
cmpl $0x0, -0x15c(%rbp)
setne %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x10707d
jmp 0x10753e
movq -0x168(%rbp), %rax
movq %rax, -0x5b0(%rbp)
leaq -0x260(%rbp), %rdi
xorl %esi, %esi
callq 0x5da90
jmp 0x10709b
movq -0x5b0(%rbp), %rsi
leaq -0x248(%rbp), %rdi
leaq -0x260(%rbp), %rdx
callq 0x5d860
jmp 0x1070b7
leaq -0x260(%rbp), %rdi
callq 0x5df00
movq -0x10(%rbp), %rax
movq %rax, -0x5b8(%rbp)
movb $0x0, -0x2b1(%rbp)
leaq 0x9ed3c(%rip), %rsi     # 0x1a5e18
leaq -0x298(%rbp), %rdi
callq 0x5c1f0
jmp 0x1070ea
movq -0x5b8(%rbp), %rdi
leaq -0x298(%rbp), %rsi
callq 0x5bf60
movb %al, -0x5b9(%rbp)
jmp 0x107105
movb -0x5b9(%rbp), %al
testb $0x1, %al
jne 0x10715f
jmp 0x107111
movq -0x10(%rbp), %rax
movq %rax, -0x5c8(%rbp)
leaq 0x80513(%rip), %rsi     # 0x187636
leaq -0x2b0(%rbp), %rdi
callq 0x5c1f0
jmp 0x107131
movq -0x5c8(%rbp), %rdi
movb $0x1, -0x2b1(%rbp)
leaq -0x2b0(%rbp), %rsi
callq 0x591d0
movb %al, -0x5c9(%rbp)
jmp 0x107153
movb -0x5c9(%rbp), %al
testb $0x1, %al
jne 0x10715f
jmp 0x107171
leaq -0x280(%rbp), %rdi
xorl %esi, %esi
callq 0x5da90
jmp 0x10716f
jmp 0x107188
leaq 0x9eca0(%rip), %rsi     # 0x1a5e18
leaq -0x280(%rbp), %rdi
callq 0x5c1f0
jmp 0x107186
jmp 0x107188
movq -0x10(%rbp), %rsi
leaq -0x280(%rbp), %rdi
callq 0x5a710
movq %rax, -0x5d8(%rbp)
jmp 0x1071a1
movq -0x10(%rbp), %rdi
movb $0x0, -0x2e9(%rbp)
movb $0x0, -0x309(%rbp)
leaq 0x10c99e(%rip), %rsi    # 0x213b58
callq 0x5d6c0
movb %al, -0x5d9(%rbp)
jmp 0x1071c7
movb -0x5d9(%rbp), %al
testb $0x1, %al
jne 0x10725d
jmp 0x1071d7
movq -0x10(%rbp), %rax
movq %rax, -0x5e8(%rbp)
leaq 0x10c96f(%rip), %rsi    # 0x213b58
leaq -0x2e8(%rbp), %rdi
callq 0x5b6d0
jmp 0x1071f7
movb $0x1, -0x2e9(%rbp)
leaq 0xb5fea(%rip), %rsi     # 0x1bd1ef
leaq -0x308(%rbp), %rdi
callq 0x5c1f0
jmp 0x107213
movb $0x1, -0x309(%rbp)
leaq -0x2e8(%rbp), %rdi
leaq -0x308(%rbp), %rsi
callq 0x5a710
movq %rax, -0x5f0(%rbp)
jmp 0x107236
movq -0x5f0(%rbp), %rsi
movq -0x5e8(%rbp), %rdi
callq 0x591d0
movb %al, -0x5f1(%rbp)
jmp 0x107251
movb -0x5f1(%rbp), %al
testb $0x1, %al
jne 0x10725d
jmp 0x10726f
leaq -0x2d0(%rbp), %rdi
xorl %esi, %esi
callq 0x5da90
jmp 0x10726d
jmp 0x107286
leaq 0x10c8e2(%rip), %rsi    # 0x213b58
leaq -0x2d0(%rbp), %rdi
callq 0x5b6d0
jmp 0x107284
jmp 0x107286
movq -0x5d8(%rbp), %rdi
leaq -0x2d0(%rbp), %rsi
callq 0x5a710
movq %rax, -0x600(%rbp)
jmp 0x1072a2
movq -0x600(%rbp), %rsi
leaq -0x248(%rbp), %rdi
callq 0x5b2d0
movq %rax, -0x608(%rbp)
jmp 0x1072be
leaq -0x2d0(%rbp), %rdi
callq 0x5df00
testb $0x1, -0x309(%rbp)
jne 0x1072d5
jmp 0x1072e1
leaq -0x308(%rbp), %rdi
callq 0x5df00
testb $0x1, -0x2e9(%rbp)
jne 0x1072ec
jmp 0x1072f8
leaq -0x2e8(%rbp), %rdi
callq 0x5df00
leaq -0x280(%rbp), %rdi
callq 0x5df00
testb $0x1, -0x2b1(%rbp)
jne 0x10730f
jmp 0x10731b
leaq -0x2b0(%rbp), %rdi
callq 0x5df00
leaq -0x298(%rbp), %rdi
callq 0x5df00
movq -0x608(%rbp), %rax
movq %rax, -0x268(%rbp)
movq -0x268(%rbp), %rdi
callq 0x5c990
movl %eax, -0x60c(%rbp)
jmp 0x107349
movl -0x60c(%rbp), %eax
cmpl $0x0, %eax
jle 0x1074d6
movq -0x268(%rbp), %rdi
callq 0x108a10
movq %rax, -0x618(%rbp)
jmp 0x10736d
movq -0x618(%rbp), %rsi
leaq -0x328(%rbp), %rdi
callq 0x5dc70
jmp 0x107382
leaq -0x328(%rbp), %rdi
callq 0x5d090
movq %rax, -0x620(%rbp)
jmp 0x107397
movq -0x620(%rbp), %rdi
movl -0x54(%rbp), %esi
callq 0x5c5b0
movq %rax, %rcx
movq -0x508(%rbp), %rax
movq %rcx, 0x38(%rax)
leaq -0x328(%rbp), %rdi
callq 0x5df00
jmp 0x1074d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x260(%rbp), %rdi
callq 0x5df00
jmp 0x107ae4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x10752d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x1074ae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x107495
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x107489
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x107470
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x107457
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x2d0(%rbp), %rdi
callq 0x5df00
testb $0x1, -0x309(%rbp)
jne 0x107462
jmp 0x10746e
leaq -0x308(%rbp), %rdi
callq 0x5df00
jmp 0x107470
testb $0x1, -0x2e9(%rbp)
jne 0x10747b
jmp 0x107487
leaq -0x2e8(%rbp), %rdi
callq 0x5df00
jmp 0x107489
leaq -0x280(%rbp), %rdi
callq 0x5df00
testb $0x1, -0x2b1(%rbp)
jne 0x1074a0
jmp 0x1074ac
leaq -0x2b0(%rbp), %rdi
callq 0x5df00
jmp 0x1074ae
leaq -0x298(%rbp), %rdi
callq 0x5df00
jmp 0x10752d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x328(%rbp), %rdi
callq 0x5df00
jmp 0x10752d
movq -0x508(%rbp), %rax
cmpq $0x0, 0x38(%rax)
je 0x1074f0
movl $0x1, -0x32c(%rbp)
jmp 0x1074fa
movl $0x0, -0x32c(%rbp)
leaq -0x248(%rbp), %rdi
callq 0x5df10
movl -0x32c(%rbp), %eax
testl %eax, %eax
je 0x107517
jmp 0x107512
jmp 0x107adb
jmp 0x107519
movl -0x15c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x15c(%rbp)
jmp 0x107068
leaq -0x248(%rbp), %rdi
callq 0x5df10
jmp 0x107ae4
jmp 0x107540
movl -0x15c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x15c(%rbp)
jmp 0x106fdd
movl $0x0, -0x330(%rbp)
movl $0xffffffff, -0x334(%rbp) # imm = 0xFFFFFFFF
xorl %eax, %eax
cmpl $0x0, -0x330(%rbp)
movb %al, -0x621(%rbp)
jne 0x1075b3
movl -0x334(%rbp), %eax
movl %eax, -0x62c(%rbp)
movq -0x158(%rbp), %rdi
callq 0x5c990
movl %eax, -0x628(%rbp)
jmp 0x107599
movl -0x62c(%rbp), %eax
movl -0x628(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
setl %al
movb %al, -0x621(%rbp)
movb -0x621(%rbp), %al
testb $0x1, %al
jne 0x1075c2
jmp 0x107ad9
movq -0x158(%rbp), %rdi
movl -0x334(%rbp), %esi
incl %esi
movl %esi, -0x334(%rbp)
callq 0x74720
movq %rax, -0x638(%rbp)
jmp 0x1075e5
movq -0x638(%rbp), %rax
movq %rax, -0x340(%rbp)
cmpl $0x0, -0x330(%rbp)
setne %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x107608
jmp 0x107ac3
movq -0x340(%rbp), %rax
movq %rax, -0x640(%rbp)
leaq -0x438(%rbp), %rdi
xorl %esi, %esi
callq 0x5da90
jmp 0x107626
movq -0x640(%rbp), %rsi
leaq -0x420(%rbp), %rdi
leaq -0x438(%rbp), %rdx
callq 0x5d860
jmp 0x107642
leaq -0x438(%rbp), %rdi
callq 0x5df00
movq -0x10(%rbp), %rax
movq %rax, -0x648(%rbp)
movb $0x0, -0x489(%rbp)
leaq 0x9e7b1(%rip), %rsi     # 0x1a5e18
leaq -0x470(%rbp), %rdi
callq 0x5c1f0
jmp 0x107675
movq -0x648(%rbp), %rdi
leaq -0x470(%rbp), %rsi
callq 0x5bf60
movb %al, -0x649(%rbp)
jmp 0x107690
movb -0x649(%rbp), %al
testb $0x1, %al
jne 0x1076ea
jmp 0x10769c
movq -0x10(%rbp), %rax
movq %rax, -0x658(%rbp)
leaq 0x7ff88(%rip), %rsi     # 0x187636
leaq -0x488(%rbp), %rdi
callq 0x5c1f0
jmp 0x1076bc
movq -0x658(%rbp), %rdi
movb $0x1, -0x489(%rbp)
leaq -0x488(%rbp), %rsi
callq 0x591d0
movb %al, -0x659(%rbp)
jmp 0x1076de
movb -0x659(%rbp), %al
testb $0x1, %al
jne 0x1076ea
jmp 0x1076fc
leaq -0x458(%rbp), %rdi
xorl %esi, %esi
callq 0x5da90
jmp 0x1076fa
jmp 0x107713
leaq 0x9e715(%rip), %rsi     # 0x1a5e18
leaq -0x458(%rbp), %rdi
callq 0x5c1f0
jmp 0x107711
jmp 0x107713
movq -0x10(%rbp), %rsi
leaq -0x458(%rbp), %rdi
callq 0x5a710
movq %rax, -0x668(%rbp)
jmp 0x10772c
movq -0x10(%rbp), %rdi
movb $0x0, -0x4c1(%rbp)
movb $0x0, -0x4e1(%rbp)
leaq 0x10c413(%rip), %rsi    # 0x213b58
callq 0x5d6c0
movb %al, -0x669(%rbp)
jmp 0x107752
movb -0x669(%rbp), %al
testb $0x1, %al
jne 0x1077e8
jmp 0x107762
movq -0x10(%rbp), %rax
movq %rax, -0x678(%rbp)
leaq 0x10c3e4(%rip), %rsi    # 0x213b58
leaq -0x4c0(%rbp), %rdi
callq 0x5b6d0
jmp 0x107782
movb $0x1, -0x4c1(%rbp)
leaq 0xb5a5f(%rip), %rsi     # 0x1bd1ef
leaq -0x4e0(%rbp), %rdi
callq 0x5c1f0
jmp 0x10779e
movb $0x1, -0x4e1(%rbp)
leaq -0x4c0(%rbp), %rdi
leaq -0x4e0(%rbp), %rsi
callq 0x5a710
movq %rax, -0x680(%rbp)
jmp 0x1077c1
movq -0x680(%rbp), %rsi
movq -0x678(%rbp), %rdi
callq 0x591d0
movb %al, -0x681(%rbp)
jmp 0x1077dc
movb -0x681(%rbp), %al
testb $0x1, %al
jne 0x1077e8
jmp 0x1077fa
leaq -0x4a8(%rbp), %rdi
xorl %esi, %esi
callq 0x5da90
jmp 0x1077f8
jmp 0x107811
leaq 0x10c377(%rip), %rsi    # 0x213b78
leaq -0x4a8(%rbp), %rdi
callq 0x5b6d0
jmp 0x10780f
jmp 0x107811
movq -0x668(%rbp), %rdi
leaq -0x4a8(%rbp), %rsi
callq 0x5a710
movq %rax, -0x690(%rbp)
jmp 0x10782d
movq -0x690(%rbp), %rsi
leaq -0x420(%rbp), %rdi
callq 0x5b2d0
movq %rax, -0x698(%rbp)
jmp 0x107849
leaq -0x4a8(%rbp), %rdi
callq 0x5df00
testb $0x1, -0x4e1(%rbp)
jne 0x107860
jmp 0x10786c
leaq -0x4e0(%rbp), %rdi
callq 0x5df00
testb $0x1, -0x4c1(%rbp)
jne 0x107877
jmp 0x107883
leaq -0x4c0(%rbp), %rdi
callq 0x5df00
leaq -0x458(%rbp), %rdi
callq 0x5df00
testb $0x1, -0x489(%rbp)
jne 0x10789a
jmp 0x1078a6
leaq -0x488(%rbp), %rdi
callq 0x5df00
leaq -0x470(%rbp), %rdi
callq 0x5df00
movq -0x698(%rbp), %rax
movq %rax, -0x440(%rbp)
movq -0x440(%rbp), %rdi
callq 0x5c990
movl %eax, -0x69c(%rbp)
jmp 0x1078d4
movl -0x69c(%rbp), %eax
cmpl $0x0, %eax
jle 0x107a61
movq -0x440(%rbp), %rdi
callq 0x108a10
movq %rax, -0x6a8(%rbp)
jmp 0x1078f8
movq -0x6a8(%rbp), %rsi
leaq -0x500(%rbp), %rdi
callq 0x5dc70
jmp 0x10790d
leaq -0x500(%rbp), %rdi
callq 0x5d090
movq %rax, -0x6b0(%rbp)
jmp 0x107922
movq -0x6b0(%rbp), %rdi
movl -0x54(%rbp), %esi
callq 0x5c5b0
movq %rax, %rcx
movq -0x508(%rbp), %rax
movq %rcx, 0x38(%rax)
leaq -0x500(%rbp), %rdi
callq 0x5df00
jmp 0x107a61
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x438(%rbp), %rdi
callq 0x5df00
jmp 0x107ae4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x107ab5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x107a39
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x107a20
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x107a14
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x1079fb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x1079e2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x4a8(%rbp), %rdi
callq 0x5df00
testb $0x1, -0x4e1(%rbp)
jne 0x1079ed
jmp 0x1079f9
leaq -0x4e0(%rbp), %rdi
callq 0x5df00
jmp 0x1079fb
testb $0x1, -0x4c1(%rbp)
jne 0x107a06
jmp 0x107a12
leaq -0x4c0(%rbp), %rdi
callq 0x5df00
jmp 0x107a14
leaq -0x458(%rbp), %rdi
callq 0x5df00
testb $0x1, -0x489(%rbp)
jne 0x107a2b
jmp 0x107a37
leaq -0x488(%rbp), %rdi
callq 0x5df00
jmp 0x107a39
leaq -0x470(%rbp), %rdi
callq 0x5df00
jmp 0x107ab5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x500(%rbp), %rdi
callq 0x5df00
jmp 0x107ab5
movq -0x508(%rbp), %rax
cmpq $0x0, 0x38(%rax)
je 0x107a7b
movl $0x1, -0x32c(%rbp)
jmp 0x107a85
movl $0x0, -0x32c(%rbp)
leaq -0x420(%rbp), %rdi
callq 0x5df10
movl -0x32c(%rbp), %eax
testl %eax, %eax
je 0x107a9f
jmp 0x107a9d
jmp 0x107adb
jmp 0x107aa1
movl -0x330(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x330(%rbp)
jmp 0x1075f3
leaq -0x420(%rbp), %rdi
callq 0x5df10
jmp 0x107ae4
jmp 0x107ac5
movl -0x330(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x330(%rbp)
jmp 0x107568
jmp 0x107adb
addq $0x6b0, %rsp            # imm = 0x6B0
popq %rbp
retq
movq -0x508(%rbp), %rdi
callq 0x59ec0
movq -0x18(%rbp), %rdi
callq 0x5b6b0
nopl (%rax)