// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/system/system.cpp
// Function: smooth::System::System::GetPersonalFilesDirectory(smooth::System::PersonalFilesType)
S::String S::System::System::GetPersonalFilesDirectory(PersonalFilesType type)
{
	static String	 personalDir[NumPersonalFilesTypes];

	if (personalDir[type] != NIL) return personalDir[type];

	String::InputFormat	 inputFormat("UTF-8");

#ifdef __WIN32__
	ITEMIDLIST	*idlist;
	Buffer<wchar_t>	 buffer(32768 + 1);

	switch (type)
	{
		default:
		case PersonalFilesGeneric:
			SHGetSpecialFolderLocation(NIL, CSIDL_PROFILE, &idlist);
			break;
		case PersonalFilesDocuments:
			SHGetSpecialFolderLocation(NIL, CSIDL_PERSONAL, &idlist);
			break;
		case PersonalFilesPictures:
			SHGetSpecialFolderLocation(NIL, CSIDL_MYPICTURES, &idlist);
			break;
		case PersonalFilesMusic:
			SHGetSpecialFolderLocation(NIL, CSIDL_MYMUSIC, &idlist);
			break;
		case PersonalFilesMovies:
			if (Backends::BackendWin32::IsWindowsVersionAtLeast(VER_PLATFORM_WIN32_NT, 5, 1)) SHGetSpecialFolderLocation(NIL, CSIDL_MYVIDEO, &idlist);
			else										  SHGetSpecialFolderLocation(NIL, CSIDL_PERSONAL, &idlist);
			break;
		case PersonalFilesDownloads:
			SHGetSpecialFolderLocation(NIL, CSIDL_PERSONAL, &idlist);
			break;
	}

	SHGetPathFromIDList(idlist, buffer);

	personalDir[type] = buffer;

	CoTaskMemFree(idlist);

	if (personalDir[type] == NIL) personalDir[type] = "C:";
#else
	passwd	*pw = getpwuid(getuid());

	if (pw != NIL)	personalDir[type] = pw->pw_dir;
	else		personalDir[type] = "~";

#ifdef __APPLE__
	OSErr	 error = -1;
	FSRef	 entry;

	switch (type)
	{
		default:
		case PersonalFilesGeneric:
			break;
		case PersonalFilesDocuments:
			error = FSFindFolder(kUserDomain, kDocumentsFolderType, kDontCreateFolder, &entry);
			break;
		case PersonalFilesPictures:
			error = FSFindFolder(kUserDomain, kPictureDocumentsFolderType, kDontCreateFolder, &entry);
			break;
		case PersonalFilesMusic:
			error = FSFindFolder(kUserDomain, kMusicDocumentsFolderType, kDontCreateFolder, &entry);
			break;
		case PersonalFilesMovies:
			error = FSFindFolder(kUserDomain, kMovieDocumentsFolderType, kDontCreateFolder, &entry);
			break;
		case PersonalFilesDownloads:
			break;
	}

	if (error == noErr)
	{
		CFURLRef	 url = CFURLCreateFromFSRef(kCFAllocatorSystemDefault, &entry);

		if (url != NIL)
		{
			CFStringRef	 path = CFURLCopyFileSystemPath(url, kCFURLPOSIXPathStyle);

			if (path != NIL)
			{
				Buffer<char>	 buffer(CFStringGetLength(path) * 4 + 1);

				CFStringGetCString(path, buffer, buffer.Size(), kCFStringEncodingUTF8);

				personalDir[type] = buffer;

				CFRelease(path);
			}

			CFRelease(url);
		}
	}
#else
	String	 configHome = getenv("XDG_CONFIG_HOME");

	if (configHome == NIL) configHome = String(personalDir[type]).Append("/.config");

	if (File(String(configHome).Append("/user-dirs.dirs")).Exists())
	{
		IO::InStream	 in(IO::STREAM_FILE, String(configHome).Append("/user-dirs.dirs"), IO::IS_READ);

		while (in.GetPos() < in.Size())
		{
			String	 entry = in.InputLine();

			if ((type == PersonalFilesDocuments && entry.StartsWith("XDG_DOCUMENTS_DIR")) ||
			    (type == PersonalFilesPictures  && entry.StartsWith("XDG_PICTURES_DIR" )) ||
			    (type == PersonalFilesMusic	    && entry.StartsWith("XDG_MUSIC_DIR"	   )) ||
			    (type == PersonalFilesMovies    && entry.StartsWith("XDG_VIDEOS_DIR"   )) ||
			    (type == PersonalFilesDownloads && entry.StartsWith("XDG_DOWNLOAD_DIR" )))
			{
				personalDir[type] = entry.SubString(entry.Find("\"") + 1, entry.FindLast("\"") - entry.Find("\"") - 1).Replace("$HOME", personalDir[type]);

				break;
			}
		}
	}
#endif
#endif

	if (!personalDir[type].EndsWith(Directory::GetDirectoryDelimiter())) personalDir[type].Append(Directory::GetDirectoryDelimiter());
	if ( personalDir[type] == Directory::GetDirectoryDelimiter())	     personalDir[type] = NIL;

	return personalDir[type];
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x470, %rsp            # imm = 0x470
movq %rdi, -0x3b0(%rbp)
movq %rdi, %rax
movq %rax, -0x3a8(%rbp)
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
cmpb $0x0, 0x109d26(%rip)    # 0x213d80
jne 0x10a0e0
leaq 0x109d19(%rip), %rdi    # 0x213d80
callq 0x5a4e0
cmpl $0x0, %eax
je 0x10a0e0
leaq 0x109c78(%rip), %rax    # 0x213cf0
movq %rax, -0x3b8(%rbp)
jmp 0x10a081
movq -0x3b8(%rbp), %rdi
movq %rdi, -0x3c0(%rbp)
xorl %esi, %esi
callq 0x5da90
jmp 0x10a098
movq -0x3c0(%rbp), %rax
addq $0x18, %rax
leaq 0x109c46(%rip), %rcx    # 0x213cf0
addq $0x90, %rcx
cmpq %rcx, %rax
movq %rax, -0x3b8(%rbp)
jne 0x10a081
leaq -0xa9ca4(%rip), %rdi    # 0x60420
xorl %eax, %eax
movl %eax, %esi
leaq 0x101631(%rip), %rdx    # 0x20b700
callq 0x5c700
leaq 0x109ca5(%rip), %rdi    # 0x213d80
callq 0x5b0c0
movl -0xc(%rbp), %eax
leaq 0x109c06(%rip), %rdi    # 0x213cf0
imulq $0x18, %rax, %rax
addq %rax, %rdi
xorl %esi, %esi
callq 0x5b110
testb $0x1, %al
jne 0x10a101
jmp 0x10a18c
movq -0x3b0(%rbp), %rdi
movl -0xc(%rbp), %eax
leaq 0x109bde(%rip), %rsi    # 0x213cf0
imulq $0x18, %rax, %rax
addq %rax, %rsi
callq 0x5b6d0
jmp 0x10acb6
movq %rdx, %rcx
movq %rax, %rdx
movq -0x3c0(%rbp), %rax
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
leaq 0x109bb2(%rip), %rcx    # 0x213cf0
cmpq %rax, %rcx
movq %rax, -0x3c8(%rbp)
je 0x10a17b
movq -0x3c8(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x3d0(%rbp)
callq 0x5df00
movq -0x3d0(%rbp), %rax
leaq 0x109b81(%rip), %rcx    # 0x213cf0
cmpq %rcx, %rax
movq %rax, -0x3c8(%rbp)
jne 0x10a14a
leaq 0x109bfe(%rip), %rdi    # 0x213d80
callq 0x5a860
jmp 0x10acc6
leaq 0x9ba53(%rip), %rsi     # 0x1a5be6
leaq -0x38(%rbp), %rdi
callq 0x5ddc0
callq 0x5a3e0
movl %eax, %edi
callq 0x59b70
movq %rax, -0x3d8(%rbp)
jmp 0x10a1b1
movq -0x3d8(%rbp), %rax
movq %rax, -0x40(%rbp)
cmpq $0x0, -0x40(%rbp)
je 0x10a1f7
movq -0x40(%rbp), %rax
movq 0x20(%rax), %rsi
movl -0xc(%rbp), %eax
leaq (%rax,%rax,2), %rcx
leaq 0x109b17(%rip), %rax    # 0x213cf0
leaq (%rax,%rcx,8), %rdi
callq 0x5a230
jmp 0x10a1e4
jmp 0x10a219
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x10acab
movl -0xc(%rbp), %eax
leaq (%rax,%rax,2), %rcx
leaq 0x109aeb(%rip), %rax    # 0x213cf0
leaq (%rax,%rcx,8), %rdi
leaq 0x7d023(%rip), %rsi     # 0x187233
callq 0x5a230
jmp 0x10a217
jmp 0x10a219
leaq 0x9bf39(%rip), %rdi     # 0x1a6159
callq 0x5bea0
movq %rax, %rsi
leaq -0x58(%rbp), %rdi
callq 0x5c1f0
jmp 0x10a233
leaq -0x58(%rbp), %rdi
xorl %esi, %esi
callq 0x59320
movb %al, -0x3d9(%rbp)
jmp 0x10a246
movb -0x3d9(%rbp), %al
testb $0x1, %al
jne 0x10a255
jmp 0x10a30e
movl -0xc(%rbp), %eax
leaq (%rax,%rax,2), %rcx
leaq 0x109a8d(%rip), %rax    # 0x213cf0
leaq (%rax,%rcx,8), %rsi
leaq -0x70(%rbp), %rdi
callq 0x5b6d0
jmp 0x10a272
leaq 0x9bef0(%rip), %rsi     # 0x1a6169
leaq -0x88(%rbp), %rdi
callq 0x5c1f0
jmp 0x10a287
leaq -0x70(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x5a710
movq %rax, -0x3e8(%rbp)
jmp 0x10a2a0
movq -0x3e8(%rbp), %rsi
leaq -0x58(%rbp), %rdi
callq 0x59760
jmp 0x10a2b2
leaq -0x88(%rbp), %rdi
callq 0x5df00
leaq -0x70(%rbp), %rdi
callq 0x5df00
jmp 0x10a30e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x10aca2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x10a300
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x5df00
leaq -0x70(%rbp), %rdi
callq 0x5df00
jmp 0x10aca2
leaq -0xd0(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x5b6d0
jmp 0x10a320
leaq 0x9be62(%rip), %rsi     # 0x1a6189
leaq -0xe8(%rbp), %rdi
callq 0x5c1f0
jmp 0x10a335
leaq -0xd0(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x5a710
movq %rax, -0x3f0(%rbp)
jmp 0x10a351
leaq -0x100(%rbp), %rdi
xorl %esi, %esi
callq 0x5da90
jmp 0x10a361
movq -0x3f0(%rbp), %rsi
leaq -0xb8(%rbp), %rdi
leaq -0x100(%rbp), %rdx
callq 0x5acf0
jmp 0x10a37d
leaq -0xb8(%rbp), %rdi
callq 0x5b4b0
movb %al, -0x3f1(%rbp)
jmp 0x10a391
leaq -0xb8(%rbp), %rdi
callq 0x5de78
leaq -0x100(%rbp), %rdi
callq 0x5df00
leaq -0xe8(%rbp), %rdi
callq 0x5df00
leaq -0xd0(%rbp), %rdi
callq 0x5df00
movb -0x3f1(%rbp), %al
testb $0x1, %al
jne 0x10a3d0
jmp 0x10aae0
leaq -0x220(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x5b6d0
jmp 0x10a3e2
leaq 0x9bda0(%rip), %rsi     # 0x1a6189
leaq -0x238(%rbp), %rdi
callq 0x5c1f0
jmp 0x10a3f7
leaq -0x220(%rbp), %rdi
leaq -0x238(%rbp), %rsi
callq 0x5a710
movq %rax, -0x400(%rbp)
jmp 0x10a413
movq -0x400(%rbp), %rdx
leaq -0x208(%rbp), %rdi
movl $0x3, %esi
movl $0x2, %ecx
callq 0x5d200
jmp 0x10a432
leaq -0x238(%rbp), %rdi
callq 0x5df00
leaq -0x220(%rbp), %rdi
callq 0x5df00
leaq -0x208(%rbp), %rdi
callq 0x5da70
movq %rax, -0x408(%rbp)
jmp 0x10a45f
leaq -0x208(%rbp), %rdi
callq 0x5a580
movq %rax, -0x410(%rbp)
jmp 0x10a474
movq -0x408(%rbp), %rax
movq -0x410(%rbp), %rcx
cmpq %rcx, %rax
jge 0x10aac1
leaq -0x250(%rbp), %rdi
leaq -0x208(%rbp), %rsi
callq 0x5b9a0
jmp 0x10a4a0
movl -0xc(%rbp), %eax
movb $0x0, -0x269(%rbp)
movb $0x0, -0x289(%rbp)
movb $0x0, -0x2a9(%rbp)
movb $0x0, -0x2c9(%rbp)
movb $0x0, -0x2e9(%rbp)
cmpl $0x1, %eax
jne 0x10a51b
leaq 0x9bcc7(%rip), %rsi     # 0x1a6199
leaq -0x268(%rbp), %rdi
callq 0x5c1f0
jmp 0x10a4e0
movb $0x1, -0x269(%rbp)
leaq -0x250(%rbp), %rdi
leaq -0x268(%rbp), %rsi
callq 0x5bf60
movb %al, -0x411(%rbp)
jmp 0x10a502
movb -0x411(%rbp), %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x412(%rbp)
jne 0x10a678
jmp 0x10a51b
cmpl $0x2, -0xc(%rbp)
jne 0x10a571
leaq 0x9bc83(%rip), %rsi     # 0x1a61ab
leaq -0x288(%rbp), %rdi
callq 0x5c1f0
jmp 0x10a536
movb $0x1, -0x289(%rbp)
leaq -0x250(%rbp), %rdi
leaq -0x288(%rbp), %rsi
callq 0x5bf60
movb %al, -0x413(%rbp)
jmp 0x10a558
movb -0x413(%rbp), %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x412(%rbp)
jne 0x10a678
jmp 0x10a571
cmpl $0x3, -0xc(%rbp)
jne 0x10a5c7
leaq 0x9bc3e(%rip), %rsi     # 0x1a61bc
leaq -0x2a8(%rbp), %rdi
callq 0x5c1f0
jmp 0x10a58c
movb $0x1, -0x2a9(%rbp)
leaq -0x250(%rbp), %rdi
leaq -0x2a8(%rbp), %rsi
callq 0x5bf60
movb %al, -0x414(%rbp)
jmp 0x10a5ae
movb -0x414(%rbp), %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x412(%rbp)
jne 0x10a678
jmp 0x10a5c7
cmpl $0x4, -0xc(%rbp)
jne 0x10a619
leaq 0x9bbf6(%rip), %rsi     # 0x1a61ca
leaq -0x2c8(%rbp), %rdi
callq 0x5c1f0
jmp 0x10a5e2
movb $0x1, -0x2c9(%rbp)
leaq -0x250(%rbp), %rdi
leaq -0x2c8(%rbp), %rsi
callq 0x5bf60
movb %al, -0x415(%rbp)
jmp 0x10a604
movb -0x415(%rbp), %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x412(%rbp)
jne 0x10a678
jmp 0x10a619
xorl %eax, %eax
cmpl $0x5, -0xc(%rbp)
movb %al, -0x416(%rbp)
jne 0x10a66c
leaq 0x9bbab(%rip), %rsi     # 0x1a61d9
leaq -0x2e8(%rbp), %rdi
callq 0x5c1f0
jmp 0x10a63c
movb $0x1, -0x2e9(%rbp)
leaq -0x250(%rbp), %rdi
leaq -0x2e8(%rbp), %rsi
callq 0x5bf60
movb %al, -0x417(%rbp)
jmp 0x10a65e
movb -0x417(%rbp), %al
movb %al, -0x416(%rbp)
jmp 0x10a66c
movb -0x416(%rbp), %al
movb %al, -0x412(%rbp)
movb -0x412(%rbp), %al
movb %al, -0x418(%rbp)
testb $0x1, -0x2e9(%rbp)
jne 0x10a68f
jmp 0x10a69b
leaq -0x2e8(%rbp), %rdi
callq 0x5df00
testb $0x1, -0x2c9(%rbp)
jne 0x10a6a6
jmp 0x10a6b2
leaq -0x2c8(%rbp), %rdi
callq 0x5df00
testb $0x1, -0x2a9(%rbp)
jne 0x10a6bd
jmp 0x10a6c9
leaq -0x2a8(%rbp), %rdi
callq 0x5df00
testb $0x1, -0x289(%rbp)
jne 0x10a6d4
jmp 0x10a6e0
leaq -0x288(%rbp), %rdi
callq 0x5df00
testb $0x1, -0x269(%rbp)
jne 0x10a6eb
jmp 0x10a6f7
leaq -0x268(%rbp), %rdi
callq 0x5df00
movb -0x418(%rbp), %al
testb $0x1, %al
jne 0x10a706
jmp 0x10aa8a
leaq 0x9ba4a(%rip), %rsi     # 0x1a6157
leaq -0x320(%rbp), %rdi
callq 0x5c1f0
jmp 0x10a71b
leaq -0x250(%rbp), %rdi
leaq -0x320(%rbp), %rsi
callq 0x5bd60
movl %eax, -0x41c(%rbp)
jmp 0x10a736
movl -0x41c(%rbp), %eax
incl %eax
movl %eax, -0x420(%rbp)
leaq 0x9ba0c(%rip), %rsi     # 0x1a6157
leaq -0x338(%rbp), %rdi
callq 0x5c1f0
jmp 0x10a759
leaq -0x250(%rbp), %rdi
leaq -0x338(%rbp), %rsi
callq 0x5d590
movl %eax, -0x424(%rbp)
jmp 0x10a774
leaq 0x9b9dc(%rip), %rsi     # 0x1a6157
leaq -0x350(%rbp), %rdi
callq 0x5c1f0
jmp 0x10a789
leaq -0x250(%rbp), %rdi
leaq -0x350(%rbp), %rsi
callq 0x5bd60
movl %eax, -0x428(%rbp)
jmp 0x10a7a4
movl -0x420(%rbp), %edx
movl -0x424(%rbp), %eax
movl -0x428(%rbp), %ecx
notl %ecx
addl %eax, %ecx
leaq -0x308(%rbp), %rdi
leaq -0x250(%rbp), %rsi
callq 0x5dc20
jmp 0x10a7cf
leaq 0x9ba14(%rip), %rsi     # 0x1a61ea
leaq -0x368(%rbp), %rdi
callq 0x5c1f0
jmp 0x10a7e4
movl -0xc(%rbp), %eax
leaq (%rax,%rax,2), %rcx
leaq 0x1094fe(%rip), %rax    # 0x213cf0
leaq (%rax,%rcx,8), %rdx
leaq -0x308(%rbp), %rdi
leaq -0x368(%rbp), %rsi
callq 0x5bd30
movq %rax, -0x430(%rbp)
jmp 0x10a812
movq -0x430(%rbp), %rsi
movl -0xc(%rbp), %eax
leaq (%rax,%rax,2), %rcx
leaq 0x1094c9(%rip), %rax    # 0x213cf0
leaq (%rax,%rcx,8), %rdi
callq 0x59760
jmp 0x10a832
leaq -0x368(%rbp), %rdi
callq 0x5df00
leaq -0x308(%rbp), %rdi
callq 0x5df00
leaq -0x350(%rbp), %rdi
callq 0x5df00
leaq -0x338(%rbp), %rdi
callq 0x5df00
leaq -0x320(%rbp), %rdi
callq 0x5df00
movl $0x3, -0x36c(%rbp)
jmp 0x10aa94
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x10a8d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x10a8cb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x10a8bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0x5de78
leaq -0x100(%rbp), %rdi
callq 0x5df00
leaq -0xe8(%rbp), %rdi
callq 0x5df00
leaq -0xd0(%rbp), %rdi
callq 0x5df00
jmp 0x10aca2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x10a90e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x238(%rbp), %rdi
callq 0x5df00
leaq -0x220(%rbp), %rdi
callq 0x5df00
jmp 0x10aca2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x10aacf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x10aab3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x10a9ec
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x10a9d3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x10a9ba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x10a9a1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
testb $0x1, -0x2e9(%rbp)
jne 0x10a993
jmp 0x10a99f
leaq -0x2e8(%rbp), %rdi
callq 0x5df00
jmp 0x10a9a1
testb $0x1, -0x2c9(%rbp)
jne 0x10a9ac
jmp 0x10a9b8
leaq -0x2c8(%rbp), %rdi
callq 0x5df00
jmp 0x10a9ba
testb $0x1, -0x2a9(%rbp)
jne 0x10a9c5
jmp 0x10a9d1
leaq -0x2a8(%rbp), %rdi
callq 0x5df00
jmp 0x10a9d3
testb $0x1, -0x289(%rbp)
jne 0x10a9de
jmp 0x10a9ea
leaq -0x288(%rbp), %rdi
callq 0x5df00
jmp 0x10a9ec
testb $0x1, -0x269(%rbp)
jne 0x10a9f7
jmp 0x10aa03
leaq -0x268(%rbp), %rdi
callq 0x5df00
jmp 0x10aab3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x10aa7c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x10aa70
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x10aa64
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x10aa58
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x368(%rbp), %rdi
callq 0x5df00
leaq -0x308(%rbp), %rdi
callq 0x5df00
leaq -0x350(%rbp), %rdi
callq 0x5df00
leaq -0x338(%rbp), %rdi
callq 0x5df00
leaq -0x320(%rbp), %rdi
callq 0x5df00
jmp 0x10aab3
movl $0x0, -0x36c(%rbp)
leaq -0x250(%rbp), %rdi
callq 0x5df00
movl -0x36c(%rbp), %eax
testl %eax, %eax
je 0x10aaae
jmp 0x10aaac
jmp 0x10aac1
jmp 0x10a44a
leaq -0x250(%rbp), %rdi
callq 0x5df00
jmp 0x10aacf
leaq -0x208(%rbp), %rdi
callq 0x59710
jmp 0x10aae0
leaq -0x208(%rbp), %rdi
callq 0x59710
jmp 0x10aca2
movl -0xc(%rbp), %eax
leaq (%rax,%rax,2), %rcx
leaq 0x109202(%rip), %rax    # 0x213cf0
leaq (%rax,%rcx,8), %rax
movq %rax, -0x440(%rbp)
callq 0x59460
movq %rax, -0x438(%rbp)
jmp 0x10ab07
movq -0x438(%rbp), %rsi
leaq -0x388(%rbp), %rdi
callq 0x5c1f0
jmp 0x10ab1c
movq -0x440(%rbp), %rdi
leaq -0x388(%rbp), %rsi
callq 0x5d6c0
movb %al, -0x441(%rbp)
jmp 0x10ab37
movb -0x441(%rbp), %al
xorb $-0x1, %al
movb %al, -0x442(%rbp)
leaq -0x388(%rbp), %rdi
callq 0x5df00
movb -0x442(%rbp), %al
testb $0x1, %al
jne 0x10ab60
jmp 0x10abf9
movl -0xc(%rbp), %eax
leaq (%rax,%rax,2), %rcx
leaq 0x109182(%rip), %rax    # 0x213cf0
leaq (%rax,%rcx,8), %rax
movq %rax, -0x458(%rbp)
callq 0x59460
movq %rax, -0x450(%rbp)
jmp 0x10ab87
movq -0x450(%rbp), %rsi
leaq -0x3a0(%rbp), %rdi
callq 0x5c1f0
jmp 0x10ab9c
movq -0x458(%rbp), %rdi
leaq -0x3a0(%rbp), %rsi
callq 0x5a710
jmp 0x10abb1
leaq -0x3a0(%rbp), %rdi
callq 0x5df00
jmp 0x10abf9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x388(%rbp), %rdi
callq 0x5df00
jmp 0x10aca2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x3a0(%rbp), %rdi
callq 0x5df00
jmp 0x10aca2
movl -0xc(%rbp), %eax
leaq (%rax,%rax,2), %rcx
leaq 0x1090e9(%rip), %rax    # 0x213cf0
leaq (%rax,%rcx,8), %rax
movq %rax, -0x468(%rbp)
callq 0x59460
movq %rax, -0x460(%rbp)
jmp 0x10ac20
movq -0x460(%rbp), %rsi
movq -0x468(%rbp), %rdi
callq 0x5c7f0
movb %al, -0x469(%rbp)
jmp 0x10ac3b
movb -0x469(%rbp), %al
testb $0x1, %al
jne 0x10ac47
jmp 0x10ac64
movl -0xc(%rbp), %eax
leaq (%rax,%rax,2), %rcx
leaq 0x10909b(%rip), %rax    # 0x213cf0
leaq (%rax,%rcx,8), %rdi
xorl %esi, %esi
callq 0x5c1e0
jmp 0x10ac62
jmp 0x10ac64
movq -0x3b0(%rbp), %rdi
movl -0xc(%rbp), %eax
leaq (%rax,%rax,2), %rcx
leaq 0x109077(%rip), %rax    # 0x213cf0
leaq (%rax,%rcx,8), %rsi
callq 0x5b6d0
jmp 0x10ac84
movl $0x1, -0x36c(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x5df00
leaq -0x38(%rbp), %rdi
callq 0x5af60
jmp 0x10acb6
leaq -0x58(%rbp), %rdi
callq 0x5df00
leaq -0x38(%rbp), %rdi
callq 0x5af60
jmp 0x10acc6
movq -0x3a8(%rbp), %rax
addq $0x470, %rsp            # imm = 0x470
popq %rbp
retq
movq -0x18(%rbp), %rdi
callq 0x5b6b0
nop