// File: /workspace/github_c_makefile_star2_O0/lengjingzju[P]json/jnum.c
// Function: jnum_parse_num
int jnum_parse_num(const char *str, jnum_type_t *type, jnum_value_t *value)
{
#define IS_DIGIT(c)     ((c) >= '0' && (c) <= '9')
    const char *s = str;
    int32_t eneg = 0, e = 0, k = 0, ek = 0, b = 0, i = 0, z = 0;
    uint64_t neg = 0, m = 0, n = 0;

    switch (*s) {
    case '-':
        neg = 1;
        FALLTHROUGH_ATTR;
    case '+':
        ++s;
        break;
    case '0':
        if ((*(s + 1) == 'x' || *(s + 1) == 'X')) {
            int len = jnum_parse_hex(s, type, value);
            if (len == 2) {
                *type = JNUM_INT;
                value->vint = 0;
                return 1;
            }
            return len;
        }
        break;
    default:
        break;
    }

    if (!IS_DIGIT(*s) && (*s != '.')) {
        *type = JNUM_NULL;
        value->vint = 0;
        return 0;
    }

    /* ---------- Parse integer ---------- */
    while (*s == '0')
        ++s;
    while (IS_DIGIT(*s)) {
        m = (m << 3) + (m << 1) + (*s++ - '0');
        ++k;
    }
    if (k >= 20) {
        goto overflow1;
    }

    if (*s != '.') {
        if (*s != 'e' && *s != 'E') {
            goto end1;
        }
    } else {
        /* ---------- Parse decimal ---------- */
        ++s;
        if (m == 0) {
            while (*s == '0') {
                ++s;
                --z;
            }
        } else {
            n = m;
            b = k;
        }

        while (IS_DIGIT(*s)) {
            m = (m << 3) + (m << 1) + (*s++ - '0');
            ++k;
            --i;
        }
        if (k >= 20) {
            goto overflow2;
        }

        if (*s != 'e' && *s != 'E') {
            goto end2;
        }
    }

end3:
    /* ---------- Parse Exponent ---------- */
    switch (*(s + 1)) {
    case '-':
        eneg = 1;
        FALLTHROUGH_ATTR;
    case '+':
        if (IS_DIGIT(*(s + 2))) {
            s += 2;
            break;
        }
        if (i)
            goto end2;
        else
            goto end1;
    case '0': case '1': case '2': case '3': case '4':
    case '5': case '6': case '7': case '8': case '9':
        ++s;
        break;
    default:
        if (i)
            goto end2;
        else
            goto end1;
    }

    while (*s == '0')
        ++s;
    ek = 0;
    while (IS_DIGIT(*s)) {
        e = (e << 3) + (e << 1) + (*s++ - '0');
        ++ek;
        if (ek == 4)
            break;
    }
    while (IS_DIGIT(*s))
        ++s;
    i += eneg == 0 ? e : -e;

end2:
    *type = JNUM_DOUBLE;
    if (m == 0) {
        value->vlhex = neg << 63;
    } else {
        value->vdbl = ldouble_rconvert(m, i + z);
        value->vlhex |= neg << 63;
    }
    return (int)(s - str);

end1:
    if (m <= 2147483647U /*INT_MAX*/) {
        *type = JNUM_INT;
        value->vint = neg == 0 ? (int32_t)m : -((int32_t)m);
    } else if (m <= 9223372036854775807U /*LLONG_MAX*/) {
        *type = JNUM_LINT;
        value->vlint = neg == 0 ? (int64_t)m : -((int64_t)m);
    } else {
        if (m == 9223372036854775808U && neg == 1) {
            *type = JNUM_LINT;
#if defined(_MSC_VER)
            value->vlint = -9223372036854775807 - 1;
#else
            value->vlint = -m;
#endif
        } else {
            *type = JNUM_DOUBLE;
            value->vdbl = neg == 0 ? (double)m : -((double)m);
        }
    }
    return (int)(s - str);

overflow1:
    s -= k;
    m = 0;
    k = 0;
    while (IS_DIGIT(*s)) {
        m = (m << 3) + (m << 1) + (*s++ - '0');
        ++k;
        if (k == 19)
            break;
    }

    while (1) {
        switch (*s) {
        case '0': case '1': case '2': case '3': case '4':
        case '5': case '6': case '7': case '8': case '9':
            ++s;
            ++i;
            break;
        case '.':
            ++s;
            while (IS_DIGIT(*s))
                ++s;
            if (*s == 'e' || *s == 'E') {
                goto end3;
            }
            goto end2;
        case 'e': case 'E':
            goto end3;
        default:
            goto end2;
        }
    }

overflow2:
    s -= k - b;
    m = n;
    k = b;
    i = 0;

    while (IS_DIGIT(*s)) {
        m = (m << 3) + (m << 1) + (*s++ - '0');
        ++k;
        --i;
        if (k == 19)
            break;
    }
    while (IS_DIGIT(*s))
        ++s;

    if (*s == 'e' || *s == 'E') {
        goto end3;
    }
    goto end2;
}

