// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/i18n/translator.cpp
// Function: smooth::I18n::Translator::GetSupportedLanguages()
S::Int S::I18n::Translator::GetSupportedLanguages()
{
	/* Add default translation.
	 */
	{
		Language	*language = new Language();

		language->SetName("Default language");

		language->encoding    = "UTF-8";
		language->magic	      = "internal";
		language->author      = "unknown";
		language->url	      = "none";
		language->rightToLeft = False;

		languages.Add(language);
	}

	/* Check translation folders.
	 */
	const Array<Directory>	&dirs = GetTranslationFolders(appPrefix);

	foreach (const Directory &dir, dirs)
	{
		if (!dir.Exists() || dir.GetFilesByPattern(String(appPrefix).Append("_*.xml")).Length() == 0) continue;

		/* Load translation files.
		 */
		const Array<File>	&files = dir.GetFilesByPattern(String(appPrefix).Append("_*.xml"));

		foreach (const File &file, files)
		{
			XML::Document	 doc;

			if (doc.LoadFile(file) == Success())
			{
				Language	*language = new Language();

				language->magic = file.GetFileName();

				if (LoadDescription(doc, language) == Success()) AddLanguage(language);
			}
		}
	}

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x260, %rsp            # imm = 0x260
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x1b8(%rbp)
movl $0x158, %edi            # imm = 0x158
callq 0x59820
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x1b0(%rbp)
callq 0x5b940
jmp 0xdea88
movq -0x1b0(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x1c8(%rbp)
leaq 0xac77a(%rip), %rsi     # 0x18b21f
leaq -0x38(%rbp), %rdi
movq %rdi, -0x1c0(%rbp)
callq 0x5c1f0
movq -0x1c8(%rbp), %rdi
movq -0x1c0(%rbp), %rsi
callq 0x5bdd0
jmp 0xdeaca
leaq -0x38(%rbp), %rdi
callq 0x5df00
movq -0x10(%rbp), %rdi
addq $0xf0, %rdi
leaq 0xc7101(%rip), %rsi     # 0x1a5be6
callq 0x5a230
movq -0x10(%rbp), %rdi
addq $0x108, %rdi            # imm = 0x108
leaq 0xac6d4(%rip), %rsi     # 0x18b1d0
callq 0x5a230
movq -0x10(%rbp), %rdi
addq $0x120, %rdi            # imm = 0x120
leaq 0xac71d(%rip), %rsi     # 0x18b230
callq 0x5a230
movq -0x10(%rbp), %rdi
addq $0x138, %rdi            # imm = 0x138
leaq 0xac70e(%rip), %rsi     # 0x18b238
callq 0x5a230
movq -0x1b8(%rbp), %rdi
movq -0x10(%rbp), %rax
movb $0x0, 0x150(%rax)
addq $0x20, %rdi
leaq -0x10(%rbp), %rsi
callq 0xe30f0
movq -0x1b8(%rbp), %rsi
addq $0x8, %rsi
leaq -0x98(%rbp), %rdi
callq 0xe1200
leaq -0x98(%rbp), %rax
movq %rax, -0x40(%rbp)
movl $0x0, -0x9c(%rbp)
movl $0xffffffff, -0xa0(%rbp) # imm = 0xFFFFFFFF
xorl %eax, %eax
cmpl $0x0, -0x9c(%rbp)
movb %al, -0x1c9(%rbp)
jne 0xdebcc
movl -0xa0(%rbp), %eax
movl %eax, -0x1d4(%rbp)
movq -0x40(%rbp), %rdi
callq 0x5c990
movl %eax, -0x1d0(%rbp)
jmp 0xdebb2
movl -0x1d4(%rbp), %eax
movl -0x1d0(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
setl %al
movb %al, -0x1c9(%rbp)
movb -0x1c9(%rbp), %al
testb $0x1, %al
jne 0xdebdb
jmp 0xdf1cc
movq -0x40(%rbp), %rdi
movl -0xa0(%rbp), %esi
incl %esi
movl %esi, -0xa0(%rbp)
callq 0xe3120
movq %rax, -0x1e0(%rbp)
jmp 0xdebfb
movq -0x1e0(%rbp), %rax
movq %rax, -0xa8(%rbp)
cmpl $0x0, -0x9c(%rbp)
setne %al
xorb $-0x1, %al
testb $0x1, %al
jne 0xdec1e
jmp 0xdf1b6
movq -0xa8(%rbp), %rdi
movb $0x0, -0xc1(%rbp)
movb $0x0, -0xe1(%rbp)
callq 0x59570
movb %al, -0x1e1(%rbp)
jmp 0xdec40
movb -0x1e1(%rbp), %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x1e2(%rbp)
jne 0xdec58
jmp 0xded00
movq -0x1b8(%rbp), %rsi
movq -0xa8(%rbp), %rax
movq %rax, -0x1f0(%rbp)
addq $0x8, %rsi
leaq -0xc0(%rbp), %rdi
callq 0x5b6d0
jmp 0xdec7f
movb $0x1, -0xc1(%rbp)
leaq 0xac5b0(%rip), %rsi     # 0x18b23d
leaq -0xe0(%rbp), %rdi
callq 0x5c1f0
jmp 0xdec9b
movb $0x1, -0xe1(%rbp)
leaq -0xc0(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x5a710
movq %rax, -0x1f8(%rbp)
jmp 0xdecbe
movq -0x1f8(%rbp), %rsi
movq -0x1f0(%rbp), %rdi
callq 0x5b2d0
movq %rax, -0x200(%rbp)
jmp 0xdecda
movq -0x200(%rbp), %rdi
callq 0x5c990
movl %eax, -0x204(%rbp)
jmp 0xdecee
movl -0x204(%rbp), %eax
cmpl $0x0, %eax
sete %al
movb %al, -0x1e2(%rbp)
movb -0x1e2(%rbp), %al
movb %al, -0x205(%rbp)
testb $0x1, -0xe1(%rbp)
jne 0xded17
jmp 0xded23
leaq -0xe0(%rbp), %rdi
callq 0x5df00
testb $0x1, -0xc1(%rbp)
jne 0xded2e
jmp 0xded3a
leaq -0xc0(%rbp), %rdi
callq 0x5df00
movb -0x205(%rbp), %al
testb $0x1, %al
jne 0xded49
jmp 0xdedea
jmp 0xdf1a2
movq -0x1b0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
movl $0x158, %esi            # imm = 0x158
callq 0x595b0
jmp 0xdf239
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x5df00
jmp 0xdf239
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0xdf22d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0xdedce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
testb $0x1, -0xe1(%rbp)
jne 0xdedc0
jmp 0xdedcc
leaq -0xe0(%rbp), %rdi
callq 0x5df00
jmp 0xdedce
testb $0x1, -0xc1(%rbp)
jne 0xdedd9
jmp 0xdede5
leaq -0xc0(%rbp), %rdi
callq 0x5df00
jmp 0xdf22d
movq -0x1b8(%rbp), %rsi
movq -0xa8(%rbp), %rax
movq %rax, -0x210(%rbp)
addq $0x8, %rsi
leaq -0x108(%rbp), %rdi
callq 0x5b6d0
jmp 0xdee11
leaq 0xac425(%rip), %rsi     # 0x18b23d
leaq -0x120(%rbp), %rdi
callq 0x5c1f0
jmp 0xdee26
leaq -0x108(%rbp), %rdi
leaq -0x120(%rbp), %rsi
callq 0x5a710
movq %rax, -0x218(%rbp)
jmp 0xdee42
movq -0x218(%rbp), %rsi
movq -0x210(%rbp), %rdi
callq 0x5b2d0
movq %rax, -0x220(%rbp)
jmp 0xdee5e
leaq -0x120(%rbp), %rdi
callq 0x5df00
leaq -0x108(%rbp), %rdi
callq 0x5df00
movq -0x220(%rbp), %rax
movq %rax, -0xf0(%rbp)
movl $0x0, -0x124(%rbp)
movl $0xffffffff, -0x128(%rbp) # imm = 0xFFFFFFFF
xorl %eax, %eax
cmpl $0x0, -0x124(%rbp)
movb %al, -0x221(%rbp)
jne 0xdeee3
movl -0x128(%rbp), %eax
movl %eax, -0x22c(%rbp)
movq -0xf0(%rbp), %rdi
callq 0x5c990
movl %eax, -0x228(%rbp)
jmp 0xdeec9
movl -0x22c(%rbp), %eax
movl -0x228(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
setl %al
movb %al, -0x221(%rbp)
movb -0x221(%rbp), %al
testb $0x1, %al
jne 0xdeef2
jmp 0xdf1a0
movq -0xf0(%rbp), %rdi
movl -0x128(%rbp), %esi
incl %esi
movl %esi, -0x128(%rbp)
callq 0xe3150
movq %rax, -0x238(%rbp)
jmp 0xdef15
movq -0x238(%rbp), %rax
movq %rax, -0x130(%rbp)
cmpl $0x0, -0x124(%rbp)
setne %al
xorb $-0x1, %al
testb $0x1, %al
jne 0xdef38
jmp 0xdf18a
leaq -0x158(%rbp), %rdi
callq 0x5c470
jmp 0xdef46
movq -0x130(%rbp), %rsi
leaq -0x170(%rbp), %rdi
callq 0x5dc70
jmp 0xdef5b
leaq -0x158(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0x59670
movl %eax, -0x23c(%rbp)
jmp 0xdef76
leaq -0x180(%rbp), %rdi
callq 0x5ca80
jmp 0xdef84
leaq -0x180(%rbp), %rdi
callq 0x59680
movl %eax, -0x240(%rbp)
jmp 0xdef98
leaq -0x180(%rbp), %rdi
callq 0x5a410
leaq -0x170(%rbp), %rdi
callq 0x5df00
movl -0x240(%rbp), %ecx
movl -0x23c(%rbp), %eax
cmpl %ecx, %eax
jne 0xdf159
movl $0x158, %edi            # imm = 0x158
callq 0x59820
movq %rax, -0x248(%rbp)
jmp 0xdefd7
movq -0x248(%rbp), %rdi
callq 0x5b940
jmp 0xdefe5
movq -0x248(%rbp), %rax
movq %rax, -0x188(%rbp)
movq -0x130(%rbp), %rdi
callq 0x5ca40
movq %rax, -0x250(%rbp)
jmp 0xdf008
movq -0x250(%rbp), %rsi
movq -0x188(%rbp), %rdi
addq $0x108, %rdi            # imm = 0x108
callq 0x59760
jmp 0xdf024
movq -0x1b8(%rbp), %rdi
movq -0x188(%rbp), %rdx
leaq -0x158(%rbp), %rsi
callq 0x5c560
movl %eax, -0x254(%rbp)
jmp 0xdf046
leaq -0x198(%rbp), %rdi
callq 0x5ca80
jmp 0xdf054
leaq -0x198(%rbp), %rdi
callq 0x59680
movl %eax, -0x258(%rbp)
jmp 0xdf068
leaq -0x198(%rbp), %rdi
callq 0x5a410
movl -0x258(%rbp), %ecx
movl -0x254(%rbp), %eax
cmpl %ecx, %eax
jne 0xdf157
movq -0x1b8(%rbp), %rdi
movq -0x188(%rbp), %rsi
callq 0x59d50
jmp 0xdf09d
jmp 0xdf157
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0xdf0c8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x120(%rbp), %rdi
callq 0x5df00
leaq -0x108(%rbp), %rdi
callq 0x5df00
jmp 0xdf22d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0xdf179
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0xdf110
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x180(%rbp), %rdi
callq 0x5a410
leaq -0x170(%rbp), %rdi
callq 0x5df00
jmp 0xdf179
movq -0x248(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
movl $0x158, %esi            # imm = 0x158
callq 0x595b0
jmp 0xdf179
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x198(%rbp), %rdi
callq 0x5a410
jmp 0xdf179
jmp 0xdf159
leaq -0x158(%rbp), %rdi
callq 0x59520
movl -0x124(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x124(%rbp)
jmp 0xdef23
leaq -0x158(%rbp), %rdi
callq 0x59520
jmp 0xdf22d
jmp 0xdf18c
movl -0x124(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x124(%rbp)
jmp 0xdee98
jmp 0xdf1a2
movl -0x9c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x9c(%rbp)
jmp 0xdec09
jmp 0xdf1b8
movl -0x9c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x9c(%rbp)
jmp 0xdeb84
leaq -0x1a8(%rbp), %rdi
callq 0x5ca80
jmp 0xdf1da
leaq -0x1a8(%rbp), %rdi
callq 0x59680
movl %eax, -0x25c(%rbp)
jmp 0xdf1ee
leaq -0x1a8(%rbp), %rdi
callq 0x5a410
leaq -0x98(%rbp), %rdi
callq 0x65aa0
movl -0x25c(%rbp), %eax
addq $0x260, %rsp            # imm = 0x260
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x1a8(%rbp), %rdi
callq 0x5a410
leaq -0x98(%rbp), %rdi
callq 0x65aa0
movq -0x18(%rbp), %rdi
callq 0x5b6b0
nopw %cs:(%rax,%rax)