// File: xelia-it[P]mustache/test/src/../../src/../third-party/json/single_include/nlohmann/json.hpp
// Function: nlohmann::json_abi_v3_11_2::detail::lexer<nlohmann::json_abi_v3_11_2::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_2::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char>>, void>, nlohmann::json_abi_v3_11_2::detail::iterator_input_adapter<char const*>>::scan_comment()
bool scan_comment()
    {
        switch (get())
        {
            // single-line comments skip input until a newline or EOF is read
            case '/':
            {
                while (true)
                {
                    switch (get())
                    {
                        case '\n':
                        case '\r':
                        case std::char_traits<char_type>::eof():
                        case '\0':
                            return true;

                        default:
                            break;
                    }
                }
            }

            // multi-line comments skip input until */ is read
            case '*':
            {
                while (true)
                {
                    switch (get())
                    {
                        case std::char_traits<char_type>::eof():
                        case '\0':
                        {
                            error_message = "invalid comment; missing closing '*/'";
                            return false;
                        }

                        case '*':
                        {
                            switch (get())
                            {
                                case '/':
                                    return true;

                                default:
                                {
                                    unget();
                                    continue;
                                }
                            }
                        }

                        default:
                            continue;
                    }
                }
            }

            // unexpected character after reading '/'
            default:
            {
                error_message = "invalid comment; expecting '/' or '*' after '/'";
                return false;
            }
        }
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x20(%rbp)
callq 0x115c20
movl %eax, %ecx
movl %ecx, -0x14(%rbp)
subl $0x2a, %eax
je 0x11494c
jmp 0x114905
movl -0x14(%rbp), %eax
subl $0x2f, %eax
jne 0x1149a9
jmp 0x114913
jmp 0x114915
movq -0x20(%rbp), %rdi
callq 0x115c20
movl %eax, %ecx
movl %ecx, %eax
incl %eax
movl %ecx, -0x24(%rbp)
subl $0x2, %eax
jb 0x114942
jmp 0x11492e
movl -0x24(%rbp), %eax
subl $0xa, %eax
je 0x114942
jmp 0x114938
movl -0x24(%rbp), %eax
subl $0xd, %eax
jne 0x114948
jmp 0x114942
movb $0x1, -0x1(%rbp)
jmp 0x1149bc
jmp 0x11494a
jmp 0x114915
jmp 0x11494e
movq -0x20(%rbp), %rdi
callq 0x115c20
movl %eax, %ecx
movl %ecx, %eax
incl %eax
movl %ecx, -0x28(%rbp)
subl $0x2, %eax
jb 0x114971
jmp 0x114967
movl -0x28(%rbp), %eax
subl $0x2a, %eax
je 0x114986
jmp 0x1149a7
movq -0x20(%rbp), %rax
leaq 0x30b97(%rip), %rcx     # 0x145513
movq %rcx, 0x70(%rax)
movb $0x0, -0x1(%rbp)
jmp 0x1149bc
movq -0x20(%rbp), %rdi
callq 0x115c20
subl $0x2f, %eax
jne 0x11499c
jmp 0x114996
movb $0x1, -0x1(%rbp)
jmp 0x1149bc
movq -0x20(%rbp), %rdi
callq 0x115cf0
jmp 0x11494e
jmp 0x11494e
movq -0x20(%rbp), %rax
leaq 0x30b85(%rip), %rcx     # 0x145539
movq %rcx, 0x70(%rax)
movb $0x0, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)