// File: /workspace/github_cpp_makefile_star2_O2/vsklad[P]cgen/./bal/io/commandlinereader.hpp
// Function: bal::CommandLineReader::read_option(char const* const*, unsigned int)
inline int read_option(const char* const options[], const unsigned int options_size) {
            int result = options_size;
            std::string option_name;
            read_symbol('-');
            if (!is_symbol('-')) {
                // short
                if (is_token(ttLiteral)) {
                    const char option_name = read_symbol();
                    for (auto i = 0; i < options_size; i++) {
                        if (options[i][0] == option_name && options[i][1] == 0) {
                            result = i;
                            break;
                        };
                    };
                } else {
                    parse_error("Invalid option name");
                };
            } else {
                // long
                read_symbol('-');
                if (is_token(ttLiteral)) {
                    for (auto i = 0; i < options_size; i++) {
                        if (is_token(options[i])) {
                            skip_token();
                            result = i;
                            break;
                        };
                    };
                } else {
                    parse_error("Invalid option name");
                };
            };
            return result;
        }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x70, %rsp
movl %edx, %ebx
movq %rsi, %r15
movq %rdi, %r14
leaq -0x78(%rbp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
movq (%rdi), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
pushq $0x2d
popq %rsi
callq 0x18ac2
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
pushq $0x2d
popq %rsi
callq 0x18a92
movl %ebx, %ebx
movq (%r14), %rcx
movq -0x18(%rcx), %rdi
addq %r14, %rdi
testb %al, %al
je 0x19067
pushq $0x2d
popq %rsi
callq 0x18ac2
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
pushq $0x5
popq %rsi
callq 0x18644
testb %al, %al
je 0x190cc
xorl %r12d, %r12d
cmpq %r12, %rbx
je 0x190ff
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movq (%r15,%r12,8), %rsi
callq 0x18cd6
testb %al, %al
jne 0x1911a
incq %r12
jmp 0x1903e
pushq $0x5
popq %rsi
callq 0x18644
movq (%r14), %rcx
movq -0x18(%rcx), %r12
testb %al, %al
je 0x190a3
addq %r12, %r14
movq %r14, %rdi
callq 0x198ba
xorl %ecx, %ecx
cmpq %rcx, %rbx
je 0x190ff
movq (%r15,%rcx,8), %rdx
cmpb %al, (%rdx)
jne 0x1909e
cmpb $0x0, 0x1(%rdx)
je 0x1913c
incq %rcx
jmp 0x19087
leaq 0x1eedf(%rip), %rsi     # 0x37f89
leaq -0x68(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0xc0e0
addq %r12, %r14
leaq -0x68(%rbp), %rsi
movq %r14, %rdi
callq 0x189ce
leaq -0x68(%rbp), %rdi
jmp 0x190fa
movq (%r14), %rax
movq -0x18(%rax), %r15
leaq 0x1eeaf(%rip), %rsi     # 0x37f89
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0xc0e0
addq %r15, %r14
leaq -0x48(%rbp), %rsi
movq %r14, %rdi
callq 0x189ce
leaq -0x48(%rbp), %rdi
callq 0xc110
leaq -0x88(%rbp), %rdi
callq 0xc110
movl %ebx, %eax
addq $0x70, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq (%r14), %rax
movq -0x18(%rax), %rax
movq 0x10(%r14,%rax), %rcx
addq %rcx, 0x8(%r14,%rax)
andq $0x0, 0x10(%r14,%rax)
andl $0x0, 0x40(%r14,%rax)
movl %r12d, %ebx
jmp 0x190ff
movl %ecx, %ebx
jmp 0x190ff
movq %rax, %rbx
leaq -0x48(%rbp), %rdi
jmp 0x19152
jmp 0x1915f
movq %rax, %rbx
leaq -0x68(%rbp), %rdi
callq 0xc110
jmp 0x19162
jmp 0x1915f
jmp 0x1915f
jmp 0x1915f
movq %rax, %rbx
leaq -0x88(%rbp), %rdi
callq 0xc110
movq %rbx, %rdi
callq 0xc4c0