// File: tomfunkhouser[P]gaps/apps/scn2scn/scn2scn.cpp
// Function: ParseArgs(int, char**)
static int
ParseArgs(int argc, char **argv)
{
  // Parse arguments
  argc--; argv++;
  while (argc > 0) {
    if ((*argv)[0] == '-') {
      R3Affine prev_xform = xform;
      if (!strcmp(*argv, "-v")) print_verbose = 1;
      else if (!strcmp(*argv, "-remove_references")) remove_references = 1;
      else if (!strcmp(*argv, "-remove_hierarchy")) remove_hierarchy = 1;
      else if (!strcmp(*argv, "-remove_transformations")) remove_transformations = 1;
      else if (!strcmp(*argv, "-select_nodes_in_subtree")) {
        argv++; argc--; select_nodes_in_subtree_name = *argv;
      }
      else if (!strcmp(*argv, "-select_nodes_in_grid")) {
        argv++; argc--; select_nodes_in_grid_filename = *argv;
      }
      else if (!strcmp(*argv, "-select_nodes_in_bbox")) {
        argv++; argc--; select_nodes_in_bbox[0][0] = atof(*argv);
        argv++; argc--; select_nodes_in_bbox[0][1] = atof(*argv);
        argv++; argc--; select_nodes_in_bbox[0][2] = atof(*argv);
        argv++; argc--; select_nodes_in_bbox[1][0] = atof(*argv);
        argv++; argc--; select_nodes_in_bbox[1][1] = atof(*argv);
        argv++; argc--; select_nodes_in_bbox[1][2] = atof(*argv);
      }
      else if (!strcmp(*argv, "-scale")) {
        argv++; argc--; xform.Scale(atof(*argv));
      }
      else if (!strcmp(*argv, "-tx")) {
        argv++; argc--; xform = R3identity_affine; xform.XTranslate(atof(*argv)); xform.Transform(prev_xform);
      }
      else if (!strcmp(*argv, "-ty")) {
        argv++; argc--; xform = R3identity_affine; xform.YTranslate(atof(*argv)); xform.Transform(prev_xform);
      }
      else if (!strcmp(*argv, "-tz")) {
        argv++; argc--; xform = R3identity_affine; xform.ZTranslate(atof(*argv)); xform.Transform(prev_xform);
      }
      else if (!strcmp(*argv, "-sx")) {
        argv++; argc--; xform = R3identity_affine; xform.XScale(atof(*argv)); xform.Transform(prev_xform);
      }
      else if (!strcmp(*argv, "-sy")) {
        argv++; argc--; xform = R3identity_affine; xform.YScale(atof(*argv)); xform.Transform(prev_xform);
      }
      else if (!strcmp(*argv, "-sz")) {
        argv++; argc--; xform = R3identity_affine; xform.ZScale(atof(*argv)); xform.Transform(prev_xform);
      }
      else if (!strcmp(*argv, "-rx")) {
        argv++; argc--; xform = R3identity_affine; xform.XRotate(RN_PI*atof(*argv)/180.0); xform.Transform(prev_xform);
      }
      else if (!strcmp(*argv, "-ry")) {
        argv++; argc--; xform = R3identity_affine; xform.YRotate(RN_PI*atof(*argv)/180.0); xform.Transform(prev_xform);
      }
      else if (!strcmp(*argv, "-rz")) {
        argv++; argc--; xform = R3identity_affine; xform.ZRotate(RN_PI*atof(*argv)/180.0); xform.Transform(prev_xform);
      }
      else if (!strcmp(*argv, "-xform")) {
        argv++; argc--; R4Matrix m;  if (ReadMatrix(m, *argv)) { xform = R3identity_affine; xform.Transform(R3Affine(m)); xform.Transform(prev_xform);}
      } 
      else if (!strcmp(*argv, "-max_edge_length")) {
        argv++; argc--; max_edge_length = atof(*argv);
      }
      else if (!strcmp(*argv, "-categories")) {
        argc--; argv++; input_categories_name = *argv;
      }
      else if (!strcmp(*argv, "-lights")) {
        argv++; argc--; input_lights_name = *argv;
      }
      else {
        RNFail("Invalid program argument: %s", *argv);
        exit(1);
      }
      argv++; argc--;
    }
    else {
      if (!input_name) input_name = *argv;
      else if (!output_name) output_name = *argv;
      else { RNFail("Invalid program argument: %s", *argv); exit(1); }
      argv++; argc--;
    }
  }

  // Check input filename
  if (!input_name || !output_name) {
    RNFail("Usage: scn2scn inputfile outputfile [options]\n");
    return 0;
  }

  // Return OK status 
  return 1;
}

