// File: /workspace/github_cpp_makefile_star2_O1/oknenavin[P]cxon/test/../src/cxon/lang/common/cio/numeric.hxx
// Function: std::enable_if<std::is_floating_point<double>::value, int>::type cxon::cio::num::imp::number_consume_<cxon::json::format_traits, double, std::istreambuf_iterator<char, std::char_traits<char>>>(char*, char const*, std::istreambuf_iterator<char, std::char_traits<char>>&, std::istreambuf_iterator<char, std::char_traits<char>>)
inline auto number_consume_(char* f, const char* l, II& i, II e)
                -> enable_if_t<std::is_floating_point<T>::value, int>
            {   // as in RFC7159 (except nans)
                CXON_ASSERT(f && f < l, "unexpected");
                char c = peek(i, e);
#                   if defined(__GNUC__) && __GNUC__ == 14 && !defined(__clang__)
#                       pragma GCC diagnostic push
#                       pragma GCC diagnostic ignored "-Warray-bounds"
#                       pragma GCC diagnostic ignored "-Wstringop-overflow"
#                   endif
                        CXON_IF_CONSTEXPR(!X::allow_javascript_nans) {
                            if (c == '"') {
                                ;                               CXON_READ()
                                if (is_sign_<T>(c))             CXON_NEXT()
                                if (c == 'i') {
                                    CXON_NEXT() if (c != 'n')   return 0;
                                    CXON_NEXT() if (c != 'f')   return 0;
                                }
                                else if (c == 'n') {
                                    CXON_NEXT() if (c != 'a')   return 0;
                                    CXON_NEXT() if (c != 'n')   return 0;
                                }
                                else                            return 0;
                                CXON_NEXT() if (c != '"')       return 0;
                                CXON_NEXT()                     goto trap_end;
                            }
                        }
                        if (is_sign_<T>(c))                     CXON_READ()
                        CXON_IF_CONSTEXPR( X::allow_javascript_nans) {
                            if (c == 'I') {
                                CXON_NEXT() if (c != 'n')       return 0;
                                CXON_NEXT() if (c != 'f')       return 0;
                                CXON_NEXT() if (c != 'i')       return 0;
                                CXON_NEXT() if (c != 'n')       return 0;
                                CXON_NEXT() if (c != 'i')       return 0;
                                CXON_NEXT() if (c != 't')       return 0;
                                CXON_NEXT() if (c != 'y')       return 0;
                                CXON_NEXT()                     goto trap_end;
                            }
                            if (c == 'N') {
                                CXON_NEXT() if (c != 'a')       return 0;
                                CXON_NEXT() if (c != 'N')       return 0;
                                CXON_NEXT()                     goto trap_end;
                            }
                        }
#                   if defined(__GNUC__) && __GNUC__ == 14 && !defined(__clang__)
#                       pragma GCC diagnostic pop
#                   endif
                    if (c == '0')                           goto trap_zero;
                //trap_whole:
                       if (!chr::is<X>::digit10(c))         return 0;
                    while ( chr::is<X>::digit10(c))         CXON_NEXT()
                    if (c == '.')                           goto trap_fraction;
                    if (c == 'e' || c == 'E')               goto trap_exponent;
                    ;                                       goto trap_end;
                trap_zero:
                    ;                                       CXON_NEXT()
                    if (c == '.')                           goto trap_fraction;
                    if (c == 'e' || c == 'E')               goto trap_exponent;
                    ;                                       goto trap_end;
                trap_fraction:
                    ;                                       CXON_NEXT()
                       if (!chr::is<X>::digit10(c))         return 0;
                    while ( chr::is<X>::digit10(c))         CXON_NEXT()
                    if (c == 'e' || c == 'E')               goto trap_exponent;
                    ;                                       goto trap_end;
                trap_exponent:
                    ;                                       CXON_NEXT()
                    if (c == '-' || c == '+')               CXON_NEXT()
                       if (!chr::is<X>::digit10(c))         return 0;
                    while ( chr::is<X>::digit10(c))         CXON_NEXT()
                    ;                                       goto trap_end;
                trap_end:
                    return f != l ? (*f = '\0', 1) : -1;
            }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movl %r8d, 0xc(%rsp)
