LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_cpp_makefile_star2_O3/mitchellsayer[P]FastPointCloudSegmentation/src/./nanoflann.hpp
// Function: nanoflann::KDTreeSingleIndexAdaptor<nanoflann::L2_Simple_Adaptor<float, ScanlinePointCloud, float>, ScanlinePointCloud, 3, unsigned long>::computeBoundingBox(nanoflann::CArray<nanoflann::KDTreeSingleIndexAdaptor<nanoflann::L2_Simple_Adaptor<float, ScanlinePointCloud, float>, ScanlinePointCloud, 3, unsigned long>::Interval, 3ul>&)
void computeBoundingBox(BoundingBox& bbox)
		{
			bbox.resize((DIM>0 ? DIM : dim));
			if (dataset.kdtree_get_bbox(bbox))
			{
				// Done! It was implemented in derived class
			}
			else
			{
				const size_t N = dataset.kdtree_get_point_count();
				if (!N) throw std::runtime_error("[nanoflann] computeBoundingBox() called but no data points found.");
				for (int i=0; i<(DIM>0 ? DIM : dim); ++i) {
					bbox[i].low =
					bbox[i].high = dataset_get(0,i);
				}
				for (size_t k=1; k<N; ++k) {
					for (int i=0; i<(DIM>0 ? DIM : dim); ++i) {
						if (dataset_get(k,i)<bbox[i].low) bbox[i].low = dataset_get(k,i);
						if (dataset_get(k,i)>bbox[i].high) bbox[i].high = dataset_get(k,i);
					}
				}
			}
		}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq 0x20(%rdi), %rcx
movq 0x8(%rcx), %rax
movq 0x10(%rcx), %rdx
subq %rax, %rdx
je 0x6da0
sarq $0x3, %rdx
movabsq $-0x3333333333333333, %rcx # imm = 0xCCCCCCCCCCCCCCCD
imulq %rdx, %rcx
leaq 0x4(%rax), %rdx
leaq 0x8(%rax), %rdi
xorl %r8d, %r8d
movq %rax, %r9
testl %r8d, %r8d
je 0x6cbd
movq %rdx, %r9
cmpl $0x1, %r8d
je 0x6cbd
movq %rdi, %r9
movss (%r9), %xmm0
movss %xmm0, 0x4(%rsi,%r8,8)
movss %xmm0, (%rsi,%r8,8)
incq %r8
cmpq $0x3, %r8
jne 0x6ca9
cmpq $0x2, %rcx
jb 0x6d9b
movl $0x1, %edx
leaq (%rdx,%rdx,4), %r9
leaq (%rax,%r9,8), %rdi
addq $0x4, %rdi
leaq (%rax,%r9,8), %r8
leaq (%rax,%r9,8), %r9
addq $0x8, %r9
xorl %r10d, %r10d
movq %r8, %r11
testl %r10d, %r10d
je 0x6d16
movq %rdi, %r11
cmpl $0x1, %r10d
je 0x6d16
movq %r9, %r11
movss (%rsi,%r10,8), %xmm0
ucomiss (%r11), %xmm0
jbe 0x6d41
movq %r8, %r11
testl %r10d, %r10d
je 0x6d36
movq %rdi, %r11
cmpl $0x1, %r10d
je 0x6d36
movq %r9, %r11
movss (%r11), %xmm0
movss %xmm0, (%rsi,%r10,8)
movq %r8, %r11
testl %r10d, %r10d
je 0x6d55
movq %rdi, %r11
cmpl $0x1, %r10d
je 0x6d55
movq %r9, %r11
movss (%r11), %xmm0
ucomiss 0x4(%rsi,%r10,8), %xmm0
jbe 0x6d82
movq %r8, %r11
testl %r10d, %r10d
je 0x6d76
movq %rdi, %r11
cmpl $0x1, %r10d
je 0x6d76
movq %r9, %r11
movss (%r11), %xmm0
movss %xmm0, 0x4(%rsi,%r10,8)
incq %r10
cmpq $0x3, %r10
jne 0x6d02
incq %rdx
cmpq %rcx, %rdx
jne 0x6ce7
popq %rbx
popq %r14
popq %rbp
retq
movl $0x10, %edi
callq 0x20b0
movq %rax, %rbx
leaq 0x13d0(%rip), %rsi      # 0x8184
movq %rax, %rdi
callq 0x2080
movq 0x422d(%rip), %rsi      # 0xaff0
movq 0x41f6(%rip), %rdx      # 0xafc0
movq %rbx, %rdi
callq 0x2290
movq %rax, %r14
movq %rbx, %rdi
callq 0x2140
movq %r14, %rdi
callq 0x22a0
nop
// File: /workspace/github_cpp_makefile_star2_O3/mitchellsayer[P]FastPointCloudSegmentation/src/./nanoflann.hpp
// Function: nanoflann::PooledAllocator::malloc(unsigned long)
void* malloc(const size_t req_size)
		{
			/* Round size up to a multiple of wordsize.  The following expression
			    only works for WORDSIZE that is a power of 2, by masking last bits of
			    incremented size to zero.
			 */
			const size_t size = (req_size + (WORDSIZE - 1)) & ~(WORDSIZE - 1);

			/* Check whether a new block must be allocated.  Note that the first word
			    of a block is reserved for a pointer to the previous block.
			 */
			if (size > remaining) {

				wastedMemory += remaining;

				/* Allocate new storage. */
				const size_t blocksize = (size + sizeof(void*) + (WORDSIZE-1) > BLOCKSIZE) ?
							size + sizeof(void*) + (WORDSIZE-1) : BLOCKSIZE;

				// use the standard C malloc to allocate memory
				void* m = ::malloc(blocksize);
				if (!m) {
					fprintf(stderr,"Failed to allocate memory.\n");
					return NULL;
				}

				/* Fill first word of new block with pointer to previous block. */
				static_cast<void**>(m)[0] = base;
				base = m;

				size_t shift = 0;
				//int size_t = (WORDSIZE - ( (((size_t)m) + sizeof(void*)) & (WORDSIZE-1))) & (WORDSIZE-1);

				remaining = blocksize - sizeof(void*) - shift;
				loc = (static_cast<char*>(m) + sizeof(void*) + shift);
			}
			void* rloc = loc;
			loc = static_cast<char*>(loc) + size;
			remaining -= size;

			usedMemory += size;

			return rloc;
		}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
addq $0xf, %rbx
andq $-0x10, %rbx
movq (%rdi), %r15
cmpq %r15, %rbx
jbe 0x7214
addq %r15, 0x20(%r14)
leaq 0x17(%rbx), %rax
cmpq $0x2001, %rax           # imm = 0x2001
movl $0x2000, %r15d          # imm = 0x2000
cmovaeq %rax, %r15
movq %r15, %rdi
callq 0x21e0
testq %rax, %rax
je 0x7235
movq 0x8(%r14), %rcx
movq %rcx, (%rax)
movq %rax, 0x8(%r14)
addq $-0x8, %r15
addq $0x8, %rax
jmp 0x7218
movq 0x10(%r14), %rax
leaq (%rax,%rbx), %rcx
movq %rcx, 0x10(%r14)
subq %rbx, %r15
movq %r15, (%r14)
addq %rbx, 0x18(%r14)
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
callq 0x236f
xorl %eax, %eax
jmp 0x722a
// File: /workspace/github_cpp_makefile_star2_O3/mitchellsayer[P]FastPointCloudSegmentation/src/./nanoflann.hpp
// Function: nanoflann::KDTreeSingleIndexAdaptor<nanoflann::L2_Simple_Adaptor<float, ScanlinePointCloud, float>, ScanlinePointCloud, 3, unsigned long>::computeMinMax(unsigned long*, unsigned long, int, float&, float&)
void computeMinMax(IndexType* ind, IndexType count, int element, ElementType& min_elem, ElementType& max_elem)
		{
			min_elem = dataset_get(ind[0],element);
			max_elem = dataset_get(ind[0],element);
			for (IndexType i=1; i<count; ++i) {
				ElementType val = dataset_get(ind[i],element);
				if (val<min_elem) min_elem = val;
				if (val>max_elem) max_elem = val;
			}
		}

