// File: oknenavin[P]cxon/test/../src/cxon/lib/node.json.hxx
// Function: bool cxon::imp::read_number_value_<cxon::JSON<cxon::json::format_traits>, cxon::json::basic_node<cxon::json::node_traits<std::allocator<char>>>, std::istreambuf_iterator<char, std::char_traits<char>>, cxon::context<cxon::JSON<cxon::json::format_traits>>>(cxon::json::basic_node<cxon::json::node_traits<std::allocator<char>>>&, cxon::json::basic_node<cxon::json::node_traits<std::allocator<char>>>::real&, std::istreambuf_iterator<char, std::char_traits<char>>&, std::istreambuf_iterator<char, std::char_traits<char>>, cxon::context<cxon::JSON<cxon::json::format_traits>>&)
inline bool read_number_value_(N& n, typename N::real& v, II& i, II e, Cx& cx) {
                    using ittp = typename std::iterator_traits<II>::value_type;
                    using sint = typename N::sint;
                    using uint = typename N::uint;
                    buffer_<json::num_len_max::constant<napa_type<Cx>>(64), II> bf(i);
                    uint u = 0;
                    int r = 0;
                    auto c = cio::peek(i, e);

                    bool const s = c == '-';
                    if (s) {
                        CXON_STORE('-');
                        c = cio::next(i, e);
                    }

                    if (c == '0') {
                        CXON_STORE('0');
                        ++i;
                    }
                    else if (c >= '1' && c <='9') {
                        if (s)
                            for ( ; c >= '0' && c <= '9'; c = cio::next(i, e)) {
                                if (u >= plm_<sint, ittp>::max)
                                    if (u != plm_<sint, ittp>::max || c > plm_<sint, ittp>::fst) {
                                        r = 1; break;
                                    }
                                u = u * 10 + static_cast<unsigned>(c - '0');
                                CXON_STORE(c);
                            }
                        else
                            for ( ; c >= '0' && c <= '9'; c = cio::next(i, e)) {
                                if (u >= plm_<uint, ittp>::max)
                                    if (u != plm_<uint, ittp>::max || c > plm_<uint, ittp>::fst) {
                                        r = 1; break;
                                    }
                                u = u * 10 + static_cast<unsigned>(c - '0');
                                CXON_STORE(c);
                            }
                    }
                    else if (c == 'I' || c == 'N') {
                        return read_value<X>(v, i, e, cx) && (!s || (v = -v, true));
                    }
                    else
                        return cx/X::read_error::floating_point_invalid;

                    if (r) {
                        for ( ; c >= '0' && c <= '9'; c = cio::next(i, e)) {
                            CXON_STORE(c);
                        }
                    }

                    c = cio::peek(i, e);

                    if (c == '.') {
                        CXON_STORE('.');
                        r = 1; c = cio::next(i, e);
                        for ( ; c >= '0' && c <= '9'; c = cio::next(i, e)) {
                            CXON_STORE(c);
                        }
                    }

                    if (c == 'e' || c == 'E') {
                        CXON_STORE('e');
                        r = 1, c = cio::next(i, e);
                        if (c == '-' || c == '+') {
                            CXON_STORE(c);
                            c = cio::next(i, e);
                        }
                        for ( ; c >= '0' && c <= '9'; c = cio::next(i, e)) {
                            CXON_STORE(c);
                        }
                    }

                    if (r) {
                        CXON_STORE('\0');
                        return read_number_value_<X>(v, bf.beg(), bf.end(), cx);
                    }
                    s ? n.template imbue<sint>() = -sint(1) - (u - 1) :
                        n.template imbue<uint>() = u
                    ;

                    return true;
                }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1c0, %rsp            # imm = 0x1C0
