// File: /workspace/github_cpp_makefile_star2_O3/tomfunkhouser[P]gaps/apps/mshalign/mshalign.cpp
// Function: main
int main(int argc, char **argv)
{
  // Check number of arguments
  if (!ParseArgs(argc, argv)) exit(1);

  // Read mesh1
  R3Mesh *mesh1 = ReadMesh(input1_name);
  if (!mesh1) exit(-1);

  // Read weights1
  int nweights1 = 0;
  RNScalar *weights1 = NULL;
  if (weights1_name) {
    if (!ReadWeights(weights1_name, weights1, nweights1)) exit(-1);
  }

  // Check if aligning to second model
  if (input2_name) {
    // Read mesh2
    R3Mesh *mesh2 = ReadMesh(input2_name);
    if (!mesh2) exit(-1);

    // Read weights2
    int nweights2 = 0;
    RNScalar *weights2 = NULL;
    if (weights2_name) {
      if (!ReadWeights(weights2_name, weights2, nweights2)) exit(-1);
    }

    // Align mesh1 to mesh2
    if (!Align(mesh1, mesh2, 
      weights1, nweights1, weights2, nweights2,
      egi_rotation,
      pca_translation, pca_rotation, pca_scale, 
      ransac_translation, ransac_rotation, ransac_scale, 
      icp_translation, icp_rotation, icp_scale,
      sample_method)) 
      exit(-1);
  }
  else {
    // Align mesh1 to canonical coordinate system
    if (!Align(mesh1, egi_rotation, pca_translation, pca_rotation, pca_scale)) exit(-1);
  }

  // Output mesh1
  if (!WriteMesh(mesh1, output1_name)) exit(-1);

  // Return success 
  return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xb28, %rsp            # imm = 0xB28
movq 0x6f3d4(%rip), %r12     # 0x7da88
movq 0x6f3dd(%rip), %rax     # 0x7da98
movq %rax, 0x8(%rsp)
movq 0x6f409(%rip), %rax     # 0x7dad0
movq %rax, 0x18(%rsp)
cmpl $0x2, %edi
jl 0xec17
movq %rsi, %rbp
movl %edi, %r13d
leaq 0x8(%rbp), %r15
leal -0x1(%r13), %r14d
movq 0x8(%rbp), %rbx
cmpb $0x2d, (%rbx)
jne 0xe9aa
cmpb $0x76, 0x1(%rbx)
jne 0xe700
cmpb $0x0, 0x2(%rbx)
je 0xea09
movq %rbx, %rdi
leaq 0x49946(%rip), %rsi     # 0x58050
callq 0xc4e0
testl %eax, %eax
je 0xe9dd
movq %rbx, %rdi
leaq 0x49936(%rip), %rsi     # 0x58057
callq 0xc4e0
testl %eax, %eax
je 0xe9f4
movq %rbx, %rdi
leaq 0x49929(%rip), %rsi     # 0x58061
callq 0xc4e0
testl %eax, %eax
je 0xea12
movq %rbx, %rdi
leaq 0x4991c(%rip), %rsi     # 0x5806b
callq 0xc4e0
testl %eax, %eax
je 0xea40
movq %rbx, %rdi
leaq 0x4990a(%rip), %rsi     # 0x58070
callq 0xc4e0
testl %eax, %eax
je 0xea5a
movq %rbx, %rdi
leaq 0x49904(%rip), %rsi     # 0x58081
callq 0xc4e0
testl %eax, %eax
je 0xea63
movq %rbx, %rdi
leaq 0x498fb(%rip), %rsi     # 0x5808f
callq 0xc4e0
testl %eax, %eax
je 0xea6f
movq %rbx, %rdi
leaq 0x498ef(%rip), %rsi     # 0x5809a
callq 0xc4e0
testl %eax, %eax
je 0xea78
movq %rbx, %rdi
leaq 0x498e0(%rip), %rsi     # 0x580a2
callq 0xc4e0
testl %eax, %eax
je 0xea8e
movq %rbx, %rdi
leaq 0x498dd(%rip), %rsi     # 0x580b6
callq 0xc4e0
testl %eax, %eax
je 0xea97
movq %rbx, %rdi
leaq 0x498d7(%rip), %rsi     # 0x580c7
callq 0xc4e0
testl %eax, %eax
je 0xeaa0
movq %rbx, %rdi
leaq 0x498ce(%rip), %rsi     # 0x580d5
callq 0xc4e0
testl %eax, %eax
je 0xeaa9
movq %rbx, %rdi
leaq 0x498bc(%rip), %rsi     # 0x580da
callq 0xc4e0
testl %eax, %eax
je 0xeac2
movq %rbx, %rdi
leaq 0x498b6(%rip), %rsi     # 0x580eb
callq 0xc4e0
testl %eax, %eax
je 0xeace
movq %rbx, %rdi
leaq 0x498ad(%rip), %rsi     # 0x580f9
callq 0xc4e0
testl %eax, %eax
je 0xeada
movq %rbx, %rdi
leaq 0x498a1(%rip), %rsi     # 0x58104
callq 0xc4e0
testl %eax, %eax
je 0xeae6
movq %rbx, %rdi
leaq 0x49892(%rip), %rsi     # 0x5810c
callq 0xc4e0
testl %eax, %eax
je 0xeb03
movq %rbx, %rdi
leaq 0x49883(%rip), %rsi     # 0x58114
callq 0xc4e0
testl %eax, %eax
je 0xeb1c
movq %rbx, %rdi
leaq 0x49877(%rip), %rsi     # 0x5811f
callq 0xc4e0
testl %eax, %eax
je 0xeb2c
movq %rbx, %rdi
leaq 0x49870(%rip), %rsi     # 0x5812f
callq 0xc4e0
testl %eax, %eax
je 0xeb45
movq %rbx, %rdi
leaq 0x49866(%rip), %rsi     # 0x5813c
callq 0xc4e0
testl %eax, %eax
je 0xeb51
movq %rbx, %rdi
leaq 0x49859(%rip), %rsi     # 0x58146
callq 0xc4e0
testl %eax, %eax
je 0xeb6a
movq %rbx, %rdi
leaq 0x49852(%rip), %rsi     # 0x58156
callq 0xc4e0
testl %eax, %eax
je 0xeb87
movq %rbx, %rdi
leaq 0x49847(%rip), %rsi     # 0x58162
callq 0xc4e0
testl %eax, %eax
je 0xeba3
movq %rbx, %rdi
leaq 0x4983c(%rip), %rsi     # 0x5816e
callq 0xc4e0
testl %eax, %eax
je 0xebc1
movq %rbx, %rdi
leaq 0x4983c(%rip), %rsi     # 0x58185
callq 0xc4e0
testl %eax, %eax
je 0xebdd
movq %rbx, %rdi
leaq 0x49834(%rip), %rsi     # 0x58194
callq 0xc4e0
testl %eax, %eax
je 0xebf9
movq %rbx, %rdi
leaq 0x4982b(%rip), %rsi     # 0x581a2
callq 0xc4e0
testl %eax, %eax
je 0xec08
movq %rbx, %rdi
leaq 0x49822(%rip), %rsi     # 0x581b0
callq 0xc4e0
testl %eax, %eax
jne 0x1083c
movl $0x2, 0x6f127(%rip)     # 0x7dacc
jmp 0xea2b
testq %r12, %r12
je 0xe9d1
cmpq $0x0, 0x8(%rsp)
je 0xe9e6
cmpq $0x0, 0x18(%rsp)
jne 0x107d7
movq %rbx, 0x6f106(%rip)     # 0x7dad0
movq %rbx, 0x18(%rsp)
jmp 0xea2b
movq %rbx, 0x6f0b0(%rip)     # 0x7da88
movq %rbx, %r12
jmp 0xea2b
movb $0x1, 0x6f0f8(%rip)     # 0x7dadc
jmp 0xea2b
movq %rbx, 0x6f0ab(%rip)     # 0x7da98
movq %rbx, 0x8(%rsp)
jmp 0xea2b
addl $-0x2, %r13d
movq 0x10(%rbp), %rax
addq $0x10, %rbp
movq %rax, 0x6f089(%rip)     # 0x7da90
jmp 0xea25
movb $0x1, 0x6f0c8(%rip)     # 0x7dad8
jmp 0xea2b
addl $-0x2, %r13d
movq 0x10(%rbp), %rax
addq $0x10, %rbp
movq %rax, 0x6f07b(%rip)     # 0x7daa0
movl %r13d, %r14d
movq %rbp, %r15
movq %r15, %rbp
movl %r14d, %r13d
cmpl $0x1, %r14d
jg 0xe6db
jmp 0xec17
movb $0x1, %al
movb %al, 0x6f068(%rip)      # 0x7dab0
movl $0x1, 0x6f05a(%rip)     # 0x7daac
movb %al, 0x6f050(%rip)      # 0x7daa8
jmp 0xea2b
movb $0x1, 0x6f047(%rip)     # 0x7daa8
jmp 0xea2b
movl $0x1, 0x6f03f(%rip)     # 0x7daac
jmp 0xea2b
movb $0x1, 0x6f03a(%rip)     # 0x7dab0
jmp 0xea2b
movb $0x1, %al
movb %al, 0x6f03c(%rip)      # 0x7dabc
movb %al, 0x6f032(%rip)      # 0x7dab8
movb %al, 0x6f028(%rip)      # 0x7dab4
jmp 0xea2b
movb $0x1, 0x6f01f(%rip)     # 0x7dab4
jmp 0xea2b
movb $0x1, 0x6f01a(%rip)     # 0x7dab8
jmp 0xea2b
movb $0x1, 0x6f015(%rip)     # 0x7dabc
jmp 0xea2b
movb $0x1, %al
movb %al, 0x6f017(%rip)      # 0x7dac8
movb %al, 0x6f00d(%rip)      # 0x7dac4
movb %al, 0x6f003(%rip)      # 0x7dac0
jmp 0xea2b
movb $0x1, 0x6eff7(%rip)     # 0x7dac0
jmp 0xea2b
movb $0x1, 0x6efef(%rip)     # 0x7dac4
jmp 0xea2b
movb $0x1, 0x6efe7(%rip)     # 0x7dac8
jmp 0xea2b
xorl %eax, %eax
movb %al, 0x6efc2(%rip)      # 0x7dab0
movl $0x0, 0x6efb4(%rip)     # 0x7daac
movb %al, 0x6efaa(%rip)      # 0x7daa8
jmp 0xea2b
xorl %eax, %eax
movb %al, 0x6efbd(%rip)      # 0x7dac8
movb %al, 0x6efb3(%rip)      # 0x7dac4
movb %al, 0x6efa9(%rip)      # 0x7dac0
jmp 0xea2b
xorl %eax, %eax
movb %al, 0x6ef98(%rip)      # 0x7dabc
movb %al, 0x6ef8e(%rip)      # 0x7dab8
jmp 0xeb3a
xorl %eax, %eax
movb %al, 0x6ef74(%rip)      # 0x7daa8
movb %al, 0x6ef86(%rip)      # 0x7dac0
movb %al, 0x6ef74(%rip)      # 0x7dab4
jmp 0xea2b
movl $0x0, 0x6ef5d(%rip)     # 0x7daac
jmp 0xeb74
xorl %eax, %eax
movb %al, 0x6ef57(%rip)      # 0x7dab0
movb %al, 0x6ef69(%rip)      # 0x7dac8
movb %al, 0x6ef57(%rip)      # 0x7dabc
jmp 0xea2b
movl $0x2, 0x6ef38(%rip)     # 0x7daac
xorl %eax, %eax
movb %al, 0x6ef48(%rip)      # 0x7dac4
movb %al, 0x6ef36(%rip)      # 0x7dab8
jmp 0xea2b
addl $-0x2, %r13d
movq 0x10(%rbp), %rdi
addq $0x10, %rbp
callq 0xc570
movl %eax, 0x6e7f2(%rip)     # 0x7d390
jmp 0xea25
addl $-0x2, %r13d
movq 0x10(%rbp), %rdi
addq $0x10, %rbp
callq 0xc470
movsd %xmm0, 0x6ef24(%rip)    # 0x7dae0
jmp 0xea25
addl $-0x2, %r13d
movq 0x10(%rbp), %rdi
addq $0x10, %rbp
callq 0xc570
movl %eax, 0x6ef10(%rip)     # 0x7dae8
jmp 0xea25
addl $-0x2, %r13d
movq 0x10(%rbp), %rdi
addq $0x10, %rbp
callq 0xc570
movl %eax, 0x6eed8(%rip)     # 0x7dacc
jmp 0xea25
movl $0x0, 0x6eec9(%rip)     # 0x7dacc
jmp 0xea2b
movl $0x1, 0x6eeba(%rip)     # 0x7dacc
jmp 0xea2b
cmpb $0x0, 0x6ee8a(%rip)     # 0x7daa8
jne 0xec92
cmpl $0x0, 0x6ee85(%rip)     # 0x7daac
jne 0xec92
testb $0x1, 0x6ee80(%rip)     # 0x7dab0
jne 0xec92
testb $0x1, 0x6ee7b(%rip)     # 0x7dab4
jne 0xec92
testb $0x1, 0x6ee76(%rip)     # 0x7dab8
jne 0xec92
testb $0x1, 0x6ee71(%rip)     # 0x7dabc
jne 0xec92
testb $0x1, 0x6ee6c(%rip)     # 0x7dac0
jne 0xec92
testb $0x1, 0x6ee67(%rip)     # 0x7dac4
jne 0xec92
testb $0x1, 0x6ee62(%rip)     # 0x7dac8
jne 0xec92
movb $0x1, %al
movb %al, 0x6ee40(%rip)      # 0x7dab0
movl $0x1, 0x6ee32(%rip)     # 0x7daac
movb %al, 0x6ee28(%rip)      # 0x7daa8
movb %al, 0x6ee42(%rip)      # 0x7dac8
movb %al, 0x6ee38(%rip)      # 0x7dac4
movb %al, 0x6ee2e(%rip)      # 0x7dac0
movq 0x8(%rsp), %rsi
testq %rsi, %rsi
sete %al
movq 0x18(%rsp), %rdx
testq %rdx, %rdx
setne %cl
orb %al, %cl
jne 0xecc1
movq %rsi, 0x6ee1d(%rip)     # 0x7dad0
movq $0x0, 0x6edda(%rip) # 0x7da98
movq %rsi, %rdx
testq %r12, %r12
je 0x107ea
testq %rdx, %rdx
je 0x107ea
movq %r12, %rdi
callq 0x10acd
movq %rax, 0x10(%rsp)
testq %rax, %rax
je 0x10800
movl $0x0, 0xac(%rsp)
movq $0x0, 0x110(%rsp)
movq 0x6ed89(%rip), %rdi     # 0x7da90
testq %rdi, %rdi
je 0xed2a
leaq 0x110(%rsp), %rsi
leaq 0xac(%rsp), %rdx
callq 0x10bba
testq %rax, %rax
je 0x10804
movq 0x6ed67(%rip), %rdi     # 0x7da98
testq %rdi, %rdi
je 0xedac
callq 0x10acd
movq %rax, 0x50(%rsp)
testq %rax, %rax
je 0x10806
movl $0x0, 0xa8(%rsp)
movq $0x0, 0x108(%rsp)
movq 0x6ed39(%rip), %rdi     # 0x7daa0
testq %rdi, %rdi
je 0xef8d
leaq 0x108(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0x10bba
testq %rax, %rax
je 0x10832
movq 0x108(%rsp), %rax
movq %rax, 0x68(%rsp)
movl 0xa8(%rsp), %eax
movq %rax, 0x20(%rsp)
jmp 0xef9f
movzbl 0x6ecf5(%rip), %ebx     # 0x7daa8
movl 0x6ecf2(%rip), %r15d    # 0x7daac
movzbl 0x6ecef(%rip), %ebp     # 0x7dab0
leaq 0x4c8(%rsp), %r14
movq %r14, %rdi
callq 0x54c8c
movq %r14, %rdi
xorl %esi, %esi
callq 0xc5b0
leaq 0x6c1d6(%rip), %rax     # 0x7afb8
addq $0x10, %rax
leaq 0x288(%rsp), %rdi
movq %rax, -0x8(%rdi)
leaq 0x6f2b7(%rip), %r14     # 0x7e0b0
leaq 0x8(%r14), %rsi
callq 0x3e48e
movl $0x88, %esi
leaq 0x280(%rsp), %rdi
addq %rsi, %rdi
addq 0x6e1c7(%rip), %rsi     # 0x7cfe0
callq 0x3e48e
movq 0x108(%r14), %rax
movq %rax, 0x388(%rsp)
movl %r15d, %eax
orl %ebx, %eax
orl %ebp, %eax
je 0xee8f
xorl %ecx, %ecx
cmpl $0x1, %r15d
sete %cl
leaq 0x160(%rsp), %rdi
movq 0x10(%rsp), %r14
movq %r14, %rsi
movl %ebx, %edx
movl %ebp, %r8d
callq 0x23060
movq (%r14), %rax
leaq 0x160(%rsp), %rsi
movq %r14, %rdi
callq *0x118(%rax)
leaq 0x280(%rsp), %rdi
leaq 0x160(%rsp), %rsi
callq 0x3c366
leaq 0x160(%rsp), %rdi
callq 0x3c1f8
cmpb $0x1, 0x6ec42(%rip)     # 0x7dad8
jne 0xef7b
leaq 0x49682(%rip), %rdi     # 0x58525
callq 0xc560
leaq 0x4c8(%rsp), %rdi
callq 0x54cee
leaq 0x49339(%rip), %rdi     # 0x581f5
movb $0x1, %al
callq 0xc070
leaq 0x280(%rsp), %rbx
movsd 0x8(%rbx), %xmm0
movsd 0x10(%rbx), %xmm1
movsd 0x18(%rbx), %xmm2
movsd 0x20(%rbx), %xmm3
leaq 0x49473(%rip), %rdi     # 0x58359
movb $0x4, %al
callq 0xc070
movsd 0x28(%rbx), %xmm0
movsd 0x30(%rbx), %xmm1
movsd 0x38(%rbx), %xmm2
movsd 0x40(%rbx), %xmm3
leaq 0x49471(%rip), %rdi     # 0x58379
movb $0x4, %al
callq 0xc070
movsd 0x48(%rbx), %xmm0
movsd 0x50(%rbx), %xmm1
movsd 0x58(%rbx), %xmm2
movsd 0x60(%rbx), %xmm3
leaq 0x4946f(%rip), %rdi     # 0x58399
movb $0x4, %al
callq 0xc070
movsd 0x68(%rbx), %xmm0
movsd 0x70(%rbx), %xmm1
movsd 0x78(%rbx), %xmm2
movsd 0x80(%rbx), %xmm3
leaq 0x4946a(%rip), %rdi     # 0x583b9
movb $0x4, %al
callq 0xc070
movq %rbx, %rdi
callq 0x3c2a2
leaq 0x49474(%rip), %rdi     # 0x583d9
movb $0x1, %al
callq 0xc070
movq 0x6e015(%rip), %rax     # 0x7cf88
movq (%rax), %rdi
callq 0xc430
leaq 0x280(%rsp), %rdi
callq 0x3c1f8
jmp 0xfaf4
movq $0x0, 0x20(%rsp)
movq $0x0, 0x68(%rsp)
movq 0x110(%rsp), %rax
movq %rax, 0x8(%rsp)
movl 0xac(%rsp), %r12d
movb 0x6eaee(%rip), %al      # 0x7daa8
movb %al, 0x80(%rsp)
movl 0x6eae4(%rip), %r14d    # 0x7daac
movb 0x6eae2(%rip), %al      # 0x7dab0
movb %al, 0x40(%rsp)
movzbl 0x6eadb(%rip), %eax     # 0x7dab4
movl %eax, 0xa4(%rsp)
movzbl 0x6ead1(%rip), %eax     # 0x7dab8
movl %eax, 0xa0(%rsp)
movzbl 0x6eac7(%rip), %eax     # 0x7dabc
movq %rax, 0xf0(%rsp)
movzbl 0x6eabc(%rip), %eax     # 0x7dac0
movq %rax, 0xc0(%rsp)
movzbl 0x6eab1(%rip), %eax     # 0x7dac4
movq %rax, 0xb8(%rsp)
movzbl 0x6eaa6(%rip), %eax     # 0x7dac8
movq %rax, 0xb0(%rsp)
movl 0x6ea9b(%rip), %r15d    # 0x7dacc
leaq 0x270(%rsp), %rbx
movq %rbx, %rdi
callq 0x54c8c
movq %rbx, %rdi
xorl %esi, %esi
callq 0xc5b0
leaq 0x6bf66(%rip), %rax     # 0x7afb8
addq $0x10, %rax
leaq 0x5e0(%rsp), %rdi
movq %rax, 0x18(%rsp)
movq %rax, -0x8(%rdi)
leaq 0x6f042(%rip), %rbp     # 0x7e0b0
leaq 0x8(%rbp), %rsi
movq %rsi, 0x38(%rsp)
callq 0x3e48e
movl $0x88, %esi
leaq 0x5d8(%rsp), %rdi
addq %rsi, %rdi
addq 0x6df4d(%rip), %rsi     # 0x7cfe0
movq %rdi, 0xe0(%rsp)
callq 0x3e48e
movq 0x108(%rbp), %rax
movq %rax, 0x6e0(%rsp)
leaq 0x958(%rsp), %rdi
movq 0x18(%rsp), %rax
movq %rax, -0x8(%rdi)
movq 0x38(%rsp), %rsi
callq 0x3e48e
movl $0x88, %esi
leaq 0x950(%rsp), %rax
leaq (%rax,%rsi), %rdi
addq 0x6defe(%rip), %rsi     # 0x7cfe0
movq %rdi, 0xd8(%rsp)
callq 0x3e48e
movq 0x108(%rbp), %rax
movq %rax, 0xa58(%rsp)
leaq 0x118(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x22480
movsd 0x48ef0(%rip), %xmm0    # 0x58008
movapd %xmm0, 0x130(%rsp)
testb $0x1, 0x40(%rsp)
je 0xf13a
leaq 0x118(%rsp), %rsi
movq 0x10(%rsp), %rdi
callq 0x226ae
testb $0x1, 0x40(%rsp)
je 0xf16f
movsd 0x48ebf(%rip), %xmm3    # 0x58008
movapd %xmm3, %xmm1
divsd %xmm0, %xmm1
xorpd %xmm2, %xmm2
cmpltsd %xmm0, %xmm2
andpd %xmm2, %xmm1
andnpd %xmm3, %xmm2
orpd %xmm1, %xmm2
movapd %xmm2, 0x130(%rsp)
cmpl $0x1, %r14d
jne 0xf193
leaq 0x7f8(%rsp), %rdi
leaq 0x118(%rsp), %rdx
movq 0x10(%rsp), %rsi
xorl %ecx, %ecx
callq 0x22ab2
jmp 0xf1a7
leaq 0x6f0ce(%rip), %rsi     # 0x7e268
leaq 0x7f8(%rsp), %rdi
callq 0x3cd16
movslq 0x6e1e2(%rip), %rbx     # 0x7d390
movl $0x18, %ecx
movq %rbx, %rax
mulq %rcx
movq $-0x1, %r13
cmovnoq %rax, %r13
movq %r13, %rdi
callq 0xc030
movq %rax, 0x30(%rsp)
testl %ebx, %ebx
je 0xf206
shlq $0x3, %rbx
leaq (%rbx,%rbx,2), %rbx
xorl %ebp, %ebp
movq 0x30(%rsp), %rax
leaq (%rax,%rbp), %rdi
callq 0x41b90
addq $0x18, %rbp
cmpq %rbp, %rbx
jne 0xf1df
movl 0x6e193(%rip), %r8d     # 0x7d390
leaq 0x6eeac(%rip), %rbp     # 0x7e0b0
jmp 0xf209
xorl %r8d, %r8d
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
movl %r12d, %edx
movq 0x30(%rsp), %rcx
movl %r15d, %r13d
movl %r15d, %r9d
callq 0x10d61
movq %rax, 0x48(%rsp)
xorpd %xmm0, %xmm0
movapd 0x130(%rsp), %xmm1
ucomisd %xmm0, %xmm1
jne 0xf244
jnp 0x10808
cmpl $0x0, 0x48(%rsp)
je 0x10808
leaq 0x148(%rsp), %rdi
movq 0x50(%rsp), %rsi
callq 0x22480
testb $0x1, 0x40(%rsp)
je 0xf282
leaq 0x148(%rsp), %rsi
movq 0x50(%rsp), %rdi
callq 0x226ae
movsd %xmm0, 0x8(%rsp)
jmp 0xf290
movsd 0x48d7e(%rip), %xmm0    # 0x58008
movsd %xmm0, 0x8(%rsp)
cmpl $0x1, %r14d
jne 0xf2b4
leaq 0xa60(%rsp), %rdi
leaq 0x148(%rsp), %rdx
movq 0x50(%rsp), %rsi
xorl %ecx, %ecx
callq 0x22ab2
jmp 0xf2c8
leaq 0x6efad(%rip), %rsi     # 0x7e268
leaq 0xa60(%rsp), %rdi
callq 0x3cd16
leaq 0x848(%rsp), %rdi
movq 0x18(%rsp), %rax
movq %rax, -0x8(%rdi)
movq 0x38(%rsp), %rsi
callq 0x3e48e
movl $0x88, %esi
leaq 0x840(%rsp), %rdi
addq %rsi, %rdi
addq 0x6dce6(%rip), %rsi     # 0x7cfe0
movq %rdi, 0x98(%rsp)
callq 0x3e48e
movq 0x108(%rbp), %rax
movq %rax, 0x948(%rsp)
testb $0x1, 0x80(%rsp)
je 0xf365
movsd 0x148(%rsp), %xmm0
movsd 0x150(%rsp), %xmm1
movsd 0x158(%rsp), %xmm2
leaq 0x280(%rsp), %rdi
callq 0x42626
leaq 0x280(%rsp), %rsi
leaq 0x848(%rsp), %rdi
callq 0x3f5c8
andb $-0x3, 0x948(%rsp)
cmpl $0x1, %r14d
jne 0xf3b9
leaq 0x160(%rsp), %rdi
leaq 0xa60(%rsp), %rsi
callq 0x3ce9e
leaq 0x280(%rsp), %rdi
leaq 0x160(%rsp), %rsi
xorl %edx, %edx
callq 0x3c1aa
leaq 0x840(%rsp), %rdi
leaq 0x280(%rsp), %rsi
callq 0x3c366
leaq 0x280(%rsp), %rdi
callq 0x3c1f8
testb $0x1, 0x40(%rsp)
je 0xf3db
leaq 0x848(%rsp), %rdi
movsd 0x8(%rsp), %xmm0
callq 0x3f776
andb $-0x3, 0x948(%rsp)
movslq 0x6dfae(%rip), %rbx     # 0x7d390
movl $0x18, %ecx
movq %rbx, %rax
mulq %rcx
movq $-0x1, %r15
cmovnoq %rax, %r15
movq %r15, %rdi
callq 0xc030
movq %rax, 0x28(%rsp)
testl %ebx, %ebx
je 0xf434
shlq $0x3, %rbx
leaq (%rbx,%rbx,2), %rbx
xorl %r12d, %r12d
movq 0x28(%rsp), %rax
leaq (%rax,%r12), %rdi
callq 0x41b90
addq $0x18, %r12
cmpq %r12, %rbx
jne 0xf414
movl 0x6df5e(%rip), %r8d     # 0x7d390
jmp 0xf437
xorl %r8d, %r8d
movq 0x50(%rsp), %rdi
movq 0x68(%rsp), %rsi
movq 0x20(%rsp), %rdx
movq 0x28(%rsp), %rcx
movl %r13d, %r9d
callq 0x10d61
movq %rax, 0x20(%rsp)
xorpd %xmm0, %xmm0
movsd 0x8(%rsp), %xmm1
ucomisd %xmm0, %xmm1
jne 0xf46e
jnp 0xfab5
cmpl $0x0, 0x20(%rsp)
je 0xfab5
testl %r14d, %r14d
je 0xfbbe
movl $0x88, %ecx
leaq 0x280(%rsp), %rax
addq %rcx, %rax
movq %rax, 0x90(%rsp)
leaq 0x160(%rsp), %rax
addq %rcx, %rax
movq %rax, 0x60(%rsp)
movq 0xb8(%rsp), %rax
orl 0xc0(%rsp), %eax
orl 0xb0(%rsp), %eax
movl %eax, 0x88(%rsp)
leaq 0x4c8(%rsp), %rax
addq %rcx, %rax
movq %rax, 0x140(%rsp)
movsd 0x48b2e(%rip), %xmm0    # 0x58010
movsd %xmm0, 0x68(%rsp)
movl $0x1, 0x5c(%rsp)
leaq 0xaa8(%rsp), %r13
xorl %ecx, %ecx
leaq (%rcx,%rcx,2), %rax
leaq (%rsp,%rax,8), %rax
addq $0x7f8, %rax            # imm = 0x7F8
movq %rax, 0xc8(%rsp)
xorl %eax, %eax
movq %rcx, 0xf8(%rsp)
cmpq %rax, %rcx
movq %rax, 0x100(%rsp)
je 0xfa86
leaq (%rax,%rax,2), %rax
leaq (%rsp,%rax,8), %rax
addq $0x7f8, %rax            # imm = 0x7F8
movq %rax, 0x78(%rsp)
movl $0x0, 0xd0(%rsp)
movb $0x1, %al
movl $0x0, 0x74(%rsp)
movl %eax, 0xec(%rsp)
xorl %ebx, %ebx
movb $0x1, %r14b
xorl %r15d, %r15d
testb $0x1, 0xd0(%rsp)
je 0xf583
leaq 0x3b8(%rsp), %rdi
movq 0xc8(%rsp), %rsi
callq 0x42636
jmp 0xf598
leaq 0x3b8(%rsp), %rdi
movq 0xc8(%rsp), %rsi
callq 0x43260
testb $0x1, %bl
je 0xf5b4
movq %r13, %rdi
movq 0x78(%rsp), %rsi
callq 0x42636
leaq 0x3b8(%rsp), %rbx
jmp 0xf5c9
movq %r13, %rdi
movq 0x78(%rsp), %rsi
callq 0x43260
leaq 0x3b8(%rsp), %rbx
movq %r13, %r12
leaq 0x3a0(%rsp), %rbp
movq %rbp, %rdi
movq %rbx, %rsi
movq %r13, %rdx
callq 0x42f5a
leaq 0x6e8(%rsp), %rdi
movq %rbx, %rsi
movq %r12, %r13
movq %r12, %rdx
movq %rbp, %rcx
callq 0x3cd68
movq 0x18(%rsp), %rax
movq %rax, 0x280(%rsp)
leaq 0x288(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0x3e48e
leaq 0x6ea8f(%rip), %rbx     # 0x7e0b0
movl $0x88, %eax
leaq (%rax,%rbx), %rsi
movq 0x90(%rsp), %rdi
callq 0x3e48e
movq 0x108(%rbx), %rax
movq %rax, 0x388(%rsp)
testb $0x1, 0x40(%rsp)
leaq 0x160(%rsp), %rbx
je 0xf673
leaq 0x288(%rsp), %rdi
movapd 0x130(%rsp), %xmm0
callq 0x3f776
andb $-0x3, 0x388(%rsp)
leaq 0x4c8(%rsp), %r12
movq %r12, %rdi
leaq 0x6e8(%rsp), %rsi
callq 0x3cf18
movq %rbx, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x3c1aa
leaq 0x280(%rsp), %rdi
movq %rbx, %rsi
callq 0x3c366
movq %rbx, %rdi
callq 0x3c1f8
testb $0x1, 0x80(%rsp)
je 0xf70a
movsd 0x118(%rsp), %xmm0
movsd 0x120(%rsp), %xmm1
movsd 0x128(%rsp), %xmm2
leaq 0x4c8(%rsp), %rdi
callq 0x42626
movq %rbx, %rdi
leaq 0x4c8(%rsp), %rsi
callq 0x43260
leaq 0x288(%rsp), %rdi
movq %rbx, %rsi
callq 0x3f5c8
andb $-0x3, 0x388(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x160(%rsp)
leaq 0x168(%rsp), %rdi
leaq 0x848(%rsp), %rsi
callq 0x3e48e
movq 0x60(%rsp), %rdi
movq 0x98(%rsp), %rsi
callq 0x3e48e
movq 0x948(%rsp), %rax
movq %rax, 0x268(%rsp)
movq %rbx, %rdi
leaq 0x280(%rsp), %rsi
callq 0x3c366
movq %rbx, %rdi
callq 0x3c216
movl 0x268(%rsp), %edx
andl $0x1, %edx
leaq 0x4c8(%rsp), %rdi
movq %rax, %rsi
callq 0x3c1aa
cmpl $0x0, 0x88(%rsp)
je 0xf7d8
subq $0x8, %rsp
movq 0x18(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x50(%rsp), %rdx
movq 0x58(%rsp), %rcx
movq 0x30(%rsp), %r8
movq 0x28(%rsp), %r9
pushq 0xb8(%rsp)
pushq 0xc8(%rsp)
pushq 0xd8(%rsp)
leaq 0x4e8(%rsp), %rax
pushq %rax
pushq %rbx
callq 0x1158f
addq $0x30, %rsp
movl %eax, %ebx
jmp 0xf7da
xorl %ebx, %ebx
movq 0x10(%rsp), %rdi
movq 0x30(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq 0x50(%rsp), %rcx
movq 0x28(%rsp), %r8
movq 0x20(%rsp), %r9
leaq 0x4c8(%rsp), %rax
pushq %rax
leaq 0x168(%rsp), %rax
pushq %rax
callq 0x1187e
addq $0x10, %rsp
movsd %xmm0, 0x8(%rsp)
movsd 0x68(%rsp), %xmm0
ucomisd 0x8(%rsp), %xmm0
jbe 0xf8ac
leaq 0x5e0(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x40072
movq 0xe0(%rsp), %rdi
movq 0x60(%rsp), %rsi
callq 0x40072
movq 0x268(%rsp), %rax
movq %rax, 0x6e0(%rsp)
leaq 0x958(%rsp), %rdi
leaq 0x4d0(%rsp), %rsi
callq 0x40072
movq 0xd8(%rsp), %rdi
movq 0x140(%rsp), %rsi
callq 0x40072
movq 0x5d0(%rsp), %rax
movq %rax, 0xa58(%rsp)
movsd 0x8(%rsp), %xmm0
movsd %xmm0, 0x68(%rsp)
movl %ebx, 0x5c(%rsp)
cmpb $0x1, 0x6e229(%rip)     # 0x7dadc
jne 0xfa23
leaq 0x48a4a(%rip), %rdi     # 0x5830a
movq 0xf8(%rsp), %rsi
movq 0x100(%rsp), %rdx
movl 0x74(%rsp), %ecx
movl %r15d, %r8d
xorl %eax, %eax
callq 0xc070
leaq 0x270(%rsp), %rdi
callq 0x54cee
leaq 0x48903(%rip), %rdi     # 0x581f5
movb $0x1, %al
callq 0xc070
movl 0x6da91(%rip), %esi     # 0x7d390
leaq 0x48a40(%rip), %rdi     # 0x58346
xorl %eax, %eax
callq 0xc070
movsd 0x168(%rsp), %xmm0
movsd 0x170(%rsp), %xmm1
movsd 0x178(%rsp), %xmm2
movsd 0x180(%rsp), %xmm3
leaq 0x48a21(%rip), %rdi     # 0x58359
movb $0x4, %al
callq 0xc070
movsd 0x188(%rsp), %xmm0
movsd 0x190(%rsp), %xmm1
movsd 0x198(%rsp), %xmm2
movsd 0x1a0(%rsp), %xmm3
leaq 0x48a0f(%rip), %rdi     # 0x58379
movb $0x4, %al
callq 0xc070
movsd 0x1a8(%rsp), %xmm0
movsd 0x1b0(%rsp), %xmm1
movsd 0x1b8(%rsp), %xmm2
movsd 0x1c0(%rsp), %xmm3
leaq 0x489fd(%rip), %rdi     # 0x58399
movb $0x4, %al
callq 0xc070
movsd 0x1c8(%rsp), %xmm0
movsd 0x1d0(%rsp), %xmm1
movsd 0x1d8(%rsp), %xmm2
movsd 0x1e0(%rsp), %xmm3
leaq 0x489eb(%rip), %rdi     # 0x583b9
movb $0x4, %al
callq 0xc070
leaq 0x160(%rsp), %rdi
callq 0x3c2a2
leaq 0x489f0(%rip), %rdi     # 0x583d9
movb $0x1, %al
callq 0xc070
leaq 0x489f0(%rip), %rdi     # 0x583e7
movl %ebx, %esi
xorl %eax, %eax
callq 0xc070
leaq 0x489f2(%rip), %rdi     # 0x583f9
movsd 0x8(%rsp), %xmm0
movb $0x1, %al
callq 0xc070
movq 0x6d56d(%rip), %rax     # 0x7cf88
movq (%rax), %rdi
callq 0xc430
leaq 0x4c8(%rsp), %rdi
callq 0x3c1f8
leaq 0x160(%rsp), %rdi
callq 0x3c1f8
leaq 0x280(%rsp), %rdi
callq 0x3c1f8
movl $0x1, %r15d
movb $0x1, %bl
testb $0x1, %r14b
movl $0x0, %r14d
jne 0xf562
movl $0x1, 0x74(%rsp)
movb $0x1, %al
movl %eax, 0xd0(%rsp)
testb $0x1, 0xec(%rsp)
movl $0x0, %eax
jne 0xf553
movq 0x100(%rsp), %rax
incq %rax
cmpq $0x3, %rax
movq 0xf8(%rsp), %rcx
jne 0xf51a
incq %rcx
cmpq $0x3, %rcx
jne 0xf4fa
jmp 0xfdee
movb $0x1, %bl
leaq 0x4882d(%rip), %rdi     # 0x582eb
xorl %eax, %eax
callq 0x573ee
leaq 0x840(%rsp), %rdi
callq 0x3c1f8
leaq 0x950(%rsp), %rdi
callq 0x3c1f8
leaq 0x5d8(%rsp), %rdi
callq 0x3c1f8
testb %bl, %bl
jne 0x10830
movq 0x6dfd5(%rip), %rbx     # 0x7dad0
leaq 0x280(%rsp), %r14
movq %r14, %rdi
callq 0x54c8c
movq %r14, %rdi
xorl %esi, %esi
callq 0xc5b0
movq 0x10(%rsp), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x1d0(%rax)
testl %eax, %eax
je 0x10802
cmpb $0x1, 0x6dfa3(%rip)     # 0x7dad8
jne 0xfbaa
leaq 0x4899f(%rip), %rdi     # 0x584dd
movq %rbx, %rsi
xorl %eax, %eax
callq 0xc070
leaq 0x280(%rsp), %rdi
callq 0x54cee
leaq 0x48699(%rip), %rdi     # 0x581f5
movb $0x1, %al
callq 0xc070
movq 0x10(%rsp), %rbx
movl 0x34(%rbx), %esi
leaq 0x4869a(%rip), %rdi     # 0x5820c
xorl %eax, %eax
callq 0xc070
movl 0x24(%rbx), %esi
leaq 0x48699(%rip), %rdi     # 0x5821c
xorl %eax, %eax
callq 0xc070
movl 0x14(%rbx), %esi
leaq 0x48698(%rip), %rdi     # 0x5822c
xorl %eax, %eax
callq 0xc070
movq 0x6d3e6(%rip), %rax     # 0x7cf88
movq (%rax), %rdi
callq 0xc430
xorl %eax, %eax
addq $0xb28, %rsp            # imm = 0xB28
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x288(%rsp), %rbx
movq 0x18(%rsp), %rax
movq %rax, -0x8(%rbx)
movq %rbx, %rdi
movq 0x38(%rsp), %rsi
callq 0x3e48e
movl $0x88, %esi
leaq 0x280(%rsp), %rdi
addq %rsi, %rdi
addq 0x6d3ed(%rip), %rsi     # 0x7cfe0
callq 0x3e48e
movq 0x108(%rbp), %rax
movq %rax, 0x388(%rsp)
testb $0x1, 0x40(%rsp)
leaq 0x950(%rsp), %r15
je 0xfc2f
movq %rbx, %rdi
movapd 0x130(%rsp), %xmm0
callq 0x3f776
andb $-0x3, 0x388(%rsp)
testb $0x1, 0x80(%rsp)
je 0xfc8e
movsd 0x118(%rsp), %xmm0
movsd 0x120(%rsp), %xmm1
movsd 0x128(%rsp), %xmm2
leaq 0x4c8(%rsp), %rdi
callq 0x42626
leaq 0x160(%rsp), %rdi
leaq 0x4c8(%rsp), %rsi
callq 0x43260
leaq 0x160(%rsp), %rsi
movq %rbx, %rdi
callq 0x3f5c8
andb $-0x3, 0x388(%rsp)
leaq 0x5e0(%rsp), %rdi
leaq 0x848(%rsp), %rsi
callq 0x40072
movq 0xe0(%rsp), %rdi
movq 0x98(%rsp), %rsi
callq 0x40072
movq 0x948(%rsp), %rax
leaq 0x5d8(%rsp), %rdi
movq %rax, 0x108(%rdi)
leaq 0x280(%rsp), %rsi
callq 0x3c366
leaq 0x5d8(%rsp), %rbx
movq %rbx, %rdi
callq 0x3c216
movl 0x6e0(%rsp), %edx
andl $0x1, %edx
leaq 0x160(%rsp), %rdi
movq %rax, %rsi
callq 0x3c1aa
leaq 0x168(%rsp), %rsi
leaq 0x958(%rsp), %rdi
callq 0x40072
leaq 0x1e8(%rsp), %rsi
movq 0xd8(%rsp), %rdi
callq 0x40072
leaq 0x160(%rsp), %rdi
movq 0x108(%rdi), %rax
movq %rax, 0xa58(%rsp)
callq 0x3c1f8
movq 0xb8(%rsp), %r11
movl %r11d, %eax
movq 0xc0(%rsp), %r10
orl %r10d, %eax
movq 0xb0(%rsp), %r14
orl %r14d, %eax
je 0xfda9
subq $0x8, %rsp
movq 0x18(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x50(%rsp), %rdx
movq 0x58(%rsp), %rcx
movq 0x30(%rsp), %r8
movq 0x28(%rsp), %r9
pushq %r14
pushq %r11
pushq %r10
pushq %r15
pushq %rbx
callq 0x1158f
addq $0x30, %rsp
movl %eax, 0x5c(%rsp)
jmp 0xfdb1
movl $0x1, 0x5c(%rsp)
movq 0x10(%rsp), %rdi
movq 0x30(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq 0x50(%rsp), %rcx
movq 0x28(%rsp), %r8
movq 0x20(%rsp), %r9
pushq %r15
pushq %rbx
callq 0x1187e
addq $0x10, %rsp
movsd %xmm0, 0x68(%rsp)
leaq 0x280(%rsp), %rdi
callq 0x3c1f8
movl 0xa0(%rsp), %eax
orl 0xa4(%rsp), %eax
orl 0xf0(%rsp), %eax
leaq 0x6e2a6(%rip), %r14     # 0x7e0b0
je 0x106a1
leaq 0x6f0(%rsp), %rdi
movq 0x18(%rsp), %rax
movq %rax, -0x8(%rdi)
movq 0x38(%rsp), %rsi
callq 0x3e48e
movl $0x88, %esi
leaq 0x6e8(%rsp), %rax
leaq (%rax,%rsi), %rdi
addq 0x6d19d(%rip), %rsi     # 0x7cfe0
movq %rdi, 0x90(%rsp)
callq 0x3e48e
movq 0x108(%r14), %rax
movq %rax, 0x7f0(%rsp)
leaq 0x3c0(%rsp), %rdi
movq 0x18(%rsp), %rax
movq %rax, -0x8(%rdi)
movq 0x38(%rsp), %rsi
callq 0x3e48e
movl $0x88, %esi
leaq 0x3b8(%rsp), %rax
leaq (%rax,%rsi), %rdi
addq 0x6d14e(%rip), %rsi     # 0x7cfe0
movq %rdi, 0x88(%rsp)
callq 0x3e48e
movq 0x108(%r14), %rax
movq %rax, 0x4c0(%rsp)
cmpl $0x3, 0x48(%rsp)
setl %al
cmpl $0x3, 0x20(%rsp)
setl %cl
orb %al, %cl
movb %cl, 0x74(%rsp)
jne 0x1067a
leaq 0x390(%rsp), %rdi
callq 0x54c8c
leaq 0x390(%rsp), %rdi
xorl %esi, %esi
callq 0xc5b0
leaq 0x6f0(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0x40072
movl $0x88, %esi
addq 0x6d0dc(%rip), %rsi     # 0x7cfe0
movq 0x90(%rsp), %rdi
callq 0x40072
movq 0x108(%r14), %rax
movq %rax, 0x7f0(%rsp)
leaq 0x3c0(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0x40072
movl $0x88, %esi
addq 0x6d0a2(%rip), %rsi     # 0x7cfe0
movq 0x88(%rsp), %rdi
callq 0x40072
movq 0x108(%r14), %rax
movq %rax, 0x4c0(%rsp)
movq 0x48(%rsp), %rax
movq 0x20(%rsp), %rcx
addl %ecx, %eax
shlq $0x3, %rax
leaq (%rax,%rax,2), %r15
movq %r15, %rdi
callq 0xc030
movq %rax, 0x78(%rsp)
xorl %ebx, %ebx
movq 0x78(%rsp), %rax
leaq (%rax,%rbx), %rdi
callq 0x41b90
addq $0x18, %rbx
cmpq %rbx, %r15
jne 0xff7d
movq %r15, %rdi
callq 0xc030
movq %rax, 0x40(%rsp)
xorl %ebx, %ebx
movq 0x40(%rsp), %rax
leaq (%rax,%rbx), %rdi
callq 0x41b90
addq $0x18, %rbx
cmpq %rbx, %r15
jne 0xffa3
movq 0x10(%rsp), %rdi
xorl %esi, %esi
callq 0x226ae
movsd %xmm0, 0x60(%rsp)
leaq 0x288(%rsp), %rdi
movq 0x18(%rsp), %rax
movq %rax, -0x8(%rdi)
movq 0x38(%rsp), %rsi
callq 0x3e48e
movl $0x88, %esi
leaq 0x280(%rsp), %rdi
addq %rsi, %rdi
addq 0x6cfe2(%rip), %rsi     # 0x7cfe0
movq %rdi, 0x98(%rsp)
callq 0x3e48e
cvtsi2sdl 0x48(%rsp), %xmm1
movsd 0x47fff(%rip), %xmm0    # 0x58018
cvtsi2sdl 0x20(%rsp), %xmm2
movsd %xmm1, 0x8(%rsp)
mulsd %xmm1, %xmm0
movsd %xmm2, 0x18(%rsp)
mulsd %xmm2, %xmm0
cvttsd2si %xmm0, %ecx
movq 0x108(%r14), %rax
movq %rax, 0x388(%rsp)
movl %ecx, 0xc8(%rsp)
testl %ecx, %ecx
jle 0x1047a
movsd 0x60(%rsp), %xmm1
mulsd 0x47fbd(%rip), %xmm1    # 0x58020
movapd %xmm1, %xmm0
addsd %xmm1, %xmm0
mulsd %xmm1, %xmm0
movsd 0x47fb1(%rip), %xmm1    # 0x58028
divsd %xmm0, %xmm1
movsd %xmm1, 0xd0(%rsp)
xorl %ebx, %ebx
xorpd %xmm0, %xmm0
movsd %xmm0, 0x80(%rsp)
movq %rbx, 0x38(%rsp)
callq 0x57004
mulsd 0x8(%rsp), %xmm0
cvttsd2si %xmm0, %r14d
callq 0x57004
mulsd 0x8(%rsp), %xmm0
cvttsd2si %xmm0, %ebp
cmpl %r14d, %ebp
je 0x100a8
callq 0x57004
mulsd 0x8(%rsp), %xmm0
cvttsd2si %xmm0, %r13d
cmpl %r14d, %r13d
sete %al
cmpl %ebp, %r13d
sete %cl
orb %al, %cl
jne 0x100bc
callq 0x57004
mulsd 0x18(%rsp), %xmm0
cvttsd2si %xmm0, %r15d
callq 0x57004
mulsd 0x18(%rsp), %xmm0
cvttsd2si %xmm0, %ebx
cmpl %r15d, %ebx
je 0x100ec
callq 0x57004
mulsd 0x18(%rsp), %xmm0
cvttsd2si %xmm0, %r12d
cmpl %r15d, %r12d
sete %al
cmpl %ebx, %r12d
sete %cl
orb %al, %cl
jne 0x10100
movb 0x6d9fa(%rip), %al      # 0x7db20
testb %al, %al
je 0x103e4
leaq 0x6d9db(%rip), %rdi     # 0x7db10
xorl %esi, %esi
callq 0x55488
movslq %r14d, %rax
leaq (%rax,%rax,2), %rax
movq 0x30(%rsp), %rcx
leaq (%rcx,%rax,8), %rsi
movl 0x6d9ca(%rip), %edx     # 0x7db1c
leaq 0x6d9b7(%rip), %rdi     # 0x7db10
callq 0x552be
movslq %ebp, %rax
leaq (%rax,%rax,2), %rax
movq 0x30(%rsp), %rcx
leaq (%rcx,%rax,8), %rsi
movl 0x6d9a8(%rip), %edx     # 0x7db1c
leaq 0x6d995(%rip), %rdi     # 0x7db10
callq 0x552be
movslq %r13d, %rax
leaq (%rax,%rax,2), %rax
movq 0x30(%rsp), %rcx
leaq (%rcx,%rax,8), %rsi
movl 0x6d986(%rip), %edx     # 0x7db1c
leaq 0x6d973(%rip), %rdi     # 0x7db10
callq 0x552be
movb 0x6d990(%rip), %al      # 0x7db38
testb %al, %al
je 0x1042f
leaq 0x6d971(%rip), %rdi     # 0x7db28
xorl %esi, %esi
callq 0x55488
movslq %r15d, %rax
leaq (%rax,%rax,2), %rax
movq 0x28(%rsp), %rcx
leaq (%rcx,%rax,8), %rsi
movl 0x6d960(%rip), %edx     # 0x7db34
leaq 0x6d94d(%rip), %rdi     # 0x7db28
callq 0x552be
movslq %ebx, %rax
leaq (%rax,%rax,2), %rax
movq 0x28(%rsp), %rcx
leaq (%rcx,%rax,8), %rsi
movl 0x6d93e(%rip), %edx     # 0x7db34
leaq 0x6d92b(%rip), %rdi     # 0x7db28
callq 0x552be
movslq %r12d, %rax
leaq (%rax,%rax,2), %rax
movq 0x28(%rsp), %rcx
leaq (%rcx,%rax,8), %rsi
movl 0x6d91c(%rip), %edx     # 0x7db34
leaq 0x6d909(%rip), %rdi     # 0x7db28
callq 0x552be
subq $0x8, %rsp
leaq 0xab0(%rsp), %rbx
movq %rbx, %rdi
leaq 0x6d8d6(%rip), %rsi     # 0x7db10
leaq 0x6d8e7(%rip), %rdx     # 0x7db28
xorl %ecx, %ecx
movl 0xac(%rsp), %r8d
movl 0xa8(%rsp), %r9d
pushq 0xf8(%rsp)
callq 0x20bd5
addq $0x10, %rsp
leaq 0x160(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rsi
xorl %edx, %edx
callq 0x3c1aa
movq %r14, %rdi
callq 0x3c216
leaq 0x4c8(%rsp), %rbx
movl 0x268(%rsp), %edx
andl $0x1, %edx
movq %rbx, %rdi
movq %rax, %rsi
callq 0x3c1aa
movq 0x10(%rsp), %rdi
movq 0x30(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq 0x50(%rsp), %rcx
movq 0x28(%rsp), %r8
movq 0x20(%rsp), %r9
pushq 0x40(%rsp)
pushq 0x80(%rsp)
pushq %r14
pushq %rbx
callq 0x11a3c
addq $0x20, %rsp
testl %eax, %eax
jle 0x10348
movl %eax, %r14d
xorpd %xmm0, %xmm0
movsd %xmm0, 0x60(%rsp)
movq 0x78(%rsp), %r15
movq 0x40(%rsp), %rbx
leaq 0x3a0(%rsp), %r12
movq %r12, %rdi
movq %rbx, %rsi
callq 0x41ba2
movq %r12, %rdi
leaq 0x160(%rsp), %rsi
callq 0x424a8
movq %r15, %rdi
movq %r12, %rsi
callq 0x1d2db
mulsd 0xd0(%rsp), %xmm0
callq 0xc630
movsd 0x60(%rsp), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, 0x60(%rsp)
addq $0x18, %rbx
addq $0x18, %r15
decq %r14
jne 0x102ed
jmp 0x10352
xorpd %xmm0, %xmm0
movsd %xmm0, 0x60(%rsp)
movsd 0x60(%rsp), %xmm0
ucomisd 0x80(%rsp), %xmm0
movq 0x38(%rsp), %rbx
jbe 0x103b6
leaq 0x288(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x40072
movq 0x98(%rsp), %rdi
leaq 0x1e8(%rsp), %rsi
callq 0x40072
movq 0x268(%rsp), %rax
movq %rax, 0x388(%rsp)
movsd 0x60(%rsp), %xmm0
movsd %xmm0, 0x80(%rsp)
movq 0x38(%rsp), %rbx
leaq 0x4c8(%rsp), %rdi
callq 0x3c1f8
leaq 0x160(%rsp), %rdi
callq 0x3c1f8
incl %ebx
cmpl 0xc8(%rsp), %ebx
jne 0x10093
jmp 0x1047a
leaq 0x6d735(%rip), %rdi     # 0x7db20
callq 0xc650
testl %eax, %eax
je 0x1012e
leaq 0x6d711(%rip), %rdi     # 0x7db10
callq 0x55228
leaq 0x44e87(%rip), %rdi     # 0x55292
leaq 0x6d6fe(%rip), %rsi     # 0x7db10
leaq 0x6cf6f(%rip), %rdx     # 0x7d388
callq 0xc2f0
leaq 0x6d6fb(%rip), %rdi     # 0x7db20
callq 0xc260
jmp 0x1012e
leaq 0x6d702(%rip), %rdi     # 0x7db38
callq 0xc650
testl %eax, %eax
je 0x101b0
leaq 0x6d6de(%rip), %rdi     # 0x7db28
callq 0x55228
leaq 0x44e3c(%rip), %rdi     # 0x55292
leaq 0x6d6cb(%rip), %rsi     # 0x7db28
leaq 0x6cf24(%rip), %rdx     # 0x7d388
callq 0xc2f0
leaq 0x6d6c8(%rip), %rdi     # 0x7db38
callq 0xc260
jmp 0x101b0
leaq 0x3c0(%rsp), %rdi
leaq 0x288(%rsp), %rsi
callq 0x40072
movq 0x88(%rsp), %rdi
movq 0x98(%rsp), %rsi
callq 0x40072
leaq 0x280(%rsp), %rdi
movq 0x108(%rdi), %rax
movq %rax, 0x4c0(%rsp)
callq 0x3c216
movl 0x388(%rsp), %edx
andl $0x1, %edx
leaq 0x160(%rsp), %rdi
movq %rax, %rsi
callq 0x3c1aa
leaq 0x168(%rsp), %rsi
leaq 0x6f0(%rsp), %rdi
callq 0x40072
leaq 0x1e8(%rsp), %rsi
movq 0x90(%rsp), %rdi
callq 0x40072
leaq 0x160(%rsp), %rdi
movq 0x108(%rdi), %rax
movq %rax, 0x7f0(%rsp)
callq 0x3c1f8
movq 0x78(%rsp), %rdi
callq 0xc4a0
movq 0x40(%rsp), %rdi
callq 0xc4a0
leaq 0x280(%rsp), %rdi
callq 0x3c1f8
movq 0xb8(%rsp), %r11
movl %r11d, %eax
movq 0xc0(%rsp), %r10
orl %r10d, %eax
movq 0xb0(%rsp), %rbx
orl %ebx, %eax
je 0x105a9
subq $0x8, %rsp
movq 0x18(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x50(%rsp), %rdx
movq 0x58(%rsp), %rcx
movq 0x30(%rsp), %r8
movq 0x28(%rsp), %r9
pushq %rbx
pushq %r11
pushq %r10
leaq 0x3d8(%rsp), %rax
pushq %rax
leaq 0x710(%rsp), %rax
pushq %rax
callq 0x1158f
addq $0x30, %rsp
movl %eax, 0x5c(%rsp)
movq 0x10(%rsp), %rdi
movq 0x30(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq 0x50(%rsp), %rcx
movq 0x28(%rsp), %r8
movq 0x20(%rsp), %r9
leaq 0x3b8(%rsp), %rax
pushq %rax
leaq 0x6f0(%rsp), %rax
pushq %rax
callq 0x1187e
addq $0x10, %rsp
movsd %xmm0, 0x8(%rsp)
movsd 0x68(%rsp), %xmm0
ucomisd 0x8(%rsp), %xmm0
jbe 0x1067a
leaq 0x5e0(%rsp), %rdi
leaq 0x6f0(%rsp), %rsi
callq 0x40072
movq 0xe0(%rsp), %rdi
movq 0x90(%rsp), %rsi
callq 0x40072
movq 0x7f0(%rsp), %rax
movq %rax, 0x6e0(%rsp)
leaq 0x958(%rsp), %rdi
leaq 0x3c0(%rsp), %rsi
callq 0x40072
movq 0xd8(%rsp), %rdi
movq 0x88(%rsp), %rsi
callq 0x40072
movq 0x4c0(%rsp), %rax
movq %rax, 0xa58(%rsp)
movsd 0x8(%rsp), %xmm0
movsd %xmm0, 0x68(%rsp)
leaq 0x3b8(%rsp), %rdi
callq 0x3c1f8
leaq 0x6e8(%rsp), %rdi
callq 0x3c1f8
movb $0x1, %bl
cmpb $0x0, 0x74(%rsp)
jne 0xfac5
movq 0x10(%rsp), %rdi
movq (%rdi), %rax
leaq 0x5d8(%rsp), %rsi
callq *0x118(%rax)
cmpb $0x1, 0x6d41a(%rip)     # 0x7dad8
jne 0x107d0
leaq 0x47e5a(%rip), %rdi     # 0x58525
callq 0xc560
leaq 0x270(%rsp), %rdi
callq 0x54cee
leaq 0x47b11(%rip), %rdi     # 0x581f5
movb $0x1, %al
callq 0xc070
leaq 0x5d8(%rsp), %rbx
movsd 0x8(%rbx), %xmm0
movsd 0x10(%rbx), %xmm1
movsd 0x18(%rbx), %xmm2
movsd 0x20(%rbx), %xmm3
leaq 0x47c4b(%rip), %rdi     # 0x58359
movb $0x4, %al
callq 0xc070
movsd 0x28(%rbx), %xmm0
movsd 0x30(%rbx), %xmm1
movsd 0x38(%rbx), %xmm2
movsd 0x40(%rbx), %xmm3
leaq 0x47c49(%rip), %rdi     # 0x58379
movb $0x4, %al
callq 0xc070
movsd 0x48(%rbx), %xmm0
movsd 0x50(%rbx), %xmm1
movsd 0x58(%rbx), %xmm2
movsd 0x60(%rbx), %xmm3
leaq 0x47c47(%rip), %rdi     # 0x58399
movb $0x4, %al
callq 0xc070
movsd 0x68(%rbx), %xmm0
movsd 0x70(%rbx), %xmm1
movsd 0x78(%rbx), %xmm2
movsd 0x80(%rbx), %xmm3
leaq 0x47c42(%rip), %rdi     # 0x583b9
movb $0x4, %al
callq 0xc070
movq %rbx, %rdi
callq 0x3c2a2
leaq 0x47c4c(%rip), %rdi     # 0x583d9
movb $0x1, %al
callq 0xc070
leaq 0x47c4c(%rip), %rdi     # 0x583e7
xorl %ebx, %ebx
movl 0x5c(%rsp), %esi
xorl %eax, %eax
callq 0xc070
leaq 0x47c4a(%rip), %rdi     # 0x583f9
movsd 0x68(%rsp), %xmm0
movb $0x1, %al
callq 0xc070
movq 0x6c7c5(%rip), %rax     # 0x7cf88
movq (%rax), %rdi
callq 0xc430
jmp 0xfac5
xorl %ebx, %ebx
jmp 0xfac5
leaq 0x479e3(%rip), %rdi     # 0x581c1
movq %rbx, %rsi
xorl %eax, %eax
callq 0x573ee
jmp 0x107f6
leaq 0x47d02(%rip), %rdi     # 0x584f3
callq 0xc560
movl $0x1, %edi
callq 0xc460
jmp 0x10832
jmp 0x10832
jmp 0x10832
jmp 0x10832
leaq 0x47abe(%rip), %rdi     # 0x582cd
xorl %eax, %eax
callq 0x573ee
leaq 0x950(%rsp), %rdi
callq 0x3c1f8
leaq 0x5d8(%rsp), %rdi
callq 0x3c1f8
jmp 0x10832
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0xc460
jmp 0x107d7
movq %rax, %r14
leaq 0x6d2f0(%rip), %rdi     # 0x7db38
jmp 0x10854
movq %rax, %r14
leaq 0x6d2cc(%rip), %rdi     # 0x7db20
callq 0xc250
jmp 0x10a08
jmp 0x109ad
jmp 0x109e6
jmp 0x109e6
movq %rax, %r14
leaq 0x280(%rsp), %rdi
callq 0x3c88c
jmp 0x10a15
jmp 0x10a3f
jmp 0x108d9
movq %rax, %r14
leaq 0x3b8(%rsp), %rdi
callq 0x3c88c
jmp 0x10a22
movq %rax, %r14
leaq 0x6e8(%rsp), %rdi
jmp 0x10a68
jmp 0x10903
movq %rax, %r14
leaq 0x160(%rsp), %rdi
callq 0x3c1f8
jmp 0x10a91
jmp 0x10903
jmp 0x10a5d
jmp 0x108e1
jmp 0x10903
jmp 0x10a3f
jmp 0x10945
jmp 0x10945
movq %rax, %r14
jmp 0x10a15
movq %rax, %r14
jmp 0x108f6
movq %rax, %r14
leaq 0x160(%rsp), %rdi
callq 0x3c1f8
leaq 0x280(%rsp), %rdi
jmp 0x10ac0
movq %rax, %r14
jmp 0x10a91
jmp 0x10a3f
jmp 0x10a3f
jmp 0x10a3f
jmp 0x10945
jmp 0x10945
jmp 0x10945
jmp 0x10945
jmp 0x10945
movq %rax, %r14
leaq 0x280(%rsp), %rdi
jmp 0x10987
jmp 0x109eb
jmp 0x109e6
jmp 0x109eb
jmp 0x109e6
movq %rax, %r14
jmp 0x10aab
jmp 0x10a3f
movq %rax, %r14
leaq 0x840(%rsp), %rdi
callq 0x3c88c
jmp 0x10aab
movq %rax, %r14
leaq 0x950(%rsp), %rdi
callq 0x3c88c
jmp 0x10ab8
movq %rax, %r14
leaq 0x5d8(%rsp), %rdi
callq 0x3c88c
jmp 0x10ac5
movq %rax, %r14
movq 0x40(%rsp), %rdi
jmp 0x109a3
movq %rax, %r14
movq 0x78(%rsp), %rdi
movq %r15, %rsi
callq 0xc6c0
jmp 0x10a15
movq %rax, %r14
jmp 0x109fb
jmp 0x109e6
movq %rax, %r14
movq 0x28(%rsp), %rdi
movq %r15, %rsi
callq 0xc6c0
jmp 0x10a9e
movq %rax, %r14
movq 0x30(%rsp), %rdi
movq %r13, %rsi
callq 0xc6c0
jmp 0x10aab
jmp 0x109eb
jmp 0x109e6
jmp 0x109e6
jmp 0x109e6
movq %rax, %r14
jmp 0x10a08
movq %rax, %r14
leaq 0x4c8(%rsp), %rdi
callq 0x3c1f8
leaq 0x160(%rsp), %rdi
callq 0x3c1f8
leaq 0x280(%rsp), %rdi
callq 0x3c1f8
leaq 0x3b8(%rsp), %rdi
callq 0x3c1f8
leaq 0x6e8(%rsp), %rdi
jmp 0x10a99
jmp 0x10a6f
jmp 0x10a74
jmp 0x10a74
jmp 0x10a3f
jmp 0x10a58
movq %rax, %r14
jmp 0x10a84
jmp 0x10a3f
jmp 0x10a3f
movq %rax, %r14
jmp 0x10a9e
jmp 0x10a6f
movq %rax, %r14
leaq 0x160(%rsp), %rdi
callq 0x3c88c
jmp 0x10a91
movq %rax, %r14
jmp 0x10a84
movq %rax, %r14
leaq 0x280(%rsp), %rdi
callq 0x3c88c
jmp 0x10a9e
movq %rax, %r14
jmp 0x10a91
movq %rax, %r14
leaq 0x4c8(%rsp), %rdi
callq 0x3c1f8
leaq 0x160(%rsp), %rdi
callq 0x3c1f8
leaq 0x280(%rsp), %rdi
callq 0x3c1f8
leaq 0x840(%rsp), %rdi
callq 0x3c1f8
leaq 0x950(%rsp), %rdi
callq 0x3c1f8
leaq 0x5d8(%rsp), %rdi
callq 0x3c1f8
movq %r14, %rdi
callq 0xc620