// File: /workspace/github_c_makefile_star2_O0/hermantb[P]fast_convert/fast_convert.c
// Function: fast_strtof
float
fast_strtof (const char *str, char **endptr)
{
  char *cp = (char *) str;
  int sign = 0;
  int esign = 0;
  int exp;
  int tmp;
  int c;
  uint64_t n;
  union
  {
    uint32_t u;
    float f;
  } tf;

  while (isspace (*cp)) {
    cp++;
  }
  if (*cp == '+') {
    cp++;
  }
  else if (*cp == '-') {
    sign = 1;
    cp++;
  }
  if (*cp == 'n' || *cp == 'N') {
    if (strncasecmp (cp, "nan", 3) == 0) {
      cp += strlen ("nan");
      if (endptr) {
	*endptr = cp;
      }
      if (*cp == '(') {
	cp++;
	while (isalpha (*cp) || isdigit (*cp) || *cp == '_') {
	  cp++;
	}
	if (*cp == ')') {
	  if (endptr) {
	    *endptr = cp + 1;
	  }
	}
      }
      tf.u = sign ? 0xFFC00000 : 0x7FC00000;
      return tf.f;
    }
    if (endptr) {
      *endptr = (char *) str;
    }
    return 0.0;
  }
  if (*cp == 'i' || *cp == 'I') {
    if (strncasecmp (cp, "inf", 3) == 0) {
      cp += strlen ("inf");
      if (strncasecmp (cp, "inity", strlen ("inity")) == 0) {
	cp += strlen ("inity");
      }
      if (endptr) {
	*endptr = cp;
      }
      tf.u = sign ? 0xFF800000 : 0x7F800000;
      return tf.f;
    }
    if (endptr) {
      *endptr = (char *) str;
    }
    return 0.0;
  }
  if (*cp == '0' && (cp[1] == 'x' || cp[1] == 'X')) {
    if (!isxdigit (cp[2]) && (cp[2] != DECIMAL_POINT || !isxdigit (cp[3]))) {
      if (endptr) {
	*endptr = &cp[1];
      }
      return 0.0 * (sign ? -1.0 : 1.0);
    }
    cp += 2;
    n = 0;
    exp = 0;
    c = 0;
    while (isxdigit (*cp)) {
      if (c < 16) {
	n = n * 16 + convert_num[*cp & 0xFFu];
      }
      else {
	exp += 4;
      }
      cp++;
      if (n) {
	c++;
      }
    }
    if (*cp == DECIMAL_POINT) {
      cp++;
      while (isxdigit (*cp)) {
	if (c < 16) {
	  n = n * 16 + convert_num[*cp & 0xFFu];
	  exp -= 4;
	}
	cp++;
	if (n) {
	  c++;
	}
      }
    }
    if (*cp == 'p' || *cp == 'P') {
      cp++;
      if (*cp == '+') {
	cp++;
      }
      else if (*cp == '-') {
	esign = 1;
	cp++;
      }
      tmp = 0;
      c = 0;
      while (isdigit (*cp)) {
	if (c < 5) {
	  tmp = tmp * 10 + (*cp - '0');
	}
	cp++;
	if (tmp) {
	  c++;
	}
      }
      if (esign) {
	exp -= tmp;
      }
      else {
	exp += tmp;
      }
    }
    if (endptr) {
      *endptr = cp;
    }
    /* sets ERANGE and returns HUGE_VAL on error */
    return ldexpf (n, exp) * (sign ? -1.0 : 1.0);
  }
  if (!isdigit (*cp) && (*cp != DECIMAL_POINT || !isdigit (cp[1]))) {
    if (endptr) {
      *endptr = (char *) str;
    }
    return 0.0;
  }
  n = 0;
  exp = 0;
  c = 0;
  while (isdigit (*cp)) {
    if (c < 19) {
      n = n * 10 + (*cp - '0');
    }
    else {
      exp++;
    }
    cp++;
    if (n) {
      c++;
    }
  }
  if (*cp == DECIMAL_POINT) {
    cp++;
    while (isdigit (*cp)) {
      if (c < 19) {
	n = n * 10 + (*cp - '0');
	exp--;
      }
      cp++;
      if (n) {
	c++;
      }
    }
  }
  if (*cp == 'e' || *cp == 'E') {
    cp++;
    if (*cp == '+') {
      cp++;
    }
    else if (*cp == '-') {
      esign = 1;
      cp++;
    }
    tmp = 0;
    c = 0;
    while (isdigit (*cp)) {
      if (c < 5) {
	tmp = tmp * 10 + (*cp - '0');
      }
      cp++;
      if (tmp) {
	c++;
      }
    }
    if (esign) {
      exp -= tmp;
    }
    else {
      exp += tmp;
    }
  }
  if (endptr) {
    *endptr = cp;
  }
  if (n && (exp >= -64 && exp <= 39)) {
#ifdef WIN
    unsigned int s = __builtin_clzll (n);
#else
#ifdef __GNUC__
#if __WORDSIZE == 64
    unsigned int s = __builtin_clzl (n);
#else
    unsigned int s = __builtin_clzll (n);
#endif
#else
    unsigned int s = calc_clz64 (n);
#endif
#endif

    /* sets ERANGE and returns HUGE_VAL on error */
    return ldexpf (mul_64 (n << s, fpowers10[exp + 64].mul) + 5,
		   fpowers10[exp + 64].exp + 32 - s) * (sign ? -1.0 : 1.0);
  }
  return 0.0 * (sign ? -1.0 : 1.0);
}

