// File: /workspace/github_c_makefile_star2_O0/timocramer[P]thinklight-fun/tl-morsestrobo.c
// Function: morse_code
static const char* morse_code(char x) {
	if(x >= 'a' && x <= 'z')
		x &= ~0x20;
	
	switch(x) {
	case '\'': return ".----.";
	case '(': return "-.--.";
	case ')': return "-.--.-";
	case '+': return ".-.-.";
	case ',': return "--..--";
	case '-': return "-....-";
	case '.': return ".-.-.-";
	case '/': return "-..-.";
	case '0': return "-----";
	case '1': return ".----";
	case '2': return "..---";
	case '3': return "...--";
	case '4': return "....-";
	case '5': return ".....";
	case '6': return "-....";
	case '7': return "--...";
	case '8': return "---..";
	case '9': return "----.";
	case ':': return "---...";
	case ';': return "-.-.-.";
	case '=': return "-...-";
	case '?': return "..--..";
	case '@': return ".--.-.";
	case 'A': return ".-";
	case 'B': return "-...";
	case 'C': return "-.-.";
	case 'D': return "-..";
	case 'E': return ".";
	case 'F': return "..-.";
	case 'G': return "--.";
	case 'H': return "....";
	case 'I': return "..";
	case 'J': return ".---";
	case 'K': return "-.-";
	case 'L': return ".-..";
	case 'M': return "--";
	case 'N': return "-.";
	case 'O': return "---";
	case 'P': return ".--.";
	case 'Q': return "--.-";
	case 'R': return ".-.";
	case 'S': return "...";
	case 'T': return "-";
	case 'U': return "..-";
	case 'V': return "...-";
	case 'W': return ".--";
	case 'X': return "-..-";
	case 'Y': return "-.--";
	case 'Z': return "--..";
	case '_': return "..--.-";
	}
	return NULL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movb %dil, %al
movb %al, -0x9(%rbp)
movsbl -0x9(%rbp), %eax
cmpl $0x61, %eax
jl 0x15b6
movsbl -0x9(%rbp), %eax
cmpl $0x7a, %eax
jg 0x15b6
movsbl -0x9(%rbp), %eax
andl $-0x21, %eax
movb %al, -0x9(%rbp)
movsbl -0x9(%rbp), %eax
addl $-0x27, %eax
movl %eax, %ecx
movq %rcx, -0x18(%rbp)
subl $0x38, %eax
ja 0x18e2
movq -0x18(%rbp), %rax
leaq 0xa2d(%rip), %rcx       # 0x2004
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0xbb2(%rip), %rax       # 0x2199
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0xba9(%rip), %rax       # 0x21a0
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0xb9f(%rip), %rax       # 0x21a6
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0xbe3(%rip), %rax       # 0x21fa
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0xb86(%rip), %rax       # 0x21ad
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0xb7d(%rip), %rax       # 0x21b4
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0xb74(%rip), %rax       # 0x21bb
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0xb6b(%rip), %rax       # 0x21c2
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0xb61(%rip), %rax       # 0x21c8
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0xb57(%rip), %rax       # 0x21ce
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0xb4d(%rip), %rax       # 0x21d4
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0xb43(%rip), %rax       # 0x21da
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0xb0e(%rip), %rax       # 0x21b5
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0xb29(%rip), %rax       # 0x21e0
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0xb1f(%rip), %rax       # 0x21e6
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0xb1c(%rip), %rax       # 0x21f3
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0xb05(%rip), %rax       # 0x21ec
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0xaa3(%rip), %rax       # 0x219a
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0xaeb(%rip), %rax       # 0x21f2
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0xae2(%rip), %rax       # 0x21f9
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0xad9(%rip), %rax       # 0x2200
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0xacf(%rip), %rax       # 0x2206
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0xac6(%rip), %rax       # 0x220d
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0xa53(%rip), %rax       # 0x21aa
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0xa8d(%rip), %rax       # 0x21f4
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0xa98(%rip), %rax       # 0x220f
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0xa67(%rip), %rax       # 0x21ee
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0xa07(%rip), %rax       # 0x219e
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0xa1c(%rip), %rax       # 0x21c3
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0x9e5(%rip), %rax       # 0x219c
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0xa20(%rip), %rax       # 0x21e7
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0xa18(%rip), %rax       # 0x21ef
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0x9ee(%rip), %rax       # 0x21d5
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0x9b2(%rip), %rax       # 0x21a9
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0xa0d(%rip), %rax       # 0x2214
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0x9b4(%rip), %rax       # 0x21cb
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0x976(%rip), %rax       # 0x219d
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0x993(%rip), %rax       # 0x21ca
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0x95a(%rip), %rax       # 0x21a1
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0x951(%rip), %rax       # 0x21a8
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0x9a9(%rip), %rax       # 0x2210
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0x981(%rip), %rax       # 0x21f5
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0x94b(%rip), %rax       # 0x21cc
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0x98c(%rip), %rax       # 0x221a
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0x966(%rip), %rax       # 0x2201
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0x977(%rip), %rax       # 0x221f
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0x964(%rip), %rax       # 0x2219
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0x95c(%rip), %rax       # 0x221e
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0x91e(%rip), %rax       # 0x21ed
movq %rax, -0x8(%rbp)
jmp 0x18ea
leaq 0x947(%rip), %rax       # 0x2223
movq %rax, -0x8(%rbp)
jmp 0x18ea
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
popq %rbp
retq