// File: /workspace/github_cpp_makefile_star2_O1/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 %r13
pushq %r12
pushq %rbx
subq $0x98, %rsp
movl %edx, %r12d
movq %rsi, %r14
movq %rdi, %r15
leaq -0x40(%rbp), %rax
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
movq (%rdi), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0x2d, %esi
callq 0x1df9e
movq (%r15), %rax
movq -0x18(%rax), %r13
addq %r15, %r13
movq %r13, %rdi
callq 0x1eae0
movl %r12d, %ebx
cmpq $0x0, 0x10(%r13)
je 0x1e8a5
movq 0x8(%r13), %rax
movq 0x18(%r13), %rcx
cmpb $0x2d, (%rcx,%rax)
jne 0x1e8a5
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0x2d, %esi
callq 0x1df9e
movq (%r15), %rax
movq -0x18(%rax), %r13
addq %r15, %r13
movq %r13, %rdi
callq 0x1eae0
cmpq $0x0, 0x10(%r13)
je 0x1e95d
cmpl $0x5, 0x40(%r13)
jne 0x1e95d
testl %r12d, %r12d
je 0x1ea64
movq %r14, -0x30(%rbp)
xorl %r13d, %r13d
movq %rbx, %r14
movq (%r15), %rax
movq -0x18(%rax), %r12
addq %r15, %r12
movq -0x30(%rbp), %rax
movq (%rax,%r13,8), %rbx
movq %r12, %rdi
callq 0x1eae0
movq 0x10(%r12), %rax
testq %rax, %rax
je 0x1e895
movq 0x18(%r12), %rdx
addq 0x8(%r12), %rdx
xorl %ecx, %ecx
movb (%rbx,%rcx), %sil
testb %sil, %sil
je 0x1e885
cmpb %sil, (%rdx,%rcx)
jne 0x1e895
incq %rcx
cmpq %rcx, %rax
jne 0x1e86b
movq %rax, %rcx
cmpb $0x1, (%rbx,%rcx)
sbbl $-0x1, %ecx
cmpq %rcx, %rax
je 0x1ea3e
incq %r13
movq %r14, %rbx
cmpq %r14, %r13
jne 0x1e838
jmp 0x1ea64
movq (%r15), %rax
movq -0x18(%rax), %r13
addq %r15, %r13
movq %r13, %rdi
callq 0x1eae0
movq %rbx, -0x30(%rbp)
cmpq $0x0, 0x10(%r13)
movq (%r15), %rax
movq -0x18(%rax), %rbx
je 0x1e911
cmpl $0x5, 0x40(%r13)
jne 0x1e911
addq %rbx, %r15
movq %r15, %rdi
callq 0x1eae0
movq -0x30(%rbp), %rbx
cmpq $0x0, 0x10(%r15)
je 0x1e9af
movq 0x8(%r15), %rcx
movq 0x18(%r15), %rax
movb (%rax,%rcx), %al
incq %rcx
movq %rcx, 0x8(%r15)
movq $0x0, 0x10(%r15)
movl $0x0, 0x40(%r15)
jmp 0x1ea1b
leaq -0x88(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x296e9(%rip), %rsi     # 0x4800c
leaq 0x296f5(%rip), %rdx     # 0x4801f
leaq -0x98(%rbp), %rdi
callq 0x1f29e
addq %rbx, %r15
leaq -0x98(%rbp), %rsi
movq %r15, %rdi
callq 0x1de0a
movq -0x98(%rbp), %rdi
cmpq %r14, %rdi
movq -0x30(%rbp), %rbx
jne 0x1e9a5
jmp 0x1ea64
movq %rbx, %r12
movq (%r15), %rax
movq -0x18(%rax), %rbx
leaq -0x68(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x29696(%rip), %rsi     # 0x4800c
leaq 0x296a2(%rip), %rdx     # 0x4801f
leaq -0x78(%rbp), %rdi
callq 0x1f29e
addq %rbx, %r15
leaq -0x78(%rbp), %rsi
movq %r15, %rdi
callq 0x1de0a
movq -0x78(%rbp), %rdi
cmpq %r14, %rdi
movq %r12, %rbx
je 0x1ea64
callq 0xc280
jmp 0x1ea64
leaq -0xa8(%rbp), %r13
movq %r13, -0x10(%r13)
leaq -0x58(%rbp), %rsi
movq $0x12, (%rsi)
leaq -0xb8(%rbp), %rdi
xorl %edx, %edx
callq 0xc4f0
leaq -0xb8(%rbp), %rsi
movq %rax, (%rsi)
movq -0x58(%rbp), %rcx
movq %rcx, 0x10(%rsi)
movups 0x29634(%rip), %xmm0    # 0x48020
movups %xmm0, (%rax)
movw $0x6c6f, 0x10(%rax)     # imm = 0x6C6F
movq %rcx, 0x8(%rsi)
movq (%rsi), %rax
movb $0x0, (%rax,%rcx)
movq %r15, %rdi
callq 0x1de0a
movq -0xb8(%rbp), %rdi
cmpq %r13, %rdi
je 0x1ea19
callq 0xc280
xorl %eax, %eax
testl %r12d, %r12d
je 0x1ea64
xorl %ecx, %ecx
movq (%r14,%rcx,8), %rdx
cmpb %al, (%rdx)
jne 0x1ea30
cmpb $0x0, 0x1(%rdx)
je 0x1ea3a
incq %rcx
cmpq %rcx, %rbx
jne 0x1ea22
jmp 0x1ea64
movl %ecx, %ebx
jmp 0x1ea64
movq (%r15), %rax
movq -0x18(%rax), %rax
movq 0x10(%r15,%rax), %rcx
addq %rcx, 0x8(%r15,%rax)
movq $0x0, 0x10(%r15,%rax)
movl $0x0, 0x40(%r15,%rax)
movl %r13d, %ebx
leaq -0x40(%rbp), %rax
movq -0x50(%rbp), %rdi
cmpq %rax, %rdi
je 0x1ea76
callq 0xc280
movl %ebx, %eax
addq $0x98, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq -0xb8(%rbp), %rdi
cmpq %r13, %rdi
jne 0x1eab5
jmp 0x1eac5
movq %rax, %rbx
movq -0x78(%rbp), %rdi
jmp 0x1eab0
jmp 0x1eac2
movq %rax, %rbx
movq -0x98(%rbp), %rdi
cmpq %r14, %rdi
je 0x1eac5
callq 0xc280
jmp 0x1eac5
jmp 0x1eac2
jmp 0x1eac2
jmp 0x1eac2
movq %rax, %rbx
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x1ead7
callq 0xc280
movq %rbx, %rdi
callq 0xc4e0
nop