// File: ef-gy[P]libefgy/src/test-case/json.cpp
// Function: testJSONInput(std::ostream&)
bool testJSONInput(std::ostream &log) {
  struct sampleData {
    std::string input, remainder, output;
  };

  std::vector<sampleData> tests{
      {"true", "", "true"},
      {"  42.23", "", "42.23"},
      {"42.00", "", "42"},
      {"[false, true, null]", "", "[false,true,null]"},
      {"", "", "null"},
      {"{ \"a\" : true , \"b\" : false }", "", "{\"a\":true,\"b\":false}"},
      {"{\"a\":true,\"b\":false,\"q\":[false, true, false],\"c\":null}", "",
       "{\"a\":true,\"b\":false,\"c\":null,\"q\":[false,true,false]}"},
      {"{\"a\":true,\"b\":false,\"q\":[1,2 ,3 , 4],\"c\":null}", "",
       "{\"a\":true,\"b\":false,\"c\":null,\"q\":[1,2,3,4]}"},
  };

  for (const auto &tt : tests) {
    json::json va;
    const auto r = json::parse(tt.input, va);
    if (r != tt.remainder) {
      log << "JSON parsing (" << tt.input << ") had bad remainder: " << r
          << "; expected: " << tt.remainder << "\n";
      return false;
    }
    const auto rv = json::parse(tt.input);
    const std::string so = json::to_string(va);
    if (so != tt.output) {
      log << "JSON parsing (" << tt.input << ") had bad string output: " << so
          << "; expected: " << tt.output << "\n";
      return false;
    }
  }

  return true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x690, %rsp            # imm = 0x690
movq %rdi, -0x10(%rbp)
movb $0x1, -0x37c(%rbp)
leaq -0x338(%rbp), %rax
movq %rax, -0x438(%rbp)
movq %rax, -0x340(%rbp)
leaq -0x341(%rbp), %rdi
movq %rdi, -0x430(%rbp)
callq 0x5670
movq -0x438(%rbp), %rdi
movq -0x430(%rbp), %rdx
leaq 0x3775f(%rip), %rsi     # 0x3d4b2
callq 0xad30
jmp 0x5d5a
movb $0x1, -0x358(%rbp)
leaq -0x318(%rbp), %rax
movq %rax, -0x448(%rbp)
leaq -0x355(%rbp), %rdi
movq %rdi, -0x440(%rbp)
callq 0x5670
movq -0x448(%rbp), %rdi
movq -0x440(%rbp), %rdx
leaq 0x3790b(%rip), %rsi     # 0x3d6a2
callq 0xad30
jmp 0x5d9e
movb $0x1, -0x357(%rbp)
leaq -0x2f8(%rbp), %rax
movq %rax, -0x458(%rbp)
leaq -0x356(%rbp), %rdi
movq %rdi, -0x450(%rbp)
callq 0x5670
movq -0x458(%rbp), %rdi
movq -0x450(%rbp), %rdx
leaq 0x376d7(%rip), %rsi     # 0x3d4b2
callq 0xad30
jmp 0x5de2
movb $0x0, -0x357(%rbp)
movb $0x0, -0x358(%rbp)
leaq -0x2d8(%rbp), %rax
movq %rax, -0x468(%rbp)
movq %rax, %rcx
movq %rcx, -0x470(%rbp)
movq %rax, -0x340(%rbp)
leaq -0x359(%rbp), %rdi
movq %rdi, -0x460(%rbp)
callq 0x5670
movq -0x468(%rbp), %rdi
movq -0x460(%rbp), %rdx
leaq 0x37680(%rip), %rsi     # 0x3d4b7
callq 0xad30
jmp 0x5e3e
movq -0x470(%rbp), %rax
movb $0x1, -0x35d(%rbp)
addq $0x20, %rax
movq %rax, -0x480(%rbp)
leaq -0x35a(%rbp), %rdi
movq %rdi, -0x478(%rbp)
callq 0x5670
movq -0x480(%rbp), %rdi
movq -0x478(%rbp), %rdx
leaq 0x37823(%rip), %rsi     # 0x3d6a2
callq 0xad30
jmp 0x5e86
movq -0x470(%rbp), %rax
movb $0x1, -0x35c(%rbp)
addq $0x40, %rax
movq %rax, -0x490(%rbp)
leaq -0x35b(%rbp), %rdi
movq %rdi, -0x488(%rbp)
callq 0x5670
movq -0x490(%rbp), %rdi
movq -0x488(%rbp), %rdx
leaq 0x375f2(%rip), %rsi     # 0x3d4b9
callq 0xad30
jmp 0x5ece
movb $0x0, -0x35c(%rbp)
movb $0x0, -0x35d(%rbp)
leaq -0x278(%rbp), %rax
movq %rax, -0x4a0(%rbp)
movq %rax, %rcx
movq %rcx, -0x4a8(%rbp)
movq %rax, -0x340(%rbp)
leaq -0x35e(%rbp), %rdi
movq %rdi, -0x498(%rbp)
callq 0x5670
movq -0x4a0(%rbp), %rdi
movq -0x498(%rbp), %rdx
leaq 0x3759c(%rip), %rsi     # 0x3d4bf
callq 0xad30
jmp 0x5f2a
movq -0x4a8(%rbp), %rax
movb $0x1, -0x362(%rbp)
addq $0x20, %rax
movq %rax, -0x4b8(%rbp)
leaq -0x35f(%rbp), %rdi
movq %rdi, -0x4b0(%rbp)
callq 0x5670
movq -0x4b8(%rbp), %rdi
movq -0x4b0(%rbp), %rdx
leaq 0x37737(%rip), %rsi     # 0x3d6a2
callq 0xad30
jmp 0x5f72
movq -0x4a8(%rbp), %rax
movb $0x1, -0x361(%rbp)
addq $0x40, %rax
movq %rax, -0x4c8(%rbp)
leaq -0x360(%rbp), %rdi
movq %rdi, -0x4c0(%rbp)
callq 0x5670
movq -0x4c8(%rbp), %rdi
movq -0x4c0(%rbp), %rdx
leaq 0x37512(%rip), %rsi     # 0x3d4c5
callq 0xad30
jmp 0x5fba
movb $0x0, -0x361(%rbp)
movb $0x0, -0x362(%rbp)
leaq -0x218(%rbp), %rax
movq %rax, -0x4d8(%rbp)
movq %rax, %rcx
movq %rcx, -0x4e0(%rbp)
movq %rax, -0x340(%rbp)
leaq -0x363(%rbp), %rdi
movq %rdi, -0x4d0(%rbp)
callq 0x5670
movq -0x4d8(%rbp), %rdi
movq -0x4d0(%rbp), %rdx
leaq 0x374b9(%rip), %rsi     # 0x3d4c8
callq 0xad30
jmp 0x6016
movq -0x4e0(%rbp), %rax
movb $0x1, -0x367(%rbp)
addq $0x20, %rax
movq %rax, -0x4f0(%rbp)
leaq -0x364(%rbp), %rdi
movq %rdi, -0x4e8(%rbp)
callq 0x5670
movq -0x4f0(%rbp), %rdi
movq -0x4e8(%rbp), %rdx
leaq 0x3764b(%rip), %rsi     # 0x3d6a2
callq 0xad30
jmp 0x605e
movq -0x4e0(%rbp), %rax
movb $0x1, -0x366(%rbp)
addq $0x40, %rax
movq %rax, -0x500(%rbp)
leaq -0x365(%rbp), %rdi
movq %rdi, -0x4f8(%rbp)
callq 0x5670
movq -0x500(%rbp), %rdi
movq -0x4f8(%rbp), %rdx
leaq 0x3743d(%rip), %rsi     # 0x3d4dc
callq 0xad30
jmp 0x60a6
movb $0x0, -0x366(%rbp)
movb $0x0, -0x367(%rbp)
leaq -0x1b8(%rbp), %rax
movq %rax, -0x510(%rbp)
movq %rax, %rcx
movq %rcx, -0x518(%rbp)
movq %rax, -0x340(%rbp)
leaq -0x368(%rbp), %rdi
movq %rdi, -0x508(%rbp)
callq 0x5670
movq -0x510(%rbp), %rdi
movq -0x508(%rbp), %rdx
leaq 0x375a7(%rip), %rsi     # 0x3d6a2
callq 0xad30
jmp 0x6102
movq -0x518(%rbp), %rax
movb $0x1, -0x36c(%rbp)
addq $0x20, %rax
movq %rax, -0x528(%rbp)
leaq -0x369(%rbp), %rdi
movq %rdi, -0x520(%rbp)
callq 0x5670
movq -0x528(%rbp), %rdi
movq -0x520(%rbp), %rdx
leaq 0x3755f(%rip), %rsi     # 0x3d6a2
callq 0xad30
jmp 0x614a
movq -0x518(%rbp), %rax
movb $0x1, -0x36b(%rbp)
addq $0x40, %rax
movq %rax, -0x538(%rbp)
leaq -0x36a(%rbp), %rdi
movq %rdi, -0x530(%rbp)
callq 0x5670
movq -0x538(%rbp), %rdi
movq -0x530(%rbp), %rdx
leaq 0x37363(%rip), %rsi     # 0x3d4ee
callq 0xad30
jmp 0x6192
movb $0x0, -0x36b(%rbp)
movb $0x0, -0x36c(%rbp)
leaq -0x158(%rbp), %rax
movq %rax, -0x548(%rbp)
movq %rax, %rcx
movq %rcx, -0x550(%rbp)
movq %rax, -0x340(%rbp)
leaq -0x36d(%rbp), %rdi
movq %rdi, -0x540(%rbp)
callq 0x5670
movq -0x548(%rbp), %rdi
movq -0x540(%rbp), %rdx
leaq 0x3730c(%rip), %rsi     # 0x3d4f3
callq 0xad30
jmp 0x61ee
movq -0x550(%rbp), %rax
movb $0x1, -0x371(%rbp)
addq $0x20, %rax
movq %rax, -0x560(%rbp)
leaq -0x36e(%rbp), %rdi
movq %rdi, -0x558(%rbp)
callq 0x5670
movq -0x560(%rbp), %rdi
movq -0x558(%rbp), %rdx
leaq 0x37473(%rip), %rsi     # 0x3d6a2
callq 0xad30
jmp 0x6236
movq -0x550(%rbp), %rax
movb $0x1, -0x370(%rbp)
addq $0x40, %rax
movq %rax, -0x570(%rbp)
leaq -0x36f(%rbp), %rdi
movq %rdi, -0x568(%rbp)
callq 0x5670
movq -0x570(%rbp), %rdi
movq -0x568(%rbp), %rdx
leaq 0x37299(%rip), %rsi     # 0x3d510
callq 0xad30
jmp 0x627e
movb $0x0, -0x370(%rbp)
movb $0x0, -0x371(%rbp)
leaq -0xf8(%rbp), %rax
movq %rax, -0x580(%rbp)
movq %rax, %rcx
movq %rcx, -0x588(%rbp)
movq %rax, -0x340(%rbp)
leaq -0x372(%rbp), %rdi
movq %rdi, -0x578(%rbp)
callq 0x5670
movq -0x580(%rbp), %rdi
movq -0x578(%rbp), %rdx
leaq 0x37252(%rip), %rsi     # 0x3d525
callq 0xad30
jmp 0x62da
movq -0x588(%rbp), %rax
movb $0x1, -0x376(%rbp)
addq $0x20, %rax
movq %rax, -0x598(%rbp)
leaq -0x373(%rbp), %rdi
movq %rdi, -0x590(%rbp)
callq 0x5670
movq -0x598(%rbp), %rdi
movq -0x590(%rbp), %rdx
leaq 0x37387(%rip), %rsi     # 0x3d6a2
callq 0xad30
jmp 0x6322
movq -0x588(%rbp), %rax
movb $0x1, -0x375(%rbp)
addq $0x40, %rax
movq %rax, -0x5a8(%rbp)
leaq -0x374(%rbp), %rdi
movq %rdi, -0x5a0(%rbp)
callq 0x5670
movq -0x5a8(%rbp), %rdi
movq -0x5a0(%rbp), %rdx
leaq 0x371f9(%rip), %rsi     # 0x3d55c
callq 0xad30
jmp 0x636a
movb $0x0, -0x375(%rbp)
movb $0x0, -0x376(%rbp)
leaq -0x98(%rbp), %rax
movq %rax, -0x5b8(%rbp)
movq %rax, %rcx
movq %rcx, -0x5c0(%rbp)
movq %rax, -0x340(%rbp)
leaq -0x377(%rbp), %rdi
movq %rdi, -0x5b0(%rbp)
callq 0x5670
movq -0x5b8(%rbp), %rdi
movq -0x5b0(%rbp), %rdx
leaq 0x371d2(%rip), %rsi     # 0x3d591
callq 0xad30
jmp 0x63c6
movq -0x5c0(%rbp), %rax
movb $0x1, -0x37b(%rbp)
addq $0x20, %rax
movq %rax, -0x5d0(%rbp)
leaq -0x378(%rbp), %rdi
movq %rdi, -0x5c8(%rbp)
callq 0x5670
movq -0x5d0(%rbp), %rdi
movq -0x5c8(%rbp), %rdx
leaq 0x3729b(%rip), %rsi     # 0x3d6a2
callq 0xad30
jmp 0x640e
movq -0x5c0(%rbp), %rax
movb $0x1, -0x37a(%rbp)
addq $0x40, %rax
movq %rax, -0x5e0(%rbp)
leaq -0x379(%rbp), %rdi
movq %rdi, -0x5d8(%rbp)
callq 0x5670
movq -0x5e0(%rbp), %rdi
movq -0x5d8(%rbp), %rdx
leaq 0x37171(%rip), %rsi     # 0x3d5c0
callq 0xad30
jmp 0x6456
movb $0x0, -0x37a(%rbp)
movb $0x0, -0x37b(%rbp)
movb $0x0, -0x37c(%rbp)
leaq -0x338(%rbp), %rax
movq %rax, -0x38(%rbp)
movq $0x8, -0x30(%rbp)
leaq -0x37d(%rbp), %rdi
movq %rdi, -0x5e8(%rbp)
callq 0x6fd0
movq -0x5e8(%rbp), %rcx
movq -0x38(%rbp), %rsi
movq -0x30(%rbp), %rdx
leaq -0x28(%rbp), %rdi
callq 0x6ff0
jmp 0x64ab
leaq -0x37d(%rbp), %rdi
callq 0x7070
leaq -0x338(%rbp), %rax
movq %rax, -0x5f8(%rbp)
addq $0x300, %rax            # imm = 0x300
movq %rax, -0x5f0(%rbp)
movq -0x5f0(%rbp), %rdi
addq $-0x60, %rdi
movq %rdi, -0x600(%rbp)
callq 0x7090
movq -0x5f8(%rbp), %rcx
movq -0x600(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x5f0(%rbp)
jne 0x64d2
leaq -0x379(%rbp), %rdi
callq 0x5420
leaq -0x378(%rbp), %rdi
callq 0x5420
leaq -0x377(%rbp), %rdi
callq 0x5420
leaq -0x374(%rbp), %rdi
callq 0x5420
leaq -0x373(%rbp), %rdi
callq 0x5420
leaq -0x372(%rbp), %rdi
callq 0x5420
leaq -0x36f(%rbp), %rdi
callq 0x5420
leaq -0x36e(%rbp), %rdi
callq 0x5420
leaq -0x36d(%rbp), %rdi
callq 0x5420
leaq -0x36a(%rbp), %rdi
callq 0x5420
leaq -0x369(%rbp), %rdi
callq 0x5420
leaq -0x368(%rbp), %rdi
callq 0x5420
leaq -0x365(%rbp), %rdi
callq 0x5420
leaq -0x364(%rbp), %rdi
callq 0x5420
leaq -0x363(%rbp), %rdi
callq 0x5420
leaq -0x360(%rbp), %rdi
callq 0x5420
leaq -0x35f(%rbp), %rdi
callq 0x5420
leaq -0x35e(%rbp), %rdi
callq 0x5420
leaq -0x35b(%rbp), %rdi
callq 0x5420
leaq -0x35a(%rbp), %rdi
callq 0x5420
leaq -0x359(%rbp), %rdi
callq 0x5420
leaq -0x356(%rbp), %rdi
callq 0x5420
leaq -0x355(%rbp), %rdi
callq 0x5420
leaq -0x341(%rbp), %rdi
callq 0x5420
leaq -0x28(%rbp), %rax
movq %rax, -0x388(%rbp)
movq -0x388(%rbp), %rdi
callq 0x70d0
movq %rax, -0x390(%rbp)
movq -0x388(%rbp), %rdi
callq 0x7100
movq %rax, -0x398(%rbp)
leaq -0x390(%rbp), %rdi
leaq -0x398(%rbp), %rsi
callq 0x7130
testb $0x1, %al
jne 0x6670
jmp 0x6f90
leaq -0x390(%rbp), %rdi
callq 0x7170
movq %rax, -0x3a0(%rbp)
leaq -0x3b0(%rbp), %rdi
callq 0xb140
jmp 0x6691
movq -0x3a0(%rbp), %rsi
leaq -0x3f0(%rbp), %rdi
callq 0x5180
jmp 0x66a6
leaq -0x3d0(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
leaq -0x3b0(%rbp), %rdx
callq 0x7190
jmp 0x66c2
leaq -0x3f0(%rbp), %rdi
callq 0x5270
movq -0x3a0(%rbp), %rsi
addq $0x20, %rsi
leaq -0x3d0(%rbp), %rdi
callq 0xb160
testb $0x1, %al
jne 0x66ee
jmp 0x6dc5
movq -0x10(%rbp), %rdi
leaq 0x36ef3(%rip), %rsi     # 0x3d5ec
callq 0x53b0
movq %rax, -0x608(%rbp)
jmp 0x6707
movq -0x608(%rbp), %rdi
movq -0x3a0(%rbp), %rsi
callq 0x5380
movq %rax, -0x610(%rbp)
jmp 0x6723
movq -0x610(%rbp), %rdi
leaq 0x36eca(%rip), %rsi     # 0x3d5fb
callq 0x53b0
movq %rax, -0x618(%rbp)
jmp 0x673f
movq -0x618(%rbp), %rdi
leaq -0x3d0(%rbp), %rsi
callq 0x5380
movq %rax, -0x620(%rbp)
jmp 0x675b
movq -0x620(%rbp), %rdi
leaq 0x36ea8(%rip), %rsi     # 0x3d611
callq 0x53b0
movq %rax, -0x628(%rbp)
jmp 0x6777
movq -0x628(%rbp), %rdi
movq -0x3a0(%rbp), %rsi
addq $0x20, %rsi
callq 0x5380
movq %rax, -0x630(%rbp)
jmp 0x6797
movq -0x630(%rbp), %rdi
leaq 0x36efc(%rip), %rsi     # 0x3d6a1
callq 0x53b0
jmp 0x67ac
movb $0x0, -0x1(%rbp)
movl $0x1, -0x3f4(%rbp)
jmp 0x6f33
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x6cf4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x6ccf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x6caa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x6c9e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x6c79
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x6c54
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x6c48
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x6c23
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x6bfe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x6bf2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x6bcd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x6ba8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x6b9c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x6b77
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x6b52
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x6b46
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x6b21
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x6afc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x6af0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x6acb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x6aa6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x6a9a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x6a75
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x6a50
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
leaq -0x37d(%rbp), %rdi
callq 0x7070
leaq -0x338(%rbp), %rax
movq %rax, -0x640(%rbp)
addq $0x300, %rax            # imm = 0x300
movq %rax, -0x638(%rbp)
movq -0x638(%rbp), %rdi
addq $-0x60, %rdi
movq %rdi, -0x648(%rbp)
callq 0x7090
movq -0x640(%rbp), %rcx
movq -0x648(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x638(%rbp)
jne 0x6a1d
jmp 0x6a50
leaq -0x379(%rbp), %rdi
callq 0x5420
testb $0x1, -0x37a(%rbp)
jne 0x6a67
jmp 0x6a73
movq -0x5d0(%rbp), %rdi
callq 0x5270
jmp 0x6a75
leaq -0x378(%rbp), %rdi
callq 0x5420
testb $0x1, -0x37b(%rbp)
jne 0x6a8c
jmp 0x6a98
movq -0x5b8(%rbp), %rdi
callq 0x5270
jmp 0x6a9a
leaq -0x377(%rbp), %rdi
callq 0x5420
leaq -0x374(%rbp), %rdi
callq 0x5420
testb $0x1, -0x375(%rbp)
jne 0x6abd
jmp 0x6ac9
movq -0x598(%rbp), %rdi
callq 0x5270
jmp 0x6acb
leaq -0x373(%rbp), %rdi
callq 0x5420
testb $0x1, -0x376(%rbp)
jne 0x6ae2
jmp 0x6aee
movq -0x580(%rbp), %rdi
callq 0x5270
jmp 0x6af0
leaq -0x372(%rbp), %rdi
callq 0x5420
leaq -0x36f(%rbp), %rdi
callq 0x5420
testb $0x1, -0x370(%rbp)
jne 0x6b13
jmp 0x6b1f
movq -0x560(%rbp), %rdi
callq 0x5270
jmp 0x6b21
leaq -0x36e(%rbp), %rdi
callq 0x5420
testb $0x1, -0x371(%rbp)
jne 0x6b38
jmp 0x6b44
movq -0x548(%rbp), %rdi
callq 0x5270
jmp 0x6b46
leaq -0x36d(%rbp), %rdi
callq 0x5420
leaq -0x36a(%rbp), %rdi
callq 0x5420
testb $0x1, -0x36b(%rbp)
jne 0x6b69
jmp 0x6b75
movq -0x528(%rbp), %rdi
callq 0x5270
jmp 0x6b77
leaq -0x369(%rbp), %rdi
callq 0x5420
testb $0x1, -0x36c(%rbp)
jne 0x6b8e
jmp 0x6b9a
movq -0x510(%rbp), %rdi
callq 0x5270
jmp 0x6b9c
leaq -0x368(%rbp), %rdi
callq 0x5420
leaq -0x365(%rbp), %rdi
callq 0x5420
testb $0x1, -0x366(%rbp)
jne 0x6bbf
jmp 0x6bcb
movq -0x4f0(%rbp), %rdi
callq 0x5270
jmp 0x6bcd
leaq -0x364(%rbp), %rdi
callq 0x5420
testb $0x1, -0x367(%rbp)
jne 0x6be4
jmp 0x6bf0
movq -0x4d8(%rbp), %rdi
callq 0x5270
jmp 0x6bf2
leaq -0x363(%rbp), %rdi
callq 0x5420
leaq -0x360(%rbp), %rdi
callq 0x5420
testb $0x1, -0x361(%rbp)
jne 0x6c15
jmp 0x6c21
movq -0x4b8(%rbp), %rdi
callq 0x5270
jmp 0x6c23
leaq -0x35f(%rbp), %rdi
callq 0x5420
testb $0x1, -0x362(%rbp)
jne 0x6c3a
jmp 0x6c46
movq -0x4a0(%rbp), %rdi
callq 0x5270
jmp 0x6c48
leaq -0x35e(%rbp), %rdi
callq 0x5420
leaq -0x35b(%rbp), %rdi
callq 0x5420
testb $0x1, -0x35c(%rbp)
jne 0x6c6b
jmp 0x6c77
movq -0x480(%rbp), %rdi
callq 0x5270
jmp 0x6c79
leaq -0x35a(%rbp), %rdi
callq 0x5420
testb $0x1, -0x35d(%rbp)
jne 0x6c90
jmp 0x6c9c
movq -0x468(%rbp), %rdi
callq 0x5270
jmp 0x6c9e
leaq -0x359(%rbp), %rdi
callq 0x5420
leaq -0x356(%rbp), %rdi
callq 0x5420
testb $0x1, -0x357(%rbp)
jne 0x6cc1
jmp 0x6ccd
movq -0x448(%rbp), %rdi
callq 0x5270
jmp 0x6ccf
leaq -0x355(%rbp), %rdi
callq 0x5420
testb $0x1, -0x358(%rbp)
jne 0x6ce6
jmp 0x6cf2
movq -0x438(%rbp), %rdi
callq 0x5270
jmp 0x6cf4
leaq -0x341(%rbp), %rdi
callq 0x5420
testb $0x1, -0x37c(%rbp)
jne 0x6d0b
jmp 0x6d58
movq -0x340(%rbp), %rax
leaq -0x338(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x650(%rbp)
je 0x6d56
movq -0x650(%rbp), %rdi
addq $-0x60, %rdi
movq %rdi, -0x658(%rbp)
callq 0x7090
movq -0x658(%rbp), %rax
leaq -0x338(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x650(%rbp)
jne 0x6d25
jmp 0x6d58
jmp 0x6fbe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x6fb5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x6f82
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
leaq -0x3f0(%rbp), %rdi
callq 0x5270
jmp 0x6f82
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x6f76
movq -0x3a0(%rbp), %rsi
leaq -0x408(%rbp), %rdi
callq 0x82b0
jmp 0x6dda
leaq -0x428(%rbp), %rdi
leaq -0x3b0(%rbp), %rsi
callq 0x8370
jmp 0x6def
movq -0x3a0(%rbp), %rsi
addq $0x40, %rsi
leaq -0x428(%rbp), %rdi
callq 0xb160
testb $0x1, %al
jne 0x6e0f
jmp 0x6f11
movq -0x10(%rbp), %rdi
leaq 0x367d2(%rip), %rsi     # 0x3d5ec
callq 0x53b0
movq %rax, -0x660(%rbp)
jmp 0x6e28
movq -0x660(%rbp), %rdi
movq -0x3a0(%rbp), %rsi
callq 0x5380
movq %rax, -0x668(%rbp)
jmp 0x6e44
movq -0x668(%rbp), %rdi
leaq 0x367cc(%rip), %rsi     # 0x3d61e
callq 0x53b0
movq %rax, -0x670(%rbp)
jmp 0x6e60
movq -0x670(%rbp), %rdi
leaq -0x428(%rbp), %rsi
callq 0x5380
movq %rax, -0x678(%rbp)
jmp 0x6e7c
movq -0x678(%rbp), %rdi
leaq 0x36787(%rip), %rsi     # 0x3d611
callq 0x53b0
movq %rax, -0x680(%rbp)
jmp 0x6e98
movq -0x680(%rbp), %rdi
movq -0x3a0(%rbp), %rsi
addq $0x40, %rsi
callq 0x5380
movq %rax, -0x688(%rbp)
jmp 0x6eb8
movq -0x688(%rbp), %rdi
leaq 0x367db(%rip), %rsi     # 0x3d6a1
callq 0x53b0
jmp 0x6ecd
movb $0x0, -0x1(%rbp)
movl $0x1, -0x3f4(%rbp)
jmp 0x6f1b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x6f6a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
leaq -0x428(%rbp), %rdi
callq 0x5270
jmp 0x6f6a
movl $0x0, -0x3f4(%rbp)
leaq -0x428(%rbp), %rdi
callq 0x5270
leaq -0x408(%rbp), %rdi
callq 0xb190
leaq -0x3d0(%rbp), %rdi
callq 0x5270
leaq -0x3b0(%rbp), %rdi
callq 0xb190
movl -0x3f4(%rbp), %eax
testl %eax, %eax
jne 0x6f9e
jmp 0x6f57
jmp 0x6f59
leaq -0x390(%rbp), %rdi
callq 0x8e20
jmp 0x6654
leaq -0x408(%rbp), %rdi
callq 0xb190
leaq -0x3d0(%rbp), %rdi
callq 0x5270
leaq -0x3b0(%rbp), %rdi
callq 0xb190
jmp 0x6fb5
movb $0x1, -0x1(%rbp)
movl $0x1, -0x3f4(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x8e40
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x690, %rsp            # imm = 0x690
popq %rbp
retq
leaq -0x28(%rbp), %rdi
callq 0x8e40
movq -0x350(%rbp), %rdi
callq 0x5660
nopw (%rax,%rax)