// Assembly:
subq $0xb8, %rsp
movq %rdi, 0xa8(%rsp)
movq %rsi, 0xa0(%rsp)
movq 0xa8(%rsp), %rax
movq %rax, 0x98(%rsp)
movl $0x0, 0x94(%rsp)
movl $0x0, 0x90(%rsp)
callq 0x1160
movq (%rax), %rax
movq 0x98(%rsp), %rcx
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x2000, %eax           # imm = 0x2000
cmpl $0x0, %eax
je 0x8cd7
movq 0x98(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x98(%rsp)
jmp 0x8c9d
movq 0x98(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x2b, %eax
jne 0x8cfd
movq 0x98(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x98(%rsp)
jmp 0x8d2e
movq 0x98(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
jne 0x8d2c
movl $0x1, 0x94(%rsp)
movq 0x98(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x98(%rsp)
jmp 0x8d2e
movq 0x98(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x6e, %eax
je 0x8d52
movq 0x98(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x4e, %eax
jne 0x8ef0
movq 0x98(%rsp), %rdi
leaq 0x173cd(%rip), %rsi     # 0x2012e
movl $0x3, %edx
callq 0x1110
cmpl $0x0, %eax
jne 0x8ec1
movq 0x98(%rsp), %rax
addq $0x3, %rax
movq %rax, 0x98(%rsp)
cmpq $0x0, 0xa0(%rsp)
je 0x8da6
movq 0x98(%rsp), %rcx
movq 0xa0(%rsp), %rax
movq %rcx, (%rax)
movq 0x98(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x28, %eax
jne 0x8e92
movq 0x98(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x98(%rsp)
callq 0x1160
movq (%rax), %rax
movq 0x98(%rsp), %rcx
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %ecx
andl $0x400, %ecx            # imm = 0x400
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, 0x6f(%rsp)
jne 0x8e39
callq 0x1160
movq (%rax), %rax
movq 0x98(%rsp), %rcx
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %ecx
andl $0x800, %ecx            # imm = 0x800
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, 0x6f(%rsp)
jne 0x8e39
movq 0x98(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x5f, %eax
sete %al
movb %al, 0x6f(%rsp)
movb 0x6f(%rsp), %al
testb $0x1, %al
jne 0x8e43
jmp 0x8e5c
movq 0x98(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x98(%rsp)
jmp 0x8dce
movq 0x98(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x29, %eax
jne 0x8e90
cmpq $0x0, 0xa0(%rsp)
je 0x8e8e
movq 0x98(%rsp), %rcx
addq $0x1, %rcx
movq 0xa0(%rsp), %rax
movq %rcx, (%rax)
jmp 0x8e90
jmp 0x8e92
movl 0x94(%rsp), %edx
movl $0x7fc00000, %eax       # imm = 0x7FC00000
movl $0xffc00000, %ecx       # imm = 0xFFC00000
cmpl $0x0, %edx
cmovnel %ecx, %eax
movl %eax, 0x74(%rsp)
movss 0x74(%rsp), %xmm0
movss %xmm0, 0xb4(%rsp)
jmp 0x99e9
cmpq $0x0, 0xa0(%rsp)
je 0x8edf
movq 0xa8(%rsp), %rcx
movq 0xa0(%rsp), %rax
movq %rcx, (%rax)
xorps %xmm0, %xmm0
movss %xmm0, 0xb4(%rsp)
jmp 0x99e9
movq 0x98(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x69, %eax
je 0x8f14
movq 0x98(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x49, %eax
jne 0x8ff8
movq 0x98(%rsp), %rdi
leaq 0x17207(%rip), %rsi     # 0x2012a
movl $0x3, %edx
callq 0x1110
cmpl $0x0, %eax
jne 0x8fc9
movq 0x98(%rsp), %rax
addq $0x3, %rax
movq %rax, 0x98(%rsp)
movq 0x98(%rsp), %rdi
leaq 0x17cbd(%rip), %rsi     # 0x20c16
movl $0x5, %edx
callq 0x1110
cmpl $0x0, %eax
jne 0x8f7c
movq 0x98(%rsp), %rax
addq $0x5, %rax
movq %rax, 0x98(%rsp)
cmpq $0x0, 0xa0(%rsp)
je 0x8f9a
movq 0x98(%rsp), %rcx
movq 0xa0(%rsp), %rax
movq %rcx, (%rax)
movl 0x94(%rsp), %edx
movl $0x7f800000, %eax       # imm = 0x7F800000
movl $0xff800000, %ecx       # imm = 0xFF800000
cmpl $0x0, %edx
cmovnel %ecx, %eax
movl %eax, 0x74(%rsp)
movss 0x74(%rsp), %xmm0
movss %xmm0, 0xb4(%rsp)
jmp 0x99e9
cmpq $0x0, 0xa0(%rsp)
je 0x8fe7
movq 0xa8(%rsp), %rcx
movq 0xa0(%rsp), %rax
movq %rcx, (%rax)
xorps %xmm0, %xmm0
movss %xmm0, 0xb4(%rsp)
jmp 0x99e9
movq 0x98(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x30, %eax
jne 0x94ea
movq 0x98(%rsp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x78, %eax
je 0x9032
movq 0x98(%rsp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x58, %eax
jne 0x94ea
callq 0x1160
movq (%rax), %rax
movq 0x98(%rsp), %rcx
movsbl 0x2(%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x1000, %eax           # imm = 0x1000
cmpl $0x0, %eax
jne 0x9112
movq 0x98(%rsp), %rax
movsbl 0x2(%rax), %eax
movq 0x1a062(%rip), %rcx     # 0x230d0
movq (%rcx), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x909d
callq 0x1160
movq (%rax), %rax
movq 0x98(%rsp), %rcx
movsbl 0x3(%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x1000, %eax           # imm = 0x1000
cmpl $0x0, %eax
jne 0x9112
cmpq $0x0, 0xa0(%rsp)
je 0x90bf
movq 0x98(%rsp), %rcx
addq $0x1, %rcx
movq 0xa0(%rsp), %rax
movq %rcx, (%rax)
movl 0x94(%rsp), %eax
movsd 0x16fe2(%rip), %xmm0    # 0x200b0
movsd 0x16fe2(%rip), %xmm1    # 0x200b8
movsd %xmm1, 0x58(%rsp)
cmpl $0x0, %eax
movsd %xmm0, 0x60(%rsp)
jne 0x90f3
movsd 0x58(%rsp), %xmm0
movsd %xmm0, 0x60(%rsp)
movsd 0x60(%rsp), %xmm1
xorps %xmm0, %xmm0
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0xb4(%rsp)
jmp 0x99e9
movq 0x98(%rsp), %rax
addq $0x2, %rax
movq %rax, 0x98(%rsp)
movq $0x0, 0x78(%rsp)
movl $0x0, 0x8c(%rsp)
movl $0x0, 0x84(%rsp)
callq 0x1160
movq (%rax), %rax
movq 0x98(%rsp), %rcx
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x1000, %eax           # imm = 0x1000
cmpl $0x0, %eax
je 0x91e8
cmpl $0x10, 0x84(%rsp)
jge 0x91a5
movq 0x78(%rsp), %rax
shlq $0x4, %rax
movq 0x98(%rsp), %rcx
movsbl (%rcx), %ecx
andl $0xff, %ecx
movl %ecx, %ecx
movl %ecx, %edx
leaq 0x19f48(%rip), %rcx     # 0x230e0
movl (%rcx,%rdx,4), %ecx
addq %rcx, %rax
movq %rax, 0x78(%rsp)
jmp 0x91b6
movl 0x8c(%rsp), %eax
addl $0x4, %eax
movl %eax, 0x8c(%rsp)
movq 0x98(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x98(%rsp)
cmpq $0x0, 0x78(%rsp)
je 0x91e3
movl 0x84(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x84(%rsp)
jmp 0x9145
movq 0x98(%rsp), %rax
movsbl (%rax), %eax
movq 0x19ed6(%rip), %rcx     # 0x230d0
movq (%rcx), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x92bf
movq 0x98(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x98(%rsp)
callq 0x1160
movq (%rax), %rax
movq 0x98(%rsp), %rcx
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x1000, %eax           # imm = 0x1000
cmpl $0x0, %eax
je 0x92bd
cmpl $0x10, 0x84(%rsp)
jge 0x928b
movq 0x78(%rsp), %rax
shlq $0x4, %rax
movq 0x98(%rsp), %rcx
movsbl (%rcx), %ecx
andl $0xff, %ecx
movl %ecx, %ecx
movl %ecx, %edx
leaq 0x19e71(%rip), %rcx     # 0x230e0
movl (%rcx,%rdx,4), %ecx
addq %rcx, %rax
movq %rax, 0x78(%rsp)
movl 0x8c(%rsp), %eax
subl $0x4, %eax
movl %eax, 0x8c(%rsp)
movq 0x98(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x98(%rsp)
cmpq $0x0, 0x78(%rsp)
je 0x92b8
movl 0x84(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x84(%rsp)
jmp 0x921c
jmp 0x92bf
movq 0x98(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x70, %eax
je 0x92e3
movq 0x98(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x50, %eax
jne 0x941c
movq 0x98(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x98(%rsp)
movq 0x98(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x2b, %eax
jne 0x931d
movq 0x98(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x98(%rsp)
jmp 0x934e
movq 0x98(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
jne 0x934c
movl $0x1, 0x90(%rsp)
movq 0x98(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x98(%rsp)
jmp 0x934e
movl $0x0, 0x88(%rsp)
movl $0x0, 0x84(%rsp)
callq 0x1160
movq (%rax), %rax
movq 0x98(%rsp), %rcx
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x800, %eax            # imm = 0x800
cmpl $0x0, %eax
je 0x93e2
cmpl $0x5, 0x84(%rsp)
jge 0x93b1
imull $0xa, 0x88(%rsp), %eax
movq 0x98(%rsp), %rcx
movsbl (%rcx), %ecx
subl $0x30, %ecx
addl %ecx, %eax
movl %eax, 0x88(%rsp)
movq 0x98(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x98(%rsp)
cmpl $0x0, 0x88(%rsp)
je 0x93e0
movl 0x84(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x84(%rsp)
jmp 0x9364
cmpl $0x0, 0x90(%rsp)
je 0x9405
movl 0x88(%rsp), %ecx
movl 0x8c(%rsp), %eax
subl %ecx, %eax
movl %eax, 0x8c(%rsp)
jmp 0x941a
movl 0x88(%rsp), %eax
addl 0x8c(%rsp), %eax
movl %eax, 0x8c(%rsp)
jmp 0x941c
cmpq $0x0, 0xa0(%rsp)
je 0x943a
movq 0x98(%rsp), %rcx
movq 0xa0(%rsp), %rax
movq %rcx, (%rax)
movq 0x78(%rsp), %rax
movq %rax, %rdx
shrq %rdx
movl %eax, %ecx
andl $0x1, %ecx
orq %rdx, %rcx
cvtsi2ss %rcx, %xmm0
addss %xmm0, %xmm0
cvtsi2ss %rax, %xmm1
movss %xmm1, 0x50(%rsp)
testq %rax, %rax
movss %xmm0, 0x54(%rsp)
js 0x9478
movss 0x50(%rsp), %xmm0
movss %xmm0, 0x54(%rsp)
movss 0x54(%rsp), %xmm0
movl 0x8c(%rsp), %edi
callq 0x1130
cvtss2sd %xmm0, %xmm0
movsd %xmm0, 0x38(%rsp)
movl 0x94(%rsp), %eax
movsd 0x16c0d(%rip), %xmm0    # 0x200b0
movsd 0x16c0d(%rip), %xmm1    # 0x200b8
movsd %xmm1, 0x40(%rsp)
cmpl $0x0, %eax
movsd %xmm0, 0x48(%rsp)
jne 0x94c8
movsd 0x40(%rsp), %xmm0
movsd %xmm0, 0x48(%rsp)
movsd 0x38(%rsp), %xmm0
movsd 0x48(%rsp), %xmm1
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0xb4(%rsp)
jmp 0x99e9
callq 0x1160
movq (%rax), %rax
movq 0x98(%rsp), %rcx
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x800, %eax            # imm = 0x800
cmpl $0x0, %eax
jne 0x957e
movq 0x98(%rsp), %rax
movsbl (%rax), %eax
movq 0x19bb0(%rip), %rcx     # 0x230d0
movq (%rcx), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x954f
callq 0x1160
movq (%rax), %rax
movq 0x98(%rsp), %rcx
movsbl 0x1(%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x800, %eax            # imm = 0x800
cmpl $0x0, %eax
jne 0x957e
cmpq $0x0, 0xa0(%rsp)
je 0x956d
movq 0xa8(%rsp), %rcx
movq 0xa0(%rsp), %rax
movq %rcx, (%rax)
xorps %xmm0, %xmm0
movss %xmm0, 0xb4(%rsp)
jmp 0x99e9
movq $0x0, 0x78(%rsp)
movl $0x0, 0x8c(%rsp)
movl $0x0, 0x84(%rsp)
callq 0x1160
movq (%rax), %rax
movq 0x98(%rsp), %rcx
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x800, %eax            # imm = 0x800
cmpl $0x0, %eax
je 0x962f
cmpl $0x13, 0x84(%rsp)
jge 0x95ec
imulq $0xa, 0x78(%rsp), %rax
movq 0x98(%rsp), %rcx
movsbl (%rcx), %ecx
subl $0x30, %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, 0x78(%rsp)
jmp 0x95fd
movl 0x8c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x8c(%rsp)
movq 0x98(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x98(%rsp)
cmpq $0x0, 0x78(%rsp)
je 0x962a
movl 0x84(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x84(%rsp)
jmp 0x959d
movq 0x98(%rsp), %rax
movsbl (%rax), %eax
movq 0x19a8f(%rip), %rcx     # 0x230d0
movq (%rcx), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x96f5
movq 0x98(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x98(%rsp)
callq 0x1160
movq (%rax), %rax
movq 0x98(%rsp), %rcx
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x800, %eax            # imm = 0x800
cmpl $0x0, %eax
je 0x96f3
cmpl $0x13, 0x84(%rsp)
jge 0x96c1
imulq $0xa, 0x78(%rsp), %rax
movq 0x98(%rsp), %rcx
movsbl (%rcx), %ecx
subl $0x30, %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, 0x78(%rsp)
movl 0x8c(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x8c(%rsp)
movq 0x98(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x98(%rsp)
cmpq $0x0, 0x78(%rsp)
je 0x96ee
movl 0x84(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x84(%rsp)
jmp 0x9663
jmp 0x96f5
movq 0x98(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x65, %eax
je 0x9719
movq 0x98(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x45, %eax
jne 0x9852
movq 0x98(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x98(%rsp)
movq 0x98(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x2b, %eax
jne 0x9753
movq 0x98(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x98(%rsp)
jmp 0x9784
movq 0x98(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
jne 0x9782
movl $0x1, 0x90(%rsp)
movq 0x98(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x98(%rsp)
jmp 0x9784
movl $0x0, 0x88(%rsp)
movl $0x0, 0x84(%rsp)
callq 0x1160
movq (%rax), %rax
movq 0x98(%rsp), %rcx
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x800, %eax            # imm = 0x800
cmpl $0x0, %eax
je 0x9818
cmpl $0x5, 0x84(%rsp)
jge 0x97e7
imull $0xa, 0x88(%rsp), %eax
movq 0x98(%rsp), %rcx
movsbl (%rcx), %ecx
subl $0x30, %ecx
addl %ecx, %eax
movl %eax, 0x88(%rsp)
movq 0x98(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x98(%rsp)
cmpl $0x0, 0x88(%rsp)
je 0x9816
movl 0x84(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x84(%rsp)
jmp 0x979a
cmpl $0x0, 0x90(%rsp)
je 0x983b
movl 0x88(%rsp), %ecx
movl 0x8c(%rsp), %eax
subl %ecx, %eax
movl %eax, 0x8c(%rsp)
jmp 0x9850
movl 0x88(%rsp), %eax
addl 0x8c(%rsp), %eax
movl %eax, 0x8c(%rsp)
jmp 0x9852
cmpq $0x0, 0xa0(%rsp)
je 0x9870
movq 0x98(%rsp), %rcx
movq 0xa0(%rsp), %rax
movq %rcx, (%rax)
cmpq $0x0, 0x78(%rsp)
je 0x999b
cmpl $-0x40, 0x8c(%rsp)
jl 0x999b
cmpl $0x27, 0x8c(%rsp)
jg 0x999b
bsrq 0x78(%rsp), %rax
xorl $0x3f, %eax
movl %eax, 0x70(%rsp)
movq 0x78(%rsp), %rdi
movb 0x70(%rsp), %cl
shlq %cl, %rdi
movslq 0x8c(%rsp), %rax
shlq $0x4, %rax
leaq 0x135dc(%rip), %rcx     # 0x1cea0
movq 0x400(%rax,%rcx), %rsi
callq 0x9a00
addq $0x5, %rax
movq %rax, %rdx
shrq %rdx
movl %eax, %ecx
andl $0x1, %ecx
orq %rdx, %rcx
cvtsi2ss %rcx, %xmm0
addss %xmm0, %xmm0
cvtsi2ss %rax, %xmm1
movss %xmm1, 0x30(%rsp)
testq %rax, %rax
movss %xmm0, 0x34(%rsp)
js 0x990e
movss 0x30(%rsp), %xmm0
movss %xmm0, 0x34(%rsp)
movss 0x34(%rsp), %xmm0
movl 0x8c(%rsp), %eax
addl $0x40, %eax
movslq %eax, %rcx
leaq 0x13578(%rip), %rax     # 0x1cea0
shlq $0x4, %rcx
addq %rcx, %rax
movl 0x8(%rax), %edi
addl $0x20, %edi
subl 0x70(%rsp), %edi
callq 0x1130
cvtss2sd %xmm0, %xmm0
movsd %xmm0, 0x18(%rsp)
movl 0x94(%rsp), %eax
movsd 0x16759(%rip), %xmm0    # 0x200b0
movsd 0x16759(%rip), %xmm1    # 0x200b8
movsd %xmm1, 0x20(%rsp)
cmpl $0x0, %eax
movsd %xmm0, 0x28(%rsp)
jne 0x997c
movsd 0x20(%rsp), %xmm0
movsd %xmm0, 0x28(%rsp)
movsd 0x18(%rsp), %xmm0
movsd 0x28(%rsp), %xmm1
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0xb4(%rsp)
jmp 0x99e9
movl 0x94(%rsp), %eax
movsd 0x16706(%rip), %xmm0    # 0x200b0
movsd 0x16706(%rip), %xmm1    # 0x200b8
movsd %xmm1, 0x8(%rsp)
cmpl $0x0, %eax
movsd %xmm0, 0x10(%rsp)
jne 0x99cf
movsd 0x8(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
movsd 0x10(%rsp), %xmm1
xorps %xmm0, %xmm0
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0xb4(%rsp)
movss 0xb4(%rsp), %xmm0
addq $0xb8, %rsp
retq
nopw (%rax,%rax)