// File: /workspace/github_cpp_makefile_star2_O3/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 0x1c824
movq (%r15), %rax
movq -0x18(%rax), %r13
addq %r15, %r13
movq %r13, %rdi
callq 0x1d33a
movl %r12d, %ebx
cmpq $0x0, 0x10(%r13)
je 0x1d0fb
movq 0x8(%r13), %rax
movq 0x18(%r13), %rcx
cmpb $0x2d, (%rcx,%rax)
jne 0x1d0fb
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0x2d, %esi
callq 0x1c824
movq (%r15), %rax
movq -0x18(%rax), %r13
addq %r15, %r13
movq %r13, %rdi
callq 0x1d33a
cmpq $0x0, 0x10(%r13)
je 0x1d1b3
cmpl $0x5, 0x40(%r13)
jne 0x1d1b3
testl %r12d, %r12d
je 0x1d290
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 0x1d33a
movq 0x10(%r12), %rax
testq %rax, %rax
je 0x1d0eb
movq 0x18(%r12), %rdx
addq 0x8(%r12), %rdx
xorl %ecx, %ecx
movb (%rbx,%rcx), %sil
testb %sil, %sil
je 0x1d0de
cmpb %sil, (%rdx,%rcx)
jne 0x1d0eb
incq %rcx
cmpq %rcx, %rax
jne 0x1d0b9
xorl %edx, %edx
cmpb $0x0, (%rbx,%rax)
setne %dl
movq %rax, %rcx
jmp 0x1d0e0
xorl %edx, %edx
addl %edx, %ecx
cmpq %rcx, %rax
je 0x1d298
incq %r13
movq %r14, %rbx
cmpq %r14, %r13
jne 0x1d086
jmp 0x1d2be
movq (%r15), %rax
movq -0x18(%rax), %r13
addq %r15, %r13
movq %r13, %rdi
callq 0x1d33a
movq %rbx, -0x30(%rbp)
cmpq $0x0, 0x10(%r13)
movq (%r15), %rax
movq -0x18(%rax), %rbx
je 0x1d167
cmpl $0x5, 0x40(%r13)
jne 0x1d167
addq %rbx, %r15
movq %r15, %rdi
callq 0x1d33a
movq -0x30(%rbp), %rbx
cmpq $0x0, 0x10(%r15)
je 0x1d205
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 0x1d271
leaq -0x88(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x28ea3(%rip), %rsi     # 0x4601c
leaq 0x28eaf(%rip), %rdx     # 0x4602f
leaq -0x98(%rbp), %rdi
callq 0x1dab2
addq %rbx, %r15
leaq -0x98(%rbp), %rsi
movq %r15, %rdi
callq 0x1c690
movq -0x98(%rbp), %rdi
cmpq %r14, %rdi
movq -0x30(%rbp), %rbx
jne 0x1d1fb
jmp 0x1d2be
movq %rbx, %r12
movq (%r15), %rax
movq -0x18(%rax), %rbx
leaq -0x68(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x28e50(%rip), %rsi     # 0x4601c
leaq 0x28e5c(%rip), %rdx     # 0x4602f
leaq -0x78(%rbp), %rdi
callq 0x1dab2
addq %rbx, %r15
leaq -0x78(%rbp), %rsi
movq %r15, %rdi
callq 0x1c690
movq -0x78(%rbp), %rdi
cmpq %r14, %rdi
movq %r12, %rbx
je 0x1d2be
callq 0xb280
jmp 0x1d2be
leaq -0xa8(%rbp), %r13
movq %r13, -0x10(%r13)
leaq -0x58(%rbp), %rsi
movq $0x12, (%rsi)
leaq -0xb8(%rbp), %rdi
xorl %edx, %edx
callq 0xb4f0
leaq -0xb8(%rbp), %rsi
movq %rax, (%rsi)
movq -0x58(%rbp), %rcx
movq %rcx, 0x10(%rsi)
movups 0x28dee(%rip), %xmm0    # 0x46030
movups %xmm0, (%rax)
movw $0x6c6f, 0x10(%rax)     # imm = 0x6C6F
movq %rcx, 0x8(%rsi)
movq (%rsi), %rax
movb $0x0, (%rax,%rcx)
movq %r15, %rdi
callq 0x1c690
movq -0xb8(%rbp), %rdi
cmpq %r13, %rdi
je 0x1d26f
callq 0xb280
xorl %eax, %eax
testl %r12d, %r12d
je 0x1d290
xorl %ecx, %ecx
movq (%r14,%rcx,8), %rdx
cmpb %al, (%rdx)
jne 0x1d286
cmpb $0x0, 0x1(%rdx)
je 0x1d294
incq %rcx
cmpq %rcx, %rbx
jne 0x1d278
jmp 0x1d2be
xorl %ebx, %ebx
jmp 0x1d2be
movl %ecx, %ebx
jmp 0x1d2be
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 0x1d2d0
callq 0xb280
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 0x1d30f
jmp 0x1d31f
movq %rax, %rbx
movq -0x78(%rbp), %rdi
jmp 0x1d30a
jmp 0x1d31c
movq %rax, %rbx
movq -0x98(%rbp), %rdi
cmpq %r14, %rdi
je 0x1d31f
callq 0xb280
jmp 0x1d31f
jmp 0x1d31c
jmp 0x1d31c
jmp 0x1d31c
movq %rax, %rbx
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x1d331
callq 0xb280
movq %rbx, %rdi
callq 0xb4e0
nop