// File: /workspace/github_cpp_makefile_star2_O1/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 $0x458, %rsp            # imm = 0x458
movq %rsi, %r12
movl %edi, %ebp
callq 0x6080
leaq 0x320(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x6cd6(%rip), %rsi      # 0xd13c
leaq 0x6cd6(%rip), %rdx      # 0xd143
leaq 0x310(%rsp), %rdi
callq 0x841e
movq 0xcb1f(%rip), %rax      # 0x12fa0
movl (%rax), %edx
movl %edx, %ecx
shrl %ecx
leaq 0x3d8(%rsp), %rdi
leaq 0x310(%rsp), %rsi
callq 0x5380
movq 0x310(%rsp), %rdi
cmpq %rbx, %rdi
je 0x64b9
movq 0x320(%rsp), %rsi
incq %rsi
callq 0x5290
leaq 0x3d8(%rsp), %rdi
callq 0x5310
leaq 0x3d0(%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 0x7b47
movq %rax, %r15
leaq 0x310(%rsp), %rdi
movq %rbx, (%rdi)
leaq 0x6c5c(%rip), %rsi      # 0xd164
leaq 0x6c59(%rip), %rdx      # 0xd168
callq 0x841e
leaq 0x18(%r15), %rdi
leaq 0x310(%rsp), %rsi
callq 0x5160
leaq 0xce1c(%rip), %rsi      # 0x13348
movq %r15, %rdi
callq 0x7bbe
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 0x7b47
movq %rax, %r15
leaq 0x48(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x6c1c(%rip), %rsi      # 0xd1a1
leaq 0x6c1b(%rip), %rdx      # 0xd1a7
leaq 0x38(%rsp), %rdi
callq 0x841e
leaq 0x18(%r15), %rdi
leaq 0x38(%rsp), %rsi
callq 0x5160
leaq 0xcddd(%rip), %rsi      # 0x13388
movq %r15, %rdi
callq 0x7bbe
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 0x7b47
movq %rax, %r15
leaq 0xc8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x6bd0(%rip), %rsi      # 0xd1c1
leaq 0x6bce(%rip), %rdx      # 0xd1c6
leaq 0xb8(%rsp), %rdi
callq 0x841e
leaq 0x18(%r15), %rdi
leaq 0xb8(%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 0x7c79
movq %rax, %r15
leaq 0x20(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x6bda(%rip), %rsi      # 0xd22b
leaq 0x6bdd(%rip), %rdx      # 0xd235
leaq 0x10(%rsp), %rdi
callq 0x841e
leaq 0x18(%r15), %rdi
leaq 0x10(%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 0x7b47
movq %rax, %r15
leaq 0x280(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x6bd3(%rip), %rsi      # 0xd281
leaq 0x6bd0(%rip), %rdx      # 0xd285
leaq 0x270(%rsp), %rdi
callq 0x841e
leaq 0x18(%r15), %rdi
leaq 0x270(%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 0x7b47
movq %rax, %r15
movl %ebp, 0xb4(%rsp)
movq %r12, 0x8(%rsp)
leaq 0x260(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x6b95(%rip), %rsi      # 0xd2b3
leaq 0x6b94(%rip), %rdx      # 0xd2b9
leaq 0x250(%rsp), %rdi
callq 0x841e
movq %rbx, %rbp
leaq 0x18(%r15), %rdi
leaq 0x250(%rsp), %rsi
callq 0x5160
leaq 0x6b5d(%rip), %rsi      # 0xd2aa
leaq 0x6b66(%rip), %rcx      # 0xd2ba
movq %r14, %rdi
movq %r15, %rdx
callq 0x54c0
leaq 0x6b9f(%rip), %rsi      # 0xd305
leaq 0x6ba4(%rip), %rdx      # 0xd311
movq %rax, %rdi
callq 0x5490
movq %rax, %r14
leaq 0xcd71(%rip), %rdi      # 0x134f0
callq 0x7b47
movq %rax, %r15
leaq 0x240(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x6b99(%rip), %rsi      # 0xd333
leaq 0x6b96(%rip), %rdx      # 0xd337
leaq 0x230(%rsp), %rdi
callq 0x841e
leaq 0x18(%r15), %rdi
leaq 0x230(%rsp), %rsi
callq 0x5160
leaq 0xcc42(%rip), %rsi      # 0x13408
movq %r15, %rdi
callq 0x7bbe
leaq 0x6b4e(%rip), %rsi      # 0xd323
leaq 0x6b5c(%rip), %rcx      # 0xd338
movq %r14, %rdi
movq %rax, %rdx
callq 0x54c0
leaq 0x6b58(%rip), %rsi      # 0xd346
leaq 0x6b5b(%rip), %rdx      # 0xd350
movq %rax, %rdi
callq 0x5490
movq 0x230(%rsp), %rdi
cmpq %rbx, %rdi
je 0x681a
movq 0x240(%rsp), %rsi
incq %rsi
callq 0x5290
movq 0x250(%rsp), %rdi
cmpq %r12, %rdi
je 0x6837
movq 0x260(%rsp), %rsi
incq %rsi
callq 0x5290
movq 0x270(%rsp), %rdi
cmpq %r13, %rdi
leaq 0x20(%rsp), %r12
je 0x6859
movq 0x280(%rsp), %rsi
incq %rsi
callq 0x5290
movq 0x10(%rsp), %rdi
cmpq %r12, %rdi
leaq 0x48(%rsp), %r13
je 0x6875
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x5290
movq 0xb8(%rsp), %rdi
leaq 0xc8(%rsp), %rax
cmpq %rax, %rdi
je 0x689a
movq 0xc8(%rsp), %rsi
incq %rsi
callq 0x5290
movq 0x38(%rsp), %rdi
cmpq %r13, %rdi
je 0x68b1
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x5290
movq 0x310(%rsp), %rdi
cmpq %rbp, %rdi
je 0x68ce
movq 0x320(%rsp), %rsi
incq %rsi
callq 0x5290
leaq 0xb8(%rsp), %rdi
callq 0x5350
movq 0x8(%rsp), %rbx
movl 0xb4(%rsp), %ebp
leaq 0x6a8b(%rip), %rsi      # 0xd379
leaq 0xb8(%rsp), %rdi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x52c0
leaq 0x310(%rsp), %rdi
callq 0x5100
leaq 0x38(%rsp), %rdi
movl %ebp, %esi
movq %rbx, %rdx
callq 0x7cf0
leaq 0x38(%rsp), %rdi
leaq 0x3d8(%rsp), %rbx
movq %rbx, %rsi
callq 0x5230
leaq 0x38(%rsp), %rdi
movq %rbx, 0x70(%rdi)
leaq 0xb8(%rsp), %rsi
callq 0x5410
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x7d84
leaq 0x10(%rsp), %rdi
leaq 0x310(%rsp), %rsi
xorl %edx, %edx
callq 0x5440
leaq 0x10(%rsp), %rdi
callq 0x7f1e
leaq 0x88(%rsp), %rdi
callq 0x8032
leaq 0x68(%rsp), %rdi
callq 0x806a
leaq 0x38(%rsp), %rdi
callq 0x7f98
leaq 0x310(%rsp), %rdi
callq 0x5170
leaq 0x38(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x69d6(%rip), %rsi      # 0xd387
leaq 0x69d3(%rip), %rdx      # 0xd38b
callq 0x841e
leaq 0x320(%rsp), %rbx
leaq 0x38(%rsp), %rsi
movq %rbx, %rdi
callq 0xc17a
movq %rax, %r14
leaq 0x328(%rsp), %r15
movq 0x38(%rsp), %rdi
cmpq %r13, %rdi
je 0x69f4
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x5290
cmpq %r15, %r14
je 0x6a41
movq 0xc5c0(%rip), %rdi      # 0x12fc0
leaq 0x3d8(%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 0x73bd
leaq 0x38(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x693e(%rip), %rsi      # 0xd38e
leaq 0x6943(%rip), %rdx      # 0xd39a
callq 0x841e
leaq 0x38(%rsp), %rsi
movq %rbx, %rdi
callq 0xc17a
movq %rax, %r14
movq 0x38(%rsp), %rdi
cmpq %r13, %rdi
je 0x6a83
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x5290
cmpq %r15, %r14
je 0x6ad9
leaq 0x220(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x68f1(%rip), %rsi      # 0xd38c
leaq 0x68f8(%rip), %rdx      # 0xd39a
leaq 0x210(%rsp), %rdi
callq 0x841e
leaq 0x210(%rsp), %rdi
callq 0x600c
movq 0x210(%rsp), %rdi
cmpq %r15, %rdi
je 0x6ad9
movq 0x220(%rsp), %rsi
incq %rsi
callq 0x5290
leaq 0xc990(%rip), %rdi      # 0x13470
leaq 0xc969(%rip), %rsi      # 0x13450
callq 0x5160
leaq 0x10(%rsp), %r14
movq %r14, %rdi
callq 0x54d0
movq 0xc970(%rip), %rax      # 0x13470
movq 0xc971(%rip), %rcx      # 0x13478
addq %rax, %rcx
leaq 0x38(%rsp), %rdi
movq %rax, (%rdi)
movq %rcx, 0x8(%rdi)
movq %r14, %rsi
callq 0xc203
leaq 0x10(%rsp), %rdi
callq 0x53a0
leaq 0xc981(%rip), %rdi      # 0x134b0
leaq 0xc95a(%rip), %rsi      # 0x13490
callq 0x5160
leaq 0x10(%rsp), %r14
movq %r14, %rdi
callq 0x54d0
movq 0xc961(%rip), %rax      # 0x134b0
movq 0xc962(%rip), %rcx      # 0x134b8
addq %rax, %rcx
leaq 0x38(%rsp), %rdi
movq %rax, (%rdi)
movq %rcx, 0x8(%rdi)
movq %r14, %rsi
callq 0xc203
leaq 0x10(%rsp), %rdi
callq 0x53a0
leaq 0x3c0(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0xc8e6(%rip), %rsi      # 0x13470
movq 0xc8e7(%rip), %rdx      # 0x13478
addq %rsi, %rdx
leaq 0x3b0(%rsp), %rdi
callq 0x838e
leaq 0x3b0(%rsp), %r14
movq %r14, %rdi
callq 0x6368
movl %eax, %ebp
movq (%r14), %rdi
cmpq %r15, %rdi
je 0x6bcb
movq 0x3c0(%rsp), %rsi
incq %rsi
callq 0x5290
testb %bpl, %bpl
leaq 0x328(%rsp), %rbp
je 0x6d76
movq 0xc8d5(%rip), %r14      # 0x134b8
cmpq 0xc7a6(%rip), %r14      # 0x13390
jne 0x6c13
testq %r14, %r14
je 0x6cdc
movq 0xc78c(%rip), %rsi      # 0x13388
movq 0xc8ad(%rip), %rdi      # 0x134b0
movq %r14, %rdx
callq 0x52a0
testl %eax, %eax
je 0x6cdc
cmpq 0xc796(%rip), %r14      # 0x133b0
jne 0x6c43
testq %r14, %r14
je 0x6cdc
movq 0xc77c(%rip), %rsi      # 0x133a8
movq 0xc87d(%rip), %rdi      # 0x134b0
movq %r14, %rdx
callq 0x52a0
testl %eax, %eax
je 0x6cdc
movq 0xc84e(%rip), %rdx      # 0x13498
cmpq 0xc77f(%rip), %rdx      # 0x133d0
jne 0x6c73
testq %rdx, %rdx
je 0x6cdc
movq 0xc765(%rip), %rsi      # 0x133c8
movq 0xc826(%rip), %rdi      # 0x13490
callq 0x52a0
testl %eax, %eax
je 0x6cdc
movq 0xc346(%rip), %rdi      # 0x12fc0
leaq 0x673a(%rip), %rsi      # 0xd3bb
movl $0x16, %edx
callq 0x52f0
movq 0xc7fe(%rip), %rsi      # 0x13490
movq 0xc7ff(%rip), %rdx      # 0x13498
movq 0xc320(%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 0x73bd
leaq 0x200(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x66ac(%rip), %rsi      # 0xd39b
leaq 0x66b4(%rip), %rdx      # 0xd3aa
leaq 0x1f0(%rsp), %rdi
callq 0x841e
leaq 0x1f0(%rsp), %rdi
callq 0x600c
movq 0x1f0(%rsp), %rdi
cmpq %r15, %rdi
je 0x6d2d
movq 0x200(%rsp), %rsi
incq %rsi
callq 0x5290
leaq 0x6677(%rip), %rsi      # 0xd3ab
leaq 0xc775(%rip), %rdx      # 0x134b0
leaq 0x2f0(%rsp), %rdi
callq 0x7abf
leaq 0x2f0(%rsp), %rdi
callq 0x600c
leaq 0x300(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6d76
movq 0x300(%rsp), %rsi
incq %rsi
callq 0x5290
leaq 0x38(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x664d(%rip), %rsi      # 0xd3d2
leaq 0x664f(%rip), %rdx      # 0xd3db
callq 0x841e
leaq 0x38(%rsp), %rsi
movq %rbx, %rdi
callq 0xc17a
movq %rax, %r14
movq 0x38(%rsp), %rdi
cmpq %r13, %rdi
je 0x6db8
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x5290
cmpq %rbp, %r14
je 0x6e79
leaq 0x6614(%rip), %rsi      # 0xd3dc
leaq 0xc701(%rip), %rdx      # 0x134d0
leaq 0x38(%rsp), %rdi
callq 0x7abf
leaq 0x6614(%rip), %rsi      # 0xd3f4
leaq 0x38(%rsp), %rdi
callq 0x54b0
leaq 0x120(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x6e1a
movq %rdx, 0x110(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x120(%rsp)
jmp 0x6e21
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
leaq 0x110(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
callq 0x600c
movq 0x110(%rsp), %rdi
cmpq %r15, %rdi
je 0x6e62
movq 0x120(%rsp), %rsi
incq %rsi
callq 0x5290
movq 0x38(%rsp), %rdi
cmpq %r13, %rdi
je 0x6e79
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x5290
movl 0xc5ac(%rip), %r14d     # 0x1342c
testq %r14, %r14
je 0x7035
movl %r14d, %ebp
negl %ebp
cmovsl %r14d, %ebp
movl $0x1, %r15d
cmpl $0xa, %ebp
jb 0x6ee6
movl $0x4, %r15d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %ebp, %ecx
cmpl $0x63, %ecx
jbe 0x6edd
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x6ee3
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x6ee6
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r15d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x6eaa
addl $-0x3, %r15d
jmp 0x6ee6
addl $-0x2, %r15d
jmp 0x6ee6
decl %r15d
shrl $0x1f, %r14d
leal (%r15,%r14), %esi
leaq 0x10(%rsp), %rdi
movq %r12, (%rdi)
movl $0x2d, %edx
callq 0x5300
leaq 0x10(%rsp), %r12
addq (%r12), %r14
movq %r14, %rdi
movl %r15d, %esi
movl %ebp, %edx
callq 0x80a1
leaq 0x64db(%rip), %rcx      # 0xd3f8
movl $0x13, %r8d
movq %r12, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x52e0
movq %r13, 0x38(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq 0x328(%rsp), %rbp
je 0x6f5a
movq %rdx, 0x38(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x48(%rsp)
jmp 0x6f62
movups (%rcx), %xmm0
movups %xmm0, (%r13)
leaq 0x20(%rsp), %r14
movq 0x8(%rax), %rdx
leaq 0x38(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x646c(%rip), %rsi      # 0xd3f6
callq 0x54b0
leaq 0x100(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x6fbf
movq %rdx, 0xf0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x100(%rsp)
jmp 0x6fc6
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
leaq 0xf0(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
callq 0x600c
movq 0xf0(%rsp), %rdi
cmpq %r15, %rdi
je 0x7007
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x5290
movq 0x38(%rsp), %rdi
cmpq %r13, %rdi
je 0x701e
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x5290
movq 0x10(%rsp), %rdi
cmpq %r14, %rdi
je 0x7035
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x5290
cmpq $0x0, 0xc4db(%rip)      # 0x13518
je 0x7088
leaq 0x63c6(%rip), %rsi      # 0xd40c
leaq 0xc4c3(%rip), %rdx      # 0x13510
leaq 0x2d0(%rsp), %rdi
callq 0x7abf
leaq 0x2d0(%rsp), %rdi
callq 0x600c
leaq 0x2e0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7088
movq 0x2e0(%rsp), %rsi
incq %rsi
callq 0x5290
cmpq $0x0, 0xc4a8(%rip)      # 0x13538
je 0x70db
leaq 0x637b(%rip), %rsi      # 0xd414
leaq 0xc490(%rip), %rdx      # 0x13530
leaq 0x2b0(%rsp), %rdi
callq 0x7abf
leaq 0x2b0(%rsp), %rdi
callq 0x600c
leaq 0x2c0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x70db
movq 0x2c0(%rsp), %rsi
incq %rsi
callq 0x5290
leaq 0x38(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x622f(%rip), %rsi      # 0xd319
leaq 0x6231(%rip), %rdx      # 0xd322
callq 0x841e
leaq 0x38(%rsp), %rsi
movq %rbx, %rdi
callq 0xc17a
movq %rax, %r14
movq 0x38(%rsp), %rdi
cmpq %r13, %rdi
je 0x711d
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x5290
cmpq %rbp, %r14
je 0x72bb
leaq 0x1e0(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x62e5(%rip), %rsi      # 0xd41e
leaq 0x62ee(%rip), %rdx      # 0xd42e
leaq 0x1d0(%rsp), %rdi
callq 0x841e
leaq 0x1d0(%rsp), %rdi
callq 0x600c
movq 0x1d0(%rsp), %rdi
cmpq %r15, %rdi
je 0x7177
movq 0x1e0(%rsp), %rsi
incq %rsi
callq 0x5290
leaq 0x1c0(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x62a5(%rip), %rsi      # 0xd42f
leaq 0x62bc(%rip), %rdx      # 0xd44d
leaq 0x1b0(%rsp), %rdi
callq 0x841e
leaq 0x1b0(%rsp), %rdi
callq 0x600c
movq 0x1b0(%rsp), %rdi
cmpq %r15, %rdi
je 0x71c8
movq 0x1c0(%rsp), %rsi
incq %rsi
callq 0x5290
leaq 0x1a0(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x6273(%rip), %rsi      # 0xd44e
leaq 0x6279(%rip), %rdx      # 0xd45b
leaq 0x190(%rsp), %rdi
callq 0x841e
leaq 0x190(%rsp), %rdi
callq 0x600c
movq 0x190(%rsp), %rdi
cmpq %r15, %rdi
je 0x7219
movq 0x1a0(%rsp), %rsi
incq %rsi
callq 0x5290
leaq 0x180(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x6230(%rip), %rsi      # 0xd45c
leaq 0x6235(%rip), %rdx      # 0xd468
leaq 0x170(%rsp), %rdi
callq 0x841e
leaq 0x170(%rsp), %rdi
callq 0x600c
movq 0x170(%rsp), %rdi
cmpq %r15, %rdi
je 0x726a
movq 0x180(%rsp), %rsi
incq %rsi
callq 0x5290
leaq 0x160(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x61ec(%rip), %rsi      # 0xd469
leaq 0x61f7(%rip), %rdx      # 0xd47b
leaq 0x150(%rsp), %rdi
callq 0x841e
leaq 0x150(%rsp), %rdi
callq 0x600c
movq 0x150(%rsp), %rdi
cmpq %r15, %rdi
je 0x72bb
movq 0x160(%rsp), %rsi
incq %rsi
callq 0x5290
leaq 0x140(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0xc1a2(%rip), %rsi      # 0x13470
movq 0xc1a3(%rip), %rdx      # 0x13478
addq %rsi, %rdx
leaq 0x130(%rsp), %rdi
callq 0x838e
leaq 0x130(%rsp), %rdi
callq 0x6300
leaq 0xbfef(%rip), %rcx      # 0x132e8
leaq 0xbfc8(%rip), %rdx      # 0x132c8
testb %al, %al
cmovneq %rcx, %rdx
leaq 0x616f(%rip), %rsi      # 0xd47c
leaq 0x290(%rsp), %rdi
callq 0x7abf
leaq 0x290(%rsp), %rdi
callq 0x600c
leaq 0x2a0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7348
movq 0x2a0(%rsp), %rsi
incq %rsi
callq 0x5290
movq 0x130(%rsp), %rdi
cmpq %r15, %rdi
je 0x7365
movq 0x140(%rsp), %rsi
incq %rsi
callq 0x5290
leaq 0x38(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x6112(%rip), %rsi      # 0xd486
leaq 0x6112(%rip), %rdx      # 0xd48d
callq 0x841e
leaq 0x38(%rsp), %rsi
movq %rbx, %rdi
callq 0xc17a
movq %rax, %r14
movq 0x38(%rsp), %rdi
cmpq %r13, %rdi
je 0x73a7
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x5290
cmpq %rbp, %r14
je 0x73b3
movb $0x1, 0xc075(%rip)      # 0x13428
callq 0x61e2
xorl %ebp, %ebp
movb $0x1, %r14b
movq 0xbc0c(%rip), %rax      # 0x12fd0
addq $0x10, %rax
leaq 0x380(%rsp), %rdi
movq %rax, -0x70(%rdi)
callq 0x810e
leaq 0x350(%rsp), %rdi
callq 0x81a0
movq %rbx, %rdi
callq 0x8218
leaq 0xe0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x740f
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x5290
leaq 0xb8(%rsp), %rdi
callq 0x7f98
leaq 0x440(%rsp), %rbx
movq %rbx, %rdi
callq 0x82dc
movq -0x28(%rbx), %rdi
testq %rdi, %rdi
je 0x746d
movq 0x438(%rsp), %rsi
subq %rdi, %rsi
callq 0x5290
xorl %eax, %eax
movq %rax, 0x418(%rsp)
movl %eax, 0x420(%rsp)
movq %rax, 0x428(%rsp)
movl %eax, 0x430(%rsp)
movq %rax, 0x438(%rsp)
leaq 0x400(%rsp), %rbx
movq %rbx, %rdi
callq 0x831e
movq -0x28(%rbx), %rdi
leaq 0x3e8(%rsp), %rax
cmpq %rax, %rdi
je 0x749e
movq 0x3e8(%rsp), %rsi
incq %rsi
callq 0x5290
testb %r14b, %r14b
je 0x74a5
xorl %ebp, %ebp
movl %ebp, %eax
addq $0x458, %rsp            # imm = 0x458
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rdx, 0x8(%rsp)
movq %rax, %r14
leaq 0x300(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x79b1
movq 0x300(%rsp), %rsi
jmp 0x77c8
movq %rdx, 0x8(%rsp)
movq %rax, %r14
movq 0x1f0(%rsp), %rdi
cmpq %r15, %rdi
je 0x79b1
movq 0x200(%rsp), %rsi
jmp 0x77c8
jmp 0x79a9
movq %rdx, 0x8(%rsp)
movq %rax, %r14
movq 0x150(%rsp), %rdi
cmpq %r15, %rdi
je 0x79b1
movq 0x160(%rsp), %rsi
jmp 0x77c8
jmp 0x79a9
movq %rdx, 0x8(%rsp)
movq %rax, %r14
movq 0x170(%rsp), %rdi
cmpq %r15, %rdi
je 0x79b1
movq 0x180(%rsp), %rsi
jmp 0x77c8
jmp 0x79a9
movq %rdx, 0x8(%rsp)
movq %rax, %r14
movq 0x190(%rsp), %rdi
cmpq %r15, %rdi
je 0x79b1
movq 0x1a0(%rsp), %rsi
jmp 0x77c8
jmp 0x79a9
movq %rdx, 0x8(%rsp)
movq %rax, %r14
movq 0x1b0(%rsp), %rdi
cmpq %r15, %rdi
je 0x79b1
movq 0x1c0(%rsp), %rsi
jmp 0x77c8
jmp 0x79a9
movq %rdx, 0x8(%rsp)
movq %rax, %r14
movq 0x1d0(%rsp), %rdi
cmpq %r15, %rdi
je 0x79b1
movq 0x1e0(%rsp), %rsi
jmp 0x77c8
jmp 0x79a9
movq %rdx, 0x8(%rsp)
movq %rax, %r14
leaq 0x2c0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x79b1
movq 0x2c0(%rsp), %rsi
jmp 0x77c8
movq %rdx, 0x8(%rsp)
movq %rax, %r14
leaq 0x2e0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x79b1
movq 0x2e0(%rsp), %rsi
jmp 0x77c8
movq %rdx, 0x8(%rsp)
movq %rax, %r14
movq 0xf0(%rsp), %rdi
cmpq %r15, %rdi
je 0x7668
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x5290
jmp 0x7668
movq %rdx, 0x8(%rsp)
movq %rax, %r14
movq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
cmpq %rax, %rdi
je 0x768e
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x5290
jmp 0x768e
movq %rdx, 0x8(%rsp)
movq %rax, %r14
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x79b1
movq 0x20(%rsp), %rsi
jmp 0x77c8
movq %rdx, 0x8(%rsp)
movq %rax, %r14
movq 0x110(%rsp), %rdi
cmpq %r15, %rdi
je 0x76df
movq 0x120(%rsp), %rsi
incq %rsi
callq 0x5290
jmp 0x76df
jmp 0x79a9
movq %rdx, 0x8(%rsp)
movq %rax, %r14
movq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
cmpq %rax, %rdi
jne 0x77c3
jmp 0x79b1
jmp 0x79a9
movq %rdx, 0x8(%rsp)
movq %rax, %r14
movq 0x210(%rsp), %rdi
cmpq %r15, %rdi
je 0x79b1
movq 0x220(%rsp), %rsi
jmp 0x77c8
jmp 0x79a9
jmp 0x77ad
jmp 0x79a9
movq %rdx, 0x8(%rsp)
movq %rax, %r14
leaq 0x2a0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7764
movq 0x2a0(%rsp), %rsi
incq %rsi
callq 0x5290
jmp 0x7764
movq %rdx, 0x8(%rsp)
movq %rax, %r14
movq 0x130(%rsp), %rdi
cmpq %r15, %rdi
je 0x79b1
movq 0x140(%rsp), %rsi
jmp 0x77c8
jmp 0x77ad
jmp 0x79a9
jmp 0x77ad
jmp 0x79a9
jmp 0x778f
movq %rdx, 0x8(%rsp)
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x53a0
jmp 0x79b1
jmp 0x77ad
jmp 0x79a9
movq %rdx, 0x8(%rsp)
movq %rax, %r14
movq 0x38(%rsp), %rdi
cmpq %r13, %rdi
je 0x79b1
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x5290
jmp 0x79b1
jmp 0x79a9
movq %rdx, 0x8(%rsp)
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x7f1e
jmp 0x7861
jmp 0x79a9
jmp 0x77f5
movq %rdx, 0x8(%rsp)
movq %rax, %r14
jmp 0x79be
jmp 0x789d
jmp 0x78d1
jmp 0x7870
jmp 0x787d
jmp 0x788d
jmp 0x7956
jmp 0x797f
jmp 0x789d
movq %rdx, 0x8(%rsp)
movq %rax, %r14
movq 0x310(%rsp), %rdi
cmpq %rbx, %rdi
je 0x79d8
movq 0x320(%rsp), %rsi
incq %rsi
callq 0x5290
jmp 0x79d8
movq %rdx, 0x8(%rsp)
movq %rax, %r14
jmp 0x79d8
movq %rdx, 0x8(%rsp)
movq %rax, %r14
leaq 0x38(%rsp), %rdi
callq 0x7e5a
jmp 0x79b1
movq %rbx, %rbp
movq %rdx, 0x8(%rsp)
movq %rax, %r14
jmp 0x78f6
movq %rbx, %rbp
movq %rdx, 0x8(%rsp)
movq %rax, %r14
jmp 0x7913
movq %rbx, %rbp
movq %rdx, 0x8(%rsp)
movq %rax, %r14
jmp 0x792f
movq %rdx, 0x8(%rsp)
movq %rax, %r14
jmp 0x79cb
movq %rdx, 0x8(%rsp)
movq %rax, %r14
movq 0x230(%rsp), %rdi
cmpq %rbx, %rdi
je 0x78d9
movq 0x240(%rsp), %rsi
incq %rsi
callq 0x5290
jmp 0x78d9
movq %rdx, 0x8(%rsp)
movq %rax, %r14
movq 0x250(%rsp), %rdi
cmpq %r12, %rdi
je 0x78f6
movq 0x260(%rsp), %rsi
incq %rsi
callq 0x5290
movq 0x270(%rsp), %rdi
cmpq %r13, %rdi
je 0x7913
movq 0x280(%rsp), %rsi
incq %rsi
callq 0x5290
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x792f
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x5290
movq 0xb8(%rsp), %rdi
leaq 0xc8(%rsp), %rax
cmpq %rax, %rdi
je 0x7961
movq 0xc8(%rsp), %rsi
incq %rsi
callq 0x5290
jmp 0x7961
movq %rbx, %rbp
movq %rdx, 0x8(%rsp)
movq %rax, %r14
movq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
cmpq %rax, %rdi
je 0x798a
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x5290
jmp 0x798a
movq %rbx, %rbp
movq %rdx, 0x8(%rsp)
movq %rax, %r14
movq 0x310(%rsp), %rdi
cmpq %rbp, %rdi
je 0x79cb
movq 0x320(%rsp), %rsi
incq %rsi
callq 0x5290
jmp 0x79cb
movq %rdx, 0x8(%rsp)
movq %rax, %r14
leaq 0x310(%rsp), %rdi
callq 0x7e7a
leaq 0xb8(%rsp), %rdi
callq 0x7eac
leaq 0x3d8(%rsp), %rdi
callq 0x7ed2
movq %r14, %rdi
callq 0x50e0
cmpl $0x2, 0x8(%rsp)
jne 0x7a31
movq %rax, %r14
movq 0xb5ff(%rip), %rdi      # 0x12ff0
leaq 0x5aa9(%rip), %rsi      # 0xd4a1
movl $0x7, %edx
callq 0x52f0
movq (%r14), %rax
movq %r14, %rdi
callq *0x10(%rax)
movq 0xb5de(%rip), %rdi      # 0x12ff0
movq %rax, %rsi
callq 0x5270
movq %rax, %rdi
callq 0x5130
callq 0x53f0
movl $0x1, %ebp
jmp 0x74a5
movq 0xb5b8(%rip), %rdi      # 0x12ff0
leaq 0x5a4f(%rip), %rsi      # 0xd48e
movl $0x12, %edx
callq 0x52f0
movq 0xb5a0(%rip), %rdi      # 0x12ff0
callq 0x5130
callq 0x53f0
jmp 0x74a3
movq %rax, %rbx
callq 0x53f0
jmp 0x7a71
movq %rax, %rbx
callq 0x53f0
movq %rbx, %rdi
callq 0x5450
movq %rax, %rdi
callq 0x7f13
nop