// File: fieryzig[P]GameServer/./Common/rapidjson/include/rapidjson/reader.h
// Function: void rapidjson::GenericReader<rapidjson::UTF8<char>, rapidjson::UTF8<char>, rapidjson::CrtAllocator>::ParseNumber<0u, rapidjson::GenericStringStream<rapidjson::UTF8<char>>, rapidjson::GenericDocument<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>, rapidjson::CrtAllocator>>(rapidjson::GenericStringStream<rapidjson::UTF8<char>>&, rapidjson::GenericDocument<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>, rapidjson::CrtAllocator>&)
void ParseNumber(InputStream& is, Handler& handler) {
        internal::StreamLocalCopy<InputStream> copy(is);
        NumberStream<InputStream,
            ((parseFlags & kParseNumbersAsStringsFlag) != 0) ?
                ((parseFlags & kParseInsituFlag) == 0) :
                ((parseFlags & kParseFullPrecisionFlag) != 0),
            (parseFlags & kParseNumbersAsStringsFlag) != 0 &&
                (parseFlags & kParseInsituFlag) == 0> s(*this, copy.s);

        size_t startOffset = s.Tell();
        double d = 0.0;
        bool useNanOrInf = false;

        // Parse minus
        bool minus = Consume(s, '-');

        // Parse int: zero / ( digit1-9 *DIGIT )
        unsigned i = 0;
        uint64_t i64 = 0;
        bool use64bit = false;
        int significandDigit = 0;
        if (RAPIDJSON_UNLIKELY(s.Peek() == '0')) {
            i = 0;
            s.TakePush();
        }
        else if (RAPIDJSON_LIKELY(s.Peek() >= '1' && s.Peek() <= '9')) {
            i = static_cast<unsigned>(s.TakePush() - '0');

            if (minus)
                while (RAPIDJSON_LIKELY(s.Peek() >= '0' && s.Peek() <= '9')) {
                    if (RAPIDJSON_UNLIKELY(i >= 214748364)) { // 2^31 = 2147483648
                        if (RAPIDJSON_LIKELY(i != 214748364 || s.Peek() > '8')) {
                            i64 = i;
                            use64bit = true;
                            break;
                        }
                    }
                    i = i * 10 + static_cast<unsigned>(s.TakePush() - '0');
                    significandDigit++;
                }
            else
                while (RAPIDJSON_LIKELY(s.Peek() >= '0' && s.Peek() <= '9')) {
                    if (RAPIDJSON_UNLIKELY(i >= 429496729)) { // 2^32 - 1 = 4294967295
                        if (RAPIDJSON_LIKELY(i != 429496729 || s.Peek() > '5')) {
                            i64 = i;
                            use64bit = true;
                            break;
                        }
                    }
                    i = i * 10 + static_cast<unsigned>(s.TakePush() - '0');
                    significandDigit++;
                }
        }
        // Parse NaN or Infinity here
        else if ((parseFlags & kParseNanAndInfFlag) && RAPIDJSON_LIKELY((s.Peek() == 'I' || s.Peek() == 'N'))) {
            useNanOrInf = true;
            if (RAPIDJSON_LIKELY(Consume(s, 'N') && Consume(s, 'a') && Consume(s, 'N'))) {
                d = std::numeric_limits<double>::quiet_NaN();
            }
            else if (RAPIDJSON_LIKELY(Consume(s, 'I') && Consume(s, 'n') && Consume(s, 'f'))) {
                d = (minus ? -std::numeric_limits<double>::infinity() : std::numeric_limits<double>::infinity());
                if (RAPIDJSON_UNLIKELY(s.Peek() == 'i' && !(Consume(s, 'i') && Consume(s, 'n')
                                                            && Consume(s, 'i') && Consume(s, 't') && Consume(s, 'y'))))
                    RAPIDJSON_PARSE_ERROR(kParseErrorValueInvalid, s.Tell());
            }
            else
                RAPIDJSON_PARSE_ERROR(kParseErrorValueInvalid, s.Tell());
        }
        else
            RAPIDJSON_PARSE_ERROR(kParseErrorValueInvalid, s.Tell());

        // Parse 64bit int
        bool useDouble = false;
        if (use64bit) {
            if (minus)
                while (RAPIDJSON_LIKELY(s.Peek() >= '0' && s.Peek() <= '9')) {
                     if (RAPIDJSON_UNLIKELY(i64 >= RAPIDJSON_UINT64_C2(0x0CCCCCCC, 0xCCCCCCCC))) // 2^63 = 9223372036854775808
                        if (RAPIDJSON_LIKELY(i64 != RAPIDJSON_UINT64_C2(0x0CCCCCCC, 0xCCCCCCCC) || s.Peek() > '8')) {
                            d = static_cast<double>(i64);
                            useDouble = true;
                            break;
                        }
                    i64 = i64 * 10 + static_cast<unsigned>(s.TakePush() - '0');
                    significandDigit++;
                }
            else
                while (RAPIDJSON_LIKELY(s.Peek() >= '0' && s.Peek() <= '9')) {
                    if (RAPIDJSON_UNLIKELY(i64 >= RAPIDJSON_UINT64_C2(0x19999999, 0x99999999))) // 2^64 - 1 = 18446744073709551615
                        if (RAPIDJSON_LIKELY(i64 != RAPIDJSON_UINT64_C2(0x19999999, 0x99999999) || s.Peek() > '5')) {
                            d = static_cast<double>(i64);
                            useDouble = true;
                            break;
                        }
                    i64 = i64 * 10 + static_cast<unsigned>(s.TakePush() - '0');
                    significandDigit++;
                }
        }

        // Force double for big integer
        if (useDouble) {
            while (RAPIDJSON_LIKELY(s.Peek() >= '0' && s.Peek() <= '9')) {
                if (RAPIDJSON_UNLIKELY(d >= 1.7976931348623157e307)) // DBL_MAX / 10.0
                    RAPIDJSON_PARSE_ERROR(kParseErrorNumberTooBig, startOffset);
                d = d * 10 + (s.TakePush() - '0');
            }
        }

        // Parse frac = decimal-point 1*DIGIT
        int expFrac = 0;
        size_t decimalPosition;
        if (Consume(s, '.')) {
            decimalPosition = s.Length();

            if (RAPIDJSON_UNLIKELY(!(s.Peek() >= '0' && s.Peek() <= '9')))
                RAPIDJSON_PARSE_ERROR(kParseErrorNumberMissFraction, s.Tell());

            if (!useDouble) {
#if RAPIDJSON_64BIT
                // Use i64 to store significand in 64-bit architecture
                if (!use64bit)
                    i64 = i;

                while (RAPIDJSON_LIKELY(s.Peek() >= '0' && s.Peek() <= '9')) {
                    if (i64 > RAPIDJSON_UINT64_C2(0x1FFFFF, 0xFFFFFFFF)) // 2^53 - 1 for fast path
                        break;
                    else {
                        i64 = i64 * 10 + static_cast<unsigned>(s.TakePush() - '0');
                        --expFrac;
                        if (i64 != 0)
                            significandDigit++;
                    }
                }

                d = static_cast<double>(i64);
#else
                // Use double to store significand in 32-bit architecture
                d = static_cast<double>(use64bit ? i64 : i);
#endif
                useDouble = true;
            }

            while (RAPIDJSON_LIKELY(s.Peek() >= '0' && s.Peek() <= '9')) {
                if (significandDigit < 17) {
                    d = d * 10.0 + (s.TakePush() - '0');
                    --expFrac;
                    if (RAPIDJSON_LIKELY(d > 0.0))
                        significandDigit++;
                }
                else
                    s.TakePush();
            }
        }
        else
            decimalPosition = s.Length(); // decimal position at the end of integer.

        // Parse exp = e [ minus / plus ] 1*DIGIT
        int exp = 0;
        if (Consume(s, 'e') || Consume(s, 'E')) {
            if (!useDouble) {
                d = static_cast<double>(use64bit ? i64 : i);
                useDouble = true;
            }

            bool expMinus = false;
            if (Consume(s, '+'))
                ;
            else if (Consume(s, '-'))
                expMinus = true;

            if (RAPIDJSON_LIKELY(s.Peek() >= '0' && s.Peek() <= '9')) {
                exp = static_cast<int>(s.Take() - '0');
                if (expMinus) {
                    while (RAPIDJSON_LIKELY(s.Peek() >= '0' && s.Peek() <= '9')) {
                        exp = exp * 10 + static_cast<int>(s.Take() - '0');
                        if (exp >= 214748364) {                         // Issue #313: prevent overflow exponent
                            while (RAPIDJSON_UNLIKELY(s.Peek() >= '0' && s.Peek() <= '9'))  // Consume the rest of exponent
                                s.Take();
                        }
                    }
                }
                else {  // positive exp
                    int maxExp = 308 - expFrac;
                    while (RAPIDJSON_LIKELY(s.Peek() >= '0' && s.Peek() <= '9')) {
                        exp = exp * 10 + static_cast<int>(s.Take() - '0');
                        if (RAPIDJSON_UNLIKELY(exp > maxExp))
                            RAPIDJSON_PARSE_ERROR(kParseErrorNumberTooBig, startOffset);
                    }
                }
            }
            else
                RAPIDJSON_PARSE_ERROR(kParseErrorNumberMissExponent, s.Tell());

            if (expMinus)
                exp = -exp;
        }

        // Finish parsing, call event according to the type of number.
        bool cont = true;

        if (parseFlags & kParseNumbersAsStringsFlag) {
            if (parseFlags & kParseInsituFlag) {
                s.Pop();  // Pop stack no matter if it will be used or not.
                typename InputStream::Ch* head = is.PutBegin();
                const size_t length = s.Tell() - startOffset;
                RAPIDJSON_ASSERT(length <= 0xFFFFFFFF);
                // unable to insert the \0 character here, it will erase the comma after this number
                const typename TargetEncoding::Ch* const str = reinterpret_cast<typename TargetEncoding::Ch*>(head);
                cont = handler.RawNumber(str, SizeType(length), false);
            }
            else {
                SizeType numCharsToCopy = static_cast<SizeType>(s.Length());
                StringStream srcStream(s.Pop());
                StackStream<typename TargetEncoding::Ch> dstStream(stack_);
                while (numCharsToCopy--) {
                    Transcoder<UTF8<>, TargetEncoding>::Transcode(srcStream, dstStream);
                }
                dstStream.Put('\0');
                const typename TargetEncoding::Ch* str = dstStream.Pop();
                const SizeType length = static_cast<SizeType>(dstStream.Length()) - 1;
                cont = handler.RawNumber(str, SizeType(length), true);
            }
        }
        else {
           size_t length = s.Length();
           const char* decimal = s.Pop();  // Pop stack no matter if it will be used or not.

           if (useDouble) {
               int p = exp + expFrac;
               if (parseFlags & kParseFullPrecisionFlag)
                   d = internal::StrtodFullPrecision(d, p, decimal, length, decimalPosition, exp);
               else
                   d = internal::StrtodNormalPrecision(d, p);

               cont = handler.Double(minus ? -d : d);
           }
           else if (useNanOrInf) {
               cont = handler.Double(d);
           }
           else {
               if (use64bit) {
                   if (minus)
                       cont = handler.Int64(static_cast<int64_t>(~i64 + 1));
                   else
                       cont = handler.Uint64(i64);
               }
               else {
                   if (minus)
                       cont = handler.Int(static_cast<int32_t>(~i + 1));
                   else
                       cont = handler.Uint(i);
               }
           }
        }
        if (RAPIDJSON_UNLIKELY(!cont))
            RAPIDJSON_PARSE_ERROR(kParseErrorTermination, startOffset);
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1e0, %rsp            # imm = 0x1E0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0xc0(%rbp)
movq -0x10(%rbp), %rsi
leaq -0x30(%rbp), %rdi
movq %rdi, -0xb8(%rbp)
callq 0x5b00
movq -0xc0(%rbp), %rsi
movq -0xb8(%rbp), %rdx
leaq -0x38(%rbp), %rdi
callq 0x98e0
jmp 0x6bcf
leaq -0x38(%rbp), %rdi
callq 0x9900
movq %rax, -0xc8(%rbp)
jmp 0x6be1
movq -0xc8(%rbp), %rax
movq %rax, -0x50(%rbp)
movq $0x0, -0x58(%rbp)
movb $0x0, -0x59(%rbp)
leaq -0x38(%rbp), %rdi
movl $0x2d, %esi
callq 0x9920
movb %al, -0xc9(%rbp)
jmp 0x6c0e
movb -0xc9(%rbp), %al
andb $0x1, %al
movb %al, -0x5a(%rbp)
movl $0x0, -0x60(%rbp)
movq $0x0, -0x68(%rbp)
movb $0x0, -0x69(%rbp)
movl $0x0, -0x70(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x9970
movb %al, -0xca(%rbp)
jmp 0x6c44
movb -0xca(%rbp), %al
movsbl %al, %eax
cmpl $0x30, %eax
sete %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x6c5d
jmp 0x6c8e
movl $0x0, -0x60(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x9990
jmp 0x6c6f
jmp 0x6ff9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x5b50
jmp 0x7f41
leaq -0x38(%rbp), %rdi
callq 0x9970
movb %al, -0xcb(%rbp)
jmp 0x6c9f
movb -0xcb(%rbp), %al
movsbl %al, %ecx
xorl %eax, %eax
cmpl $0x31, %ecx
movb %al, -0xcc(%rbp)
jl 0x6cdb
leaq -0x38(%rbp), %rdi
callq 0x9970
movb %al, -0xcd(%rbp)
jmp 0x6cc6
movb -0xcd(%rbp), %al
movsbl %al, %eax
cmpl $0x39, %eax
setle %al
movb %al, -0xcc(%rbp)
movb -0xcc(%rbp), %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x6cee
jmp 0x6f48
leaq -0x38(%rbp), %rdi
callq 0x9990
movb %al, -0xce(%rbp)
jmp 0x6cff
movb -0xce(%rbp), %al
movsbl %al, %eax
subl $0x30, %eax
movl %eax, -0x60(%rbp)
testb $0x1, -0x5a(%rbp)
je 0x6e2f
jmp 0x6d1a
leaq -0x38(%rbp), %rdi
callq 0x9970
movb %al, -0xcf(%rbp)
jmp 0x6d2b
movb -0xcf(%rbp), %al
movsbl %al, %ecx
xorl %eax, %eax
cmpl $0x30, %ecx
movb %al, -0xd0(%rbp)
jl 0x6d67
leaq -0x38(%rbp), %rdi
callq 0x9970
movb %al, -0xd1(%rbp)
jmp 0x6d52
movb -0xd1(%rbp), %al
movsbl %al, %eax
cmpl $0x39, %eax
setle %al
movb %al, -0xd0(%rbp)
movb -0xd0(%rbp), %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x6d7a
jmp 0x6e2a
cmpl $0xccccccc, -0x60(%rbp) # imm = 0xCCCCCCC
setae %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x6d8e
jmp 0x6de4
movb $0x1, %al
cmpl $0xccccccc, -0x60(%rbp) # imm = 0xCCCCCCC
movb %al, -0xd2(%rbp)
jne 0x6dc5
leaq -0x38(%rbp), %rdi
callq 0x9970
movb %al, -0xd3(%rbp)
jmp 0x6db0
movb -0xd3(%rbp), %al
movsbl %al, %eax
cmpl $0x38, %eax
setg %al
movb %al, -0xd2(%rbp)
movb -0xd2(%rbp), %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x6dd5
jmp 0x6de2
movl -0x60(%rbp), %eax
movq %rax, -0x68(%rbp)
movb $0x1, -0x69(%rbp)
jmp 0x6e2a
jmp 0x6de4
movl -0x60(%rbp), %ecx
addl %ecx, %ecx
movl %ecx, %eax
leal (%rax,%rax,4), %eax
movl %eax, -0xd8(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x9990
movb %al, -0xd4(%rbp)
jmp 0x6e05
movl -0xd8(%rbp), %eax
movb -0xd4(%rbp), %cl
movsbl %cl, %ecx
subl $0x30, %ecx
addl %ecx, %eax
movl %eax, -0x60(%rbp)
movl -0x70(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x70(%rbp)
jmp 0x6d1a
jmp 0x6f43
jmp 0x6e31
leaq -0x38(%rbp), %rdi
callq 0x9970
movb %al, -0xd9(%rbp)
jmp 0x6e42
movb -0xd9(%rbp), %al
movsbl %al, %ecx
xorl %eax, %eax
cmpl $0x30, %ecx
movb %al, -0xda(%rbp)
jl 0x6e7e
leaq -0x38(%rbp), %rdi
callq 0x9970
movb %al, -0xdb(%rbp)
jmp 0x6e69
movb -0xdb(%rbp), %al
movsbl %al, %eax
cmpl $0x39, %eax
setle %al
movb %al, -0xda(%rbp)
movb -0xda(%rbp), %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x6e91
jmp 0x6f41
cmpl $0x19999999, -0x60(%rbp) # imm = 0x19999999
setae %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x6ea5
jmp 0x6efb
movb $0x1, %al
cmpl $0x19999999, -0x60(%rbp) # imm = 0x19999999
movb %al, -0xdc(%rbp)
jne 0x6edc
leaq -0x38(%rbp), %rdi
callq 0x9970
movb %al, -0xdd(%rbp)
jmp 0x6ec7
movb -0xdd(%rbp), %al
movsbl %al, %eax
cmpl $0x35, %eax
setg %al
movb %al, -0xdc(%rbp)
movb -0xdc(%rbp), %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x6eec
jmp 0x6ef9
movl -0x60(%rbp), %eax
movq %rax, -0x68(%rbp)
movb $0x1, -0x69(%rbp)
jmp 0x6f41
jmp 0x6efb
movl -0x60(%rbp), %ecx
addl %ecx, %ecx
movl %ecx, %eax
leal (%rax,%rax,4), %eax
movl %eax, -0xe4(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x9990
movb %al, -0xde(%rbp)
jmp 0x6f1c
movl -0xe4(%rbp), %eax
movb -0xde(%rbp), %cl
movsbl %cl, %ecx
subl $0x30, %ecx
addl %ecx, %eax
movl %eax, -0x60(%rbp)
movl -0x70(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x70(%rbp)
jmp 0x6e31
jmp 0x6f43
jmp 0x6ff7
jmp 0x6f4a
jmp 0x6f4c
movq -0xc0(%rbp), %rdi
callq 0x5850
movb %al, -0xe5(%rbp)
jmp 0x6f60
movb -0xe5(%rbp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x6f6e
jmp 0x6f70
jmp 0x6f8f
leaq 0x741e(%rip), %rdi      # 0xe395
leaq 0x7428(%rip), %rsi      # 0xe3a6
movl $0x4a3, %edx            # imm = 0x4A3
leaq 0x87a3(%rip), %rcx      # 0xf72d
callq 0x21b0
leaq -0x38(%rbp), %rdi
callq 0x9900
movq %rax, -0xf0(%rbp)
jmp 0x6fa1
movq -0xf0(%rbp), %rdx
movq -0xc0(%rbp), %rdi
movl $0x3, %esi
callq 0x58a0
jmp 0x6fbb
jmp 0x6fbd
movq -0xc0(%rbp), %rdi
callq 0x5850
movb %al, -0xf1(%rbp)
jmp 0x6fd1
movb -0xf1(%rbp), %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x6fe1
jmp 0x6fed
movl $0x1, -0x74(%rbp)
jmp 0x7f2f
jmp 0x6fef
jmp 0x6ff1
jmp 0x6ff3
jmp 0x6ff5
jmp 0x6ff7
jmp 0x6ff9
movb $0x0, -0x75(%rbp)
testb $0x1, -0x69(%rbp)
je 0x72b8
testb $0x1, -0x5a(%rbp)
je 0x7165
jmp 0x7013
leaq -0x38(%rbp), %rdi
callq 0x9970
movb %al, -0xf2(%rbp)
jmp 0x7024
movb -0xf2(%rbp), %al
movsbl %al, %ecx
xorl %eax, %eax
cmpl $0x30, %ecx
movb %al, -0xf3(%rbp)
jl 0x7060
leaq -0x38(%rbp), %rdi
callq 0x9970
movb %al, -0xf4(%rbp)
jmp 0x704b
movb -0xf4(%rbp), %al
movsbl %al, %eax
cmpl $0x39, %eax
setle %al
movb %al, -0xf3(%rbp)
movb -0xf3(%rbp), %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x7073
jmp 0x7160
movabsq $0xccccccccccccccc, %rax # imm = 0xCCCCCCCCCCCCCCC
cmpq %rax, -0x68(%rbp)
setae %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x7091
jmp 0x7113
movb $0x1, %al
movabsq $0xccccccccccccccc, %rcx # imm = 0xCCCCCCCCCCCCCCC
cmpq %rcx, -0x68(%rbp)
movb %al, -0xf5(%rbp)
jne 0x70cf
leaq -0x38(%rbp), %rdi
callq 0x9970
movb %al, -0xf6(%rbp)
jmp 0x70ba
movb -0xf6(%rbp), %al
movsbl %al, %eax
cmpl $0x38, %eax
setg %al
movb %al, -0xf5(%rbp)
movb -0xf5(%rbp), %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x70df
jmp 0x7111
movaps 0x6f2a(%rip), %xmm1     # 0xe010
movq -0x68(%rbp), %xmm0
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0x6f29(%rip), %xmm1     # 0xe020
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd %xmm0, -0x58(%rbp)
movb $0x1, -0x75(%rbp)
jmp 0x7160
jmp 0x7113
movq -0x68(%rbp), %rax
addq %rax, %rax
leaq (%rax,%rax,4), %rax
movq %rax, -0x100(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x9990
movb %al, -0xf7(%rbp)
jmp 0x7136
movq -0x100(%rbp), %rax
movb -0xf7(%rbp), %cl
movsbl %cl, %ecx
subl $0x30, %ecx
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, -0x68(%rbp)
movl -0x70(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x70(%rbp)
jmp 0x7013
jmp 0x72b6
jmp 0x7167
leaq -0x38(%rbp), %rdi
callq 0x9970
movb %al, -0x101(%rbp)
jmp 0x7178
movb -0x101(%rbp), %al
movsbl %al, %ecx
xorl %eax, %eax
cmpl $0x30, %ecx
movb %al, -0x102(%rbp)
jl 0x71b4
leaq -0x38(%rbp), %rdi
callq 0x9970
movb %al, -0x103(%rbp)
jmp 0x719f
movb -0x103(%rbp), %al
movsbl %al, %eax
cmpl $0x39, %eax
setle %al
movb %al, -0x102(%rbp)
movb -0x102(%rbp), %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x71c7
jmp 0x72b4
movabsq $0x1999999999999999, %rax # imm = 0x1999999999999999
cmpq %rax, -0x68(%rbp)
setae %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x71e5
jmp 0x7267
movb $0x1, %al
movabsq $0x1999999999999999, %rcx # imm = 0x1999999999999999
cmpq %rcx, -0x68(%rbp)
movb %al, -0x104(%rbp)
jne 0x7223
leaq -0x38(%rbp), %rdi
callq 0x9970
movb %al, -0x105(%rbp)
jmp 0x720e
movb -0x105(%rbp), %al
movsbl %al, %eax
cmpl $0x35, %eax
setg %al
movb %al, -0x104(%rbp)
movb -0x104(%rbp), %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x7233
jmp 0x7265
movaps 0x6dd6(%rip), %xmm1     # 0xe010
movq -0x68(%rbp), %xmm0
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0x6dd5(%rip), %xmm1     # 0xe020
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd %xmm0, -0x58(%rbp)
movb $0x1, -0x75(%rbp)
jmp 0x72b4
jmp 0x7267
movq -0x68(%rbp), %rax
addq %rax, %rax
leaq (%rax,%rax,4), %rax
movq %rax, -0x110(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x9990
movb %al, -0x106(%rbp)
jmp 0x728a
movq -0x110(%rbp), %rax
movb -0x106(%rbp), %cl
movsbl %cl, %ecx
subl $0x30, %ecx
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, -0x68(%rbp)
movl -0x70(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x70(%rbp)
jmp 0x7167
jmp 0x72b6
jmp 0x72b8
testb $0x1, -0x75(%rbp)
je 0x7431
jmp 0x72c4
leaq -0x38(%rbp), %rdi
callq 0x9970
movb %al, -0x111(%rbp)
jmp 0x72d5
movb -0x111(%rbp), %al
movsbl %al, %ecx
xorl %eax, %eax
cmpl $0x30, %ecx
movb %al, -0x112(%rbp)
jl 0x7311
leaq -0x38(%rbp), %rdi
callq 0x9970
movb %al, -0x113(%rbp)
jmp 0x72fc
movb -0x113(%rbp), %al
movsbl %al, %eax
cmpl $0x39, %eax
setle %al
movb %al, -0x112(%rbp)
movb -0x112(%rbp), %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x7324
jmp 0x742f
movsd -0x58(%rbp), %xmm0
movsd 0x6d07(%rip), %xmm1     # 0xe038
ucomisd %xmm1, %xmm0
setae %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x7345
jmp 0x73df
jmp 0x7347
jmp 0x7349
movq -0xc0(%rbp), %rdi
callq 0x5850
movb %al, -0x114(%rbp)
jmp 0x735d
movb -0x114(%rbp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x736b
jmp 0x736d
jmp 0x738c
leaq 0x7021(%rip), %rdi      # 0xe395
leaq 0x702b(%rip), %rsi      # 0xe3a6
movl $0x4c4, %edx            # imm = 0x4C4
leaq 0x83a6(%rip), %rcx      # 0xf72d
callq 0x21b0
movq -0xc0(%rbp), %rdi
movq -0x50(%rbp), %rdx
movl $0xd, %esi
callq 0x58a0
jmp 0x73a3
jmp 0x73a5
movq -0xc0(%rbp), %rdi
callq 0x5850
movb %al, -0x115(%rbp)
jmp 0x73b9
movb -0x115(%rbp), %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x73c9
jmp 0x73d5
movl $0x1, -0x74(%rbp)
jmp 0x7f2f
jmp 0x73d7
jmp 0x73d9
jmp 0x73db
jmp 0x73dd
jmp 0x73df
movsd -0x58(%rbp), %xmm0
movsd %xmm0, -0x120(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x9990
movb %al, -0x116(%rbp)
jmp 0x73fd
movsd -0x120(%rbp), %xmm0
movb -0x116(%rbp), %al
movsbl %al, %eax
subl $0x30, %eax
cvtsi2sd %eax, %xmm1
movsd 0x6c13(%rip), %xmm2     # 0xe030
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x58(%rbp)
jmp 0x72c4
jmp 0x7431
movl $0x0, -0x7c(%rbp)
leaq -0x38(%rbp), %rdi
movl $0x2e, %esi
callq 0x9920
movb %al, -0x121(%rbp)
jmp 0x744e
movb -0x121(%rbp), %al
testb $0x1, %al
jne 0x745d
jmp 0x7799
leaq -0x38(%rbp), %rdi
callq 0x99b0
movq %rax, -0x130(%rbp)
jmp 0x746f
movq -0x130(%rbp), %rax
movq %rax, -0x88(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x9970
movb %al, -0x131(%rbp)
jmp 0x748e
movb -0x131(%rbp), %al
movsbl %al, %ecx
xorl %eax, %eax
cmpl $0x30, %ecx
movb %al, -0x132(%rbp)
jl 0x74ca
leaq -0x38(%rbp), %rdi
callq 0x9970
movb %al, -0x133(%rbp)
jmp 0x74b5
movb -0x133(%rbp), %al
movsbl %al, %eax
cmpl $0x39, %eax
setle %al
movb %al, -0x132(%rbp)
movb -0x132(%rbp), %al
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x74df
jmp 0x758e
jmp 0x74e1
jmp 0x74e3
movq -0xc0(%rbp), %rdi
callq 0x5850
movb %al, -0x134(%rbp)
jmp 0x74f7
movb -0x134(%rbp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x7505
jmp 0x7507
jmp 0x7526
leaq 0x6e87(%rip), %rdi      # 0xe395
leaq 0x6e91(%rip), %rsi      # 0xe3a6
movl $0x4d0, %edx            # imm = 0x4D0
leaq 0x820c(%rip), %rcx      # 0xf72d
callq 0x21b0
leaq -0x38(%rbp), %rdi
callq 0x9900
movq %rax, -0x140(%rbp)
jmp 0x7538
movq -0x140(%rbp), %rdx
movq -0xc0(%rbp), %rdi
movl $0xe, %esi
callq 0x58a0
jmp 0x7552
jmp 0x7554
movq -0xc0(%rbp), %rdi
callq 0x5850
movb %al, -0x141(%rbp)
jmp 0x7568
movb -0x141(%rbp), %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x7578
jmp 0x7584
movl $0x1, -0x74(%rbp)
jmp 0x7f2f
jmp 0x7586
jmp 0x7588
jmp 0x758a
jmp 0x758c
jmp 0x758e
testb $0x1, -0x75(%rbp)
jne 0x76a5
testb $0x1, -0x69(%rbp)
jne 0x75a5
movl -0x60(%rbp), %eax
movq %rax, -0x68(%rbp)
jmp 0x75a7
leaq -0x38(%rbp), %rdi
callq 0x9970
movb %al, -0x142(%rbp)
jmp 0x75b8
movb -0x142(%rbp), %al
movsbl %al, %ecx
xorl %eax, %eax
cmpl $0x30, %ecx
movb %al, -0x143(%rbp)
jl 0x75f4
leaq -0x38(%rbp), %rdi
callq 0x9970
movb %al, -0x144(%rbp)
jmp 0x75df
movb -0x144(%rbp), %al
movsbl %al, %eax
cmpl $0x39, %eax
setle %al
movb %al, -0x143(%rbp)
movb -0x143(%rbp), %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x7604
jmp 0x7675
movabsq $0x1fffffffffffff, %rax # imm = 0x1FFFFFFFFFFFFF
cmpq %rax, -0x68(%rbp)
jbe 0x7616
jmp 0x7675
movq -0x68(%rbp), %rax
addq %rax, %rax
leaq (%rax,%rax,4), %rax
movq %rax, -0x150(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x9990
movb %al, -0x145(%rbp)
jmp 0x7639
movq -0x150(%rbp), %rax
movb -0x145(%rbp), %cl
movsbl %cl, %ecx
subl $0x30, %ecx
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, -0x68(%rbp)
movl -0x7c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x7c(%rbp)
cmpq $0x0, -0x68(%rbp)
je 0x766e
movl -0x70(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x70(%rbp)
jmp 0x7670
jmp 0x75a7
movaps 0x6994(%rip), %xmm1     # 0xe010
movq -0x68(%rbp), %xmm0
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0x6993(%rip), %xmm1     # 0xe020
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd %xmm0, -0x58(%rbp)
movb $0x1, -0x75(%rbp)
jmp 0x76a7
leaq -0x38(%rbp), %rdi
callq 0x9970
movb %al, -0x151(%rbp)
jmp 0x76b8
movb -0x151(%rbp), %al
movsbl %al, %ecx
xorl %eax, %eax
cmpl $0x30, %ecx
movb %al, -0x152(%rbp)
jl 0x76f4
leaq -0x38(%rbp), %rdi
callq 0x9970
movb %al, -0x153(%rbp)
jmp 0x76df
movb -0x153(%rbp), %al
movsbl %al, %eax
cmpl $0x39, %eax
setle %al
movb %al, -0x152(%rbp)
movb -0x152(%rbp), %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x7707
jmp 0x7797
cmpl $0x11, -0x70(%rbp)
jge 0x7785
movsd -0x58(%rbp), %xmm0
movsd %xmm0, -0x160(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x9990
movb %al, -0x154(%rbp)
jmp 0x772b
movsd -0x160(%rbp), %xmm0
movb -0x154(%rbp), %al
movsbl %al, %eax
subl $0x30, %eax
cvtsi2sd %eax, %xmm1
movsd 0x68e5(%rip), %xmm2     # 0xe030
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x58(%rbp)
movl -0x7c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x7c(%rbp)
movsd -0x58(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
seta %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x777a
jmp 0x7783
movl -0x70(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x70(%rbp)
jmp 0x7792
leaq -0x38(%rbp), %rdi
callq 0x9990
jmp 0x7790
jmp 0x7792
jmp 0x76a7
jmp 0x77b9
leaq -0x38(%rbp), %rdi
callq 0x99b0
movq %rax, -0x168(%rbp)
jmp 0x77ab
movq -0x168(%rbp), %rax
movq %rax, -0x88(%rbp)
movl $0x0, -0x8c(%rbp)
leaq -0x38(%rbp), %rdi
movl $0x65, %esi
callq 0x9920
movb %al, -0x169(%rbp)
jmp 0x77d9
movb -0x169(%rbp), %al
testb $0x1, %al
jne 0x780a
jmp 0x77e5
leaq -0x38(%rbp), %rdi
movl $0x45, %esi
callq 0x9920
movb %al, -0x16a(%rbp)
jmp 0x77fb
movb -0x16a(%rbp), %al
testb $0x1, %al
jne 0x780a
jmp 0x7ca4
testb $0x1, -0x75(%rbp)
jne 0x7864
testb $0x1, -0x69(%rbp)
je 0x7823
movq -0x68(%rbp), %rax
movq %rax, -0x178(%rbp)
jmp 0x782d
movl -0x60(%rbp), %eax
movq %rax, -0x178(%rbp)
movq -0x178(%rbp), %rax
movq %rax, %xmm0
movaps 0x67d0(%rip), %xmm1     # 0xe010
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0x67d4(%rip), %xmm1     # 0xe020
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd %xmm0, -0x58(%rbp)
movb $0x1, -0x75(%rbp)
movb $0x0, -0x8d(%rbp)
leaq -0x38(%rbp), %rdi
movl $0x2b, %esi
callq 0x9920
movb %al, -0x179(%rbp)
jmp 0x7881
movb -0x179(%rbp), %al
testb $0x1, %al
jne 0x788d
jmp 0x788f
jmp 0x78ba
leaq -0x38(%rbp), %rdi
movl $0x2d, %esi
callq 0x9920
movb %al, -0x17a(%rbp)
jmp 0x78a5
movb -0x17a(%rbp), %al
testb $0x1, %al
jne 0x78b1
jmp 0x78b8
movb $0x1, -0x8d(%rbp)
jmp 0x78ba
leaq -0x38(%rbp), %rdi
callq 0x9970
movb %al, -0x17b(%rbp)
jmp 0x78cb
movb -0x17b(%rbp), %al
movsbl %al, %ecx
xorl %eax, %eax
cmpl $0x30, %ecx
movb %al, -0x17c(%rbp)
jl 0x7907
leaq -0x38(%rbp), %rdi
callq 0x9970
movb %al, -0x17d(%rbp)
jmp 0x78f2
movb -0x17d(%rbp), %al
movsbl %al, %eax
cmpl $0x39, %eax
setle %al
movb %al, -0x17c(%rbp)
movb -0x17c(%rbp), %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x791a
jmp 0x7bdc
leaq -0x38(%rbp), %rdi
callq 0x99c0
movb %al, -0x17e(%rbp)
jmp 0x792b
movb -0x17e(%rbp), %al
movsbl %al, %eax
subl $0x30, %eax
movl %eax, -0x8c(%rbp)
testb $0x1, -0x8d(%rbp)
je 0x7a6e
jmp 0x794c
leaq -0x38(%rbp), %rdi
callq 0x9970
movb %al, -0x17f(%rbp)
jmp 0x795d
movb -0x17f(%rbp), %al
movsbl %al, %ecx
xorl %eax, %eax
cmpl $0x30, %ecx
movb %al, -0x180(%rbp)
jl 0x7999
leaq -0x38(%rbp), %rdi
callq 0x9970
movb %al, -0x181(%rbp)
jmp 0x7984
movb -0x181(%rbp), %al
movsbl %al, %eax
cmpl $0x39, %eax
setle %al
movb %al, -0x180(%rbp)
movb -0x180(%rbp), %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x79ac
jmp 0x7a69
movl -0x8c(%rbp), %ecx
addl %ecx, %ecx
movl %ecx, %eax
leal (%rax,%rax,4), %eax
movl %eax, -0x188(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x99c0
movb %al, -0x182(%rbp)
jmp 0x79d0
movl -0x188(%rbp), %eax
movb -0x182(%rbp), %cl
movsbl %cl, %ecx
subl $0x30, %ecx
addl %ecx, %eax
movl %eax, -0x8c(%rbp)
cmpl $0xccccccc, -0x8c(%rbp) # imm = 0xCCCCCCC
jl 0x7a64
jmp 0x79f8
leaq -0x38(%rbp), %rdi
callq 0x9970
movb %al, -0x189(%rbp)
jmp 0x7a09
movb -0x189(%rbp), %al
movsbl %al, %ecx
xorl %eax, %eax
cmpl $0x30, %ecx
movb %al, -0x18a(%rbp)
jl 0x7a45
leaq -0x38(%rbp), %rdi
callq 0x9970
movb %al, -0x18b(%rbp)
jmp 0x7a30
movb -0x18b(%rbp), %al
movsbl %al, %eax
cmpl $0x39, %eax
setle %al
movb %al, -0x18a(%rbp)
movb -0x18a(%rbp), %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x7a55
jmp 0x7a62
leaq -0x38(%rbp), %rdi
callq 0x99c0
jmp 0x7a60
jmp 0x79f8
jmp 0x7a64
jmp 0x794c
jmp 0x7bd7
movl $0x134, %eax            # imm = 0x134
subl -0x7c(%rbp), %eax
movl %eax, -0x94(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x9970
movb %al, -0x18c(%rbp)
jmp 0x7a8d
movb -0x18c(%rbp), %al
movsbl %al, %ecx
xorl %eax, %eax
cmpl $0x30, %ecx
movb %al, -0x18d(%rbp)
jl 0x7ac9
leaq -0x38(%rbp), %rdi
callq 0x9970
movb %al, -0x18e(%rbp)
jmp 0x7ab4
movb -0x18e(%rbp), %al
movsbl %al, %eax
cmpl $0x39, %eax
setle %al
movb %al, -0x18d(%rbp)
movb -0x18d(%rbp), %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x7adc
jmp 0x7bd5
movl -0x8c(%rbp), %ecx
addl %ecx, %ecx
movl %ecx, %eax
leal (%rax,%rax,4), %eax
movl %eax, -0x194(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x99c0
movb %al, -0x18f(%rbp)
jmp 0x7b00
movl -0x194(%rbp), %eax
movb -0x18f(%rbp), %cl
movsbl %cl, %ecx
subl $0x30, %ecx
addl %ecx, %eax
movl %eax, -0x8c(%rbp)
movl -0x8c(%rbp), %eax
cmpl -0x94(%rbp), %eax
setg %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x7b36
jmp 0x7bd0
jmp 0x7b38
jmp 0x7b3a
movq -0xc0(%rbp), %rdi
callq 0x5850
movb %al, -0x195(%rbp)
jmp 0x7b4e
movb -0x195(%rbp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x7b5c
jmp 0x7b5e
jmp 0x7b7d
leaq 0x6830(%rip), %rdi      # 0xe395
leaq 0x683a(%rip), %rsi      # 0xe3a6
movl $0x517, %edx            # imm = 0x517
leaq 0x7bb5(%rip), %rcx      # 0xf72d
callq 0x21b0
movq -0xc0(%rbp), %rdi
movq -0x50(%rbp), %rdx
movl $0xd, %esi
callq 0x58a0
jmp 0x7b94
jmp 0x7b96
movq -0xc0(%rbp), %rdi
callq 0x5850
movb %al, -0x196(%rbp)
jmp 0x7baa
movb -0x196(%rbp), %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x7bba
jmp 0x7bc6
movl $0x1, -0x74(%rbp)
jmp 0x7f2f
jmp 0x7bc8
jmp 0x7bca
jmp 0x7bcc
jmp 0x7bce
jmp 0x7bd0
jmp 0x7a7c
jmp 0x7bd7
jmp 0x7c8b
jmp 0x7bde
jmp 0x7be0
movq -0xc0(%rbp), %rdi
callq 0x5850
movb %al, -0x197(%rbp)
jmp 0x7bf4
movb -0x197(%rbp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x7c02
jmp 0x7c04
jmp 0x7c23
leaq 0x678a(%rip), %rdi      # 0xe395
leaq 0x6794(%rip), %rsi      # 0xe3a6
movl $0x51c, %edx            # imm = 0x51C
leaq 0x7b0f(%rip), %rcx      # 0xf72d
callq 0x21b0
leaq -0x38(%rbp), %rdi
callq 0x9900
movq %rax, -0x1a0(%rbp)
jmp 0x7c35
movq -0x1a0(%rbp), %rdx
movq -0xc0(%rbp), %rdi
movl $0xf, %esi
callq 0x58a0
jmp 0x7c4f
jmp 0x7c51
movq -0xc0(%rbp), %rdi
callq 0x5850
movb %al, -0x1a1(%rbp)
jmp 0x7c65
movb -0x1a1(%rbp), %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x7c75
jmp 0x7c81
movl $0x1, -0x74(%rbp)
jmp 0x7f2f
jmp 0x7c83
jmp 0x7c85
jmp 0x7c87
jmp 0x7c89
jmp 0x7c8b
testb $0x1, -0x8d(%rbp)
je 0x7ca2
xorl %eax, %eax
subl -0x8c(%rbp), %eax
movl %eax, -0x8c(%rbp)
jmp 0x7ca4
movb $0x1, -0x95(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x99b0
movq %rax, -0x1b0(%rbp)
jmp 0x7cbd
movq -0x1b0(%rbp), %rax
movq %rax, -0xa0(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x99e0
movq %rax, -0x1b8(%rbp)
jmp 0x7cdd
movq -0x1b8(%rbp), %rax
movq %rax, -0xa8(%rbp)
testb $0x1, -0x75(%rbp)
je 0x7da0
movl -0x8c(%rbp), %eax
movl -0x7c(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0xac(%rbp)
movsd -0x58(%rbp), %xmm0
movl -0xac(%rbp), %edi
callq 0x99f0
movsd %xmm0, -0x1c0(%rbp)
jmp 0x7d20
movsd -0x1c0(%rbp), %xmm0
movsd %xmm0, -0x58(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x1c8(%rbp)
testb $0x1, -0x5a(%rbp)
je 0x7d64
movsd -0x58(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x1d0(%rbp)
jmp 0x7d71
movsd -0x58(%rbp), %xmm0
movsd %xmm0, -0x1d0(%rbp)
movq -0x1c8(%rbp), %rdi
movsd -0x1d0(%rbp), %xmm0
callq 0x9a60
movb %al, -0x1d1(%rbp)
jmp 0x7d8d
movb -0x1d1(%rbp), %al
andb $0x1, %al
movb %al, -0x95(%rbp)
jmp 0x7e7c
testb $0x1, -0x59(%rbp)
je 0x7dcf
movq -0x18(%rbp), %rdi
movsd -0x58(%rbp), %xmm0
callq 0x9a60
movb %al, -0x1d2(%rbp)
jmp 0x7dbc
movb -0x1d2(%rbp), %al
andb $0x1, %al
movb %al, -0x95(%rbp)
jmp 0x7e7a
testb $0x1, -0x69(%rbp)
je 0x7e28
testb $0x1, -0x5a(%rbp)
je 0x7e03
movq -0x18(%rbp), %rdi
movq -0x68(%rbp), %rsi
negq %rsi
callq 0x9aa0
movb %al, -0x1d3(%rbp)
jmp 0x7df3
movb -0x1d3(%rbp), %al
andb $0x1, %al
movb %al, -0x95(%rbp)
jmp 0x7e26
movq -0x18(%rbp), %rdi
movq -0x68(%rbp), %rsi
callq 0x9ae0
movb %al, -0x1d4(%rbp)
jmp 0x7e18
movb -0x1d4(%rbp), %al
andb $0x1, %al
movb %al, -0x95(%rbp)
jmp 0x7e78
testb $0x1, -0x5a(%rbp)
je 0x7e54
movq -0x18(%rbp), %rdi
movl -0x60(%rbp), %esi
negl %esi
callq 0x9b20
movb %al, -0x1d5(%rbp)
jmp 0x7e44
movb -0x1d5(%rbp), %al
andb $0x1, %al
movb %al, -0x95(%rbp)
jmp 0x7e76
movq -0x18(%rbp), %rdi
movl -0x60(%rbp), %esi
callq 0x9b60
movb %al, -0x1d6(%rbp)
jmp 0x7e68
movb -0x1d6(%rbp), %al
andb $0x1, %al
movb %al, -0x95(%rbp)
jmp 0x7e78
jmp 0x7e7a
jmp 0x7e7c
movb -0x95(%rbp), %al
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x7e91
jmp 0x7f28
jmp 0x7e93
jmp 0x7e95
movq -0xc0(%rbp), %rdi
callq 0x5850
movb %al, -0x1d7(%rbp)
jmp 0x7ea9
movb -0x1d7(%rbp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x7eb7
jmp 0x7eb9
jmp 0x7ed8
leaq 0x64d5(%rip), %rdi      # 0xe395
leaq 0x64df(%rip), %rsi      # 0xe3a6
movl $0x55c, %edx            # imm = 0x55C
leaq 0x785a(%rip), %rcx      # 0xf72d
callq 0x21b0
movq -0xc0(%rbp), %rdi
movq -0x50(%rbp), %rdx
movl $0x10, %esi
callq 0x58a0
jmp 0x7eef
jmp 0x7ef1
movq -0xc0(%rbp), %rdi
callq 0x5850
movb %al, -0x1d8(%rbp)
jmp 0x7f05
movb -0x1d8(%rbp), %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x7f15
jmp 0x7f1e
movl $0x1, -0x74(%rbp)
jmp 0x7f2f
jmp 0x7f20
jmp 0x7f22
jmp 0x7f24
jmp 0x7f26
jmp 0x7f28
movl $0x0, -0x74(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x5b50
addq $0x1e0, %rsp            # imm = 0x1E0
popq %rbp
retq
movq -0x40(%rbp), %rdi
callq 0x23d0
nopw (%rax,%rax)