movq %rcx, -0x18(%rbp)
movl %r8d, -0x10(%rbp)
movq %rdi, -0x20(%rbp)
movq %rsi, -0x28(%rbp)
movq %rdx, -0x30(%rbp)
movq %r9, -0x38(%rbp)
movq -0x30(%rbp), %rax
movq (%rax), %rcx
movq %rcx, -0x98(%rbp)
movq 0x8(%rax), %rax
movq %rax, -0x90(%rbp)
movq -0x98(%rbp), %rsi
movl -0x90(%rbp), %edx
leaq -0x88(%rbp), %rdi
callq 0x298a0
movq $0x0, -0xa0(%rbp)
movl $0x0, -0xa4(%rbp)
movq -0x30(%rbp), %rax
movq (%rax), %rcx
movq %rcx, -0xb8(%rbp)
movq 0x8(%rax), %rax
movq %rax, -0xb0(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0xc8(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0xc0(%rbp)
movq -0xb8(%rbp), %rdi
movl -0xb0(%rbp), %esi
movq -0xc8(%rbp), %rdx
movl -0xc0(%rbp), %ecx
callq 0x1cee0
movb %al, -0xa5(%rbp)
movsbl -0xa5(%rbp), %eax
cmpl $0x2d, %eax
sete %al
andb $0x1, %al
movb %al, -0xc9(%rbp)
testb $0x1, -0xc9(%rbp)
je 0x2909b
leaq -0x88(%rbp), %rdi
movl $0x2d, %esi
callq 0x298e0
testb $0x1, %al
jne 0x29069
movq -0x38(%rbp), %rdi
movl $0x8, %esi
callq 0x1c2f0
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x29884
movq -0x30(%rbp), %rdi
movq -0x18(%rbp), %rax
movq %rax, -0xe0(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0xd8(%rbp)
movq -0xe0(%rbp), %rsi
movl -0xd8(%rbp), %edx
callq 0x1ed40
movb %al, -0xa5(%rbp)
movsbl -0xa5(%rbp), %eax
cmpl $0x30, %eax
jne 0x290e2
leaq -0x88(%rbp), %rdi
movl $0x30, %esi
callq 0x298e0
testb $0x1, %al
jne 0x290d4
movq -0x38(%rbp), %rdi
movl $0x8, %esi
callq 0x1c2f0
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x29884
movq -0x30(%rbp), %rdi
callq 0x115f0
jmp 0x293f4
movsbl -0xa5(%rbp), %eax
cmpl $0x31, %eax
jl 0x2931d
movsbl -0xa5(%rbp), %eax
cmpl $0x39, %eax
jg 0x2931d
testb $0x1, -0xc9(%rbp)
je 0x29215
jmp 0x29111
movsbl -0xa5(%rbp), %ecx
xorl %eax, %eax
cmpl $0x30, %ecx
movb %al, -0x191(%rbp)
jl 0x29138
movsbl -0xa5(%rbp), %eax
cmpl $0x39, %eax
setle %al
movb %al, -0x191(%rbp)
movb -0x191(%rbp), %al
testb $0x1, %al
jne 0x29147
jmp 0x29210
movabsq $0xccccccccccccccc, %rax # imm = 0xCCCCCCCCCCCCCCC
cmpq %rax, -0xa0(%rbp)
jb 0x2918a
movabsq $0xccccccccccccccc, %rax # imm = 0xCCCCCCCCCCCCCCC
cmpq %rax, -0xa0(%rbp)
jne 0x29179
movsbl -0xa5(%rbp), %eax
cmpl $0x38, %eax
jle 0x29188
movl $0x1, -0xa4(%rbp)
jmp 0x29210
jmp 0x2918a
imulq $0xa, -0xa0(%rbp), %rax
movsbl -0xa5(%rbp), %ecx
subl $0x30, %ecx
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, -0xa0(%rbp)
leaq -0x88(%rbp), %rdi
movsbl -0xa5(%rbp), %esi
callq 0x298e0
testb $0x1, %al
jne 0x291d7
movq -0x38(%rbp), %rdi
movl $0x8, %esi
callq 0x1c2f0
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x29884
jmp 0x291d9
movq -0x30(%rbp), %rdi
movq -0x18(%rbp), %rax
movq %rax, -0xf0(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0xe8(%rbp)
movq -0xf0(%rbp), %rsi
movl -0xe8(%rbp), %edx
callq 0x1ed40
movb %al, -0xa5(%rbp)
jmp 0x29111
jmp 0x29318
jmp 0x29217
movsbl -0xa5(%rbp), %ecx
xorl %eax, %eax
cmpl $0x30, %ecx
movb %al, -0x192(%rbp)
jl 0x2923e
movsbl -0xa5(%rbp), %eax
cmpl $0x39, %eax
setle %al
movb %al, -0x192(%rbp)
movb -0x192(%rbp), %al
testb $0x1, %al
jne 0x2924d
jmp 0x29316
movabsq $0x1999999999999999, %rax # imm = 0x1999999999999999
cmpq %rax, -0xa0(%rbp)
jb 0x29290
movabsq $0x1999999999999999, %rax # imm = 0x1999999999999999
cmpq %rax, -0xa0(%rbp)
jne 0x2927f
movsbl -0xa5(%rbp), %eax
cmpl $0x35, %eax
jle 0x2928e
movl $0x1, -0xa4(%rbp)
jmp 0x29316
jmp 0x29290
imulq $0xa, -0xa0(%rbp), %rax
movsbl -0xa5(%rbp), %ecx
subl $0x30, %ecx
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, -0xa0(%rbp)
leaq -0x88(%rbp), %rdi
movsbl -0xa5(%rbp), %esi
callq 0x298e0
testb $0x1, %al
jne 0x292dd
movq -0x38(%rbp), %rdi
movl $0x8, %esi
callq 0x1c2f0
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x29884
jmp 0x292df
movq -0x30(%rbp), %rdi
movq -0x18(%rbp), %rax
movq %rax, -0x100(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0xf8(%rbp)
movq -0x100(%rbp), %rsi
movl -0xf8(%rbp), %edx
callq 0x1ed40
movb %al, -0xa5(%rbp)
jmp 0x29217
jmp 0x29318
jmp 0x293f2
movsbl -0xa5(%rbp), %eax
cmpl $0x49, %eax
je 0x29339
movsbl -0xa5(%rbp), %eax
cmpl $0x4e, %eax
jne 0x293da
movq -0x28(%rbp), %rdi
movq -0x30(%rbp), %rsi
movq -0x18(%rbp), %rax
movq %rax, -0x110(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x108(%rbp)
movq -0x38(%rbp), %r8
movq -0x110(%rbp), %rdx
movl -0x108(%rbp), %ecx
callq 0x29930
movb %al, %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x193(%rbp)
jne 0x2937e
jmp 0x293ca
movb $0x1, %al
testb $0x1, -0xc9(%rbp)
movb %al, -0x194(%rbp)
je 0x293be
movq -0x28(%rbp), %rax
movsd (%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movq -0x28(%rbp), %rax
movsd %xmm0, (%rax)
movb $0x1, %al
movb %al, -0x194(%rbp)
movb -0x194(%rbp), %al
movb %al, -0x193(%rbp)
movb -0x193(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x29884
movq -0x38(%rbp), %rdi
movl $0x4, %esi
callq 0x1c2f0
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x29884
jmp 0x293f4
cmpl $0x0, -0xa4(%rbp)
je 0x294a0
jmp 0x29403
movsbl -0xa5(%rbp), %ecx
xorl %eax, %eax
cmpl $0x30, %ecx
movb %al, -0x195(%rbp)
jl 0x2942a
movsbl -0xa5(%rbp), %eax
cmpl $0x39, %eax
setle %al
movb %al, -0x195(%rbp)
movb -0x195(%rbp), %al
testb $0x1, %al
jne 0x29436
jmp 0x2949e
leaq -0x88(%rbp), %rdi
movsbl -0xa5(%rbp), %esi
callq 0x298e0
testb $0x1, %al
jne 0x29465
movq -0x38(%rbp), %rdi
movl $0x8, %esi
callq 0x1c2f0
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x29884
jmp 0x29467
movq -0x30(%rbp), %rdi
movq -0x18(%rbp), %rax
movq %rax, -0x120(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x118(%rbp)
movq -0x120(%rbp), %rsi
movl -0x118(%rbp), %edx
callq 0x1ed40
movb %al, -0xa5(%rbp)
jmp 0x29403
jmp 0x294a0
movq -0x30(%rbp), %rax
movq (%rax), %rcx
movq %rcx, -0x130(%rbp)
movq 0x8(%rax), %rax
movq %rax, -0x128(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x140(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x138(%rbp)
movq -0x130(%rbp), %rdi
movl -0x128(%rbp), %esi
movq -0x140(%rbp), %rdx
movl -0x138(%rbp), %ecx
callq 0x1cee0
movb %al, -0xa5(%rbp)
movsbl -0xa5(%rbp), %eax
cmpl $0x2e, %eax
jne 0x2960a
leaq -0x88(%rbp), %rdi
movl $0x2e, %esi
callq 0x298e0
testb $0x1, %al
jne 0x29531
movq -0x38(%rbp), %rdi
movl $0x8, %esi
callq 0x1c2f0
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x29884
movl $0x1, -0xa4(%rbp)
movq -0x30(%rbp), %rdi
movq -0x18(%rbp), %rax
movq %rax, -0x150(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x148(%rbp)
movq -0x150(%rbp), %rsi
movl -0x148(%rbp), %edx
callq 0x1ed40
movb %al, -0xa5(%rbp)
movsbl -0xa5(%rbp), %ecx
xorl %eax, %eax
cmpl $0x30, %ecx
movb %al, -0x196(%rbp)
jl 0x29594
movsbl -0xa5(%rbp), %eax
cmpl $0x39, %eax
setle %al
movb %al, -0x196(%rbp)
movb -0x196(%rbp), %al
testb $0x1, %al
jne 0x295a0
jmp 0x29608
leaq -0x88(%rbp), %rdi
movsbl -0xa5(%rbp), %esi
callq 0x298e0
testb $0x1, %al
jne 0x295cf
movq -0x38(%rbp), %rdi
movl $0x8, %esi
callq 0x1c2f0
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x29884
jmp 0x295d1
movq -0x30(%rbp), %rdi
movq -0x18(%rbp), %rax
movq %rax, -0x160(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x158(%rbp)
movq -0x160(%rbp), %rsi
movl -0x158(%rbp), %edx
callq 0x1ed40
movb %al, -0xa5(%rbp)
jmp 0x2956d
jmp 0x2960a
movsbl -0xa5(%rbp), %eax
cmpl $0x65, %eax
je 0x29626
movsbl -0xa5(%rbp), %eax
cmpl $0x45, %eax
jne 0x297a7
leaq -0x88(%rbp), %rdi
movl $0x65, %esi
callq 0x298e0
testb $0x1, %al
jne 0x29653
movq -0x38(%rbp), %rdi
movl $0x8, %esi
callq 0x1c2f0
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x29884
movl $0x1, -0xa4(%rbp)
movq -0x30(%rbp), %rdi
movq -0x18(%rbp), %rax
movq %rax, -0x170(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x168(%rbp)
movq -0x170(%rbp), %rsi
movl -0x168(%rbp), %edx
callq 0x1ed40
movb %al, -0xa5(%rbp)
movsbl -0xa5(%rbp), %eax
cmpl $0x2d, %eax
je 0x296a7
movsbl -0xa5(%rbp), %eax
cmpl $0x2b, %eax
jne 0x29708
leaq -0x88(%rbp), %rdi
movsbl -0xa5(%rbp), %esi
callq 0x298e0
testb $0x1, %al
jne 0x296d6
movq -0x38(%rbp), %rdi
movl $0x8, %esi
callq 0x1c2f0
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x29884
movq -0x30(%rbp), %rdi
movq -0x18(%rbp), %rax
movq %rax, -0x180(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x178(%rbp)
movq -0x180(%rbp), %rsi
movl -0x178(%rbp), %edx
callq 0x1ed40
movb %al, -0xa5(%rbp)
jmp 0x2970a
movsbl -0xa5(%rbp), %ecx
xorl %eax, %eax
cmpl $0x30, %ecx
movb %al, -0x197(%rbp)
jl 0x29731
movsbl -0xa5(%rbp), %eax
cmpl $0x39, %eax
setle %al
movb %al, -0x197(%rbp)
movb -0x197(%rbp), %al
testb $0x1, %al
jne 0x2973d
jmp 0x297a5
leaq -0x88(%rbp), %rdi
movsbl -0xa5(%rbp), %esi
callq 0x298e0
testb $0x1, %al
jne 0x2976c
movq -0x38(%rbp), %rdi
movl $0x8, %esi
callq 0x1c2f0
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x29884
jmp 0x2976e
movq -0x30(%rbp), %rdi
movq -0x18(%rbp), %rax
movq %rax, -0x190(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x188(%rbp)
movq -0x190(%rbp), %rsi
movl -0x188(%rbp), %edx
callq 0x1ed40
movb %al, -0xa5(%rbp)
jmp 0x2970a
jmp 0x297a7
cmpl $0x0, -0xa4(%rbp)
je 0x29825
leaq -0x88(%rbp), %rdi
xorl %esi, %esi
callq 0x298e0
testb $0x1, %al
jne 0x297da
movq -0x38(%rbp), %rdi
movl $0x8, %esi
callq 0x1c2f0
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x29884
movq -0x28(%rbp), %rax
movq %rax, -0x1a8(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x299c0
movq %rax, -0x1a0(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x299e0
movq -0x1a8(%rbp), %rdi
movq -0x1a0(%rbp), %rsi
movq %rax, %rdx
movq -0x38(%rbp), %rcx
callq 0x29980
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x29884
testb $0x1, -0xc9(%rbp)
je 0x2985f
movq -0xa0(%rbp), %rcx
subq $0x1, %rcx
movq $-0x1, %rax
subq %rcx, %rax
movq %rax, -0x1b0(%rbp)
movq -0x20(%rbp), %rdi
callq 0x29a00
movq -0x1b0(%rbp), %rcx
movq %rcx, (%rax)
jmp 0x29880
movq -0xa0(%rbp), %rax
movq %rax, -0x1b8(%rbp)
movq -0x20(%rbp), %rdi
callq 0x29a50
movq -0x1b8(%rbp), %rcx
movq %rcx, (%rax)
movb $0x1, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x1c0, %rsp            # imm = 0x1C0
popq %rbp
retq
nopw %cs:(%rax,%rax)
nopl (%rax)