// File: /workspace/github_cpp_makefile_star2_O3/tomfunkhouser[P]gaps/apps/sfl2pts/sfl2pts.cpp
// Function: main
int main(int argc, char **argv)
{
  // Parse program arguments
  if (!ParseArgs(argc, argv)) exit(-1);

  // Open surfel scene
  R3SurfelScene *surfel_scene = OpenSurfelScene(input_surfel_scene_name, input_surfel_database_name);
  if (!surfel_scene) exit(-1);

  // Create points and write to ply file
  if (max_points > 0) {
    if (max_points < surfel_scene->Tree()->Database()->NSurfels()) {
      RNScalar p = (RNScalar) (2*max_points) / (RNScalar) surfel_scene->Tree()->Database()->NSurfels();
      p *= load_every_kth_image;
      p *= load_every_kth_pixel * load_every_kth_pixel;
      if (p < sample_probability) sample_probability = p;
    }
  }

  // Create points
  RNArray<PlyPoint *> points;
  if (!CreatePoints(surfel_scene, points)) exit(-1);

  // Sample points
  if (!SamplePoints(points, max_points)) exit(-1);

  // Write points file
  if (!WritePoints(points, output_points_name)) exit(-1);

  // Delete points
  for (int i = 0; i < points.NEntries(); i++) delete points[i];

  // Close surfel scene
  if (!CloseSurfelScene(surfel_scene)) exit(-1);

  // Return success 
  return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1f8, %rsp            # imm = 0x1F8
movq 0x11f1d4(%rip), %r12    # 0x134e48
movq 0x11f1d5(%rip), %rax    # 0x134e50
movq %rax, 0x18(%rsp)
movq 0x11f1d9(%rip), %rax    # 0x134e60
movq %rax, 0x20(%rsp)
cmpl $0x2, %edi
jl 0x15f33
movq %rsi, %rbp
movl %edi, %r13d
leaq 0x8(%rbp), %rbx
leal -0x1(%r13), %r15d
movq 0x8(%rbp), %r14
cmpb $0x2d, (%r14)
jne 0x15e0c
cmpb $0x76, 0x1(%r14)
jne 0x15cc3
cmpb $0x0, 0x2(%r14)
je 0x15e6e
movq %r14, %rdi
leaq 0xc83a3(%rip), %rsi     # 0xde070
callq 0x13710
testl %eax, %eax
je 0x15e45
movq %r14, %rdi
leaq 0xc839a(%rip), %rsi     # 0xde07e
callq 0x13710
testl %eax, %eax
je 0x15e62
movq %r14, %rdi
leaq 0xc8396(%rip), %rsi     # 0xde091
callq 0x13710
testl %eax, %eax
je 0x15e7a
movq %r14, %rdi
leaq 0xc8390(%rip), %rsi     # 0xde0a2
callq 0x13710
testl %eax, %eax
je 0x15e86
movq %r14, %rdi
leaq 0xc838f(%rip), %rsi     # 0xde0b8
callq 0x13710
testl %eax, %eax
je 0x15e92
movq %r14, %rdi
leaq 0xc8395(%rip), %rsi     # 0xde0d5
callq 0x13710
testl %eax, %eax
je 0x15e9e
movq %r14, %rdi
leaq 0xc83a0(%rip), %rsi     # 0xde0f7
callq 0x13710
testl %eax, %eax
je 0x15ea7
movq %r14, %rdi
leaq 0xc839f(%rip), %rsi     # 0xde10d
callq 0x13710
testl %eax, %eax
je 0x15eb0
movq %r14, %rdi
leaq 0xc83a3(%rip), %rsi     # 0xde128
callq 0x13710
testl %eax, %eax
je 0x15eb9
movq %r14, %rdi
leaq 0xc83a0(%rip), %rsi     # 0xde13c
callq 0x13710
testl %eax, %eax
je 0x15ed4
movq %r14, %rdi
leaq 0xc839f(%rip), %rsi     # 0xde152
callq 0x13710
testl %eax, %eax
je 0x15eed
movq %r14, %rdi
leaq 0xc839e(%rip), %rsi     # 0xde168
callq 0x13710
testl %eax, %eax
je 0x15f06
movq %r14, %rdi
leaq 0xc8393(%rip), %rsi     # 0xde174
callq 0x13710
testl %eax, %eax
jne 0x16f93
addl $-0x2, %r13d
movq 0x10(%rbp), %rdi
addq $0x10, %rbp
callq 0x13640
movsd %xmm0, 0x11f079(%rip)   # 0x134e80
jmp 0x15f1d
testq %r12, %r12
je 0x15e36
cmpq $0x0, 0x18(%rsp)
je 0x15e51
cmpq $0x0, 0x20(%rsp)
jne 0x16f93
movq %r14, 0x11f034(%rip)    # 0x134e60
movq %r14, 0x20(%rsp)
jmp 0x15f23
movq %r14, 0x11f00b(%rip)    # 0x134e48
movq %r14, %r12
jmp 0x15f23
movb $0x1, 0x11f020(%rip)    # 0x134e6c
jmp 0x15f23
movq %r14, 0x11eff8(%rip)    # 0x134e50
movq %r14, 0x18(%rsp)
jmp 0x15f23
movb $0x0, 0x11f003(%rip)    # 0x134e6c
jmp 0x15f23
movb $0x1, 0x11eff3(%rip)    # 0x134e68
jmp 0x15f23
movb $0x1, 0x11efef(%rip)    # 0x134e70
jmp 0x15f23
movb $0x0, 0x11efe3(%rip)    # 0x134e70
jmp 0x15f23
movb $0x0, 0x11efdb(%rip)    # 0x134e74
jmp 0x15f23
movb $0x1, 0x11efcf(%rip)    # 0x134e74
jmp 0x15f23
movb $0x1, 0x11efca(%rip)    # 0x134e78
jmp 0x15f23
movb $0x0, 0x11efc1(%rip)    # 0x134e78
jmp 0x15f23
addl $-0x2, %r13d
movq 0x10(%rbp), %rdi
addq $0x10, %rbp
callq 0x13640
movsd %xmm0, 0x11e646(%rip)   # 0x134518
jmp 0x15f1d
addl $-0x2, %r13d
movq 0x10(%rbp), %rdi
addq $0x10, %rbp
callq 0x137d0
movl %eax, 0x11e625(%rip)    # 0x134510
jmp 0x15f1d
addl $-0x2, %r13d
movq 0x10(%rbp), %rdi
addq $0x10, %rbp
callq 0x137d0
movl %eax, 0x11e610(%rip)    # 0x134514
jmp 0x15f1d
addl $-0x2, %r13d
movq 0x10(%rbp), %rdi
addq $0x10, %rbp
callq 0x137d0
movl %eax, 0x11ef3b(%rip)    # 0x134e58
movl %r13d, %r15d
movq %rbp, %rbx
movq %rbx, %rbp
movl %r15d, %r13d
cmpl $0x1, %r15d
jg 0x15c9b
testq %r12, %r12
je 0x16fcd
cmpq $0x0, 0x18(%rsp)
je 0x16fcd
cmpq $0x0, 0x20(%rsp)
je 0x16fcd
leaq 0xc0(%rsp), %r14
movq %r14, %rdi
callq 0xaa7ec
movq %r14, %rdi
xorl %esi, %esi
callq 0x13830
movl $0x1f0, %edi            # imm = 0x1F0
callq 0x134e0
movq %rax, %r13
movq %rax, %rdi
xorl %esi, %esi
callq 0x2474c
movq (%r13), %rax
leaq 0xd3af3(%rip), %rcx     # 0xe9a83
movq %r13, %rdi
movq %r12, %rsi
movq 0x18(%rsp), %rdx
movq %rcx, %r8
callq *0xe8(%rax)
testl %eax, %eax
je 0x16fae
cmpb $0x1, 0x11eeb5(%rip)    # 0x134e68
jne 0x16097
leaq 0xc83d6(%rip), %rdi     # 0xde396
callq 0x137c0
leaq 0xc0(%rsp), %rdi
callq 0xaa84e
leaq 0xc81ff(%rip), %rdi     # 0xde1d8
movb $0x1, %al
callq 0x13070
movl 0x8c(%r13), %esi
leaq 0xc8201(%rip), %rdi     # 0xde1ef
xorl %eax, %eax
callq 0x13070
movl 0x1c(%r13), %esi
leaq 0xc81ff(%rip), %rdi     # 0xde1ff
xorl %eax, %eax
callq 0x13070
movl 0x2c(%r13), %esi
leaq 0xc81ff(%rip), %rdi     # 0xde211
xorl %eax, %eax
callq 0x13070
movl 0x7c(%r13), %esi
leaq 0xc81fe(%rip), %rdi     # 0xde222
xorl %eax, %eax
callq 0x13070
movl 0xac(%r13), %esi
leaq 0xc81ff(%rip), %rdi     # 0xde238
xorl %eax, %eax
callq 0x13070
movq 0x8(%r13), %rax
movl 0x24(%rax), %esi
leaq 0xc81fd(%rip), %rdi     # 0xde24b
xorl %eax, %eax
callq 0x13070
movq 0x8(%r13), %rax
movq 0x10(%rax), %rax
movl 0x4c(%rax), %esi
leaq 0xc81f4(%rip), %rdi     # 0xde25b
xorl %eax, %eax
callq 0x13070
movq 0x8(%r13), %rax
movq 0x10(%rax), %rax
movq 0x50(%rax), %rsi
leaq 0xc81eb(%rip), %rdi     # 0xde26c
xorl %eax, %eax
callq 0x13070
movq 0x11dee1(%rip), %rax    # 0x133f70
movq (%rax), %rdi
callq 0x135c0
movslq 0x11edba(%rip), %rax    # 0x134e58
testq %rax, %rax
jle 0x160ff
movq 0x8(%r13), %rcx
movq 0x10(%rcx), %rcx
movq 0x50(%rcx), %rcx
cmpq %rax, %rcx
jle 0x160ff
addl %eax, %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
cvtsi2sd %rcx, %xmm1
divsd %xmm1, %xmm0
xorps %xmm1, %xmm1
cvtsi2sdl 0x11e43f(%rip), %xmm1 # 0x134510
mulsd %xmm0, %xmm1
movl 0x11e439(%rip), %eax    # 0x134514
imull %eax, %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
mulsd %xmm1, %xmm0
movsd 0x11e427(%rip), %xmm1   # 0x134518
ucomisd %xmm0, %xmm1
jbe 0x160ff
movsd %xmm0, 0x11e419(%rip)   # 0x134518
leaq 0x8(%rsp), %rdi
callq 0xaad88
leaq 0x98(%rsp), %rdi
callq 0xaa7ec
leaq 0x98(%rsp), %rdi
xorl %esi, %esi
callq 0x13830
movq 0x8(%r13), %r15
testq %r15, %r15
je 0x16fee
movq 0x10(%r15), %rax
movq %rax, 0x30(%rsp)
testq %rax, %rax
je 0x16fee
cmpl $0x0, 0x24(%r15)
movq %r13, 0x70(%rsp)
jle 0x166e8
xorl %r12d, %r12d
movq %r15, 0x78(%rsp)
movq 0x18(%r15), %rax
movq (%rax,%r12,8), %rax
movq %rax, 0x20(%rsp)
cmpl $0x0, 0x3c(%rax)
jg 0x166d8
movq 0x20(%rsp), %rdi
movl $0x1, %esi
callq 0x1fd1c
movq %rax, %rbx
movq %rax, %r14
testq %rax, %rax
setne %al
movl 0x11e37c(%rip), %ecx    # 0x134510
cmpl $0x2, %ecx
setge %dl
andb %al, %dl
cmpb $0x1, %dl
jne 0x161b2
movl 0x10(%r14), %eax
cltd
idivl %ecx
testl %edx, %edx
jne 0x166d8
jmp 0x161bb
testq %rbx, %rbx
je 0x1628d
cmpl $0x0, 0x90(%r14)
je 0x1628d
cmpl $0x0, 0x94(%r14)
je 0x1628d
leaq 0x28(%rbx), %rsi
leaq 0xc0(%rsp), %rdi
callq 0x84eb2
leaq 0x70(%rbx), %rsi
leaq 0x38(%rsp), %rdi
callq 0x86570
leaq 0x90(%rbx), %r15
movsd 0xa8(%r14), %xmm1
xorpd %xmm0, %xmm0
ucomisd %xmm1, %xmm0
xorpd %xmm2, %xmm2
jae 0x16235
xorps %xmm0, %xmm0
cvtsi2sdl (%r15), %xmm0
mulsd 0xc7de4(%rip), %xmm0    # 0xde008
divsd %xmm1, %xmm0
callq 0x13410
movapd %xmm0, %xmm2
xorpd %xmm0, %xmm0
addq $0x94, %rbx
movsd 0xb0(%r14), %xmm1
ucomisd %xmm1, %xmm0
jae 0x1626f
xorps %xmm0, %xmm0
cvtsi2sdl (%rbx), %xmm0
mulsd 0xc7dae(%rip), %xmm0    # 0xde008
divsd %xmm1, %xmm0
movsd %xmm2, 0x18(%rsp)
callq 0x13410
movsd 0x18(%rsp), %xmm2
ucomisd %xmm2, %xmm0
movq %r12, 0x68(%rsp)
jbe 0x162cb
movsd 0xa8(%r14), %xmm1
xorpd %xmm0, %xmm0
ucomisd %xmm1, %xmm0
jmp 0x162df
leaq 0xc0(%rsp), %rdi
leaq 0x5205b4(%rip), %rsi    # 0x536850
callq 0x84eb2
leaq 0x38(%rsp), %rdi
leaq 0xd00fb(%rip), %rsi     # 0xe63a8
callq 0x85946
movq %r12, 0x68(%rsp)
xorpd %xmm0, %xmm0
movsd %xmm0, 0x28(%rsp)
movb $0x1, %r14b
movq 0x20(%rsp), %rbx
jmp 0x1630d
movsd 0xb0(%r14), %xmm1
xorpd %xmm0, %xmm0
ucomisd %xmm1, %xmm0
movq %rbx, %r15
movq 0x20(%rsp), %rbx
jae 0x162ff
xorps %xmm0, %xmm0
cvtsi2sdl (%r15), %xmm0
mulsd 0xc7d12(%rip), %xmm0    # 0xde008
divsd %xmm1, %xmm0
callq 0x13410
callq 0x13950
movsd %xmm0, 0x28(%rsp)
xorl %r14d, %r14d
cmpl $0x0, 0x4c(%rbx)
jle 0x166ce
movsd 0x28(%rsp), %xmm0
mulsd %xmm0, %xmm0
movsd %xmm0, 0x28(%rsp)
xorl %ebp, %ebp
movq 0x40(%rbx), %rax
movq (%rax,%rbp,8), %rbx
movl 0xb4(%rbx), %eax
testl %eax, %eax
jne 0x1635d
movq 0x30(%rsp), %rdi
movq (%rdi), %rax
movq 0x8(%rdi), %rdx
movl 0x28(%rdi), %ecx
movq %rbx, %rsi
callq *0x88(%rax)
testl %eax, %eax
je 0x16365
movl 0xb4(%rbx), %eax
incl %eax
movl %eax, 0xb4(%rbx)
cmpl $0x0, 0x8(%rbx)
jle 0x16651
xorl %r15d, %r15d
xorl %r13d, %r13d
movq (%rbx), %r12
movsd 0x11e198(%rip), %xmm0   # 0x134518
addsd 0xc7c88(%rip), %xmm0    # 0xde010
leaq 0x11ea39(%rip), %rax    # 0x134dc8
movsd (%rax), %xmm1
xorpd 0xc7ca5(%rip), %xmm1    # 0xde040
ucomisd %xmm0, %xmm1
jbe 0x163b4
callq 0xacb64
ucomisd 0x11e16a(%rip), %xmm0   # 0x134518
ja 0x165ff
cmpb $0x1, 0x11eab5(%rip)    # 0x134e70
jne 0x163d8
movzbl 0x2f(%r12,%r15), %eax
andl $0x30, %eax
cmpl $0x10, %eax
je 0x165ff
cmpl $0x20, %eax
je 0x165ff
movq (%rbx), %rax
xorps %xmm0, %xmm0
cvtss2sd (%rax,%r15), %xmm0
addsd 0x10(%rbx), %xmm0
xorps %xmm1, %xmm1
cvtss2sd 0x4(%rax,%r15), %xmm1
addsd 0x18(%rbx), %xmm1
xorps %xmm2, %xmm2
cvtss2sd 0x8(%rax,%r15), %xmm2
addsd 0x20(%rbx), %xmm2
leaq 0x80(%rsp), %rdi
callq 0x84ea2
movq (%rbx), %rax
movswl 0x10(%rax,%r15), %ecx
xorps %xmm0, %xmm0
cvtsi2ss %ecx, %xmm0
movss 0xc7c34(%rip), %xmm3    # 0xde060
mulss %xmm3, %xmm0
cvtss2sd %xmm0, %xmm0
movswl 0x12(%rax,%r15), %ecx
xorps %xmm1, %xmm1
cvtsi2ss %ecx, %xmm1
movswl 0x14(%rax,%r15), %eax
xorps %xmm2, %xmm2
cvtsi2ss %eax, %xmm2
mulss %xmm3, %xmm1
cvtss2sd %xmm1, %xmm1
mulss %xmm3, %xmm2
cvtss2sd %xmm2, %xmm2
leaq 0x50(%rsp), %rdi
callq 0x85936
movss 0xc7bf4(%rip), %xmm0    # 0xde064
movss %xmm0, 0x18(%rsp)
testb %r14b, %r14b
je 0x16522
movl $0x24, %edi
callq 0x134e0
xorpd %xmm0, %xmm0
movapd %xmm0, 0x10(%rax)
movsd 0x90(%rsp), %xmm0
movhpd 0x50(%rsp), %xmm0       # xmm0 = xmm0[0],mem[0]
movl $0x0, 0x20(%rax)
cvtpd2ps 0x80(%rsp), %xmm1
cvtpd2ps %xmm0, %xmm0
unpcklpd %xmm0, %xmm1            # xmm1 = xmm1[0],xmm0[0]
movupd %xmm1, (%rax)
movupd 0x58(%rsp), %xmm0
cvtpd2ps %xmm0, %xmm0
movlpd %xmm0, 0x10(%rax)
movb 0x2c(%r12,%r15), %cl
movb %cl, 0x18(%rax)
movb 0x2d(%r12,%r15), %cl
movb %cl, 0x19(%rax)
movb 0x2e(%r12,%r15), %cl
movb %cl, 0x1a(%rax)
movss 0x18(%rsp), %xmm0
movss %xmm0, 0x1c(%rax)
movq (%rbx), %rcx
movzwl 0x1c(%rcx,%r15), %ecx
xorps %xmm0, %xmm0
cvtsi2ss %ecx, %xmm0
mulss 0xc7b61(%rip), %xmm0    # 0xde068
movss %xmm0, 0x20(%rax)
movl 0x14(%rsp), %edx
leaq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0xaae1e
jmp 0x165ff
leaq 0xa8(%rsp), %rdi
leaq 0x80(%rsp), %rsi
leaq 0xc0(%rsp), %rdx
callq 0x850fe
leaq 0xa8(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x85bc2
leaq 0x11e870(%rip), %rax    # 0x134dc8
movsd (%rax), %xmm1
movsd %xmm0, 0x18(%rsp)
ucomisd %xmm0, %xmm1
ja 0x165ff
movsd 0x11e90c(%rip), %xmm0   # 0x134e80
ucomisd 0xc7ab4(%rip), %xmm0    # 0xde030
jbe 0x1658a
movsd 0x18(%rsp), %xmm1
ucomisd %xmm0, %xmm1
ja 0x165ff
leaq 0xa8(%rsp), %rdi
callq 0x85c4c
cmpb $0x1, 0x11e8ce(%rip)    # 0x134e6c
jne 0x165c2
leaq 0x38(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0x85bc2
mulsd %xmm0, %xmm0
movsd 0x28(%rsp), %xmm1
ucomisd %xmm0, %xmm1
ja 0x165ff
movsd 0xc7a4e(%rip), %xmm2    # 0xde018
movapd %xmm2, %xmm0
movsd 0x18(%rsp), %xmm3
cmpltsd %xmm3, %xmm0
mulsd %xmm3, %xmm3
movapd %xmm2, %xmm1
divsd %xmm3, %xmm1
andpd %xmm0, %xmm1
andnpd %xmm2, %xmm0
orpd %xmm1, %xmm0
movsd 0xc7a27(%rip), %xmm1    # 0xde020
ucomisd %xmm0, %xmm1
jbe 0x16615
incq %r13
movslq 0x8(%rbx), %rax
addq $0x30, %r15
cmpq %rax, %r13
jl 0x16375
jmp 0x16651
cmpb $0x0, 0x11e858(%rip)    # 0x134e74
jne 0x16642
movapd %xmm0, %xmm1
unpcklpd %xmm0, %xmm1            # xmm1 = xmm1[0],xmm0[0]
mulpd 0x50(%rsp), %xmm1
movapd %xmm1, 0x50(%rsp)
movsd 0x60(%rsp), %xmm1
mulsd %xmm0, %xmm1
movsd %xmm1, 0x60(%rsp)
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x18(%rsp)
jmp 0x1647f
movl 0xb4(%rbx), %eax
cmpl $0x1, %eax
movq 0x70(%rsp), %r13
jne 0x16683
movq 0x30(%rsp), %rdi
movq (%rdi), %rax
movq 0x8(%rdi), %rdx
movl 0x28(%rdi), %ecx
movq %rbx, %rsi
callq *0x90(%rax)
testl %eax, %eax
je 0x166b9
movl 0xb4(%rbx), %eax
decl %eax
movl %eax, 0xb4(%rbx)
jne 0x166b9
testb $0x2, 0x89(%rbx)
je 0x166b9
movq 0x30(%rsp), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
movq %rbx, %rdi
callq 0x18532
movl $0xc8, %esi
movq %rbx, %rdi
callq 0x134f0
incq %rbp
movq 0x20(%rsp), %rbx
movslq 0x4c(%rbx), %rax
cmpq %rax, %rbp
jl 0x16329
movq 0x78(%rsp), %r15
movq 0x68(%rsp), %r12
incq %r12
movslq 0x24(%r15), %rax
cmpq %rax, %r12
jl 0x1615c
cmpb $0x0, 0x11e779(%rip)    # 0x134e68
je 0x1674f
leaq 0xc7caf(%rip), %rdi     # 0xde3a7
callq 0x137c0
leaq 0x98(%rsp), %rdi
callq 0xaa84e
leaq 0xc7ac7(%rip), %rdi     # 0xde1d8
movb $0x1, %al
callq 0x13070
movl 0x14(%rsp), %esi
leaq 0xc7b5d(%rip), %rdi     # 0xde280
xorl %eax, %eax
callq 0x13070
movsd 0x11dde6(%rip), %xmm0   # 0x134518
leaq 0xc7b58(%rip), %rdi     # 0xde291
movb $0x1, %al
callq 0x13070
movq 0x11d829(%rip), %rax    # 0x133f70
movq (%rax), %rdi
callq 0x135c0
movl 0x11e703(%rip), %ebp    # 0x134e58
leaq 0xc0(%rsp), %rdi
callq 0xaa7ec
leaq 0xc0(%rsp), %rdi
xorl %esi, %esi
callq 0x13830
testl %ebp, %ebp
je 0x1693e
movl 0x14(%rsp), %ebx
cmpl %ebp, %ebx
jl 0x1693e
cmpb $0x1, 0x11e6ec(%rip)    # 0x134e78
jne 0x167a3
leaq 0x8bb(%rip), %rsi       # 0x17050
leaq 0x8(%rsp), %rdi
callq 0xab11e
movl 0x14(%rsp), %ebx
testl %ebx, %ebx
jle 0x16819
subl %ebp, %ebx
xorl %ebp, %ebp
callq 0xacb64
cmpb $0x0, 0x11e6c1(%rip)    # 0x134e78
jne 0x167bf
movapd %xmm0, %xmm1
jmp 0x167cf
mulsd %xmm0, %xmm0
movsd 0xc784d(%rip), %xmm1    # 0xde018
subsd %xmm0, %xmm1
movl 0x14(%rsp), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
mulsd %xmm1, %xmm0
cvttsd2si %xmm0, %ecx
cmpl %ecx, %eax
jg 0x167e9
leal -0x1(%rax), %ecx
movq 0x8(%rsp), %rdx
movslq %ecx, %rcx
movq (%rdx,%rcx,8), %rcx
movss 0x1c(%rcx), %xmm0
ucomiss 0xc786b(%rip), %xmm0    # 0xde06c
jne 0x16805
jnp 0x16810
movl $0x0, 0x1c(%rcx)
decl %ebx
je 0x16819
incl %ebp
shll $0x3, %eax
cmpl %eax, %ebp
jl 0x167ab
leaq 0x38(%rsp), %rdi
callq 0xaad88
cmpl $0x0, 0x14(%rsp)
jle 0x168a1
xorpd %xmm0, %xmm0
movsd %xmm0, 0x18(%rsp)
xorl %r14d, %r14d
leaq 0x38(%rsp), %rbx
movq 0x8(%rsp), %rax
movq (%rax,%r14,8), %rax
movss 0x1c(%rax), %xmm0
ucomiss 0xc781b(%rip), %xmm0    # 0xde06c
jne 0x16864
jp 0x16864
movl $0x24, %esi
movq %rax, %rdi
callq 0x134f0
jmp 0x16892
movss %xmm0, 0x20(%rsp)
movl 0x44(%rsp), %edx
movq %rbx, %rdi
movq %rax, %rsi
callq 0xaae1e
xorps %xmm0, %xmm0
cvtss2sd 0x20(%rsp), %xmm0
movsd 0x18(%rsp), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, 0x18(%rsp)
incq %r14
movslq 0x14(%rsp), %rax
cmpq %rax, %r14
jl 0x1683c
jmp 0x168ab
xorpd %xmm0, %xmm0
movsd %xmm0, 0x18(%rsp)
leaq 0x8(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xaad9c
cmpb $0x1, 0x11e5a7(%rip)    # 0x134e68
jne 0x16934
leaq 0xc7af0(%rip), %rdi     # 0xde3ba
callq 0x137c0
leaq 0xc0(%rsp), %rdi
callq 0xaa84e
leaq 0xc78f5(%rip), %rdi     # 0xde1d8
movb $0x1, %al
callq 0x13070
movl 0x14(%rsp), %esi
leaq 0xc798b(%rip), %rdi     # 0xde280
xorl %eax, %eax
callq 0x13070
xorps %xmm1, %xmm1
cvtsi2sdl 0x14(%rsp), %xmm1
mulsd 0xc771b(%rip), %xmm1    # 0xde028
movsd 0x18(%rsp), %xmm0
divsd %xmm1, %xmm0
leaq 0xc798e(%rip), %rdi     # 0xde2ac
movb $0x1, %al
callq 0x13070
movq 0x11d644(%rip), %rax    # 0x133f70
movq (%rax), %rdi
callq 0x135c0
leaq 0x38(%rsp), %rdi
callq 0xaadf2
movq 0x11e51b(%rip), %r14    # 0x134e60
leaq 0x50(%rsp), %rdi
callq 0xaa7ec
leaq 0x50(%rsp), %rdi
xorl %esi, %esi
callq 0x13830
movq %r14, %rdi
movl $0x2e, %esi
callq 0x13560
testq %rax, %rax
je 0x16fdd
movq %rax, %rbx
leaq 0xc796f(%rip), %rsi     # 0xde2ea
movq %rax, %rdi
callq 0x13710
testl %eax, %eax
je 0x16a93
leaq 0xc797c(%rip), %rsi     # 0xde30e
movq %rbx, %rdi
callq 0x13710
testl %eax, %eax
je 0x16c19
leaq 0xc799f(%rip), %rsi     # 0xde348
movq %rbx, %rdi
callq 0x13710
testl %eax, %eax
je 0x16c37
leaq 0xc798d(%rip), %rsi     # 0xde34d
movq %rbx, %rdi
callq 0x13710
testl %eax, %eax
je 0x16c5d
leaq 0xc0(%rsp), %rdi
callq 0x55bd4
cmpl $0x0, 0x14(%rsp)
jle 0x16a62
xorl %r13d, %r13d
leaq 0x38(%rsp), %rbx
leaq 0x80(%rsp), %r15
leaq 0xc0(%rsp), %r12
movq 0x8(%rsp), %rax
movq (%rax,%r13,8), %rbp
xorps %xmm0, %xmm0
cvtss2sd (%rbp), %xmm0
xorps %xmm1, %xmm1
cvtss2sd 0x4(%rbp), %xmm1
xorps %xmm2, %xmm2
cvtss2sd 0x8(%rbp), %xmm2
movq %rbx, %rdi
callq 0x84ea2
xorps %xmm0, %xmm0
cvtss2sd 0xc(%rbp), %xmm0
xorps %xmm1, %xmm1
cvtss2sd 0x10(%rbp), %xmm1
xorps %xmm2, %xmm2
cvtss2sd 0x14(%rbp), %xmm2
movq %r15, %rdi
callq 0x85936
movq %r12, %rdi
movq %rbx, %rsi
movq %r15, %rdx
xorl %ecx, %ecx
callq 0x59098
incq %r13
movslq 0x14(%rsp), %rax
cmpq %rax, %r13
jl 0x169fc
leaq 0xc0(%rsp), %rdi
movq %r14, %rsi
callq 0x66ad6
movl %eax, %ebx
leaq 0xc0(%rsp), %rdi
callq 0x56112
testl %ebx, %ebx
movq 0x70(%rsp), %r13
jne 0x16ddf
jmp 0x16fee
leaq 0xc7855(%rip), %rax     # 0xde2ef
leaq 0xc0(%rsp), %rdx
movq %rax, (%rdx)
leaq 0x38(%rsp), %r8
movq %r14, %rdi
movl $0x1, %esi
movl $0x4, %ecx
callq 0x868d8
movq %rax, %rbx
testq %rax, %rax
je 0x16e32
movl 0x14(%rsp), %edx
leaq 0xc781c(%rip), %rsi     # 0xde2ef
movq %rbx, %rdi
callq 0x86cfa
leaq 0xc780d(%rip), %rsi     # 0xde2ef
leaq 0x11da37(%rip), %rdx    # 0x134520
movq %rbx, %rdi
callq 0x86ad8
leaq 0xc77f7(%rip), %rsi     # 0xde2ef
leaq 0x11da49(%rip), %rdx    # 0x134548
movq %rbx, %rdi
callq 0x86ad8
leaq 0xc77e1(%rip), %rsi     # 0xde2ef
leaq 0x11da5b(%rip), %rdx    # 0x134570
movq %rbx, %rdi
callq 0x86ad8
leaq 0xc77cb(%rip), %rsi     # 0xde2ef
leaq 0x11da6d(%rip), %rdx    # 0x134598
movq %rbx, %rdi
callq 0x86ad8
leaq 0xc77b5(%rip), %rsi     # 0xde2ef
leaq 0x11da7f(%rip), %rdx    # 0x1345c0
movq %rbx, %rdi
callq 0x86ad8
leaq 0xc779f(%rip), %rsi     # 0xde2ef
leaq 0x11da91(%rip), %rdx    # 0x1345e8
movq %rbx, %rdi
callq 0x86ad8
leaq 0xc7789(%rip), %rsi     # 0xde2ef
leaq 0x11daa3(%rip), %rdx    # 0x134610
movq %rbx, %rdi
callq 0x86ad8
leaq 0xc7773(%rip), %rsi     # 0xde2ef
leaq 0x11dab5(%rip), %rdx    # 0x134638
movq %rbx, %rdi
callq 0x86ad8
leaq 0xc775d(%rip), %rsi     # 0xde2ef
leaq 0x11dac7(%rip), %rdx    # 0x134660
movq %rbx, %rdi
callq 0x86ad8
leaq 0xc7747(%rip), %rsi     # 0xde2ef
leaq 0x11dad9(%rip), %rdx    # 0x134688
movq %rbx, %rdi
callq 0x86ad8
leaq 0xc7731(%rip), %rsi     # 0xde2ef
leaq 0x11daeb(%rip), %rdx    # 0x1346b0
movq %rbx, %rdi
callq 0x86ad8
movq %rbx, %rdi
callq 0x86d20
leaq 0xc7713(%rip), %rsi     # 0xde2ef
movq %rbx, %rdi
callq 0x86f39
cmpl $0x0, 0x14(%rsp)
jle 0x16c0c
xorl %r15d, %r15d
movq 0x8(%rsp), %rax
movq (%rax,%r15,8), %rsi
movq %rbx, %rdi
callq 0x86f61
incq %r15
movslq 0x14(%rsp), %rax
cmpq %rax, %r15
jl 0x16bee
movq %rbx, %rdi
callq 0x8890f
jmp 0x16ddf
testq %r14, %r14
je 0x16c97
leaq 0xce8af(%rip), %rsi     # 0xe54d4
movq %r14, %rdi
callq 0x135d0
movq %rax, %rbx
testq %rax, %rax
jne 0x16ca1
jmp 0x16c81
testq %r14, %r14
je 0x16d0d
leaq 0xce88d(%rip), %rsi     # 0xe54d4
movq %r14, %rdi
callq 0x135d0
movq %rax, %rbx
testq %rax, %rax
jne 0x16d17
jmp 0x16c81
testq %r14, %r14
je 0x16d68
leaq 0xc76e5(%rip), %rsi     # 0xde352
movq %r14, %rdi
callq 0x135d0
movq %rax, %rbx
testq %rax, %rax
jne 0x16d72
leaq 0xc768c(%rip), %rdi     # 0xde314
movq %r14, %rsi
xorl %eax, %eax
callq 0xad8fa
jmp 0x16fee
movq 0x11d2d2(%rip), %rax    # 0x133f70
movq (%rax), %rbx
cmpl $0x0, 0x14(%rsp)
jle 0x16dd2
xorl %r12d, %r12d
leaq 0xc767d(%rip), %r15     # 0xde333
movq 0x8(%rsp), %rax
movq (%rax,%r12,8), %rax
xorps %xmm0, %xmm0
cvtss2sd (%rax), %xmm0
xorps %xmm1, %xmm1
cvtss2sd 0x4(%rax), %xmm1
xorps %xmm2, %xmm2
cvtss2sd 0x8(%rax), %xmm2
xorps %xmm3, %xmm3
cvtss2sd 0xc(%rax), %xmm3
xorps %xmm4, %xmm4
cvtss2sd 0x10(%rax), %xmm4
xorps %xmm5, %xmm5
cvtss2sd 0x14(%rax), %xmm5
movq %rbx, %rdi
movq %r15, %rsi
movb $0x6, %al
callq 0x13740
incq %r12
movslq 0x14(%rsp), %rax
cmpq %rax, %r12
jl 0x16cb6
jmp 0x16dd2
movq 0x11d25c(%rip), %rax    # 0x133f70
movq (%rax), %rbx
cmpl $0x0, 0x14(%rsp)
jle 0x16dd2
xorl %r12d, %r12d
leaq 0xc7612(%rip), %r15     # 0xde33e
movq 0x8(%rsp), %rax
movq (%rax,%r12,8), %rax
xorps %xmm0, %xmm0
cvtss2sd (%rax), %xmm0
xorps %xmm1, %xmm1
cvtss2sd 0x4(%rax), %xmm1
xorps %xmm2, %xmm2
cvtss2sd 0x8(%rax), %xmm2
movq %rbx, %rdi
movq %r15, %rsi
movb $0x3, %al
callq 0x13740
incq %r12
movslq 0x14(%rsp), %rax
cmpq %rax, %r12
jl 0x16d2c
jmp 0x16dd2
movq 0x11d201(%rip), %rax    # 0x133f70
movq (%rax), %rbx
cmpl $0x0, 0x14(%rsp)
jle 0x16dd2
xorl %r12d, %r12d
leaq 0xc0(%rsp), %r15
movq 0x8(%rsp), %rax
movq (%rax,%r12,8), %rax
movups (%rax), %xmm0
movaps %xmm0, 0xc0(%rsp)
movsd 0x10(%rax), %xmm0
movsd %xmm0, 0xd0(%rsp)
movl $0x4, %esi
movl $0x6, %edx
movq %r15, %rdi
movq %rbx, %rcx
callq 0x139a0
cmpq $0x6, %rax
jne 0x16fba
incq %r12
movslq 0x14(%rsp), %rax
cmpq %rax, %r12
jl 0x16d84
testq %r14, %r14
je 0x16ddf
movq %rbx, %rdi
callq 0x134d0
cmpb $0x1, 0x11e082(%rip)    # 0x134e68
jne 0x16e32
leaq 0xc758f(%rip), %rdi     # 0xde37e
movq %r14, %rsi
xorl %eax, %eax
callq 0x13070
leaq 0x50(%rsp), %rdi
callq 0xaa84e
leaq 0xc73ce(%rip), %rdi     # 0xde1d8
movb $0x1, %al
callq 0x13070
movl 0x14(%rsp), %esi
leaq 0xc7464(%rip), %rdi     # 0xde280
xorl %eax, %eax
callq 0x13070
movq 0x11d146(%rip), %rax    # 0x133f70
movq (%rax), %rdi
callq 0x135c0
cmpl $0x0, 0x14(%rsp)
jle 0x16e5b
xorl %ebx, %ebx
movq 0x8(%rsp), %rax
movq (%rax,%rbx,8), %rdi
movl $0x24, %esi
callq 0x134f0
incq %rbx
movslq 0x14(%rsp), %rax
cmpq %rax, %rbx
jl 0x16e3b
leaq 0xc0(%rsp), %rdi
callq 0xaa7ec
leaq 0xc0(%rsp), %rdi
xorl %esi, %esi
callq 0x13830
cmpb $0x1, 0x11dfea(%rip)    # 0x134e68
jne 0x16f62
leaq 0xc7542(%rip), %rdi     # 0xde3cd
callq 0x137c0
leaq 0xc0(%rsp), %rdi
callq 0xaa84e
leaq 0xc7334(%rip), %rdi     # 0xde1d8
movb $0x1, %al
callq 0x13070
movl 0x8c(%r13), %esi
leaq 0xc7336(%rip), %rdi     # 0xde1ef
xorl %eax, %eax
callq 0x13070
movl 0x1c(%r13), %esi
leaq 0xc7334(%rip), %rdi     # 0xde1ff
xorl %eax, %eax
callq 0x13070
movl 0x2c(%r13), %esi
leaq 0xc7334(%rip), %rdi     # 0xde211
xorl %eax, %eax
callq 0x13070
movl 0x7c(%r13), %esi
leaq 0xc7333(%rip), %rdi     # 0xde222
xorl %eax, %eax
callq 0x13070
movl 0xac(%r13), %esi
leaq 0xc7334(%rip), %rdi     # 0xde238
xorl %eax, %eax
callq 0x13070
movq 0x8(%r13), %rax
movl 0x24(%rax), %esi
leaq 0xc7332(%rip), %rdi     # 0xde24b
xorl %eax, %eax
callq 0x13070
movq 0x8(%r13), %rax
movq 0x10(%rax), %rax
movl 0x4c(%rax), %esi
leaq 0xc7329(%rip), %rdi     # 0xde25b
xorl %eax, %eax
callq 0x13070
movq 0x8(%r13), %rax
movq 0x10(%rax), %rax
movq 0x50(%rax), %rsi
leaq 0xc7320(%rip), %rdi     # 0xde26c
xorl %eax, %eax
callq 0x13070
movq 0x11d016(%rip), %rax    # 0x133f70
movq (%rax), %rdi
callq 0x135c0
movq (%r13), %rax
movq %r13, %rdi
xorl %esi, %esi
callq *0xf8(%rax)
testl %eax, %eax
je 0x16fae
leaq 0x8(%rsp), %rdi
callq 0xaadf2
xorl %eax, %eax
addq $0x1f8, %rsp            # imm = 0x1F8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xc71e5(%rip), %rdi     # 0xde17f
movq %r14, %rsi
xorl %eax, %eax
callq 0xad8fa
movl $0x1, %edi
callq 0x135f0
movq (%r13), %rax
movq %r13, %rdi
callq *0x8(%rax)
jmp 0x16fee
leaq 0xc7394(%rip), %rdi     # 0xde355
movq %r14, %rsi
xorl %eax, %eax
callq 0xad8fa
jmp 0x16fee
leaq 0xc71c8(%rip), %rdi     # 0xde19c
xorl %eax, %eax
callq 0xad8fa
jmp 0x16fee
leaq 0xc72db(%rip), %rdi     # 0xde2bf
movq %r14, %rsi
xorl %eax, %eax
callq 0x13070
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x135f0
jmp 0x17023
jmp 0x1700e
movq %rax, %rbx
movl $0x1f0, %esi            # imm = 0x1F0
movq %r13, %rdi
callq 0x134f0
jmp 0x17048
movq %rax, %rbx
leaq 0x38(%rsp), %rdi
callq 0xaadf2
jmp 0x1703e
jmp 0x17023
jmp 0x1703b
jmp 0x1703b
movq %rax, %rbx
leaq 0xc0(%rsp), %rdi
callq 0x56112
jmp 0x1703e
jmp 0x1703b
jmp 0x1703b
jmp 0x1703b
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0xaadf2
movq %rbx, %rdi
callq 0x138b0