// Assembly:
movq (%rsi), %r10
movq 0x20(%rdi), %rax
movq 0x8(%rax), %rax
leaq (%r10,%r10,4), %rdi
cmpl $0x1, %ecx
je 0x725c
testl %ecx, %ecx
jne 0x7266
leaq (%rax,%rdi,8), %rdi
jmp 0x726e
leaq (%rax,%rdi,8), %rdi
addq $0x4, %rdi
jmp 0x726e
leaq (%rax,%rdi,8), %rdi
addq $0x8, %rdi
pushq %rbp
movq %rsp, %rbp
movss (%rdi), %xmm0
movss %xmm0, (%r8)
movss %xmm0, (%r9)
cmpq $0x2, %rdx
jb 0x72e2
movl $0x1, %edi
movq (%rsi,%rdi,8), %r10
leaq (%r10,%r10,4), %r10
cmpl $0x1, %ecx
je 0x72a2
testl %ecx, %ecx
jne 0x72ac
leaq (%rax,%r10,8), %r10
jmp 0x72b4
leaq (%rax,%r10,8), %r10
addq $0x4, %r10
jmp 0x72b4
leaq (%rax,%r10,8), %r10
addq $0x8, %r10
movss (%r10), %xmm1
movss (%r8), %xmm2
ucomiss %xmm1, %xmm2
jbe 0x72cd
movss %xmm1, (%r8)
movss (%r9), %xmm0
ucomiss %xmm0, %xmm1
jbe 0x72da
movss %xmm1, (%r9)
movaps %xmm1, %xmm0
incq %rdi
cmpq %rdi, %rdx
jne 0x728b
popq %rbp
retq
// File: /workspace/github_cpp_makefile_star2_O3/mitchellsayer[P]FastPointCloudSegmentation/src/./nanoflann.hpp
// Function: nanoflann::KDTreeSingleIndexAdaptor<nanoflann::L2_Simple_Adaptor<float, ScanlinePointCloud, float>, ScanlinePointCloud, 3, unsigned long>::computeInitialDistances(float const*, nanoflann::CArray<float, 3ul>&) const
DistanceType computeInitialDistances(const ElementType* vec, distance_vector_t& dists) const
		{
			assert(vec);
			DistanceType distsq = DistanceType();

			for (int i = 0; i < (DIM>0 ? DIM : dim); ++i) {
				if (vec[i] < root_bbox[i].low) {
					dists[i] = distance.accum_dist(vec[i], root_bbox[i].low, i);
					distsq += dists[i];
				}
				if (vec[i] > root_bbox[i].high) {
					dists[i] = distance.accum_dist(vec[i], root_bbox[i].high, i);
					distsq += dists[i];
				}
			}

			return distsq;
		}

