// File: /workspace/github_cpp_makefile_star2_O2/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 %rsi, %r15
movl %edi, %r13d
movq 0x6aaee(%rip), %r12     # 0x78b78
movq 0x6aaf7(%rip), %rax     # 0x78b88
movq %rax, (%rsp)
cmpl $0x2, %r13d
jl 0xe4b0
leal -0x1(%r13), %ebx
leaq 0x8(%r15), %rbp
movq (%rbp), %r14
cmpb $0x2d, (%r14)
jne 0xe2ab
cmpb $0x76, 0x1(%r14)
jne 0xe0c7
cmpb $0x0, 0x2(%r14)
je 0xe2e9
movq %r14, %rdi
leaq 0x42f6f(%rip), %rsi     # 0x51040
callq 0xc500
testl %eax, %eax
je 0xe2d4
movq %r14, %rdi
leaq 0x42f5f(%rip), %rsi     # 0x51047
callq 0xc500
testl %eax, %eax
je 0xe2e0
movq %r14, %rdi
leaq 0x42f60(%rip), %rsi     # 0x5105f
callq 0xc500
testl %eax, %eax
je 0xe2f2
movq %r14, %rdi
leaq 0x42f5c(%rip), %rsi     # 0x51072
callq 0xc500
testl %eax, %eax
je 0xe2fb
movq %r14, %rdi
leaq 0x42f59(%rip), %rsi     # 0x51086
callq 0xc500
testl %eax, %eax
je 0xe304
movq %r14, %rdi
leaq 0x42f62(%rip), %rsi     # 0x510a6
callq 0xc500
testl %eax, %eax
je 0xe30d
movq %r14, %rdi
leaq 0x42f61(%rip), %rsi     # 0x510bc
callq 0xc500
testl %eax, %eax
je 0xe322
movq %r14, %rdi
leaq 0x42f58(%rip), %rsi     # 0x510ca
callq 0xc500
testl %eax, %eax
je 0xe33e
movq %r14, %rdi
leaq 0x42f4f(%rip), %rsi     # 0x510d8
callq 0xc500
testl %eax, %eax
je 0xe35a
movq %r14, %rdi
leaq 0x42f4b(%rip), %rsi     # 0x510eb
callq 0xc500
testl %eax, %eax
je 0xe378
movq %r14, %rdi
leaq 0x42f4f(%rip), %rsi     # 0x51106
callq 0xc500
testl %eax, %eax
je 0xe394
movq %r14, %rdi
leaq 0x42f55(%rip), %rsi     # 0x51123
callq 0xc500
testl %eax, %eax
je 0xe3b0
movq %r14, %rdi
leaq 0x42f4c(%rip), %rsi     # 0x51131
callq 0xc500
testl %eax, %eax
je 0xe3d6
movq %r14, %rdi
leaq 0x42f40(%rip), %rsi     # 0x5113c
callq 0xc500
testl %eax, %eax
je 0xe3fc
movq %r14, %rdi
leaq 0x42f3f(%rip), %rsi     # 0x51152
callq 0xc500
testl %eax, %eax
je 0xe422
movq %r14, %rdi
leaq 0x42f43(%rip), %rsi     # 0x5116d
callq 0xc500
testl %eax, %eax
je 0xe440
movq %r14, %rdi
leaq 0x42f4b(%rip), %rsi     # 0x5118c
callq 0xc500
testl %eax, %eax
je 0xe45e
movq %r14, %rdi
leaq 0x42f4b(%rip), %rsi     # 0x511a3
callq 0xc500
testl %eax, %eax
je 0xe47a
movq %r14, %rdi
leaq 0x42f4a(%rip), %rsi     # 0x511b9
callq 0xc500
testl %eax, %eax
je 0xe498
movq %r14, %rdi
leaq 0x42f40(%rip), %rsi     # 0x511c6
callq 0xc500
testl %eax, %eax
jne 0xef57
addl $-0x2, %r13d
movq 0x10(%r15), %rax
addq $0x10, %r15
movq %rax, 0x6a8f2(%rip)     # 0x78b98
jmp 0xe095
testq %r12, %r12
je 0xe2c8
cmpq $0x0, (%rsp)
jne 0xef57
movq %r14, 0x6a8c6(%rip)     # 0x78b88
movq %r14, (%rsp)
jmp 0xe317
movq %r14, 0x6a8a9(%rip)     # 0x78b78
movq %r14, %r12
jmp 0xe317
movl $0x1, 0x6a896(%rip)     # 0x78b74
jmp 0xe317
movb $0x1, 0x6a899(%rip)     # 0x78b80
jmp 0xe317
movb $0x1, 0x6a8b0(%rip)     # 0x78ba0
jmp 0xe317
movb $0x0, 0x6a887(%rip)     # 0x78b80
jmp 0xe317
movb $0x1, 0x6a8a2(%rip)     # 0x78ba4
jmp 0xe317
andl $0x0, 0x6a85d(%rip)     # 0x78b68
jmp 0xe317
movl $0x1, 0x6a855(%rip)     # 0x78b6c
movq %rbp, %r15
movl %ebx, %r13d
jmp 0xe095
addl $-0x2, %r13d
movq 0x10(%r15), %rdi
addq $0x10, %r15
callq 0xc590
movl %eax, 0x6a78f(%rip)     # 0x78ac8
jmp 0xe095
addl $-0x2, %r13d
movq 0x10(%r15), %rdi
addq $0x10, %r15
callq 0xc590
movl %eax, 0x6a777(%rip)     # 0x78acc
jmp 0xe095
addl $-0x2, %r13d
movq 0x10(%r15), %rdi
addq $0x10, %r15
callq 0xc480
movq %xmm0, 0x6a7d5(%rip)    # 0x78b48
jmp 0xe095
addl $-0x2, %r13d
movq 0x10(%r15), %rdi
addq $0x10, %r15
callq 0xc590
movl %eax, 0x6a7c1(%rip)     # 0x78b50
jmp 0xe095
addl $-0x2, %r13d
movq 0x10(%r15), %rdi
addq $0x10, %r15
callq 0xc590
movl %eax, 0x6a7a9(%rip)     # 0x78b54
jmp 0xe095
addl $-0x2, %r13d
movq 0x10(%r15), %rdi
addq $0x10, %r15
callq 0xc480
movq %xmm0, 0x6a727(%rip)    # 0x78af0
movq %xmm0, 0x6a74f(%rip)    # 0x78b20
jmp 0xe095
addl $-0x2, %r13d
movq 0x10(%r15), %rdi
addq $0x10, %r15
callq 0xc480
movq %xmm0, 0x6a709(%rip)    # 0x78af8
movq %xmm0, 0x6a731(%rip)    # 0x78b28
jmp 0xe095
addl $-0x2, %r13d
movq 0x10(%r15), %rdi
addq $0x10, %r15
callq 0xc480
movq %xmm0, 0x6a6eb(%rip)    # 0x78b00
movq %xmm0, 0x6a713(%rip)    # 0x78b30
jmp 0xe095
addl $-0x2, %r13d
movq 0x10(%r15), %rdi
addq $0x10, %r15
callq 0xc480
movq %xmm0, 0x6a76d(%rip)    # 0x78ba8
jmp 0xe095
addl $-0x2, %r13d
movq 0x10(%r15), %rdi
addq $0x10, %r15
callq 0xc480
movq %xmm0, 0x6a757(%rip)    # 0x78bb0
jmp 0xe095
addl $-0x2, %r13d
movq 0x10(%r15), %rdi
addq $0x10, %r15
callq 0xc590
movl %eax, 0x6a65b(%rip)     # 0x78ad0
jmp 0xe095
addl $-0x2, %r13d
movq 0x10(%r15), %rdi
addq $0x10, %r15
callq 0xc480
movq %xmm0, 0x6a645(%rip)    # 0x78ad8
jmp 0xe095
addl $-0x2, %r13d
movq 0x10(%r15), %rax
addq $0x10, %r15
movq %rax, 0x6a6e5(%rip)     # 0x78b90
jmp 0xe095
testq %r12, %r12
je 0xef6c
cmpq $0x0, (%rsp)
je 0xef6c
leaq 0x68(%rsp), %rbx
movq %rbx, %rdi
callq 0x4e7ba
movq %rbx, %rdi
callq 0xf02c
movl $0x138, %edi            # imm = 0x138
callq 0xc380
movq %rax, %rbx
movq %rax, %rdi
callq 0x206e0
movq (%rbx), %rax
movq %rbx, %rdi
movq %r12, %rsi
callq *0x180(%rax)
testl %eax, %eax
je 0xef7c
cmpb $0x1, 0x6a698(%rip)     # 0x78ba4
jne 0xe53d
movl 0x34(%rbx), %eax
xorl %ecx, %ecx
testl %eax, %eax
cmovlel %ecx, %eax
cmpq %rcx, %rax
je 0xe53d
movq 0x28(%rbx), %rdx
movq (%rdx,%rcx,8), %rdx
movl 0x9c(%rdx), %esi
movl %esi, 0x98(%rdx)
orl $-0x1, 0x9c(%rdx)
incq %rcx
jmp 0xe518
cmpb $0x1, 0x6a65c(%rip)     # 0x78ba0
jne 0xe5b1
leaq 0x42cc8(%rip), %rdi     # 0x51215
movq %r12, %rsi
xorl %eax, %eax
callq 0xc070
leaq 0x68(%rsp), %rdi
callq 0x4e7f4
leaq 0x42cc4(%rip), %rdi     # 0x5122c
movb $0x1, %al
callq 0xc070
movl 0x34(%rbx), %esi
leaq 0x42cca(%rip), %rdi     # 0x51243
xorl %eax, %eax
callq 0xc070
movl 0x24(%rbx), %esi
leaq 0x42cc9(%rip), %rdi     # 0x51253
xorl %eax, %eax
callq 0xc070
movl 0x14(%rbx), %esi
leaq 0x42cc8(%rip), %rdi     # 0x51263
xorl %eax, %eax
callq 0xc070
movq 0x699ef(%rip), %rax     # 0x77f98
movq (%rax), %rdi
callq 0xc440
movq %rbx, 0x10(%rsp)
leaq 0x40(%rsp), %r14
movq %r14, %rdi
callq 0x4e7ba
movq %r14, %rdi
callq 0xf02c
movl $0xe0, %ebx
movl $0xe0, %edi
callq 0xc380
leaq 0x6a4b7(%rip), %rsi     # 0x78a98
movq %rax, (%rsp)
movq %rax, %rdi
callq 0x12292
movq 0x10(%rsp), %rax
movslq 0x34(%rax), %r14
movq %r14, %rax
mulq %rbx
seto %cl
orq $0x8, %rax
pushq $-0x1
popq %r12
testb %cl, %cl
cmoveq %rax, %r12
movq %r12, %rdi
callq 0xc030
leaq 0x8(%rax), %r15
movq %r14, (%rax)
testq %r14, %r14
je 0xe64b
movq %rax, %r13
imulq $-0xe0, %r14, %rbp
xorl %ebx, %ebx
movq %r15, %r14
movq %r14, %rdi
callq 0xf594
addq $-0xe0, %rbx
addq $0xe0, %r14
cmpq %rbx, %rbp
jne 0xe630
movq (%rsp), %rax
movq %r15, 0x28(%rax)
pushq $0x78
popq %r12
xorl %r15d, %r15d
movq 0x10(%rsp), %rbx
movslq 0x34(%rbx), %rax
cmpq %rax, %r15
jge 0xe78b
movq 0x28(%rbx), %rax
movq (%rax,%r15,8), %rbp
movq (%rsp), %rax
movq 0x28(%rax), %r13
leaq 0x68(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rsi
movq %rbp, %rdx
callq 0x20d5e
leaq (%r12,%r13), %rdi
addq $-0x70, %rdi
movq %r14, %rsi
callq 0x3d632
movq %rbx, %rdi
movq %rbp, %rsi
callq 0xf16e
leaq (%r12,%r13), %rdi
addq $-0x58, %rdi
movq %rax, %rsi
callq 0x3e078
movq %rbx, %rdi
movq %rbp, %rsi
callq 0xf034
ucomisd 0x4294b(%rip), %xmm0    # 0x51018
jb 0xe6d5
sqrtsd %xmm0, %xmm0
jmp 0xe6da
callq 0xc2c0
leaq (%r12,%r13), %r14
addq $-0x78, %r14
addsd %xmm0, %xmm0
addq %r12, %r13
movsd %xmm0, 0x50(%r14)
movq %rbx, %rdi
movq %rbp, %rsi
callq 0xf034
movsd %xmm0, 0x70(%r14)
movq %r13, %rdi
leaq 0x6c9d6(%rip), %rsi     # 0x7b0e0
callq 0x4ec0a
andl $0x0, 0xa4(%r14)
movl %r15d, 0xd4(%r14)
movq (%rsp), %rdi
movq %r14, %rsi
callq 0xf190
andq $0x0, 0x88(%r14)
xorpd %xmm0, %xmm0
movupd %xmm0, 0x78(%r14)
movq 0x8(%rbp), %rsi
addq $0x58, %rsi
movq %r13, %rdi
callq 0x4ec2a
movq 0x10(%rbp), %rsi
addq $0x58, %rsi
movq %r13, %rdi
callq 0x4ec2a
movq 0x18(%rbp), %rsi
addq $0x58, %rsi
movq %r13, %rdi
callq 0x4ec2a
movq %r13, %rdi
movq 0x42899(%rip), %xmm0    # 0x51010
callq 0x4ecd6
incq %r15
addq $0xe0, %r12
jmp 0xe65f
leaq 0x68(%rsp), %rdi
callq 0xf594
pushq $0x60
popq %rdi
callq 0xc380
movq %rax, %r14
pushq $0x8
popq %rdx
movq %rax, %rdi
movq (%rsp), %r15
movq %r15, %rsi
callq 0xf058
movq %r14, 0x10(%r15)
xorl %ecx, %ecx
movslq 0x34(%rbx), %rax
cmpq %rax, %rcx
jge 0xe8c1
movq 0x28(%rbx), %rax
movq (%rax,%rcx,8), %rbx
movq (%r15), %rax
movq %rcx, 0x8(%rsp)
movq (%rax,%rcx,8), %rbp
leaq 0x20(%rbp), %r15
leaq 0xb0(%rbp), %r12
pushq $0x4
popq %r14
cmpq $0x7, %r14
je 0xe8ab
movq (%rbx,%r14,8), %rcx
movq 0x18(%rcx), %rax
cmpq %rbx, %rax
jne 0xe803
movq 0x20(%rcx), %rax
testq %rax, %rax
je 0xe8a3
movslq 0xa4(%rax), %rax
movq (%rsp), %rcx
movq (%rcx), %rcx
movq (%rcx,%rax,8), %r13
movsd 0x6a382(%rip), %xmm0    # 0x78ba8
ucomisd 0x427ea(%rip), %xmm0    # 0x51018
jbe 0xe861
leaq 0x20(%r13), %rsi
movq %r15, %rdi
callq 0x3dd82
xorpd %xmm1, %xmm1
movsd 0x427c0(%rip), %xmm2    # 0x51008
ucomisd %xmm0, %xmm2
jbe 0xe857
callq 0xc340
movapd %xmm0, %xmm1
ucomisd 0x6a349(%rip), %xmm1    # 0x78ba8
ja 0xe8a3
movsd 0x6a347(%rip), %xmm0    # 0x78bb0
ucomisd 0x427a7(%rip), %xmm0    # 0x51018
jbe 0xe898
movsd 0x78(%rbp), %xmm1
subsd 0x78(%r13), %xmm1
andpd 0x4279a(%rip), %xmm1    # 0x51020
movapd %xmm1, %xmm2
addsd %xmm1, %xmm2
addsd %xmm1, %xmm2
ucomisd %xmm0, %xmm2
ja 0xe8a3
movq %r12, %rdi
movq %r13, %rsi
callq 0xf190
incq %r14
jmp 0xe7e8
movq 0x8(%rsp), %rcx
incq %rcx
movq 0x10(%rsp), %rbx
movq (%rsp), %r15
jmp 0xe7b8
leaq 0x118(%rsp), %rdi
callq 0x4ed70
pushq $0x3
popq %rsi
movq %r15, %rdi
callq 0x13b5c
testl %eax, %eax
je 0xefa6
cmpb $0x1, 0x6a2b8(%rip)     # 0x78ba0
jne 0xe92f
leaq 0x42a4e(%rip), %rdi     # 0x5133f
callq 0xc580
leaq 0x40(%rsp), %rdi
callq 0x4e7f4
leaq 0x42925(%rip), %rdi     # 0x5122c
movb $0x1, %al
callq 0xc070
movl 0x24(%r15), %esi
leaq 0x4295d(%rip), %rdi     # 0x51276
xorl %eax, %eax
callq 0xc070
movq 0x69671(%rip), %rax     # 0x77f98
movq (%rax), %rdi
callq 0xc440
movl 0x34(%rbx), %eax
xorl %ecx, %ecx
testl %eax, %eax
cmovlel %ecx, %eax
cmpq %rcx, %rax
je 0xe952
movq 0x28(%rbx), %rdx
movq (%rdx,%rcx,8), %rdx
orl $-0x1, 0x9c(%rdx)
incq %rcx
jmp 0xe939
movl 0x24(%r15), %eax
xorl %ecx, %ecx
testl %eax, %eax
cmovlel %ecx, %eax
xorl %edx, %edx
cmpq %rax, %rdx
je 0xe9a4
movq 0x18(%r15), %rsi
movq (%rsi,%rdx,8), %rsi
movl 0x14(%rsi), %edi
testl %edi, %edi
cmovlel %ecx, %edi
xorl %r8d, %r8d
cmpq %r8, %rdi
je 0xe99f
movq 0x8(%rsi), %r9
movq (%r9,%r8,8), %r9
movslq 0xd4(%r9), %r9
movq 0x28(%rbx), %r10
movq (%r10,%r9,8), %r9
movl %edx, 0x9c(%r9)
incq %r8
jmp 0xe977
incq %rdx
jmp 0xe95f
cmpb $0x0, 0x6a1d5(%rip)     # 0x78b80
jne 0xebf6
leaq 0x58(%rsp), %r14
movq %r14, %rdi
callq 0x4e7ba
movq %r14, %rdi
callq 0xf02c
movq $0x0, 0x18(%rsp)
cmpl $0x0, 0x18(%rsp)
jne 0xebba
xorl %ecx, %ecx
pushq $0x1
popq %rax
movq %rax, 0x18(%rsp)
movslq 0x34(%rbx), %rax
cmpq %rax, %rcx
jge 0xe9cf
movq 0x28(%rbx), %rax
movq (%rax,%rcx,8), %r12
movq 0x20(%r12), %rax
movq 0x18(%rax), %r13
cmpq %r12, %r13
jne 0xea07
movq 0x20(%rax), %r13
movq 0x28(%r12), %rax
movq 0x18(%rax), %rbp
cmpq %r12, %rbp
jne 0xea19
movq 0x20(%rax), %rbp
movq 0x30(%r12), %rax
movq 0x18(%rax), %r14
cmpq %r12, %r14
jne 0xea2b
movq 0x20(%rax), %r14
testq %r13, %r13
je 0xebb2
testq %rbp, %rbp
je 0xebb2
testq %r14, %r14
je 0xebb2
movq %rcx, 0x8(%rsp)
movl 0x9c(%r12), %eax
movl %eax, 0x2c(%rsp)
movl 0x9c(%r13), %eax
movl %eax, 0x28(%rsp)
movl 0x9c(%rbp), %r15d
movl 0x9c(%r14), %eax
movl %eax, 0x24(%rsp)
movq %rbx, %rdi
movq %r12, %rsi
callq 0xf16e
leaq 0x68(%rsp), %rdi
movq %rax, %rsi
callq 0x3db18
movq %rbx, %rdi
movq %r13, %rsi
callq 0xf16e
leaq 0x40(%rsp), %r13
movq %r13, %rdi
movq %rax, %rsi
callq 0x3db18
movq %rbx, %rdi
movq %rbp, %rsi
callq 0xf16e
leaq 0x160(%rsp), %rbp
movq %rbp, %rdi
movq %rax, %rsi
callq 0x3db18
movq %rbx, %rdi
movq %r14, %rsi
callq 0xf16e
leaq 0x148(%rsp), %rbx
movq %rbx, %rdi
movq %rax, %rsi
callq 0x3db18
leaq 0x68(%rsp), %r14
movq %r14, %rdi
movq %r13, %rsi
callq 0x1e34f
movsd %xmm0, 0x38(%rsp)
movq %r14, %rdi
movq %rbp, %rsi
callq 0x1e34f
movsd %xmm0, 0x30(%rsp)
movq %r14, %rdi
movq %rbx, %rsi
callq 0x1e34f
movl 0x2c(%rsp), %r8d
movl 0x24(%rsp), %edi
movl 0x28(%rsp), %esi
movsd 0x69ffe(%rip), %xmm1    # 0x78b28
movsd 0x38(%rsp), %xmm2
ucomisd %xmm1, %xmm2
movl %esi, %eax
pushq $-0x1
popq %rcx
cmoval %ecx, %eax
movsd 0x30(%rsp), %xmm2
ucomisd %xmm1, %xmm2
cmoval %ecx, %r15d
ucomisd %xmm1, %xmm0
cmoval %ecx, %edi
cmpl %eax, %r8d
setne %dl
testl %eax, %eax
setns %cl
andb %dl, %cl
testl %r15d, %r15d
js 0xeb73
cmpl %r15d, %eax
jne 0xeb73
testb %cl, %cl
je 0xeb73
movq 0x8(%rsp), %rcx
jmp 0xeb9c
testl %edi, %edi
setns %dl
cmpl %edi, %eax
sete %al
andb %dl, %al
testb %cl, %al
movq 0x8(%rsp), %rcx
jne 0xeb9c
cmpl %r15d, %r8d
je 0xebad
movl %r15d, %eax
orl %edi, %eax
js 0xebad
movl %r15d, %esi
cmpl %edi, %r15d
jne 0xebad
movl %esi, 0x9c(%r12)
movq $0x0, 0x18(%rsp)
movq 0x10(%rsp), %rbx
incq %rcx
jmp 0xe9e4
cmpb $0x1, 0x69fdf(%rip)     # 0x78ba0
jne 0xebf6
leaq 0x4278e(%rip), %rdi     # 0x51358
callq 0xc580
leaq 0x58(%rsp), %rdi
callq 0x4e7f4
leaq 0x4264c(%rip), %rdi     # 0x5122c
movb $0x1, %al
callq 0xc070
movq 0x693aa(%rip), %rax     # 0x77f98
movq (%rax), %rdi
callq 0xc440
movq 0x69f8b(%rip), %r15     # 0x78b88
leaq 0x68(%rsp), %r14
movq %r14, %rdi
callq 0x4e7ba
movq %r14, %rdi
callq 0xf02c
cmpb $0x1, 0x69f8b(%rip)     # 0x78ba4
jne 0xec4c
movl 0x34(%rbx), %eax
xorl %ecx, %ecx
testl %eax, %eax
cmovlel %ecx, %eax
cmpq %rcx, %rax
je 0xec4c
movq 0x28(%rbx), %rdx
movq (%rdx,%rcx,8), %rdx
movq 0x98(%rdx), %xmm0
pshufd $0xe1, %xmm0, %xmm0     # xmm0 = xmm0[1,0,2,3]
movq %xmm0, 0x98(%rdx)
incq %rcx
jmp 0xec25
movq (%rbx), %rax
movq %rbx, %rdi
movq %r15, %rsi
callq *0x1d0(%rax)
testl %eax, %eax
je 0xef87
cmpb $0x1, 0x69f3a(%rip)     # 0x78ba4
jne 0xec9d
movl 0x34(%rbx), %eax
xorl %ecx, %ecx
testl %eax, %eax
cmovlel %ecx, %eax
cmpq %rcx, %rax
je 0xec9d
movq 0x28(%rbx), %rdx
movq (%rdx,%rcx,8), %rdx
movq 0x98(%rdx), %xmm0
pshufd $0xe1, %xmm0, %xmm0     # xmm0 = xmm0[1,0,2,3]
movq %xmm0, 0x98(%rdx)
incq %rcx
jmp 0xec76
cmpb $0x1, 0x69efc(%rip)     # 0x78ba0
jne 0xed11
leaq 0x42613(%rip), %rdi     # 0x512c0
movq %r15, %rsi
xorl %eax, %eax
callq 0xc070
leaq 0x68(%rsp), %rdi
callq 0x4e7f4
leaq 0x42564(%rip), %rdi     # 0x5122c
movb $0x1, %al
callq 0xc070
movl 0x34(%rbx), %esi
leaq 0x4256a(%rip), %rdi     # 0x51243
xorl %eax, %eax
callq 0xc070
movl 0x24(%rbx), %esi
leaq 0x42569(%rip), %rdi     # 0x51253
xorl %eax, %eax
callq 0xc070
movl 0x14(%rbx), %esi
leaq 0x42568(%rip), %rdi     # 0x51263
xorl %eax, %eax
callq 0xc070
movq 0x6928f(%rip), %rax     # 0x77f98
movq (%rax), %rdi
callq 0xc440
movq 0x69e78(%rip), %r15     # 0x78b90
testq %r15, %r15
je 0xeec4
leaq 0x68(%rsp), %r14
movq %r14, %rdi
callq 0x4e7ba
movq %r14, %rdi
callq 0xf02c
leaq 0x446df(%rip), %rsi     # 0x5341c
movq %r15, 0x8(%rsp)
movq %r15, %rdi
callq 0xc450
testq %rax, %rax
je 0xef93
movq %rax, %r12
leaq 0x42596(%rip), %rdi     # 0x512f3
pushq $0x2
popq %rsi
pushq $0x1
popq %rbx
movq %rbx, %rdx
movq %rax, %rcx
callq 0xc6d0
leaq 0x42581(%rip), %rdi     # 0x512f6
pushq $0x14
popq %rsi
movq %rbx, %rdx
movq %r12, %rcx
callq 0xc6d0
leaq 0x42581(%rip), %rdi     # 0x5130b
pushq $0x12
popq %rsi
movq %rbx, %rdx
movq %r12, %rcx
callq 0xc6d0
xorl %ebx, %ebx
movl $0x98967f, %r14d        # imm = 0x98967F
leaq 0x433ab(%rip), %r15     # 0x52152
xorl %r13d, %r13d
movq 0x10(%rsp), %rcx
movslq 0x14(%rcx), %rax
cmpq %rax, %r13
jge 0xee46
movq 0x8(%rcx), %rax
movq (%rax,%r13,8), %rax
movl 0x14(%rax), %ecx
testl %ecx, %ecx
cmovlel %ebx, %ecx
xorl %edx, %edx
pushq $-0x1
popq %rbp
cmpq %rdx, %rcx
je 0xee0f
movq 0x8(%rax), %rsi
movq (%rsi,%rdx,8), %rsi
xorl %edi, %edi
cmpq %rax, 0x8(%rsi)
sete %dil
movq 0x18(%rsi,%rdi,8), %rsi
testq %rsi, %rsi
je 0xee0a
movl 0x9c(%rsi), %esi
testl %esi, %esi
js 0xee0a
cmpl %ebp, %esi
movl %ebp, %edi
cmovll %esi, %edi
testl %ebp, %ebp
cmovlel %esi, %edi
movl %edi, %ebp
incq %rdx
jmp 0xedd1
testq %r13, %r13
je 0xee29
leaq 0x424ed(%rip), %rdi     # 0x51308
pushq $0x2
popq %rsi
pushq $0x1
popq %rdx
movq %r12, %rcx
callq 0xc6d0
testl %ebp, %ebp
cmovsl %r14d, %ebp
movq %r12, %rdi
movq %r15, %rsi
movl %ebp, %edx
xorl %eax, %eax
callq 0xc530
incq %r13
jmp 0xedaa
leaq 0x424d1(%rip), %rdi     # 0x5131e
pushq $0x3
popq %rsi
pushq $0x1
popq %r14
movq %r14, %rdx
movq %r12, %rcx
callq 0xc6d0
leaq 0x424bc(%rip), %rdi     # 0x51322
pushq $0x2
popq %rsi
movq %r14, %rdx
movq %r12, %rcx
callq 0xc6d0
movq %r12, %rdi
callq 0xc370
cmpb $0x0, 0x69d1d(%rip)     # 0x78ba0
je 0xeebf
leaq 0x42499(%rip), %rdi     # 0x51325
movq 0x8(%rsp), %rsi
xorl %eax, %eax
callq 0xc070
leaq 0x68(%rsp), %rdi
callq 0x4e7f4
leaq 0x42383(%rip), %rdi     # 0x5122c
movb $0x1, %al
callq 0xc070
movq 0x690e1(%rip), %rax     # 0x77f98
movq (%rax), %rdi
callq 0xc440
movq 0x10(%rsp), %rbx
movq 0x69ccd(%rip), %r14     # 0x78b98
testq %r14, %r14
je 0xef3a
leaq 0x68(%rsp), %r15
movq %r15, %rdi
callq 0x4e7ba
movq %r15, %rdi
callq 0xf02c
movq (%rsp), %rdi
movq %r14, %rsi
callq 0x13fde
testl %eax, %eax
je 0xefa6
cmpb $0x1, 0x69ca0(%rip)     # 0x78ba0
jne 0xef3a
leaq 0x4241c(%rip), %rdi     # 0x51325
movq %r14, %rsi
xorl %eax, %eax
callq 0xc070
leaq 0x68(%rsp), %rdi
callq 0x4e7f4
leaq 0x42308(%rip), %rdi     # 0x5122c
movb $0x1, %al
callq 0xc070
movq 0x69066(%rip), %rax     # 0x77f98
movq (%rax), %rdi
callq 0xc440
movq (%rbx), %rax
movq %rbx, %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 0x42276(%rip), %rdi     # 0x511d4
movq %r14, %rsi
xorl %eax, %eax
callq 0x50bc2
pushq $0x1
jmp 0xefa8
leaq 0x4227e(%rip), %rdi     # 0x511f1
xorl %eax, %eax
callq 0x50bc2
jmp 0xef68
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x8(%rax)
jmp 0xefa6
leaq 0x42316(%rip), %rdi     # 0x512a4
movq %r15, %rsi
jmp 0xef9f
leaq 0x4233c(%rip), %rdi     # 0x512d6
movq 0x8(%rsp), %rsi
xorl %eax, %eax
callq 0x50bc2
pushq $-0x1
popq %rdi
callq 0xc470
movq %rax, %r15
pushq $0x60
popq %rsi
movq %r14, %rdi
callq 0xc390
jmp 0xf016
jmp 0xf013
movq %rax, %r15
movl $0xe0, %esi
movq (%rsp), %rdi
jmp 0xefd9
movq %rax, %r15
movl $0x138, %esi            # imm = 0x138
movq %rbx, %rdi
callq 0xc390
jmp 0xf023
movq %rax, %r15
testq %rbx, %rbx
je 0xf004
negq %rbx
movq %r13, %r14
addq $-0x28, %r14
leaq (%r14,%rbx), %rdi
callq 0x4ed70
addq $-0xe0, %rbx
jne 0xeff2
movq %r13, %rdi
movq %r12, %rsi
callq 0xc6e0
jmp 0xf023
jmp 0xf013
movq %rax, %r15
leaq 0x118(%rsp), %rdi
callq 0x4ed70
movq %r15, %rdi
callq 0xc640
nop