// Assembly:
subq $0x378, %rsp            # imm = 0x378
movl %edi, 0x370(%rsp)
movq %rsi, 0x368(%rsp)
movl 0x370(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x370(%rsp)
movq 0x368(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x368(%rsp)
cmpl $0x0, 0x370(%rsp)
jle 0x290b9
movq 0x368(%rsp), %rax
movq (%rax), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
jne 0x2902e
leaq 0x258(%rsp), %rdi
leaq 0x214041(%rip), %rsi    # 0x23c350
callq 0x2a480
movq 0x368(%rsp), %rax
movq (%rax), %rdi
leaq 0x197d02(%rip), %rsi    # 0x1c0028
callq 0x23e60
cmpl $0x0, %eax
jne 0x2833f
movl $0x1, 0x21416e(%rip)    # 0x23c4a8
jmp 0x28fe5
movq 0x368(%rsp), %rax
movq (%rax), %rdi
leaq 0x197cda(%rip), %rsi    # 0x1c002b
callq 0x23e60
cmpl $0x0, %eax
jne 0x2836a
movl $0x1, 0x214123(%rip)    # 0x23c488
jmp 0x28fe3
movq 0x368(%rsp), %rax
movq (%rax), %rdi
leaq 0x197cc2(%rip), %rsi    # 0x1c003e
callq 0x23e60
cmpl $0x0, %eax
jne 0x28395
movl $0x1, 0x2140fc(%rip)    # 0x23c48c
jmp 0x28fe1
movq 0x368(%rsp), %rax
movq (%rax), %rdi
leaq 0x197ca9(%rip), %rsi    # 0x1c0050
callq 0x23e60
cmpl $0x0, %eax
jne 0x283c0
movl $0x1, 0x2140d5(%rip)    # 0x23c490
jmp 0x28fdf
movq 0x368(%rsp), %rax
movq (%rax), %rdi
leaq 0x197c96(%rip), %rsi    # 0x1c0068
callq 0x23e60
cmpl $0x0, %eax
jne 0x28418
movq 0x368(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x368(%rsp)
movl 0x370(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x370(%rsp)
movq 0x368(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x214065(%rip)    # 0x23c478
jmp 0x28fdd
movq 0x368(%rsp), %rax
movq (%rax), %rdi
leaq 0x197c57(%rip), %rsi    # 0x1c0081
callq 0x23e60
cmpl $0x0, %eax
jne 0x28470
movq 0x368(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x368(%rsp)
movl 0x370(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x370(%rsp)
movq 0x368(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x214015(%rip)    # 0x23c480
jmp 0x28fdb
movq 0x368(%rsp), %rax
movq (%rax), %rdi
leaq 0x197c15(%rip), %rsi    # 0x1c0097
callq 0x23e60
cmpl $0x0, %eax
jne 0x28793
movq 0x368(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x368(%rsp)
movl 0x370(%rsp), %eax
decl %eax
movl %eax, 0x370(%rsp)
movq 0x368(%rsp), %rax
movq (%rax), %rdi
callq 0x23ca0
movsd %xmm0, 0xa8(%rsp)
leaq 0x213e44(%rip), %rdi    # 0x23c318
xorl %esi, %esi
callq 0x2a540
movq %rax, 0xb0(%rsp)
jmp 0x284e5
movq 0xb0(%rsp), %rdi
xorl %esi, %esi
callq 0x2a580
movq %rax, 0xa0(%rsp)
jmp 0x284fe
movq 0xa0(%rsp), %rax
movsd 0xa8(%rsp), %xmm0
movsd %xmm0, (%rax)
movq 0x368(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x368(%rsp)
movl 0x370(%rsp), %eax
decl %eax
movl %eax, 0x370(%rsp)
movq 0x368(%rsp), %rax
movq (%rax), %rdi
callq 0x23ca0
movsd %xmm0, 0x90(%rsp)
leaq 0x213dc1(%rip), %rdi    # 0x23c318
xorl %esi, %esi
callq 0x2a540
movq %rax, 0x98(%rsp)
jmp 0x28568
movq 0x98(%rsp), %rdi
movl $0x1, %esi
callq 0x2a580
movq %rax, 0x88(%rsp)
jmp 0x28584
movq 0x88(%rsp), %rax
movsd 0x90(%rsp), %xmm0
movsd %xmm0, (%rax)
movq 0x368(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x368(%rsp)
movl 0x370(%rsp), %eax
decl %eax
movl %eax, 0x370(%rsp)
movq 0x368(%rsp), %rax
movq (%rax), %rdi
callq 0x23ca0
movsd %xmm0, 0x78(%rsp)
leaq 0x213d3e(%rip), %rdi    # 0x23c318
xorl %esi, %esi
callq 0x2a540
movq %rax, 0x80(%rsp)
jmp 0x285eb
movq 0x80(%rsp), %rdi
movl $0x2, %esi
callq 0x2a580
movq %rax, 0x70(%rsp)
jmp 0x28604
movq 0x70(%rsp), %rax
movsd 0x78(%rsp), %xmm0
movsd %xmm0, (%rax)
movq 0x368(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x368(%rsp)
movl 0x370(%rsp), %eax
decl %eax
movl %eax, 0x370(%rsp)
movq 0x368(%rsp), %rax
movq (%rax), %rdi
callq 0x23ca0
movsd %xmm0, 0x60(%rsp)
leaq 0x213cc4(%rip), %rdi    # 0x23c318
movl $0x1, %esi
callq 0x2a540
movq %rax, 0x68(%rsp)
jmp 0x28665
movq 0x68(%rsp), %rdi
xorl %esi, %esi
callq 0x2a580
movq %rax, 0x58(%rsp)
jmp 0x28678
movq 0x58(%rsp), %rax
movsd 0x60(%rsp), %xmm0
movsd %xmm0, (%rax)
movq 0x368(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x368(%rsp)
movl 0x370(%rsp), %eax
decl %eax
movl %eax, 0x370(%rsp)
movq 0x368(%rsp), %rax
movq (%rax), %rdi
callq 0x23ca0
movsd %xmm0, 0x48(%rsp)
leaq 0x213c50(%rip), %rdi    # 0x23c318
movl $0x1, %esi
callq 0x2a540
movq %rax, 0x50(%rsp)
jmp 0x286d9
movq 0x50(%rsp), %rdi
movl $0x1, %esi
callq 0x2a580
movq %rax, 0x40(%rsp)
jmp 0x286ef
movq 0x40(%rsp), %rax
movsd 0x48(%rsp), %xmm0
movsd %xmm0, (%rax)
movq 0x368(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x368(%rsp)
movl 0x370(%rsp), %eax
decl %eax
movl %eax, 0x370(%rsp)
movq 0x368(%rsp), %rax
movq (%rax), %rdi
callq 0x23ca0
movsd %xmm0, 0x30(%rsp)
leaq 0x213bd9(%rip), %rdi    # 0x23c318
movl $0x1, %esi
callq 0x2a540
movq %rax, 0x38(%rsp)
jmp 0x28750
movq 0x38(%rsp), %rdi
movl $0x2, %esi
callq 0x2a580
movq %rax, 0x28(%rsp)
jmp 0x28766
movq 0x28(%rsp), %rax
movsd 0x30(%rsp), %xmm0
movsd %xmm0, (%rax)
jmp 0x28fd9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x250(%rsp)
movl %eax, 0x24c(%rsp)
jmp 0x2901c
movq 0x368(%rsp), %rax
movq (%rax), %rdi
leaq 0x197908(%rip), %rsi    # 0x1c00ad
callq 0x23e60
cmpl $0x0, %eax
jne 0x287f6
movq 0x368(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x368(%rsp)
movl 0x370(%rsp), %eax
decl %eax
movl %eax, 0x370(%rsp)
movq 0x368(%rsp), %rax
movq (%rax), %rdi
callq 0x23ca0
leaq 0x213b66(%rip), %rdi    # 0x23c350
callq 0x2a5a0
jmp 0x287f1
jmp 0x28fd7
movq 0x368(%rsp), %rax
movq (%rax), %rdi
leaq 0x1978ac(%rip), %rsi    # 0x1c00b4
callq 0x23e60
cmpl $0x0, %eax
jne 0x28884
movq 0x368(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x368(%rsp)
movl 0x370(%rsp), %eax
decl %eax
movl %eax, 0x370(%rsp)
leaq 0x213b13(%rip), %rdi    # 0x23c350
leaq 0x2168ec(%rip), %rsi    # 0x23f130
callq 0x2a5e0
jmp 0x2884b
movq 0x368(%rsp), %rax
movq (%rax), %rdi
callq 0x23ca0
leaq 0x213aee(%rip), %rdi    # 0x23c350
callq 0x2a650
jmp 0x28869
leaq 0x213ae0(%rip), %rdi    # 0x23c350
leaq 0x258(%rsp), %rsi
callq 0xc0e40
jmp 0x2887f
jmp 0x28fd5
movq 0x368(%rsp), %rax
movq (%rax), %rdi
leaq 0x197822(%rip), %rsi    # 0x1c00b8
callq 0x23e60
cmpl $0x0, %eax
jne 0x28912
movq 0x368(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x368(%rsp)
movl 0x370(%rsp), %eax
decl %eax
movl %eax, 0x370(%rsp)
leaq 0x213a85(%rip), %rdi    # 0x23c350
leaq 0x21685e(%rip), %rsi    # 0x23f130
callq 0x2a5e0
jmp 0x288d9
movq 0x368(%rsp), %rax
movq (%rax), %rdi
callq 0x23ca0
leaq 0x213a60(%rip), %rdi    # 0x23c350
callq 0x2a690
jmp 0x288f7
leaq 0x213a52(%rip), %rdi    # 0x23c350
leaq 0x258(%rsp), %rsi
callq 0xc0e40
jmp 0x2890d
jmp 0x28fd3
movq 0x368(%rsp), %rax
movq (%rax), %rdi
leaq 0x197798(%rip), %rsi    # 0x1c00bc
callq 0x23e60
cmpl $0x0, %eax
jne 0x289a0
movq 0x368(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x368(%rsp)
movl 0x370(%rsp), %eax
decl %eax
movl %eax, 0x370(%rsp)
leaq 0x2139f7(%rip), %rdi    # 0x23c350
leaq 0x2167d0(%rip), %rsi    # 0x23f130
callq 0x2a5e0
jmp 0x28967
movq 0x368(%rsp), %rax
movq (%rax), %rdi
callq 0x23ca0
leaq 0x2139d2(%rip), %rdi    # 0x23c350
callq 0x2a6d0
jmp 0x28985
leaq 0x2139c4(%rip), %rdi    # 0x23c350
leaq 0x258(%rsp), %rsi
callq 0xc0e40
jmp 0x2899b
jmp 0x28fd1
movq 0x368(%rsp), %rax
movq (%rax), %rdi
leaq 0x19770e(%rip), %rsi    # 0x1c00c0
callq 0x23e60
cmpl $0x0, %eax
jne 0x28a2e
movq 0x368(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x368(%rsp)
movl 0x370(%rsp), %eax
decl %eax
movl %eax, 0x370(%rsp)
leaq 0x213969(%rip), %rdi    # 0x23c350
leaq 0x216742(%rip), %rsi    # 0x23f130
callq 0x2a5e0
jmp 0x289f5
movq 0x368(%rsp), %rax
movq (%rax), %rdi
callq 0x23ca0
leaq 0x213944(%rip), %rdi    # 0x23c350
callq 0x2a710
jmp 0x28a13
leaq 0x213936(%rip), %rdi    # 0x23c350
leaq 0x258(%rsp), %rsi
callq 0xc0e40
jmp 0x28a29
jmp 0x28fcf
movq 0x368(%rsp), %rax
movq (%rax), %rdi
leaq 0x197684(%rip), %rsi    # 0x1c00c4
callq 0x23e60
cmpl $0x0, %eax
jne 0x28abc
movq 0x368(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x368(%rsp)
movl 0x370(%rsp), %eax
decl %eax
movl %eax, 0x370(%rsp)
leaq 0x2138db(%rip), %rdi    # 0x23c350
leaq 0x2166b4(%rip), %rsi    # 0x23f130
callq 0x2a5e0
jmp 0x28a83
movq 0x368(%rsp), %rax
movq (%rax), %rdi
callq 0x23ca0
leaq 0x2138b6(%rip), %rdi    # 0x23c350
callq 0x2a750
jmp 0x28aa1
leaq 0x2138a8(%rip), %rdi    # 0x23c350
leaq 0x258(%rsp), %rsi
callq 0xc0e40
jmp 0x28ab7
jmp 0x28fcd
movq 0x368(%rsp), %rax
movq (%rax), %rdi
leaq 0x1975fa(%rip), %rsi    # 0x1c00c8
callq 0x23e60
cmpl $0x0, %eax
jne 0x28b4a
movq 0x368(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x368(%rsp)
movl 0x370(%rsp), %eax
decl %eax
movl %eax, 0x370(%rsp)
leaq 0x21384d(%rip), %rdi    # 0x23c350
leaq 0x216626(%rip), %rsi    # 0x23f130
callq 0x2a5e0
jmp 0x28b11
movq 0x368(%rsp), %rax
movq (%rax), %rdi
callq 0x23ca0
leaq 0x213828(%rip), %rdi    # 0x23c350
callq 0x2a790
jmp 0x28b2f
leaq 0x21381a(%rip), %rdi    # 0x23c350
leaq 0x258(%rsp), %rsi
callq 0xc0e40
jmp 0x28b45
jmp 0x28fcb
movq 0x368(%rsp), %rax
movq (%rax), %rdi
leaq 0x197570(%rip), %rsi    # 0x1c00cc
callq 0x23e60
cmpl $0x0, %eax
jne 0x28c06
movq 0x368(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x368(%rsp)
movl 0x370(%rsp), %eax
decl %eax
movl %eax, 0x370(%rsp)
leaq 0x2137bb(%rip), %rdi    # 0x23c350
leaq 0x216594(%rip), %rsi    # 0x23f130
callq 0x2a5e0
jmp 0x28ba3
leaq 0x19c606(%rip), %rax    # 0x1c51b0
movsd (%rax), %xmm0
movsd %xmm0, 0x20(%rsp)
movq 0x368(%rsp), %rax
movq (%rax), %rdi
callq 0x23ca0
movaps %xmm0, %xmm1
movsd 0x20(%rsp), %xmm0
mulsd %xmm1, %xmm0
movsd 0x197447(%rip), %xmm1   # 0x1c0020
divsd %xmm1, %xmm0
leaq 0x21376c(%rip), %rdi    # 0x23c350
callq 0x2a7d0
jmp 0x28beb
leaq 0x21375e(%rip), %rdi    # 0x23c350
leaq 0x258(%rsp), %rsi
callq 0xc0e40
jmp 0x28c01
jmp 0x28fc9
movq 0x368(%rsp), %rax
movq (%rax), %rdi
leaq 0x1974b8(%rip), %rsi    # 0x1c00d0
callq 0x23e60
cmpl $0x0, %eax
jne 0x28cc2
movq 0x368(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x368(%rsp)
movl 0x370(%rsp), %eax
decl %eax
movl %eax, 0x370(%rsp)
leaq 0x2136ff(%rip), %rdi    # 0x23c350
leaq 0x2164d8(%rip), %rsi    # 0x23f130
callq 0x2a5e0
jmp 0x28c5f
leaq 0x19c54a(%rip), %rax    # 0x1c51b0
movsd (%rax), %xmm0
movsd %xmm0, 0x18(%rsp)
movq 0x368(%rsp), %rax
movq (%rax), %rdi
callq 0x23ca0
movaps %xmm0, %xmm1
movsd 0x18(%rsp), %xmm0
mulsd %xmm1, %xmm0
movsd 0x19738b(%rip), %xmm1   # 0x1c0020
divsd %xmm1, %xmm0
leaq 0x2136b0(%rip), %rdi    # 0x23c350
callq 0x2a810
jmp 0x28ca7
leaq 0x2136a2(%rip), %rdi    # 0x23c350
leaq 0x258(%rsp), %rsi
callq 0xc0e40
jmp 0x28cbd
jmp 0x28fc7
movq 0x368(%rsp), %rax
movq (%rax), %rdi
leaq 0x197400(%rip), %rsi    # 0x1c00d4
callq 0x23e60
cmpl $0x0, %eax
jne 0x28d7e
movq 0x368(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x368(%rsp)
movl 0x370(%rsp), %eax
decl %eax
movl %eax, 0x370(%rsp)
leaq 0x213643(%rip), %rdi    # 0x23c350
leaq 0x21641c(%rip), %rsi    # 0x23f130
callq 0x2a5e0
jmp 0x28d1b
leaq 0x19c48e(%rip), %rax    # 0x1c51b0
movsd (%rax), %xmm0
movsd %xmm0, 0x10(%rsp)
movq 0x368(%rsp), %rax
movq (%rax), %rdi
callq 0x23ca0
movaps %xmm0, %xmm1
movsd 0x10(%rsp), %xmm0
mulsd %xmm1, %xmm0
movsd 0x1972cf(%rip), %xmm1   # 0x1c0020
divsd %xmm1, %xmm0
leaq 0x2135f4(%rip), %rdi    # 0x23c350
callq 0x2a850
jmp 0x28d63
leaq 0x2135e6(%rip), %rdi    # 0x23c350
leaq 0x258(%rsp), %rsi
callq 0xc0e40
jmp 0x28d79
jmp 0x28fc5
movq 0x368(%rsp), %rax
movq (%rax), %rdi
leaq 0x197348(%rip), %rsi    # 0x1c00d8
callq 0x23e60
cmpl $0x0, %eax
jne 0x28e90
movq 0x368(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x368(%rsp)
movl 0x370(%rsp), %eax
decl %eax
movl %eax, 0x370(%rsp)
leaq 0x1c8(%rsp), %rdi
callq 0xc5180
jmp 0x28dd1
movq 0x368(%rsp), %rax
movq (%rax), %rsi
leaq 0x1c8(%rsp), %rdi
callq 0x29660
movl %eax, 0xc(%rsp)
jmp 0x28def
movl 0xc(%rsp), %eax
cmpl $0x0, %eax
je 0x28e8b
leaq 0x21354d(%rip), %rdi    # 0x23c350
leaq 0x216326(%rip), %rsi    # 0x23f130
callq 0x2a5e0
jmp 0x28e11
leaq 0xb8(%rsp), %rdi
leaq 0x1c8(%rsp), %rsi
xorl %edx, %edx
callq 0xc0ad0
jmp 0x28e2a
leaq 0x21351f(%rip), %rdi    # 0x23c350
leaq 0xb8(%rsp), %rsi
callq 0xc0e40
jmp 0x28e40
leaq 0xb8(%rsp), %rdi
callq 0xc0b70
leaq 0x2134fc(%rip), %rdi    # 0x23c350
leaq 0x258(%rsp), %rsi
callq 0xc0e40
jmp 0x28e63
jmp 0x28e8b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x250(%rsp)
movl %eax, 0x24c(%rsp)
leaq 0xb8(%rsp), %rdi
callq 0xc0b70
jmp 0x2901c
jmp 0x28fc3
movq 0x368(%rsp), %rax
movq (%rax), %rdi
leaq 0x19723d(%rip), %rsi    # 0x1c00df
callq 0x23e60
cmpl $0x0, %eax
jne 0x28eee
movq 0x368(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x368(%rsp)
movl 0x370(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x370(%rsp)
movq 0x368(%rsp), %rax
movq (%rax), %rdi
callq 0x23ca0
movsd %xmm0, 0x2135af(%rip)   # 0x23c498
jmp 0x28fc1
movq 0x368(%rsp), %rax
movq (%rax), %rdi
leaq 0x1971f0(%rip), %rsi    # 0x1c00f0
callq 0x23e60
cmpl $0x0, %eax
jne 0x28f43
movl 0x370(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x370(%rsp)
movq 0x368(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x368(%rsp)
movq 0x368(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x213527(%rip)    # 0x23c468
jmp 0x28fbf
movq 0x368(%rsp), %rax
movq (%rax), %rdi
leaq 0x1971a7(%rip), %rsi    # 0x1c00fc
callq 0x23e60
cmpl $0x0, %eax
jne 0x28f98
movq 0x368(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x368(%rsp)
movl 0x370(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x370(%rsp)
movq 0x368(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x2134da(%rip)    # 0x23c470
jmp 0x28fbd
movq 0x368(%rsp), %rax
movq (%rax), %rsi
leaq 0x19715a(%rip), %rdi    # 0x1c0104
xorl %eax, %eax
callq 0x1254f0
jmp 0x28fb3
movl $0x1, %edi
callq 0x23c00
jmp 0x28fbf
jmp 0x28fc1
jmp 0x28fc3
jmp 0x28fc5
jmp 0x28fc7
jmp 0x28fc9
jmp 0x28fcb
jmp 0x28fcd
jmp 0x28fcf
jmp 0x28fd1
jmp 0x28fd3
jmp 0x28fd5
jmp 0x28fd7
jmp 0x28fd9
jmp 0x28fdb
jmp 0x28fdd
jmp 0x28fdf
jmp 0x28fe1
jmp 0x28fe3
jmp 0x28fe5
movq 0x368(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x368(%rsp)
movl 0x370(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x370(%rsp)
leaq 0x258(%rsp), %rdi
callq 0xc0b70
jmp 0x290b4
leaq 0x258(%rsp), %rdi
callq 0xc0b70
jmp 0x29102
cmpq $0x0, 0x21342a(%rip)    # 0x23c460
jne 0x2904c
movq 0x368(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x213416(%rip)    # 0x23c460
jmp 0x2908f
cmpq $0x0, 0x21344c(%rip)    # 0x23c4a0
jne 0x2906a
movq 0x368(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x213438(%rip)    # 0x23c4a0
jmp 0x2908d
movq 0x368(%rsp), %rax
movq (%rax), %rsi
leaq 0x197088(%rip), %rdi    # 0x1c0104
movb $0x0, %al
callq 0x1254f0
movl $0x1, %edi
callq 0x23c00
jmp 0x2908f
movq 0x368(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x368(%rsp)
movl 0x370(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x370(%rsp)
jmp 0x282db
cmpq $0x0, 0x21339f(%rip)    # 0x23c460
je 0x290cd
cmpq $0x0, 0x2133d5(%rip)    # 0x23c4a0
jne 0x290e8
leaq 0x19704d(%rip), %rdi    # 0x1c0121
movb $0x0, %al
callq 0x1254f0
movl $0x0, 0x374(%rsp)
jmp 0x290f3
movl $0x1, 0x374(%rsp)
movl 0x374(%rsp), %eax
addq $0x378, %rsp            # imm = 0x378
retq
movq 0x250(%rsp), %rdi
callq 0x24210
nop