// File: /workspace/github_cpp_makefile_star2_O3/smilingthax[P]cttrie/test_cttrie.cpp
// Function: main
int main(int argc,char **argv)
{
  const char *str=(argc>1) ? argv[1] : "abc";

  printf("%d\n",
    TRIE2(lc_stringview,str) return -1;
    CASE("abc") return 0;
    CASE("bcd") return 1;
    ENDTRIE
  );

  TRIE(str)
    printf("E\n");
  CASE("Rosten")
    printf("6\n");
  CASE("Raben")
    printf("0\n");
  CASE("Rasen")
    printf("1\n");
  CASE("Rasten")
    printf("2\n");
  CASE("Raster")
    printf("3\n");
  CASE("Rastender")
    printf("4\n");
  CASE("Raban")
    printf("5\n");
  ENDTRIE;

  return 0;
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
cmpl $0x2, %edi
jl 0x117b
movq 0x8(%rsi), %rbx
jmp 0x1182
leaq 0xe82(%rip), %rbx       # 0x2004
movq %rbx, %rdi
callq 0x1040
movq %rax, %r14
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
testl %r14d, %r14d
je 0x1215
movsbl (%rbx), %edi
callq 0x1050
leal -0x1(%r14), %ecx
cmpb $0x62, %al
je 0x11e1
movzbl %al, %eax
cmpl $0x61, %eax
jne 0x1215
testl %ecx, %ecx
je 0x1215
movsbl 0x1(%rbx), %edi
callq 0x1050
cmpb $0x62, %al
jne 0x1215
addl $-0x2, %r14d
je 0x1215
movsbl 0x2(%rbx), %edi
callq 0x1050
cmpb $0x63, %al
jne 0x1215
xorl %ebp, %ebp
cmpl $0x1, %r14d
setne %bpl
negl %ebp
jmp 0x1215
testl %ecx, %ecx
je 0x1215
movsbl 0x1(%rbx), %edi
callq 0x1050
cmpb $0x63, %al
jne 0x1215
addl $-0x2, %r14d
je 0x1215
movsbl 0x2(%rbx), %edi
callq 0x1050
cmpb $0x64, %al
jne 0x1215
xorl %eax, %eax
cmpl $0x1, %r14d
sete %al
leal -0x1(,%rax,2), %ebp
leaq 0xdec(%rip), %rdi       # 0x2008
movl %ebp, %esi
xorl %eax, %eax
callq 0x1030
movq %rbx, %rdi
callq 0x1040
leaq 0xdd8(%rip), %rdi       # 0x200c
testl %eax, %eax
je 0x13d3
cmpl $0x1, %eax
je 0x13d3
cmpb $0x52, (%rbx)
jne 0x13d3
movzbl 0x1(%rbx), %edx
leal -0x2(%rax), %ecx
cmpl $0x6f, %edx
je 0x12c6
cmpl $0x61, %edx
jne 0x13d3
testl %ecx, %ecx
je 0x13d3
movzbl 0x2(%rbx), %edx
leal -0x3(%rax), %ecx
cmpl $0x73, %edx
je 0x1322
cmpl $0x62, %edx
jne 0x13d3
testl %ecx, %ecx
je 0x13d3
movzbl 0x3(%rbx), %ecx
addl $-0x4, %eax
cmpl $0x65, %ecx
je 0x135d
cmpl $0x61, %ecx
jne 0x13d3
testl %eax, %eax
je 0x13d3
cmpb $0x6e, 0x4(%rbx)
jne 0x13d3
cmpl $0x1, %eax
leaq 0xd4d(%rip), %rax       # 0x200e
jmp 0x13c8
testl %ecx, %ecx
je 0x13d3
cmpb $0x73, 0x2(%rbx)
jne 0x13d3
movl %eax, %ecx
addl $-0x3, %ecx
je 0x13d3
cmpl $0x1, %ecx
je 0x13d3
cmpb $0x74, 0x3(%rbx)
jne 0x13d3
cmpb $0x65, 0x4(%rbx)
jne 0x13d3
addl $-0x5, %eax
je 0x13d3
cmpb $0x6e, 0x5(%rbx)
jne 0x13d3
cmpl $0x1, %eax
leaq 0xcfd(%rip), %rax       # 0x201a
jmp 0x13c8
testl %ecx, %ecx
je 0x13d3
movzbl 0x3(%rbx), %edx
leal -0x4(%rax), %ecx
cmpl $0x74, %edx
je 0x1373
cmpl $0x65, %edx
jne 0x13d3
testl %ecx, %ecx
je 0x13d3
cmpb $0x6e, 0x4(%rbx)
jne 0x13d3
cmpl $0x1, %ecx
leaq 0xcb7(%rip), %rax       # 0x2012
jmp 0x13c8
testl %eax, %eax
je 0x13d3
cmpb $0x6e, 0x4(%rbx)
jne 0x13d3
cmpl $0x1, %eax
leaq 0xc9f(%rip), %rax       # 0x2010
jmp 0x13c8
testl %ecx, %ecx
je 0x13d3
cmpl $0x1, %ecx
je 0x13d3
cmpb $0x65, 0x4(%rbx)
jne 0x13d3
movzbl 0x5(%rbx), %edx
leal -0x6(%rax), %ecx
cmpl $0x72, %edx
je 0x13bf
cmpl $0x6e, %edx
jne 0x13d3
testl %ecx, %ecx
je 0x13df
cmpl $0x1, %ecx
je 0x13d3
cmpb $0x64, 0x6(%rbx)
jne 0x13d3
cmpb $0x65, 0x7(%rbx)
jne 0x13d3
addl $-0x8, %eax
je 0x13d3
cmpb $0x72, 0x8(%rbx)
jne 0x13d3
cmpl $0x1, %eax
leaq 0xc59(%rip), %rax       # 0x2016
jmp 0x13c8
testl %ecx, %ecx
leaq 0xc50(%rip), %rax       # 0x2018
leaq 0xc3d(%rip), %rdi       # 0x200c
cmoveq %rax, %rdi
callq 0x1060
xorl %eax, %eax
popq %rbx
popq %r14
popq %rbp
retq
leaq 0xc2e(%rip), %rdi       # 0x2014
jmp 0x13d3