// Assembly:
testq %rsi, %rsi
je 0x75cc
xorps %xmm0, %xmm0
xorl %eax, %eax
movss (%rsi,%rax,4), %xmm1
movss 0x50(%rdi,%rax,8), %xmm2
ucomiss %xmm1, %xmm2
jbe 0x75a6
subss %xmm2, %xmm1
mulss %xmm1, %xmm1
movss %xmm1, (%rdx,%rax,4)
addss %xmm1, %xmm0
movss (%rsi,%rax,4), %xmm1
movss 0x54(%rdi,%rax,8), %xmm2
ucomiss %xmm2, %xmm1
jbe 0x75c2
subss %xmm2, %xmm1
mulss %xmm1, %xmm1
movss %xmm1, (%rdx,%rax,4)
addss %xmm1, %xmm0
incq %rax
cmpq $0x3, %rax
jne 0x7580
retq
pushq %rbp
movq %rsp, %rbp
leaq 0xc55(%rip), %rdi       # 0x822c
leaq 0xc52(%rip), %rsi       # 0x8230
leaq 0xe19(%rip), %rcx       # 0x83fe
movl $0x4a1, %edx            # imm = 0x4A1
callq 0x20e0
nop
// File: /workspace/github_cpp_makefile_star2_O3/ddu1[P]polarizedtext/src/args.cc
// Function: fasttext::Args::Args()
Args::Args() {
  lr = 0.05;
  dim = 100;
  ws = 5;
  epoch = 5;
  minCount = 1;
  minCountLabel = 0;
  neg = 5;
  wordNgrams = 1;
  loss = loss_name::ns;
  model = model_name::sg;
  bucket = 2000000;
  minn = 3;
  maxn = 6;
  thread = 12;
  lrUpdateRate = 100;
  t = 1e-4;
  label = "__label__";
  verbose = 2;
  pretrainedVectors = "";
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdi, %rbx
leaq 0x10(%rdi), %rax
movq %rax, 0x8(%rsp)
movq %rax, (%rdi)
xorl %eax, %eax
movq %rax, 0x8(%rdi)
movb %al, 0x10(%rdi)
leaq 0x30(%rdi), %rcx
movq %rcx, (%rsp)
movq %rcx, 0x20(%rdi)
movq %rax, 0x28(%rdi)
movb %al, 0x30(%rdi)
leaq 0x50(%rdi), %r14
movq %r14, 0x40(%rdi)
movq %rax, 0x48(%rdi)
movb %al, 0x50(%rdi)
leaq 0xa8(%rdi), %r15
leaq 0xb8(%rdi), %r13
movq %r13, 0xa8(%rdi)
movq %rax, 0xb0(%rdi)
movb %al, 0xb8(%rdi)
leaq 0xd0(%rdi), %r12
leaq 0xe0(%rdi), %rbp
movq %rbp, 0xd0(%rdi)
movq %rax, 0xd8(%rdi)
movb %al, 0xe0(%rdi)
movabsq $0x3fa999999999999a, %rax # imm = 0x3FA999999999999A
movq %rax, 0x60(%rdi)
movaps 0xd6b3(%rip), %xmm0     # 0x11010
movups %xmm0, 0x78(%rdi)
movaps 0xd6b8(%rip), %xmm0     # 0x11020
movups %xmm0, 0x88(%rdi)
movabsq $0xc00000006, %rax      # imm = 0xC00000006
movq %rax, 0x98(%rdi)
movaps 0xd6a9(%rip), %xmm0     # 0x11030
movups %xmm0, 0x68(%rdi)
movabsq $0x3f1a36e2eb1c432d, %rax # imm = 0x3F1A36E2EB1C432D
movq %rax, 0xa0(%rdi)
leaq 0xd69d(%rip), %rcx      # 0x11040
movl $0x9, %r8d
movq %r15, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3390
movl $0x2, 0xc8(%rbx)
movq 0xd8(%rbx), %rdx
leaq 0xe80f(%rip), %rcx      # 0x121dc
movq %r12, %rdi
xorl %esi, %esi
xorl %r8d, %r8d
callq 0x3390
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, 0x10(%rsp)
movq (%r12), %rdi
cmpq %rbp, %rdi
je 0x3a03
movq (%rbp), %rsi
incq %rsi
callq 0x3260
movq (%r15), %rdi
cmpq %r13, %rdi
je 0x3a17
movq (%r13), %rsi
incq %rsi
callq 0x3260
movq 0x40(%rbx), %rdi
cmpq %r14, %rdi
je 0x3a2b
movq (%r14), %rsi
incq %rsi
callq 0x3260
movq 0x20(%rbx), %rdi
cmpq (%rsp), %rdi
je 0x3a44
movq (%rsp), %rax
movq (%rax), %rsi
incq %rsi
callq 0x3260
movq (%rbx), %rdi
cmpq 0x8(%rsp), %rdi
je 0x3a5e
movq 0x8(%rsp), %rax
movq (%rax), %rsi
incq %rsi
callq 0x3260
movq 0x10(%rsp), %rdi
callq 0x3450
// File: /workspace/github_cpp_makefile_star2_O3/ddu1[P]polarizedtext/src/dictionary.cc
// Function: fasttext::Dictionary::Dictionary(std::shared_ptr<fasttext::Args>)
Dictionary::Dictionary(std::shared_ptr<Args> args) {
  args_ = args;
  size_ = 0;
  nwords_ = 0;
  nlabels_ = 0;
  ntokens_ = 0;
  word2int_.resize(MAX_VOCAB_SIZE);
  for (int32_t i = 0; i < MAX_VOCAB_SIZE; i++) {
    word2int_[i] = -1;
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
leaq 0x10(%rdi), %r14
leaq 0x28(%rdi), %r12
leaq 0x80(%rdi), %rbp
xorps %xmm0, %xmm0
movups %xmm0, 0x40(%rdi)
movups %xmm0, 0x30(%rdi)
movups %xmm0, 0x20(%rdi)
movups %xmm0, 0x10(%rdi)
movups %xmm0, (%rdi)
xorl %r13d, %r13d
movq %r13, 0x50(%rdi)
movq %rbp, 0x70(%rdi)
movq %r13, 0x78(%rdi)
movb $0x0, 0x80(%rdi)
movq (%rsi), %rax
movq %rax, (%rdi)
leaq 0x8(%rdi), %r15
addq $0x8, %rsi
movq %r15, %rdi
callq 0x77de
movq %r13, 0x58(%rbx)
movl $0x0, 0x60(%rbx)
movq %r13, 0x68(%rbx)
movl $0x1c9c380, %esi        # imm = 0x1C9C380
movq %r14, %rdi
callq 0x74e4
movq (%r14), %rdi
movl $0x7270e00, %edx        # imm = 0x7270E00
movl $0xff, %esi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x3150
movq %rax, %r13
movq 0x70(%rbx), %rdi
cmpq %rbp, %rdi
je 0x49e7
movq (%rbp), %rsi
incq %rsi
callq 0x3260
movq 0x40(%rbx), %rdi
testq %rdi, %rdi
je 0x49fc
movq 0x50(%rbx), %rsi
subq %rdi, %rsi
callq 0x3260
movq %r12, %rdi
callq 0x7516
movq (%r14), %rdi
testq %rdi, %rdi
je 0x4a18
movq 0x20(%rbx), %rsi
subq %rdi, %rsi
callq 0x3260
movq (%r15), %rdi
testq %rdi, %rdi
je 0x4a25
callq 0x7832
movq %r13, %rdi
callq 0x3450
nop
// File: /workspace/github_cpp_makefile_star2_O3/ddu1[P]polarizedtext/src/dictionary.cc
// Function: fasttext::Dictionary::getLabels(int)
std::vector<int32_t> Dictionary::getLabels( int32_t i) {
  assert(i >= 0);
  assert(i < nwords_);
  auto labels = words_[i].labels;
  std::vector<int32_t> label_ids;
  for( auto label : labels) {
      int32_t wid = getId(label);
      assert( wid >= nwords_ );  // 
      label_ids.push_back( wid-nwords_);
  }
  std::sort( label_ids.begin(), label_ids.end());
  return label_ids;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
testl %edx, %edx
js 0x4f2b
movq %rsi, %r14
cmpl %edx, 0x5c(%rsi)
jle 0x4f4a
movq %rdi, %rbx
movl %edx, %eax
movq 0x28(%r14), %rcx
imulq $0x68, %rax, %rax
leaq (%rcx,%rax), %rsi
addq $0x50, %rsi
leaq 0x30(%rsp), %r15
movq %r15, %rdi
callq 0x75ea
xorps %xmm0, %xmm0
movups %xmm0, (%rbx)
movq $0x0, 0x10(%rbx)
movq (%r15), %r13
movq 0x8(%r15), %r12
cmpq %r12, %r13
je 0x4ef0
leaq 0x20(%rsp), %rbp
leaq 0x10(%rsp), %r15
movq %rbp, 0x10(%rsp)
movq (%r13), %rsi
movq 0x8(%r13), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0x78a2
movq %r14, %rdi
movq %r15, %rsi
callq 0x4a2e
movq 0x10(%r14), %rcx
movl %eax, %eax
movl (%rcx,%rax,4), %eax
subl 0x5c(%r14), %eax
jl 0x4f0c
movl %eax, 0xc(%rsp)
movq 0x8(%rbx), %rsi
cmpq 0x10(%rbx), %rsi
je 0x4e8a
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x8(%rbx)
jmp 0x4e97
movq %rbx, %rdi
leaq 0xc(%rsp), %rdx
callq 0x8236
movq 0x10(%rsp), %rdi
cmpq %rbp, %rdi
je 0x4eae
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x3260
addq $0x20, %r13
cmpq %r12, %r13
jne 0x4e3a
movq (%rbx), %r14
movq 0x8(%rbx), %r15
cmpq %r15, %r14
je 0x4ef0
movq %r15, %rax
subq %r14, %rax
sarq $0x2, %rax
bsrq %rax, %rdx
xorl $0x3f, %edx
addl %edx, %edx
xorq $0x7e, %rdx
movq %r14, %rdi
movq %r15, %rsi
callq 0x8311
movq %r14, %rdi
movq %r15, %rsi
callq 0x83f4
leaq 0x30(%rsp), %rdi
callq 0x7674
movq %rbx, %rax
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xc790(%rip), %rdi      # 0x116a3
leaq 0xc72d(%rip), %rsi      # 0x11647
leaq 0xc738(%rip), %rcx      # 0x11659
movl $0x6c, %edx
callq 0x3160
leaq 0xc70e(%rip), %rdi      # 0x11640
leaq 0xc70e(%rip), %rsi      # 0x11647
leaq 0xc719(%rip), %rcx      # 0x11659
movl $0x66, %edx
callq 0x3160
leaq 0xc746(%rip), %rdi      # 0x11697
leaq 0xc6ef(%rip), %rsi      # 0x11647
leaq 0xc6fa(%rip), %rcx      # 0x11659
movl $0x67, %edx
callq 0x3160
jmp 0x4f87
movq %rax, %r14
movq 0x10(%rsp), %rdi
cmpq %rbp, %rdi
je 0x4f8a
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x3260
jmp 0x4f8a
movq %rax, %r14
movq (%rbx), %rdi
testq %rdi, %rdi
je 0x4f9e
movq 0x10(%rbx), %rsi
subq %rdi, %rsi
callq 0x3260
leaq 0x30(%rsp), %rdi
callq 0x7674
movq %r14, %rdi
callq 0x3450
// File: /workspace/github_cpp_makefile_star2_O3/ddu1[P]polarizedtext/src/dictionary.cc
// Function: fasttext::Dictionary::discard(int, float) const
bool Dictionary::discard(int32_t id, real rand) const {
  assert(id >= 0);
  assert(id < nwords_);
  if (args_->model == model_name::sup) return false;
  return rand > pdiscard_[id];
}

// Assembly:
pushq %rax
testl %esi, %esi
js 0x536f
cmpl %esi, 0x5c(%rdi)
jle 0x538e
movq (%rdi), %rax
cmpl $0x3, 0x8c(%rax)
jne 0x5360
xorl %eax, %eax
jmp 0x536d
movl %esi, %eax
movq 0x40(%rdi), %rcx
ucomiss (%rcx,%rax,4), %xmm0
seta %al
popq %rcx
retq
leaq 0xc4af(%rip), %rdi      # 0x11825
leaq 0xc2ca(%rip), %rsi      # 0x11647
leaq 0xc379(%rip), %rcx      # 0x116fd
movl $0x84, %edx
callq 0x3160
leaq 0xc3a0(%rip), %rdi      # 0x11735
leaq 0xc2ab(%rip), %rsi      # 0x11647
leaq 0xc35a(%rip), %rcx      # 0x116fd
movl $0x85, %edx
callq 0x3160
nop
// File: /workspace/github_cpp_makefile_star2_O3/ddu1[P]polarizedtext/src/dictionary.cc
// Function: fasttext::Dictionary::initTableDiscard()
void Dictionary::initTableDiscard() {
  pdiscard_.resize(size_);
  for (size_t i = 0; i < size_; i++) {
    real f = real(words_[i].count) / real(ntokens_);
    pdiscard_[i] = sqrt(args_->t / f) + args_->t / f;
  }
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x10, %rsp
movq %rdi, %rbx
addq $0x40, %rdi
movslq 0x58(%rbx), %rsi
callq 0x77ac
cmpl $0x0, 0x58(%rbx)
je 0x5e50
movq (%rbx), %rax
movsd 0xa0(%rax), %xmm0
movl $0x8, %r14d
xorl %r15d, %r15d
xorpd %xmm3, %xmm3
movq 0x28(%rbx), %rax
xorps %xmm1, %xmm1
cvtsi2ssq (%rax,%r14,4), %xmm1
xorps %xmm2, %xmm2
cvtsi2ssq 0x68(%rbx), %xmm2
divss %xmm2, %xmm1
xorps %xmm4, %xmm4
cvtss2sd %xmm1, %xmm4
divsd %xmm4, %xmm0
ucomisd %xmm3, %xmm0
jb 0x5dfb
xorps %xmm1, %xmm1
sqrtsd %xmm0, %xmm1
jmp 0x5e14
movsd %xmm4, 0x8(%rsp)
callq 0x31c0
movsd 0x8(%rsp), %xmm4
xorpd %xmm3, %xmm3
movapd %xmm0, %xmm1
movq (%rbx), %rax
movq 0x40(%rbx), %rcx
movsd 0xa0(%rax), %xmm0
movapd %xmm0, %xmm2
divsd %xmm4, %xmm2
addsd %xmm1, %xmm2
xorps %xmm1, %xmm1
cvtsd2ss %xmm2, %xmm1
movss %xmm1, (%rcx,%r15,4)
incq %r15
movslq 0x58(%rbx), %rax
addq $0x1a, %r14
cmpq %rax, %r15
jb 0x5dc7
addq $0x10, %rsp
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_cpp_makefile_star2_O3/ddu1[P]polarizedtext/src/dictionary.cc
// Function: fasttext::Dictionary::save(std::ostream&) const
void Dictionary::save(std::ostream& out) const {
  out.write((char*) &size_, sizeof(int32_t));
  out.write((char*) &nwords_, sizeof(int32_t));
  out.write((char*) &nlabels_, sizeof(int32_t));
  out.write((char*) &ntokens_, sizeof(int64_t));
  for (int32_t i = 0; i < size_; i++) {
    entry e = words_[i];
    out.write(e.word.data(), e.word.size() * sizeof(char));
    out.put(0);
    out.write((char*) &(e.count), sizeof(int64_t));
    out.write((char*) &(e.type), sizeof(entry_type));
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x78, %rsp
movq %rsi, %rbx
movq %rdi, %r14
leaq 0x58(%rdi), %rsi
movl $0x4, %edx
movq %rbx, %rdi
movq %rsi, (%rsp)
callq 0x3320
leaq 0x5c(%r14), %rsi
movl $0x4, %edx
movq %rbx, %rdi
callq 0x3320
leaq 0x60(%r14), %rsi
movl $0x4, %edx
movq %rbx, %rdi
callq 0x3320
leaq 0x68(%r14), %rsi
movl $0x8, %edx
movq %rbx, %rdi
callq 0x3320
movq %r14, 0x8(%rsp)
cmpl $0x0, 0x58(%r14)
jle 0x63d0
leaq 0x60(%rsp), %r12
movl $0x30, %r15d
xorl %ebp, %ebp
movq 0x8(%rsp), %rax
movq 0x28(%rax), %r14
leaq (%r14,%r15), %r13
leaq 0x20(%rsp), %rax
movq %rax, 0x10(%rsp)
movq -0x30(%r14,%r15), %rsi
movq -0x28(%r14,%r15), %rdx
addq %rsi, %rdx
leaq 0x10(%rsp), %rdi
callq 0x78a2
movb -0x8(%r14,%r15), %al
leaq 0x30(%rsp), %rcx
movb %al, 0x8(%rcx)
movq -0x10(%r14,%r15), %rax
movq %rax, (%rcx)
leaq 0x40(%rsp), %rdi
movq %r13, %rsi
callq 0x76d2
leaq (%r14,%r15), %rsi
addq $0x20, %rsi
movb -0x8(%rsi), %al
movb %al, 0x58(%rsp)
movq %r12, %rdi
callq 0x75ea
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq %rbx, %rdi
callq 0x3320
movq %rbx, %rdi
xorl %esi, %esi
callq 0x3040
movl $0x8, %edx
movq %rbx, %rdi
leaq 0x30(%rsp), %rsi
callq 0x3320
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x38(%rsp), %rsi
callq 0x3320
movq %r12, %rdi
callq 0x7674
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x639d
movq 0x50(%rsp), %rsi
subq %rdi, %rsi
callq 0x3260
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x63b9
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x3260
incq %rbp
movq (%rsp), %rax
movslq (%rax), %rax
addq $0x68, %r15
cmpq %rax, %rbp
jl 0x62d7
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
jmp 0x63fe
movq %rax, %rbx
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x63fe
movq 0x50(%rsp), %rsi
subq %rdi, %rsi
callq 0x3260
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x6429
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x3260
jmp 0x6429
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x75ae
movq %rbx, %rdi
callq 0x3450
nop
// File: /workspace/github_cpp_makefile_star2_O3/ddu1[P]polarizedtext/src/dictionary.cc
// Function: fasttext::Dictionary::load(std::istream&)
void Dictionary::load(std::istream& in) {
  words_.clear();
  for (int32_t i = 0; i < MAX_VOCAB_SIZE; i++) {
    word2int_[i] = -1;
  }
  in.read((char*) &size_, sizeof(int32_t));
  in.read((char*) &nwords_, sizeof(int32_t));
  in.read((char*) &nlabels_, sizeof(int32_t));
  in.read((char*) &ntokens_, sizeof(int64_t));
  for (int32_t i = 0; i < size_; i++) {
    char c;
    entry e;
    while ((c = in.get()) != 0) {
      e.word.push_back(c);
    }
    in.read((char*) &e.count, sizeof(int64_t));
    in.read((char*) &e.type, sizeof(entry_type));
    words_.push_back(e);
    word2int_[find(e.word)] = i;
  }
  initTableDiscard();
  initNgrams();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x78, %rsp
movq %rsi, %r14
movq %rdi, %rbx
addq $0x28, %rdi
movq 0x28(%rbx), %rsi
movq %rdi, 0x8(%rsp)
callq 0x8994
movq 0x10(%rbx), %rdi
movl $0x7270e00, %edx        # imm = 0x7270E00
movl $0xff, %esi
callq 0x3150
leaq 0x58(%rbx), %rsi
movl $0x4, %edx
movq %r14, %rdi
movq %rsi, (%rsp)
callq 0x32e0
leaq 0x5c(%rbx), %rsi
movl $0x4, %edx
movq %r14, %rdi
callq 0x32e0
leaq 0x60(%rbx), %rsi
movl $0x4, %edx
movq %r14, %rdi
callq 0x32e0
leaq 0x68(%rbx), %rsi
movl $0x8, %edx
movq %r14, %rdi
callq 0x32e0
cmpl $0x0, 0x58(%rbx)
jle 0x659b
leaq 0x20(%rsp), %r15
xorl %r12d, %r12d
leaq 0x10(%rsp), %rbp
xorl %r13d, %r13d
movq %r15, 0x10(%rsp)
movq %r12, 0x18(%rsp)
movb $0x0, 0x20(%rsp)
movq %r12, 0x30(%r15)
xorps %xmm0, %xmm0
movups %xmm0, 0x20(%r15)
leaq 0x60(%rsp), %rax
movq %r12, 0x10(%rax)
movups %xmm0, (%rax)
movq %r14, %rdi
callq 0x32a0
testb %al, %al
je 0x650d
movsbl %al, %esi
movq %rbp, %rdi
callq 0x31f0
jmp 0x64f4
movl $0x8, %edx
movq %r14, %rdi
leaq 0x30(%rsp), %rsi
callq 0x32e0
movl $0x1, %edx
movq %r14, %rdi
leaq 0x38(%rsp), %rsi
callq 0x32e0
movq 0x8(%rsp), %rdi
movq %rbp, %rsi
callq 0x7584
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x4a2e
movq 0x10(%rbx), %rcx
movl %eax, %eax
movl %r13d, (%rcx,%rax,4)
leaq 0x60(%rsp), %rdi
callq 0x7674
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x6574
movq 0x50(%rsp), %rsi
subq %rdi, %rsi
callq 0x3260
movq 0x10(%rsp), %rdi
cmpq %r15, %rdi
je 0x658b
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x3260
incl %r13d
movq (%rsp), %rax
cmpl (%rax), %r13d
jl 0x64cd
movq %rbx, %rdi
callq 0x5d8c
movq %rbx, %rdi
callq 0x5478
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x65bc
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x75ae
movq %rbx, %rdi
callq 0x3450
// File: /workspace/github_cpp_makefile_star2_O3/ddu1[P]polarizedtext/src/matrix.cc
// Function: fasttext::Matrix::addRow(fasttext::Vector const&, long, float)
void Matrix::addRow(const Vector& vec, int64_t i, real a) {
  assert(i >= 0);
  assert(i < m_);
  assert(vec.m_ == n_);
  for (int64_t j = 0; j < n_; j++) {
    data_[i * n_ + j] += a * vec.data_[j];
  }
}

// Assembly:
pushq %rax
testq %rdx, %rdx
js 0x9300
cmpq %rdx, 0x8(%rdi)
jle 0x931f
movq (%rsi), %rax
cmpq 0x10(%rdi), %rax
jne 0x933e
testq %rax, %rax
jle 0x92fe
movq 0x8(%rsi), %rcx
imulq %rax, %rdx
shlq $0x2, %rdx
addq (%rdi), %rdx
xorl %esi, %esi
movss (%rcx,%rsi,4), %xmm1
mulss %xmm0, %xmm1
addss (%rdx,%rsi,4), %xmm1
movss %xmm1, (%rdx,%rsi,4)
incq %rsi
cmpq %rsi, %rax
jne 0x92e3
popq %rax
retq
leaq 0x8339(%rip), %rdi      # 0x11640
leaq 0x85e2(%rip), %rsi      # 0x118f0
leaq 0x85e9(%rip), %rcx      # 0x118fe
movl $0x45, %edx
callq 0x3160
leaq 0x8615(%rip), %rdi      # 0x1193b
leaq 0x85c3(%rip), %rsi      # 0x118f0
leaq 0x85ca(%rip), %rcx      # 0x118fe
movl $0x46, %edx
callq 0x3160
leaq 0x85fd(%rip), %rdi      # 0x11942
leaq 0x85a4(%rip), %rsi      # 0x118f0
leaq 0x85ab(%rip), %rcx      # 0x118fe
movl $0x47, %edx
callq 0x3160
nop
// File: /workspace/github_cpp_makefile_star2_O3/ddu1[P]polarizedtext/src/matrix.cc
// Function: fasttext::Matrix::dotRow(fasttext::Vector const&, long)
real Matrix::dotRow(const Vector& vec, int64_t i) {
  assert(i >= 0);
  assert(i < m_);
  assert(vec.m_ == n_);
  real d = 0.0;
  for (int64_t j = 0; j < n_; j++) {
    d += data_[i * n_ + j] * vec.data_[j];
  }
  return d;
}

// Assembly:
pushq %rax
testq %rdx, %rdx
js 0x93a9
cmpq %rdx, 0x8(%rdi)
jle 0x93c8
movq (%rsi), %rax
cmpq 0x10(%rdi), %rax
jne 0x93e7
testq %rax, %rax
jle 0x93a4
imulq %rax, %rdx
shlq $0x2, %rdx
addq (%rdi), %rdx
movq 0x8(%rsi), %rcx
xorps %xmm0, %xmm0
xorl %esi, %esi
movss (%rdx,%rsi,4), %xmm1
mulss (%rcx,%rsi,4), %xmm1
addss %xmm1, %xmm0
incq %rsi
cmpq %rsi, %rax
jne 0x938c
jmp 0x93a7
xorps %xmm0, %xmm0
popq %rax
retq
leaq 0x8290(%rip), %rdi      # 0x11640
leaq 0x8539(%rip), %rsi      # 0x118f0
leaq 0x8591(%rip), %rcx      # 0x1194f
movl $0x4e, %edx
callq 0x3160
leaq 0x856c(%rip), %rdi      # 0x1193b
leaq 0x851a(%rip), %rsi      # 0x118f0
leaq 0x8572(%rip), %rcx      # 0x1194f
movl $0x4f, %edx
callq 0x3160
leaq 0x8554(%rip), %rdi      # 0x11942
leaq 0x84fb(%rip), %rsi      # 0x118f0
leaq 0x8553(%rip), %rcx      # 0x1194f
movl $0x50, %edx
callq 0x3160
// File: /workspace/github_cpp_makefile_star2_O3/ddu1[P]polarizedtext/src/vector.cc
// Function: fasttext::Vector::Vector(long, std::vector<int, std::allocator<int>> const&)
Vector::Vector(int64_t m, const std::vector<int32_t>& lbs) 
  : m_(m), data_(new real[m])
{
  zero();
  for( auto l : lbs) {
    assert( l < m_);
    data_[l] = 1.0;
  }
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rdx, %r15
movq %rsi, %rbx
movq %rdi, %r13
movq %rsi, (%rdi)
movq %rsi, %rax
shrq $0x3e, %rax
leaq (,%rsi,4), %r12
xorl %edi, %edi
negq %rax
sbbq %rdi, %rdi
orq %r12, %rdi
callq 0x3030
movq %rax, %r14
movq %rax, 0x8(%r13)
testq %rbx, %rbx
jle 0x953f
movq %r14, %rdi
xorl %esi, %esi
movq %r12, %rdx
callq 0x3150
movq (%r15), %rax
movq 0x8(%r15), %rcx
cmpq %rcx, %rax
je 0x9561
movslq (%rax), %rdx
cmpq %rbx, %rdx
jge 0x956b
movl $0x3f800000, (%r14,%rdx,4) # imm = 0x3F800000
addq $0x4, %rax
jmp 0x9546
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
leaq 0x844e(%rip), %rdi      # 0x119c0
leaq 0x844e(%rip), %rsi      # 0x119c7
leaq 0x8455(%rip), %rcx      # 0x119d5
movl $0x21, %edx
callq 0x3160
// File: /workspace/github_cpp_makefile_star2_O3/ddu1[P]polarizedtext/src/vector.cc
// Function: fasttext::Vector::addRow(fasttext::Matrix const&, long)
void Vector::addRow(const Matrix& A, int64_t i) {
  assert(i >= 0);
  assert(i < A.m_);
  assert(m_ == A.n_);
  for (int64_t j = 0; j < A.n_; j++) {
    data_[j] += A.data_[i * A.n_ + j];
  }
}

// Assembly:
pushq %rax
testq %rdx, %rdx
js 0x972a
cmpq %rdx, 0x8(%rsi)
jle 0x9749
movq (%rdi), %rax
cmpq 0x10(%rsi), %rax
jne 0x9768
testq %rax, %rax
jle 0x9728
imulq %rax, %rdx
shlq $0x2, %rdx
addq (%rsi), %rdx
movq 0x8(%rdi), %rcx
xorl %esi, %esi
movss (%rdx,%rsi,4), %xmm0
addss (%rcx,%rsi,4), %xmm0
movss %xmm0, (%rcx,%rsi,4)
incq %rsi
cmpq %rsi, %rax
jne 0x9711
popq %rax
retq
leaq 0x7f0f(%rip), %rdi      # 0x11640
leaq 0x828f(%rip), %rsi      # 0x119c7
leaq 0x82d6(%rip), %rcx      # 0x11a15
movl $0x41, %edx
callq 0x3160
leaq 0x82fc(%rip), %rdi      # 0x11a4c
leaq 0x8270(%rip), %rsi      # 0x119c7
leaq 0x82b7(%rip), %rcx      # 0x11a15
movl $0x42, %edx
callq 0x3160
leaq 0x82e6(%rip), %rdi      # 0x11a55
leaq 0x8251(%rip), %rsi      # 0x119c7
leaq 0x8298(%rip), %rcx      # 0x11a15
movl $0x43, %edx
callq 0x3160
nop
// File: /workspace/github_cpp_makefile_star2_O3/ddu1[P]polarizedtext/src/vector.cc
// Function: fasttext::Vector::addRow(fasttext::Matrix const&, long, float)
void Vector::addRow(const Matrix& A, int64_t i, real a) {
  assert(i >= 0);
  assert(i < A.m_);
  assert(m_ == A.n_);
  for (int64_t j = 0; j < A.n_; j++) {
    data_[j] += a * A.data_[i * A.n_ + j];
  }
}

// Assembly:
pushq %rax
testq %rdx, %rdx
js 0x97d0
cmpq %rdx, 0x8(%rsi)
jle 0x97ef
movq (%rdi), %rax
cmpq 0x10(%rsi), %rax
jne 0x980e
testq %rax, %rax
jle 0x97ce
imulq %rax, %rdx
shlq $0x2, %rdx
addq (%rsi), %rdx
movq 0x8(%rdi), %rcx
xorl %esi, %esi
movss (%rdx,%rsi,4), %xmm1
mulss %xmm0, %xmm1
addss (%rcx,%rsi,4), %xmm1
movss %xmm1, (%rcx,%rsi,4)
incq %rsi
cmpq %rsi, %rax
jne 0x97b3
popq %rax
retq
leaq 0x7e69(%rip), %rdi      # 0x11640
leaq 0x81e9(%rip), %rsi      # 0x119c7
leaq 0x827b(%rip), %rcx      # 0x11a60
movl $0x4a, %edx
callq 0x3160
leaq 0x8256(%rip), %rdi      # 0x11a4c
leaq 0x81ca(%rip), %rsi      # 0x119c7
leaq 0x825c(%rip), %rcx      # 0x11a60
movl $0x4b, %edx
callq 0x3160
leaq 0x8240(%rip), %rdi      # 0x11a55
leaq 0x81ab(%rip), %rsi      # 0x119c7
leaq 0x823d(%rip), %rcx      # 0x11a60
movl $0x4c, %edx
callq 0x3160
nop
// File: /workspace/github_cpp_makefile_star2_O3/ddu1[P]polarizedtext/src/vector.cc
// Function: fasttext::Vector::mul(fasttext::Matrix const&, fasttext::Vector const&)
void Vector::mul(const Matrix& A, const Vector& vec) {
  assert(A.m_ == m_);
  assert(A.n_ == vec.m_);
  for (int64_t i = 0; i < m_; i++) {
    data_[i] = 0.0;
    for (int64_t j = 0; j < A.n_; j++) {
      data_[i] += A.data_[i * A.n_ + j] * vec.data_[j];
    }
  }
}

// Assembly:
pushq %rax
movq 0x8(%rsi), %rax
cmpq (%rdi), %rax
jne 0x9912
movq 0x10(%rsi), %rcx
cmpq (%rdx), %rcx
jne 0x9931
testq %rax, %rax
jle 0x9910
movq 0x8(%rdi), %rdi
movq (%rsi), %rsi
movq 0x8(%rdx), %rdx
leaq (,%rcx,4), %r8
xorl %r9d, %r9d
movl $0x0, (%rdi,%r9,4)
testq %rcx, %rcx
jle 0x9905
xorps %xmm0, %xmm0
xorl %r10d, %r10d
movss (%rsi,%r10,4), %xmm1
mulss (%rdx,%r10,4), %xmm1
addss %xmm1, %xmm0
movss %xmm0, (%rdi,%r9,4)
incq %r10
cmpq %r10, %rcx
jne 0x98e7
incq %r9
addq %r8, %rsi
cmpq %rax, %r9
jne 0x98d4
popq %rax
retq
leaq 0x8184(%rip), %rdi      # 0x11a9d
leaq 0x80a7(%rip), %rsi      # 0x119c7
leaq 0x8181(%rip), %rcx      # 0x11aa8
movl $0x5a, %edx
callq 0x3160
leaq 0x81ab(%rip), %rdi      # 0x11ae3
leaq 0x8088(%rip), %rsi      # 0x119c7
leaq 0x8162(%rip), %rcx      # 0x11aa8
movl $0x5b, %edx
callq 0x3160
// File: /workspace/github_cpp_makefile_star2_O3/ddu1[P]polarizedtext/src/model.cc
// Function: fasttext::Model::polarization(int, float)
real Model::polarization(int32_t w, real lr) {

  real score = 0.0;
  Vector vec = Vector(hsz_, hidden_labels_);
  score = wo_->dotRow( vec, w);
  score = sigmoid(score);
  real alpha = lr * (1.0 - score);
  grad_.addRow(*wo_, w, alpha);
  wo_->addRow(vec, w, alpha);
  return -log(score);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x38, %rsp
movss %xmm0, 0x10(%rsp)
movl %esi, %ebp
movq %rdi, %rbx
movslq 0x78(%rdi), %rsi
leaq 0x40(%rdi), %rdx
leaq 0x28(%rsp), %r15
movq %r15, %rdi
callq 0x94f2
movq 0x10(%rbx), %rdi
movslq %ebp, %r14
movq %r15, %rsi
movq %r14, %rdx
callq 0x935e
xorps %xmm2, %xmm2
movss 0x7b11(%rip), %xmm1     # 0x11b24
ucomiss %xmm0, %xmm1
ja 0xa05d
ucomiss 0x7b0d(%rip), %xmm0     # 0x11b2c
jbe 0xa02b
movss 0x7aff(%rip), %xmm2     # 0x11b28
jmp 0xa05d
addss 0x7af9(%rip), %xmm0     # 0x11b2c
mulss 0x7af5(%rip), %xmm0     # 0x11b30
mulss 0x7af1(%rip), %xmm0     # 0x11b34
mulss 0x7aed(%rip), %xmm0     # 0x11b38
cvttss2si %xmm0, %eax
movq 0x90(%rbx), %rcx
cltq
movss (%rcx,%rax,4), %xmm2
xorps %xmm0, %xmm0
cvtss2sd 0x10(%rsp), %xmm0
movss %xmm2, 0xc(%rsp)
xorps %xmm1, %xmm1
cvtss2sd %xmm2, %xmm1
movsd 0x75b5(%rip), %xmm2     # 0x11630
subsd %xmm1, %xmm2
mulsd %xmm0, %xmm2
xorps %xmm0, %xmm0
cvtsd2ss %xmm2, %xmm0
leaq 0x68(%rbx), %rdi
movq 0x10(%rbx), %rsi
movq %r14, %rdx
movss %xmm0, 0x10(%rsp)
callq 0x9788
movq 0x10(%rbx), %rdi
leaq 0x28(%rsp), %rsi
movq %r14, %rdx
movss 0x10(%rsp), %xmm0
callq 0x92b8
xorps %xmm1, %xmm1
movss 0xc(%rsp), %xmm0
ucomiss 0x7a61(%rip), %xmm0     # 0x11b28
ja 0xa0e3
mulss 0x7a5f(%rip), %xmm0     # 0x11b30
cvttss2si %xmm0, %eax
movq 0x98(%rbx), %rcx
cltq
movss (%rcx,%rax,4), %xmm1
xorps 0x77f6(%rip), %xmm1     # 0x118e0
movaps %xmm1, 0x10(%rsp)
leaq 0x28(%rsp), %rdi
callq 0x95a2
movaps 0x10(%rsp), %xmm0
addq $0x38, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0xa10b
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x95a2
movq %rbx, %rdi
callq 0x3450
// File: /workspace/github_cpp_makefile_star2_O3/ddu1[P]polarizedtext/src/model.cc
// Function: fasttext::Model::computeOutputSoftmax(fasttext::Vector&, fasttext::Vector&) const
void Model::computeOutputSoftmax(Vector& hidden, Vector& output) const {
  output.mul(*wo_, hidden);
  real max = output[0], z = 0.0;
  for (int32_t i = 0; i < osz_; i++) {
    max = std::max(output[i], max);
  }
  for (int32_t i = 0; i < osz_; i++) {
    output[i] = exp(output[i] - max);
    z += output[i];
  }
  for (int32_t i = 0; i < osz_; i++) {
    output[i] /= z;
  }
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x10, %rsp
movq %rdx, %rbx
movq %rsi, %rdx
movq %rdi, %r14
movq 0x10(%rdi), %rsi
movq %rbx, %rdi
callq 0x98a6
movq %rbx, %rdi
xorl %esi, %esi
callq 0x9988
cmpl $0x0, 0x80(%r14)
jle 0xa3f3
movss (%rax), %xmm0
xorl %r15d, %r15d
movss %xmm0, 0x8(%rsp)
movq %rbx, %rdi
movq %r15, %rsi
callq 0x9988
movss 0x8(%rsp), %xmm0
maxss (%rax), %xmm0
incq %r15
movslq 0x80(%r14), %rax
cmpq %rax, %r15
jl 0xa315
testl %eax, %eax
jle 0xa3f3
xorps %xmm1, %xmm1
xorl %r15d, %r15d
movss %xmm0, 0x8(%rsp)
movss %xmm1, 0x4(%rsp)
movq %rbx, %rdi
movq %r15, %rsi
callq 0x9988
movss (%rax), %xmm0
subss 0x8(%rsp), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x3460
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0xc(%rsp)
movq %rbx, %rdi
movq %r15, %rsi
callq 0x9988
movss 0xc(%rsp), %xmm0
movss %xmm0, (%rax)
movq %rbx, %rdi
movq %r15, %rsi
callq 0x9988
movss 0x4(%rsp), %xmm1
addss (%rax), %xmm1
incq %r15
movslq 0x80(%r14), %rax
cmpq %rax, %r15
jl 0xa353
testl %eax, %eax
jle 0xa3f3
xorl %r15d, %r15d
movss %xmm1, 0x4(%rsp)
movq %rbx, %rdi
movq %r15, %rsi
callq 0x9988
movss 0x4(%rsp), %xmm1
movss (%rax), %xmm0
divss %xmm1, %xmm0
movss %xmm0, (%rax)
incq %r15
movslq 0x80(%r14), %rax
cmpq %rax, %r15
jl 0xa3c1
addq $0x10, %rsp
popq %rbx
popq %r14
popq %r15
retq
nop
// File: /workspace/github_cpp_makefile_star2_O3/ddu1[P]polarizedtext/src/model.cc
// Function: fasttext::Model::computeHidden(std::vector<int, std::allocator<int>> const&, fasttext::Vector&) const
void Model::computeHidden(const std::vector<int32_t>& input, Vector& hidden) const {
  assert(hidden.size() == hsz_);
  hidden.zero();
  for (auto it = input.cbegin(); it != input.cend(); ++it) {
    hidden.addRow(*wi_, *it);
  }
  hidden.mul(1.0 / input.size());
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r15
movq %rdx, %rdi
callq 0x95b0
movslq 0x78(%r15), %rcx
cmpq %rcx, %rax
jne 0xa5af
movq %rbx, %rdi
callq 0x958a
movq (%r14), %r12
cmpq 0x8(%r14), %r12
je 0xa561
movq (%r15), %rsi
movslq (%r12), %rdx
movq %rbx, %rdi
callq 0x96e6
addq $0x4, %r12
cmpq 0x8(%r14), %r12
jne 0xa543
movq (%r14), %rax
jmp 0xa564
movq %r12, %rax
subq %rax, %r12
sarq $0x2, %r12
movq %r12, %xmm0
punpckldq 0x7088(%rip), %xmm0 # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
subpd 0x7090(%rip), %xmm0     # 0x11610
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
movsd 0x709c(%rip), %xmm0     # 0x11630
divsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x96c0
leaq 0x75a2(%rip), %rdi      # 0x11b58
leaq 0x75b1(%rip), %rsi      # 0x11b6e
leaq 0x75b7(%rip), %rcx      # 0x11b7b
movl $0x7d, %edx
callq 0x3160
// File: /workspace/github_cpp_makefile_star2_O3/ddu1[P]polarizedtext/src/model.cc
// Function: fasttext::Model::update(std::vector<int, std::allocator<int>> const&, int, float)
void Model::update(const std::vector<int32_t>& input, int32_t target, real lr) {
  assert(target >= 0);
  assert(target < osz_);
  if (input.size() == 0) return;
  computeHidden(input, hidden_);

  // update negative sampling for both ns and polar
  if (args_->loss == loss_name::ns || args_->loss == loss_name::polar) {
    loss_ += negativeSampling(target, lr);
  } else if (args_->loss == loss_name::hs) {
    loss_ += hierarchicalSoftmax(target, lr);
  } else {
    loss_ += softmax(target, lr);
  }
  nexamples_ += 1;

  if (args_->model == model_name::sup) {
    grad_.mul(1.0 / input.size());
  }
  for (auto it = input.cbegin(); it != input.cend(); ++it) {
    wi_->addRow(grad_, *it, 1.0);
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x10, %rsp
testl %edx, %edx
js 0xabaf
movl %edx, %ebp
movq %rdi, %r14
cmpl %edx, 0x80(%rdi)
jle 0xabce
movq %rsi, %rbx
movq 0x8(%rsi), %rax
cmpq (%rsi), %rax
je 0xaba2
movss %xmm0, 0xc(%rsp)
leaq 0x30(%r14), %rdx
movq %r14, %rdi
movq %rbx, %rsi
callq 0xa510
movq 0x20(%r14), %rax
movl 0x88(%rax), %eax
cmpl $0x1, %eax
je 0xaaed
cmpl $0x4, %eax
movss 0xc(%rsp), %xmm0
je 0xaae1
cmpl $0x2, %eax
jne 0xaaff
movq %r14, %rdi
movl %ebp, %esi
callq 0xa120
jmp 0xab09
movq %r14, %rdi
movl %ebp, %esi
movss 0xc(%rsp), %xmm0
callq 0xa21a
jmp 0xab09
movq %r14, %rdi
movl %ebp, %esi
callq 0xa40c
addss 0x84(%r14), %xmm0
movss %xmm0, 0x84(%r14)
incq 0x88(%r14)
movq 0x20(%r14), %rax
cmpl $0x3, 0x8c(%rax)
jne 0xab74
movq 0x8(%rbx), %rax
subq (%rbx), %rax
sarq $0x2, %rax
movq %rax, %xmm0
punpckldq 0x6ab9(%rip), %xmm0 # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
subpd 0x6ac1(%rip), %xmm0     # 0x11610
leaq 0x68(%r14), %rdi
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
movsd 0x6ac9(%rip), %xmm0     # 0x11630
divsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
callq 0x96c0
movq (%rbx), %r12
cmpq 0x8(%rbx), %r12
je 0xaba2
leaq 0x68(%r14), %r15
movq (%r14), %rdi
movslq (%r12), %rdx
movq %r15, %rsi
movss 0x6f95(%rip), %xmm0     # 0x11b28
callq 0x92b8
addq $0x4, %r12
cmpq 0x8(%rbx), %r12
jne 0xab81
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
leaq 0x70a5(%rip), %rdi      # 0x11c5b
leaq 0x6fb1(%rip), %rsi      # 0x11b6e
leaq 0x70a3(%rip), %rcx      # 0x11c67
movl $0xc4, %edx
callq 0x3160
leaq 0x70dc(%rip), %rdi      # 0x11cb1
leaq 0x6f92(%rip), %rsi      # 0x11b6e
leaq 0x7084(%rip), %rcx      # 0x11c67
movl $0xc5, %edx
callq 0x3160
nop
// File: /workspace/github_cpp_makefile_star2_O3/ddu1[P]polarizedtext/src/model.cc
// Function: fasttext::Model::updatePolarization(int, float)
void Model::updatePolarization(int32_t w, real lr) {
  assert(w >= 0);
  assert(w < osz_);
  loss_ += polarization(w, lr);
  wi_->addRow(grad_, w, 1.0);
}

// Assembly:
pushq %rbp
pushq %rbx
pushq %rax
testl %esi, %esi
js 0xac3b
movl %esi, %ebp
movq %rdi, %rbx
cmpl %esi, 0x80(%rdi)
jle 0xac5a
movq %rbx, %rdi
movl %ebp, %esi
callq 0x9fcc
addss 0x84(%rbx), %xmm0
movss %xmm0, 0x84(%rbx)
movq (%rbx), %rdi
addq $0x68, %rbx
movl %ebp, %edx
movss 0x6efb(%rip), %xmm0     # 0x11b28
movq %rbx, %rsi
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x92b8
leaq 0x707d(%rip), %rdi      # 0x11cbf
leaq 0x6f25(%rip), %rsi      # 0x11b6e
leaq 0x7076(%rip), %rcx      # 0x11cc6
movl $0xdd, %edx
callq 0x3160
leaq 0x709d(%rip), %rdi      # 0x11cfe
leaq 0x6f06(%rip), %rsi      # 0x11b6e
leaq 0x7057(%rip), %rcx      # 0x11cc6
movl $0xde, %edx
callq 0x3160
nop
// File: /workspace/github_cpp_makefile_star2_O3/ddu1[P]polarizedtext/src/fasttext.cc
// Function: fasttext::FastText::getVector(fasttext::Vector&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
void FastText::getVector(Vector& vec, const std::string& word) {
  const std::vector<int32_t>& ngrams = dict_->getNgrams(word);
  vec.zero();
  for (auto it = ngrams.begin(); it != ngrams.end(); ++it) {
    vec.addRow(*input_, *it);
  }
  if (ngrams.size() > 0) {
    vec.mul(1.0 / ngrams.size());
  }
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rsi, %rbx
movq %rdi, %r15
movq 0x10(%rdi), %rsi
movq %rsp, %rdi
callq 0x5020
movq %rbx, %rdi
callq 0x958a
movq (%rsp), %r14
cmpq 0x8(%rsp), %r14
je 0xc665
movq %r14, %r12
negq %r12
movq 0x20(%r15), %rsi
movslq (%r14), %rdx
movq %rbx, %rdi
callq 0x96e6
addq $0x4, %r14
addq $-0x4, %r12
cmpq 0x8(%rsp), %r14
jne 0xc5f2
movq (%rsp), %rax
cmpq %rax, %r14
je 0xc662
addq %r12, %rax
negq %rax
sarq $0x2, %rax
movq %rax, %xmm0
punpckldq 0x4fd0(%rip), %xmm0 # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
subpd 0x4fd8(%rip), %xmm0     # 0x11610
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
movsd 0x4fe4(%rip), %xmm0     # 0x11630
divsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movq %rbx, %rdi
callq 0x96c0
movq (%rsp), %r14
jmp 0xc665
movq %rax, %r14
testq %r14, %r14
je 0xc67a
movq 0x10(%rsp), %rsi
subq %r14, %rsi
movq %r14, %rdi
callq 0x3260
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
jmp 0xc688
movq %rax, %rbx
movq (%rsp), %rdi
testq %rdi, %rdi
je 0xc6a1
movq 0x10(%rsp), %rsi
subq %rdi, %rsi
callq 0x3260
movq %rbx, %rdi
callq 0x3450
nop
// File: /workspace/github_cpp_makefile_star2_O3/ddu1[P]polarizedtext/src/fasttext.cc
// Function: fasttext::FastText::saveModel()
void FastText::saveModel() {
  std::ofstream ofs(args_->output + ".bin", std::ofstream::binary);
  if (!ofs.is_open()) {
    std::cerr << "Model file cannot be opened for saving!" << std::endl;
    exit(EXIT_FAILURE);
  }
  args_->save(ofs);
  dict_->save(ofs);
  input_->save(ofs);
  output_->save(ofs);
  ofs.close();
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x220, %rsp            # imm = 0x220
movq %rdi, %rbx
movq (%rdi), %rax
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x40(%rax), %rsi
movq 0x48(%rax), %rdx
addq %rsi, %rdx
movq %rsp, %r14
movq %r14, %rdi
callq 0x78a2
leaq 0x54ae(%rip), %rsi      # 0x11e44
movq %r14, %rdi
callq 0x3490
leaq 0x20(%rsp), %rdi
movq %rsp, %rsi
movl $0x4, %edx
callq 0x34a0
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xc9c6
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x3260
leaq 0x90(%rsp), %rdi
callq 0x3060
testb %al, %al
je 0xca5b
movq (%rbx), %rdi
leaq 0x20(%rsp), %rsi
callq 0x464c
movq 0x10(%rbx), %rdi
leaq 0x20(%rsp), %rsi
callq 0x625e
movq 0x20(%rbx), %rdi
leaq 0x20(%rsp), %rsi
callq 0x9406
movq 0x30(%rbx), %rdi
leaq 0x20(%rsp), %rsi
callq 0x9406
leaq 0x20(%rsp), %rdi
callq 0x3350
movq 0xb595(%rip), %rax      # 0x17fb8
movq (%rax), %rcx
movq 0x18(%rax), %rax
leaq 0x28(%rsp), %rdi
movq %rcx, -0x8(%rdi)
movq -0x18(%rcx), %rcx
movq %rax, 0x20(%rsp,%rcx)
callq 0x31e0
leaq 0x118(%rsp), %rdi
callq 0x30b0
addq $0x220, %rsp            # imm = 0x220
popq %rbx
popq %r14
popq %r15
retq
movq 0xb58e(%rip), %rdi      # 0x17ff0
leaq 0x53e0(%rip), %rsi      # 0x11e49
movl $0x27, %edx
callq 0x3290
movq 0xb576(%rip), %rdi      # 0x17ff0
callq 0x3110
movl $0x1, %edi
callq 0x32b0
jmp 0xca8b
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xcab3
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x3260
jmp 0xcab3
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x3370
movq %rbx, %rdi
callq 0x3450
nop
// File: /workspace/github_cpp_makefile_star2_O3/ddu1[P]polarizedtext/src/fasttext.cc
// Function: fasttext::FastText::loadModel(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
void FastText::loadModel(const std::string& filename) {
  std::ifstream ifs(filename, std::ifstream::binary);
  if (!ifs.is_open()) {
    std::cerr << "Model file cannot be opened for loading!" << std::endl;
    exit(EXIT_FAILURE);
  }
  loadModel(ifs);
  ifs.close();
}

// Assembly:
pushq %rbx
subq $0x210, %rsp            # imm = 0x210
movq %rdi, %rbx
leaq 0x8(%rsp), %rdi
movl $0x4, %edx
callq 0x33c0
leaq 0x80(%rsp), %rdi
callq 0x3060
testb %al, %al
je 0xcb11
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0xcb54
leaq 0x8(%rsp), %rdi
callq 0x3050
leaq 0x8(%rsp), %rdi
callq 0x3070
addq $0x210, %rsp            # imm = 0x210
popq %rbx
retq
movq 0xb4d8(%rip), %rdi      # 0x17ff0
leaq 0x5352(%rip), %rsi      # 0x11e71
movl $0x28, %edx
callq 0x3290
movq 0xb4c0(%rip), %rdi      # 0x17ff0
callq 0x3110
movl $0x1, %edi
callq 0x32b0
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x3070
movq %rbx, %rdi
callq 0x3450
// File: /workspace/github_cpp_makefile_star2_O3/ddu1[P]polarizedtext/src/fasttext.cc
// Function: fasttext::FastText::pwv(fasttext::Model&, float, std::vector<int, std::allocator<int>> const&)
void FastText::pwv(Model& model, real lr,
                        const std::vector<int32_t>& line) {
  std::uniform_int_distribution<> uniform(1, args_->ws);
  for (int32_t w = 0; w < line.size(); w++) {
    int32_t boundary = uniform(model.rng);
    model.setHiddenLabels( dict_->getLabels(line[w]));
    model.updatePolarization(line[w], lr);
    const std::vector<int32_t>& ngrams = dict_->getNgrams(line[w]);
    for (int32_t c = -boundary; c <= boundary; c++) {
      if (c != 0 && w + c >= 0 && w + c < line.size()) {
        model.update(ngrams, line[w + c], lr);
      }
    }
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movss %xmm0, 0x4(%rsp)
movq %rsi, 0x8(%rsp)
movq (%rdi), %rax
movl 0x70(%rax), %eax
movl $0x1, 0x10(%rsp)
movl %eax, 0x14(%rsp)
movq 0x8(%rdx), %rax
cmpq (%rdx), %rax
je 0xd33b
movq %rdx, %rbx
movq %rdi, %r14
movq 0x8(%rsp), %rax
addq $0x108, %rax            # imm = 0x108
movq %rax, 0x20(%rsp)
xorl %ebp, %ebp
movq %rdi, 0x18(%rsp)
leaq 0x10(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq %rdi, %rdx
callq 0xf504
movl %eax, %r12d
movq 0x10(%r14), %rsi
movq (%rbx), %rax
movl (%rax,%rbp,4), %edx
leaq 0x30(%rsp), %r15
movq %r15, %rdi
callq 0x4dce
movq 0x8(%rsp), %rdi
movq %r15, %rsi
callq 0xb172
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0xd29d
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0x3260
movq (%rbx), %rax
movl (%rax,%rbp,4), %esi
movq 0x8(%rsp), %rdi
movss 0x4(%rsp), %xmm0
callq 0xabee
movq 0x10(%r14), %rdi
movq (%rbx), %rax
movl (%rax,%rbp,4), %esi
callq 0x4fc4
movq %rax, 0x28(%rsp)
testl %r12d, %r12d
js 0xd31f
leal 0x1(,%r12,2), %r15d
movl %ebp, %r14d
subl %r12d, %r14d
xorl %r13d, %r13d
cmpl %r13d, %r12d
je 0xd317
movl %r14d, %eax
addl %r13d, %eax
js 0xd317
movl %eax, %eax
movq (%rbx), %rcx
movq 0x8(%rbx), %rdx
subq %rcx, %rdx
sarq $0x2, %rdx
cmpq %rax, %rdx
jbe 0xd317
movl (%rcx,%rax,4), %edx
movq 0x8(%rsp), %rdi
movq 0x28(%rsp), %rsi
movss 0x4(%rsp), %xmm0
callq 0xaa78
incl %r13d
cmpl %r13d, %r15d
jne 0xd2dd
incq %rbp
movq 0x8(%rbx), %rax
subq (%rbx), %rax
sarq $0x2, %rax
cmpq %rbp, %rax
movq 0x18(%rsp), %r14
ja 0xd24d
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0xd364
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0x3260
movq %rbx, %rdi
callq 0x3450
// File: /workspace/github_cpp_makefile_star2_O3/ddu1[P]polarizedtext/src/fasttext.cc
// Function: fasttext::FastText::textVectors()
void FastText::textVectors() {
  std::vector<int32_t> line, labels;
  Vector vec(args_->dim);
  while (std::cin.peek() != EOF) {
    dict_->getLine(std::cin, line, labels, model_->rng);
    dict_->addNgrams(line, args_->wordNgrams);
    vec.zero();
    for (auto it = line.cbegin(); it != line.cend(); ++it) {
      vec.addRow(*input_, *it);
    }
    if (!line.empty()) {
      vec.mul(1.0 / line.size());
    }
    std::cout << vec << std::endl;
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq %rdi, %rbx
xorps %xmm0, %xmm0
movaps %xmm0, (%rsp)
xorl %eax, %eax
movq %rax, 0x10(%rsp)
movq %rax, 0x30(%rsp)
movaps %xmm0, 0x20(%rsp)
movq (%rdi), %rax
movslq 0x6c(%rax), %rsi
leaq 0x38(%rsp), %rdi
callq 0x94c8
movq 0xa26b(%rip), %r14      # 0x17fd8
movq %rsp, %r15
leaq 0x38(%rsp), %r13
movq %r14, %rdi
callq 0x30d0
cmpl $-0x1, %eax
je 0xde7d
movq 0x10(%rbx), %rdi
movq 0x40(%rbx), %r8
movl $0x108, %eax            # imm = 0x108
addq %rax, %r8
movq %r14, %rsi
movq %r15, %rdx
leaq 0x20(%rsp), %rcx
callq 0x5ff8
movq (%rbx), %rax
movq 0x10(%rbx), %rdi
movl 0x84(%rax), %edx
movq %r15, %rsi
callq 0x5eee
movq %r13, %rdi
callq 0x958a
movq (%rsp), %r12
cmpq 0x8(%rsp), %r12
je 0xde3f
movq %r12, %rbp
negq %rbp
movq 0x20(%rbx), %rsi
movslq (%r12), %rdx
movq %r13, %rdi
callq 0x96e6
addq $0x4, %r12
addq $-0x4, %rbp
cmpq 0x8(%rsp), %r12
jne 0xddd4
movq (%rsp), %rax
cmpq %rax, %r12
je 0xde3f
addq %rbp, %rax
negq %rax
sarq $0x2, %rax
movq %rax, %xmm0
punpckldq 0x37ed(%rip), %xmm0 # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
subpd 0x37f5(%rip), %xmm0     # 0x11610
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
movsd 0x3801(%rip), %xmm0     # 0x11630
divsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movq %r13, %rdi
callq 0x96c0
movq 0xa182(%rip), %rdi      # 0x17fc8
movq %r13, %rsi
callq 0x99a3
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x3230
movsbl %al, %esi
movq %r12, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x3180
jmp 0xdd75
leaq 0x38(%rsp), %rdi
callq 0x95a2
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0xde9e
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x3260
movq (%rsp), %rdi
testq %rdi, %rdi
je 0xdeb4
movq 0x10(%rsp), %rsi
subq %rdi, %rsi
callq 0x3260
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
jmp 0xdeee
jmp 0xdeca
movq %rax, %rbx
leaq 0x38(%rsp), %rdi
callq 0x95a2
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0xdeee
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x3260
movq (%rsp), %rdi
testq %rdi, %rdi
je 0xdf04
movq 0x10(%rsp), %rsi
subq %rdi, %rsi
callq 0x3260
movq %rbx, %rdi
callq 0x3450