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

  // Read input mesh
  R3Mesh *mesh = ReadMesh(input_mesh_name);
  if (!mesh) exit(-1);

  // Create segmentation
  R3Segmentation *segmentation = CreateSegmentation(mesh);
  if (!segmentation) exit(-1);

  // Update mesh
  if (!UpdateMesh(mesh, segmentation)) return 0;
  
  // Refine boundaries
  if (refine_mesh_boundaries) {
    if (!RefineBoundaries(mesh)) exit(-1);
  }

  // Write mesh
  if (!WriteMesh(mesh, output_mesh_name)) exit(-1);

  // Write segments to json file
  if (!WriteJson(mesh, output_json_name)) exit(-1);

  // Write segments to ascii file
  if (!WriteAscii(segmentation, output_ascii_name)) exit(-1);

  // Delete mesh
  delete mesh;
  
  // Return success 
  return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x178, %rsp            # imm = 0x178
movq 0x6f494(%rip), %r12     # 0x7db58
movq 0x6f49d(%rip), %rax     # 0x7db68
movq %rax, 0x8(%rsp)
cmpl $0x2, %edi
jl 0xeafa
movq %rsi, %r13
movl %edi, %ebp
leal -0x1(%rbp), %r15d
leaq 0x8(%r13), %rbx
movq 0x8(%r13), %r14
cmpb $0x2d, (%r14)
jne 0xe8e9
cmpb $0x76, 0x1(%r14)
jne 0xe706
cmpb $0x0, 0x2(%r14)
je 0xe935
movq %r14, %rdi
leaq 0x49930(%rip), %rsi     # 0x58040
callq 0xc4d0
testl %eax, %eax
je 0xe91a
movq %r14, %rdi
leaq 0x49920(%rip), %rsi     # 0x58047
callq 0xc4d0
testl %eax, %eax
je 0xe929
movq %r14, %rdi
leaq 0x49921(%rip), %rsi     # 0x5805f
callq 0xc4d0
testl %eax, %eax
je 0xe941
movq %r14, %rdi
leaq 0x4991d(%rip), %rsi     # 0x58072
callq 0xc4d0
testl %eax, %eax
je 0xe94d
movq %r14, %rdi
leaq 0x4991a(%rip), %rsi     # 0x58086
callq 0xc4d0
testl %eax, %eax
je 0xe959
movq %r14, %rdi
leaq 0x49923(%rip), %rsi     # 0x580a6
callq 0xc4d0
testl %eax, %eax
je 0xe968
movq %r14, %rdi
leaq 0x49922(%rip), %rsi     # 0x580bc
callq 0xc4d0
testl %eax, %eax
je 0xe977
movq %r14, %rdi
leaq 0x49919(%rip), %rsi     # 0x580ca
callq 0xc4d0
testl %eax, %eax
je 0xe992
movq %r14, %rdi
leaq 0x49910(%rip), %rsi     # 0x580d8
callq 0xc4d0
testl %eax, %eax
je 0xe9ad
movq %r14, %rdi
leaq 0x4990c(%rip), %rsi     # 0x580eb
callq 0xc4d0
testl %eax, %eax
je 0xe9ca
movq %r14, %rdi
leaq 0x49910(%rip), %rsi     # 0x58106
callq 0xc4d0
testl %eax, %eax
je 0xe9e5
movq %r14, %rdi
leaq 0x49916(%rip), %rsi     # 0x58123
callq 0xc4d0
testl %eax, %eax
je 0xea00
movq %r14, %rdi
leaq 0x4990d(%rip), %rsi     # 0x58131
callq 0xc4d0
testl %eax, %eax
je 0xea25
movq %r14, %rdi
leaq 0x49901(%rip), %rsi     # 0x5813c
callq 0xc4d0
testl %eax, %eax
je 0xea4a
movq %r14, %rdi
leaq 0x49900(%rip), %rsi     # 0x58152
callq 0xc4d0
testl %eax, %eax
je 0xea6c
movq %r14, %rdi
leaq 0x49904(%rip), %rsi     # 0x5816d
callq 0xc4d0
testl %eax, %eax
je 0xea86
movq %r14, %rdi
leaq 0x4990c(%rip), %rsi     # 0x5818c
callq 0xc4d0
testl %eax, %eax
je 0xeaa0
movq %r14, %rdi
leaq 0x4990c(%rip), %rsi     # 0x581a3
callq 0xc4d0
testl %eax, %eax
je 0xeab8
movq %r14, %rdi
leaq 0x4990b(%rip), %rsi     # 0x581b9
callq 0xc4d0
testl %eax, %eax
je 0xead2
movq %r14, %rdi
leaq 0x49901(%rip), %rsi     # 0x581c6
callq 0xc4d0
testl %eax, %eax
jne 0xf6d9
addl $-0x2, %ebp
movq 0x10(%r13), %rax
addq $0x10, %r13
movq %rax, 0x6f294(%rip)     # 0x7db78
jmp 0xeae4
testq %r12, %r12
je 0xe90b
cmpq $0x0, 0x8(%rsp)
jne 0xf6d9
movq %r14, 0x6f267(%rip)     # 0x7db68
movq %r14, 0x8(%rsp)
jmp 0xeaea
movq %r14, 0x6f246(%rip)     # 0x7db58
movq %r14, %r12
jmp 0xeaea
movl $0x1, 0x6f230(%rip)     # 0x7db54
jmp 0xeaea
movb $0x1, 0x6f230(%rip)     # 0x7db60
jmp 0xeaea
movb $0x1, 0x6f244(%rip)     # 0x7db80
jmp 0xeaea
movb $0x0, 0x6f218(%rip)     # 0x7db60
jmp 0xeaea
movb $0x1, 0x6f230(%rip)     # 0x7db84
jmp 0xeaea
movl $0x0, 0x6f1e5(%rip)     # 0x7db48
jmp 0xeaea
movl $0x1, 0x6f1da(%rip)     # 0x7db4c
jmp 0xeaea
addl $-0x2, %ebp
movq 0x10(%r13), %rdi
addq $0x10, %r13
callq 0xc560
movl %eax, 0x6f11b(%rip)     # 0x7daa8
jmp 0xeae4
addl $-0x2, %ebp
movq 0x10(%r13), %rdi
addq $0x10, %r13
callq 0xc560
movl %eax, 0x6f104(%rip)     # 0x7daac
jmp 0xeae4
addl $-0x2, %ebp
movq 0x10(%r13), %rdi
addq $0x10, %r13
callq 0xc460
movsd %xmm0, 0x6f163(%rip)    # 0x7db28
jmp 0xeae4
addl $-0x2, %ebp
movq 0x10(%r13), %rdi
addq $0x10, %r13
callq 0xc560
movl %eax, 0x6f150(%rip)     # 0x7db30
jmp 0xeae4
addl $-0x2, %ebp
movq 0x10(%r13), %rdi
addq $0x10, %r13
callq 0xc560
movl %eax, 0x6f139(%rip)     # 0x7db34
jmp 0xeae4
addl $-0x2, %ebp
movq 0x10(%r13), %rdi
addq $0x10, %r13
callq 0xc460
movsd %xmm0, 0x6f0b8(%rip)    # 0x7dad0
movsd %xmm0, 0x6f0e0(%rip)    # 0x7db00
jmp 0xeae4
addl $-0x2, %ebp
movq 0x10(%r13), %rdi
addq $0x10, %r13
callq 0xc460
movsd %xmm0, 0x6f09b(%rip)    # 0x7dad8
movsd %xmm0, 0x6f0c3(%rip)    # 0x7db08
jmp 0xeae4
addl $-0x2, %ebp
movq 0x10(%r13), %rdi
addq $0x10, %r13
callq 0xc460
movsd %xmm0, 0x6f07e(%rip)    # 0x7dae0
movsd %xmm0, 0x6f0a6(%rip)    # 0x7db10
jmp 0xeae4
addl $-0x2, %ebp
movq 0x10(%r13), %rdi
addq $0x10, %r13
callq 0xc460
movsd %xmm0, 0x6f104(%rip)    # 0x7db88
jmp 0xeae4
addl $-0x2, %ebp
movq 0x10(%r13), %rdi
addq $0x10, %r13
callq 0xc460
movsd %xmm0, 0x6f0f2(%rip)    # 0x7db90
jmp 0xeae4
addl $-0x2, %ebp
movq 0x10(%r13), %rdi
addq $0x10, %r13
callq 0xc560
movl %eax, 0x6effa(%rip)     # 0x7dab0
jmp 0xeae4
addl $-0x2, %ebp
movq 0x10(%r13), %rdi
addq $0x10, %r13
callq 0xc460
movsd %xmm0, 0x6efe8(%rip)    # 0x7dab8
jmp 0xeae4
addl $-0x2, %ebp
movq 0x10(%r13), %rax
addq $0x10, %r13
movq %rax, 0x6f08c(%rip)     # 0x7db70
movq %r13, %rbx
movl %ebp, %r15d
movl %r15d, %ebp
movq %rbx, %r13
cmpl $0x1, %r15d
jg 0xe6de
testq %r12, %r12
je 0xf6f4
cmpq $0x0, 0x8(%rsp)
je 0xf6f4
leaq 0x80(%rsp), %rbx
movq %rbx, %rdi
callq 0x55500
movq %rbx, %rdi
xorl %esi, %esi
callq 0xc5a0
movl $0x138, %edi            # imm = 0x138
callq 0xc370
movq %rax, %r15
movq %rax, %rdi
callq 0x22758
movq (%r15), %rax
movq %r15, %rdi
movq %r12, %rsi
callq *0x180(%rax)
testl %eax, %eax
je 0xf704
cmpb $0x1, 0x6f028(%rip)     # 0x7db84
jne 0xeb8f
movslq 0x34(%r15), %rax
testq %rax, %rax
jle 0xeb8f
movq 0x28(%r15), %rcx
xorl %edx, %edx
movq (%rcx,%rdx,8), %rsi
movl 0x9c(%rsi), %edi
movl %edi, 0x98(%rsi)
movl $0xffffffff, 0x9c(%rsi) # imm = 0xFFFFFFFF
incq %rdx
cmpq %rdx, %rax
jne 0xeb6d
cmpb $0x1, 0x6efea(%rip)     # 0x7db80
jne 0xec09
leaq 0x49676(%rip), %rdi     # 0x58215
movq %r12, %rsi
xorl %eax, %eax
callq 0xc070
leaq 0x80(%rsp), %rdi
callq 0x55562
leaq 0x4966f(%rip), %rdi     # 0x5822c
movb $0x1, %al
callq 0xc070
movl 0x34(%r15), %esi
leaq 0x49674(%rip), %rdi     # 0x58243
xorl %eax, %eax
callq 0xc070
movl 0x24(%r15), %esi
leaq 0x49672(%rip), %rdi     # 0x58253
xorl %eax, %eax
callq 0xc070
movl 0x14(%r15), %esi
leaq 0x49670(%rip), %rdi     # 0x58263
xorl %eax, %eax
callq 0xc070
movq 0x6e387(%rip), %rax     # 0x7cf88
movq (%rax), %rdi
callq 0xc420
leaq 0x40(%rsp), %r14
movq %r14, %rdi
callq 0x55500
movq %r14, %rdi
xorl %esi, %esi
callq 0xc5a0
movl $0xe0, %ebx
movl $0xe0, %edi
callq 0xc370
leaq 0x6ee42(%rip), %rsi     # 0x7da78
movq %rax, 0x10(%rsp)
movq %rax, %rdi
callq 0x12dde
movq %r15, 0x8(%rsp)
movslq 0x34(%r15), %r14
movq %r14, %rax
mulq %rbx
seto %cl
orq $0x8, %rax
movq $-0x1, %r15
testb %cl, %cl
cmoveq %rax, %r15
movq %r15, %rdi
callq 0xc030
leaq 0x8(%rax), %r13
movq %r14, (%rax)
testq %r14, %r14
je 0xee45
movq %rax, %r12
imulq $-0xe0, %r14, %rbp
xorl %ebx, %ebx
movq %r13, %r14
movq %r14, %rdi
callq 0xfcdc
addq $-0xe0, %rbx
addq $0xe0, %r14
cmpq %rbx, %rbp
jne 0xec8d
movq 0x8(%rsp), %rax
cmpl $0x0, 0x34(%rax)
movq 0x10(%rsp), %r14
movq %r13, 0x28(%r14)
movq %rax, %r13
jle 0xee53
movl $0x78, %ebx
xorl %r15d, %r15d
movq 0x28(%r13), %rax
movq %r13, %rsi
movq (%rax,%r15,8), %r13
movq 0x28(%r14), %r12
leaq 0x80(%rsp), %r14
movq %r14, %rdi
movq %r13, %rdx
callq 0x22e42
leaq (%r12,%rbx), %rdi
addq $-0x70, %rdi
movq %r14, %rsi
callq 0x4276e
testb $0x4, 0xa8(%r13)
jne 0xed18
movq 0x8(%rsp), %rdi
movq (%rdi), %rax
movq %r13, %rsi
callq *0x2c8(%rax)
leaq 0x38(%r13), %rsi
leaq (%r12,%rbx), %rdi
addq $-0x58, %rdi
callq 0x43626
testb $0x2, 0xa8(%r13)
jne 0xed44
movq 0x8(%rsp), %rdi
movq (%rdi), %rax
movq %r13, %rsi
callq *0x2c0(%rax)
movsd 0x90(%r13), %xmm0
ucomisd 0x492c3(%rip), %xmm0    # 0x58018
jb 0xed5d
sqrtsd %xmm0, %xmm0
jmp 0xed62
callq 0xc2b0
addsd %xmm0, %xmm0
movsd %xmm0, -0x28(%r12,%rbx)
testb $0x2, 0xa8(%r13)
jne 0xed88
movq 0x8(%rsp), %rdi
movq (%rdi), %rax
movq %r13, %rsi
callq *0x2c0(%rax)
leaq (%r12,%rbx), %rbp
addq $-0x78, %rbp
movsd 0x90(%r13), %xmm0
addq %rbx, %r12
movsd %xmm0, 0x70(%rbp)
movq %r12, %rdi
leaq 0x71315(%rip), %rsi     # 0x800c0
callq 0x559a2
movl $0x0, 0xa4(%rbp)
movl %r15d, 0xd4(%rbp)
movq 0x10(%rsp), %r14
movl 0xc(%r14), %edx
movq %r14, %rdi
movq %rbp, %rsi
callq 0x55b32
xorps %xmm0, %xmm0
movups %xmm0, 0x78(%rbp)
movq $0x0, 0x88(%rbp)
movq 0x8(%r13), %rsi
addq $0x58, %rsi
movq %r12, %rdi
callq 0x559c2
movq 0x10(%r13), %rsi
addq $0x58, %rsi
movq %r12, %rdi
callq 0x559c2
movq 0x18(%r13), %rsi
addq $0x58, %rsi
movq %r12, %rdi
callq 0x559c2
movq %r12, %rdi
movsd 0x491e6(%rip), %xmm0    # 0x58008
callq 0x55a6e
incq %r15
movq 0x8(%rsp), %r13
movslq 0x34(%r13), %rax
addq $0xe0, %rbx
cmpq %rax, %r15
jl 0xeccb
jmp 0xee53
movq 0x10(%rsp), %rax
movq %r13, 0x28(%rax)
movq 0x8(%rsp), %r13
leaq 0x80(%rsp), %rdi
callq 0xfcdc
movl $0x60, %edi
callq 0xc370
movq %rax, %r15
movq %rax, %rdi
movq 0x10(%rsp), %rbx
movq %rbx, %rsi
movl $0x8, %edx
callq 0xf7b8
movq %r15, 0x10(%rbx)
cmpl $0x0, 0x34(%r13)
jle 0xef9e
xorl %ecx, %ecx
movq 0x28(%r13), %rax
movq (%rax,%rcx,8), %r13
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq %rcx, 0x18(%rsp)
movq (%rax,%rcx,8), %rbp
leaq 0x20(%rbp), %r14
leaq 0xb0(%rbp), %r15
movl $0x4, %ebx
movq (%r13,%rbx,8), %rcx
movq 0x18(%rcx), %rax
cmpq %r13, %rax
jne 0xeece
movq 0x20(%rcx), %rax
testq %rax, %rax
je 0xef77
movslq 0xa4(%rax), %rax
movq 0x10(%rsp), %rcx
movq (%rcx), %rcx
movq (%rcx,%rax,8), %r12
movsd 0x6ec96(%rip), %xmm0    # 0x7db88
ucomisd 0x4911e(%rip), %xmm0    # 0x58018
jbe 0xef2e
leaq 0x20(%r12), %rsi
movq %r14, %rdi
callq 0x43126
xorpd %xmm1, %xmm1
movsd 0x490fb(%rip), %xmm2    # 0x58010
ucomisd %xmm0, %xmm2
jbe 0xef24
callq 0xc330
movapd %xmm0, %xmm1
ucomisd 0x6ec5c(%rip), %xmm1    # 0x7db88
ja 0xef77
movsd 0x6ec5a(%rip), %xmm0    # 0x7db90
ucomisd 0x490da(%rip), %xmm0    # 0x58018
jbe 0xef66
movsd 0x78(%rbp), %xmm1
subsd 0x78(%r12), %xmm1
andpd 0x490cc(%rip), %xmm1    # 0x58020
movapd %xmm1, %xmm2
addsd %xmm1, %xmm2
addsd %xmm1, %xmm2
ucomisd %xmm0, %xmm2
ja 0xef77
movl 0xbc(%rbp), %edx
movq %r15, %rdi
movq %r12, %rsi
callq 0x55b32
incq %rbx
cmpq $0x7, %rbx
jne 0xeebc
movq 0x18(%rsp), %rcx
incq %rcx
movq 0x8(%rsp), %r13
movslq 0x34(%r13), %rax
cmpq %rax, %rcx
jl 0xee93
leaq 0x130(%rsp), %rdi
callq 0x55b06
movq 0x10(%rsp), %rdi
movl $0x3, %esi
callq 0x148c6
testl %eax, %eax
je 0xf72e
cmpb $0x1, 0x6ebb7(%rip)     # 0x7db80
jne 0xf014
leaq 0x4936d(%rip), %rdi     # 0x5833f
callq 0xc550
leaq 0x40(%rsp), %rdi
callq 0x55562
leaq 0x49244(%rip), %rdi     # 0x5822c
movb $0x1, %al
callq 0xc070
movq 0x10(%rsp), %rax
movl 0x24(%rax), %esi
leaq 0x49278(%rip), %rdi     # 0x58276
xorl %eax, %eax
callq 0xc070
movq 0x6df7c(%rip), %rax     # 0x7cf88
movq (%rax), %rdi
callq 0xc420
movslq 0x34(%r13), %rax
testq %rax, %rax
jle 0xf039
movq 0x28(%r13), %rcx
xorl %edx, %edx
movq (%rcx,%rdx,8), %rsi
movl $0xffffffff, 0x9c(%rsi) # imm = 0xFFFFFFFF
incq %rdx
cmpq %rdx, %rax
jne 0xf023
movq 0x10(%rsp), %rax
movslq 0x24(%rax), %rax
testq %rax, %rax
jle 0xf090
movq 0x10(%rsp), %rcx
movq 0x18(%rcx), %rcx
xorl %edx, %edx
movq (%rcx,%rdx,8), %rdi
movslq 0x14(%rdi), %rsi
testq %rsi, %rsi
jle 0xf088
movq 0x8(%rdi), %rdi
movq 0x28(%r13), %r8
xorl %r9d, %r9d
movq (%rdi,%r9,8), %r10
movslq 0xd4(%r10), %r10
movq (%r8,%r10,8), %r10
movl %edx, 0x9c(%r10)
incq %r9
cmpq %r9, %rsi
jne 0xf06a
incq %rdx
cmpq %rax, %rdx
jne 0xf052
cmpb $0x0, 0x6eac9(%rip)     # 0x7db60
jne 0xf336
leaq 0x58(%rsp), %r14
movq %r14, %rdi
callq 0x55500
movq %r14, %rdi
xorl %esi, %esi
callq 0xc5a0
movl 0x34(%r13), %eax
testl %eax, %eax
jle 0xf2fa
movl $0x1, 0x24(%rsp)
xorl %ebx, %ebx
movq 0x28(%r13), %rcx
movq (%rcx,%rbx,8), %r14
movq 0x20(%r14), %rcx
movq 0x18(%rcx), %rbp
cmpq %r14, %rbp
jne 0xf0e3
movq 0x20(%rcx), %rbp
movq 0x28(%r14), %rcx
movq 0x18(%rcx), %r13
cmpq %r14, %r13
jne 0xf0f4
movq 0x20(%rcx), %r13
movq 0x30(%r14), %rcx
movq 0x18(%rcx), %r12
cmpq %r14, %r12
jne 0xf105
movq 0x20(%rcx), %r12
testq %rbp, %rbp
je 0xf2db
testq %r13, %r13
je 0xf2db
testq %r12, %r12
je 0xf2db
movl 0x9c(%r14), %eax
movl %eax, 0x18(%rsp)
movl 0x9c(%rbp), %r15d
movl 0x9c(%r13), %eax
movl %eax, 0x28(%rsp)
movl 0x9c(%r12), %eax
movl %eax, 0x2c(%rsp)
testb $0x4, 0xa8(%r14)
jne 0xf164
movq 0x8(%rsp), %rdi
movq (%rdi), %rax
movq %r14, %rsi
callq *0x2c8(%rax)
leaq 0x38(%r14), %rsi
leaq 0x80(%rsp), %rdi
callq 0x42eaa
testb $0x4, 0xa8(%rbp)
jne 0xf18f
movq 0x8(%rsp), %rdi
movq (%rdi), %rax
movq %rbp, %rsi
callq *0x2c8(%rax)
addq $0x38, %rbp
leaq 0x40(%rsp), %rdi
movq %rbp, %rsi
callq 0x42eaa
testb $0x4, 0xa8(%r13)
jne 0xf1bb
movq 0x8(%rsp), %rdi
movq (%rdi), %rax
movq %r13, %rsi
callq *0x2c8(%rax)
addq $0x38, %r13
leaq 0x68(%rsp), %rdi
movq %r13, %rsi
callq 0x42eaa
testb $0x4, 0xa8(%r12)
movq 0x8(%rsp), %r13
jne 0xf1ec
movq (%r13), %rax
movq %r13, %rdi
movq %r12, %rsi
callq *0x2c8(%rax)
addq $0x38, %r12
leaq 0x160(%rsp), %rbp
movq %rbp, %rdi
movq %r12, %rsi
callq 0x42eaa
leaq 0x80(%rsp), %r12
movq %r12, %rdi
leaq 0x40(%rsp), %rsi
callq 0x203d7
movsd %xmm0, 0x30(%rsp)
movq %r12, %rdi
leaq 0x68(%rsp), %rsi
callq 0x203d7
movsd %xmm0, 0x38(%rsp)
movq %r12, %rdi
movq %rbp, %rsi
callq 0x203d7
movsd 0x6e8c4(%rip), %xmm1    # 0x7db08
movsd 0x30(%rsp), %xmm2
ucomisd %xmm1, %xmm2
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movl %r15d, %r8d
ja 0xf260
movl %r8d, %edx
movsd 0x38(%rsp), %xmm2
ucomisd %xmm1, %xmm2
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
movl 0x18(%rsp), %r15d
ja 0xf27a
movl 0x28(%rsp), %ecx
ucomisd %xmm1, %xmm0
ja 0xf284
movl 0x2c(%rsp), %eax
cmpl %edx, %r15d
setne %dil
testl %edx, %edx
setns %sil
andb %dil, %sil
testl %ecx, %ecx
js 0xf2a1
cmpl %ecx, %edx
jne 0xf2a1
testb %sil, %sil
jne 0xf2c6
testl %eax, %eax
setns %dil
cmpl %eax, %edx
sete %dl
andb %dil, %dl
testb %sil, %dl
jne 0xf2c6
cmpl %ecx, %r15d
je 0xf2d5
movl %ecx, %edx
orl %eax, %edx
js 0xf2d5
movl %ecx, %r8d
cmpl %eax, %ecx
jne 0xf2d5
movl %r8d, 0x9c(%r14)
movl $0x0, 0x24(%rsp)
movl 0x34(%r13), %eax
jmp 0xf2e0
movq 0x8(%rsp), %r13
incq %rbx
movslq %eax, %rcx
cmpq %rcx, %rbx
jl 0xf0ca
cmpl $0x0, 0x24(%rsp)
je 0xf0b8
cmpb $0x1, 0x6e87f(%rip)     # 0x7db80
jne 0xf336
leaq 0x4904e(%rip), %rdi     # 0x58358
callq 0xc550
leaq 0x58(%rsp), %rdi
callq 0x55562
leaq 0x48f0c(%rip), %rdi     # 0x5822c
movb $0x1, %al
callq 0xc070
movq 0x6dc5a(%rip), %rax     # 0x7cf88
movq (%rax), %rdi
callq 0xc420
movq 0x6e82b(%rip), %r14     # 0x7db68
leaq 0x80(%rsp), %r15
movq %r15, %rdi
callq 0x55500
movq %r15, %rdi
xorl %esi, %esi
callq 0xc5a0
cmpb $0x1, 0x6e826(%rip)     # 0x7db84
jne 0xf390
movslq 0x34(%r13), %rax
testq %rax, %rax
jle 0xf390
movq 0x28(%r13), %rcx
xorl %edx, %edx
movq (%rcx,%rdx,8), %rsi
movq 0x98(%rsi), %xmm0
pshufd $0xe1, %xmm0, %xmm0     # xmm0 = xmm0[1,0,2,3]
movq %xmm0, 0x98(%rsi)
incq %rdx
cmpq %rdx, %rax
jne 0xf36f
movq (%r13), %rax
movq %r13, %rdi
movq %r14, %rsi
callq *0x1d0(%rax)
testl %eax, %eax
je 0xf70f
cmpb $0x1, 0x6e7d5(%rip)     # 0x7db84
jne 0xf3e1
movslq 0x34(%r13), %rax
testq %rax, %rax
jle 0xf3e1
movq 0x28(%r13), %rcx
xorl %edx, %edx
movq (%rcx,%rdx,8), %rsi
movq 0x98(%rsi), %xmm0
pshufd $0xe1, %xmm0, %xmm0     # xmm0 = xmm0[1,0,2,3]
movq %xmm0, 0x98(%rsi)
incq %rdx
cmpq %rdx, %rax
jne 0xf3c0
cmpb $0x1, 0x6e798(%rip)     # 0x7db80
jne 0xf45b
leaq 0x48ecf(%rip), %rdi     # 0x582c0
movq %r14, %rsi
xorl %eax, %eax
callq 0xc070
leaq 0x80(%rsp), %rdi
callq 0x55562
leaq 0x48e1d(%rip), %rdi     # 0x5822c
movb $0x1, %al
callq 0xc070
movl 0x34(%r13), %esi
leaq 0x48e22(%rip), %rdi     # 0x58243
xorl %eax, %eax
callq 0xc070
movl 0x24(%r13), %esi
leaq 0x48e20(%rip), %rdi     # 0x58253
xorl %eax, %eax
callq 0xc070
movl 0x14(%r13), %esi
leaq 0x48e1e(%rip), %rdi     # 0x58263
xorl %eax, %eax
callq 0xc070
movq 0x6db35(%rip), %rax     # 0x7cf88
movq (%rax), %rdi
callq 0xc420
movq 0x6e70e(%rip), %rbx     # 0x7db70
testq %rbx, %rbx
je 0xf63c
leaq 0x80(%rsp), %r15
movq %r15, %rdi
callq 0x55500
movq %r15, %rdi
xorl %esi, %esi
callq 0xc5a0
leaq 0x4afd0(%rip), %rsi     # 0x5a45c
movq %rbx, 0x18(%rsp)
movq %rbx, %rdi
callq 0xc430
testq %rax, %rax
je 0xf71b
movq %rax, %r15
leaq 0x48e47(%rip), %rdi     # 0x582f3
movl $0x2, %esi
movl $0x1, %edx
movq %rax, %rcx
callq 0xc6a0
leaq 0x48e31(%rip), %rdi     # 0x582f6
movl $0x14, %esi
movl $0x1, %edx
movq %r15, %rcx
callq 0xc6a0
leaq 0x48e2d(%rip), %rdi     # 0x5830b
movl $0x12, %esi
movl $0x1, %edx
movq %r15, %rcx
callq 0xc6a0
cmpl $0x0, 0x14(%r13)
jle 0xf5b7
movq %r13, %rcx
movl $0x98967f, %ebx         # imm = 0x98967F
leaq 0x49c88(%rip), %r12     # 0x59192
leaq 0x48df7(%rip), %r13     # 0x58308
xorl %r14d, %r14d
movq 0x8(%rcx), %rax
movq (%rax,%r14,8), %rax
movslq 0x14(%rax), %rcx
testq %rcx, %rcx
jle 0xf56f
movq 0x8(%rax), %rdx
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
xorl %esi, %esi
movq (%rdx,%rsi,8), %rdi
xorl %r8d, %r8d
cmpq %rax, 0x8(%rdi)
sete %r8b
movq 0x18(%rdi,%r8,8), %rdi
testq %rdi, %rdi
je 0xf565
movl 0x9c(%rdi), %edi
testl %edi, %edi
js 0xf565
cmpl %ebp, %edi
movl %ebp, %r8d
cmovll %edi, %r8d
testl %ebp, %ebp
cmovlel %edi, %r8d
movl %r8d, %ebp
incq %rsi
cmpq %rsi, %rcx
jne 0xf530
jmp 0xf574
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
testq %r14, %r14
je 0xf58e
movl $0x2, %esi
movl $0x1, %edx
movq %r13, %rdi
movq %r15, %rcx
callq 0xc6a0
testl %ebp, %ebp
cmovsl %ebx, %ebp
movq %r15, %rdi
movq %r12, %rsi
movl %ebp, %edx
xorl %eax, %eax
callq 0xc500
incq %r14
movq 0x8(%rsp), %rcx
movslq 0x14(%rcx), %rax
cmpq %rax, %r14
jl 0xf514
leaq 0x48d60(%rip), %rdi     # 0x5831e
movl $0x3, %esi
movl $0x1, %edx
movq %r15, %rcx
callq 0xc6a0
leaq 0x48d4b(%rip), %rdi     # 0x58322
movl $0x2, %esi
movl $0x1, %edx
movq %r15, %rcx
callq 0xc6a0
movq %r15, %rdi
callq 0xc360
cmpb $0x0, 0x6e588(%rip)     # 0x7db80
je 0xf637
leaq 0x48d24(%rip), %rdi     # 0x58325
movq 0x18(%rsp), %rsi
xorl %eax, %eax
callq 0xc070
leaq 0x80(%rsp), %rdi
callq 0x55562
leaq 0x48c0b(%rip), %rdi     # 0x5822c
movb $0x1, %al
callq 0xc070
movq 0x6d959(%rip), %rax     # 0x7cf88
movq (%rax), %rdi
callq 0xc420
movq 0x8(%rsp), %r13
movq 0x6e535(%rip), %r14     # 0x7db78
testq %r14, %r14
je 0xf6bb
leaq 0x80(%rsp), %r15
movq %r15, %rdi
callq 0x55500
movq %r15, %rdi
xorl %esi, %esi
callq 0xc5a0
movq 0x10(%rsp), %rdi
movq %r14, %rsi
callq 0x14f04
testl %eax, %eax
je 0xf72e
cmpb $0x1, 0x6e502(%rip)     # 0x7db80
jne 0xf6bb
leaq 0x48c9e(%rip), %rdi     # 0x58325
movq %r14, %rsi
xorl %eax, %eax
callq 0xc070
leaq 0x80(%rsp), %rdi
callq 0x55562
leaq 0x48b87(%rip), %rdi     # 0x5822c
movb $0x1, %al
callq 0xc070
movq 0x6d8d5(%rip), %rax     # 0x7cf88
movq (%rax), %rdi
callq 0xc420
movq (%r13), %rax
movq %r13, %rdi
callq *0x8(%rax)
xorl %eax, %eax
addq $0x178, %rsp            # imm = 0x178
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x48af4(%rip), %rdi     # 0x581d4
movq %r14, %rsi
xorl %eax, %eax
callq 0x57c62
movl $0x1, %edi
callq 0xc450
leaq 0x48af6(%rip), %rdi     # 0x581f1
xorl %eax, %eax
callq 0x57c62
jmp 0xf6ea
movq (%r15), %rax
movq %r15, %rdi
callq *0x8(%rax)
jmp 0xf72e
leaq 0x48b8e(%rip), %rdi     # 0x582a4
movq %r14, %rsi
jmp 0xf727
leaq 0x48bb4(%rip), %rdi     # 0x582d6
movq 0x18(%rsp), %rsi
xorl %eax, %eax
callq 0x57c62
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0xc450
movq %rax, %r14
movl $0x60, %esi
movq %r15, %rdi
callq 0xc380
jmp 0xf7a3
jmp 0xf7a0
movq %rax, %r14
movl $0xe0, %esi
movq 0x10(%rsp), %rdi
jmp 0xf766
movq %rax, %r14
movl $0x138, %esi            # imm = 0x138
movq %r15, %rdi
callq 0xc380
jmp 0xf7b0
movq %rax, %r14
testq %rbx, %rbx
je 0xf791
negq %rbx
movq %r12, %r13
addq $-0x28, %r13
leaq (%rbx,%r13), %rdi
callq 0x55b06
addq $-0xe0, %rbx
jne 0xf77f
movq %r12, %rdi
movq %r15, %rsi
callq 0xc6b0
jmp 0xf7b0
jmp 0xf7a0
movq %rax, %r14
leaq 0x130(%rsp), %rdi
callq 0x55b06
movq %r14, %rdi
callq 0xc610