// File: /workspace/github_cpp_makefile_star2_O2/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
subq $0x30, %rsp
cmpl $0x2, %edi
jl 0x117f
movq 0x8(%rsi), %rbx
jmp 0x1186
leaq 0xe7e(%rip), %rbx       # 0x2004
movq %rbx, 0x20(%rsp)
movq %rbx, %rdi
callq 0x1040
movl %eax, 0x28(%rsp)
pushq $-0x1
popq %rbp
testl %eax, %eax
je 0x1286
leaq 0x20(%rsp), %r14
movq %r14, %rdi
callq 0x145e
movq (%r14), %rdx
movl 0x8(%r14), %ecx
xorl %esi, %esi
movl %ecx, %edi
subl $0x1, %edi
cmovbl %esi, %edi
incq %rdx
movq %rdx, (%rsp)
movl %edi, 0x8(%rsp)
cmpb $0x62, %al
je 0x1234
movzbl %al, %eax
cmpl $0x61, %eax
jne 0x1286
pushq $-0x1
popq %rbp
cmpl $0x2, %ecx
jb 0x1286
movq %rsp, %rdi
callq 0x145e
cmpb $0x62, %al
jne 0x1286
movq (%rsp), %rax
movl 0x8(%rsp), %ecx
xorl %edx, %edx
movl %ecx, %esi
subl $0x1, %esi
cmovbl %edx, %esi
incq %rax
movq %rax, 0x10(%rsp)
movl %esi, 0x18(%rsp)
cmpl $0x2, %ecx
jb 0x1286
leaq 0x10(%rsp), %rdi
callq 0x145e
cmpb $0x63, %al
jne 0x1286
xorl %ebp, %ebp
cmpl $0x2, 0x18(%rsp)
adcl $-0x1, %ebp
jmp 0x1286
pushq $-0x1
popq %rbp
cmpl $0x2, %ecx
jb 0x1286
movq %rsp, %rdi
callq 0x145e
cmpb $0x63, %al
jne 0x1286
movq (%rsp), %rax
movl 0x8(%rsp), %ecx
xorl %edx, %edx
movl %ecx, %esi
subl $0x1, %esi
cmovbl %edx, %esi
incq %rax
movq %rax, 0x10(%rsp)
movl %esi, 0x18(%rsp)
cmpl $0x2, %ecx
jb 0x1286
leaq 0x10(%rsp), %rdi
callq 0x145e
cmpb $0x64, %al
jne 0x1286
xorl %ebp, %ebp
cmpl $0x2, 0x18(%rsp)
adcl $-0x1, %ebp
orl $0x1, %ebp
leaq 0xd7b(%rip), %rdi       # 0x2008
movl %ebp, %esi
xorl %eax, %eax
callq 0x1030
movq %rbx, %rdi
callq 0x1040
leaq 0xd67(%rip), %rdi       # 0x200c
testl %eax, %eax
je 0x1444
cmpl $0x1, %eax
je 0x1444
cmpb $0x52, (%rbx)
jne 0x1444
movzbl 0x1(%rbx), %edx
leal -0x2(%rax), %ecx
cmpl $0x6f, %edx
je 0x1337
cmpl $0x61, %edx
jne 0x1444
testl %ecx, %ecx
je 0x1444
movzbl 0x2(%rbx), %edx
leal -0x3(%rax), %ecx
cmpl $0x73, %edx
je 0x1393
cmpl $0x62, %edx
jne 0x1444
testl %ecx, %ecx
je 0x1444
movzbl 0x3(%rbx), %ecx
addl $-0x4, %eax
cmpl $0x65, %ecx
je 0x13ce
cmpl $0x61, %ecx
jne 0x1444
testl %eax, %eax
je 0x1444
cmpb $0x6e, 0x4(%rbx)
jne 0x1444
cmpl $0x1, %eax
leaq 0xcdc(%rip), %rax       # 0x200e
jmp 0x1439
testl %ecx, %ecx
je 0x1444
cmpb $0x73, 0x2(%rbx)
jne 0x1444
movl %eax, %ecx
addl $-0x3, %ecx
je 0x1444
cmpl $0x1, %ecx
je 0x1444
cmpb $0x74, 0x3(%rbx)
jne 0x1444
cmpb $0x65, 0x4(%rbx)
jne 0x1444
addl $-0x5, %eax
je 0x1444
cmpb $0x6e, 0x5(%rbx)
jne 0x1444
cmpl $0x1, %eax
leaq 0xc8c(%rip), %rax       # 0x201a
jmp 0x1439
testl %ecx, %ecx
je 0x1444
movzbl 0x3(%rbx), %edx
leal -0x4(%rax), %ecx
cmpl $0x74, %edx
je 0x13e4
cmpl $0x65, %edx
jne 0x1444
testl %ecx, %ecx
je 0x1444
cmpb $0x6e, 0x4(%rbx)
jne 0x1444
cmpl $0x1, %ecx
leaq 0xc46(%rip), %rax       # 0x2012
jmp 0x1439
testl %eax, %eax
je 0x1444
cmpb $0x6e, 0x4(%rbx)
jne 0x1444
cmpl $0x1, %eax
leaq 0xc2e(%rip), %rax       # 0x2010
jmp 0x1439
testl %ecx, %ecx
je 0x1444
cmpl $0x1, %ecx
je 0x1444
cmpb $0x65, 0x4(%rbx)
jne 0x1444
movzbl 0x5(%rbx), %edx
leal -0x6(%rax), %ecx
cmpl $0x72, %edx
je 0x1430
cmpl $0x6e, %edx
jne 0x1444
testl %ecx, %ecx
je 0x1454
cmpl $0x1, %ecx
je 0x1444
cmpb $0x64, 0x6(%rbx)
jne 0x1444
cmpb $0x65, 0x7(%rbx)
jne 0x1444
addl $-0x8, %eax
je 0x1444
cmpb $0x72, 0x8(%rbx)
jne 0x1444
cmpl $0x1, %eax
leaq 0xbe8(%rip), %rax       # 0x2016
jmp 0x1439
testl %ecx, %ecx
leaq 0xbdf(%rip), %rax       # 0x2018
leaq 0xbcc(%rip), %rdi       # 0x200c
cmoveq %rax, %rdi
callq 0x1060
xorl %eax, %eax
addq $0x30, %rsp
popq %rbx
popq %r14
popq %rbp
retq
leaq 0xbb9(%rip), %rdi       # 0x2014
jmp 0x1444
nop