// File: ncbi[P]amr/amr_report.cpp
// Function: (anonymous namespace)::BlastAlignment::matchesCds((anonymous namespace)::BlastAlignment const&) const
bool matchesCds (const BlastAlignment &other) const
    { ASSERT (targetProt);
    	ASSERT (! other. targetProt);
    	ASSERT (! cdss. empty ());
    	for (const Locus& cds : cdss)
    		if (   cds. contig == other. targetName
    			  && cds. strand == other. targetStrand
    			  && ! cds. crossOrigin
    			 )
    		{ size_t protStart = cds. start;
    			size_t protStop  = cds. stop;
    			if (cds. strand)
    			{
    				ASSERT (protStop > 3);
    				protStop -= 3;
    			}
    			else
    			  protStart += 3;
    			ASSERT (protStart < protStop);
    			const size_t dnaStart  = other. targetStart;
    			const size_t dnaStop   = other. targetEnd;
    			ASSERT (dnaStart < dnaStop);
    		#if 0
    		  // PD-2271: partial 
    		  // use truncated(cds) ??
    			if (cds. strand)  // Checking frames
    			{ if (difference (protStart, dnaStart) > 3 && protStart % 3 != dnaStart % 3)
    			    continue;
    			}
    			else
    			  if (difference (protStop, dnaStop) > 3 && protStop % 3 != dnaStop % 3)
    			    continue;
    		#endif
    		#if 0  // PD-2099
    			if (cds. strand)  // PD-1902
    			{ if (protStop != dnaStop)
    				  continue;
    			}
    		  else
    				if (protStart != dnaStart)
    				  continue;
    		#endif
    			const size_t intersectionStart = max (protStart, dnaStart);
    			const size_t intersectionStop  = min (protStop,  dnaStop);
    			const size_t unionStart        = min (protStart, dnaStart);
    			const size_t unionStop         = max (protStop,  dnaStop);
    			if (   (   intersectionStart < intersectionStop
    				      && double (intersectionStop - intersectionStart) / double (protStop - protStart) > 0.75  // PAR, PD-2320
    				     )
    				  || (intersectionStart - unionStart) + (unionStop - intersectionStop) <= 60 * 3  // PAR, PD-4169
    				  || (   protStart <= dnaStart + mismatchTail_aa * 3 
    				      && dnaStop   <= protStop + mismatchTail_aa * 3 
    				      && other. partial ()
    				     )
    				  || (   dnaStart <= protStart + mismatchTail_aa * 3 
    				      && protStop <= dnaStop   + mismatchTail_aa * 3 
    				      && partial ()
    				     )
    				 )
    				return true;
    		}
    	return false;
    }

