// File: ivanzamanov[P]kmeans/src/common/stem.cpp
// Function: step4()
static void step4()
{  switch (b[k-1])
    {  case 'a': if (ends("\02" "al")) break; return;
       case 'c': if (ends("\04" "ance")) break;
                 if (ends("\04" "ence")) break; return;
       case 'e': if (ends("\02" "er")) break; return;
       case 'i': if (ends("\02" "ic")) break; return;
       case 'l': if (ends("\04" "able")) break;
                 if (ends("\04" "ible")) break; return;
       case 'n': if (ends("\03" "ant")) break;
                 if (ends("\05" "ement")) break;
                 if (ends("\04" "ment")) break;
                 if (ends("\03" "ent")) break; return;
       case 'o': if (ends("\03" "ion") && j >= 0 && (b[j] == 's' || b[j] == 't')) break;
                 if (ends("\02" "ou")) break; return;
                 /* takes care of -ous */
       case 's': if (ends("\03" "ism")) break; return;
       case 't': if (ends("\03" "ate")) break;
                 if (ends("\03" "iti")) break; return;
       case 'u': if (ends("\03" "ous")) break; return;
       case 'v': if (ends("\03" "ive")) break; return;
       case 'z': if (ends("\03" "ize")) break; return;
       default: return;
    }
    if (m() > 1) k = j;
}

// Assembly:
pushq %rax
movq 0x34d8(%rip), %rax      # 0x5080
movl 0x34da(%rip), %ecx      # 0x5088
decl %ecx
movslq %ecx, %rcx
movsbl (%rax,%rcx), %eax
addl $-0x61, %eax
movl %eax, %ecx
movq %rcx, (%rsp)
subl $0x19, %eax
ja 0x1dd1
movq (%rsp), %rax
leaq 0x14f0(%rip), %rcx      # 0x30c4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x15c7(%rip), %rdi      # 0x31ab
callq 0x1ea0
cmpl $0x0, %eax
je 0x1bf3
jmp 0x1dd3
jmp 0x1de9
leaq 0x1595(%rip), %rdi      # 0x3194
callq 0x1ea0
cmpl $0x0, %eax
je 0x1c0e
jmp 0x1dd3
leaq 0x1573(%rip), %rdi      # 0x3188
callq 0x1ea0
cmpl $0x0, %eax
je 0x1c24
jmp 0x1dd3
jmp 0x1de9
leaq 0x162b(%rip), %rdi      # 0x325b
callq 0x1ea0
cmpl $0x0, %eax
je 0x1c3f
jmp 0x1dd3
jmp 0x1de9
leaq 0x15eb(%rip), %rdi      # 0x3236
callq 0x1ea0
cmpl $0x0, %eax
je 0x1c5a
jmp 0x1dd3
jmp 0x1de9
leaq 0x15f9(%rip), %rdi      # 0x325f
callq 0x1ea0
cmpl $0x0, %eax
je 0x1c75
jmp 0x1dd3
leaq 0x15e9(%rip), %rdi      # 0x3265
callq 0x1ea0
cmpl $0x0, %eax
je 0x1c8b
jmp 0x1dd3
jmp 0x1de9
leaq 0x15d4(%rip), %rdi      # 0x326b
callq 0x1ea0
cmpl $0x0, %eax
je 0x1ca6
jmp 0x1dd3
leaq 0x15c3(%rip), %rdi      # 0x3270
callq 0x1ea0
cmpl $0x0, %eax
je 0x1cbc
jmp 0x1dd3
leaq 0x15b4(%rip), %rdi      # 0x3277
callq 0x1ea0
cmpl $0x0, %eax
je 0x1cd2
jmp 0x1dd3
leaq 0x14dd(%rip), %rdi      # 0x31b6
callq 0x1ea0
cmpl $0x0, %eax
je 0x1ce8
jmp 0x1dd3
jmp 0x1de9
leaq 0x1589(%rip), %rdi      # 0x327d
callq 0x1ea0
cmpl $0x0, %eax
je 0x1d3a
cmpl $0x0, 0x338b(%rip)      # 0x5090
jl 0x1d3a
movq 0x3372(%rip), %rax      # 0x5080
movslq 0x337b(%rip), %rcx      # 0x5090
movsbl (%rax,%rcx), %eax
cmpl $0x73, %eax
je 0x1d35
movq 0x335b(%rip), %rax      # 0x5080
movslq 0x3364(%rip), %rcx      # 0x5090
movsbl (%rax,%rcx), %eax
cmpl $0x74, %eax
jne 0x1d3a
jmp 0x1dd3
leaq 0x1541(%rip), %rdi      # 0x3282
callq 0x1ea0
cmpl $0x0, %eax
je 0x1d50
jmp 0x1dd3
jmp 0x1de9
leaq 0x152a(%rip), %rdi      # 0x3286
callq 0x1ea0
cmpl $0x0, %eax
je 0x1d68
jmp 0x1dd3
jmp 0x1de9
leaq 0x13dd(%rip), %rdi      # 0x314e
callq 0x1ea0
cmpl $0x0, %eax
je 0x1d7d
jmp 0x1dd3
leaq 0x1507(%rip), %rdi      # 0x328b
callq 0x1ea0
cmpl $0x0, %eax
je 0x1d90
jmp 0x1dd3
jmp 0x1de9
leaq 0x142e(%rip), %rdi      # 0x31c7
callq 0x1ea0
cmpl $0x0, %eax
je 0x1da5
jmp 0x1dd3
jmp 0x1de9
leaq 0x1444(%rip), %rdi      # 0x31f2
callq 0x1ea0
cmpl $0x0, %eax
je 0x1dba
jmp 0x1dd3
jmp 0x1de9
leaq 0x139d(%rip), %rdi      # 0x3160
callq 0x1ea0
cmpl $0x0, %eax
je 0x1dcf
jmp 0x1dd3
jmp 0x1de9
jmp 0x1de9
callq 0x1fd0
cmpl $0x1, %eax
jle 0x1de9
movl 0x32ad(%rip), %eax      # 0x5090
movl %eax, 0x329f(%rip)      # 0x5088
popq %rax
retq
nopl (%rax,%rax)