// File: /workspace/github_cpp_makefile_star2_O1/oknenavin[P]cxon/test/../src/cxon/lang/common/cio/numeric.hxx
// Function: std::enable_if<std::is_integral<int>::value, bool>::type cxon::cio::num::imp::number_read__<cxon::test::input_iterator_traits<cxon::json::format_traits>, int, cxon::test::force_input_iterator<char const*>, cxon::context<cxon::JSON<cxon::test::input_iterator_traits<cxon::json::format_traits>>, cxon::napa::imp::cst<cxon::cio::num_len_max, unsigned int, 1u>>>(int&, cxon::test::force_input_iterator<char const*>&, cxon::test::force_input_iterator<char const*>, cxon::context<cxon::JSON<cxon::test::input_iterator_traits<cxon::json::format_traits>>, cxon::napa::imp::cst<cxon::cio::num_len_max, unsigned int, 1u>>&)
inline auto number_read__(T& t, II& i, II e, Cx& cx)
                -> enable_if_t<std::is_integral<T>::value, bool>
            {
                constexpr auto base = integer_base::constant<napa_type<Cx>>(10);
                II const o = i;
                    char s[num_len_max::constant<napa_type<Cx>>(32)];
                    switch (number_consume_<X, T>(std::begin(s), std::end(s), i, e, is_digit<X, base>::fun)) {
                        case -1: return rewind(i, o), cx/X::read_error::overflow;
                        case  0: return rewind(i, o), cx/X::read_error::integral_invalid;
                        default: {
                            auto const r = charconv::from_chars(std::begin(s), std::end(s), t, base); CXON_ASSERT(r.ec == std::errc(), "unexpected");
                            return true;
                        }
                    }
            }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x18, %rsp
movq %rcx, %r14
movq %rdi, %rbx
movq (%rdx), %rax
movq (%rsi), %rdx
cmpq %rax, %rdx
je 0x10d409
movb (%rdx), %dil
jmp 0x10d40c
movb $-0x1, %dil
cmpb $0x2d, %dil
jne 0x10d42b
movb %dil, 0xf(%rsp)
incq %rdx
movq %rdx, (%rsi)
movl $0x1, %ecx
cmpq %rax, %rdx
je 0x10d431
movb (%rdx), %dl
jmp 0x10d433
xorl %ecx, %ecx
movl %edi, %edx
jmp 0x10d433
movb $-0x1, %dl
cmpb $0x30, %dl
jne 0x10d454
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
cmpb $0x2d, %dil
je 0x10d4cf
movb %dl, 0xf(%rsp)
incq (%rsi)
incq %rcx
jmp 0x10d4b8
movzbl %dl, %r9d
addq $-0x30, %r9
xorl %r8d, %r8d
cmpq $0x9, %r9
ja 0x10d4cf
cmpb $0x2d, %dil
jne 0x10d472
movb 0xf(%rsp), %r8b
jmp 0x10d4a6
movq (%rsi), %rdi
incq %rcx
incq %rdi
movl %edx, %r8d
movq %rdi, (%rsi)
cmpq %rax, %rdi
je 0x10d48a
movb (%rdi), %dl
jmp 0x10d48c
movb $-0x1, %dl
movzbl %dl, %r9d
addq $-0x30, %r9
cmpq $0xa, %r9
jae 0x10d4b3
incq %rcx
incq %rdi
cmpq $0x2, %rcx
jne 0x10d47b
movb %r8b, 0xf(%rsp)
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
jmp 0x10d4cf
movb %r8b, 0xf(%rsp)
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
cmpq $0x1, %rcx
je 0x10d4cf
movb $0x0, 0xf(%rsp)
movl $0x1, %r8d
testl %r8d, %r8d
je 0x10d4e8
cmpl $-0x1, %r8d
jne 0x10d507
callq 0x4ae3c
movl $0x8, (%r14)
jmp 0x10d4f4
callq 0x4ae3c
movl $0x3, (%r14)
movq %rax, 0x8(%r14)
xorl %ebp, %ebp
movl %ebp, %eax
addq $0x18, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movb $0x1, %bpl
cmpb $0x2b, 0xf(%rsp)
je 0x10d4fa
callq 0xe040
movq %rax, %r14
movl $0x0, (%rax)
leaq 0xf(%rsp), %r15
leaq 0x10(%rsp), %rsi
movq %r15, %rdi
movl $0xa, %edx
callq 0xe340
movq $-0x80000000, %rcx      # imm = 0x80000000
cmpq $-0x80000000, %rax      # imm = 0x80000000
jl 0x10d554
movl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
movl $0x80000000, %edx       # imm = 0x80000000
cmpq %rdx, %rax
jl 0x10d55e
movl $0x22, (%r14)
movq %rcx, %rax
cmpq %r15, 0x10(%rsp)
je 0x10d4fa
cmpl $0x22, (%r14)
je 0x10d4fa
movl %eax, (%rbx)
jmp 0x10d4fa
nop