movq %rcx, %r14
movq %rdx, %r15
movq %rsi, 0x10(%rsp)
movq %rdi, %r12
movq (%rdx), %r13
movl 0x8(%rdx), %ebp
testq %r13, %r13
setne %al
cmpl $-0x1, %ebp
sete %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x14be0
movq 0x10(%r13), %rax
cmpq 0x18(%r13), %rax
jae 0x1594a
movzbl (%rax), %ebx
xorl %eax, %eax
cmpl $-0x1, %ebx
cmoveq %rax, %r13
jmp 0x14be2
movl %ebp, %ebx
testq %r14, %r14
setne %al
movl 0xc(%rsp), %ecx
cmpl $-0x1, %ecx
sete %dl
andb %al, %dl
movl %ecx, %eax
movb %dl, 0xb(%rsp)
cmpb $0x1, %dl
jne 0x14c10
movq 0x10(%r14), %rax
cmpq 0x18(%r14), %rax
jae 0x1595b
movzbl (%rax), %eax
cmpl $-0x1, %ebx
sete %cl
cmpl $-0x1, %eax
sete %dl
movb $-0x1, %al
cmpb %dl, %cl
je 0x14c48
cmpl $-0x1, %ebp
sete %al
testq %r13, %r13
setne %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x14c46
movq 0x10(%r13), %rax
cmpq 0x18(%r13), %rax
jae 0x1597f
movzbl (%rax), %ebp
movl %ebp, %eax
cmpb $0x2d, %al
je 0x14cc6
movzbl %al, %ecx
cmpl $0x22, %ecx
jne 0x14e61
movb %al, (%r12)
movq %r15, %rdi
callq 0x9bbc
movq %r14, %rbx
cmpb $0x0, 0xb(%rsp)
je 0x14c7f
movq 0x10(%r14), %rax
movq %r14, %rbx
cmpq 0x18(%r14), %rax
jae 0x159c7
movq (%r15), %rdi
movq 0x10(%rdi), %rax
cmpq 0x18(%rdi), %rax
jae 0x15969
incq %rax
movq %rax, 0x10(%rdi)
movl $0xffffffff, 0x8(%r15)  # imm = 0xFFFFFFFF
movq (%r15), %r13
testq %r13, %r13
je 0x14d37
movq 0x10(%r13), %rax
cmpq 0x18(%r13), %rax
jae 0x15990
xorl %ebp, %ebp
xorl %eax, %eax
testb %bpl, %bpl
cmovneq %rax, %r13
jmp 0x14d3a
movb %al, (%r12)
movq %r15, %rdi
callq 0x9bbc
movq %r14, %rbx
cmpb $0x0, 0xb(%rsp)
je 0x14ced
movq 0x10(%r14), %rax
movq %r14, %rbx
cmpq 0x18(%r14), %rax
jae 0x159ec
movq (%r15), %rdi
movq 0x10(%rdi), %rax
cmpq 0x18(%rdi), %rax
jae 0x15974
incq %rax
movq %rax, 0x10(%rdi)
movl $0xffffffff, 0x8(%r15)  # imm = 0xFFFFFFFF
movq (%r15), %r13
testq %r13, %r13
je 0x14e0f
movq 0x10(%r13), %rax
cmpq 0x18(%r13), %rax
jae 0x159a6
xorl %ebp, %ebp
xorl %eax, %eax
testb %bpl, %bpl
cmovneq %rax, %r13
jmp 0x14e12
movb $0x1, %bpl
movl 0xc(%rsp), %edx
cmpl $-0x1, %edx
sete %al
testq %rbx, %rbx
setne %cl
andb %al, %cl
movl %edx, %eax
cmpb $0x1, %cl
jne 0x14d64
movq 0x10(%rbx), %rax
cmpq 0x18(%rbx), %rax
jae 0x159de
movzbl (%rax), %eax
cmpl $-0x1, %eax
setne %cl
movb $-0x1, %al
testq %r13, %r13
je 0x14d86
xorb %cl, %bpl
jne 0x14d86
movq 0x10(%r13), %rax
cmpq 0x18(%r13), %rax
jae 0x15a03
movb (%rax), %al
leaq 0x1(%r12), %r13
cmpb $0x2d, %al
jne 0x15151
cmpq 0x10(%rsp), %r13
je 0x158d7
movb %al, (%r13)
movq %r15, %rdi
callq 0x9bbc
movq %r14, %rbx
cmpb $0x0, 0xb(%rsp)
je 0x14dc5
movq 0x10(%r14), %rax
movq %r14, %rbx
cmpq 0x18(%r14), %rax
jae 0x15adc
movq (%r15), %rdi
movq 0x10(%rdi), %rax
cmpq 0x18(%rdi), %rax
jae 0x15a45
incq %rax
movq %rax, 0x10(%rdi)
movl $0xffffffff, 0x8(%r15)  # imm = 0xFFFFFFFF
movq (%r15), %r13
testq %r13, %r13
je 0x150fb
movq 0x10(%r13), %rax
cmpq 0x18(%r13), %rax
jae 0x15a8f
xorl %ebp, %ebp
xorl %eax, %eax
testb %bpl, %bpl
cmovneq %rax, %r13
jmp 0x150fe
movb $0x1, %bpl
movl 0xc(%rsp), %edx
cmpl $-0x1, %edx
sete %al
testq %rbx, %rbx
setne %cl
andb %al, %cl
movl %edx, %eax
cmpb $0x1, %cl
jne 0x14e3c
movq 0x10(%rbx), %rax
cmpq 0x18(%rbx), %rax
jae 0x15a12
movzbl (%rax), %eax
cmpl $-0x1, %eax
setne %cl
movb $-0x1, %al
testq %r13, %r13
je 0x14e5e
xorb %cl, %bpl
jne 0x14e5e
movq 0x10(%r13), %rax
cmpq 0x18(%r13), %rax
jae 0x15a20
movb (%rax), %al
incq %r12
cmpb $0x30, %al
jne 0x14ee1
cmpq 0x10(%rsp), %r12
je 0x158d7
movb %al, (%r12)
movq %r15, %rdi
callq 0x9bbc
movq %r14, %rbx
cmpb $0x0, 0xb(%rsp)
je 0x14e97
movq 0x10(%r14), %rax
movq %r14, %rbx
cmpq 0x18(%r14), %rax
jae 0x15a50
movq (%r15), %rdi
movq 0x10(%rdi), %rax
cmpq 0x18(%rdi), %rax
jae 0x159bc
incq %rax
movq %rax, 0x10(%rdi)
movl $0xffffffff, 0x8(%r15)  # imm = 0xFFFFFFFF
movq (%r15), %r13
testq %r13, %r13
je 0x15025
movq 0x10(%r13), %rax
cmpq 0x18(%r13), %rax
jae 0x15a2f
xorl %ebp, %ebp
xorl %eax, %eax
testb %bpl, %bpl
cmovneq %rax, %r13
jmp 0x15028
movzbl %al, %ecx
leaq -0x30(%rcx), %rdx
cmpq $0x9, %rdx
ja 0x15937
addq $-0x30, %rcx
cmpq $0x9, %rcx
ja 0x15077
cmpq 0x10(%rsp), %r12
je 0x158d7
movb %al, (%r12)
movq %r15, %rdi
callq 0x9bbc
movq %r14, %rbx
cmpb $0x0, 0xb(%rsp)
je 0x14f32
movq 0x10(%r14), %rax
movq %r14, %rbx
cmpq 0x18(%r14), %rax
jae 0x14ff1
movq (%r15), %rdi
movq 0x10(%rdi), %rax
cmpq 0x18(%rdi), %rax
jae 0x14fd0
incq %rax
movq %rax, 0x10(%rdi)
movl $0xffffffff, 0x8(%r15)  # imm = 0xFFFFFFFF
movq (%r15), %r13
testq %r13, %r13
je 0x14f70
movq 0x10(%r13), %rax
cmpq 0x18(%r13), %rax
jae 0x14fdb
xorl %ebp, %ebp
testb %bpl, %bpl
je 0x14f73
xorl %r13d, %r13d
jmp 0x14f73
movb $0x1, %bpl
movl 0xc(%rsp), %edx
cmpl $-0x1, %edx
sete %al
testq %rbx, %rbx
setne %cl
andb %al, %cl
movl %edx, %eax
cmpb $0x1, %cl
jne 0x14f99
movq 0x10(%rbx), %rax
cmpq 0x18(%rbx), %rax
jae 0x15007
movzbl (%rax), %eax
cmpl $-0x1, %eax
setne %cl
movb $-0x1, %al
testq %r13, %r13
je 0x14fb7
xorb %cl, %bpl
jne 0x14fb7
movq 0x10(%r13), %rax
cmpq 0x18(%r13), %rax
jae 0x15012
movb (%rax), %al
incq %r12
movzbl %al, %ecx
addq $-0x30, %rcx
cmpq $0xa, %rcx
jb 0x14f00
jmp 0x15077
movq (%rdi), %rax
callq *0x50(%rax)
jmp 0x14f4a
movq (%r13), %rax
movq %r13, %rdi
callq *0x48(%rax)
cmpl $-0x1, %eax
sete %bpl
jmp 0x14f66
movq (%r14), %rax
movq %r14, %rdi
callq *0x48(%rax)
cmpl $-0x1, %eax
je 0x1501e
movq %r14, %rbx
jmp 0x14f32
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x48(%rax)
jmp 0x14f99
movq (%r13), %rax
movq %r13, %rdi
callq *0x48(%rax)
jmp 0x14fb7
xorl %ebx, %ebx
jmp 0x14f32
movb $0x1, %bpl
movl 0xc(%rsp), %edx
cmpl $-0x1, %edx
sete %al
testq %rbx, %rbx
setne %cl
andb %al, %cl
movl %edx, %eax
cmpb $0x1, %cl
jne 0x15052
movq 0x10(%rbx), %rax
cmpq 0x18(%rbx), %rax
jae 0x15a67
movzbl (%rax), %eax
cmpl $-0x1, %eax
setne %cl
movb $-0x1, %al
testq %r13, %r13
je 0x15074
xorb %cl, %bpl
jne 0x15074
movq 0x10(%r13), %rax
cmpq 0x18(%r13), %rax
jae 0x15a75
movb (%rax), %al
incq %r12
cmpb $0x2e, %al
jne 0x153fe
cmpq 0x10(%rsp), %r12
je 0x158d7
movb %al, (%r12)
movq %r15, %rdi
callq 0x9bbc
movq %r14, %rbx
cmpb $0x0, 0xb(%rsp)
je 0x150b1
movq 0x10(%r14), %rax
movq %r14, %rbx
cmpq 0x18(%r14), %rax
jae 0x15b10
movq (%r15), %rdi
movq 0x10(%rdi), %rax
cmpq 0x18(%rdi), %rax
jae 0x15a84
incq %rax
movq %rax, 0x10(%rdi)
movl $0xffffffff, 0x8(%r15)  # imm = 0xFFFFFFFF
movq (%r15), %r13
testq %r13, %r13
je 0x1526b
movq 0x10(%r13), %rax
cmpq 0x18(%r13), %rax
jae 0x15aa5
xorl %ebp, %ebp
xorl %eax, %eax
testb %bpl, %bpl
cmovneq %rax, %r13
jmp 0x1526e
movb $0x1, %bpl
movl 0xc(%rsp), %edx
cmpl $-0x1, %edx
sete %al
testq %rbx, %rbx
setne %cl
andb %al, %cl
movl %edx, %eax
cmpb $0x1, %cl
jne 0x15128
movq 0x10(%rbx), %rax
cmpq 0x18(%rbx), %rax
jae 0x15af3
movzbl (%rax), %eax
cmpl $-0x1, %eax
setne %cl
movb $-0x1, %al
testq %r13, %r13
je 0x1514a
xorb %cl, %bpl
jne 0x1514a
movq 0x10(%r13), %rax
cmpq 0x18(%r13), %rax
jae 0x15b01
movb (%rax), %al
addq $0x2, %r12
movq %r12, %r13
cmpb $0x6e, %al
je 0x151e8
movzbl %al, %ecx
cmpl $0x69, %ecx
jne 0x15937
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
cmpq 0x10(%rsp), %r13
je 0x15939
movb %al, (%r13)
movq %r15, %rdi
callq 0x9bbc
movq %r14, %rbx
cmpb $0x0, 0xb(%rsp)
je 0x1519c
movq 0x10(%r14), %rax
movq %r14, %rbx
cmpq 0x18(%r14), %rax
jae 0x15bba
movq (%r15), %rdi
movq 0x10(%rdi), %rax
cmpq 0x18(%rdi), %rax
jae 0x15ac6
incq %rax
movq %rax, 0x10(%rdi)
movl $0xffffffff, 0x8(%r15)  # imm = 0xFFFFFFFF
movq (%r15), %r12
testq %r12, %r12
je 0x1564d
movq 0x10(%r12), %rax
cmpq 0x18(%r12), %rax
jae 0x15b5a
xorl %ebp, %ebp
xorl %eax, %eax
testb %bpl, %bpl
cmovneq %rax, %r12
jmp 0x15650
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
cmpq 0x10(%rsp), %r13
je 0x15939
movb %al, (%r13)
movq %r15, %rdi
callq 0x9bbc
movq %r14, %rbx
cmpb $0x0, 0xb(%rsp)
je 0x1521f
movq 0x10(%r14), %rax
movq %r14, %rbx
cmpq 0x18(%r14), %rax
jae 0x15bdf
movq (%r15), %rdi
movq 0x10(%rdi), %rax
cmpq 0x18(%rdi), %rax
jae 0x15ad1
incq %rax
movq %rax, 0x10(%rdi)
movl $0xffffffff, 0x8(%r15)  # imm = 0xFFFFFFFF
movq (%r15), %r12
testq %r12, %r12
je 0x1572b
movq 0x10(%r12), %rax
cmpq 0x18(%r12), %rax
jae 0x15b70
xorl %ebp, %ebp
xorl %eax, %eax
testb %bpl, %bpl
cmovneq %rax, %r12
jmp 0x1572e
movb $0x1, %bpl
movl 0xc(%rsp), %edx
cmpl $-0x1, %edx
sete %al
testq %rbx, %rbx
setne %cl
andb %al, %cl
movl %edx, %eax
cmpb $0x1, %cl
jne 0x15298
movq 0x10(%rbx), %rax
cmpq 0x18(%rbx), %rax
jae 0x15b27
movzbl (%rax), %eax
cmpl $-0x1, %eax
setne %cl
movb $-0x1, %al
testq %r13, %r13
je 0x152ba
xorb %cl, %bpl
jne 0x152ba
movq 0x10(%r13), %rax
cmpq 0x18(%r13), %rax
jae 0x15b35
movb (%rax), %al
movzbl %al, %ecx
leaq -0x30(%rcx), %rdx
cmpq $0x9, %rdx
ja 0x15937
incq %r12
addq $-0x30, %rcx
cmpq $0x9, %rcx
ja 0x153fe
cmpq 0x10(%rsp), %r12
je 0x158d7
movb %al, (%r12)
movq %r15, %rdi
callq 0x9bbc
movq %r14, %rbx
cmpb $0x0, 0xb(%rsp)
je 0x1530e
movq 0x10(%r14), %rax
movq %r14, %rbx
cmpq 0x18(%r14), %rax
jae 0x153ca
movq (%r15), %rdi
movq 0x10(%rdi), %rax
cmpq 0x18(%rdi), %rax
jae 0x153a9
incq %rax
movq %rax, 0x10(%rdi)
movl $0xffffffff, 0x8(%r15)  # imm = 0xFFFFFFFF
movq (%r15), %r13
testq %r13, %r13
je 0x1534c
movq 0x10(%r13), %rax
cmpq 0x18(%r13), %rax
jae 0x153b4
xorl %ebp, %ebp
testb %bpl, %bpl
je 0x1534f
xorl %r13d, %r13d
jmp 0x1534f
movb $0x1, %bpl
movl 0xc(%rsp), %edx
cmpl $-0x1, %edx
sete %al
testq %rbx, %rbx
setne %cl
andb %al, %cl
movl %edx, %eax
cmpb $0x1, %cl
jne 0x15375
movq 0x10(%rbx), %rax
cmpq 0x18(%rbx), %rax
jae 0x153e0
movzbl (%rax), %eax
cmpl $-0x1, %eax
setne %cl
movb $-0x1, %al
testq %r13, %r13
je 0x15393
xorb %cl, %bpl
jne 0x15393
movq 0x10(%r13), %rax
cmpq 0x18(%r13), %rax
jae 0x153eb
movb (%rax), %al
incq %r12
movzbl %al, %ecx
addq $-0x30, %rcx
cmpq $0xa, %rcx
jb 0x152dc
jmp 0x153fe
movq (%rdi), %rax
callq *0x50(%rax)
jmp 0x15326
movq (%r13), %rax
movq %r13, %rdi
callq *0x48(%rax)
cmpl $-0x1, %eax
sete %bpl
jmp 0x15342
movq (%r14), %rax
movq %r14, %rdi
callq *0x48(%rax)
cmpl $-0x1, %eax
je 0x153f7
movq %r14, %rbx
jmp 0x1530e
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x48(%rax)
jmp 0x15375
movq (%r13), %rax
movq %r13, %rdi
callq *0x48(%rax)
jmp 0x15393
xorl %ebx, %ebx
jmp 0x1530e
movl %eax, %ecx
andb $-0x21, %cl
cmpb $0x45, %cl
jne 0x158c4
cmpq 0x10(%rsp), %r12
je 0x158d7
movb %al, (%r12)
movq %r15, %rdi
callq 0x9bbc
movq %r14, %rbx
cmpb $0x0, 0xb(%rsp)
je 0x1543e
movq 0x10(%r14), %rax
movq %r14, %rbx
cmpq 0x18(%r14), %rax
jae 0x15b86
movq (%r15), %rdi
movq 0x10(%rdi), %rax
cmpq 0x18(%rdi), %rax
jae 0x15abb
incq %rax
movq %rax, 0x10(%rdi)
movl $0xffffffff, 0x8(%r15)  # imm = 0xFFFFFFFF
movq (%r15), %r13
testq %r13, %r13
je 0x15481
movq 0x10(%r13), %rax
cmpq 0x18(%r13), %rax
jae 0x15b44
xorl %ebp, %ebp
xorl %eax, %eax
testb %bpl, %bpl
cmovneq %rax, %r13
jmp 0x15484
movb $0x1, %bpl
movl 0xc(%rsp), %edx
cmpl $-0x1, %edx
sete %al
testq %rbx, %rbx
setne %cl
andb %al, %cl
movl %edx, %eax
cmpb $0x1, %cl
jne 0x154ae
movq 0x10(%rbx), %rax
cmpq 0x18(%rbx), %rax
jae 0x15b9d
movzbl (%rax), %eax
cmpl $-0x1, %eax
setne %cl
movb $-0x1, %al
testq %r13, %r13
je 0x154d0
xorb %cl, %bpl
jne 0x154d0
movq 0x10(%r13), %rax
cmpq 0x18(%r13), %rax
jae 0x15bab
movb (%rax), %al
leaq 0x1(%r12), %rcx
cmpb $0x2d, %al
je 0x154e1
movzbl %al, %edx
cmpl $0x2b, %edx
jne 0x15506
cmpq 0x10(%rsp), %rcx
je 0x158d7
movb %al, 0x1(%r12)
movq %r15, %rdi
movq %r14, %rsi
movl 0xc(%rsp), %edx
callq 0xfb40
addq $0x2, %r12
jmp 0x15509
movq %rcx, %r12
movzbl %al, %ecx
leaq -0x30(%rcx), %rdx
cmpq $0x9, %rdx
ja 0x15937
addq $-0x30, %rcx
cmpq $0x9, %rcx
ja 0x158c4
cmpq 0x10(%rsp), %r12
je 0x158d7
movb %al, (%r12)
movq %r15, %rdi
callq 0x9bbc
movq %r14, %rbx
cmpb $0x0, 0xb(%rsp)
je 0x1555a
movq 0x10(%r14), %rax
movq %r14, %rbx
cmpq 0x18(%r14), %rax
jae 0x15619
movq (%r15), %rdi
movq 0x10(%rdi), %rax
cmpq 0x18(%rdi), %rax
jae 0x155f8
incq %rax
movq %rax, 0x10(%rdi)
movl $0xffffffff, 0x8(%r15)  # imm = 0xFFFFFFFF
movq (%r15), %r13
testq %r13, %r13
je 0x15598
movq 0x10(%r13), %rax
cmpq 0x18(%r13), %rax
jae 0x15603
xorl %ebp, %ebp
testb %bpl, %bpl
je 0x1559b
xorl %r13d, %r13d
jmp 0x1559b
movb $0x1, %bpl
movl 0xc(%rsp), %edx
cmpl $-0x1, %edx
sete %al
testq %rbx, %rbx
setne %cl
andb %al, %cl
movl %edx, %eax
cmpb $0x1, %cl
jne 0x155c1
movq 0x10(%rbx), %rax
cmpq 0x18(%rbx), %rax
jae 0x1562f
movzbl (%rax), %eax
cmpl $-0x1, %eax
setne %cl
movb $-0x1, %al
testq %r13, %r13
je 0x155df
xorb %cl, %bpl
jne 0x155df
movq 0x10(%r13), %rax
cmpq 0x18(%r13), %rax
jae 0x1563a
movb (%rax), %al
incq %r12
movzbl %al, %ecx
addq $-0x30, %rcx
cmpq $0xa, %rcx
jb 0x15528
jmp 0x158c4
movq (%rdi), %rax
callq *0x50(%rax)
jmp 0x15572
movq (%r13), %rax
movq %r13, %rdi
callq *0x48(%rax)
cmpl $-0x1, %eax
sete %bpl
jmp 0x1558e
movq (%r14), %rax
movq %r14, %rdi
callq *0x48(%rax)
cmpl $-0x1, %eax
je 0x15646
movq %r14, %rbx
jmp 0x1555a
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x48(%rax)
jmp 0x155c1
movq (%r13), %rax
movq %r13, %rdi
callq *0x48(%rax)
jmp 0x155df
xorl %ebx, %ebx
jmp 0x1555a
movb $0x1, %bpl
movl 0xc(%rsp), %edx
cmpl $-0x1, %edx
sete %al
testq %rbx, %rbx
setne %cl
andb %al, %cl
movl %edx, %eax
cmpb $0x1, %cl
jne 0x1567a
movq 0x10(%rbx), %rax
cmpq 0x18(%rbx), %rax
jae 0x15bd1
movzbl (%rax), %eax
cmpl $-0x1, %eax
setne %cl
movb $-0x1, %al
testq %r12, %r12
je 0x1569e
xorb %cl, %bpl
jne 0x1569e
movq 0x10(%r12), %rax
cmpq 0x18(%r12), %rax
jae 0x15bf6
movb (%rax), %al
cmpb $0x6e, %al
jne 0x15937
leaq 0x1(%r13), %rcx
cmpq 0x10(%rsp), %rcx
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
je 0x15939
movb %al, (%rcx)
movq %r15, %rdi
callq 0x9bbc
movq %r14, %rbx
cmpb $0x0, 0xb(%rsp)
je 0x156df
movq 0x10(%r14), %rax
movq %r14, %rbx
cmpq 0x18(%r14), %rax
jae 0x15c64
movq (%r15), %rdi
movq 0x10(%rdi), %rax
cmpq 0x18(%rdi), %rax
jae 0x15c22
incq %rax
movq %rax, 0x10(%rdi)
movl $0xffffffff, 0x8(%r15)  # imm = 0xFFFFFFFF
movq (%r15), %r12
testq %r12, %r12
je 0x15809
movq 0x10(%r12), %rax
cmpq 0x18(%r12), %rax
jae 0x15c38
xorl %ebp, %ebp
xorl %eax, %eax
testb %bpl, %bpl
cmovneq %rax, %r12
jmp 0x1580c
movb $0x1, %bpl
movl 0xc(%rsp), %edx
cmpl $-0x1, %edx
sete %al
testq %rbx, %rbx
setne %cl
andb %al, %cl
movl %edx, %eax
cmpb $0x1, %cl
jne 0x15758
movq 0x10(%rbx), %rax
cmpq 0x18(%rbx), %rax
jae 0x15c05
movzbl (%rax), %eax
cmpl $-0x1, %eax
setne %cl
movb $-0x1, %al
testq %r12, %r12
je 0x1577c
xorb %cl, %bpl
jne 0x1577c
movq 0x10(%r12), %rax
cmpq 0x18(%r12), %rax
jae 0x15c13
movb (%rax), %al
cmpb $0x61, %al
jne 0x15937
leaq 0x1(%r13), %rcx
cmpq 0x10(%rsp), %rcx
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
je 0x15939
movb %al, (%rcx)
movq %r15, %rdi
callq 0x9bbc
movq %r14, %rbx
cmpb $0x0, 0xb(%rsp)
je 0x157bd
movq 0x10(%r14), %rax
movq %r14, %rbx
cmpq 0x18(%r14), %rax
jae 0x15c89
movq (%r15), %rdi
movq 0x10(%rdi), %rax
cmpq 0x18(%rdi), %rax
jae 0x15c2d
incq %rax
movq %rax, 0x10(%rdi)
movl $0xffffffff, 0x8(%r15)  # imm = 0xFFFFFFFF
movq (%r15), %r12
testq %r12, %r12
je 0x158de
movq 0x10(%r12), %rax
cmpq 0x18(%r12), %rax
jae 0x15c4e
xorl %ebp, %ebp
xorl %eax, %eax
testb %bpl, %bpl
cmovneq %rax, %r12
jmp 0x158e1
movb $0x1, %bpl
movl 0xc(%rsp), %edx
cmpl $-0x1, %edx
sete %al
testq %rbx, %rbx
setne %cl
andb %al, %cl
movl %edx, %eax
cmpb $0x1, %cl
jne 0x15836
movq 0x10(%rbx), %rax
cmpq 0x18(%rbx), %rax
jae 0x15c7b
movzbl (%rax), %eax
cmpl $-0x1, %eax
setne %cl
movb $-0x1, %al
testq %r12, %r12
je 0x1585a
xorb %cl, %bpl
jne 0x1585a
movq 0x10(%r12), %rax
cmpq 0x18(%r12), %rax
jae 0x15ca0
movb (%rax), %al
cmpb $0x66, %al
jne 0x15937
leaq 0x2(%r13), %rcx
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
cmpq 0x10(%rsp), %rcx
je 0x15939
movb %al, 0x2(%r13)
movq %r15, %rdi
movq %r14, %rsi
movl 0xc(%rsp), %edx
callq 0xfb40
movl $0x0, %edx
cmpb $0x22, %al
jne 0x15939
leaq 0x3(%r13), %rcx
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
cmpq 0x10(%rsp), %rcx
je 0x15939
movb %al, 0x3(%r13)
movq %r15, %rdi
movq %r14, %rsi
movl 0xc(%rsp), %edx
callq 0xfb40
addq $0x4, %r13
movq %r13, %r12
cmpq 0x10(%rsp), %r12
je 0x158d7
movb $0x0, (%r12)
movl $0x1, %edx
jmp 0x15939
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
jmp 0x15939
movb $0x1, %bpl
movl 0xc(%rsp), %edx
cmpl $-0x1, %edx
sete %al
testq %rbx, %rbx
setne %cl
andb %al, %cl
movl %edx, %eax
cmpb $0x1, %cl
jne 0x1590b
movq 0x10(%rbx), %rax
cmpq 0x18(%rbx), %rax
jae 0x15caf
movzbl (%rax), %eax
cmpl $-0x1, %eax
setne %cl
movb $-0x1, %al
testq %r12, %r12
je 0x1592f
xorb %cl, %bpl
jne 0x1592f
movq 0x10(%r12), %rax
cmpq 0x18(%r12), %rax
jae 0x15cbd
movb (%rax), %al
cmpb $0x6e, %al
je 0x15862
xorl %edx, %edx
movl %edx, %eax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq (%r13), %rax
movq %r13, %rdi
callq *0x48(%rax)
movl %eax, %ebx
jmp 0x14bd5
movq (%r14), %rax
movq %r14, %rdi
callq *0x48(%rax)
jmp 0x14c10
movq (%rdi), %rax
callq *0x50(%rax)
jmp 0x14c97
movq (%rdi), %rax
callq *0x50(%rax)
jmp 0x14d05
movq (%r13), %rax
movq %r13, %rdi
callq *0x48(%rax)
movl %eax, %ebp
jmp 0x14c46
movq (%r13), %rax
movq %r13, %rdi
callq *0x48(%rax)
cmpl $-0x1, %eax
sete %bpl
jmp 0x14cbb
movq (%r13), %rax
movq %r13, %rdi
callq *0x48(%rax)
cmpl $-0x1, %eax
sete %bpl
jmp 0x14d29
movq (%rdi), %rax
callq *0x50(%rax)
jmp 0x14eaf
movq (%r14), %rax
movq %r14, %rdi
callq *0x48(%rax)
xorl %ebx, %ebx
cmpl $-0x1, %eax
cmovneq %r14, %rbx
jmp 0x14c7f
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x48(%rax)
jmp 0x14d64
movq (%r14), %rax
movq %r14, %rdi
callq *0x48(%rax)
xorl %ebx, %ebx
cmpl $-0x1, %eax
cmovneq %r14, %rbx
jmp 0x14ced
movq (%r13), %rax
movq %r13, %rdi
callq *0x48(%rax)
jmp 0x14d86
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x48(%rax)
jmp 0x14e3c
movq (%r13), %rax
movq %r13, %rdi
callq *0x48(%rax)
jmp 0x14e5e
movq (%r13), %rax
movq %r13, %rdi
callq *0x48(%rax)
cmpl $-0x1, %eax
sete %bpl
jmp 0x14ed3
movq (%rdi), %rax
callq *0x50(%rax)
jmp 0x14ddd
movq (%r14), %rax
movq %r14, %rdi
callq *0x48(%rax)
xorl %ebx, %ebx
cmpl $-0x1, %eax
cmovneq %r14, %rbx
jmp 0x14e97
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x48(%rax)
jmp 0x15052
movq (%r13), %rax
movq %r13, %rdi
callq *0x48(%rax)
jmp 0x15074
movq (%rdi), %rax
callq *0x50(%rax)
jmp 0x150c9
movq (%r13), %rax
movq %r13, %rdi
callq *0x48(%rax)
cmpl $-0x1, %eax
sete %bpl
jmp 0x14e01
movq (%r13), %rax
movq %r13, %rdi
callq *0x48(%rax)
cmpl $-0x1, %eax
sete %bpl
jmp 0x150ed
movq (%rdi), %rax
callq *0x50(%rax)
jmp 0x15456
movq (%rdi), %rax
callq *0x50(%rax)
jmp 0x151b4
movq (%rdi), %rax
callq *0x50(%rax)
jmp 0x15237
movq (%r14), %rax
movq %r14, %rdi
callq *0x48(%rax)
xorl %ebx, %ebx
cmpl $-0x1, %eax
cmovneq %r14, %rbx
jmp 0x14dc5
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x48(%rax)
jmp 0x15128
movq (%r13), %rax
movq %r13, %rdi
callq *0x48(%rax)
jmp 0x1514a
movq (%r14), %rax
movq %r14, %rdi
callq *0x48(%rax)
xorl %ebx, %ebx
cmpl $-0x1, %eax
cmovneq %r14, %rbx
jmp 0x150b1
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x48(%rax)
jmp 0x15298
movq (%r13), %rax
movq %r13, %rdi
callq *0x48(%rax)
jmp 0x152ba
movq (%r13), %rax
movq %r13, %rdi
callq *0x48(%rax)
cmpl $-0x1, %eax
sete %bpl
jmp 0x15476
movq (%r12), %rax
movq %r12, %rdi
callq *0x48(%rax)
cmpl $-0x1, %eax
sete %bpl
jmp 0x151da
movq (%r12), %rax
movq %r12, %rdi
callq *0x48(%rax)
cmpl $-0x1, %eax
sete %bpl
jmp 0x1525d
movq (%r14), %rax
movq %r14, %rdi
callq *0x48(%rax)
xorl %ebx, %ebx
cmpl $-0x1, %eax
cmovneq %r14, %rbx
jmp 0x1543e
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x48(%rax)
jmp 0x154ae
movq (%r13), %rax
movq %r13, %rdi
callq *0x48(%rax)
jmp 0x154d0
movq (%r14), %rax
movq %r14, %rdi
callq *0x48(%rax)
xorl %ebx, %ebx
cmpl $-0x1, %eax
cmovneq %r14, %rbx
jmp 0x1519c
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x48(%rax)
jmp 0x1567a
movq (%r14), %rax
movq %r14, %rdi
callq *0x48(%rax)
xorl %ebx, %ebx
cmpl $-0x1, %eax
cmovneq %r14, %rbx
jmp 0x1521f
movq (%r12), %rax
movq %r12, %rdi
callq *0x48(%rax)
jmp 0x1569e
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x48(%rax)
jmp 0x15758
movq (%r12), %rax
movq %r12, %rdi
callq *0x48(%rax)
jmp 0x1577c
movq (%rdi), %rax
callq *0x50(%rax)
jmp 0x156f7
movq (%rdi), %rax
callq *0x50(%rax)
jmp 0x157d5
movq (%r12), %rax
movq %r12, %rdi
callq *0x48(%rax)
cmpl $-0x1, %eax
sete %bpl
jmp 0x1571d
movq (%r12), %rax
movq %r12, %rdi
callq *0x48(%rax)
cmpl $-0x1, %eax
sete %bpl
jmp 0x157fb
movq (%r14), %rax
movq %r14, %rdi
callq *0x48(%rax)
xorl %ebx, %ebx
cmpl $-0x1, %eax
cmovneq %r14, %rbx
jmp 0x156df
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x48(%rax)
jmp 0x15836
movq (%r14), %rax
movq %r14, %rdi
callq *0x48(%rax)
xorl %ebx, %ebx
cmpl $-0x1, %eax
cmovneq %r14, %rbx
jmp 0x157bd
movq (%r12), %rax
movq %r12, %rdi
callq *0x48(%rax)
jmp 0x1585a
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x48(%rax)
jmp 0x1590b
movq (%r12), %rax
movq %r12, %rdi
callq *0x48(%rax)
jmp 0x1592f