// File: /workspace/github_cpp_makefile_star2_O3/shammellee[P]mdl/mdl.cpp
// Function: main
int main(int argc, char* argv[])
{
  command_init();

  try
  {
    po::options_description options("Options");
    options.add_options()
      ("help,h", "display help info")
      ("type,t", po::value<string>(&media_type)->value_name("TYPE")->default_value(MDL_VIDEO_PLAYLIST), MDL_MEDIATYPE_DESCRIPTION.c_str())
      ("list-formats,F", "List available download formats")
      ("format,f", po::value<string>(&audio_format)->value_name("FORMAT")->default_value(MDL_MP3), "audio format")
      ("format-id,i", po::value<string>(&format_id)->value_name("REGEX"), "download video whose format id matches specified regex (eg, \"^480[pP]$\")")
      ("closest-video-resolution,c", po::value<int>(&closest_video_resolution)->value_name("RESOLUTION"), "download video with resolution closest to value specified (eg, 480)")
      ("rate,r", po::value<string>(&rate)->value_name("RATE"), "download rate (eg, 420k, 4.2M, etc)")
      ("filter,q", po::value<string>(&filter)->value_name("FILTER"), "quality filter (eg, 22, 135, 136, best, worst, bestvideo, worstaudio, etc)")
      ("subtitles,s", "Include subtitles")
      ("manifest-file,m", po::value<string>(&manifest_file_path)->value_name("FILE")->default_value(MDL_DEFAULT_MANIFEST), "manifest file")
      ("dry-run,N", "show command line instead of downloading")
      ;

    po::positional_options_description p;
    p.add("manifest-file", -1);

    po::variables_map vm;
    po::store(po::command_line_parser(argc, argv).options(options).positional(p).run(), vm);
    po::notify(vm);

    if(vm.count("help"))
    {
      cout << options << endl;

      return 0;
    }

    if(vm.count("list-formats"))
    {
      command_add_flag("--list-formats");
    }

    media_type_to_lower = media_type;
    boost::to_lower(media_type_to_lower);
    audio_format_to_lower = audio_format;
    boost::to_lower(audio_format_to_lower);

    if(is_audio(media_type_to_lower))
    {
      if(
        audio_format_to_lower == MDL_MP3
        || audio_format_to_lower == MDL_M4A
        || audio_format == MDL_WAV
      )
      {
        command_add_flag("--extract-audio");
        command_add_flag("--audio-format " + audio_format_to_lower);
      }else
      {
        cout << "Invalid audio format: " << audio_format << endl;

        return 1;
      }
    }

    if(vm.count("format-id"))
    {
      command_add_flag("--format '[format_id~=\"" + format_id + "\"]'");
    }

    if(closest_video_resolution)
    {
      command_add_flag("--format-sort 'res~" + std::to_string(closest_video_resolution) + "'");
    }

    if(!rate.empty()) command_add_flag("--rate " + rate);

    if(!filter.empty()) command_add_flag("--format " + filter);

    if(vm.count("subtitles"))
    {
      command_add_flag("--write-auto-sub");
      command_add_flag("--sub-format srt/vtt/ttml/best");
      command_add_flag("--sub-lang en");
      command_add_flag("--embed-subs");
      command_add_flag("--convert-subs srt");
    }

    command_add_flag("--output " + (is_playlist(media_type_to_lower) ? MDL_PLAYLIST_TEMPLATE : MDL_FILE_TEMPLATE));

    if(vm.count("dry-run")) dry_run = true;

    command_call();
  }
  catch(exception& error)
  {
    cerr << "error: " << error.what() << endl;

    return 1;
  }
  catch(...)
  {
    cerr << "Unknown exception!" << endl;
  }

  return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x448, %rsp            # imm = 0x448
movq %rsi, %r12
movl %edi, %ebp
callq 0x6080
leaq 0x310(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x6cd6(%rip), %rsi      # 0xd13c
leaq 0x6cd6(%rip), %rdx      # 0xd143
leaq 0x300(%rsp), %rdi
callq 0x83f4
movq 0xcb1f(%rip), %rax      # 0x12fa0
movl (%rax), %edx
movl %edx, %ecx
shrl %ecx
leaq 0x3c8(%rsp), %rdi
leaq 0x300(%rsp), %rsi
callq 0x5380
movq 0x300(%rsp), %rdi
cmpq %rbx, %rdi
je 0x64b9
movq 0x310(%rsp), %rsi
incq %rsi
callq 0x5290
leaq 0x3c8(%rsp), %rdi
callq 0x5310
leaq 0x3c0(%rsp), %rdi
movq %rax, (%rdi)
leaq 0x6c6c(%rip), %rsi      # 0xd144
leaq 0x6c6c(%rip), %rdx      # 0xd14b
callq 0x5490
movq %rax, %r14
leaq 0xcf62(%rip), %rdi      # 0x13450
callq 0x7b19
movq %rax, %r15
leaq 0x300(%rsp), %rdi
movq %rbx, (%rdi)
leaq 0x6c5c(%rip), %rsi      # 0xd164
leaq 0x6c59(%rip), %rdx      # 0xd168
callq 0x83f4
leaq 0x18(%r15), %rdi
leaq 0x300(%rsp), %rsi
callq 0x5160
leaq 0xce1c(%rip), %rsi      # 0x13348
movq %r15, %rdi
callq 0x7b90
movq 0xcead(%rip), %rcx      # 0x133e8
leaq 0x6c1b(%rip), %rsi      # 0xd15d
movq %r14, %rdi
movq %rax, %rdx
callq 0x54c0
leaq 0x6c15(%rip), %rsi      # 0xd169
leaq 0x6c1d(%rip), %rdx      # 0xd178
movq %rax, %rdi
callq 0x5490
movq %rax, %r14
leaq 0xcf23(%rip), %rdi      # 0x13490
callq 0x7b19
movq %rax, %r15
leaq 0x40(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x6c1c(%rip), %rsi      # 0xd1a1
leaq 0x6c1b(%rip), %rdx      # 0xd1a7
leaq 0x30(%rsp), %rdi
callq 0x83f4
leaq 0x18(%r15), %rdi
leaq 0x30(%rsp), %rsi
callq 0x5160
leaq 0xcddd(%rip), %rsi      # 0x13388
movq %r15, %rdi
callq 0x7b90
leaq 0x6bde(%rip), %rsi      # 0xd198
leaq 0x6be7(%rip), %rcx      # 0xd1a8
movq %r14, %rdi
movq %rax, %rdx
callq 0x54c0
movq %rax, %r14
leaq 0xcefa(%rip), %rdi      # 0x134d0
callq 0x7b19
movq %rax, %r15
leaq 0xb8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x6bd0(%rip), %rsi      # 0xd1c1
leaq 0x6bce(%rip), %rdx      # 0xd1c6
leaq 0xa8(%rsp), %rdi
callq 0x83f4
leaq 0x18(%r15), %rdi
leaq 0xa8(%rsp), %rsi
callq 0x5160
leaq 0x6b98(%rip), %rsi      # 0xd1b5
leaq 0x6ba3(%rip), %rcx      # 0xd1c7
movq %r14, %rdi
movq %r15, %rdx
callq 0x54c0
movq %rax, %r14
leaq 0xcdf3(%rip), %rdi      # 0x1342c
callq 0x7c48
movq %rax, %r15
leaq 0x18(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x6bda(%rip), %rsi      # 0xd22b
leaq 0x6bdd(%rip), %rdx      # 0xd235
leaq 0x8(%rsp), %rdi
callq 0x83f4
leaq 0x18(%r15), %rdi
leaq 0x8(%rsp), %rsi
callq 0x5160
leaq 0x6b99(%rip), %rsi      # 0xd210
leaq 0x6bb8(%rip), %rcx      # 0xd236
movq %r14, %rdi
movq %r15, %rdx
callq 0x54c0
movq %rax, %r14
leaq 0xce7d(%rip), %rdi      # 0x13510
callq 0x7b19
movq %rax, %r15
leaq 0xf0(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x6bd3(%rip), %rsi      # 0xd281
leaq 0x6bd0(%rip), %rdx      # 0xd285
leaq 0xe0(%rsp), %rdi
callq 0x83f4
leaq 0x18(%r15), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x5160
leaq 0x6ba0(%rip), %rsi      # 0xd27a
leaq 0x6ba5(%rip), %rcx      # 0xd286
movq %r14, %rdi
movq %r15, %rdx
callq 0x54c0
movq %rax, %r14
leaq 0xce3a(%rip), %rdi      # 0x13530
callq 0x7b19
movq %rax, %r15
movl %ebp, (%rsp)
leaq 0x270(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x6b9f(%rip), %rsi      # 0xd2b3
leaq 0x6b9e(%rip), %rdx      # 0xd2b9
leaq 0x260(%rsp), %rdi
callq 0x83f4
movq %rbx, %rbp
leaq 0x18(%r15), %rdi
leaq 0x260(%rsp), %rsi
callq 0x5160
leaq 0x6b67(%rip), %rsi      # 0xd2aa
leaq 0x6b70(%rip), %rcx      # 0xd2ba
movq %r14, %rdi
movq %r15, %rdx
callq 0x54c0
leaq 0x6ba9(%rip), %rsi      # 0xd305
leaq 0x6bae(%rip), %rdx      # 0xd311
movq %rax, %rdi
callq 0x5490
movq %rax, %r14
leaq 0xcd7b(%rip), %rdi      # 0x134f0
callq 0x7b19
movq %rax, %r15
leaq 0x250(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x6ba3(%rip), %rsi      # 0xd333
leaq 0x6ba0(%rip), %rdx      # 0xd337
leaq 0x240(%rsp), %rdi
callq 0x83f4
leaq 0x18(%r15), %rdi
leaq 0x240(%rsp), %rsi
callq 0x5160
leaq 0xcc4c(%rip), %rsi      # 0x13408
movq %r15, %rdi
callq 0x7b90
leaq 0x6b58(%rip), %rsi      # 0xd323
leaq 0x6b66(%rip), %rcx      # 0xd338
movq %r14, %rdi
movq %rax, %rdx
callq 0x54c0
leaq 0x6b62(%rip), %rsi      # 0xd346
leaq 0x6b65(%rip), %rdx      # 0xd350
movq %rax, %rdi
callq 0x5490
movq 0x240(%rsp), %rdi
cmpq %rbx, %rdi
je 0x6810
movq 0x250(%rsp), %rsi
incq %rsi
callq 0x5290
movq 0x260(%rsp), %rdi
cmpq %r13, %rdi
je 0x682d
movq 0x270(%rsp), %rsi
incq %rsi
callq 0x5290
movq 0xe0(%rsp), %rdi
leaq 0xf0(%rsp), %rax
cmpq %rax, %rdi
je 0x6852
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x5290
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
leaq 0x40(%rsp), %r13
je 0x6873
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5290
movq 0xa8(%rsp), %rdi
leaq 0xb8(%rsp), %rax
cmpq %rax, %rdi
je 0x6898
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x5290
movq 0x30(%rsp), %rdi
cmpq %r13, %rdi
je 0x68af
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x5290
movq 0x300(%rsp), %rdi
cmpq %rbp, %rdi
je 0x68cc
movq 0x310(%rsp), %rsi
incq %rsi
callq 0x5290
leaq 0xa8(%rsp), %rdi
callq 0x5350
movl (%rsp), %ebp
leaq 0x6a96(%rip), %rsi      # 0xd379
leaq 0xa8(%rsp), %rdi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x52c0
leaq 0x300(%rsp), %rdi
callq 0x5100
leaq 0x30(%rsp), %rdi
movl %ebp, %esi
movq %r12, %rdx
callq 0x7cc0
leaq 0x30(%rsp), %rdi
leaq 0x3c8(%rsp), %rbx
movq %rbx, %rsi
callq 0x5230
leaq 0x30(%rsp), %rdi
movq %rbx, 0x70(%rdi)
leaq 0xa8(%rsp), %rsi
callq 0x5410
leaq 0x8(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x7d54
leaq 0x8(%rsp), %rdi
leaq 0x300(%rsp), %rsi
xorl %edx, %edx
callq 0x5440
leaq 0x8(%rsp), %rdi
callq 0x7ede
leaq 0x80(%rsp), %rdi
callq 0x7ff6
leaq 0x60(%rsp), %rdi
callq 0x802e
leaq 0x30(%rsp), %rdi
callq 0x7f58
leaq 0x300(%rsp), %rdi
callq 0x5170
leaq 0x30(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x69e1(%rip), %rsi      # 0xd387
leaq 0x69de(%rip), %rdx      # 0xd38b
callq 0x83f4
leaq 0x310(%rsp), %rbx
leaq 0x30(%rsp), %rsi
movq %rbx, %rdi
callq 0xc0c2
movq %rax, %r14
leaq 0x318(%rsp), %r15
movq 0x30(%rsp), %rdi
cmpq %r13, %rdi
je 0x69e9
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x5290
cmpq %r15, %r14
je 0x6a36
movq 0xc5cb(%rip), %rdi      # 0x12fc0
leaq 0x3c8(%rsp), %rsi
callq 0x5080
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x5260
movsbl %al, %esi
movq %r14, %rdi
callq 0x5030
xorl %r14d, %r14d
movq %rax, %rdi
callq 0x51b0
xorl %ebp, %ebp
jmp 0x73ad
leaq 0x30(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x6949(%rip), %rsi      # 0xd38e
leaq 0x694e(%rip), %rdx      # 0xd39a
callq 0x83f4
leaq 0x30(%rsp), %rsi
movq %rbx, %rdi
callq 0xc0c2
movq %rax, %r15
movq 0x30(%rsp), %rdi
cmpq %r13, %rdi
je 0x6a78
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x5290
cmpq %r14, %r15
je 0x6ace
leaq 0x230(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x68fc(%rip), %rsi      # 0xd38c
leaq 0x6903(%rip), %rdx      # 0xd39a
leaq 0x220(%rsp), %rdi
callq 0x83f4
leaq 0x220(%rsp), %rdi
callq 0x600c
movq 0x220(%rsp), %rdi
cmpq %r15, %rdi
je 0x6ace
movq 0x230(%rsp), %rsi
incq %rsi
callq 0x5290
leaq 0xc99b(%rip), %rdi      # 0x13470
leaq 0xc974(%rip), %rsi      # 0x13450
callq 0x5160
leaq 0x8(%rsp), %r15
movq %r15, %rdi
callq 0x54d0
movq 0xc97b(%rip), %rax      # 0x13470
movq 0xc97c(%rip), %rcx      # 0x13478
addq %rax, %rcx
leaq 0x30(%rsp), %rdi
movq %rax, (%rdi)
movq %rcx, 0x8(%rdi)
movq %r15, %rsi
callq 0xc14b
leaq 0x8(%rsp), %rdi
callq 0x53a0
leaq 0xc98c(%rip), %rdi      # 0x134b0
leaq 0xc965(%rip), %rsi      # 0x13490
callq 0x5160
leaq 0x8(%rsp), %r15
movq %r15, %rdi
callq 0x54d0
movq 0xc96c(%rip), %rax      # 0x134b0
movq 0xc96d(%rip), %rcx      # 0x134b8
addq %rax, %rcx
leaq 0x30(%rsp), %rdi
movq %rax, (%rdi)
movq %rcx, 0x8(%rdi)
movq %r15, %rsi
callq 0xc14b
leaq 0x8(%rsp), %rdi
callq 0x53a0
leaq 0x3b0(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0xc8f0(%rip), %rsi      # 0x13470
movq 0xc8f1(%rip), %rdx      # 0x13478
addq %rsi, %rdx
leaq 0x3a0(%rsp), %rdi
callq 0x835e
leaq 0x3a0(%rsp), %r15
movq %r15, %rdi
callq 0x6368
movl %eax, %ebp
movq (%r15), %rdi
cmpq %r12, %rdi
je 0x6bc1
movq 0x3b0(%rsp), %rsi
incq %rsi
callq 0x5290
testb %bpl, %bpl
je 0x6d64
movq 0xc8e7(%rip), %r15      # 0x134b8
cmpq 0xc7b8(%rip), %r15      # 0x13390
jne 0x6c01
testq %r15, %r15
je 0x6cca
movq 0xc79e(%rip), %rsi      # 0x13388
movq 0xc8bf(%rip), %rdi      # 0x134b0
movq %r15, %rdx
callq 0x52a0
testl %eax, %eax
je 0x6cca
cmpq 0xc7a8(%rip), %r15      # 0x133b0
jne 0x6c31
testq %r15, %r15
je 0x6cca
movq 0xc78e(%rip), %rsi      # 0x133a8
movq 0xc88f(%rip), %rdi      # 0x134b0
movq %r15, %rdx
callq 0x52a0
testl %eax, %eax
je 0x6cca
movq 0xc860(%rip), %rdx      # 0x13498
cmpq 0xc791(%rip), %rdx      # 0x133d0
jne 0x6c61
testq %rdx, %rdx
je 0x6cca
movq 0xc777(%rip), %rsi      # 0x133c8
movq 0xc838(%rip), %rdi      # 0x13490
callq 0x52a0
testl %eax, %eax
je 0x6cca
movq 0xc358(%rip), %rdi      # 0x12fc0
leaq 0x674c(%rip), %rsi      # 0xd3bb
movl $0x16, %edx
callq 0x52f0
movq 0xc810(%rip), %rsi      # 0x13490
movq 0xc811(%rip), %rdx      # 0x13498
movq 0xc332(%rip), %rdi      # 0x12fc0
callq 0x52f0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x5260
movsbl %al, %esi
movq %r14, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x51b0
movl $0x1, %ebp
xorl %r14d, %r14d
jmp 0x73ad
leaq 0x210(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x66be(%rip), %rsi      # 0xd39b
leaq 0x66c6(%rip), %rdx      # 0xd3aa
leaq 0x200(%rsp), %rdi
callq 0x83f4
leaq 0x200(%rsp), %rdi
callq 0x600c
movq 0x200(%rsp), %rdi
cmpq %r15, %rdi
je 0x6d1b
movq 0x210(%rsp), %rsi
incq %rsi
callq 0x5290
leaq 0x6689(%rip), %rsi      # 0xd3ab
leaq 0xc787(%rip), %rdx      # 0x134b0
leaq 0x2e0(%rsp), %rdi
callq 0x7a91
leaq 0x2e0(%rsp), %rdi
callq 0x600c
leaq 0x2f0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6d64
movq 0x2f0(%rsp), %rsi
incq %rsi
callq 0x5290
leaq 0x30(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x665f(%rip), %rsi      # 0xd3d2
leaq 0x6661(%rip), %rdx      # 0xd3db
callq 0x83f4
leaq 0x30(%rsp), %rsi
movq %rbx, %rdi
callq 0xc0c2
movq %rax, %r15
movq 0x30(%rsp), %rdi
cmpq %r13, %rdi
je 0x6da6
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x5290
cmpq %r14, %r15
je 0x6e67
leaq 0x6626(%rip), %rsi      # 0xd3dc
leaq 0xc713(%rip), %rdx      # 0x134d0
leaq 0x30(%rsp), %rdi
callq 0x7a91
leaq 0x6626(%rip), %rsi      # 0xd3f4
leaq 0x30(%rsp), %rdi
callq 0x54b0
leaq 0x130(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x6e08
movq %rdx, 0x120(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x130(%rsp)
jmp 0x6e0f
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
leaq 0x120(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
callq 0x600c
movq 0x120(%rsp), %rdi
cmpq %r15, %rdi
je 0x6e50
movq 0x130(%rsp), %rsi
incq %rsi
callq 0x5290
movq 0x30(%rsp), %rdi
cmpq %r13, %rdi
je 0x6e67
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x5290
movl 0xc5be(%rip), %r15d     # 0x1342c
testq %r15, %r15
je 0x7025
movl %r15d, %ebp
negl %ebp
cmovsl %r15d, %ebp
movl $0x1, %r12d
cmpl $0xa, %ebp
jb 0x6ed4
movl $0x4, %r12d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %ebp, %ecx
cmpl $0x63, %ecx
jbe 0x6ecb
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x6ed1
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x6ed4
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r12d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x6e98
addl $-0x3, %r12d
jmp 0x6ed4
addl $-0x2, %r12d
jmp 0x6ed4
decl %r12d
shrl $0x1f, %r15d
leal (%r12,%r15), %esi
leaq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
movq %rax, (%rdi)
movl $0x2d, %edx
callq 0x5300
leaq 0x8(%rsp), %r13
addq (%r13), %r15
movq %r15, %rdi
movl %r12d, %esi
movl %ebp, %edx
callq 0x8065
leaq 0x64e8(%rip), %rcx      # 0xd3f8
movl $0x13, %r8d
movq %r13, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x52e0
leaq 0x40(%rsp), %r13
movq %r13, 0x30(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x6f4a
movq %rdx, 0x30(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x40(%rsp)
jmp 0x6f52
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
leaq 0x30(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x6481(%rip), %rsi      # 0xd3f6
callq 0x54b0
leaq 0x110(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x6faa
movq %rdx, 0x100(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x110(%rsp)
jmp 0x6fb1
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
leaq 0x100(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
callq 0x600c
movq 0x100(%rsp), %rdi
cmpq %r15, %rdi
je 0x6ff2
movq 0x110(%rsp), %rsi
incq %rsi
callq 0x5290
movq 0x30(%rsp), %rdi
cmpq %r13, %rdi
je 0x7009
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x5290
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x7025
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5290
cmpq $0x0, 0xc4eb(%rip)      # 0x13518
je 0x7078
leaq 0x63d6(%rip), %rsi      # 0xd40c
leaq 0xc4d3(%rip), %rdx      # 0x13510
leaq 0x2c0(%rsp), %rdi
callq 0x7a91
leaq 0x2c0(%rsp), %rdi
callq 0x600c
leaq 0x2d0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7078
movq 0x2d0(%rsp), %rsi
incq %rsi
callq 0x5290
cmpq $0x0, 0xc4b8(%rip)      # 0x13538
je 0x70cb
leaq 0x638b(%rip), %rsi      # 0xd414
leaq 0xc4a0(%rip), %rdx      # 0x13530
leaq 0x2a0(%rsp), %rdi
callq 0x7a91
leaq 0x2a0(%rsp), %rdi
callq 0x600c
leaq 0x2b0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x70cb
movq 0x2b0(%rsp), %rsi
incq %rsi
callq 0x5290
leaq 0x30(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x623f(%rip), %rsi      # 0xd319
leaq 0x6241(%rip), %rdx      # 0xd322
callq 0x83f4
leaq 0x30(%rsp), %rsi
movq %rbx, %rdi
callq 0xc0c2
movq %rax, %r15
movq 0x30(%rsp), %rdi
cmpq %r13, %rdi
je 0x710d
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x5290
cmpq %r14, %r15
je 0x72ab
leaq 0x1f0(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x62f5(%rip), %rsi      # 0xd41e
leaq 0x62fe(%rip), %rdx      # 0xd42e
leaq 0x1e0(%rsp), %rdi
callq 0x83f4
leaq 0x1e0(%rsp), %rdi
callq 0x600c
movq 0x1e0(%rsp), %rdi
cmpq %r15, %rdi
je 0x7167
movq 0x1f0(%rsp), %rsi
incq %rsi
callq 0x5290
leaq 0x1d0(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x62b5(%rip), %rsi      # 0xd42f
leaq 0x62cc(%rip), %rdx      # 0xd44d
leaq 0x1c0(%rsp), %rdi
callq 0x83f4
leaq 0x1c0(%rsp), %rdi
callq 0x600c
movq 0x1c0(%rsp), %rdi
cmpq %r15, %rdi
je 0x71b8
movq 0x1d0(%rsp), %rsi
incq %rsi
callq 0x5290
leaq 0x1b0(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x6283(%rip), %rsi      # 0xd44e
leaq 0x6289(%rip), %rdx      # 0xd45b
leaq 0x1a0(%rsp), %rdi
callq 0x83f4
leaq 0x1a0(%rsp), %rdi
callq 0x600c
movq 0x1a0(%rsp), %rdi
cmpq %r15, %rdi
je 0x7209
movq 0x1b0(%rsp), %rsi
incq %rsi
callq 0x5290
leaq 0x190(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x6240(%rip), %rsi      # 0xd45c
leaq 0x6245(%rip), %rdx      # 0xd468
leaq 0x180(%rsp), %rdi
callq 0x83f4
leaq 0x180(%rsp), %rdi
callq 0x600c
movq 0x180(%rsp), %rdi
cmpq %r15, %rdi
je 0x725a
movq 0x190(%rsp), %rsi
incq %rsi
callq 0x5290
leaq 0x170(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x61fc(%rip), %rsi      # 0xd469
leaq 0x6207(%rip), %rdx      # 0xd47b
leaq 0x160(%rsp), %rdi
callq 0x83f4
leaq 0x160(%rsp), %rdi
callq 0x600c
movq 0x160(%rsp), %rdi
cmpq %r15, %rdi
je 0x72ab
movq 0x170(%rsp), %rsi
incq %rsi
callq 0x5290
leaq 0x150(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0xc1b2(%rip), %rsi      # 0x13470
movq 0xc1b3(%rip), %rdx      # 0x13478
addq %rsi, %rdx
leaq 0x140(%rsp), %rdi
callq 0x835e
leaq 0x140(%rsp), %rdi
callq 0x6300
leaq 0xbfff(%rip), %rcx      # 0x132e8
leaq 0xbfd8(%rip), %rdx      # 0x132c8
testb %al, %al
cmovneq %rcx, %rdx
leaq 0x617f(%rip), %rsi      # 0xd47c
leaq 0x280(%rsp), %rdi
callq 0x7a91
leaq 0x280(%rsp), %rdi
callq 0x600c
leaq 0x290(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7338
movq 0x290(%rsp), %rsi
incq %rsi
callq 0x5290
movq 0x140(%rsp), %rdi
cmpq %r15, %rdi
je 0x7355
movq 0x150(%rsp), %rsi
incq %rsi
callq 0x5290
leaq 0x30(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x6122(%rip), %rsi      # 0xd486
leaq 0x6122(%rip), %rdx      # 0xd48d
callq 0x83f4
leaq 0x30(%rsp), %rsi
movq %rbx, %rdi
callq 0xc0c2
movq %rax, %r15
movq 0x30(%rsp), %rdi
cmpq %r13, %rdi
je 0x7397
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x5290
cmpq %r14, %r15
je 0x73a3
movb $0x1, 0xc085(%rip)      # 0x13428
callq 0x61e2
xorl %ebp, %ebp
movb $0x1, %r14b
movq 0xbc1c(%rip), %rax      # 0x12fd0
addq $0x10, %rax
leaq 0x370(%rsp), %rdi
movq %rax, -0x70(%rdi)
callq 0x80d2
leaq 0x340(%rsp), %rdi
callq 0x8164
movq %rbx, %rdi
callq 0x81dc
leaq 0xd0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x73ff
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x5290
leaq 0xa8(%rsp), %rdi
callq 0x7f58
leaq 0x430(%rsp), %rbx
movq %rbx, %rdi
callq 0x82a0
movq -0x28(%rbx), %rdi
testq %rdi, %rdi
je 0x745d
movq 0x428(%rsp), %rsi
subq %rdi, %rsi
callq 0x5290
xorl %eax, %eax
movq %rax, 0x408(%rsp)
movl %eax, 0x410(%rsp)
movq %rax, 0x418(%rsp)
movl %eax, 0x420(%rsp)
movq %rax, 0x428(%rsp)
leaq 0x3f0(%rsp), %rbx
movq %rbx, %rdi
callq 0x82e8
movq -0x28(%rbx), %rdi
leaq 0x3d8(%rsp), %rax
cmpq %rax, %rdi
je 0x748e
movq 0x3d8(%rsp), %rsi
incq %rsi
callq 0x5290
testb %r14b, %r14b
je 0x7495
xorl %ebp, %ebp
movl %ebp, %eax
addq $0x448, %rsp            # imm = 0x448
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rdx, (%rsp)
movq %rax, %r14
leaq 0x2f0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7985
movq 0x2f0(%rsp), %rsi
jmp 0x77a2
movq %rdx, (%rsp)
movq %rax, %r14
movq 0x200(%rsp), %rdi
cmpq %r15, %rdi
je 0x7985
movq 0x210(%rsp), %rsi
jmp 0x77a2
jmp 0x797e
movq %rdx, (%rsp)
movq %rax, %r14
movq 0x160(%rsp), %rdi
cmpq %r15, %rdi
je 0x7985
movq 0x170(%rsp), %rsi
jmp 0x77a2
jmp 0x797e
movq %rdx, (%rsp)
movq %rax, %r14
movq 0x180(%rsp), %rdi
cmpq %r15, %rdi
je 0x7985
movq 0x190(%rsp), %rsi
jmp 0x77a2
jmp 0x797e
movq %rdx, (%rsp)
movq %rax, %r14
movq 0x1a0(%rsp), %rdi
cmpq %r15, %rdi
je 0x7985
movq 0x1b0(%rsp), %rsi
jmp 0x77a2
jmp 0x797e
movq %rdx, (%rsp)
movq %rax, %r14
movq 0x1c0(%rsp), %rdi
cmpq %r15, %rdi
je 0x7985
movq 0x1d0(%rsp), %rsi
jmp 0x77a2
jmp 0x797e
movq %rdx, (%rsp)
movq %rax, %r14
movq 0x1e0(%rsp), %rdi
cmpq %r15, %rdi
je 0x7985
movq 0x1f0(%rsp), %rsi
jmp 0x77a2
jmp 0x797e
movq %rdx, (%rsp)
movq %rax, %r14
leaq 0x2b0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7985
movq 0x2b0(%rsp), %rsi
jmp 0x77a2
movq %rdx, (%rsp)
movq %rax, %r14
leaq 0x2d0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7985
movq 0x2d0(%rsp), %rsi
jmp 0x77a2
movq %rdx, (%rsp)
movq %rax, %r14
movq 0x100(%rsp), %rdi
cmpq %r15, %rdi
je 0x764d
movq 0x110(%rsp), %rsi
incq %rsi
callq 0x5290
jmp 0x764d
movq %rdx, (%rsp)
movq %rax, %r14
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x7672
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x5290
jmp 0x7672
movq %rdx, (%rsp)
movq %rax, %r14
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x7985
movq 0x18(%rsp), %rsi
jmp 0x77a2
movq %rdx, (%rsp)
movq %rax, %r14
movq 0x120(%rsp), %rdi
cmpq %r15, %rdi
je 0x76c1
movq 0x130(%rsp), %rsi
incq %rsi
callq 0x5290
jmp 0x76c1
jmp 0x797e
movq %rdx, (%rsp)
movq %rax, %r14
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
jne 0x779d
jmp 0x7985
jmp 0x797e
movq %rdx, (%rsp)
movq %rax, %r14
movq 0x220(%rsp), %rdi
cmpq %r15, %rdi
je 0x7985
movq 0x230(%rsp), %rsi
jmp 0x77a2
jmp 0x797e
jmp 0x7788
jmp 0x797e
movq %rdx, (%rsp)
movq %rax, %r14
leaq 0x290(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7740
movq 0x290(%rsp), %rsi
incq %rsi
callq 0x5290
jmp 0x7740
movq %rdx, (%rsp)
movq %rax, %r14
movq 0x140(%rsp), %rdi
cmpq %r15, %rdi
je 0x7985
movq 0x150(%rsp), %rsi
jmp 0x77a2
jmp 0x7788
jmp 0x797e
jmp 0x7788
jmp 0x797e
jmp 0x776b
movq %rdx, (%rsp)
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x53a0
jmp 0x7985
jmp 0x7788
jmp 0x797e
movq %rdx, (%rsp)
movq %rax, %r14
movq 0x30(%rsp), %rdi
cmpq %r13, %rdi
je 0x7985
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x5290
jmp 0x7985
jmp 0x797e
movq %rdx, (%rsp)
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x7ede
jmp 0x7836
jmp 0x797e
jmp 0x77ce
movq %rdx, (%rsp)
movq %rax, %r14
jmp 0x7992
jmp 0x786f
jmp 0x78a1
jmp 0x7845
jmp 0x7851
jmp 0x7860
jmp 0x792d
jmp 0x7955
jmp 0x786f
movq %rdx, (%rsp)
movq %rax, %r14
movq 0x300(%rsp), %rdi
cmpq %rbx, %rdi
je 0x79ac
movq 0x310(%rsp), %rsi
incq %rsi
callq 0x5290
jmp 0x79ac
movq %rdx, (%rsp)
movq %rax, %r14
jmp 0x79ac
movq %rdx, (%rsp)
movq %rax, %r14
leaq 0x30(%rsp), %rdi
callq 0x7e1a
jmp 0x7985
movq %rbx, %rbp
movq %rdx, (%rsp)
movq %rax, %r14
jmp 0x78c5
movq %rbx, %rbp
movq %rdx, (%rsp)
movq %rax, %r14
jmp 0x78ea
movq %rbx, %rbp
movq %rdx, (%rsp)
movq %rax, %r14
jmp 0x7906
movq %rdx, (%rsp)
movq %rax, %r14
jmp 0x799f
movq %rdx, (%rsp)
movq %rax, %r14
movq 0x240(%rsp), %rdi
cmpq %rbx, %rdi
je 0x78a8
movq 0x250(%rsp), %rsi
incq %rsi
callq 0x5290
jmp 0x78a8
movq %rdx, (%rsp)
movq %rax, %r14
movq 0x260(%rsp), %rdi
cmpq %r13, %rdi
je 0x78c5
movq 0x270(%rsp), %rsi
incq %rsi
callq 0x5290
movq 0xe0(%rsp), %rdi
leaq 0xf0(%rsp), %rax
cmpq %rax, %rdi
je 0x78ea
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x5290
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x7906
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5290
movq 0xa8(%rsp), %rdi
leaq 0xb8(%rsp), %rax
cmpq %rax, %rdi
je 0x7937
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x5290
jmp 0x7937
movq %rbx, %rbp
movq %rdx, (%rsp)
movq %rax, %r14
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x795f
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x5290
jmp 0x795f
movq %rbx, %rbp
movq %rdx, (%rsp)
movq %rax, %r14
movq 0x300(%rsp), %rdi
cmpq %rbp, %rdi
je 0x799f
movq 0x310(%rsp), %rsi
incq %rsi
callq 0x5290
jmp 0x799f
movq %rdx, (%rsp)
movq %rax, %r14
leaq 0x300(%rsp), %rdi
callq 0x7e3a
leaq 0xa8(%rsp), %rdi
callq 0x7e6c
leaq 0x3c8(%rsp), %rdi
callq 0x7e92
movq %r14, %rdi
callq 0x50e0
cmpl $0x2, (%rsp)
jne 0x7a04
movq %rax, %r14
movq 0xb62c(%rip), %rdi      # 0x12ff0
leaq 0x5ad6(%rip), %rsi      # 0xd4a1
movl $0x7, %edx
callq 0x52f0
movq (%r14), %rax
movq %r14, %rdi
callq *0x10(%rax)
movq 0xb60b(%rip), %rdi      # 0x12ff0
movq %rax, %rsi
callq 0x5270
movq %rax, %rdi
callq 0x5130
callq 0x53f0
movl $0x1, %ebp
jmp 0x7495
movq 0xb5e5(%rip), %rdi      # 0x12ff0
leaq 0x5a7c(%rip), %rsi      # 0xd48e
movl $0x12, %edx
callq 0x52f0
movq 0xb5cd(%rip), %rdi      # 0x12ff0
callq 0x5130
callq 0x53f0
jmp 0x7493
movq %rax, %rbx
callq 0x53f0
jmp 0x7a44
movq %rax, %rbx
callq 0x53f0
movq %rbx, %rdi
callq 0x5450
movq %rax, %rdi
callq 0x7ed3