// File: /workspace/github_c_makefile_star2_O3/zhou-lab[P]tbmate/view.c
// Function: main_view
int main_view(int argc, char *argv[]) {

  view_conf_t conf = {0};
  conf.precision = 3;
  conf.print_all = 0;
  conf.print_all_units = 0;
  conf.column_name = 0;
  conf.na_for_negative = 0;
  conf.show_unaddressed = 0;
  conf.chunk_read = 0;
  conf.n_chunk_index = 1000000;
  conf.n_chunk_data = 1000000;
  conf.max_pval = -1.0;
  conf.min_coverage = -1;
  conf.full_path_as_colname = 0;
  conf.na_token = strdup("NA");
  
  int c;
  if (argc<2) return usage(&conf);

  char *regions_fname = NULL;
  char *region = NULL;
  FILE *out_fh = stdout;
  char *idx_fname = NULL;
  char *tbk_fname_list = NULL;
  while ((c = getopt(argc, argv, "i:l:o:R:N:m:n:p:g:s:t:ckabduFh"))>=0) {
    switch (c) {
    case 'i': idx_fname = strdup(optarg); break;
    case 'l': tbk_fname_list = strdup(optarg); break;
    case 'o': out_fh = fopen(optarg, "w"); break;
    case 'R': regions_fname = optarg; break;
    case 'N': conf.na_token = strdup(optarg); break;
    case 'm': conf.n_chunk_index = atoi(optarg); break;
    case 'n': conf.n_chunk_data = atoi(optarg); break;
    case 'g': region = strdup(optarg); break;
    case 's': conf.min_coverage = atoi(optarg); break;
    case 't': conf.max_pval = atof(optarg); break;
    case 'p': conf.precision = atoi(optarg); break;
    case 'c': conf.column_name = 1; break;
    case 'k': conf.chunk_read = 1; break;
    case 'a': conf.print_all = 1; break;
    case 'b': conf.print_all_units = 1; break;
    case 'd': conf.na_for_negative = 1; break;
    case 'u': conf.show_unaddressed = 1; break;
    case 'F': conf.full_path_as_colname = 1; break;
    case 'h': return usage(&conf); break;
    default: usage(&conf); wzfatal("Unrecognized option: %c.\n", c);
    }
  }

  if (optind > argc && !tbk_fname_list) {
    usage(&conf); 
    wzfatal("Please supply tbk file.\n"); 
  }

  int nregs = 0;
  char **regs = NULL;

  int n_tbks = 0; tbk_t *tbks = NULL;
  int n_tbfs = 0; tbf_t *tbfs = NULL;
  parse_tbf_from_argument(argc, argv, optind, &tbfs, &n_tbfs);
  parse_tbf_fname_list(tbk_fname_list, &tbfs, &n_tbfs);
  int i;
  for (i=0; i<n_tbfs; ++i) {
    parse_tbk_from_tbf(&tbfs[i], &tbks, &n_tbks);
  }
  
  infer_idx(tbks, n_tbks, &idx_fname);
  
  regs = parse_regions(regions_fname, region, &nregs);
  int ret;
  if (conf.chunk_read)
    ret = chunk_query_region(idx_fname, regs, nregs, tbks, n_tbks, &conf, out_fh);
  else
    ret = query_regions(idx_fname, regs, nregs, tbks, n_tbks, &conf, out_fh);

  if (n_tbfs > 0) {for (i=0; i<n_tbfs; ++i) tbf_close(&tbfs[i]); free(tbfs);}
  if (n_tbks > 0) {for (i=0; i<n_tbks; ++i) free(tbks[i].sname); free(tbks);}
  if (idx_fname) free(idx_fname);
  free(conf.na_token);
  if (region) free(region);
  return ret;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1128, %rsp           # imm = 0x1128
movq %rsi, %r15
movl %edi, %ebx
xorps %xmm0, %xmm0
movups %xmm0, 0xf8(%rsp)
movups %xmm0, 0xe8(%rsp)
movups %xmm0, 0x108(%rsp)
movl $0x3, 0xd8(%rsp)
movl $0x0, 0xfc(%rsp)
movups %xmm0, 0xdc(%rsp)
movabsq $0xf4240000f4240, %rax  # imm = 0xF4240000F4240
movq %rax, 0x100(%rsp)
movq $-0x40800000, 0x108(%rsp) # imm = 0xBF800000
leaq 0x46eb8(%rip), %rdi     # 0x4d35d
callq 0x35f0
movq %rax, 0xf0(%rsp)
cmpl $0x1, %ebx
jle 0x7759
movq %rax, %r12
movq 0x58b33(%rip), %rax     # 0x5eff8
movq (%rax), %rax
movq %rax, 0x98(%rsp)
leaq 0x46e89(%rip), %rdx     # 0x4d360
movl %ebx, 0x30(%rsp)
movl %ebx, %edi
movq %r15, %rsi
callq 0x3200
testl %eax, %eax
js 0x66f1
movl %eax, %r13d
movl $0xf4240, 0x18(%rsp)    # imm = 0xF4240
movl $0xffffffff, 0x10(%rsp) # imm = 0xFFFFFFFF
movss 0x46d40(%rip), %xmm0    # 0x4d248
movss %xmm0, 0x40(%rsp)
movl $0x3, 0x48(%rsp)
movq $0x0, 0xa0(%rsp)
leaq 0x46e37(%rip), %r14     # 0x4d360
leaq 0x46d30(%rip), %rbp     # 0x4d260
movq 0x58aa9(%rip), %rbx     # 0x5efe0
movq $0x0, 0x70(%rsp)
movq $0x0, 0xa8(%rsp)
movq $0x0, 0x78(%rsp)
movl $0x0, 0x38(%rsp)
movl $0x0, 0x80(%rsp)
movl $0x0, 0x28(%rsp)
movl $0x0, 0x88(%rsp)
movl $0x0, 0x24(%rsp)
movl $0x0, 0x58(%rsp)
movq $0x0, 0x60(%rsp)
movl $0xf4240, 0x90(%rsp) # imm = 0xF4240
leal -0x4e(%r13), %eax
cmpl $0x27, %eax
ja 0x65c2
movslq (%rbp,%rax,4), %rax
addq %rbp, %rax
jmpq *%rax
movq (%rbx), %rdi
callq 0x35f0
movq %rax, %r12
jmp 0x66d2
cmpl $0x46, %r13d
jne 0x783f
movl $0x1, 0x38(%rsp)
jmp 0x66d2
movq (%rbx), %rdi
callq 0x3550
movl %eax, 0x10(%rsp)
jmp 0x66d2
movq (%rbx), %rdi
callq 0x35f0
movq %rax, 0x70(%rsp)
jmp 0x66d2
movq (%rbx), %rdi
leaq 0x46ab2(%rip), %rsi     # 0x4d0b8
callq 0x3250
movq %rax, 0x98(%rsp)
jmp 0x66d2
movq (%rbx), %rdi
callq 0x35f0
movq %rax, 0x78(%rsp)
jmp 0x66d2
movl $0x1, 0x58(%rsp)
jmp 0x66d2
movq (%rbx), %rdi
callq 0x3550
movl %eax, 0x90(%rsp)
jmp 0x66d2
movq (%rbx), %rax
movq %rax, 0xa8(%rsp)
jmp 0x66d2
movl $0x1, %eax
movq %rax, 0x60(%rsp)
jmp 0x66d2
movl $0x1, 0x24(%rsp)
jmp 0x66d2
movq (%rbx), %rdi
callq 0x35f0
movq %rax, 0xa0(%rsp)
jmp 0x66d2
movl $0x1, 0x80(%rsp)
jmp 0x66d2
movq (%rbx), %rdi
callq 0x3550
movl %eax, 0x18(%rsp)
jmp 0x66d2
movl $0x1, 0x88(%rsp)
jmp 0x66d2
movq (%rbx), %rdi
callq 0x3550
movl %eax, 0x48(%rsp)
jmp 0x66d2
movl $0x1, 0x28(%rsp)
jmp 0x66d2
movq (%rbx), %rdi
callq 0x32f0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x40(%rsp)
movl 0x30(%rsp), %edi
movq %r15, %rsi
movq %r14, %rdx
callq 0x3200
movl %eax, %r13d
testl %eax, %eax
jns 0x659f
jmp 0x678b
movq $0x0, 0x60(%rsp)
movl $0x3, 0x48(%rsp)
movss 0x46b3e(%rip), %xmm0    # 0x4d248
movss %xmm0, 0x40(%rsp)
movl $0xffffffff, 0x10(%rsp) # imm = 0xFFFFFFFF
movl $0xf4240, 0x90(%rsp) # imm = 0xF4240
movl $0xf4240, 0x18(%rsp)    # imm = 0xF4240
movl $0x0, 0x58(%rsp)
movl $0x0, 0x24(%rsp)
movl $0x0, 0x88(%rsp)
movl $0x0, 0x28(%rsp)
movl $0x0, 0x80(%rsp)
movl $0x0, 0x38(%rsp)
movq $0x0, 0x78(%rsp)
movq $0x0, 0xa8(%rsp)
movq $0x0, 0x70(%rsp)
movq $0x0, 0xa0(%rsp)
movl 0x38(%rsp), %eax
movl %eax, 0x110(%rsp)
movl 0x80(%rsp), %eax
movl %eax, 0xf8(%rsp)
movl 0x28(%rsp), %eax
movl %eax, 0xe8(%rsp)
movl 0x88(%rsp), %eax
movl %eax, 0xe4(%rsp)
movl 0x24(%rsp), %eax
movl %eax, 0xe0(%rsp)
movl 0x58(%rsp), %eax
movl %eax, 0xfc(%rsp)
movq 0x60(%rsp), %rax
movl %eax, 0xdc(%rsp)
movl 0x48(%rsp), %eax
movl %eax, 0xd8(%rsp)
movss 0x40(%rsp), %xmm0
movss %xmm0, 0x108(%rsp)
movl 0x10(%rsp), %eax
movl %eax, 0x10c(%rsp)
movl 0x18(%rsp), %eax
movl %eax, 0x104(%rsp)
movl 0x90(%rsp), %eax
movl %eax, 0x100(%rsp)
movq %r12, 0xf0(%rsp)
movq 0x58794(%rip), %rax     # 0x5efc0
movslq (%rax), %rsi
movl 0x30(%rsp), %edx
cmpl %edx, %esi
setle %al
cmpq $0x0, 0xa0(%rsp)
setne %cl
orb %al, %cl
je 0x78c2
movl $0x0, 0x54(%rsp)
movq $0x0, 0xb8(%rsp)
cmpl %edx, %esi
movq 0x98(%rsp), %rbp
jge 0x6a23
movq %r15, 0x18(%rsp)
xorl %r14d, %r14d
xorl %r15d, %r15d
movq 0x18(%rsp), %rbx
movq (%rbx,%rsi,8), %rdi
movq %rsi, %r12
callq 0x33c0
testq %rax, %rax
movq %r12, 0x10(%rsp)
je 0x69b3
movq %rax, %r13
movq %rax, %rdi
callq 0x3450
testq %rax, %rax
je 0x69a1
movq %rax, %rbx
addq $0x13, %rbx
movq %rbx, %rdi
callq 0x3380
cmpq $0x5, %rax
jb 0x698d
movq %rax, %rbp
leaq (%rbx,%rax), %rdi
addq $-0x4, %rdi
leaq 0x46f24(%rip), %rsi     # 0x4d7fd
callq 0x3620
testl %eax, %eax
jne 0x698d
movq %r14, %r12
movq 0x18(%rsp), %rax
movq 0x10(%rsp), %rcx
movq (%rax,%rcx,8), %r14
movq %r14, %rdi
callq 0x3380
leaq (%rax,%rbp), %rdi
addq $0x5, %rdi
callq 0x3240
movq %rax, %rbp
movq %rax, %rdi
movq %r14, %rsi
movq %r12, %r14
callq 0x3650
movq %rbp, %rdi
callq 0x3380
movw $0x2f, (%rbp,%rax)
movq %rbp, %rdi
movq %rbx, %rsi
callq 0x3500
movslq %r14d, %rbx
shlq $0x5, %rbx
leaq 0x20(%rbx), %rsi
movq %r15, %rdi
callq 0x37b0
movq %rax, %r15
xorps %xmm0, %xmm0
movups %xmm0, (%rax,%rbx)
movups %xmm0, 0x10(%rax,%rbx)
movq %rbp, %rdi
callq 0x35f0
movq %rax, 0x10(%r15,%rbx)
movq %rbp, %rdi
leaq 0x46e92(%rip), %rsi     # 0x4d802
callq 0x3250
movq %rax, (%r15,%rbx)
testq %rax, %rax
je 0x781b
incl %r14d
movq %rbp, %rdi
callq 0x3370
movq %r13, %rdi
callq 0x3450
movq %rax, %rbx
testq %rax, %rax
jne 0x68b1
movq %r13, %rdi
callq 0x3720
movq 0x98(%rsp), %rbp
jmp 0x6a0d
movq %r14, %r13
movslq %r13d, %r14
shlq $0x5, %r14
leaq 0x20(%r14), %rsi
movq %r15, %rdi
callq 0x37b0
movq %rax, %r15
movq (%rbx,%r12,8), %rbx
xorps %xmm0, %xmm0
movups %xmm0, (%rax,%r14)
movups %xmm0, 0x10(%rax,%r14)
movq %rbx, %rdi
callq 0x35f0
movq %rax, 0x10(%r15,%r14)
movq %rbx, %rdi
leaq 0x46e0d(%rip), %rsi     # 0x4d802
callq 0x3250
movq %rax, (%r15,%r14)
testq %rax, %rax
je 0x7835
incl %r13d
movq %r13, %r14
movl 0x30(%rsp), %eax
movq 0x10(%rsp), %rsi
incq %rsi
cmpl %eax, %esi
jne 0x687b
jmp 0x6a29
xorl %r14d, %r14d
xorl %r15d, %r15d
movq 0xa0(%rsp), %r12
testq %r12, %r12
je 0x6c22
cmpb $0x2d, (%r12)
movq %r14, 0x68(%rsp)
jne 0x6a52
cmpb $0x0, 0x1(%r12)
je 0x7727
leaq 0x4a7cc(%rip), %rsi     # 0x51225
movq %r12, %rdi
callq 0x3160
testq %rax, %rax
je 0x78f2
movq %rax, %rbx
xorl %r13d, %r13d
movl $0xa, %esi
movq %r13, %rdi
callq 0x37b0
movq %rax, %r13
movl $0xa, %r12d
xorl %ebp, %ebp
movl (%rbx), %eax
testl %eax, %eax
je 0x6aa8
decl %eax
movl %eax, (%rbx)
incq 0x10(%rbx)
movq 0x8(%rbx), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0x8(%rbx)
movzbl (%rax), %r14d
jmp 0x6ab3
movq %rbx, %rdi
callq 0x3730
movl %eax, %r14d
leal -0x2(%r12), %eax
cltq
cmpq %rax, %rbp
jle 0x6ad0
addl %r12d, %r12d
movslq %r12d, %rsi
movq %r13, %rdi
callq 0x37b0
movq %rax, %r13
cmpl $-0x1, %r14d
je 0x6c06
cmpl $0xa, %r14d
je 0x6aea
movb %r14b, (%r13,%rbp)
incq %rbp
jmp 0x6a88
movl %ebp, %eax
movb $0x0, (%r13,%rax)
movq %r13, %rdi
leaq 0x4903d(%rip), %rsi     # 0x4fb39
leaq 0x120(%rsp), %rdx
leaq 0xc0(%rsp), %rcx
callq 0x7926
movslq 0xc0(%rsp), %rbp
testq %rbp, %rbp
jle 0x6b50
movslq 0x68(%rsp), %r12
incq %r12
shlq $0x5, %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x37b0
movq 0x120(%rsp), %r14
movq %r12, %rcx
cmpl $0x1, %ebp
jne 0x6b5d
movq $0x0, 0x30(%rsp)
jmp 0x6b66
movq 0x120(%rsp), %r14
jmp 0x6bf9
movq 0x8(%r14), %rdx
movq %rdx, 0x30(%rsp)
movq (%r14), %rdi
movq %rdi, 0x18(%rsp)
movq %rax, %r12
movq %rax, %r15
movq %rcx, 0x10(%rsp)
addq %rcx, %r15
xorps %xmm0, %xmm0
movups %xmm0, -0x10(%rax,%rcx)
movups %xmm0, -0x20(%rax,%rcx)
callq 0x35f0
movq 0x10(%rsp), %rcx
movq %rax, -0x10(%r12,%rcx)
movq 0x18(%rsp), %rdi
leaq 0x46c5e(%rip), %rsi     # 0x4d802
callq 0x3250
movq %r12, 0x28(%rsp)
movq 0x10(%rsp), %rcx
movq %rax, -0x20(%r12,%rcx)
testq %rax, %rax
je 0x78fa
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x6bd4
callq 0x35f0
movq %rax, -0x8(%r15)
movq 0x68(%rsp), %rax
incl %eax
movq %rax, 0x68(%rsp)
xorl %r15d, %r15d
movq (%r14,%r15,8), %rdi
callq 0x3370
incq %r15
cmpq %r15, %rbp
jne 0x6be3
movq 0x28(%rsp), %r15
movq %r14, %rdi
callq 0x3370
jmp 0x6a70
movq %r15, 0x28(%rsp)
movq %r13, %rdi
callq 0x3370
movq 0x98(%rsp), %rbp
movq 0x68(%rsp), %r14
jmp 0x6c27
movq %r15, 0x28(%rsp)
movl %r14d, %eax
movq %rax, 0x118(%rsp)
movq %r14, 0x68(%rsp)
testl %r14d, %r14d
jle 0x6c6d
leaq 0xb8(%rsp), %rbx
leaq 0x54(%rsp), %r14
movq 0x118(%rsp), %r15
movq 0x28(%rsp), %r12
movq %r12, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x6155
addq $0x20, %r12
decq %r15
jne 0x6c56
movq 0x78(%rsp), %r12
testq %r12, %r12
jne 0x6dfa
movq 0xb8(%rsp), %rax
movq %rax, 0x10(%rsp)
movl 0x54(%rsp), %eax
testl %eax, %eax
jle 0x6d98
movl $0x1f4, %r13d           # imm = 0x1F4
cmpl %r13d, %eax
cmovbl %eax, %r13d
movq 0x10(%rsp), %rax
leaq 0x28(%rax), %rbx
leaq 0xc0(%rsp), %r14
leaq 0x120(%rsp), %r12
movq -0x20(%rbx), %rax
movq 0x10(%rax), %rbp
movq %rbx, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x3470
movq 0xc8(%rsp), %rax
movq (%rax), %rsi
movq %rbx, %rdi
callq 0x3650
movq %r14, %rdi
callq 0x3790
cmpb $0x2f, (%rbx)
jne 0x6cfc
movq %r12, %rdi
movq %rbx, %rsi
callq 0x3650
jmp 0x6d3f
movq %rbp, %rdi
callq 0x35f0
movq %rax, %rbp
movq %rax, %rdi
callq 0x3060
movq %r12, %rdi
movq %rax, %rsi
callq 0x3650
movq %rbp, %rdi
callq 0x3370
movq %r12, %rdi
callq 0x3380
movw $0x2f, 0x120(%rsp,%rax)
movq %r12, %rdi
movq %rbx, %rsi
callq 0x3500
movq %r12, %rdi
xorl %esi, %esi
callq 0x3430
testq %rax, %rax
movq 0x98(%rsp), %rbp
je 0x6d88
movq %rax, %r15
movq %rax, %rdi
callq 0x33c0
testq %rax, %rax
je 0x6d70
movq %rax, %rdi
callq 0x3720
jmp 0x6d88
movq %r15, %rdi
leaq 0x4a4ab(%rip), %rsi     # 0x51225
callq 0xda3c
testq %rax, %rax
jne 0x776d
addq $0x2028, %rbx           # imm = 0x2028
decq %r13
jne 0x6cba
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rdi
callq 0x35f0
movq %rax, %rbx
movq %rax, %rdi
callq 0x3060
movq %rax, %r14
movq %rax, %rdi
callq 0x3380
leaq 0xa(%rax), %rdi
movl $0x1, %esi
callq 0x36a0
movq %rax, %r12
movq %rax, %rdi
movq %r14, %rsi
callq 0x3650
movq %r12, %rdi
callq 0x3380
movabsq $0x7a672e7864692f, %rcx # imm = 0x7A672E7864692F
movq %rcx, (%r12,%rax)
movq %rbx, %rdi
callq 0x3370
xorps %xmm0, %xmm0
movaps %xmm0, 0x120(%rsp)
movq $0x0, 0x130(%rsp)
movq 0xa8(%rsp), %rbx
testq %rbx, %rbx
movq %r12, 0x78(%rsp)
je 0x6f73
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x12cc5
testq %rax, %rax
je 0x78e6
movq %rax, %r15
movq %rax, %rdi
callq 0x1251c
movq %rax, 0x18(%rsp)
movslq %eax, %rdi
shlq $0x3, %rdi
callq 0x3240
movq %rax, 0x38(%rsp)
leaq 0xb4(%rsp), %rbx
movq %r15, %rdi
movq %rbx, %rsi
callq 0x12545
cmpl $0x0, (%rbx)
jle 0x6f4f
movq %rax, %r12
leaq 0x46a08(%rip), %rbp     # 0x4d890
leaq 0x120(%rsp), %rbx
xorl %r13d, %r13d
xorl %r14d, %r14d
movq %r15, 0x10(%rsp)
movq (%r12,%r13,8), %rsi
movq %r15, %rdi
xorl %edx, %edx
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
leaq 0xc0(%rsp), %r8
callq 0x13215
movl 0xc0(%rsp), %eax
cmpl 0xc4(%rsp), %eax
jge 0x6f36
movslq %r14d, %rcx
movq 0x38(%rsp), %rdx
leaq (%rdx,%rcx,8), %r15
movq $0x0, 0x120(%rsp)
movq (%r12,%r13,8), %rdx
movq 0xc8(%rsp), %rsi
cltq
movl (%rsi,%rax,8), %ecx
movl 0x4(%rsi,%rax,8), %r8d
incl %ecx
incl %r8d
movq %rbx, %rdi
movq %rbp, %rsi
xorl %eax, %eax
callq 0xb642
movq 0x130(%rsp), %rdi
callq 0x35f0
movq %rax, (%r15)
movl 0xc0(%rsp), %eax
incl %eax
movl %eax, 0xc0(%rsp)
addq $0x8, %r15
incl %r14d
cmpl 0xc4(%rsp), %eax
jl 0x6ed2
incq %r13
movslq 0xb4(%rsp), %rax
cmpq %rax, %r13
movq 0x10(%rsp), %r15
jl 0x6e9b
movq %r15, %rdi
callq 0x130fc
movq 0x130(%rsp), %rdi
movq 0x98(%rsp), %rbp
movq 0x38(%rsp), %r13
movq 0x18(%rsp), %r12
jmp 0x6f7b
xorl %r12d, %r12d
xorl %edi, %edi
xorl %r13d, %r13d
callq 0x3370
movq 0x70(%rsp), %r15
testq %r15, %r15
je 0x7007
leaq 0x46908(%rip), %rsi     # 0x4d899
leaq 0xc0(%rsp), %r14
leaq 0xb4(%rsp), %rbx
movq %r15, 0x70(%rsp)
movq %r15, %rdi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x7926
movslq (%rbx), %rbx
leal (%rbx,%r12), %eax
movl %eax, %r15d
movslq %eax, %rsi
shlq $0x3, %rsi
movq %r13, %rdi
callq 0x37b0
movq %rax, %r13
movq (%r14), %r14
testq %rbx, %rbx
jle 0x6ff5
movslq %r12d, %rax
leaq (,%rax,8), %rdi
addq %r13, %rdi
shlq $0x3, %rbx
movq %r14, %rsi
movq %rbx, %rdx
callq 0x3850
movq %r14, %rdi
callq 0x3370
movl %r15d, %edx
movq 0x70(%rsp), %r15
jmp 0x700a
movl %r12d, %edx
testl %edx, %edx
movq 0x78(%rsp), %r12
jne 0x7047
movl $0x8, %edi
callq 0x3240
testq %rax, %rax
je 0x78dd
movq %rax, %r13
leaq 0x46b8a(%rip), %rdi     # 0x4dbba
callq 0x35f0
movq %rax, (%r13)
movl $0x1, %edx
testq %rax, %rax
je 0x78dd
cmpl $0x0, 0xfc(%rsp)
movq 0xb8(%rsp), %r14
movl 0x54(%rsp), %r8d
je 0x708c
movq %rbp, (%rsp)
leaq 0xd8(%rsp), %r9
movq %r12, %rdi
movq %r13, %rsi
movq %r14, %rcx
callq 0x884d
movl %eax, %ebx
movq 0x68(%rsp), %r14
movq 0x118(%rsp), %rbp
jmp 0x765f
movq %r8, 0x40(%rsp)
movl %edx, 0xb0(%rsp)
leaq 0x4a186(%rip), %rsi     # 0x51225
movq %r12, %rdi
callq 0xda3c
movq %rax, 0x48(%rsp)
testq %rax, %rax
je 0x7903
movq %r12, %rdi
callq 0x141b7
testq %rax, %rax
je 0x790c
movq %rax, %rbx
xorps %xmm0, %xmm0
movaps %xmm0, 0x120(%rsp)
xorl %eax, %eax
movq %rax, 0x130(%rsp)
movq %rax, 0xc0(%rsp)
movl 0xb0(%rsp), %eax
movl %eax, %ecx
testl %eax, %eax
movq %rbx, 0x60(%rsp)
movq %rcx, 0xa8(%rsp)
jle 0x7595
imulq $0x2028, 0x40(%rsp), %r12 # imm = 0x2028
movl $0xffffffff, %r15d      # imm = 0xFFFFFFFF
xorl %eax, %eax
movl $0x0, 0xa0(%rsp)
movq $0x0, 0x30(%rsp)
movq $0x0, 0x18(%rsp)
movq %r13, 0x38(%rsp)
movq %r12, 0x88(%rsp)
movq %r14, 0x58(%rsp)
movq 0x18(%rbx), %rdi
movq %rax, 0x80(%rsp)
movq (%r13,%rax,8), %rsi
leaq 0xc55c(%rip), %rdx      # 0x136b8
movq %rbx, %rcx
leaq 0x978c(%rip), %r8       # 0x108f2
leaq 0xc867(%rip), %r9       # 0x139d4
callq 0x1141c
testq %rax, %rax
je 0x757a
movq %rax, %r13
movq 0x48(%rsp), %rdi
callq 0xe2b2
movq %rax, %rdi
movq %r13, %rsi
leaq 0x120(%rsp), %rdx
movq %rbx, %rcx
callq 0x1152f
testl %eax, %eax
js 0x756d
movq %r13, 0x90(%rsp)
movq 0x130(%rsp), %r13
movq %r13, %rdi
movl $0x9, %esi
callq 0x3580
movl $0x1, %ebx
testq %rax, %rax
je 0x71e1
incl %ebx
incq %rax
movq %rax, %rdi
movl $0x9, %esi
callq 0x3580
jmp 0x71c8
testl %r15d, %r15d
js 0x71f6
cmpl %ebx, %r15d
jne 0x7811
movl %r15d, 0x10(%rsp)
jmp 0x720b
movl %ebx, %edi
movl $0x8, %esi
callq 0x36a0
movq %rax, 0x18(%rsp)
movl %ebx, 0x10(%rsp)
movq %r13, %rdi
callq 0x3380
leaq 0x1(%rax), %rsi
movq 0x30(%rsp), %rdi
callq 0x37b0
movq %rax, %rbx
movq %rax, %rdi
movq %r13, %rsi
callq 0x3650
movq %rbx, 0x30(%rsp)
movq %rbx, %rdi
leaq 0x488fb(%rip), %rsi     # 0x4fb39
callq 0x3660
testq %rax, %rax
je 0x728f
movq %rax, %rbx
movq 0x18(%rsp), %r15
movq (%r15), %r13
movq %rbx, %rdi
callq 0x3380
leaq 0x1(%rax), %rsi
movq %r13, %rdi
callq 0x37b0
movq %rax, (%r15)
movq %rax, %rdi
movq %rbx, %rsi
callq 0x3650
xorl %edi, %edi
leaq 0x488bb(%rip), %rsi     # 0x4fb39
callq 0x3660
movq %rax, %rbx
addq $0x8, %r15
testq %rax, %rax
jne 0x7250
cmpl $0x2, 0x10(%rsp)
jle 0x77f7
cmpl $0x0, 0xa0(%rsp)
jne 0x73c3
cmpl $0x0, 0xdc(%rsp)
je 0x73c3
leaq 0x466a4(%rip), %rdi     # 0x4d961
movq %rbp, %rsi
callq 0x3520
cmpl $0x0, 0xe0(%rsp)
leaq 0x466a7(%rip), %r13     # 0x4d97b
je 0x731b
leaq 0x46696(%rip), %rdi     # 0x4d973
movq %rbp, %rsi
callq 0x3520
cmpl $0x5, 0x10(%rsp)
jb 0x731b
movl 0x10(%rsp), %eax
movl %eax, %r15d
negl %r15d
movl $0x5, %ebx
movq %rbp, %rdi
movq %r13, %rsi
movl %ebx, %edx
xorl %eax, %eax
callq 0x37e0
leal (%r15,%rbx), %eax
incl %eax
movl %ebx, %ecx
incl %ecx
movl %ecx, %ebx
cmpl $0x1, %eax
jne 0x72fb
cmpl $0x0, 0x40(%rsp)
leaq 0x465e7(%rip), %rbx     # 0x4d90e
jle 0x73b6
xorl %r15d, %r15d
movq (%r14,%r15), %rdx
movq %rbp, %rdi
movq %rbx, %rsi
xorl %eax, %eax
callq 0x37e0
cmpl $0x0, 0xe4(%rsp)
je 0x73a6
movq (%r14,%r15), %rbx
movq %rbx, %rdi
callq 0x3380
leaq 0x5(%rax), %rdi
callq 0x3240
movq %rax, %r13
movq %rax, %rdi
movq %rbx, %rsi
leaq 0x4659e(%rip), %rbx     # 0x4d90e
callq 0x3650
movq %r13, %rdi
callq 0x3380
movl $0x6769735f, (%r13,%rax) # imm = 0x6769735F
movw $0x32, 0x4(%r13,%rax)
movq %rbp, %rdi
movq %rbx, %rsi
movq %r13, %rdx
xorl %eax, %eax
callq 0x37e0
movq %r13, %rdi
callq 0x3370
addq $0x2028, %r15           # imm = 0x2028
cmpq %r15, %r12
jne 0x7330
movl $0xa, %edi
movq %rbp, %rsi
callq 0x3350
movq 0x18(%rsp), %rax
movq 0x18(%rax), %r13
movb (%r13), %bpl
testb %bpl, %bpl
je 0x741b
movl $0x1, %r15d
movl %ebp, %ebx
cmpb $0x2d, %bpl
sete %al
cmpq $0x1, %r15
sete %cl
testb %cl, %al
jne 0x740f
callq 0x3410
cmpb $0x2e, %bl
je 0x740f
movq (%rax), %rax
movsbq %bl, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x800, %eax            # imm = 0x800
je 0x77ef
movb (%r13,%r15), %bl
incq %r15
testb %bl, %bl
jne 0x73dd
movq %r13, %rdi
callq 0x3550
testl %eax, %eax
movq 0x98(%rsp), %rbp
jns 0x743d
cmpl $0x0, 0xf8(%rsp)
je 0x752c
movl %eax, 0x24(%rsp)
movq 0x18(%rsp), %r12
movq (%r12), %rdi
movq %rbp, %rsi
callq 0x3520
movl $0x9, %edi
movq %rbp, %rsi
callq 0x3350
movq 0x8(%r12), %rdi
movq %rbp, %rsi
callq 0x3520
movl $0x9, %edi
movq %rbp, %rsi
callq 0x3350
movq 0x10(%r12), %rdi
movq %rbp, %rsi
callq 0x3520
cmpl $0x0, 0xe0(%rsp)
leaq 0x46479(%rip), %r13     # 0x4d90e
je 0x74cc
cmpl $0x3, 0x10(%rsp)
je 0x74cc
movl 0x10(%rsp), %eax
cmpl $0x5, %eax
movl $0x4, %ebx
cmovgel %eax, %ebx
movl $0x3, %r15d
movq (%r12,%r15,8), %rdx
movq %rbp, %rdi
movq %r13, %rsi
xorl %eax, %eax
callq 0x37e0
incq %r15
cmpq %r15, %rbx
jne 0x74b3
cmpl $0x0, 0x40(%rsp)
leaq 0xd8(%rsp), %r12
leaq 0xc0(%rsp), %r14
jle 0x7512
movslq 0x24(%rsp), %rbx
movq 0x58(%rsp), %r13
movq 0x40(%rsp), %r15
movq %r13, %rdi
movq %rbx, %rsi
movq %r12, %rdx
movq %rbp, %rcx
movq %r14, %r8
callq 0x5824
addq $0x2028, %r13           # imm = 0x2028
decq %r15
jne 0x74f2
movl $0xa, %edi
movq %rbp, %rsi
callq 0x3350
movq 0x88(%rsp), %r12
movq 0x58(%rsp), %r14
incl 0xa0(%rsp)
movq 0x48(%rsp), %rdi
callq 0xe2b2
movq %rax, %rdi
movq 0x90(%rsp), %r13
movq %r13, %rsi
leaq 0x120(%rsp), %rdx
movq 0x60(%rsp), %rbx
movq %rbx, %rcx
callq 0x1152f
testl %eax, %eax
movl 0x10(%rsp), %r15d
jns 0x71ae
movq %r13, %rdi
callq 0x110fd
movq 0x38(%rsp), %r13
movq 0x80(%rsp), %rax
incq %rax
cmpq 0xa8(%rsp), %rax
jne 0x7144
jmp 0x75ad
movl $0xffffffff, %r15d      # imm = 0xFFFFFFFF
movq $0x0, 0x18(%rsp)
movq $0x0, 0x30(%rsp)
movq 0x30(%rsp), %rdi
callq 0x3370
movq 0xc0(%rsp), %rdi
callq 0x3370
testl %r15d, %r15d
movl %r15d, %eax
movq 0x18(%rsp), %r15
jle 0x75e7
movl %eax, %ebx
xorl %r14d, %r14d
movq (%r15,%r14,8), %rdi
callq 0x3370
incq %r14
cmpq %r14, %rbx
jne 0x75d6
movq %r15, %rdi
callq 0x3370
movq 0x130(%rsp), %rdi
callq 0x3370
movq 0x60(%rsp), %rdi
callq 0x13f5b
movq 0x48(%rsp), %rdi
callq 0xe119
testl %eax, %eax
movq 0x78(%rsp), %r12
movq 0x118(%rsp), %rbp
jne 0x7915
cmpl $0x0, 0xb0(%rsp)
movq 0x68(%rsp), %r14
movq 0xa8(%rsp), %r15
jle 0x7650
xorl %ebx, %ebx
movq (%r13,%rbx,8), %rdi
callq 0x3370
incq %rbx
cmpq %rbx, %r15
jne 0x763e
movq %r13, %rdi
callq 0x3370
xorl %ebx, %ebx
movq 0x70(%rsp), %r15
testl %r14d, %r14d
jle 0x76a9
shlq $0x5, %rbp
xorl %r14d, %r14d
movq 0x28(%rsp), %r13
movq (%r13,%r14), %rdi
callq 0x36c0
movq 0x18(%r13,%r14), %rdi
testq %rdi, %rdi
je 0x7689
callq 0x3370
movq 0x28(%rsp), %r13
movq 0x10(%r13,%r14), %rdi
callq 0x3370
addq $0x20, %r14
cmpq %r14, %rbp
jne 0x7670
movq %r13, %rdi
callq 0x3370
movslq 0x54(%rsp), %rax
testq %rax, %rax
jle 0x76ec
movq 0xb8(%rsp), %r14
imulq $0x2028, %rax, %r15     # imm = 0x2028
xorl %r12d, %r12d
movq (%r14,%r12), %rdi
callq 0x3370
addq $0x2028, %r12           # imm = 0x2028
cmpq %r12, %r15
jne 0x76c5
movq %r14, %rdi
callq 0x3370
movq 0x70(%rsp), %r15
movq 0x78(%rsp), %r12
testq %r12, %r12
je 0x76f9
movq %r12, %rdi
callq 0x3370
movq 0xf0(%rsp), %rdi
callq 0x3370
testq %r15, %r15
je 0x7713
movq %r15, %rdi
callq 0x3370
movl %ebx, %eax
addq $0x1128, %rsp           # imm = 0x1128
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x578aa(%rip), %rax     # 0x5efd8
movq (%rax), %rdi
callq 0x3040
leaq 0x49ae8(%rip), %rsi     # 0x51225
movl %eax, %edi
callq 0x3420
testq %rax, %rax
jne 0x6a6a
leaq 0x460ca(%rip), %rdi     # 0x4d81e
jmp 0x78d6
leaq 0xd8(%rsp), %rdi
callq 0x3a04
movl $0x1, %ebx
jmp 0x7713
movq %rax, %rdi
callq 0xe119
movq %r15, %r12
jmp 0x6dfa
leaq 0xd8(%rsp), %rdi
movl 0x38(%rsp), %eax
movl %eax, 0x38(%rdi)
movl 0x80(%rsp), %eax
movl %eax, 0x20(%rdi)
movl 0x28(%rsp), %eax
movl %eax, 0x10(%rdi)
movl 0x88(%rsp), %eax
movl %eax, 0xc(%rdi)
movl 0x24(%rsp), %eax
movl %eax, 0x8(%rdi)
movl 0x58(%rsp), %eax
movl %eax, 0x24(%rdi)
movq 0x60(%rsp), %rax
movl %eax, 0x4(%rdi)
movl 0x48(%rsp), %eax
movl %eax, (%rdi)
movss 0x40(%rsp), %xmm0
movss %xmm0, 0x30(%rdi)
movl 0x10(%rsp), %eax
movl %eax, 0x34(%rdi)
movl 0x18(%rsp), %eax
movl %eax, 0x2c(%rdi)
movl 0x90(%rsp), %eax
movl %eax, 0x28(%rdi)
movq %r12, 0x18(%rdi)
jmp 0x7761
movq %r13, %rdi
callq 0x3caa
leaq 0x460d6(%rip), %rdi     # 0x4d8d4
leaq 0x460fb(%rip), %rsi     # 0x4d900
movl $0x10f, %edx            # imm = 0x10F
xorl %eax, %eax
callq 0x60b2
movl %ebx, %edi
movl %r15d, %esi
callq 0x3c7d
leaq (%r15,%rbx), %rax
addq $0x20, %rax
movq -0x10(%rax), %rsi
leaq 0x45fd7(%rip), %rdi     # 0x4d805
xorl %eax, %eax
callq 0x60b2
leaq (%r15,%r14), %rax
addq $0x20, %rax
jmp 0x7823
leaq 0xd8(%rsp), %rdi
movl 0x38(%rsp), %eax
movl %eax, 0x38(%rdi)
movl 0x80(%rsp), %eax
movl %eax, 0x20(%rdi)
movl 0x28(%rsp), %eax
movl %eax, 0x10(%rdi)
movl 0x88(%rsp), %eax
movl %eax, 0xc(%rdi)
movl 0x24(%rsp), %eax
movl %eax, 0x8(%rdi)
movl 0x58(%rsp), %eax
movl %eax, 0x24(%rdi)
movq 0x60(%rsp), %rax
movl %eax, 0x4(%rdi)
movl 0x48(%rsp), %eax
movl %eax, (%rdi)
movss 0x40(%rsp), %xmm0
movss %xmm0, 0x30(%rdi)
movl 0x10(%rsp), %eax
movl %eax, 0x34(%rdi)
movl 0x18(%rsp), %eax
movl %eax, 0x2c(%rdi)
movl 0x90(%rsp), %eax
movl %eax, 0x28(%rdi)
movq %r12, 0x18(%rdi)
callq 0x3a04
leaq 0x45ac7(%rip), %rdi     # 0x4d37f
movl %r13d, %esi
xorl %eax, %eax
callq 0x60b2
leaq 0xd8(%rsp), %rdi
callq 0x3a04
leaq 0x45ac3(%rip), %rdi     # 0x4d399
xorl %eax, %eax
callq 0x60b2
xorl %edi, %edi
xorl %eax, %eax
callq 0x79e2
leaq 0x45f7d(%rip), %rdi     # 0x4d86a
movq %rbx, %rsi
jmp 0x791f
movq %r12, %rdi
callq 0x3c47
movq -0x10(%r15), %rsi
jmp 0x7827
leaq 0x45f91(%rip), %rdi     # 0x4d89b
jmp 0x791c
leaq 0x45f9b(%rip), %rdi     # 0x4d8ae
jmp 0x791c
leaq 0x45ff6(%rip), %rdi     # 0x4d912
movq %r12, %rsi
xorl %eax, %eax
callq 0x79e2