// File: /workspace/github_c_makefile_star2_O1/enzo1982[P]smooth/classes/gui/widgets/special/shortcut.cpp
// Function: smooth::GUI::Shortcut::ToString() const
S::String S::GUI::Shortcut::ToString() const
{
	String	 keyString;

	if	(key >= '0'  && key <= '9')	keyString[0] = key;
	else if (key >= 'A'  && key <= 'Z')	keyString[0] = key;

	if	(key >= Input::Keyboard::KeyF1 &&
		 key <= Input::Keyboard::KeyF24)    keyString = String("F").Append(String::FromInt(1 + (key - Input::Keyboard::KeyF1)));
	else if (key == Input::Keyboard::KeyBack)   keyString = I18n::Translator::defaultTranslator->TranslateString("Backspace");
	else if (key == Input::Keyboard::KeyTab)    keyString = I18n::Translator::defaultTranslator->TranslateString("Tab");
	else if (key == Input::Keyboard::KeyReturn) keyString = I18n::Translator::defaultTranslator->TranslateString("Return");
	else if (key == Input::Keyboard::KeyEscape) keyString = I18n::Translator::defaultTranslator->TranslateString("Esc");
	else if (key == Input::Keyboard::KeySpace)  keyString = I18n::Translator::defaultTranslator->TranslateString("Space");
	else if (key == Input::Keyboard::KeyPrior)  keyString = I18n::Translator::defaultTranslator->TranslateString("PgUp");
	else if (key == Input::Keyboard::KeyNext)   keyString = I18n::Translator::defaultTranslator->TranslateString("PgDown");
	else if (key == Input::Keyboard::KeyEnd)    keyString = I18n::Translator::defaultTranslator->TranslateString("End");
	else if (key == Input::Keyboard::KeyHome)   keyString = I18n::Translator::defaultTranslator->TranslateString("Home");
	else if (key == Input::Keyboard::KeyLeft)   keyString = I18n::Translator::defaultTranslator->TranslateString("Left");
	else if (key == Input::Keyboard::KeyUp)	    keyString = I18n::Translator::defaultTranslator->TranslateString("Up");
	else if (key == Input::Keyboard::KeyRight)  keyString = I18n::Translator::defaultTranslator->TranslateString("Right");
	else if (key == Input::Keyboard::KeyDown)   keyString = I18n::Translator::defaultTranslator->TranslateString("Down");
	else if (key == Input::Keyboard::KeyInsert) keyString = I18n::Translator::defaultTranslator->TranslateString("Ins");
	else if (key == Input::Keyboard::KeyDelete) keyString = I18n::Translator::defaultTranslator->TranslateString("Del");

	return	(Binary::IsFlagSet(flags, SC_CTRL)  ? I18n::Translator::defaultTranslator->TranslateString("Ctrl").Append("+")	: String())
         .Append(Binary::IsFlagSet(flags, SC_CMD)   ? I18n::Translator::defaultTranslator->TranslateString("Cmd").Append("+")	: String())
         .Append(Binary::IsFlagSet(flags, SC_ALT)   ? I18n::Translator::defaultTranslator->TranslateString("Alt").Append("+")	: String())
	 .Append(Binary::IsFlagSet(flags, SC_SHIFT) ? I18n::Translator::defaultTranslator->TranslateString("Shift").Append("+")	: String())
	 .Append(keyString);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x148, %rsp            # imm = 0x148
movq %rsi, %r14
movq %rdi, 0x38(%rsp)
leaq 0x20(%rsp), %rdi
xorl %esi, %esi
callq 0x58e20
movl 0x5b8(%r14), %ebx
leal -0x30(%rbx), %eax
cmpl $0xa, %eax
setb %al
leal -0x41(%rbx), %ecx
cmpl $0x1a, %ecx
setb %cl
orb %al, %cl
je 0x96634
leaq 0x20(%rsp), %rdi
xorl %esi, %esi
callq 0x58990
movl %ebx, (%rax)
movl 0x5b8(%r14), %eax
leal -0x70(%rax), %ecx
cmpl $0x17, %ecx
ja 0x9670b
leaq 0x93252(%rip), %rsi     # 0x1298a0
leaq 0x8(%rsp), %rdi
callq 0x579f0
movslq 0x5b8(%r14), %rsi
addq $-0x6f, %rsi
leaq 0x40(%rsp), %rdi
callq 0x56cf0
leaq 0x8(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x562f0
leaq 0x20(%rsp), %rdi
movq %rax, %rsi
callq 0x555f0
leaq 0x40(%rsp), %rdi
callq 0x59200
leaq 0x8(%rsp), %rdi
callq 0x59200
movl 0x30(%r14), %edi
movl $0x2, %esi
callq 0x583f0
movl %eax, %ebp
testb %al, %al
je 0x96766
movq 0xd5d2c(%rip), %rax     # 0x16c3e8
movq (%rax), %rbx
leaq 0x617f8(%rip), %rsi     # 0xf7ebe
leaq 0x40(%rsp), %rdi
callq 0x579f0
leaq 0x40(%rsp), %rsi
movq %rbx, %rdi
callq 0x58260
movq %rax, %r15
leaq 0x617dc(%rip), %rsi     # 0xf7ec3
leaq 0x130(%rsp), %rdi
callq 0x579f0
leaq 0x8(%rsp), %rdi
leaq 0x130(%rsp), %rdx
movq %r15, %rsi
callq 0x58460
jmp 0x96772
cmpl $0x1a, %eax
jle 0x96a00
addl $-0x1b, %eax
cmpl $0x13, %eax
ja 0x9669d
leaq 0x616ed(%rip), %rcx     # 0xf7e10
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0xd5cb5(%rip), %rax     # 0x16c3e8
movq (%rax), %rbx
leaq 0x6174f(%rip), %rsi     # 0xf7e8c
leaq 0x8(%rsp), %rdi
callq 0x579f0
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x58260
leaq 0x20(%rsp), %rdi
movq %rax, %rsi
callq 0x555f0
jmp 0x96693
leaq 0x8(%rsp), %rdi
xorl %esi, %esi
callq 0x58e20
movl 0x30(%r14), %edi
movl $0x4, %esi
callq 0x583f0
movl %eax, %r15d
testb %al, %al
je 0x967e6
movq 0xd5c5a(%rip), %rax     # 0x16c3e8
movq (%rax), %rbx
leaq 0x6172d(%rip), %rsi     # 0xf7ec5
leaq 0x118(%rsp), %rdi
callq 0x579f0
leaq 0x118(%rsp), %rsi
movq %rbx, %rdi
callq 0x58260
movq %rax, %r12
leaq 0x61704(%rip), %rsi     # 0xf7ec3
leaq 0x100(%rsp), %rdi
callq 0x579f0
leaq 0x88(%rsp), %rdi
leaq 0x100(%rsp), %rdx
movq %r12, %rsi
callq 0x58460
jmp 0x967f5
leaq 0x88(%rsp), %rdi
xorl %esi, %esi
callq 0x58e20
leaq 0x8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x562f0
movq %rax, %r13
movl 0x30(%r14), %edi
movl $0x1, %esi
callq 0x583f0
movl %eax, %r12d
testb %al, %al
je 0x9687b
movq 0xd5bc2(%rip), %rax     # 0x16c3e8
movq (%rax), %rbx
leaq 0x61699(%rip), %rsi     # 0xf7ec9
leaq 0xe8(%rsp), %rdi
callq 0x579f0
leaq 0xe8(%rsp), %rsi
movq %rbx, %rdi
callq 0x58260
movq %rax, %rbx
leaq 0x6166c(%rip), %rsi     # 0xf7ec3
leaq 0xd0(%rsp), %rdi
callq 0x579f0
leaq 0x70(%rsp), %rdi
leaq 0xd0(%rsp), %rdx
movq %rbx, %rsi
callq 0x58460
jmp 0x96887
leaq 0x70(%rsp), %rdi
xorl %esi, %esi
callq 0x58e20
leaq 0x70(%rsp), %rsi
movq %r13, %rdi
callq 0x562f0
movq %rax, %r13
movl 0x30(%r14), %edi
movl $0x8, %esi
callq 0x583f0
movl %eax, %r14d
testb %al, %al
je 0x96908
movq 0xd5b35(%rip), %rax     # 0x16c3e8
movq (%rax), %rbx
leaq 0x61610(%rip), %rsi     # 0xf7ecd
leaq 0xb8(%rsp), %rdi
callq 0x579f0
leaq 0xb8(%rsp), %rsi
movq %rbx, %rdi
callq 0x58260
movq %rax, %rbx
leaq 0x615df(%rip), %rsi     # 0xf7ec3
leaq 0xa0(%rsp), %rdi
callq 0x579f0
leaq 0x58(%rsp), %rdi
leaq 0xa0(%rsp), %rdx
movq %rbx, %rsi
callq 0x58460
jmp 0x96914
leaq 0x58(%rsp), %rdi
xorl %esi, %esi
callq 0x58e20
leaq 0x58(%rsp), %rsi
movq %r13, %rdi
callq 0x562f0
leaq 0x20(%rsp), %rsi
movq %rax, %rdi
callq 0x562f0
movq 0x38(%rsp), %rdi
movq %rax, %rsi
callq 0x570b0
leaq 0x58(%rsp), %rdi
callq 0x59200
testb %r14b, %r14b
je 0x96964
leaq 0xa0(%rsp), %rdi
callq 0x59200
leaq 0xb8(%rsp), %rdi
callq 0x59200
leaq 0x70(%rsp), %rdi
callq 0x59200
testb %r12b, %r12b
je 0x9698d
leaq 0xd0(%rsp), %rdi
callq 0x59200
leaq 0xe8(%rsp), %rdi
callq 0x59200
leaq 0x88(%rsp), %rdi
callq 0x59200
testb %r15b, %r15b
je 0x969b9
leaq 0x100(%rsp), %rdi
callq 0x59200
leaq 0x118(%rsp), %rdi
callq 0x59200
leaq 0x8(%rsp), %rdi
callq 0x59200
testb %bpl, %bpl
je 0x969df
leaq 0x130(%rsp), %rdi
callq 0x59200
leaq 0x40(%rsp), %rdi
callq 0x59200
leaq 0x20(%rsp), %rdi
callq 0x59200
movq 0x38(%rsp), %rax
addq $0x148, %rsp            # imm = 0x148
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpl $0x8, %eax
je 0x96cd3
cmpl $0x9, %eax
je 0x96d0d
cmpl $0xd, %eax
jne 0x9669d
movq 0xd59c6(%rip), %rax     # 0x16c3e8
movq (%rax), %rbx
leaq 0x61459(%rip), %rsi     # 0xf7e85
leaq 0x8(%rsp), %rdi
callq 0x579f0
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x58260
leaq 0x20(%rsp), %rdi
movq %rax, %rsi
callq 0x555f0
jmp 0x96693
movq 0xd598c(%rip), %rax     # 0x16c3e8
movq (%rax), %rbx
leaq 0x61450(%rip), %rsi     # 0xf7eb6
leaq 0x8(%rsp), %rdi
callq 0x579f0
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x58260
leaq 0x20(%rsp), %rdi
movq %rax, %rsi
callq 0x555f0
jmp 0x96693
movq 0xd5952(%rip), %rax     # 0x16c3e8
movq (%rax), %rbx
leaq 0x61406(%rip), %rsi     # 0xf7ea6
leaq 0x8(%rsp), %rdi
callq 0x579f0
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x58260
leaq 0x20(%rsp), %rdi
movq %rax, %rsi
callq 0x555f0
jmp 0x96693
movq 0xd5918(%rip), %rax     # 0x16c3e8
movq (%rax), %rbx
leaq 0x613be(%rip), %rsi     # 0xf7e98
leaq 0x8(%rsp), %rdi
callq 0x579f0
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x58260
leaq 0x20(%rsp), %rdi
movq %rax, %rsi
callq 0x555f0
jmp 0x96693
movq 0xd58de(%rip), %rax     # 0x16c3e8
movq (%rax), %rbx
leaq 0x61387(%rip), %rsi     # 0xf7e9b
leaq 0x8(%rsp), %rdi
callq 0x579f0
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x58260
leaq 0x20(%rsp), %rdi
movq %rax, %rsi
callq 0x555f0
jmp 0x96693
movq 0xd58a4(%rip), %rax     # 0x16c3e8
movq (%rax), %rbx
leaq 0x61348(%rip), %rsi     # 0xf7e96
leaq 0x8(%rsp), %rdi
callq 0x579f0
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x58260
leaq 0x20(%rsp), %rdi
movq %rax, %rsi
callq 0x555f0
jmp 0x96693
movq 0xd586a(%rip), %rax     # 0x16c3e8
movq (%rax), %rbx
leaq 0x61308(%rip), %rsi     # 0xf7e90
leaq 0x8(%rsp), %rdi
callq 0x579f0
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x58260
leaq 0x20(%rsp), %rdi
movq %rax, %rsi
callq 0x555f0
jmp 0x96693
movq 0xd5830(%rip), %rax     # 0x16c3e8
movq (%rax), %rbx
leaq 0x612e0(%rip), %rsi     # 0xf7ea2
leaq 0x8(%rsp), %rdi
callq 0x579f0
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x58260
leaq 0x20(%rsp), %rdi
movq %rax, %rsi
callq 0x555f0
jmp 0x96693
movq 0xd57f6(%rip), %rax     # 0x16c3e8
movq (%rax), %rbx
leaq 0x612af(%rip), %rsi     # 0xf7eab
leaq 0x8(%rsp), %rdi
callq 0x579f0
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x58260
leaq 0x20(%rsp), %rdi
movq %rax, %rsi
callq 0x555f0
jmp 0x96693
movq 0xd57bc(%rip), %rax     # 0x16c3e8
movq (%rax), %rbx
leaq 0x6127a(%rip), %rsi     # 0xf7eb0
leaq 0x8(%rsp), %rdi
callq 0x579f0
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x58260
leaq 0x20(%rsp), %rdi
movq %rax, %rsi
callq 0x555f0
jmp 0x96693
movq 0xd5782(%rip), %rax     # 0x16c3e8
movq (%rax), %rbx
leaq 0x6122d(%rip), %rsi     # 0xf7e9d
leaq 0x8(%rsp), %rdi
callq 0x579f0
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x58260
leaq 0x20(%rsp), %rdi
movq %rax, %rsi
callq 0x555f0
jmp 0x96693
movq 0xd5748(%rip), %rax     # 0x16c3e8
movq (%rax), %rbx
leaq 0x61210(%rip), %rsi     # 0xf7eba
leaq 0x8(%rsp), %rdi
callq 0x579f0
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x58260
leaq 0x20(%rsp), %rdi
movq %rax, %rsi
callq 0x555f0
jmp 0x96693
movq 0xd570e(%rip), %rax     # 0x16c3e8
movq (%rax), %rbx
leaq 0x61193(%rip), %rsi     # 0xf7e77
leaq 0x8(%rsp), %rdi
callq 0x579f0
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x58260
leaq 0x20(%rsp), %rdi
movq %rax, %rsi
callq 0x555f0
jmp 0x96693
movq 0xd56d4(%rip), %rax     # 0x16c3e8
movq (%rax), %rbx
leaq 0x61163(%rip), %rsi     # 0xf7e81
leaq 0x8(%rsp), %rdi
callq 0x579f0
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x58260
leaq 0x20(%rsp), %rdi
movq %rax, %rsi
callq 0x555f0
jmp 0x96693
jmp 0x96ea3
jmp 0x96ea3
jmp 0x96ea3
jmp 0x96ea3
jmp 0x96ea3
jmp 0x96ea3
jmp 0x96ea3
jmp 0x96ea3
jmp 0x96ea3
jmp 0x96ea3
jmp 0x96ea3
jmp 0x96ea3
jmp 0x96ea3
jmp 0x96ea3
jmp 0x96ea3
jmp 0x96e61
jmp 0x96e61
jmp 0x96e61
jmp 0x96e61
jmp 0x96e61
jmp 0x96e61
jmp 0x96e61
jmp 0x96e61
jmp 0x96e61
jmp 0x96e61
jmp 0x96e61
jmp 0x96e61
jmp 0x96e61
jmp 0x96e61
jmp 0x96e61
movq %rax, %rbx
movb $0x1, %r14b
jmp 0x96ee6
movq %rax, %rbx
movb $0x1, %r14b
jmp 0x96ee9
movq %rax, %rbx
movb $0x1, %r14b
jmp 0x96efb
movq %rax, %rbx
movb $0x1, %r12b
jmp 0x96f1a
movq %rax, %rbx
movb $0x1, %r12b
jmp 0x96f1d
movq %rax, %rbx
movb $0x1, %r12b
jmp 0x96f2f
movq %rax, %rbx
movb $0x1, %r15b
jmp 0x96f51
movq %rax, %rbx
movb $0x1, %r15b
jmp 0x96f54
movq %rax, %rbx
movb $0x1, %r15b
jmp 0x96f66
movq %rax, %rbx
movb $0x1, %bpl
jmp 0x96f85
movq %rax, %rbx
movb $0x1, %bpl
jmp 0x96f88
movq %rax, %rbx
movb $0x1, %bpl
jmp 0x96f97
movq %rax, %rbx
jmp 0x96eb8
jmp 0x96ea3
jmp 0x96ea3
movq %rax, %rbx
jmp 0x96ed4
jmp 0x96e71
movq %rax, %rbx
jmp 0x96efe
movq %rax, %rbx
jmp 0x96f08
jmp 0x96e83
movq %rax, %rbx
jmp 0x96f32
movq %rax, %rbx
jmp 0x96f3f
movq %rax, %rbx
jmp 0x96f69
movq %rax, %rbx
jmp 0x96f73
movq %rax, %rbx
jmp 0x96f9a
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
callq 0x59200
leaq 0x8(%rsp), %rdi
callq 0x59200
jmp 0x96f9a
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0x59200
testb %r14b, %r14b
je 0x96ee6
leaq 0xa0(%rsp), %rdi
callq 0x59200
testb %r14b, %r14b
testb %r14b, %r14b
je 0x96efb
leaq 0xb8(%rsp), %rdi
callq 0x59200
testb %r14b, %r14b
leaq 0x70(%rsp), %rdi
callq 0x59200
testb %r12b, %r12b
je 0x96f1a
leaq 0xd0(%rsp), %rdi
callq 0x59200
testb %r12b, %r12b
testb %r12b, %r12b
je 0x96f2f
leaq 0xe8(%rsp), %rdi
callq 0x59200
testb %r12b, %r12b
leaq 0x88(%rsp), %rdi
callq 0x59200
testb %r15b, %r15b
je 0x96f51
leaq 0x100(%rsp), %rdi
callq 0x59200
testb %r15b, %r15b
testb %r15b, %r15b
je 0x96f66
leaq 0x118(%rsp), %rdi
callq 0x59200
testb %r15b, %r15b
leaq 0x8(%rsp), %rdi
callq 0x59200
testb %bpl, %bpl
je 0x96f85
leaq 0x130(%rsp), %rdi
callq 0x59200
testb %bpl, %bpl
testb %bpl, %bpl
je 0x96f97
leaq 0x40(%rsp), %rdi
callq 0x59200
testb %bpl, %bpl
leaq 0x20(%rsp), %rdi
callq 0x59200
movq %rbx, %rdi
callq 0x57090