// Assembly:
subq $0x758, %rsp            # imm = 0x758
movq %rdi, 0x748(%rsp)
movq %rsi, 0x740(%rsp)
movq 0x748(%rsp), %rax
movq %rax, 0x68(%rsp)
callq 0xc090
movq %rax, %rcx
movq 0x68(%rsp), %rax
movl $0x0, (%rcx)
testb $0x1, 0x8(%rax)
jne 0x46b78
callq 0xc870
cmpl $0x0, %eax
jne 0x46b6e
leaq 0x69f(%rsp), %rdi
movq %rdi, 0x60(%rsp)
callq 0xcca0
movq 0x60(%rsp), %rdx
leaq 0xb6fea(%rip), %rsi     # 0xfd907
leaq 0x6a0(%rsp), %rdi
callq 0x50b50
jmp 0x4692c
leaq 0x668(%rsp), %rdi
movl $0x424, %esi            # imm = 0x424
callq 0x52760
jmp 0x46940
leaq 0x6c0(%rsp), %rdi
leaq 0x6a0(%rsp), %rsi
leaq 0x668(%rsp), %rdx
callq 0x52670
jmp 0x4695f
leaq 0xb6fb9(%rip), %rdx     # 0xfd91f
leaq 0x6e0(%rsp), %rdi
leaq 0x6c0(%rsp), %rsi
callq 0x50db0
jmp 0x4697d
leaq 0x627(%rsp), %rdi
movq %rdi, 0x58(%rsp)
callq 0xcca0
movq 0x58(%rsp), %rdx
leaq 0xb844a(%rip), %rsi     # 0xfede5
leaq 0x628(%rsp), %rdi
callq 0x50b50
jmp 0x469aa
leaq 0xb746d(%rip), %rdx     # 0xfde1e
leaq 0x648(%rsp), %rdi
leaq 0x628(%rsp), %rsi
callq 0x50db0
jmp 0x469c8
leaq 0x700(%rsp), %rdi
leaq 0x6e0(%rsp), %rsi
leaq 0x648(%rsp), %rdx
callq 0x52670
jmp 0x469e7
leaq 0xbde3e(%rip), %rdx     # 0x10482c
leaq 0x720(%rsp), %rdi
leaq 0x700(%rsp), %rsi
callq 0x50db0
jmp 0x46a05
leaq 0x720(%rsp), %rdi
callq 0x69f20
jmp 0x46a14
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x46b5c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x46b4f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x46b42
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x46b35
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x46b1b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x46b0e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x46b01
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x46af4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
leaq 0x720(%rsp), %rdi
callq 0xce58
leaq 0x700(%rsp), %rdi
callq 0xce58
leaq 0x648(%rsp), %rdi
callq 0xce58
leaq 0x628(%rsp), %rdi
callq 0xce58
leaq 0x627(%rsp), %rdi
callq 0xc750
leaq 0x6e0(%rsp), %rdi
callq 0xce58
leaq 0x6c0(%rsp), %rdi
callq 0xce58
leaq 0x668(%rsp), %rdi
callq 0xce58
leaq 0x6a0(%rsp), %rdi
callq 0xce58
leaq 0x69f(%rsp), %rdi
callq 0xc750
jmp 0x47c04
movl $0x1, %edi
callq 0xc880
callq 0xc090
movl $0x0, (%rax)
movq 0x740(%rsp), %rax
testb $0x1, 0x8(%rax)
je 0x46e1c
callq 0xc870
cmpl $0x0, %eax
jne 0x46e12
leaq 0x57f(%rsp), %rdi
movq %rdi, 0x50(%rsp)
callq 0xcca0
movq 0x50(%rsp), %rdx
leaq 0xb6d46(%rip), %rsi     # 0xfd907
leaq 0x580(%rsp), %rdi
callq 0x50b50
jmp 0x46bd0
leaq 0x558(%rsp), %rdi
movl $0x425, %esi            # imm = 0x425
callq 0x52760
jmp 0x46be4
leaq 0x5a0(%rsp), %rdi
leaq 0x580(%rsp), %rsi
leaq 0x558(%rsp), %rdx
callq 0x52670
jmp 0x46c03
leaq 0xb6d15(%rip), %rdx     # 0xfd91f
leaq 0x5c0(%rsp), %rdi
leaq 0x5a0(%rsp), %rsi
callq 0x50db0
jmp 0x46c21
leaq 0x517(%rsp), %rdi
movq %rdi, 0x48(%rsp)
callq 0xcca0
movq 0x48(%rsp), %rdx
leaq 0xb81a6(%rip), %rsi     # 0xfede5
leaq 0x518(%rsp), %rdi
callq 0x50b50
jmp 0x46c4e
leaq 0xb71c9(%rip), %rdx     # 0xfde1e
leaq 0x538(%rsp), %rdi
leaq 0x518(%rsp), %rsi
callq 0x50db0
jmp 0x46c6c
leaq 0x5e0(%rsp), %rdi
leaq 0x5c0(%rsp), %rsi
leaq 0x538(%rsp), %rdx
callq 0x52670
jmp 0x46c8b
leaq 0xb81a8(%rip), %rdx     # 0xfee3a
leaq 0x600(%rsp), %rdi
leaq 0x5e0(%rsp), %rsi
callq 0x50db0
jmp 0x46ca9
leaq 0x600(%rsp), %rdi
callq 0x69f20
jmp 0x46cb8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x46e00
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x46df3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x46de6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x46dd9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x46dbf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x46db2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x46da5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x46d98
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
leaq 0x600(%rsp), %rdi
callq 0xce58
leaq 0x5e0(%rsp), %rdi
callq 0xce58
leaq 0x538(%rsp), %rdi
callq 0xce58
leaq 0x518(%rsp), %rdi
callq 0xce58
leaq 0x517(%rsp), %rdi
callq 0xc750
leaq 0x5c0(%rsp), %rdi
callq 0xce58
leaq 0x5a0(%rsp), %rdi
callq 0xce58
leaq 0x558(%rsp), %rdi
callq 0xce58
leaq 0x580(%rsp), %rdi
callq 0xce58
leaq 0x57f(%rsp), %rdi
callq 0xc750
jmp 0x47c04
movl $0x1, %edi
callq 0xc880
callq 0xc090
movq 0x68(%rsp), %rdi
movl $0x0, (%rax)
addq $0x3b8, %rdi            # imm = 0x3B8
callq 0x53040
testb $0x1, %al
jne 0x46e41
jmp 0x470c8
callq 0xc870
cmpl $0x0, %eax
jne 0x470be
leaq 0x46f(%rsp), %rdi
movq %rdi, 0x40(%rsp)
callq 0xcca0
movq 0x40(%rsp), %rdx
leaq 0xb6a9a(%rip), %rsi     # 0xfd907
leaq 0x470(%rsp), %rdi
callq 0x50b50
jmp 0x46e7c
leaq 0x448(%rsp), %rdi
movl $0x426, %esi            # imm = 0x426
callq 0x52760
jmp 0x46e90
leaq 0x490(%rsp), %rdi
leaq 0x470(%rsp), %rsi
leaq 0x448(%rsp), %rdx
callq 0x52670
jmp 0x46eaf
leaq 0xb6a69(%rip), %rdx     # 0xfd91f
leaq 0x4b0(%rsp), %rdi
leaq 0x490(%rsp), %rsi
callq 0x50db0
jmp 0x46ecd
leaq 0x407(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0xcca0
movq 0x38(%rsp), %rdx
leaq 0xb7efa(%rip), %rsi     # 0xfede5
leaq 0x408(%rsp), %rdi
callq 0x50b50
jmp 0x46efa
leaq 0xb6f1d(%rip), %rdx     # 0xfde1e
leaq 0x428(%rsp), %rdi
leaq 0x408(%rsp), %rsi
callq 0x50db0
jmp 0x46f18
leaq 0x4d0(%rsp), %rdi
leaq 0x4b0(%rsp), %rsi
leaq 0x428(%rsp), %rdx
callq 0x52670
jmp 0x46f37
leaq 0xb7f10(%rip), %rdx     # 0xfee4e
leaq 0x4f0(%rsp), %rdi
leaq 0x4d0(%rsp), %rsi
callq 0x50db0
jmp 0x46f55
leaq 0x4f0(%rsp), %rdi
callq 0x69f20
jmp 0x46f64
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x470ac
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x4709f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x47092
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x47085
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x4706b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x4705e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x47051
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x47044
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
leaq 0x4f0(%rsp), %rdi
callq 0xce58
leaq 0x4d0(%rsp), %rdi
callq 0xce58
leaq 0x428(%rsp), %rdi
callq 0xce58
leaq 0x408(%rsp), %rdi
callq 0xce58
leaq 0x407(%rsp), %rdi
callq 0xc750
leaq 0x4b0(%rsp), %rdi
callq 0xce58
leaq 0x490(%rsp), %rdi
callq 0xce58
leaq 0x448(%rsp), %rdi
callq 0xce58
leaq 0x470(%rsp), %rdi
callq 0xce58
leaq 0x46f(%rsp), %rdi
callq 0xc750
jmp 0x47c04
movl $0x1, %edi
callq 0xc880
movq 0x68(%rsp), %rax
addq $0x3b8, %rax            # imm = 0x3B8
movq %rax, 0x3f8(%rsp)
movq 0x3f8(%rsp), %rdi
callq 0x53090
movq %rax, 0x3f0(%rsp)
movq 0x3f8(%rsp), %rdi
callq 0x530c0
movq %rax, 0x3e8(%rsp)
leaq 0x3f0(%rsp), %rdi
leaq 0x3e8(%rsp), %rsi
callq 0x530f0
testb $0x1, %al
jne 0x47123
jmp 0x47beb
leaq 0x3f0(%rsp), %rdi
callq 0x53130
movq %rax, 0x3e0(%rsp)
movq 0x3e0(%rsp), %rdi
addq $0x8, %rdi
movq 0x740(%rsp), %rsi
addq $0x10, %rsi
callq 0x52910
testb $0x1, %al
jne 0x4715e
jmp 0x47bd7
movq 0x3e0(%rsp), %rax
movb 0x38(%rax), %al
andb $0x1, %al
movzbl %al, %eax
movq 0x740(%rsp), %rcx
movb 0x68(%rcx), %cl
andb $0x1, %cl
movzbl %cl, %ecx
cmpl %ecx, %eax
jne 0x47bd7
movq 0x3e0(%rsp), %rax
testb $0x1, 0x48(%rax)
jne 0x47bd7
movq 0x3e0(%rsp), %rax
movq 0x28(%rax), %rax
movq %rax, 0x3d8(%rsp)
movq 0x3e0(%rsp), %rax
movq 0x30(%rax), %rax
movq %rax, 0x3d0(%rsp)
movq 0x3e0(%rsp), %rax
testb $0x1, 0x38(%rax)
je 0x4748a
callq 0xc090
movl $0x0, (%rax)
cmpq $0x3, 0x3d0(%rsp)
ja 0x47474
callq 0xc870
cmpl $0x0, %eax
jne 0x4746a
leaq 0x32f(%rsp), %rdi
movq %rdi, 0x30(%rsp)
callq 0xcca0
movq 0x30(%rsp), %rdx
leaq 0xb66ee(%rip), %rsi     # 0xfd907
leaq 0x330(%rsp), %rdi
callq 0x50b50
jmp 0x47228
leaq 0x308(%rsp), %rdi
movl $0x430, %esi            # imm = 0x430
callq 0x52760
jmp 0x4723c
leaq 0x350(%rsp), %rdi
leaq 0x330(%rsp), %rsi
leaq 0x308(%rsp), %rdx
callq 0x52670
jmp 0x4725b
leaq 0xb66bd(%rip), %rdx     # 0xfd91f
leaq 0x370(%rsp), %rdi
leaq 0x350(%rsp), %rsi
callq 0x50db0
jmp 0x47279
leaq 0x2c7(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0xcca0
movq 0x28(%rsp), %rdx
leaq 0xb7b4e(%rip), %rsi     # 0xfede5
leaq 0x2c8(%rsp), %rdi
callq 0x50b50
jmp 0x472a6
leaq 0xb6b71(%rip), %rdx     # 0xfde1e
leaq 0x2e8(%rsp), %rdi
leaq 0x2c8(%rsp), %rsi
callq 0x50db0
jmp 0x472c4
leaq 0x390(%rsp), %rdi
leaq 0x370(%rsp), %rsi
leaq 0x2e8(%rsp), %rdx
callq 0x52670
jmp 0x472e3
leaq 0xb7b75(%rip), %rdx     # 0xfee5f
leaq 0x3b0(%rsp), %rdi
leaq 0x390(%rsp), %rsi
callq 0x50db0
jmp 0x47301
leaq 0x3b0(%rsp), %rdi
callq 0x69f20
jmp 0x47310
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x47458
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x4744b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x4743e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x47431
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x47417
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x4740a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x473fd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x473f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
leaq 0x3b0(%rsp), %rdi
callq 0xce58
leaq 0x390(%rsp), %rdi
callq 0xce58
leaq 0x2e8(%rsp), %rdi
callq 0xce58
leaq 0x2c8(%rsp), %rdi
callq 0xce58
leaq 0x2c7(%rsp), %rdi
callq 0xc750
leaq 0x370(%rsp), %rdi
callq 0xce58
leaq 0x350(%rsp), %rdi
callq 0xce58
leaq 0x308(%rsp), %rdi
callq 0xce58
leaq 0x330(%rsp), %rdi
callq 0xce58
leaq 0x32f(%rsp), %rdi
callq 0xc750
jmp 0x47c04
movl $0x1, %edi
callq 0xc880
movq 0x3d0(%rsp), %rax
subq $0x3, %rax
movq %rax, 0x3d0(%rsp)
jmp 0x4749e
movq 0x3d8(%rsp), %rax
addq $0x3, %rax
movq %rax, 0x3d8(%rsp)
callq 0xc090
movl $0x0, (%rax)
movq 0x3d8(%rsp), %rax
cmpq 0x3d0(%rsp), %rax
jb 0x47746
callq 0xc870
cmpl $0x0, %eax
jne 0x4773c
leaq 0x21f(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0xcca0
movq 0x20(%rsp), %rdx
leaq 0xb641c(%rip), %rsi     # 0xfd907
leaq 0x220(%rsp), %rdi
callq 0x50b50
jmp 0x474fa
leaq 0x1f8(%rsp), %rdi
movl $0x435, %esi            # imm = 0x435
callq 0x52760
jmp 0x4750e
leaq 0x240(%rsp), %rdi
leaq 0x220(%rsp), %rsi
leaq 0x1f8(%rsp), %rdx
callq 0x52670
jmp 0x4752d
leaq 0xb63eb(%rip), %rdx     # 0xfd91f
leaq 0x260(%rsp), %rdi
leaq 0x240(%rsp), %rsi
callq 0x50db0
jmp 0x4754b
leaq 0x1b7(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0xcca0
movq 0x18(%rsp), %rdx
leaq 0xb787c(%rip), %rsi     # 0xfede5
leaq 0x1b8(%rsp), %rdi
callq 0x50b50
jmp 0x47578
leaq 0xb689f(%rip), %rdx     # 0xfde1e
leaq 0x1d8(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
callq 0x50db0
jmp 0x47596
leaq 0x280(%rsp), %rdi
leaq 0x260(%rsp), %rsi
leaq 0x1d8(%rsp), %rdx
callq 0x52670
jmp 0x475b5
leaq 0xb78b0(%rip), %rdx     # 0xfee6c
leaq 0x2a0(%rsp), %rdi
leaq 0x280(%rsp), %rsi
callq 0x50db0
jmp 0x475d3
leaq 0x2a0(%rsp), %rdi
callq 0x69f20
jmp 0x475e2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x4772a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x4771d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x47710
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x47703
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x476e9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x476dc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x476cf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x476c2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
leaq 0x2a0(%rsp), %rdi
callq 0xce58
leaq 0x280(%rsp), %rdi
callq 0xce58
leaq 0x1d8(%rsp), %rdi
callq 0xce58
leaq 0x1b8(%rsp), %rdi
callq 0xce58
leaq 0x1b7(%rsp), %rdi
callq 0xc750
leaq 0x260(%rsp), %rdi
callq 0xce58
leaq 0x240(%rsp), %rdi
callq 0xce58
leaq 0x1f8(%rsp), %rdi
callq 0xce58
leaq 0x220(%rsp), %rdi
callq 0xce58
leaq 0x21f(%rsp), %rdi
callq 0xc750
jmp 0x47c04
movl $0x1, %edi
callq 0xc880
movq 0x740(%rsp), %rax
movq 0x50(%rax), %rax
movq %rax, 0x1a8(%rsp)
movq 0x740(%rsp), %rax
movq 0x58(%rax), %rax
movq %rax, 0x1a0(%rsp)
callq 0xc090
movl $0x0, (%rax)
movq 0x1a8(%rsp), %rax
cmpq 0x1a0(%rsp), %rax
jb 0x47a16
callq 0xc870
cmpl $0x0, %eax
jne 0x47a0c
leaq 0xff(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0xcca0
movq 0x10(%rsp), %rdx
leaq 0xb614c(%rip), %rsi     # 0xfd907
leaq 0x100(%rsp), %rdi
callq 0x50b50
jmp 0x477ca
leaq 0xd8(%rsp), %rdi
movl $0x438, %esi            # imm = 0x438
callq 0x52760
jmp 0x477de
leaq 0x120(%rsp), %rdi
leaq 0x100(%rsp), %rsi
leaq 0xd8(%rsp), %rdx
callq 0x52670
jmp 0x477fd
leaq 0xb611b(%rip), %rdx     # 0xfd91f
leaq 0x140(%rsp), %rdi
leaq 0x120(%rsp), %rsi
callq 0x50db0
jmp 0x4781b
leaq 0x97(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0xcca0
movq 0x8(%rsp), %rdx
leaq 0xb75ac(%rip), %rsi     # 0xfede5
leaq 0x98(%rsp), %rdi
callq 0x50b50
jmp 0x47848
leaq 0xb65cf(%rip), %rdx     # 0xfde1e
leaq 0xb8(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0x50db0
jmp 0x47866
leaq 0x160(%rsp), %rdi
leaq 0x140(%rsp), %rsi
leaq 0xb8(%rsp), %rdx
callq 0x52670
jmp 0x47885
leaq 0xb75f5(%rip), %rdx     # 0xfee81
leaq 0x180(%rsp), %rdi
leaq 0x160(%rsp), %rsi
callq 0x50db0
jmp 0x478a3
leaq 0x180(%rsp), %rdi
callq 0x69f20
jmp 0x478b2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x479fa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x479ed
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x479e0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x479d3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x479b9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x479ac
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x4799f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
jmp 0x47992
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x690(%rsp)
movl %eax, 0x68c(%rsp)
leaq 0x180(%rsp), %rdi
callq 0xce58
leaq 0x160(%rsp), %rdi
callq 0xce58
leaq 0xb8(%rsp), %rdi
callq 0xce58
leaq 0x98(%rsp), %rdi
callq 0xce58
leaq 0x97(%rsp), %rdi
callq 0xc750
leaq 0x140(%rsp), %rdi
callq 0xce58
leaq 0x120(%rsp), %rdi
callq 0xce58
leaq 0xd8(%rsp), %rdi
callq 0xce58
leaq 0x100(%rsp), %rdi
callq 0xce58
leaq 0xff(%rsp), %rdi
callq 0xc750
jmp 0x47c04
movl $0x1, %edi
callq 0xc880
leaq 0x3d8(%rsp), %rdi
leaq 0x1a8(%rsp), %rsi
callq 0x55d80
movq (%rax), %rax
movq %rax, 0x88(%rsp)
leaq 0x3d0(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
callq 0x55e40
movq (%rax), %rax
movq %rax, 0x80(%rsp)
leaq 0x3d8(%rsp), %rdi
leaq 0x1a8(%rsp), %rsi
callq 0x55e40
movq (%rax), %rax
movq %rax, 0x78(%rsp)
leaq 0x3d0(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
callq 0x55d80
movq (%rax), %rax
movq %rax, 0x70(%rsp)
movq 0x88(%rsp), %rax
cmpq 0x80(%rsp), %rax
jae 0x47b1d
movq 0x80(%rsp), %rax
movq 0x88(%rsp), %rcx
subq %rcx, %rax
movq %rax, %xmm0
movaps 0xb558f(%rip), %xmm3    # 0xfd050
punpckldq %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
movapd 0xb5593(%rip), %xmm2    # 0xfd060
subpd %xmm2, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movq 0x3d0(%rsp), %rax
movq 0x3d8(%rsp), %rcx
subq %rcx, %rax
movq %rax, %xmm1
punpckldq %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
subpd %xmm2, %xmm1
movaps %xmm1, %xmm2
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm2, %xmm1
divsd %xmm1, %xmm0
movsd 0xb552d(%rip), %xmm1    # 0xfd040
ucomisd %xmm1, %xmm0
ja 0x47bcb
movq 0x88(%rsp), %rax
subq 0x78(%rsp), %rax
movq 0x70(%rsp), %rcx
subq 0x80(%rsp), %rcx
addq %rcx, %rax
cmpq $0xb4, %rax
jbe 0x47bcb
movq 0x3d8(%rsp), %rax
movq 0x1a8(%rsp), %rcx
addq $0x1e, %rcx
cmpq %rcx, %rax
ja 0x47b89
movq 0x1a0(%rsp), %rax
movq 0x3d0(%rsp), %rcx
addq $0x1e, %rcx
cmpq %rcx, %rax
ja 0x47b89
movq 0x740(%rsp), %rdi
callq 0x38260
testb $0x1, %al
jne 0x47bcb
movq 0x1a8(%rsp), %rax
movq 0x3d8(%rsp), %rcx
addq $0x1e, %rcx
cmpq %rcx, %rax
ja 0x47bd5
movq 0x3d0(%rsp), %rax
movq 0x1a0(%rsp), %rcx
addq $0x1e, %rcx
cmpq %rcx, %rax
ja 0x47bd5
movq 0x68(%rsp), %rdi
callq 0x38260
testb $0x1, %al
jne 0x47bcb
jmp 0x47bd5
movb $0x1, 0x757(%rsp)
jmp 0x47bf3
jmp 0x47bd7
jmp 0x47bd9
leaq 0x3f0(%rsp), %rdi
callq 0x53140
jmp 0x47105
movb $0x0, 0x757(%rsp)
movb 0x757(%rsp), %al
andb $0x1, %al
addq $0x758, %rsp            # imm = 0x758
retq
movq 0x690(%rsp), %rdi
callq 0xcc90
nopw %cs:(%rax,%rax)