// Assembly:
subq $0xa8, %rsp
movq %rdi, 0x98(%rsp)
movq %rsi, 0x90(%rsp)
movq %rdx, 0x88(%rsp)
movq 0x98(%rsp), %rax
movq %rax, 0x80(%rsp)
movl $0x0, 0x7c(%rsp)
movl $0x0, 0x78(%rsp)
movl $0x0, 0x74(%rsp)
movl $0x0, 0x70(%rsp)
movl $0x0, 0x6c(%rsp)
movl $0x0, 0x68(%rsp)
movl $0x0, 0x64(%rsp)
movq $0x0, 0x58(%rsp)
movq $0x0, 0x50(%rsp)
movq $0x0, 0x48(%rsp)
movq 0x80(%rsp), %rax
movsbl (%rax), %eax
movl %eax, 0x40(%rsp)
subl $0x2b, %eax
je 0xdb9a
jmp 0xdb78
movl 0x40(%rsp), %eax
subl $0x2d, %eax
je 0xdb91
jmp 0xdb83
movl 0x40(%rsp), %eax
subl $0x30, %eax
je 0xdbb3
jmp 0xdc3b
movq $0x1, 0x58(%rsp)
movq 0x80(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x80(%rsp)
jmp 0xdc3d
movq 0x80(%rsp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x78, %eax
je 0xdbd5
movq 0x80(%rsp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x58, %eax
jne 0xdc39
movq 0x80(%rsp), %rdi
movq 0x90(%rsp), %rsi
movq 0x88(%rsp), %rdx
callq 0xe5a0
movl %eax, 0x44(%rsp)
cmpl $0x2, 0x44(%rsp)
jne 0xdc29
movq 0x90(%rsp), %rax
movl $0x2, (%rax)
movq 0x88(%rsp), %rax
movl $0x0, (%rax)
movl $0x1, 0xa4(%rsp)
jmp 0xe58c
movl 0x44(%rsp), %eax
movl %eax, 0xa4(%rsp)
jmp 0xe58c
jmp 0xdc3d
jmp 0xdc3d
movq 0x80(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x30, %eax
jl 0xdc5d
movq 0x80(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x39, %eax
jle 0xdc99
movq 0x80(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x2e, %eax
je 0xdc99
movq 0x90(%rsp), %rax
movl $0x0, (%rax)
movq 0x88(%rsp), %rax
movl $0x0, (%rax)
movl $0x0, 0xa4(%rsp)
jmp 0xe58c
jmp 0xdc9b
movq 0x80(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x30, %eax
jne 0xdcc1
movq 0x80(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x80(%rsp)
jmp 0xdc9b
jmp 0xdcc3
movq 0x80(%rsp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x30, %ecx
movb %al, 0x3f(%rsp)
jl 0xdcee
movq 0x80(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x39, %eax
setle %al
movb %al, 0x3f(%rsp)
movb 0x3f(%rsp), %al
testb $0x1, %al
jne 0xdcf8
jmp 0xdd41
movq 0x50(%rsp), %rax
shlq $0x3, %rax
movq 0x50(%rsp), %rcx
shlq %rcx
addq %rcx, %rax
movq 0x80(%rsp), %rcx
movq %rcx, %rdx
addq $0x1, %rdx
movq %rdx, 0x80(%rsp)
movsbl (%rcx), %ecx
subl $0x30, %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, 0x50(%rsp)
movl 0x74(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x74(%rsp)
jmp 0xdcc3
cmpl $0x14, 0x74(%rsp)
jl 0xdd4d
jmp 0xe298
movq 0x80(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x2e, %eax
je 0xdd87
movq 0x80(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x65, %eax
je 0xdd82
movq 0x80(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x45, %eax
je 0xdd82
jmp 0xe0f6
jmp 0xdeab
movq 0x80(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x80(%rsp)
cmpq $0x0, 0x50(%rsp)
jne 0xddd8
jmp 0xdda5
movq 0x80(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x30, %eax
jne 0xddd6
movq 0x80(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x80(%rsp)
movl 0x64(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x64(%rsp)
jmp 0xdda5
jmp 0xddea
movq 0x50(%rsp), %rax
movq %rax, 0x48(%rsp)
movl 0x74(%rsp), %eax
movl %eax, 0x6c(%rsp)
jmp 0xddec
movq 0x80(%rsp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x30, %ecx
movb %al, 0x3e(%rsp)
jl 0xde17
movq 0x80(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x39, %eax
setle %al
movb %al, 0x3e(%rsp)
movb 0x3e(%rsp), %al
testb $0x1, %al
jne 0xde21
jmp 0xde78
movq 0x50(%rsp), %rax
shlq $0x3, %rax
movq 0x50(%rsp), %rcx
shlq %rcx
addq %rcx, %rax
movq 0x80(%rsp), %rcx
movq %rcx, %rdx
addq $0x1, %rdx
movq %rdx, 0x80(%rsp)
movsbl (%rcx), %ecx
subl $0x30, %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, 0x50(%rsp)
movl 0x74(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x74(%rsp)
movl 0x68(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x68(%rsp)
jmp 0xddec
cmpl $0x14, 0x74(%rsp)
jl 0xde84
jmp 0xe443
movq 0x80(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x65, %eax
je 0xdea9
movq 0x80(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x45, %eax
je 0xdea9
jmp 0xe076
jmp 0xdeab
jmp 0xdead
movq 0x80(%rsp), %rax
movsbl 0x1(%rax), %eax
movl %eax, 0x38(%rsp)
subl $0x2b, %eax
je 0xdee5
jmp 0xdec4
movl 0x38(%rsp), %eax
subl $0x2d, %eax
je 0xdedd
jmp 0xdecf
movl 0x38(%rsp), %eax
addl $-0x30, %eax
subl $0xa, %eax
jb 0xdf2e
jmp 0xdf44
movl $0x1, 0x7c(%rsp)
movq 0x80(%rsp), %rax
movsbl 0x2(%rax), %eax
cmpl $0x30, %eax
jl 0xdf1d
movq 0x80(%rsp), %rax
movsbl 0x2(%rax), %eax
cmpl $0x39, %eax
jg 0xdf1d
movq 0x80(%rsp), %rax
addq $0x2, %rax
movq %rax, 0x80(%rsp)
jmp 0xdf55
cmpl $0x0, 0x68(%rsp)
je 0xdf29
jmp 0xe076
jmp 0xe0f6
movq 0x80(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x80(%rsp)
jmp 0xdf55
cmpl $0x0, 0x68(%rsp)
je 0xdf50
jmp 0xe076
jmp 0xe0f6
jmp 0xdf57
movq 0x80(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x30, %eax
jne 0xdf7d
movq 0x80(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x80(%rsp)
jmp 0xdf57
movl $0x0, 0x70(%rsp)
movq 0x80(%rsp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x30, %ecx
movb %al, 0x37(%rsp)
jl 0xdfb0
movq 0x80(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x39, %eax
setle %al
movb %al, 0x37(%rsp)
movb 0x37(%rsp), %al
testb $0x1, %al
jne 0xdfba
jmp 0xe002
movl 0x78(%rsp), %eax
shll $0x3, %eax
movl 0x78(%rsp), %ecx
shll %ecx
addl %ecx, %eax
movq 0x80(%rsp), %rcx
movq %rcx, %rdx
addq $0x1, %rdx
movq %rdx, 0x80(%rsp)
movsbl (%rcx), %ecx
subl $0x30, %ecx
addl %ecx, %eax
movl %eax, 0x78(%rsp)
movl 0x70(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x70(%rsp)
cmpl $0x4, 0x70(%rsp)
jne 0xe000
jmp 0xe002
jmp 0xdf85
jmp 0xe004
movq 0x80(%rsp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x30, %ecx
movb %al, 0x36(%rsp)
jl 0xe02f
movq 0x80(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x39, %eax
setle %al
movb %al, 0x36(%rsp)
movb 0x36(%rsp), %al
testb $0x1, %al
jne 0xe039
jmp 0xe04f
movq 0x80(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x80(%rsp)
jmp 0xe004
cmpl $0x0, 0x7c(%rsp)
jne 0xe060
movl 0x78(%rsp), %eax
movl %eax, 0x30(%rsp)
jmp 0xe06a
xorl %eax, %eax
subl 0x78(%rsp), %eax
movl %eax, 0x30(%rsp)
movl 0x30(%rsp), %eax
addl 0x68(%rsp), %eax
movl %eax, 0x68(%rsp)
movq 0x90(%rsp), %rax
movl $0x6, (%rax)
cmpq $0x0, 0x50(%rsp)
jne 0xe0a2
movq 0x58(%rsp), %rcx
shlq $0x3f, %rcx
movq 0x88(%rsp), %rax
movq %rcx, (%rax)
jmp 0xe0d7
movq 0x50(%rsp), %rdi
movl 0x68(%rsp), %esi
addl 0x64(%rsp), %esi
callq 0xe6d0
movq 0x88(%rsp), %rax
movsd %xmm0, (%rax)
movq 0x58(%rsp), %rcx
shlq $0x3f, %rcx
movq 0x88(%rsp), %rax
orq (%rax), %rcx
movq %rcx, (%rax)
movq 0x80(%rsp), %rax
movq 0x98(%rsp), %rcx
subq %rcx, %rax
movl %eax, 0xa4(%rsp)
jmp 0xe58c
cmpq $0x7fffffff, 0x50(%rsp) # imm = 0x7FFFFFFF
ja 0xe144
movq 0x90(%rsp), %rax
movl $0x2, (%rax)
cmpq $0x0, 0x58(%rsp)
jne 0xe122
movq 0x50(%rsp), %rax
movl %eax, 0x2c(%rsp)
jmp 0xe131
movq 0x50(%rsp), %rax
movl %eax, %ecx
xorl %eax, %eax
subl %ecx, %eax
movl %eax, 0x2c(%rsp)
movl 0x2c(%rsp), %ecx
movq 0x88(%rsp), %rax
movl %ecx, (%rax)
jmp 0xe279
movabsq $0x7fffffffffffffff, %rax # imm = 0x7FFFFFFFFFFFFFFF
cmpq %rax, 0x50(%rsp)
ja 0xe198
movq 0x90(%rsp), %rax
movl $0x4, (%rax)
cmpq $0x0, 0x58(%rsp)
jne 0xe177
movq 0x50(%rsp), %rax
movq %rax, 0x20(%rsp)
jmp 0xe183
xorl %eax, %eax
subq 0x50(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rcx
movq 0x88(%rsp), %rax
movq %rcx, (%rax)
jmp 0xe277
movabsq $-0x8000000000000000, %rax # imm = 0x8000000000000000
cmpq %rax, 0x50(%rsp)
jne 0xe1d8
cmpq $0x1, 0x58(%rsp)
jne 0xe1d8
movq 0x90(%rsp), %rax
movl $0x4, (%rax)
xorl %eax, %eax
movl %eax, %ecx
subq 0x50(%rsp), %rcx
movq 0x88(%rsp), %rax
movq %rcx, (%rax)
jmp 0xe275
movq 0x90(%rsp), %rax
movl $0x6, (%rax)
cmpq $0x0, 0x58(%rsp)
jne 0xe21e
movaps 0x2d6b(%rip), %xmm1     # 0x10f60
movq 0x50(%rsp), %xmm0
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0x2d69(%rip), %xmm1     # 0x10f70
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd %xmm0, 0x18(%rsp)
jmp 0xe263
movaps 0x2d3b(%rip), %xmm1     # 0x10f60
movq 0x50(%rsp), %xmm0
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0x2d39(%rip), %xmm1     # 0x10f70
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, 0x18(%rsp)
movsd 0x18(%rsp), %xmm0
movq 0x88(%rsp), %rax
movsd %xmm0, (%rax)
jmp 0xe277
jmp 0xe279
movq 0x80(%rsp), %rax
movq 0x98(%rsp), %rcx
subq %rcx, %rax
movl %eax, 0xa4(%rsp)
jmp 0xe58c
movl 0x74(%rsp), %ecx
movq 0x80(%rsp), %rax
movslq %ecx, %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
addq %rcx, %rax
movq %rax, 0x80(%rsp)
movq $0x0, 0x50(%rsp)
movl $0x0, 0x74(%rsp)
movq 0x80(%rsp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x30, %ecx
movb %al, 0x17(%rsp)
jl 0xe2f3
movq 0x80(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x39, %eax
setle %al
movb %al, 0x17(%rsp)
movb 0x17(%rsp), %al
testb $0x1, %al
jne 0xe2fd
jmp 0xe352
movq 0x50(%rsp), %rax
shlq $0x3, %rax
movq 0x50(%rsp), %rcx
shlq %rcx
addq %rcx, %rax
movq 0x80(%rsp), %rcx
movq %rcx, %rdx
addq $0x1, %rdx
movq %rdx, 0x80(%rsp)
movsbl (%rcx), %ecx
subl $0x30, %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, 0x50(%rsp)
movl 0x74(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x74(%rsp)
cmpl $0x13, 0x74(%rsp)
jne 0xe34d
jmp 0xe352
jmp 0xe2c8
jmp 0xe354
movq 0x80(%rsp), %rax
movsbl (%rax), %eax
addl $-0x2e, %eax
movl %eax, %ecx
movq %rcx, 0x8(%rsp)
subl $0x37, %eax
ja 0xe439
movq 0x8(%rsp), %rax
leaq 0x2c02(%rip), %rcx      # 0x10f80
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x80(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x80(%rsp)
movl 0x68(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x68(%rsp)
jmp 0xe43e
movq 0x80(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x80(%rsp)
movq 0x80(%rsp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x30, %ecx
movb %al, 0x7(%rsp)
jl 0xe3ea
movq 0x80(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x39, %eax
setle %al
movb %al, 0x7(%rsp)
movb 0x7(%rsp), %al
testb $0x1, %al
jne 0xe3f4
jmp 0xe40a
movq 0x80(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x80(%rsp)
jmp 0xe3bf
movq 0x80(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x65, %eax
je 0xe42a
movq 0x80(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x45, %eax
jne 0xe42f
jmp 0xdead
jmp 0xe076
jmp 0xdead
jmp 0xe076
jmp 0xe354
movl 0x74(%rsp), %ecx
subl 0x6c(%rsp), %ecx
movq 0x80(%rsp), %rax
movslq %ecx, %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
addq %rcx, %rax
movq %rax, 0x80(%rsp)
movq 0x48(%rsp), %rax
movq %rax, 0x50(%rsp)
movl 0x6c(%rsp), %eax
movl %eax, 0x74(%rsp)
movl $0x0, 0x68(%rsp)
movq 0x80(%rsp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x30, %ecx
movb %al, 0x6(%rsp)
jl 0xe4ab
movq 0x80(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x39, %eax
setle %al
movb %al, 0x6(%rsp)
movb 0x6(%rsp), %al
testb $0x1, %al
jne 0xe4b5
jmp 0xe515
movq 0x50(%rsp), %rax
shlq $0x3, %rax
movq 0x50(%rsp), %rcx
shlq %rcx
addq %rcx, %rax
movq 0x80(%rsp), %rcx
movq %rcx, %rdx
addq $0x1, %rdx
movq %rdx, 0x80(%rsp)
movsbl (%rcx), %ecx
subl $0x30, %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, 0x50(%rsp)
movl 0x74(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x74(%rsp)
movl 0x68(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x68(%rsp)
cmpl $0x13, 0x74(%rsp)
jne 0xe510
jmp 0xe515
jmp 0xe480
jmp 0xe517
movq 0x80(%rsp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x30, %ecx
movb %al, 0x5(%rsp)
jl 0xe542
movq 0x80(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x39, %eax
setle %al
movb %al, 0x5(%rsp)
movb 0x5(%rsp), %al
testb $0x1, %al
jne 0xe54c
jmp 0xe562
movq 0x80(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x80(%rsp)
jmp 0xe517
movq 0x80(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x65, %eax
je 0xe582
movq 0x80(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x45, %eax
jne 0xe587
jmp 0xdead
jmp 0xe076
movl 0xa4(%rsp), %eax
addq $0xa8, %rsp
retq
nopl (%rax,%rax)