// File: ef-gy[P]libefgy/include/ef.gy/json.h
// Function: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> efgy::json::parse<long double>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, efgy::json::value<long double>&)
static inline std::string parse(std::string stream,
                                efgy::json::value<Q> &pValue) {
  pValue = value<Q>();

  enum {
    scan,
    read_object,
    read_object_colon,
    read_object_value,
    read_object_comma,
    read_array,
    read_array_comma,
    read_string,
    read_string_escape,
    read_number,
    read_t,
    read_tr,
    read_tru,
    read_f,
    read_fa,
    read_fal,
    read_fals,
    read_n,
    read_nu,
    read_nul
  } state = scan;

  std::string ss;
  std::string key;

  for (std::ptrdiff_t i = 0; i < stream.size(); i++) {
    const auto c = stream[i];
    if (state >= read_t) {
      if (state == read_t && c == 'r') {
        state = read_tr;
      } else if (state == read_tr && c == 'u') {
        state = read_tru;
      } else if (state == read_tru && c == 'e') {
        pValue.type = yes;
        return stream.substr(i + 1);
      } else if (state == read_f && c == 'a') {
        state = read_fa;
      } else if (state == read_fa && c == 'l') {
        state = read_fal;
      } else if (state == read_fal && c == 's') {
        state = read_fals;
      } else if (state == read_fals && c == 'e') {
        pValue.type = no;
        return stream.substr(i + 1);
      } else if (state == read_n && c == 'u') {
        state = read_nu;
      } else if (state == read_nu && c == 'l') {
        state = read_nul;
      } else if (state == read_nul && c == 'l') {
        pValue.type = null;
        return stream.substr(i + 1);
      } else {
        // this should raise a parse errorr
        return "";
      }
    } else
      switch (state) {
        case scan:
          switch (c) {
            case '{':
              state = read_object;
              pValue.toObject();
              break;
            case '[':
              state = read_array;
              pValue.toArray();
              break;
            case '"':
              state = read_string;
              pValue.toString();
              break;
            case '0':
            case '1':
            case '2':
            case '3':
            case '4':
            case '5':
            case '6':
            case '7':
            case '8':
            case '9':
            case '+':
            case '-':
              state = read_number;
              pValue.toNumber();
              ss.clear();
              ss.push_back(c);
              break;
            case 't':
              state = read_t;
              break;
            case 'f':
              state = read_f;
              break;
            case 'n':
              state = read_n;
              break;
            case ',':
              pValue.type = comma;
              return stream.substr(i + 1);
            case ':':
              pValue.type = colon;
              return stream.substr(i + 1);
            case ']':
              pValue.type = endArray;
              return stream.substr(i + 1);
            case '}':
              pValue.type = endObject;
              return stream.substr(i + 1);
            case ' ':
            case '\t':
            case '\v':
            case '\n':
            case 0:
              break;
          }
          break;
        case read_object: {
          efgy::json::value<Q> v;
          std::string nstream = parse(stream.substr(i), v);
          switch (v.type) {
            case endObject:
              return nstream;
            case string:
              key = v.asString();
              state = read_object_colon;
              break;
            default:
              break;
          }
          stream = nstream;
        }
          i = -1;
          break;
        case read_object_colon: {
          efgy::json::value<Q> v;
          std::string nstream = parse(stream.substr(i), v);
          switch (v.type) {
            case endObject:
              return nstream;
            case colon:
              state = read_object_value;
              break;
            default:
              break;
          }
          stream = nstream;
        }
          i = -1;
          break;
        case read_object_value: {
          efgy::json::value<Q> v;
          std::string nstream = parse(stream.substr(i), v);
          switch (v.type) {
            case endObject:
              return nstream;
            default:
              pValue.toObject()[key] = v;
              state = read_object_comma;
              break;
          }
          stream = nstream;
        }
          i = -1;
          break;
        case read_object_comma: {
          efgy::json::value<Q> v;
          std::string nstream = parse(stream.substr(i), v);
          switch (v.type) {
            case comma:
              state = read_object;
              break;
            case endObject:
              return nstream;
            default:
              break;
          }
          stream = nstream;
        }
          i = -1;
          break;
        case read_array:
          state = read_array_comma;
          {
            efgy::json::value<Q> v;
            std::string nstream = parse(stream.substr(i), v);
            if (v.type == endArray) {
              return nstream;
            }
            stream = nstream;
            pValue.toArray().push_back(v);
          }
          i = -1;
          break;
        case read_array_comma: {
          efgy::json::value<Q> v;
          std::string nstream = parse(stream.substr(i), v);
          switch (v.type) {
            case comma:
              state = read_array;
              break;
            case endArray:
              return nstream;
            default:
              break;
          }
          stream = nstream;
        }
          i = -1;
          break;
        case read_number:
          switch (c) {
            case '0':
            case '1':
            case '2':
            case '3':
            case '4':
            case '5':
            case '6':
            case '7':
            case '8':
            case '9':
            case 'e':
            case 'E':
            case '.':
            case '+':
            case '-':
              ss.push_back(c);
              break;
            default:
              pValue.toNumber() = std::stold(ss);
              return stream.substr(i);
          }
          break;
        case read_string_escape:
          switch (c) {
            case 'b':
              pValue.toString().push_back('\b');
              break;
            case 'f':
              pValue.toString().push_back('\f');
              break;
            case 'n':
              pValue.toString().push_back('\n');
              break;
            case 'r':
              pValue.toString().push_back('\r');
              break;
            case 't':
              pValue.toString().push_back('\t');
              break;
            default:
              pValue.toString().push_back(c);
              break;
          }
          state = read_string;
          break;
        case read_string:
          switch (c) {
            case '"':
              return stream.substr(i + 1);
              break;
            case '\\':
              state = read_string_escape;
              break;
            default:
              pValue.toString().push_back(c);
              break;
          }
        default:
          break;
      }
  }

  if (state == read_number) {
    pValue.toNumber() = std::stold(ss);
  }

  return "";
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x310, %rsp            # imm = 0x310
movq %rsi, -0x228(%rbp)
movq %rdi, -0x220(%rbp)
movq %rdi, %rax
movq %rax, -0x218(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
leaq -0x28(%rbp), %rdi
movq %rdi, -0x210(%rbp)
callq 0xb140
movq -0x210(%rbp), %rsi
movq -0x18(%rbp), %rdi
callq 0x2ebd0
jmp 0x71e1
leaq -0x28(%rbp), %rdi
callq 0xb190
movl $0x0, -0x38(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x5540
leaq -0x78(%rbp), %rdi
callq 0x5540
movq $0x0, -0x80(%rbp)
movq -0x228(%rbp), %rdi
movq -0x80(%rbp), %rax
movq %rax, -0x230(%rbp)
callq 0x52e0
movq %rax, %rcx
movq -0x230(%rbp), %rax
cmpq %rcx, %rax
jae 0x81c7
movq -0x228(%rbp), %rdi
movq -0x80(%rbp), %rsi
callq 0x5700
movq %rax, -0x238(%rbp)
jmp 0x724e
movq -0x238(%rbp), %rax
movb (%rax), %al
movb %al, -0x81(%rbp)
cmpl $0xa, -0x38(%rbp)
jl 0x74ca
cmpl $0xa, -0x38(%rbp)
jne 0x72b0
movsbl -0x81(%rbp), %eax
cmpl $0x72, %eax
jne 0x72b0
movl $0xb, -0x38(%rbp)
jmp 0x74c5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x28(%rbp), %rdi
callq 0xb190
jmp 0x8298
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x8286
cmpl $0xb, -0x38(%rbp)
jne 0x72ce
movsbl -0x81(%rbp), %eax
cmpl $0x75, %eax
jne 0x72ce
movl $0xc, -0x38(%rbp)
jmp 0x74c3
cmpl $0xc, -0x38(%rbp)
jne 0x731c
movsbl -0x81(%rbp), %eax
cmpl $0x65, %eax
jne 0x731c
movq -0x228(%rbp), %rsi
movq -0x220(%rbp), %rdi
movq -0x18(%rbp), %rax
movl $0x4, (%rax)
movq -0x80(%rbp), %rdx
incq %rdx
movq $-0x1, %rcx
callq 0x53f0
jmp 0x730d
movl $0x1, -0x88(%rbp)
jmp 0x8264
cmpl $0xd, -0x38(%rbp)
jne 0x733a
movsbl -0x81(%rbp), %eax
cmpl $0x61, %eax
jne 0x733a
movl $0xe, -0x38(%rbp)
jmp 0x74bf
cmpl $0xe, -0x38(%rbp)
jne 0x7358
movsbl -0x81(%rbp), %eax
cmpl $0x6c, %eax
jne 0x7358
movl $0xf, -0x38(%rbp)
jmp 0x74bd
cmpl $0xf, -0x38(%rbp)
jne 0x7376
movsbl -0x81(%rbp), %eax
cmpl $0x73, %eax
jne 0x7376
movl $0x10, -0x38(%rbp)
jmp 0x74bb
cmpl $0x10, -0x38(%rbp)
jne 0x73c4
movsbl -0x81(%rbp), %eax
cmpl $0x65, %eax
jne 0x73c4
movq -0x228(%rbp), %rsi
movq -0x220(%rbp), %rdi
movq -0x18(%rbp), %rax
movl $0x5, (%rax)
movq -0x80(%rbp), %rdx
incq %rdx
movq $-0x1, %rcx
callq 0x53f0
jmp 0x73b5
movl $0x1, -0x88(%rbp)
jmp 0x8264
cmpl $0x11, -0x38(%rbp)
jne 0x73e2
movsbl -0x81(%rbp), %eax
cmpl $0x75, %eax
jne 0x73e2
movl $0x12, -0x38(%rbp)
jmp 0x74b7
cmpl $0x12, -0x38(%rbp)
jne 0x7400
movsbl -0x81(%rbp), %eax
cmpl $0x6c, %eax
jne 0x7400
movl $0x13, -0x38(%rbp)
jmp 0x74b5
cmpl $0x13, -0x38(%rbp)
jne 0x744e
movsbl -0x81(%rbp), %eax
cmpl $0x6c, %eax
jne 0x744e
movq -0x228(%rbp), %rsi
movq -0x220(%rbp), %rdi
movq -0x18(%rbp), %rax
movl $0x6, (%rax)
movq -0x80(%rbp), %rdx
incq %rdx
movq $-0x1, %rcx
callq 0x53f0
jmp 0x743f
movl $0x1, -0x88(%rbp)
jmp 0x8264
leaq -0x89(%rbp), %rdi
movq %rdi, -0x240(%rbp)
callq 0x5670
movq -0x220(%rbp), %rdi
movq -0x240(%rbp), %rdx
leaq 0x3622c(%rip), %rsi     # 0x3d6a2
callq 0xad30
jmp 0x747d
leaq -0x89(%rbp), %rdi
callq 0x5420
movl $0x1, -0x88(%rbp)
jmp 0x8264
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x89(%rbp), %rdi
callq 0x5420
jmp 0x8286
jmp 0x74b7
jmp 0x74b9
jmp 0x74bb
jmp 0x74bd
jmp 0x74bf
jmp 0x74c1
jmp 0x74c3
jmp 0x74c5
jmp 0x81b4
movl -0x38(%rbp), %eax
movq %rax, -0x248(%rbp)
subq $0x9, %rax
ja 0x81b0
movq -0x248(%rbp), %rax
leaq 0x35b18(%rip), %rcx     # 0x3d004
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movsbl -0x81(%rbp), %eax
movl %eax, %ecx
movq %rcx, -0x250(%rbp)
subl $0x7d, %eax
ja 0x76bc
movq -0x250(%rbp), %rax
leaq 0x35b5c(%rip), %rcx     # 0x3d078
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x1, -0x38(%rbp)
movq -0x18(%rbp), %rdi
callq 0x2ed90
jmp 0x7537
jmp 0x76bc
movl $0x5, -0x38(%rbp)
movq -0x18(%rbp), %rdi
callq 0x2ee00
jmp 0x754e
jmp 0x76bc
movl $0x7, -0x38(%rbp)
movq -0x18(%rbp), %rdi
callq 0x2ee70
jmp 0x7565
jmp 0x76bc
movl $0x9, -0x38(%rbp)
movq -0x18(%rbp), %rdi
callq 0x2eed0
jmp 0x757c
leaq -0x58(%rbp), %rdi
movq %rdi, -0x258(%rbp)
callq 0x5520
movq -0x258(%rbp), %rdi
movsbl -0x81(%rbp), %esi
callq 0x5350
jmp 0x75a1
jmp 0x76bc
movl $0xa, -0x38(%rbp)
jmp 0x76bc
movl $0xd, -0x38(%rbp)
jmp 0x76bc
movl $0x11, -0x38(%rbp)
jmp 0x76bc
movq -0x228(%rbp), %rsi
movq -0x220(%rbp), %rdi
movq -0x18(%rbp), %rax
movl $0x7, (%rax)
movq -0x80(%rbp), %rdx
incq %rdx
movq $-0x1, %rcx
callq 0x53f0
jmp 0x75f7
movl $0x1, -0x88(%rbp)
jmp 0x8264
movq -0x228(%rbp), %rsi
movq -0x220(%rbp), %rdi
movq -0x18(%rbp), %rax
movl $0x8, (%rax)
movq -0x80(%rbp), %rdx
incq %rdx
movq $-0x1, %rcx
callq 0x53f0
jmp 0x7633
movl $0x1, -0x88(%rbp)
jmp 0x8264
movq -0x228(%rbp), %rsi
movq -0x220(%rbp), %rdi
movq -0x18(%rbp), %rax
movl $0xa, (%rax)
movq -0x80(%rbp), %rdx
incq %rdx
movq $-0x1, %rcx
callq 0x53f0
jmp 0x766f
movl $0x1, -0x88(%rbp)
jmp 0x8264
movq -0x228(%rbp), %rsi
movq -0x220(%rbp), %rdi
movq -0x18(%rbp), %rax
movl $0xb, (%rax)
movq -0x80(%rbp), %rdx
incq %rdx
movq $-0x1, %rcx
callq 0x53f0
jmp 0x76ab
movl $0x1, -0x88(%rbp)
jmp 0x8264
jmp 0x76bc
jmp 0x81b2
leaq -0xa0(%rbp), %rdi
callq 0xb140
jmp 0x76cf
movq -0x228(%rbp), %rsi
movb $0x0, -0xa1(%rbp)
movq -0x80(%rbp), %rdx
leaq -0xc8(%rbp), %rdi
movq $-0x1, %rcx
callq 0x53f0
jmp 0x76f6
movq -0x220(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
leaq -0xa0(%rbp), %rdx
callq 0x7190
jmp 0x7712
leaq -0xc8(%rbp), %rdi
callq 0x5270
movl -0xa0(%rbp), %eax
movl %eax, -0x25c(%rbp)
subl $0x2, %eax
je 0x7785
jmp 0x7731
movl -0x25c(%rbp), %eax
subl $0xb, %eax
je 0x776f
jmp 0x77e9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x7854
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0x5270
jmp 0x7854
movb $0x1, -0xa1(%rbp)
movl $0x1, -0x88(%rbp)
jmp 0x780a
leaq -0xe8(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x2ef30
jmp 0x779a
leaq -0x78(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x5070
jmp 0x77ac
leaq -0xe8(%rbp), %rdi
callq 0x5270
movl $0x2, -0x38(%rbp)
jmp 0x77eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x7848
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0xe8(%rbp), %rdi
callq 0x5270
jmp 0x7848
jmp 0x77eb
movq -0x220(%rbp), %rsi
movq -0x228(%rbp), %rdi
callq 0x5070
jmp 0x7800
movl $0x0, -0x88(%rbp)
testb $0x1, -0xa1(%rbp)
jne 0x781f
movq -0x220(%rbp), %rdi
callq 0x5270
leaq -0xa0(%rbp), %rdi
callq 0xb190
movl -0x88(%rbp), %eax
testl %eax, %eax
jne 0x8264
jmp 0x783b
movq $-0x1, -0x80(%rbp)
jmp 0x81b2
movq -0x220(%rbp), %rdi
callq 0x5270
leaq -0xa0(%rbp), %rdi
callq 0xb190
jmp 0x8286
leaq -0xf8(%rbp), %rdi
callq 0xb140
jmp 0x7873
movq -0x228(%rbp), %rsi
movb $0x0, -0xf9(%rbp)
movq -0x80(%rbp), %rdx
leaq -0x120(%rbp), %rdi
movq $-0x1, %rcx
callq 0x53f0
jmp 0x789a
movq -0x220(%rbp), %rdi
leaq -0x120(%rbp), %rsi
leaq -0xf8(%rbp), %rdx
callq 0x7190
jmp 0x78b6
leaq -0x120(%rbp), %rdi
callq 0x5270
movl -0xf8(%rbp), %eax
movl %eax, -0x260(%rbp)
subl $0x8, %eax
je 0x7923
jmp 0x78d5
movl -0x260(%rbp), %eax
subl $0xb, %eax
je 0x7910
jmp 0x792c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x79a3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x120(%rbp), %rdi
callq 0x5270
jmp 0x79a3
movb $0x1, -0xf9(%rbp)
movl $0x1, -0x88(%rbp)
jmp 0x794d
movl $0x3, -0x38(%rbp)
jmp 0x792e
jmp 0x792e
movq -0x220(%rbp), %rsi
movq -0x228(%rbp), %rdi
callq 0x5070
jmp 0x7943
movl $0x0, -0x88(%rbp)
testb $0x1, -0xf9(%rbp)
jne 0x7962
movq -0x220(%rbp), %rdi
callq 0x5270
leaq -0xf8(%rbp), %rdi
callq 0xb190
movl -0x88(%rbp), %eax
testl %eax, %eax
jne 0x8264
jmp 0x797e
movq $-0x1, -0x80(%rbp)
jmp 0x81b2
movq -0x220(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
callq 0x5270
leaq -0xf8(%rbp), %rdi
callq 0xb190
jmp 0x8286
leaq -0x130(%rbp), %rdi
callq 0xb140
jmp 0x79c2
movq -0x228(%rbp), %rsi
movb $0x0, -0x131(%rbp)
movq -0x80(%rbp), %rdx
leaq -0x158(%rbp), %rdi
movq $-0x1, %rcx
callq 0x53f0
jmp 0x79e9
movq -0x220(%rbp), %rdi
leaq -0x158(%rbp), %rsi
leaq -0x130(%rbp), %rdx
callq 0x7190
jmp 0x7a05
leaq -0x158(%rbp), %rdi
callq 0x5270
movl -0x130(%rbp), %eax
subl $0xb, %eax
je 0x7a4c
jmp 0x7a62
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x7b22
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x158(%rbp), %rdi
callq 0x5270
jmp 0x7b22
movb $0x1, -0x131(%rbp)
movl $0x1, -0x88(%rbp)
jmp 0x7ae4
movq -0x18(%rbp), %rdi
callq 0x2ed90
movq %rax, -0x268(%rbp)
jmp 0x7a74
movq -0x268(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x2efd0
movq %rax, -0x270(%rbp)
jmp 0x7a8d
movq -0x270(%rbp), %rdi
leaq -0x130(%rbp), %rsi
callq 0x2ebd0
jmp 0x7aa2
movl $0x4, -0x38(%rbp)
jmp 0x7ac5
movq -0x220(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
callq 0x5270
jmp 0x7b22
movq -0x220(%rbp), %rsi
movq -0x228(%rbp), %rdi
callq 0x5070
jmp 0x7ada
movl $0x0, -0x88(%rbp)
testb $0x1, -0x131(%rbp)
jne 0x7af9
movq -0x220(%rbp), %rdi
callq 0x5270
leaq -0x130(%rbp), %rdi
callq 0xb190
movl -0x88(%rbp), %eax
testl %eax, %eax
jne 0x8264
jmp 0x7b15
movq $-0x1, -0x80(%rbp)
jmp 0x81b2
leaq -0x130(%rbp), %rdi
callq 0xb190
jmp 0x8286
leaq -0x168(%rbp), %rdi
callq 0xb140
jmp 0x7b41
movq -0x228(%rbp), %rsi
movb $0x0, -0x169(%rbp)
movq -0x80(%rbp), %rdx
leaq -0x190(%rbp), %rdi
movq $-0x1, %rcx
callq 0x53f0
jmp 0x7b68
movq -0x220(%rbp), %rdi
leaq -0x190(%rbp), %rsi
leaq -0x168(%rbp), %rdx
callq 0x7190
jmp 0x7b84
leaq -0x190(%rbp), %rdi
callq 0x5270
movl -0x168(%rbp), %eax
movl %eax, -0x274(%rbp)
subl $0x7, %eax
je 0x7bde
jmp 0x7ba3
movl -0x274(%rbp), %eax
subl $0xb, %eax
je 0x7be7
jmp 0x7bfa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x7c71
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x190(%rbp), %rdi
callq 0x5270
jmp 0x7c71
movl $0x1, -0x38(%rbp)
jmp 0x7bfc
movb $0x1, -0x169(%rbp)
movl $0x1, -0x88(%rbp)
jmp 0x7c1b
jmp 0x7bfc
movq -0x220(%rbp), %rsi
movq -0x228(%rbp), %rdi
callq 0x5070
jmp 0x7c11
movl $0x0, -0x88(%rbp)
testb $0x1, -0x169(%rbp)
jne 0x7c30
movq -0x220(%rbp), %rdi
callq 0x5270
leaq -0x168(%rbp), %rdi
callq 0xb190
movl -0x88(%rbp), %eax
testl %eax, %eax
jne 0x8264
jmp 0x7c4c
movq $-0x1, -0x80(%rbp)
jmp 0x81b2
movq -0x220(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
callq 0x5270
leaq -0x168(%rbp), %rdi
callq 0xb190
jmp 0x8286
movl $0x6, -0x38(%rbp)
leaq -0x1a0(%rbp), %rdi
callq 0xb140
jmp 0x7c97
movq -0x228(%rbp), %rsi
movb $0x0, -0x1a1(%rbp)
movq -0x80(%rbp), %rdx
leaq -0x1c8(%rbp), %rdi
movq $-0x1, %rcx
callq 0x53f0
jmp 0x7cbe
movq -0x220(%rbp), %rdi
leaq -0x1c8(%rbp), %rsi
leaq -0x1a0(%rbp), %rdx
callq 0x7190
jmp 0x7cda
leaq -0x1c8(%rbp), %rdi
callq 0x5270
cmpl $0xa, -0x1a0(%rbp)
jne 0x7d30
movb $0x1, -0x1a1(%rbp)
movl $0x1, -0x88(%rbp)
jmp 0x7d76
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x7dcc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x1c8(%rbp), %rdi
callq 0x5270
jmp 0x7dcc
movq -0x220(%rbp), %rsi
movq -0x228(%rbp), %rdi
callq 0x5070
jmp 0x7d45
movq -0x18(%rbp), %rdi
callq 0x2ee00
movq %rax, -0x280(%rbp)
jmp 0x7d57
movq -0x280(%rbp), %rdi
leaq -0x1a0(%rbp), %rsi
callq 0x2f0b0
jmp 0x7d6c
movl $0x0, -0x88(%rbp)
testb $0x1, -0x1a1(%rbp)
jne 0x7d8b
movq -0x220(%rbp), %rdi
callq 0x5270
leaq -0x1a0(%rbp), %rdi
callq 0xb190
movl -0x88(%rbp), %eax
testl %eax, %eax
jne 0x8264
jmp 0x7da7
movq $-0x1, -0x80(%rbp)
jmp 0x81b2
movq -0x220(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
callq 0x5270
leaq -0x1a0(%rbp), %rdi
callq 0xb190
jmp 0x8286
leaq -0x1d8(%rbp), %rdi
callq 0xb140
jmp 0x7deb
movq -0x228(%rbp), %rsi
movb $0x0, -0x1d9(%rbp)
movq -0x80(%rbp), %rdx
leaq -0x200(%rbp), %rdi
movq $-0x1, %rcx
callq 0x53f0
jmp 0x7e12
movq -0x220(%rbp), %rdi
leaq -0x200(%rbp), %rsi
leaq -0x1d8(%rbp), %rdx
callq 0x7190
jmp 0x7e2e
leaq -0x200(%rbp), %rdi
callq 0x5270
movl -0x1d8(%rbp), %eax
movl %eax, -0x284(%rbp)
subl $0x7, %eax
je 0x7e88
jmp 0x7e4d
movl -0x284(%rbp), %eax
subl $0xa, %eax
je 0x7e91
jmp 0x7ea4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x7f1b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x200(%rbp), %rdi
callq 0x5270
jmp 0x7f1b
movl $0x5, -0x38(%rbp)
jmp 0x7ea6
movb $0x1, -0x1d9(%rbp)
movl $0x1, -0x88(%rbp)
jmp 0x7ec5
jmp 0x7ea6
movq -0x220(%rbp), %rsi
movq -0x228(%rbp), %rdi
callq 0x5070
jmp 0x7ebb
movl $0x0, -0x88(%rbp)
testb $0x1, -0x1d9(%rbp)
jne 0x7eda
movq -0x220(%rbp), %rdi
callq 0x5270
leaq -0x1d8(%rbp), %rdi
callq 0xb190
movl -0x88(%rbp), %eax
testl %eax, %eax
jne 0x8264
jmp 0x7ef6
movq $-0x1, -0x80(%rbp)
jmp 0x81b2
movq -0x220(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
callq 0x5270
leaq -0x1d8(%rbp), %rdi
callq 0xb190
jmp 0x8286
movsbl -0x81(%rbp), %eax
movl %eax, -0x288(%rbp)
subl $0x2b, %eax
je 0x7f7a
jmp 0x7f40
movl -0x288(%rbp), %eax
addl $-0x2d, %eax
subl $0x2, %eax
jb 0x7f7a
jmp 0x7f50
movl -0x288(%rbp), %eax
addl $-0x30, %eax
subl $0xa, %eax
jb 0x7f7a
jmp 0x7f60
movl -0x288(%rbp), %eax
subl $0x45, %eax
je 0x7f7a
jmp 0x7f6d
movl -0x288(%rbp), %eax
subl $0x65, %eax
jne 0x7f8e
jmp 0x7f7a
movsbl -0x81(%rbp), %esi
leaq -0x58(%rbp), %rdi
callq 0x5350
jmp 0x7f8c
jmp 0x7ff3
xorl %eax, %eax
movl %eax, %esi
leaq -0x58(%rbp), %rdi
callq 0x2f120
fstpt -0x294(%rbp)
jmp 0x7fa3
movq -0x18(%rbp), %rdi
callq 0x2eed0
movq %rax, -0x2a0(%rbp)
jmp 0x7fb5
movq -0x228(%rbp), %rsi
movq -0x220(%rbp), %rdi
movq -0x2a0(%rbp), %rax
fldt -0x294(%rbp)
fstpt (%rax)
movq -0x80(%rbp), %rdx
movq $-0x1, %rcx
callq 0x53f0
jmp 0x7fe4
movl $0x1, -0x88(%rbp)
jmp 0x8264
jmp 0x81b2
movsbl -0x81(%rbp), %eax
addl $-0x62, %eax
movl %eax, %ecx
movq %rcx, -0x2a8(%rbp)
subl $0x12, %eax
ja 0x80f4
movq -0x2a8(%rbp), %rax
leaq 0x3500a(%rip), %rcx     # 0x3d02c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x18(%rbp), %rdi
callq 0x2ee70
movq %rax, -0x2b0(%rbp)
jmp 0x803d
movq -0x2b0(%rbp), %rdi
movl $0x8, %esi
callq 0x5350
jmp 0x8050
jmp 0x811d
movq -0x18(%rbp), %rdi
callq 0x2ee70
movq %rax, -0x2b8(%rbp)
jmp 0x8067
movq -0x2b8(%rbp), %rdi
movl $0xc, %esi
callq 0x5350
jmp 0x807a
jmp 0x811d
movq -0x18(%rbp), %rdi
callq 0x2ee70
movq %rax, -0x2c0(%rbp)
jmp 0x8091
movq -0x2c0(%rbp), %rdi
movl $0xa, %esi
callq 0x5350
jmp 0x80a4
jmp 0x811d
movq -0x18(%rbp), %rdi
callq 0x2ee70
movq %rax, -0x2c8(%rbp)
jmp 0x80b8
movq -0x2c8(%rbp), %rdi
movl $0xd, %esi
callq 0x5350
jmp 0x80cb
jmp 0x811d
movq -0x18(%rbp), %rdi
callq 0x2ee70
movq %rax, -0x2d0(%rbp)
jmp 0x80df
movq -0x2d0(%rbp), %rdi
movl $0x9, %esi
callq 0x5350
jmp 0x80f2
jmp 0x811d
movq -0x18(%rbp), %rdi
callq 0x2ee70
movq %rax, -0x2d8(%rbp)
jmp 0x8106
movq -0x2d8(%rbp), %rdi
movsbl -0x81(%rbp), %esi
callq 0x5350
jmp 0x811b
jmp 0x811d
movl $0x7, -0x38(%rbp)
jmp 0x81b2
movsbl -0x81(%rbp), %eax
movl %eax, -0x2dc(%rbp)
subl $0x22, %eax
je 0x814a
jmp 0x813d
movl -0x2dc(%rbp), %eax
subl $0x5c, %eax
je 0x817c
jmp 0x8185
movq -0x228(%rbp), %rsi
movq -0x220(%rbp), %rdi
movq -0x80(%rbp), %rdx
incq %rdx
movq $-0x1, %rcx
callq 0x53f0
jmp 0x816d
movl $0x1, -0x88(%rbp)
jmp 0x8264
movl $0x8, -0x38(%rbp)
jmp 0x81ae
movq -0x18(%rbp), %rdi
callq 0x2ee70
movq %rax, -0x2e8(%rbp)
jmp 0x8197
movq -0x2e8(%rbp), %rdi
movsbl -0x81(%rbp), %esi
callq 0x5350
jmp 0x81ac
jmp 0x81ae
jmp 0x81b0
jmp 0x81b2
jmp 0x81b4
jmp 0x81b6
movq -0x80(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x80(%rbp)
jmp 0x720b
cmpl $0x9, -0x38(%rbp)
jne 0x8203
xorl %eax, %eax
movl %eax, %esi
leaq -0x58(%rbp), %rdi
callq 0x2f120
fstpt -0x2f4(%rbp)
jmp 0x81e2
movq -0x18(%rbp), %rdi
callq 0x2eed0
movq %rax, -0x300(%rbp)
jmp 0x81f4
movq -0x300(%rbp), %rax
fldt -0x2f4(%rbp)
fstpt (%rax)
leaq -0x201(%rbp), %rdi
movq %rdi, -0x308(%rbp)
callq 0x5670
movq -0x220(%rbp), %rdi
movq -0x308(%rbp), %rdx
leaq 0x35477(%rip), %rsi     # 0x3d6a2
callq 0xad30
jmp 0x8232
leaq -0x201(%rbp), %rdi
callq 0x5420
movl $0x1, -0x88(%rbp)
jmp 0x8264
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x201(%rbp), %rdi
callq 0x5420
jmp 0x8286
leaq -0x78(%rbp), %rdi
callq 0x5270
leaq -0x58(%rbp), %rdi
callq 0x5270
movq -0x218(%rbp), %rax
addq $0x310, %rsp            # imm = 0x310
popq %rbp
retq
leaq -0x78(%rbp), %rdi
callq 0x5270
leaq -0x58(%rbp), %rdi
callq 0x5270
movq -0x30(%rbp), %rdi
callq 0x5660
nopw %cs:(%rax,%rax)