// File: /workspace/github_c_makefile_star2_O3/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 0x95fd6
leaq 0x20(%rsp), %rdi
xorl %esi, %esi
callq 0x58990
movl %ebx, (%rax)
movl 0x5b8(%r14), %eax
leal -0x70(%rax), %ecx
cmpl $0x17, %ecx
ja 0x960ad
leaq 0x92ad0(%rip), %rsi     # 0x128ac0
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 0x96108
movq 0xd538a(%rip), %rax     # 0x16b3e8
movq (%rax), %rbx
leaq 0x60ffa(%rip), %rsi     # 0xf7062
leaq 0x40(%rsp), %rdi
callq 0x579f0
leaq 0x40(%rsp), %rsi
movq %rbx, %rdi
callq 0x58260
movq %rax, %r15
leaq 0x60fde(%rip), %rsi     # 0xf7067
leaq 0x130(%rsp), %rdi
callq 0x579f0
leaq 0x8(%rsp), %rdi
leaq 0x130(%rsp), %rdx
movq %r15, %rsi
callq 0x58460
jmp 0x96114
cmpl $0x1a, %eax
jle 0x963a2
addl $-0x1b, %eax
cmpl $0x13, %eax
ja 0x9603f
leaq 0x60eef(%rip), %rcx     # 0xf6fb4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0xd5313(%rip), %rax     # 0x16b3e8
movq (%rax), %rbx
leaq 0x60f51(%rip), %rsi     # 0xf7030
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 0x96035
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 0x96188
movq 0xd52b8(%rip), %rax     # 0x16b3e8
movq (%rax), %rbx
leaq 0x60f2f(%rip), %rsi     # 0xf7069
leaq 0x118(%rsp), %rdi
callq 0x579f0
leaq 0x118(%rsp), %rsi
movq %rbx, %rdi
callq 0x58260
movq %rax, %r12
leaq 0x60f06(%rip), %rsi     # 0xf7067
leaq 0x100(%rsp), %rdi
callq 0x579f0
leaq 0x88(%rsp), %rdi
leaq 0x100(%rsp), %rdx
movq %r12, %rsi
callq 0x58460
jmp 0x96197
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 0x9621d
movq 0xd5220(%rip), %rax     # 0x16b3e8
movq (%rax), %rbx
leaq 0x60e9b(%rip), %rsi     # 0xf706d
leaq 0xe8(%rsp), %rdi
callq 0x579f0
leaq 0xe8(%rsp), %rsi
movq %rbx, %rdi
callq 0x58260
movq %rax, %rbx
leaq 0x60e6e(%rip), %rsi     # 0xf7067
leaq 0xd0(%rsp), %rdi
callq 0x579f0
leaq 0x70(%rsp), %rdi
leaq 0xd0(%rsp), %rdx
movq %rbx, %rsi
callq 0x58460
jmp 0x96229
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 0x962aa
movq 0xd5193(%rip), %rax     # 0x16b3e8
movq (%rax), %rbx
leaq 0x60e12(%rip), %rsi     # 0xf7071
leaq 0xb8(%rsp), %rdi
callq 0x579f0
leaq 0xb8(%rsp), %rsi
movq %rbx, %rdi
callq 0x58260
movq %rax, %rbx
leaq 0x60de1(%rip), %rsi     # 0xf7067
leaq 0xa0(%rsp), %rdi
callq 0x579f0
leaq 0x58(%rsp), %rdi
leaq 0xa0(%rsp), %rdx
movq %rbx, %rsi
callq 0x58460
jmp 0x962b6
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 0x96306
leaq 0xa0(%rsp), %rdi
callq 0x59200
leaq 0xb8(%rsp), %rdi
callq 0x59200
leaq 0x70(%rsp), %rdi
callq 0x59200
testb %r12b, %r12b
je 0x9632f
leaq 0xd0(%rsp), %rdi
callq 0x59200
leaq 0xe8(%rsp), %rdi
callq 0x59200
leaq 0x88(%rsp), %rdi
callq 0x59200
testb %r15b, %r15b
je 0x9635b
leaq 0x100(%rsp), %rdi
callq 0x59200
leaq 0x118(%rsp), %rdi
callq 0x59200
leaq 0x8(%rsp), %rdi
callq 0x59200
testb %bpl, %bpl
je 0x96381
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 0x96675
cmpl $0x9, %eax
je 0x966af
cmpl $0xd, %eax
jne 0x9603f
movq 0xd5024(%rip), %rax     # 0x16b3e8
movq (%rax), %rbx
leaq 0x60c5b(%rip), %rsi     # 0xf7029
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 0x96035
movq 0xd4fea(%rip), %rax     # 0x16b3e8
movq (%rax), %rbx
leaq 0x60c52(%rip), %rsi     # 0xf705a
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 0x96035
movq 0xd4fb0(%rip), %rax     # 0x16b3e8
movq (%rax), %rbx
leaq 0x60c08(%rip), %rsi     # 0xf704a
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 0x96035
movq 0xd4f76(%rip), %rax     # 0x16b3e8
movq (%rax), %rbx
leaq 0x60bc0(%rip), %rsi     # 0xf703c
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 0x96035
movq 0xd4f3c(%rip), %rax     # 0x16b3e8
movq (%rax), %rbx
leaq 0x60b89(%rip), %rsi     # 0xf703f
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 0x96035
movq 0xd4f02(%rip), %rax     # 0x16b3e8
movq (%rax), %rbx
leaq 0x60b4a(%rip), %rsi     # 0xf703a
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 0x96035
movq 0xd4ec8(%rip), %rax     # 0x16b3e8
movq (%rax), %rbx
leaq 0x60b0a(%rip), %rsi     # 0xf7034
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 0x96035
movq 0xd4e8e(%rip), %rax     # 0x16b3e8
movq (%rax), %rbx
leaq 0x60ae2(%rip), %rsi     # 0xf7046
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 0x96035
movq 0xd4e54(%rip), %rax     # 0x16b3e8
movq (%rax), %rbx
leaq 0x60ab1(%rip), %rsi     # 0xf704f
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 0x96035
movq 0xd4e1a(%rip), %rax     # 0x16b3e8
movq (%rax), %rbx
leaq 0x60a7c(%rip), %rsi     # 0xf7054
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 0x96035
movq 0xd4de0(%rip), %rax     # 0x16b3e8
movq (%rax), %rbx
leaq 0x60a2f(%rip), %rsi     # 0xf7041
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 0x96035
movq 0xd4da6(%rip), %rax     # 0x16b3e8
movq (%rax), %rbx
leaq 0x60a12(%rip), %rsi     # 0xf705e
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 0x96035
movq 0xd4d6c(%rip), %rax     # 0x16b3e8
movq (%rax), %rbx
leaq 0x60995(%rip), %rsi     # 0xf701b
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 0x96035
movq 0xd4d32(%rip), %rax     # 0x16b3e8
movq (%rax), %rbx
leaq 0x60965(%rip), %rsi     # 0xf7025
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 0x96035
jmp 0x967be
jmp 0x967be
jmp 0x967be
jmp 0x967be
jmp 0x967be
jmp 0x967be
jmp 0x967be
jmp 0x967be
jmp 0x967be
jmp 0x967be
jmp 0x967be
jmp 0x967be
jmp 0x967be
jmp 0x967be
jmp 0x967be
jmp 0x96782
jmp 0x96782
jmp 0x96782
jmp 0x96782
jmp 0x96782
jmp 0x96782
jmp 0x96782
jmp 0x96782
jmp 0x96782
jmp 0x96782
jmp 0x96782
jmp 0x96782
jmp 0x96782
jmp 0x96782
jmp 0x96782
jmp 0x96754
movq %rax, %rbx
jmp 0x967fc
jmp 0x96792
jmp 0x96760
movq %rax, %rbx
jmp 0x96825
jmp 0x9679e
jmp 0x9676c
movq %rax, %rbx
jmp 0x96851
jmp 0x967ae
jmp 0x96778
movq %rax, %rbx
jmp 0x9687a
jmp 0x967be
movq %rax, %rbx
jmp 0x967d3
jmp 0x967be
jmp 0x967be
movq %rax, %rbx
jmp 0x967ea
jmp 0x96792
movq %rax, %rbx
jmp 0x96809
movq %rax, %rbx
jmp 0x96813
jmp 0x9679e
movq %rax, %rbx
jmp 0x96832
movq %rax, %rbx
jmp 0x9683f
movq %rax, %rbx
jmp 0x9685e
movq %rax, %rbx
jmp 0x96868
movq %rax, %rbx
jmp 0x96884
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
callq 0x59200
leaq 0x8(%rsp), %rdi
jmp 0x9687f
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0x59200
testb %r14b, %r14b
je 0x96809
leaq 0xa0(%rsp), %rdi
callq 0x59200
leaq 0xb8(%rsp), %rdi
callq 0x59200
leaq 0x70(%rsp), %rdi
callq 0x59200
testb %r12b, %r12b
je 0x96832
leaq 0xd0(%rsp), %rdi
callq 0x59200
leaq 0xe8(%rsp), %rdi
callq 0x59200
leaq 0x88(%rsp), %rdi
callq 0x59200
testb %r15b, %r15b
je 0x9685e
leaq 0x100(%rsp), %rdi
callq 0x59200
leaq 0x118(%rsp), %rdi
callq 0x59200
leaq 0x8(%rsp), %rdi
callq 0x59200
testb %bpl, %bpl
je 0x96884
leaq 0x130(%rsp), %rdi
callq 0x59200
leaq 0x40(%rsp), %rdi
callq 0x59200
leaq 0x20(%rsp), %rdi
callq 0x59200
movq %rbx, %rdi
callq 0x57090
nop