// File: 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
subq $0xe0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0xa8(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x18(%rbp)
leaq -0x38(%rbp), %rdi
callq 0xd450
movq -0xa8(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
movl $0x2d, %esi
callq 0x26430
jmp 0x26f4d
movq -0xa8(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
movl $0x2d, %esi
callq 0x263d0
movb %al, -0xa9(%rbp)
jmp 0x26f70
movb -0xa9(%rbp), %al
testb $0x1, %al
jne 0x270dc
jmp 0x26f80
movq -0xa8(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
movl $0x5, %esi
callq 0x25bb0
movb %al, -0xaa(%rbp)
jmp 0x26fa3
movb -0xaa(%rbp), %al
testb $0x1, %al
jne 0x26fb2
jmp 0x2703f
movq -0xa8(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x28640
movb %al, -0xab(%rbp)
jmp 0x26fd0
movb -0xab(%rbp), %al
movb %al, -0x45(%rbp)
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
cmpl -0x14(%rbp), %eax
jae 0x2703a
movq -0x10(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movsbl (%rax), %eax
movsbl -0x45(%rbp), %ecx
cmpl %ecx, %eax
jne 0x2702d
movq -0x10(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movsbl 0x1(%rax), %eax
cmpl $0x0, %eax
jne 0x2702d
movl -0x4c(%rbp), %eax
movl %eax, -0x18(%rbp)
jmp 0x2703a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x27267
jmp 0x2702f
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0x26fe0
jmp 0x270d7
movq -0xa8(%rbp), %rax
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
addq %rcx, %rax
movq %rax, -0xc0(%rbp)
leaq -0x71(%rbp), %rdi
movq %rdi, -0xb8(%rbp)
callq 0xd5b0
movq -0xb8(%rbp), %rdx
leaq 0x3afcc(%rip), %rsi     # 0x62041
leaq -0x70(%rbp), %rdi
callq 0xd440
jmp 0x27080
movq -0xc0(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x262a0
jmp 0x27092
leaq -0x70(%rbp), %rdi
callq 0xd1b0
leaq -0x71(%rbp), %rdi
callq 0xd370
jmp 0x270d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x270c9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x70(%rbp), %rdi
callq 0xd1b0
leaq -0x71(%rbp), %rdi
callq 0xd370
jmp 0x27267
jmp 0x27246
movq -0xa8(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
movl $0x2d, %esi
callq 0x26430
jmp 0x270f9
movq -0xa8(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
movl $0x5, %esi
callq 0x25bb0
movb %al, -0xc1(%rbp)
jmp 0x2711c
movb -0xc1(%rbp), %al
testb $0x1, %al
jne 0x27128
jmp 0x2719a
movl $0x0, -0x78(%rbp)
movl -0x78(%rbp), %eax
cmpl -0x14(%rbp), %eax
jae 0x27195
movq -0xa8(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
movq -0x10(%rbp), %rax
movslq -0x78(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
callq 0x26810
movb %al, -0xc2(%rbp)
jmp 0x27161
movb -0xc2(%rbp), %al
testb $0x1, %al
jne 0x2716d
jmp 0x27188
movq -0xa8(%rbp), %rdi
movq (%rdi), %rax
addq -0x18(%rax), %rdi
callq 0x26900
movl -0x78(%rbp), %eax
movl %eax, -0x18(%rbp)
jmp 0x27195
jmp 0x2718a
movl -0x78(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x78(%rbp)
jmp 0x2712f
jmp 0x27244
movq -0xa8(%rbp), %rax
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
addq %rcx, %rax
movq %rax, -0xd8(%rbp)
leaq -0x99(%rbp), %rdi
movq %rdi, -0xd0(%rbp)
callq 0xd5b0
movq -0xd0(%rbp), %rdx
leaq 0x3ae6e(%rip), %rsi     # 0x62041
leaq -0x98(%rbp), %rdi
callq 0xd440
jmp 0x271e1
movq -0xd8(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x262a0
jmp 0x271f6
leaq -0x98(%rbp), %rdi
callq 0xd1b0
leaq -0x99(%rbp), %rdi
callq 0xd370
jmp 0x27244
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x27236
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x98(%rbp), %rdi
callq 0xd1b0
leaq -0x99(%rbp), %rdi
callq 0xd370
jmp 0x27267
jmp 0x27246
movl -0x18(%rbp), %eax
movl %eax, -0xdc(%rbp)
leaq -0x38(%rbp), %rdi
callq 0xd1b0
movl -0xdc(%rbp), %eax
addq $0xe0, %rsp
popq %rbp
retq
leaq -0x38(%rbp), %rdi
callq 0xd1b0
movq -0x40(%rbp), %rdi
callq 0xd5a0
nopl (%rax)