// File: tomfunkhouser[P]gaps/pkgs/RNBasics/json.cpp
// Function: Json::OurReader::readNumber(bool)
bool OurReader::readNumber(bool checkInf) {
  const char *p = current_;
  if (checkInf && p != end_ && *p == 'I') {
    current_ = ++p;
    return false;
  }
  char c = '0'; // stopgap for already consumed character
  // integral part
  while (c >= '0' && c <= '9')
    c = (current_ = p) < end_ ? *p++ : 0;
  // fractional part
  if (c == '.') {
    c = (current_ = p) < end_ ? *p++ : 0;
    while (c >= '0' && c <= '9')
      c = (current_ = p) < end_ ? *p++ : 0;
  }
  // exponential part
  if (c == 'e' || c == 'E') {
    c = (current_ = p) < end_ ? *p++ : 0;
    if (c == '+' || c == '-')
      c = (current_ = p) < end_ ? *p++ : 0;
    while (c >= '0' && c <= '9')
      c = (current_ = p) < end_ ? *p++ : 0;
  }
  return true;
}

// Assembly:
movb %sil, %al
movq %rdi, -0x10(%rsp)
andb $0x1, %al
movb %al, -0x11(%rsp)
movq -0x10(%rsp), %rax
movq %rax, -0x30(%rsp)
movq 0xd0(%rax), %rax
movq %rax, -0x20(%rsp)
testb $0x1, -0x11(%rsp)
je 0xe739f
movq -0x30(%rsp), %rcx
movq -0x20(%rsp), %rax
cmpq 0xc8(%rcx), %rax
je 0xe739f
movq -0x20(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x49, %eax
jne 0xe739f
movq -0x30(%rsp), %rax
movq -0x20(%rsp), %rcx
addq $0x1, %rcx
movq %rcx, -0x20(%rsp)
movq %rcx, 0xd0(%rax)
movb $0x0, -0x1(%rsp)
jmp 0xe7602
movb $0x30, -0x21(%rsp)
movsbl -0x21(%rsp), %ecx
xorl %eax, %eax
cmpl $0x30, %ecx
movb %al, -0x31(%rsp)
jl 0xe73c3
movsbl -0x21(%rsp), %eax
cmpl $0x39, %eax
setle %al
movb %al, -0x31(%rsp)
movb -0x31(%rsp), %al
testb $0x1, %al
jne 0xe73cd
jmp 0xe7413
movq -0x30(%rsp), %rcx
movq -0x20(%rsp), %rax
movq %rax, 0xd0(%rcx)
cmpq 0xc8(%rcx), %rax
jae 0xe7401
movq -0x20(%rsp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x20(%rsp)
movsbl (%rax), %eax
movl %eax, -0x38(%rsp)
jmp 0xe7409
xorl %eax, %eax
movl %eax, -0x38(%rsp)
jmp 0xe7409
movl -0x38(%rsp), %eax
movb %al, -0x21(%rsp)
jmp 0xe73a4
movsbl -0x21(%rsp), %eax
cmpl $0x2e, %eax
jne 0xe74d6
movq -0x30(%rsp), %rcx
movq -0x20(%rsp), %rax
movq %rax, 0xd0(%rcx)
cmpq 0xc8(%rcx), %rax
jae 0xe7455
movq -0x20(%rsp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x20(%rsp)
movsbl (%rax), %eax
movl %eax, -0x3c(%rsp)
jmp 0xe745d
xorl %eax, %eax
movl %eax, -0x3c(%rsp)
jmp 0xe745d
movl -0x3c(%rsp), %eax
movb %al, -0x21(%rsp)
movsbl -0x21(%rsp), %ecx
xorl %eax, %eax
cmpl $0x30, %ecx
movb %al, -0x3d(%rsp)
jl 0xe7484
movsbl -0x21(%rsp), %eax
cmpl $0x39, %eax
setle %al
movb %al, -0x3d(%rsp)
movb -0x3d(%rsp), %al
testb $0x1, %al
jne 0xe748e
jmp 0xe74d4
movq -0x30(%rsp), %rcx
movq -0x20(%rsp), %rax
movq %rax, 0xd0(%rcx)
cmpq 0xc8(%rcx), %rax
jae 0xe74c2
movq -0x20(%rsp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x20(%rsp)
movsbl (%rax), %eax
movl %eax, -0x44(%rsp)
jmp 0xe74ca
xorl %eax, %eax
movl %eax, -0x44(%rsp)
jmp 0xe74ca
movl -0x44(%rsp), %eax
movb %al, -0x21(%rsp)
jmp 0xe7465
jmp 0xe74d6
movsbl -0x21(%rsp), %eax
cmpl $0x65, %eax
je 0xe74ee
movsbl -0x21(%rsp), %eax
cmpl $0x45, %eax
jne 0xe75fd
movq -0x30(%rsp), %rcx
movq -0x20(%rsp), %rax
movq %rax, 0xd0(%rcx)
cmpq 0xc8(%rcx), %rax
jae 0xe7522
movq -0x20(%rsp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x20(%rsp)
movsbl (%rax), %eax
movl %eax, -0x48(%rsp)
jmp 0xe752a
xorl %eax, %eax
movl %eax, -0x48(%rsp)
jmp 0xe752a
movl -0x48(%rsp), %eax
movb %al, -0x21(%rsp)
movsbl -0x21(%rsp), %eax
cmpl $0x2b, %eax
je 0xe7546
movsbl -0x21(%rsp), %eax
cmpl $0x2d, %eax
jne 0xe758a
movq -0x30(%rsp), %rcx
movq -0x20(%rsp), %rax
movq %rax, 0xd0(%rcx)
cmpq 0xc8(%rcx), %rax
jae 0xe757a
movq -0x20(%rsp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x20(%rsp)
movsbl (%rax), %eax
movl %eax, -0x4c(%rsp)
jmp 0xe7582
xorl %eax, %eax
movl %eax, -0x4c(%rsp)
jmp 0xe7582
movl -0x4c(%rsp), %eax
movb %al, -0x21(%rsp)
jmp 0xe758c
movsbl -0x21(%rsp), %ecx
xorl %eax, %eax
cmpl $0x30, %ecx
movb %al, -0x4d(%rsp)
jl 0xe75ab
movsbl -0x21(%rsp), %eax
cmpl $0x39, %eax
setle %al
movb %al, -0x4d(%rsp)
movb -0x4d(%rsp), %al
testb $0x1, %al
jne 0xe75b5
jmp 0xe75fb
movq -0x30(%rsp), %rcx
movq -0x20(%rsp), %rax
movq %rax, 0xd0(%rcx)
cmpq 0xc8(%rcx), %rax
jae 0xe75e9
movq -0x20(%rsp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x20(%rsp)
movsbl (%rax), %eax
movl %eax, -0x54(%rsp)
jmp 0xe75f1
xorl %eax, %eax
movl %eax, -0x54(%rsp)
jmp 0xe75f1
movl -0x54(%rsp), %eax
movb %al, -0x21(%rsp)
jmp 0xe758c
jmp 0xe75fd
movb $0x1, -0x1(%rsp)
movb -0x1(%rsp), %al
andb $0x1, %al
retq
nopl (%rax)