// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonfreetype/src/flags.c
// Function: checkoutlineflags
static FT_Int32 checkoutlineflags(lua_State *L, int arg) 
    {
    const char *s;
    FT_Int32 flags = 0;
    
    while(lua_isstring(L, arg))
        {
        s = lua_tostring(L, arg++);
#define CASE(CODE,str) if((strcmp(s, str)==0)) do { flags |= CODE; goto done; } while(0)
        CASE(FT_OUTLINE_NONE, "none");
        CASE(FT_OUTLINE_OWNER, "owner");
        CASE(FT_OUTLINE_EVEN_ODD_FILL, "even odd fill");
        CASE(FT_OUTLINE_REVERSE_FILL, "reverse fill");
        CASE(FT_OUTLINE_IGNORE_DROPOUTS, "ignore dropouts");
        CASE(FT_OUTLINE_SMART_DROPOUTS, "smart dropouts");
        CASE(FT_OUTLINE_INCLUDE_STUBS, "include stubs");
        CASE(FT_OUTLINE_HIGH_PRECISION, "high precision");
        CASE(FT_OUTLINE_SINGLE_PASS, "single pass");
#undef CASE
        return (FT_Int32)luaL_argerror(L, --arg, badvalue(L,s));
        done: ;
        }

    return flags;
    }

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movl %esi, 0x24(%rsp)
movl $0x0, 0x14(%rsp)
movq 0x28(%rsp), %rdi
movl 0x24(%rsp), %esi
callq 0x7da0
cmpl $0x0, %eax
je 0x112bf
movq 0x28(%rsp), %rdi
movl 0x24(%rsp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, 0x24(%rsp)
xorl %eax, %eax
movl %eax, %edx
callq 0x7330
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rdi
leaq 0x8526(%rip), %rsi      # 0x1963e
callq 0x7700
cmpl $0x0, %eax
jne 0x11134
jmp 0x11124
movl 0x14(%rsp), %eax
orl $0x0, %eax
movl %eax, 0x14(%rsp)
jmp 0x112ba
movq 0x18(%rsp), %rdi
leaq 0x9dff(%rip), %rsi      # 0x1af3f
callq 0x7700
cmpl $0x0, %eax
jne 0x1115c
jmp 0x1114c
movl 0x14(%rsp), %eax
orl $0x1, %eax
movl %eax, 0x14(%rsp)
jmp 0x112ba
movq 0x18(%rsp), %rdi
leaq 0x9ddd(%rip), %rsi      # 0x1af45
callq 0x7700
cmpl $0x0, %eax
jne 0x11184
jmp 0x11174
movl 0x14(%rsp), %eax
orl $0x2, %eax
movl %eax, 0x14(%rsp)
jmp 0x112ba
movq 0x18(%rsp), %rdi
leaq 0x9dc3(%rip), %rsi      # 0x1af53
callq 0x7700
cmpl $0x0, %eax
jne 0x111ac
jmp 0x1119c
movl 0x14(%rsp), %eax
orl $0x4, %eax
movl %eax, 0x14(%rsp)
jmp 0x112ba
movq 0x18(%rsp), %rdi
leaq 0x9da8(%rip), %rsi      # 0x1af60
callq 0x7700
cmpl $0x0, %eax
jne 0x111d4
jmp 0x111c4
movl 0x14(%rsp), %eax
orl $0x8, %eax
movl %eax, 0x14(%rsp)
jmp 0x112ba
movq 0x18(%rsp), %rdi
leaq 0x9d90(%rip), %rsi      # 0x1af70
callq 0x7700
cmpl $0x0, %eax
jne 0x111fc
jmp 0x111ec
movl 0x14(%rsp), %eax
orl $0x10, %eax
movl %eax, 0x14(%rsp)
jmp 0x112ba
movq 0x18(%rsp), %rdi
leaq 0x9d77(%rip), %rsi      # 0x1af7f
callq 0x7700
cmpl $0x0, %eax
jne 0x11224
jmp 0x11214
movl 0x14(%rsp), %eax
orl $0x20, %eax
movl %eax, 0x14(%rsp)
jmp 0x112ba
movq 0x18(%rsp), %rdi
leaq 0x9d5d(%rip), %rsi      # 0x1af8d
callq 0x7700
cmpl $0x0, %eax
jne 0x1124b
jmp 0x1123c
movl 0x14(%rsp), %eax
orl $0x100, %eax            # imm = 0x100
movl %eax, 0x14(%rsp)
jmp 0x112ba
movq 0x18(%rsp), %rdi
leaq 0x9d45(%rip), %rsi      # 0x1af9c
callq 0x7700
cmpl $0x0, %eax
jne 0x11272
jmp 0x11263
movl 0x14(%rsp), %eax
orl $0x200, %eax            # imm = 0x200
movl %eax, 0x14(%rsp)
jmp 0x112ba
movq 0x28(%rsp), %rax
movq %rax, 0x8(%rsp)
movl 0x24(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x10(%rsp)
movl %eax, 0x24(%rsp)
movq 0x28(%rsp), %rdi
movq 0x18(%rsp), %rdx
leaq 0x8300(%rip), %rsi      # 0x1959c
movb $0x0, %al
callq 0x7690
movq 0x8(%rsp), %rdi
movl 0x10(%rsp), %esi
movq %rax, %rdx
callq 0x7260
movl %eax, 0x34(%rsp)
jmp 0x112c7
jmp 0x110d5
movl 0x14(%rsp), %eax
movl %eax, 0x34(%rsp)
movl 0x34(%rsp), %eax
addq $0x38, %rsp
retq